summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/fieldbus/arcx,anybus-controller.txt
blob: b1f9474f36d51a6235cd29b815248f8e7dbb5b84 (plain)
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
* Arcx Anybus-S controller

This chip communicates with the SoC over a parallel bus. It is
expected that its Device Tree node is specified as the child of a node
corresponding to the parallel bus used for communication.

Required properties:
--------------------

  - compatible : The following chip-specific string:
        "arcx,anybus-controller"

  - reg : three areas:
	index 0: bus memory area where the cpld registers are located.
	index 1: bus memory area of the first  host's dual-port ram.
	index 2: bus memory area of the second host's dual-port ram.

  - reset-gpios : the GPIO pin connected to the reset line of the controller.

  - interrupts : two interrupts:
		index 0: interrupt connected to the first  host
		index 1: interrupt connected to the second host
	Generic interrupt client node bindings are described in
	interrupt-controller/interrupts.txt

Optional: use of subnodes
-------------------------

The card connected to a host may need additional properties. These can be
specified in subnodes to the controller node.

The subnodes are identified by the standard 'reg' property. Which information
exactly can be specified depends on the bindings for the function driver
for the subnode.

Required controller node properties when using subnodes:
- #address-cells: should be one.
- #size-cells: should be zero.

Required subnode properties:
- reg: Must contain the host index of the card this subnode describes:
		<0>	for the first  host on the controller
		<1>	for the second host on the controller
	Note that only a single card can be plugged into a host, so the host
	index uniquely describes the card location.

Example of usage:
-----------------

This example places the bridge on top of the i.MX WEIM parallel bus, see:
Documentation/devicetree/bindings/bus/imx-weim.txt

&weim {
	controller@0,0 {
		compatible = "arcx,anybus-controller";
		reg = <0 0 0x100>, <0 0x400000 0x800>, <1 0x400000 0x800>;
		reset-gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;
		interrupt-parent = <&gpio1>;
		interrupts = <1 IRQ_TYPE_LEVEL_LOW>, <5 IRQ_TYPE_LEVEL_LOW>;
		/* fsl,weim-cs-timing is a i.MX WEIM bus specific property */
		fsl,weim-cs-timing = <0x024400b1 0x00001010 0x20081100
				0x00000000 0xa0000240 0x00000000>;
		/* optional subnode for a card plugged into the first host */
		#address-cells = <1>;
		#size-cells = <0>;
		card@0 {
			reg = <0>;
			/* card specific properties go here */
		};
	};
};