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 IRQ 26 27- clock-names: 28 Usage: required 29 Value type: <stringlist> 30 Definition: should be "iface" for SoundWire Controller interface clock 31 32- clocks: 33 Usage: required 34 Value type: <prop-encoded-array> 35 Definition: should specify the SoundWire Controller interface clock 36 37- #sound-dai-cells: 38 Usage: required 39 Value type: <u32> 40 Definition: must be 1 for digital audio interfaces on the controller. 41 42- qcom,dout-ports: 43 Usage: required 44 Value type: <u32> 45 Definition: must be count of data out ports 46 47- qcom,din-ports: 48 Usage: required 49 Value type: <u32> 50 Definition: must be count of data in ports 51 52- qcom,ports-offset1: 53 Usage: required 54 Value type: <prop-encoded-array> 55 Definition: should specify payload transport window offset1 of each 56 data port. Out ports followed by In ports. 57 Value of 0xFF indicates that this option is not implemented 58 or applicable for the respective data port. 59 More info in MIPI Alliance SoundWire 1.0 Specifications. 60 61- qcom,ports-offset2: 62 Usage: required 63 Value type: <prop-encoded-array> 64 Definition: should specify payload transport window offset2 of each 65 data port. Out ports followed by In ports. 66 Value of 0xFF indicates that this option is not implemented 67 or applicable for the respective data port. 68 More info in MIPI Alliance SoundWire 1.0 Specifications. 69 70- qcom,ports-sinterval-low: 71 Usage: required 72 Value type: <prop-encoded-array> 73 Definition: should be sample interval low of each data port. 74 Out ports followed by In ports. Used for Sample Interval 75 calculation. 76 Value of 0xFF indicates that this option is not implemented 77 or applicable for the respective data port. 78 More info in MIPI Alliance SoundWire 1.0 Specifications. 79 80- qcom,ports-word-length: 81 Usage: optional 82 Value type: <prop-encoded-array> 83 Definition: should be size of payload channel sample. 84 Value of 0xFF indicates that this option is not implemented 85 or applicable for the respective data port. 86 More info in MIPI Alliance SoundWire 1.0 Specifications. 87 88- qcom,ports-block-pack-mode: 89 Usage: optional 90 Value type: <prop-encoded-array> 91 Definition: should be 0 or 1 to indicate the block packing mode. 92 0 to indicate Blocks are per Channel 93 1 to indicate Blocks are per Port. 94 Out ports followed by In ports. 95 Value of 0xFF indicates that this option is not implemented 96 or applicable for the respective data port. 97 More info in MIPI Alliance SoundWire 1.0 Specifications. 98 99- qcom,ports-block-group-count: 100 Usage: optional 101 Value type: <prop-encoded-array> 102 Definition: should be in range 1 to 4 to indicate how many sample 103 intervals are combined into a payload. 104 Out ports followed by In ports. 105 Value of 0xFF indicates that this option is not implemented 106 or applicable for the respective data port. 107 More info in MIPI Alliance SoundWire 1.0 Specifications. 108 109- qcom,ports-lane-control: 110 Usage: optional 111 Value type: <prop-encoded-array> 112 Definition: should be in range 0 to 7 to identify which data lane 113 the data port uses. 114 Out ports followed by In ports. 115 Value of 0xFF indicates that this option is not implemented 116 or applicable for the respective data port. 117 More info in MIPI Alliance SoundWire 1.0 Specifications. 118 119- qcom,ports-hstart: 120 Usage: optional 121 Value type: <prop-encoded-array> 122 Definition: should be number identifying lowerst numbered coloum in 123 SoundWire Frame, i.e. left edge of the Transport sub-frame 124 for each port. Values between 0 and 15 are valid. 125 Out ports followed by In ports. 126 Value of 0xFF indicates that this option is not implemented 127 or applicable for the respective data port. 128 More info in MIPI Alliance SoundWire 1.0 Specifications. 129 130- qcom,ports-hstop: 131 Usage: optional 132 Value type: <prop-encoded-array> 133 Definition: should be number identifying highest numbered coloum in 134 SoundWire Frame, i.e. the right edge of the Transport 135 sub-frame for each port. Values between 0 and 15 are valid. 136 Out ports followed by In ports. 137 Value of 0xFF indicates that this option is not implemented 138 or applicable for the respective data port. 139 More info in MIPI Alliance SoundWire 1.0 Specifications. 140 141- qcom,dports-type: 142 Usage: optional 143 Value type: <prop-encoded-array> 144 Definition: should be one of the following types 145 0 for reduced port 146 1 for simple ports 147 2 for full port 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 153Note: 154 More Information on detail of encoding of these fields can be 155found in MIPI Alliance SoundWire 1.0 Specifications. 156 157= SoundWire devices 158Each subnode of the bus represents SoundWire device attached to it. 159The properties of these nodes are defined by the individual bindings. 160 161= EXAMPLE 162The following example represents a SoundWire controller on DB845c board 163which has controller integrated inside WCD934x codec on SDM845 SoC. 164 165soundwire: soundwire@c85 { 166 compatible = "qcom,soundwire-v1.3.0"; 167 reg = <0xc85 0x20>; 168 interrupts = <20 IRQ_TYPE_EDGE_RISING>; 169 clocks = <&wcc>; 170 clock-names = "iface"; 171 #sound-dai-cells = <1>; 172 qcom,dports-type = <0>; 173 qcom,dout-ports = <6>; 174 qcom,din-ports = <2>; 175 qcom,ports-sinterval-low = /bits/ 8 <0x07 0x1F 0x3F 0x7 0x1F 0x3F 0x0F 0x0F>; 176 qcom,ports-offset1 = /bits/ 8 <0x01 0x02 0x0C 0x6 0x12 0x0D 0x07 0x0A >; 177 qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x1F 0x00 0x00 0x1F 0x00 0x00>; 178 179 /* Left Speaker */ 180 left{ 181 .... 182 }; 183 184 /* Right Speaker */ 185 right{ 186 .... 187 }; 188}; 189