Linux 6.9-rc1
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / leds / ti,tca6507.yaml
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
7 title: TCA6507 LED and GPIO controller
8
9 maintainers:
10   - NeilBrown <neilb@suse.de>
11
12 description:
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
17 properties:
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
38 patternProperties:
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
69 if:
70   patternProperties:
71     "^gpio@[0-6]$":
72       type: object
73       properties:
74         compatible:
75           contains:
76             const: gpio
77 then:
78   required:
79     - gpio-controller
80     - "#gpio-cells"
81
82 additionalProperties: false
83
84 examples:
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 ...