Lines Matching defs:cphy

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