dt-bindings: misc: Convert IDT 89HPESx to DT schema
authorRob Herring <robh@kernel.org>
Wed, 5 Oct 2022 21:26:31 +0000 (16:26 -0500)
committerRob Herring <robh@kernel.org>
Tue, 18 Oct 2022 15:03:45 +0000 (10:03 -0500)
Convert the IDT 89HPESx device binding to DT schema format.

"onsemi,24c64" was not a documented compatible string, so update the
example to "atmel,24c64". It's not clear what's in use here as no
upstream dts files have the eeprom child node.

Acked-by: Serge Semin <fancer.lancer@gmail.com>
Link: https://lore.kernel.org/r/20221005212631.122145-1-robh@kernel.org
Signed-off-by: Rob Herring <robh@kernel.org>
Documentation/devicetree/bindings/misc/idt,89hpesx.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/misc/idt_89hpesx.txt [deleted file]

diff --git a/Documentation/devicetree/bindings/misc/idt,89hpesx.yaml b/Documentation/devicetree/bindings/misc/idt,89hpesx.yaml
new file mode 100644 (file)
index 0000000..452236e
--- /dev/null
@@ -0,0 +1,72 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/misc/idt,89hpesx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: EEPROM / CSR SMBus-slave interface of IDT 89HPESx devices
+
+maintainers:
+  - Serge Semin <fancer.lancer@gmail.com>
+
+select:
+  properties:
+    compatible:
+      contains:
+        pattern: '^idt,89hpes'
+  required:
+    - compatible
+
+properties:
+  compatible:
+    oneOf:
+      - pattern: '^idt,89hpes(8nt2|12nt3|12n3a?|24n3a?|(12|24)t3g2|4t4g2|10t4g2|[56]t5|8t5a?)$'
+      - pattern: '^idt,89hpes(6t6g2|16t7|(24t6|32t8|48t12|16t4a?)(g2)?)$'
+      - pattern: '^idt,89hpes(24nt6a|32nt8[ab]|12nt12|16nt16|24nt24|32nt24[ab])g2$'
+      - pattern: '^idt,89hpes((32h8|48h12a?|22h16|34h16|64h16a?)(g2)?|16h16)$'
+
+  reg:
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+  
+  '#size-cells':
+    const: 0
+
+patternProperties:
+  '^eeprom@':
+    $ref: /schemas/eeprom/at24.yaml#
+    unevaluatedProperties: false
+
+    properties:
+      compatible:
+        description: Only a subset of devices are supported
+        pattern: ',24c(32|64|128|256|512)$'
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        idt@74 {
+            compatible = "idt,89hpes32nt8ag2";
+            reg = <0x74>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            eeprom@50 {
+                compatible = "atmel,24c64";
+                reg = <0x50>;
+                read-only;
+            };
+        };
+    };
+...
diff --git a/Documentation/devicetree/bindings/misc/idt_89hpesx.txt b/Documentation/devicetree/bindings/misc/idt_89hpesx.txt
deleted file mode 100644 (file)
index b9093b7..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-EEPROM / CSR SMBus-slave interface of IDT 89HPESx devices
-
-Required properties:
-  - compatible : should be "<manufacturer>,<type>"
-                Basically there is only one manufacturer: idt, but some
-                compatible devices may be produced in future. Following devices
-                are supported: 89hpes8nt2, 89hpes12nt3, 89hpes24nt6ag2,
-                89hpes32nt8ag2, 89hpes32nt8bg2, 89hpes12nt12g2, 89hpes16nt16g2,
-                89hpes24nt24g2, 89hpes32nt24ag2, 89hpes32nt24bg2;
-                89hpes12n3, 89hpes12n3a, 89hpes24n3, 89hpes24n3a;
-                89hpes32h8, 89hpes32h8g2, 89hpes48h12, 89hpes48h12g2,
-                89hpes48h12ag2, 89hpes16h16, 89hpes22h16, 89hpes22h16g2,
-                89hpes34h16, 89hpes34h16g2, 89hpes64h16, 89hpes64h16g2,
-                89hpes64h16ag2;
-                89hpes12t3g2, 89hpes24t3g2, 89hpes16t4, 89hpes4t4g2,
-                89hpes10t4g2, 89hpes16t4g2, 89hpes16t4ag2, 89hpes5t5,
-                89hpes6t5, 89hpes8t5, 89hpes8t5a, 89hpes24t6, 89hpes6t6g2,
-                89hpes24t6g2, 89hpes16t7, 89hpes32t8, 89hpes32t8g2,
-                89hpes48t12, 89hpes48t12g2.
-  - reg :       I2C address of the IDT 89HPESx device.
-
-Optionally there can be EEPROM-compatible subnode:
-  - compatible:  There are five EEPROM devices supported: 24c32, 24c64, 24c128,
-                24c256 and 24c512 differed by size.
-  - reg:         Custom address of EEPROM device (If not specified IDT 89HPESx
-    (optional)  device will try to communicate with EEPROM sited by default
-                address - 0x50)
-  - read-only :         Parameterless property disables writes to the EEPROM
-    (optional)
-
-Example:
-       idt@60 {
-               compatible = "idt,89hpes32nt8ag2";
-               reg = <0x74>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               eeprom@50 {
-                       compatible = "onsemi,24c64";
-                       reg = <0x50>;
-                       read-only;
-               };
-       };
-