xref: /openbmc/linux/Documentation/devicetree/bindings/ipmi/aspeed,ast2400-kcs-bmc.yaml (revision e880275ccfa120bf6235180ca76f01271b7b97ec)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/ipmi/aspeed,ast2400-kcs-bmc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: ASPEED BMC KCS Devices
8
9maintainers:
10  - Andrew Jeffery <andrew@aj.id.au>
11
12description: |
13  The Aspeed BMC SoCs typically use the Keyboard-Controller-Style (KCS)
14  interfaces on the LPC bus for in-band IPMI communication with their host.
15
16properties:
17  compatible:
18    oneOf:
19      - description: Channel ID derived from reg
20        items:
21          enum:
22            - aspeed,ast2400-kcs-bmc-v2
23            - aspeed,ast2500-kcs-bmc-v2
24            - aspeed,ast2600-kcs-bmc
25
26      - description: Old-style with explicit channel ID, no reg
27        deprecated: true
28        items:
29          enum:
30            - aspeed,ast2400-kcs-bmc
31            - aspeed,ast2500-kcs-bmc
32
33  interrupts:
34    maxItems: 1
35
36  reg:
37    # maxItems: 3
38    items:
39      - description: IDR register
40      - description: ODR register
41      - description: STR register
42
43  aspeed,lpc-io-reg:
44    $ref: '/schemas/types.yaml#/definitions/uint32-array'
45    minItems: 1
46    maxItems: 2
47    description: |
48      The host CPU LPC IO data and status addresses for the device. For most
49      channels the status address is derived from the data address, but the
50      status address may be optionally provided.
51
52  kcs_chan:
53    deprecated: true
54    $ref: '/schemas/types.yaml#/definitions/uint32'
55    description: The LPC channel number in the controller
56
57  kcs_addr:
58    deprecated: true
59    $ref: '/schemas/types.yaml#/definitions/uint32'
60    description: The host CPU IO map address
61
62required:
63  - compatible
64  - interrupts
65
66additionalProperties: false
67
68allOf:
69  - if:
70      properties:
71        compatible:
72          contains:
73            enum:
74              - aspeed,ast2400-kcs-bmc
75              - aspeed,ast2500-kcs-bmc
76    then:
77      required:
78        - kcs_chan
79        - kcs_addr
80    else:
81      required:
82        - reg
83        - aspeed,lpc-io-reg
84
85examples:
86  - |
87    kcs3: kcs@24 {
88        compatible = "aspeed,ast2600-kcs-bmc";
89        reg = <0x24 0x1>, <0x30 0x1>, <0x3c 0x1>;
90        aspeed,lpc-io-reg = <0xca2>;
91        interrupts = <8>;
92    };
93