Message ID | 20210219142523.3464540-17-andrew@aj.id.au |
---|---|
State | New |
Headers | show |
Series | ipmi: Allow raw access to KCS devices | expand |
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@aj.id.au> > --- > .../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@aj.id.au> > + > +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 >
On Sat, 6 Mar 2021, at 09:37, Rob Herring wrote: > 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@aj.id.au> > > --- > > .../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@aj.id.au> > > + > > +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 Oh, neat. > > > + > > + aspeed,lpc-io-reg: > > + $ref: '/schemas/types.yaml#/definitions/uint32' > > + minItems: 1 > > + maxItems: 2 > > A uint32 can only have 1 item. uint32-array perhaps? That sounds more appropriate. > > > > + 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 Ack. > > > + description: The LPC channel number in the controller > > + > > + kcs_addr: > > + deprecated: true > > + $ref: '/schemas/types.yaml#/definitions/uint32' > > + maxItems: 1 > > Drop Ack.
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@aj.id.au> + +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 + + aspeed,lpc-io-reg: + $ref: '/schemas/types.yaml#/definitions/uint32' + 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' + maxItems: 1 + description: The LPC channel number in the controller + + kcs_addr: + deprecated: true + $ref: '/schemas/types.yaml#/definitions/uint32' + maxItems: 1 + 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"; - };
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@aj.id.au> --- .../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