Lines Matching refs:bus
46 #define MDC_PIN(bus) (((struct gpio_priv *)bus->priv)->mdc_pin) argument
47 #define MDIO_PIN(bus) (((struct gpio_priv *)bus->priv)->mdio_pin) argument
49 static inline void mdio_lo(struct mii_bus *bus) in mdio_lo() argument
51 out_le32(gpio_regs+0x10, 1 << MDIO_PIN(bus)); in mdio_lo()
54 static inline void mdio_hi(struct mii_bus *bus) in mdio_hi() argument
56 out_le32(gpio_regs, 1 << MDIO_PIN(bus)); in mdio_hi()
59 static inline void mdc_lo(struct mii_bus *bus) in mdc_lo() argument
61 out_le32(gpio_regs+0x10, 1 << MDC_PIN(bus)); in mdc_lo()
64 static inline void mdc_hi(struct mii_bus *bus) in mdc_hi() argument
66 out_le32(gpio_regs, 1 << MDC_PIN(bus)); in mdc_hi()
69 static inline void mdio_active(struct mii_bus *bus) in mdio_active() argument
71 out_le32(gpio_regs+0x20, (1 << MDC_PIN(bus)) | (1 << MDIO_PIN(bus))); in mdio_active()
74 static inline void mdio_tristate(struct mii_bus *bus) in mdio_tristate() argument
76 out_le32(gpio_regs+0x30, (1 << MDIO_PIN(bus))); in mdio_tristate()
79 static inline int mdio_read(struct mii_bus *bus) in mdio_read() argument
81 return !!(in_le32(gpio_regs+0x40) & (1 << MDIO_PIN(bus))); in mdio_read()
84 static void clock_out(struct mii_bus *bus, int bit) in clock_out() argument
87 mdio_hi(bus); in clock_out()
89 mdio_lo(bus); in clock_out()
91 mdc_hi(bus); in clock_out()
93 mdc_lo(bus); in clock_out()
97 static void bitbang_pre(struct mii_bus *bus, int read, u8 addr, u8 reg) in bitbang_pre() argument
102 mdio_active(bus); in bitbang_pre()
104 clock_out(bus, 1); in bitbang_pre()
108 clock_out(bus, 0); in bitbang_pre()
109 clock_out(bus, 1); in bitbang_pre()
111 clock_out(bus, read); in bitbang_pre()
112 clock_out(bus, !read); in bitbang_pre()
116 clock_out(bus, (addr & 0x10) != 0); in bitbang_pre()
122 clock_out(bus, (reg & 0x10) != 0); in bitbang_pre()
127 static int gpio_mdio_read(struct mii_bus *bus, int phy_id, int location) in gpio_mdio_read() argument
134 bitbang_pre(bus, 1, addr, reg); in gpio_mdio_read()
137 mdio_tristate(bus); in gpio_mdio_read()
139 mdc_hi(bus); in gpio_mdio_read()
141 mdc_lo(bus); in gpio_mdio_read()
146 mdc_lo(bus); in gpio_mdio_read()
148 mdc_hi(bus); in gpio_mdio_read()
150 mdc_lo(bus); in gpio_mdio_read()
153 rdreg |= mdio_read(bus); in gpio_mdio_read()
156 mdc_hi(bus); in gpio_mdio_read()
158 mdc_lo(bus); in gpio_mdio_read()
166 static int gpio_mdio_write(struct mii_bus *bus, int phy_id, int location, u16 val) in gpio_mdio_write() argument
174 bitbang_pre(bus, 0, addr, reg); in gpio_mdio_write()
177 mdc_lo(bus); in gpio_mdio_write()
178 mdio_hi(bus); in gpio_mdio_write()
180 mdc_hi(bus); in gpio_mdio_write()
182 mdc_lo(bus); in gpio_mdio_write()
183 mdio_lo(bus); in gpio_mdio_write()
185 mdc_hi(bus); in gpio_mdio_write()
190 mdc_lo(bus); in gpio_mdio_write()
192 mdio_hi(bus); in gpio_mdio_write()
194 mdio_lo(bus); in gpio_mdio_write()
196 mdc_hi(bus); in gpio_mdio_write()
204 mdio_tristate(bus); in gpio_mdio_write()
205 mdc_lo(bus); in gpio_mdio_write()
207 mdc_hi(bus); in gpio_mdio_write()
212 static int gpio_mdio_reset(struct mii_bus *bus) in gpio_mdio_reset() argument
277 struct mii_bus *bus = dev_get_drvdata(&dev->dev); in gpio_mdio_remove() local
279 mdiobus_unregister(bus); in gpio_mdio_remove()
283 kfree(bus->priv); in gpio_mdio_remove()
284 bus->priv = NULL; in gpio_mdio_remove()
285 mdiobus_free(bus); in gpio_mdio_remove()