dt-bindings: leds: Convert Panasonic AN30259A to DT schema
authorRob Herring <robh@kernel.org>
Mon, 24 Jul 2023 23:02:58 +0000 (17:02 -0600)
committerLee Jones <lee@kernel.org>
Fri, 28 Jul 2023 11:15:32 +0000 (12:15 +0100)
Convert the Panasonic AN30259A 3-channel LED controller binding to DT
schema format.

Signed-off-by: Rob Herring <robh@kernel.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20230724230258.1017258-1-robh@kernel.org
Signed-off-by: Lee Jones <lee@kernel.org>
Documentation/devicetree/bindings/leds/leds-an30259a.txt [deleted file]
Documentation/devicetree/bindings/leds/panasonic,an30259a.yaml [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/leds/leds-an30259a.txt b/Documentation/devicetree/bindings/leds/leds-an30259a.txt
deleted file mode 100644 (file)
index cbd8339..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-* Panasonic AN30259A 3-channel LED driver
-
-The AN30259A is a LED controller capable of driving three LEDs independently. It supports
-constant current output and sloping current output modes. The chip is connected over I2C.
-
-Required properties:
-       - compatible: Must be "panasonic,an30259a".
-       - reg: I2C slave address.
-       - #address-cells: Must be 1.
-       - #size-cells: Must be 0.
-
-Each LED is represented as a sub-node of the panasonic,an30259a node.
-
-Required sub-node properties:
-       - reg: Pin that the LED is connected to. Must be 1, 2, or 3.
-
-Optional sub-node properties:
-       - function :
-               see Documentation/devicetree/bindings/leds/common.txt
-       - color :
-               see Documentation/devicetree/bindings/leds/common.txt
-       - label :
-               see Documentation/devicetree/bindings/leds/common.txt (deprecated)
-       - linux,default-trigger :
-               see Documentation/devicetree/bindings/leds/common.txt
-
-Example:
-
-#include <dt-bindings/leds/common.h>
-
-led-controller@30 {
-       compatible = "panasonic,an30259a";
-       reg = <0x30>;
-       #address-cells = <1>;
-       #size-cells = <0>;
-
-       led@1 {
-               reg = <1>;
-               linux,default-trigger = "heartbeat";
-               function = LED_FUNCTION_INDICATOR;
-               color = <LED_COLOR_ID_RED>;
-       };
-
-       led@2 {
-               reg = <2>;
-               function = LED_FUNCTION_INDICATOR;
-               color = <LED_COLOR_ID_GREEN>;
-       };
-
-       led@3 {
-               reg = <3>;
-               function = LED_FUNCTION_INDICATOR;
-               color = <LED_COLOR_ID_BLUE>;
-       };
-};
diff --git a/Documentation/devicetree/bindings/leds/panasonic,an30259a.yaml b/Documentation/devicetree/bindings/leds/panasonic,an30259a.yaml
new file mode 100644 (file)
index 0000000..e918dce
--- /dev/null
@@ -0,0 +1,84 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/panasonic,an30259a.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Panasonic AN30259A 3-channel LED controller
+
+maintainers:
+  - Iskren Chernev <me@iskren.info>
+
+description:
+  The AN30259A is a LED controller capable of driving three LEDs independently.
+  It supports constant current output and sloping current output modes. The chip
+  is connected over I2C.
+
+properties:
+  compatible:
+    const: panasonic,an30259a
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+
+patternProperties:
+  "^led@[1-3]$":
+    $ref: common.yaml#
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        enum: [ 1, 2, 3 ]
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/leds/common.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        led-controller@30 {
+            compatible = "panasonic,an30259a";
+            reg = <0x30>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            led@1 {
+                reg = <1>;
+                linux,default-trigger = "heartbeat";
+                function = LED_FUNCTION_INDICATOR;
+                color = <LED_COLOR_ID_RED>;
+            };
+
+            led@2 {
+                reg = <2>;
+                function = LED_FUNCTION_INDICATOR;
+                color = <LED_COLOR_ID_GREEN>;
+            };
+
+            led@3 {
+                reg = <3>;
+                function = LED_FUNCTION_INDICATOR;
+                color = <LED_COLOR_ID_BLUE>;
+            };
+        };
+    };
+...