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>; + }; + +... -- 2.7.4