platform/x86: i2c-multi-instantiate: Allow to have same slaves
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 28 Nov 2018 11:45:33 +0000 (13:45 +0200)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 3 Dec 2018 19:40:02 +0000 (21:40 +0200)
Currently the driver will not enumerate the devices where I2C slaves
are of the same type.

Add an instance number to make them unique.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/i2c-multi-instantiate.c

index 365457f9c424563216f8a23d2f7a4def0e344652..2439d4c7111899fcdeea3d80df7c16c29674eed4 100644 (file)
@@ -92,8 +92,8 @@ static int i2c_multi_inst_probe(struct platform_device *pdev)
        for (i = 0; i < multi->num_clients && inst_data[i].type; i++) {
                memset(&board_info, 0, sizeof(board_info));
                strlcpy(board_info.type, inst_data[i].type, I2C_NAME_SIZE);
-               snprintf(name, sizeof(name), "%s-%s", match->id,
-                        inst_data[i].type);
+               snprintf(name, sizeof(name), "%s-%s.%d", match->id,
+                        inst_data[i].type, i);
                board_info.dev_name = name;
                switch (inst_data[i].flags & IRQ_RESOURCE_TYPE) {
                case IRQ_RESOURCE_GPIO: