xref: /rk3399_rockchip-uboot/arch/arm/dts/armada-370-xp.dtsi (revision f46c25583a73042edf432b209ee4b93bc3f7e762)
139a230aaSStefan Roese/*
239a230aaSStefan Roese * Device Tree Include file for Marvell Armada 370 and Armada XP SoC
339a230aaSStefan Roese *
439a230aaSStefan Roese * Copyright (C) 2012 Marvell
539a230aaSStefan Roese *
639a230aaSStefan Roese * Lior Amsalem <alior@marvell.com>
739a230aaSStefan Roese * Gregory CLEMENT <gregory.clement@free-electrons.com>
839a230aaSStefan Roese * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
939a230aaSStefan Roese * Ben Dooks <ben.dooks@codethink.co.uk>
1039a230aaSStefan Roese *
1139a230aaSStefan Roese * This file is dual-licensed: you can use it either under the terms
1239a230aaSStefan Roese * of the GPL or the X11 license, at your option. Note that this dual
1339a230aaSStefan Roese * licensing only applies to this file, and not this project as a
1439a230aaSStefan Roese * whole.
1539a230aaSStefan Roese *
1639a230aaSStefan Roese *  a) This file is free software; you can redistribute it and/or
1739a230aaSStefan Roese *     modify it under the terms of the GNU General Public License as
1839a230aaSStefan Roese *     published by the Free Software Foundation; either version 2 of the
1939a230aaSStefan Roese *     License, or (at your option) any later version.
2039a230aaSStefan Roese *
2139a230aaSStefan Roese *     This file is distributed in the hope that it will be useful
2239a230aaSStefan Roese *     but WITHOUT ANY WARRANTY; without even the implied warranty of
2339a230aaSStefan Roese *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2439a230aaSStefan Roese *     GNU General Public License for more details.
2539a230aaSStefan Roese *
2639a230aaSStefan Roese * Or, alternatively
2739a230aaSStefan Roese *
2839a230aaSStefan Roese *  b) Permission is hereby granted, free of charge, to any person
2939a230aaSStefan Roese *     obtaining a copy of this software and associated documentation
3039a230aaSStefan Roese *     files (the "Software"), to deal in the Software without
3139a230aaSStefan Roese *     restriction, including without limitation the rights to use
3239a230aaSStefan Roese *     copy, modify, merge, publish, distribute, sublicense, and/or
3339a230aaSStefan Roese *     sell copies of the Software, and to permit persons to whom the
3439a230aaSStefan Roese *     Software is furnished to do so, subject to the following
3539a230aaSStefan Roese *     conditions:
3639a230aaSStefan Roese *
3739a230aaSStefan Roese *     The above copyright notice and this permission notice shall be
3839a230aaSStefan Roese *     included in all copies or substantial portions of the Software.
3939a230aaSStefan Roese *
4039a230aaSStefan Roese *     THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
4139a230aaSStefan Roese *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
4239a230aaSStefan Roese *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
4339a230aaSStefan Roese *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
4439a230aaSStefan Roese *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
4539a230aaSStefan Roese *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
4639a230aaSStefan Roese *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
4739a230aaSStefan Roese *     OTHER DEALINGS IN THE SOFTWARE.
4839a230aaSStefan Roese *
4939a230aaSStefan Roese * This file contains the definitions that are common to the Armada
5039a230aaSStefan Roese * 370 and Armada XP SoC.
5139a230aaSStefan Roese */
5239a230aaSStefan Roese
5339a230aaSStefan Roese/include/ "skeleton64.dtsi"
5439a230aaSStefan Roese
5539a230aaSStefan Roese#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
5639a230aaSStefan Roese
5739a230aaSStefan Roese/ {
5839a230aaSStefan Roese	model = "Marvell Armada 370 and XP SoC";
5939a230aaSStefan Roese	compatible = "marvell,armada-370-xp";
6039a230aaSStefan Roese
6139a230aaSStefan Roese	aliases {
6239a230aaSStefan Roese		serial0 = &uart0;
6339a230aaSStefan Roese		serial1 = &uart1;
6439a230aaSStefan Roese	};
6539a230aaSStefan Roese
6639a230aaSStefan Roese	cpus {
6739a230aaSStefan Roese		#address-cells = <1>;
6839a230aaSStefan Roese		#size-cells = <0>;
6939a230aaSStefan Roese		cpu@0 {
7039a230aaSStefan Roese			compatible = "marvell,sheeva-v7";
7139a230aaSStefan Roese			device_type = "cpu";
7239a230aaSStefan Roese			reg = <0>;
7339a230aaSStefan Roese		};
7439a230aaSStefan Roese	};
7539a230aaSStefan Roese
7639a230aaSStefan Roese	pmu {
7739a230aaSStefan Roese		compatible = "arm,cortex-a9-pmu";
7839a230aaSStefan Roese		interrupts-extended = <&mpic 3>;
7939a230aaSStefan Roese	};
8039a230aaSStefan Roese
8139a230aaSStefan Roese	soc {
8239a230aaSStefan Roese		#address-cells = <2>;
8339a230aaSStefan Roese		#size-cells = <1>;
8439a230aaSStefan Roese		controller = <&mbusc>;
8539a230aaSStefan Roese		interrupt-parent = <&mpic>;
8639a230aaSStefan Roese		pcie-mem-aperture = <0xf8000000 0x7e00000>;
8739a230aaSStefan Roese		pcie-io-aperture  = <0xffe00000 0x100000>;
8839a230aaSStefan Roese
8939a230aaSStefan Roese		devbus-bootcs {
9039a230aaSStefan Roese			compatible = "marvell,mvebu-devbus";
9139a230aaSStefan Roese			reg = <MBUS_ID(0xf0, 0x01) 0x10400 0x8>;
9239a230aaSStefan Roese			ranges = <0 MBUS_ID(0x01, 0x2f) 0 0xffffffff>;
9339a230aaSStefan Roese			#address-cells = <1>;
9439a230aaSStefan Roese			#size-cells = <1>;
9539a230aaSStefan Roese			clocks = <&coreclk 0>;
9639a230aaSStefan Roese			status = "disabled";
9739a230aaSStefan Roese		};
9839a230aaSStefan Roese
9939a230aaSStefan Roese		devbus-cs0 {
10039a230aaSStefan Roese			compatible = "marvell,mvebu-devbus";
10139a230aaSStefan Roese			reg = <MBUS_ID(0xf0, 0x01) 0x10408 0x8>;
10239a230aaSStefan Roese			ranges = <0 MBUS_ID(0x01, 0x3e) 0 0xffffffff>;
10339a230aaSStefan Roese			#address-cells = <1>;
10439a230aaSStefan Roese			#size-cells = <1>;
10539a230aaSStefan Roese			clocks = <&coreclk 0>;
10639a230aaSStefan Roese			status = "disabled";
10739a230aaSStefan Roese		};
10839a230aaSStefan Roese
10939a230aaSStefan Roese		devbus-cs1 {
11039a230aaSStefan Roese			compatible = "marvell,mvebu-devbus";
11139a230aaSStefan Roese			reg = <MBUS_ID(0xf0, 0x01) 0x10410 0x8>;
11239a230aaSStefan Roese			ranges = <0 MBUS_ID(0x01, 0x3d) 0 0xffffffff>;
11339a230aaSStefan Roese			#address-cells = <1>;
11439a230aaSStefan Roese			#size-cells = <1>;
11539a230aaSStefan Roese			clocks = <&coreclk 0>;
11639a230aaSStefan Roese			status = "disabled";
11739a230aaSStefan Roese		};
11839a230aaSStefan Roese
11939a230aaSStefan Roese		devbus-cs2 {
12039a230aaSStefan Roese			compatible = "marvell,mvebu-devbus";
12139a230aaSStefan Roese			reg = <MBUS_ID(0xf0, 0x01) 0x10418 0x8>;
12239a230aaSStefan Roese			ranges = <0 MBUS_ID(0x01, 0x3b) 0 0xffffffff>;
12339a230aaSStefan Roese			#address-cells = <1>;
12439a230aaSStefan Roese			#size-cells = <1>;
12539a230aaSStefan Roese			clocks = <&coreclk 0>;
12639a230aaSStefan Roese			status = "disabled";
12739a230aaSStefan Roese		};
12839a230aaSStefan Roese
12939a230aaSStefan Roese		devbus-cs3 {
13039a230aaSStefan Roese			compatible = "marvell,mvebu-devbus";
13139a230aaSStefan Roese			reg = <MBUS_ID(0xf0, 0x01) 0x10420 0x8>;
13239a230aaSStefan Roese			ranges = <0 MBUS_ID(0x01, 0x37) 0 0xffffffff>;
13339a230aaSStefan Roese			#address-cells = <1>;
13439a230aaSStefan Roese			#size-cells = <1>;
13539a230aaSStefan Roese			clocks = <&coreclk 0>;
13639a230aaSStefan Roese			status = "disabled";
13739a230aaSStefan Roese		};
13839a230aaSStefan Roese
13939a230aaSStefan Roese		internal-regs {
14039a230aaSStefan Roese			compatible = "simple-bus";
14139a230aaSStefan Roese			#address-cells = <1>;
14239a230aaSStefan Roese			#size-cells = <1>;
14339a230aaSStefan Roese			ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
144*6451223aSStefan Roese			u-boot,dm-pre-reloc;
14539a230aaSStefan Roese
14639a230aaSStefan Roese			rtc@10300 {
14739a230aaSStefan Roese				compatible = "marvell,orion-rtc";
14839a230aaSStefan Roese				reg = <0x10300 0x20>;
14939a230aaSStefan Roese				interrupts = <50>;
15039a230aaSStefan Roese			};
15139a230aaSStefan Roese
15239a230aaSStefan Roese			spi0: spi@10600 {
15339a230aaSStefan Roese				reg = <0x10600 0x28>;
15439a230aaSStefan Roese				#address-cells = <1>;
15539a230aaSStefan Roese				#size-cells = <0>;
15639a230aaSStefan Roese				cell-index = <0>;
15739a230aaSStefan Roese				interrupts = <30>;
15839a230aaSStefan Roese				clocks = <&coreclk 0>;
15939a230aaSStefan Roese				status = "disabled";
16039a230aaSStefan Roese			};
16139a230aaSStefan Roese
16239a230aaSStefan Roese			spi1: spi@10680 {
16339a230aaSStefan Roese				reg = <0x10680 0x28>;
16439a230aaSStefan Roese				#address-cells = <1>;
16539a230aaSStefan Roese				#size-cells = <0>;
16639a230aaSStefan Roese				cell-index = <1>;
16739a230aaSStefan Roese				interrupts = <92>;
16839a230aaSStefan Roese				clocks = <&coreclk 0>;
16939a230aaSStefan Roese				status = "disabled";
17039a230aaSStefan Roese			};
17139a230aaSStefan Roese
17239a230aaSStefan Roese			i2c0: i2c@11000 {
17339a230aaSStefan Roese				compatible = "marvell,mv64xxx-i2c";
17439a230aaSStefan Roese				#address-cells = <1>;
17539a230aaSStefan Roese				#size-cells = <0>;
17639a230aaSStefan Roese				interrupts = <31>;
17739a230aaSStefan Roese				timeout-ms = <1000>;
17839a230aaSStefan Roese				clocks = <&coreclk 0>;
17939a230aaSStefan Roese				status = "disabled";
18039a230aaSStefan Roese			};
18139a230aaSStefan Roese
18239a230aaSStefan Roese			i2c1: i2c@11100 {
18339a230aaSStefan Roese				compatible = "marvell,mv64xxx-i2c";
18439a230aaSStefan Roese				#address-cells = <1>;
18539a230aaSStefan Roese				#size-cells = <0>;
18639a230aaSStefan Roese				interrupts = <32>;
18739a230aaSStefan Roese				timeout-ms = <1000>;
18839a230aaSStefan Roese				clocks = <&coreclk 0>;
18939a230aaSStefan Roese				status = "disabled";
19039a230aaSStefan Roese			};
19139a230aaSStefan Roese
19239a230aaSStefan Roese			uart0: serial@12000 {
19339a230aaSStefan Roese				compatible = "snps,dw-apb-uart";
19439a230aaSStefan Roese				reg = <0x12000 0x100>;
19539a230aaSStefan Roese				reg-shift = <2>;
19639a230aaSStefan Roese				interrupts = <41>;
19739a230aaSStefan Roese				reg-io-width = <1>;
19839a230aaSStefan Roese				clocks = <&coreclk 0>;
19939a230aaSStefan Roese				status = "disabled";
20039a230aaSStefan Roese			};
20139a230aaSStefan Roese
20239a230aaSStefan Roese			uart1: serial@12100 {
20339a230aaSStefan Roese				compatible = "snps,dw-apb-uart";
20439a230aaSStefan Roese				reg = <0x12100 0x100>;
20539a230aaSStefan Roese				reg-shift = <2>;
20639a230aaSStefan Roese				interrupts = <42>;
20739a230aaSStefan Roese				reg-io-width = <1>;
20839a230aaSStefan Roese				clocks = <&coreclk 0>;
20939a230aaSStefan Roese				status = "disabled";
21039a230aaSStefan Roese			};
21139a230aaSStefan Roese
21239a230aaSStefan Roese			pinctrl: pin-ctrl@18000 {
21339a230aaSStefan Roese				reg = <0x18000 0x38>;
21439a230aaSStefan Roese			};
21539a230aaSStefan Roese
21639a230aaSStefan Roese			coredivclk: corediv-clock@18740 {
21739a230aaSStefan Roese				compatible = "marvell,armada-370-corediv-clock";
21839a230aaSStefan Roese				reg = <0x18740 0xc>;
21939a230aaSStefan Roese				#clock-cells = <1>;
22039a230aaSStefan Roese				clocks = <&mainpll>;
22139a230aaSStefan Roese				clock-output-names = "nand";
22239a230aaSStefan Roese			};
22339a230aaSStefan Roese
22439a230aaSStefan Roese			mbusc: mbus-controller@20000 {
22539a230aaSStefan Roese				compatible = "marvell,mbus-controller";
22639a230aaSStefan Roese				reg = <0x20000 0x100>, <0x20180 0x20>,
22739a230aaSStefan Roese				      <0x20250 0x8>;
22839a230aaSStefan Roese			};
22939a230aaSStefan Roese
23039a230aaSStefan Roese			mpic: interrupt-controller@20a00 {
23139a230aaSStefan Roese				compatible = "marvell,mpic";
23239a230aaSStefan Roese				#interrupt-cells = <1>;
23339a230aaSStefan Roese				#size-cells = <1>;
23439a230aaSStefan Roese				interrupt-controller;
23539a230aaSStefan Roese				msi-controller;
23639a230aaSStefan Roese			};
23739a230aaSStefan Roese
23839a230aaSStefan Roese			coherency-fabric@20200 {
23939a230aaSStefan Roese				compatible = "marvell,coherency-fabric";
24039a230aaSStefan Roese				reg = <0x20200 0xb0>, <0x21010 0x1c>;
24139a230aaSStefan Roese			};
24239a230aaSStefan Roese
24339a230aaSStefan Roese			timer@20300 {
24439a230aaSStefan Roese				reg = <0x20300 0x30>, <0x21040 0x30>;
24539a230aaSStefan Roese				interrupts = <37>, <38>, <39>, <40>, <5>, <6>;
24639a230aaSStefan Roese			};
24739a230aaSStefan Roese
24839a230aaSStefan Roese			watchdog@20300 {
24939a230aaSStefan Roese				reg = <0x20300 0x34>, <0x20704 0x4>;
25039a230aaSStefan Roese			};
25139a230aaSStefan Roese
25239a230aaSStefan Roese			pmsu@22000 {
25339a230aaSStefan Roese				compatible = "marvell,armada-370-pmsu";
25439a230aaSStefan Roese				reg = <0x22000 0x1000>;
25539a230aaSStefan Roese			};
25639a230aaSStefan Roese
25739a230aaSStefan Roese			usb@50000 {
25839a230aaSStefan Roese				compatible = "marvell,orion-ehci";
25939a230aaSStefan Roese				reg = <0x50000 0x500>;
26039a230aaSStefan Roese				interrupts = <45>;
26139a230aaSStefan Roese				status = "disabled";
26239a230aaSStefan Roese			};
26339a230aaSStefan Roese
26439a230aaSStefan Roese			usb@51000 {
26539a230aaSStefan Roese				compatible = "marvell,orion-ehci";
26639a230aaSStefan Roese				reg = <0x51000 0x500>;
26739a230aaSStefan Roese				interrupts = <46>;
26839a230aaSStefan Roese				status = "disabled";
26939a230aaSStefan Roese			};
27039a230aaSStefan Roese
27139a230aaSStefan Roese			eth0: ethernet@70000 {
27239a230aaSStefan Roese				reg = <0x70000 0x4000>;
27339a230aaSStefan Roese				interrupts = <8>;
27439a230aaSStefan Roese				clocks = <&gateclk 4>;
27539a230aaSStefan Roese				status = "disabled";
27639a230aaSStefan Roese			};
27739a230aaSStefan Roese
27839a230aaSStefan Roese			mdio: mdio {
27939a230aaSStefan Roese				#address-cells = <1>;
28039a230aaSStefan Roese				#size-cells = <0>;
28139a230aaSStefan Roese				compatible = "marvell,orion-mdio";
28239a230aaSStefan Roese				reg = <0x72004 0x4>;
28339a230aaSStefan Roese				clocks = <&gateclk 4>;
28439a230aaSStefan Roese			};
28539a230aaSStefan Roese
28639a230aaSStefan Roese			eth1: ethernet@74000 {
28739a230aaSStefan Roese				reg = <0x74000 0x4000>;
28839a230aaSStefan Roese				interrupts = <10>;
28939a230aaSStefan Roese				clocks = <&gateclk 3>;
29039a230aaSStefan Roese				status = "disabled";
29139a230aaSStefan Roese			};
29239a230aaSStefan Roese
29339a230aaSStefan Roese			sata@a0000 {
29439a230aaSStefan Roese				compatible = "marvell,armada-370-sata";
29539a230aaSStefan Roese				reg = <0xa0000 0x5000>;
29639a230aaSStefan Roese				interrupts = <55>;
29739a230aaSStefan Roese				clocks = <&gateclk 15>, <&gateclk 30>;
29839a230aaSStefan Roese				clock-names = "0", "1";
29939a230aaSStefan Roese				status = "disabled";
30039a230aaSStefan Roese			};
30139a230aaSStefan Roese
30239a230aaSStefan Roese			nand@d0000 {
30339a230aaSStefan Roese				compatible = "marvell,armada370-nand";
30439a230aaSStefan Roese				reg = <0xd0000 0x54>;
30539a230aaSStefan Roese				#address-cells = <1>;
30639a230aaSStefan Roese				#size-cells = <1>;
30739a230aaSStefan Roese				interrupts = <113>;
30839a230aaSStefan Roese				clocks = <&coredivclk 0>;
30939a230aaSStefan Roese				status = "disabled";
31039a230aaSStefan Roese			};
31139a230aaSStefan Roese
31239a230aaSStefan Roese			mvsdio@d4000 {
31339a230aaSStefan Roese				compatible = "marvell,orion-sdio";
31439a230aaSStefan Roese				reg = <0xd4000 0x200>;
31539a230aaSStefan Roese				interrupts = <54>;
31639a230aaSStefan Roese				clocks = <&gateclk 17>;
31739a230aaSStefan Roese				bus-width = <4>;
31839a230aaSStefan Roese				cap-sdio-irq;
31939a230aaSStefan Roese				cap-sd-highspeed;
32039a230aaSStefan Roese				cap-mmc-highspeed;
32139a230aaSStefan Roese				status = "disabled";
32239a230aaSStefan Roese			};
32339a230aaSStefan Roese		};
32439a230aaSStefan Roese	};
32539a230aaSStefan Roese
32639a230aaSStefan Roese	clocks {
32739a230aaSStefan Roese		/* 2 GHz fixed main PLL */
32839a230aaSStefan Roese		mainpll: mainpll {
32939a230aaSStefan Roese			compatible = "fixed-clock";
33039a230aaSStefan Roese			#clock-cells = <0>;
33139a230aaSStefan Roese			clock-frequency = <2000000000>;
33239a230aaSStefan Roese		};
33339a230aaSStefan Roese	};
33439a230aaSStefan Roese };
335