Re: [PATCH v2 17/21] dt-bindings: ipmi: Convert ASPEED KCS binding to schema

From: Zev Weiss
Date: Fri Apr 09 2021 - 01:16:25 EST


On Fri, Mar 19, 2021 at 01:27:48AM CDT, Andrew Jeffery wrote:
>Given the deprecated binding, improve the ability to detect issues in
>the platform devicetrees. Further, a subsequent patch will introduce a
>new interrupts property for specifying SerIRQ behaviour, so convert
>before we do any further additions.
>
>Signed-off-by: Andrew Jeffery <andrew@xxxxxxxx>
>---
> .../bindings/ipmi/aspeed,ast2400-kcs-bmc.yaml | 92 +++++++++++++++++++
> .../bindings/ipmi/aspeed-kcs-bmc.txt | 33 -------
> 2 files changed, 92 insertions(+), 33 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/ipmi/aspeed,ast2400-kcs-bmc.yaml
> delete mode 100644 Documentation/devicetree/bindings/ipmi/aspeed-kcs-bmc.txt
>
>diff --git a/Documentation/devicetree/bindings/ipmi/aspeed,ast2400-kcs-bmc.yaml b/Documentation/devicetree/bindings/ipmi/aspeed,ast2400-kcs-bmc.yaml
>new file mode 100644
>index 000000000000..697ca575454f
>--- /dev/null
>+++ b/Documentation/devicetree/bindings/ipmi/aspeed,ast2400-kcs-bmc.yaml
>@@ -0,0 +1,92 @@
>+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>+%YAML 1.2
>+---
>+$id: http://devicetree.org/schemas/ipmi/aspeed,ast2400-kcs-bmc.yaml
>+$schema: http://devicetree.org/meta-schemas/core.yaml
>+
>+title: ASPEED BMC KCS Devices
>+
>+maintainers:
>+ - Andrew Jeffery <andrew@xxxxxxxx>
>+
>+description: |
>+ The Aspeed BMC SoCs typically use the Keyboard-Controller-Style (KCS)
>+ interfaces on the LPC bus for in-band IPMI communication with their host.
>+
>+properties:
>+ compatible:
>+ oneOf:
>+ - description: Channel ID derived from reg
>+ items:
>+ enum:
>+ - aspeed,ast2400-kcs-bmc-v2
>+ - aspeed,ast2500-kcs-bmc-v2
>+ - aspeed,ast2600-kcs-bmc

Should this have a "-v2" suffix?

>+
>+ - description: Old-style with explicit channel ID, no reg
>+ deprecated: true
>+ items:
>+ enum:
>+ - aspeed,ast2400-kcs-bmc
>+ - aspeed,ast2500-kcs-bmc
>+
>+ interrupts:
>+ maxItems: 1
>+
>+ reg:
>+ # maxItems: 3
>+ items:
>+ - description: IDR register
>+ - description: ODR register
>+ - description: STR register
>+
>+ aspeed,lpc-io-reg:
>+ $ref: '/schemas/types.yaml#/definitions/uint32-array'
>+ minItems: 1
>+ maxItems: 2
>+ description: |
>+ The host CPU LPC IO data and status addresses for the device. For most
>+ channels the status address is derived from the data address, but the
>+ status address may be optionally provided.
>+
>+ kcs_chan:
>+ deprecated: true
>+ $ref: '/schemas/types.yaml#/definitions/uint32'
>+ description: The LPC channel number in the controller
>+
>+ kcs_addr:
>+ deprecated: true
>+ $ref: '/schemas/types.yaml#/definitions/uint32'
>+ description: The host CPU IO map address
>+
>+required:
>+ - compatible
>+ - interrupts
>+
>+additionalProperties: false
>+
>+allOf:
>+ - if:
>+ properties:
>+ compatible:
>+ contains:
>+ enum:
>+ - aspeed,ast2400-kcs-bmc
>+ - aspeed,ast2500-kcs-bmc
>+ then:
>+ required:
>+ - kcs_chan
>+ - kcs_addr
>+ else:
>+ required:
>+ - reg
>+ - aspeed,lpc-io-reg
>+
>+examples:
>+ - |
>+ kcs3: kcs@24 {
>+ compatible = "aspeed,ast2600-kcs-bmc";

And likewise here.

>+ reg = <0x24 0x1>, <0x30 0x1>, <0x3c 0x1>;
>+ aspeed,lpc-io-reg = <0xca2>;
>+ interrupts = <8>;
>+ };
>diff --git a/Documentation/devicetree/bindings/ipmi/aspeed-kcs-bmc.txt b/Documentation/devicetree/bindings/ipmi/aspeed-kcs-bmc.txt
>deleted file mode 100644
>index 193e71ca96b0..000000000000
>--- a/Documentation/devicetree/bindings/ipmi/aspeed-kcs-bmc.txt
>+++ /dev/null
>@@ -1,33 +0,0 @@
>-# Aspeed KCS (Keyboard Controller Style) IPMI interface
>-
>-The Aspeed SOCs (AST2400 and AST2500) are commonly used as BMCs
>-(Baseboard Management Controllers) and the KCS interface can be
>-used to perform in-band IPMI communication with their host.
>-
>-## v1
>-Required properties:
>-- compatible : should be one of
>- "aspeed,ast2400-kcs-bmc"
>- "aspeed,ast2500-kcs-bmc"
>-- interrupts : interrupt generated by the controller
>-- kcs_chan : The LPC channel number in the controller
>-- kcs_addr : The host CPU IO map address
>-
>-## v2
>-Required properties:
>-- compatible : should be one of
>- "aspeed,ast2400-kcs-bmc-v2"
>- "aspeed,ast2500-kcs-bmc-v2"
>-- reg : The address and size of the IDR, ODR and STR registers
>-- interrupts : interrupt generated by the controller
>-- aspeed,lpc-io-reg : The host CPU LPC IO address for the device
>-
>-Example:
>-
>- kcs3: kcs@24 {
>- compatible = "aspeed,ast2500-kcs-bmc-v2";
>- reg = <0x24 0x1>, <0x30 0x1>, <0x3c 0x1>;
>- aspeed,lpc-reg = <0xca2>;
>- interrupts = <8>;
>- status = "okay";
>- };
>--
>2.27.0
>