]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
net: dwc_eth_qos: Implement bind() for PCI devices
authorPhilip Oberfichtner <pro@denx.de>
Fri, 2 Aug 2024 09:25:38 +0000 (11:25 +0200)
committerTom Rini <trini@konsulko.com>
Tue, 3 Sep 2024 15:12:00 +0000 (09:12 -0600)
PCI devices do not necessarily use a device tree. Implement a bind()
function to assign unique device names in that case.

Signed-off-by: Philip Oberfichtner <pro@denx.de>
drivers/net/dwc_eth_qos.c

index 203c86c6cf1ab13e2991615f13b049b21b6ccaed..f6cec320210403c00c4135206e6b34bd4e48b040 100644 (file)
@@ -1383,6 +1383,21 @@ static int eqos_remove_resources_tegra186(struct udevice *dev)
        return 0;
 }
 
+static int eqos_bind(struct udevice *dev)
+{
+       static int dev_num;
+       const size_t name_sz = 16;
+       char name[name_sz];
+
+       /* Device name defaults to DT node name. */
+       if (ofnode_valid(dev_ofnode(dev)))
+               return 0;
+
+       /* Assign unique names in case there is no DT node. */
+       snprintf(name, name_sz, "eth_eqos#%d", dev_num++);
+       return device_set_name(dev, name);
+}
+
 /*
  * Get driver data based on the device tree. Boards not using a device tree can
  * overwrite this function.
@@ -1613,6 +1628,7 @@ U_BOOT_DRIVER(eth_eqos) = {
        .name = "eth_eqos",
        .id = UCLASS_ETH,
        .of_match = of_match_ptr(eqos_ids),
+       .bind   = eqos_bind,
        .probe = eqos_probe,
        .remove = eqos_remove,
        .ops = &eqos_ops,