xref: /rk3399_rockchip-uboot/arch/arm/dts/armada-375-db.dts (revision 7e10a7c3bc382ff79bb6746944a0a4a0073a0faf)
1*606576d5SStefan Roese/*
2*606576d5SStefan Roese * Device Tree file for Marvell Armada 375 evaluation board
3*606576d5SStefan Roese * (DB-88F6720)
4*606576d5SStefan Roese *
5*606576d5SStefan Roese *  Copyright (C) 2014 Marvell
6*606576d5SStefan Roese *
7*606576d5SStefan Roese * Gregory CLEMENT <gregory.clement@free-electrons.com>
8*606576d5SStefan Roese * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
9*606576d5SStefan Roese *
10*606576d5SStefan Roese * This file is dual-licensed: you can use it either under the terms
11*606576d5SStefan Roese * of the GPL or the X11 license, at your option. Note that this dual
12*606576d5SStefan Roese * licensing only applies to this file, and not this project as a
13*606576d5SStefan Roese * whole.
14*606576d5SStefan Roese *
15*606576d5SStefan Roese *  a) This file is free software; you can redistribute it and/or
16*606576d5SStefan Roese *     modify it under the terms of the GNU General Public License as
17*606576d5SStefan Roese *     published by the Free Software Foundation; either version 2 of the
18*606576d5SStefan Roese *     License, or (at your option) any later version.
19*606576d5SStefan Roese *
20*606576d5SStefan Roese *     This file is distributed in the hope that it will be useful
21*606576d5SStefan Roese *     but WITHOUT ANY WARRANTY; without even the implied warranty of
22*606576d5SStefan Roese *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23*606576d5SStefan Roese *     GNU General Public License for more details.
24*606576d5SStefan Roese *
25*606576d5SStefan Roese * Or, alternatively
26*606576d5SStefan Roese *
27*606576d5SStefan Roese *  b) Permission is hereby granted, free of charge, to any person
28*606576d5SStefan Roese *     obtaining a copy of this software and associated documentation
29*606576d5SStefan Roese *     files (the "Software"), to deal in the Software without
30*606576d5SStefan Roese *     restriction, including without limitation the rights to use
31*606576d5SStefan Roese *     copy, modify, merge, publish, distribute, sublicense, and/or
32*606576d5SStefan Roese *     sell copies of the Software, and to permit persons to whom the
33*606576d5SStefan Roese *     Software is furnished to do so, subject to the following
34*606576d5SStefan Roese *     conditions:
35*606576d5SStefan Roese *
36*606576d5SStefan Roese *     The above copyright notice and this permission notice shall be
37*606576d5SStefan Roese *     included in all copies or substantial portions of the Software.
38*606576d5SStefan Roese *
39*606576d5SStefan Roese *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
40*606576d5SStefan Roese *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41*606576d5SStefan Roese *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42*606576d5SStefan Roese *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43*606576d5SStefan Roese *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
44*606576d5SStefan Roese *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45*606576d5SStefan Roese *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46*606576d5SStefan Roese *     OTHER DEALINGS IN THE SOFTWARE.
47*606576d5SStefan Roese */
48*606576d5SStefan Roese
49*606576d5SStefan Roese/dts-v1/;
50*606576d5SStefan Roese#include <dt-bindings/gpio/gpio.h>
51*606576d5SStefan Roese#include "armada-375.dtsi"
52*606576d5SStefan Roese
53*606576d5SStefan Roese/ {
54*606576d5SStefan Roese	model = "Marvell Armada 375 Development Board";
55*606576d5SStefan Roese	compatible = "marvell,a375-db", "marvell,armada375";
56*606576d5SStefan Roese
57*606576d5SStefan Roese	chosen {
58*606576d5SStefan Roese		stdout-path = "serial0:115200n8";
59*606576d5SStefan Roese	};
60*606576d5SStefan Roese
61*606576d5SStefan Roese	aliases {
62*606576d5SStefan Roese		/* So that mvebu u-boot can update the MAC addresses */
63*606576d5SStefan Roese		ethernet0 = &eth0;
64*606576d5SStefan Roese		ethernet1 = &eth1;
65*606576d5SStefan Roese		spi0 = &spi0;
66*606576d5SStefan Roese	};
67*606576d5SStefan Roese
68*606576d5SStefan Roese	memory {
69*606576d5SStefan Roese		device_type = "memory";
70*606576d5SStefan Roese		reg = <0x00000000 0x40000000>; /* 1 GB */
71*606576d5SStefan Roese	};
72*606576d5SStefan Roese
73*606576d5SStefan Roese	soc {
74*606576d5SStefan Roese		ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
75*606576d5SStefan Roese			  MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
76*606576d5SStefan Roese			  MBUS_ID(0x09, 0x09) 0 0xf1100000 0x10000
77*606576d5SStefan Roese			  MBUS_ID(0x09, 0x05) 0 0xf1110000 0x10000>;
78*606576d5SStefan Roese
79*606576d5SStefan Roese		internal-regs {
80*606576d5SStefan Roese			spi@10600 {
81*606576d5SStefan Roese				pinctrl-0 = <&spi0_pins>;
82*606576d5SStefan Roese				pinctrl-names = "default";
83*606576d5SStefan Roese				/*
84*606576d5SStefan Roese				 * SPI conflicts with NAND, so we disable it
85*606576d5SStefan Roese				 * here, and select NAND as the enabled device
86*606576d5SStefan Roese				 * by default.
87*606576d5SStefan Roese				 */
88*606576d5SStefan Roese				status = "okay";
89*606576d5SStefan Roese				u-boot,dm-pre-reloc;
90*606576d5SStefan Roese
91*606576d5SStefan Roese				spi-flash@0 {
92*606576d5SStefan Roese					u-boot,dm-pre-reloc;
93*606576d5SStefan Roese					#address-cells = <1>;
94*606576d5SStefan Roese					#size-cells = <1>;
95*606576d5SStefan Roese					compatible = "n25q128a13", "jedec,spi-nor";
96*606576d5SStefan Roese					reg = <0>; /* Chip select 0 */
97*606576d5SStefan Roese					spi-max-frequency = <108000000>;
98*606576d5SStefan Roese				};
99*606576d5SStefan Roese			};
100*606576d5SStefan Roese
101*606576d5SStefan Roese			i2c@11000 {
102*606576d5SStefan Roese				status = "okay";
103*606576d5SStefan Roese				clock-frequency = <100000>;
104*606576d5SStefan Roese				pinctrl-0 = <&i2c0_pins>;
105*606576d5SStefan Roese				pinctrl-names = "default";
106*606576d5SStefan Roese			};
107*606576d5SStefan Roese
108*606576d5SStefan Roese			i2c@11100 {
109*606576d5SStefan Roese				status = "okay";
110*606576d5SStefan Roese				clock-frequency = <100000>;
111*606576d5SStefan Roese				pinctrl-0 = <&i2c1_pins>;
112*606576d5SStefan Roese				pinctrl-names = "default";
113*606576d5SStefan Roese			};
114*606576d5SStefan Roese
115*606576d5SStefan Roese			serial@12000 {
116*606576d5SStefan Roese				u-boot,dm-pre-reloc;
117*606576d5SStefan Roese				status = "okay";
118*606576d5SStefan Roese			};
119*606576d5SStefan Roese
120*606576d5SStefan Roese			pinctrl {
121*606576d5SStefan Roese				sdio_st_pins: sdio-st-pins {
122*606576d5SStefan Roese					marvell,pins = "mpp44", "mpp45";
123*606576d5SStefan Roese					marvell,function = "gpio";
124*606576d5SStefan Roese				};
125*606576d5SStefan Roese			};
126*606576d5SStefan Roese
127*606576d5SStefan Roese			sata@a0000 {
128*606576d5SStefan Roese				status = "okay";
129*606576d5SStefan Roese				nr-ports = <2>;
130*606576d5SStefan Roese			};
131*606576d5SStefan Roese
132*606576d5SStefan Roese			nand: nand@d0000 {
133*606576d5SStefan Roese				pinctrl-0 = <&nand_pins>;
134*606576d5SStefan Roese				pinctrl-names = "default";
135*606576d5SStefan Roese				status = "okay";
136*606576d5SStefan Roese				num-cs = <1>;
137*606576d5SStefan Roese				marvell,nand-keep-config;
138*606576d5SStefan Roese				marvell,nand-enable-arbiter;
139*606576d5SStefan Roese				nand-on-flash-bbt;
140*606576d5SStefan Roese				nand-ecc-strength = <4>;
141*606576d5SStefan Roese				nand-ecc-step-size = <512>;
142*606576d5SStefan Roese
143*606576d5SStefan Roese				partition@0 {
144*606576d5SStefan Roese					label = "U-Boot";
145*606576d5SStefan Roese					reg = <0 0x800000>;
146*606576d5SStefan Roese				};
147*606576d5SStefan Roese				partition@800000 {
148*606576d5SStefan Roese					label = "Linux";
149*606576d5SStefan Roese					reg = <0x800000 0x800000>;
150*606576d5SStefan Roese				};
151*606576d5SStefan Roese				partition@1000000 {
152*606576d5SStefan Roese					label = "Filesystem";
153*606576d5SStefan Roese					reg = <0x1000000 0x3f000000>;
154*606576d5SStefan Roese				};
155*606576d5SStefan Roese			};
156*606576d5SStefan Roese
157*606576d5SStefan Roese			usb@54000 {
158*606576d5SStefan Roese				status = "okay";
159*606576d5SStefan Roese			};
160*606576d5SStefan Roese
161*606576d5SStefan Roese			usb3@58000 {
162*606576d5SStefan Roese				status = "okay";
163*606576d5SStefan Roese			};
164*606576d5SStefan Roese
165*606576d5SStefan Roese			mvsdio@d4000 {
166*606576d5SStefan Roese				pinctrl-0 = <&sdio_pins &sdio_st_pins>;
167*606576d5SStefan Roese				pinctrl-names = "default";
168*606576d5SStefan Roese				status = "okay";
169*606576d5SStefan Roese				cd-gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
170*606576d5SStefan Roese				wp-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
171*606576d5SStefan Roese			};
172*606576d5SStefan Roese
173*606576d5SStefan Roese			mdio {
174*606576d5SStefan Roese				phy0: ethernet-phy@0 {
175*606576d5SStefan Roese					reg = <0>;
176*606576d5SStefan Roese				};
177*606576d5SStefan Roese
178*606576d5SStefan Roese				phy3: ethernet-phy@3 {
179*606576d5SStefan Roese					reg = <3>;
180*606576d5SStefan Roese				};
181*606576d5SStefan Roese			};
182*606576d5SStefan Roese
183*606576d5SStefan Roese			ethernet@f0000 {
184*606576d5SStefan Roese				status = "okay";
185*606576d5SStefan Roese
186*606576d5SStefan Roese				eth0@c4000 {
187*606576d5SStefan Roese					status = "okay";
188*606576d5SStefan Roese					phy = <&phy0>;
189*606576d5SStefan Roese					phy-mode = "rgmii-id";
190*606576d5SStefan Roese				};
191*606576d5SStefan Roese
192*606576d5SStefan Roese				eth1@c5000 {
193*606576d5SStefan Roese					status = "okay";
194*606576d5SStefan Roese					phy = <&phy3>;
195*606576d5SStefan Roese					phy-mode = "gmii";
196*606576d5SStefan Roese				};
197*606576d5SStefan Roese			};
198*606576d5SStefan Roese		};
199*606576d5SStefan Roese
200*606576d5SStefan Roese		pcie-controller {
201*606576d5SStefan Roese			status = "okay";
202*606576d5SStefan Roese			/*
203*606576d5SStefan Roese			 * The two PCIe units are accessible through
204*606576d5SStefan Roese			 * standard PCIe slots on the board.
205*606576d5SStefan Roese			 */
206*606576d5SStefan Roese			pcie@1,0 {
207*606576d5SStefan Roese				/* Port 0, Lane 0 */
208*606576d5SStefan Roese				status = "okay";
209*606576d5SStefan Roese			};
210*606576d5SStefan Roese			pcie@2,0 {
211*606576d5SStefan Roese				/* Port 1, Lane 0 */
212*606576d5SStefan Roese				status = "okay";
213*606576d5SStefan Roese			};
214*606576d5SStefan Roese		};
215*606576d5SStefan Roese	};
216*606576d5SStefan Roese};
217