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 137*e62fc182SRob Herring additionalProperties: true 138a6b74871SSrinivas Kandagatla description: | 139a6b74871SSrinivas Kandagatla WCD934x subnode for each slave devices. Bindings of each subnodes 140a6b74871SSrinivas Kandagatla depends on the specific driver providing the functionality and 141a6b74871SSrinivas Kandagatla documented in their respective bindings. 142a6b74871SSrinivas Kandagatla 143a6b74871SSrinivas Kandagatla properties: 144a6b74871SSrinivas Kandagatla reg: 145a6b74871SSrinivas Kandagatla maxItems: 1 146a6b74871SSrinivas Kandagatla 147a6b74871SSrinivas Kandagatla required: 148a6b74871SSrinivas Kandagatla - reg 149a6b74871SSrinivas Kandagatla 150a6b74871SSrinivas Kandagatlarequired: 151a6b74871SSrinivas Kandagatla - compatible 152a6b74871SSrinivas Kandagatla - reg 1537ee35b6bSKrzysztof Kozlowski 1547ee35b6bSKrzysztof KozlowskiallOf: 1550106ba24SKrzysztof Kozlowski - $ref: dai-common.yaml# 1567ee35b6bSKrzysztof Kozlowski - if: 1577ee35b6bSKrzysztof Kozlowski required: 1587ee35b6bSKrzysztof Kozlowski - slim-ifc-dev 1597ee35b6bSKrzysztof Kozlowski then: 1607ee35b6bSKrzysztof Kozlowski required: 161a6b74871SSrinivas Kandagatla - reset-gpios 162a6b74871SSrinivas Kandagatla - slim-ifc-dev 163a6b74871SSrinivas Kandagatla - interrupt-controller 164a6b74871SSrinivas Kandagatla - clock-frequency 165a6b74871SSrinivas Kandagatla - clock-output-names 166a6b74871SSrinivas Kandagatla - qcom,micbias1-microvolt 167a6b74871SSrinivas Kandagatla - qcom,micbias2-microvolt 168a6b74871SSrinivas Kandagatla - qcom,micbias3-microvolt 169a6b74871SSrinivas Kandagatla - qcom,micbias4-microvolt 170a6b74871SSrinivas Kandagatla - "#interrupt-cells" 171a6b74871SSrinivas Kandagatla - "#clock-cells" 172a6b74871SSrinivas Kandagatla - "#sound-dai-cells" 173a6b74871SSrinivas Kandagatla - "#address-cells" 174a6b74871SSrinivas Kandagatla - "#size-cells" 1757ee35b6bSKrzysztof Kozlowski oneOf: 1767ee35b6bSKrzysztof Kozlowski - required: 1777ee35b6bSKrzysztof Kozlowski - interrupts-extended 1787ee35b6bSKrzysztof Kozlowski - required: 1797ee35b6bSKrzysztof Kozlowski - interrupts 1807ee35b6bSKrzysztof Kozlowski else: 1817ee35b6bSKrzysztof Kozlowski properties: 1827ee35b6bSKrzysztof Kozlowski reset-gpios: false 1837ee35b6bSKrzysztof Kozlowski slim-ifc-dev: false 1847ee35b6bSKrzysztof Kozlowski interrupts: false 1857ee35b6bSKrzysztof Kozlowski interrupt-controller: false 1867ee35b6bSKrzysztof Kozlowski clock-frequency: false 1877ee35b6bSKrzysztof Kozlowski clock-output-names: false 1887ee35b6bSKrzysztof Kozlowski qcom,micbias1-microvolt: false 1897ee35b6bSKrzysztof Kozlowski qcom,micbias2-microvolt: false 1907ee35b6bSKrzysztof Kozlowski qcom,micbias3-microvolt: false 1917ee35b6bSKrzysztof Kozlowski qcom,micbias4-microvolt: false 1927ee35b6bSKrzysztof Kozlowski "#interrupt-cells": false 1937ee35b6bSKrzysztof Kozlowski "#clock-cells": false 1947ee35b6bSKrzysztof Kozlowski "#sound-dai-cells": false 1957ee35b6bSKrzysztof Kozlowski "#address-cells": false 1967ee35b6bSKrzysztof Kozlowski "#size-cells": false 197a6b74871SSrinivas Kandagatla 1987f464532SRob HerringadditionalProperties: false 1997f464532SRob Herring 200a6b74871SSrinivas Kandagatlaexamples: 201a6b74871SSrinivas Kandagatla - | 202a6b74871SSrinivas Kandagatla codec@1,0{ 203a6b74871SSrinivas Kandagatla compatible = "slim217,250"; 204a6b74871SSrinivas Kandagatla reg = <1 0>; 205a6b74871SSrinivas Kandagatla reset-gpios = <&tlmm 64 0>; 206a6b74871SSrinivas Kandagatla slim-ifc-dev = <&wcd9340_ifd>; 207a6b74871SSrinivas Kandagatla #sound-dai-cells = <1>; 208a6b74871SSrinivas Kandagatla interrupt-parent = <&tlmm>; 209a6b74871SSrinivas Kandagatla interrupts = <54 4>; 210a6b74871SSrinivas Kandagatla interrupt-controller; 211a6b74871SSrinivas Kandagatla #interrupt-cells = <1>; 212a6b74871SSrinivas Kandagatla #clock-cells = <0>; 213a6b74871SSrinivas Kandagatla clock-frequency = <9600000>; 214a6b74871SSrinivas Kandagatla clock-output-names = "mclk"; 215a6b74871SSrinivas Kandagatla qcom,micbias1-microvolt = <1800000>; 216a6b74871SSrinivas Kandagatla qcom,micbias2-microvolt = <1800000>; 217a6b74871SSrinivas Kandagatla qcom,micbias3-microvolt = <1800000>; 218a6b74871SSrinivas Kandagatla qcom,micbias4-microvolt = <1800000>; 219c6d25d57SSrinivas Kandagatla qcom,hphl-jack-type-normally-closed; 220c6d25d57SSrinivas Kandagatla qcom,ground-jack-type-normally-closed; 221c6d25d57SSrinivas Kandagatla qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>; 222c6d25d57SSrinivas Kandagatla qcom,mbhc-headset-vthreshold-microvolt = <1700000>; 223c6d25d57SSrinivas Kandagatla qcom,mbhc-headphone-vthreshold-microvolt = <50000>; 224a6b74871SSrinivas Kandagatla clock-names = "extclk"; 225a6b74871SSrinivas Kandagatla clocks = <&rpmhcc 2>; 226a6b74871SSrinivas Kandagatla 227a6b74871SSrinivas Kandagatla #address-cells = <1>; 228a6b74871SSrinivas Kandagatla #size-cells = <1>; 229a6b74871SSrinivas Kandagatla 230a6b74871SSrinivas Kandagatla gpio@42 { 231a6b74871SSrinivas Kandagatla compatible = "qcom,wcd9340-gpio"; 232a6b74871SSrinivas Kandagatla reg = <0x42 0x2>; 233a6b74871SSrinivas Kandagatla gpio-controller; 234a6b74871SSrinivas Kandagatla #gpio-cells = <2>; 235a6b74871SSrinivas Kandagatla }; 236a6b74871SSrinivas Kandagatla }; 237a6b74871SSrinivas Kandagatla 238a6b74871SSrinivas Kandagatla... 239