1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/sound/qcom,sm8250.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Qualcomm Technologies Inc. ASoC sound card drivers 8 9maintainers: 10 - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> 11 12description: 13 This bindings describes Qualcomm SoC based sound cards 14 which uses LPASS internal codec for audio. 15 16properties: 17 compatible: 18 oneOf: 19 - items: 20 - enum: 21 - lenovo,yoga-c630-sndcard 22 - qcom,db845c-sndcard 23 - const: qcom,sdm845-sndcard 24 - items: 25 - enum: 26 - qcom,sm8550-sndcard 27 - qcom,sm8650-sndcard 28 - const: qcom,sm8450-sndcard 29 - enum: 30 - qcom,apq8016-sbc-sndcard 31 - qcom,msm8916-qdsp6-sndcard 32 - qcom,qrb5165-rb5-sndcard 33 - qcom,sc7180-qdsp6-sndcard 34 - qcom,sc8280xp-sndcard 35 - qcom,sdm845-sndcard 36 - qcom,sm8250-sndcard 37 - qcom,sm8450-sndcard 38 - qcom,x1e80100-sndcard 39 40 audio-routing: 41 $ref: /schemas/types.yaml#/definitions/non-unique-string-array 42 description: 43 A list of the connections between audio components. Each entry is a 44 pair of strings, the first being the connection's sink, the second 45 being the connection's source. Valid names could be power supplies, 46 MicBias of codec and the jacks on the board. 47 48 aux-devs: 49 $ref: /schemas/types.yaml#/definitions/phandle-array 50 description: | 51 List of phandles pointing to auxiliary devices, such 52 as amplifiers, to be added to the sound card. 53 54 model: 55 $ref: /schemas/types.yaml#/definitions/string 56 description: User visible long sound card name 57 58 pin-switches: 59 description: List of widget names for which pin switches should be created. 60 $ref: /schemas/types.yaml#/definitions/string-array 61 62 widgets: 63 description: User specified audio sound widgets. 64 $ref: /schemas/types.yaml#/definitions/non-unique-string-array 65 66 # Only valid for some compatibles (see allOf if below) 67 reg: true 68 reg-names: true 69 70patternProperties: 71 ".*-dai-link$": 72 description: 73 Each subnode represents a dai link. Subnodes of each dai links would be 74 cpu/codec dais. 75 76 type: object 77 78 properties: 79 link-name: 80 description: Indicates dai-link name and PCM stream name. 81 $ref: /schemas/types.yaml#/definitions/string 82 maxItems: 1 83 84 cpu: 85 description: Holds subnode which indicates cpu dai. 86 type: object 87 additionalProperties: false 88 89 properties: 90 sound-dai: 91 maxItems: 1 92 93 platform: 94 description: Holds subnode which indicates platform dai. 95 type: object 96 additionalProperties: false 97 98 properties: 99 sound-dai: 100 maxItems: 1 101 102 codec: 103 description: Holds subnode which indicates codec dai. 104 type: object 105 additionalProperties: false 106 107 properties: 108 sound-dai: 109 minItems: 1 110 maxItems: 4 111 112 required: 113 - link-name 114 - cpu 115 116 additionalProperties: false 117 118required: 119 - compatible 120 - model 121 122allOf: 123 - if: 124 properties: 125 compatible: 126 contains: 127 enum: 128 - qcom,apq8016-sbc-sndcard 129 - qcom,msm8916-qdsp6-sndcard 130 then: 131 properties: 132 reg: 133 items: 134 - description: Microphone I/O mux register address 135 - description: Speaker I/O mux register address 136 reg-names: 137 items: 138 - const: mic-iomux 139 - const: spkr-iomux 140 required: 141 - compatible 142 - model 143 - reg 144 - reg-names 145 else: 146 properties: 147 reg: false 148 reg-names: false 149 150additionalProperties: false 151 152examples: 153 154 - | 155 #include <dt-bindings/sound/qcom,q6afe.h> 156 #include <dt-bindings/sound/qcom,q6asm.h> 157 sound { 158 compatible = "qcom,qrb5165-rb5-sndcard"; 159 model = "Qualcomm-qrb5165-RB5-WSA8815-Speakers-DMIC0"; 160 audio-routing = "SpkrLeft IN", "WSA_SPK1 OUT", 161 "SpkrRight IN", "WSA_SPK2 OUT", 162 "VA DMIC0", "vdd-micb", 163 "VA DMIC1", "vdd-micb"; 164 165 mm1-dai-link { 166 link-name = "MultiMedia0"; 167 cpu { 168 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>; 169 }; 170 }; 171 172 mm2-dai-link { 173 link-name = "MultiMedia2"; 174 cpu { 175 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>; 176 }; 177 }; 178 179 mm3-dai-link { 180 link-name = "MultiMedia3"; 181 cpu { 182 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>; 183 }; 184 }; 185 186 hdmi-dai-link { 187 link-name = "HDMI Playback"; 188 cpu { 189 sound-dai = <&q6afedai TERTIARY_MI2S_RX>; 190 }; 191 192 platform { 193 sound-dai = <&q6routing>; 194 }; 195 196 codec { 197 sound-dai = <<9611_codec 0>; 198 }; 199 }; 200 201 wsa-dai-link { 202 link-name = "WSA Playback"; 203 cpu { 204 sound-dai = <&q6afedai WSA_CODEC_DMA_RX_0>; 205 }; 206 207 platform { 208 sound-dai = <&q6routing>; 209 }; 210 211 codec { 212 sound-dai = <&left_spkr>, <&right_spkr>, <&swr0 0>, <&wsamacro>; 213 }; 214 }; 215 216 va-dai-link { 217 link-name = "VA Capture"; 218 cpu { 219 sound-dai = <&q6afedai VA_CODEC_DMA_TX_0>; 220 }; 221 222 platform { 223 sound-dai = <&q6routing>; 224 }; 225 226 codec { 227 sound-dai = <&vamacro 0>; 228 }; 229 }; 230 }; 231 232 - | 233 #include <dt-bindings/sound/qcom,lpass.h> 234 sound@7702000 { 235 compatible = "qcom,apq8016-sbc-sndcard"; 236 reg = <0x07702000 0x4>, <0x07702004 0x4>; 237 reg-names = "mic-iomux", "spkr-iomux"; 238 239 model = "DB410c"; 240 audio-routing = 241 "AMIC2", "MIC BIAS Internal2", 242 "AMIC3", "MIC BIAS External1"; 243 244 pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>; 245 pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>; 246 pinctrl-names = "default", "sleep"; 247 248 quaternary-dai-link { 249 link-name = "ADV7533"; 250 cpu { 251 sound-dai = <&lpass MI2S_QUATERNARY>; 252 }; 253 codec { 254 sound-dai = <&adv_bridge 0>; 255 }; 256 }; 257 258 primary-dai-link { 259 link-name = "WCD"; 260 cpu { 261 sound-dai = <&lpass MI2S_PRIMARY>; 262 }; 263 codec { 264 sound-dai = <&lpass_codec 0>, <&wcd_codec 0>; 265 }; 266 }; 267 268 tertiary-dai-link { 269 link-name = "WCD-Capture"; 270 cpu { 271 sound-dai = <&lpass MI2S_TERTIARY>; 272 }; 273 codec { 274 sound-dai = <&lpass_codec 1>, <&wcd_codec 1>; 275 }; 276 }; 277 }; 278 279 - | 280 #include <dt-bindings/sound/qcom,q6afe.h> 281 #include <dt-bindings/sound/qcom,q6asm.h> 282 sound@7702000 { 283 compatible = "qcom,msm8916-qdsp6-sndcard"; 284 reg = <0x07702000 0x4>, <0x07702004 0x4>; 285 reg-names = "mic-iomux", "spkr-iomux"; 286 287 model = "msm8916"; 288 widgets = 289 "Speaker", "Speaker", 290 "Headphone", "Headphones"; 291 pin-switches = "Speaker"; 292 audio-routing = 293 "Speaker", "Speaker Amp OUT", 294 "Speaker Amp IN", "HPH_R", 295 "Headphones", "HPH_L", 296 "Headphones", "HPH_R", 297 "AMIC1", "MIC BIAS Internal1", 298 "AMIC2", "MIC BIAS Internal2", 299 "AMIC3", "MIC BIAS Internal3"; 300 aux-devs = <&speaker_amp>; 301 302 pinctrl-names = "default", "sleep"; 303 pinctrl-0 = <&cdc_pdm_lines_act>; 304 pinctrl-1 = <&cdc_pdm_lines_sus>; 305 306 mm1-dai-link { 307 link-name = "MultiMedia1"; 308 cpu { 309 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>; 310 }; 311 }; 312 313 primary-dai-link { 314 link-name = "Primary MI2S"; 315 cpu { 316 sound-dai = <&q6afedai PRIMARY_MI2S_RX>; 317 }; 318 platform { 319 sound-dai = <&q6routing>; 320 }; 321 codec { 322 sound-dai = <&lpass_codec 0>, <&wcd_codec 0>; 323 }; 324 }; 325 }; 326