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