linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 01/21] dt-bindings: i2c: eeprom: Document manufacturer used as generic fallback
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-19 23:27   ` Rob Herring
  2017-04-14  1:04 ` [PATCH v3 02/21] eeprom: at24: Add OF device ID table Javier Martinez Canillas
                   ` (19 subsequent siblings)
  20 siblings, 1 reply; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, Simon Horman, devicetree,
	Sekhar Nori, David Lechner, Alexandre Belloni, Rob Herring,
	Mark Rutland

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

Document in the Device Tree binding document that this manufacturer should
be used as the generic fallback.

Suggested-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>

---

Changes in v3: None
Changes in v2: None

 Documentation/devicetree/bindings/eeprom/eeprom.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/eeprom/eeprom.txt b/Documentation/devicetree/bindings/eeprom/eeprom.txt
index 5696eb508e95..d0395f14e2b3 100644
--- a/Documentation/devicetree/bindings/eeprom/eeprom.txt
+++ b/Documentation/devicetree/bindings/eeprom/eeprom.txt
@@ -17,7 +17,8 @@ Required properties:
 	"renesas,r1ex24002"
 
 	 If there is no specific driver for <manufacturer>, a generic
-	 driver based on <type> is selected. Possible types are:
+	 driver based on <type> and manufacturer "atmel" is selected.
+	 Possible types are:
 	 "24c00", "24c01", "24c02", "24c04", "24c08", "24c16", "24c32", "24c64",
 	 "24c128", "24c256", "24c512", "24c1024", "spd"
 
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 02/21] eeprom: at24: Add OF device ID table
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
  2017-04-14  1:04 ` [PATCH v3 01/21] dt-bindings: i2c: eeprom: Document manufacturer used as generic fallback Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 03/21] ARM: dts: omap: Add generic compatible string for I2C EEPROM Javier Martinez Canillas
                   ` (18 subsequent siblings)
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, Simon Horman,
	Andy Shevchenko, Alexandre Belloni, linux-i2c

The driver doesn't have a struct of_device_id table but supported devices
are registered via Device Trees. This is working on the assumption that a
I2C device registered via OF will always match a legacy I2C device ID and
that the MODALIAS reported will always be of the form i2c:<device>.

But this could change in the future so the correct approach is to have an
OF device ID table if the devices are registered via OF.

Suggested-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>

---

Changes in v3:
- Fix wrong .data values for "atmel,24c02" and "atmel,24c64" entries.

Changes in v2:
- Only add a single OF device ID entry for each device type (Wolfram Sang).

 drivers/misc/eeprom/at24.c | 65 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 64 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c
index 764ff5df0dbc..6269de1457b9 100644
--- a/drivers/misc/eeprom/at24.c
+++ b/drivers/misc/eeprom/at24.c
@@ -12,6 +12,7 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/module.h>
+#include <linux/of_device.h>
 #include <linux/slab.h>
 #include <linux/delay.h>
 #include <linux/mutex.h>
@@ -175,6 +176,64 @@ static const struct i2c_device_id at24_ids[] = {
 };
 MODULE_DEVICE_TABLE(i2c, at24_ids);
 
+static const struct of_device_id at24_of_match[] = {
+	{
+		.compatible = "atmel,24c00",
+		.data = (void *)AT24_DEVICE_MAGIC(128 / 8, AT24_FLAG_TAKE8ADDR)
+	},
+	{
+		.compatible = "atmel,24c01",
+		.data = (void *)AT24_DEVICE_MAGIC(1024 / 8, 0)
+	},
+	{
+		.compatible = "atmel,24c02",
+		.data = (void *)AT24_DEVICE_MAGIC(2048 / 8, 0)
+	},
+	{
+		.compatible = "at24,spd",
+		.data = (void *)AT24_DEVICE_MAGIC(2048 / 8,
+				AT24_FLAG_READONLY | AT24_FLAG_IRUGO)
+	},
+	{
+		.compatible = "atmel,24c04",
+		.data = (void *)AT24_DEVICE_MAGIC(4096 / 8, 0)
+	},
+	{
+		.compatible = "atmel,24c08",
+		.data = (void *)AT24_DEVICE_MAGIC(8192 / 8, 0)
+	},
+	{
+		.compatible = "atmel,24c16",
+		.data = (void *)AT24_DEVICE_MAGIC(16384 / 8, 0)
+	},
+	{
+		.compatible = "atmel,24c32",
+		.data = (void *)AT24_DEVICE_MAGIC(32768 / 8, AT24_FLAG_ADDR16)
+	},
+	{
+		.compatible = "atmel,24c64",
+		.data = (void *)AT24_DEVICE_MAGIC(65536 / 8, AT24_FLAG_ADDR16)
+	},
+	{
+		.compatible = "atmel,24c128",
+		.data = (void *)AT24_DEVICE_MAGIC(131072 / 8, AT24_FLAG_ADDR16)
+	},
+	{
+		.compatible = "atmel,24c256",
+		.data = (void *)AT24_DEVICE_MAGIC(262144 / 8, AT24_FLAG_ADDR16)
+	},
+	{
+		.compatible = "atmel,24c512",
+		.data = (void *)AT24_DEVICE_MAGIC(524288 / 8, AT24_FLAG_ADDR16)
+	},
+	{
+		.compatible = "atmel,24c1024",
+		.data = (void *)AT24_DEVICE_MAGIC(1048576 / 8, AT24_FLAG_ADDR16)
+	},
+	{ },
+};
+MODULE_DEVICE_TABLE(of, at24_of_match);
+
 static const struct acpi_device_id at24_acpi_ids[] = {
 	{ "INT3499", AT24_DEVICE_MAGIC(8192 / 8, 0) },
 	{ }
@@ -598,7 +657,10 @@ static int at24_probe(struct i2c_client *client, const struct i2c_device_id *id)
 	if (client->dev.platform_data) {
 		chip = *(struct at24_platform_data *)client->dev.platform_data;
 	} else {
-		if (id) {
+		if (client->dev.of_node) {
+			magic = (kernel_ulong_t)
+				of_device_get_match_data(&client->dev);
+		} else if (id) {
 			magic = id->driver_data;
 		} else {
 			const struct acpi_device_id *aid;
@@ -814,6 +876,7 @@ static int at24_remove(struct i2c_client *client)
 static struct i2c_driver at24_driver = {
 	.driver = {
 		.name = "at24",
+		.of_match_table = at24_of_match,
 		.acpi_match_table = ACPI_PTR(at24_acpi_ids),
 	},
 	.probe = at24_probe,
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 03/21] ARM: dts: omap: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
  2017-04-14  1:04 ` [PATCH v3 01/21] dt-bindings: i2c: eeprom: Document manufacturer used as generic fallback Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 02/21] eeprom: at24: Add OF device ID table Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14 14:17   ` Tony Lindgren
  2017-04-19 23:56   ` Rob Herring
  2017-04-14  1:04 ` [PATCH v3 04/21] ARM: dts: turris-omnia: " Javier Martinez Canillas
                   ` (17 subsequent siblings)
  20 siblings, 2 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, linux-arm-kernel,
	Benoît Cousson, devicetree, Rob Herring, Tony Lindgren,
	Mark Rutland, linux-omap, Russell King, Mark Jackson

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---

Changes in v3: None
Changes in v2: None

 arch/arm/boot/dts/am335x-baltos.dtsi            |  2 +-
 arch/arm/boot/dts/am335x-base0033.dts           |  2 +-
 arch/arm/boot/dts/am335x-bone-common.dtsi       | 10 +++++-----
 arch/arm/boot/dts/am335x-nano.dts               |  2 +-
 arch/arm/boot/dts/am335x-pepper.dts             |  2 +-
 arch/arm/boot/dts/am335x-shc.dts                |  2 +-
 arch/arm/boot/dts/am335x-sl50.dts               |  2 +-
 arch/arm/boot/dts/am437x-idk-evm.dts            |  2 +-
 arch/arm/boot/dts/am437x-sk-evm.dts             |  2 +-
 arch/arm/boot/dts/am43x-epos-evm.dts            |  2 +-
 arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi |  2 +-
 arch/arm/boot/dts/omap3-cm-t3x.dtsi             |  2 +-
 arch/arm/boot/dts/omap3-gta04.dtsi              |  2 +-
 arch/arm/boot/dts/omap3-sb-t35.dtsi             |  2 +-
 arch/arm/boot/dts/omap4-var-som-om44.dtsi       |  2 +-
 arch/arm/boot/dts/omap5-cm-t54.dts              |  2 +-
 arch/arm/boot/dts/omap5-sbc-t54.dts             |  2 +-
 17 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/arch/arm/boot/dts/am335x-baltos.dtsi b/arch/arm/boot/dts/am335x-baltos.dtsi
index d42b98f15e8b..6ca780d0623f 100644
--- a/arch/arm/boot/dts/am335x-baltos.dtsi
+++ b/arch/arm/boot/dts/am335x-baltos.dtsi
@@ -255,7 +255,7 @@
 	};
 
 	at24@50 {
-		compatible = "at24,24c02";
+		compatible = "at24,24c02", "atmel,24c02";
 		pagesize = <8>;
 		reg = <0x50>;
 	};
