Lines Matching refs:cphy
49 static int led_init(struct cphy *cphy) in led_init() argument
55 cphy_mdio_write(cphy, MDIO_MMD_PCS, 0x8304, 0xdddd); in led_init()
59 static int led_link(struct cphy *cphy, u32 do_enable) in led_link() argument
64 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_CTRL2, &led); in led_link()
68 cphy_mdio_write(cphy, MDIO_MMD_PMAPMD, MDIO_CTRL2, led); in led_link()
71 cphy_mdio_write(cphy, MDIO_MMD_PMAPMD, MDIO_CTRL2, led); in led_link()
77 static int mv88x201x_reset(struct cphy *cphy, int wait) in mv88x201x_reset() argument
85 static int mv88x201x_interrupt_enable(struct cphy *cphy) in mv88x201x_interrupt_enable() argument
88 cphy_mdio_write(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_CTRL, in mv88x201x_interrupt_enable()
92 if (t1_is_asic(cphy->adapter)) { in mv88x201x_interrupt_enable()
95 t1_tpi_read(cphy->adapter, A_ELMER0_INT_ENABLE, &elmer); in mv88x201x_interrupt_enable()
97 t1_tpi_write(cphy->adapter, A_ELMER0_INT_ENABLE, elmer); in mv88x201x_interrupt_enable()
102 static int mv88x201x_interrupt_disable(struct cphy *cphy) in mv88x201x_interrupt_disable() argument
105 cphy_mdio_write(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_CTRL, 0x0); in mv88x201x_interrupt_disable()
108 if (t1_is_asic(cphy->adapter)) { in mv88x201x_interrupt_disable()
111 t1_tpi_read(cphy->adapter, A_ELMER0_INT_ENABLE, &elmer); in mv88x201x_interrupt_disable()
113 t1_tpi_write(cphy->adapter, A_ELMER0_INT_ENABLE, elmer); in mv88x201x_interrupt_disable()
118 static int mv88x201x_interrupt_clear(struct cphy *cphy) in mv88x201x_interrupt_clear() argument
125 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_RXSTAT, &val); in mv88x201x_interrupt_clear()
126 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_TXSTAT, &val); in mv88x201x_interrupt_clear()
127 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_STAT, &val); in mv88x201x_interrupt_clear()
132 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_STAT1, &val); in mv88x201x_interrupt_clear()
136 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_STAT1, &val); in mv88x201x_interrupt_clear()
138 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_STAT, &val); in mv88x201x_interrupt_clear()
142 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_RXSTAT, &val); in mv88x201x_interrupt_clear()
143 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_TXSTAT, &val); in mv88x201x_interrupt_clear()
147 if (t1_is_asic(cphy->adapter)) { in mv88x201x_interrupt_clear()
148 t1_tpi_read(cphy->adapter, A_ELMER0_INT_CAUSE, &elmer); in mv88x201x_interrupt_clear()
150 t1_tpi_write(cphy->adapter, A_ELMER0_INT_CAUSE, elmer); in mv88x201x_interrupt_clear()
155 static int mv88x201x_interrupt_handler(struct cphy *cphy) in mv88x201x_interrupt_handler() argument
158 mv88x201x_interrupt_clear(cphy); in mv88x201x_interrupt_handler()
166 static int mv88x201x_set_loopback(struct cphy *cphy, int on) in mv88x201x_set_loopback() argument
171 static int mv88x201x_get_link_status(struct cphy *cphy, int *link_ok, in mv88x201x_get_link_status() argument
178 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_STAT1, &val); in mv88x201x_get_link_status()
182 led_link(cphy, *link_ok); in mv88x201x_get_link_status()
193 static void mv88x201x_destroy(struct cphy *cphy) in mv88x201x_destroy() argument
195 kfree(cphy); in mv88x201x_destroy()
211 static struct cphy *mv88x201x_phy_create(struct net_device *dev, int phy_addr, in mv88x201x_phy_create()
215 struct cphy *cphy = kzalloc(sizeof(*cphy), GFP_KERNEL); in mv88x201x_phy_create() local
217 if (!cphy) in mv88x201x_phy_create()
220 cphy_init(cphy, dev, phy_addr, &mv88x201x_ops, mdio_ops); in mv88x201x_phy_create()
223 cphy_mdio_read(cphy, MDIO_MMD_PCS, 0x8300, &val); in mv88x201x_phy_create()
224 cphy_mdio_write(cphy, MDIO_MMD_PCS, 0x8300, val | 1); in mv88x201x_phy_create()
227 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_STAT2, &val); in mv88x201x_phy_create()
228 cphy_mdio_read(cphy, MDIO_MMD_PCS, MDIO_STAT2, &val); in mv88x201x_phy_create()
231 led_init(cphy); in mv88x201x_phy_create()
232 return cphy; in mv88x201x_phy_create()