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