Merge "ARM: dts: msm: add audio routings sdxlemur"

This commit is contained in:
qctecmdr 2020-10-13 03:43:20 -07:00 • committed by Gerrit - the friendly Code Review server
commit 83503f65e1
7 changed files with 1000 additions and 0 deletions

336
qcom/sdx-audio-lpass.dtsi Normal file
View file

@ -0,0 +1,336 @@
&soc {
spf_core_platform: spf_core_platform {
compatible = "qcom,spf-core-platform";
};
audio_pkt_core_platform: audio-pkt-platform {
compatible = "qcom,audio-pkt-core-platform";
};
qcom,msm-adsp-loader {
compatible = "qcom,adsp-loader";
qcom,adsp-state = <0>;
qcom,proc-img-to-load = "modem";
};
qcom,msm-audio-ion {
compatible = "qcom,msm-audio-ion";
memory-region = <&audio_mem>;
};
pcm0: qcom,msm-pcm {
compatible = "qcom,msm-pcm-dsp";
qcom,msm-pcm-dsp-id = <0>;
};
routing: qcom,msm-pcm-routing {
compatible = "qcom,msm-pcm-routing";
};
pcm1: qcom,msm-pcm-low-latency {
compatible = "qcom,msm-pcm-dsp";
qcom,msm-pcm-dsp-id = <1>;
qcom,msm-pcm-low-latency;
qcom,latency-level = "ultra";
};
qcom,msm-compr-dsp {
compatible = "qcom,msm-compr-dsp";
};
voip: qcom,msm-voip-dsp {
compatible = "qcom,msm-voip-dsp";
};
voice: qcom,msm-pcm-voice {
compatible = "qcom,msm-pcm-voice";
qcom,destroy-cvd;
};
stub_codec: qcom,msm-stub-codec {
compatible = "qcom,msm-stub-codec";
};
qcom,msm-dai-fe {
compatible = "qcom,msm-dai-fe";
};
afe: qcom,msm-pcm-afe {
compatible = "qcom,msm-pcm-afe";
};
hostless: qcom,msm-pcm-hostless {
compatible = "qcom,msm-pcm-hostless";
};
audio_apr: qcom,msm-audio-apr {
compatible = "qcom,msm-audio-apr";
qcom,subsys-name = "apr_modem";
};
host_pcm: qcom,msm-voice-host-pcm {
compatible = "qcom,msm-voice-host-pcm";
};
loopback: qcom,msm-pcm-loopback {
compatible = "qcom,msm-pcm-loopback";
};
compress: qcom,msm-compress-dsp {
compatible = "qcom,msm-compress-dsp";
qcom,adsp-version = "MDSP 1.2";
};
qcom,msm-dai-stub {
compatible = "qcom,msm-dai-stub";
dtmf_tx: qcom,msm-dai-stub-dtmf-tx {
compatible = "qcom,msm-dai-stub-dev";
qcom,msm-dai-stub-dev-id = <4>;
};
rx_capture_tx: qcom,msm-dai-stub-host-rx-capture-tx {
compatible = "qcom,msm-dai-stub-dev";
qcom,msm-dai-stub-dev-id = <5>;
};
rx_playback_rx: qcom,msm-dai-stub-host-rx-playback-rx {
compatible = "qcom,msm-dai-stub-dev";
qcom,msm-dai-stub-dev-id = <6>;
};
tx_capture_tx: qcom,msm-dai-stub-host-tx-capture-tx {
compatible = "qcom,msm-dai-stub-dev";
qcom,msm-dai-stub-dev-id = <7>;
};
tx_playback_rx: qcom,msm-dai-stub-host-tx-playback-rx {
compatible = "qcom,msm-dai-stub-dev";
qcom,msm-dai-stub-dev-id = <8>;
};
};
qcom,msm-dai-q6 {
compatible = "qcom,msm-dai-q6";
afe_pcm_rx: qcom,msm-dai-q6-be-afe-pcm-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <224>;
};
afe_pcm_tx: qcom,msm-dai-q6-be-afe-pcm-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <225>;
};
afe_proxy_rx: qcom,msm-dai-q6-afe-proxy-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <241>;
};
afe_proxy_tx: qcom,msm-dai-q6-afe-proxy-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <240>;
};
incall_record_rx: qcom,msm-dai-q6-incall-record-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <32771>;
};
incall_record_tx: qcom,msm-dai-q6-incall-record-tx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <32772>;
};
incall_music_rx: qcom,msm-dai-q6-incall-music-rx {
compatible = "qcom,msm-dai-q6-dev";
qcom,msm-dai-q6-dev-id = <32773>;
};
};
pcm_dtmf: qcom,msm-pcm-dtmf {
compatible = "qcom,msm-pcm-dtmf";
};
dai_pri_auxpcm: qcom,msm-pri-auxpcm {
compatible = "qcom,msm-auxpcm-dev";
qcom,msm-cpudai-auxpcm-mode = <0>, <0>;
qcom,msm-cpudai-auxpcm-sync = <1>, <1>;
qcom,msm-cpudai-auxpcm-frame = <5>, <4>;
qcom,msm-cpudai-auxpcm-quant = <2>, <2>;
qcom,msm-cpudai-auxpcm-num-slots = <1>, <1>;
qcom,msm-cpudai-auxpcm-slot-mapping = <1>, <1>;
qcom,msm-cpudai-auxpcm-data = <0>, <0>;
qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>;
qcom,msm-auxpcm-interface = "primary";
qcom,msm-cpudai-afe-clk-ver = <2>;
};
dai_sec_auxpcm: qcom,msm-sec-auxpcm {
compatible = "qcom,msm-auxpcm-dev";
qcom,msm-cpudai-auxpcm-mode = <0>, <0>;
qcom,msm-cpudai-auxpcm-sync = <1>, <1>;
qcom,msm-cpudai-auxpcm-frame = <5>, <4>;
qcom,msm-cpudai-auxpcm-quant = <2>, <2>;
qcom,msm-cpudai-auxpcm-num-slots = <1>, <1>;
qcom,msm-cpudai-auxpcm-slot-mapping = <1>, <1>;
qcom,msm-cpudai-auxpcm-data = <0>, <0>;
qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>;
qcom,msm-auxpcm-interface = "secondary";
qcom,msm-cpudai-afe-clk-ver = <2>;
};
qcom,msm-dai-tdm-pri-rx {
compatible = "qcom,msm-dai-tdm";
qcom,msm-cpudai-tdm-group-id = <37120>;
qcom,msm-cpudai-tdm-group-num-ports = <1>;
qcom,msm-cpudai-tdm-group-port-id = <36864>;
qcom,msm-cpudai-tdm-clk-rate = <12288000>;
qcom,msm-cpudai-tdm-clk-internal = <1>;
qcom,msm-cpudai-tdm-sync-mode = <0>;
qcom,msm-cpudai-tdm-sync-src = <1>;
qcom,msm-cpudai-tdm-data-out = <0>;
qcom,msm-cpudai-tdm-invert-sync = <0>;
qcom,msm-cpudai-tdm-data-delay = <1>;
qcom,msm-cpudai-tdm-clk-attribute = /bits/ 16 <1>;
dai_pri_tdm_rx_0: qcom,msm-dai-q6-tdm-pri-rx-0 {
compatible = "qcom,msm-dai-q6-tdm";
qcom,msm-cpudai-tdm-dev-id = <36864>;
qcom,msm-cpudai-tdm-data-align = <0>;
};
};
qcom,msm-dai-tdm-pri-tx {
compatible = "qcom,msm-dai-tdm";
qcom,msm-cpudai-tdm-group-id = <37121>;
qcom,msm-cpudai-tdm-group-num-ports = <1>;
qcom,msm-cpudai-tdm-group-port-id = <36865>;
qcom,msm-cpudai-tdm-clk-rate = <12288000>;
qcom,msm-cpudai-tdm-clk-internal = <1>;
qcom,msm-cpudai-tdm-sync-mode = <0>;
qcom,msm-cpudai-tdm-sync-src = <1>;
qcom,msm-cpudai-tdm-data-out = <0>;
qcom,msm-cpudai-tdm-invert-sync = <0>;
qcom,msm-cpudai-tdm-data-delay = <1>;
qcom,msm-cpudai-tdm-clk-attribute = /bits/ 16 <1>;
dai_pri_tdm_tx_0: qcom,msm-dai-q6-tdm-pri-tx-0 {
compatible = "qcom,msm-dai-q6-tdm";
qcom,msm-cpudai-tdm-dev-id = <36865>;
qcom,msm-cpudai-tdm-data-align = <0>;
};
};
qcom,msm-dai-tdm-sec-rx {
compatible = "qcom,msm-dai-tdm";
qcom,msm-cpudai-tdm-group-id = <37136>;
qcom,msm-cpudai-tdm-group-num-ports = <1>;
qcom,msm-cpudai-tdm-group-port-id = <36880>;
qcom,msm-cpudai-tdm-clk-rate = <12288000>;
qcom,msm-cpudai-tdm-clk-internal = <1>;
qcom,msm-cpudai-tdm-sync-mode = <1>;
qcom,msm-cpudai-tdm-sync-src = <0>;
qcom,msm-cpudai-tdm-data-out = <0>;
qcom,msm-cpudai-tdm-invert-sync = <0>;
qcom,msm-cpudai-tdm-data-delay = <0>;
dai_sec_tdm_rx_0: qcom,msm-dai-q6-tdm-sec-rx-0 {
compatible = "qcom,msm-dai-q6-tdm";
qcom,msm-cpudai-tdm-dev-id = <36880>;
qcom,msm-cpudai-tdm-data-align = <0>;
};
};
qcom,msm-dai-tdm-sec-tx {
compatible = "qcom,msm-dai-tdm";
qcom,msm-cpudai-tdm-group-id = <37137>;
qcom,msm-cpudai-tdm-group-num-ports = <1>;
qcom,msm-cpudai-tdm-group-port-id = <36881>;
qcom,msm-cpudai-tdm-clk-rate = <12288000>;
qcom,msm-cpudai-tdm-clk-internal = <1>;
qcom,msm-cpudai-tdm-sync-mode = <1>;
qcom,msm-cpudai-tdm-sync-src = <0>;
qcom,msm-cpudai-tdm-data-out = <0>;
qcom,msm-cpudai-tdm-invert-sync = <0>;
qcom,msm-cpudai-tdm-data-delay = <0>;
dai_sec_tdm_tx_0: qcom,msm-dai-q6-tdm-sec-tx-0 {
compatible = "qcom,msm-dai-q6-tdm";
qcom,msm-cpudai-tdm-dev-id = <36881>;
qcom,msm-cpudai-tdm-data-align = <0>;
};
};
qcom,msm-dai-mi2s {
compatible = "qcom,msm-dai-mi2s";
mi2s_prim: qcom,msm-dai-q6-mi2s-prim {
compatible = "qcom,msm-dai-q6-mi2s";
qcom,msm-dai-q6-mi2s-dev-id = <0>;
qcom,msm-mi2s-rx-lines = <2>;
qcom,msm-mi2s-tx-lines = <1>;
};
mi2s_sec: qcom,msm-dai-q6-mi2s-sec {
compatible = "qcom,msm-dai-q6-mi2s";
qcom,msm-dai-q6-mi2s-dev-id = <1>;
qcom,msm-mi2s-rx-lines = <2>;
qcom,msm-mi2s-tx-lines = <1>;
};
};
prim_master: prim_master_pinctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&pri_ws_active_master
&pri_sck_active_master
&pri_dout_active
&pri_din_active>;
pinctrl-1 = <&pri_ws_sleep
&pri_sck_sleep
&pri_dout_sleep
&pri_din_sleep>;
qcom,mi2s-auxpcm-cdc-gpios;
};
prim_slave: prim_slave_pinctrl {
status = "disabled";
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&pri_ws_active_slave
&pri_sck_active_slave
&pri_dout_active
&pri_din_active>;
pinctrl-1 = <&pri_ws_sleep
&pri_sck_sleep
&pri_dout_sleep
&pri_din_sleep>;
qcom,mi2s-auxpcm-cdc-gpios;
};
sec_master: sec_master_pinctrl {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&sec_ws_active_master
&sec_sck_active_master
&sec_dout_active
&sec_din_active>;
pinctrl-1 = <&sec_ws_sleep
&sec_sck_sleep
&sec_dout_sleep
&sec_din_sleep>;
qcom,mi2s-auxpcm-cdc-gpios;
};
sec_slave: sec_slave_pinctrl {
status = "disabled";
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&sec_ws_active_slave
&sec_sck_active_slave
&sec_dout_active
&sec_din_active>;
pinctrl-1 = <&sec_ws_sleep
&sec_sck_sleep
&sec_dout_sleep
&sec_din_sleep>;
qcom,mi2s-auxpcm-cdc-gpios;
};
};

