0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/ipmi/aspeed,ast2400-kcs-bmc.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: ASPEED BMC KCS Devices
0008
0009 maintainers:
0010 - Andrew Jeffery <andrew@aj.id.au>
0011
0012 description: |
0013 The Aspeed BMC SoCs typically use the Keyboard-Controller-Style (KCS)
0014 interfaces on the LPC bus for in-band IPMI communication with their host.
0015
0016 properties:
0017 compatible:
0018 oneOf:
0019 - description: Channel ID derived from reg
0020 items:
0021 enum:
0022 - aspeed,ast2400-kcs-bmc-v2
0023 - aspeed,ast2500-kcs-bmc-v2
0024 - aspeed,ast2600-kcs-bmc
0025
0026 - description: Old-style with explicit channel ID, no reg
0027 deprecated: true
0028 items:
0029 enum:
0030 - aspeed,ast2400-kcs-bmc
0031 - aspeed,ast2500-kcs-bmc
0032
0033 interrupts:
0034 maxItems: 1
0035
0036 reg:
0037 # maxItems: 3
0038 items:
0039 - description: IDR register
0040 - description: ODR register
0041 - description: STR register
0042
0043 aspeed,lpc-io-reg:
0044 $ref: '/schemas/types.yaml#/definitions/uint32-array'
0045 minItems: 1
0046 maxItems: 2
0047 description: |
0048 The host CPU LPC IO data and status addresses for the device. For most
0049 channels the status address is derived from the data address, but the
0050 status address may be optionally provided.
0051
0052 aspeed,lpc-interrupts:
0053 $ref: "/schemas/types.yaml#/definitions/uint32-array"
0054 minItems: 2
0055 maxItems: 2
0056 description: |
0057 A 2-cell property expressing the LPC SerIRQ number and the interrupt
0058 level/sense encoding (specified in the standard fashion).
0059
0060 Note that the generated interrupt is issued from the BMC to the host, and
0061 thus the target interrupt controller is not captured by the BMC's
0062 devicetree.
0063
0064 kcs_chan:
0065 deprecated: true
0066 $ref: '/schemas/types.yaml#/definitions/uint32'
0067 description: The LPC channel number in the controller
0068
0069 kcs_addr:
0070 deprecated: true
0071 $ref: '/schemas/types.yaml#/definitions/uint32'
0072 description: The host CPU IO map address
0073
0074 required:
0075 - compatible
0076 - interrupts
0077
0078 additionalProperties: false
0079
0080 allOf:
0081 - if:
0082 properties:
0083 compatible:
0084 contains:
0085 enum:
0086 - aspeed,ast2400-kcs-bmc
0087 - aspeed,ast2500-kcs-bmc
0088 then:
0089 required:
0090 - kcs_chan
0091 - kcs_addr
0092 else:
0093 required:
0094 - reg
0095 - aspeed,lpc-io-reg
0096
0097 examples:
0098 - |
0099 #include <dt-bindings/interrupt-controller/irq.h>
0100 kcs3: kcs@24 {
0101 compatible = "aspeed,ast2600-kcs-bmc";
0102 reg = <0x24 0x1>, <0x30 0x1>, <0x3c 0x1>;
0103 aspeed,lpc-io-reg = <0xca2>;
0104 aspeed,lpc-interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
0105 interrupts = <8>;
0106 };