108 lines
3.3 KiB
YAML
108 lines
3.3 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/memory-controllers/intel,ixp4xx-expansion-bus-controller.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Intel IXP4xx Expansion Bus Controller
|
|
|
|
description: |
|
|
The IXP4xx expansion bus controller handles access to devices on the
|
|
memory-mapped expansion bus on the Intel IXP4xx family of system on chips,
|
|
including IXP42x, IXP43x, IXP45x and IXP46x.
|
|
|
|
maintainers:
|
|
- Linus Walleij <linus.walleij@linaro.org>
|
|
|
|
properties:
|
|
$nodename:
|
|
pattern: '^bus@[0-9a-f]+$'
|
|
|
|
compatible:
|
|
items:
|
|
- enum:
|
|
- intel,ixp42x-expansion-bus-controller
|
|
- intel,ixp43x-expansion-bus-controller
|
|
- intel,ixp45x-expansion-bus-controller
|
|
- intel,ixp46x-expansion-bus-controller
|
|
- const: syscon
|
|
|
|
reg:
|
|
description: Control registers for the expansion bus, these are not
|
|
inside the memory range handled by the expansion bus.
|
|
maxItems: 1
|
|
|
|
native-endian:
|
|
$ref: /schemas/types.yaml#/definitions/flag
|
|
description: The IXP4xx has a peculiar MMIO access scheme, as it changes
|
|
the access pattern for words (swizzling) on the bus depending on whether
|
|
the SoC is running in big-endian or little-endian mode. Thus the
|
|
registers must always be accessed using native endianness.
|
|
|
|
"#address-cells":
|
|
description: |
|
|
The first cell is the chip select number.
|
|
The second cell is the address offset within the bank.
|
|
const: 2
|
|
|
|
"#size-cells":
|
|
const: 1
|
|
|
|
ranges: true
|
|
dma-ranges: true
|
|
|
|
patternProperties:
|
|
"^.*@[0-7],[0-9a-f]+$":
|
|
description: Devices attached to chip selects are represented as
|
|
subnodes.
|
|
type: object
|
|
$ref: /schemas/memory-controllers/intel,ixp4xx-expansion-peripheral-props.yaml#
|
|
additionalProperties: true
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- native-endian
|
|
- "#address-cells"
|
|
- "#size-cells"
|
|
- ranges
|
|
- dma-ranges
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
bus@50000000 {
|
|
compatible = "intel,ixp42x-expansion-bus-controller", "syscon";
|
|
reg = <0xc4000000 0x28>;
|
|
native-endian;
|
|
#address-cells = <2>;
|
|
#size-cells = <1>;
|
|
ranges = <0 0x0 0x50000000 0x01000000>,
|
|
<1 0x0 0x51000000 0x01000000>;
|
|
dma-ranges = <0 0x0 0x50000000 0x01000000>,
|
|
<1 0x0 0x51000000 0x01000000>;
|
|
flash@0,0 {
|
|
compatible = "intel,ixp4xx-flash", "cfi-flash";
|
|
bank-width = <2>;
|
|
reg = <0 0x00000000 0x1000000>;
|
|
intel,ixp4xx-eb-t3 = <3>;
|
|
intel,ixp4xx-eb-cycle-type = <0>;
|
|
intel,ixp4xx-eb-byte-access-on-halfword = <1>;
|
|
intel,ixp4xx-eb-write-enable = <1>;
|
|
intel,ixp4xx-eb-byte-access = <0>;
|
|
};
|
|
serial@1,0 {
|
|
compatible = "exar,xr16l2551", "ns8250";
|
|
reg = <1 0x00000000 0x10>;
|
|
interrupt-parent = <&gpio0>;
|
|
interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
|
|
clock-frequency = <1843200>;
|
|
intel,ixp4xx-eb-t3 = <3>;
|
|
intel,ixp4xx-eb-cycle-type = <1>;
|
|
intel,ixp4xx-eb-write-enable = <1>;
|
|
intel,ixp4xx-eb-byte-access = <1>;
|
|
};
|
|
};
|