36
qcom/sdx-wsa881x.dtsi Normal file
View file

@ -0,0 +1,36 @@
&soc {
tavil_codec {
swr_master {
compatible = "qcom,swr-wcd";
#address-cells = <2>;
#size-cells = <0>;
wsa881x_0211: wsa881x@20170211 {
status = "disabled";
compatible = "qcom,wsa881x";
reg = <0x00 0x20170211>;
qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd1>;
};
wsa881x_0212: wsa881x@20170212 {
status = "disabled";
compatible = "qcom,wsa881x";
reg = <0x00 0x20170212>;
qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd2>;
};
wsa881x_0213: wsa881x@21170213 {
status = "disabled";
compatible = "qcom,wsa881x";
reg = <0x00 0x21170213>;
qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd1>;
};
wsa881x_0214: wsa881x@21170214 {
compatible = "qcom,wsa881x";
reg = <0x00 0x21170214>;
qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd2>;
};
};
};
};

View file

@ -0,0 +1,130 @@
#include "sdxlemur-wcd.dtsi"
#include "sdx-wsa881x.dtsi"
#include <dt-bindings/clock/qcom,audio-ext-clk.h>
&snd_934x {
qcom,audio-routing =
"RX_BIAS", "MCLK",
"MADINPUT", "MCLK",
"AMIC2", "MIC BIAS2",
"MIC BIAS2", "Headset Mic",
"AMIC3", "MIC BIAS2",
"MIC BIAS2", "ANCRight Headset Mic",
"AMIC4", "MIC BIAS2",
"MIC BIAS2", "ANCLeft Headset Mic",
"AMIC5", "MIC BIAS3",
"MIC BIAS3", "Handset Mic",
"DMIC1", "MIC BIAS1",
"MIC BIAS1", "Digital Mic1",
"DMIC2", "MIC BIAS3",
"MIC BIAS3", "Digital Mic2",
"DMIC3", "MIC BIAS3",
"MIC BIAS3", "Digital Mic3",
"DMIC4", "MIC BIAS4",
"MIC BIAS4", "Digital Mic4",
"DMIC5", "MIC BIAS4",
"MIC BIAS4", "Digital Mic5",
"SpkrRight IN", "SPK2 OUT";
qcom,msm-mbhc-hphl-swh = <1>;
qcom,msm-mbhc-gnd-swh = <1>;
qcom,msm-mbhc-hs-mic-max-threshold-mv = <1700>;
qcom,msm-mbhc-hs-mic-min-threshold-mv = <50>;
qcom,cdc-ext-clk-rate = <19200000>;
qcom,tavil-mclk-clk-freq = <9600000>;
asoc-codec = <&stub_codec>;
asoc-codec-names = "msm-stub-codec.1";
qcom,wsa-max-devs = <2>;
qcom,wsa-devs = <&wsa881x_0211>, <&wsa881x_0212>,
<&wsa881x_0213>, <&wsa881x_0214>;
qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
"SpkrLeft", "SpkrRight";
};
&soc {
wcd9xxx_intc: wcd9xxx-irq {
status = "ok"
compatible = "qcom,wcd9xxx-irq";
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&tlmm>;
qcom,gpio-connect = <&tlmm 96 0>;
pinctrl-names = "default";
pinctrl-0 = <&wcd_intr_default>;
};
clock_audio_up: audio_ext_clk_up {
compatible = "qcom,audio-ref-clk";
qcom,codec-ext-clk-src = <AUDIO_LPASS_MCLK_3>;
qcom,codec-lpass-clk-id = <770>;
qcom,codec-lpass-ext-clk-freq = <9600000>;
qcom,use-pinctrl = <1>;
pinctrl-names = "sleep", "active";
pinctrl-0 = <&i2s_mclk_sleep>;
pinctrl-1 = <&i2s_mclk_active>;
#clock-cells = <1>;
};
wcd_rst_gpio: msm_cdc_pinctrl@92 {
compatible = "qcom,msm-cdc-pinctrl";
qcom,cdc-rst-n-gpio = <&tlmm 92 0>;
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&cdc_reset_active>;
pinctrl-1 = <&cdc_reset_sleep>;
};
};
&soc {
wcd934x_cdc: tavil_codec {
compatible = "qcom,tavil-i2c";
reg = <0x0d>;
interrupt-parent = <&wcd9xxx_intc>;
interrupts = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24 25 26 27 28 29
30 31>;
qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>;
clock-names = "wcd_clk";
clocks = <&clock_audio_up 0>;
cdc-vdd-buck-supply = <&pmxprairie_l6>;
qcom,cdc-vdd-buck-voltage = <1800000 1800000>;
qcom,cdc-vdd-buck-current = <650000>;
cdc-buck-sido-supply = <&pmxprairie_l6>;
qcom,cdc-buck-sido-voltage = <1800000 1800000>;
qcom,cdc-buck-sido-current = <250000>;
cdc-vdd-tx-h-supply = <&pmxprairie_l6>;
qcom,cdc-vdd-tx-h-voltage = <1800000 1800000>;
qcom,cdc-vdd-tx-h-current = <25000>;
cdc-vdd-rx-h-supply = <&pmxprairie_l6>;
qcom,cdc-vdd-rx-h-voltage = <1800000 1800000>;
qcom,cdc-vdd-rx-h-current = <25000>;
cdc-vddpx-1-supply = <&pmxprairie_l6>;
qcom,cdc-vddpx-1-voltage = <1800000 1800000>;
qcom,cdc-vddpx-1-current = <10000>;
qcom,cdc-static-supplies = "cdc-vdd-buck",
"cdc-buck-sido",
"cdc-vdd-tx-h",
"cdc-vdd-rx-h",
"cdc-vddpx-1";
qcom,cdc-micbias1-mv = <1800>;
qcom,cdc-micbias2-mv = <1800>;
qcom,cdc-micbias3-mv = <1800>;
qcom,cdc-micbias4-mv = <1800>;
qcom,cdc-mclk-clk-rate = <9600000>;
qcom,cdc-dmic-sample-rate = <4800000>;
qcom,wdsp-cmpnt-dev-name = "tavil_codec";
};
};