diff --git a/arch/arm/boot/dts/am335x-base0033.dts b/arch/arm/boot/dts/am335x-base0033.dts
index c2bee452dab8..062067251106 100644
--- a/arch/arm/boot/dts/am335x-base0033.dts
+++ b/arch/arm/boot/dts/am335x-base0033.dts
@@ -89,7 +89,7 @@
 
 &i2c0 {
 	eeprom: eeprom@50 {
-		compatible = "at,24c256";
+		compatible = "at,24c256", "atmel,24c256";
 		reg = <0x50>;
 	};
 };
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
index bf6b26abe35b..49c8c9409ce3 100644
--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
+++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
@@ -232,7 +232,7 @@
 	};
 
 	baseboard_eeprom: baseboard_eeprom@50 {
-		compatible = "at,24c256";
+		compatible = "at,24c256", "atmel,24c256";
 		reg = <0x50>;
 
 		#address-cells = <1>;
@@ -251,7 +251,7 @@
 	clock-frequency = <100000>;
 
 	cape_eeprom0: cape_eeprom0@54 {
-		compatible = "at,24c256";
+		compatible = "at,24c256", "atmel,24c256";
 		reg = <0x54>;
 		#address-cells = <1>;
 		#size-cells = <1>;
@@ -261,7 +261,7 @@
 	};
 
 	cape_eeprom1: cape_eeprom1@55 {
-		compatible = "at,24c256";
+		compatible = "at,24c256", "atmel,24c256";
 		reg = <0x55>;
 		#address-cells = <1>;
 		#size-cells = <1>;
@@ -271,7 +271,7 @@
 	};
 
 	cape_eeprom2: cape_eeprom2@56 {
-		compatible = "at,24c256";
+		compatible = "at,24c256", "atmel,24c256";
 		reg = <0x56>;
 		#address-cells = <1>;
 		#size-cells = <1>;
@@ -281,7 +281,7 @@
 	};
 
 	cape_eeprom3: cape_eeprom3@57 {
-		compatible = "at,24c256";
+		compatible = "at,24c256", "atmel,24c256";
 		reg = <0x57>;
 		#address-cells = <1>;
 		#size-cells = <1>;
diff --git a/arch/arm/boot/dts/am335x-nano.dts b/arch/arm/boot/dts/am335x-nano.dts
index 807494bc722b..946d7069f417 100644
--- a/arch/arm/boot/dts/am335x-nano.dts
+++ b/arch/arm/boot/dts/am335x-nano.dts
@@ -224,7 +224,7 @@
 	};
 
 	eeprom@53 {
-		compatible = "microchip,24c02";
+		compatible = "microchip,24c02", "atmel,24c02";
 		reg = <0x53>;
 		pagesize = <8>;
 	};
diff --git a/arch/arm/boot/dts/am335x-pepper.dts b/arch/arm/boot/dts/am335x-pepper.dts
index 30e2f8770aaf..368cef158a19 100644
--- a/arch/arm/boot/dts/am335x-pepper.dts
+++ b/arch/arm/boot/dts/am335x-pepper.dts
@@ -67,7 +67,7 @@
 	};
 
 	eeprom: eeprom@50 {
-		compatible = "at,24c256";
+		compatible = "at,24c256", "atmel,24c256";
 		reg = <0x50>;
 	};
 
diff --git a/arch/arm/boot/dts/am335x-shc.dts b/arch/arm/boot/dts/am335x-shc.dts
index bf8727a19ece..6a14b8478af0 100644
--- a/arch/arm/boot/dts/am335x-shc.dts
+++ b/arch/arm/boot/dts/am335x-shc.dts
@@ -188,7 +188,7 @@
 	};
 
 	at24@50 {
-		compatible = "at24,24c32";
+		compatible = "at24,24c32", "atmel,24c32";
 		pagesize = <32>;
 		reg = <0x50>;
 	};
diff --git a/arch/arm/boot/dts/am335x-sl50.dts b/arch/arm/boot/dts/am335x-sl50.dts
index c5d2589c55fc..d03678de140c 100644
--- a/arch/arm/boot/dts/am335x-sl50.dts
+++ b/arch/arm/boot/dts/am335x-sl50.dts
@@ -309,7 +309,7 @@
 	};
 
 	eeprom: eeprom@50 {
-		compatible = "at,24c256";
+		compatible = "at,24c256", "atmel,24c256";
 		reg = <0x50>;
 	};
 
diff --git a/arch/arm/boot/dts/am437x-idk-evm.dts b/arch/arm/boot/dts/am437x-idk-evm.dts
index c1f7f9336e64..6c831663a75f 100644
--- a/arch/arm/boot/dts/am437x-idk-evm.dts
+++ b/arch/arm/boot/dts/am437x-idk-evm.dts
@@ -339,7 +339,7 @@
 	clock-frequency = <400000>;
 
 	at24@50 {
-		compatible = "at24,24c256";
+		compatible = "at24,24c256", "atmel,24c256";
 		pagesize = <64>;
 		reg = <0x50>;
 	};
diff --git a/arch/arm/boot/dts/am437x-sk-evm.dts b/arch/arm/boot/dts/am437x-sk-evm.dts
index 4dc54bee2f36..1531b295336e 100644
--- a/arch/arm/boot/dts/am437x-sk-evm.dts
+++ b/arch/arm/boot/dts/am437x-sk-evm.dts
@@ -511,7 +511,7 @@
 	};
 
 	at24@50 {
-		compatible = "at24,24c256";
+		compatible = "at24,24c256", "atmel,24c256";
 		pagesize = <64>;
 		reg = <0x50>;
 	};
diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts
index 9acd4ccdec4e..ca9b11375298 100644
--- a/arch/arm/boot/dts/am43x-epos-evm.dts
+++ b/arch/arm/boot/dts/am43x-epos-evm.dts
@@ -477,7 +477,7 @@
 	};
 
 	at24@50 {
-		compatible = "at24,24c256";
+		compatible = "at24,24c256", "atmel,24c256";
 		pagesize = <64>;
 		reg = <0x50>;
 	};
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi b/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
index 585d792a8fdd..6af022540300 100644
--- a/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
+++ b/arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
@@ -388,7 +388,7 @@
 	};
 
 	eeprom: eeprom@50 {
-		compatible = "at,24c32";
+		compatible = "at,24c32", "atmel,24c32";
 		reg = <0x50>;
 	};
 };
diff --git a/arch/arm/boot/dts/omap3-cm-t3x.dtsi b/arch/arm/boot/dts/omap3-cm-t3x.dtsi
index 57b9a028a49a..d960f1b3b4b1 100644
--- a/arch/arm/boot/dts/omap3-cm-t3x.dtsi
+++ b/arch/arm/boot/dts/omap3-cm-t3x.dtsi
@@ -188,7 +188,7 @@
 	clock-frequency = <400000>;
 
 	at24@50 {
-		compatible = "at24,24c02";
+		compatible = "at24,24c02", "atmel,24c02";
 		pagesize = <16>;
 		reg = <0x50>;
 	};
diff --git a/arch/arm/boot/dts/omap3-gta04.dtsi b/arch/arm/boot/dts/omap3-gta04.dtsi
index b3a8b1f24499..430ab832783b 100644
--- a/arch/arm/boot/dts/omap3-gta04.dtsi
+++ b/arch/arm/boot/dts/omap3-gta04.dtsi
@@ -418,7 +418,7 @@
 
 	/* RFID EEPROM */
 	m24lr64@50 {
-		compatible = "at,24c64";
+		compatible = "at,24c64", "atmel,24c64";
 		reg = <0x50>;
 	};
 };
diff --git a/arch/arm/boot/dts/omap3-sb-t35.dtsi b/arch/arm/boot/dts/omap3-sb-t35.dtsi
index 73643fabde5d..e54091fbd40b 100644
--- a/arch/arm/boot/dts/omap3-sb-t35.dtsi
+++ b/arch/arm/boot/dts/omap3-sb-t35.dtsi
@@ -90,7 +90,7 @@
 	clock-frequency = <400000>;
 
 	at24@50 {
-		compatible = "at24,24c02";
+		compatible = "at24,24c02", "atmel,24c02";
 		pagesize = <16>;
 		reg = <0x50>;
 	};
diff --git a/arch/arm/boot/dts/omap4-var-som-om44.dtsi b/arch/arm/boot/dts/omap4-var-som-om44.dtsi
index 758b6eb7ae43..6500bfc8d130 100644
--- a/arch/arm/boot/dts/omap4-var-som-om44.dtsi
+++ b/arch/arm/boot/dts/omap4-var-som-om44.dtsi
@@ -241,7 +241,7 @@
 	};
 
 	eeprom@50 {
-		compatible = "microchip,24c32";
+		compatible = "microchip,24c32", "atmel,24c32";
 		reg = <0x50>;
 	};
 };
diff --git a/arch/arm/boot/dts/omap5-cm-t54.dts b/arch/arm/boot/dts/omap5-cm-t54.dts
index b153f604932a..e0e31bfbf0e0 100644
--- a/arch/arm/boot/dts/omap5-cm-t54.dts
+++ b/arch/arm/boot/dts/omap5-cm-t54.dts
@@ -404,7 +404,7 @@
 	clock-frequency = <400000>;
 
 	at24@50 {
-		compatible = "at24,24c02";
+		compatible = "at24,24c02", "atmel,24c02";
 		pagesize = <16>;
 		reg = <0x50>;
 	};
diff --git a/arch/arm/boot/dts/omap5-sbc-t54.dts b/arch/arm/boot/dts/omap5-sbc-t54.dts
index 337bbbc01a35..efc70f80abae 100644
--- a/arch/arm/boot/dts/omap5-sbc-t54.dts
+++ b/arch/arm/boot/dts/omap5-sbc-t54.dts
@@ -44,7 +44,7 @@
 	clock-frequency = <400000>;
 
 	at24@50 {
-		compatible = "at24,24c02";
+		compatible = "at24,24c02", "atmel,24c02";
 		pagesize = <16>;
 		reg = <0x50>;
 	};
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 04/21] ARM: dts: turris-omnia: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (2 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 03/21] ARM: dts: omap: Add generic compatible string for I2C EEPROM Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 05/21] ARM: dts: at91: " Javier Martinez Canillas
                   ` (16 subsequent siblings)
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, devicetree,
	Gregory Clement, Sebastian Hesselbarth, Jason Cooper,
	Andrew Lunn, Rob Herring, Mark Rutland, Russell King,
	linux-arm-kernel

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---

Changes in v3: None
Changes in v2: None

 arch/arm/boot/dts/armada-385-turris-omnia.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/armada-385-turris-omnia.dts b/arch/arm/boot/dts/armada-385-turris-omnia.dts
index 28eede180e4f..f24058737a13 100644
--- a/arch/arm/boot/dts/armada-385-turris-omnia.dts
+++ b/arch/arm/boot/dts/armada-385-turris-omnia.dts
@@ -171,7 +171,7 @@
 			/* leds device (in STM32F0) at address 0x2b */
 
 			eeprom@54 {
-				compatible = "at,24c64";
+				compatible = "at,24c64", "atmel,24c64";
 				reg = <0x54>;
 
 				/* The EEPROM contains data for bootloader.
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 05/21] ARM: dts: at91: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (3 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 04/21] ARM: dts: turris-omnia: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-05-15  9:32   ` Alexandre Belloni
  2017-04-14  1:04 ` [PATCH v3 06/21] ARM: dts: efm32: " Javier Martinez Canillas
                   ` (15 subsequent siblings)
  20 siblings, 1 reply; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, devicetree, Russell King,
	Alexandre Belloni, Rob Herring, Nicolas Ferre, Peter Rosin,
	Mark Rutland, linux-arm-kernel

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Acked-by: Peter Rosin <peda@axentia.se>

