Message ID | 20210319062752.145730-17-andrew@aj.id.au (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ipmi: Allow raw access to KCS devices | expand |
On Fri, 19 Mar 2021 16:57:48 +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 > Reviewed-by: Rob Herring <robh@kernel.org>
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@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..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@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 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 >
On Fri, 9 Apr 2021, at 14:45, Zev Weiss wrote: > 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@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..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@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 > > Should this have a "-v2" suffix? Well, that was kind of a matter of perspective. The 2600 compatible was added after we'd done the v2 of the binding for the 2400 and 2500 so it never needed correcting. But it is a case of "don't use the deprecated properties with the 2600 compatible". I don't think a change is necessary? Cheers, Andrew
On Fri, Apr 09, 2021 at 12:33:10AM CDT, Andrew Jeffery wrote: > > >On Fri, 9 Apr 2021, at 14:45, Zev Weiss wrote: >> 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@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..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@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 >> >> Should this have a "-v2" suffix? > >Well, that was kind of a matter of perspective. The 2600 compatible was >added after we'd done the v2 of the binding for the 2400 and 2500 so it >never needed correcting. But it is a case of "don't use the deprecated >properties with the 2600 compatible". > >I don't think a change is necessary? > It just looked inconsistent with the corresponding string in the ast_kcs_bmc_match[] table; perhaps that should be changed instead then? Zev
On Fri, Apr 09, 2021 at 12:44:04AM CDT, Zev Weiss wrote: >On Fri, Apr 09, 2021 at 12:33:10AM CDT, Andrew Jeffery wrote: >> >> >>On Fri, 9 Apr 2021, at 14:45, Zev Weiss wrote: >>>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@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..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@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 >>> >>>Should this have a "-v2" suffix? >> >>Well, that was kind of a matter of perspective. The 2600 compatible was >>added after we'd done the v2 of the binding for the 2400 and 2500 so it >>never needed correcting. But it is a case of "don't use the deprecated >>properties with the 2600 compatible". >> >>I don't think a change is necessary? >> > >It just looked inconsistent with the corresponding string in the >ast_kcs_bmc_match[] table; perhaps that should be changed instead then? > ...except I realize now I only saw the 2600 v2 string in the match table because I put it there myself in the process of resolving a conflict when applying your series to the openbmc dev-5.10 branch for testing purposes. So nevermind on this. Reviewed-by: Zev Weiss <zweiss@equinix.com>
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@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: + # 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"; + 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