hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
Qualcomm SoundWire Controller Bindings
 
 
This binding describes the Qualcomm SoundWire Controller along with its
board specific bus parameters.
 
- compatible:
   Usage: required
   Value type: <stringlist>
   Definition: must be "qcom,soundwire-v<MAJOR>.<MINOR>.<STEP>",
           Example:
           "qcom,soundwire-v1.3.0"
           "qcom,soundwire-v1.5.0"
           "qcom,soundwire-v1.5.1"
           "qcom,soundwire-v1.6.0"
- reg:
   Usage: required
   Value type: <prop-encoded-array>
   Definition: the base address and size of SoundWire controller
           address space.
 
- interrupts:
   Usage: required
   Value type: <prop-encoded-array>
   Definition: should specify the SoundWire Controller IRQ
 
- clock-names:
   Usage: required
   Value type: <stringlist>
   Definition: should be "iface" for SoundWire Controller interface clock
 
- clocks:
   Usage: required
   Value type: <prop-encoded-array>
   Definition: should specify the SoundWire Controller interface clock
 
- #sound-dai-cells:
   Usage: required
   Value type: <u32>
   Definition: must be 1 for digital audio interfaces on the controller.
 
- qcom,dout-ports:
   Usage: required
   Value type: <u32>
   Definition: must be count of data out ports
 
- qcom,din-ports:
   Usage: required
   Value type: <u32>
   Definition: must be count of data in ports
 
- qcom,ports-offset1:
   Usage: required
   Value type: <prop-encoded-array>
   Definition: should specify payload transport window offset1 of each
           data port. Out ports followed by In ports.
           More info in MIPI Alliance SoundWire 1.0 Specifications.
 
- qcom,ports-offset2:
   Usage: required
   Value type: <prop-encoded-array>
   Definition: should specify payload transport window offset2 of each
           data port. Out ports followed by In ports.
           More info in MIPI Alliance SoundWire 1.0 Specifications.
 
- qcom,ports-sinterval-low:
   Usage: required
   Value type: <prop-encoded-array>
   Definition: should be sample interval low of each data port.
           Out ports followed by In ports. Used for Sample Interval
           calculation.
           More info in MIPI Alliance SoundWire 1.0 Specifications.
 
- qcom,ports-word-length:
   Usage: optional
   Value type: <prop-encoded-array>
   Definition: should be size of payload channel sample.
           More info in MIPI Alliance SoundWire 1.0 Specifications.
 
- qcom,ports-block-pack-mode:
   Usage: optional
   Value type: <prop-encoded-array>
   Definition: should be 0 or 1 to indicate the block packing mode.
           0 to indicate Blocks are per Channel
           1 to indicate Blocks are per Port.
           Out ports followed by In ports.
           More info in MIPI Alliance SoundWire 1.0 Specifications.
 
- qcom,ports-block-group-count:
   Usage: optional
   Value type: <prop-encoded-array>
   Definition: should be in range 1 to 4 to indicate how many sample
           intervals are combined into a payload.
           Out ports followed by In ports.
           More info in MIPI Alliance SoundWire 1.0 Specifications.
 
- qcom,ports-lane-control:
   Usage: optional
   Value type: <prop-encoded-array>
   Definition: should be in range 0 to 7 to identify which    data lane
           the data port uses.
           Out ports followed by In ports.
           More info in MIPI Alliance SoundWire 1.0 Specifications.
 
- qcom,ports-hstart:
   Usage: optional
   Value type: <prop-encoded-array>
   Definition: should be number identifying lowerst numbered coloum in
           SoundWire Frame, i.e. left edge of the Transport sub-frame
           for each port. Values between 0 and 15 are valid.
           Out ports followed by In ports.
           More info in MIPI Alliance SoundWire 1.0 Specifications.
 
- qcom,ports-hstop:
   Usage: optional
   Value type: <prop-encoded-array>
   Definition: should be number identifying highest numbered coloum in
           SoundWire Frame, i.e. the right edge of the Transport
           sub-frame for each port. Values between 0 and 15 are valid.
           Out ports followed by In ports.
           More info in MIPI Alliance SoundWire 1.0 Specifications.
 
- qcom,dports-type:
   Usage: optional
   Value type: <prop-encoded-array>
   Definition: should be one of the following types
           0 for reduced port
           1 for simple ports
           2 for full port
           Out ports followed by In ports.
           More info in MIPI Alliance SoundWire 1.0 Specifications.
 
Note:
   More Information on detail of encoding of these fields can be
found in MIPI Alliance SoundWire 1.0 Specifications.
 
= SoundWire devices
Each subnode of the bus represents SoundWire device attached to it.
The properties of these nodes are defined by the individual bindings.
 
= EXAMPLE
The following example represents a SoundWire controller on DB845c board
which has controller integrated inside WCD934x codec on SDM845 SoC.
 
soundwire: soundwire@c85 {
   compatible = "qcom,soundwire-v1.3.0";
   reg = <0xc85 0x20>;
   interrupts = <20 IRQ_TYPE_EDGE_RISING>;
   clocks = <&wcc>;
   clock-names = "iface";
   #sound-dai-cells = <1>;
   qcom,dports-type = <0>;
   qcom,dout-ports    = <6>;
   qcom,din-ports    = <2>;
   qcom,ports-sinterval-low = /bits/ 8  <0x07 0x1F 0x3F 0x7 0x1F 0x3F 0x0F 0x0F>;
   qcom,ports-offset1 = /bits/ 8 <0x01 0x02 0x0C 0x6 0x12 0x0D 0x07 0x0A >;
   qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x1F 0x00 0x00 0x1F 0x00 0x00>;
 
   /* Left Speaker */
   left{
       ....
   };
 
   /* Right Speaker */
   right{
       ....
   };
};