18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/kontron,sl28cpld.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Kontron's sl28cpld board management controller
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Michael Walle <michael@walle.cc>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cidescription: |
138c2ecf20Sopenharmony_ci  The board management controller may contain different IP blocks like
148c2ecf20Sopenharmony_ci  watchdog, fan monitoring, PWM controller, interrupt controller and a
158c2ecf20Sopenharmony_ci  GPIO controller.
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciproperties:
188c2ecf20Sopenharmony_ci  compatible:
198c2ecf20Sopenharmony_ci    const: kontron,sl28cpld
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci  reg:
228c2ecf20Sopenharmony_ci    description:
238c2ecf20Sopenharmony_ci      I2C device address.
248c2ecf20Sopenharmony_ci    maxItems: 1
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci  "#address-cells":
278c2ecf20Sopenharmony_ci    const: 1
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci  "#size-cells":
308c2ecf20Sopenharmony_ci    const: 0
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci  "#interrupt-cells":
338c2ecf20Sopenharmony_ci    const: 2
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci  interrupts:
368c2ecf20Sopenharmony_ci    maxItems: 1
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci  interrupt-controller: true
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_cipatternProperties:
418c2ecf20Sopenharmony_ci  "^gpio(@[0-9a-f]+)?$":
428c2ecf20Sopenharmony_ci    $ref: ../gpio/kontron,sl28cpld-gpio.yaml
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci  "^hwmon(@[0-9a-f]+)?$":
458c2ecf20Sopenharmony_ci    $ref: ../hwmon/kontron,sl28cpld-hwmon.yaml
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci  "^interrupt-controller(@[0-9a-f]+)?$":
488c2ecf20Sopenharmony_ci    $ref: ../interrupt-controller/kontron,sl28cpld-intc.yaml
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci  "^pwm(@[0-9a-f]+)?$":
518c2ecf20Sopenharmony_ci    $ref: ../pwm/kontron,sl28cpld-pwm.yaml
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci  "^watchdog(@[0-9a-f]+)?$":
548c2ecf20Sopenharmony_ci    $ref: ../watchdog/kontron,sl28cpld-wdt.yaml
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_cirequired:
578c2ecf20Sopenharmony_ci  - "#address-cells"
588c2ecf20Sopenharmony_ci  - "#size-cells"
598c2ecf20Sopenharmony_ci  - compatible
608c2ecf20Sopenharmony_ci  - reg
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ciadditionalProperties: false
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ciexamples:
658c2ecf20Sopenharmony_ci  - |
668c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
678c2ecf20Sopenharmony_ci    i2c {
688c2ecf20Sopenharmony_ci        #address-cells = <1>;
698c2ecf20Sopenharmony_ci        #size-cells = <0>;
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci        sl28cpld@4a {
728c2ecf20Sopenharmony_ci            compatible = "kontron,sl28cpld";
738c2ecf20Sopenharmony_ci            reg = <0x4a>;
748c2ecf20Sopenharmony_ci            #address-cells = <1>;
758c2ecf20Sopenharmony_ci            #size-cells = <0>;
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci            watchdog@4 {
788c2ecf20Sopenharmony_ci                compatible = "kontron,sl28cpld-wdt";
798c2ecf20Sopenharmony_ci                reg = <0x4>;
808c2ecf20Sopenharmony_ci                kontron,assert-wdt-timeout-pin;
818c2ecf20Sopenharmony_ci            };
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ci            hwmon@b {
848c2ecf20Sopenharmony_ci                compatible = "kontron,sl28cpld-fan";
858c2ecf20Sopenharmony_ci                reg = <0xb>;
868c2ecf20Sopenharmony_ci            };
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ci            pwm@c {
898c2ecf20Sopenharmony_ci                compatible = "kontron,sl28cpld-pwm";
908c2ecf20Sopenharmony_ci                reg = <0xc>;
918c2ecf20Sopenharmony_ci                #pwm-cells = <2>;
928c2ecf20Sopenharmony_ci            };
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci            pwm@e {
958c2ecf20Sopenharmony_ci                compatible = "kontron,sl28cpld-pwm";
968c2ecf20Sopenharmony_ci                reg = <0xe>;
978c2ecf20Sopenharmony_ci                #pwm-cells = <2>;
988c2ecf20Sopenharmony_ci            };
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ci            gpio@10 {
1018c2ecf20Sopenharmony_ci                compatible = "kontron,sl28cpld-gpio";
1028c2ecf20Sopenharmony_ci                reg = <0x10>;
1038c2ecf20Sopenharmony_ci                interrupts-extended = <&gpio2 6
1048c2ecf20Sopenharmony_ci                               IRQ_TYPE_EDGE_FALLING>;
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci                gpio-controller;
1078c2ecf20Sopenharmony_ci                #gpio-cells = <2>;
1088c2ecf20Sopenharmony_ci                gpio-line-names = "a", "b", "c";
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ci                interrupt-controller;
1118c2ecf20Sopenharmony_ci                #interrupt-cells = <2>;
1128c2ecf20Sopenharmony_ci            };
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci            gpio@15 {
1158c2ecf20Sopenharmony_ci                compatible = "kontron,sl28cpld-gpio";
1168c2ecf20Sopenharmony_ci                reg = <0x15>;
1178c2ecf20Sopenharmony_ci                interrupts-extended = <&gpio2 6
1188c2ecf20Sopenharmony_ci                               IRQ_TYPE_EDGE_FALLING>;
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ci                gpio-controller;
1218c2ecf20Sopenharmony_ci                #gpio-cells = <2>;
1228c2ecf20Sopenharmony_ci
1238c2ecf20Sopenharmony_ci                interrupt-controller;
1248c2ecf20Sopenharmony_ci                #interrupt-cells = <2>;
1258c2ecf20Sopenharmony_ci            };
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ci            gpio@1a {
1288c2ecf20Sopenharmony_ci                compatible = "kontron,sl28cpld-gpo";
1298c2ecf20Sopenharmony_ci                reg = <0x1a>;
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ci                gpio-controller;
1328c2ecf20Sopenharmony_ci                #gpio-cells = <2>;
1338c2ecf20Sopenharmony_ci            };
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ci            gpio@1b {
1368c2ecf20Sopenharmony_ci                compatible = "kontron,sl28cpld-gpi";
1378c2ecf20Sopenharmony_ci                reg = <0x1b>;
1388c2ecf20Sopenharmony_ci
1398c2ecf20Sopenharmony_ci                gpio-controller;
1408c2ecf20Sopenharmony_ci                #gpio-cells = <2>;
1418c2ecf20Sopenharmony_ci            };
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ci            interrupt-controller@1c {
1448c2ecf20Sopenharmony_ci                compatible = "kontron,sl28cpld-intc";
1458c2ecf20Sopenharmony_ci                reg = <0x1c>;
1468c2ecf20Sopenharmony_ci                interrupts-extended = <&gpio2 6
1478c2ecf20Sopenharmony_ci                               IRQ_TYPE_EDGE_FALLING>;
1488c2ecf20Sopenharmony_ci
1498c2ecf20Sopenharmony_ci                interrupt-controller;
1508c2ecf20Sopenharmony_ci                #interrupt-cells = <2>;
1518c2ecf20Sopenharmony_ci            };
1528c2ecf20Sopenharmony_ci        };
1538c2ecf20Sopenharmony_ci    };
154