Skip to contentSkip to conversation

eeprom: at24: device tree support fixes

PATCH Superseded Bartosz Golaszewski 3 participants 9 messages Dec 27, 2017

Subsystems (3)

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

v3 cover eeprom: at24: device tree support fixes

The first three patches fix certain issues with the DT binding document.

The last two extend the device tree support in the driver with more at24 EEPROM variants.

v1 -> v2:
- remove any implementation details from patch 1/5

v2 -> v3:
- reword patch 1/5: allow any "<manufacturer>,<vendor>" pair as long as a supported fallback is used

Bartosz Golaszewski (5):
dt-bindings: at24: consistently document the compatible property
dt-bindings: at24: add a missing compatible
dt-bindings: at24: fix formatting and style
dt-bindings: at24: extend the list of supported chips
eeprom: at24: extend the list of chips supported in DT

 Documentation/devicetree/bindings/eeprom/at24.txt | 71 ++++++++++++-----------
 drivers/misc/eeprom/at24.c                        |  9 +++
 2 files changed, 46 insertions(+), 34 deletions(-)
Signature · 1 line
2.15.1
#1 lore raw

PATCH v3 1/5 dt-bindings: at24: consistently document the compatible property

Current description of the compatible property for at24 is quite vague.

State explicitly that any "<manufacturer>,<model>" pair is accepted as long as one of the listed strings is used as fallback.

---
 Documentation/devicetree/bindings/eeprom/at24.txt | 37 +++++++++--------------
 1 file changed, 15 insertions(+), 22 deletions(-)
Documentation/devicetree/bindings/eeprom/at24.txt +15 -22
index cbc80e194ac6..b5ce5a247554 100644
@@ -2,28 +2,21 @@ EEPROMs (I2C)
 
 Required properties:
 
-  - compatible : should be "<manufacturer>,<type>", like these:
-
-	"atmel,24c00", "atmel,24c01", "atmel,24c02", "atmel,24c04",
-	"atmel,24c08", "atmel,24c16", "atmel,24c32", "atmel,24c64",
-	"atmel,24c128", "atmel,24c256", "atmel,24c512", "atmel,24c1024"
-
-	"catalyst,24c32"
-
-	"microchip,24c128"
-
-	"ramtron,24c64"
-
-	"renesas,r1ex24002"
-
-	The following manufacturers values have been deprecated:
-	"at", "at24"
-
-	 If there is no specific driver for <manufacturer>, a generic
-	 device with <type> and manufacturer "atmel" should be used.
-	 Possible types are:
-	 "24c00", "24c01", "24c02", "24c04", "24c08", "24c16", "24c32", "24c64",
-	 "24c128", "24c256", "24c512", "24c1024", "spd"
+  - compatible: must be a "<manufacturer>,<model>" pair with one of the
+                following values as fallback:
+
+                "atmel,24c00",
+                "atmel,24c01",
+                "atmel,24c02",
+                "atmel,24c04",
+                "atmel,24c08",
+                "atmel,24c16",
+                "atmel,24c32",
+                "atmel,24c64",
+                "atmel,24c128",
+                "atmel,24c256",
+                "atmel,24c512",
+                "atmel,24c1024"
 
   - reg : the I2C address of the EEPROM
 
Signature · 1 line
2.15.1
#2 lore raw

Re: [PATCH v3 1/5] dt-bindings: at24: consistently document the compatible property

Quoted 21 lines · Bartosz Golaszewski

Current description of the compatible property for at24 is quite vague.

State explicitly that any "<manufacturer>,<model>" pair is accepted as long as one of the listed strings is used as fallback.

---
 Documentation/devicetree/bindings/eeprom/at24.txt | 37 +++++++++--------------
 1 file changed, 15 insertions(+), 22 deletions(-)
Documentation/devicetree/bindings/eeprom/at24.txt +0 -3
index cbc80e194ac6..b5ce5a247554 100644
@@ -2,28 +2,21 @@ EEPROMs (I2C)
 
 Required properties:
 
-  - compatible : should be "<manufacturer>,<type>", like these:
-
-       "atmel,24c00", "atmel,24c01", "atmel,24c02", "atmel,24c04",

Documentation/devicetree/bindings/eeprom/at24.txt EEPROMs (I2C) · line 17

