xref: /OK3568_Linux_fs/kernel/arch/mips/boot/dts/pic32/pic32mzda.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (C) 2015 Microchip Technology Inc.  All rights reserved.
4*4882a593Smuzhiyun */
5*4882a593Smuzhiyun#include <dt-bindings/clock/microchip,pic32-clock.h>
6*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h>
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun/ {
9*4882a593Smuzhiyun	#address-cells = <1>;
10*4882a593Smuzhiyun	#size-cells = <1>;
11*4882a593Smuzhiyun	interrupt-parent = <&evic>;
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun	aliases {
14*4882a593Smuzhiyun		gpio0 = &gpio0;
15*4882a593Smuzhiyun		gpio1 = &gpio1;
16*4882a593Smuzhiyun		gpio2 = &gpio2;
17*4882a593Smuzhiyun		gpio3 = &gpio3;
18*4882a593Smuzhiyun		gpio4 = &gpio4;
19*4882a593Smuzhiyun		gpio5 = &gpio5;
20*4882a593Smuzhiyun		gpio6 = &gpio6;
21*4882a593Smuzhiyun		gpio7 = &gpio7;
22*4882a593Smuzhiyun		gpio8 = &gpio8;
23*4882a593Smuzhiyun		gpio9 = &gpio9;
24*4882a593Smuzhiyun		serial0 = &uart1;
25*4882a593Smuzhiyun		serial1 = &uart2;
26*4882a593Smuzhiyun		serial2 = &uart3;
27*4882a593Smuzhiyun		serial3 = &uart4;
28*4882a593Smuzhiyun		serial4 = &uart5;
29*4882a593Smuzhiyun		serial5 = &uart6;
30*4882a593Smuzhiyun	};
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun	cpus {
33*4882a593Smuzhiyun		#address-cells = <1>;
34*4882a593Smuzhiyun		#size-cells = <0>;
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun		cpu@0 {
37*4882a593Smuzhiyun			compatible = "mti,mips14KEc";
38*4882a593Smuzhiyun			device_type = "cpu";
39*4882a593Smuzhiyun		};
40*4882a593Smuzhiyun	};
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun	soc {
43*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-infra";
44*4882a593Smuzhiyun		interrupts = <0 IRQ_TYPE_EDGE_RISING>;
45*4882a593Smuzhiyun	};
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun	/* external clock input on TxCLKI pin */
48*4882a593Smuzhiyun	txcki: txcki_clk {
49*4882a593Smuzhiyun		#clock-cells = <0>;
50*4882a593Smuzhiyun		compatible = "fixed-clock";
51*4882a593Smuzhiyun		clock-frequency = <4000000>;
52*4882a593Smuzhiyun		status = "disabled";
53*4882a593Smuzhiyun	};
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun	/* external input on REFCLKIx pin */
56*4882a593Smuzhiyun	refix: refix_clk {
57*4882a593Smuzhiyun		#clock-cells = <0>;
58*4882a593Smuzhiyun		compatible = "fixed-clock";
59*4882a593Smuzhiyun		clock-frequency = <24000000>;
60*4882a593Smuzhiyun		status = "disabled";
61*4882a593Smuzhiyun	};
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun	rootclk: clock-controller@1f801200 {
64*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-clk";
65*4882a593Smuzhiyun		reg = <0x1f801200 0x200>;
66*4882a593Smuzhiyun		#clock-cells = <1>;
67*4882a593Smuzhiyun		microchip,pic32mzda-sosc;
68*4882a593Smuzhiyun	};
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun	evic: interrupt-controller@1f810000 {
71*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-evic";
72*4882a593Smuzhiyun		interrupt-controller;
73*4882a593Smuzhiyun		#interrupt-cells = <2>;
74*4882a593Smuzhiyun		reg = <0x1f810000 0x1000>;
75*4882a593Smuzhiyun		microchip,external-irqs = <3 8 13 18 23>;
76*4882a593Smuzhiyun	};
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun	pic32_pinctrl: pinctrl@1f801400{
79*4882a593Smuzhiyun		#address-cells = <1>;
80*4882a593Smuzhiyun		#size-cells = <1>;
81*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-pinctrl";
82*4882a593Smuzhiyun		reg = <0x1f801400 0x400>;
83*4882a593Smuzhiyun		clocks = <&rootclk PB1CLK>;
84*4882a593Smuzhiyun	};
85*4882a593Smuzhiyun
86*4882a593Smuzhiyun	/* PORTA */
87*4882a593Smuzhiyun	gpio0: gpio0@1f860000 {
88*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-gpio";
89*4882a593Smuzhiyun		reg = <0x1f860000 0x100>;
90*4882a593Smuzhiyun		interrupts = <118 IRQ_TYPE_LEVEL_HIGH>;
91*4882a593Smuzhiyun		#gpio-cells = <2>;
92*4882a593Smuzhiyun		gpio-controller;
93*4882a593Smuzhiyun		interrupt-controller;
94*4882a593Smuzhiyun		#interrupt-cells = <2>;
95*4882a593Smuzhiyun		clocks = <&rootclk PB4CLK>;
96*4882a593Smuzhiyun		microchip,gpio-bank = <0>;
97*4882a593Smuzhiyun		gpio-ranges = <&pic32_pinctrl 0 0 16>;
98*4882a593Smuzhiyun	};
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun	/* PORTB */
101*4882a593Smuzhiyun	gpio1: gpio1@1f860100 {
102*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-gpio";
103*4882a593Smuzhiyun		reg = <0x1f860100 0x100>;
104*4882a593Smuzhiyun		interrupts = <119 IRQ_TYPE_LEVEL_HIGH>;
105*4882a593Smuzhiyun		#gpio-cells = <2>;
106*4882a593Smuzhiyun		gpio-controller;
107*4882a593Smuzhiyun		interrupt-controller;
108*4882a593Smuzhiyun		#interrupt-cells = <2>;
109*4882a593Smuzhiyun		clocks = <&rootclk PB4CLK>;
110*4882a593Smuzhiyun		microchip,gpio-bank = <1>;
111*4882a593Smuzhiyun		gpio-ranges = <&pic32_pinctrl 0 16 16>;
112*4882a593Smuzhiyun	};
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun	/* PORTC */
115*4882a593Smuzhiyun	gpio2: gpio2@1f860200 {
116*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-gpio";
117*4882a593Smuzhiyun		reg = <0x1f860200 0x100>;
118*4882a593Smuzhiyun		interrupts = <120 IRQ_TYPE_LEVEL_HIGH>;
119*4882a593Smuzhiyun		#gpio-cells = <2>;
120*4882a593Smuzhiyun		gpio-controller;
121*4882a593Smuzhiyun		interrupt-controller;
122*4882a593Smuzhiyun		#interrupt-cells = <2>;
123*4882a593Smuzhiyun		clocks = <&rootclk PB4CLK>;
124*4882a593Smuzhiyun		microchip,gpio-bank = <2>;
125*4882a593Smuzhiyun		gpio-ranges = <&pic32_pinctrl 0 32 16>;
126*4882a593Smuzhiyun	};
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun	/* PORTD */
129*4882a593Smuzhiyun	gpio3: gpio3@1f860300 {
130*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-gpio";
131*4882a593Smuzhiyun		reg = <0x1f860300 0x100>;
132*4882a593Smuzhiyun		interrupts = <121 IRQ_TYPE_LEVEL_HIGH>;
133*4882a593Smuzhiyun		#gpio-cells = <2>;
134*4882a593Smuzhiyun		gpio-controller;
135*4882a593Smuzhiyun		interrupt-controller;
136*4882a593Smuzhiyun		#interrupt-cells = <2>;
137*4882a593Smuzhiyun		clocks = <&rootclk PB4CLK>;
138*4882a593Smuzhiyun		microchip,gpio-bank = <3>;
139*4882a593Smuzhiyun		gpio-ranges = <&pic32_pinctrl 0 48 16>;
140*4882a593Smuzhiyun	};
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun	/* PORTE */
143*4882a593Smuzhiyun	gpio4: gpio4@1f860400 {
144*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-gpio";
145*4882a593Smuzhiyun		reg = <0x1f860400 0x100>;
146*4882a593Smuzhiyun		interrupts = <122 IRQ_TYPE_LEVEL_HIGH>;
147*4882a593Smuzhiyun		#gpio-cells = <2>;
148*4882a593Smuzhiyun		gpio-controller;
149*4882a593Smuzhiyun		interrupt-controller;
150*4882a593Smuzhiyun		#interrupt-cells = <2>;
151*4882a593Smuzhiyun		clocks = <&rootclk PB4CLK>;
152*4882a593Smuzhiyun		microchip,gpio-bank = <4>;
153*4882a593Smuzhiyun		gpio-ranges = <&pic32_pinctrl 0 64 16>;
154*4882a593Smuzhiyun	};
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun	/* PORTF */
157*4882a593Smuzhiyun	gpio5: gpio5@1f860500 {
158*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-gpio";
159*4882a593Smuzhiyun		reg = <0x1f860500 0x100>;
160*4882a593Smuzhiyun		interrupts = <123 IRQ_TYPE_LEVEL_HIGH>;
161*4882a593Smuzhiyun		#gpio-cells = <2>;
162*4882a593Smuzhiyun		gpio-controller;
163*4882a593Smuzhiyun		interrupt-controller;
164*4882a593Smuzhiyun		#interrupt-cells = <2>;
165*4882a593Smuzhiyun		clocks = <&rootclk PB4CLK>;
166*4882a593Smuzhiyun		microchip,gpio-bank = <5>;
167*4882a593Smuzhiyun		gpio-ranges = <&pic32_pinctrl 0 80 16>;
168*4882a593Smuzhiyun	};
169*4882a593Smuzhiyun
170*4882a593Smuzhiyun	/* PORTG */
171*4882a593Smuzhiyun	gpio6: gpio6@1f860600 {
172*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-gpio";
173*4882a593Smuzhiyun		reg = <0x1f860600 0x100>;
174*4882a593Smuzhiyun		interrupts = <124 IRQ_TYPE_LEVEL_HIGH>;
175*4882a593Smuzhiyun		#gpio-cells = <2>;
176*4882a593Smuzhiyun		gpio-controller;
177*4882a593Smuzhiyun		interrupt-controller;
178*4882a593Smuzhiyun		#interrupt-cells = <2>;
179*4882a593Smuzhiyun		clocks = <&rootclk PB4CLK>;
180*4882a593Smuzhiyun		microchip,gpio-bank = <6>;
181*4882a593Smuzhiyun		gpio-ranges = <&pic32_pinctrl 0 96 16>;
182*4882a593Smuzhiyun	};
183*4882a593Smuzhiyun
184*4882a593Smuzhiyun	/* PORTH */
185*4882a593Smuzhiyun	gpio7: gpio7@1f860700 {
186*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-gpio";
187*4882a593Smuzhiyun		reg = <0x1f860700 0x100>;
188*4882a593Smuzhiyun		interrupts = <125 IRQ_TYPE_LEVEL_HIGH>;
189*4882a593Smuzhiyun		#gpio-cells = <2>;
190*4882a593Smuzhiyun		gpio-controller;
191*4882a593Smuzhiyun		interrupt-controller;
192*4882a593Smuzhiyun		#interrupt-cells = <2>;
193*4882a593Smuzhiyun		clocks = <&rootclk PB4CLK>;
194*4882a593Smuzhiyun		microchip,gpio-bank = <7>;
195*4882a593Smuzhiyun		gpio-ranges = <&pic32_pinctrl 0 112 16>;
196*4882a593Smuzhiyun	};
197*4882a593Smuzhiyun
198*4882a593Smuzhiyun	/* PORTI does not exist */
199*4882a593Smuzhiyun
200*4882a593Smuzhiyun	/* PORTJ */
201*4882a593Smuzhiyun	gpio8: gpio8@1f860800 {
202*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-gpio";
203*4882a593Smuzhiyun		reg = <0x1f860800 0x100>;
204*4882a593Smuzhiyun		interrupts = <126 IRQ_TYPE_LEVEL_HIGH>;
205*4882a593Smuzhiyun		#gpio-cells = <2>;
206*4882a593Smuzhiyun		gpio-controller;
207*4882a593Smuzhiyun		interrupt-controller;
208*4882a593Smuzhiyun		#interrupt-cells = <2>;
209*4882a593Smuzhiyun		clocks = <&rootclk PB4CLK>;
210*4882a593Smuzhiyun		microchip,gpio-bank = <8>;
211*4882a593Smuzhiyun		gpio-ranges = <&pic32_pinctrl 0 128 16>;
212*4882a593Smuzhiyun	};
213*4882a593Smuzhiyun
214*4882a593Smuzhiyun	/* PORTK */
215*4882a593Smuzhiyun	gpio9: gpio9@1f860900 {
216*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-gpio";
217*4882a593Smuzhiyun		reg = <0x1f860900 0x100>;
218*4882a593Smuzhiyun		interrupts = <127 IRQ_TYPE_LEVEL_HIGH>;
219*4882a593Smuzhiyun		#gpio-cells = <2>;
220*4882a593Smuzhiyun		gpio-controller;
221*4882a593Smuzhiyun		interrupt-controller;
222*4882a593Smuzhiyun		#interrupt-cells = <2>;
223*4882a593Smuzhiyun		clocks = <&rootclk PB4CLK>;
224*4882a593Smuzhiyun		microchip,gpio-bank = <9>;
225*4882a593Smuzhiyun		gpio-ranges = <&pic32_pinctrl 0 144 16>;
226*4882a593Smuzhiyun	};
227*4882a593Smuzhiyun
228*4882a593Smuzhiyun	sdhci: sdhci@1f8ec000 {
229*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-sdhci";
230*4882a593Smuzhiyun		reg = <0x1f8ec000 0x100>;
231*4882a593Smuzhiyun		interrupts = <191 IRQ_TYPE_LEVEL_HIGH>;
232*4882a593Smuzhiyun		clocks = <&rootclk REF4CLK>, <&rootclk PB5CLK>;
233*4882a593Smuzhiyun		clock-names = "base_clk", "sys_clk";
234*4882a593Smuzhiyun		bus-width = <4>;
235*4882a593Smuzhiyun		cap-sd-highspeed;
236*4882a593Smuzhiyun		status = "disabled";
237*4882a593Smuzhiyun	};
238*4882a593Smuzhiyun
239*4882a593Smuzhiyun	uart1: serial@1f822000 {
240*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-uart";
241*4882a593Smuzhiyun		reg = <0x1f822000 0x50>;
242*4882a593Smuzhiyun		interrupts = <112 IRQ_TYPE_LEVEL_HIGH>,
243*4882a593Smuzhiyun			<113 IRQ_TYPE_LEVEL_HIGH>,
244*4882a593Smuzhiyun			<114 IRQ_TYPE_LEVEL_HIGH>;
245*4882a593Smuzhiyun		clocks = <&rootclk PB2CLK>;
246*4882a593Smuzhiyun		status = "disabled";
247*4882a593Smuzhiyun	};
248*4882a593Smuzhiyun
249*4882a593Smuzhiyun	uart2: serial@1f822200 {
250*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-uart";
251*4882a593Smuzhiyun		reg = <0x1f822200 0x50>;
252*4882a593Smuzhiyun		interrupts = <145 IRQ_TYPE_LEVEL_HIGH>,
253*4882a593Smuzhiyun			<146 IRQ_TYPE_LEVEL_HIGH>,
254*4882a593Smuzhiyun			<147 IRQ_TYPE_LEVEL_HIGH>;
255*4882a593Smuzhiyun		clocks = <&rootclk PB2CLK>;
256*4882a593Smuzhiyun		status = "disabled";
257*4882a593Smuzhiyun	};
258*4882a593Smuzhiyun
259*4882a593Smuzhiyun	uart3: serial@1f822400 {
260*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-uart";
261*4882a593Smuzhiyun		reg = <0x1f822400 0x50>;
262*4882a593Smuzhiyun		interrupts = <157 IRQ_TYPE_LEVEL_HIGH>,
263*4882a593Smuzhiyun			<158 IRQ_TYPE_LEVEL_HIGH>,
264*4882a593Smuzhiyun			<159 IRQ_TYPE_LEVEL_HIGH>;
265*4882a593Smuzhiyun		clocks = <&rootclk PB2CLK>;
266*4882a593Smuzhiyun		status = "disabled";
267*4882a593Smuzhiyun	};
268*4882a593Smuzhiyun
269*4882a593Smuzhiyun	uart4: serial@1f822600 {
270*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-uart";
271*4882a593Smuzhiyun		reg = <0x1f822600 0x50>;
272*4882a593Smuzhiyun		interrupts = <170 IRQ_TYPE_LEVEL_HIGH>,
273*4882a593Smuzhiyun			<171 IRQ_TYPE_LEVEL_HIGH>,
274*4882a593Smuzhiyun			<172 IRQ_TYPE_LEVEL_HIGH>;
275*4882a593Smuzhiyun		clocks = <&rootclk PB2CLK>;
276*4882a593Smuzhiyun		status = "disabled";
277*4882a593Smuzhiyun	};
278*4882a593Smuzhiyun
279*4882a593Smuzhiyun	uart5: serial@1f822800 {
280*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-uart";
281*4882a593Smuzhiyun		reg = <0x1f822800 0x50>;
282*4882a593Smuzhiyun		interrupts = <179 IRQ_TYPE_LEVEL_HIGH>,
283*4882a593Smuzhiyun			<180 IRQ_TYPE_LEVEL_HIGH>,
284*4882a593Smuzhiyun			<181 IRQ_TYPE_LEVEL_HIGH>;
285*4882a593Smuzhiyun		clocks = <&rootclk PB2CLK>;
286*4882a593Smuzhiyun		status = "disabled";
287*4882a593Smuzhiyun	};
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun	uart6: serial@1f822A00 {
290*4882a593Smuzhiyun		compatible = "microchip,pic32mzda-uart";
291*4882a593Smuzhiyun		reg = <0x1f822A00 0x50>;
292*4882a593Smuzhiyun		interrupts = <188 IRQ_TYPE_LEVEL_HIGH>,
293*4882a593Smuzhiyun			<189 IRQ_TYPE_LEVEL_HIGH>,
294*4882a593Smuzhiyun			<190 IRQ_TYPE_LEVEL_HIGH>;
295*4882a593Smuzhiyun		clocks = <&rootclk PB2CLK>;
296*4882a593Smuzhiyun		status = "disabled";
297*4882a593Smuzhiyun	};
298*4882a593Smuzhiyun};
299