# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/leds/cznic,turris-omnia-leds.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: CZ.NIC's Turris Omnia LEDs driver

maintainers:
  - Marek Behún <kabel@kernel.org>

description:
  This module adds support for the RGB LEDs found on the front panel of the
  Turris Omnia router. There are 12 RGB LEDs that are controlled by a
  microcontroller that communicates via the I2C bus. Each LED is described
  as a subnode of this I2C device.

properties:
  compatible:
    const: cznic,turris-omnia-leds

  reg:
    description: I2C slave address of the microcontroller.
    maxItems: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

patternProperties:
  "^multi-led@[0-9a-b]$":
    type: object
    $ref: leds-class-multicolor.yaml#
    unevaluatedProperties: false

    description:
      This node represents one of the RGB LED devices on Turris Omnia.
      No subnodes need to be added for subchannels since this controller only
      supports RGB LEDs.

    properties:
      reg:
        minimum: 0
        maximum: 11
        description:
          This property identifies one of the LEDs on the front panel of the
          Turris Omnia router.

    required:
      - reg

additionalProperties: false

examples:
  - |

    #include <dt-bindings/leds/common.h>

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

        led-controller@2b {
            compatible = "cznic,turris-omnia-leds";
            reg = <0x2b>;
            #address-cells = <1>;
            #size-cells = <0>;

            multi-led@0 {
                /*
                 * No subnodes are needed, this controller only supports RGB
                 * LEDs.
                 */
                reg = <0>;
                color = <LED_COLOR_ID_MULTI>;
                function = LED_FUNCTION_POWER;
                linux,default-trigger = "heartbeat";
            };

            multi-led@a {
                reg = <0xa>;
                color = <LED_COLOR_ID_MULTI>;
                function = LED_FUNCTION_INDICATOR;
                function-enumerator = <1>;
            };
        };
    };

...
