1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/soundwire/qcom,soundwire.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm SoundWire Controller 8 9maintainers: 10 - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> 11 - Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com> 12 13description: 14 The Qualcomm SoundWire controller along with its board specific bus parameters. 15 16properties: 17 compatible: 18 enum: 19 - qcom,soundwire-v1.3.0 20 - qcom,soundwire-v1.5.0 21 - qcom,soundwire-v1.5.1 22 - qcom,soundwire-v1.6.0 23 - qcom,soundwire-v1.7.0 24 25 reg: 26 maxItems: 1 27 28 interrupts: 29 minItems: 1 30 items: 31 - description: specify the SoundWire controller core. 32 - description: specify the Soundwire controller wake IRQ. 33 34 interrupt-names: 35 minItems: 1 36 items: 37 - const: core 38 - const: wakeup 39 40 clocks: 41 items: 42 - description: iface clock 43 44 clock-names: 45 items: 46 - const: iface 47 48 resets: 49 items: 50 - description: SWR_AUDIO_CGCR RESET 51 52 reset-names: 53 items: 54 - const: swr_audio_cgcr 55 56 '#sound-dai-cells': 57 const: 1 58 59 '#address-cells': 60 const: 2 61 62 '#size-cells': 63 const: 0 64 65 wakeup-source: true 66 67 qcom,din-ports: 68 $ref: /schemas/types.yaml#/definitions/uint32 69 description: count of data in ports 70 71 qcom,dout-ports: 72 $ref: /schemas/types.yaml#/definitions/uint32 73 description: count of data out ports 74 75 qcom,ports-word-length: 76 $ref: /schemas/types.yaml#/definitions/uint8-array 77 description: 78 Size of payload channel sample. 79 Value of 0xff indicates that this option is not implemented 80 or applicable for the respective data port. 81 More info in MIPI Alliance SoundWire 1.0 Specifications. 82 minItems: 3 83 maxItems: 8 84 85 qcom,ports-sinterval-low: 86 $ref: /schemas/types.yaml#/definitions/uint8-array 87 description: 88 Sample interval low of each data port. 89 Out ports followed by In ports. Used for Sample Interval calculation. 90 Value of 0xff indicates that this option is not implemented 91 or applicable for the respective data port. 92 More info in MIPI Alliance SoundWire 1.0 Specifications. 93 minItems: 3 94 maxItems: 8 95 96 qcom,ports-offset1: 97 $ref: /schemas/types.yaml#/definitions/uint8-array 98 description: 99 Payload transport window offset1 of each data port. 100 Out ports followed by In ports. 101 Value of 0xff indicates that this option is not implemented 102 or applicable for the respective data port. 103 More info in MIPI Alliance SoundWire 1.0 Specifications. 104 minItems: 3 105 maxItems: 8 106 107 qcom,ports-offset2: 108 $ref: /schemas/types.yaml#/definitions/uint8-array 109 description: 110 Payload transport window offset2 of each data port. 111 Out ports followed by In ports. 112 Value of 0xff indicates that this option is not implemented 113 or applicable for the respective data port. 114 More info in MIPI Alliance SoundWire 1.0 Specifications. 115 minItems: 3 116 maxItems: 8 117 118 qcom,ports-lane-control: 119 $ref: /schemas/types.yaml#/definitions/uint8-array 120 description: 121 Identify which data lane the data port uses. 122 Out ports followed by In ports. 123 Value of 0xff indicates that this option is not implemented 124 or applicable for the respective data port. 125 More info in MIPI Alliance SoundWire 1.0 Specifications. 126 minItems: 3 127 maxItems: 8 128 129 qcom,ports-block-pack-mode: 130 $ref: /schemas/types.yaml#/definitions/uint8-array 131 description: 132 Indicate the block packing mode. 133 0 to indicate Blocks are per Channel 134 1 to indicate Blocks are per Port. 135 Out ports followed by In ports. 136 Value of 0xff indicates that this option is not implemented 137 or applicable for the respective data port. 138 More info in MIPI Alliance SoundWire 1.0 Specifications. 139 minItems: 3 140 maxItems: 8 141 items: 142 oneOf: 143 - minimum: 0 144 maximum: 1 145 - const: 0xff 146 147 qcom,ports-hstart: 148 $ref: /schemas/types.yaml#/definitions/uint8-array 149 description: 150 Identifying lowerst numbered coloum in SoundWire Frame, 151 i.e. left edge of the Transport sub-frame for each port. 152 Out ports followed by In ports. 153 Value of 0xff indicates that this option is not implemented 154 or applicable for the respective data port. 155 More info in MIPI Alliance SoundWire 1.0 Specifications. 156 minItems: 3 157 maxItems: 8 158 items: 159 oneOf: 160 - minimum: 0 161 maximum: 15 162 - const: 0xff 163 164 qcom,ports-hstop: 165 $ref: /schemas/types.yaml#/definitions/uint8-array 166 description: 167 Identifying highest numbered coloum in SoundWire Frame, 168 i.e. the right edge of the Transport 169 sub-frame for each port. Out ports followed by In ports. 170 Value of 0xff indicates that this option is not implemented 171 or applicable for the respective data port. 172 More info in MIPI Alliance SoundWire 1.0 Specifications. 173 minItems: 3 174 maxItems: 8 175 items: 176 oneOf: 177 - minimum: 0 178 maximum: 15 179 - const: 0xff 180 181 qcom,ports-block-group-count: 182 $ref: /schemas/types.yaml#/definitions/uint8-array 183 description: 184 In range 1 to 4 to indicate how many sample intervals are combined 185 into a payload. Out ports followed by In ports. 186 Value of 0xff indicates that this option is not implemented 187 or applicable for the respective data port. 188 More info in MIPI Alliance SoundWire 1.0 Specifications. 189 minItems: 3 190 maxItems: 8 191 items: 192 oneOf: 193 - minimum: 0 194 maximum: 4 195 - const: 0xff 196 197 label: 198 maxItems: 1 199 200patternProperties: 201 "^.*@[0-9a-f],[0-9a-f]$": 202 type: object 203 additionalProperties: true 204 description: 205 Child nodes for a standalone audio codec or speaker amplifier IC. 206 It has RX and TX Soundwire secondary devices. 207 properties: 208 compatible: 209 pattern: "^sdw[0-9a-f]{1}[0-9a-f]{4}[0-9a-f]{4}[0-9a-f]{2}$" 210 211required: 212 - compatible 213 - reg 214 - interrupts 215 - clocks 216 - clock-names 217 - '#sound-dai-cells' 218 - '#address-cells' 219 - '#size-cells' 220 - qcom,dout-ports 221 - qcom,din-ports 222 - qcom,ports-sinterval-low 223 - qcom,ports-offset1 224 - qcom,ports-offset2 225 226additionalProperties: false 227 228examples: 229 - | 230 #include <dt-bindings/interrupt-controller/arm-gic.h> 231 #include <dt-bindings/interrupt-controller/irq.h> 232 #include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h> 233 234 soundwire@3210000 { 235 compatible = "qcom,soundwire-v1.6.0"; 236 reg = <0x03210000 0x2000>; 237 238 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>, 239 <&pdc 130 IRQ_TYPE_LEVEL_HIGH>; 240 241 interrupt-names = "core", "wakeup"; 242 243 clocks = <&lpass_rx_macro>; 244 clock-names = "iface"; 245 246 qcom,din-ports = <0>; 247 qcom,dout-ports = <5>; 248 249 resets = <&lpass_audiocc LPASS_AUDIO_SWR_RX_CGCR>; 250 reset-names = "swr_audio_cgcr"; 251 252 qcom,ports-word-length = /bits/ 8 <0x01 0x07 0x04 0xff 0xff>; 253 qcom,ports-sinterval-low = /bits/ 8 <0x03 0x3f 0x1f 0x03 0x03>; 254 qcom,ports-offset1 = /bits/ 8 <0x00 0x00 0x0b 0x01 0x01>; 255 qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x0b 0x00 0x00>; 256 qcom,ports-lane-control = /bits/ 8 <0x01 0x00 0x00 0x00 0x00>; 257 qcom,ports-block-pack-mode = /bits/ 8 <0xff 0x00 0x01 0xff 0xff>; 258 qcom,ports-hstart = /bits/ 8 <0xff 0x03 0xff 0xff 0xff>; 259 qcom,ports-hstop = /bits/ 8 <0xff 0x06 0xff 0xff 0xff>; 260 qcom,ports-block-group-count = /bits/ 8 <0xff 0xff 0xff 0xff 0x00>; 261 262 #sound-dai-cells = <1>; 263 #address-cells = <2>; 264 #size-cells = <0>; 265 266 codec@0,4 { 267 compatible = "sdw20217010d00"; 268 reg = <0 4>; 269 qcom,rx-port-mapping = <1 2 3 4 5>; 270 }; 271 }; 272