43
qcom/sdxlemur-audio.dtsi Normal file
View file

@ -0,0 +1,43 @@
#include "sdx-audio-lpass.dtsi"
&soc {
snd_934x: sound-tavil {
compatible = "qcom,sdx-asoc-snd-tavil";
qcom,model = "sdx-tavil-i2s-snd-card";
qcom,prim_mi2s_aux_master = <&prim_master>;
qcom,prim_mi2s_aux_slave = <&prim_slave>;
qcom,sec_mi2s_aux_master = <&sec_master>;
qcom,sec_mi2s_aux_slave = <&sec_slave>;
asoc-platform = <&pcm0>, <&pcm1>, <&voip>, <&voice>,
<&loopback>, <&hostless>, <&afe>, <&routing>,
<&pcm_dtmf>, <&host_pcm>, <&compress>;
asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
"msm-voip-dsp", "msm-pcm-voice",
"msm-pcm-loopback", "msm-pcm-hostless",
"msm-pcm-afe", "msm-pcm-routing",
"msm-pcm-dtmf", "msm-voice-host-pcm",
"msm-compress-dsp";
asoc-cpu = <&dai_pri_auxpcm>, <&mi2s_prim>, <&mi2s_sec>,
<&dtmf_tx>,
<&rx_capture_tx>, <&rx_playback_rx>,
<&tx_capture_tx>, <&tx_playback_rx>,
<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
<&afe_proxy_tx>, <&incall_record_rx>,
<&incall_record_tx>, <&incall_music_rx>,
<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
<&dai_sec_auxpcm>;
asoc-cpu-names = "msm-dai-q6-auxpcm.1",
"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
"msm-dai-stub-dev.4", "msm-dai-stub-dev.5",
"msm-dai-stub-dev.6", "msm-dai-stub-dev.7",
"msm-dai-stub-dev.8", "msm-dai-q6-dev.224",
"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
"msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865",
"msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881",
"msm-dai-q6-auxpcm.2";
};
};

