Path: blob/main/sys/contrib/device-tree/Bindings/bus/intel,ixp4xx-expansion-bus-controller.yaml
48377 views
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)1%YAML 1.22---3$id: http://devicetree.org/schemas/bus/intel,ixp4xx-expansion-bus-controller.yaml#4$schema: http://devicetree.org/meta-schemas/core.yaml#56title: Intel IXP4xx Expansion Bus Controller78description: |9The IXP4xx expansion bus controller handles access to devices on the10memory-mapped expansion bus on the Intel IXP4xx family of system on chips,11including IXP42x, IXP43x, IXP45x and IXP46x.1213maintainers:14- Linus Walleij <linus.walleij@linaro.org>1516properties:17$nodename:18pattern: '^bus@[0-9a-f]+$'1920compatible:21items:22- enum:23- intel,ixp42x-expansion-bus-controller24- intel,ixp43x-expansion-bus-controller25- intel,ixp45x-expansion-bus-controller26- intel,ixp46x-expansion-bus-controller27- const: syscon2829reg:30description: Control registers for the expansion bus, these are not31inside the memory range handled by the expansion bus.32maxItems: 13334native-endian:35$ref: /schemas/types.yaml#/definitions/flag36description: The IXP4xx has a peculiar MMIO access scheme, as it changes37the access pattern for words (swizzling) on the bus depending on whether38the SoC is running in big-endian or little-endian mode. Thus the39registers must always be accessed using native endianness.4041"#address-cells":42description: |43The first cell is the chip select number.44The second cell is the address offset within the bank.45const: 24647"#size-cells":48const: 14950ranges: true51dma-ranges: true5253patternProperties:54"^.*@[0-7],[0-9a-f]+$":55description: Devices attached to chip selects are represented as56subnodes.57type: object5859properties:60intel,ixp4xx-eb-t1:61description: Address timing, extend address phase with n cycles.62$ref: /schemas/types.yaml#/definitions/uint3263maximum: 36465intel,ixp4xx-eb-t2:66description: Setup chip select timing, extend setup phase with n cycles.67$ref: /schemas/types.yaml#/definitions/uint3268maximum: 36970intel,ixp4xx-eb-t3:71description: Strobe timing, extend strobe phase with n cycles.72$ref: /schemas/types.yaml#/definitions/uint3273maximum: 157475intel,ixp4xx-eb-t4:76description: Hold timing, extend hold phase with n cycles.77$ref: /schemas/types.yaml#/definitions/uint3278maximum: 37980intel,ixp4xx-eb-t5:81description: Recovery timing, extend recovery phase with n cycles.82$ref: /schemas/types.yaml#/definitions/uint3283maximum: 158485intel,ixp4xx-eb-cycle-type:86description: The type of cycles to use on the expansion bus for this87chip select. 0 = Intel cycles, 1 = Motorola cycles, 2 = HPI cycles.88$ref: /schemas/types.yaml#/definitions/uint3289enum: [0, 1, 2]9091intel,ixp4xx-eb-byte-access-on-halfword:92description: Allow byte read access on half word devices.93$ref: /schemas/types.yaml#/definitions/uint3294enum: [0, 1]9596intel,ixp4xx-eb-hpi-hrdy-pol-high:97description: Set HPI HRDY polarity to active high when using HPI.98$ref: /schemas/types.yaml#/definitions/uint3299enum: [0, 1]100101intel,ixp4xx-eb-mux-address-and-data:102description: Multiplex address and data on the data bus.103$ref: /schemas/types.yaml#/definitions/uint32104enum: [0, 1]105106intel,ixp4xx-eb-ahb-split-transfers:107description: Enable AHB split transfers.108$ref: /schemas/types.yaml#/definitions/uint32109enum: [0, 1]110111intel,ixp4xx-eb-write-enable:112description: Enable write cycles.113$ref: /schemas/types.yaml#/definitions/uint32114enum: [0, 1]115116intel,ixp4xx-eb-byte-access:117description: Expansion bus uses only 8 bits. The default is to use11816 bits.119$ref: /schemas/types.yaml#/definitions/uint32120enum: [0, 1]121122required:123- compatible124- reg125- native-endian126- "#address-cells"127- "#size-cells"128- ranges129- dma-ranges130131additionalProperties: false132133examples:134- |135#include <dt-bindings/interrupt-controller/irq.h>136bus@50000000 {137compatible = "intel,ixp42x-expansion-bus-controller", "syscon";138reg = <0xc4000000 0x28>;139native-endian;140#address-cells = <2>;141#size-cells = <1>;142ranges = <0 0x0 0x50000000 0x01000000>,143<1 0x0 0x51000000 0x01000000>;144dma-ranges = <0 0x0 0x50000000 0x01000000>,145<1 0x0 0x51000000 0x01000000>;146flash@0,0 {147compatible = "intel,ixp4xx-flash", "cfi-flash";148bank-width = <2>;149reg = <0 0x00000000 0x1000000>;150intel,ixp4xx-eb-t3 = <3>;151intel,ixp4xx-eb-cycle-type = <0>;152intel,ixp4xx-eb-byte-access-on-halfword = <1>;153intel,ixp4xx-eb-write-enable = <1>;154intel,ixp4xx-eb-byte-access = <0>;155};156serial@1,0 {157compatible = "exar,xr16l2551", "ns8250";158reg = <1 0x00000000 0x10>;159interrupt-parent = <&gpio0>;160interrupts = <4 IRQ_TYPE_LEVEL_LOW>;161clock-frequency = <1843200>;162intel,ixp4xx-eb-t3 = <3>;163intel,ixp4xx-eb-cycle-type = <1>;164intel,ixp4xx-eb-write-enable = <1>;165intel,ixp4xx-eb-byte-access = <1>;166};167};168169170