On Fri 07 Feb 12:50 PST 2020, Adam Serbinski wrote:
Please make subject
"arm64: dts: qcom: db820c: Enable primary PCM and quaternary I2S"
Regards, Bjorn
This patch adds support to primary pcm and quaternary i2s ports.
Signed-off-by: Adam Serbinski adam@serbinski.com CC: Andy Gross agross@kernel.org CC: Mark Rutland mark.rutland@arm.com CC: Liam Girdwood lgirdwood@gmail.com CC: Patrick Lai plai@codeaurora.org CC: Banajit Goswami bgoswami@codeaurora.org CC: Jaroslav Kysela perex@perex.cz CC: Takashi Iwai tiwai@suse.com CC: alsa-devel@alsa-project.org CC: linux-arm-msm@vger.kernel.org CC: devicetree@vger.kernel.org CC: linux-kernel@vger.kernel.org
arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | 113 +++++++++++++ arch/arm64/boot/dts/qcom/msm8996-pins.dtsi | 162 +++++++++++++++++++ 2 files changed, 275 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi index dba3488492f1..4149ac4147a0 100644 --- a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi +++ b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi @@ -683,8 +683,31 @@ }; };
+/* PRI I2S on QCA6174 and QUAT I2S on LS each uses 2 I2S SD Lines for audio */ +&q6afedai {
- pi2s@16 {
reg = <16>;
qcom,sd-lines = <1>;
- };
- pi2s@17 {
reg = <17>;
qcom,sd-lines = <0>;
- };
- qi2s@22 {
reg = <22>;
qcom,sd-lines = <0>;
- };
- qi2s@23 {
reg = <23>;
qcom,sd-lines = <1>;
- };
+};
&sound { compatible = "qcom,apq8096-sndcard";
- pinctrl-0 = <&quat_mi2s_active &quat_mi2s_sd0_active &quat_mi2s_sd1_active &pri_mi2s_active &pri_mi2s_sd0_active &pri_mi2s_sd1_active>;
- pinctrl-names = "default";
- model = "DB820c"; audio-routing = "RX_BIAS", "MCLK";
@@ -709,6 +732,41 @@ }; };
- mm4-dai-link {
link-name = "MultiMedia4";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA4>;
};
- };
- mm5-dai-link {
link-name = "MultiMedia5";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA5>;
};
- };
- mm6-dai-link {
link-name = "MultiMedia6";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA6>;
};
- };
- mm7-dai-link {
link-name = "MultiMedia7";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA7>;
};
- };
- mm8-dai-link {
link-name = "MultiMedia8";
cpu {
sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA8>;
};
- };
- hdmi-dai-link { link-name = "HDMI"; cpu {
@@ -753,4 +811,59 @@ sound-dai = <&wcd9335 1>; }; };
- scoplay-dai-link {
link-name = "SCO-PCM-Playback";
cpu {
sound-dai = <&q6afedai PRIMARY_PCM_RX>;
};
platform {
sound-dai = <&q6routing>;
};
- };
- scocap-dai-link {
link-name = "SCO-PCM-Capture";
cpu {
sound-dai = <&q6afedai PRIMARY_PCM_TX>;
};
platform {
sound-dai = <&q6routing>;
};
- };
- mi2splay-dai-link {
link-name = "QUAT-MI2S-Playback";
cpu {
sound-dai = <&q6afedai QUATERNARY_MI2S_RX>;
};
platform {
sound-dai = <&q6routing>;
};
+// EXAMPLE: For adding real codecs +// codec { +// sound-dai = <&pcm5142_4c>, <&pcm5142_4d>; +// };
- };
- mi2scap-dai-link {
link-name = "QUAT-MI2S-Capture";
cpu {
sound-dai = <&q6afedai QUATERNARY_MI2S_TX>;
};
platform {
sound-dai = <&q6routing>;
};
+// EXAMPLE: For adding real codecs +// codec { +// sound-dai = <&pcm1865>; +// };
- };
}; diff --git a/arch/arm64/boot/dts/qcom/msm8996-pins.dtsi b/arch/arm64/boot/dts/qcom/msm8996-pins.dtsi index ac1ede579361..e8221c4d05f7 100644 --- a/arch/arm64/boot/dts/qcom/msm8996-pins.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8996-pins.dtsi @@ -288,6 +288,168 @@ }; };
- pri_mi2s_active: pri_mi2s_active {
mux {
pins = "gpio65", "gpio66";
function = "pri_mi2s";
};
config {
pins = "gpio65", "gpio66";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL */
output-high;
};
- };
- pri_mi2s_sleep: pri_mi2s_sleep {
mux {
pins = "gpio65", "gpio66";
function = "gpio";
};
config {
pins = "gpio65", "gpio66";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
input-enable;
};
- };
- pri_mi2s_sd0_sleep: pri_mi2s_sd0_sleep {
mux {
pins = "gpio67";
function = "gpio";
};
config {
pins = "gpio67";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
input-enable;
};
- };
- pri_mi2s_sd0_active: pri_mi2s_sd0_active {
mux {
pins = "gpio67";
function = "pri_mi2s";
};
config {
pins = "gpio67";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL */
};
- };
- pri_mi2s_sd1_sleep: pri_mi2s_sd1_sleep {
mux {
pins = "gpio68";
function = "gpio";
};
config {
pins = "gpio68";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
input-enable;
};
- };
- pri_mi2s_sd1_active: pri_mi2s_sd1_active {
mux {
pins = "gpio68";
function = "pri_mi2s";
};
config {
pins = "gpio68";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL */
};
- };
- quat_mi2s_active: quat_mi2s_active {
mux {
pins = "gpio58", "gpio59";
function = "qua_mi2s";
};
config {
pins = "gpio58", "gpio59";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL */
output-high;
};
- };
- quat_mi2s_sleep: quat_mi2s_sleep {
mux {
pins = "gpio58", "gpio59";
function = "gpio";
};
config {
pins = "gpio58", "gpio59";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
input-enable;
};
- };
- quat_mi2s_sd0_sleep: quat_mi2s_sd0_sleep {
mux {
pins = "gpio60";
function = "gpio";
};
config {
pins = "gpio60";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
input-enable;
};
- };
- quat_mi2s_sd0_active: quat_mi2s_sd0_active {
mux {
pins = "gpio60";
function = "qua_mi2s";
};
config {
pins = "gpio60";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL */
};
- };
- quat_mi2s_sd1_sleep: quat_mi2s_sd1_sleep {
mux {
pins = "gpio61";
function = "gpio";
};
config {
pins = "gpio61";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
input-enable;
};
- };
- quat_mi2s_sd1_active: quat_mi2s_sd1_active {
mux {
pins = "gpio61";
function = "qua_mi2s";
};
config {
pins = "gpio61";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL */
};
- };
- sdc2_clk_on: sdc2_clk_on { config { pins = "sdc2_clk";
-- 2.21.1