Loading Documentation/devicetree/bindings/sound/qcom-audio-dev.txt +60 −0 Original line number Diff line number Diff line Loading @@ -2016,6 +2016,66 @@ Example: qcom,aux-codec = <&stub_codec>; }; * 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"; }; * APQ8096 Automotive ASoC Machine driver Required properties: Loading Documentation/devicetree/bindings/sound/wcd_codec.txt +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ WCD audio CODEC Required properties: - compatible : "qcom,tasha-slim-pgd" or "qcom,tasha-i2c-pgd" for Tasha Codec or "qcom,tavil-slim-pgd" for Tavil Codec "qcom,tavil-slim-pgd" or "qcom,tavil-i2c-pgd" for Tavil Codec - elemental-addr: codec slimbus slave PGD enumeration address.(48 bits) - qcom,cdc-reset-gpio: gpio used for codec SOC reset. Loading arch/arm/boot/dts/qcom/sdx-audio-lpass.dtsi 0 → 100644 +261 −0 Original line number Diff line number Diff line /* * Copyright (c) 2015-2017, 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"; }; 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/arm/boot/dts/qcom/sdx-wsa881x.dtsi 0 → 100644 +45 −0 Original line number Diff line number Diff line /* Copyright (c) 2016-2017, 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/arm/boot/dts/qcom/sdxpoorwills-audio-overlay.dtsi 0 → 100644 +143 −0 Original line number Diff line number Diff line /* * Copyright (c) 2017, 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 "sdxpoorwills-wcd.dtsi" #include "sdx-wsa881x.dtsi" #include <dt-bindings/clock/qcom,audio-ext-clk.h> &snd_934x { qcom,audio-routing = "AIF4 VI", "MCLK", "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", "DMIC0", "MIC BIAS1", "MIC BIAS1", "Digital Mic0", "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", "SpkrLeft IN", "SPK1 OUT", "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 = <12288000>; 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 71 0>; pinctrl-names = "default"; pinctrl-0 = <&wcd_intr_default>; }; clock_audio_up: audio_ext_clk_up { compatible = "qcom,audio-ref-clk"; qcom,codec-mclk-clk-freq = <12288000>; pinctrl-names = "sleep", "active"; pinctrl-0 = <&i2s_mclk_sleep>; pinctrl-1 = <&i2s_mclk_active>; #clock-cells = <1>; }; wcd_rst_gpio: msm_cdc_pinctrl@77 { compatible = "qcom,msm-cdc-pinctrl"; qcom,cdc-rst-n-gpio = <&tlmm 77 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-pgd"; elemental-addr = [00 01 50 02 17 02]; 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>; cdc-vdd-buck-supply = <&pmxpoorwills_l6>; qcom,cdc-vdd-buck-voltage = <1800000 1800000>; qcom,cdc-vdd-buck-current = <650000>; cdc-buck-sido-supply = <&pmxpoorwills_l6>; qcom,cdc-buck-sido-voltage = <1800000 1800000>; qcom,cdc-buck-sido-current = <250000>; cdc-vdd-tx-h-supply = <&pmxpoorwills_l6>; qcom,cdc-vdd-tx-h-voltage = <1800000 1800000>; qcom,cdc-vdd-tx-h-current = <25000>; cdc-vdd-rx-h-supply = <&pmxpoorwills_l6>; qcom,cdc-vdd-rx-h-voltage = <1800000 1800000>; qcom,cdc-vdd-rx-h-current = <25000>; cdc-vddpx-1-supply = <&pmxpoorwills_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 = <12288000>; qcom,cdc-dmic-sample-rate = <4800000>; qcom,wdsp-cmpnt-dev-name = "tavil_codec"; }; }; Loading
Documentation/devicetree/bindings/sound/qcom-audio-dev.txt +60 −0 Original line number Diff line number Diff line Loading @@ -2016,6 +2016,66 @@ Example: qcom,aux-codec = <&stub_codec>; }; * 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"; }; * APQ8096 Automotive ASoC Machine driver Required properties: Loading
Documentation/devicetree/bindings/sound/wcd_codec.txt +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ WCD audio CODEC Required properties: - compatible : "qcom,tasha-slim-pgd" or "qcom,tasha-i2c-pgd" for Tasha Codec or "qcom,tavil-slim-pgd" for Tavil Codec "qcom,tavil-slim-pgd" or "qcom,tavil-i2c-pgd" for Tavil Codec - elemental-addr: codec slimbus slave PGD enumeration address.(48 bits) - qcom,cdc-reset-gpio: gpio used for codec SOC reset. Loading
arch/arm/boot/dts/qcom/sdx-audio-lpass.dtsi 0 → 100644 +261 −0 Original line number Diff line number Diff line /* * Copyright (c) 2015-2017, 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"; }; 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/arm/boot/dts/qcom/sdx-wsa881x.dtsi 0 → 100644 +45 −0 Original line number Diff line number Diff line /* Copyright (c) 2016-2017, 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/arm/boot/dts/qcom/sdxpoorwills-audio-overlay.dtsi 0 → 100644 +143 −0 Original line number Diff line number Diff line /* * Copyright (c) 2017, 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 "sdxpoorwills-wcd.dtsi" #include "sdx-wsa881x.dtsi" #include <dt-bindings/clock/qcom,audio-ext-clk.h> &snd_934x { qcom,audio-routing = "AIF4 VI", "MCLK", "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", "DMIC0", "MIC BIAS1", "MIC BIAS1", "Digital Mic0", "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", "SpkrLeft IN", "SPK1 OUT", "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 = <12288000>; 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 71 0>; pinctrl-names = "default"; pinctrl-0 = <&wcd_intr_default>; }; clock_audio_up: audio_ext_clk_up { compatible = "qcom,audio-ref-clk"; qcom,codec-mclk-clk-freq = <12288000>; pinctrl-names = "sleep", "active"; pinctrl-0 = <&i2s_mclk_sleep>; pinctrl-1 = <&i2s_mclk_active>; #clock-cells = <1>; }; wcd_rst_gpio: msm_cdc_pinctrl@77 { compatible = "qcom,msm-cdc-pinctrl"; qcom,cdc-rst-n-gpio = <&tlmm 77 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-pgd"; elemental-addr = [00 01 50 02 17 02]; 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>; cdc-vdd-buck-supply = <&pmxpoorwills_l6>; qcom,cdc-vdd-buck-voltage = <1800000 1800000>; qcom,cdc-vdd-buck-current = <650000>; cdc-buck-sido-supply = <&pmxpoorwills_l6>; qcom,cdc-buck-sido-voltage = <1800000 1800000>; qcom,cdc-buck-sido-current = <250000>; cdc-vdd-tx-h-supply = <&pmxpoorwills_l6>; qcom,cdc-vdd-tx-h-voltage = <1800000 1800000>; qcom,cdc-vdd-tx-h-current = <25000>; cdc-vdd-rx-h-supply = <&pmxpoorwills_l6>; qcom,cdc-vdd-rx-h-voltage = <1800000 1800000>; qcom,cdc-vdd-rx-h-current = <25000>; cdc-vddpx-1-supply = <&pmxpoorwills_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 = <12288000>; qcom,cdc-dmic-sample-rate = <4800000>; qcom,wdsp-cmpnt-dev-name = "tavil_codec"; }; };