---

Changes in v3:
- Add Peter Rosin acked-by tag.

Changes in v2: None

 arch/arm/boot/dts/at91-linea.dtsi   | 2 +-
 arch/arm/boot/dts/at91-tse850-3.dts | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/at91-linea.dtsi b/arch/arm/boot/dts/at91-linea.dtsi
index 0721c8472509..9bf9aaeff3e8 100644
--- a/arch/arm/boot/dts/at91-linea.dtsi
+++ b/arch/arm/boot/dts/at91-linea.dtsi
@@ -31,7 +31,7 @@
 	status = "okay";
 
 	eeprom@51 {
-		compatible = "st,24c64";
+		compatible = "st,24c64", "atmel,24c64";
 		reg = <0x51>;
 		pagesize = <32>;
 	};
diff --git a/arch/arm/boot/dts/at91-tse850-3.dts b/arch/arm/boot/dts/at91-tse850-3.dts
index 7a68805a4eb5..e760e5982565 100644
--- a/arch/arm/boot/dts/at91-tse850-3.dts
+++ b/arch/arm/boot/dts/at91-tse850-3.dts
@@ -239,7 +239,7 @@
 	};
 
 	eeprom@50 {
-		compatible = "nxp,24c02";
+		compatible = "nxp,24c02", "atmel,24c02";
 		reg = <0x50>;
 		pagesize = <16>;
 	};
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 06/21] ARM: dts: efm32: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (4 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 05/21] ARM: dts: at91: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 07/21] ARM: dts: imx: " Javier Martinez Canillas
                   ` (14 subsequent siblings)
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, devicetree, Rob Herring,
	Uwe Kleine-König, Mark Rutland, Russell King,
	linux-arm-kernel

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---

Changes in v3: None
Changes in v2: None

 arch/arm/boot/dts/efm32gg-dk3750.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/efm32gg-dk3750.dts b/arch/arm/boot/dts/efm32gg-dk3750.dts
index 98fc667d22c7..84f0a9abc290 100644
--- a/arch/arm/boot/dts/efm32gg-dk3750.dts
+++ b/arch/arm/boot/dts/efm32gg-dk3750.dts
@@ -36,7 +36,7 @@
 			};
 
 			eeprom@50 {
-				compatible = "microchip,24c02";
+				compatible = "microchip,24c02", "atmel,24c02";
 				reg = <0x50>;
 				pagesize = <16>;
 			};
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 07/21] ARM: dts: imx: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (5 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 06/21] ARM: dts: efm32: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 08/21] ARM: dts: keystone: " Javier Martinez Canillas
                   ` (13 subsequent siblings)
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, Fabio Estevam,
	devicetree, Sascha Hauer, Rob Herring, linux-arm-kernel,
	Mark Rutland, Russell King, Shawn Guo

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---

Changes in v3: None
Changes in v2: None

 arch/arm/boot/dts/imx27-phytec-phycard-s-som.dtsi | 2 +-
 arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi   | 2 +-
 arch/arm/boot/dts/imx28-evk.dts                   | 2 +-
 arch/arm/boot/dts/imx53-tqma53.dtsi               | 2 +-
 arch/arm/boot/dts/imx6q-cm-fx6.dts                | 2 +-
 arch/arm/boot/dts/imx6q-utilite-pro.dts           | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/dts/imx27-phytec-phycard-s-som.dtsi b/arch/arm/boot/dts/imx27-phytec-phycard-s-som.dtsi
index 4f3e0f473581..e4c20b3a8ccd 100644
--- a/arch/arm/boot/dts/imx27-phytec-phycard-s-som.dtsi
+++ b/arch/arm/boot/dts/imx27-phytec-phycard-s-som.dtsi
@@ -40,7 +40,7 @@
 	status = "okay";
 
 	at24@52 {
-		compatible = "at,24c32";
+		compatible = "at,24c32", "atmel,24c32";
 		pagesize = <32>;
 		reg = <0x52>;
 	};
diff --git a/arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi b/arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi
index 82fec935ce83..e46a2fd55732 100644
--- a/arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi
+++ b/arch/arm/boot/dts/imx27-phytec-phycore-som.dtsi
@@ -193,7 +193,7 @@
 	status = "okay";
 
 	at24@52 {
-		compatible = "at,24c32";
+		compatible = "at,24c32", "atmel,24c32";
 		pagesize = <32>;
 		reg = <0x52>;
 	};
diff --git a/arch/arm/boot/dts/imx28-evk.dts b/arch/arm/boot/dts/imx28-evk.dts
index a5ba669b4eaa..55c1a6a7425d 100644
--- a/arch/arm/boot/dts/imx28-evk.dts
+++ b/arch/arm/boot/dts/imx28-evk.dts
@@ -203,7 +203,7 @@
 				};
 
 				at24@51 {
-					compatible = "at24,24c32";
+					compatible = "at24,24c32", "atmel,24c32";
 					pagesize = <32>;
 					reg = <0x51>;
 				};
diff --git a/arch/arm/boot/dts/imx53-tqma53.dtsi b/arch/arm/boot/dts/imx53-tqma53.dtsi
index 85972f2201c2..95da69691de3 100644
--- a/arch/arm/boot/dts/imx53-tqma53.dtsi
+++ b/arch/arm/boot/dts/imx53-tqma53.dtsi
@@ -272,7 +272,7 @@
 	};
 
 	eeprom: 24c64@50 {
-		compatible = "at,24c64";
+		compatible = "at,24c64", "atmel,24c64";
 		pagesize = <32>;
 		reg = <0x50>;
 	};
diff --git a/arch/arm/boot/dts/imx6q-cm-fx6.dts b/arch/arm/boot/dts/imx6q-cm-fx6.dts
index 66cac5328b86..9dda47a86552 100644
--- a/arch/arm/boot/dts/imx6q-cm-fx6.dts
+++ b/arch/arm/boot/dts/imx6q-cm-fx6.dts
@@ -215,7 +215,7 @@
 	clock-frequency = <100000>;
 
 	eeprom@50 {
-		compatible = "at24,24c02";
+		compatible = "at24,24c02", "atmel,24c02";
 		reg = <0x50>;
 		pagesize = <16>;
 	};
diff --git a/arch/arm/boot/dts/imx6q-utilite-pro.dts b/arch/arm/boot/dts/imx6q-utilite-pro.dts
index 69bdd82ce21f..085080f61c7b 100644
--- a/arch/arm/boot/dts/imx6q-utilite-pro.dts
+++ b/arch/arm/boot/dts/imx6q-utilite-pro.dts
@@ -128,7 +128,7 @@
 			#size-cells = <0>;
 
 			eeprom@50 {
-				compatible = "at24,24c02";
+				compatible = "at24,24c02", "atmel,24c02";
 				reg = <0x50>;
 				pagesize = <16>;
 			};
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 08/21] ARM: dts: keystone: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (6 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 07/21] ARM: dts: imx: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 09/21] ARM: dts: lpc18xx: " Javier Martinez Canillas
                   ` (12 subsequent siblings)
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, devicetree,
	Santosh Shilimkar, Rob Herring, Mark Rutland, Russell King,
	linux-arm-kernel

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---

Changes in v3: None
Changes in v2: None

 arch/arm/boot/dts/keystone-k2e-evm.dts  | 2 +-
 arch/arm/boot/dts/keystone-k2hk-evm.dts | 2 +-
 arch/arm/boot/dts/keystone-k2l-evm.dts  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/boot/dts/keystone-k2e-evm.dts b/arch/arm/boot/dts/keystone-k2e-evm.dts
index ae1ebe7ee021..8c79caae9c1b 100644
--- a/arch/arm/boot/dts/keystone-k2e-evm.dts
+++ b/arch/arm/boot/dts/keystone-k2e-evm.dts
@@ -69,7 +69,7 @@
 
 &i2c0 {
 	dtt@50 {
-		compatible = "at,24c1024";
+		compatible = "at,24c1024", "atmel,24c1024";
 		reg = <0x50>;
 	};
 };
diff --git a/arch/arm/boot/dts/keystone-k2hk-evm.dts b/arch/arm/boot/dts/keystone-k2hk-evm.dts
index 2156ff92d08f..7c6916a11b18 100644
--- a/arch/arm/boot/dts/keystone-k2hk-evm.dts
+++ b/arch/arm/boot/dts/keystone-k2hk-evm.dts
@@ -145,7 +145,7 @@
 
 &i2c0 {
 	dtt@50 {
-		compatible = "at,24c1024";
+		compatible = "at,24c1024", "atmel,24c1024";
 		reg = <0x50>;
 	};
 };
diff --git a/arch/arm/boot/dts/keystone-k2l-evm.dts b/arch/arm/boot/dts/keystone-k2l-evm.dts
index 056b42f99d7a..685a236a57f4 100644
--- a/arch/arm/boot/dts/keystone-k2l-evm.dts
+++ b/arch/arm/boot/dts/keystone-k2l-evm.dts
@@ -42,7 +42,7 @@
 
 &i2c0 {
 	dtt@50 {
-		compatible = "at,24c1024";
+		compatible = "at,24c1024", "atmel,24c1024";
 		reg = <0x50>;
 	};
 };
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 09/21] ARM: dts: lpc18xx: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (7 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 08/21] ARM: dts: keystone: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 10/21] ARM: dts: r7s72100: " Javier Martinez Canillas
                   ` (11 subsequent siblings)
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, devicetree,
	Joachim Eastwood, Rob Herring, Mark Rutland, Russell King,
	linux-arm-kernel

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---

Changes in v3: None
Changes in v2: None

 arch/arm/boot/dts/lpc4337-ciaa.dts          | 6 +++---
 arch/arm/boot/dts/lpc4350-hitex-eval.dts    | 2 +-
 arch/arm/boot/dts/lpc4357-ea4357-devkit.dts | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/arch/arm/boot/dts/lpc4337-ciaa.dts b/arch/arm/boot/dts/lpc4337-ciaa.dts
