1b20c38a9SStefan Roese/*
2b20c38a9SStefan Roese * Device Tree file for Marvell Armada XP theadorable board
3b20c38a9SStefan Roese *
4b20c38a9SStefan Roese * Copyright (C) 2013-2014 Marvell
5b20c38a9SStefan Roese *
6b20c38a9SStefan Roese * Lior Amsalem <alior@marvell.com>
7b20c38a9SStefan Roese * Gregory CLEMENT <gregory.clement@free-electrons.com>
8b20c38a9SStefan Roese * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
9b20c38a9SStefan Roese *
10b20c38a9SStefan Roese * This file is dual-licensed: you can use it either under the terms
11b20c38a9SStefan Roese * of the GPL or the X11 license, at your option. Note that this dual
12b20c38a9SStefan Roese * licensing only applies to this file, and not this project as a
13b20c38a9SStefan Roese * whole.
14b20c38a9SStefan Roese *
15b20c38a9SStefan Roese *  a) This file is free software; you can redistribute it and/or
16b20c38a9SStefan Roese *     modify it under the terms of the GNU General Public License as
17b20c38a9SStefan Roese *     published by the Free Software Foundation; either version 2 of the
18b20c38a9SStefan Roese *     License, or (at your option) any later version.
19b20c38a9SStefan Roese *
20b20c38a9SStefan Roese *     This file is distributed in the hope that it will be useful
21b20c38a9SStefan Roese *     but WITHOUT ANY WARRANTY; without even the implied warranty of
22b20c38a9SStefan Roese *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23b20c38a9SStefan Roese *     GNU General Public License for more details.
24b20c38a9SStefan Roese *
25b20c38a9SStefan Roese * Or, alternatively
26b20c38a9SStefan Roese *
27b20c38a9SStefan Roese *  b) Permission is hereby granted, free of charge, to any person
28b20c38a9SStefan Roese *     obtaining a copy of this software and associated documentation
29b20c38a9SStefan Roese *     files (the "Software"), to deal in the Software without
30b20c38a9SStefan Roese *     restriction, including without limitation the rights to use
31b20c38a9SStefan Roese *     copy, modify, merge, publish, distribute, sublicense, and/or
32b20c38a9SStefan Roese *     sell copies of the Software, and to permit persons to whom the
33b20c38a9SStefan Roese *     Software is furnished to do so, subject to the following
34b20c38a9SStefan Roese *     conditions:
35b20c38a9SStefan Roese *
36b20c38a9SStefan Roese *     The above copyright notice and this permission notice shall be
37b20c38a9SStefan Roese *     included in all copies or substantial portions of the Software.
38b20c38a9SStefan Roese *
39b20c38a9SStefan Roese *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
40b20c38a9SStefan Roese *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41b20c38a9SStefan Roese *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42b20c38a9SStefan Roese *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43b20c38a9SStefan Roese *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
44b20c38a9SStefan Roese *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45b20c38a9SStefan Roese *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46b20c38a9SStefan Roese *     OTHER DEALINGS IN THE SOFTWARE.
47b20c38a9SStefan Roese *
48b20c38a9SStefan Roese * Note: this Device Tree assumes that the bootloader has remapped the
49b20c38a9SStefan Roese * internal registers to 0xf1000000 (instead of the default
50b20c38a9SStefan Roese * 0xd0000000). The 0xf1000000 is the default used by the recent,
51b20c38a9SStefan Roese * DT-capable, U-Boot bootloaders provided by Marvell. Some earlier
52b20c38a9SStefan Roese * boards were delivered with an older version of the bootloader that
53b20c38a9SStefan Roese * left internal registers mapped at 0xd0000000. If you are in this
54b20c38a9SStefan Roese * situation, you should either update your bootloader (preferred
55b20c38a9SStefan Roese * solution) or the below Device Tree should be adjusted.
56b20c38a9SStefan Roese */
57b20c38a9SStefan Roese
58b20c38a9SStefan Roese/dts-v1/;
59b20c38a9SStefan Roese#include <dt-bindings/gpio/gpio.h>
60b20c38a9SStefan Roese#include "armada-xp-mv78260.dtsi"
61b20c38a9SStefan Roese
62b20c38a9SStefan Roese/ {
63b20c38a9SStefan Roese	model = "Marvell Armada XP theadorable";
64b20c38a9SStefan Roese	compatible = "marvell,armadaxp-mv78260", "marvell,armadaxp", "marvell,armada-370-xp";
65b20c38a9SStefan Roese
66b20c38a9SStefan Roese	chosen {
67b20c38a9SStefan Roese		stdout-path = "serial0:115200n8";
68b20c38a9SStefan Roese	};
69b20c38a9SStefan Roese
70b20c38a9SStefan Roese	aliases {
71b20c38a9SStefan Roese		spi0 = &spi0;
72aea02abeSStefan Roese		spi1 = &spi1;
73b20c38a9SStefan Roese		ethernet0 = &eth0;
74b20c38a9SStefan Roese	};
75b20c38a9SStefan Roese
76b20c38a9SStefan Roese	memory {
77b20c38a9SStefan Roese		device_type = "memory";
78b20c38a9SStefan Roese		reg = <0x00000000 0x00000000 0x00000000 0x80000000>;
79b20c38a9SStefan Roese	};
80b20c38a9SStefan Roese
81b20c38a9SStefan Roese	soc {
82b20c38a9SStefan Roese		ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000
83b20c38a9SStefan Roese			  MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
84b20c38a9SStefan Roese			  MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000>;
85b20c38a9SStefan Roese
86b20c38a9SStefan Roese		internal-regs {
87b20c38a9SStefan Roese			serial@12000 {
88b20c38a9SStefan Roese				status = "okay";
89b20c38a9SStefan Roese				u-boot,dm-pre-reloc;
90b20c38a9SStefan Roese			};
91b20c38a9SStefan Roese
92b20c38a9SStefan Roese			serial@12100 {
93b20c38a9SStefan Roese				status = "okay";
94b20c38a9SStefan Roese			};
95b20c38a9SStefan Roese
96b20c38a9SStefan Roese			serial@12200 {
97b20c38a9SStefan Roese				status = "okay";
98b20c38a9SStefan Roese			};
99b20c38a9SStefan Roese
100b20c38a9SStefan Roese			serial@12300 {
101b20c38a9SStefan Roese				status = "okay";
102b20c38a9SStefan Roese			};
103b20c38a9SStefan Roese
104b20c38a9SStefan Roese			sata@a0000 {
105b20c38a9SStefan Roese				nr-ports = <2>;
106b20c38a9SStefan Roese				status = "okay";
107b20c38a9SStefan Roese			};
108b20c38a9SStefan Roese
109b20c38a9SStefan Roese			mdio {
110b20c38a9SStefan Roese				phy0: ethernet-phy@0 {
111b20c38a9SStefan Roese					reg = <0>;
112b20c38a9SStefan Roese				};
113b20c38a9SStefan Roese			};
114b20c38a9SStefan Roese
115b20c38a9SStefan Roese			ethernet@70000 {
116b20c38a9SStefan Roese				status = "okay";
117b20c38a9SStefan Roese				phy = <&phy0>;
118b20c38a9SStefan Roese				phy-mode = "sgmii";
119b20c38a9SStefan Roese			};
120b20c38a9SStefan Roese
121b20c38a9SStefan Roese			usb@50000 {
122b20c38a9SStefan Roese				status = "okay";
123b20c38a9SStefan Roese			};
124b20c38a9SStefan Roese
125b20c38a9SStefan Roese			usb@51000 {
126b20c38a9SStefan Roese				status = "okay";
127b20c38a9SStefan Roese			};
128b20c38a9SStefan Roese
129b20c38a9SStefan Roese			spi0: spi@10600 {
130b20c38a9SStefan Roese				status = "okay";
131b20c38a9SStefan Roese				u-boot,dm-pre-reloc;
132b20c38a9SStefan Roese
133b20c38a9SStefan Roese				spi-flash@0 {
134b20c38a9SStefan Roese					u-boot,dm-pre-reloc;
135b20c38a9SStefan Roese					#address-cells = <1>;
136b20c38a9SStefan Roese					#size-cells = <1>;
1376843db99SStefan Roese					compatible = "n25q128a13", "jedec,spi-nor", "spi-flash";
138b20c38a9SStefan Roese					reg = <0>; /* Chip select 0 */
139b20c38a9SStefan Roese					spi-max-frequency = <27777777>;
140b20c38a9SStefan Roese				};
141aea02abeSStefan Roese
142aea02abeSStefan Roese				fpga@1 {
143aea02abeSStefan Roese					#address-cells = <1>;
144aea02abeSStefan Roese					#size-cells = <1>;
145aea02abeSStefan Roese					compatible = "spi-generic-device";
146aea02abeSStefan Roese					reg = <1>; /* Chip select 1 */
147aea02abeSStefan Roese					spi-max-frequency = <27777777>;
148aea02abeSStefan Roese				};
149aea02abeSStefan Roese			};
150aea02abeSStefan Roese
151aea02abeSStefan Roese			spi1: spi@10680 {
152aea02abeSStefan Roese				status = "okay";
153aea02abeSStefan Roese
154ae4c38a5SStefan Roese				fpga@0 {
155aea02abeSStefan Roese					#address-cells = <1>;
156aea02abeSStefan Roese					#size-cells = <1>;
157aea02abeSStefan Roese					compatible = "spi-generic-device";
158ae4c38a5SStefan Roese					reg = <0>; /* Chip select 0 */
159aea02abeSStefan Roese					spi-max-frequency = <27777777>;
160aea02abeSStefan Roese				};
161b20c38a9SStefan Roese			};
162b20c38a9SStefan Roese		};
163b20c38a9SStefan Roese	};
164b20c38a9SStefan Roese};
165*9b276e90SStefan Roese
166*9b276e90SStefan Roese&pciec {
167*9b276e90SStefan Roese	status = "okay";
168*9b276e90SStefan Roese
169*9b276e90SStefan Roese	pcie@1,0 {
170*9b276e90SStefan Roese		/* Port 0, Lane 0 */
171*9b276e90SStefan Roese		status = "okay";
172*9b276e90SStefan Roese	};
173*9b276e90SStefan Roese
174*9b276e90SStefan Roese	pcie@9,0 {
175*9b276e90SStefan Roese		/* Port 2, Lane 0 */
176*9b276e90SStefan Roese		status = "okay";
177*9b276e90SStefan Roese	};
178*9b276e90SStefan Roese};
179