treewide: remove redundant IS_ERR() before error code check
[linux/fpc-iii.git] / Documentation / devicetree / bindings / soundwire / qcom,sdw.txt
blob436547f3b1552c8fb28caa2415341ea01bdb56b1
1 Qualcomm SoundWire Controller Bindings
4 This binding describes the Qualcomm SoundWire Controller along with its
5 board specific bus parameters.
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.6.0"
15 - reg:
16         Usage: required
17         Value type: <prop-encoded-array>
18         Definition: the base address and size of SoundWire controller
19                     address space.
21 - interrupts:
22         Usage: required
23         Value type: <prop-encoded-array>
24         Definition: should specify the SoundWire Controller IRQ
26 - clock-names:
27         Usage: required
28         Value type: <stringlist>
29         Definition: should be "iface" for SoundWire Controller interface clock
31 - clocks:
32         Usage: required
33         Value type: <prop-encoded-array>
34         Definition: should specify the SoundWire Controller interface clock
36 - #sound-dai-cells:
37         Usage: required
38         Value type: <u32>
39         Definition: must be 1 for digital audio interfaces on the controller.
41 - qcom,dout-ports:
42         Usage: required
43         Value type: <u32>
44         Definition: must be count of data out ports
46 - qcom,din-ports:
47         Usage: required
48         Value type: <u32>
49         Definition: must be count of data in ports
51 - qcom,ports-offset1:
52         Usage: required
53         Value type: <prop-encoded-array>
54         Definition: should specify payload transport window offset1 of each
55                     data port. Out ports followed by In ports.
56                     More info in MIPI Alliance SoundWire 1.0 Specifications.
58 - qcom,ports-offset2:
59         Usage: required
60         Value type: <prop-encoded-array>
61         Definition: should specify payload transport window offset2 of each
62                     data port. Out ports followed by In ports.
63                     More info in MIPI Alliance SoundWire 1.0 Specifications.
65 - qcom,ports-sinterval-low:
66         Usage: required
67         Value type: <prop-encoded-array>
68         Definition: should be sample interval low of each data port.
69                     Out ports followed by In ports. Used for Sample Interval
70                     calculation.
71                     More info in MIPI Alliance SoundWire 1.0 Specifications.
73 - qcom,ports-word-length:
74         Usage: optional
75         Value type: <prop-encoded-array>
76         Definition: should be size of payload channel sample.
77                     More info in MIPI Alliance SoundWire 1.0 Specifications.
79 - qcom,ports-block-pack-mode:
80         Usage: optional
81         Value type: <prop-encoded-array>
82         Definition: should be 0 or 1 to indicate the block packing mode.
83                     0 to indicate Blocks are per Channel
84                     1 to indicate Blocks are per Port.
85                     Out ports followed by In ports.
86                     More info in MIPI Alliance SoundWire 1.0 Specifications.
88 - qcom,ports-block-group-count:
89         Usage: optional
90         Value type: <prop-encoded-array>
91         Definition: should be in range 1 to 4 to indicate how many sample
92                     intervals are combined into a payload.
93                     Out ports followed by In ports.
94                     More info in MIPI Alliance SoundWire 1.0 Specifications.
96 - qcom,ports-lane-control:
97         Usage: optional
98         Value type: <prop-encoded-array>
99         Definition: should be in range 0 to 7 to identify which data lane
100                     the data port uses.
101                     Out ports followed by In ports.
102                     More info in MIPI Alliance SoundWire 1.0 Specifications.
104 - qcom,ports-hstart:
105         Usage: optional
106         Value type: <prop-encoded-array>
107         Definition: should be number identifying lowerst numbered coloum in
108                     SoundWire Frame, i.e. left edge of the Transport sub-frame
109                     for each port. Values between 0 and 15 are valid.
110                     Out ports followed by In ports.
111                     More info in MIPI Alliance SoundWire 1.0 Specifications.
113 - qcom,ports-hstop:
114         Usage: optional
115         Value type: <prop-encoded-array>
116         Definition: should be number identifying highest numbered coloum in
117                     SoundWire Frame, i.e. the right edge of the Transport
118                     sub-frame for each port. Values between 0 and 15 are valid.
119                     Out ports followed by In ports.
120                     More info in MIPI Alliance SoundWire 1.0 Specifications.
122 - qcom,dports-type:
123         Usage: optional
124         Value type: <prop-encoded-array>
125         Definition: should be one of the following types
126                     0 for reduced port
127                     1 for simple ports
128                     2 for full port
129                     Out ports followed by In ports.
130                     More info in MIPI Alliance SoundWire 1.0 Specifications.
132 Note:
133         More Information on detail of encoding of these fields can be
134 found in MIPI Alliance SoundWire 1.0 Specifications.
136 = SoundWire devices
137 Each subnode of the bus represents SoundWire device attached to it.
138 The properties of these nodes are defined by the individual bindings.
140 = EXAMPLE
141 The following example represents a SoundWire controller on DB845c board
142 which has controller integrated inside WCD934x codec on SDM845 SoC.
144 soundwire: soundwire@c85 {
145         compatible = "qcom,soundwire-v1.3.0";
146         reg = <0xc85 0x20>;
147         interrupts = <20 IRQ_TYPE_EDGE_RISING>;
148         clocks = <&wcc>;
149         clock-names = "iface";
150         #sound-dai-cells = <1>;
151         qcom,dports-type = <0>;
152         qcom,dout-ports = <6>;
153         qcom,din-ports  = <2>;
154         qcom,ports-sinterval-low = /bits/ 8  <0x07 0x1F 0x3F 0x7 0x1F 0x3F 0x0F 0x0F>;
155         qcom,ports-offset1 = /bits/ 8 <0x01 0x02 0x0C 0x6 0x12 0x0D 0x07 0x0A >;
156         qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x1F 0x00 0x00 0x1F 0x00 0x00>;
158         /* Left Speaker */
159         left{
160                 ....
161         };
163         /* Right Speaker */
164         right{
165                 ....
166         };