Lines Matching refs:mdiodev

50 static int mdiobus_register_gpiod(struct mdio_device *mdiodev)  in mdiobus_register_gpiod()  argument
55 if (mdiodev->dev.of_node) in mdiobus_register_gpiod()
56 gpiod = fwnode_get_named_gpiod(&mdiodev->dev.of_node->fwnode, in mdiobus_register_gpiod()
65 mdiodev->reset = gpiod; in mdiobus_register_gpiod()
68 mdio_device_reset(mdiodev, 1); in mdiobus_register_gpiod()
73 int mdiobus_register_device(struct mdio_device *mdiodev) in mdiobus_register_device() argument
77 if (mdiodev->bus->mdio_map[mdiodev->addr]) in mdiobus_register_device()
80 if (mdiodev->flags & MDIO_DEVICE_FLAG_PHY) { in mdiobus_register_device()
81 err = mdiobus_register_gpiod(mdiodev); in mdiobus_register_device()
86 mdiodev->bus->mdio_map[mdiodev->addr] = mdiodev; in mdiobus_register_device()
92 int mdiobus_unregister_device(struct mdio_device *mdiodev) in mdiobus_unregister_device() argument
94 if (mdiodev->bus->mdio_map[mdiodev->addr] != mdiodev) in mdiobus_unregister_device()
97 mdiodev->bus->mdio_map[mdiodev->addr] = NULL; in mdiobus_unregister_device()
105 struct mdio_device *mdiodev = bus->mdio_map[addr]; in mdiobus_get_phy() local
107 if (!mdiodev) in mdiobus_get_phy()
110 if (!(mdiodev->flags & MDIO_DEVICE_FLAG_PHY)) in mdiobus_get_phy()
113 return container_of(mdiodev, struct phy_device, mdio); in mdiobus_get_phy()
288 struct mdio_device *mdiodev) in of_mdiobus_link_mdiodev() argument
290 struct device *dev = &mdiodev->dev; in of_mdiobus_link_mdiodev()
303 if (addr == mdiodev->addr) { in of_mdiobus_link_mdiodev()
312 struct mdio_device *mdiodev) in of_mdiobus_link_mdiodev() argument
328 struct mdio_device *mdiodev; in mdiobus_create_device() local
331 mdiodev = mdio_device_create(bus, bi->mdio_addr); in mdiobus_create_device()
332 if (IS_ERR(mdiodev)) in mdiobus_create_device()
335 strncpy(mdiodev->modalias, bi->modalias, in mdiobus_create_device()
336 sizeof(mdiodev->modalias)); in mdiobus_create_device()
337 mdiodev->bus_match = mdio_device_bus_match; in mdiobus_create_device()
338 mdiodev->dev.platform_data = (void *)bi->platform_data; in mdiobus_create_device()
340 ret = mdio_device_register(mdiodev); in mdiobus_create_device()
342 mdio_device_free(mdiodev); in mdiobus_create_device()
363 struct mdio_device *mdiodev; in __mdiobus_register() local
426 mdiodev = bus->mdio_map[i]; in __mdiobus_register()
427 if (!mdiodev) in __mdiobus_register()
430 mdiodev->device_remove(mdiodev); in __mdiobus_register()
431 mdiodev->device_free(mdiodev); in __mdiobus_register()
445 struct mdio_device *mdiodev; in mdiobus_unregister() local
452 mdiodev = bus->mdio_map[i]; in mdiobus_unregister()
453 if (!mdiodev) in mdiobus_unregister()
456 if (mdiodev->reset) in mdiobus_unregister()
457 gpiod_put(mdiodev->reset); in mdiobus_unregister()
459 mdiodev->device_remove(mdiodev); in mdiobus_unregister()
460 mdiodev->device_free(mdiodev); in mdiobus_unregister()