index 7c16d639a1b4..beddaba85393 100644
--- a/arch/arm/boot/dts/lpc4337-ciaa.dts
+++ b/arch/arm/boot/dts/lpc4337-ciaa.dts
@@ -174,17 +174,17 @@
 	clock-frequency = <400000>;
 
 	eeprom@50 {
-		compatible = "microchip,24c512";
+		compatible = "microchip,24c512", "atmel,24c512";
 		reg = <0x50>;
 	};
 
 	eeprom@51 {
-		compatible = "microchip,24c02";
+		compatible = "microchip,24c02", "atmel,24c02";
 		reg = <0x51>;
 	};
 
 	eeprom@54 {
-		compatible = "microchip,24c512";
+		compatible = "microchip,24c512", "atmel,24c512";
 		reg = <0x54>;
 	};
 };
diff --git a/arch/arm/boot/dts/lpc4350-hitex-eval.dts b/arch/arm/boot/dts/lpc4350-hitex-eval.dts
index 874c75d44013..8b973f537d3a 100644
--- a/arch/arm/boot/dts/lpc4350-hitex-eval.dts
+++ b/arch/arm/boot/dts/lpc4350-hitex-eval.dts
@@ -429,7 +429,7 @@
 	};
 
 	eeprom@50 {
-		compatible = "nxp,24c02";
+		compatible = "nxp,24c02", "atmel,24c02";
 		reg = <0x50>;
 	};
 
diff --git a/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts b/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts
index 9b5fad622522..02b23fa29d75 100644
--- a/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts
+++ b/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts
@@ -490,7 +490,7 @@
 	};
 
 	eeprom@57 {
-		compatible = "microchip,24c64";
+		compatible = "microchip,24c64", "atmel,24c64";
 		reg = <0x57>;
 	};
 };
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 10/21] ARM: dts: r7s72100: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (8 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 09/21] ARM: dts: lpc18xx: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 11/21] ARM: dts: koelsch: " Javier Martinez Canillas
                   ` (10 subsequent siblings)
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, Simon Horman, devicetree,
	Russell King, linux-renesas-soc, Rob Herring, Magnus Damm,
	Mark Rutland, linux-arm-kernel

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>

---

Changes in v3:
- Add Geert Uytterhoeven reviewed-by tag.

Changes in v2: None

 arch/arm/boot/dts/r7s72100-genmai.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/r7s72100-genmai.dts b/arch/arm/boot/dts/r7s72100-genmai.dts
index 52a7b586bac7..b0db621ff176 100644
--- a/arch/arm/boot/dts/r7s72100-genmai.dts
+++ b/arch/arm/boot/dts/r7s72100-genmai.dts
@@ -57,7 +57,7 @@
 	clock-frequency = <400000>;
 
 	eeprom@50 {
-		compatible = "renesas,24c128";
+		compatible = "renesas,24c128", "atmel,24c128";
 		reg = <0x50>;
 		pagesize = <64>;
 	};
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 11/21] ARM: dts: koelsch: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (9 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 10/21] ARM: dts: r7s72100: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 12/21] ARM: dts: socfpga: " Javier Martinez Canillas
                   ` (9 subsequent siblings)
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, Simon Horman, devicetree,
	Russell King, linux-renesas-soc, Rob Herring, Magnus Damm,
	Mark Rutland, linux-arm-kernel

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>

---

Changes in v3:
- Add Geert Uytterhoeven reviewed-by tag.

Changes in v2: None

 arch/arm/boot/dts/r8a7791-koelsch.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts
index 001e6116c47c..dc8ed02de707 100644
--- a/arch/arm/boot/dts/r8a7791-koelsch.dts
+++ b/arch/arm/boot/dts/r8a7791-koelsch.dts
@@ -702,7 +702,7 @@
 	};
 
 	eeprom@50 {
-		compatible = "renesas,24c02";
+		compatible = "renesas,24c02", "atmel,24c02";
 		reg = <0x50>;
 		pagesize = <16>;
 	};
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 12/21] ARM: dts: socfpga: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (10 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 11/21] ARM: dts: koelsch: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 13/21] ARM: dts: uniphier: " Javier Martinez Canillas
                   ` (8 subsequent siblings)
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, devicetree, Dinh Nguyen,
	Rob Herring, Mark Rutland, Russell King, linux-arm-kernel

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---

Changes in v3: None
Changes in v2: None

 arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts b/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
index 363ee62457fe..24f566d81667 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
@@ -294,7 +294,7 @@
 	clock-frequency = <100000>;
 
 	at24@50 {
-		compatible = "at24,24c02";
+		compatible = "at24,24c02", "atmel,24c02";
 		pagesize = <8>;
 		reg = <0x50>;
 	};
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 13/21] ARM: dts: uniphier: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (11 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 12/21] ARM: dts: socfpga: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 14/21] ARM: dts: zynq: " Javier Martinez Canillas
                   ` (7 subsequent siblings)
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, devicetree,
	Masahiro Yamada, Rob Herring, Mark Rutland, Russell King,
	linux-arm-kernel

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---

Changes in v3: None
Changes in v2: None

 arch/arm/boot/dts/uniphier-pro4-ace.dts    | 2 +-
 arch/arm/boot/dts/uniphier-pro4-sanji.dts  | 2 +-
 arch/arm/boot/dts/uniphier-pxs2-gentil.dts | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/boot/dts/uniphier-pro4-ace.dts b/arch/arm/boot/dts/uniphier-pro4-ace.dts
index fefc89149234..b9a4919d7c93 100644
--- a/arch/arm/boot/dts/uniphier-pro4-ace.dts
+++ b/arch/arm/boot/dts/uniphier-pro4-ace.dts
@@ -88,7 +88,7 @@
 	status = "okay";
 
 	eeprom@54 {
-		compatible = "st,24c64";
+		compatible = "st,24c64", "atmel,24c64";
 		reg = <0x54>;
 		pagesize = <32>;
 	};
diff --git a/arch/arm/boot/dts/uniphier-pro4-sanji.dts b/arch/arm/boot/dts/uniphier-pro4-sanji.dts
index 6c63c8bad825..3950baa8d55d 100644
--- a/arch/arm/boot/dts/uniphier-pro4-sanji.dts
+++ b/arch/arm/boot/dts/uniphier-pro4-sanji.dts
@@ -83,7 +83,7 @@
 	status = "okay";
 
 	eeprom@54 {
-		compatible = "st,24c64";
+		compatible = "st,24c64", "atmel,24c64";
 		reg = <0x54>;
 		pagesize = <32>;
 	};
diff --git a/arch/arm/boot/dts/uniphier-pxs2-gentil.dts b/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
index cccc86658d20..afba587ffbbc 100644
--- a/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
+++ b/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
@@ -80,7 +80,7 @@
 	status = "okay";
 
 	eeprom@54 {
-		compatible = "st,24c64";
+		compatible = "st,24c64", "atmel,24c64";
 		reg = <0x54>;
 		pagesize = <32>;
 	};
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 14/21] ARM: dts: zynq: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (12 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 13/21] ARM: dts: uniphier: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 15/21] arm64: dts: ls1043a: " Javier Martinez Canillas
                   ` (6 subsequent siblings)
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, Sören Brinkmann,
	devicetree, Michal Simek, Rob Herring, Mark Rutland,
	Russell King, linux-arm-kernel

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---

Changes in v3: None
Changes in v2: None

 arch/arm/boot/dts/zynq-zc702.dts | 2 +-
 arch/arm/boot/dts/zynq-zc706.dts | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/zynq-zc702.dts b/arch/arm/boot/dts/zynq-zc702.dts
index 0cdad2cc8b78..9aae7e061d19 100644
--- a/arch/arm/boot/dts/zynq-zc702.dts
+++ b/arch/arm/boot/dts/zynq-zc702.dts
@@ -136,7 +136,7 @@
 			#size-cells = <0>;
 			reg = <2>;
 			eeprom@54 {
-				compatible = "at,24c08";
+				compatible = "at,24c08", "atmel,24c08";
 				reg = <0x54>;
 			};
 		};
diff --git a/arch/arm/boot/dts/zynq-zc706.dts b/arch/arm/boot/dts/zynq-zc706.dts
index ad4bb06dba25..ff0fca1c41c8 100644
--- a/arch/arm/boot/dts/zynq-zc706.dts
+++ b/arch/arm/boot/dts/zynq-zc706.dts
@@ -92,7 +92,7 @@
 			#size-cells = <0>;
 			reg = <2>;
 			eeprom@54 {
-				compatible = "at,24c08";
+				compatible = "at,24c08", "atmel,24c08";
 				reg = <0x54>;
 			};
 		};
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 15/21] arm64: dts: ls1043a: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (13 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 14/21] ARM: dts: zynq: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 16/21] arm64: zynqmp: " Javier Martinez Canillas
                   ` (5 subsequent siblings)
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, devicetree, Stuart Yoder,
	Rob Herring, Hongtao Jia, linux-arm-kernel, Will Deacon,
	Herbert Xu, Mark Rutland, Catalin Marinas, Shawn Guo,
	Horia Geantă

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---

Changes in v3: None
Changes in v2: None

 arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
index c37110bc1506..5389eae627e5 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
@@ -75,11 +75,11 @@
 		reg = <0x4c>;
 	};
 	eeprom@52 {
-		compatible = "at24,24c512";
+		compatible = "at24,24c512", "atmel,24c512";
 		reg = <0x52>;
 	};
 	eeprom@53 {
-		compatible = "at24,24c512";
+		compatible = "at24,24c512", "atmel,24c512";
 		reg = <0x53>;
 	};
 	rtc@68 {
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 16/21] arm64: zynqmp: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (14 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 15/21] arm64: dts: ls1043a: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 17/21] powerpc/5200: " Javier Martinez Canillas
                   ` (4 subsequent siblings)
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, Sören Brinkmann,
	devicetree, Michal Simek, Rob Herring, Will Deacon, Mark Rutland,
	Catalin Marinas, linux-arm-kernel

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---

Changes in v3: None
Changes in v2: None

 arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts b/arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts
index ef1b9e573af0..9f29f99984f7 100644
--- a/arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts
+++ b/arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts
@@ -55,7 +55,7 @@
 	status = "okay";
 	clock-frequency = <400000>;
 	eeprom@54 {
-		compatible = "at,24c64";
+		compatible = "at,24c64", "atmel,24c64";
 		reg = <0x54>;
 	};
 };
@@ -64,7 +64,7 @@
 	status = "okay";
 	clock-frequency = <400000>;
 	eeprom@55 {
-		compatible = "at,24c64";
+		compatible = "at,24c64", "atmel,24c64";
 		reg = <0x55>;
 	};
 };
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 17/21] powerpc/5200: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (15 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 16/21] arm64: zynqmp: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 18/21] powerpc/fsl: " Javier Martinez Canillas
                   ` (3 subsequent siblings)
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, devicetree,
	Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Rob Herring, Mark Rutland, linuxppc-dev

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---

