Commit 48e28a24 authored by Michael Walle's avatar Michael Walle Committed by Lee Jones
Browse files

dt-bindings: mfd: Add bindings for sl28cpld



Add a device tree bindings for the board management controller found on
the Kontron SMARC-sAL28 board.

Signed-off-by: default avatarMichael Walle <michael@walle.cc>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent 3abee457
Loading
Loading
Loading
Loading
+54 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/gpio/kontron,sl28cpld-gpio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: GPIO driver for the sl28cpld board management controller

maintainers:
  - Michael Walle <michael@walle.cc>

description: |
  This module is part of the sl28cpld multi-function device. For more
  details see ../mfd/kontron,sl28cpld.yaml.

  There are three flavors of the GPIO controller, one full featured
  input/output with interrupt support (kontron,sl28cpld-gpio), one
  output-only (kontron,sl28-gpo) and one input-only (kontron,sl28-gpi).

  Each controller supports 8 GPIO lines.

properties:
  compatible:
    enum:
      - kontron,sl28cpld-gpio
      - kontron,sl28cpld-gpi
      - kontron,sl28cpld-gpo

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  "#interrupt-cells":
    const: 2

  interrupt-controller: true

  "#gpio-cells":
    const: 2

  gpio-controller: true

  gpio-line-names:
      minItems: 1
      maxItems: 8

required:
  - compatible
  - "#gpio-cells"
  - gpio-controller

additionalProperties: false
+27 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/kontron,sl28cpld-hwmon.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Hardware monitoring driver for the sl28cpld board management controller

maintainers:
  - Michael Walle <michael@walle.cc>

description: |
  This module is part of the sl28cpld multi-function device. For more
  details see ../mfd/kontron,sl28cpld.yaml.

properties:
  compatible:
    enum:
      - kontron,sl28cpld-fan

  reg:
    maxItems: 1

required:
  - compatible

additionalProperties: false
+54 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/interrupt-controller/kontron,sl28cpld-intc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Interrupt controller driver for the sl28cpld board management controller

maintainers:
  - Michael Walle <michael@walle.cc>

description: |
  This module is part of the sl28cpld multi-function device. For more
  details see ../mfd/kontron,sl28cpld.yaml.

  The following interrupts are available. All types and levels are fixed
  and handled by the board management controller.

  ==== ============= ==================================
   IRQ line/device   description
  ==== ============= ==================================
    0  RTC_INT#      Interrupt line from on-board RTC
    1  SMB_ALERT#    Event on SMB_ALERT# line (P1)
    2  ESPI_ALERT0#  Event on ESPI_ALERT0# line (S43)
    3  ESPI_ALERT1#  Event on ESPI_ALERT1# line (S44)
    4  PWR_BTN#      Event on PWR_BTN# line (P128)
    5  SLEEP#        Event on SLEEP# line (S149)
    6  watchdog      Interrupt of the internal watchdog
    7  n/a           not used
  ==== ============= ==================================

properties:
  compatible:
    enum:
      - kontron,sl28cpld-intc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  "#interrupt-cells":
    const: 2

  interrupt-controller: true

required:
  - compatible
  - interrupts
  - "#interrupt-cells"
  - interrupt-controller

additionalProperties: false
+153 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/kontron,sl28cpld.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Kontron's sl28cpld board management controller

maintainers:
  - Michael Walle <michael@walle.cc>

description: |
  The board management controller may contain different IP blocks like
  watchdog, fan monitoring, PWM controller, interrupt controller and a
  GPIO controller.

properties:
  compatible:
    const: kontron,sl28cpld

  reg:
    description:
      I2C device address.
    maxItems: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  "#interrupt-cells":
    const: 2

  interrupts:
    maxItems: 1

  interrupt-controller: true

patternProperties:
  "^gpio(@[0-9a-f]+)?$":
    $ref: ../gpio/kontron,sl28cpld-gpio.yaml

  "^hwmon(@[0-9a-f]+)?$":
    $ref: ../hwmon/kontron,sl28cpld-hwmon.yaml

  "^interrupt-controller(@[0-9a-f]+)?$":
    $ref: ../interrupt-controller/kontron,sl28cpld-intc.yaml

  "^pwm(@[0-9a-f]+)?$":
    $ref: ../pwm/kontron,sl28cpld-pwm.yaml

  "^watchdog(@[0-9a-f]+)?$":
    $ref: ../watchdog/kontron,sl28cpld-wdt.yaml

required:
  - "#address-cells"
  - "#size-cells"
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        sl28cpld@4a {
            compatible = "kontron,sl28cpld";
            reg = <0x4a>;
            #address-cells = <1>;
            #size-cells = <0>;

            watchdog@4 {
                compatible = "kontron,sl28cpld-wdt";
                reg = <0x4>;
                kontron,assert-wdt-timeout-pin;
            };

            hwmon@b {
                compatible = "kontron,sl28cpld-fan";
                reg = <0xb>;
            };

            pwm@c {
                compatible = "kontron,sl28cpld-pwm";
                reg = <0xc>;
                #pwm-cells = <2>;
            };

            pwm@e {
                compatible = "kontron,sl28cpld-pwm";
                reg = <0xe>;
                #pwm-cells = <2>;
            };

            gpio@10 {
                compatible = "kontron,sl28cpld-gpio";
                reg = <0x10>;
                interrupts-extended = <&gpio2 6
                               IRQ_TYPE_EDGE_FALLING>;

                gpio-controller;
                #gpio-cells = <2>;
                gpio-line-names = "a", "b", "c";

                interrupt-controller;
                #interrupt-cells = <2>;
            };

            gpio@15 {
                compatible = "kontron,sl28cpld-gpio";
                reg = <0x15>;
                interrupts-extended = <&gpio2 6
                               IRQ_TYPE_EDGE_FALLING>;

                gpio-controller;
                #gpio-cells = <2>;

                interrupt-controller;
                #interrupt-cells = <2>;
            };

            gpio@1a {
                compatible = "kontron,sl28cpld-gpo";
                reg = <0x1a>;

                gpio-controller;
                #gpio-cells = <2>;
            };

            gpio@1b {
                compatible = "kontron,sl28cpld-gpi";
                reg = <0x1b>;

                gpio-controller;
                #gpio-cells = <2>;
            };

            interrupt-controller@1c {
                compatible = "kontron,sl28cpld-intc";
                reg = <0x1c>;
                interrupts-extended = <&gpio2 6
                               IRQ_TYPE_EDGE_FALLING>;

                interrupt-controller;
                #interrupt-cells = <2>;
            };
        };
    };
+35 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pwm/kontron,sl28cpld-pwm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: PWM driver for the sl28cpld board management controller

maintainers:
  - Michael Walle <michael@walle.cc>

description: |
  This module is part of the sl28cpld multi-function device. For more
  details see ../mfd/kontron,sl28cpld.yaml.

  The controller supports one PWM channel and supports only four distinct
  frequencies (250Hz, 500Hz, 1kHz, 2kHz).

allOf:
  - $ref: pwm.yaml#

properties:
  compatible:
    const: kontron,sl28cpld-pwm

  reg:
    maxItems: 1

  "#pwm-cells":
    const: 2

required:
  - compatible

additionalProperties: false
Loading