Quoted 10 lines
Documentation/devicetree/bindings/eeprom/at24.txt +0 -10
-       "atmel,24c08", "atmel,24c16", "atmel,24c32", "atmel,24c64",
-       "atmel,24c128", "atmel,24c256", "atmel,24c512", "atmel,24c1024"
-
-       "catalyst,24c32"
-
-       "microchip,24c128"
-
-       "ramtron,24c64"
-
-       "renesas,r1ex24002"

Keep this and any others that don't have an atmel model. This should probably also state what the fallback should be (atmel,24c02 ?).

Documentation/devicetree/bindings/eeprom/at24.txt EEPROMs (I2C) · line 26

Quoted 9 lines
Documentation/devicetree/bindings/eeprom/at24.txt +0 -9
-
-       The following manufacturers values have been deprecated:
-       "at", "at24"
-
-        If there is no specific driver for <manufacturer>, a generic
-        device with <type> and manufacturer "atmel" should be used.
-        Possible types are:
-        "24c00", "24c01", "24c02", "24c04", "24c08", "24c16", "24c32", "24c64",
-        "24c128", "24c256", "24c512", "24c1024", "spd"

You remove "spd" here and add it back later. Just fold that in below. I'll leave it to others to bikeshed where in the list.

Documentation/devicetree/bindings/eeprom/at24.txt EEPROMs (I2C) · line 5

Quoted 1 line
Documentation/devicetree/bindings/eeprom/at24.txt +1 -0
+  - compatible: must be a "<manufacturer>,<model>" pair with one of the

We should enumerate known vendors/manufacturers because something like "linaro,24c00" is not valid.

Quoted 20 lines
Documentation/devicetree/bindings/eeprom/at24.txt +14 -1
+                following values as fallback:
+
+                "atmel,24c00",
+                "atmel,24c01",
+                "atmel,24c02",
+                "atmel,24c04",
+                "atmel,24c08",
+                "atmel,24c16",
+                "atmel,24c32",
+                "atmel,24c64",
+                "atmel,24c128",
+                "atmel,24c256",
+                "atmel,24c512",
+                "atmel,24c1024"
 
   - reg : the I2C address of the EEPROM
 
--

2.15.1

#3 lore raw

Re: [PATCH v3 1/5] dt-bindings: at24: consistently document the compatible property

In reply to Bartosz Golaszewski
Quoted 31 lines · Bartosz Golaszewski

Current description of the compatible property for at24 is quite vague.

State explicitly that any "<manufacturer>,<model>" pair is accepted as long as one of the listed strings is used as fallback.

---
 Documentation/devicetree/bindings/eeprom/at24.txt | 37 +++++++++--------------
 1 file changed, 15 insertions(+), 22 deletions(-)
Documentation/devicetree/bindings/eeprom/at24.txt +0 -13
index cbc80e194ac6..b5ce5a247554 100644
@@ -2,28 +2,21 @@ EEPROMs (I2C)
 
 Required properties:
 
-  - compatible : should be "<manufacturer>,<type>", like these:
-
-       "atmel,24c00", "atmel,24c01", "atmel,24c02", "atmel,24c04",
-       "atmel,24c08", "atmel,24c16", "atmel,24c32", "atmel,24c64",
-       "atmel,24c128", "atmel,24c256", "atmel,24c512", "atmel,24c1024"
-
-       "catalyst,24c32"
-
-       "microchip,24c128"
-
-       "ramtron,24c64"
-
-       "renesas,r1ex24002"

Documentation/devicetree/bindings/eeprom/at24.txt EEPROMs (I2C) · line 5

Quoted 10 lines
Documentation/devicetree/bindings/eeprom/at24.txt +1 -9
-
-       The following manufacturers values have been deprecated:
-       "at", "at24"
-
-        If there is no specific driver for <manufacturer>, a generic
-        device with <type> and manufacturer "atmel" should be used.
-        Possible types are:
-        "24c00", "24c01", "24c02", "24c04", "24c08", "24c16", "24c32", "24c64",
-        "24c128", "24c256", "24c512", "24c1024", "spd"
+  - compatible: must be a "<manufacturer>,<model>" pair with one of the

Also, why do you add "must" here and then fix it with "Must" in patch 3? Just get it right here.

Rob

#4 lore raw

Re: [PATCH v3 1/5] dt-bindings: at24: consistently document the compatible property

In reply to Bartosz Golaszewski
Quoted 35 lines · Bartosz Golaszewski

Current description of the compatible property for at24 is quite vague.

State explicitly that any "<manufacturer>,<model>" pair is accepted as long as one of the listed strings is used as fallback.

