#define RT5350_ESW_REG_PXTPC(_x) (0x150 + (4 * _x))
#define RT5350_EWS_REG_LED_POLARITY 0x168
#define RT5350_RESET_EPHY BIT(24)
-#define SYSC_REG_RESET_CTRL 0x34
enum {
/* Global attributes. */
if (ralink_soc == RT305X_SOC_RT3352) {
/* reset EPHY */
- u32 val = rt_sysc_r32(SYSC_REG_RESET_CTRL);
- rt_sysc_w32(val | RT5350_RESET_EPHY, SYSC_REG_RESET_CTRL);
- rt_sysc_w32(val, SYSC_REG_RESET_CTRL);
+ fe_reset(RT5350_RESET_EPHY);
rt305x_mii_write(esw, 0, 31, 0x8000);
for (i = 0; i < 5; i++) {
rt305x_mii_write(esw, 0, 31, 0x8000);
} else if (ralink_soc == RT305X_SOC_RT5350) {
/* reset EPHY */
- u32 val = rt_sysc_r32(SYSC_REG_RESET_CTRL);
- rt_sysc_w32(val | RT5350_RESET_EPHY, SYSC_REG_RESET_CTRL);
- rt_sysc_w32(val, SYSC_REG_RESET_CTRL);
+ fe_reset(RT5350_RESET_EPHY);
/* set the led polarity */
esw_w32(esw, esw->reg_led_polarity & 0x1F, RT5350_EWS_REG_LED_POLARITY);
rt305x_mii_write(esw, 0, 29, 0x598b);
/* select local register */
rt305x_mii_write(esw, 0, 31, 0x8000);
- } else if (ralink_soc == MT762X_SOC_MT7628AN) {
+ } else if (ralink_soc == MT762X_SOC_MT7628AN || ralink_soc == MT762X_SOC_MT7688) {
int i;
// u32 phy_val;
u32 val;
/* reset EPHY */
- val = rt_sysc_r32(SYSC_REG_RESET_CTRL);
- rt_sysc_w32(val | RT5350_RESET_EPHY, SYSC_REG_RESET_CTRL);
- rt_sysc_w32(val, SYSC_REG_RESET_CTRL);
+ fe_reset(RT5350_RESET_EPHY);
rt305x_mii_write(esw, 0, 31, 0x2000); /* change G2 page */
rt305x_mii_write(esw, 0, 26, 0x0020);
int shift = attr->id == RT5350_ESW_ATTR_PORT_TR_GOOD ? 0 : 16;
u32 reg;
- if ((ralink_soc != RT305X_SOC_RT5350) && (ralink_soc != MT762X_SOC_MT7628AN))
++ if ((ralink_soc != RT305X_SOC_RT5350) && (ralink_soc != MT762X_SOC_MT7628AN) && (ralink_soc != MT762X_SOC_MT7688))
return -EINVAL;
if (idx < 0 || idx >= RT305X_ESW_NUM_LANWAN)