124a71afeSRob Herring# SPDX-License-Identifier: GPL-2.0-only
224a71afeSRob Herring%YAML 1.2
324a71afeSRob Herring---
424a71afeSRob Herring$id: http://devicetree.org/schemas/leds/common.yaml#
524a71afeSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
624a71afeSRob Herring
724a71afeSRob Herringtitle: Common leds properties
824a71afeSRob Herring
924a71afeSRob Herringmaintainers:
1024a71afeSRob Herring  - Jacek Anaszewski <jacek.anaszewski@gmail.com>
1124a71afeSRob Herring  - Pavel Machek <pavel@ucw.cz>
1224a71afeSRob Herring
1324a71afeSRob Herringdescription:
1424a71afeSRob Herring  LED and flash LED devices provide the same basic functionality as current
1524a71afeSRob Herring  regulators, but extended with LED and flash LED specific features like
1624a71afeSRob Herring  blinking patterns, flash timeout, flash faults and external flash strobe mode.
1724a71afeSRob Herring
1824a71afeSRob Herring  Many LED devices expose more than one current output that can be connected
1924a71afeSRob Herring  to one or more discrete LED component. Since the arrangement of connections
2024a71afeSRob Herring  can influence the way of the LED device initialization, the LED components
2124a71afeSRob Herring  have to be tightly coupled with the LED device binding. They are represented
2224a71afeSRob Herring  by child nodes of the parent LED device binding.
2324a71afeSRob Herring
2424a71afeSRob Herringproperties:
2524a71afeSRob Herring  led-sources:
2624a71afeSRob Herring    description:
2724a71afeSRob Herring      List of device current outputs the LED is connected to. The outputs are
2824a71afeSRob Herring      identified by the numbers that must be defined in the LED device binding
2924a71afeSRob Herring      documentation.
3024a71afeSRob Herring    $ref: /schemas/types.yaml#definitions/uint32-array
3124a71afeSRob Herring
3224a71afeSRob Herring  function:
3324a71afeSRob Herring    description:
3424a71afeSRob Herring      LED function. Use one of the LED_FUNCTION_* prefixed definitions
3524a71afeSRob Herring      from the header include/dt-bindings/leds/common.h. If there is no
3624a71afeSRob Herring      matching LED_FUNCTION available, add a new one.
3724a71afeSRob Herring    $ref: /schemas/types.yaml#definitions/string
3824a71afeSRob Herring
3924a71afeSRob Herring  color:
4024a71afeSRob Herring    description:
4124a71afeSRob Herring      Color of the LED. Use one of the LED_COLOR_ID_* prefixed definitions from
4224a71afeSRob Herring      the header include/dt-bindings/leds/common.h. If there is no matching
4324a71afeSRob Herring      LED_COLOR_ID available, add a new one.
4424a71afeSRob Herring    allOf:
4524a71afeSRob Herring      - $ref: /schemas/types.yaml#definitions/uint32
4624a71afeSRob Herring    minimum: 0
4724a71afeSRob Herring    maximum: 8
4824a71afeSRob Herring
4924a71afeSRob Herring  function-enumerator:
5024a71afeSRob Herring    description:
5124a71afeSRob Herring      Integer to be used when more than one instance of the same function is
5224a71afeSRob Herring      needed, differing only with an ordinal number.
5324a71afeSRob Herring    $ref: /schemas/types.yaml#definitions/uint32
5424a71afeSRob Herring
5524a71afeSRob Herring  label:
5624a71afeSRob Herring    description:
5724a71afeSRob Herring      The label for this LED. If omitted, the label is taken from the node name
5824a71afeSRob Herring      (excluding the unit address). It has to uniquely identify a device, i.e.
5924a71afeSRob Herring      no other LED class device can be assigned the same label. This property is
6024a71afeSRob Herring      deprecated - use 'function' and 'color' properties instead.
6124a71afeSRob Herring      function-enumerator has no effect when this property is present.
6224a71afeSRob Herring
6324a71afeSRob Herring  default-state:
6424a71afeSRob Herring    description:
6524a71afeSRob Herring      The initial state of the LED. If the LED is already on or off and the
6624a71afeSRob Herring      default-state property is set the to same value, then no glitch should be
6724a71afeSRob Herring      produced where the LED momentarily turns off (or on). The "keep" setting
6824a71afeSRob Herring      will keep the LED at whatever its current state is, without producing a
6924a71afeSRob Herring      glitch.
7024a71afeSRob Herring    allOf:
7124a71afeSRob Herring      - $ref: /schemas/types.yaml#definitions/string
7224a71afeSRob Herring    enum:
7324a71afeSRob Herring      - on
7424a71afeSRob Herring      - off
7524a71afeSRob Herring      - keep
7624a71afeSRob Herring    default: off
7724a71afeSRob Herring
7824a71afeSRob Herring  linux,default-trigger:
7924a71afeSRob Herring    description:
8024a71afeSRob Herring      This parameter, if present, is a string defining the trigger assigned to
8124a71afeSRob Herring      the LED.
8224a71afeSRob Herring    allOf:
8324a71afeSRob Herring      - $ref: /schemas/types.yaml#definitions/string
8424a71afeSRob Herring    enum:
8524a71afeSRob Herring        # LED will act as a back-light, controlled by the framebuffer system
8624a71afeSRob Herring      - backlight
8724a71afeSRob Herring        # LED will turn on (but for leds-gpio see "default-state" property in
8824a71afeSRob Herring        # Documentation/devicetree/bindings/leds/leds-gpio.txt)
8924a71afeSRob Herring      - default-on
9024a71afeSRob Herring        # LED "double" flashes at a load average based rate
9124a71afeSRob Herring      - heartbeat
9224a71afeSRob Herring        # LED indicates disk activity
9324a71afeSRob Herring      - disk-activity
9424a71afeSRob Herring        # LED indicates IDE disk activity (deprecated), in new implementations
9524a71afeSRob Herring        # use "disk-activity"
9624a71afeSRob Herring      - ide-disk
9724a71afeSRob Herring        # LED flashes at a fixed, configurable rate
9824a71afeSRob Herring      - timer
9924a71afeSRob Herring        # LED alters the brightness for the specified duration with one software
10024a71afeSRob Herring        # timer (requires "led-pattern" property)
10124a71afeSRob Herring      - pattern
10224a71afeSRob Herring
10324a71afeSRob Herring  led-pattern:
10424a71afeSRob Herring    description: |
10524a71afeSRob Herring      Array of integers with default pattern for certain triggers.
10624a71afeSRob Herring
10724a71afeSRob Herring      Each trigger may parse this property differently:
10824a71afeSRob Herring        - one-shot : two numbers specifying delay on and delay off (in ms),
10924a71afeSRob Herring        - timer : two numbers specifying delay on and delay off (in ms),
11024a71afeSRob Herring        - pattern : the pattern is given by a series of tuples, of
11124a71afeSRob Herring          brightness and duration (in ms).  The exact format is
11224a71afeSRob Herring          described in:
11324a71afeSRob Herring          Documentation/devicetree/bindings/leds/leds-trigger-pattern.txt
11424a71afeSRob Herring    allOf:
11524a71afeSRob Herring      - $ref: /schemas/types.yaml#definitions/uint32-matrix
11624a71afeSRob Herring    items:
11724a71afeSRob Herring      minItems: 2
11824a71afeSRob Herring      maxItems: 2
11924a71afeSRob Herring
12024a71afeSRob Herring  led-max-microamp:
12124a71afeSRob Herring    description:
12224a71afeSRob Herring      Maximum LED supply current in microamperes. This property can be made
12324a71afeSRob Herring      mandatory for the board configurations introducing a risk of hardware
12424a71afeSRob Herring      damage in case an excessive current is set.
12524a71afeSRob Herring      For flash LED controllers with configurable current this property is
12624a71afeSRob Herring      mandatory for the LEDs in the non-flash modes (e.g. torch or indicator).
12724a71afeSRob Herring
12824a71afeSRob Herring  panic-indicator:
12924a71afeSRob Herring    description:
13024a71afeSRob Herring      This property specifies that the LED should be used, if at all possible,
13124a71afeSRob Herring      as a panic indicator.
13224a71afeSRob Herring    type: boolean
13324a71afeSRob Herring
13424a71afeSRob Herring  trigger-sources:
13524a71afeSRob Herring    description: |
13624a71afeSRob Herring      List of devices which should be used as a source triggering this LED
13724a71afeSRob Herring      activity. Some LEDs can be related to a specific device and should somehow
13824a71afeSRob Herring      indicate its state. E.g. USB 2.0 LED may react to device(s) in a USB 2.0
13924a71afeSRob Herring      port(s).
14024a71afeSRob Herring      Another common example is switch or router with multiple Ethernet ports
14124a71afeSRob Herring      each of them having its own LED assigned (assuming they are not
14224a71afeSRob Herring      hardwired). In such cases this property should contain phandle(s) of
14324a71afeSRob Herring      related source device(s).
14424a71afeSRob Herring      In many cases LED can be related to more than one device (e.g. one USB LED
14524a71afeSRob Herring      vs. multiple USB ports). Each source should be represented by a node in
14624a71afeSRob Herring      the device tree and be referenced by a phandle and a set of phandle
14724a71afeSRob Herring      arguments. A length of arguments should be specified by the
14824a71afeSRob Herring      #trigger-source-cells property in the source node.
14924a71afeSRob Herring    $ref: /schemas/types.yaml#definitions/phandle-array
15024a71afeSRob Herring
15124a71afeSRob Herring  # Required properties for flash LED child nodes:
15224a71afeSRob Herring  flash-max-microamp:
15324a71afeSRob Herring    description:
15424a71afeSRob Herring      Maximum flash LED supply current in microamperes. Required for flash LED
15524a71afeSRob Herring      nodes with configurable current.
15624a71afeSRob Herring
15724a71afeSRob Herring  flash-max-timeout-us:
15824a71afeSRob Herring    description:
15924a71afeSRob Herring      Maximum timeout in microseconds after which the flash LED is turned off.
16024a71afeSRob Herring      Required for flash LED nodes with configurable timeout.
16124a71afeSRob Herring
16224a71afeSRob Herringexamples:
16324a71afeSRob Herring  - |
16424a71afeSRob Herring    #include <dt-bindings/gpio/gpio.h>
16524a71afeSRob Herring    #include <dt-bindings/leds/common.h>
16624a71afeSRob Herring
16724a71afeSRob Herring    led-controller {
16824a71afeSRob Herring        compatible = "gpio-leds";
16924a71afeSRob Herring
17024a71afeSRob Herring        led0 {
17124a71afeSRob Herring            function = LED_FUNCTION_STATUS;
17224a71afeSRob Herring            linux,default-trigger = "heartbeat";
17324a71afeSRob Herring            gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
17424a71afeSRob Herring        };
17524a71afeSRob Herring
17624a71afeSRob Herring        led1 {
17724a71afeSRob Herring            function = LED_FUNCTION_USB;
17824a71afeSRob Herring            gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
17924a71afeSRob Herring            trigger-sources = <&ohci_port1>, <&ehci_port1>;
18024a71afeSRob Herring        };
18124a71afeSRob Herring    };
18224a71afeSRob Herring
18324a71afeSRob Herring    led-controller@0 {
18424a71afeSRob Herring        compatible = "maxim,max77693-led";
18524a71afeSRob Herring        reg = <0 0x100>;
18624a71afeSRob Herring
18724a71afeSRob Herring        led {
18824a71afeSRob Herring            function = LED_FUNCTION_FLASH;
18924a71afeSRob Herring            color = <LED_COLOR_ID_WHITE>;
19024a71afeSRob Herring            led-sources = <0>, <1>;
19124a71afeSRob Herring            led-max-microamp = <50000>;
19224a71afeSRob Herring            flash-max-microamp = <320000>;
19324a71afeSRob Herring            flash-max-timeout-us = <500000>;
19424a71afeSRob Herring        };
19524a71afeSRob Herring    };
19624a71afeSRob Herring
19724a71afeSRob Herring    i2c {
19824a71afeSRob Herring        #address-cells = <1>;
19924a71afeSRob Herring        #size-cells = <0>;
20024a71afeSRob Herring
20124a71afeSRob Herring        led-controller@30 {
20224a71afeSRob Herring            compatible = "panasonic,an30259a";
20324a71afeSRob Herring            reg = <0x30>;
20424a71afeSRob Herring            #address-cells = <1>;
20524a71afeSRob Herring            #size-cells = <0>;
20624a71afeSRob Herring
20724a71afeSRob Herring            led@1 {
20824a71afeSRob Herring                reg = <1>;
20924a71afeSRob Herring                linux,default-trigger = "heartbeat";
21024a71afeSRob Herring                function = LED_FUNCTION_INDICATOR;
21124a71afeSRob Herring                function-enumerator = <1>;
21224a71afeSRob Herring            };
21324a71afeSRob Herring
21424a71afeSRob Herring            led@2 {
21524a71afeSRob Herring                reg = <2>;
21624a71afeSRob Herring                function = LED_FUNCTION_INDICATOR;
21724a71afeSRob Herring                function-enumerator = <2>;
21824a71afeSRob Herring            };
21924a71afeSRob Herring
22024a71afeSRob Herring            led@3 {
22124a71afeSRob Herring                reg = <3>;
22224a71afeSRob Herring                function = LED_FUNCTION_INDICATOR;
22324a71afeSRob Herring                function-enumerator = <3>;
22424a71afeSRob Herring            };
22524a71afeSRob Herring        };
22624a71afeSRob Herring    };
22724a71afeSRob Herring
22824a71afeSRob Herring...
229