blob: b4c2234fda1e59b966c696674d68f2316e82cc3a [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 Petazzoni5c697662014-04-22 23:26:17 +020027 internal-regs {
28 compatible = "simple-bus";
Jason Cooper6226cf12013-12-11 20:32:50 +000029 #address-cells = <1>;
Thomas Petazzoni5c697662014-04-22 23:26:17 +020030 #size-cells = <1>;
31 ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
Jason Cooper6226cf12013-12-11 20:32:50 +000032
Thomas Petazzoni5c697662014-04-22 23:26:17 +020033 gpio0: gpio@10100 {
34 compatible = "marvell,orion-gpio";
35 #gpio-cells = <2>;
36 gpio-controller;
37 reg = <0x10100 0x40>;
38 ngpios = <32>;
39 interrupt-controller;
40 #interrupt-cells = <2>;
41 interrupts = <6>, <7>, <8>, <9>;
Alexander Clouter45046072013-03-26 21:44:48 +000042 };
Thomas Petazzoni5c697662014-04-22 23:26:17 +020043
Thomas Petazzoni29583162014-04-22 23:26:18 +020044 spi: spi@10600 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +020045 compatible = "marvell,orion-spi";
46 #address-cells = <1>;
47 #size-cells = <0>;
48 cell-index = <0>;
49 reg = <0x10600 0x28>;
50 status = "disabled";
Alexander Clouter45046072013-03-26 21:44:48 +000051 };
Alexander Clouter45046072013-03-26 21:44:48 +000052
Thomas Petazzoni29583162014-04-22 23:26:18 +020053 i2c: i2c@11000 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +020054 compatible = "marvell,mv64xxx-i2c";
55 reg = <0x11000 0x20>;
56 #address-cells = <1>;
57 #size-cells = <0>;
58 interrupts = <5>;
59 clock-frequency = <100000>;
60 status = "disabled";
Sebastian Hesselbarth99d64552013-07-02 13:00:20 +020061 };
Jason Cooper6226cf12013-12-11 20:32:50 +000062
Thomas Petazzoni29583162014-04-22 23:26:18 +020063 uart0: serial@12000 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +020064 compatible = "ns16550a";
65 reg = <0x12000 0x100>;
66 reg-shift = <2>;
67 interrupts = <3>;
Thomas Petazzoni0180ed42014-04-22 23:26:25 +020068 clocks = <&core_clk 0>;
Thomas Petazzoni5c697662014-04-22 23:26:17 +020069 status = "disabled";
70 };
Jason Cooper6226cf12013-12-11 20:32:50 +000071
Thomas Petazzoni29583162014-04-22 23:26:18 +020072 uart1: serial@12100 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +020073 compatible = "ns16550a";
74 reg = <0x12100 0x100>;
75 reg-shift = <2>;
76 interrupts = <4>;
Thomas Petazzoni0180ed42014-04-22 23:26:25 +020077 clocks = <&core_clk 0>;
Thomas Petazzoni5c697662014-04-22 23:26:17 +020078 status = "disabled";
79 };
Jason Cooper6226cf12013-12-11 20:32:50 +000080
Thomas Petazzoniab5ab9d2014-04-22 23:26:27 +020081 bridge_intc: bridge-interrupt-ctrl@20110 {
82 compatible = "marvell,orion-bridge-intc";
83 interrupt-controller;
84 #interrupt-cells = <1>;
85 reg = <0x20110 0x8>;
86 interrupts = <0>;
87 marvell,#interrupts = <4>;
88 };
89
Thomas Petazzoni5c697662014-04-22 23:26:17 +020090 intc: interrupt-controller@20200 {
91 compatible = "marvell,orion-intc";
92 interrupt-controller;
93 #interrupt-cells = <1>;
94 reg = <0x20200 0x08>;
95 };
96
Thomas Petazzoniab5ab9d2014-04-22 23:26:27 +020097 timer: timer@20300 {
98 compatible = "marvell,orion-timer";
99 reg = <0x20300 0x20>;
100 interrupt-parent = <&bridge_intc>;
101 interrupts = <1>, <2>;
102 clocks = <&core_clk 0>;
103 };
104
Thomas Petazzoni29583162014-04-22 23:26:18 +0200105 wdt: wdt@20300 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200106 compatible = "marvell,orion-wdt";
107 reg = <0x20300 0x28>;
Thomas Petazzoniab5ab9d2014-04-22 23:26:27 +0200108 interrupt-parent = <&bridge_intc>;
109 interrupts = <3>;
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200110 status = "okay";
111 };
112
Thomas Petazzoni29583162014-04-22 23:26:18 +0200113 ehci0: ehci@50000 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200114 compatible = "marvell,orion-ehci";
115 reg = <0x50000 0x1000>;
116 interrupts = <17>;
117 status = "disabled";
118 };
119
Thomas Petazzoni984d37c2014-04-22 23:26:22 +0200120 xor: dma-controller@60900 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200121 compatible = "marvell,orion-xor";
122 reg = <0x60900 0x100
123 0x60b00 0x100>;
124 status = "okay";
125
126 xor00 {
127 interrupts = <30>;
128 dmacap,memcpy;
129 dmacap,xor;
130 };
131 xor01 {
132 interrupts = <31>;
133 dmacap,memcpy;
134 dmacap,xor;
135 dmacap,memset;
136 };
137 };
138
139 eth: ethernet-controller@72000 {
140 compatible = "marvell,orion-eth";
141 #address-cells = <1>;
142 #size-cells = <0>;
143 reg = <0x72000 0x4000>;
144 marvell,tx-checksum-limit = <1600>;
145 status = "disabled";
146
Thomas Petazzoni29583162014-04-22 23:26:18 +0200147 ethport: ethernet-port@0 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200148 compatible = "marvell,orion-eth-port";
149 reg = <0>;
Thomas Petazzoni2864ed62014-04-22 23:26:23 +0200150 interrupts = <21>;
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200151 /* overwrite MAC address in bootloader */
152 local-mac-address = [00 00 00 00 00 00];
153 /* set phy-handle property in board file */
154 };
155 };
156
157 mdio: mdio-bus@72004 {
158 compatible = "marvell,orion-mdio";
159 #address-cells = <1>;
160 #size-cells = <0>;
161 reg = <0x72004 0x84>;
162 interrupts = <22>;
163 status = "disabled";
164
165 /* add phy nodes in board file */
166 };
167
Thomas Petazzoni29583162014-04-22 23:26:18 +0200168 sata: sata@80000 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200169 compatible = "marvell,orion-sata";
170 reg = <0x80000 0x5000>;
171 interrupts = <29>;
172 status = "disabled";
173 };
174
Thomas Petazzoni29583162014-04-22 23:26:18 +0200175 ehci1: ehci@a0000 {
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200176 compatible = "marvell,orion-ehci";
177 reg = <0xa0000 0x1000>;
178 interrupts = <12>;
179 status = "disabled";
180 };
Jason Cooper6226cf12013-12-11 20:32:50 +0000181 };
182
Thomas Petazzoni29583162014-04-22 23:26:18 +0200183 cesa: crypto@90000 {
Jason Cooper6226cf12013-12-11 20:32:50 +0000184 compatible = "marvell,orion-crypto";
Thomas Petazzoni5c697662014-04-22 23:26:17 +0200185 reg = <MBUS_ID(0xf0, 0x01) 0x90000 0x10000>,
186 <MBUS_ID(0x09, 0x00) 0x0 0x800>;
Jason Cooper6226cf12013-12-11 20:32:50 +0000187 reg-names = "regs", "sram";
188 interrupts = <28>;
189 status = "okay";
190 };
Thomas Petazzoni1bffb4a82012-11-16 16:39:45 +0100191 };
192};