View file

@ -996,5 +996,361 @@
};
};
};
wcd9xxx_intr {
wcd_intr_default: wcd_intr_default {
mux {
pins = "gpio96";
function = "gpio";
};
config {
pins = "gpio96";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* pull down */
input-enable;
};
};
};
cdc_reset_ctrl {
cdc_reset_sleep: cdc_reset_sleep {
mux {
pins = "gpio92";
function = "gpio";
};
config {
pins = "gpio92";
drive-strength = <2>;
bias-disable;
output-low;
};
};
cdc_reset_active:cdc_reset_active {
mux {
pins = "gpio92";
function = "gpio";
};
config {
pins = "gpio92";
drive-strength = <8>;
bias-pull-down;
output-high;
};
};
};
i2s_mclk {
i2s_mclk_sleep: i2s_mclk_sleep {
mux {
pins = "gpio62";
function = "i2s_mclk";
};
config {
pins = "gpio62";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
};
};
i2s_mclk_active: i2s_mclk_active {
mux {
pins = "gpio62";
function = "i2s_mclk";
};
config {
pins = "gpio62";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL*/
output-high;
};
};
};
pmx_pri_mi2s_aux {
pri_ws_sleep: pri_ws_sleep {
mux {
pins = "gpio12";
function = "gpio";
};
config {
pins = "gpio12";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
input-enable;
};
};
pri_sck_sleep: pri_sck_sleep {
mux {
pins = "gpio15";
function = "gpio";
};
config {
pins = "gpio15";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
input-enable;
};
};
pri_dout_sleep: pri_dout_sleep {
mux {
pins = "gpio14";
function = "gpio";
};
config {
pins = "gpio14";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
input-enable;
};
};
pri_ws_active_master: pri_ws_active_master {
mux {
pins = "gpio12";
function = "pri_mi2s";
};
config {
pins = "gpio12";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL*/
output-high;
};
};
pri_sck_active_master: pri_sck_active_master {
mux {
pins = "gpio15";
function = "pri_mi2s";
};
config {
pins = "gpio15";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL*/
output-high;
};
};
pri_ws_active_slave: pri_ws_active_slave {
mux {
pins = "gpio12";
function = "pri_mi2s";
};
config {
pins = "gpio12";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL*/
};
};
pri_sck_active_slave: pri_sck_active_slave {
mux {
pins = "gpio15";
function = "pri_mi2s";
};
config {
pins = "gpio15";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL*/
};
};
pri_dout_active: pri_dout_active {
mux {
pins = "gpio14";
function = "pri_mi2s";
};
config {
pins = "gpio14";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL*/
output-high;
};
};
};
pmx_pri_mi2s_aux_din {
pri_din_sleep: pri_din_sleep {
mux {
pins = "gpio13";
function = "gpio";
};
config {
pins = "gpio13";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
input-enable;
};
};
pri_din_active: pri_din_active {
mux {
pins = "gpio13";
function = "pri_mi2s";
};
config {
pins = "gpio13";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL */
};
};
};
pmx_sec_mi2s_aux {
sec_ws_sleep: sec_ws_sleep {
mux {
pins = "gpio16";
function = "gpio";
};
config {
pins = "gpio16";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
input-enable;
};
};
sec_sck_sleep: sec_sck_sleep {
mux {
pins = "gpio19";
function = "gpio";
};
config {
pins = "gpio19";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
input-enable;
};
};
sec_dout_sleep: sec_dout_sleep {
mux {
pins = "gpio18";
function = "gpio";
};
config {
pins = "gpio18";
drive-strength = <2>; /* 2 mA */
bias-pull-down; /* PULL DOWN */
input-enable;
};
};
sec_ws_active_master: sec_ws_active_master {
mux {
pins = "gpio16";
function = "sec_mi2s";
};
config {
pins = "gpio16";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL*/
output-high;
};
};
sec_sck_active_master: sec_sck_active_master {
mux {
pins = "gpio19";
function = "sec_mi2s";
};
config {
pins = "gpio19";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL*/
output-high;
};
};
sec_ws_active_slave: sec_ws_active_slave {
mux {
pins = "gpio16";
function = "sec_mi2s";
};
config {
pins = "gpio16";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL*/
};
};
sec_sck_active_slave: sec_sck_active_slave {
mux {
pins = "gpio19";
function = "sec_mi2s";
};
config {
pins = "gpio19";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL*/
};
};
sec_dout_active: sec_dout_active {
mux {
pins = "gpio18";
function = "sec_mi2s";
};
config {
pins = "gpio18";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL*/
output-high;
};
};
};
pmx_sec_mi2s_aux_din {
sec_din_sleep: sec_din_sleep {
mux {
pins = "gpio17";
function = "gpio";
};
config {
pins = "gpio17";
drive-strength = <2>; /* 2 mA */
bias-disable; /* NO PULL */
input-enable;
};
};
sec_din_active: sec_din_active {
mux {
pins = "gpio17";
function = "sec_mi2s";
};
config {
pins = "gpio17";
drive-strength = <8>; /* 8 mA */
bias-disable; /* NO PULL */
};
};
};
};
};

