1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/leds/cznic,turris-omnia-leds.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: CZ.NIC's Turris Omnia LEDs driver
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
1082ea1a07SEmmanuel Vadot  - Marek Behún <kabel@kernel.org>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription:
13c66ec88fSEmmanuel Vadot  This module adds support for the RGB LEDs found on the front panel of the
14c66ec88fSEmmanuel Vadot  Turris Omnia router. There are 12 RGB LEDs that are controlled by a
15c66ec88fSEmmanuel Vadot  microcontroller that communicates via the I2C bus. Each LED is described
16c66ec88fSEmmanuel Vadot  as a subnode of this I2C device.
17c66ec88fSEmmanuel Vadot
18c66ec88fSEmmanuel Vadotproperties:
19c66ec88fSEmmanuel Vadot  compatible:
20c66ec88fSEmmanuel Vadot    const: cznic,turris-omnia-leds
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel Vadot  reg:
23c66ec88fSEmmanuel Vadot    description: I2C slave address of the microcontroller.
24c66ec88fSEmmanuel Vadot    maxItems: 1
25c66ec88fSEmmanuel Vadot
26c66ec88fSEmmanuel Vadot  "#address-cells":
27c66ec88fSEmmanuel Vadot    const: 1
28c66ec88fSEmmanuel Vadot
29c66ec88fSEmmanuel Vadot  "#size-cells":
30c66ec88fSEmmanuel Vadot    const: 0
31c66ec88fSEmmanuel Vadot
32c66ec88fSEmmanuel VadotpatternProperties:
33c66ec88fSEmmanuel Vadot  "^multi-led@[0-9a-b]$":
34c66ec88fSEmmanuel Vadot    type: object
35c9ccf3a3SEmmanuel Vadot    $ref: leds-class-multicolor.yaml#
36b97ee269SEmmanuel Vadot    unevaluatedProperties: false
37b97ee269SEmmanuel Vadot
38c66ec88fSEmmanuel Vadot    description:
39c66ec88fSEmmanuel Vadot      This node represents one of the RGB LED devices on Turris Omnia.
40c66ec88fSEmmanuel Vadot      No subnodes need to be added for subchannels since this controller only
41c66ec88fSEmmanuel Vadot      supports RGB LEDs.
42c66ec88fSEmmanuel Vadot
43c66ec88fSEmmanuel Vadot    properties:
44c66ec88fSEmmanuel Vadot      reg:
45c66ec88fSEmmanuel Vadot        minimum: 0
46c66ec88fSEmmanuel Vadot        maximum: 11
47c66ec88fSEmmanuel Vadot        description:
48c66ec88fSEmmanuel Vadot          This property identifies one of the LEDs on the front panel of the
49c66ec88fSEmmanuel Vadot          Turris Omnia router.
50c66ec88fSEmmanuel Vadot
51c66ec88fSEmmanuel Vadot    required:
52c66ec88fSEmmanuel Vadot      - reg
53c66ec88fSEmmanuel Vadot
54c66ec88fSEmmanuel VadotadditionalProperties: false
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel Vadotexamples:
57c66ec88fSEmmanuel Vadot  - |
58c66ec88fSEmmanuel Vadot
59c66ec88fSEmmanuel Vadot    #include <dt-bindings/leds/common.h>
60c66ec88fSEmmanuel Vadot
61*fac71e4eSEmmanuel Vadot    i2c {
62c66ec88fSEmmanuel Vadot        #address-cells = <1>;
63c66ec88fSEmmanuel Vadot        #size-cells = <0>;
64c66ec88fSEmmanuel Vadot
65c66ec88fSEmmanuel Vadot        led-controller@2b {
66c66ec88fSEmmanuel Vadot            compatible = "cznic,turris-omnia-leds";
67c66ec88fSEmmanuel Vadot            reg = <0x2b>;
68c66ec88fSEmmanuel Vadot            #address-cells = <1>;
69c66ec88fSEmmanuel Vadot            #size-cells = <0>;
70c66ec88fSEmmanuel Vadot
71c66ec88fSEmmanuel Vadot            multi-led@0 {
72c66ec88fSEmmanuel Vadot                /*
73c66ec88fSEmmanuel Vadot                 * No subnodes are needed, this controller only supports RGB
74c66ec88fSEmmanuel Vadot                 * LEDs.
75c66ec88fSEmmanuel Vadot                 */
76c66ec88fSEmmanuel Vadot                reg = <0>;
77c66ec88fSEmmanuel Vadot                color = <LED_COLOR_ID_MULTI>;
78c66ec88fSEmmanuel Vadot                function = LED_FUNCTION_POWER;
79c66ec88fSEmmanuel Vadot                linux,default-trigger = "heartbeat";
80c66ec88fSEmmanuel Vadot            };
81c66ec88fSEmmanuel Vadot
82c66ec88fSEmmanuel Vadot            multi-led@a {
83c66ec88fSEmmanuel Vadot                reg = <0xa>;
84c66ec88fSEmmanuel Vadot                color = <LED_COLOR_ID_MULTI>;
85c66ec88fSEmmanuel Vadot                function = LED_FUNCTION_INDICATOR;
86c66ec88fSEmmanuel Vadot                function-enumerator = <1>;
87c66ec88fSEmmanuel Vadot            };
88c66ec88fSEmmanuel Vadot        };
89c66ec88fSEmmanuel Vadot    };
90c66ec88fSEmmanuel Vadot
91c66ec88fSEmmanuel Vadot...
92