aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2018-02-09 02:18:31 +0000
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2018-02-13 16:12:50 +0000
commit7271e6d109e311a7bd00d68691e6ea8834065d5e (patch)
tree24f75587f15829ddc28efbb9005781ea727b1566
parentafd391fc26bd97db3840d03070d2a73c66b4b55c (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.dtsi116
-rw-r--r--arch/arm64/boot/dts/qcom/msm8916.dtsi51
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 {
+ };
+
+ };
};
};