diff options
author | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | 2018-02-09 02:18:31 +0000 |
---|---|---|
committer | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | 2018-02-13 16:12:50 +0000 |
commit | 7271e6d109e311a7bd00d68691e6ea8834065d5e (patch) | |
tree | 24f75587f15829ddc28efbb9005781ea727b1566 | |
parent | afd391fc26bd97db3840d03070d2a73c66b4b55c (diff) |
dts: arm64: apq8016-sbc: Add DSP based MI2S audio support
qrtr-cfg 1 && qrtr-ns && rmtfs -v &
echo start > /sys/devices/platform/soc/4080000.hexagon/remoteproc/remoteproc0/state
insmod snd-soc-apq8016-sbc.ko
To play on ADV7533 externl HDMI codec use below commands:
amixer cset iface=MIXER,name='QUAT_MI2S_RX Audio Mixer MultiMedia1' 1
aplay -D plughw:0,0 /usr/share/sounds/alsa/Front*C*
To play on WCD codec:
amixer cset iface=MIXER,name='PRI_MI2S_RX Audio Mixer MultiMedia2' 1
amixer cset iface=MIXER,name='RX1 MIX1 INP1' 'RX1'
amixer cset iface=MIXER,name='RX2 MIX1 INP1' 'RX2'
amixer cset iface=MIXER,name='RDAC2 MUX' 'RX2'
amixer cset iface=MIXER,name='HPHL' 1
amixer cset iface=MIXER,name='HPHR' 1
amixer set 'RX1 Digital' 0dB
amixer set 'RX2 Digital' 0dB
amixer cset iface=MIXER,name='RX1 Mute Switch' 0
amixer cset iface=MIXER,name='RX2 Mute Switch' 0
aplay -D plughw:0,1 /usr/share/sounds/alsa/Front*C*
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
-rw-r--r-- | arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi | 116 | ||||
-rw-r--r-- | arch/arm64/boot/dts/qcom/msm8916.dtsi | 51 |
2 files changed, 123 insertions, 44 deletions
diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi index 9ff848792712d..dc63eba8125ed 100644 --- a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi +++ b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi @@ -436,49 +436,6 @@ */ - sound: sound { - compatible = "qcom,apq8016-sbc-sndcard"; - reg = <0x07702000 0x4>, <0x07702004 0x4>; - reg-names = "mic-iomux", "spkr-iomux"; - - status = "okay"; - pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>; - pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>; - pinctrl-names = "default", "sleep"; - qcom,model = "DB410c"; - qcom,audio-routing = - "AMIC2", "MIC BIAS Internal2", - "AMIC3", "MIC BIAS External1"; - external-dai-link@0 { - link-name = "ADV7533"; - cpu { /* QUAT */ - sound-dai = <&lpass MI2S_QUATERNARY>; - }; - codec { - sound-dai = <&adv_bridge 0>; - }; - }; - - internal-codec-playback-dai-link@0 { /* I2S - Internal codec */ - link-name = "WCD"; - cpu { /* PRIMARY */ - sound-dai = <&lpass MI2S_PRIMARY>; - }; - codec { - sound-dai = <&lpass_codec 0>, <&wcd_codec 0>; - }; - }; - - internal-codec-capture-dai-link@0 { /* I2S - Internal codec */ - link-name = "WCD-Capture"; - cpu { /* PRIMARY */ - sound-dai = <&lpass MI2S_TERTIARY>; - }; - codec { - sound-dai = <&lpass_codec 1>, <&wcd_codec 1>; - }; - }; - }; spmi@200f000 { pm8916@0 { @@ -545,6 +502,79 @@ }; }; +&sound { + compatible = "qcom,apq8016-sbc-sndcard"; + reg = <0x07702000 0x4>, <0x07702004 0x4>; + reg-names = "mic-iomux", "spkr-iomux"; + status = "okay"; + pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>; + pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>; + pinctrl-names = "default", "sleep"; + qcom,model = "DB410c"; + qcom,audio-routing = + "AMIC2", "MIC BIAS Internal2", + "AMIC3", "MIC BIAS External1"; + + fe@1 { + is-fe; + link-name = "MultiMedia1 Playback"; + cpu { + //sound-dai = <&q6asm_dai MSM_FRONTEND_DAI_MULTIMEDIA1>; + sound-dai = <&q6asm 0>; + }; + platform { + //sound-dai = <&q6asm_dai MSM_FRONTEND_DAI_MULTIMEDIA1>; + sound-dai = <&q6asm 0>; + }; + }; + + fe@2 { + is-fe; + link-name = "MultiMedia2 Playback"; + cpu { + //sound-dai = <&q6asm_dai MSM_FRONTEND_DAI_MULTIMEDIA1>; + sound-dai = <&q6asm 1>; + + }; + platform { + //sound-dai = <&q6asm_dai MSM_FRONTEND_DAI_MULTIMEDIA1>; + sound-dai = <&q6asm 1>; + }; + }; + + be@1 { + link-name = "QUAT MI2S Playback"; + cpu { + //sound-dai = <&q6afe_dai QUATERNARY_MI2S_RX>; + sound-dai = <&q6afe 34>; + //sound-dai = <&q6afe_dai 3>; + }; + + platform { + sound-dai = <&q6adm>; + }; + + codec { + sound-dai = <&adv_bridge 0>; + }; + }; + + be@2 { + link-name = "PRI MI2S Playback"; + cpu { + sound-dai = <&q6afe 40>; + }; + + platform { + sound-dai = <&q6adm>; + }; + + codec { + sound-dai = <&lpass_codec 0>, <&wcd_codec 0>; + }; + }; +}; + &wcd_codec { status = "okay"; clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>; diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi index e51b049007260..7b2d867a756ed 100644 --- a/arch/arm64/boot/dts/qcom/msm8916.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi @@ -15,6 +15,7 @@ #include <dt-bindings/clock/qcom,gcc-msm8916.h> #include <dt-bindings/reset/qcom,gcc-msm8916.h> #include <dt-bindings/clock/qcom,rpmcc.h> +#include <dt-bindings/soc/qcom,apr.h> / { model = "Qualcomm Technologies, Inc. MSM8916"; @@ -919,6 +920,9 @@ reg = <0x04080000 0x100>, <0x04020000 0x040>; + #address-cells = <1>; + #size-cells = <1>; + ranges; reg-names = "qdsp6", "rmb"; interrupts-extended = <&intc 0 24 1>, @@ -947,7 +951,7 @@ qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>; - status = "disabled"; + status = "okay"; mba { memory-region = <&mba_mem>; @@ -965,6 +969,51 @@ qcom,remote-pid = <1>; label = "hexagon"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + + apr { + + #address-cells = <1>; + #size-cells = <1>; + ranges; + + compatible = "qcom,apr-v2"; + qcom,smd-channels = "apr_audio_svc"; + qcom,apr-dest-domain-id = <APR_DOMAIN_ADSP>; + + q6core { + qcom,apr-svc-name = "CORE"; + qcom,apr-svc-id = <APR_SVC_ADSP_CORE>; + compatible = "qcom,q6core"; + }; + + q6afe: q6afe { + compatible = "qcom,q6afe"; + qcom,apr-svc-name = "AFE"; + qcom,apr-svc-id = <APR_SVC_AFE>; + #sound-dai-cells = <1>; + }; + + q6asm: q6asm { + compatible = "qcom,q6asm"; + qcom,apr-svc-name = "ASM"; + qcom,apr-svc-id = <APR_SVC_ASM>; + #sound-dai-cells = <1>; + }; + + q6adm: q6adm { + compatible = "qcom,q6adm"; + qcom,apr-svc-name = "ADM"; + qcom,apr-svc-id = <APR_SVC_ADM>; + #sound-dai-cells = <0>; + }; + sound: sound { + }; + + }; }; }; |