xref: /rk3399_rockchip-uboot/arch/arm/dts/armada-xp.dtsi (revision f46c25583a73042edf432b209ee4b93bc3f7e762)
139a230aaSStefan Roese/*
239a230aaSStefan Roese * Device Tree Include file for Marvell Armada XP family 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 * Contains definitions specific to the Armada XP SoC that are not
5039a230aaSStefan Roese * common to all Armada SoCs.
5139a230aaSStefan Roese */
5239a230aaSStefan Roese
5339a230aaSStefan Roese#include "armada-370-xp.dtsi"
5439a230aaSStefan Roese
5539a230aaSStefan Roese/ {
5639a230aaSStefan Roese	model = "Marvell Armada XP family SoC";
5739a230aaSStefan Roese	compatible = "marvell,armadaxp", "marvell,armada-370-xp";
5839a230aaSStefan Roese
5939a230aaSStefan Roese	aliases {
6039a230aaSStefan Roese		serial2 = &uart2;
6139a230aaSStefan Roese		serial3 = &uart3;
6239a230aaSStefan Roese	};
6339a230aaSStefan Roese
6439a230aaSStefan Roese	soc {
6539a230aaSStefan Roese		compatible = "marvell,armadaxp-mbus", "simple-bus";
66*09a54c00SStefan Roese		u-boot,dm-pre-reloc;
6739a230aaSStefan Roese
6839a230aaSStefan Roese		bootrom {
6939a230aaSStefan Roese			compatible = "marvell,bootrom";
7039a230aaSStefan Roese			reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>;
7139a230aaSStefan Roese		};
7239a230aaSStefan Roese
7339a230aaSStefan Roese		internal-regs {
7439a230aaSStefan Roese			sdramc@1400 {
7539a230aaSStefan Roese				compatible = "marvell,armada-xp-sdram-controller";
7639a230aaSStefan Roese				reg = <0x1400 0x500>;
7739a230aaSStefan Roese			};
7839a230aaSStefan Roese
7939a230aaSStefan Roese			L2: l2-cache {
8039a230aaSStefan Roese				compatible = "marvell,aurora-system-cache";
8139a230aaSStefan Roese				reg = <0x08000 0x1000>;
8239a230aaSStefan Roese				cache-id-part = <0x100>;
8339a230aaSStefan Roese				cache-level = <2>;
8439a230aaSStefan Roese				cache-unified;
8539a230aaSStefan Roese				wt-override;
8639a230aaSStefan Roese			};
8739a230aaSStefan Roese
8839a230aaSStefan Roese			spi0: spi@10600 {
8939a230aaSStefan Roese				compatible = "marvell,armada-xp-spi",
9039a230aaSStefan Roese						"marvell,orion-spi";
9139a230aaSStefan Roese				pinctrl-0 = <&spi0_pins>;
9239a230aaSStefan Roese				pinctrl-names = "default";
9339a230aaSStefan Roese			};
9439a230aaSStefan Roese
9539a230aaSStefan Roese			spi1: spi@10680 {
9639a230aaSStefan Roese				compatible = "marvell,armada-xp-spi",
9739a230aaSStefan Roese						"marvell,orion-spi";
9839a230aaSStefan Roese			};
9939a230aaSStefan Roese
10039a230aaSStefan Roese
10139a230aaSStefan Roese			i2c0: i2c@11000 {
10239a230aaSStefan Roese				compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
10339a230aaSStefan Roese				reg = <0x11000 0x100>;
10439a230aaSStefan Roese			};
10539a230aaSStefan Roese
10639a230aaSStefan Roese			i2c1: i2c@11100 {
10739a230aaSStefan Roese				compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
10839a230aaSStefan Roese				reg = <0x11100 0x100>;
10939a230aaSStefan Roese			};
11039a230aaSStefan Roese
11139a230aaSStefan Roese			uart2: serial@12200 {
11239a230aaSStefan Roese				compatible = "snps,dw-apb-uart";
11339a230aaSStefan Roese				pinctrl-0 = <&uart2_pins>;
11439a230aaSStefan Roese				pinctrl-names = "default";
11539a230aaSStefan Roese				reg = <0x12200 0x100>;
11639a230aaSStefan Roese				reg-shift = <2>;
11739a230aaSStefan Roese				interrupts = <43>;
11839a230aaSStefan Roese				reg-io-width = <1>;
11939a230aaSStefan Roese				clocks = <&coreclk 0>;
12039a230aaSStefan Roese				status = "disabled";
12139a230aaSStefan Roese			};
12239a230aaSStefan Roese
12339a230aaSStefan Roese			uart3: serial@12300 {
12439a230aaSStefan Roese				compatible = "snps,dw-apb-uart";
12539a230aaSStefan Roese				pinctrl-0 = <&uart3_pins>;
12639a230aaSStefan Roese				pinctrl-names = "default";
12739a230aaSStefan Roese				reg = <0x12300 0x100>;
12839a230aaSStefan Roese				reg-shift = <2>;
12939a230aaSStefan Roese				interrupts = <44>;
13039a230aaSStefan Roese				reg-io-width = <1>;
13139a230aaSStefan Roese				clocks = <&coreclk 0>;
13239a230aaSStefan Roese				status = "disabled";
13339a230aaSStefan Roese			};
13439a230aaSStefan Roese
13539a230aaSStefan Roese			system-controller@18200 {
13639a230aaSStefan Roese				compatible = "marvell,armada-370-xp-system-controller";
13739a230aaSStefan Roese				reg = <0x18200 0x500>;
13839a230aaSStefan Roese			};
13939a230aaSStefan Roese
14039a230aaSStefan Roese			gateclk: clock-gating-control@18220 {
14139a230aaSStefan Roese				compatible = "marvell,armada-xp-gating-clock";
14239a230aaSStefan Roese				reg = <0x18220 0x4>;
14339a230aaSStefan Roese				clocks = <&coreclk 0>;
14439a230aaSStefan Roese				#clock-cells = <1>;
14539a230aaSStefan Roese			};
14639a230aaSStefan Roese
14739a230aaSStefan Roese			coreclk: mvebu-sar@18230 {
14839a230aaSStefan Roese				compatible = "marvell,armada-xp-core-clock";
14939a230aaSStefan Roese				reg = <0x18230 0x08>;
15039a230aaSStefan Roese				#clock-cells = <1>;
15139a230aaSStefan Roese			};
15239a230aaSStefan Roese
15339a230aaSStefan Roese			thermal@182b0 {
15439a230aaSStefan Roese				compatible = "marvell,armadaxp-thermal";
15539a230aaSStefan Roese				reg = <0x182b0 0x4
15639a230aaSStefan Roese					0x184d0 0x4>;
15739a230aaSStefan Roese				status = "okay";
15839a230aaSStefan Roese			};
15939a230aaSStefan Roese
16039a230aaSStefan Roese			cpuclk: clock-complex@18700 {
16139a230aaSStefan Roese				#clock-cells = <1>;
16239a230aaSStefan Roese				compatible = "marvell,armada-xp-cpu-clock";
16339a230aaSStefan Roese				reg = <0x18700 0x24>, <0x1c054 0x10>;
16439a230aaSStefan Roese				clocks = <&coreclk 1>;
16539a230aaSStefan Roese			};
16639a230aaSStefan Roese
16739a230aaSStefan Roese			interrupt-controller@20a00 {
16839a230aaSStefan Roese			      reg = <0x20a00 0x2d0>, <0x21070 0x58>;
16939a230aaSStefan Roese			};
17039a230aaSStefan Roese
17139a230aaSStefan Roese			timer@20300 {
17239a230aaSStefan Roese				compatible = "marvell,armada-xp-timer";
17339a230aaSStefan Roese				clocks = <&coreclk 2>, <&refclk>;
17439a230aaSStefan Roese				clock-names = "nbclk", "fixed";
17539a230aaSStefan Roese			};
17639a230aaSStefan Roese
17739a230aaSStefan Roese			watchdog@20300 {
17839a230aaSStefan Roese				compatible = "marvell,armada-xp-wdt";
17939a230aaSStefan Roese				clocks = <&coreclk 2>, <&refclk>;
18039a230aaSStefan Roese				clock-names = "nbclk", "fixed";
18139a230aaSStefan Roese			};
18239a230aaSStefan Roese
18339a230aaSStefan Roese			cpurst@20800 {
18439a230aaSStefan Roese				compatible = "marvell,armada-370-cpu-reset";
18539a230aaSStefan Roese				reg = <0x20800 0x20>;
18639a230aaSStefan Roese			};
18739a230aaSStefan Roese
18839a230aaSStefan Roese			eth2: ethernet@30000 {
18939a230aaSStefan Roese				compatible = "marvell,armada-xp-neta";
19039a230aaSStefan Roese				reg = <0x30000 0x4000>;
19139a230aaSStefan Roese				interrupts = <12>;
19239a230aaSStefan Roese				clocks = <&gateclk 2>;
19339a230aaSStefan Roese				status = "disabled";
19439a230aaSStefan Roese			};
19539a230aaSStefan Roese
19639a230aaSStefan Roese			usb@50000 {
19739a230aaSStefan Roese				clocks = <&gateclk 18>;
19839a230aaSStefan Roese			};
19939a230aaSStefan Roese
20039a230aaSStefan Roese			usb@51000 {
20139a230aaSStefan Roese				clocks = <&gateclk 19>;
20239a230aaSStefan Roese			};
20339a230aaSStefan Roese
20439a230aaSStefan Roese			usb@52000 {
20539a230aaSStefan Roese				compatible = "marvell,orion-ehci";
20639a230aaSStefan Roese				reg = <0x52000 0x500>;
20739a230aaSStefan Roese				interrupts = <47>;
20839a230aaSStefan Roese				clocks = <&gateclk 20>;
20939a230aaSStefan Roese				status = "disabled";
21039a230aaSStefan Roese			};
21139a230aaSStefan Roese
21239a230aaSStefan Roese			xor@60900 {
21339a230aaSStefan Roese				compatible = "marvell,orion-xor";
21439a230aaSStefan Roese				reg = <0x60900 0x100
21539a230aaSStefan Roese				       0x60b00 0x100>;
21639a230aaSStefan Roese				clocks = <&gateclk 22>;
21739a230aaSStefan Roese				status = "okay";
21839a230aaSStefan Roese
21939a230aaSStefan Roese				xor10 {
22039a230aaSStefan Roese					interrupts = <51>;
22139a230aaSStefan Roese					dmacap,memcpy;
22239a230aaSStefan Roese					dmacap,xor;
22339a230aaSStefan Roese				};
22439a230aaSStefan Roese				xor11 {
22539a230aaSStefan Roese					interrupts = <52>;
22639a230aaSStefan Roese					dmacap,memcpy;
22739a230aaSStefan Roese					dmacap,xor;
22839a230aaSStefan Roese					dmacap,memset;
22939a230aaSStefan Roese				};
23039a230aaSStefan Roese			};
23139a230aaSStefan Roese
23239a230aaSStefan Roese			ethernet@70000 {
23339a230aaSStefan Roese				compatible = "marvell,armada-xp-neta";
23439a230aaSStefan Roese			};
23539a230aaSStefan Roese
23639a230aaSStefan Roese			ethernet@74000 {
23739a230aaSStefan Roese				compatible = "marvell,armada-xp-neta";
23839a230aaSStefan Roese			};
23939a230aaSStefan Roese
24039a230aaSStefan Roese			xor@f0900 {
24139a230aaSStefan Roese				compatible = "marvell,orion-xor";
24239a230aaSStefan Roese				reg = <0xF0900 0x100
24339a230aaSStefan Roese				       0xF0B00 0x100>;
24439a230aaSStefan Roese				clocks = <&gateclk 28>;
24539a230aaSStefan Roese				status = "okay";
24639a230aaSStefan Roese
24739a230aaSStefan Roese				xor00 {
24839a230aaSStefan Roese					interrupts = <94>;
24939a230aaSStefan Roese					dmacap,memcpy;
25039a230aaSStefan Roese					dmacap,xor;
25139a230aaSStefan Roese				};
25239a230aaSStefan Roese				xor01 {
25339a230aaSStefan Roese					interrupts = <95>;
25439a230aaSStefan Roese					dmacap,memcpy;
25539a230aaSStefan Roese					dmacap,xor;
25639a230aaSStefan Roese					dmacap,memset;
25739a230aaSStefan Roese				};
25839a230aaSStefan Roese			};
25939a230aaSStefan Roese		};
26039a230aaSStefan Roese	};
26139a230aaSStefan Roese
26239a230aaSStefan Roese	clocks {
26339a230aaSStefan Roese		/* 25 MHz reference crystal */
26439a230aaSStefan Roese		refclk: oscillator {
26539a230aaSStefan Roese			compatible = "fixed-clock";
26639a230aaSStefan Roese			#clock-cells = <0>;
26739a230aaSStefan Roese			clock-frequency = <25000000>;
26839a230aaSStefan Roese		};
26939a230aaSStefan Roese	};
27039a230aaSStefan Roese};
27139a230aaSStefan Roese
27239a230aaSStefan Roese&pinctrl {
27339a230aaSStefan Roese	ge0_gmii_pins: ge0-gmii-pins {
27439a230aaSStefan Roese		marvell,pins =
27539a230aaSStefan Roese		     "mpp0",  "mpp1",  "mpp2",  "mpp3",
27639a230aaSStefan Roese		     "mpp4",  "mpp5",  "mpp6",  "mpp7",
27739a230aaSStefan Roese		     "mpp8",  "mpp9",  "mpp10", "mpp11",
27839a230aaSStefan Roese		     "mpp12", "mpp13", "mpp14", "mpp15",
27939a230aaSStefan Roese		     "mpp16", "mpp17", "mpp18", "mpp19",
28039a230aaSStefan Roese		     "mpp20", "mpp21", "mpp22", "mpp23";
28139a230aaSStefan Roese		marvell,function = "ge0";
28239a230aaSStefan Roese	};
28339a230aaSStefan Roese
28439a230aaSStefan Roese	ge0_rgmii_pins: ge0-rgmii-pins {
28539a230aaSStefan Roese		marvell,pins =
28639a230aaSStefan Roese		     "mpp0", "mpp1", "mpp2", "mpp3",
28739a230aaSStefan Roese		     "mpp4", "mpp5", "mpp6", "mpp7",
28839a230aaSStefan Roese		     "mpp8", "mpp9", "mpp10", "mpp11";
28939a230aaSStefan Roese		marvell,function = "ge0";
29039a230aaSStefan Roese	};
29139a230aaSStefan Roese
29239a230aaSStefan Roese	ge1_rgmii_pins: ge1-rgmii-pins {
29339a230aaSStefan Roese		marvell,pins =
29439a230aaSStefan Roese		     "mpp12", "mpp13", "mpp14", "mpp15",
29539a230aaSStefan Roese		     "mpp16", "mpp17", "mpp18", "mpp19",
29639a230aaSStefan Roese		     "mpp20", "mpp21", "mpp22", "mpp23";
29739a230aaSStefan Roese		marvell,function = "ge1";
29839a230aaSStefan Roese	};
29939a230aaSStefan Roese
30039a230aaSStefan Roese	sdio_pins: sdio-pins {
30139a230aaSStefan Roese		marvell,pins = "mpp30", "mpp31", "mpp32",
30239a230aaSStefan Roese			       "mpp33", "mpp34", "mpp35";
30339a230aaSStefan Roese		marvell,function = "sd0";
30439a230aaSStefan Roese	};
30539a230aaSStefan Roese
30639a230aaSStefan Roese	spi0_pins: spi0-pins {
30739a230aaSStefan Roese		marvell,pins = "mpp36", "mpp37",
30839a230aaSStefan Roese			       "mpp38", "mpp39";
30939a230aaSStefan Roese		marvell,function = "spi0";
31039a230aaSStefan Roese	};
31139a230aaSStefan Roese
31239a230aaSStefan Roese	uart2_pins: uart2-pins {
31339a230aaSStefan Roese		marvell,pins = "mpp42", "mpp43";
31439a230aaSStefan Roese		marvell,function = "uart2";
31539a230aaSStefan Roese	};
31639a230aaSStefan Roese
31739a230aaSStefan Roese	uart3_pins: uart3-pins {
31839a230aaSStefan Roese		marvell,pins = "mpp44", "mpp45";
31939a230aaSStefan Roese		marvell,function = "uart3";
32039a230aaSStefan Roese	};
32139a230aaSStefan Roese};
322