# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/sound/qcom,pm8916-wcd-analog-codec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm PM8916 WCD Analog Audio Codec

maintainers:
  - Konrad Dybcio <konradybcio@kernel.org>

description:
  The analog WCD audio codec found on Qualcomm PM8916 PMIC.

properties:
  compatible:
    const: qcom,pm8916-wcd-analog-codec

  reg:
    maxItems: 1

  interrupts:
    maxItems: 14

  interrupt-names:
    items:
      - const: cdc_spk_cnp_int
      - const: cdc_spk_clip_int
      - const: cdc_spk_ocp_int
      - const: mbhc_ins_rem_det1
      - const: mbhc_but_rel_det
      - const: mbhc_but_press_det
      - const: mbhc_ins_rem_det
      - const: mbhc_switch_int
      - const: cdc_ear_ocp_int
      - const: cdc_hphr_ocp_int
      - const: cdc_hphl_ocp_det
      - const: cdc_ear_cnp_int
      - const: cdc_hphr_cnp_int
      - const: cdc_hphl_cnp_int

  vdd-cdc-io-supply:
    description: 1.8V buck supply

  vdd-cdc-tx-rx-cx-supply:
    description: 1.8V SIDO buck supply

  vdd-micbias-supply:
    description: micbias supply

  qcom,mbhc-vthreshold-low:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description:
      Array of 5 threshold voltages in mV for 5-button detection on
      headset when MBHC is powered by an internal current source.
    minItems: 5
    maxItems: 5

  qcom,mbhc-vthreshold-high:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description:
      Array of 5 threshold voltages in mV for 5-button detection on
      headset when MBHC is powered from micbias.
    minItems: 5
    maxItems: 5

  qcom,micbias-lvl:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Voltage (mV) for Mic Bias

  qcom,hphl-jack-type-normally-open:
    type: boolean
    description:
      True if the HPHL pin on the jack is NO (Normally Open), false if it's
      NC (Normally Closed).

  qcom,gnd-jack-type-normally-open:
    type: boolean
    description:
      True if the GND pin on the jack is NO (Normally Open), false if it's
      NC (Normally Closed).

  qcom,micbias1-ext-cap:
    type: boolean
    description:
      True if micbias1 has an external capacitor.

  qcom,micbias2-ext-cap:
    type: boolean
    description:
      True if micbias2 has an external capacitor.

  "#sound-dai-cells":
    const: 1

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/spmi/spmi.h>

    pmic@1 {
      compatible = "qcom,pm8916", "qcom,spmi-pmic";
      reg = <0x1 SPMI_USID>;
      #address-cells = <1>;
      #size-cells = <0>;

      audio-codec@f000 {
        compatible = "qcom,pm8916-wcd-analog-codec";
        reg = <0xf000>;
        qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
        qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
        interrupt-parent = <&spmi_bus>;
        interrupts = <0x1 0xf0 0x0 IRQ_TYPE_NONE>,
              <0x1 0xf0 0x1 IRQ_TYPE_NONE>,
              <0x1 0xf0 0x2 IRQ_TYPE_NONE>,
              <0x1 0xf0 0x3 IRQ_TYPE_NONE>,
              <0x1 0xf0 0x4 IRQ_TYPE_NONE>,
              <0x1 0xf0 0x5 IRQ_TYPE_NONE>,
              <0x1 0xf0 0x6 IRQ_TYPE_NONE>,
              <0x1 0xf0 0x7 IRQ_TYPE_NONE>,
              <0x1 0xf1 0x0 IRQ_TYPE_NONE>,
              <0x1 0xf1 0x1 IRQ_TYPE_NONE>,
              <0x1 0xf1 0x2 IRQ_TYPE_NONE>,
              <0x1 0xf1 0x3 IRQ_TYPE_NONE>,
              <0x1 0xf1 0x4 IRQ_TYPE_NONE>,
              <0x1 0xf1 0x5 IRQ_TYPE_NONE>;
        interrupt-names = "cdc_spk_cnp_int",
                          "cdc_spk_clip_int",
                          "cdc_spk_ocp_int",
                          "mbhc_ins_rem_det1",
                          "mbhc_but_rel_det",
                          "mbhc_but_press_det",
                          "mbhc_ins_rem_det",
                          "mbhc_switch_int",
                          "cdc_ear_ocp_int",
                          "cdc_hphr_ocp_int",
                          "cdc_hphl_ocp_det",
                          "cdc_ear_cnp_int",
                          "cdc_hphr_cnp_int",
                          "cdc_hphl_cnp_int";
        vdd-cdc-io-supply = <&pm8916_l5>;
        vdd-cdc-tx-rx-cx-supply = <&pm8916_l5>;
        vdd-micbias-supply = <&pm8916_l13>;
        #sound-dai-cells = <1>;
      };
    };
