23 #include <linux/module.h>
24 #include <linux/slab.h>
49 ret = of_get_gpio(np, 0);
55 ret = of_get_gpio(np, 1);
101 .set_mdio_dir = mdio_dir,
102 .set_mdio_data = mdio_set,
103 .get_mdio_data = mdio_get,
114 bitbang = kzalloc(
sizeof(*bitbang),
GFP_KERNEL);
118 bitbang->
ctrl.ops = &mdio_gpio_ops;
120 bitbang->
mdc = pdata->
mdc;
125 goto out_free_bitbang;
127 new_bus->
name =
"GPIO Bitbanged MDIO",
137 if (!new_bus->
irq[i])
164 static void mdio_gpio_bus_deinit(
struct device *dev)
181 mdio_gpio_bus_deinit(dev);
190 if (pdev->
dev.of_node) {
191 pdata = mdio_gpio_of_get_data(pdev);
194 pdata = pdev->
dev.platform_data;
201 new_bus = mdio_gpio_bus_init(&pdev->
dev, pdata, bus_id);
205 if (pdev->
dev.of_node)
211 mdio_gpio_bus_deinit(&pdev->
dev);
218 mdio_gpio_bus_destroy(&pdev->
dev);
224 { .compatible =
"virtual,mdio-gpio", },
229 .probe = mdio_gpio_probe,
234 .of_match_table = mdio_gpio_of_match,
238 static int __init mdio_gpio_init(
void)
244 static void __exit mdio_gpio_exit(
void)