xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/artpec6.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun/*
2*4882a593Smuzhiyun * Device Tree Source for the Axis ARTPEC-6 SoC
3*4882a593Smuzhiyun *
4*4882a593Smuzhiyun * This file is dual-licensed: you can use it either under the terms
5*4882a593Smuzhiyun * of the GPL or the X11 license, at your option. Note that this dual
6*4882a593Smuzhiyun * licensing only applies to this file, and not this project as a
7*4882a593Smuzhiyun * whole.
8*4882a593Smuzhiyun *
9*4882a593Smuzhiyun *  a) This file is free software; you can redistribute it and/or
10*4882a593Smuzhiyun *     modify it under the terms of the GNU General Public License as
11*4882a593Smuzhiyun *     published by the Free Software Foundation; either version 2 of the
12*4882a593Smuzhiyun *     License, or (at your option) any later version.
13*4882a593Smuzhiyun *
14*4882a593Smuzhiyun *     This file is distributed in the hope that it will be useful,
15*4882a593Smuzhiyun *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16*4882a593Smuzhiyun *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17*4882a593Smuzhiyun *     GNU General Public License for more details.
18*4882a593Smuzhiyun *
19*4882a593Smuzhiyun * Or, alternatively,
20*4882a593Smuzhiyun *
21*4882a593Smuzhiyun *  b) Permission is hereby granted, free of charge, to any person
22*4882a593Smuzhiyun *     obtaining a copy of this software and associated documentation
23*4882a593Smuzhiyun *     files (the "Software"), to deal in the Software without
24*4882a593Smuzhiyun *     restriction, including without limitation the rights to use,
25*4882a593Smuzhiyun *     copy, modify, merge, publish, distribute, sublicense, and/or
26*4882a593Smuzhiyun *     sell copies of the Software, and to permit persons to whom the
27*4882a593Smuzhiyun *     Software is furnished to do so, subject to the following
28*4882a593Smuzhiyun *     conditions:
29*4882a593Smuzhiyun *
30*4882a593Smuzhiyun *     The above copyright notice and this permission notice shall be
31*4882a593Smuzhiyun *     included in all copies or substantial portions of the Software.
32*4882a593Smuzhiyun *
33*4882a593Smuzhiyun *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34*4882a593Smuzhiyun *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35*4882a593Smuzhiyun *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36*4882a593Smuzhiyun *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37*4882a593Smuzhiyun *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38*4882a593Smuzhiyun *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39*4882a593Smuzhiyun *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40*4882a593Smuzhiyun *     OTHER DEALINGS IN THE SOFTWARE.
41*4882a593Smuzhiyun */
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
44*4882a593Smuzhiyun#include <dt-bindings/dma/nbpfaxi.h>
45*4882a593Smuzhiyun#include <dt-bindings/clock/axis,artpec6-clkctrl.h>
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun/ {
48*4882a593Smuzhiyun	#address-cells = <1>;
49*4882a593Smuzhiyun	#size-cells = <1>;
50*4882a593Smuzhiyun	compatible = "axis,artpec6";
51*4882a593Smuzhiyun	interrupt-parent = <&intc>;
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun	cpus {
54*4882a593Smuzhiyun		#address-cells = <1>;
55*4882a593Smuzhiyun		#size-cells = <0>;
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun		cpu0: cpu@0 {
58*4882a593Smuzhiyun			device_type = "cpu";
59*4882a593Smuzhiyun			compatible = "arm,cortex-a9";
60*4882a593Smuzhiyun			reg = <0>;
61*4882a593Smuzhiyun			next-level-cache = <&pl310>;
62*4882a593Smuzhiyun		};
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun		cpu1: cpu@1 {
65*4882a593Smuzhiyun			device_type = "cpu";
66*4882a593Smuzhiyun			compatible = "arm,cortex-a9";
67*4882a593Smuzhiyun			reg = <1>;
68*4882a593Smuzhiyun			next-level-cache = <&pl310>;
69*4882a593Smuzhiyun		};
70*4882a593Smuzhiyun	};
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun	syscon: syscon@f8000000 {
73*4882a593Smuzhiyun		compatible = "axis,artpec6-syscon", "syscon";
74*4882a593Smuzhiyun		reg = <0xf8000000 0x48>;
75*4882a593Smuzhiyun	};
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun	psci {
78*4882a593Smuzhiyun		compatible = "arm,psci-0.2", "arm,psci";
79*4882a593Smuzhiyun		method = "smc";
80*4882a593Smuzhiyun		psci_version = <0x84000000>;
81*4882a593Smuzhiyun		cpu_on = <0x84000003>;
82*4882a593Smuzhiyun		system_reset = <0x84000009>;
83*4882a593Smuzhiyun	};
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun	scu@faf00000 {
86*4882a593Smuzhiyun		compatible = "arm,cortex-a9-scu";
87*4882a593Smuzhiyun		reg = <0xfaf00000 0x58>;
88*4882a593Smuzhiyun	};
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun	/* Main external clock driving CPU and peripherals */
91*4882a593Smuzhiyun	ext_clk: ext_clk {
92*4882a593Smuzhiyun		#clock-cells = <0>;
93*4882a593Smuzhiyun		compatible = "fixed-clock";
94*4882a593Smuzhiyun		clock-frequency = <50000000>;
95*4882a593Smuzhiyun	};
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun	eth_phy_ref_clk: eth_phy_ref_clk {
98*4882a593Smuzhiyun		#clock-cells = <0>;
99*4882a593Smuzhiyun		compatible = "fixed-clock";
100*4882a593Smuzhiyun		clock-frequency = <125000000>;
101*4882a593Smuzhiyun	};
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun	clkctrl: clkctrl@f8000000 {
104*4882a593Smuzhiyun		#clock-cells = <1>;
105*4882a593Smuzhiyun		compatible = "axis,artpec6-clkctrl";
106*4882a593Smuzhiyun		reg = <0xf8000000 0x48>;
107*4882a593Smuzhiyun		clocks = <&ext_clk>;
108*4882a593Smuzhiyun		clock-names = "sys_refclk";
109*4882a593Smuzhiyun	};
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun	gtimer@faf00200 {
112*4882a593Smuzhiyun		compatible = "arm,cortex-a9-global-timer";
113*4882a593Smuzhiyun		reg = <0xfaf00200 0x20>;
114*4882a593Smuzhiyun		interrupts = <GIC_PPI 11 0xf01>;
115*4882a593Smuzhiyun		clocks = <&clkctrl ARTPEC6_CLK_CPU_PERIPH>;
116*4882a593Smuzhiyun	};
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun	timer@faf00600 {
119*4882a593Smuzhiyun		compatible = "arm,cortex-a9-twd-timer";
120*4882a593Smuzhiyun		reg = <0xfaf00600 0x20>;
121*4882a593Smuzhiyun		interrupts = <GIC_PPI 13 0xf04>;
122*4882a593Smuzhiyun		clocks = <&clkctrl ARTPEC6_CLK_CPU_PERIPH>;
123*4882a593Smuzhiyun		status = "disabled";
124*4882a593Smuzhiyun	};
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun	intc: interrupt-controller@faf01000 {
127*4882a593Smuzhiyun		interrupt-controller;
128*4882a593Smuzhiyun		compatible = "arm,cortex-a9-gic";
129*4882a593Smuzhiyun		#interrupt-cells = <3>;
130*4882a593Smuzhiyun		reg = < 0xfaf01000 0x1000 >, < 0xfaf00100 0x0100 >;
131*4882a593Smuzhiyun	};
132*4882a593Smuzhiyun
133*4882a593Smuzhiyun	pl310: cache-controller@faf10000 {
134*4882a593Smuzhiyun		compatible = "arm,pl310-cache";
135*4882a593Smuzhiyun		cache-unified;
136*4882a593Smuzhiyun		cache-level = <2>;
137*4882a593Smuzhiyun		reg = <0xfaf10000 0x1000>;
138*4882a593Smuzhiyun		interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
139*4882a593Smuzhiyun		arm,data-latency = <1 1 1>;
140*4882a593Smuzhiyun		arm,tag-latency = <1 1 1>;
141*4882a593Smuzhiyun		arm,filter-ranges = <0x0 0x80000000>;
142*4882a593Smuzhiyun		arm,double-linefill = <1>;
143*4882a593Smuzhiyun		arm,double-linefill-incr = <0>;
144*4882a593Smuzhiyun		arm,double-linefill-wrap = <0>;
145*4882a593Smuzhiyun		prefetch-data = <1>;
146*4882a593Smuzhiyun		prefetch-instr = <1>;
147*4882a593Smuzhiyun		arm,prefetch-offset = <0>;
148*4882a593Smuzhiyun		arm,prefetch-drop = <1>;
149*4882a593Smuzhiyun	};
150*4882a593Smuzhiyun
151*4882a593Smuzhiyun	pmu {
152*4882a593Smuzhiyun		compatible = "arm,cortex-a9-pmu";
153*4882a593Smuzhiyun		interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
154*4882a593Smuzhiyun			<GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
155*4882a593Smuzhiyun		interrupt-affinity = <&cpu0>, <&cpu1>;
156*4882a593Smuzhiyun	};
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun	/*
159*4882a593Smuzhiyun	 * Both pci nodes cannot be enabled at the same time,
160*4882a593Smuzhiyun	 * leave the unwanted node as disabled.
161*4882a593Smuzhiyun	 */
162*4882a593Smuzhiyun	pcie: pcie@f8050000 {
163*4882a593Smuzhiyun		compatible = "axis,artpec6-pcie", "snps,dw-pcie";
164*4882a593Smuzhiyun		reg = <0xf8050000 0x2000
165*4882a593Smuzhiyun		       0xf8040000 0x1000
166*4882a593Smuzhiyun		       0xc0000000 0x2000>;
167*4882a593Smuzhiyun		reg-names = "dbi", "phy", "config";
168*4882a593Smuzhiyun		#address-cells = <3>;
169*4882a593Smuzhiyun		#size-cells = <2>;
170*4882a593Smuzhiyun		device_type = "pci";
171*4882a593Smuzhiyun			  /* downstream I/O */
172*4882a593Smuzhiyun		ranges = <0x81000000 0 0 0xc0002000 0 0x00010000
173*4882a593Smuzhiyun			  /* non-prefetchable memory */
174*4882a593Smuzhiyun			  0x82000000 0 0xc0012000 0xc0012000 0 0x1ffee000>;
175*4882a593Smuzhiyun		num-lanes = <2>;
176*4882a593Smuzhiyun		bus-range = <0x00 0xff>;
177*4882a593Smuzhiyun		interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
178*4882a593Smuzhiyun		interrupt-names = "msi";
179*4882a593Smuzhiyun		#interrupt-cells = <1>;
180*4882a593Smuzhiyun		interrupt-map-mask = <0 0 0 0x7>;
181*4882a593Smuzhiyun		interrupt-map = <0 0 0 1 &intc GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
182*4882a593Smuzhiyun				<0 0 0 2 &intc GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
183*4882a593Smuzhiyun				<0 0 0 3 &intc GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
184*4882a593Smuzhiyun				<0 0 0 4 &intc GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
185*4882a593Smuzhiyun		axis,syscon-pcie = <&syscon>;
186*4882a593Smuzhiyun		status = "disabled";
187*4882a593Smuzhiyun	};
188*4882a593Smuzhiyun
189*4882a593Smuzhiyun	pcie_ep: pcie_ep@f8050000 {
190*4882a593Smuzhiyun		compatible = "axis,artpec6-pcie-ep", "snps,dw-pcie";
191*4882a593Smuzhiyun		reg = <0xf8050000 0x2000
192*4882a593Smuzhiyun		       0xf8051000 0x2000
193*4882a593Smuzhiyun		       0xf8040000 0x1000
194*4882a593Smuzhiyun		       0xc0000000 0x20000000>;
195*4882a593Smuzhiyun		reg-names = "dbi", "dbi2", "phy", "addr_space";
196*4882a593Smuzhiyun		num-ib-windows = <6>;
197*4882a593Smuzhiyun		num-ob-windows = <2>;
198*4882a593Smuzhiyun		num-lanes = <2>;
199*4882a593Smuzhiyun		axis,syscon-pcie = <&syscon>;
200*4882a593Smuzhiyun		status = "disabled";
201*4882a593Smuzhiyun	};
202*4882a593Smuzhiyun
203*4882a593Smuzhiyun	pinctrl: pinctrl@f801d000 {
204*4882a593Smuzhiyun		compatible = "axis,artpec6-pinctrl";
205*4882a593Smuzhiyun		reg = <0xf801d000 0x400>;
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun		pinctrl_uart0: uart0grp {
208*4882a593Smuzhiyun			function = "uart0";
209*4882a593Smuzhiyun			groups = "uart0grp2";
210*4882a593Smuzhiyun			bias-pull-up;
211*4882a593Smuzhiyun		};
212*4882a593Smuzhiyun		pinctrl_uart1: uart1grp {
213*4882a593Smuzhiyun			function = "uart1";
214*4882a593Smuzhiyun			groups = "uart1grp0";
215*4882a593Smuzhiyun			bias-pull-up;
216*4882a593Smuzhiyun		};
217*4882a593Smuzhiyun		pinctrl_uart2: uart2grp {
218*4882a593Smuzhiyun			function = "uart2";
219*4882a593Smuzhiyun			groups = "uart2grp1";
220*4882a593Smuzhiyun			bias-pull-up;
221*4882a593Smuzhiyun		};
222*4882a593Smuzhiyun		pinctrl_uart3: uart3grp {
223*4882a593Smuzhiyun			function = "uart3";
224*4882a593Smuzhiyun			groups = "uart3grp0";
225*4882a593Smuzhiyun			bias-pull-up;
226*4882a593Smuzhiyun		};
227*4882a593Smuzhiyun	};
228*4882a593Smuzhiyun
229*4882a593Smuzhiyun	amba@0 {
230*4882a593Smuzhiyun		compatible = "simple-bus";
231*4882a593Smuzhiyun		#address-cells = <0x1>;
232*4882a593Smuzhiyun		#size-cells = <0x1>;
233*4882a593Smuzhiyun		ranges;
234*4882a593Smuzhiyun		dma-ranges;
235*4882a593Smuzhiyun
236*4882a593Smuzhiyun		crypto@f4264000 {
237*4882a593Smuzhiyun			compatible = "axis,artpec6-crypto";
238*4882a593Smuzhiyun			reg = <0xf4264000 0x4000>;
239*4882a593Smuzhiyun			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
240*4882a593Smuzhiyun		};
241*4882a593Smuzhiyun
242*4882a593Smuzhiyun		dma0: dma@f8019000 {
243*4882a593Smuzhiyun			compatible = "renesas,nbpfaxi64dmac8b16";
244*4882a593Smuzhiyun			reg = <0xf8019000 0x400>;
245*4882a593Smuzhiyun			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, /* error */
246*4882a593Smuzhiyun				     <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
247*4882a593Smuzhiyun				     <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
248*4882a593Smuzhiyun				     <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
249*4882a593Smuzhiyun				     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
250*4882a593Smuzhiyun				     <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
251*4882a593Smuzhiyun				     <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
252*4882a593Smuzhiyun				     <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
253*4882a593Smuzhiyun				     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
254*4882a593Smuzhiyun			interrupt-names = "error",
255*4882a593Smuzhiyun					  "ch0", "ch1", "ch2", "ch3",
256*4882a593Smuzhiyun					  "ch4", "ch5", "ch6", "ch7",
257*4882a593Smuzhiyun					  "ch8", "ch9", "ch10", "ch12",
258*4882a593Smuzhiyun					  "ch12", "ch13", "ch14", "ch15";
259*4882a593Smuzhiyun			clocks = <&clkctrl ARTPEC6_CLK_DMA_ACLK>;
260*4882a593Smuzhiyun			#dma-cells = <2>;
261*4882a593Smuzhiyun			dma-channels = <8>;
262*4882a593Smuzhiyun			dma-requests = <8>;
263*4882a593Smuzhiyun		};
264*4882a593Smuzhiyun		dma1: dma@f8019400 {
265*4882a593Smuzhiyun			compatible = "renesas,nbpfaxi64dmac8b16";
266*4882a593Smuzhiyun			reg = <0xf8019400 0x400>;
267*4882a593Smuzhiyun			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, /* error */
268*4882a593Smuzhiyun				     <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
269*4882a593Smuzhiyun				     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
270*4882a593Smuzhiyun				     <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
271*4882a593Smuzhiyun				     <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
272*4882a593Smuzhiyun				     <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
273*4882a593Smuzhiyun				     <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
274*4882a593Smuzhiyun				     <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
275*4882a593Smuzhiyun				     <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
276*4882a593Smuzhiyun			interrupt-names = "error",
277*4882a593Smuzhiyun					  "ch0", "ch1", "ch2", "ch3",
278*4882a593Smuzhiyun					  "ch4", "ch5", "ch6", "ch7",
279*4882a593Smuzhiyun					  "ch8", "ch9", "ch10", "ch12",
280*4882a593Smuzhiyun					  "ch12", "ch13", "ch14", "ch15";
281*4882a593Smuzhiyun			clocks = <&clkctrl ARTPEC6_CLK_DMA_ACLK>;
282*4882a593Smuzhiyun			#dma-cells = <2>;
283*4882a593Smuzhiyun			dma-channels = <8>;
284*4882a593Smuzhiyun			dma-requests = <8>;
285*4882a593Smuzhiyun		};
286*4882a593Smuzhiyun
287*4882a593Smuzhiyun		ethernet: ethernet@f8010000 {
288*4882a593Smuzhiyun			clock-names = "stmmaceth", "ptp_ref";
289*4882a593Smuzhiyun			clocks = <&clkctrl ARTPEC6_CLK_ETH_ACLK>,
290*4882a593Smuzhiyun				<&clkctrl ARTPEC6_CLK_PTP_REF>;
291*4882a593Smuzhiyun			compatible = "snps,dwmac-4.10a", "snps,dwmac";
292*4882a593Smuzhiyun			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
293*4882a593Smuzhiyun				     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
294*4882a593Smuzhiyun			interrupt-names = "macirq", "eth_lpi";
295*4882a593Smuzhiyun			reg = <0xf8010000 0x4000>;
296*4882a593Smuzhiyun
297*4882a593Smuzhiyun			snps,axi-config = <&stmmac_axi_setup>;
298*4882a593Smuzhiyun			snps,mtl-rx-config = <&mtl_rx_setup>;
299*4882a593Smuzhiyun			snps,mtl-tx-config = <&mtl_tx_setup>;
300*4882a593Smuzhiyun
301*4882a593Smuzhiyun			snps,txpbl = <8>;
302*4882a593Smuzhiyun			snps,rxpbl = <2>;
303*4882a593Smuzhiyun			snps,aal;
304*4882a593Smuzhiyun			snps,tso;
305*4882a593Smuzhiyun
306*4882a593Smuzhiyun			status = "disabled";
307*4882a593Smuzhiyun
308*4882a593Smuzhiyun			stmmac_axi_setup: stmmac-axi-config {
309*4882a593Smuzhiyun				snps,wr_osr_lmt = <1>;
310*4882a593Smuzhiyun				snps,rd_osr_lmt = <15>;
311*4882a593Smuzhiyun				/* If FB is disabled, the AXI master chooses
312*4882a593Smuzhiyun				 * a burst length of any value less than the
313*4882a593Smuzhiyun				 * maximum enabled burst length
314*4882a593Smuzhiyun				 * (all lesser burst length enables are redundant).
315*4882a593Smuzhiyun				 */
316*4882a593Smuzhiyun				snps,blen = <0 0 0 0 16 0 0>;
317*4882a593Smuzhiyun			};
318*4882a593Smuzhiyun
319*4882a593Smuzhiyun			mtl_rx_setup: rx-queues-config {
320*4882a593Smuzhiyun				snps,rx-queues-to-use = <1>;
321*4882a593Smuzhiyun				queue0 {};
322*4882a593Smuzhiyun			};
323*4882a593Smuzhiyun
324*4882a593Smuzhiyun			mtl_tx_setup: tx-queues-config {
325*4882a593Smuzhiyun				snps,tx-queues-to-use = <2>;
326*4882a593Smuzhiyun				queue0 {};
327*4882a593Smuzhiyun				queue1 {};
328*4882a593Smuzhiyun			};
329*4882a593Smuzhiyun		};
330*4882a593Smuzhiyun
331*4882a593Smuzhiyun		uart0: serial@f8036000 {
332*4882a593Smuzhiyun			compatible = "arm,pl011", "arm,primecell";
333*4882a593Smuzhiyun			reg = <0xf8036000 0x1000>;
334*4882a593Smuzhiyun			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
335*4882a593Smuzhiyun			clocks = <&clkctrl ARTPEC6_CLK_UART_REFCLK>,
336*4882a593Smuzhiyun				<&clkctrl ARTPEC6_CLK_UART_PCLK>;
337*4882a593Smuzhiyun			clock-names = "uart_clk", "apb_pclk";
338*4882a593Smuzhiyun			pinctrl-names = "default";
339*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_uart0>;
340*4882a593Smuzhiyun			dmas = <&dma0 4 (NBPF_SLAVE_RQ_HIGH | NBPF_SLAVE_RQ_LEVEL)>,
341*4882a593Smuzhiyun			       <&dma0 5 (NBPF_SLAVE_RQ_HIGH | NBPF_SLAVE_RQ_LEVEL)>;
342*4882a593Smuzhiyun			dma-names = "rx", "tx";
343*4882a593Smuzhiyun			status = "disabled";
344*4882a593Smuzhiyun		};
345*4882a593Smuzhiyun		uart1: serial@f8037000 {
346*4882a593Smuzhiyun			compatible = "arm,pl011", "arm,primecell";
347*4882a593Smuzhiyun			reg = <0xf8037000 0x1000>;
348*4882a593Smuzhiyun			interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
349*4882a593Smuzhiyun			clocks = <&clkctrl ARTPEC6_CLK_UART_REFCLK>,
350*4882a593Smuzhiyun				<&clkctrl ARTPEC6_CLK_UART_PCLK>;
351*4882a593Smuzhiyun			clock-names = "uart_clk", "apb_pclk";
352*4882a593Smuzhiyun			pinctrl-names = "default";
353*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_uart1>;
354*4882a593Smuzhiyun			dmas = <&dma0 6 (NBPF_SLAVE_RQ_HIGH | NBPF_SLAVE_RQ_LEVEL)>,
355*4882a593Smuzhiyun			       <&dma0 7 (NBPF_SLAVE_RQ_HIGH | NBPF_SLAVE_RQ_LEVEL)>;
356*4882a593Smuzhiyun			dma-names = "rx", "tx";
357*4882a593Smuzhiyun			status = "disabled";
358*4882a593Smuzhiyun		};
359*4882a593Smuzhiyun		uart2: serial@f8038000 {
360*4882a593Smuzhiyun			compatible = "arm,pl011", "arm,primecell";
361*4882a593Smuzhiyun			reg = <0xf8038000 0x1000>;
362*4882a593Smuzhiyun			interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
363*4882a593Smuzhiyun			clocks = <&clkctrl ARTPEC6_CLK_UART_REFCLK>,
364*4882a593Smuzhiyun				<&clkctrl ARTPEC6_CLK_UART_PCLK>;
365*4882a593Smuzhiyun			clock-names = "uart_clk", "apb_pclk";
366*4882a593Smuzhiyun			pinctrl-names = "default";
367*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_uart2>;
368*4882a593Smuzhiyun			dmas = <&dma1 0 (NBPF_SLAVE_RQ_HIGH | NBPF_SLAVE_RQ_LEVEL)>,
369*4882a593Smuzhiyun			       <&dma1 1 (NBPF_SLAVE_RQ_HIGH | NBPF_SLAVE_RQ_LEVEL)>;
370*4882a593Smuzhiyun			dma-names = "rx", "tx";
371*4882a593Smuzhiyun			status = "disabled";
372*4882a593Smuzhiyun		};
373*4882a593Smuzhiyun		uart3: serial@f8039000 {
374*4882a593Smuzhiyun			compatible = "arm,pl011", "arm,primecell";
375*4882a593Smuzhiyun			reg = <0xf8039000 0x1000>;
376*4882a593Smuzhiyun			interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
377*4882a593Smuzhiyun			clocks = <&clkctrl ARTPEC6_CLK_UART_REFCLK>,
378*4882a593Smuzhiyun				<&clkctrl ARTPEC6_CLK_UART_PCLK>;
379*4882a593Smuzhiyun			clock-names = "uart_clk", "apb_pclk";
380*4882a593Smuzhiyun			pinctrl-names = "default";
381*4882a593Smuzhiyun			pinctrl-0 = <&pinctrl_uart3>;
382*4882a593Smuzhiyun			dmas = <&dma1 2 (NBPF_SLAVE_RQ_HIGH | NBPF_SLAVE_RQ_LEVEL)>,
383*4882a593Smuzhiyun			       <&dma1 3 (NBPF_SLAVE_RQ_HIGH | NBPF_SLAVE_RQ_LEVEL)>;
384*4882a593Smuzhiyun			dma-names = "rx", "tx";
385*4882a593Smuzhiyun			status = "disabled";
386*4882a593Smuzhiyun		};
387*4882a593Smuzhiyun	};
388*4882a593Smuzhiyun};
389