---
 Documentation/devicetree/bindings/eeprom/at24.txt | 37 +++++++++--------------
 1 file changed, 15 insertions(+), 22 deletions(-)
Documentation/devicetree/bindings/eeprom/at24.txt +0 -17
index cbc80e194ac6..b5ce5a247554 100644
@@ -2,28 +2,21 @@ EEPROMs (I2C)
 
 Required properties:
 
-  - compatible : should be "<manufacturer>,<type>", like these:
-
-	"atmel,24c00", "atmel,24c01", "atmel,24c02", "atmel,24c04",
-	"atmel,24c08", "atmel,24c16", "atmel,24c32", "atmel,24c64",
-	"atmel,24c128", "atmel,24c256", "atmel,24c512", "atmel,24c1024"
-
-	"catalyst,24c32"
-
-	"microchip,24c128"
-
-	"ramtron,24c64"
-
-	"renesas,r1ex24002"
-
-	The following manufacturers values have been deprecated:
-	"at", "at24"
-

Documentation/devicetree/bindings/eeprom/at24.txt EEPROMs (I2C) · line 9

Quoted 10 lines
Documentation/devicetree/bindings/eeprom/at24.txt +5 -5
-	 If there is no specific driver for <manufacturer>, a generic
-	 device with <type> and manufacturer "atmel" should be used.
-	 Possible types are:
-	 "24c00", "24c01", "24c02", "24c04", "24c08", "24c16", "24c32", "24c64",
-	 "24c128", "24c256", "24c512", "24c1024", "spd"
+  - compatible: must be a "<manufacturer>,<model>" pair with one of the
+                following values as fallback:
+
+                "atmel,24c00",
+                "atmel,24c01",

I read the above as if it is no longer allowed to have a plain old atmel chip, since the atmel compatibles are now valid as fallbacks /only/. I don't think that's what you intended?

Cheers,
Peter

Quoted 14 lines
Documentation/devicetree/bindings/eeprom/at24.txt +10 -0
+                "atmel,24c02",
+                "atmel,24c04",
+                "atmel,24c08",
+                "atmel,24c16",
+                "atmel,24c32",
+                "atmel,24c64",
+                "atmel,24c128",
+                "atmel,24c256",
+                "atmel,24c512",
+                "atmel,24c1024"
 
   - reg : the I2C address of the EEPROM
 
#5 lore raw

PATCH v3 2/5 dt-bindings: at24: add a missing compatible

In reply to Bartosz Golaszewski

"atmel,spd" is reported by checkpatch as undocumented in the device tree bindings. Add it to the list of supported compatible fallbacks.

---
 Documentation/devicetree/bindings/eeprom/at24.txt | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/eeprom/at24.txt +1 -0
index b5ce5a247554..487e1005036c 100644
@@ -8,6 +8,7 @@ Required properties:
                 "atmel,24c00",
                 "atmel,24c01",
                 "atmel,24c02",
+                "atmel,spd",
                 "atmel,24c04",
                 "atmel,24c08",
                 "atmel,24c16",
Signature · 1 line
2.15.1
#6 lore raw

PATCH v3 3/5 dt-bindings: at24: fix formatting and style

In reply to Bartosz Golaszewski

Make formatting and style consistent for the entire document.

This patch doesn't change the content of the binding.

---
 Documentation/devicetree/bindings/eeprom/at24.txt | 24 +++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)
Documentation/devicetree/bindings/eeprom/at24.txt +12 -12
index 487e1005036c..7d4dc264b3cc 100644
@@ -2,7 +2,7 @@ EEPROMs (I2C)
 
 Required properties:
 
-  - compatible: must be a "<manufacturer>,<model>" pair with one of the
+  - compatible: Must be a "<manufacturer>,<model>" pair with one of the
                 following values as fallback:
 
                 "atmel,24c00",
@@ -19,23 +19,23 @@ Required properties:
                 "atmel,24c512",
                 "atmel,24c1024"
 
-  - reg : the I2C address of the EEPROM
+  - reg: The I2C address of the EEPROM.
 
 Optional properties:
 
-  - pagesize : the length of the pagesize for writing. Please consult the
-               manual of your device, that value varies a lot. A wrong value
-	       may result in data loss! If not specified, a safety value of
-	       '1' is used which will be very slow.
+  - pagesize: The length of the pagesize for writing. Please consult the
+              manual of your device, that value varies a lot. A wrong value
+              may result in data loss! If not specified, a safety value of
+              '1' is used which will be very slow.
 
