Based on kernel version 6.11
. Page generated on 2024-09-24 08:21 EST
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 | # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) # # Copyright (c) 2021 Aspeed Tehchnology Inc. %YAML 1.2 --- $id: http://devicetree.org/schemas/mfd/aspeed-lpc.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Aspeed Low Pin Count (LPC) Bus Controller maintainers: - Andrew Jeffery <andrew@aj.id.au> - Chia-Wei Wang <chiawei_wang@aspeedtech.com> description: The LPC bus is a means to bridge a host CPU to a number of low-bandwidth peripheral devices, replacing the use of the ISA bus in the age of PCI[0]. The primary use case of the Aspeed LPC controller is as a slave on the bus (typically in a Baseboard Management Controller SoC), but under certain conditions it can also take the role of bus master. The LPC controller is represented as a multi-function device to account for the mix of functionality, which includes, but is not limited to * An IPMI Block Transfer[2] Controller * An LPC Host Interface Controller manages functions exposed to the host such as LPC firmware hub cycles, configuration of the LPC-to-AHB mapping, UART management and bus snoop configuration. * A set of SuperIO[3] scratch registers enabling implementation of e.g. custom hardware management protocols for handover between the host and baseboard management controller. Additionally the state of the LPC controller influences the pinmux configuration, therefore the host portion of the controller is exposed as a syscon as a means to arbitrate access. properties: compatible: items: - enum: - aspeed,ast2400-lpc-v2 - aspeed,ast2500-lpc-v2 - aspeed,ast2600-lpc-v2 - const: simple-mfd - const: syscon reg: maxItems: 1 "#address-cells": const: 1 "#size-cells": const: 1 ranges: true patternProperties: "^lpc-ctrl@[0-9a-f]+$": type: object additionalProperties: false description: | The LPC Host Interface Controller manages functions exposed to the host such as LPC firmware hub cycles, configuration of the LPC-to-AHB mapping, UART management and bus snoop configuration. properties: compatible: items: - enum: - aspeed,ast2400-lpc-ctrl - aspeed,ast2500-lpc-ctrl - aspeed,ast2600-lpc-ctrl reg: maxItems: 1 clocks: maxItems: 1 memory-region: maxItems: 1 description: handle to memory reservation for the LPC to AHB mapping region flash: $ref: /schemas/types.yaml#/definitions/phandle description: The SPI flash controller containing the flash to be exposed over the LPC to AHB mapping required: - compatible - clocks "^reset-controller@[0-9a-f]+$": type: object additionalProperties: false description: The UARTs present in the ASPEED SoC can have their resets tied to the reset state of the LPC bus. Some systems may chose to modify this configuration properties: compatible: items: - enum: - aspeed,ast2400-lpc-reset - aspeed,ast2500-lpc-reset - aspeed,ast2600-lpc-reset reg: maxItems: 1 '#reset-cells': const: 1 required: - compatible - '#reset-cells' "^lpc-snoop@[0-9a-f]+$": type: object additionalProperties: false description: The LPC snoop interface allows the BMC to listen on and record the data bytes written by the Host to the targeted LPC I/O pots. properties: compatible: items: - enum: - aspeed,ast2400-lpc-snoop - aspeed,ast2500-lpc-snoop - aspeed,ast2600-lpc-snoop reg: maxItems: 1 interrupts: maxItems: 1 snoop-ports: $ref: /schemas/types.yaml#/definitions/uint32-array description: The LPC I/O ports to snoop required: - compatible - interrupts - snoop-ports "^uart-routing@[0-9a-f]+$": $ref: /schemas/soc/aspeed/uart-routing.yaml# description: The UART routing control under LPC register space required: - compatible - reg - "#address-cells" - "#size-cells" - ranges additionalProperties: type: object examples: - | #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/clock/ast2600-clock.h> lpc: lpc@1e789000 { compatible = "aspeed,ast2600-lpc-v2", "simple-mfd", "syscon"; reg = <0x1e789000 0x1000>; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x1e789000 0x1000>; lpc_ctrl: lpc-ctrl@80 { compatible = "aspeed,ast2600-lpc-ctrl"; reg = <0x80 0x80>; clocks = <&syscon ASPEED_CLK_GATE_LCLK>; memory-region = <&flash_memory>; flash = <&spi>; }; lpc_reset: reset-controller@98 { compatible = "aspeed,ast2600-lpc-reset"; reg = <0x98 0x4>; #reset-cells = <1>; }; lpc_snoop: lpc-snoop@90 { compatible = "aspeed,ast2600-lpc-snoop"; reg = <0x90 0x8>; interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; snoop-ports = <0x80>; }; }; |