Message ID | 20210219142523.3464540-1-andrew@aj.id.au |
---|---|
Headers | show |
Series | ipmi: Allow raw access to KCS devices | expand |
On Sat, 20 Feb 2021, Andrew Jeffery wrote: > From: "Chia-Wei, Wang" <chiawei_wang@aspeedtech.com> > > The LPC controller has no concept of the BMC and the Host partitions. > This patch fixes the documentation by removing the description on LPC > partitions. The register offsets illustrated in the DTS node examples > are also fixed to adapt to the LPC DTS change. > > Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com> > Reviewed-by: Andrew Jeffery <andrew@aj.id.au> > Acked-by: Rob Herring <robh@kernel.org> > --- > .../devicetree/bindings/mfd/aspeed-lpc.txt | 100 +++++------------- > 1 file changed, 25 insertions(+), 75 deletions(-) Acked-by: Lee Jones <lee.jones@linaro.org>
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.