Changes in v3: None
Changes in v2: None

 arch/powerpc/boot/dts/digsy_mtc.dts | 2 +-
 arch/powerpc/boot/dts/pcm030.dts    | 2 +-
 arch/powerpc/boot/dts/pcm032.dts    | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/boot/dts/digsy_mtc.dts b/arch/powerpc/boot/dts/digsy_mtc.dts
index 955bff629df3..0acb6ff7fc22 100644
--- a/arch/powerpc/boot/dts/digsy_mtc.dts
+++ b/arch/powerpc/boot/dts/digsy_mtc.dts
@@ -73,7 +73,7 @@
 
 		i2c@3d00 {
 			eeprom@50 {
-				compatible = "at,24c08";
+				compatible = "at,24c08", "atmel,24c08";
 				reg = <0x50>;
 			};
 
diff --git a/arch/powerpc/boot/dts/pcm030.dts b/arch/powerpc/boot/dts/pcm030.dts
index 192e66af0001..836e47cc4bed 100644
--- a/arch/powerpc/boot/dts/pcm030.dts
+++ b/arch/powerpc/boot/dts/pcm030.dts
@@ -71,7 +71,7 @@
 				reg = <0x51>;
 			};
 			eeprom@52 {
-				compatible = "catalyst,24c32";
+				compatible = "catalyst,24c32", "atmel,24c32";
 				reg = <0x52>;
 				pagesize = <32>;
 			};
diff --git a/arch/powerpc/boot/dts/pcm032.dts b/arch/powerpc/boot/dts/pcm032.dts
index 96b139bf50e9..576249bf2fb9 100644
--- a/arch/powerpc/boot/dts/pcm032.dts
+++ b/arch/powerpc/boot/dts/pcm032.dts
@@ -75,7 +75,7 @@
 				reg = <0x51>;
 			};
 			eeprom@52 {
-				compatible = "catalyst,24c32";
+				compatible = "catalyst,24c32", "atmel,24c32";
 				reg = <0x52>;
 				pagesize = <32>;
 			};
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 18/21] powerpc/fsl: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (16 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 17/21] powerpc/5200: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 19/21] powerpc/512x: " Javier Martinez Canillas
                   ` (2 subsequent siblings)
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, devicetree,
	Florian Larysch, Michael Ellerman, Scott Wood,
	Benjamin Herrenschmidt, Paul Mackerras, Rob Herring,
	Mark Rutland, linuxppc-dev

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---

Changes in v3: None
Changes in v2: None

 arch/powerpc/boot/dts/fsl/b4qds.dtsi    |  8 ++++----
 arch/powerpc/boot/dts/fsl/c293pcie.dts  |  2 +-
 arch/powerpc/boot/dts/fsl/p1010rdb.dtsi |  2 +-
 arch/powerpc/boot/dts/fsl/p1023rdb.dts  |  2 +-
 arch/powerpc/boot/dts/fsl/p2041rdb.dts  |  4 ++--
 arch/powerpc/boot/dts/fsl/p3041ds.dts   |  4 ++--
 arch/powerpc/boot/dts/fsl/p4080ds.dts   |  4 ++--
 arch/powerpc/boot/dts/fsl/p5020ds.dts   |  4 ++--
 arch/powerpc/boot/dts/fsl/p5040ds.dts   |  4 ++--
 arch/powerpc/boot/dts/fsl/t208xqds.dtsi |  8 ++++----
 arch/powerpc/boot/dts/fsl/t4240qds.dts  | 12 ++++++------
 arch/powerpc/boot/dts/fsl/t4240rdb.dts  |  6 +++---
 12 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/arch/powerpc/boot/dts/fsl/b4qds.dtsi b/arch/powerpc/boot/dts/fsl/b4qds.dtsi
index 3785ef826d07..18053d59be01 100644
--- a/arch/powerpc/boot/dts/fsl/b4qds.dtsi
+++ b/arch/powerpc/boot/dts/fsl/b4qds.dtsi
@@ -166,19 +166,19 @@
 					reg = <0>;
 
 					eeprom@50 {
-						compatible = "at24,24c64";
+						compatible = "at24,24c64", "atmel,24c64";
 						reg = <0x50>;
 					};
 					eeprom@51 {
-						compatible = "at24,24c256";
+						compatible = "at24,24c256", "atmel,24c256";
 						reg = <0x51>;
 					};
 					eeprom@53 {
-						compatible = "at24,24c256";
+						compatible = "at24,24c256", "atmel,24c256";
 						reg = <0x53>;
 					};
 					eeprom@57 {
-						compatible = "at24,24c256";
+						compatible = "at24,24c256", "atmel,24c256";
 						reg = <0x57>;
 					};
 					rtc@68 {
diff --git a/arch/powerpc/boot/dts/fsl/c293pcie.dts b/arch/powerpc/boot/dts/fsl/c293pcie.dts
index 66709788429d..5e905e0857cf 100644
--- a/arch/powerpc/boot/dts/fsl/c293pcie.dts
+++ b/arch/powerpc/boot/dts/fsl/c293pcie.dts
@@ -153,7 +153,7 @@
 &soc {
 	i2c@3000 {
 		eeprom@50 {
-			compatible = "st,24c1024";
+			compatible = "st,24c1024", "atmel,24c1024";
 			reg = <0x50>;
 		};
 
diff --git a/arch/powerpc/boot/dts/fsl/p1010rdb.dtsi b/arch/powerpc/boot/dts/fsl/p1010rdb.dtsi
index a8e4ba070104..2ca9cee2ddeb 100644
--- a/arch/powerpc/boot/dts/fsl/p1010rdb.dtsi
+++ b/arch/powerpc/boot/dts/fsl/p1010rdb.dtsi
@@ -89,7 +89,7 @@
 &board_soc {
 	i2c@3000 {
 		eeprom@50 {
-			compatible = "st,24c256";
+			compatible = "st,24c256", "atmel,24c256";
 			reg = <0x50>;
 		};
 
diff --git a/arch/powerpc/boot/dts/fsl/p1023rdb.dts b/arch/powerpc/boot/dts/fsl/p1023rdb.dts
index 9716ca64651c..ae38ed66a7a4 100644
--- a/arch/powerpc/boot/dts/fsl/p1023rdb.dts
+++ b/arch/powerpc/boot/dts/fsl/p1023rdb.dts
@@ -79,7 +79,7 @@
 
 		i2c@3000 {
 			eeprom@53 {
-				compatible = "at24,24c04";
+				compatible = "at24,24c04", "atmel,24c04";
 				reg = <0x53>;
 			};
 
diff --git a/arch/powerpc/boot/dts/fsl/p2041rdb.dts b/arch/powerpc/boot/dts/fsl/p2041rdb.dts
index e50fea95a853..0c34e8c46961 100644
--- a/arch/powerpc/boot/dts/fsl/p2041rdb.dts
+++ b/arch/powerpc/boot/dts/fsl/p2041rdb.dts
@@ -127,7 +127,7 @@
 				reg = <0x48>;
 			};
 			eeprom@50 {
-				compatible = "at24,24c256";
+				compatible = "at24,24c256", "atmel,24c256";
 				reg = <0x50>;
 			};
 			rtc@68 {
@@ -142,7 +142,7 @@
 
 		i2c@118100 {
 			eeprom@50 {
-				compatible = "at24,24c256";
+				compatible = "at24,24c256", "atmel,24c256";
 				reg = <0x50>;
 			};
 		};
diff --git a/arch/powerpc/boot/dts/fsl/p3041ds.dts b/arch/powerpc/boot/dts/fsl/p3041ds.dts
index 40748e415adb..383656b73e61 100644
--- a/arch/powerpc/boot/dts/fsl/p3041ds.dts
+++ b/arch/powerpc/boot/dts/fsl/p3041ds.dts
@@ -124,11 +124,11 @@
 
 		i2c@118100 {
 			eeprom@51 {
-				compatible = "at24,24c256";
+				compatible = "at24,24c256", "atmel,24c256";
 				reg = <0x51>;
 			};
 			eeprom@52 {
-				compatible = "at24,24c256";
+				compatible = "at24,24c256", "atmel,24c256";
 				reg = <0x52>;
 			};
 		};
diff --git a/arch/powerpc/boot/dts/fsl/p4080ds.dts b/arch/powerpc/boot/dts/fsl/p4080ds.dts
index 816b9788d5f6..9ca8d7cf8d48 100644
--- a/arch/powerpc/boot/dts/fsl/p4080ds.dts
+++ b/arch/powerpc/boot/dts/fsl/p4080ds.dts
@@ -125,11 +125,11 @@
 
 		i2c@118100 {
 			eeprom@51 {
-				compatible = "at24,24c256";
+				compatible = "at24,24c256", "atmel,24c256";
 				reg = <0x51>;
 			};
 			eeprom@52 {
-				compatible = "at24,24c256";
+				compatible = "at24,24c256", "atmel,24c256";
 				reg = <0x52>;
 			};
 			rtc@68 {
diff --git a/arch/powerpc/boot/dts/fsl/p5020ds.dts b/arch/powerpc/boot/dts/fsl/p5020ds.dts
index cd6f37386111..4e6eab62f747 100644
--- a/arch/powerpc/boot/dts/fsl/p5020ds.dts
+++ b/arch/powerpc/boot/dts/fsl/p5020ds.dts
@@ -124,11 +124,11 @@
 
 		i2c@118100 {
 			eeprom@51 {
-				compatible = "at24,24c256";
+				compatible = "at24,24c256", "atmel,24c256";
 				reg = <0x51>;
 			};
 			eeprom@52 {
-				compatible = "at24,24c256";
+				compatible = "at24,24c256", "atmel,24c256";
 				reg = <0x52>;
 			};
 		};
diff --git a/arch/powerpc/boot/dts/fsl/p5040ds.dts b/arch/powerpc/boot/dts/fsl/p5040ds.dts
index 45084738cf4e..d164e731146e 100644
--- a/arch/powerpc/boot/dts/fsl/p5040ds.dts
+++ b/arch/powerpc/boot/dts/fsl/p5040ds.dts
@@ -133,11 +133,11 @@
 
 		i2c@118100 {
 			eeprom@51 {
-				compatible = "at24,24c256";
+				compatible = "at24,24c256", "atmel,24c256";
 				reg = <0x51>;
 			};
 			eeprom@52 {
-				compatible = "at24,24c256";
+				compatible = "at24,24c256", "atmel,24c256";
 				reg = <0x52>;
 			};
 		};
diff --git a/arch/powerpc/boot/dts/fsl/t208xqds.dtsi b/arch/powerpc/boot/dts/fsl/t208xqds.dtsi
index ec080bd01b09..780103e3eaae 100644
--- a/arch/powerpc/boot/dts/fsl/t208xqds.dtsi
+++ b/arch/powerpc/boot/dts/fsl/t208xqds.dtsi
@@ -147,17 +147,17 @@
 					reg = <0x0>;
 
 					eeprom@50 {
-						compatible = "at24,24c512";
+						compatible = "at24,24c512", "atmel,24c512";
 						reg = <0x50>;
 					};
 
 					eeprom@51 {
-						compatible = "at24,24c02";
+						compatible = "at24,24c02", "atmel,24c02";
 						reg = <0x51>;
 					};
 
 					eeprom@57 {
-						compatible = "at24,24c02";
+						compatible = "at24,24c02", "atmel,24c02";
 						reg = <0x57>;
 					};
 
@@ -174,7 +174,7 @@
 					reg = <0x1>;
 
 					eeprom@55 {
-						compatible = "at24,24c02";
+						compatible = "at24,24c02", "atmel,24c02";
 						reg = <0x55>;
 					};
 				};
diff --git a/arch/powerpc/boot/dts/fsl/t4240qds.dts b/arch/powerpc/boot/dts/fsl/t4240qds.dts
index 9573ceada07c..9f01bcfad699 100644
--- a/arch/powerpc/boot/dts/fsl/t4240qds.dts
+++ b/arch/powerpc/boot/dts/fsl/t4240qds.dts
@@ -377,27 +377,27 @@
 					reg = <0>;
 
 					eeprom@51 {
-						compatible = "at24,24c256";
+						compatible = "at24,24c256", "atmel,24c256";
 						reg = <0x51>;
 					};
 					eeprom@52 {
-						compatible = "at24,24c256";
+						compatible = "at24,24c256", "atmel,24c256";
 						reg = <0x52>;
 					};
 					eeprom@53 {
-						compatible = "at24,24c256";
+						compatible = "at24,24c256", "atmel,24c256";
 						reg = <0x53>;
 					};
 					eeprom@54 {
-						compatible = "at24,24c256";
+						compatible = "at24,24c256", "atmel,24c256";
 						reg = <0x54>;
 					};
 					eeprom@55 {
-						compatible = "at24,24c256";
+						compatible = "at24,24c256", "atmel,24c256";
 						reg = <0x55>;
 					};
 					eeprom@56 {
-						compatible = "at24,24c256";
+						compatible = "at24,24c256", "atmel,24c256";
 						reg = <0x56>;
 					};
 					rtc@68 {
diff --git a/arch/powerpc/boot/dts/fsl/t4240rdb.dts b/arch/powerpc/boot/dts/fsl/t4240rdb.dts
index 8166c660712a..9fb192e36bf0 100644
--- a/arch/powerpc/boot/dts/fsl/t4240rdb.dts
+++ b/arch/powerpc/boot/dts/fsl/t4240rdb.dts
@@ -130,15 +130,15 @@
 				reg = <0x2f>;
 			};
 			eeprom@52 {
-				compatible = "at24,24c256";
+				compatible = "at24,24c256", "atmel,24c256";
 				reg = <0x52>;
 			};
 			eeprom@54 {
-				compatible = "at24,24c256";
+				compatible = "at24,24c256", "atmel,24c256";
 				reg = <0x54>;
 			};
 			eeprom@56 {
-				compatible = "at24,24c256";
+				compatible = "at24,24c256", "atmel,24c256";
 				reg = <0x56>;
 			};
 			rtc@68 {
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 19/21] powerpc/512x: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (17 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 18/21] powerpc/fsl: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 20/21] powerpc/83xx: " Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 21/21] powerpc/44x: " Javier Martinez Canillas
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, devicetree,
	Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Rob Herring, Mark Rutland, linuxppc-dev

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---

Changes in v3: None
Changes in v2: None

 arch/powerpc/boot/dts/mpc5121ads.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/boot/dts/mpc5121ads.dts b/arch/powerpc/boot/dts/mpc5121ads.dts
index 75888ce2c792..ece5d60256ee 100644
--- a/arch/powerpc/boot/dts/mpc5121ads.dts
+++ b/arch/powerpc/boot/dts/mpc5121ads.dts
@@ -94,7 +94,7 @@
 			};
 
 			eeprom@50 {
-				compatible = "at,24c32";
+				compatible = "at,24c32", "atmel,24c32";
 				reg = <0x50>;
 			};
 
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 20/21] powerpc/83xx: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (18 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 19/21] powerpc/512x: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  2017-04-14  1:04 ` [PATCH v3 21/21] powerpc/44x: " Javier Martinez Canillas
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, devicetree,
	Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Rob Herring, Mark Rutland, linuxppc-dev

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---

