xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/kontron,sl28cpld.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
16be33864SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
26be33864SEmmanuel Vadot%YAML 1.2
36be33864SEmmanuel Vadot---
46be33864SEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/kontron,sl28cpld.yaml#
56be33864SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
66be33864SEmmanuel Vadot
76be33864SEmmanuel Vadottitle: Kontron's sl28cpld board management controller
86be33864SEmmanuel Vadot
96be33864SEmmanuel Vadotmaintainers:
106be33864SEmmanuel Vadot  - Michael Walle <michael@walle.cc>
116be33864SEmmanuel Vadot
126be33864SEmmanuel Vadotdescription: |
136be33864SEmmanuel Vadot  The board management controller may contain different IP blocks like
146be33864SEmmanuel Vadot  watchdog, fan monitoring, PWM controller, interrupt controller and a
156be33864SEmmanuel Vadot  GPIO controller.
166be33864SEmmanuel Vadot
176be33864SEmmanuel Vadotproperties:
186be33864SEmmanuel Vadot  compatible:
196be33864SEmmanuel Vadot    const: kontron,sl28cpld
206be33864SEmmanuel Vadot
216be33864SEmmanuel Vadot  reg:
226be33864SEmmanuel Vadot    description:
236be33864SEmmanuel Vadot      I2C device address.
246be33864SEmmanuel Vadot    maxItems: 1
256be33864SEmmanuel Vadot
266be33864SEmmanuel Vadot  "#address-cells":
276be33864SEmmanuel Vadot    const: 1
286be33864SEmmanuel Vadot
296be33864SEmmanuel Vadot  "#size-cells":
306be33864SEmmanuel Vadot    const: 0
316be33864SEmmanuel Vadot
326be33864SEmmanuel Vadot  "#interrupt-cells":
336be33864SEmmanuel Vadot    const: 2
346be33864SEmmanuel Vadot
356be33864SEmmanuel Vadot  interrupts:
366be33864SEmmanuel Vadot    maxItems: 1
376be33864SEmmanuel Vadot
386be33864SEmmanuel Vadot  interrupt-controller: true
396be33864SEmmanuel Vadot
406be33864SEmmanuel VadotpatternProperties:
416be33864SEmmanuel Vadot  "^gpio(@[0-9a-f]+)?$":
42*7d0873ebSEmmanuel Vadot    $ref: /schemas/gpio/kontron,sl28cpld-gpio.yaml
436be33864SEmmanuel Vadot
446be33864SEmmanuel Vadot  "^hwmon(@[0-9a-f]+)?$":
45*7d0873ebSEmmanuel Vadot    $ref: /schemas/hwmon/kontron,sl28cpld-hwmon.yaml
466be33864SEmmanuel Vadot
476be33864SEmmanuel Vadot  "^interrupt-controller(@[0-9a-f]+)?$":
48*7d0873ebSEmmanuel Vadot    $ref: /schemas/interrupt-controller/kontron,sl28cpld-intc.yaml
496be33864SEmmanuel Vadot
506be33864SEmmanuel Vadot  "^pwm(@[0-9a-f]+)?$":
51*7d0873ebSEmmanuel Vadot    $ref: /schemas/pwm/kontron,sl28cpld-pwm.yaml
526be33864SEmmanuel Vadot
536be33864SEmmanuel Vadot  "^watchdog(@[0-9a-f]+)?$":
54*7d0873ebSEmmanuel Vadot    $ref: /schemas/watchdog/kontron,sl28cpld-wdt.yaml
556be33864SEmmanuel Vadot
566be33864SEmmanuel Vadotrequired:
576be33864SEmmanuel Vadot  - "#address-cells"
586be33864SEmmanuel Vadot  - "#size-cells"
596be33864SEmmanuel Vadot  - compatible
606be33864SEmmanuel Vadot  - reg
616be33864SEmmanuel Vadot
626be33864SEmmanuel VadotadditionalProperties: false
636be33864SEmmanuel Vadot
646be33864SEmmanuel Vadotexamples:
656be33864SEmmanuel Vadot  - |
666be33864SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
676be33864SEmmanuel Vadot    i2c {
686be33864SEmmanuel Vadot        #address-cells = <1>;
696be33864SEmmanuel Vadot        #size-cells = <0>;
706be33864SEmmanuel Vadot
716be33864SEmmanuel Vadot        sl28cpld@4a {
726be33864SEmmanuel Vadot            compatible = "kontron,sl28cpld";
736be33864SEmmanuel Vadot            reg = <0x4a>;
746be33864SEmmanuel Vadot            #address-cells = <1>;
756be33864SEmmanuel Vadot            #size-cells = <0>;
766be33864SEmmanuel Vadot
776be33864SEmmanuel Vadot            watchdog@4 {
786be33864SEmmanuel Vadot                compatible = "kontron,sl28cpld-wdt";
796be33864SEmmanuel Vadot                reg = <0x4>;
806be33864SEmmanuel Vadot                kontron,assert-wdt-timeout-pin;
816be33864SEmmanuel Vadot            };
826be33864SEmmanuel Vadot
836be33864SEmmanuel Vadot            hwmon@b {
846be33864SEmmanuel Vadot                compatible = "kontron,sl28cpld-fan";
856be33864SEmmanuel Vadot                reg = <0xb>;
866be33864SEmmanuel Vadot            };
876be33864SEmmanuel Vadot
886be33864SEmmanuel Vadot            pwm@c {
896be33864SEmmanuel Vadot                compatible = "kontron,sl28cpld-pwm";
906be33864SEmmanuel Vadot                reg = <0xc>;
916be33864SEmmanuel Vadot                #pwm-cells = <2>;
926be33864SEmmanuel Vadot            };
936be33864SEmmanuel Vadot
946be33864SEmmanuel Vadot            pwm@e {
956be33864SEmmanuel Vadot                compatible = "kontron,sl28cpld-pwm";
966be33864SEmmanuel Vadot                reg = <0xe>;
976be33864SEmmanuel Vadot                #pwm-cells = <2>;
986be33864SEmmanuel Vadot            };
996be33864SEmmanuel Vadot
1006be33864SEmmanuel Vadot            gpio@10 {
1016be33864SEmmanuel Vadot                compatible = "kontron,sl28cpld-gpio";
1026be33864SEmmanuel Vadot                reg = <0x10>;
1036be33864SEmmanuel Vadot                interrupts-extended = <&gpio2 6
1046be33864SEmmanuel Vadot                               IRQ_TYPE_EDGE_FALLING>;
1056be33864SEmmanuel Vadot
1066be33864SEmmanuel Vadot                gpio-controller;
1076be33864SEmmanuel Vadot                #gpio-cells = <2>;
1086be33864SEmmanuel Vadot                gpio-line-names = "a", "b", "c";
1096be33864SEmmanuel Vadot
1106be33864SEmmanuel Vadot                interrupt-controller;
1116be33864SEmmanuel Vadot                #interrupt-cells = <2>;
1126be33864SEmmanuel Vadot            };
1136be33864SEmmanuel Vadot
1146be33864SEmmanuel Vadot            gpio@15 {
1156be33864SEmmanuel Vadot                compatible = "kontron,sl28cpld-gpio";
1166be33864SEmmanuel Vadot                reg = <0x15>;
1176be33864SEmmanuel Vadot                interrupts-extended = <&gpio2 6
1186be33864SEmmanuel Vadot                               IRQ_TYPE_EDGE_FALLING>;
1196be33864SEmmanuel Vadot
1206be33864SEmmanuel Vadot                gpio-controller;
1216be33864SEmmanuel Vadot                #gpio-cells = <2>;
1226be33864SEmmanuel Vadot
1236be33864SEmmanuel Vadot                interrupt-controller;
1246be33864SEmmanuel Vadot                #interrupt-cells = <2>;
1256be33864SEmmanuel Vadot            };
1266be33864SEmmanuel Vadot
1276be33864SEmmanuel Vadot            gpio@1a {
1286be33864SEmmanuel Vadot                compatible = "kontron,sl28cpld-gpo";
1296be33864SEmmanuel Vadot                reg = <0x1a>;
1306be33864SEmmanuel Vadot
1316be33864SEmmanuel Vadot                gpio-controller;
1326be33864SEmmanuel Vadot                #gpio-cells = <2>;
1336be33864SEmmanuel Vadot            };
1346be33864SEmmanuel Vadot
1356be33864SEmmanuel Vadot            gpio@1b {
1366be33864SEmmanuel Vadot                compatible = "kontron,sl28cpld-gpi";
1376be33864SEmmanuel Vadot                reg = <0x1b>;
1386be33864SEmmanuel Vadot
1396be33864SEmmanuel Vadot                gpio-controller;
1406be33864SEmmanuel Vadot                #gpio-cells = <2>;
1416be33864SEmmanuel Vadot            };
1426be33864SEmmanuel Vadot
1436be33864SEmmanuel Vadot            interrupt-controller@1c {
1446be33864SEmmanuel Vadot                compatible = "kontron,sl28cpld-intc";
1456be33864SEmmanuel Vadot                reg = <0x1c>;
1466be33864SEmmanuel Vadot                interrupts-extended = <&gpio2 6
1476be33864SEmmanuel Vadot                               IRQ_TYPE_EDGE_FALLING>;
1486be33864SEmmanuel Vadot
1496be33864SEmmanuel Vadot                interrupt-controller;
1506be33864SEmmanuel Vadot                #interrupt-cells = <2>;
1516be33864SEmmanuel Vadot            };
1526be33864SEmmanuel Vadot        };
1536be33864SEmmanuel Vadot    };
154