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