# Copyright (c) 2018, Linaro Limited
# SPDX-License-Identifier: Apache-2.0

description: |
  This allows you to define a group of LEDs. Each LED in the group is
  controlled by a GPIO. Each LED is defined in a child node of the
  gpio-leds node.

  Here is an example which defines three LEDs in the node /leds:

  / {
  	leds {
  		compatible = "gpio-leds";
  		led_0 {
  			gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
  		};
  		led_1 {
  			gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
  		};
  		led_2 {
  			gpios = <&gpio1 15 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
  		};
  	};
  };

  Above:

  - led_0 is pin 1 on gpio0. The LED is on when the pin is low,
    and off when the pin is high.
  - led_1 is pin 2 on gpio0. The LED is on when the pin is high,
    and off when it is low.
  - led_2 is pin 15 on gpio1. The LED is on when the pin is low,
    and the pin's internal pull-up resistor should be enabled.

compatible: "gpio-leds"

child-binding:
    description: GPIO LED child node
    properties:
       gpios:
          type: phandle-array
          required: true
       label:
          required: false
          type: string
          description: |
            Human readable string describing the LED. It can be used by an
            application to identify this LED or to retrieve its number/index
            (i.e. child node number) on the parent device.