Changes in v3: None
Changes in v2: None

 arch/powerpc/boot/dts/mpc8308_p1m.dts  | 2 +-
 arch/powerpc/boot/dts/mpc8349emitx.dts | 2 +-
 arch/powerpc/boot/dts/mpc8377_rdb.dts  | 2 +-
 arch/powerpc/boot/dts/mpc8377_wlan.dts | 2 +-
 arch/powerpc/boot/dts/mpc8378_rdb.dts  | 2 +-
 arch/powerpc/boot/dts/mpc8379_rdb.dts  | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/powerpc/boot/dts/mpc8308_p1m.dts b/arch/powerpc/boot/dts/mpc8308_p1m.dts
index 57f86cdf9f36..cab933b3957a 100644
--- a/arch/powerpc/boot/dts/mpc8308_p1m.dts
+++ b/arch/powerpc/boot/dts/mpc8308_p1m.dts
@@ -123,7 +123,7 @@
 			interrupt-parent = <&ipic>;
 			dfsrr;
 			fram@50 {
-				compatible = "ramtron,24c64";
+				compatible = "ramtron,24c64", "atmel,24c64";
 				reg = <0x50>;
 			};
 		};
diff --git a/arch/powerpc/boot/dts/mpc8349emitx.dts b/arch/powerpc/boot/dts/mpc8349emitx.dts
index 90aed3ac2f69..00c5ef08e474 100644
--- a/arch/powerpc/boot/dts/mpc8349emitx.dts
+++ b/arch/powerpc/boot/dts/mpc8349emitx.dts
@@ -92,7 +92,7 @@
 			dfsrr;
 
 			eeprom: at24@50 {
-				compatible = "st,24c256";
+				compatible = "st,24c256", "atmel,24c256";
 				reg = <0x50>;
 			};
 
diff --git a/arch/powerpc/boot/dts/mpc8377_rdb.dts b/arch/powerpc/boot/dts/mpc8377_rdb.dts
index e32613963ab0..02c59d05fe16 100644
--- a/arch/powerpc/boot/dts/mpc8377_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc8377_rdb.dts
@@ -150,7 +150,7 @@
 				};
 
 				at24@50 {
-					compatible = "at24,24c256";
+					compatible = "at24,24c256", "atmel,24c256";
 					reg = <0x50>;
 				};
 
diff --git a/arch/powerpc/boot/dts/mpc8377_wlan.dts b/arch/powerpc/boot/dts/mpc8377_wlan.dts
index c0c790168b96..2bc3ed8a18c3 100644
--- a/arch/powerpc/boot/dts/mpc8377_wlan.dts
+++ b/arch/powerpc/boot/dts/mpc8377_wlan.dts
@@ -135,7 +135,7 @@
 				dfsrr;
 
 				at24@50 {
-					compatible = "at24,24c256";
+					compatible = "at24,24c256", "atmel,24c256";
 					reg = <0x50>;
 				};
 
diff --git a/arch/powerpc/boot/dts/mpc8378_rdb.dts b/arch/powerpc/boot/dts/mpc8378_rdb.dts
index 71842fcd621f..9e681e3d6064 100644
--- a/arch/powerpc/boot/dts/mpc8378_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc8378_rdb.dts
@@ -150,7 +150,7 @@
 				};
 
 				at24@50 {
-					compatible = "at24,24c256";
+					compatible = "at24,24c256", "atmel,24c256";
 					reg = <0x50>;
 				};
 
diff --git a/arch/powerpc/boot/dts/mpc8379_rdb.dts b/arch/powerpc/boot/dts/mpc8379_rdb.dts
index e442a29b2fe0..3197bb78e19b 100644
--- a/arch/powerpc/boot/dts/mpc8379_rdb.dts
+++ b/arch/powerpc/boot/dts/mpc8379_rdb.dts
@@ -148,7 +148,7 @@
 				};
 
 				at24@50 {
-					compatible = "at24,24c256";
+					compatible = "at24,24c256", "atmel,24c256";
 					reg = <0x50>;
 				};
 
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* [PATCH v3 21/21] powerpc/44x: Add generic compatible string for I2C EEPROM
       [not found] <20170414010445.21727-1-javier@osg.samsung.com>
                   ` (19 preceding siblings ...)
  2017-04-14  1:04 ` [PATCH v3 20/21] powerpc/83xx: " Javier Martinez Canillas
