On Sat, Feb 20, 2021 at 12:55:20AM +1030, 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..1c1cc4265948 > --- /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 > + > + - 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: > + minItems: 3 > + maxItems: 3 > + description: IDR, ODR and STR register addresses items: - description: IDR register - description: ODR register - description: STR register > + > + aspeed,lpc-io-reg: > + $ref: '/schemas/types.yaml#/definitions/uint32' > + minItems: 1 > + maxItems: 2 A uint32 can only have 1 item. uint32-array perhaps? > + 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' > + maxItems: 1 Drop > + description: The LPC channel number in the controller > + > + kcs_addr: > + deprecated: true > + $ref: '/schemas/types.yaml#/definitions/uint32' > + maxItems: 1 Drop > + 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"; > + 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 >