blob: 75cd01bd60241d0e0f06f2a390941c63a925e7bf [file] [log] [blame]
Thomas Petazzoni1bffb4a82012-11-16 16:39:45 +01001/*
2 * Copyright (C) 2012 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
3 *
4 * This file is licensed under the terms of the GNU General Public
5 * License version 2. This program is licensed "as is" without any
6 * warranty of any kind, whether express or implied.
7 */
8
Thomas Petazzoni48be9702014-04-22 23:26:15 +02009#include "skeleton.dtsi"
Thomas Petazzoni1bffb4a82012-11-16 16:39:45 +010010
Thomas Petazzoni5c697662014-04-22 23:26:17 +020011#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
12
Thomas Petazzoni1bffb4a82012-11-16 16:39:45 +010013/ {
14 model = "Marvell Orion5x SoC";
15 compatible = "marvell,orion5x";
16 interrupt-parent = <&intc>;
17
Alexander Clouter835f6322013-03-26 21:44:46 +000018 aliases {
19 gpio0 = &gpio0;
20 };
Sebastian Hesselbarthcabbd6b2013-07-02 13:03:39 +020021
Thomas Petazzoni5c697662014-04-22 23:26:17 +020022 soc {
23 #address-cells = <2>;
Thomas Petazzoni1bffb4a82012-11-16 16:39:45 +010024 #size-cells = <1>;
Thomas Petazzoni5c697662014-04-22 23:26:17 +020025 controller = <&mbusc>;
Thomas Petazzoni1bffb4a82012-11-16 16:39:45 +010026
Thomas Petazzonie7e9ac12014-04-22 23:26:30 +020027 devbus_bootcs: devbus-bootcs {
28 compatible = "marvell,orion-devbus";
29 reg = <MBUS_ID(0xf0, 0x01) 0x1046C 0x4>;
30 ranges = <0 MBUS_ID(0x01, 0x0f) 0 0xffffffff>;
31 #address-cells = <1>;
32 #size-cells = <1>;
33 clocks = <&core_clk 0>;
34 status = "disabled";
35 };
36
37 devbus_cs0: devbus-cs0 {
38 compatible = "marvell,orion-devbus";
39 reg = <MBUS_ID(0xf0, 0x01) 0x1045C 0x4>;
40 ranges = <0 MBUS_ID(0x01, 0x1e) 0 0xffffffff>;
41 #address-cells = <1>;
42 #size-cells = <1>;
43 clocks = <&core_clk 0>;
44 status = "disabled";
45 };
46
47 devbus_cs1: devbus-cs1 {
48 compatible = "marvell,orion-devbus";
49 reg = <MBUS_ID(0xf0, 0x01) 0x10460 0x4>;
50 ranges = <0 MBUS_ID(0x01, 0x1d) 0 0xffffffff>;
51 #address-cells = <1>;
52 #size-cells = <1>;
53 clocks = <&core_clk 0>;
54 status = "disabled";
55 };
56
57 devbus_cs2: devbus-cs2 {
58 compatible = "marvell,orion-devbus";
59 reg = <MBUS_ID(0xf0, 0x01) 0x10464 0x4>;
60 ranges = <0 MBUS_ID(0x01, 0x1b) 0 0xffffffff>;
61 #address-cells = <1>;
62 #size-cells = <1>;
63 clocks = <&core_clk 0>;
64 status = "disabled";
65 };
66
Thomas Petazzoni5c697662014-04-22 23:26:17 +020067 internal-regs {
68 compatible = "simple-bus";
Jason Cooper6226cf12013-12-11 20:32:50 +000069 #address-cells = <1>;
Thomas Petazzoni5c697662014-04-22 23:26:17 +020070 #size-cells = <1>;
71 ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
Jason Cooper6226cf12013-12-11 20:32:50 +000072
Thomas Petazzoni5c697662014-04-22 23:26:17 +020073 gpio0: gpio@10100 {
74 compatible = "marvell,orion-gpio";
75 #gpio-cells = <2>;
76 gpio-controller;
77 reg = <0x10100 0x40>;
78 ngpios = <32>;
79 interrupt-controller;
80 #interrupt-cells = <2>;
81 interrupts = <6>, <7>, <8>, <9>;
Alexander Clouter45046072013-03-26 21:44:48 +000082 };
Thomas Petazzoni5c697662014-04-22 23:26:17 +020083
Thomas Petazzoni29583162014-04-22 23:26:18 +020084 spi: spi@10600 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +020085 compatible = "marvell,orion-spi";
86 #address-cells = <1>;
87 #size-cells = <0>;
88 cell-index = <0>;
89 reg = <0x10600 0x28>;
90 status = "disabled";
Alexander Clouter45046072013-03-26 21:44:48 +000091 };
Alexander Clouter45046072013-03-26 21:44:48 +000092
Thomas Petazzoni29583162014-04-22 23:26:18 +020093 i2c: i2c@11000 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +020094 compatible = "marvell,mv64xxx-i2c";
95 reg = <0x11000 0x20>;
96 #address-cells = <1>;
97 #size-cells = <0>;
98 interrupts = <5>;
Thomas Petazzoni4bae02d2014-04-22 23:26:29 +020099 clocks = <&core_clk 0>;
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200100 status = "disabled";
Sebastian Hesselbarth99d64552013-07-02 13:00:20 +0200101 };
Jason Cooper6226cf12013-12-11 20:32:50 +0000102
Thomas Petazzoni29583162014-04-22 23:26:18 +0200103 uart0: serial@12000 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200104 compatible = "ns16550a";
105 reg = <0x12000 0x100>;
106 reg-shift = <2>;
107 interrupts = <3>;
Thomas Petazzoni0180ed42014-04-22 23:26:25 +0200108 clocks = <&core_clk 0>;
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200109 status = "disabled";
110 };
Jason Cooper6226cf12013-12-11 20:32:50 +0000111
Thomas Petazzoni29583162014-04-22 23:26:18 +0200112 uart1: serial@12100 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200113 compatible = "ns16550a";
114 reg = <0x12100 0x100>;
115 reg-shift = <2>;
116 interrupts = <4>;
Thomas Petazzoni0180ed42014-04-22 23:26:25 +0200117 clocks = <&core_clk 0>;
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200118 status = "disabled";
119 };
Jason Cooper6226cf12013-12-11 20:32:50 +0000120
Thomas Petazzoniab5ab9d2014-04-22 23:26:27 +0200121 bridge_intc: bridge-interrupt-ctrl@20110 {
122 compatible = "marvell,orion-bridge-intc";
123 interrupt-controller;
124 #interrupt-cells = <1>;
125 reg = <0x20110 0x8>;
126 interrupts = <0>;
127 marvell,#interrupts = <4>;
128 };
129
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200130 intc: interrupt-controller@20200 {
131 compatible = "marvell,orion-intc";
132 interrupt-controller;
133 #interrupt-cells = <1>;
134 reg = <0x20200 0x08>;
135 };
136
Thomas Petazzoniab5ab9d2014-04-22 23:26:27 +0200137 timer: timer@20300 {
138 compatible = "marvell,orion-timer";
139 reg = <0x20300 0x20>;
140 interrupt-parent = <&bridge_intc>;
141 interrupts = <1>, <2>;
142 clocks = <&core_clk 0>;
143 };
144
Thomas Petazzoni29583162014-04-22 23:26:18 +0200145 wdt: wdt@20300 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200146 compatible = "marvell,orion-wdt";
147 reg = <0x20300 0x28>;
Thomas Petazzoniab5ab9d2014-04-22 23:26:27 +0200148 interrupt-parent = <&bridge_intc>;
149 interrupts = <3>;
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200150 status = "okay";
151 };
152
Thomas Petazzoni29583162014-04-22 23:26:18 +0200153 ehci0: ehci@50000 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200154 compatible = "marvell,orion-ehci";
155 reg = <0x50000 0x1000>;
156 interrupts = <17>;
157 status = "disabled";
158 };
159
Thomas Petazzoni984d37c2014-04-22 23:26:22 +0200160 xor: dma-controller@60900 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200161 compatible = "marvell,orion-xor";
162 reg = <0x60900 0x100
163 0x60b00 0x100>;
164 status = "okay";
165
166 xor00 {
167 interrupts = <30>;
168 dmacap,memcpy;
169 dmacap,xor;
170 };
171 xor01 {
172 interrupts = <31>;
173 dmacap,memcpy;
174 dmacap,xor;
175 dmacap,memset;
176 };
177 };
178
179 eth: ethernet-controller@72000 {
180 compatible = "marvell,orion-eth";
181 #address-cells = <1>;
182 #size-cells = <0>;
183 reg = <0x72000 0x4000>;
184 marvell,tx-checksum-limit = <1600>;
185 status = "disabled";
186
Thomas Petazzoni29583162014-04-22 23:26:18 +0200187 ethport: ethernet-port@0 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200188 compatible = "marvell,orion-eth-port";
189 reg = <0>;
Thomas Petazzoni2864ed62014-04-22 23:26:23 +0200190 interrupts = <21>;
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200191 /* overwrite MAC address in bootloader */
192 local-mac-address = [00 00 00 00 00 00];
193 /* set phy-handle property in board file */
194 };
195 };
196
197 mdio: mdio-bus@72004 {
198 compatible = "marvell,orion-mdio";
199 #address-cells = <1>;
200 #size-cells = <0>;
201 reg = <0x72004 0x84>;
202 interrupts = <22>;
203 status = "disabled";
204
205 /* add phy nodes in board file */
206 };
207
Thomas Petazzoni29583162014-04-22 23:26:18 +0200208 sata: sata@80000 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200209 compatible = "marvell,orion-sata";
210 reg = <0x80000 0x5000>;
211 interrupts = <29>;
212 status = "disabled";
213 };
214
Thomas Petazzoni29583162014-04-22 23:26:18 +0200215 ehci1: ehci@a0000 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200216 compatible = "marvell,orion-ehci";
217 reg = <0xa0000 0x1000>;
218 interrupts = <12>;
219 status = "disabled";
220 };
Jason Cooper6226cf12013-12-11 20:32:50 +0000221 };
222
Thomas Petazzoni29583162014-04-22 23:26:18 +0200223 cesa: crypto@90000 {
Jason Cooper6226cf12013-12-11 20:32:50 +0000224 compatible = "marvell,orion-crypto";
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200225 reg = <MBUS_ID(0xf0, 0x01) 0x90000 0x10000>,
226 <MBUS_ID(0x09, 0x00) 0x0 0x800>;
Jason Cooper6226cf12013-12-11 20:32:50 +0000227 reg-names = "regs", "sram";
228 interrupts = <28>;
229 status = "okay";
230 };
Thomas Petazzoni1bffb4a82012-11-16 16:39:45 +0100231 };
232};