summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Price <danielprice@google.com>2023-04-03 21:26:45 +0000
committerDaniel Price <danielprice@google.com>2023-04-03 21:26:45 +0000
commita7dce0547bb3af73441d37d4c3777e37cef6a0dc (patch)
tree6893b11858bd7bc7c9e43f32fc77294c432e5e02
parent4850379ca3e3f0c088d76f99211140f85b677c03 (diff)
parentc81bb6a9b02bc8565367a6e180ce9f418ffd2ffe (diff)
downloadaudio-devicetree-a7dce0547bb3af73441d37d4c3777e37cef6a0dc.tar.gz
sw5100: Integrate LW 2.0 r00062.1a
Bug: 276757489 Change-Id: If5688cc71b2616c3dc749c8edab4c5602729a134 Signed-off-by: Daniel Price <danielprice@google.com>
-rwxr-xr-xKbuild13
-rwxr-xr-xMakefile4
-rwxr-xr-xbindings/qcom-audio-dev.txt21
-rwxr-xr-xlemans-audio.dtsi62
-rwxr-xr-xlemans-lpi.dtsi708
-rwxr-xr-xlemans-vm-audio.dtsi12
-rwxr-xr-xlemans-vm-la-audio.dts14
-rwxr-xr-xlemans-vm-lv-audio.dts14
-rwxr-xr-xmonaco-amic-audio-idp-v2.dts12
-rwxr-xr-xmonaco-amic-audio.dtsi55
-rwxr-xr-xmonaco-audio-overlay.dtsi3
-rwxr-xr-xmonaco-slate-amic-audio.dtsi2
-rwxr-xr-xmonaco-slate-wsa-audio.dtsi2
-rwxr-xr-xmonaco-wsa-audio.dts11
-rwxr-xr-xmonaco-wsa-audio.dtsi95
-rwxr-xr-xsa8155-audio.dtsi11
-rwxr-xr-xsdxbaagha-audio-overlay.dtsi10
-rwxr-xr-xsdxpinn-audio.dts2
18 files changed, 1031 insertions, 20 deletions
diff --git a/Kbuild b/Kbuild
index 15424cf..b851a8b 100755
--- a/Kbuild
+++ b/Kbuild
@@ -19,7 +19,9 @@ dtbo-y += monaco-dmic-audio.dtbo \
monaco-slate-atp-v1-audio.dtbo \
monaco-slate-dmic-idp-v1-audio.dtbo \
monaco-slate-wdp-v1-audio.dtbo \
- monaco-slate-wsa-idp-v3-audio.dtbo
+ monaco-slate-wsa-idp-v3-audio.dtbo \
+ monaco-wsa-audio.dtbo \
+ monaco-amic-audio-idp-v2.dtbo
endif
ifeq ($(CONFIG_ARCH_SA8155), y)
@@ -29,11 +31,10 @@ endif
ifeq ($(CONFIG_QTI_QUIN_GVM), y)
dtbo-y += sa8155-vm-audio.dtbo
dtbo-y += sa8195-vm-audio.dtbo
- ifeq ($(QTI_TECHPACK), y)
- dtbo-y += direwolf-vm-lv-audio.dtbo
- else
- dtbo-y += direwolf-vm-la-audio.dtbo
- endif
+dtbo-y += direwolf-vm-lv-audio.dtbo
+dtbo-y += direwolf-vm-la-audio.dtbo
+dtbo-y += lemans-vm-lv-audio.dtbo
+dtbo-y += lemans-vm-la-audio.dtbo
endif
ifeq ($(CONFIG_ARCH_LEMANS), y)
diff --git a/Makefile b/Makefile
index c5455c7..a6b91b9 100755
--- a/Makefile
+++ b/Makefile
@@ -6,10 +6,6 @@ KBUILD_OPTIONS += KBUILD_EXTMOD_DTS=.
KBUILD_OPTIONS += KERNEL_ROOT=$(ROOT_DIR)/$(KERNEL_DIR)
KBUILD_OPTIONS += MODNAME=audio-devicetree
-ifeq ($(QTI_TECHPACK), true)
-KBUILD_OPTIONS += QTI_TECHPACK=y
-endif
-
all: dtbs
dtbs:
diff --git a/bindings/qcom-audio-dev.txt b/bindings/qcom-audio-dev.txt
index a33c2fe..cb8536a 100755
--- a/bindings/qcom-audio-dev.txt
+++ b/bindings/qcom-audio-dev.txt
@@ -2308,7 +2308,6 @@ Example:
Required properties:
- compatible : "qcom,holi-asoc-snd".
->>>>>>> kernel.lnx.5.4-200915
- qcom,model : The user-visible name of this sound card.
- qcom,audio-routing : A list of the connections between audio components.
- asoc-platform: This is phandle list containing the references to platform device
@@ -2752,3 +2751,23 @@ Example:
asoc-codec = <&stub_codec>;
asoc-codec-names = "msm-stub-codec.1";
};
+
+* SPF SA8255 GVM ASoC Machine driver
+
+Required properties:
+- compatible : "qcom,gvm-auto-spf-asoc-snd-adp-star" for auto adp codec.
+- qcom,model : The user-visible name of this sound card.
+- asoc-codec: This is phandle list containing the references to codec dai device
+ nodes that are used as part of the sound card dai-links.
+- asoc-codec-names: This property contains list of codec dai names. The order of the
+ codec dai names should match to that of the phandle order given
+ in "asoc-codec".
+
+Example:
+
+ snd_8255_ar: sound-adp-star {
+ compatible = "qcom,gvm-auto-spf-asoc-snd-adp-star";
+ qcom,model = "gvmauto8255-adp-star-snd-card";
+ asoc-codec = <&stub_codec>;
+ asoc-codec-names = "msm-stub-codec.1";
+ };
diff --git a/lemans-audio.dtsi b/lemans-audio.dtsi
index 4ca9c98..bfd8784 100755
--- a/lemans-audio.dtsi
+++ b/lemans-audio.dtsi
@@ -1,11 +1,68 @@
#include <bindings/qcom,gpr.h>
#include "msm-audio-lpass.dtsi"
+#include "lemans-lpi.dtsi"
&soc {
spf_core_platform: spf_core_platform {
compatible = "qcom,spf-core-platform";
};
+ spf_tdm_quat: qcom,spf-msm-dai-tdm-quat {
+ compatible = "qcom,msm-pcm-pinctrl";
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&quat_mi2s_sck_active &quat_mi2s_ws_active
+ &quat_mi2s_sd0_active &quat_mi2s_sd1_active
+ &quat_mi2s_sd2_active &quat_mi2s_sd3_active>;
+ pinctrl-1 = <&quat_mi2s_sck_sleep &quat_mi2s_ws_sleep
+ &quat_mi2s_sd0_sleep &quat_mi2s_sd1_sleep
+ &quat_mi2s_sd2_sleep &quat_mi2s_sd3_sleep>;
+ qcom,lpi-gpios;
+ #gpio-cells = <0>;
+ };
+
+ spf_tdm_quin: qcom,spf-msm-dai-tdm-quin {
+ compatible = "qcom,msm-pcm-pinctrl";
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&lpi_i2s1_sck_active &lpi_i2s1_ws_active
+ &lpi_i2s1_sd0_active &lpi_i2s1_sd1_active>;
+ pinctrl-1 = <&lpi_i2s1_sck_sleep &lpi_i2s1_ws_sleep
+ &lpi_i2s1_sd0_sleep &lpi_i2s1_sd1_sleep>;
+ qcom,lpi-gpios;
+ #gpio-cells = <0>;
+ };
+
+ spf_tdm_sen: qcom,spf-msm-dai-tdm-sen {
+ compatible = "qcom,msm-pcm-pinctrl";
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&lpi_i2s2_sck_active &lpi_i2s2_ws_active
+ &lpi_i2s2_sd0_active &lpi_i2s2_sd1_active>;
+ pinctrl-1 = <&lpi_i2s2_sck_sleep &lpi_i2s2_ws_sleep
+ &lpi_i2s2_sd0_sleep &lpi_i2s2_sd1_sleep>;
+ qcom,lpi-gpios;
+ #gpio-cells = <0>;
+ };
+
+ spf_tdm_sep: qcom,spf-msm-dai-tdm-sep {
+ compatible = "qcom,msm-pcm-pinctrl";
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&lpi_i2s3_sck_active &lpi_i2s3_ws_active
+ &lpi_i2s3_sd0_active &lpi_i2s3_sd1_active>;
+ pinctrl-1 = <&lpi_i2s3_sck_sleep &lpi_i2s3_ws_sleep
+ &lpi_i2s3_sd0_sleep &lpi_i2s3_sd1_sleep>;
+ qcom,lpi-gpios;
+ #gpio-cells = <0>;
+ };
+
+ spf_tdm_oct: qcom,spf-msm-dai-tdm-oct {
+ compatible = "qcom,msm-pcm-pinctrl";
+ pinctrl-names = "default", "sleep";
+ pinctrl-0 = <&lpi_i2s4_sck_active &lpi_i2s4_ws_active
+ &lpi_i2s4_sd0_active &lpi_i2s4_sd1_active>;
+ pinctrl-1 = <&lpi_i2s4_sck_sleep &lpi_i2s4_ws_sleep
+ &lpi_i2s4_sd0_sleep &lpi_i2s4_sd1_sleep>;
+ qcom,lpi-gpios;
+ #gpio-cells = <0>;
+ };
};
&glink_adsp {
@@ -110,6 +167,11 @@
qcom,sec-tdm-gpios = <&spf_tdm_sec>;
qcom,tert-tdm-gpios = <&spf_tdm_tert>;
+ qcom,quat-tdm-gpios = <&spf_tdm_quat>;
+ qcom,quin-tdm-gpios = <&spf_tdm_quin>;
+ qcom,sen-tdm-gpios = <&spf_tdm_sen>;
+ qcom,sep-tdm-gpios = <&spf_tdm_sep>;
+ qcom,oct-tdm-gpios = <&spf_tdm_oct>;
qcom,hsif0-tdm-gpios = <&spf_tdm_hsif0>;
qcom,hsif1-tdm-gpios = <&spf_tdm_hsif1>;
qcom,hsif2-tdm-gpios = <&spf_tdm_hsif2>;
diff --git a/lemans-lpi.dtsi b/lemans-lpi.dtsi
new file mode 100755
index 0000000..ae031f2
--- /dev/null
+++ b/lemans-lpi.dtsi
@@ -0,0 +1,708 @@
+#include <bindings/qcom,audio-ext-clk.h>
+&soc {
+ lpass_core_hw_vote: vote_lpass_core_hw {
+ compatible = "qcom,audio-ref-clk";
+ qcom,codec-ext-clk-src = <AUDIO_LPASS_CORE_HW_VOTE>;
+ #clock-cells = <1>;
+ };
+ lpass_audio_hw_vote: vote_lpass_audio_hw {
+ compatible = "qcom,audio-ref-clk";
+ qcom,codec-ext-clk-src = <AUDIO_LPASS_AUDIO_HW_VOTE>;
+ #clock-cells = <1>;
+ };
+ lpi_tlmm: lpi_pinctrl@3440000 {
+ compatible = "qcom,lpi-pinctrl";
+ reg = <0x3440000 0x0>;
+ qcom,slew-reg = <0x34da000 0x0>;
+ qcom,gpios-count = <23>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ qcom,lpi-offset-tbl = <0x00000000>, <0x00001000>,/* gpio quat{0 1 2 3 4 5}, quin{6 7 8 9}, sen{10 11 15 16}, sep{19 20 21 22} oct{12 13 17 18}*/
+ <0x00002000>, <0x00003000>,
+ <0x00004000>, <0x00005000>,
+ <0x00006000>, <0x00007000>,
+ <0x00008000>, <0x00009000>,
+ <0x0000A000>, <0x0000B000>,
+ <0x0000C000>, <0x0000D000>,
+ <0x0000E000>, <0x0000F000>,
+ <0x00010000>, <0x00011000>,
+ <0x00012000>, <0x00013000>,
+ <0x00014000>, <0x00015000>,
+ <0x00016000>;
+ qcom,lpi-slew-offset-tbl = <0x00000000>, <0x00000002>,
+ <0x00000004>, <0x00000008>,
+ <0x0000000A>, <0x0000000C>,
+ <0x00000000>, <0x00000000>,
+ <0x00000000>, <0x00000000>,
+ <0x00000010>, <0x00000012>,
+ <0x00000000>, <0x00000000>,
+ <0x00000000>, <0x00000000>,
+ <0x00000000>, <0x00000000>,
+ <0x00000014>, <0x00000000>,
+ <0x00000000>, <0x00000000>,
+ <0x00000000>;
+ clock-names = "lpass_core_hw_vote",
+ "lpass_audio_hw_vote";
+ clocks = <&lpass_core_hw_vote 0>,
+ <&lpass_audio_hw_vote 0>;
+ quat_mi2s_sck {
+ quat_mi2s_sck_sleep: quat_mi2s_sck_sleep {
+ mux {
+ pins = "gpio0";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio0";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ quat_mi2s_sck_active: quat_mi2s_sck_active {
+ mux {
+ pins = "gpio0";
+ function = "func2";
+ };
+
+ config {
+ pins = "gpio0";
+ drive-strength = <8>; /* 8 mA */
+ bias-pull-down; /* PULL DOWN */
+ output-high;
+ };
+ };
+ };
+
+ quat_mi2s_ws {
+ quat_mi2s_ws_sleep: quat_mi2s_ws_sleep {
+ mux {
+ pins = "gpio1";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio1";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ quat_mi2s_ws_active: quat_mi2s_ws_active {
+ mux {
+ pins = "gpio1";
+ function = "func2";
+ };
+
+ config {
+ pins = "gpio1";
+ drive-strength = <8>; /* 8 mA */
+ bias-pull-down; /* PULL DOWN */
+ output-high;
+ };
+ };
+ };
+
+ quat_mi2s_sd0 {
+ quat_mi2s_sd0_sleep: quat_mi2s_sd0_sleep {
+ mux {
+ pins = "gpio2";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio2";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ quat_mi2s_sd0_active: quat_mi2s_sd0_active {
+ mux {
+ pins = "gpio2";
+ function = "func2";
+ };
+
+ config {
+ pins = "gpio2";
+ drive-strength = <2>; /* 2 mA */
+ bias-disable; /* NO PULL */
+ input-enable;
+ };
+ };
+ };
+
+ quat_mi2s_sd1 {
+ quat_mi2s_sd1_sleep: quat_mi2s_sd1_sleep {
+ mux {
+ pins = "gpio3";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio3";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ quat_mi2s_sd1_active: quat_mi2s_sd1_active {
+ mux {
+ pins = "gpio3";
+ function = "func2";
+ };
+
+ config {
+ pins = "gpio3";
+ drive-strength = <8>; /* 8 mA */
+ bias-pull-down; /* PULL DOWN */
+ output-high;
+ };
+ };
+ };
+
+ quat_mi2s_sd2 {
+ quat_mi2s_sd2_sleep: quat_mi2s_sd2_sleep {
+ mux {
+ pins = "gpio4";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio4";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ quat_mi2s_sd2_active: quat_mi2s_sd2_active {
+ mux {
+ pins = "gpio4";
+ function = "func2";
+ };
+
+ config {
+ pins = "gpio4";
+ drive-strength = <2>; /* 2 mA */
+ bias-disable; /* NO PULL */
+ input-enable;
+ };
+ };
+ };
+
+ quat_mi2s_sd3 {
+ quat_mi2s_sd3_sleep: quat_mi2s_sd3_sleep {
+ mux {
+ pins = "gpio5";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio5";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ quat_mi2s_sd3_active: quat_mi2s_sd3_active {
+ mux {
+ pins = "gpio5";
+ function = "func3";
+ };
+
+ config {
+ pins = "gpio5";
+ drive-strength = <8>; /* 8 mA */
+ bias-pull-down; /* PULL DOWN */
+ output-high;
+ };
+ };
+ };
+
+ lpi_i2s1_sck {
+ lpi_i2s1_sck_sleep: lpi_i2s1_sck_sleep {
+ mux {
+ pins = "gpio6";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio6";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s1_sck_active: lpi_i2s1_sck_active {
+ mux {
+ pins = "gpio6";
+ function = "func2";
+ };
+
+ config {
+ pins = "gpio6";
+ drive-strength = <8>; /* 8 mA */
+ bias-pull-down; /* PULL DOWN */
+ output-high;
+ };
+ };
+ };
+
+ lpi_i2s1_ws {
+ lpi_i2s1_ws_sleep: lpi_i2s1_ws_sleep {
+ mux {
+ pins = "gpio7";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio7";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s1_ws_active: lpi_i2s1_ws_active {
+ mux {
+ pins = "gpio7";
+ function = "func2";
+ };
+
+ config {
+ pins = "gpio7";
+ drive-strength = <8>; /* 8 mA */
+ bias-pull-down; /* PULL DOWN */
+ output-high;
+ };
+ };
+ };
+
+ lpi_i2s1_sd0 {
+ lpi_i2s1_sd0_sleep: lpi_i2s1_sd0_sleep {
+ mux {
+ pins = "gpio8";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio8";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s1_sd0_active: lpi_i2s1_sd0_active {
+ mux {
+ pins = "gpio8";
+ function = "func2";
+ };
+
+ config {
+ pins = "gpio8";
+ drive-strength = <2>; /* 2 mA */
+ bias-disable; /* NO PULL */
+ input-enable;
+ };
+ };
+ };
+
+ lpi_i2s1_sd1 {
+ lpi_i2s1_sd1_sleep: lpi_i2s1_sd1_sleep {
+ mux {
+ pins = "gpio9";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio9";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s1_sd1_active: lpi_i2s1_sd1_active {
+ mux {
+ pins = "gpio9";
+ function = "func2";
+ };
+
+ config {
+ pins = "gpio9";
+ drive-strength = <8>; /* 8 mA */
+ bias-pull-down; /* PULL DOWN */
+ output-high;
+ };
+ };
+ };
+
+ lpi_i2s2_sck {
+ lpi_i2s2_sck_sleep: lpi_i2s2_sck_sleep {
+ mux {
+ pins = "gpio10";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio10";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s2_sck_active: lpi_i2s2_sck_active {
+ mux {
+ pins = "gpio10";
+ function = "func1";
+ };
+
+ config {
+ pins = "gpio10";
+ drive-strength = <8>; /* 8 mA */
+ bias-pull-down; /* PULL DOWN */
+ output-high;
+ };
+ };
+ };
+
+ lpi_i2s2_ws {
+ lpi_i2s2_ws_sleep: lpi_i2s2_ws_sleep {
+ mux {
+ pins = "gpio11";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio11";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s2_ws_active: lpi_i2s2_ws_active {
+ mux {
+ pins = "gpio11";
+ function = "func1";
+ };
+
+ config {
+ pins = "gpio11";
+ drive-strength = <8>; /* 8 mA */
+ bias-pull-down; /* PULL DOWN */
+ output-high;
+ };
+ };
+ };
+
+ lpi_i2s2_sd0 {
+ lpi_i2s2_sd0_sleep: lpi_i2s2_sd0_sleep {
+ mux {
+ pins = "gpio15";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio15";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s2_sd0_active: lpi_i2s2_sd0_active {
+ mux {
+ pins = "gpio15";
+ function = "func1";
+ };
+
+ config {
+ pins = "gpio15";
+ drive-strength = <2>; /* 2 mA */
+ bias-disable; /* NO PULL */
+ input-enable;
+ };
+ };
+ };
+
+ lpi_i2s2_sd1 {
+ lpi_i2s2_sd1_sleep: lpi_i2s2_sd1_sleep {
+ mux {
+ pins = "gpio16";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio16";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s2_sd1_active: lpi_i2s2_sd1_active {
+ mux {
+ pins = "gpio16";
+ function = "func1";
+ };
+
+ config {
+ pins = "gpio16";
+ drive-strength = <8>; /* 8 mA */
+ bias-pull-down; /* PULL DOWN */
+ output-high;
+ };
+ };
+ };
+
+ lpi_i2s3_sck {
+ lpi_i2s3_sck_sleep: lpi_i2s3_sck_sleep {
+ mux {
+ pins = "gpio19";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio19";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s3_sck_active: lpi_i2s3_sck_active {
+ mux {
+ pins = "gpio19";
+ function = "func1";
+ };
+
+ config {
+ pins = "gpio19";
+ drive-strength = <8>; /* 8 mA */
+ bias-pull-down; /* PULL DOWN */
+ output-high;
+ };
+ };
+ };
+
+ lpi_i2s3_ws {
+ lpi_i2s3_ws_sleep: lpi_i2s3_ws_sleep {
+ mux {
+ pins = "gpio20";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio20";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s3_ws_active: lpi_i2s3_ws_active {
+ mux {
+ pins = "gpio20";
+ function = "func1";
+ };
+
+ config {
+ pins = "gpio20";
+ drive-strength = <8>; /* 8 mA */
+ bias-pull-down; /* PULL DOWN */
+ output-high;
+ };
+ };
+ };
+
+ lpi_i2s3_sd0 {
+ lpi_i2s3_sd0_sleep: lpi_i2s3_sd0_sleep {
+ mux {
+ pins = "gpio21";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio21";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s3_sd0_active: lpi_i2s3_sd0_active {
+ mux {
+ pins = "gpio21";
+ function = "func1";
+ };
+
+ config {
+ pins = "gpio21";
+ drive-strength = <2>; /* 2 mA */
+ bias-disable; /* NO PULL */
+ input-enable;
+ };
+ };
+ };
+
+ lpi_i2s3_sd1 {
+ lpi_i2s3_sd1_sleep: lpi_i2s3_sd1_sleep {
+ mux {
+ pins = "gpio22";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio22";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s3_sd1_active: lpi_i2s3_sd1_active {
+ mux {
+ pins = "gpio22";
+ function = "func1";
+ };
+
+ config {
+ pins = "gpio22";
+ drive-strength = <8>; /* 8 mA */
+ bias-pull-down; /* PULL DOWN */
+ output-high;
+ };
+ };
+ };
+
+ lpi_i2s4_sck {
+ lpi_i2s4_sck_sleep: lpi_i2s4_sck_sleep {
+ mux {
+ pins = "gpio12";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio12";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s4_sck_active: lpi_i2s4_sck_active {
+ mux {
+ pins = "gpio12";
+ function = "func2";
+ };
+
+ config {
+ pins = "gpio12";
+ drive-strength = <2>; /* 2 mA */
+ bias-disable; /* NO PULL */
+ input-enable;
+ };
+ };
+ };
+
+ lpi_i2s4_ws {
+ lpi_i2s4_ws_sleep: lpi_i2s4_ws_sleep {
+ mux {
+ pins = "gpio13";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio13";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s4_ws_active: lpi_i2s4_ws_active {
+ mux {
+ pins = "gpio13";
+ function = "func2";
+ };
+
+ config {
+ pins = "gpio13";
+ drive-strength = <2>; /* 2 mA */
+ bias-disable; /* NO PULL */
+ input-enable;
+ };
+ };
+ };
+
+ lpi_i2s4_sd0 {
+ lpi_i2s4_sd0_sleep: lpi_i2s4_sd0_sleep {
+ mux {
+ pins = "gpio17";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio17";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s4_sd0_active: lpi_i2s4_sd0_active {
+ mux {
+ pins = "gpio17";
+ function = "func2";
+ };
+
+ config {
+ pins = "gpio17";
+ drive-strength = <2>; /* 2 mA */
+ bias-disable; /* NO PULL */
+ input-enable;
+ };
+ };
+ };
+
+ lpi_i2s4_sd1 {
+ lpi_i2s4_sd1_sleep: lpi_i2s4_sd1_sleep {
+ mux {
+ pins = "gpio18";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio18";
+ drive-strength = <2>; /* 2 mA */
+ bias-pull-down; /* PULL DOWN */
+ input-enable;
+ };
+ };
+
+ lpi_i2s4_sd1_active: lpi_i2s4_sd1_active {
+ mux {
+ pins = "gpio18";
+ function = "func2";
+ };
+
+ config {
+ pins = "gpio18";
+ drive-strength = <8>; /* 8 mA */
+ bias-pull-down; /* PULL DOWN */
+ output-high;
+ };
+ };
+ };
+ };
+};
diff --git a/lemans-vm-audio.dtsi b/lemans-vm-audio.dtsi
new file mode 100755
index 0000000..40e75eb
--- /dev/null
+++ b/lemans-vm-audio.dtsi
@@ -0,0 +1,12 @@
+&soc {
+ snd_8255_ar: sound-adp-star {
+ compatible = "qcom,gvm-auto-spf-asoc-snd-adp-star";
+ qcom,model = "gvmauto8255-adp-star-snd-card";
+ asoc-codec = <&stub_codec>;
+ asoc-codec-names = "msm-stub-codec.1";
+ };
+
+ stub_codec: qcom,msm-stub-codec {
+ compatible = "qcom,msm-stub-codec";
+ };
+};
diff --git a/lemans-vm-la-audio.dts b/lemans-vm-la-audio.dts
new file mode 100755
index 0000000..391ca58
--- /dev/null
+++ b/lemans-vm-la-audio.dts
@@ -0,0 +1,14 @@
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator-levels.h>
+
+#include "lemans-vm-audio.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. Lemans Single LA Guest Virtual Machine";
+ compatible = "qcom,lemans", "qcom,quinvm";
+ qcom,msm-id = <532 0x20000>;
+ qcom,board-id = <0x0 0x1000001>;
+};
diff --git a/lemans-vm-lv-audio.dts b/lemans-vm-lv-audio.dts
new file mode 100755
index 0000000..d09fe44
--- /dev/null
+++ b/lemans-vm-lv-audio.dts
@@ -0,0 +1,14 @@
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator-levels.h>
+
+#include "lemans-vm-audio.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. Lemans Single LV Guest Virtual Machine";
+ compatible = "qcom,lemans", "qcom,quinvm";
+ qcom,msm-id = <532 0x20000>;
+ qcom,board-id = <0x0 0x1000002>;
+};
diff --git a/monaco-amic-audio-idp-v2.dts b/monaco-amic-audio-idp-v2.dts
new file mode 100755
index 0000000..00df8d8
--- /dev/null
+++ b/monaco-amic-audio-idp-v2.dts
@@ -0,0 +1,12 @@
+/dts-v1/;
+/plugin/;
+
+#include "monaco-audio.dtsi"
+#include "monaco-amic-audio.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. Monaco standalone IDP V2.0";
+ compatible = "qcom,monaco", "qcom,idp";
+ qcom,board-id = <0x020022 0x1>;
+};
+
diff --git a/monaco-amic-audio.dtsi b/monaco-amic-audio.dtsi
new file mode 100755
index 0000000..18e108b
--- /dev/null
+++ b/monaco-amic-audio.dtsi
@@ -0,0 +1,55 @@
+#include "monaco-audio-overlay.dtsi"
+
+&rx_macro {
+ swr1: rx_swr_master {
+ qcom,swr-port-mapping = <1 HPH_L 0x1>,
+ <1 HPH_R 0x2>, <2 CLSH 0x1>,
+ <3 COMP_L 0x1>, <3 COMP_R 0x2>,
+ <4 LO 0x1>, <5 DSD_L 0x1>,
+ <5 DSD_R 0x2>,
+ <7 SWRM_TX1_CH1 0x1>, <7 SWRM_TX1_CH2 0x2>;
+ };
+};
+
+&besbev_codec {
+ qcom,swr_ch_map = <0 SPKR_L 0x1 0 LO>,
+ <2 ADC1 0x1 0 SWRM_TX1_CH1>, <2 ADC2 0x2 0 SWRM_TX1_CH2>;
+};
+
+&monaco_snd {
+ qcom,model = "monaco-idp-amic-snd-card";
+ qcom,msm-mi2s-master = <1>, <1>, <1>, <1>;
+ qcom,mi2s-audio-intf = <1>;
+ qcom,tdm-audio-intf = <0>;
+ qcom,wcn-btfm = <0>;
+ qcom,bt-slim-clk-src-ctrl = <1>;
+ qcom,va-bolero-codec = <1>;
+ qcom,visense-enable = <0>;
+ qcom,audio-routing =
+ "AMIC1", "Analog Mic1",
+ "Analog Mic1","MIC BIAS1",
+ "AMIC2", "Analog Mic2",
+ "Analog Mic2", "MIC BIAS2",
+ "SPKR_IN", "AUX_OUT",
+ "TX SWR_INPUT", "VA_TX_SWR_CLK",
+ "RX_SWR_TX_PCM_IN0", "RX_MCLK",
+ "RX_SWR_TX_PCM_IN1", "RX_MCLK",
+ "RX_SWR_TX_PCM_IN0", "ADC1_OUTPUT",
+ "RX_SWR_TX_PCM_IN1", "ADC2_OUTPUT",
+ "RX_TX DEC0_INP", "TX DEC0 MUX",
+ "RX_TX DEC1_INP", "TX DEC1 MUX",
+ "RX_TX DEC2_INP", "TX DEC2 MUX",
+ "RX_TX DEC3_INP", "TX DEC3 MUX",
+ "TX_AIF1 CAP", "VA_TX_SWR_CLK",
+ "TX_AIF2 CAP", "VA_TX_SWR_CLK",
+ "TX_AIF3 CAP", "VA_TX_SWR_CLK",
+ "VA SWR_INPUT", "VA_SWR_CLK",
+ "VA_AIF1 CAP", "VA_SWR_CLK",
+ "VA_AIF2 CAP", "VA_SWR_CLK",
+ "VA_AIF3 CAP", "VA_SWR_CLK";
+
+ nvmem-cells = <&adsp_variant>;
+ nvmem-cell-names = "adsp_variant";
+ asoc-codec = <&stub_codec>, <&bolero>, <&besbev_codec>;
+ asoc-codec-names = "msm-stub-codec.1", "bolero_codec", "besbev_codec";
+};
diff --git a/monaco-audio-overlay.dtsi b/monaco-audio-overlay.dtsi
index 466452b..1ae307d 100755
--- a/monaco-audio-overlay.dtsi
+++ b/monaco-audio-overlay.dtsi
@@ -210,6 +210,7 @@
qcom,mi2s-audio-intf = <1>;
qcom,tdm-audio-intf = <0>;
qcom,wcn-btfm = <1>;
+ qcom,bt-slim-clk-src-ctrl = <1>;
qcom,va-bolero-codec = <1>;
qcom,audio-routing =
"TX DMIC0", "Digital Mic0",
@@ -251,7 +252,7 @@
<&besbev_codec>;
asoc-codec-names = "msm-stub-codec.1", "bolero_codec",
"besbev_codec";
- qcom,msm_audio_ssr_devs = <&audio_gpr>, <&bolero>, <&lpi_tlmm>;
+ qcom,msm_audio_ssr_devs = <&audio_gpr>, <&lpi_tlmm>, <&bolero>;
};
&soc {
diff --git a/monaco-slate-amic-audio.dtsi b/monaco-slate-amic-audio.dtsi
index e32559a..3bbc169 100755
--- a/monaco-slate-amic-audio.dtsi
+++ b/monaco-slate-amic-audio.dtsi
@@ -4,7 +4,7 @@
qcom,model = "monaco-idp-slate_amic-snd-card";
qcom,mi2s-audio-intf = <1>;
qcom,cc-va-intf-enable = <1>;
- qcom,wcn-btfm = <1>;
+ qcom,wcn-btfm = <0>;
qcom,bt-slim-clk-src-ctrl = <1>;
asoc-codec = <&cc_codec>;
asoc-codec-names = "cc_codec";
diff --git a/monaco-slate-wsa-audio.dtsi b/monaco-slate-wsa-audio.dtsi
index 8c2e69a..b5462c6 100755
--- a/monaco-slate-wsa-audio.dtsi
+++ b/monaco-slate-wsa-audio.dtsi
@@ -4,7 +4,7 @@
qcom,model = "monaco-idp-slate_wsa-snd-card";
qcom,mi2s-audio-intf = <1>;
qcom,cc-va-intf-enable = <1>;
- qcom,wcn-btfm = <1>;
+ qcom,wcn-btfm = <0>;
qcom,bt-slim-clk-src-ctrl = <1>;
asoc-codec = <&cc_codec>;
asoc-codec-names = "cc_codec";
diff --git a/monaco-wsa-audio.dts b/monaco-wsa-audio.dts
new file mode 100755
index 0000000..bcba5c0
--- /dev/null
+++ b/monaco-wsa-audio.dts
@@ -0,0 +1,11 @@
+/dts-v1/;
+/plugin/;
+
+#include "monaco-audio.dtsi"
+#include "monaco-wsa-audio.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. Monaco standalone DP V3.0";
+ compatible = "qcom,monaco", "qcom,idp";
+ qcom,board-id = <0x030022 0x1>;
+};
diff --git a/monaco-wsa-audio.dtsi b/monaco-wsa-audio.dtsi
new file mode 100755
index 0000000..33f0f63
--- /dev/null
+++ b/monaco-wsa-audio.dtsi
@@ -0,0 +1,95 @@
+#include "monaco-audio-overlay.dtsi"
+
+&soc {
+ wsa_spkr_en: wsa_spkr_en_pinctrl {
+ compatible = "qcom,msm-cdc-pinctrl";
+ pinctrl-names = "aud_active", "aud_sleep";
+ pinctrl-0 = <&spkr_1_sd_n_active>;
+ pinctrl-1 = <&spkr_1_sd_n_sleep>;
+ };
+};
+
+&besbev_codec {
+ status = "disabled";
+};
+
+&besbev_rx_slave {
+ status = "disabled";
+};
+
+&rx_macro {
+ compatible = "qcom,rx-macro";
+ reg = <0x0a600000 0x0>;
+ clock-names = "rx_core_clk", "rx_npl_clk";
+ clocks = <&clock_audio_rx_1 0>,
+ <&clock_audio_rx_2 0>;
+ qcom,rx-swr-gpios = <&rx_swr_gpios>;
+ qcom,rx_mclk_mode_muxsel = <0x0a5640d8>;
+ qcom,rx-bcl-pmic-params = /bits/ 8 <0x00 0x04 0x3E>;
+ qcom,default-clk-id = <TX_CORE_CLK>;
+ qcom,rx-wsa-enable = <1>;
+ swr1: rx_swr_master {
+ compatible = "qcom,swr-mstr";
+ #address-cells = <2>;
+ #size-cells = <0>;
+ clock-names = "lpass_audio_hw_vote";
+ clocks = <&lpass_audio_hw_vote 0>;
+ qcom,swr_master_id = <2>;
+ qcom,swrm-hctl-reg = <0x0a6a9098>;
+ qcom,mipi-sdw-block-packing-mode = <1>;
+ swrm-io-base = <0x0a610000 0x0>;
+ interrupts = <0 297 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "swr_master_irq";
+ qcom,swr-num-ports = <7>;
+ qcom,disable-div2-clk-switch = <1>;
+ qcom,swr-port-mapping = <1 HPH_L 0x1>,
+ <1 HPH_R 0x2>, <2 CLSH 0x1>,
+ <3 COMP_L 0x1>, <3 COMP_R 0x2>,
+ <4 LO 0x1>, <5 DSD_L 0x1>,
+ <5 DSD_R 0x2>,
+ <7 SWRM_TX1_CH1 0x1>, <7 SWRM_TX1_CH2 0x2>;
+ //<7 SWRM_RX_PCM_IN 0xF>;
+ qcom,swr-num-dev = <1>;
+ qcom,swr-clock-stop-mode0 = <1>;
+ wsa883x_0221: wsa883x@02170221 {
+ compatible = "qcom,wsa883x";
+ reg = <0x2 0x2170221>;
+ qcom,spkr-sd-n-node = <&wsa_spkr_en>;
+ qcom,bolero-handle = <&bolero>;
+ cdc-vdd-1p8-supply = <&L19A>;
+ qcom,cdc-vdd-1p8-voltage = <1800000 1800000>;
+ qcom,cdc-vdd-1p8-current = <20000>;
+ qcom,cdc-static-supplies = "cdc-vdd-1p8";
+ sound-name-prefix = "SpkrLeft";
+ };
+
+ };
+};
+
+&monaco_snd {
+ qcom,model = "monaco-idp-wsa-snd-card";
+ qcom,wcn-btfm = <0>;
+ qcom,bt-slim-clk-src-ctrl = <1>;
+ qcom,audio-routing =
+ "SpkrLeft IN", "AUX_OUT",
+ "TX SWR_INPUT", "VA_TX_SWR_CLK",
+ "RX_TX DEC0_INP", "TX DEC0 MUX",
+ "RX_TX DEC1_INP", "TX DEC1 MUX",
+ "RX_TX DEC2_INP", "TX DEC2 MUX",
+ "RX_TX DEC3_INP", "TX DEC3 MUX",
+ "TX_AIF1 CAP", "VA_TX_SWR_CLK",
+ "TX_AIF2 CAP", "VA_TX_SWR_CLK",
+ "TX_AIF3 CAP", "VA_TX_SWR_CLK",
+ "VA SWR_INPUT", "VA_SWR_CLK",
+ "VA_AIF1 CAP", "VA_SWR_CLK",
+ "VA_AIF2 CAP", "VA_SWR_CLK",
+ "VA_AIF3 CAP", "VA_SWR_CLK";
+
+ asoc-codec = <&stub_codec>, <&bolero>,
+ <&wsa883x_0221>;
+ asoc-codec-names = "msm-stub-codec.1", "bolero_codec",
+ "wsa-codec1";
+ qcom,wsa-max-devs = <1>;
+ qcom,wsa-devs = <&wsa883x_0221>;
+};
+
diff --git a/sa8155-audio.dtsi b/sa8155-audio.dtsi
index de3db11..f39dbcf 100755
--- a/sa8155-audio.dtsi
+++ b/sa8155-audio.dtsi
@@ -640,6 +640,16 @@
dma-coherent;
};
+ spf_tdm_pri_rx: qcom,spf-msm-dai-tdm-pri-rx {
+ compatible = "qcom,msm-pcm-pinctrl";
+ pinctrl-names = "default", "active";
+ pinctrl-0 = <&pri_tdm_clk_sleep &pri_tdm_sync_sleep
+ &pri_tdm_din_sleep &pri_tdm_dout_sleep>;
+ pinctrl-1 = <&pri_tdm_clk_active &pri_tdm_sync_active
+ &pri_tdm_din_active &pri_tdm_dout_active>;
+ #gpio-cells = <0>;
+ };
+
spf_tdm_sec_rx: qcom,spf-msm-dai-tdm-sec-rx {
compatible = "qcom,msm-pcm-pinctrl";
pinctrl-names = "default", "active";
@@ -687,6 +697,7 @@
qcom,auxpcm-audio-intf;
qcom,msm-mi2s-master = <1>, <1>, <1>, <1>, <1>;
+ qcom,pri-tdm-gpios = <&spf_tdm_pri_rx>;
qcom,sec-tdm-gpios = <&spf_tdm_sec_rx>;
qcom,tert-tdm-gpios = <&spf_tdm_tert_rx>;
qcom,quat-tdm-gpios = <&spf_tdm_quat_rx>;
diff --git a/sdxbaagha-audio-overlay.dtsi b/sdxbaagha-audio-overlay.dtsi
index d7846d0..e81d865 100755
--- a/sdxbaagha-audio-overlay.dtsi
+++ b/sdxbaagha-audio-overlay.dtsi
@@ -92,23 +92,23 @@
clock-names = "wcd_clk";
clocks = <&clock_audio_up 0>;
- cdc-vdd-buck-supply = <&pmx75_l6>;
+ cdc-vdd-buck-supply = <&pmx35_l6>;
qcom,cdc-vdd-buck-voltage = <1800000 1800000>;
qcom,cdc-vdd-buck-current = <650000>;
- cdc-buck-sido-supply = <&pmx75_l6>;
+ cdc-buck-sido-supply = <&pmx35_l6>;
qcom,cdc-buck-sido-voltage = <1800000 1800000>;
qcom,cdc-buck-sido-current = <500000>;
- cdc-vdd-tx-h-supply = <&pmx75_l6>;
+ cdc-vdd-tx-h-supply = <&pmx35_l6>;
qcom,cdc-vdd-tx-h-voltage = <1800000 1800000>;
qcom,cdc-vdd-tx-h-current = <25000>;
- cdc-vdd-rx-h-supply = <&pmx75_l6>;
+ cdc-vdd-rx-h-supply = <&pmx35_l6>;
qcom,cdc-vdd-rx-h-voltage = <1800000 1800000>;
qcom,cdc-vdd-rx-h-current = <25000>;
- cdc-vddpx-1-supply = <&pmx75_l6>;
+ cdc-vddpx-1-supply = <&pmx35_l6>;
qcom,cdc-vddpx-1-voltage = <1800000 1800000>;
qcom,cdc-vddpx-1-current = <10000>;
diff --git a/sdxpinn-audio.dts b/sdxpinn-audio.dts
index 8d9b292..af21c61 100755
--- a/sdxpinn-audio.dts
+++ b/sdxpinn-audio.dts
@@ -13,5 +13,5 @@
model = "Qualcomm Technologies, Inc. SDXPINN";
compatible = "qcom,sdxpinn";
qcom,msm-id = <556 0x10000>, <580 0x10000>;
- qcom,board-id = <0x5010022 773>, <0x4010022 772>, <0x3020022 1027>, <0x4020022 772>, <0x20015 768>, <0x2020022 770>, <15 1024>, <0x10015 768>, <0x5020022 773>, <0x2010022 770>, <0x3010022 1027>, <0x4030022 772>;
+ qcom,board-id = <0x5010022 773>, <0x4010022 772>, <0x3020022 1027>, <0x4020022 772>, <0x20015 768>, <0x2020022 770>, <15 1024>, <0x10015 768>, <0x5020022 773>, <0x2010022 770>, <0x3010022 1027>, <0x4030022 772>, <0x2010022 0x402>;
};