realtek: rtl930x: Fix bringup of SFP modules
The commitd2108c2c58("realtek: enhance RTL930x SerDes/PLL/CMU interoperability") removed a couple of commands for the bringup code. One of these commands was necessary to bring up SFP modules correctly. This one can also be found in the RTLSDK [1]. It is currently not 100% clear what this command does. But if it works similar to the RTL8295 [2,3] (RTL8295_SDS0_ANA_MISC_REG00_REG), we could assume that it could be the RX_ON and RX_EN bits. [1]0e2e45341a/loader/u-boot-2011.12/board/Realtek/switch/sdk/src/dal/longan/dal_longan_sds.c (L1104)[2] https://svanheule.net/realtek/mango/register/serdes_indrt_access_ctrl [3]54589ff0af/sources/rtk-dms1250/include/hal/phy/rtl8295_reg_def.h (L7726)Reported-by: Jan Fuchs <jf@simonwunderlich.de> Fixes:d2108c2c58("realtek: enhance RTL930x SerDes/PLL/CMU interoperability") Signed-off-by: Harshal Gohel <hg@simonwunderlich.de> Co-developed-by: Markus Stockhausen <markus.stockhausen@gmx.de> Signed-off-by: Sharadanand Karanjkar <sk@simonwunderlich.de> Link: https://github.com/openwrt/openwrt/pull/19582 Signed-off-by: Robert Marko <robimarko@gmail.com>
This commit is contained in:
committed by
Robert Marko
parent
1de1df1bea
commit
656312f9b7
@@ -1711,9 +1711,11 @@ static int rtsds_930x_get_internal_mode(int sds)
|
|||||||
|
|
||||||
static void rtsds_930x_set_power(int sds, bool on)
|
static void rtsds_930x_set_power(int sds, bool on)
|
||||||
{
|
{
|
||||||
int power = on ? 0 : 3;
|
int power_down = on ? 0x0 : 0x3;
|
||||||
|
int rx_enable = on ? 0x3 : 0x1;
|
||||||
|
|
||||||
rtl9300_sds_field_w(sds, 0x20, 0x00, 7, 6, power);
|
rtl9300_sds_field_w(sds, 0x20, 0x00, 7, 6, power_down);
|
||||||
|
rtl9300_sds_field_w(sds, 0x20, 0x00, 5, 4, rx_enable);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rtsds_930x_config_pll(int sds, phy_interface_t interface)
|
static int rtsds_930x_config_pll(int sds, phy_interface_t interface)
|
||||||
|
|||||||
Reference in New Issue
Block a user