@ 2017-04-14  1:04 ` Javier Martinez Canillas
  20 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-04-14  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Wolfram Sang, Javier Martinez Canillas, devicetree,
	Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	Rob Herring, Mark Rutland, linuxppc-dev

The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.

But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.

So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>

---

Changes in v3: None
Changes in v2: None

 arch/powerpc/boot/dts/warp.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/boot/dts/warp.dts b/arch/powerpc/boot/dts/warp.dts
index e576ee85c42f..19e0ec83b1a5 100644
--- a/arch/powerpc/boot/dts/warp.dts
+++ b/arch/powerpc/boot/dts/warp.dts
@@ -238,7 +238,7 @@
 
 				/* This will create 52 and 53 */
 				at24@52 {
-					compatible = "at,24c04";
+					compatible = "at,24c04", "atmel,24c04";
 					reg = <0x52>;
 				};
 			};
-- 
2.9.3

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v3 03/21] ARM: dts: omap: Add generic compatible string for I2C EEPROM
  2017-04-14  1:04 ` [PATCH v3 03/21] ARM: dts: omap: Add generic compatible string for I2C EEPROM Javier Martinez Canillas
@ 2017-04-14 14:17   ` Tony Lindgren
  2017-04-19 23:56   ` Rob Herring
  1 sibling, 0 replies; 28+ messages in thread
From: Tony Lindgren @ 2017-04-14 14:17 UTC (permalink / raw)
  To: Javier Martinez Canillas
  Cc: linux-kernel, Wolfram Sang, linux-arm-kernel,
	Benoît Cousson, devicetree, Rob Herring, Mark Rutland,
	linux-omap, Russell King, Mark Jackson

* Javier Martinez Canillas <javier@osg.samsung.com> [170413 18:08]:
> The at24 driver allows to register I2C EEPROM chips using different vendor
> and devices, but the I2C subsystem does not take the vendor into account
> when matching using the I2C table since it only has device entries.
> 
> But when matching using an OF table, both the vendor and device has to be
> taken into account so the driver defines only a set of compatible strings
> using the "atmel" vendor as a generic fallback for compatible I2C devices.
> 
> So add this generic fallback to the device node compatible string to make
> the device to match the driver using the OF device ID table.
> 
> Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>

Looks good to me assuming this will get merged in a single series:

Acked-by: Tony Lindgren <tony@atomide.com>

Or if you want me to pick this patch separately, let me know.

Regards,

Tony

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v3 01/21] dt-bindings: i2c: eeprom: Document manufacturer used as generic fallback
  2017-04-14  1:04 ` [PATCH v3 01/21] dt-bindings: i2c: eeprom: Document manufacturer used as generic fallback Javier Martinez Canillas
@ 2017-04-19 23:27   ` Rob Herring
  2017-04-19 23:35     ` Rob Herring
  0 siblings, 1 reply; 28+ messages in thread
From: Rob Herring @ 2017-04-19 23:27 UTC (permalink / raw)
  To: Javier Martinez Canillas
  Cc: linux-kernel, Wolfram Sang, Simon Horman, devicetree,
	Sekhar Nori, David Lechner, Alexandre Belloni, Mark Rutland

On Thu, Apr 13, 2017 at 10:04:25PM -0300, Javier Martinez Canillas wrote:
> The at24 driver allows to register I2C EEPROM chips using different vendor
> and devices, but the I2C subsystem does not take the vendor into account
> when matching using the I2C table since it only has device entries.
> 
> But when matching using an OF table, both the vendor and device has to be
> taken into account so the driver defines only a set of compatible strings
> using the "atmel" vendor as a generic fallback for compatible I2C devices.
> 
> Document in the Device Tree binding document that this manufacturer should
> be used as the generic fallback.
> 
> Suggested-by: Wolfram Sang <wsa@the-dreams.de>
> Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
> 
> ---
> 
> Changes in v3: None
> Changes in v2: None
> 
>  Documentation/devicetree/bindings/eeprom/eeprom.txt | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/eeprom/eeprom.txt b/Documentation/devicetree/bindings/eeprom/eeprom.txt
> index 5696eb508e95..d0395f14e2b3 100644
> --- a/Documentation/devicetree/bindings/eeprom/eeprom.txt
> +++ b/Documentation/devicetree/bindings/eeprom/eeprom.txt
> @@ -17,7 +17,8 @@ Required properties:
>  	"renesas,r1ex24002"
>  
>  	 If there is no specific driver for <manufacturer>, a generic
> -	 driver based on <type> is selected. Possible types are:
> +	 driver based on <type> and manufacturer "atmel" is selected.
> +	 Possible types are:

This isn't quite right. What the driver does isn't really relevant to 
the binding.

These types with no vendor are used as the compatible string, so we have 
to allow them. But it should be clear that no vendor is deprecated. 
Ironically, it is a lot of Atmel boards that do this. 

We should also explicitly list what are valid manufacturers. We also 
have "at" as a vendor prefix which perhaps we should explicitly say is 
deprecated.

Rob

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v3 01/21] dt-bindings: i2c: eeprom: Document manufacturer used as generic fallback
  2017-04-19 23:27   ` Rob Herring
@ 2017-04-19 23:35     ` Rob Herring
  2017-05-15 10:48       ` Javier Martinez Canillas
  0 siblings, 1 reply; 28+ messages in thread
From: Rob Herring @ 2017-04-19 23:35 UTC (permalink / raw)
  To: Javier Martinez Canillas
  Cc: linux-kernel, Wolfram Sang, Simon Horman, devicetree,
	Sekhar Nori, David Lechner, Alexandre Belloni, Mark Rutland

On Wed, Apr 19, 2017 at 6:27 PM, Rob Herring <robh@kernel.org> wrote:
> On Thu, Apr 13, 2017 at 10:04:25PM -0300, Javier Martinez Canillas wrote:
>> The at24 driver allows to register I2C EEPROM chips using different vendor
>> and devices, but the I2C subsystem does not take the vendor into account
>> when matching using the I2C table since it only has device entries.
>>
>> But when matching using an OF table, both the vendor and device has to be
>> taken into account so the driver defines only a set of compatible strings
>> using the "atmel" vendor as a generic fallback for compatible I2C devices.
>>
>> Document in the Device Tree binding document that this manufacturer should
>> be used as the generic fallback.
>>
>> Suggested-by: Wolfram Sang <wsa@the-dreams.de>
>> Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
>>
>> ---
>>
>> Changes in v3: None
>> Changes in v2: None
>>
>>  Documentation/devicetree/bindings/eeprom/eeprom.txt | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/eeprom/eeprom.txt b/Documentation/devicetree/bindings/eeprom/eeprom.txt
>> index 5696eb508e95..d0395f14e2b3 100644
>> --- a/Documentation/devicetree/bindings/eeprom/eeprom.txt
>> +++ b/Documentation/devicetree/bindings/eeprom/eeprom.txt
>> @@ -17,7 +17,8 @@ Required properties:
>>       "renesas,r1ex24002"
>>
>>        If there is no specific driver for <manufacturer>, a generic
>> -      driver based on <type> is selected. Possible types are:
>> +      driver based on <type> and manufacturer "atmel" is selected.
>> +      Possible types are:
>
> This isn't quite right. What the driver does isn't really relevant to
> the binding.
>
> These types with no vendor are used as the compatible string, so we have
> to allow them. But it should be clear that no vendor is deprecated.
> Ironically, it is a lot of Atmel boards that do this.
>
> We should also explicitly list what are valid manufacturers. We also
> have "at" as a vendor prefix which perhaps we should explicitly say is
> deprecated.

I should perhaps look at the rest of the series before replying..

Based on that, the only comment that applies is listing the
manufacturers that are valid. From a DT perspective, I should not have
to know what the OS driver supports. If the device is compatible with
atmel, then that is required. If not, then the specific manufacturer's
compatible alone is enough and the OS has to match to that.

Rob

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v3 03/21] ARM: dts: omap: Add generic compatible string for I2C EEPROM
  2017-04-14  1:04 ` [PATCH v3 03/21] ARM: dts: omap: Add generic compatible string for I2C EEPROM Javier Martinez Canillas
  2017-04-14 14:17   ` Tony Lindgren
@ 2017-04-19 23:56   ` Rob Herring
  2017-05-15 10:55     ` Javier Martinez Canillas
  1 sibling, 1 reply; 28+ messages in thread
From: Rob Herring @ 2017-04-19 23:56 UTC (permalink / raw)
  To: Javier Martinez Canillas
  Cc: linux-kernel, Wolfram Sang, linux-arm-kernel,
	Benoît Cousson, devicetree, Tony Lindgren, Mark Rutland,
	linux-omap, Russell King, Mark Jackson

On Thu, Apr 13, 2017 at 10:04:27PM -0300, Javier Martinez Canillas wrote:
> The at24 driver allows to register I2C EEPROM chips using different vendor
> and devices, but the I2C subsystem does not take the vendor into account
> when matching using the I2C table since it only has device entries.
> 
> But when matching using an OF table, both the vendor and device has to be
> taken into account so the driver defines only a set of compatible strings
> using the "atmel" vendor as a generic fallback for compatible I2C devices.
> 
> So add this generic fallback to the device node compatible string to make
> the device to match the driver using the OF device ID table.
> 
> Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
> ---
> 
> Changes in v3: None
> Changes in v2: None
> 
>  arch/arm/boot/dts/am335x-baltos.dtsi            |  2 +-
>  arch/arm/boot/dts/am335x-base0033.dts           |  2 +-
>  arch/arm/boot/dts/am335x-bone-common.dtsi       | 10 +++++-----
>  arch/arm/boot/dts/am335x-nano.dts               |  2 +-
>  arch/arm/boot/dts/am335x-pepper.dts             |  2 +-
>  arch/arm/boot/dts/am335x-shc.dts                |  2 +-
>  arch/arm/boot/dts/am335x-sl50.dts               |  2 +-
>  arch/arm/boot/dts/am437x-idk-evm.dts            |  2 +-
>  arch/arm/boot/dts/am437x-sk-evm.dts             |  2 +-
>  arch/arm/boot/dts/am43x-epos-evm.dts            |  2 +-
>  arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi |  2 +-
>  arch/arm/boot/dts/omap3-cm-t3x.dtsi             |  2 +-
>  arch/arm/boot/dts/omap3-gta04.dtsi              |  2 +-
>  arch/arm/boot/dts/omap3-sb-t35.dtsi             |  2 +-
>  arch/arm/boot/dts/omap4-var-som-om44.dtsi       |  2 +-
>  arch/arm/boot/dts/omap5-cm-t54.dts              |  2 +-
>  arch/arm/boot/dts/omap5-sbc-t54.dts             |  2 +-
>  17 files changed, 21 insertions(+), 21 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/am335x-baltos.dtsi b/arch/arm/boot/dts/am335x-baltos.dtsi
> index d42b98f15e8b..6ca780d0623f 100644
> --- a/arch/arm/boot/dts/am335x-baltos.dtsi
> +++ b/arch/arm/boot/dts/am335x-baltos.dtsi
> @@ -255,7 +255,7 @@
>  	};
>  
>  	at24@50 {
> -		compatible = "at24,24c02";
> +		compatible = "at24,24c02", "atmel,24c02";

I think you can just drop the at24 compatibles. A new kernel doesn't 
need it. An old kernel ignores the manufacturer. I checked that u-boot 
only matches on "atmel,*", so okay there. Don't know about the *BSDs. I 
couldn't find anything.

Minimally, the deprecated compatible should come last.

Rob

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v3 05/21] ARM: dts: at91: Add generic compatible string for I2C EEPROM
  2017-04-14  1:04 ` [PATCH v3 05/21] ARM: dts: at91: " Javier Martinez Canillas
@ 2017-05-15  9:32   ` Alexandre Belloni
  0 siblings, 0 replies; 28+ messages in thread
