Lines Matching refs:mdiodev

26 void mdio_device_free(struct mdio_device *mdiodev)
28 put_device(&mdiodev->dev);
40 struct mdio_device *mdiodev = to_mdio_device(dev);
46 return strcmp(mdiodev->modalias, drv->name) == 0;
51 struct mdio_device *mdiodev;
54 mdiodev = kzalloc(sizeof(*mdiodev), GFP_KERNEL);
55 if (!mdiodev)
58 mdiodev->dev.release = mdio_device_release;
59 mdiodev->dev.parent = &bus->dev;
60 mdiodev->dev.bus = &mdio_bus_type;
61 mdiodev->device_free = mdio_device_free;
62 mdiodev->device_remove = mdio_device_remove;
63 mdiodev->bus = bus;
64 mdiodev->addr = addr;
65 mdiodev->reset_state = -1;
67 dev_set_name(&mdiodev->dev, PHY_ID_FMT, bus->id, addr);
69 device_initialize(&mdiodev->dev);
71 return mdiodev;
77 * @mdiodev: mdio_device structure to be added to the MDIO bus
79 int mdio_device_register(struct mdio_device *mdiodev)
83 dev_dbg(&mdiodev->dev, "%s\n", __func__);
85 err = mdiobus_register_device(mdiodev);
89 err = device_add(&mdiodev->dev);
91 pr_err("MDIO %d failed to add\n", mdiodev->addr);
98 mdiobus_unregister_device(mdiodev);
106 * @mdiodev: mdio_device structure to remove
112 void mdio_device_remove(struct mdio_device *mdiodev)
114 device_del(&mdiodev->dev);
115 mdiobus_unregister_device(mdiodev);
119 void mdio_device_reset(struct mdio_device *mdiodev, int value)
123 if (!mdiodev->reset_gpio && !mdiodev->reset_ctrl)
126 if (mdiodev->reset_state == value)
129 if (mdiodev->reset_gpio)
130 gpiod_set_value_cansleep(mdiodev->reset_gpio, value);
132 if (mdiodev->reset_ctrl) {
134 reset_control_assert(mdiodev->reset_ctrl);
136 reset_control_deassert(mdiodev->reset_ctrl);
139 d = value ? mdiodev->reset_assert_delay : mdiodev->reset_deassert_delay;
143 mdiodev->reset_state = value;
156 struct mdio_device *mdiodev = to_mdio_device(dev);
157 struct device_driver *drv = mdiodev->dev.driver;
162 mdio_device_reset(mdiodev, 0);
165 err = mdiodrv->probe(mdiodev);
168 mdio_device_reset(mdiodev, 1);
177 struct mdio_device *mdiodev = to_mdio_device(dev);
178 struct device_driver *drv = mdiodev->dev.driver;
182 mdiodrv->remove(mdiodev);
185 mdio_device_reset(mdiodev, 1);
192 struct mdio_device *mdiodev = to_mdio_device(dev);
193 struct device_driver *drv = mdiodev->dev.driver;
197 mdiodrv->shutdown(mdiodev);