armada-xp.dtsi 4.4 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/*
 * Device Tree Include file for Marvell Armada XP family SoC
 *
 * Copyright (C) 2012 Marvell
 *
 * Lior Amsalem <alior@marvell.com>
 * Gregory CLEMENT <gregory.clement@free-electrons.com>
 * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 * Ben Dooks <ben.dooks@codethink.co.uk>
 *
 * This file is licensed under the terms of the GNU General Public
 * License version 2.  This program is licensed "as is" without any
 * warranty of any kind, whether express or implied.
 *
15
 * Contains definitions specific to the Armada XP SoC that are not
16 17 18
 * common to all Armada SoCs.
 */

19
#include "armada-370-xp.dtsi"
20 21 22 23 24

/ {
	model = "Marvell Armada XP family SoC";
	compatible = "marvell,armadaxp", "marvell,armada-370-xp";

25 26 27 28
	aliases {
		eth2 = &eth2;
	};

29
	soc {
30 31
		compatible = "marvell,armadaxp-mbus", "simple-bus";

32 33 34 35 36
		bootrom {
			compatible = "marvell,bootrom";
			reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>;
		};

37 38 39 40 41
		internal-regs {
			L2: l2-cache {
				compatible = "marvell,aurora-system-cache";
				reg = <0x08000 0x1000>;
				cache-id-part = <0x100>;
42
				cache-unified;
43 44
				wt-override;
			};
45

46 47 48
			i2c0: i2c@11000 {
				compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
				reg = <0x11000 0x100>;
49
			};
50

51 52 53
			i2c1: i2c@11100 {
				compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
				reg = <0x11100 0x100>;
54
			};
55

56
			serial@12200 {
57
				compatible = "snps,dw-apb-uart";
58
				reg = <0x12200 0x100>;
59 60
				reg-shift = <2>;
				interrupts = <43>;
61
				reg-io-width = <1>;
62
				clocks = <&coreclk 0>;
63
				status = "disabled";
64 65
			};
			serial@12300 {
66
				compatible = "snps,dw-apb-uart";
67
				reg = <0x12300 0x100>;
68 69
				reg-shift = <2>;
				interrupts = <44>;
70
				reg-io-width = <1>;
71
				clocks = <&coreclk 0>;
72
				status = "disabled";
73
			};
74

75
			pinctrl: pin-ctrl@18000 {
76 77 78 79 80 81 82 83 84
				reg = <0x18000 0x38>;

				sdio_pins: sdio-pins {
					marvell,pins = "mpp30", "mpp31", "mpp32",
						       "mpp33", "mpp34", "mpp35";
					marvell,function = "sd0";
				};
			};

85 86 87 88 89 90 91 92 93 94
			system-controller@18200 {
				compatible = "marvell,armada-370-xp-system-controller";
				reg = <0x18200 0x500>;
			};

			gateclk: clock-gating-control@18220 {
				compatible = "marvell,armada-xp-gating-clock";
				reg = <0x18220 0x4>;
				clocks = <&coreclk 0>;
				#clock-cells = <1>;
95
			};
96

97 98 99 100 101
			coreclk: mvebu-sar@18230 {
				compatible = "marvell,armada-xp-core-clock";
				reg = <0x18230 0x08>;
				#clock-cells = <1>;
			};
102

103 104 105 106 107 108 109
			thermal@182b0 {
				compatible = "marvell,armadaxp-thermal";
				reg = <0x182b0 0x4
					0x184d0 0x4>;
				status = "okay";
			};

110 111 112
			cpuclk: clock-complex@18700 {
				#clock-cells = <1>;
				compatible = "marvell,armada-xp-cpu-clock";
113
				reg = <0x18700 0xA0>, <0x1c054 0x10>;
114 115
				clocks = <&coreclk 1>;
			};
116

117 118
			interrupt-controller@20000 {
			      reg = <0x20a00 0x2d0>, <0x21070 0x58>;
119
			};
120

121 122 123 124 125 126
			timer@20300 {
				compatible = "marvell,armada-xp-timer";
				clocks = <&coreclk 2>, <&refclk>;
				clock-names = "nbclk", "fixed";
			};

127 128 129 130 131 132
			watchdog@20300 {
				compatible = "marvell,armada-xp-wdt";
				clocks = <&coreclk 2>, <&refclk>;
				clock-names = "nbclk", "fixed";
			};

133 134 135
			cpurst@20800 {
				compatible = "marvell,armada-370-cpu-reset";
				reg = <0x20800 0x20>;
136
			};
137

138
			eth2: ethernet@30000 {
139
				compatible = "marvell,armada-370-neta";
140
				reg = <0x30000 0x4000>;
141
				interrupts = <12>;
142
				clocks = <&gateclk 2>;
143
				status = "disabled";
144 145
			};

146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
			usb@50000 {
				clocks = <&gateclk 18>;
			};

			usb@51000 {
				clocks = <&gateclk 19>;
			};

			usb@52000 {
				compatible = "marvell,orion-ehci";
				reg = <0x52000 0x500>;
				interrupts = <47>;
				clocks = <&gateclk 20>;
				status = "disabled";
			};

162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
			xor@60900 {
				compatible = "marvell,orion-xor";
				reg = <0x60900 0x100
				       0x60b00 0x100>;
				clocks = <&gateclk 22>;
				status = "okay";

				xor10 {
					interrupts = <51>;
					dmacap,memcpy;
					dmacap,xor;
				};
				xor11 {
					interrupts = <52>;
					dmacap,memcpy;
					dmacap,xor;
					dmacap,memset;
				};
180
			};
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

			xor@f0900 {
				compatible = "marvell,orion-xor";
				reg = <0xF0900 0x100
				       0xF0B00 0x100>;
				clocks = <&gateclk 28>;
				status = "okay";

				xor00 {
					interrupts = <94>;
					dmacap,memcpy;
					dmacap,xor;
				};
				xor01 {
					interrupts = <95>;
					dmacap,memcpy;
					dmacap,xor;
					dmacap,memset;
				};
200
			};
201
		};
202
	};
203 204 205 206 207 208 209 210 211

	clocks {
		/* 25 MHz reference crystal */
		refclk: oscillator {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <25000000>;
		};
	};
212
};