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