linux/Documentation/devicetree/bindings/sound/qcom,pm8916-wcd-analog-codec.yaml
Stephan Gerhold 944b5c7146
ASoC: dt-bindings: pm8916-analog-codec: Fix misleading example
SPMI devices typically have a single address cell and no size cell,
i.e. reg = <0xf000> for the audio codec instead of reg = <0xf000 0x200>.

The example is a bit misleading because it uses the latter. Copying
this into the device tree would be incorrect and was fixed before for
pm8916.dtsi in commit c2f0cbb57dba ("arm64: dts: qcom: pm8916: Remove
invalid reg size from wcd_codec").

Make the example more clear by adding the outer "pmic" node which
specifies the same #address/size-cells that would be used in the
real deivce tree.

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-1-4b4a58b4240a@gerhold.net
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-07-20 13:50:50 +01:00

169 lines
4.6 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
reg-names:
items:
- const: pmic-codec-core
clocks:
maxItems: 1
clock-names:
items:
- const: mclk
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/clock/qcom,gcc-msm8916.h>
#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>;
reg-names = "pmic-codec-core";
clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
clock-names = "mclk";
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>;
};
};