xref: /freebsd-src/sys/contrib/device-tree/src/arm/marvell/orion5x.dtsi (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only
2*f126890aSEmmanuel Vadot// Copyright (C) 2012 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
3*f126890aSEmmanuel Vadot
4*f126890aSEmmanuel Vadot#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
5*f126890aSEmmanuel Vadot
6*f126890aSEmmanuel Vadot/ {
7*f126890aSEmmanuel Vadot	#address-cells = <1>;
8*f126890aSEmmanuel Vadot	#size-cells = <1>;
9*f126890aSEmmanuel Vadot	model = "Marvell Orion5x SoC";
10*f126890aSEmmanuel Vadot	compatible = "marvell,orion5x";
11*f126890aSEmmanuel Vadot	interrupt-parent = <&intc>;
12*f126890aSEmmanuel Vadot
13*f126890aSEmmanuel Vadot	aliases {
14*f126890aSEmmanuel Vadot		gpio0 = &gpio0;
15*f126890aSEmmanuel Vadot	};
16*f126890aSEmmanuel Vadot
17*f126890aSEmmanuel Vadot	soc {
18*f126890aSEmmanuel Vadot		#address-cells = <2>;
19*f126890aSEmmanuel Vadot		#size-cells = <1>;
20*f126890aSEmmanuel Vadot		controller = <&mbusc>;
21*f126890aSEmmanuel Vadot
22*f126890aSEmmanuel Vadot		devbus_bootcs: devbus-bootcs {
23*f126890aSEmmanuel Vadot			compatible = "marvell,orion-devbus";
24*f126890aSEmmanuel Vadot			reg = <MBUS_ID(0xf0, 0x01) 0x1046C 0x4>;
25*f126890aSEmmanuel Vadot			ranges = <0 MBUS_ID(0x01, 0x0f) 0 0xffffffff>;
26*f126890aSEmmanuel Vadot			#address-cells = <1>;
27*f126890aSEmmanuel Vadot			#size-cells = <1>;
28*f126890aSEmmanuel Vadot			clocks = <&core_clk 0>;
29*f126890aSEmmanuel Vadot			status = "disabled";
30*f126890aSEmmanuel Vadot		};
31*f126890aSEmmanuel Vadot
32*f126890aSEmmanuel Vadot		devbus_cs0: devbus-cs0 {
33*f126890aSEmmanuel Vadot			compatible = "marvell,orion-devbus";
34*f126890aSEmmanuel Vadot			reg = <MBUS_ID(0xf0, 0x01) 0x1045C 0x4>;
35*f126890aSEmmanuel Vadot			ranges = <0 MBUS_ID(0x01, 0x1e) 0 0xffffffff>;
36*f126890aSEmmanuel Vadot			#address-cells = <1>;
37*f126890aSEmmanuel Vadot			#size-cells = <1>;
38*f126890aSEmmanuel Vadot			clocks = <&core_clk 0>;
39*f126890aSEmmanuel Vadot			status = "disabled";
40*f126890aSEmmanuel Vadot		};
41*f126890aSEmmanuel Vadot
42*f126890aSEmmanuel Vadot		devbus_cs1: devbus-cs1 {
43*f126890aSEmmanuel Vadot			compatible = "marvell,orion-devbus";
44*f126890aSEmmanuel Vadot			reg = <MBUS_ID(0xf0, 0x01) 0x10460 0x4>;
45*f126890aSEmmanuel Vadot			ranges = <0 MBUS_ID(0x01, 0x1d) 0 0xffffffff>;
46*f126890aSEmmanuel Vadot			#address-cells = <1>;
47*f126890aSEmmanuel Vadot			#size-cells = <1>;
48*f126890aSEmmanuel Vadot			clocks = <&core_clk 0>;
49*f126890aSEmmanuel Vadot			status = "disabled";
50*f126890aSEmmanuel Vadot		};
51*f126890aSEmmanuel Vadot
52*f126890aSEmmanuel Vadot		devbus_cs2: devbus-cs2 {
53*f126890aSEmmanuel Vadot			compatible = "marvell,orion-devbus";
54*f126890aSEmmanuel Vadot			reg = <MBUS_ID(0xf0, 0x01) 0x10464 0x4>;
55*f126890aSEmmanuel Vadot			ranges = <0 MBUS_ID(0x01, 0x1b) 0 0xffffffff>;
56*f126890aSEmmanuel Vadot			#address-cells = <1>;
57*f126890aSEmmanuel Vadot			#size-cells = <1>;
58*f126890aSEmmanuel Vadot			clocks = <&core_clk 0>;
59*f126890aSEmmanuel Vadot			status = "disabled";
60*f126890aSEmmanuel Vadot		};
61*f126890aSEmmanuel Vadot
62*f126890aSEmmanuel Vadot		internal-regs {
63*f126890aSEmmanuel Vadot			compatible = "simple-bus";
64*f126890aSEmmanuel Vadot			#address-cells = <1>;
65*f126890aSEmmanuel Vadot			#size-cells = <1>;
66*f126890aSEmmanuel Vadot			ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
67*f126890aSEmmanuel Vadot
68*f126890aSEmmanuel Vadot			gpio0: gpio@10100 {
69*f126890aSEmmanuel Vadot				compatible = "marvell,orion-gpio";
70*f126890aSEmmanuel Vadot				#gpio-cells = <2>;
71*f126890aSEmmanuel Vadot				gpio-controller;
72*f126890aSEmmanuel Vadot				reg = <0x10100 0x40>;
73*f126890aSEmmanuel Vadot				ngpios = <32>;
74*f126890aSEmmanuel Vadot				interrupt-controller;
75*f126890aSEmmanuel Vadot				#interrupt-cells = <2>;
76*f126890aSEmmanuel Vadot				interrupts = <6>, <7>, <8>, <9>;
77*f126890aSEmmanuel Vadot			};
78*f126890aSEmmanuel Vadot
79*f126890aSEmmanuel Vadot			spi: spi@10600 {
80*f126890aSEmmanuel Vadot				compatible = "marvell,orion-spi";
81*f126890aSEmmanuel Vadot				#address-cells = <1>;
82*f126890aSEmmanuel Vadot				#size-cells = <0>;
83*f126890aSEmmanuel Vadot				cell-index = <0>;
84*f126890aSEmmanuel Vadot				reg = <0x10600 0x28>;
85*f126890aSEmmanuel Vadot				status = "disabled";
86*f126890aSEmmanuel Vadot			};
87*f126890aSEmmanuel Vadot
88*f126890aSEmmanuel Vadot			i2c: i2c@11000 {
89*f126890aSEmmanuel Vadot				compatible = "marvell,mv64xxx-i2c";
90*f126890aSEmmanuel Vadot				reg = <0x11000 0x20>;
91*f126890aSEmmanuel Vadot				#address-cells = <1>;
92*f126890aSEmmanuel Vadot				#size-cells = <0>;
93*f126890aSEmmanuel Vadot				interrupts = <5>;
94*f126890aSEmmanuel Vadot				clocks = <&core_clk 0>;
95*f126890aSEmmanuel Vadot				status = "disabled";
96*f126890aSEmmanuel Vadot			};
97*f126890aSEmmanuel Vadot
98*f126890aSEmmanuel Vadot			uart0: serial@12000 {
99*f126890aSEmmanuel Vadot				compatible = "ns16550a";
100*f126890aSEmmanuel Vadot				reg = <0x12000 0x100>;
101*f126890aSEmmanuel Vadot				reg-shift = <2>;
102*f126890aSEmmanuel Vadot				interrupts = <3>;
103*f126890aSEmmanuel Vadot				clocks = <&core_clk 0>;
104*f126890aSEmmanuel Vadot				status = "disabled";
105*f126890aSEmmanuel Vadot			};
106*f126890aSEmmanuel Vadot
107*f126890aSEmmanuel Vadot			uart1: serial@12100 {
108*f126890aSEmmanuel Vadot				compatible = "ns16550a";
109*f126890aSEmmanuel Vadot				reg = <0x12100 0x100>;
110*f126890aSEmmanuel Vadot				reg-shift = <2>;
111*f126890aSEmmanuel Vadot				interrupts = <4>;
112*f126890aSEmmanuel Vadot				clocks = <&core_clk 0>;
113*f126890aSEmmanuel Vadot				status = "disabled";
114*f126890aSEmmanuel Vadot			};
115*f126890aSEmmanuel Vadot
116*f126890aSEmmanuel Vadot			bridge_intc: bridge-interrupt-ctrl@20110 {
117*f126890aSEmmanuel Vadot				compatible = "marvell,orion-bridge-intc";
118*f126890aSEmmanuel Vadot				interrupt-controller;
119*f126890aSEmmanuel Vadot				#interrupt-cells = <1>;
120*f126890aSEmmanuel Vadot				reg = <0x20110 0x8>;
121*f126890aSEmmanuel Vadot				interrupts = <0>;
122*f126890aSEmmanuel Vadot				marvell,#interrupts = <4>;
123*f126890aSEmmanuel Vadot			};
124*f126890aSEmmanuel Vadot
125*f126890aSEmmanuel Vadot			intc: interrupt-controller@20200 {
126*f126890aSEmmanuel Vadot				compatible = "marvell,orion-intc";
127*f126890aSEmmanuel Vadot				interrupt-controller;
128*f126890aSEmmanuel Vadot				#interrupt-cells = <1>;
129*f126890aSEmmanuel Vadot				reg = <0x20200 0x08>;
130*f126890aSEmmanuel Vadot			};
131*f126890aSEmmanuel Vadot
132*f126890aSEmmanuel Vadot			timer: timer@20300 {
133*f126890aSEmmanuel Vadot				compatible = "marvell,orion-timer";
134*f126890aSEmmanuel Vadot				reg = <0x20300 0x20>;
135*f126890aSEmmanuel Vadot				interrupt-parent = <&bridge_intc>;
136*f126890aSEmmanuel Vadot				interrupts = <1>, <2>;
137*f126890aSEmmanuel Vadot				clocks = <&core_clk 0>;
138*f126890aSEmmanuel Vadot			};
139*f126890aSEmmanuel Vadot
140*f126890aSEmmanuel Vadot			wdt: wdt@20300 {
141*f126890aSEmmanuel Vadot				compatible = "marvell,orion-wdt";
142*f126890aSEmmanuel Vadot				reg = <0x20300 0x28>, <0x20108 0x4>;
143*f126890aSEmmanuel Vadot				interrupt-parent = <&bridge_intc>;
144*f126890aSEmmanuel Vadot				interrupts = <3>;
145*f126890aSEmmanuel Vadot				clocks = <&core_clk 0>;
146*f126890aSEmmanuel Vadot				status = "okay";
147*f126890aSEmmanuel Vadot			};
148*f126890aSEmmanuel Vadot
149*f126890aSEmmanuel Vadot			ehci0: ehci@50000 {
150*f126890aSEmmanuel Vadot				compatible = "marvell,orion-ehci";
151*f126890aSEmmanuel Vadot				reg = <0x50000 0x1000>;
152*f126890aSEmmanuel Vadot				interrupts = <17>;
153*f126890aSEmmanuel Vadot				status = "disabled";
154*f126890aSEmmanuel Vadot			};
155*f126890aSEmmanuel Vadot
156*f126890aSEmmanuel Vadot			xor: dma-controller@60900 {
157*f126890aSEmmanuel Vadot				compatible = "marvell,orion-xor";
158*f126890aSEmmanuel Vadot				reg = <0x60900 0x100
159*f126890aSEmmanuel Vadot				       0x60b00 0x100>;
160*f126890aSEmmanuel Vadot				status = "okay";
161*f126890aSEmmanuel Vadot
162*f126890aSEmmanuel Vadot				xor00 {
163*f126890aSEmmanuel Vadot				      interrupts = <30>;
164*f126890aSEmmanuel Vadot				      dmacap,memcpy;
165*f126890aSEmmanuel Vadot				      dmacap,xor;
166*f126890aSEmmanuel Vadot				};
167*f126890aSEmmanuel Vadot				xor01 {
168*f126890aSEmmanuel Vadot				      interrupts = <31>;
169*f126890aSEmmanuel Vadot				      dmacap,memcpy;
170*f126890aSEmmanuel Vadot				      dmacap,xor;
171*f126890aSEmmanuel Vadot				      dmacap,memset;
172*f126890aSEmmanuel Vadot				};
173*f126890aSEmmanuel Vadot			};
174*f126890aSEmmanuel Vadot
175*f126890aSEmmanuel Vadot			eth: ethernet-controller@72000 {
176*f126890aSEmmanuel Vadot				compatible = "marvell,orion-eth";
177*f126890aSEmmanuel Vadot				#address-cells = <1>;
178*f126890aSEmmanuel Vadot				#size-cells = <0>;
179*f126890aSEmmanuel Vadot				reg = <0x72000 0x4000>;
180*f126890aSEmmanuel Vadot				marvell,tx-checksum-limit = <1600>;
181*f126890aSEmmanuel Vadot				status = "disabled";
182*f126890aSEmmanuel Vadot
183*f126890aSEmmanuel Vadot				ethport: ethernet-port@0 {
184*f126890aSEmmanuel Vadot					compatible = "marvell,orion-eth-port";
185*f126890aSEmmanuel Vadot					reg = <0>;
186*f126890aSEmmanuel Vadot					interrupts = <21>;
187*f126890aSEmmanuel Vadot					/* overwrite MAC address in bootloader */
188*f126890aSEmmanuel Vadot					local-mac-address = [00 00 00 00 00 00];
189*f126890aSEmmanuel Vadot					/* set phy-handle property in board file */
190*f126890aSEmmanuel Vadot				};
191*f126890aSEmmanuel Vadot			};
192*f126890aSEmmanuel Vadot
193*f126890aSEmmanuel Vadot			mdio: mdio-bus@72004 {
194*f126890aSEmmanuel Vadot				compatible = "marvell,orion-mdio";
195*f126890aSEmmanuel Vadot				#address-cells = <1>;
196*f126890aSEmmanuel Vadot				#size-cells = <0>;
197*f126890aSEmmanuel Vadot				reg = <0x72004 0x84>;
198*f126890aSEmmanuel Vadot				interrupts = <22>;
199*f126890aSEmmanuel Vadot				status = "disabled";
200*f126890aSEmmanuel Vadot
201*f126890aSEmmanuel Vadot				/* add phy nodes in board file */
202*f126890aSEmmanuel Vadot			};
203*f126890aSEmmanuel Vadot
204*f126890aSEmmanuel Vadot			sata: sata@80000 {
205*f126890aSEmmanuel Vadot				compatible = "marvell,orion-sata";
206*f126890aSEmmanuel Vadot				reg = <0x80000 0x5000>;
207*f126890aSEmmanuel Vadot				interrupts = <29>;
208*f126890aSEmmanuel Vadot				status = "disabled";
209*f126890aSEmmanuel Vadot			};
210*f126890aSEmmanuel Vadot
211*f126890aSEmmanuel Vadot			cesa: crypto@90000 {
212*f126890aSEmmanuel Vadot				compatible = "marvell,orion-crypto";
213*f126890aSEmmanuel Vadot				reg = <0x90000 0x10000>;
214*f126890aSEmmanuel Vadot				reg-names = "regs";
215*f126890aSEmmanuel Vadot				interrupts = <28>;
216*f126890aSEmmanuel Vadot				marvell,crypto-srams = <&crypto_sram>;
217*f126890aSEmmanuel Vadot				marvell,crypto-sram-size = <0x800>;
218*f126890aSEmmanuel Vadot				status = "okay";
219*f126890aSEmmanuel Vadot			};
220*f126890aSEmmanuel Vadot
221*f126890aSEmmanuel Vadot			ehci1: ehci@a0000 {
222*f126890aSEmmanuel Vadot				compatible = "marvell,orion-ehci";
223*f126890aSEmmanuel Vadot				reg = <0xa0000 0x1000>;
224*f126890aSEmmanuel Vadot				interrupts = <12>;
225*f126890aSEmmanuel Vadot				status = "disabled";
226*f126890aSEmmanuel Vadot			};
227*f126890aSEmmanuel Vadot		};
228*f126890aSEmmanuel Vadot
229*f126890aSEmmanuel Vadot		crypto_sram: sa-sram {
230*f126890aSEmmanuel Vadot			compatible = "mmio-sram";
231*f126890aSEmmanuel Vadot			reg = <MBUS_ID(0x09, 0x00) 0x0 0x800>;
232*f126890aSEmmanuel Vadot			#address-cells = <1>;
233*f126890aSEmmanuel Vadot			#size-cells = <1>;
234*f126890aSEmmanuel Vadot		};
235*f126890aSEmmanuel Vadot	};
236*f126890aSEmmanuel Vadot};
237