Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / sound / qcom,pm8916-wcd-analog-codec.yaml
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,pm8916-wcd-analog-codec.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Qualcomm PM8916 WCD Analog Audio Codec
8
9 maintainers:
10   - Konrad Dybcio <konradybcio@kernel.org>
11
12 description:
13   The analog WCD audio codec found on Qualcomm PM8916 PMIC.
14
15 properties:
16   compatible:
17     const: qcom,pm8916-wcd-analog-codec
18
19   reg:
20     maxItems: 1
21
22   interrupts:
23     maxItems: 14
24
25   interrupt-names:
26     items:
27       - const: cdc_spk_cnp_int
28       - const: cdc_spk_clip_int
29       - const: cdc_spk_ocp_int
30       - const: mbhc_ins_rem_det1
31       - const: mbhc_but_rel_det
32       - const: mbhc_but_press_det
33       - const: mbhc_ins_rem_det
34       - const: mbhc_switch_int
35       - const: cdc_ear_ocp_int
36       - const: cdc_hphr_ocp_int
37       - const: cdc_hphl_ocp_det
38       - const: cdc_ear_cnp_int
39       - const: cdc_hphr_cnp_int
40       - const: cdc_hphl_cnp_int
41
42   vdd-cdc-io-supply:
43     description: 1.8V buck supply
44
45   vdd-cdc-tx-rx-cx-supply:
46     description: 1.8V SIDO buck supply
47
48   vdd-micbias-supply:
49     description: micbias supply
50
51   qcom,mbhc-vthreshold-low:
52     $ref: /schemas/types.yaml#/definitions/uint32-array
53     description:
54       Array of 5 threshold voltages in mV for 5-button detection on
55       headset when MBHC is powered by an internal current source.
56     minItems: 5
57     maxItems: 5
58
59   qcom,mbhc-vthreshold-high:
60     $ref: /schemas/types.yaml#/definitions/uint32-array
61     description:
62       Array of 5 threshold voltages in mV for 5-button detection on
63       headset when MBHC is powered from micbias.
64     minItems: 5
65     maxItems: 5
66
67   qcom,micbias-lvl:
68     $ref: /schemas/types.yaml#/definitions/uint32
69     description:
70       Voltage (mV) for Mic Bias
71
72   qcom,hphl-jack-type-normally-open:
73     type: boolean
74     description:
75       True if the HPHL pin on the jack is NO (Normally Open), false if it's
76       NC (Normally Closed).
77
78   qcom,gnd-jack-type-normally-open:
79     type: boolean
80     description:
81       True if the GND pin on the jack is NO (Normally Open), false if it's
82       NC (Normally Closed).
83
84   qcom,micbias1-ext-cap:
85     type: boolean
86     description:
87       True if micbias1 has an external capacitor.
88
89   qcom,micbias2-ext-cap:
90     type: boolean
91     description:
92       True if micbias2 has an external capacitor.
93
94   "#sound-dai-cells":
95     const: 1
96
97 required:
98   - compatible
99   - reg
100
101 additionalProperties: false
102
103 examples:
104   - |
105     #include <dt-bindings/interrupt-controller/irq.h>
106     #include <dt-bindings/spmi/spmi.h>
107
108     pmic@1 {
109       compatible = "qcom,pm8916", "qcom,spmi-pmic";
110       reg = <0x1 SPMI_USID>;
111       #address-cells = <1>;
112       #size-cells = <0>;
113
114       audio-codec@f000 {
115         compatible = "qcom,pm8916-wcd-analog-codec";
116         reg = <0xf000>;
117         qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
118         qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
119         interrupt-parent = <&spmi_bus>;
120         interrupts = <0x1 0xf0 0x0 IRQ_TYPE_NONE>,
121               <0x1 0xf0 0x1 IRQ_TYPE_NONE>,
122               <0x1 0xf0 0x2 IRQ_TYPE_NONE>,
123               <0x1 0xf0 0x3 IRQ_TYPE_NONE>,
124               <0x1 0xf0 0x4 IRQ_TYPE_NONE>,
125               <0x1 0xf0 0x5 IRQ_TYPE_NONE>,
126               <0x1 0xf0 0x6 IRQ_TYPE_NONE>,
127               <0x1 0xf0 0x7 IRQ_TYPE_NONE>,
128               <0x1 0xf1 0x0 IRQ_TYPE_NONE>,
129               <0x1 0xf1 0x1 IRQ_TYPE_NONE>,
130               <0x1 0xf1 0x2 IRQ_TYPE_NONE>,
131               <0x1 0xf1 0x3 IRQ_TYPE_NONE>,
132               <0x1 0xf1 0x4 IRQ_TYPE_NONE>,
133               <0x1 0xf1 0x5 IRQ_TYPE_NONE>;
134         interrupt-names = "cdc_spk_cnp_int",
135                           "cdc_spk_clip_int",
136                           "cdc_spk_ocp_int",
137                           "mbhc_ins_rem_det1",
138                           "mbhc_but_rel_det",
139                           "mbhc_but_press_det",
140                           "mbhc_ins_rem_det",
141                           "mbhc_switch_int",
142                           "cdc_ear_ocp_int",
143                           "cdc_hphr_ocp_int",
144                           "cdc_hphl_ocp_det",
145                           "cdc_ear_cnp_int",
146                           "cdc_hphr_cnp_int",
147                           "cdc_hphl_cnp_int";
148         vdd-cdc-io-supply = <&pm8916_l5>;
149         vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>;
150         vdd-micbias-supply = <&pm8916_l13>;
151         #sound-dai-cells = <1>;
152       };
153     };