# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/ipmi/aspeed,ast2400-kcs-bmc.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: ASPEED BMC KCS Devices maintainers: - Andrew Jeffery <andrew@aj.id.au> description: | The Aspeed BMC SoCs typically use the Keyboard-Controller-Style (KCS) interfaces on the LPC bus for in-band IPMI communication with their host. properties: compatible: oneOf: - description: Channel ID derived from reg items: enum: - aspeed,ast2400-kcs-bmc-v2 - aspeed,ast2500-kcs-bmc-v2 - aspeed,ast2600-kcs-bmc - description: Old-style with explicit channel ID, no reg deprecated: true items: enum: - aspeed,ast2400-kcs-bmc - aspeed,ast2500-kcs-bmc interrupts: maxItems: 1 reg: # maxItems: 3 items: - description: IDR register - description: ODR register - description: STR register aspeed,lpc-io-reg: $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 1 maxItems: 2 description: | The host CPU LPC IO data and status addresses for the device. For most channels the status address is derived from the data address, but the status address may be optionally provided. aspeed,lpc-interrupts: $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 2 maxItems: 2 description: | A 2-cell property expressing the LPC SerIRQ number and the interrupt level/sense encoding (specified in the standard fashion). Note that the generated interrupt is issued from the BMC to the host, and thus the target interrupt controller is not captured by the BMC's devicetree. kcs_chan: deprecated: true $ref: /schemas/types.yaml#/definitions/uint32 description: The LPC channel number in the controller kcs_addr: deprecated: true $ref: /schemas/types.yaml#/definitions/uint32 description: The host CPU IO map address required: - compatible - interrupts additionalProperties: false allOf: - if: properties: compatible: contains: enum: - aspeed,ast2400-kcs-bmc - aspeed,ast2500-kcs-bmc then: required: - kcs_chan - kcs_addr else: required: - reg - aspeed,lpc-io-reg examples: - | #include <dt-bindings/interrupt-controller/irq.h> kcs3: kcs@24 { compatible = "aspeed,ast2600-kcs-bmc"; reg = <0x24 0x1>, <0x30 0x1>, <0x3c 0x1>; aspeed,lpc-io-reg = <0xca2>; aspeed,lpc-interrupts = <11 IRQ_TYPE_LEVEL_LOW>; interrupts = <8>; };