Lines Matching defs:cphy

5 #include "cphy.h"
18 static void mdio_set_bit(struct cphy *cphy, int reg, u32 bitval)
22 (void) simple_mdio_read(cphy, reg, &val);
23 (void) simple_mdio_write(cphy, reg, val | bitval);
29 static void mdio_clear_bit(struct cphy *cphy, int reg, u32 bitval)
33 (void) simple_mdio_read(cphy, reg, &val);
34 (void) simple_mdio_write(cphy, reg, val & ~bitval);
43 * PARAMS: cphy - Pointer to PHY instance data.
48 static int mv88e1xxx_reset(struct cphy *cphy, int wait)
53 mdio_set_bit(cphy, MII_BMCR, BMCR_RESET);
56 (void) simple_mdio_read(cphy, MII_BMCR, &ctl);
65 static int mv88e1xxx_interrupt_enable(struct cphy *cphy)
68 (void) simple_mdio_write(cphy, MV88E1XXX_INTERRUPT_ENABLE_REGISTER,
72 if (t1_is_asic(cphy->adapter)) {
75 t1_tpi_read(cphy->adapter, A_ELMER0_INT_ENABLE, &elmer);
77 if (is_T2(cphy->adapter))
79 t1_tpi_write(cphy->adapter, A_ELMER0_INT_ENABLE, elmer);
84 static int mv88e1xxx_interrupt_disable(struct cphy *cphy)
87 (void) simple_mdio_write(cphy, MV88E1XXX_INTERRUPT_ENABLE_REGISTER, 0);
90 if (t1_is_asic(cphy->adapter)) {
93 t1_tpi_read(cphy->adapter, A_ELMER0_INT_ENABLE, &elmer);
95 if (is_T2(cphy->adapter))
97 t1_tpi_write(cphy->adapter, A_ELMER0_INT_ENABLE, elmer);
102 static int mv88e1xxx_interrupt_clear(struct cphy *cphy)
107 (void) simple_mdio_read(cphy,
111 if (t1_is_asic(cphy->adapter)) {
112 t1_tpi_read(cphy->adapter, A_ELMER0_INT_CAUSE, &elmer);
114 if (is_T2(cphy->adapter))
116 t1_tpi_write(cphy->adapter, A_ELMER0_INT_CAUSE, elmer);
125 static int mv88e1xxx_set_speed_duplex(struct cphy *phy, int speed, int duplex)
148 static int mv88e1xxx_crossover_set(struct cphy *cphy, int crossover)
152 (void) simple_mdio_read(cphy,
156 (void) simple_mdio_write(cphy,
161 static int mv88e1xxx_autoneg_enable(struct cphy *cphy)
165 (void) mv88e1xxx_crossover_set(cphy, CROSSOVER_AUTO);
167 (void) simple_mdio_read(cphy, MII_BMCR, &ctl);
170 (void) simple_mdio_write(cphy, MII_BMCR, ctl);
174 static int mv88e1xxx_autoneg_disable(struct cphy *cphy)
182 (void) mv88e1xxx_crossover_set(cphy, CROSSOVER_MDI);
188 (void) simple_mdio_read(cphy, MII_BMCR, &ctl);
190 (void) simple_mdio_write(cphy, MII_BMCR, ctl | BMCR_ANRESTART);
194 static int mv88e1xxx_autoneg_restart(struct cphy *cphy)
196 mdio_set_bit(cphy, MII_BMCR, BMCR_ANRESTART);
200 static int mv88e1xxx_advertise(struct cphy *phy, unsigned int advertise_map)
232 static int mv88e1xxx_set_loopback(struct cphy *cphy, int on)
235 mdio_set_bit(cphy, MII_BMCR, BMCR_LOOPBACK);
237 mdio_clear_bit(cphy, MII_BMCR, BMCR_LOOPBACK);
241 static int mv88e1xxx_get_link_status(struct cphy *cphy, int *link_ok,
247 (void) simple_mdio_read(cphy,
274 static int mv88e1xxx_downshift_set(struct cphy *cphy, int downshift_enable)
278 (void) simple_mdio_read(cphy,
289 (void) simple_mdio_write(cphy,
294 static int mv88e1xxx_interrupt_handler(struct cphy *cphy)
305 (void) simple_mdio_read(cphy,
313 (void) simple_mdio_read(cphy,
317 cphy->state |= PHY_LINK_UP;
319 cphy->state &= ~PHY_LINK_UP;
320 if (cphy->state & PHY_AUTONEG_EN)
321 cphy->state &= ~PHY_AUTONEG_RDY;
327 cphy->state |= PHY_AUTONEG_RDY;
329 if ((cphy->state & (PHY_LINK_UP | PHY_AUTONEG_RDY)) ==
336 static void mv88e1xxx_destroy(struct cphy *cphy)
338 kfree(cphy);
357 static struct cphy *mv88e1xxx_phy_create(struct net_device *dev, int phy_addr,
361 struct cphy *cphy = kzalloc(sizeof(*cphy), GFP_KERNEL);
363 if (!cphy)
366 cphy_init(cphy, dev, phy_addr, &mv88e1xxx_ops, mdio_ops);
374 (void) simple_mdio_write(cphy,
376 (void) simple_mdio_write(cphy,
379 (void) mv88e1xxx_downshift_set(cphy, 1); /* Enable downshift */
383 (void) simple_mdio_write(cphy,
387 return cphy;