Loading arch/arm64/boot/dts/qcom/sa8155-audio.dtsi +116 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,10 @@ }; &soc { gecko_core_platform: gecko_core_platform { compatible = "qcom,gecko-core-platform"; }; tdm_pri_rx: qcom,msm-dai-tdm-pri-rx { compatible = "qcom,msm-dai-tdm"; qcom,msm-cpudai-tdm-group-id = <37120>; Loading Loading @@ -596,6 +600,118 @@ qcom,msm-dai-q6 { }; }; &gecko_core_platform { msm_gecko_ion: qcom,msm-audio-ion { compatible = "qcom,msm-audio-ion"; qcom,smmu-version = <2>; qcom,smmu-enabled; iommus = <&apps_smmu 0x1b21 0x0>; }; sound-adp-star { compatible = "qcom,sa8155-gecko-asoc-snd-adp-star"; qcom,model = "sa8155-adp-star-gecko-snd-card"; qcom,mi2s-audio-intf; qcom,auxpcm-audio-intf; qcom,msm-mi2s-master = <1>, <1>, <1>, <1>, <1>; qcom,sec-tdm-gpios = <&tdm_sec_rx>; qcom,tert-tdm-gpios = <&tdm_tert_rx>; qcom,quat-tdm-gpios = <&tdm_quat_rx>; qcom,quin-tdm-gpios = <&tdm_quin_rx>; asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>, <&loopback>, <&compress>, <&hostless>, <&afe>, <&lsm>, <&routing>, <&compr>, <&pcm_noirq>, <&loopback1>, <&pcm_dtmf>; asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1", "msm-pcm-dsp.2", "msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback", "msm-compress-dsp", "msm-pcm-hostless", "msm-pcm-afe", "msm-lsm-client", "msm-pcm-routing", "msm-compr-dsp", "msm-pcm-dsp-noirq", "msm-pcm-loopback.1", "msm-pcm-dtmf"; asoc-cpu = <&dai_hdmi>, <&dai_dp>, <&dai_mi2s0>, <&dai_mi2s1>, <&dai_mi2s2>, <&dai_mi2s3>, <&dai_mi2s4>, <&dai_pri_auxpcm>, <&dai_sec_auxpcm>, <&dai_tert_auxpcm>, <&dai_quat_auxpcm>, <&dai_quin_auxpcm>, <&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>, <&afe_proxy_tx>, <&incall_record_rx>, <&incall_record_tx>, <&incall_music_rx>, <&incall_music_2_rx>, <&usb_audio_rx>, <&usb_audio_tx>, <&dai_pri_tdm_rx_0>, <&dai_pri_tdm_rx_1>, <&dai_pri_tdm_rx_2>, <&dai_pri_tdm_rx_3>, <&dai_pri_tdm_tx_0>, <&dai_pri_tdm_tx_1>, <&dai_pri_tdm_tx_2>, <&dai_pri_tdm_tx_3>, <&dai_sec_tdm_rx_0>, <&dai_sec_tdm_rx_1>, <&dai_sec_tdm_rx_2>, <&dai_sec_tdm_rx_3>, <&dai_sec_tdm_rx_7>, <&dai_sec_tdm_tx_0>, <&dai_sec_tdm_tx_1>, <&dai_sec_tdm_tx_2>, <&dai_sec_tdm_tx_3>, <&dai_tert_tdm_rx_0>, <&dai_tert_tdm_rx_1>, <&dai_tert_tdm_rx_2>, <&dai_tert_tdm_rx_3>, <&dai_tert_tdm_rx_4>, <&dai_tert_tdm_tx_0>, <&dai_tert_tdm_tx_1>, <&dai_tert_tdm_tx_2>, <&dai_tert_tdm_tx_3>, <&dai_tert_tdm_tx_7>, <&dai_quat_tdm_rx_0>, <&dai_quat_tdm_rx_1>, <&dai_quat_tdm_rx_2>, <&dai_quat_tdm_rx_3>, <&dai_quat_tdm_rx_7>, <&dai_quat_tdm_tx_0>, <&dai_quat_tdm_tx_1>, <&dai_quat_tdm_tx_2>, <&dai_quat_tdm_tx_3>, <&dai_quat_tdm_tx_7>, <&dai_quin_tdm_rx_0>, <&dai_quin_tdm_rx_1>, <&dai_quin_tdm_rx_2>, <&dai_quin_tdm_rx_3>, <&dai_quin_tdm_rx_7>, <&dai_quin_tdm_tx_0>, <&dai_quin_tdm_tx_1>, <&dai_quin_tdm_tx_2>, <&dai_quin_tdm_tx_3>, <&dai_quin_tdm_tx_7>; asoc-cpu-names = "msm-dai-q6-hdmi.8", "msm-dai-q6-dp.24608", "msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1", "msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3", "msm-dai-q6-mi2s.4", "msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2", "msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4", "msm-dai-q6-auxpcm.5", "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-dev.32770", "msm-dai-q6-dev.28672", "msm-dai-q6-dev.28673", "msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36866", "msm-dai-q6-tdm.36868", "msm-dai-q6-tdm.36870", "msm-dai-q6-tdm.36865", "msm-dai-q6-tdm.36867", "msm-dai-q6-tdm.36869", "msm-dai-q6-tdm.36871", "msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36882", "msm-dai-q6-tdm.36884", "msm-dai-q6-tdm.36886", "msm-dai-q6-tdm.36894", "msm-dai-q6-tdm.36881", "msm-dai-q6-tdm.36883", "msm-dai-q6-tdm.36885", "msm-dai-q6-tdm.36887", "msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36898", "msm-dai-q6-tdm.36900", "msm-dai-q6-tdm.36902", "msm-dai-q6-tdm.36904", "msm-dai-q6-tdm.36897", "msm-dai-q6-tdm.36899", "msm-dai-q6-tdm.36901", "msm-dai-q6-tdm.36903", "msm-dai-q6-tdm.36911", "msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36914", "msm-dai-q6-tdm.36916", "msm-dai-q6-tdm.36918", "msm-dai-q6-tdm.36926", "msm-dai-q6-tdm.36913", "msm-dai-q6-tdm.36915", "msm-dai-q6-tdm.36917", "msm-dai-q6-tdm.36919", "msm-dai-q6-tdm.36927", "msm-dai-q6-tdm.36928", "msm-dai-q6-tdm.36930", "msm-dai-q6-tdm.36932", "msm-dai-q6-tdm.36934", "msm-dai-q6-tdm.36942", "msm-dai-q6-tdm.36929", "msm-dai-q6-tdm.36931", "msm-dai-q6-tdm.36933", "msm-dai-q6-tdm.36935", "msm-dai-q6-tdm.36943"; asoc-codec = <&stub_codec>; asoc-codec-names = "msm-stub-codec.1"; }; }; &msm_gecko_ion { iommus = <&apps_smmu 0x1b21 0x0>; qcom,smmu-sid-mask = /bits/ 64 <0xf>; }; &qupv3_se4_i2c { status = "disabled"; }; Loading arch/arm64/boot/dts/qcom/sm8150.dtsi +21 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <dt-bindings/clock/qcom,cpucc-sm8150.h> #include <dt-bindings/clock/qcom,npucc-sm8150.h> #include <dt-bindings/clock/qcom,rpmh.h> #include <dt-bindings/sound/qcom,gpr.h> #include <dt-bindings/clock/qcom,aop-qmp.h> #include <dt-bindings/regulator/qcom,rpmh-regulator.h> #include <dt-bindings/interrupt-controller/arm-gic.h> Loading Loading @@ -2737,6 +2738,26 @@ qcom,intents = <0x200 20>; }; qcom,gpr { compatible = "qcom,gpr"; qcom,glink-channels = "to_apps"; qcom,intents = <0x200 20>; reg = <GPR_DOMAIN_ADSP>; gecko_core { compatible = "qcom,gecko_core"; reg = <GPR_SVC_ADSP_CORE>; }; audio-pkt { compatible = "qcom,audio-pkt"; qcom,audiopkt-ch-name = "apr_audio_svc"; reg = <GPR_SVC_MAX>; }; q6prm { compatible = "qcom,q6prm"; reg = <GPR_SVC_ASM>; }; }; qcom,msm_fastrpc_rpmsg { compatible = "qcom,msm-fastrpc-rpmsg"; qcom,glink-channels = "fastrpcglink-apps-dsp"; Loading include/dt-bindings/sound/qcom,gpr.h 0 → 100644 +39 −0 Original line number Diff line number Diff line /* Copyright (c) 2020, 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. */ #ifndef __DT_BINDINGS_QCOM_GPR_H #define __DT_BINDINGS_QCOM_GPR_H /* Domain IDs */ #define GPR_DOMAIN_SIM 0x1 #define GPR_DOMAIN_PC 0x2 #define GPR_DOMAIN_MODEM 0x3 #define GPR_DOMAIN_ADSP 0x4 #define GPR_DOMAIN_APPS 0x5 #define GPR_DOMAIN_MAX 0x6 /* ADSP service IDs */ #define GPR_SVC_ADSP_CORE 0x3 #define GPR_SVC_AFE 0x4 #define GPR_SVC_VSM 0x5 #define GPR_SVC_VPM 0x6 #define GPR_SVC_ASM 0x7 #define GPR_SVC_ADM 0x8 #define GPR_SVC_ADSP_MVM 0x09 #define GPR_SVC_ADSP_CVS 0x0A #define GPR_SVC_ADSP_CVP 0x0B #define GPR_SVC_USM 0x0C #define GPR_SVC_LSM 0x0D #define GPR_SVC_VIDC 0x16 #define GPR_SVC_MAX 0x17 #endif /* __DT_BINDINGS_QCOM_GPR_H */ include/linux/mod_devicetable.h +12 −0 Original line number Diff line number Diff line Loading @@ -452,6 +452,18 @@ struct spi_device_id { kernel_ulong_t driver_data; /* Data private to the driver */ }; /* gpr */ #define GPR_NAME_SIZE 32 #define GPR_MODULE_PREFIX "gpr:" struct gpr_device_id { char name[GPR_NAME_SIZE]; __u32 domain_id; __u32 svc_id; __u32 svc_version; kernel_ulong_t driver_data; /* Data private to the driver */ }; #define SPMI_NAME_SIZE 32 #define SPMI_MODULE_PREFIX "spmi:" Loading Loading
arch/arm64/boot/dts/qcom/sa8155-audio.dtsi +116 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,10 @@ }; &soc { gecko_core_platform: gecko_core_platform { compatible = "qcom,gecko-core-platform"; }; tdm_pri_rx: qcom,msm-dai-tdm-pri-rx { compatible = "qcom,msm-dai-tdm"; qcom,msm-cpudai-tdm-group-id = <37120>; Loading Loading @@ -596,6 +600,118 @@ qcom,msm-dai-q6 { }; }; &gecko_core_platform { msm_gecko_ion: qcom,msm-audio-ion { compatible = "qcom,msm-audio-ion"; qcom,smmu-version = <2>; qcom,smmu-enabled; iommus = <&apps_smmu 0x1b21 0x0>; }; sound-adp-star { compatible = "qcom,sa8155-gecko-asoc-snd-adp-star"; qcom,model = "sa8155-adp-star-gecko-snd-card"; qcom,mi2s-audio-intf; qcom,auxpcm-audio-intf; qcom,msm-mi2s-master = <1>, <1>, <1>, <1>, <1>; qcom,sec-tdm-gpios = <&tdm_sec_rx>; qcom,tert-tdm-gpios = <&tdm_tert_rx>; qcom,quat-tdm-gpios = <&tdm_quat_rx>; qcom,quin-tdm-gpios = <&tdm_quin_rx>; asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>, <&loopback>, <&compress>, <&hostless>, <&afe>, <&lsm>, <&routing>, <&compr>, <&pcm_noirq>, <&loopback1>, <&pcm_dtmf>; asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1", "msm-pcm-dsp.2", "msm-voip-dsp", "msm-pcm-voice", "msm-pcm-loopback", "msm-compress-dsp", "msm-pcm-hostless", "msm-pcm-afe", "msm-lsm-client", "msm-pcm-routing", "msm-compr-dsp", "msm-pcm-dsp-noirq", "msm-pcm-loopback.1", "msm-pcm-dtmf"; asoc-cpu = <&dai_hdmi>, <&dai_dp>, <&dai_mi2s0>, <&dai_mi2s1>, <&dai_mi2s2>, <&dai_mi2s3>, <&dai_mi2s4>, <&dai_pri_auxpcm>, <&dai_sec_auxpcm>, <&dai_tert_auxpcm>, <&dai_quat_auxpcm>, <&dai_quin_auxpcm>, <&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>, <&afe_proxy_tx>, <&incall_record_rx>, <&incall_record_tx>, <&incall_music_rx>, <&incall_music_2_rx>, <&usb_audio_rx>, <&usb_audio_tx>, <&dai_pri_tdm_rx_0>, <&dai_pri_tdm_rx_1>, <&dai_pri_tdm_rx_2>, <&dai_pri_tdm_rx_3>, <&dai_pri_tdm_tx_0>, <&dai_pri_tdm_tx_1>, <&dai_pri_tdm_tx_2>, <&dai_pri_tdm_tx_3>, <&dai_sec_tdm_rx_0>, <&dai_sec_tdm_rx_1>, <&dai_sec_tdm_rx_2>, <&dai_sec_tdm_rx_3>, <&dai_sec_tdm_rx_7>, <&dai_sec_tdm_tx_0>, <&dai_sec_tdm_tx_1>, <&dai_sec_tdm_tx_2>, <&dai_sec_tdm_tx_3>, <&dai_tert_tdm_rx_0>, <&dai_tert_tdm_rx_1>, <&dai_tert_tdm_rx_2>, <&dai_tert_tdm_rx_3>, <&dai_tert_tdm_rx_4>, <&dai_tert_tdm_tx_0>, <&dai_tert_tdm_tx_1>, <&dai_tert_tdm_tx_2>, <&dai_tert_tdm_tx_3>, <&dai_tert_tdm_tx_7>, <&dai_quat_tdm_rx_0>, <&dai_quat_tdm_rx_1>, <&dai_quat_tdm_rx_2>, <&dai_quat_tdm_rx_3>, <&dai_quat_tdm_rx_7>, <&dai_quat_tdm_tx_0>, <&dai_quat_tdm_tx_1>, <&dai_quat_tdm_tx_2>, <&dai_quat_tdm_tx_3>, <&dai_quat_tdm_tx_7>, <&dai_quin_tdm_rx_0>, <&dai_quin_tdm_rx_1>, <&dai_quin_tdm_rx_2>, <&dai_quin_tdm_rx_3>, <&dai_quin_tdm_rx_7>, <&dai_quin_tdm_tx_0>, <&dai_quin_tdm_tx_1>, <&dai_quin_tdm_tx_2>, <&dai_quin_tdm_tx_3>, <&dai_quin_tdm_tx_7>; asoc-cpu-names = "msm-dai-q6-hdmi.8", "msm-dai-q6-dp.24608", "msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1", "msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3", "msm-dai-q6-mi2s.4", "msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2", "msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4", "msm-dai-q6-auxpcm.5", "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-dev.32770", "msm-dai-q6-dev.28672", "msm-dai-q6-dev.28673", "msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36866", "msm-dai-q6-tdm.36868", "msm-dai-q6-tdm.36870", "msm-dai-q6-tdm.36865", "msm-dai-q6-tdm.36867", "msm-dai-q6-tdm.36869", "msm-dai-q6-tdm.36871", "msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36882", "msm-dai-q6-tdm.36884", "msm-dai-q6-tdm.36886", "msm-dai-q6-tdm.36894", "msm-dai-q6-tdm.36881", "msm-dai-q6-tdm.36883", "msm-dai-q6-tdm.36885", "msm-dai-q6-tdm.36887", "msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36898", "msm-dai-q6-tdm.36900", "msm-dai-q6-tdm.36902", "msm-dai-q6-tdm.36904", "msm-dai-q6-tdm.36897", "msm-dai-q6-tdm.36899", "msm-dai-q6-tdm.36901", "msm-dai-q6-tdm.36903", "msm-dai-q6-tdm.36911", "msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36914", "msm-dai-q6-tdm.36916", "msm-dai-q6-tdm.36918", "msm-dai-q6-tdm.36926", "msm-dai-q6-tdm.36913", "msm-dai-q6-tdm.36915", "msm-dai-q6-tdm.36917", "msm-dai-q6-tdm.36919", "msm-dai-q6-tdm.36927", "msm-dai-q6-tdm.36928", "msm-dai-q6-tdm.36930", "msm-dai-q6-tdm.36932", "msm-dai-q6-tdm.36934", "msm-dai-q6-tdm.36942", "msm-dai-q6-tdm.36929", "msm-dai-q6-tdm.36931", "msm-dai-q6-tdm.36933", "msm-dai-q6-tdm.36935", "msm-dai-q6-tdm.36943"; asoc-codec = <&stub_codec>; asoc-codec-names = "msm-stub-codec.1"; }; }; &msm_gecko_ion { iommus = <&apps_smmu 0x1b21 0x0>; qcom,smmu-sid-mask = /bits/ 64 <0xf>; }; &qupv3_se4_i2c { status = "disabled"; }; Loading
arch/arm64/boot/dts/qcom/sm8150.dtsi +21 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ #include <dt-bindings/clock/qcom,cpucc-sm8150.h> #include <dt-bindings/clock/qcom,npucc-sm8150.h> #include <dt-bindings/clock/qcom,rpmh.h> #include <dt-bindings/sound/qcom,gpr.h> #include <dt-bindings/clock/qcom,aop-qmp.h> #include <dt-bindings/regulator/qcom,rpmh-regulator.h> #include <dt-bindings/interrupt-controller/arm-gic.h> Loading Loading @@ -2737,6 +2738,26 @@ qcom,intents = <0x200 20>; }; qcom,gpr { compatible = "qcom,gpr"; qcom,glink-channels = "to_apps"; qcom,intents = <0x200 20>; reg = <GPR_DOMAIN_ADSP>; gecko_core { compatible = "qcom,gecko_core"; reg = <GPR_SVC_ADSP_CORE>; }; audio-pkt { compatible = "qcom,audio-pkt"; qcom,audiopkt-ch-name = "apr_audio_svc"; reg = <GPR_SVC_MAX>; }; q6prm { compatible = "qcom,q6prm"; reg = <GPR_SVC_ASM>; }; }; qcom,msm_fastrpc_rpmsg { compatible = "qcom,msm-fastrpc-rpmsg"; qcom,glink-channels = "fastrpcglink-apps-dsp"; Loading
include/dt-bindings/sound/qcom,gpr.h 0 → 100644 +39 −0 Original line number Diff line number Diff line /* Copyright (c) 2020, 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. */ #ifndef __DT_BINDINGS_QCOM_GPR_H #define __DT_BINDINGS_QCOM_GPR_H /* Domain IDs */ #define GPR_DOMAIN_SIM 0x1 #define GPR_DOMAIN_PC 0x2 #define GPR_DOMAIN_MODEM 0x3 #define GPR_DOMAIN_ADSP 0x4 #define GPR_DOMAIN_APPS 0x5 #define GPR_DOMAIN_MAX 0x6 /* ADSP service IDs */ #define GPR_SVC_ADSP_CORE 0x3 #define GPR_SVC_AFE 0x4 #define GPR_SVC_VSM 0x5 #define GPR_SVC_VPM 0x6 #define GPR_SVC_ASM 0x7 #define GPR_SVC_ADM 0x8 #define GPR_SVC_ADSP_MVM 0x09 #define GPR_SVC_ADSP_CVS 0x0A #define GPR_SVC_ADSP_CVP 0x0B #define GPR_SVC_USM 0x0C #define GPR_SVC_LSM 0x0D #define GPR_SVC_VIDC 0x16 #define GPR_SVC_MAX 0x17 #endif /* __DT_BINDINGS_QCOM_GPR_H */
include/linux/mod_devicetable.h +12 −0 Original line number Diff line number Diff line Loading @@ -452,6 +452,18 @@ struct spi_device_id { kernel_ulong_t driver_data; /* Data private to the driver */ }; /* gpr */ #define GPR_NAME_SIZE 32 #define GPR_MODULE_PREFIX "gpr:" struct gpr_device_id { char name[GPR_NAME_SIZE]; __u32 domain_id; __u32 svc_id; __u32 svc_version; kernel_ulong_t driver_data; /* Data private to the driver */ }; #define SPMI_NAME_SIZE 32 #define SPMI_MODULE_PREFIX "spmi:" Loading