Lines Matching refs:phydev
59 static u8 ns_exp_read(struct phy_device *phydev, u16 reg) in ns_exp_read() argument
61 phy_write(phydev, NS_EXP_MEM_ADD, reg); in ns_exp_read()
62 return phy_read(phydev, NS_EXP_MEM_DATA); in ns_exp_read()
65 static void ns_exp_write(struct phy_device *phydev, u16 reg, u8 data) in ns_exp_write() argument
67 phy_write(phydev, NS_EXP_MEM_ADD, reg); in ns_exp_write()
68 phy_write(phydev, NS_EXP_MEM_DATA, data); in ns_exp_write()
71 static int ns_config_intr(struct phy_device *phydev) in ns_config_intr() argument
75 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) in ns_config_intr()
76 err = phy_write(phydev, DP83865_INT_MASK, in ns_config_intr()
79 err = phy_write(phydev, DP83865_INT_MASK, 0); in ns_config_intr()
84 static int ns_ack_interrupt(struct phy_device *phydev) in ns_ack_interrupt() argument
86 int ret = phy_read(phydev, DP83865_INT_STATUS); in ns_ack_interrupt()
92 ret = phy_write(phydev, DP83865_INT_CLEAR, ret & ~0x7); in ns_ack_interrupt()
97 static void ns_giga_speed_fallback(struct phy_device *phydev, int mode) in ns_giga_speed_fallback() argument
99 int bmcr = phy_read(phydev, MII_BMCR); in ns_giga_speed_fallback()
101 phy_write(phydev, MII_BMCR, (bmcr | BMCR_PDOWN)); in ns_giga_speed_fallback()
104 phy_write(phydev, NS_EXP_MEM_CTL, 0); in ns_giga_speed_fallback()
105 phy_write(phydev, NS_EXP_MEM_ADD, 0x1C0); in ns_giga_speed_fallback()
106 phy_write(phydev, NS_EXP_MEM_DATA, 0x0008); in ns_giga_speed_fallback()
107 phy_write(phydev, MII_BMCR, (bmcr & ~BMCR_PDOWN)); in ns_giga_speed_fallback()
108 phy_write(phydev, LED_CTRL_REG, mode); in ns_giga_speed_fallback()
111 static void ns_10_base_t_hdx_loopack(struct phy_device *phydev, int disable) in ns_10_base_t_hdx_loopack() argument
114 ns_exp_write(phydev, 0x1c0, ns_exp_read(phydev, 0x1c0) | 1); in ns_10_base_t_hdx_loopack()
116 ns_exp_write(phydev, 0x1c0, in ns_10_base_t_hdx_loopack()
117 ns_exp_read(phydev, 0x1c0) & 0xfffe); in ns_10_base_t_hdx_loopack()
120 (ns_exp_read(phydev, 0x1c0) & 0x0001) ? "off" : "on"); in ns_10_base_t_hdx_loopack()
123 static int ns_config_init(struct phy_device *phydev) in ns_config_init() argument
125 ns_giga_speed_fallback(phydev, ALL_FALLBACK_ON); in ns_config_init()
128 ns_10_base_t_hdx_loopack(phydev, hdx_loopback_off); in ns_config_init()
129 return ns_ack_interrupt(phydev); in ns_config_init()