469c6d9cd1
The audio codec typically used for the MSM8916 SoC is split into two parts: the digital codec is part of the SoC, while the analog codec is part of the PM8916 PMIC. The analog codec in the PMIC has no direct connection to the mclk of the SoC (GCC_CODEC_DIGCODEC_CLK). As the name of the clock suggests this is supplied to the digital part of the codec. During playback it will use this clock to transmit the audio data via the "CDC PDM" pins to the PMIC. In this case the analog codec indirectly receives the clock signal through the digital codec. GCC_CODEC_DIGCODEC_CLK is already managed by the driver of the digital part of the codec in the SoC. Having this clock on the analog PMIC part additionally is redundant and incorrect because the analog codec cannot receive the clock signal without going through the digital codec. Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Signed-off-by: Stephan Gerhold <stephan@gerhold.net> Reviewed-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20230718-pm8916-mclk-v1-3-4b4a58b4240a@gerhold.net Signed-off-by: Mark Brown <broonie@kernel.org>
154 lines
4.3 KiB
YAML
154 lines
4.3 KiB
YAML
# 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>;
|
|
};
|
|
};
|