Message ID | 20200725231834.25642-3-michael@walle.cc (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | Add support for Kontron sl28cpld | expand |
On Sun, 26 Jul 2020, Michael Walle wrote: > Add a device tree bindings for the board management controller found on > the Kontron SMARC-sAL28 board. > > Signed-off-by: Michael Walle <michael@walle.cc> > Reviewed-by: Rob Herring <robh@kernel.org> > --- > Changes since v5: > - none > > Changes since v4: > - fix the regex of the unit-address > > Changes since v3: > - see cover letter > > .../bindings/gpio/kontron,sl28cpld-gpio.yaml | 54 +++++++ > .../hwmon/kontron,sl28cpld-hwmon.yaml | 27 ++++ > .../kontron,sl28cpld-intc.yaml | 54 +++++++ > .../bindings/mfd/kontron,sl28cpld.yaml | 153 ++++++++++++++++++ > .../bindings/pwm/kontron,sl28cpld-pwm.yaml | 35 ++++ > .../watchdog/kontron,sl28cpld-wdt.yaml | 35 ++++ > 6 files changed, 358 insertions(+) > create mode 100644 Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml > create mode 100644 Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml > create mode 100644 Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml > create mode 100644 Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml > create mode 100644 Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml > create mode 100644 Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml > > diff --git a/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml b/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml > new file mode 100644 > index 000000000000..9a63a158a796 > --- /dev/null > +++ b/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml > @@ -0,0 +1,54 @@ > +# 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 Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml. Paths are normally relative. > + 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 > diff --git a/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml b/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml > new file mode 100644 > index 000000000000..1cebd61c6c32 > --- /dev/null > +++ b/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml > @@ -0,0 +1,27 @@ > +# 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 Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml. > + > +properties: > + compatible: > + enum: > + - kontron,sl28cpld-fan > + > + reg: > + maxItems: 1 > + > +required: > + - compatible > + > +additionalProperties: false > diff --git a/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml b/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml > new file mode 100644 > index 000000000000..4c39e9ff9aea > --- /dev/null > +++ b/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml > @@ -0,0 +1,54 @@ > +# 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 Documentation/devicetree/bindings/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 > diff --git a/Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml b/Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml > new file mode 100644 > index 000000000000..e3a62db678e7 > --- /dev/null > +++ b/Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml > @@ -0,0 +1,153 @@ > +# 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 "S128CPLD" ? "Board Management Controller (BMC)" ? > +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-r1 We don't usually code revision numbers in compatible strings. Is there any way to pull this from the H/W? > + 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 { > + #address-cells = <1>; > + #size-cells = <0>; > + compatible = "kontron,sl28cpld-r1"; > + reg = <0x4a>; Nit: Could you put the 'reg' and 'compatible' at the top please? Same for all nodes. > + watchdog@4 { > + compatible = "kontron,sl28cpld-wdt"; > + reg = <0x4>; > + kontron,assert-wdt-timeout-pin; > + }; > + > + hwmon@b { > + compatible = "kontron,sl28cpld-fan"; > + reg = <0xb>; > + }; > + > + pwm@c { > + #pwm-cells = <2>; > + compatible = "kontron,sl28cpld-pwm"; > + reg = <0xc>; > + }; > + > + pwm@e { > + #pwm-cells = <2>; > + compatible = "kontron,sl28cpld-pwm"; > + reg = <0xe>; > + }; > + > + 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>; > + }; > + }; > + };
Am 2020-07-28 09:24, schrieb Lee Jones: > On Sun, 26 Jul 2020, Michael Walle wrote: > >> Add a device tree bindings for the board management controller found >> on >> the Kontron SMARC-sAL28 board. >> >> Signed-off-by: Michael Walle <michael@walle.cc> >> Reviewed-by: Rob Herring <robh@kernel.org> >> --- >> Changes since v5: >> - none >> >> Changes since v4: >> - fix the regex of the unit-address >> >> Changes since v3: >> - see cover letter >> >> .../bindings/gpio/kontron,sl28cpld-gpio.yaml | 54 +++++++ >> .../hwmon/kontron,sl28cpld-hwmon.yaml | 27 ++++ >> .../kontron,sl28cpld-intc.yaml | 54 +++++++ >> .../bindings/mfd/kontron,sl28cpld.yaml | 153 >> ++++++++++++++++++ >> .../bindings/pwm/kontron,sl28cpld-pwm.yaml | 35 ++++ >> .../watchdog/kontron,sl28cpld-wdt.yaml | 35 ++++ >> 6 files changed, 358 insertions(+) >> create mode 100644 >> Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml >> create mode 100644 >> Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml >> create mode 100644 >> Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml >> create mode 100644 >> Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml >> create mode 100644 >> Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml >> create mode 100644 >> Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml >> >> diff --git >> a/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml >> b/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml >> new file mode 100644 >> index 000000000000..9a63a158a796 >> --- /dev/null >> +++ >> b/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml >> @@ -0,0 +1,54 @@ >> +# 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 >> Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml. > > Paths are normally relative. grep Documentation/ Documentation I know there are a lot false positives (esp in the first one).. $ grep -r "\.\./" Documentation | wc -l 1826 $ grep -r "Documentation/" Documentation|wc -l 2862 > >> + 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 >> diff --git >> a/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml >> b/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml >> new file mode 100644 >> index 000000000000..1cebd61c6c32 >> --- /dev/null >> +++ >> b/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml >> @@ -0,0 +1,27 @@ >> +# 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 >> Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml. >> + >> +properties: >> + compatible: >> + enum: >> + - kontron,sl28cpld-fan >> + >> + reg: >> + maxItems: 1 >> + >> +required: >> + - compatible >> + >> +additionalProperties: false >> diff --git >> a/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml >> b/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml >> new file mode 100644 >> index 000000000000..4c39e9ff9aea >> --- /dev/null >> +++ >> b/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml >> @@ -0,0 +1,54 @@ >> +# 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 >> Documentation/devicetree/bindings/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 >> diff --git >> a/Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml >> b/Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml >> new file mode 100644 >> index 000000000000..e3a62db678e7 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml >> @@ -0,0 +1,153 @@ >> +# 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 > > "S128CPLD" ? still not, its sl28cpld, think of a project/code name, not the product appended with CPLD. > "Board Management Controller (BMC)" ? sounds like IPMI, which I wanted to avoid. > >> +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-r1 > > We don't usually code revision numbers in compatible strings. > > Is there any way to pull this from the H/W? No, unfortunately you can't. And I really want to keep that, in case in the future there are some backwards incompatible changes. >> + 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 { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + compatible = "kontron,sl28cpld-r1"; >> + reg = <0x4a>; > > Nit: Could you put the 'reg' and 'compatible' at the top please? > > Same for all nodes. Sure, I've looked at previous examples, but they are not consistent, but it looked to me if the "#" properties are listed first. -michael
On Tue, 28 Jul 2020, Michael Walle wrote: > Am 2020-07-28 09:24, schrieb Lee Jones: > > On Sun, 26 Jul 2020, Michael Walle wrote: > > > > > Add a device tree bindings for the board management controller found > > > on > > > the Kontron SMARC-sAL28 board. > > > > > > Signed-off-by: Michael Walle <michael@walle.cc> > > > Reviewed-by: Rob Herring <robh@kernel.org> > > > --- > > > Changes since v5: > > > - none > > > > > > Changes since v4: > > > - fix the regex of the unit-address > > > > > > Changes since v3: > > > - see cover letter > > > > > > .../bindings/gpio/kontron,sl28cpld-gpio.yaml | 54 +++++++ > > > .../hwmon/kontron,sl28cpld-hwmon.yaml | 27 ++++ > > > .../kontron,sl28cpld-intc.yaml | 54 +++++++ > > > .../bindings/mfd/kontron,sl28cpld.yaml | 153 > > > ++++++++++++++++++ > > > .../bindings/pwm/kontron,sl28cpld-pwm.yaml | 35 ++++ > > > .../watchdog/kontron,sl28cpld-wdt.yaml | 35 ++++ > > > 6 files changed, 358 insertions(+) > > > create mode 100644 > > > Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml > > > create mode 100644 > > > Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml > > > create mode 100644 Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml > > > create mode 100644 > > > Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml > > > create mode 100644 > > > Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml > > > create mode 100644 > > > Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml > > > > > > diff --git > > > a/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml > > > b/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml > > > new file mode 100644 > > > index 000000000000..9a63a158a796 > > > --- /dev/null > > > +++ > > > b/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml > > > @@ -0,0 +1,54 @@ > > > +# 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 > > > Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml. > > > > Paths are normally relative. > > grep Documentation/ Documentation > > I know there are a lot false positives (esp in the first one).. > > $ grep -r "\.\./" Documentation | wc -l > 1826 > $ grep -r "Documentation/" Documentation|wc -l > 2862 I actually meant just for Device Tree bindings, but it does appear that 'Documentation' is used a bunch there too. My reasons for not liking full paths is that the intention was always to move 'Documentation/devicetree' to a new location outside of the kernel source tree. [...] > > > +%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 > > > > "S128CPLD" ? > > still not, its sl28cpld, think of a project/code name, not the product > appended with CPLD. > > > "Board Management Controller (BMC)" ? > > sounds like IPMI, which I wanted to avoid. Is there a datasheet? > > > +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-r1 > > > > We don't usually code revision numbers in compatible strings. > > > > Is there any way to pull this from the H/W? > > No, unfortunately you can't. And I really want to keep that, in case > in the future there are some backwards incompatible changes. Rob, I know you reviewed this already, but you can give your opinion on this specifically please? I know that we have pushed back on this in the past.
Am 2020-07-28 10:27, schrieb Lee Jones: > On Tue, 28 Jul 2020, Michael Walle wrote: > >> Am 2020-07-28 09:24, schrieb Lee Jones: >> > On Sun, 26 Jul 2020, Michael Walle wrote: >> > >> > > Add a device tree bindings for the board management controller found >> > > on >> > > the Kontron SMARC-sAL28 board. >> > > >> > > Signed-off-by: Michael Walle <michael@walle.cc> >> > > Reviewed-by: Rob Herring <robh@kernel.org> >> > > --- >> > > Changes since v5: >> > > - none >> > > >> > > Changes since v4: >> > > - fix the regex of the unit-address >> > > >> > > Changes since v3: >> > > - see cover letter >> > > >> > > .../bindings/gpio/kontron,sl28cpld-gpio.yaml | 54 +++++++ >> > > .../hwmon/kontron,sl28cpld-hwmon.yaml | 27 ++++ >> > > .../kontron,sl28cpld-intc.yaml | 54 +++++++ >> > > .../bindings/mfd/kontron,sl28cpld.yaml | 153 >> > > ++++++++++++++++++ >> > > .../bindings/pwm/kontron,sl28cpld-pwm.yaml | 35 ++++ >> > > .../watchdog/kontron,sl28cpld-wdt.yaml | 35 ++++ >> > > 6 files changed, 358 insertions(+) >> > > create mode 100644 >> > > Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml >> > > create mode 100644 >> > > Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml >> > > create mode 100644 Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml >> > > create mode 100644 >> > > Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml >> > > create mode 100644 >> > > Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml >> > > create mode 100644 >> > > Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml >> > > >> > > diff --git >> > > a/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml >> > > b/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml >> > > new file mode 100644 >> > > index 000000000000..9a63a158a796 >> > > --- /dev/null >> > > +++ >> > > b/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml >> > > @@ -0,0 +1,54 @@ >> > > +# 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 >> > > Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml. >> > >> > Paths are normally relative. >> >> grep Documentation/ Documentation >> >> I know there are a lot false positives (esp in the first one).. >> >> $ grep -r "\.\./" Documentation | wc -l >> 1826 >> $ grep -r "Documentation/" Documentation|wc -l >> 2862 > > I actually meant just for Device Tree bindings, but it does appear > that 'Documentation' is used a bunch there too. > > My reasons for not liking full paths is that the intention was always > to move 'Documentation/devicetree' to a new location outside of the > kernel source tree. I see. I'll change that. >> > > +%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 >> > >> > "S128CPLD" ? >> >> still not, its sl28cpld, think of a project/code name, not the product >> appended with CPLD. >> >> > "Board Management Controller (BMC)" ? >> >> sounds like IPMI, which I wanted to avoid. > > Is there a datasheet? No there isn't. >> > > +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-r1 >> > >> > We don't usually code revision numbers in compatible strings. >> > >> > Is there any way to pull this from the H/W? >> >> No, unfortunately you can't. And I really want to keep that, in case >> in the future there are some backwards incompatible changes. > > Rob, > > I know you reviewed this already, but you can give your opinion on > this specifically please? I know that we have pushed back on this in > the past. Oh, come one. That is an arbitrary string. "sl28cpld-r1" is the first implementation of this. A future "sl28cpld-r2" might look completely different and might not suite the simple MFD at all. "sl28cpld" is a made up name - as "sl28cpld-r1" is, too. -michael
> > > > > +$id: http://devicetree.org/schemas/mfd/kontron,sl28cpld.yaml# > > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > > > + > > > > > +title: Kontron's sl28cpld board management controller > > > > > > > > "S128CPLD" ? > > > > > > still not, its sl28cpld, think of a project/code name, not the product > > > appended with CPLD. > > > > > > > "Board Management Controller (BMC)" ? > > > > > > sounds like IPMI, which I wanted to avoid. > > > > Is there a datasheet? > > No there isn't. Then what are you working from? > > > > > +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-r1 > > > > > > > > We don't usually code revision numbers in compatible strings. > > > > > > > > Is there any way to pull this from the H/W? > > > > > > No, unfortunately you can't. And I really want to keep that, in case > > > in the future there are some backwards incompatible changes. > > > > Rob, > > > > I know you reviewed this already, but you can give your opinion on > > this specifically please? I know that we have pushed back on this in > > the past. > > Oh, come one. That is an arbitrary string. "sl28cpld-r1" is the first > implementation of this. A future "sl28cpld-r2" might look completely > different and might not suite the simple MFD at all. "sl28cpld" is > a made up name - as "sl28cpld-r1" is, too. Well that sounds bogus for a start. I guess that's one of the problems with trying to support programmable H/W in S/W. If it's okay with Rob, then I'll be okay with it. Just to note, this has not been okay for others in the past, and this use-case is not 'special'.
Am 2020-07-28 10:56, schrieb Lee Jones: >> > > > > +$id: http://devicetree.org/schemas/mfd/kontron,sl28cpld.yaml# >> > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# >> > > > > + >> > > > > +title: Kontron's sl28cpld board management controller >> > > > >> > > > "S128CPLD" ? >> > > >> > > still not, its sl28cpld, think of a project/code name, not the product >> > > appended with CPLD. >> > > >> > > > "Board Management Controller (BMC)" ? >> > > >> > > sounds like IPMI, which I wanted to avoid. >> > >> > Is there a datasheet? >> >> No there isn't. > > Then what are you working from? Ok, there is no public datasheet. If that wasn't clear before, I'm working for that company that also implemented that CPLD. >> > > > > +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-r1 >> > > > >> > > > We don't usually code revision numbers in compatible strings. >> > > > >> > > > Is there any way to pull this from the H/W? >> > > >> > > No, unfortunately you can't. And I really want to keep that, in case >> > > in the future there are some backwards incompatible changes. >> > >> > Rob, >> > >> > I know you reviewed this already, but you can give your opinion on >> > this specifically please? I know that we have pushed back on this in >> > the past. >> >> Oh, come one. That is an arbitrary string. "sl28cpld-r1" is the first >> implementation of this. A future "sl28cpld-r2" might look completely >> different and might not suite the simple MFD at all. "sl28cpld" is >> a made up name - as "sl28cpld-r1" is, too. > > Well that sounds bogus for a start. I guess that's one of the > problems with trying to support programmable H/W in S/W. What sounds bogus? That we name the implementation sl28cpld? How is that different to like adt7411? Its just a name made up by the vendor. So if there is a new version of the adt7411 the vendor might name it adt7412. We name it sl28cpld-r2. So what is the problem here? -michael
On Tue, 28 Jul 2020, Michael Walle wrote: > Am 2020-07-28 10:56, schrieb Lee Jones: > > > > > > > +$id: http://devicetree.org/schemas/mfd/kontron,sl28cpld.yaml# > > > > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > > > > > + > > > > > > > +title: Kontron's sl28cpld board management controller > > > > > > > > > > > > "S128CPLD" ? > > > > > > > > > > still not, its sl28cpld, think of a project/code name, not the product > > > > > appended with CPLD. > > > > > > > > > > > "Board Management Controller (BMC)" ? > > > > > > > > > > sounds like IPMI, which I wanted to avoid. > > > > > > > > Is there a datasheet? > > > > > > No there isn't. > > > > Then what are you working from? > > Ok, there is no public datasheet. If that wasn't clear before, I'm working > for that company that also implemented that CPLD. No, that wasn't clear. You said there was no datasheet. > > > > > > > +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-r1 > > > > > > > > > > > > We don't usually code revision numbers in compatible strings. > > > > > > > > > > > > Is there any way to pull this from the H/W? > > > > > > > > > > No, unfortunately you can't. And I really want to keep that, in case > > > > > in the future there are some backwards incompatible changes. > > > > > > > > Rob, > > > > > > > > I know you reviewed this already, but you can give your opinion on > > > > this specifically please? I know that we have pushed back on this in > > > > the past. > > > > > > Oh, come one. That is an arbitrary string. "sl28cpld-r1" is the first > > > implementation of this. A future "sl28cpld-r2" might look completely > > > different and might not suite the simple MFD at all. "sl28cpld" is > > > a made up name - as "sl28cpld-r1" is, too. > > > > Well that sounds bogus for a start. I guess that's one of the > > problems with trying to support programmable H/W in S/W. > > What sounds bogus? That we name the implementation sl28cpld? > How is that different to like adt7411? Its just a name made up by > the vendor. So if there is a new version of the adt7411 the vendor > might name it adt7412. Using an arbitrary string as a compatible would be bogus. So here 'sl28cpld' is the device name, so it's not actually arbitrary. That's a good start. > We name it sl28cpld-r2. So what is the problem here? Do you though? So 'sl28cpld-r1' is the name of the device? The name that is quoted from the (private) datasheet? Because looking at the implementation and going by the conversation, it sounds as though you-re only adding the '-r1' piece to the compatible string for revision identification. Which if true, is not usually allowed and warrants intervention by Rob.
Am 2020-07-28 11:20, schrieb Lee Jones: >> What sounds bogus? That we name the implementation sl28cpld? >> How is that different to like adt7411? Its just a name made up by >> the vendor. So if there is a new version of the adt7411 the vendor >> might name it adt7412. > > Using an arbitrary string as a compatible would be bogus. > > So here 'sl28cpld' is the device name, so it's not actually > arbitrary. That's a good start. > >> We name it sl28cpld-r2. So what is the problem here? > > Do you though? So 'sl28cpld-r1' is the name of the device? The name > that is quoted from the (private) datasheet? Because looking at the > implementation and going by the conversation, it sounds as though > you-re only adding the '-r1' piece to the compatible string for > revision identification. Which if true, is not usually allowed and > warrants intervention by Rob. Revisions would imply backwards compatibility, correct? I'm not aming for that. Yes, I appended that "-r1" (in the lack of any better suffix) because I didn't want to tie the base name to the simple MFD, just in case. And isn't that the whole purpose of the compatible string? To connect a driver to a piece of hardware? But even here, I don't care anymore. I strip it again. So future incarnations which aren't compatible with simple mfd will need another name. So what. -michael
diff --git a/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml b/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml new file mode 100644 index 000000000000..9a63a158a796 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/kontron,sl28cpld-gpio.yaml @@ -0,0 +1,54 @@ +# 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 Documentation/devicetree/bindings/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 diff --git a/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml b/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml new file mode 100644 index 000000000000..1cebd61c6c32 --- /dev/null +++ b/Documentation/devicetree/bindings/hwmon/kontron,sl28cpld-hwmon.yaml @@ -0,0 +1,27 @@ +# 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 Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml. + +properties: + compatible: + enum: + - kontron,sl28cpld-fan + + reg: + maxItems: 1 + +required: + - compatible + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml b/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml new file mode 100644 index 000000000000..4c39e9ff9aea --- /dev/null +++ b/Documentation/devicetree/bindings/interrupt-controller/kontron,sl28cpld-intc.yaml @@ -0,0 +1,54 @@ +# 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 Documentation/devicetree/bindings/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 diff --git a/Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml b/Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml new file mode 100644 index 000000000000..e3a62db678e7 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml @@ -0,0 +1,153 @@ +# 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-r1 + + 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 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "kontron,sl28cpld-r1"; + reg = <0x4a>; + + watchdog@4 { + compatible = "kontron,sl28cpld-wdt"; + reg = <0x4>; + kontron,assert-wdt-timeout-pin; + }; + + hwmon@b { + compatible = "kontron,sl28cpld-fan"; + reg = <0xb>; + }; + + pwm@c { + #pwm-cells = <2>; + compatible = "kontron,sl28cpld-pwm"; + reg = <0xc>; + }; + + pwm@e { + #pwm-cells = <2>; + compatible = "kontron,sl28cpld-pwm"; + reg = <0xe>; + }; + + 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>; + }; + }; + }; diff --git a/Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml b/Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml new file mode 100644 index 000000000000..02fe88c30233 --- /dev/null +++ b/Documentation/devicetree/bindings/pwm/kontron,sl28cpld-pwm.yaml @@ -0,0 +1,35 @@ +# 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 Documentation/devicetree/bindings/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 diff --git a/Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml b/Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml new file mode 100644 index 000000000000..dd6559f2973a --- /dev/null +++ b/Documentation/devicetree/bindings/watchdog/kontron,sl28cpld-wdt.yaml @@ -0,0 +1,35 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/watchdog/kontron,sl28cpld-wdt.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Watchdog 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 Documentation/devicetree/bindings/mfd/kontron,sl28cpld.yaml. + +allOf: + - $ref: watchdog.yaml# + +properties: + compatible: + const: kontron,sl28cpld-wdt + + reg: + maxItems: 1 + + kontron,assert-wdt-timeout-pin: + description: The SMARC standard defines a WDT_TIME_OUT# pin. If this + property is set, this output will be pulsed when the watchdog bites + and the system resets. + type: boolean + +required: + - compatible + +additionalProperties: false