Commit 3f5df639 authored by Aleksandrs Vinarskis's avatar Aleksandrs Vinarskis Committed by Lee Jones
Browse files

dt-bindings: leds: Add generic LED consumer documentation



Introduce common generic led consumer binding, where consumer defines
led(s) by phandle, as opposed to trigger-source binding where the
trigger source is defined in led itself.

Add already used in some schemas 'leds' parameter which expects
phandle-array. Additionally, introduce 'led-names' which could be used
by consumers to map LED devices to their respective functions.

Signed-off-by: default avatarAleksandrs Vinarskis <alex@vinarskis.com>
Reviewed-by: default avatar"Rob Herring (Arm)" <robh@kernel.org>
Link: https://lore.kernel.org/r/20250910-leds-v5-1-bb90a0f897d5@vinarskis.com


Signed-off-by: default avatarLee Jones <lee@kernel.org>
parent 96e048fa
Loading
Loading
Loading
Loading
+67 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/leds/leds-consumer.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Common leds consumer

maintainers:
  - Aleksandrs Vinarskis <alex@vinarskis.com>

description:
  Some LED defined in DT are required by other DT consumers, for example
  v4l2 subnode may require privacy or flash LED. Unlike trigger-source
  approach which is typically used as 'soft' binding, referencing LED
  devices by phandle makes things simpler when 'hard' binding is desired.

  Document LED properties that its consumers may define.

select: true

properties:
  leds:
    oneOf:
      - type: object
      - $ref: /schemas/types.yaml#/definitions/phandle-array
        description:
          A list of LED device(s) required by a particular consumer.
        items:
          maxItems: 1

  led-names:
    description:
      A list of device name(s). Used to map LED devices to their respective
      functions, when consumer requires more than one LED.

additionalProperties: true

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/leds/common.h>

    leds {
        compatible = "gpio-leds";

        privacy_led: privacy-led {
            color = <LED_COLOR_ID_RED>;
            default-state = "off";
            function = LED_FUNCTION_INDICATOR;
            gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
        };
    };

    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      v4l2_node: camera@36 {
        reg = <0x36>;

        leds = <&privacy_led>;
        led-names = "privacy";
      };
    };

...