1a6b74871SSrinivas Kandagatla# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2a6b74871SSrinivas Kandagatla%YAML 1.2 3a6b74871SSrinivas Kandagatla--- 4a6b74871SSrinivas Kandagatla$id: http://devicetree.org/schemas/sound/qcom,wcd934x.yaml# 5a6b74871SSrinivas Kandagatla$schema: http://devicetree.org/meta-schemas/core.yaml# 6a6b74871SSrinivas Kandagatla 79d69d47fSKrzysztof Kozlowskititle: Qualcomm WCD9340/WCD9341 Audio Codec 8a6b74871SSrinivas Kandagatla 9a6b74871SSrinivas Kandagatlamaintainers: 10a6b74871SSrinivas Kandagatla - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> 11a6b74871SSrinivas Kandagatla 12a6b74871SSrinivas Kandagatladescription: | 13a6b74871SSrinivas Kandagatla Qualcomm WCD9340/WCD9341 Codec is a standalone Hi-Fi audio codec IC. 14a6b74871SSrinivas Kandagatla It has in-built Soundwire controller, pin controller, interrupt mux and 15a6b74871SSrinivas Kandagatla supports both I2S/I2C and SLIMbus audio interfaces. 16a6b74871SSrinivas Kandagatla 17a6b74871SSrinivas Kandagatlaproperties: 18a6b74871SSrinivas Kandagatla compatible: 19a6b74871SSrinivas Kandagatla const: slim217,250 20a6b74871SSrinivas Kandagatla 21a6b74871SSrinivas Kandagatla reg: 22a6b74871SSrinivas Kandagatla maxItems: 1 23a6b74871SSrinivas Kandagatla 24a6b74871SSrinivas Kandagatla interrupts: 25a6b74871SSrinivas Kandagatla maxItems: 1 26a6b74871SSrinivas Kandagatla 27a6b74871SSrinivas Kandagatla reset-gpios: 28a6b74871SSrinivas Kandagatla description: GPIO spec for reset line to use 29a6b74871SSrinivas Kandagatla maxItems: 1 30a6b74871SSrinivas Kandagatla 31636caca3SKrzysztof Kozlowski slim-ifc-dev: 32636caca3SKrzysztof Kozlowski description: IFC device interface 33636caca3SKrzysztof Kozlowski $ref: /schemas/types.yaml#/definitions/phandle 34a6b74871SSrinivas Kandagatla 35a6b74871SSrinivas Kandagatla clocks: 36a6b74871SSrinivas Kandagatla maxItems: 1 37a6b74871SSrinivas Kandagatla 38a6b74871SSrinivas Kandagatla clock-names: 39a6b74871SSrinivas Kandagatla const: extclk 40a6b74871SSrinivas Kandagatla 41a6b74871SSrinivas Kandagatla vdd-buck-supply: 42a6b74871SSrinivas Kandagatla description: A reference to the 1.8V buck supply 43a6b74871SSrinivas Kandagatla 44a6b74871SSrinivas Kandagatla vdd-buck-sido-supply: 45a6b74871SSrinivas Kandagatla description: A reference to the 1.8V SIDO buck supply 46a6b74871SSrinivas Kandagatla 47a6b74871SSrinivas Kandagatla vdd-rx-supply: 48a6b74871SSrinivas Kandagatla description: A reference to the 1.8V rx supply 49a6b74871SSrinivas Kandagatla 50a6b74871SSrinivas Kandagatla vdd-tx-supply: 51a6b74871SSrinivas Kandagatla description: A reference to the 1.8V tx supply 52a6b74871SSrinivas Kandagatla 53a6b74871SSrinivas Kandagatla vdd-vbat-supply: 54a6b74871SSrinivas Kandagatla description: A reference to the vbat supply 55a6b74871SSrinivas Kandagatla 56a6b74871SSrinivas Kandagatla vdd-io-supply: 57a6b74871SSrinivas Kandagatla description: A reference to the 1.8V I/O supply 58a6b74871SSrinivas Kandagatla 59a6b74871SSrinivas Kandagatla vdd-micbias-supply: 60a6b74871SSrinivas Kandagatla description: A reference to the micbias supply 61a6b74871SSrinivas Kandagatla 62a6b74871SSrinivas Kandagatla qcom,micbias1-microvolt: 63a6b74871SSrinivas Kandagatla description: micbias1 voltage 64a6b74871SSrinivas Kandagatla minimum: 1800000 65a6b74871SSrinivas Kandagatla maximum: 2850000 66a6b74871SSrinivas Kandagatla 67a6b74871SSrinivas Kandagatla qcom,micbias2-microvolt: 68a6b74871SSrinivas Kandagatla description: micbias2 voltage 69a6b74871SSrinivas Kandagatla minimum: 1800000 70a6b74871SSrinivas Kandagatla maximum: 2850000 71a6b74871SSrinivas Kandagatla 72a6b74871SSrinivas Kandagatla qcom,micbias3-microvolt: 73a6b74871SSrinivas Kandagatla description: micbias3 voltage 74a6b74871SSrinivas Kandagatla minimum: 1800000 75a6b74871SSrinivas Kandagatla maximum: 2850000 76a6b74871SSrinivas Kandagatla 77a6b74871SSrinivas Kandagatla qcom,micbias4-microvolt: 78a6b74871SSrinivas Kandagatla description: micbias4 voltage 79a6b74871SSrinivas Kandagatla minimum: 1800000 80a6b74871SSrinivas Kandagatla maximum: 2850000 81a6b74871SSrinivas Kandagatla 82c6d25d57SSrinivas Kandagatla qcom,hphl-jack-type-normally-closed: 83c6d25d57SSrinivas Kandagatla description: Indicates that HPHL jack switch type is normally closed 84c6d25d57SSrinivas Kandagatla type: boolean 85c6d25d57SSrinivas Kandagatla 86c6d25d57SSrinivas Kandagatla qcom,ground-jack-type-normally-closed: 87c6d25d57SSrinivas Kandagatla description: Indicates that Headset Ground switch type is normally closed 88c6d25d57SSrinivas Kandagatla type: boolean 89c6d25d57SSrinivas Kandagatla 90c6d25d57SSrinivas Kandagatla qcom,mbhc-headset-vthreshold-microvolt: 91c6d25d57SSrinivas Kandagatla description: Voltage threshold value for headset detection 92c6d25d57SSrinivas Kandagatla minimum: 0 93c6d25d57SSrinivas Kandagatla maximum: 2850000 94c6d25d57SSrinivas Kandagatla 95c6d25d57SSrinivas Kandagatla qcom,mbhc-headphone-vthreshold-microvolt: 96c6d25d57SSrinivas Kandagatla description: Voltage threshold value for headphone detection 97c6d25d57SSrinivas Kandagatla minimum: 0 98c6d25d57SSrinivas Kandagatla maximum: 2850000 99c6d25d57SSrinivas Kandagatla 100c6d25d57SSrinivas Kandagatla qcom,mbhc-buttons-vthreshold-microvolt: 101c6d25d57SSrinivas Kandagatla description: 102c6d25d57SSrinivas Kandagatla Array of 8 Voltage threshold values corresponding to headset 103c6d25d57SSrinivas Kandagatla button0 - button7 104c6d25d57SSrinivas Kandagatla minItems: 8 105c6d25d57SSrinivas Kandagatla maxItems: 8 106c6d25d57SSrinivas Kandagatla 107a6b74871SSrinivas Kandagatla clock-output-names: 108a6b74871SSrinivas Kandagatla const: mclk 109a6b74871SSrinivas Kandagatla 110a6b74871SSrinivas Kandagatla clock-frequency: 111a6b74871SSrinivas Kandagatla description: Clock frequency of output clk in Hz 112a6b74871SSrinivas Kandagatla 113a6b74871SSrinivas Kandagatla interrupt-controller: true 114a6b74871SSrinivas Kandagatla 115a6b74871SSrinivas Kandagatla '#interrupt-cells': 116a6b74871SSrinivas Kandagatla const: 1 117a6b74871SSrinivas Kandagatla 118a6b74871SSrinivas Kandagatla '#clock-cells': 119a6b74871SSrinivas Kandagatla const: 0 120a6b74871SSrinivas Kandagatla 121a6b74871SSrinivas Kandagatla '#sound-dai-cells': 122a6b74871SSrinivas Kandagatla const: 1 123a6b74871SSrinivas Kandagatla 124a6b74871SSrinivas Kandagatla "#address-cells": 125a6b74871SSrinivas Kandagatla const: 1 126a6b74871SSrinivas Kandagatla 127a6b74871SSrinivas Kandagatla "#size-cells": 128a6b74871SSrinivas Kandagatla const: 1 129a6b74871SSrinivas Kandagatla 130a6b74871SSrinivas Kandagatla gpio@42: 131a6b74871SSrinivas Kandagatla type: object 132ffe71829SKrzysztof Kozlowski $ref: /schemas/gpio/qcom,wcd934x-gpio.yaml# 133a6b74871SSrinivas Kandagatla 134a6b74871SSrinivas KandagatlapatternProperties: 135a6b74871SSrinivas Kandagatla "^.*@[0-9a-f]+$": 136a6b74871SSrinivas Kandagatla type: object 137a6b74871SSrinivas Kandagatla description: | 138a6b74871SSrinivas Kandagatla WCD934x subnode for each slave devices. Bindings of each subnodes 139a6b74871SSrinivas Kandagatla depends on the specific driver providing the functionality and 140a6b74871SSrinivas Kandagatla documented in their respective bindings. 141a6b74871SSrinivas Kandagatla 142a6b74871SSrinivas Kandagatla properties: 143a6b74871SSrinivas Kandagatla reg: 144a6b74871SSrinivas Kandagatla maxItems: 1 145a6b74871SSrinivas Kandagatla 146a6b74871SSrinivas Kandagatla required: 147a6b74871SSrinivas Kandagatla - reg 148a6b74871SSrinivas Kandagatla 149a6b74871SSrinivas Kandagatlarequired: 150a6b74871SSrinivas Kandagatla - compatible 151a6b74871SSrinivas Kandagatla - reg 152*7ee35b6bSKrzysztof Kozlowski 153*7ee35b6bSKrzysztof KozlowskiallOf: 154*7ee35b6bSKrzysztof Kozlowski - if: 155*7ee35b6bSKrzysztof Kozlowski required: 156*7ee35b6bSKrzysztof Kozlowski - slim-ifc-dev 157*7ee35b6bSKrzysztof Kozlowski then: 158*7ee35b6bSKrzysztof Kozlowski required: 159a6b74871SSrinivas Kandagatla - reset-gpios 160a6b74871SSrinivas Kandagatla - slim-ifc-dev 161a6b74871SSrinivas Kandagatla - interrupt-controller 162a6b74871SSrinivas Kandagatla - clock-frequency 163a6b74871SSrinivas Kandagatla - clock-output-names 164a6b74871SSrinivas Kandagatla - qcom,micbias1-microvolt 165a6b74871SSrinivas Kandagatla - qcom,micbias2-microvolt 166a6b74871SSrinivas Kandagatla - qcom,micbias3-microvolt 167a6b74871SSrinivas Kandagatla - qcom,micbias4-microvolt 168a6b74871SSrinivas Kandagatla - "#interrupt-cells" 169a6b74871SSrinivas Kandagatla - "#clock-cells" 170a6b74871SSrinivas Kandagatla - "#sound-dai-cells" 171a6b74871SSrinivas Kandagatla - "#address-cells" 172a6b74871SSrinivas Kandagatla - "#size-cells" 173*7ee35b6bSKrzysztof Kozlowski oneOf: 174*7ee35b6bSKrzysztof Kozlowski - required: 175*7ee35b6bSKrzysztof Kozlowski - interrupts-extended 176*7ee35b6bSKrzysztof Kozlowski - required: 177*7ee35b6bSKrzysztof Kozlowski - interrupts 178*7ee35b6bSKrzysztof Kozlowski else: 179*7ee35b6bSKrzysztof Kozlowski properties: 180*7ee35b6bSKrzysztof Kozlowski reset-gpios: false 181*7ee35b6bSKrzysztof Kozlowski slim-ifc-dev: false 182*7ee35b6bSKrzysztof Kozlowski interrupts: false 183*7ee35b6bSKrzysztof Kozlowski interrupt-controller: false 184*7ee35b6bSKrzysztof Kozlowski clock-frequency: false 185*7ee35b6bSKrzysztof Kozlowski clock-output-names: false 186*7ee35b6bSKrzysztof Kozlowski qcom,micbias1-microvolt: false 187*7ee35b6bSKrzysztof Kozlowski qcom,micbias2-microvolt: false 188*7ee35b6bSKrzysztof Kozlowski qcom,micbias3-microvolt: false 189*7ee35b6bSKrzysztof Kozlowski qcom,micbias4-microvolt: false 190*7ee35b6bSKrzysztof Kozlowski "#interrupt-cells": false 191*7ee35b6bSKrzysztof Kozlowski "#clock-cells": false 192*7ee35b6bSKrzysztof Kozlowski "#sound-dai-cells": false 193*7ee35b6bSKrzysztof Kozlowski "#address-cells": false 194*7ee35b6bSKrzysztof Kozlowski "#size-cells": false 195a6b74871SSrinivas Kandagatla 1967f464532SRob HerringadditionalProperties: false 1977f464532SRob Herring 198a6b74871SSrinivas Kandagatlaexamples: 199a6b74871SSrinivas Kandagatla - | 200a6b74871SSrinivas Kandagatla codec@1,0{ 201a6b74871SSrinivas Kandagatla compatible = "slim217,250"; 202a6b74871SSrinivas Kandagatla reg = <1 0>; 203a6b74871SSrinivas Kandagatla reset-gpios = <&tlmm 64 0>; 204a6b74871SSrinivas Kandagatla slim-ifc-dev = <&wcd9340_ifd>; 205a6b74871SSrinivas Kandagatla #sound-dai-cells = <1>; 206a6b74871SSrinivas Kandagatla interrupt-parent = <&tlmm>; 207a6b74871SSrinivas Kandagatla interrupts = <54 4>; 208a6b74871SSrinivas Kandagatla interrupt-controller; 209a6b74871SSrinivas Kandagatla #interrupt-cells = <1>; 210a6b74871SSrinivas Kandagatla #clock-cells = <0>; 211a6b74871SSrinivas Kandagatla clock-frequency = <9600000>; 212a6b74871SSrinivas Kandagatla clock-output-names = "mclk"; 213a6b74871SSrinivas Kandagatla qcom,micbias1-microvolt = <1800000>; 214a6b74871SSrinivas Kandagatla qcom,micbias2-microvolt = <1800000>; 215a6b74871SSrinivas Kandagatla qcom,micbias3-microvolt = <1800000>; 216a6b74871SSrinivas Kandagatla qcom,micbias4-microvolt = <1800000>; 217c6d25d57SSrinivas Kandagatla qcom,hphl-jack-type-normally-closed; 218c6d25d57SSrinivas Kandagatla qcom,ground-jack-type-normally-closed; 219c6d25d57SSrinivas Kandagatla qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>; 220c6d25d57SSrinivas Kandagatla qcom,mbhc-headset-vthreshold-microvolt = <1700000>; 221c6d25d57SSrinivas Kandagatla qcom,mbhc-headphone-vthreshold-microvolt = <50000>; 222a6b74871SSrinivas Kandagatla clock-names = "extclk"; 223a6b74871SSrinivas Kandagatla clocks = <&rpmhcc 2>; 224a6b74871SSrinivas Kandagatla 225a6b74871SSrinivas Kandagatla #address-cells = <1>; 226a6b74871SSrinivas Kandagatla #size-cells = <1>; 227a6b74871SSrinivas Kandagatla 228a6b74871SSrinivas Kandagatla gpio@42 { 229a6b74871SSrinivas Kandagatla compatible = "qcom,wcd9340-gpio"; 230a6b74871SSrinivas Kandagatla reg = <0x42 0x2>; 231a6b74871SSrinivas Kandagatla gpio-controller; 232a6b74871SSrinivas Kandagatla #gpio-cells = <2>; 233a6b74871SSrinivas Kandagatla }; 234a6b74871SSrinivas Kandagatla }; 235a6b74871SSrinivas Kandagatla 236a6b74871SSrinivas Kandagatla... 237