xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/mt7623n.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright © 2017-2020 MediaTek Inc.
4*4882a593Smuzhiyun * Author: Sean Wang <sean.wang@mediatek.com>
5*4882a593Smuzhiyun *	   Ryder Lee <ryder.lee@mediatek.com>
6*4882a593Smuzhiyun *
7*4882a593Smuzhiyun */
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun#include "mt7623.dtsi"
10*4882a593Smuzhiyun#include <dt-bindings/memory/mt2701-larb-port.h>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun/ {
13*4882a593Smuzhiyun	aliases {
14*4882a593Smuzhiyun		rdma0 = &rdma0;
15*4882a593Smuzhiyun		rdma1 = &rdma1;
16*4882a593Smuzhiyun	};
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	g3dsys: syscon@13000000 {
19*4882a593Smuzhiyun		compatible = "mediatek,mt7623-g3dsys",
20*4882a593Smuzhiyun			     "mediatek,mt2701-g3dsys",
21*4882a593Smuzhiyun			     "syscon";
22*4882a593Smuzhiyun		reg = <0 0x13000000 0 0x200>;
23*4882a593Smuzhiyun		#clock-cells = <1>;
24*4882a593Smuzhiyun		#reset-cells = <1>;
25*4882a593Smuzhiyun	};
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun	mali: gpu@13040000 {
28*4882a593Smuzhiyun		compatible = "mediatek,mt7623-mali", "arm,mali-450";
29*4882a593Smuzhiyun		reg = <0 0x13040000 0 0x30000>;
30*4882a593Smuzhiyun		interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_LOW>,
31*4882a593Smuzhiyun			     <GIC_SPI 171 IRQ_TYPE_LEVEL_LOW>,
32*4882a593Smuzhiyun			     <GIC_SPI 172 IRQ_TYPE_LEVEL_LOW>,
33*4882a593Smuzhiyun			     <GIC_SPI 173 IRQ_TYPE_LEVEL_LOW>,
34*4882a593Smuzhiyun			     <GIC_SPI 174 IRQ_TYPE_LEVEL_LOW>,
35*4882a593Smuzhiyun			     <GIC_SPI 175 IRQ_TYPE_LEVEL_LOW>,
36*4882a593Smuzhiyun			     <GIC_SPI 176 IRQ_TYPE_LEVEL_LOW>,
37*4882a593Smuzhiyun			     <GIC_SPI 177 IRQ_TYPE_LEVEL_LOW>,
38*4882a593Smuzhiyun			     <GIC_SPI 178 IRQ_TYPE_LEVEL_LOW>,
39*4882a593Smuzhiyun			     <GIC_SPI 179 IRQ_TYPE_LEVEL_LOW>,
40*4882a593Smuzhiyun			     <GIC_SPI 180 IRQ_TYPE_LEVEL_LOW>;
41*4882a593Smuzhiyun		interrupt-names = "gp", "gpmmu", "pp0", "ppmmu0", "pp1",
42*4882a593Smuzhiyun				  "ppmmu1", "pp2", "ppmmu2", "pp3", "ppmmu3",
43*4882a593Smuzhiyun				  "pp";
44*4882a593Smuzhiyun		clocks = <&topckgen CLK_TOP_MMPLL>,
45*4882a593Smuzhiyun			 <&g3dsys CLK_G3DSYS_CORE>;
46*4882a593Smuzhiyun		clock-names = "bus", "core";
47*4882a593Smuzhiyun		power-domains = <&scpsys MT2701_POWER_DOMAIN_MFG>;
48*4882a593Smuzhiyun		resets = <&g3dsys MT2701_G3DSYS_CORE_RST>;
49*4882a593Smuzhiyun	};
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun	mmsys: syscon@14000000 {
52*4882a593Smuzhiyun		compatible = "mediatek,mt7623-mmsys",
53*4882a593Smuzhiyun			     "mediatek,mt2701-mmsys",
54*4882a593Smuzhiyun			     "syscon";
55*4882a593Smuzhiyun		reg = <0 0x14000000 0 0x1000>;
56*4882a593Smuzhiyun		#clock-cells = <1>;
57*4882a593Smuzhiyun	};
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun	larb0: larb@14010000 {
60*4882a593Smuzhiyun		compatible = "mediatek,mt7623-smi-larb",
61*4882a593Smuzhiyun			     "mediatek,mt2701-smi-larb";
62*4882a593Smuzhiyun		reg = <0 0x14010000 0 0x1000>;
63*4882a593Smuzhiyun		mediatek,smi = <&smi_common>;
64*4882a593Smuzhiyun		mediatek,larb-id = <0>;
65*4882a593Smuzhiyun		clocks = <&mmsys CLK_MM_SMI_LARB0>,
66*4882a593Smuzhiyun			 <&mmsys CLK_MM_SMI_LARB0>;
67*4882a593Smuzhiyun		clock-names = "apb", "smi";
68*4882a593Smuzhiyun		power-domains = <&scpsys MT2701_POWER_DOMAIN_DISP>;
69*4882a593Smuzhiyun	};
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun	larb1: larb@16010000 {
72*4882a593Smuzhiyun		compatible = "mediatek,mt7623-smi-larb",
73*4882a593Smuzhiyun			     "mediatek,mt2701-smi-larb";
74*4882a593Smuzhiyun		reg = <0 0x16010000 0 0x1000>;
75*4882a593Smuzhiyun		mediatek,smi = <&smi_common>;
76*4882a593Smuzhiyun		mediatek,larb-id = <1>;
77*4882a593Smuzhiyun		clocks = <&vdecsys CLK_VDEC_CKGEN>,
78*4882a593Smuzhiyun			 <&vdecsys CLK_VDEC_LARB>;
79*4882a593Smuzhiyun		clock-names = "apb", "smi";
80*4882a593Smuzhiyun		power-domains = <&scpsys MT2701_POWER_DOMAIN_VDEC>;
81*4882a593Smuzhiyun	};
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun	larb2: larb@15001000 {
84*4882a593Smuzhiyun		compatible = "mediatek,mt7623-smi-larb",
85*4882a593Smuzhiyun			     "mediatek,mt2701-smi-larb";
86*4882a593Smuzhiyun		reg = <0 0x15001000 0 0x1000>;
87*4882a593Smuzhiyun		mediatek,smi = <&smi_common>;
88*4882a593Smuzhiyun		mediatek,larb-id = <2>;
89*4882a593Smuzhiyun		clocks = <&imgsys CLK_IMG_SMI_COMM>,
90*4882a593Smuzhiyun			 <&imgsys CLK_IMG_SMI_COMM>;
91*4882a593Smuzhiyun		clock-names = "apb", "smi";
92*4882a593Smuzhiyun		power-domains = <&scpsys MT2701_POWER_DOMAIN_ISP>;
93*4882a593Smuzhiyun	};
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun	imgsys: syscon@15000000 {
96*4882a593Smuzhiyun		compatible = "mediatek,mt7623-imgsys",
97*4882a593Smuzhiyun			     "mediatek,mt2701-imgsys",
98*4882a593Smuzhiyun			     "syscon";
99*4882a593Smuzhiyun		reg = <0 0x15000000 0 0x1000>;
100*4882a593Smuzhiyun		#clock-cells = <1>;
101*4882a593Smuzhiyun	};
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun	iommu: mmsys_iommu@10205000 {
104*4882a593Smuzhiyun		compatible = "mediatek,mt7623-m4u",
105*4882a593Smuzhiyun			     "mediatek,mt2701-m4u";
106*4882a593Smuzhiyun		reg = <0 0x10205000 0 0x1000>;
107*4882a593Smuzhiyun		interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_LOW>;
108*4882a593Smuzhiyun		clocks = <&infracfg CLK_INFRA_M4U>;
109*4882a593Smuzhiyun		clock-names = "bclk";
110*4882a593Smuzhiyun		mediatek,larbs = <&larb0 &larb1 &larb2>;
111*4882a593Smuzhiyun		#iommu-cells = <1>;
112*4882a593Smuzhiyun	};
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun	jpegdec: jpegdec@15004000 {
115*4882a593Smuzhiyun		compatible = "mediatek,mt7623-jpgdec",
116*4882a593Smuzhiyun			     "mediatek,mt2701-jpgdec";
117*4882a593Smuzhiyun		reg = <0 0x15004000 0 0x1000>;
118*4882a593Smuzhiyun		interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_LOW>;
119*4882a593Smuzhiyun		clocks =  <&imgsys CLK_IMG_JPGDEC_SMI>,
120*4882a593Smuzhiyun			  <&imgsys CLK_IMG_JPGDEC>;
121*4882a593Smuzhiyun		clock-names = "jpgdec-smi",
122*4882a593Smuzhiyun			      "jpgdec";
123*4882a593Smuzhiyun		power-domains = <&scpsys MT2701_POWER_DOMAIN_ISP>;
124*4882a593Smuzhiyun		mediatek,larb = <&larb2>;
125*4882a593Smuzhiyun		iommus = <&iommu MT2701_M4U_PORT_JPGDEC_WDMA>,
126*4882a593Smuzhiyun			 <&iommu MT2701_M4U_PORT_JPGDEC_BSDMA>;
127*4882a593Smuzhiyun	};
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun	smi_common: smi@1000c000 {
130*4882a593Smuzhiyun		compatible = "mediatek,mt7623-smi-common",
131*4882a593Smuzhiyun			     "mediatek,mt2701-smi-common";
132*4882a593Smuzhiyun		reg = <0 0x1000c000 0 0x1000>;
133*4882a593Smuzhiyun		clocks = <&infracfg CLK_INFRA_SMI>,
134*4882a593Smuzhiyun			 <&mmsys CLK_MM_SMI_COMMON>,
135*4882a593Smuzhiyun			 <&infracfg CLK_INFRA_SMI>;
136*4882a593Smuzhiyun		clock-names = "apb", "smi", "async";
137*4882a593Smuzhiyun		power-domains = <&scpsys MT2701_POWER_DOMAIN_DISP>;
138*4882a593Smuzhiyun	};
139*4882a593Smuzhiyun
140*4882a593Smuzhiyun	ovl: ovl@14007000 {
141*4882a593Smuzhiyun		compatible = "mediatek,mt7623-disp-ovl",
142*4882a593Smuzhiyun			     "mediatek,mt2701-disp-ovl";
143*4882a593Smuzhiyun		reg = <0 0x14007000 0 0x1000>;
144*4882a593Smuzhiyun		interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_LOW>;
145*4882a593Smuzhiyun		clocks = <&mmsys CLK_MM_DISP_OVL>;
146*4882a593Smuzhiyun		iommus = <&iommu MT2701_M4U_PORT_DISP_OVL_0>;
147*4882a593Smuzhiyun		mediatek,larb = <&larb0>;
148*4882a593Smuzhiyun	};
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun	rdma0: rdma@14008000 {
151*4882a593Smuzhiyun		compatible = "mediatek,mt7623-disp-rdma",
152*4882a593Smuzhiyun			     "mediatek,mt2701-disp-rdma";
153*4882a593Smuzhiyun		reg = <0 0x14008000 0 0x1000>;
154*4882a593Smuzhiyun		interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_LOW>;
155*4882a593Smuzhiyun		clocks = <&mmsys CLK_MM_DISP_RDMA>;
156*4882a593Smuzhiyun		iommus = <&iommu MT2701_M4U_PORT_DISP_RDMA>;
157*4882a593Smuzhiyun		mediatek,larb = <&larb0>;
158*4882a593Smuzhiyun	};
159*4882a593Smuzhiyun
160*4882a593Smuzhiyun	wdma@14009000 {
161*4882a593Smuzhiyun		compatible = "mediatek,mt7623-disp-wdma",
162*4882a593Smuzhiyun			     "mediatek,mt2701-disp-wdma";
163*4882a593Smuzhiyun		reg = <0 0x14009000 0 0x1000>;
164*4882a593Smuzhiyun		interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_LOW>;
165*4882a593Smuzhiyun		clocks = <&mmsys CLK_MM_DISP_WDMA>;
166*4882a593Smuzhiyun		iommus = <&iommu MT2701_M4U_PORT_DISP_WDMA>;
167*4882a593Smuzhiyun		mediatek,larb = <&larb0>;
168*4882a593Smuzhiyun	};
169*4882a593Smuzhiyun
170*4882a593Smuzhiyun	bls: pwm@1400a000 {
171*4882a593Smuzhiyun		compatible = "mediatek,mt7623-disp-pwm",
172*4882a593Smuzhiyun			     "mediatek,mt2701-disp-pwm";
173*4882a593Smuzhiyun		reg = <0 0x1400a000 0 0x1000>;
174*4882a593Smuzhiyun		#pwm-cells = <2>;
175*4882a593Smuzhiyun		clocks = <&mmsys CLK_MM_MDP_BLS_26M>,
176*4882a593Smuzhiyun			 <&mmsys CLK_MM_DISP_BLS>;
177*4882a593Smuzhiyun		clock-names = "main", "mm";
178*4882a593Smuzhiyun		status = "disabled";
179*4882a593Smuzhiyun	};
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun	color: color@1400b000 {
182*4882a593Smuzhiyun		compatible = "mediatek,mt7623-disp-color",
183*4882a593Smuzhiyun			     "mediatek,mt2701-disp-color";
184*4882a593Smuzhiyun		reg = <0 0x1400b000 0 0x1000>;
185*4882a593Smuzhiyun		interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_LOW>;
186*4882a593Smuzhiyun		clocks = <&mmsys CLK_MM_DISP_COLOR>;
187*4882a593Smuzhiyun	};
188*4882a593Smuzhiyun
189*4882a593Smuzhiyun	dsi: dsi@1400c000 {
190*4882a593Smuzhiyun		compatible = "mediatek,mt7623-dsi",
191*4882a593Smuzhiyun			     "mediatek,mt2701-dsi";
192*4882a593Smuzhiyun		reg = <0 0x1400c000 0 0x1000>;
193*4882a593Smuzhiyun		interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_LOW>;
194*4882a593Smuzhiyun		clocks = <&mmsys CLK_MM_DSI_ENGINE>,
195*4882a593Smuzhiyun			 <&mmsys CLK_MM_DSI_DIG>,
196*4882a593Smuzhiyun			 <&mipi_tx0>;
197*4882a593Smuzhiyun		clock-names = "engine", "digital", "hs";
198*4882a593Smuzhiyun		phys = <&mipi_tx0>;
199*4882a593Smuzhiyun		phy-names = "dphy";
200*4882a593Smuzhiyun		status = "disabled";
201*4882a593Smuzhiyun	};
202*4882a593Smuzhiyun
203*4882a593Smuzhiyun	mutex: mutex@1400e000 {
204*4882a593Smuzhiyun		compatible = "mediatek,mt7623-disp-mutex",
205*4882a593Smuzhiyun			     "mediatek,mt2701-disp-mutex";
206*4882a593Smuzhiyun		reg = <0 0x1400e000 0 0x1000>;
207*4882a593Smuzhiyun		interrupts = <GIC_SPI 161 IRQ_TYPE_LEVEL_LOW>;
208*4882a593Smuzhiyun		clocks = <&mmsys CLK_MM_MUTEX_32K>;
209*4882a593Smuzhiyun	};
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun	rdma1: rdma@14012000 {
212*4882a593Smuzhiyun		compatible = "mediatek,mt7623-disp-rdma",
213*4882a593Smuzhiyun			     "mediatek,mt2701-disp-rdma";
214*4882a593Smuzhiyun		reg = <0 0x14012000 0 0x1000>;
215*4882a593Smuzhiyun		interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_LOW>;
216*4882a593Smuzhiyun		clocks = <&mmsys CLK_MM_DISP_RDMA1>;
217*4882a593Smuzhiyun		iommus = <&iommu MT2701_M4U_PORT_DISP_RDMA1>;
218*4882a593Smuzhiyun		mediatek,larb = <&larb0>;
219*4882a593Smuzhiyun	};
220*4882a593Smuzhiyun
221*4882a593Smuzhiyun	dpi0: dpi@14014000 {
222*4882a593Smuzhiyun		compatible = "mediatek,mt7623-dpi",
223*4882a593Smuzhiyun			     "mediatek,mt2701-dpi";
224*4882a593Smuzhiyun		reg = <0 0x14014000 0 0x1000>;
225*4882a593Smuzhiyun		interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>;
226*4882a593Smuzhiyun		clocks = <&mmsys CLK_MM_DPI1_DIGL>,
227*4882a593Smuzhiyun			 <&mmsys CLK_MM_DPI1_ENGINE>,
228*4882a593Smuzhiyun			 <&apmixedsys CLK_APMIXED_TVDPLL>;
229*4882a593Smuzhiyun		clock-names = "pixel", "engine", "pll";
230*4882a593Smuzhiyun		status = "disabled";
231*4882a593Smuzhiyun	};
232*4882a593Smuzhiyun
233*4882a593Smuzhiyun	hdmi0: hdmi@14015000 {
234*4882a593Smuzhiyun		compatible = "mediatek,mt7623-hdmi",
235*4882a593Smuzhiyun			     "mediatek,mt2701-hdmi";
236*4882a593Smuzhiyun		reg = <0 0x14015000 0 0x400>;
237*4882a593Smuzhiyun		clocks = <&mmsys CLK_MM_HDMI_PIXEL>,
238*4882a593Smuzhiyun			 <&mmsys CLK_MM_HDMI_PLL>,
239*4882a593Smuzhiyun			 <&mmsys CLK_MM_HDMI_AUDIO>,
240*4882a593Smuzhiyun			 <&mmsys CLK_MM_HDMI_SPDIF>;
241*4882a593Smuzhiyun		clock-names = "pixel", "pll", "bclk", "spdif";
242*4882a593Smuzhiyun		phys = <&hdmi_phy>;
243*4882a593Smuzhiyun		phy-names = "hdmi";
244*4882a593Smuzhiyun		mediatek,syscon-hdmi = <&mmsys 0x900>;
245*4882a593Smuzhiyun		cec = <&cec>;
246*4882a593Smuzhiyun		status = "disabled";
247*4882a593Smuzhiyun	};
248*4882a593Smuzhiyun
249*4882a593Smuzhiyun	mipi_tx0: mipi-dphy@10010000 {
250*4882a593Smuzhiyun		compatible = "mediatek,mt7623-mipi-tx",
251*4882a593Smuzhiyun			     "mediatek,mt2701-mipi-tx";
252*4882a593Smuzhiyun		reg = <0 0x10010000 0 0x90>;
253*4882a593Smuzhiyun		clocks = <&clk26m>;
254*4882a593Smuzhiyun		clock-output-names = "mipi_tx0_pll";
255*4882a593Smuzhiyun		#clock-cells = <0>;
256*4882a593Smuzhiyun		#phy-cells = <0>;
257*4882a593Smuzhiyun	};
258*4882a593Smuzhiyun
259*4882a593Smuzhiyun	cec: cec@10012000 {
260*4882a593Smuzhiyun		compatible = "mediatek,mt7623-cec",
261*4882a593Smuzhiyun			     "mediatek,mt8173-cec";
262*4882a593Smuzhiyun		reg = <0 0x10012000 0 0xbc>;
263*4882a593Smuzhiyun		interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_LOW>;
264*4882a593Smuzhiyun		clocks = <&infracfg CLK_INFRA_CEC>;
265*4882a593Smuzhiyun		status = "disabled";
266*4882a593Smuzhiyun	};
267*4882a593Smuzhiyun
268*4882a593Smuzhiyun	hdmi_phy: phy@10209100 {
269*4882a593Smuzhiyun		compatible = "mediatek,mt7623-hdmi-phy",
270*4882a593Smuzhiyun			     "mediatek,mt2701-hdmi-phy";
271*4882a593Smuzhiyun		reg = <0 0x10209100 0 0x24>;
272*4882a593Smuzhiyun		clocks = <&apmixedsys CLK_APMIXED_HDMI_REF>;
273*4882a593Smuzhiyun		clock-names = "pll_ref";
274*4882a593Smuzhiyun		clock-output-names = "hdmitx_dig_cts";
275*4882a593Smuzhiyun		#clock-cells = <0>;
276*4882a593Smuzhiyun		#phy-cells = <0>;
277*4882a593Smuzhiyun		status = "disabled";
278*4882a593Smuzhiyun	};
279*4882a593Smuzhiyun
280*4882a593Smuzhiyun	hdmiddc0: i2c@11013000 {
281*4882a593Smuzhiyun		compatible = "mediatek,mt7623-hdmi-ddc",
282*4882a593Smuzhiyun			     "mediatek,mt8173-hdmi-ddc";
283*4882a593Smuzhiyun		interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_LOW>;
284*4882a593Smuzhiyun		reg = <0 0x11013000 0 0x1C>;
285*4882a593Smuzhiyun		clocks = <&pericfg CLK_PERI_I2C3>;
286*4882a593Smuzhiyun		clock-names = "ddc-i2c";
287*4882a593Smuzhiyun		status = "disabled";
288*4882a593Smuzhiyun	};
289*4882a593Smuzhiyun};
290*4882a593Smuzhiyun
291*4882a593Smuzhiyun&pio {
292*4882a593Smuzhiyun	hdmi_pins_a: hdmi-default {
293*4882a593Smuzhiyun		pins-hdmi {
294*4882a593Smuzhiyun			pinmux = <MT7623_PIN_123_HTPLG_FUNC_HTPLG>;
295*4882a593Smuzhiyun			input-enable;
296*4882a593Smuzhiyun			bias-pull-down;
297*4882a593Smuzhiyun		};
298*4882a593Smuzhiyun	};
299*4882a593Smuzhiyun
300*4882a593Smuzhiyun	hdmi_ddc_pins_a: hdmi_ddc-default {
301*4882a593Smuzhiyun		pins-hdmi-ddc {
302*4882a593Smuzhiyun			pinmux = <MT7623_PIN_124_GPIO124_FUNC_HDMISCK>,
303*4882a593Smuzhiyun				 <MT7623_PIN_125_GPIO125_FUNC_HDMISD>;
304*4882a593Smuzhiyun		};
305*4882a593Smuzhiyun	};
306*4882a593Smuzhiyun};
307