Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc/fsl: Document rapidio node binding-information

This document is created for powerpc rapidio and rmu nodes in dts file.
These nodes can support two rapidio ports and message units. In addition,
It explicates the properties and gives examples about rapidio and rmu nodes.

Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jin Qing <b24347@freescale.com>
Signed-off-by: Liu Gang <Gang.Liu@freescale.com>
Acked-by: Alexandre Bounine <alexandre.bounine@idt.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>

authored by

Liu Gang and committed by
Kumar Gala
91610d83 e3854b6e

+266
+163
Documentation/devicetree/bindings/powerpc/fsl/srio-rmu.txt
··· 1 + Message unit node: 2 + 3 + For SRIO controllers that implement the message unit as part of the controller 4 + this node is required. For devices with RMAN this node should NOT exist. The 5 + node is composed of three types of sub-nodes ("fsl-srio-msg-unit", 6 + "fsl-srio-dbell-unit" and "fsl-srio-port-write-unit"). 7 + 8 + See srio.txt for more details about generic SRIO controller details. 9 + 10 + - compatible 11 + Usage: required 12 + Value type: <string> 13 + Definition: Must include "fsl,srio-rmu-vX.Y", "fsl,srio-rmu". 14 + 15 + The version X.Y should match the general SRIO controller's IP Block 16 + revision register's Major(X) and Minor (Y) value. 17 + 18 + - reg 19 + Usage: required 20 + Value type: <prop-encoded-array> 21 + Definition: A standard property. Specifies the physical address and 22 + length of the SRIO configuration registers for message units 23 + and doorbell units. 24 + 25 + - fsl,liodn 26 + Usage: optional-but-recommended (for devices with PAMU) 27 + Value type: <prop-encoded-array> 28 + Definition: The logical I/O device number for the PAMU (IOMMU) to be 29 + correctly configured for SRIO accesses. The property should 30 + not exist on devices that do not support PAMU. 31 + 32 + The LIODN value is associated with all RMU transactions 33 + (msg-unit, doorbell, port-write). 34 + 35 + Sub-Nodes for RMU: The RMU node is composed of multiple sub-nodes that 36 + correspond to the actual sub-controllers in the RMU. The manual for a given 37 + SoC will detail which and how many of these sub-controllers are implemented. 38 + 39 + Message Unit: 40 + 41 + - compatible 42 + Usage: required 43 + Value type: <string> 44 + Definition: Must include "fsl,srio-msg-unit-vX.Y", "fsl,srio-msg-unit". 45 + 46 + The version X.Y should match the general SRIO controller's IP Block 47 + revision register's Major(X) and Minor (Y) value. 48 + 49 + - reg 50 + Usage: required 51 + Value type: <prop-encoded-array> 52 + Definition: A standard property. Specifies the physical address and 53 + length of the SRIO configuration registers for message units 54 + and doorbell units. 55 + 56 + - interrupts 57 + Usage: required 58 + Value type: <prop_encoded-array> 59 + Definition: Specifies the interrupts generated by this device. The 60 + value of the interrupts property consists of one interrupt 61 + specifier. The format of the specifier is defined by the 62 + binding document describing the node's interrupt parent. 63 + 64 + A pair of IRQs are specified in this property. The first 65 + element is associated with the transmit (TX) interrupt and the 66 + second element is associated with the receive (RX) interrupt. 67 + 68 + Doorbell Unit: 69 + 70 + - compatible 71 + Usage: required 72 + Value type: <string> 73 + Definition: Must include: 74 + "fsl,srio-dbell-unit-vX.Y", "fsl,srio-dbell-unit" 75 + 76 + The version X.Y should match the general SRIO controller's IP Block 77 + revision register's Major(X) and Minor (Y) value. 78 + 79 + - reg 80 + Usage: required 81 + Value type: <prop-encoded-array> 82 + Definition: A standard property. Specifies the physical address and 83 + length of the SRIO configuration registers for message units 84 + and doorbell units. 85 + 86 + - interrupts 87 + Usage: required 88 + Value type: <prop_encoded-array> 89 + Definition: Specifies the interrupts generated by this device. The 90 + value of the interrupts property consists of one interrupt 91 + specifier. The format of the specifier is defined by the 92 + binding document describing the node's interrupt parent. 93 + 94 + A pair of IRQs are specified in this property. The first 95 + element is associated with the transmit (TX) interrupt and the 96 + second element is associated with the receive (RX) interrupt. 97 + 98 + Port-Write Unit: 99 + 100 + - compatible 101 + Usage: required 102 + Value type: <string> 103 + Definition: Must include: 104 + "fsl,srio-port-write-unit-vX.Y", "fsl,srio-port-write-unit" 105 + 106 + The version X.Y should match the general SRIO controller's IP Block 107 + revision register's Major(X) and Minor (Y) value. 108 + 109 + - reg 110 + Usage: required 111 + Value type: <prop-encoded-array> 112 + Definition: A standard property. Specifies the physical address and 113 + length of the SRIO configuration registers for message units 114 + and doorbell units. 115 + 116 + - interrupts 117 + Usage: required 118 + Value type: <prop_encoded-array> 119 + Definition: Specifies the interrupts generated by this device. The 120 + value of the interrupts property consists of one interrupt 121 + specifier. The format of the specifier is defined by the 122 + binding document describing the node's interrupt parent. 123 + 124 + A single IRQ that handles port-write conditions is 125 + specified by this property. (Typically shared with error). 126 + 127 + Note: All other standard properties (see the ePAPR) are allowed 128 + but are optional. 129 + 130 + Example: 131 + rmu: rmu@d3000 { 132 + compatible = "fsl,srio-rmu"; 133 + reg = <0xd3000 0x400>; 134 + ranges = <0x0 0xd3000 0x400>; 135 + fsl,liodn = <0xc8>; 136 + 137 + message-unit@0 { 138 + compatible = "fsl,srio-msg-unit"; 139 + reg = <0x0 0x100>; 140 + interrupts = < 141 + 60 2 0 0 /* msg1_tx_irq */ 142 + 61 2 0 0>;/* msg1_rx_irq */ 143 + }; 144 + message-unit@100 { 145 + compatible = "fsl,srio-msg-unit"; 146 + reg = <0x100 0x100>; 147 + interrupts = < 148 + 62 2 0 0 /* msg2_tx_irq */ 149 + 63 2 0 0>;/* msg2_rx_irq */ 150 + }; 151 + doorbell-unit@400 { 152 + compatible = "fsl,srio-dbell-unit"; 153 + reg = <0x400 0x80>; 154 + interrupts = < 155 + 56 2 0 0 /* bell_outb_irq */ 156 + 57 2 0 0>;/* bell_inb_irq */ 157 + }; 158 + port-write-unit@4e0 { 159 + compatible = "fsl,srio-port-write-unit"; 160 + reg = <0x4e0 0x20>; 161 + interrupts = <16 2 1 11>; 162 + }; 163 + };
+103
Documentation/devicetree/bindings/powerpc/fsl/srio.txt
··· 1 + * Freescale Serial RapidIO (SRIO) Controller 2 + 3 + RapidIO port node: 4 + Properties: 5 + - compatible 6 + Usage: required 7 + Value type: <string> 8 + Definition: Must include "fsl,srio" for IP blocks with IP Block 9 + Revision Register (SRIO IPBRR1) Major ID equal to 0x01c0. 10 + 11 + Optionally, a compatiable string of "fsl,srio-vX.Y" where X is Major 12 + version in IP Block Revision Register and Y is Minor version. If this 13 + compatiable is provided it should be ordered before "fsl,srio". 14 + 15 + - reg 16 + Usage: required 17 + Value type: <prop-encoded-array> 18 + Definition: A standard property. Specifies the physical address and 19 + length of the SRIO configuration registers. The size should 20 + be set to 0x11000. 21 + 22 + - interrupts 23 + Usage: required 24 + Value type: <prop_encoded-array> 25 + Definition: Specifies the interrupts generated by this device. The 26 + value of the interrupts property consists of one interrupt 27 + specifier. The format of the specifier is defined by the 28 + binding document describing the node's interrupt parent. 29 + 30 + A single IRQ that handles error conditions is specified by this 31 + property. (Typically shared with port-write). 32 + 33 + - fsl,srio-rmu-handle: 34 + Usage: required if rmu node is defined 35 + Value type: <phandle> 36 + Definition: A single <phandle> value that points to the RMU. 37 + (See srio-rmu.txt for more details on RMU node binding) 38 + 39 + Port Child Nodes: There should a port child node for each port that exists in 40 + the controller. The ports are numbered starting at one (1) and should have 41 + the following properties: 42 + 43 + - cell-index 44 + Usage: required 45 + Value type: <u32> 46 + Definition: A standard property. Matches the port id. 47 + 48 + - ranges 49 + Usage: required if local access windows preset 50 + Value type: <prop-encoded-array> 51 + Definition: A standard property. Utilized to describe the memory mapped 52 + IO space utilized by the controller. This corresponds to the 53 + setting of the local access windows that are targeted to this 54 + SRIO port. 55 + 56 + - fsl,liodn 57 + Usage: optional-but-recommended (for devices with PAMU) 58 + Value type: <prop-encoded-array> 59 + Definition: The logical I/O device number for the PAMU (IOMMU) to be 60 + correctly configured for SRIO accesses. The property should 61 + not exist on devices that do not support PAMU. 62 + 63 + For HW (ie, the P4080) that only supports a LIODN for both 64 + memory and maintenance transactions then a single LIODN is 65 + represented in the property for both transactions. 66 + 67 + For HW (ie, the P304x/P5020, etc) that supports an LIODN for 68 + memory transactions and a unique LIODN for maintenance 69 + transactions then a pair of LIODNs are represented in the 70 + property. Within the pair, the first element represents the 71 + LIODN associated with memory transactions and the second element 72 + represents the LIODN associated with maintenance transactions 73 + for the port. 74 + 75 + Note: All other standard properties (see ePAPR) are allowed but are optional. 76 + 77 + Example: 78 + 79 + rapidio: rapidio@ffe0c0000 { 80 + #address-cells = <2>; 81 + #size-cells = <2>; 82 + reg = <0xf 0xfe0c0000 0 0x11000>; 83 + compatible = "fsl,srio"; 84 + interrupts = <16 2 1 11>; /* err_irq */ 85 + fsl,srio-rmu-handle = <&rmu>; 86 + ranges; 87 + 88 + port1 { 89 + cell-index = <1>; 90 + #address-cells = <2>; 91 + #size-cells = <2>; 92 + fsl,liodn = <34>; 93 + ranges = <0 0 0xc 0x20000000 0 0x10000000>; 94 + }; 95 + 96 + port2 { 97 + cell-index = <2>; 98 + #address-cells = <2>; 99 + #size-cells = <2>; 100 + fsl,liodn = <48>; 101 + ranges = <0 0 0xc 0x30000000 0 0x10000000>; 102 + }; 103 + };