• Home
  • Raw
  • Download

Lines Matching refs:mdiodev

43 static int mdiobus_register_gpiod(struct mdio_device *mdiodev)  in mdiobus_register_gpiod()  argument
48 mdiodev->reset_gpio = gpiod_get_optional(&mdiodev->dev, in mdiobus_register_gpiod()
50 error = PTR_ERR_OR_ZERO(mdiodev->reset_gpio); in mdiobus_register_gpiod()
54 if (mdiodev->reset_gpio) in mdiobus_register_gpiod()
55 gpiod_set_consumer_name(mdiodev->reset_gpio, "PHY reset"); in mdiobus_register_gpiod()
60 static int mdiobus_register_reset(struct mdio_device *mdiodev) in mdiobus_register_reset() argument
64 if (mdiodev->dev.of_node) in mdiobus_register_reset()
65 reset = of_reset_control_get_exclusive(mdiodev->dev.of_node, in mdiobus_register_reset()
74 mdiodev->reset_ctrl = reset; in mdiobus_register_reset()
79 int mdiobus_register_device(struct mdio_device *mdiodev) in mdiobus_register_device() argument
83 if (mdiodev->bus->mdio_map[mdiodev->addr]) in mdiobus_register_device()
86 if (mdiodev->flags & MDIO_DEVICE_FLAG_PHY) { in mdiobus_register_device()
87 err = mdiobus_register_gpiod(mdiodev); in mdiobus_register_device()
91 err = mdiobus_register_reset(mdiodev); in mdiobus_register_device()
96 mdio_device_reset(mdiodev, 1); in mdiobus_register_device()
99 mdiodev->bus->mdio_map[mdiodev->addr] = mdiodev; in mdiobus_register_device()
105 int mdiobus_unregister_device(struct mdio_device *mdiodev) in mdiobus_unregister_device() argument
107 if (mdiodev->bus->mdio_map[mdiodev->addr] != mdiodev) in mdiobus_unregister_device()
110 reset_control_put(mdiodev->reset_ctrl); in mdiobus_unregister_device()
112 mdiodev->bus->mdio_map[mdiodev->addr] = NULL; in mdiobus_unregister_device()
120 struct mdio_device *mdiodev = bus->mdio_map[addr]; in mdiobus_get_phy() local
122 if (!mdiodev) in mdiobus_get_phy()
125 if (!(mdiodev->flags & MDIO_DEVICE_FLAG_PHY)) in mdiobus_get_phy()
128 return container_of(mdiodev, struct phy_device, mdio); in mdiobus_get_phy()
296 struct mdio_device *mdiodev) in of_mdiobus_link_mdiodev() argument
298 struct device *dev = &mdiodev->dev; in of_mdiobus_link_mdiodev()
311 if (addr == mdiodev->addr) { in of_mdiobus_link_mdiodev()
320 struct mdio_device *mdiodev) in of_mdiobus_link_mdiodev() argument
336 struct mdio_device *mdiodev; in mdiobus_create_device() local
339 mdiodev = mdio_device_create(bus, bi->mdio_addr); in mdiobus_create_device()
340 if (IS_ERR(mdiodev)) in mdiobus_create_device()
343 strncpy(mdiodev->modalias, bi->modalias, in mdiobus_create_device()
344 sizeof(mdiodev->modalias)); in mdiobus_create_device()
345 mdiodev->bus_match = mdio_device_bus_match; in mdiobus_create_device()
346 mdiodev->dev.platform_data = (void *)bi->platform_data; in mdiobus_create_device()
348 ret = mdio_device_register(mdiodev); in mdiobus_create_device()
350 mdio_device_free(mdiodev); in mdiobus_create_device()
371 struct mdio_device *mdiodev; in __mdiobus_register() local
434 mdiodev = bus->mdio_map[i]; in __mdiobus_register()
435 if (!mdiodev) in __mdiobus_register()
438 mdiodev->device_remove(mdiodev); in __mdiobus_register()
439 mdiodev->device_free(mdiodev); in __mdiobus_register()
453 struct mdio_device *mdiodev; in mdiobus_unregister() local
460 mdiodev = bus->mdio_map[i]; in mdiobus_unregister()
461 if (!mdiodev) in mdiobus_unregister()
464 if (mdiodev->reset_gpio) in mdiobus_unregister()
465 gpiod_put(mdiodev->reset_gpio); in mdiobus_unregister()
467 mdiodev->device_remove(mdiodev); in mdiobus_unregister()
468 mdiodev->device_free(mdiodev); in mdiobus_unregister()