blob: 7c5c4ff941ecd0af5d3d9609f1ffd3e15f03e1b0 [file] [log] [blame]
Arnaud Ebalard2344a292013-07-04 23:16:46 +02001/*
2 * Device Tree file for NETGEAR ReadyNAS 102
3 *
4 * Copyright (C) 2013, Arnaud EBALARD <arno@natisbad.org>
5 *
Gregory CLEMENT7a8af402015-01-26 15:15:48 +01006 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
Arnaud Ebalard2344a292013-07-04 23:16:46 +020043 */
44
45/dts-v1/;
46
Arnaud Ebalardb8f18162013-11-29 21:27:38 +010047#include <dt-bindings/input/input.h>
48#include <dt-bindings/gpio/gpio.h>
Jason Cooper3d0ed752013-08-06 15:28:38 +000049#include "armada-370.dtsi"
Arnaud Ebalard2344a292013-07-04 23:16:46 +020050
51/ {
52 model = "NETGEAR ReadyNAS 102";
53 compatible = "netgear,readynas-102", "marvell,armada370", "marvell,armada-370-xp";
54
55 chosen {
56 bootargs = "console=ttyS0,115200 earlyprintk";
57 };
58
59 memory {
60 device_type = "memory";
61 reg = <0x00000000 0x20000000>; /* 512 MB */
62 };
63
64 soc {
Arnaud Ebalardb643f852013-10-01 00:19:16 +020065 ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
66 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>;
67
68 pcie-controller {
69 status = "okay";
70
Arnaud Ebalard7bb2fe52014-10-24 23:22:16 +020071 /* Connected to Marvell 88SE9170 SATA controller */
Arnaud Ebalardb643f852013-10-01 00:19:16 +020072 pcie@1,0 {
73 /* Port 0, Lane 0 */
74 status = "okay";
75 };
76
77 /* Connected to FL1009 USB 3.0 controller */
78 pcie@2,0 {
79 /* Port 1, Lane 0 */
80 status = "okay";
81 };
82 };
83
Arnaud Ebalard2344a292013-07-04 23:16:46 +020084 internal-regs {
85 serial@12000 {
Arnaud Ebalard2344a292013-07-04 23:16:46 +020086 status = "okay";
87 };
88
Arnaud Ebalard7bb2fe52014-10-24 23:22:16 +020089 /* eSATA interface */
Arnaud Ebalard2344a292013-07-04 23:16:46 +020090 sata@a0000 {
Arnaud Ebalard7bb2fe52014-10-24 23:22:16 +020091 nr-ports = <1>;
Arnaud Ebalard2344a292013-07-04 23:16:46 +020092 status = "okay";
93 };
94
Arnaud Ebalard2344a292013-07-04 23:16:46 +020095 mdio {
Ezequiel Garcia8c640da2014-08-11 09:14:39 -030096 pinctrl-0 = <&mdio_pins>;
97 pinctrl-names = "default";
Arnaud Ebalardb8f18162013-11-29 21:27:38 +010098 phy0: ethernet-phy@0 { /* Marvell 88E1318 */
Arnaud Ebalard2344a292013-07-04 23:16:46 +020099 reg = <0>;
100 };
101 };
102
103 ethernet@74000 {
Ezequiel Garcia8c640da2014-08-11 09:14:39 -0300104 pinctrl-0 = <&ge1_rgmii_pins>;
105 pinctrl-names = "default";
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200106 status = "okay";
107 phy = <&phy0>;
108 phy-mode = "rgmii-id";
109 };
110
111 usb@50000 {
112 status = "okay";
113 };
114
115 i2c@11000 {
116 compatible = "marvell,mv64xxx-i2c";
117 clock-frequency = <100000>;
118 status = "okay";
119
Arnaud Ebalard49a9b0b2013-12-19 23:02:05 +0100120 isl12057: isl12057@68 {
Philipp Zabel7a6540c2014-09-08 11:19:18 +0200121 compatible = "isil,isl12057";
Arnaud Ebalard49a9b0b2013-12-19 23:02:05 +0100122 reg = <0x68>;
123 };
124
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200125 g762: g762@3e {
126 compatible = "gmt,g762";
127 reg = <0x3e>;
128 clocks = <&g762_clk>; /* input clock */
129 fan_gear_mode = <0>;
130 fan_startv = <1>;
131 pwm_polarity = <0>;
132 };
133 };
Arnaud Ebalard92beacc2013-12-07 00:13:37 +0100134
135 nand@d0000 {
136 status = "okay";
137 num-cs = <1>;
138 marvell,nand-keep-config;
139 marvell,nand-enable-arbiter;
140 nand-on-flash-bbt;
141
klightspeed@killerwolves.netace85782014-09-10 18:55:41 +1000142 /* Use Hardware BCH ECC */
143 nand-ecc-strength = <4>;
144 nand-ecc-step-size = <512>;
145
Arnaud Ebalard92beacc2013-12-07 00:13:37 +0100146 partition@0 {
147 label = "u-boot";
148 reg = <0x0000000 0x180000>; /* 1.5MB */
149 read-only;
150 };
151
152 partition@180000 {
153 label = "u-boot-env";
154 reg = <0x180000 0x20000>; /* 128KB */
155 read-only;
156 };
157
158 partition@200000 {
159 label = "uImage";
160 reg = <0x0200000 0x600000>; /* 6MB */
161 };
162
163 partition@800000 {
164 label = "minirootfs";
165 reg = <0x0800000 0x400000>; /* 4MB */
166 };
167
168 /* Last MB is for the BBT, i.e. not writable */
169 partition@c00000 {
170 label = "ubifs";
171 reg = <0x0c00000 0x7400000>; /* 116MB */
172 };
173 };
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200174 };
175 };
176
177 clocks {
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100178 g762_clk: g762-oscillator {
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200179 compatible = "fixed-clock";
180 #clock-cells = <0>;
181 clock-frequency = <8192>;
182 };
183 };
184
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100185 gpio-leds {
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200186 compatible = "gpio-leds";
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100187 pinctrl-0 = <&power_led_pin
188 &sata1_led_pin
189 &sata2_led_pin
190 &backup_led_pin>;
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200191 pinctrl-names = "default";
192
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100193 blue-power-led {
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200194 label = "rn102:blue:pwr";
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100195 gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
Jason Cooperdcdf14c2013-10-14 17:37:55 +0000196 default-state = "keep";
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200197 };
198
Arnaud Ebalard3622daf2014-10-24 23:22:01 +0200199 blue-sata1-led {
200 label = "rn102:blue:sata1";
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100201 gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200202 default-state = "on";
203 };
204
Arnaud Ebalard3622daf2014-10-24 23:22:01 +0200205 blue-sata2-led {
206 label = "rn102:blue:sata2";
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100207 gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200208 default-state = "on";
209 };
210
Arnaud Ebalard3622daf2014-10-24 23:22:01 +0200211 blue-backup-led {
212 label = "rn102:blue:backup";
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100213 gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200214 default-state = "on";
215 };
216 };
217
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100218 gpio-keys {
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200219 compatible = "gpio-keys";
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100220 pinctrl-0 = <&power_button_pin
221 &reset_button_pin
222 &backup_button_pin>;
223 pinctrl-names = "default";
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200224
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100225 power-button {
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200226 label = "Power Button";
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100227 linux,code = <KEY_POWER>;
228 gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200229 };
230
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100231 reset-button {
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200232 label = "Reset Button";
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100233 linux,code = <KEY_RESTART>;
234 gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200235 };
236
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100237 backup-button {
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200238 label = "Backup Button";
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100239 linux,code = <KEY_COPY>;
240 gpios = <&gpio1 26 GPIO_ACTIVE_LOW>;
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200241 };
242 };
243
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100244 gpio-poweroff {
Arnaud Ebalard2832cf22013-09-29 23:41:43 +0200245 compatible = "gpio-poweroff";
246 pinctrl-0 = <&poweroff>;
247 pinctrl-names = "default";
Arnaud Ebalardb8f18162013-11-29 21:27:38 +0100248 gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
Arnaud Ebalard2832cf22013-09-29 23:41:43 +0200249 };
Arnaud Ebalard2344a292013-07-04 23:16:46 +0200250};
Arnaud Ebalard4904a822014-11-22 00:45:56 +0100251
252&pinctrl {
253 power_led_pin: power-led-pin {
254 marvell,pins = "mpp57";
255 marvell,function = "gpio";
256 };
257
258 sata1_led_pin: sata1-led-pin {
259 marvell,pins = "mpp15";
260 marvell,function = "gpio";
261 };
262
263 sata2_led_pin: sata2-led-pin {
264 marvell,pins = "mpp14";
265 marvell,function = "gpio";
266 };
267
268 backup_led_pin: backup-led-pin {
269 marvell,pins = "mpp56";
270 marvell,function = "gpio";
271 };
272
273 backup_button_pin: backup-button-pin {
274 marvell,pins = "mpp58";
275 marvell,function = "gpio";
276 };
277
278 power_button_pin: power-button-pin {
279 marvell,pins = "mpp62";
280 marvell,function = "gpio";
281 };
282
283 reset_button_pin: reset-button-pin {
284 marvell,pins = "mpp6";
285 marvell,function = "gpio";
286 };
287
288 poweroff: poweroff {
289 marvell,pins = "mpp8";
290 marvell,function = "gpio";
291 };
292};