aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/boot/dts
diff options
context:
space:
mode:
authorArnaud Ebalard <arno@natisbad.org>2013-10-22 14:56:13 -0400
committerJason Cooper <jason@lakedaemon.net>2013-10-31 11:42:07 -0400
commit45e8815fc1b7ed66729bbbc9464228ee1769b580 (patch)
tree6a318ea47ccb608483acf1f45f6e28576deecd83 /arch/arm/boot/dts
parentf24b56cbcd9d39cb2ed45b4b451f8614f9494c17 (diff)
ARM: mvebu: Add Netgear ReadyNAS 104 board
Main hardware parts of the (Armada 370 based) NETGEAR ReadyNAS 104 are supported by mainline kernel (USB 3.0 rear ports, USB 2.0 front port, Gigabit controller and PHYs, serial port, LEDs, buttons, SATA ports, G762 fan controller) and referenced in provided .dts file. Some additonal work remains for: - Intersil ISL12057 I2C RTC and Alarm chip: working driver but needs to be splitted for submission of RTC part first; - Front LCD (Winstar 1602G): driver needs to be written - Armada NAND controller (to access onboard 128MB of NAND): support being pushed by @free-electrons people - 4 front SATA LEDs controlled via GPIO brought by NXP PCA9554: driver is available upstream. Not referenced/tested yet. but the device is usable w/o those. Signed-off-by: Arnaud Ebalard <arno@natisbad.org> Acked-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
Diffstat (limited to 'arch/arm/boot/dts')
-rw-r--r--arch/arm/boot/dts/Makefile1
-rw-r--r--arch/arm/boot/dts/armada-370-netgear-rn104.dts193
2 files changed, 194 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index f2b1c33efbfc..55fade67a629 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -108,6 +108,7 @@ dtb-$(CONFIG_ARCH_MSM) += msm8660-surf.dtb \
108dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \ 108dtb-$(CONFIG_ARCH_MVEBU) += armada-370-db.dtb \
109 armada-370-mirabox.dtb \ 109 armada-370-mirabox.dtb \
110 armada-370-netgear-rn102.dtb \ 110 armada-370-netgear-rn102.dtb \
111 armada-370-netgear-rn104.dtb \
111 armada-370-rd.dtb \ 112 armada-370-rd.dtb \
112 armada-xp-axpwifiap.dtb \ 113 armada-xp-axpwifiap.dtb \
113 armada-xp-db.dtb \ 114 armada-xp-db.dtb \
diff --git a/arch/arm/boot/dts/armada-370-netgear-rn104.dts b/arch/arm/boot/dts/armada-370-netgear-rn104.dts
new file mode 100644
index 000000000000..b0b32f5fbeb4
--- /dev/null
+++ b/arch/arm/boot/dts/armada-370-netgear-rn104.dts
@@ -0,0 +1,193 @@
1/*
2 * Device Tree file for NETGEAR ReadyNAS 104
3 *
4 * Copyright (C) 2013, Arnaud EBALARD <arno@natisbad.org>
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12/dts-v1/;
13
14#include "armada-370.dtsi"
15
16/ {
17 model = "NETGEAR ReadyNAS 104";
18 compatible = "netgear,readynas-104", "marvell,armada370", "marvell,armada-370-xp";
19
20 chosen {
21 bootargs = "console=ttyS0,115200 earlyprintk";
22 };
23
24 memory {
25 device_type = "memory";
26 reg = <0x00000000 0x20000000>; /* 512 MB */
27 };
28
29 soc {
30 ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
31 MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>;
32
33 pcie-controller {
34 status = "okay";
35
36 /* Connected to FL1009 USB 3.0 controller */
37 pcie@1,0 {
38 /* Port 0, Lane 0 */
39 status = "okay";
40 };
41
42 /* Connected to Marvell 88SE9215 SATA controller */
43 pcie@2,0 {
44 /* Port 1, Lane 0 */
45 status = "okay";
46 };
47 };
48
49 internal-regs {
50 serial@12000 {
51 clock-frequency = <200000000>;
52 status = "okay";
53 };
54
55 pinctrl {
56 poweroff: poweroff {
57 marvell,pins = "mpp60";
58 marvell,function = "gpio";
59 };
60
61 backup_key_pin: backup-key-pin {
62 marvell,pins = "mpp52";
63 marvell,function = "gpio";
64 };
65
66 power_key_pin: power-key-pin {
67 marvell,pins = "mpp62";
68 marvell,function = "gpio";
69 };
70
71 backup_led_pin: backup-led-pin {
72 marvell,pins = "mpp63";
73 marvell,function = "gpo";
74 };
75
76 power_led_pin: power-led-pin {
77 marvell,pins = "mpp64";
78 marvell,function = "gpio";
79 };
80
81 reset_key_pin: reset-key-pin {
82 marvell,pins = "mpp65";
83 marvell,function = "gpio";
84 };
85 };
86
87 mdio {
88 phy0: ethernet-phy@0 {
89 reg = <0>;
90 };
91
92 phy1: ethernet-phy@1 {
93 reg = <1>;
94 };
95 };
96
97 ethernet@70000 {
98 status = "okay";
99 phy = <&phy0>;
100 phy-mode = "rgmii-id";
101 };
102
103 ethernet@74000 {
104 status = "okay";
105 phy = <&phy1>;
106 phy-mode = "rgmii-id";
107 };
108
109 usb@50000 {
110 status = "okay";
111 };
112
113 i2c@11000 {
114 compatible = "marvell,mv64xxx-i2c";
115 clock-frequency = <100000>;
116 status = "okay";
117
118 g762: g762@3e {
119 compatible = "gmt,g762";
120 reg = <0x3e>;
121 clocks = <&g762_clk>; /* input clock */
122 fan_gear_mode = <0>;
123 fan_startv = <1>;
124 pwm_polarity = <0>;
125 };
126 };
127 };
128 };
129
130 clocks {
131 #address-cells = <1>;
132 #size-cells = <0>;
133
134 g762_clk: fixedclk {
135 compatible = "fixed-clock";
136 #clock-cells = <0>;
137 clock-frequency = <8192>;
138 };
139 };
140
141 gpio_leds {
142 compatible = "gpio-leds";
143 pinctrl-0 = <&backup_led_pin &power_led_pin>;
144 pinctrl-names = "default";
145
146 blue_backup_led {
147 label = "rn104:blue:backup";
148 gpios = <&gpio1 31 0>; /* GPIO 63 Active High */
149 default-state = "off";
150 };
151
152 blue_power_led {
153 label = "rn104:blue:pwr";
154 gpios = <&gpio2 0 1>; /* GPIO 64 Active Low */
155 linux,default-trigger = "keep";
156 };
157 };
158
159 gpio_keys {
160 compatible = "gpio-keys";
161 #address-cells = <1>;
162 #size-cells = <0>;
163 pinctrl-0 = <&backup_key_pin
164 &power_key_pin
165 &reset_key_pin>;
166 pinctrl-names = "default";
167
168 button@1 {
169 label = "Backup Button";
170 linux,code = <133>; /* KEY_COPY */
171 gpios = <&gpio1 20 1>;
172 };
173
174 button@2 {
175 label = "Power Button";
176 linux,code = <116>; /* KEY_POWER */
177 gpios = <&gpio1 30 0>;
178 };
179
180 button@3 {
181 label = "Reset Button";
182 linux,code = <0x198>; /* KEY_RESTART */
183 gpios = <&gpio2 1 1>;
184 };
185 };
186
187 gpio_poweroff {
188 compatible = "gpio-poweroff";
189 pinctrl-0 = <&poweroff>;
190 pinctrl-names = "default";
191 gpios = <&gpio1 28 1>;
192 };
193};