| * 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 */ |
| }; |
| }; |
| }; |