extern int rtmdio_930x_read_sds_phy(int sds, int page, int regnum);
extern int rtmdio_930x_write_sds_phy(int sds, int page, int regnum, u16 val);
-extern int rtmdio_931x_read_sds_phy(int sds, int page, int regnum);
-extern int rtmdio_931x_write_sds_phy(int sds, int page, int regnum, u16 val);
-
extern int rtmdio_931x_read_sds_phy_new(int sds, int page, int regnum);
extern int rtmdio_931x_write_sds_phy_new(int sds, int page, int regnum, u16 val);
return cmu_band;
}
-static void rtl9310_sds_field_w(int sds, u32 page, u32 reg, int end_bit, int start_bit, u32 v)
-{
- int l = end_bit - start_bit + 1;
- u32 data = v;
-
- if (l < 32) {
- u32 mask = BIT(l) - 1;
-
- data = rtmdio_931x_read_sds_phy(sds, page, reg);
- data &= ~(mask << start_bit);
- data |= (v & mask) << start_bit;
- }
-
- rtmdio_931x_write_sds_phy(sds, page, reg, data);
-}
-
static void rtl9310_sds_field_w_new(int sds, u32 page, u32 reg, int end_bit, int start_bit, u32 v)
{
int l = end_bit - start_bit + 1;
return;
}
-static u32 rtl931x_get_analog_sds(u32 sds)
-{
- u32 sds_map[] = { 0, 1, 2, 3, 6, 7, 10, 11, 14, 15, 18, 19, 22, 23 };
-
- if (sds < 14)
- return sds_map[sds];
-
- return sds;
-}
-
void rtl931x_sds_fiber_disable(u32 sds)
{
u32 v = 0x3F;
return -1;
}
-static void rtl931x_cmu_type_set(u32 asds, phy_interface_t mode, int chiptype)
+static void rtl931x_cmu_type_set(u32 sds, phy_interface_t mode, int chiptype)
{
int cmu_type = 0; /* Clock Management Unit */
u32 cmu_page = 0;
/* case MII_10GR1000BX_AUTO:
if (chiptype)
- rtl9310_sds_field_w(asds, 0x24, 0xd, 14, 14, 0);
+ rtl9310_sds_field_w_new(sds, 0x24, 0xd, 14, 14, 0);
return; */
case PHY_INTERFACE_MODE_QSGMII:
break;
default:
- pr_info("SerDes %d mode is invalid\n", asds);
+ pr_info("SerDes %d mode is invalid\n", sds);
return;
}
if (cmu_type == 1)
cmu_page = rtl931x_sds_cmu_page_get(mode);
- lane = asds % 2;
+ lane = sds % 2;
if (!lane) {
frc_lc_mode_bitnum = 4;
frc_lc_mode_val_bitnum = 7;
}
- evenSds = asds - lane;
+ evenSds = sds - lane;
- pr_info("%s: cmu_type %0d cmu_page %x frc_cmu_spd %d lane %d asds %d\n",
- __func__, cmu_type, cmu_page, frc_cmu_spd, lane, asds);
+ pr_info("%s: cmu_type %0d cmu_page %x frc_cmu_spd %d lane %d sds %d\n",
+ __func__, cmu_type, cmu_page, frc_cmu_spd, lane, sds);
if (cmu_type == 1) {
- pr_info("%s A CMU page 0x28 0x7 %08x\n", __func__, rtmdio_931x_read_sds_phy(asds, 0x28, 0x7));
- rtl9310_sds_field_w(asds, cmu_page, 0x7, 15, 15, 0);
- pr_info("%s B CMU page 0x28 0x7 %08x\n", __func__, rtmdio_931x_read_sds_phy(asds, 0x28, 0x7));
+ pr_info("%s A CMU page 0x28 0x7 %08x\n", __func__, rtmdio_931x_read_sds_phy_new(sds, 0x28, 0x7));
+ rtl9310_sds_field_w_new(sds, cmu_page, 0x7, 15, 15, 0);
+ pr_info("%s B CMU page 0x28 0x7 %08x\n", __func__, rtmdio_931x_read_sds_phy_new(sds, 0x28, 0x7));
if (chiptype) {
- rtl9310_sds_field_w(asds, cmu_page, 0xd, 14, 14, 0);
+ rtl9310_sds_field_w_new(sds, cmu_page, 0xd, 14, 14, 0);
}
- rtl9310_sds_field_w(evenSds, 0x20, 0x12, 3, 2, 0x3);
- rtl9310_sds_field_w(evenSds, 0x20, 0x12, frc_lc_mode_bitnum, frc_lc_mode_bitnum, 1);
- rtl9310_sds_field_w(evenSds, 0x20, 0x12, frc_lc_mode_val_bitnum, frc_lc_mode_val_bitnum, 0);
- rtl9310_sds_field_w(evenSds, 0x20, 0x12, 12, 12, 1);
- rtl9310_sds_field_w(evenSds, 0x20, 0x12, 15, 13, frc_cmu_spd);
+ rtl9310_sds_field_w_new(evenSds, 0x20, 0x12, 3, 2, 0x3);
+ rtl9310_sds_field_w_new(evenSds, 0x20, 0x12, frc_lc_mode_bitnum, frc_lc_mode_bitnum, 1);
+ rtl9310_sds_field_w_new(evenSds, 0x20, 0x12, frc_lc_mode_val_bitnum, frc_lc_mode_val_bitnum, 0);
+ rtl9310_sds_field_w_new(evenSds, 0x20, 0x12, 12, 12, 1);
+ rtl9310_sds_field_w_new(evenSds, 0x20, 0x12, 15, 13, frc_cmu_spd);
}
- pr_info("%s CMU page 0x28 0x7 %08x\n", __func__, rtmdio_931x_read_sds_phy(asds, 0x28, 0x7));
+ pr_info("%s CMU page 0x28 0x7 %08x\n", __func__, rtmdio_931x_read_sds_phy_new(sds, 0x28, 0x7));
return;
}
0x0dc0, 0x01c0, 0x0200, 0x0180, 0x0160, 0x0123,
0x0123, 0x0163, 0x01a3, 0x01a0, 0x01c3, 0x09c3,
};
- u32 asds, ori, model_info, val;
+ u32 ori, model_info, val;
int chiptype = 0;
- asds = rtl931x_get_analog_sds(sds);
-
if (sds > 13)
return;
pr_info("%s: SGMII mode %08X in 0x24 0x9", __func__,
rtmdio_931x_read_sds_phy_new(sds, 0x24, 0x9));
pr_info("%s: CMU mode %08X stored even SDS %d", __func__,
- rtmdio_931x_read_sds_phy(asds & ~1, 0x20, 0x12), asds & ~1);
+ rtmdio_931x_read_sds_phy_new(sds & ~1, 0x20, 0x12), sds & ~1);
pr_info("%s: serdes_mode_ctrl %08X", __func__, RTL931X_SERDES_MODE_CTRL + 4 * (sds >> 2));
pr_info("%s CMU page 0x24 0x7 %08x\n", __func__, rtmdio_931x_read_sds_phy_new(sds, 0x24, 0x7));
pr_info("%s CMU page 0x26 0x7 %08x\n", __func__, rtmdio_931x_read_sds_phy_new(sds, 0x26, 0x7));
rtmdio_931x_write_sds_phy_new(sds, sds_config_10p3125g_type1[i].page - 0x4, sds_config_10p3125g_type1[i].reg, sds_config_10p3125g_type1[i].data);
}
- evenSds = asds - (asds % 2);
+ evenSds = sds & ~1;
for (int i = 0; i < sizeof(sds_config_10p3125g_cmu_type1) / sizeof(sds_config); ++i) {
- rtmdio_931x_write_sds_phy(evenSds,
+ rtmdio_931x_write_sds_phy_new(evenSds,
sds_config_10p3125g_cmu_type1[i].page - 0x4, sds_config_10p3125g_cmu_type1[i].reg, sds_config_10p3125g_cmu_type1[i].data);
}
return;
}
- rtl931x_cmu_type_set(asds, mode, chiptype);
+ rtl931x_cmu_type_set(sds, mode, chiptype);
if (sds >= 2 && sds <= 13) {
if (chiptype)