xref: /freebsd/sys/contrib/device-tree/Bindings/soundwire/qcom,sdw.txt (revision bdd1243df58e60e85101c09001d9812a789b6bc4)
1Qualcomm SoundWire Controller Bindings
2
3
4This binding describes the Qualcomm SoundWire Controller along with its
5board 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
177Note:
178	More Information on detail of encoding of these fields can be
179found in MIPI Alliance SoundWire 1.0 Specifications.
180
181= SoundWire devices
182Each subnode of the bus represents SoundWire device attached to it.
183The properties of these nodes are defined by the individual bindings.
184
185= EXAMPLE
186The following example represents a SoundWire controller on DB845c board
187which has controller integrated inside WCD934x codec on SDM845 SoC.
188
189soundwire: 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};
215