Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5582fcb3 authored by Srinivas Kandagatla's avatar Srinivas Kandagatla Committed by Andy Gross
Browse files

arm64: dts: apq8016-sbc: add analog audio support with multicodec



This patch add support to Analog audio both Playback and Capture via
msm8916 WCD muti codec.

Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: default avatarAndy Gross <andy.gross@linaro.org>
parent 29ac9652
Loading
Loading
Loading
Loading
+61 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
#include "pm8916.dtsi"
#include "apq8016-sbc-soc-pins.dtsi"
#include "apq8016-sbc-pmic-pins.dtsi"
#include <dt-bindings/sound/apq8016-lpass.h>

/ {
	aliases {
@@ -251,6 +252,60 @@
				vddio-supply = <&pm8916_l6>;
			};
		};

		lpass_codec: codec{
			status = "okay";
		};

		/*
		Internal Codec
			playback - Primary MI2S
			capture - Ter MI2S

		External Primary:
			playback - secondary MI2S
			capture - Quat MI2S

		External Secondary:
			playback - Quat MI2S
			capture - Quat MI2S

		*/

                sound: sound {
                        compatible = "qcom,apq8016-sbc-sndcard";
                        reg = <0x07702000 0x4>, <0x07702004 0x4>;
                        reg-names = "mic-iomux", "spkr-iomux";

                        status = "okay";
                        pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
                        pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
                        pinctrl-names = "default", "sleep";
                        qcom,model = "DB410c";
                        qcom,audio-routing =
                                "AMIC2", "MIC BIAS Internal2",
                                "AMIC3", "MIC BIAS External1";

                        internal-codec-playback-dai-link@0 {            /* I2S - Internal codec */
                                link-name = "WCD";
                                cpu { /* PRIMARY */
                                        sound-dai = <&lpass MI2S_PRIMARY>;
                                };
                                codec {
                                        sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
                                };
                        };

                        internal-codec-capture-dai-link@0 {             /* I2S - Internal codec */
                                link-name = "WCD-Capture";
                                cpu { /* PRIMARY */
                                        sound-dai = <&lpass MI2S_TERTIARY>;
                                };
                                codec {
                                        sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
                                };
                        };
                };
	};

	usb2513 {
@@ -278,6 +333,12 @@
	};
};

&wcd_codec {
        status = "okay";
        clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
        clock-names = "mclk";
};

&smd_rpm_regulators {
	vdd_l1_l2_l3-supply = <&pm8916_s3>;
	vdd_l5-supply = <&pm8916_s3>;
+9 −0
Original line number Diff line number Diff line
@@ -504,6 +504,15 @@
			reg-names = "lpass-lpaif";
		};

                lpass_codec: codec{
			compatible = "qcom,msm8916-wcd-digital-codec";
			reg = <0x0771c000 0x400>;
			clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
				 <&gcc GCC_CODEC_DIGCODEC_CLK>;
			clock-names = "ahbix-clk", "mclk";
			#sound-dai-cells = <1>;
                };

		sdhc_1: sdhci@07824000 {
			compatible = "qcom,sdhci-msm-v4";
			reg = <0x07824900 0x11c>, <0x07824000 0x800>;
+44 −1
Original line number Diff line number Diff line
@@ -91,9 +91,52 @@
	};

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

                wcd_codec: codec@f000 {
                       compatible = "qcom,pm8916-wcd-analog-codec";
	               reg = <0xf000 0x200>;
	               reg-names = "pmic-codec-core";
	               clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
	               clock-names = "mclk";
	               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>;

                };

	};
};