68
qcom/sdxlemur-wcd.dtsi Normal file
View file

@ -0,0 +1,68 @@
&soc {
tavil_codec {
wcd: wcd_pinctrl@5 {
compatible = "qcom,wcd-pinctrl";
qcom,num-gpios = <5>;
gpio-controller;
#gpio-cells = <2>;
spkr_1_wcd_en_active: spkr_1_wcd_en_active {
mux {
pins = "gpio2";
};
config {
pins = "gpio2";
output-high;
};
};
spkr_1_wcd_en_sleep: spkr_1_wcd_en_sleep {
mux {
pins = "gpio2";
};
config {
pins = "gpio2";
input-enable;
};
};
spkr_2_wcd_en_active: spkr_2_sd_n_active {
mux {
pins = "gpio3";
};
config {
pins = "gpio3";
output-high;
};
};
spkr_2_wcd_en_sleep: spkr_2_sd_n_sleep {
mux {
pins = "gpio3";
};
config {
pins = "gpio3";
input-enable;
};
};
};
wsa_spkr_wcd_sd1: msm_cdc_pinctrll {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&spkr_1_wcd_en_active>;
pinctrl-1 = <&spkr_1_wcd_en_sleep>;
};
wsa_spkr_wcd_sd2: msm_cdc_pinctrlr {
compatible = "qcom,msm-cdc-pinctrl";
pinctrl-names = "aud_active", "aud_sleep";
pinctrl-0 = <&spkr_2_wcd_en_active>;
pinctrl-1 = <&spkr_2_wcd_en_sleep>;
};
};
};

