xref: /freebsd/sys/contrib/device-tree/Bindings/soundwire/qcom,sdw.txt (revision c7046f76c2c027b00c0e6ba57cfd28f1a78f5e23)
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
165Note:
166	More Information on detail of encoding of these fields can be
167found in MIPI Alliance SoundWire 1.0 Specifications.
168
169= SoundWire devices
170Each subnode of the bus represents SoundWire device attached to it.
171The properties of these nodes are defined by the individual bindings.
172
173= EXAMPLE
174The following example represents a SoundWire controller on DB845c board
175which has controller integrated inside WCD934x codec on SDM845 SoC.
176
177soundwire: soundwire@c85 {
178	compatible = "qcom,soundwire-v1.3.0";
179	reg = <0xc85 0x20>;
180	interrupts = <20 IRQ_TYPE_EDGE_RISING>;
181	clocks = <&wcc>;
182	clock-names = "iface";
183	#sound-dai-cells = <1>;
184	qcom,dports-type = <0>;
185	qcom,dout-ports	= <6>;
186	qcom,din-ports	= <2>;
187	qcom,ports-sinterval-low = /bits/ 8  <0x07 0x1F 0x3F 0x7 0x1F 0x3F 0x0F 0x0F>;
188	qcom,ports-offset1 = /bits/ 8 <0x01 0x02 0x0C 0x6 0x12 0x0D 0x07 0x0A >;
189	qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x1F 0x00 0x00 0x1F 0x00 0x00>;
190
191	/* Left Speaker */
192	left{
193		....
194	};
195
196	/* Right Speaker */
197	right{
198		....
199	};
200};
201