GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / soundwire / qcom,sdw.txt
1 Qualcomm SoundWire Controller Bindings
2
3
4 This binding describes the Qualcomm SoundWire Controller along with its
5 board specific bus parameters.
6
7 - compatible:
8         Usage: required
9         Value type: <stringlist>
10         Definition: must be "qcom,soundwire-v<MAJOR>.<MINOR>.<STEP>",
11                     Example:
12                         "qcom,soundwire-v1.3.0"
13                         "qcom,soundwire-v1.5.0"
14                         "qcom,soundwire-v1.5.1"
15                         "qcom,soundwire-v1.6.0"
16 - reg:
17         Usage: required
18         Value type: <prop-encoded-array>
19         Definition: the base address and size of SoundWire controller
20                     address space.
21
22 - interrupts:
23         Usage: required
24         Value type: <prop-encoded-array>
25         Definition: should specify the SoundWire Controller core and optional
26                     wake IRQ
27
28 - interrupt-names:
29         Usage: Optional
30         Value type: boolean
31         Value type: <stringlist>
32         Definition: should be "core" for core and "wakeup" for wake interrupt.
33
34 - wakeup-source:
35         Usage: Optional
36         Value type: boolean
37         Definition: should specify if SoundWire Controller is wake up capable.
38
39 - clock-names:
40         Usage: required
41         Value type: <stringlist>
42         Definition: should be "iface" for SoundWire Controller interface clock
43
44 - clocks:
45         Usage: required
46         Value type: <prop-encoded-array>
47         Definition: should specify the SoundWire Controller interface clock
48
49 - #sound-dai-cells:
50         Usage: required
51         Value type: <u32>
52         Definition: must be 1 for digital audio interfaces on the controller.
53
54 - qcom,dout-ports:
55         Usage: required
56         Value type: <u32>
57         Definition: must be count of data out ports
58
59 - qcom,din-ports:
60         Usage: required
61         Value type: <u32>
62         Definition: must be count of data in ports
63
64 - qcom,ports-offset1:
65         Usage: required
66         Value type: <prop-encoded-array>
67         Definition: should specify payload transport window offset1 of each
68                     data port. Out ports followed by In ports.
69                     Value of 0xFF indicates that this option is not implemented
70                     or applicable for the respective data port.
71                     More info in MIPI Alliance SoundWire 1.0 Specifications.
72
73 - qcom,ports-offset2:
74         Usage: required
75         Value type: <prop-encoded-array>
76         Definition: should specify payload transport window offset2 of each
77                     data port. Out ports followed by In ports.
78                     Value of 0xFF indicates that this option is not implemented
79                     or applicable for the respective data port.
80                     More info in MIPI Alliance SoundWire 1.0 Specifications.
81
82 - qcom,ports-sinterval-low:
83         Usage: required
84         Value type: <prop-encoded-array>
85         Definition: should be sample interval low of each data port.
86                     Out ports followed by In ports. Used for Sample Interval
87                     calculation.
88                     Value of 0xFF indicates that this option is not implemented
89                     or applicable for the respective data port.
90                     More info in MIPI Alliance SoundWire 1.0 Specifications.
91
92 - qcom,ports-word-length:
93         Usage: optional
94         Value type: <prop-encoded-array>
95         Definition: should be size of payload channel sample.
96                     Value of 0xFF indicates that this option is not implemented
97                     or applicable for the respective data port.
98                     More info in MIPI Alliance SoundWire 1.0 Specifications.
99
100 - qcom,ports-block-pack-mode:
101         Usage: optional
102         Value type: <prop-encoded-array>
103         Definition: should be 0 or 1 to indicate the block packing mode.
104                     0 to indicate Blocks are per Channel
105                     1 to indicate Blocks are per Port.
106                     Out ports followed by In ports.
107                     Value of 0xFF indicates that this option is not implemented
108                     or applicable for the respective data port.
109                     More info in MIPI Alliance SoundWire 1.0 Specifications.
110
111 - qcom,ports-block-group-count:
112         Usage: optional
113         Value type: <prop-encoded-array>
114         Definition: should be in range 1 to 4 to indicate how many sample
115                     intervals are combined into a payload.
116                     Out ports followed by In ports.
117                     Value of 0xFF indicates that this option is not implemented
118                     or applicable for the respective data port.
119                     More info in MIPI Alliance SoundWire 1.0 Specifications.
120
121 - qcom,ports-lane-control:
122         Usage: optional
123         Value type: <prop-encoded-array>
124         Definition: should be in range 0 to 7 to identify which data lane
125                     the data port uses.
126                     Out ports followed by In ports.
127                     Value of 0xFF indicates that this option is not implemented
128                     or applicable for the respective data port.
129                     More info in MIPI Alliance SoundWire 1.0 Specifications.
130
131 - qcom,ports-hstart:
132         Usage: optional
133         Value type: <prop-encoded-array>
134         Definition: should be number identifying lowerst numbered coloum in
135                     SoundWire Frame, i.e. left edge of the Transport sub-frame
136                     for each port. Values between 0 and 15 are valid.
137                     Out ports followed by In ports.
138                     Value of 0xFF indicates that this option is not implemented
139                     or applicable for the respective data port.
140                     More info in MIPI Alliance SoundWire 1.0 Specifications.
141
142 - qcom,ports-hstop:
143         Usage: optional
144         Value type: <prop-encoded-array>
145         Definition: should be number identifying highest numbered coloum in
146                     SoundWire Frame, i.e. the right edge of the Transport
147                     sub-frame for each port. Values between 0 and 15 are valid.
148                     Out ports followed by In ports.
149                     Value of 0xFF indicates that this option is not implemented
150                     or applicable for the respective data port.
151                     More info in MIPI Alliance SoundWire 1.0 Specifications.
152
153 - qcom,dports-type:
154         Usage: optional
155         Value type: <prop-encoded-array>
156         Definition: should be one of the following types
157                     0 for reduced port
158                     1 for simple ports
159                     2 for full port
160                     Out ports followed by In ports.
161                     Value of 0xFF indicates that this option is not implemented
162                     or applicable for the respective data port.
163                     More info in MIPI Alliance SoundWire 1.0 Specifications.
164
165 - reset:
166         Usage: optional
167         Value type: <prop-encoded-array>
168         Definition: Should specify the SoundWire audio CSR reset controller interface,
169                     which is required for SoundWire version 1.6.0 and above.
170
171 - reset-names:
172         Usage: optional
173         Value type: <stringlist>
174         Definition: should be "swr_audio_cgcr" for SoundWire audio CSR reset
175                     controller interface.
176
177 Note:
178         More Information on detail of encoding of these fields can be
179 found in MIPI Alliance SoundWire 1.0 Specifications.
180
181 = SoundWire devices
182 Each subnode of the bus represents SoundWire device attached to it.
183 The properties of these nodes are defined by the individual bindings.
184
185 = EXAMPLE
186 The following example represents a SoundWire controller on DB845c board
187 which has controller integrated inside WCD934x codec on SDM845 SoC.
188
189 soundwire: soundwire@c85 {
190         compatible = "qcom,soundwire-v1.3.0";
191         reg = <0xc85 0x20>;
192         interrupts = <20 IRQ_TYPE_EDGE_RISING>;
193         clocks = <&wcc>;
194         clock-names = "iface";
195         resets = <&lpass_audiocc LPASS_AUDIO_SWR_TX_CGCR>;
196         reset-names = "swr_audio_cgcr";
197         #sound-dai-cells = <1>;
198         qcom,dports-type = <0>;
199         qcom,dout-ports = <6>;
200         qcom,din-ports  = <2>;
201         qcom,ports-sinterval-low = /bits/ 8  <0x07 0x1F 0x3F 0x7 0x1F 0x3F 0x0F 0x0F>;
202         qcom,ports-offset1 = /bits/ 8 <0x01 0x02 0x0C 0x6 0x12 0x0D 0x07 0x0A >;
203         qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x1F 0x00 0x00 0x1F 0x00 0x00>;
204
205         /* Left Speaker */
206         left{
207                 ....
208         };
209
210         /* Right Speaker */
211         right{
212                 ....
213         };
214 };