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;
66 dev_set_name(&mdiodev->dev, PHY_ID_FMT, bus->id, addr);
68 device_initialize(&mdiodev->dev);
70 return mdiodev;
76 * @mdiodev: mdio_device structure to be added to the MDIO bus
78 int mdio_device_register(struct mdio_device *mdiodev)
82 dev_dbg(&mdiodev->dev, "%s\n", __func__);
84 err = mdiobus_register_device(mdiodev);
88 err = device_add(&mdiodev->dev);
90 pr_err("MDIO %d failed to add\n", mdiodev->addr);
97 mdiobus_unregister_device(mdiodev);
105 * @mdiodev: mdio_device structure to remove
111 void mdio_device_remove(struct mdio_device *mdiodev)
113 device_del(&mdiodev->dev);
114 mdiobus_unregister_device(mdiodev);
118 void mdio_device_reset(struct mdio_device *mdiodev, int value)
122 if (!mdiodev->reset_gpio && !mdiodev->reset_ctrl)
125 if (mdiodev->reset_gpio)
126 gpiod_set_value_cansleep(mdiodev->reset_gpio, value);
128 if (mdiodev->reset_ctrl) {
130 reset_control_assert(mdiodev->reset_ctrl);
132 reset_control_deassert(mdiodev->reset_ctrl);
135 d = value ? mdiodev->reset_assert_delay : mdiodev->reset_deassert_delay;
150 struct mdio_device *mdiodev = to_mdio_device(dev);
151 struct device_driver *drv = mdiodev->dev.driver;
156 mdio_device_reset(mdiodev, 0);
159 err = mdiodrv->probe(mdiodev);
162 mdio_device_reset(mdiodev, 1);
171 struct mdio_device *mdiodev = to_mdio_device(dev);
172 struct device_driver *drv = mdiodev->dev.driver;
176 mdiodrv->remove(mdiodev);
179 mdio_device_reset(mdiodev, 1);
186 struct mdio_device *mdiodev = to_mdio_device(dev);
187 struct device_driver *drv = mdiodev->dev.driver;
191 mdiodrv->shutdown(mdiodev);