133887fceSKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 233887fceSKrzysztof Kozlowski%YAML 1.2 333887fceSKrzysztof Kozlowski--- 433887fceSKrzysztof Kozlowski$id: http://devicetree.org/schemas/memory-controllers/intel,ixp4xx-expansion-bus-controller.yaml# 533887fceSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 633887fceSKrzysztof Kozlowski 733887fceSKrzysztof Kozlowskititle: Intel IXP4xx Expansion Bus Controller 833887fceSKrzysztof Kozlowski 933887fceSKrzysztof Kozlowskidescription: | 1033887fceSKrzysztof Kozlowski The IXP4xx expansion bus controller handles access to devices on the 1133887fceSKrzysztof Kozlowski memory-mapped expansion bus on the Intel IXP4xx family of system on chips, 1233887fceSKrzysztof Kozlowski including IXP42x, IXP43x, IXP45x and IXP46x. 1333887fceSKrzysztof Kozlowski 1433887fceSKrzysztof Kozlowskimaintainers: 1533887fceSKrzysztof Kozlowski - Linus Walleij <linus.walleij@linaro.org> 1633887fceSKrzysztof Kozlowski 1733887fceSKrzysztof Kozlowskiproperties: 1833887fceSKrzysztof Kozlowski $nodename: 1933887fceSKrzysztof Kozlowski pattern: '^bus@[0-9a-f]+$' 2033887fceSKrzysztof Kozlowski 2133887fceSKrzysztof Kozlowski compatible: 2233887fceSKrzysztof Kozlowski items: 2333887fceSKrzysztof Kozlowski - enum: 2433887fceSKrzysztof Kozlowski - intel,ixp42x-expansion-bus-controller 2533887fceSKrzysztof Kozlowski - intel,ixp43x-expansion-bus-controller 2633887fceSKrzysztof Kozlowski - intel,ixp45x-expansion-bus-controller 2733887fceSKrzysztof Kozlowski - intel,ixp46x-expansion-bus-controller 2833887fceSKrzysztof Kozlowski - const: syscon 2933887fceSKrzysztof Kozlowski 3033887fceSKrzysztof Kozlowski reg: 3133887fceSKrzysztof Kozlowski description: Control registers for the expansion bus, these are not 3233887fceSKrzysztof Kozlowski inside the memory range handled by the expansion bus. 3333887fceSKrzysztof Kozlowski maxItems: 1 3433887fceSKrzysztof Kozlowski 3533887fceSKrzysztof Kozlowski native-endian: 3633887fceSKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/flag 3733887fceSKrzysztof Kozlowski description: The IXP4xx has a peculiar MMIO access scheme, as it changes 3833887fceSKrzysztof Kozlowski the access pattern for words (swizzling) on the bus depending on whether 3933887fceSKrzysztof Kozlowski the SoC is running in big-endian or little-endian mode. Thus the 4033887fceSKrzysztof Kozlowski registers must always be accessed using native endianness. 4133887fceSKrzysztof Kozlowski 4233887fceSKrzysztof Kozlowski "#address-cells": 4333887fceSKrzysztof Kozlowski description: | 4433887fceSKrzysztof Kozlowski The first cell is the chip select number. 4533887fceSKrzysztof Kozlowski The second cell is the address offset within the bank. 4633887fceSKrzysztof Kozlowski const: 2 4733887fceSKrzysztof Kozlowski 4833887fceSKrzysztof Kozlowski "#size-cells": 4933887fceSKrzysztof Kozlowski const: 1 5033887fceSKrzysztof Kozlowski 5133887fceSKrzysztof Kozlowski ranges: true 5233887fceSKrzysztof Kozlowski dma-ranges: true 5333887fceSKrzysztof Kozlowski 5433887fceSKrzysztof KozlowskipatternProperties: 5533887fceSKrzysztof Kozlowski "^.*@[0-7],[0-9a-f]+$": 5633887fceSKrzysztof Kozlowski description: Devices attached to chip selects are represented as 5733887fceSKrzysztof Kozlowski subnodes. 5833887fceSKrzysztof Kozlowski type: object 5933887fceSKrzysztof Kozlowski $ref: /schemas/memory-controllers/intel,ixp4xx-expansion-peripheral-props.yaml# 60*e62fc182SRob Herring additionalProperties: true 6133887fceSKrzysztof Kozlowski 6233887fceSKrzysztof Kozlowskirequired: 6333887fceSKrzysztof Kozlowski - compatible 6433887fceSKrzysztof Kozlowski - reg 6533887fceSKrzysztof Kozlowski - native-endian 6633887fceSKrzysztof Kozlowski - "#address-cells" 6733887fceSKrzysztof Kozlowski - "#size-cells" 6833887fceSKrzysztof Kozlowski - ranges 6933887fceSKrzysztof Kozlowski - dma-ranges 7033887fceSKrzysztof Kozlowski 7133887fceSKrzysztof KozlowskiadditionalProperties: false 7233887fceSKrzysztof Kozlowski 7333887fceSKrzysztof Kozlowskiexamples: 7433887fceSKrzysztof Kozlowski - | 7533887fceSKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/irq.h> 7633887fceSKrzysztof Kozlowski bus@50000000 { 7733887fceSKrzysztof Kozlowski compatible = "intel,ixp42x-expansion-bus-controller", "syscon"; 7833887fceSKrzysztof Kozlowski reg = <0xc4000000 0x28>; 7933887fceSKrzysztof Kozlowski native-endian; 8033887fceSKrzysztof Kozlowski #address-cells = <2>; 8133887fceSKrzysztof Kozlowski #size-cells = <1>; 8233887fceSKrzysztof Kozlowski ranges = <0 0x0 0x50000000 0x01000000>, 8333887fceSKrzysztof Kozlowski <1 0x0 0x51000000 0x01000000>; 8433887fceSKrzysztof Kozlowski dma-ranges = <0 0x0 0x50000000 0x01000000>, 8533887fceSKrzysztof Kozlowski <1 0x0 0x51000000 0x01000000>; 8633887fceSKrzysztof Kozlowski flash@0,0 { 8733887fceSKrzysztof Kozlowski compatible = "intel,ixp4xx-flash", "cfi-flash"; 8833887fceSKrzysztof Kozlowski bank-width = <2>; 8933887fceSKrzysztof Kozlowski reg = <0 0x00000000 0x1000000>; 9033887fceSKrzysztof Kozlowski intel,ixp4xx-eb-t3 = <3>; 9133887fceSKrzysztof Kozlowski intel,ixp4xx-eb-cycle-type = <0>; 9233887fceSKrzysztof Kozlowski intel,ixp4xx-eb-byte-access-on-halfword = <1>; 9333887fceSKrzysztof Kozlowski intel,ixp4xx-eb-write-enable = <1>; 9433887fceSKrzysztof Kozlowski intel,ixp4xx-eb-byte-access = <0>; 9533887fceSKrzysztof Kozlowski }; 9633887fceSKrzysztof Kozlowski serial@1,0 { 9733887fceSKrzysztof Kozlowski compatible = "exar,xr16l2551", "ns8250"; 9833887fceSKrzysztof Kozlowski reg = <1 0x00000000 0x10>; 9933887fceSKrzysztof Kozlowski interrupt-parent = <&gpio0>; 10033887fceSKrzysztof Kozlowski interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 10133887fceSKrzysztof Kozlowski clock-frequency = <1843200>; 10233887fceSKrzysztof Kozlowski intel,ixp4xx-eb-t3 = <3>; 10333887fceSKrzysztof Kozlowski intel,ixp4xx-eb-cycle-type = <1>; 10433887fceSKrzysztof Kozlowski intel,ixp4xx-eb-write-enable = <1>; 10533887fceSKrzysztof Kozlowski intel,ixp4xx-eb-byte-access = <1>; 10633887fceSKrzysztof Kozlowski }; 10733887fceSKrzysztof Kozlowski }; 108