Loading Documentation/devicetree/bindings/sound/qcom-audio-dev.txt +60 −0 Original line number Diff line number Diff line Loading @@ -1789,3 +1789,63 @@ Example: asoc-codec = <&stub_codec>; asoc-codec-names = "msm-stub-codec.1"; }; * SDX ASoC Machine driver Required properties: - compatible : "qcom,sdx-asoc-snd-tavil" - qcom,model : The user-visible name of this sound card. - qcom,prim_mi2s_aux_master : Handle to prim_master pinctrl configurations - qcom,prim_mi2s_aux_slave : Handle to prim_slave pinctrl configurations - qcom,sec_mi2s_aux_master : Handle to sec_master pinctrl configurations - qcom,sec_mi2s_aux_slave : Handle to sec_slave pinctrl configurations - asoc-platform: This is phandle list containing the references to platform device nodes that are used as part of the sound card dai-links. - asoc-platform-names: This property contains list of platform names. The order of the platform names should match to that of the phandle order given in "asoc-platform". - asoc-cpu: This is phandle list containing the references to cpu dai device nodes that are used as part of the sound card dai-links. - asoc-cpu-names: This property contains list of cpu dai names. The order of the cpu dai names should match to that of the phandle order give in "asoc-cpu". The cpu names are in the form of "%s.%d" form, where the id (%d) field represents the back-end AFE port id that this CPU dai is associated with. Example: 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_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-auxpcm.2"; }; arch/arm64/boot/dts/qcom/sdx-audio-lpass.dtsi 0 → 100644 +266 −0 Original line number Diff line number Diff line /* * Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ &soc { 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"; qcom,scm-mp-enabled; 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"; }; cpu-pmu { compatible = "arm,cortex-a7-pmu"; qcom,irq-is-percpu; interrupts = <1 8 0x100>; }; 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-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 { 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 { 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; }; }; arch/arm64/boot/dts/qcom/sdx-wsa881x.dtsi 0 → 100644 +45 −0 Original line number Diff line number Diff line /* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ &i2c_3 { tavil_codec { swr_master { compatible = "qcom,swr-wcd"; #address-cells = <2>; #size-cells = <0>; wsa881x_0211: wsa881x@20170211 { compatible = "qcom,wsa881x"; reg = <0x00 0x20170211>; qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd1>; }; wsa881x_0212: wsa881x@20170212 { compatible = "qcom,wsa881x"; reg = <0x00 0x20170212>; qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd2>; }; wsa881x_0213: wsa881x@21170213 { 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>; }; }; }; }; arch/arm64/boot/dts/qcom/sdxprairie-audio-overlay.dtsi 0 → 100644 +140 −0 Original line number Diff line number Diff line /* * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "sdxprairie-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,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 90 0>; pinctrl-names = "default"; pinctrl-0 = <&wcd_intr_default>; }; clock_audio_up: audio_ext_clk_up { compatible = "qcom,audio-ref-clk"; qcom,audio-ref-clk-gpio = <&tlmm 62 0>; qcom,codec-mclk-clk-freq = <9600000>; pinctrl-names = "sleep", "active"; pinctrl-0 = <&i2s_mclk_sleep>; pinctrl-1 = <&i2s_mclk_active>; #clock-cells = <1>; }; wcd_rst_gpio: msm_cdc_pinctrl@86 { compatible = "qcom,msm-cdc-pinctrl"; qcom,cdc-rst-n-gpio = <&tlmm 86 0>; pinctrl-names = "aud_active", "aud_sleep"; pinctrl-0 = <&cdc_reset_active>; pinctrl-1 = <&cdc_reset_sleep>; }; }; &i2c_3 { 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 AUDIO_LPASS_MCLK_1>; 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"; }; }; arch/arm64/boot/dts/qcom/sdxprairie-audio.dtsi 0 → 100644 +51 −0 Original line number Diff line number Diff line /* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #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_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-auxpcm.2"; }; }; Loading
Documentation/devicetree/bindings/sound/qcom-audio-dev.txt +60 −0 Original line number Diff line number Diff line Loading @@ -1789,3 +1789,63 @@ Example: asoc-codec = <&stub_codec>; asoc-codec-names = "msm-stub-codec.1"; }; * SDX ASoC Machine driver Required properties: - compatible : "qcom,sdx-asoc-snd-tavil" - qcom,model : The user-visible name of this sound card. - qcom,prim_mi2s_aux_master : Handle to prim_master pinctrl configurations - qcom,prim_mi2s_aux_slave : Handle to prim_slave pinctrl configurations - qcom,sec_mi2s_aux_master : Handle to sec_master pinctrl configurations - qcom,sec_mi2s_aux_slave : Handle to sec_slave pinctrl configurations - asoc-platform: This is phandle list containing the references to platform device nodes that are used as part of the sound card dai-links. - asoc-platform-names: This property contains list of platform names. The order of the platform names should match to that of the phandle order given in "asoc-platform". - asoc-cpu: This is phandle list containing the references to cpu dai device nodes that are used as part of the sound card dai-links. - asoc-cpu-names: This property contains list of cpu dai names. The order of the cpu dai names should match to that of the phandle order give in "asoc-cpu". The cpu names are in the form of "%s.%d" form, where the id (%d) field represents the back-end AFE port id that this CPU dai is associated with. Example: 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_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-auxpcm.2"; };
arch/arm64/boot/dts/qcom/sdx-audio-lpass.dtsi 0 → 100644 +266 −0 Original line number Diff line number Diff line /* * Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ &soc { 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"; qcom,scm-mp-enabled; 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"; }; cpu-pmu { compatible = "arm,cortex-a7-pmu"; qcom,irq-is-percpu; interrupts = <1 8 0x100>; }; 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-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 { 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 { 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; }; };
arch/arm64/boot/dts/qcom/sdx-wsa881x.dtsi 0 → 100644 +45 −0 Original line number Diff line number Diff line /* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ &i2c_3 { tavil_codec { swr_master { compatible = "qcom,swr-wcd"; #address-cells = <2>; #size-cells = <0>; wsa881x_0211: wsa881x@20170211 { compatible = "qcom,wsa881x"; reg = <0x00 0x20170211>; qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd1>; }; wsa881x_0212: wsa881x@20170212 { compatible = "qcom,wsa881x"; reg = <0x00 0x20170212>; qcom,spkr-sd-n-node = <&wsa_spkr_wcd_sd2>; }; wsa881x_0213: wsa881x@21170213 { 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>; }; }; }; };
arch/arm64/boot/dts/qcom/sdxprairie-audio-overlay.dtsi 0 → 100644 +140 −0 Original line number Diff line number Diff line /* * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include "sdxprairie-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,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 90 0>; pinctrl-names = "default"; pinctrl-0 = <&wcd_intr_default>; }; clock_audio_up: audio_ext_clk_up { compatible = "qcom,audio-ref-clk"; qcom,audio-ref-clk-gpio = <&tlmm 62 0>; qcom,codec-mclk-clk-freq = <9600000>; pinctrl-names = "sleep", "active"; pinctrl-0 = <&i2s_mclk_sleep>; pinctrl-1 = <&i2s_mclk_active>; #clock-cells = <1>; }; wcd_rst_gpio: msm_cdc_pinctrl@86 { compatible = "qcom,msm-cdc-pinctrl"; qcom,cdc-rst-n-gpio = <&tlmm 86 0>; pinctrl-names = "aud_active", "aud_sleep"; pinctrl-0 = <&cdc_reset_active>; pinctrl-1 = <&cdc_reset_sleep>; }; }; &i2c_3 { 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 AUDIO_LPASS_MCLK_1>; 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"; }; };
arch/arm64/boot/dts/qcom/sdxprairie-audio.dtsi 0 → 100644 +51 −0 Original line number Diff line number Diff line /* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #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_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-auxpcm.2"; }; };