Lines Matching refs:bus

47 #define MDC_PIN(bus)	(((struct gpio_priv *)bus->priv)->mdc_pin)  argument
48 #define MDIO_PIN(bus) (((struct gpio_priv *)bus->priv)->mdio_pin) argument
50 static inline void mdio_lo(struct mii_bus *bus) in mdio_lo() argument
52 out_le32(gpio_regs+0x10, 1 << MDIO_PIN(bus)); in mdio_lo()
55 static inline void mdio_hi(struct mii_bus *bus) in mdio_hi() argument
57 out_le32(gpio_regs, 1 << MDIO_PIN(bus)); in mdio_hi()
60 static inline void mdc_lo(struct mii_bus *bus) in mdc_lo() argument
62 out_le32(gpio_regs+0x10, 1 << MDC_PIN(bus)); in mdc_lo()
65 static inline void mdc_hi(struct mii_bus *bus) in mdc_hi() argument
67 out_le32(gpio_regs, 1 << MDC_PIN(bus)); in mdc_hi()
70 static inline void mdio_active(struct mii_bus *bus) in mdio_active() argument
72 out_le32(gpio_regs+0x20, (1 << MDC_PIN(bus)) | (1 << MDIO_PIN(bus))); in mdio_active()
75 static inline void mdio_tristate(struct mii_bus *bus) in mdio_tristate() argument
77 out_le32(gpio_regs+0x30, (1 << MDIO_PIN(bus))); in mdio_tristate()
80 static inline int mdio_read(struct mii_bus *bus) in mdio_read() argument
82 return !!(in_le32(gpio_regs+0x40) & (1 << MDIO_PIN(bus))); in mdio_read()
85 static void clock_out(struct mii_bus *bus, int bit) in clock_out() argument
88 mdio_hi(bus); in clock_out()
90 mdio_lo(bus); in clock_out()
92 mdc_hi(bus); in clock_out()
94 mdc_lo(bus); in clock_out()
98 static void bitbang_pre(struct mii_bus *bus, int read, u8 addr, u8 reg) in bitbang_pre() argument
103 mdio_active(bus); in bitbang_pre()
105 clock_out(bus, 1); in bitbang_pre()
109 clock_out(bus, 0); in bitbang_pre()
110 clock_out(bus, 1); in bitbang_pre()
112 clock_out(bus, read); in bitbang_pre()
113 clock_out(bus, !read); in bitbang_pre()
117 clock_out(bus, (addr & 0x10) != 0); in bitbang_pre()
123 clock_out(bus, (reg & 0x10) != 0); in bitbang_pre()
128 static int gpio_mdio_read(struct mii_bus *bus, int phy_id, int location) in gpio_mdio_read() argument
135 bitbang_pre(bus, 1, addr, reg); in gpio_mdio_read()
138 mdio_tristate(bus); in gpio_mdio_read()
140 mdc_hi(bus); in gpio_mdio_read()
142 mdc_lo(bus); in gpio_mdio_read()
147 mdc_lo(bus); in gpio_mdio_read()
149 mdc_hi(bus); in gpio_mdio_read()
151 mdc_lo(bus); in gpio_mdio_read()
154 rdreg |= mdio_read(bus); in gpio_mdio_read()
157 mdc_hi(bus); in gpio_mdio_read()
159 mdc_lo(bus); in gpio_mdio_read()
167 static int gpio_mdio_write(struct mii_bus *bus, int phy_id, int location, u16 val) in gpio_mdio_write() argument
175 bitbang_pre(bus, 0, addr, reg); in gpio_mdio_write()
178 mdc_lo(bus); in gpio_mdio_write()
179 mdio_hi(bus); in gpio_mdio_write()
181 mdc_hi(bus); in gpio_mdio_write()
183 mdc_lo(bus); in gpio_mdio_write()
184 mdio_lo(bus); in gpio_mdio_write()
186 mdc_hi(bus); in gpio_mdio_write()
191 mdc_lo(bus); in gpio_mdio_write()
193 mdio_hi(bus); in gpio_mdio_write()
195 mdio_lo(bus); in gpio_mdio_write()
197 mdc_hi(bus); in gpio_mdio_write()
205 mdio_tristate(bus); in gpio_mdio_write()
206 mdc_lo(bus); in gpio_mdio_write()
208 mdc_hi(bus); in gpio_mdio_write()
213 static int gpio_mdio_reset(struct mii_bus *bus) in gpio_mdio_reset() argument
280 struct mii_bus *bus = dev_get_drvdata(&dev->dev); in gpio_mdio_remove() local
282 mdiobus_unregister(bus); in gpio_mdio_remove()
286 kfree(bus->priv); in gpio_mdio_remove()
287 bus->priv = NULL; in gpio_mdio_remove()
288 mdiobus_free(bus); in gpio_mdio_remove()