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 8854b3719dSMauro Carvalho Chehab # Documentation/devicetree/bindings/leds/leds-gpio.yaml) 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 1707a3a2a64SJohan Jonker led-0 { 17124a71afeSRob Herring function = LED_FUNCTION_STATUS; 17224a71afeSRob Herring linux,default-trigger = "heartbeat"; 17324a71afeSRob Herring gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>; 17424a71afeSRob Herring }; 17524a71afeSRob Herring 1767a3a2a64SJohan Jonker led-1 { 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