Lines Matching defs:cphy

30 #include "cphy.h"
40 static int led_init(struct cphy *cphy)
46 cphy_mdio_write(cphy, MDIO_MMD_PCS, 0x8304, 0xdddd);
50 static int led_link(struct cphy *cphy, u32 do_enable)
55 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_CTRL2, &led);
59 cphy_mdio_write(cphy, MDIO_MMD_PMAPMD, MDIO_CTRL2, led);
62 cphy_mdio_write(cphy, MDIO_MMD_PMAPMD, MDIO_CTRL2, led);
68 static int mv88x201x_reset(struct cphy *cphy, int wait)
76 static int mv88x201x_interrupt_enable(struct cphy *cphy)
79 cphy_mdio_write(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_CTRL,
83 if (t1_is_asic(cphy->adapter)) {
86 t1_tpi_read(cphy->adapter, A_ELMER0_INT_ENABLE, &elmer);
88 t1_tpi_write(cphy->adapter, A_ELMER0_INT_ENABLE, elmer);
93 static int mv88x201x_interrupt_disable(struct cphy *cphy)
96 cphy_mdio_write(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_CTRL, 0x0);
99 if (t1_is_asic(cphy->adapter)) {
102 t1_tpi_read(cphy->adapter, A_ELMER0_INT_ENABLE, &elmer);
104 t1_tpi_write(cphy->adapter, A_ELMER0_INT_ENABLE, elmer);
109 static int mv88x201x_interrupt_clear(struct cphy *cphy)
116 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_RXSTAT, &val);
117 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_TXSTAT, &val);
118 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_STAT, &val);
123 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_STAT1, &val);
127 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_STAT1, &val);
129 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_STAT, &val);
133 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_RXSTAT, &val);
134 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_PMA_LASI_TXSTAT, &val);
138 if (t1_is_asic(cphy->adapter)) {
139 t1_tpi_read(cphy->adapter, A_ELMER0_INT_CAUSE, &elmer);
141 t1_tpi_write(cphy->adapter, A_ELMER0_INT_CAUSE, elmer);
146 static int mv88x201x_interrupt_handler(struct cphy *cphy)
149 mv88x201x_interrupt_clear(cphy);
157 static int mv88x201x_set_loopback(struct cphy *cphy, int on)
162 static int mv88x201x_get_link_status(struct cphy *cphy, int *link_ok,
169 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_STAT1, &val);
173 led_link(cphy, *link_ok);
184 static void mv88x201x_destroy(struct cphy *cphy)
186 kfree(cphy);
202 static struct cphy *mv88x201x_phy_create(struct net_device *dev, int phy_addr,
206 struct cphy *cphy = kzalloc(sizeof(*cphy), GFP_KERNEL);
208 if (!cphy)
211 cphy_init(cphy, dev, phy_addr, &mv88x201x_ops, mdio_ops);
214 cphy_mdio_read(cphy, MDIO_MMD_PCS, 0x8300, &val);
215 cphy_mdio_write(cphy, MDIO_MMD_PCS, 0x8300, val | 1);
218 cphy_mdio_read(cphy, MDIO_MMD_PMAPMD, MDIO_STAT2, &val);
219 cphy_mdio_read(cphy, MDIO_MMD_PCS, MDIO_STAT2, &val);
222 led_init(cphy);
223 return cphy;