[PATCH v2 1/3] dt-bindings: ipmi: aspeed: Introduce a v2 binding for KCS

Andrew Jeffery andrew at aj.id.au
Mon Dec 16 13:27:40 AEDT 2019

The v2 binding utilises reg and renames some of the v1 properties.

Signed-off-by: Andrew Jeffery <andrew at aj.id.au>
v2: Rename slave-reg to aspeed,lpc-io-reg

Rob: After our discussion about the name of 'slave-reg' on v1 I've thought
about it some more and have landed on aspeed,lpc-io-reg. In v1 I argued that
the name should be generic and you suggested that if so it should go in a
generic binding document - I've thought about this some more and concluded that
it was hard to pin down exactly where it should be documented if it were
generic (the generic ASPEED LPC binding is one place, but that would suggest
that the property is still ASPEED-specific; maybe some discussion with
Nuvoton might give some insight).

Regardless, it turns out that the address specification is really
ASPEED-specific in this case: The KCS host interface in the LPC IO space
consists of a data and status register, but the slave controller infers the
address of the second from the address of the first and thus only the address
of the first can be programmed on the BMC-side. ASPEED supply documentation
that maps the LPC-side register layout for given LPC IO base addresses. I think
this is esoteric enough to warrant the aspeed prefix.

 Documentation/devicetree/bindings/ipmi/aspeed-kcs-bmc.txt | 20 +++++---
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/Documentation/devicetree/bindings/ipmi/aspeed-kcs-bmc.txt b/Documentation/devicetree/bindings/ipmi/aspeed-kcs-bmc.txt
index d98a9bf45d6c..193e71ca96b0 100644
--- a/Documentation/devicetree/bindings/ipmi/aspeed-kcs-bmc.txt
+++ b/Documentation/devicetree/bindings/ipmi/aspeed-kcs-bmc.txt
@@ -1,9 +1,10 @@
-* Aspeed KCS (Keyboard Controller Style) IPMI interface
+# 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
@@ -12,14 +13,21 @@ Required properties:
 - 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
-    kcs3: kcs3 at 0 {
-        compatible = "aspeed,ast2500-kcs-bmc";
-        reg = <0x0 0x80>;
+    kcs3: kcs at 24 {
+        compatible = "aspeed,ast2500-kcs-bmc-v2";
+        reg = <0x24 0x1>, <0x30 0x1>, <0x3c 0x1>;
+        aspeed,lpc-reg = <0xca2>;
         interrupts = <8>;
-        kcs_chan = <3>;
-        kcs_addr = <0xCA2>;
         status = "okay";
git-series 0.9.1

More information about the Linux-aspeed mailing list