Skip to contentSkip to conversation

eeprom: at24: device tree support fixes

PATCH In review Bartosz Golaszewski 3 participants 9 messages Dec 28, 2017 – Jan 2, 2018

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

v4 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

v3 -> v4:
- another shot at correct wording of the compatible property description
- squashed patches 1/5 and 2/5

Bartosz Golaszewski (4):
dt-bindings: at24: consistently document the compatible property
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 | 91 ++++++++++++++---------
 drivers/misc/eeprom/at24.c                        |  9 +++
 2 files changed, 66 insertions(+), 34 deletions(-)
Signature · 1 line
2.15.1
#1 lore raw

PATCH v4 1/4 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 a correct fallback is used for non-atmel chips.

---
 Documentation/devicetree/bindings/eeprom/at24.txt | 58 ++++++++++++++---------
 1 file changed, 36 insertions(+), 22 deletions(-)
Documentation/devicetree/bindings/eeprom/at24.txt +36 -22
index cbc80e194ac6..0c8e1341908f 100644
@@ -2,28 +2,42 @@ 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. The following <model>
+                values are supported (assuming "atmel" as manufacturer):
+
+                "atmel,24c00",
+                "atmel,24c01",
+                "atmel,24c02",
+                "atmel,spd",
+                "atmel,24c04",
+                "atmel,24c08",
+                "atmel,24c16",
+                "atmel,24c32",
+                "atmel,24c64",
+                "atmel,24c128",
+                "atmel,24c256",
+                "atmel,24c512",
+                "atmel,24c1024",
+
+                If <manufacturer> is not "atmel", then a fallback must be used
+                with the same <type> and "atmel" as manufacturer.
+
+                Example:
+                        compatible = "microchip,24c128", "atmel,24c128";
+
+		Supported manufacturers are:
+
+                "catalyst",
+                "microchip",
+                "ramtron",
+                "renesas",
+                "nxp",
+                "st",
+
+                Some vendors use different model names for chips which are just
+                variants of the above. Known such exceptions are listed below:
+
+                "renesas,r1ex24002" - the fallback is "atmel,24c02"
 
   - reg : the I2C address of the EEPROM
 
Signature · 1 line
2.15.1
#2 lore raw

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

Quoted 5 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 a correct fallback is used for non-atmel chips.

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

Quoted 9 lines
Documentation/devicetree/bindings/eeprom/at24.txt +5 -3
-       "atmel,24c00", "atmel,24c01", "atmel,24c02", "atmel,24c04",
-       "atmel,24c08", "atmel,24c16", "atmel,24c32", "atmel,24c64",
-       "atmel,24c128", "atmel,24c256", "atmel,24c512", "atmel,24c1024"
 
+                "atmel,24c00",
+                "atmel,24c01",
+                "atmel,24c02",
+                "atmel,spd",
+                "atmel,24c04",

Just to whom it may concern, I still don't like the ordering. By name is better to read and catch up the (un)supported chips.

Signature · 2 lines
With Best Regards,
Andy Shevchenko
maintainer Reviewed-by on v4 1/4
#3 lore raw

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

In reply to Bartosz Golaszewski
Quoted 9 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 a correct fallback is used for non-atmel chips.

---
 Documentation/devicetree/bindings/eeprom/at24.txt | 58 ++++++++++++++---------
 1 file changed, 36 insertions(+), 22 deletions(-)
#4 lore raw

PATCH v4 2/4 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 | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)
Documentation/devicetree/bindings/eeprom/at24.txt +11 -11
index 0c8e1341908f..5e0dfd25b1e3 100644
@@ -39,23 +39,23 @@ Required properties:
 
                 "renesas,r1ex24002" - the fallback is "atmel,24c02"
 
-  - 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 · 1 line
2.15.1
maintainer Reviewed-by on v4 2/4
#5 lore raw

Re: [PATCH v4 2/4] dt-bindings: at24: fix formatting and style

Quoted 9 lines · 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 | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)
#6 lore raw

PATCH v4 3/4 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 5e0dfd25b1e3..6fc05e24fa7f 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 · 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
maintainer Reviewed-by on v4 3/4
#7 lore raw

Re: [PATCH v4 3/4] dt-bindings: at24: extend the list of supported chips

Quoted 8 lines · 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(+)

--
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

#8 lore raw

PATCH v4 4/4 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