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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
Qualcomm Technologies Inc GPI DMA controller
QCOM GPI DMA controller provides DMA capabilities for
peripheral buses such as I2C, UART, and SPI.
==============
Node Structure
==============
Main node properties:
- #dma-cells
Usage: required
Value type: <u32>
Definition: Number of parameters client will provide. Must be set to 5.
1st parameter: channel index, 0 for TX, 1 for RX
2nd parameter: serial engine index
3rd parameter: bus protocol, 1 for SPI, 2 for UART, 3 for I2C
4th parameter: channel ring length in transfer ring elements
5th parameter: event processing priority, set to 0 for lowest latency
- compatible
Usage: required
Value type: <string>
Definition: "qcom,gpi-dma"
- reg
Usage: required
Value type: Array of <u32>
Definition: register address space location and size
- reg-name
Usage: required
Value type: <string>
Definition: register space name, must be "gpi-top"
- interrupts
Usage: required
Value type: Array of <u32>
Definition: Array of tuples which describe interrupt line for each GPII
instance.
- qcom,max-num-gpii
Usage: required
Value type: <u32>
Definition: Total number of GPII instances available for this controller.
- qcom,gpii-mask
Usage: required
Value type: <u32>
Definition: Bitmap of supported GPII instances in hlos.
- qcom,ev-factor
Usage: required
Value type: <u32>
Definition: Event ring transfer size compare to channel transfer ring. Event
ring length = ev-factor * transfer ring size
- iommus
Usage: required
Value type: <phandle u32 u32>
Definition: phandle for apps smmu controller and SID, and mask
for the controller. For more detail please check binding
documentation arm,smmu.txt
- qcom,smmu-cfg
Usage: required
Value type: <u32>
Definition: Determine whether GPI driver require to configure SMMU that
sits behind GPI controller.
Bit mask:
BIT(0) : Attach address mapping to endpoint device
BIT(1) : Set SMMU attribute S1_BYPASS
BIT(2) : Set SMMU attribute FAST
BIT(3) : Set SMMU attribute ATOMIC
- qcom,iova-range
Usage: required if SMMU S1 translation is enabled
Value type: Array of <u64>
Definition: Pair of values describing iova base and size to allocate.
Optional property:
- qcom,gpi-ee-offset
Usage: optional
Value type: u64
Definition: Specifies the gsi ee register offset for the QUP.
========
Example:
========
gpi_dma0: qcom,gpi-dma@0x800000 {
#dma-cells = <5>;
compatible = "qcom,gpi-dma";
reg = <0x800000 0x60000>;
reg-names = "gpi-top";
interrupts = <0 244 0>, <0 245 0>, <0 246 0>, <0 247 0>,
<0 248 0>, <0 249 0>, <0 250 0>, <0 251 0>,
<0 252 0>, <0 253 0>, <0 254 0>, <0 255 0>,
<0 256 0>;
qcom,max-num-gpii = <13>;
qcom,gpii-mask = <0xfa>;
qcom,ev-factor = <2>;
iommus = <&apps_smmu 0x0016 0x0>;
qcom,smmu-cfg = <0x1>
qcom,iova-range = <0x0 0x100000 0x0 0x100000>;
status = "ok";
};
|