Use the new sequence number in all cases. Drop the logic to check for a
valid number in designware_i2c, since it will always be valid.

Signed-off-by: Simon Glass <s...@chromium.org>
---

 drivers/i2c/designware_i2c_pci.c   | 22 +---------------------
 drivers/i2c/i2c-uclass.c           |  8 +-------
 drivers/i2c/i2c-versatile.c        |  5 -----
 drivers/i2c/intel_i2c.c            | 12 +-----------
 drivers/i2c/muxes/i2c-mux-uclass.c |  4 ++--
 drivers/i2c/mvtwsi.c               |  4 ++--
 6 files changed, 7 insertions(+), 48 deletions(-)

diff --git a/drivers/i2c/designware_i2c_pci.c b/drivers/i2c/designware_i2c_pci.c
index 04921a304ac..9237726b475 100644
--- a/drivers/i2c/designware_i2c_pci.c
+++ b/drivers/i2c/designware_i2c_pci.c
@@ -90,32 +90,12 @@ static int designware_i2c_pci_probe(struct udevice *dev)
 
 static int designware_i2c_pci_bind(struct udevice *dev)
 {
-       struct uclass *uc;
        char name[20];
-       int ret;
 
        if (dev_of_valid(dev))
                return 0;
 
-       /*
-        * Create a unique device name for PCI type devices
-        * ToDo:
-        * Setting req_seq in the driver is probably not recommended.
-        * But without a DT alias the number is not configured. And
-        * using this driver is impossible for PCIe I2C devices.
-        * This can be removed, once a better (correct) way for this
-        * is found and implemented.
-        *
-        * TODO(s...@chromium.org): Perhaps if uclasses had platdata this would
-        * be possible. We cannot use static data in drivers since they may be
-        * used in SPL or before relocation.
-        */
-       ret = uclass_get(UCLASS_I2C, &uc);
-       if (ret)
-               return ret;
-
-       dev->req_seq = uclass_find_next_free_req_seq(uc);
-       sprintf(name, "i2c_designware#%u", dev->req_seq);
+       sprintf(name, "i2c_designware#%u", dev_seq(dev));
        device_set_name(dev, name);
 
        return 0;
diff --git a/drivers/i2c/i2c-uclass.c b/drivers/i2c/i2c-uclass.c
index 5c4626b0442..2625bd72dc8 100644
--- a/drivers/i2c/i2c-uclass.c
+++ b/drivers/i2c/i2c-uclass.c
@@ -700,13 +700,7 @@ static int i2c_post_bind(struct udevice *dev)
        if (!priv)
                return -ENOMEM;
 
-       debug("%s: %s, req_seq=%d\n", __func__, dev->name, dev->req_seq);
-
-       /* if there is no alias ID, use the first free */
-       if (dev->req_seq == -1)
-               dev->req_seq = ++priv->max_id;
-
-       debug("%s: %s, new req_seq=%d\n", __func__, dev->name, dev->req_seq);
+       debug("%s: %s, seq=%d\n", __func__, dev->name, dev_seq(dev));
 
 #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
        ret = dm_scan_fdt_dev(dev);
diff --git a/drivers/i2c/i2c-versatile.c b/drivers/i2c/i2c-versatile.c
index 62831522bd3..69042d54205 100644
--- a/drivers/i2c/i2c-versatile.c
+++ b/drivers/i2c/i2c-versatile.c
@@ -252,11 +252,6 @@ static int versatile_i2c_probe(struct udevice *dev)
 
        priv->base = (phys_addr_t)dev_read_addr(dev);
        priv->delay = 25;       /* 25us * 4 = 100kHz */
-       /*
-        * U-Boot still doesn't assign automatically
-        * sequence numbers to devices
-        */
-       dev->req_seq = 1;
 
        return 0;
 }
diff --git a/drivers/i2c/intel_i2c.c b/drivers/i2c/intel_i2c.c
index 3b79cb40cd3..66d017a2615 100644
--- a/drivers/i2c/intel_i2c.c
+++ b/drivers/i2c/intel_i2c.c
@@ -269,21 +269,11 @@ static int intel_i2c_probe(struct udevice *dev)
 
 static int intel_i2c_bind(struct udevice *dev)
 {
-       static int num_cards __attribute__ ((section(".data")));
        char name[20];
 
        /* Create a unique device name for PCI type devices */
        if (device_is_on_pci_bus(dev)) {
-               /*
-                * ToDo:
-                * Setting req_seq in the driver is probably not recommended.
-                * But without a DT alias the number is not configured. And
-                * using this driver is impossible for PCIe I2C devices.
-                * This can be removed, once a better (correct) way for this
-                * is found and implemented.
-                */
-               dev->req_seq = num_cards;
-               sprintf(name, "intel_i2c#%u", num_cards++);
+               sprintf(name, "intel_i2c#%u", dev_seq(dev));
                device_set_name(dev, name);
        }
 
diff --git a/drivers/i2c/muxes/i2c-mux-uclass.c 
b/drivers/i2c/muxes/i2c-mux-uclass.c
index 26897554b0f..9a8cf8fb172 100644
--- a/drivers/i2c/muxes/i2c-mux-uclass.c
+++ b/drivers/i2c/muxes/i2c-mux-uclass.c
@@ -87,8 +87,8 @@ static int i2c_mux_post_bind(struct udevice *mux)
 
                ret = device_bind_driver_to_node(mux, "i2c_mux_bus_drv",
                                                 full_name, node, &dev);
-               debug("   - bind ret=%d, %s, req_seq %d\n", ret,
-                     dev ? dev->name : NULL, dev->req_seq);
+               debug("   - bind ret=%d, %s, seq %d\n", ret,
+                     dev ? dev->name : NULL, dev_seq(dev));
                if (ret)
                        return ret;
        }
diff --git a/drivers/i2c/mvtwsi.c b/drivers/i2c/mvtwsi.c
index fdb8fd42e5c..5cec4d68c90 100644
--- a/drivers/i2c/mvtwsi.c
+++ b/drivers/i2c/mvtwsi.c
@@ -823,8 +823,8 @@ static int mvtwsi_i2c_bind(struct udevice *bus)
        struct mvtwsi_registers *twsi = dev_read_addr_ptr(bus);
 
        /* Disable the hidden slave in i2c0 of these platforms */
-       if ((IS_ENABLED(CONFIG_ARMADA_38X) || IS_ENABLED(CONFIG_ARCH_KIRKWOOD))
-                       && bus->req_seq == 0)
+       if ((IS_ENABLED(CONFIG_ARMADA_38X) ||
+           IS_ENABLED(CONFIG_ARCH_KIRKWOOD)) && !dev_seq(bus))
                twsi_disable_i2c_slave(twsi);
 
        return 0;
-- 
2.29.2.454.gaff20da3a2-goog

Reply via email to