View file

@ -3,6 +3,7 @@
#include <dt-bindings/clock/qcom,gcc-sdxlemur.h>
#include <dt-bindings/clock/qcom,rpmh.h>
#include <dt-bindings/soc/qcom,dcc_v2.h>
#include <dt-bindings/sound/qcom,gpr.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator-levels.h>
#include <dt-bindings/interconnect/qcom,sdxlemur.h>
@ -89,6 +90,12 @@
size = <0xC00000>;
linux,cma-default;
};
audio_mem: audio_region@0 {
compatible = "shared-dma-pool";
no-map;
size = <0x400000>;
};
};
cpus {
@ -648,6 +655,29 @@
0x2000 3
0x4400 2>;
};
qcom,gpr {
compatible = "qcom,gpr";
qcom,glink-channels = "modem_apps";
qcom,intents = <0x200 20>;
reg = <GPR_DOMAIN_MODEM>;
spf_core {
compatible = "qcom,spf_core";
reg = <GPR_SVC_ADSP_CORE>;
};
audio-pkt {
compatible = "qcom,audio-pkt";
qcom,audiopkt-ch-name = "apr_audio_svc";
reg = <GPR_SVC_MAX>;
};
audio_prm {
compatible = "qcom,audio_prm";
reg = <GPR_SVC_ASM>;
};
};
};
};
@ -895,3 +925,4 @@
#include "sdxlemur-pm.dtsi"
#include "sdxlemur-pcie.dtsi"
#include "sdxlemur-blsp.dtsi"
#include "sdxlemur-audio.dtsi"