xref: /linux/Documentation/devicetree/bindings/embedded-controller/kontron,sl28cpld.yaml (revision 30bbcb44707a97fcb62246bebc8b413b5ab293f8)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/embedded-controller/kontron,sl28cpld.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Kontron's sl28cpld board management controller
8
9maintainers:
10  - Michael Walle <michael@walle.cc>
11
12description: |
13  The board management controller may contain different IP blocks like
14  watchdog, fan monitoring, PWM controller, interrupt controller and a
15  GPIO controller.
16
17properties:
18  compatible:
19    oneOf:
20      - items:
21          - enum:
22              - kontron,sa67mcu
23          - const: kontron,sl28cpld
24      - const: kontron,sl28cpld
25
26  reg:
27    description:
28      I2C device address.
29    maxItems: 1
30
31  "#address-cells":
32    const: 1
33
34  "#size-cells":
35    const: 0
36
37  "#interrupt-cells":
38    const: 2
39
40  interrupts:
41    maxItems: 1
42
43  interrupt-controller: true
44
45patternProperties:
46  "^gpio(@[0-9a-f]+)?$":
47    $ref: /schemas/gpio/kontron,sl28cpld-gpio.yaml
48
49  "^hwmon(@[0-9a-f]+)?$":
50    $ref: /schemas/hwmon/kontron,sl28cpld-hwmon.yaml
51
52  "^interrupt-controller(@[0-9a-f]+)?$":
53    $ref: /schemas/interrupt-controller/kontron,sl28cpld-intc.yaml
54
55  "^pwm(@[0-9a-f]+)?$":
56    $ref: /schemas/pwm/kontron,sl28cpld-pwm.yaml
57
58  "^watchdog(@[0-9a-f]+)?$":
59    $ref: /schemas/watchdog/kontron,sl28cpld-wdt.yaml
60
61required:
62  - "#address-cells"
63  - "#size-cells"
64  - compatible
65  - reg
66
67additionalProperties: false
68
69examples:
70  - |
71    #include <dt-bindings/interrupt-controller/irq.h>
72    i2c {
73        #address-cells = <1>;
74        #size-cells = <0>;
75
76        sl28cpld@4a {
77            compatible = "kontron,sl28cpld";
78            reg = <0x4a>;
79            #address-cells = <1>;
80            #size-cells = <0>;
81
82            watchdog@4 {
83                compatible = "kontron,sl28cpld-wdt";
84                reg = <0x4>;
85                kontron,assert-wdt-timeout-pin;
86            };
87
88            hwmon@b {
89                compatible = "kontron,sl28cpld-fan";
90                reg = <0xb>;
91            };
92
93            pwm@c {
94                compatible = "kontron,sl28cpld-pwm";
95                reg = <0xc>;
96                #pwm-cells = <2>;
97            };
98
99            pwm@e {
100                compatible = "kontron,sl28cpld-pwm";
101                reg = <0xe>;
102                #pwm-cells = <2>;
103            };
104
105            gpio@10 {
106                compatible = "kontron,sl28cpld-gpio";
107                reg = <0x10>;
108                interrupts-extended = <&gpio2 6
109                               IRQ_TYPE_EDGE_FALLING>;
110
111                gpio-controller;
112                #gpio-cells = <2>;
113                gpio-line-names = "a", "b", "c";
114
115                interrupt-controller;
116                #interrupt-cells = <2>;
117            };
118
119            gpio@15 {
120                compatible = "kontron,sl28cpld-gpio";
121                reg = <0x15>;
122                interrupts-extended = <&gpio2 6
123                               IRQ_TYPE_EDGE_FALLING>;
124
125                gpio-controller;
126                #gpio-cells = <2>;
127
128                interrupt-controller;
129                #interrupt-cells = <2>;
130            };
131
132            gpio@1a {
133                compatible = "kontron,sl28cpld-gpo";
134                reg = <0x1a>;
135
136                gpio-controller;
137                #gpio-cells = <2>;
138            };
139
140            gpio@1b {
141                compatible = "kontron,sl28cpld-gpi";
142                reg = <0x1b>;
143
144                gpio-controller;
145                #gpio-cells = <2>;
146            };
147
148            interrupt-controller@1c {
149                compatible = "kontron,sl28cpld-intc";
150                reg = <0x1c>;
151                interrupts-extended = <&gpio2 6
152                               IRQ_TYPE_EDGE_FALLING>;
153
154                interrupt-controller;
155                #interrupt-cells = <2>;
156            };
157        };
158    };
159