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