# 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";
    };
