1# SPDX-License-Identifier: GPL-2.0-only
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/leds/ti,tca6507.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: TCA6507 LED and GPIO controller
8
9maintainers:
10  - NeilBrown <neilb@suse.de>
11
12description:
13  The TCA6507 is a programmable LED controller connected via I2C that can drive
14  7 separate lines either by holding them low, or by pulsing them with modulated
15  width.
16
17properties:
18  compatible:
19    const: ti,tca6507
20
21  reg:
22    description: I2C slave address of the controller.
23    maxItems: 1
24
25  "#address-cells":
26    const: 1
27
28  "#size-cells":
29    const: 0
30
31  gpio-controller: true
32
33  "#gpio-cells":
34    const: 2
35
36  gpio-line-names: true
37
38patternProperties:
39  "^led@[0-6]$":
40    type: object
41    $ref: common.yaml#
42    unevaluatedProperties: false
43
44    properties:
45      reg:
46        minimum: 0
47        maximum: 6
48
49    required:
50      - reg
51
52  "^gpio@[0-6]$":
53    type: object
54
55    properties:
56      compatible:
57        const: gpio
58
59      reg:
60        minimum: 0
61        maximum: 6
62
63    additionalProperties: false
64
65    required:
66      - reg
67      - compatible
68
69if:
70  patternProperties:
71    "^gpio@[0-6]$":
72      type: object
73      properties:
74        compatible:
75          contains:
76            const: gpio
77then:
78  required:
79    - gpio-controller
80    - "#gpio-cells"
81
82additionalProperties: false
83
84examples:
85  - |
86
87    #include <dt-bindings/gpio/gpio.h>
88    #include <dt-bindings/leds/common.h>
89
90    i2c {
91        #address-cells = <1>;
92        #size-cells = <0>;
93
94        led-controller@45 {
95            compatible = "ti,tca6507";
96            #address-cells = <1>;
97            #size-cells = <0>;
98            reg = <0x45>;
99
100            gpio-controller;
101            #gpio-cells = <2>;
102
103            gpio-line-names = "wifi_reset@6";
104
105            led@0 {
106                label = "gta04:red:aux";
107                reg = <0x0>;
108            };
109
110            led@1 {
111                label = "gta04:green:aux";
112                reg = <0x1>;
113            };
114
115            led@3 {
116                reg = <0x3>;
117                color = <LED_COLOR_ID_RED>;
118                function = LED_FUNCTION_POWER;
119                linux,default-trigger = "default-on";
120            };
121
122            led@4 {
123                color = <LED_COLOR_ID_GREEN>;
124                function = LED_FUNCTION_POWER;
125                reg = <0x4>;
126            };
127
128            gpio@6 {
129                compatible = "gpio";
130                reg = <0x6>;
131            };
132        };
133    };
134
135...
136