From: Alexandre Belloni @ 2017-05-15  9:32 UTC (permalink / raw)
  To: Javier Martinez Canillas
  Cc: linux-kernel, Wolfram Sang, devicetree, Russell King,
	Rob Herring, Nicolas Ferre, Peter Rosin, Mark Rutland,
	linux-arm-kernel

On 13/04/2017 at 22:04:29 -0300, Javier Martinez Canillas wrote:
> The at24 driver allows to register I2C EEPROM chips using different vendor
> and devices, but the I2C subsystem does not take the vendor into account
> when matching using the I2C table since it only has device entries.
> 
> But when matching using an OF table, both the vendor and device has to be
> taken into account so the driver defines only a set of compatible strings
> using the "atmel" vendor as a generic fallback for compatible I2C devices.
> 
> So add this generic fallback to the device node compatible string to make
> the device to match the driver using the OF device ID table.
> 
> Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
> Acked-by: Peter Rosin <peda@axentia.se>
> 
> ---
> 
> Changes in v3:
> - Add Peter Rosin acked-by tag.
> 
> Changes in v2: None
> 
>  arch/arm/boot/dts/at91-linea.dtsi   | 2 +-
>  arch/arm/boot/dts/at91-tse850-3.dts | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
Applied, thanks.

-- 
Alexandre Belloni, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v3 01/21] dt-bindings: i2c: eeprom: Document manufacturer used as generic fallback
  2017-04-19 23:35     ` Rob Herring
@ 2017-05-15 10:48       ` Javier Martinez Canillas
  0 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-05-15 10:48 UTC (permalink / raw)
  To: Rob Herring
  Cc: Javier Martinez Canillas, linux-kernel, Wolfram Sang,
	Simon Horman, devicetree, Sekhar Nori, David Lechner,
	Alexandre Belloni, Mark Rutland

Hello Rob,

Thanks for the feedback and sorry for the delayed response (I've been
moving to a new country so didn't have too much time to answer
emails).

On Thu, Apr 20, 2017 at 1:35 AM, Rob Herring <robh@kernel.org> wrote:
> On Wed, Apr 19, 2017 at 6:27 PM, Rob Herring <robh@kernel.org> wrote:
>> On Thu, Apr 13, 2017 at 10:04:25PM -0300, Javier Martinez Canillas wrote:

[snip]

>>>
>>>        If there is no specific driver for <manufacturer>, a generic
>>> -      driver based on <type> is selected. Possible types are:
>>> +      driver based on <type> and manufacturer "atmel" is selected.
>>> +      Possible types are:
>>
>> This isn't quite right. What the driver does isn't really relevant to
>> the binding.
>>
>> These types with no vendor are used as the compatible string, so we have
>> to allow them. But it should be clear that no vendor is deprecated.
>> Ironically, it is a lot of Atmel boards that do this.
>>
>> We should also explicitly list what are valid manufacturers. We also
>> have "at" as a vendor prefix which perhaps we should explicitly say is
>> deprecated.
>
> I should perhaps look at the rest of the series before replying..
>
> Based on that, the only comment that applies is listing the
> manufacturers that are valid. From a DT perspective, I should not have
> to know what the OS driver supports. If the device is compatible with
> atmel, then that is required. If not, then the specific manufacturer's
> compatible alone is enough and the OS has to match to that.
>

Got it, I'll re-spin the series probably this week adding that
information to the DT binding doc.

> Rob

Best regards,
Javier

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: [PATCH v3 03/21] ARM: dts: omap: Add generic compatible string for I2C EEPROM
  2017-04-19 23:56   ` Rob Herring
@ 2017-05-15 10:55     ` Javier Martinez Canillas
  0 siblings, 0 replies; 28+ messages in thread
From: Javier Martinez Canillas @ 2017-05-15 10:55 UTC (permalink / raw)
  To: Rob Herring
  Cc: Linux Kernel, Wolfram Sang, linux-arm-kernel,
	Benoît Cousson, devicetree, Tony Lindgren, Mark Rutland,
	linux-omap, Russell King, Mark Jackson

Hello Rob,

On Thu, Apr 20, 2017 at 1:56 AM, Rob Herring <robh@kernel.org> wrote:
> On Thu, Apr 13, 2017 at 10:04:27PM -0300, Javier Martinez Canillas wrote:
>> The at24 driver allows to register I2C EEPROM chips using different vendor
>> and devices, but the I2C subsystem does not take the vendor into account
>> when matching using the I2C table since it only has device entries.
>>
>> But when matching using an OF table, both the vendor and device has to be
>> taken into account so the driver defines only a set of compatible strings
>> using the "atmel" vendor as a generic fallback for compatible I2C devices.
>>
>> So add this generic fallback to the device node compatible string to make
>> the device to match the driver using the OF device ID table.
>>
>> Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
>> ---
>>
>> Changes in v3: None
>> Changes in v2: None
>>
>>  arch/arm/boot/dts/am335x-baltos.dtsi            |  2 +-
>>  arch/arm/boot/dts/am335x-base0033.dts           |  2 +-
>>  arch/arm/boot/dts/am335x-bone-common.dtsi       | 10 +++++-----
>>  arch/arm/boot/dts/am335x-nano.dts               |  2 +-
>>  arch/arm/boot/dts/am335x-pepper.dts             |  2 +-
>>  arch/arm/boot/dts/am335x-shc.dts                |  2 +-
>>  arch/arm/boot/dts/am335x-sl50.dts               |  2 +-
>>  arch/arm/boot/dts/am437x-idk-evm.dts            |  2 +-
>>  arch/arm/boot/dts/am437x-sk-evm.dts             |  2 +-
>>  arch/arm/boot/dts/am43x-epos-evm.dts            |  2 +-
>>  arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi |  2 +-
>>  arch/arm/boot/dts/omap3-cm-t3x.dtsi             |  2 +-
>>  arch/arm/boot/dts/omap3-gta04.dtsi              |  2 +-
>>  arch/arm/boot/dts/omap3-sb-t35.dtsi             |  2 +-
>>  arch/arm/boot/dts/omap4-var-som-om44.dtsi       |  2 +-
>>  arch/arm/boot/dts/omap5-cm-t54.dts              |  2 +-
>>  arch/arm/boot/dts/omap5-sbc-t54.dts             |  2 +-
>>  17 files changed, 21 insertions(+), 21 deletions(-)
>>
>> diff --git a/arch/arm/boot/dts/am335x-baltos.dtsi b/arch/arm/boot/dts/am335x-baltos.dtsi
>> index d42b98f15e8b..6ca780d0623f 100644
>> --- a/arch/arm/boot/dts/am335x-baltos.dtsi
>> +++ b/arch/arm/boot/dts/am335x-baltos.dtsi
>> @@ -255,7 +255,7 @@
>>       };
>>
>>       at24@50 {
>> -             compatible = "at24,24c02";
>> +             compatible = "at24,24c02", "atmel,24c02";
>
> I think you can just drop the at24 compatibles. A new kernel doesn't
> need it. An old kernel ignores the manufacturer. I checked that u-boot
> only matches on "atmel,*", so okay there. Don't know about the *BSDs. I
> couldn't find anything.
>

That's a very good point, it doesn't make sense indeed to keep them,
since the vendor prefix can as you said be ignored (until the OF
modalias report is fixed).

I'll re-spin the series dropping them. Thanks a lot.

Best regards,
Javier

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2017-05-15 10:55 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20170414010445.21727-1-javier@osg.samsung.com>
2017-04-14  1:04 ` [PATCH v3 01/21] dt-bindings: i2c: eeprom: Document manufacturer used as generic fallback Javier Martinez Canillas
2017-04-19 23:27   ` Rob Herring
2017-04-19 23:35     ` Rob Herring
2017-05-15 10:48       ` Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 02/21] eeprom: at24: Add OF device ID table Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 03/21] ARM: dts: omap: Add generic compatible string for I2C EEPROM Javier Martinez Canillas
2017-04-14 14:17   ` Tony Lindgren
2017-04-19 23:56   ` Rob Herring
2017-05-15 10:55     ` Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 04/21] ARM: dts: turris-omnia: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 05/21] ARM: dts: at91: " Javier Martinez Canillas
2017-05-15  9:32   ` Alexandre Belloni
2017-04-14  1:04 ` [PATCH v3 06/21] ARM: dts: efm32: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 07/21] ARM: dts: imx: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 08/21] ARM: dts: keystone: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 09/21] ARM: dts: lpc18xx: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 10/21] ARM: dts: r7s72100: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 11/21] ARM: dts: koelsch: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 12/21] ARM: dts: socfpga: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 13/21] ARM: dts: uniphier: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 14/21] ARM: dts: zynq: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 15/21] arm64: dts: ls1043a: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 16/21] arm64: zynqmp: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 17/21] powerpc/5200: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 18/21] powerpc/fsl: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 19/21] powerpc/512x: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 20/21] powerpc/83xx: " Javier Martinez Canillas
2017-04-14  1:04 ` [PATCH v3 21/21] powerpc/44x: " Javier Martinez Canillas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).