xref: /linux/scripts/dtc/include-prefixes/arm64/qcom/qcs6490-audioreach.dtsi (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
4 *
5 * Common definitions for SC7280-based boards with AudioReach.
6 */
7
8#include <dt-bindings/clock/qcom,lpass-sc7280.h>
9#include <dt-bindings/soc/qcom,gpr.h>
10#include <dt-bindings/sound/qcom,q6afe.h>
11#include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
12
13&lpass_rx_macro {
14	/delete-property/ power-domains;
15	/delete-property/ power-domain-names;
16	clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
17		 <&q6prmcc LPASS_CLK_ID_TX_CORE_NPL_MCLK  LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
18		 <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
19		 <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
20		 <&lpass_va_macro>;
21	clock-names = "mclk",
22		      "npl",
23		      "macro",
24		      "dcodec",
25		      "fsgen";
26};
27
28&lpass_tlmm {
29	clocks = <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
30		 <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
31	clock-names = "core",
32		      "audio";
33};
34
35&lpass_tx_macro {
36	/delete-property/ power-domains;
37	/delete-property/ power-domain-names;
38	clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
39		 <&q6prmcc LPASS_CLK_ID_TX_CORE_NPL_MCLK  LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
40		 <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
41		 <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
42		 <&lpass_va_macro>;
43	clock-names = "mclk",
44		      "npl",
45		      "macro",
46		      "dcodec",
47		      "fsgen";
48};
49
50&lpass_va_macro {
51	/delete-property/ power-domains;
52	/delete-property/ power-domain-names;
53	clocks = <&q6prmcc LPASS_CLK_ID_VA_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
54		 <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
55		 <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
56	clock-names = "mclk",
57		      "macro",
58		      "dcodec";
59
60	pinctrl-0 = <&lpass_dmic01_clk>, <&lpass_dmic01_data>,
61		    <&lpass_dmic23_clk>, <&lpass_dmic23_data>;
62	pinctrl-names = "default";
63
64	qcom,dmic-sample-rate = <4800000>;
65};
66
67&lpass_wsa_macro {
68	clocks = <&q6prmcc LPASS_CLK_ID_TX_CORE_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
69		 <&q6prmcc LPASS_CLK_ID_TX_CORE_NPL_MCLK LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
70		 <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
71		 <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
72		 <&lpass_va_macro>;
73	clock-names = "mclk",
74		      "npl",
75		      "macro",
76		      "dcodec",
77		      "fsgen";
78};
79
80&remoteproc_adsp_glink {
81	/delete-node/ apr;
82
83	gpr {
84		compatible = "qcom,gpr";
85		qcom,glink-channels = "adsp_apps";
86		qcom,domain = <GPR_DOMAIN_ID_ADSP>;
87		qcom,intents = <512 20>;
88		#address-cells = <1>;
89		#size-cells = <0>;
90
91		q6apm: service@1 {
92			compatible = "qcom,q6apm";
93			reg = <GPR_APM_MODULE_IID>;
94			#sound-dai-cells = <0>;
95			qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
96
97			q6apmdai: dais {
98				compatible = "qcom,q6apm-dais";
99				iommus = <&apps_smmu 0x1801 0x0>;
100			};
101
102			q6apmbedai: bedais {
103				compatible = "qcom,q6apm-lpass-dais";
104				#sound-dai-cells = <1>;
105			};
106		};
107
108		q6prm: service@2 {
109			compatible = "qcom,q6prm";
110			reg = <GPR_PRM_MODULE_IID>;
111			qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
112
113			q6prmcc: clock-controller {
114				compatible = "qcom,q6prm-lpass-clocks";
115				#clock-cells = <2>;
116			};
117		};
118	};
119};
120