# 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";
      };
    };

...