-  - read-only: this parameterless property disables writes to the eeprom
+  - read-only: This parameterless property disables writes to the eeprom.
 
-  - size: total eeprom size in bytes
+  - size: Total eeprom size in bytes.
 
-  - no-read-rollover:
-			This parameterless property indicates that the multi-address
-			eeprom does not automatically roll over reads to the next
-			slave address. Please consult the manual of your device.
+  - no-read-rollover: This parameterless property indicates that the
+                      multi-address eeprom does not automatically roll over
+                      reads to the next slave address. Please consult the
+                      manual of your device.
 
   - wp-gpios: GPIO to which the write-protect pin of the chip is connected.
 
Signature · 6 lines
2.15.1

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#7 lore raw

PATCH v3 4/5 dt-bindings: at24: extend the list of supported chips

In reply to Bartosz Golaszewski

Add other variants of at24 EEPROMs we support in the driver to the list of allowed compatible fallbacks.

---
 Documentation/devicetree/bindings/eeprom/at24.txt | 9 +++++++++
 1 file changed, 9 insertions(+)
Documentation/devicetree/bindings/eeprom/at24.txt +9 -0
index 7d4dc264b3cc..7b01fa020ae4 100644
@@ -7,13 +7,22 @@ Required properties:
 
                 "atmel,24c00",
                 "atmel,24c01",
+                "atmel,24cs01",
                 "atmel,24c02",
+                "atmel,24cs02",
+                "atmel,24mac402",
+                "atmel,24mac602",
                 "atmel,spd",
                 "atmel,24c04",
+                "atmel,24cs04",
                 "atmel,24c08",
+                "atmel,24cs08",
                 "atmel,24c16",
+                "atmel,24cs16",
                 "atmel,24c32",
+                "atmel,24cs32",
                 "atmel,24c64",
+                "atmel,24cs64",
                 "atmel,24c128",
                 "atmel,24c256",
                 "atmel,24c512",
Signature · 1 line
2.15.1
#8 lore raw

PATCH v3 5/5 eeprom: at24: extend the list of chips supported in DT

In reply to Bartosz Golaszewski

Add all supported at24 variants to the of_match table.

---
 drivers/misc/eeprom/at24.c | 9 +++++++++
 1 file changed, 9 insertions(+)
drivers/misc/eeprom/at24.c +9 -0
index e79833d62284..01f9c4921c50 100644
@@ -209,13 +209,22 @@ MODULE_DEVICE_TABLE(i2c, at24_ids);
 static const struct of_device_id at24_of_match[] = {
 	{ .compatible = "atmel,24c00",		.data = &at24_data_24c00 },
 	{ .compatible = "atmel,24c01",		.data = &at24_data_24c01 },
+	{ .compatible = "atmel,24cs01",		.data = &at24_data_24cs01 },
 	{ .compatible = "atmel,24c02",		.data = &at24_data_24c02 },
+	{ .compatible = "atmel,24cs02",		.data = &at24_data_24cs02 },
+	{ .compatible = "atmel,24mac402",	.data = &at24_data_24mac402 },
+	{ .compatible = "atmel,24mac602",	.data = &at24_data_24mac602 },
 	{ .compatible = "atmel,spd",		.data = &at24_data_spd },
 	{ .compatible = "atmel,24c04",		.data = &at24_data_24c04 },
+	{ .compatible = "atmel,24cs04",		.data = &at24_data_24cs04 },
 	{ .compatible = "atmel,24c08",		.data = &at24_data_24c08 },
+	{ .compatible = "atmel,24cs08",		.data = &at24_data_24cs08 },
 	{ .compatible = "atmel,24c16",		.data = &at24_data_24c16 },
+	{ .compatible = "atmel,24cs16",		.data = &at24_data_24cs16 },
 	{ .compatible = "atmel,24c32",		.data = &at24_data_24c32 },
+	{ .compatible = "atmel,24cs32",		.data = &at24_data_24cs32 },
 	{ .compatible = "atmel,24c64",		.data = &at24_data_24c64 },
+	{ .compatible = "atmel,24cs64",		.data = &at24_data_24cs64 },
 	{ .compatible = "atmel,24c128",		.data = &at24_data_24c128 },
 	{ .compatible = "atmel,24c256",		.data = &at24_data_24c256 },
 	{ .compatible = "atmel,24c512",		.data = &at24_data_24c512 },
Signature · 1 line
2.15.1