Lines Matching refs:cphy

17 static void mdio_set_bit(struct cphy *cphy, int reg, u32 bitval)  in mdio_set_bit()  argument
21 (void) simple_mdio_read(cphy, reg, &val); in mdio_set_bit()
22 (void) simple_mdio_write(cphy, reg, val | bitval); in mdio_set_bit()
28 static void mdio_clear_bit(struct cphy *cphy, int reg, u32 bitval) in mdio_clear_bit() argument
32 (void) simple_mdio_read(cphy, reg, &val); in mdio_clear_bit()
33 (void) simple_mdio_write(cphy, reg, val & ~bitval); in mdio_clear_bit()
47 static int mv88e1xxx_reset(struct cphy *cphy, int wait) in mv88e1xxx_reset() argument
52 mdio_set_bit(cphy, MII_BMCR, BMCR_RESET); in mv88e1xxx_reset()
55 (void) simple_mdio_read(cphy, MII_BMCR, &ctl); in mv88e1xxx_reset()
64 static int mv88e1xxx_interrupt_enable(struct cphy *cphy) in mv88e1xxx_interrupt_enable() argument
67 (void) simple_mdio_write(cphy, MV88E1XXX_INTERRUPT_ENABLE_REGISTER, in mv88e1xxx_interrupt_enable()
71 if (t1_is_asic(cphy->adapter)) { in mv88e1xxx_interrupt_enable()
74 t1_tpi_read(cphy->adapter, A_ELMER0_INT_ENABLE, &elmer); in mv88e1xxx_interrupt_enable()
76 if (is_T2(cphy->adapter)) in mv88e1xxx_interrupt_enable()
78 t1_tpi_write(cphy->adapter, A_ELMER0_INT_ENABLE, elmer); in mv88e1xxx_interrupt_enable()
83 static int mv88e1xxx_interrupt_disable(struct cphy *cphy) in mv88e1xxx_interrupt_disable() argument
86 (void) simple_mdio_write(cphy, MV88E1XXX_INTERRUPT_ENABLE_REGISTER, 0); in mv88e1xxx_interrupt_disable()
89 if (t1_is_asic(cphy->adapter)) { in mv88e1xxx_interrupt_disable()
92 t1_tpi_read(cphy->adapter, A_ELMER0_INT_ENABLE, &elmer); in mv88e1xxx_interrupt_disable()
94 if (is_T2(cphy->adapter)) in mv88e1xxx_interrupt_disable()
96 t1_tpi_write(cphy->adapter, A_ELMER0_INT_ENABLE, elmer); in mv88e1xxx_interrupt_disable()
101 static int mv88e1xxx_interrupt_clear(struct cphy *cphy) in mv88e1xxx_interrupt_clear() argument
106 (void) simple_mdio_read(cphy, in mv88e1xxx_interrupt_clear()
110 if (t1_is_asic(cphy->adapter)) { in mv88e1xxx_interrupt_clear()
111 t1_tpi_read(cphy->adapter, A_ELMER0_INT_CAUSE, &elmer); in mv88e1xxx_interrupt_clear()
113 if (is_T2(cphy->adapter)) in mv88e1xxx_interrupt_clear()
115 t1_tpi_write(cphy->adapter, A_ELMER0_INT_CAUSE, elmer); in mv88e1xxx_interrupt_clear()
124 static int mv88e1xxx_set_speed_duplex(struct cphy *phy, int speed, int duplex) in mv88e1xxx_set_speed_duplex()
147 static int mv88e1xxx_crossover_set(struct cphy *cphy, int crossover) in mv88e1xxx_crossover_set() argument
151 (void) simple_mdio_read(cphy, in mv88e1xxx_crossover_set()
155 (void) simple_mdio_write(cphy, in mv88e1xxx_crossover_set()
160 static int mv88e1xxx_autoneg_enable(struct cphy *cphy) in mv88e1xxx_autoneg_enable() argument
164 (void) mv88e1xxx_crossover_set(cphy, CROSSOVER_AUTO); in mv88e1xxx_autoneg_enable()
166 (void) simple_mdio_read(cphy, MII_BMCR, &ctl); in mv88e1xxx_autoneg_enable()
169 (void) simple_mdio_write(cphy, MII_BMCR, ctl); in mv88e1xxx_autoneg_enable()
173 static int mv88e1xxx_autoneg_disable(struct cphy *cphy) in mv88e1xxx_autoneg_disable() argument
181 (void) mv88e1xxx_crossover_set(cphy, CROSSOVER_MDI); in mv88e1xxx_autoneg_disable()
187 (void) simple_mdio_read(cphy, MII_BMCR, &ctl); in mv88e1xxx_autoneg_disable()
189 (void) simple_mdio_write(cphy, MII_BMCR, ctl | BMCR_ANRESTART); in mv88e1xxx_autoneg_disable()
193 static int mv88e1xxx_autoneg_restart(struct cphy *cphy) in mv88e1xxx_autoneg_restart() argument
195 mdio_set_bit(cphy, MII_BMCR, BMCR_ANRESTART); in mv88e1xxx_autoneg_restart()
199 static int mv88e1xxx_advertise(struct cphy *phy, unsigned int advertise_map) in mv88e1xxx_advertise()
231 static int mv88e1xxx_set_loopback(struct cphy *cphy, int on) in mv88e1xxx_set_loopback() argument
234 mdio_set_bit(cphy, MII_BMCR, BMCR_LOOPBACK); in mv88e1xxx_set_loopback()
236 mdio_clear_bit(cphy, MII_BMCR, BMCR_LOOPBACK); in mv88e1xxx_set_loopback()
240 static int mv88e1xxx_get_link_status(struct cphy *cphy, int *link_ok, in mv88e1xxx_get_link_status() argument
246 (void) simple_mdio_read(cphy, in mv88e1xxx_get_link_status()
273 static int mv88e1xxx_downshift_set(struct cphy *cphy, int downshift_enable) in mv88e1xxx_downshift_set() argument
277 (void) simple_mdio_read(cphy, in mv88e1xxx_downshift_set()
288 (void) simple_mdio_write(cphy, in mv88e1xxx_downshift_set()
293 static int mv88e1xxx_interrupt_handler(struct cphy *cphy) in mv88e1xxx_interrupt_handler() argument
304 (void) simple_mdio_read(cphy, in mv88e1xxx_interrupt_handler()
312 (void) simple_mdio_read(cphy, in mv88e1xxx_interrupt_handler()
316 cphy->state |= PHY_LINK_UP; in mv88e1xxx_interrupt_handler()
318 cphy->state &= ~PHY_LINK_UP; in mv88e1xxx_interrupt_handler()
319 if (cphy->state & PHY_AUTONEG_EN) in mv88e1xxx_interrupt_handler()
320 cphy->state &= ~PHY_AUTONEG_RDY; in mv88e1xxx_interrupt_handler()
326 cphy->state |= PHY_AUTONEG_RDY; in mv88e1xxx_interrupt_handler()
328 if ((cphy->state & (PHY_LINK_UP | PHY_AUTONEG_RDY)) == in mv88e1xxx_interrupt_handler()
335 static void mv88e1xxx_destroy(struct cphy *cphy) in mv88e1xxx_destroy() argument
337 kfree(cphy); in mv88e1xxx_destroy()
356 static struct cphy *mv88e1xxx_phy_create(struct net_device *dev, int phy_addr, in mv88e1xxx_phy_create()
360 struct cphy *cphy = kzalloc(sizeof(*cphy), GFP_KERNEL); in mv88e1xxx_phy_create() local
362 if (!cphy) in mv88e1xxx_phy_create()
365 cphy_init(cphy, dev, phy_addr, &mv88e1xxx_ops, mdio_ops); in mv88e1xxx_phy_create()
373 (void) simple_mdio_write(cphy, in mv88e1xxx_phy_create()
375 (void) simple_mdio_write(cphy, in mv88e1xxx_phy_create()
378 (void) mv88e1xxx_downshift_set(cphy, 1); /* Enable downshift */ in mv88e1xxx_phy_create()
382 (void) simple_mdio_write(cphy, in mv88e1xxx_phy_create()
386 return cphy; in mv88e1xxx_phy_create()