Akinobu
On 10/27/19 9:09 AM, Akinobu Mita wrote:
Add DT binding for generic LED level meter which consists of multiple LED
devices by different drivers.
Cc: Rob Herring <robh+dt@xxxxxxxxxx>
Cc: Mark Rutland <mark.rutland@xxxxxxx>
Cc: Bjorn Andersson <bjorn@xxxxxxx>
Cc: Tomi Valkeinen <tomi.valkeinen@xxxxxx>
Cc: Jean-Jacques Hiblot <jjhiblot@xxxxxx>
Cc: Jacek Anaszewski <jacek.anaszewski@xxxxxxxxx>
Cc: Pavel Machek <pavel@xxxxxx>
Cc: Dan Murphy <dmurphy@xxxxxx>
Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx>
---
.../devicetree/bindings/leds/leds-meter.yaml | 67 ++++++++++++++++++++++
1 file changed, 67 insertions(+)
create mode 100644 Documentation/devicetree/bindings/leds/leds-meter.yaml
diff --git a/Documentation/devicetree/bindings/leds/leds-meter.yaml b/Documentation/devicetree/bindings/leds/leds-meter.yaml
new file mode 100644
index 0000000..b5fcd98
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/leds-meter.yaml
@@ -0,0 +1,67 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/leds-meter.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Generic LED level meter
+
+maintainers:
+ - Akinobu Mita <akinobu.mita@xxxxxxxxx>
+
+description:
+ Generic LED level meter consists of multiple LED devices by different drivers.
+
+properties:
+ $nodename:
+ pattern: "^meter-leds(@.*)?"
+
+ compatible:
+ const: meter-leds
+
+ leds:
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/phandle-array
+ description: List of phandles to LED node that are members of a level meter.
+
+ brightness-weights:
+ allOf:
+ - $ref: /schemas/types.yaml#/definitions/uint32-array
+ description: |
+ By default, the brightness of the LED level meter is proportional to the
+ number of actual LEDs that are turned on. We can optionally specify
+ the contribution ratio for each LED within a level meter by this
+ property. The example below shows how to setup an exponential
+ relationship between the number of LEDs turned on and the brightness of
+ meter-leds.
+
+required:
+ - compatible
+ - leds
+
+additionalProperties: false
+
+examples:
+ - |
+ // Example 1: LED level meter with four LEDs
+ meter-leds {
+ compatible = "meter-leds";
+ leds = <&led0>, <&led1>, <&led2>, <&led3>;
+ };
+
+ // Example 2: Exponential relationship between the number of LEDs turned on
+ // and the brightness of meter-leds
+ //
+ // When the maximum brightness is 255
+ // - No LEDs are turned on if brightness == 0
+ // - led0 is turned on if 0 < brightness <= 32
+ // - led0 and led1 are turned on if 32 < brightness <= 64
+ // - led0, led1, and led2 are turned on if 64 < brightness <= 128
+ // - All LEDs are turned on if 128 < brightness <= 255
+ meter-leds {
+ compatible = "meter-leds";
+ leds = <&led0>, <&led1>, <&led2>, <&led3>;
+ brightness-weights = <32 32 64 127>;
+ };
+
+...
Fails binding check
Documentation/devicetree/bindings/leds/leds-meter.example.dts:32.20-36.11:
ERROR (duplicate_node_names): /example-0/meter-leds: Duplicate node name
ERROR: Input tree has errors, aborting (use -f to force output)
scripts/Makefile.lib:314: recipe for target
'Documentation/devicetree/bindings/leds/leds-meter.example.dt.yaml' failed
make[1]: ***
[Documentation/devicetree/bindings/leds/leds-meter.example.dt.yaml] Error 2
Makefile:1284: recipe for target 'dt_binding_check' failed
make: *** [dt_binding_check] Error 2