c348f726319eb36e0299557747764f713f953fec
[openwrt/openwrt.git] / target / linux / kirkwood / patches-4.3 / 170-nsa310s.patch
1 --- /dev/null
2 +++ b/arch/arm/boot/dts/kirkwood-nsa310s.dts
3 @@ -0,0 +1,287 @@
4 +/dts-v1/;
5 +
6 +#include "kirkwood.dtsi"
7 +#include "kirkwood-6281.dtsi"
8 +
9 +/ {
10 + model = "ZyXEL NSA310S";
11 + compatible = "zyxel,nsa310s", "marvell,kirkwood-88f6702", "marvell,kirkwood";
12 +
13 + memory {
14 + device_type = "memory";
15 + reg = <0x00000000 0x10000000>;
16 + };
17 +
18 + chosen {
19 + bootargs = "console=ttyS0,115200n8 earlyprintk";
20 + stdout-path = &uart0;
21 + };
22 +
23 + mbus {
24 + pcie-controller {
25 + status = "okay";
26 +
27 + pcie@1,0 {
28 + status = "okay";
29 + };
30 + };
31 + };
32 +
33 + ocp@f1000000 {
34 + pinctrl: pin-controller@10000 {
35 + pinctrl-names = "default";
36 +
37 + pmx_sata0: pmx-sata0 {
38 + marvell,pins;
39 + marvell,function = "sata0";
40 + };
41 + pmx_sata1: pmx-sata1 {
42 + marvell,pins;
43 + marvell,function = "sata1";
44 + };
45 + pmx_usb_power: pmx-usb-power {
46 + marvell,pins = "mpp21";
47 + marvell,function = "gpio";
48 + };
49 + pmx_pwr_off: pmx-pwr-off {
50 + marvell,pins = "mpp27";
51 + marvell,function = "gpio";
52 + };
53 + pmx_btn_reset: pmx-btn-reset {
54 + marvell,pins = "mpp24";
55 + marvell,function = "gpio";
56 + };
57 + pmx_btn_copy: pmx-btn-copy {
58 + marvell,pins = "mpp25";
59 + marvell,function = "gpio";
60 + };
61 + pmx_btn_power: pmx-btn-power {
62 + marvell,pins = "mpp26";
63 + marvell,function = "gpio";
64 + };
65 + pmx_led_hdd2_green: pmx-led-hdd2-green {
66 + marvell,pins = "mpp34";
67 + marvell,function = "gpio";
68 + };
69 + pmx_led_hdd2_red: pmx-led-hdd2-red {
70 + marvell,pins = "mpp12";
71 + marvell,function = "gpio";
72 + };
73 + pmx_led_usb_green: pmx-led-usb-green {
74 + marvell,pins = "mpp15";
75 + marvell,function = "gpio";
76 + };
77 + pmx_led_copy_green: pmx-led-copy-green {
78 + marvell,pins = "mpp22";
79 + marvell,function = "gpio";
80 + };
81 + pmx_led_copy_red: pmx-led-copy-red {
82 + marvell,pins = "mpp23";
83 + marvell,function = "gpio";
84 + };
85 + pmx_led_sys_green: pmx-led-sys-green {
86 + marvell,pins = "mpp28";
87 + marvell,function = "gpio";
88 + };
89 + pmx_led_sys_orange: pmx-led-sys-orange {
90 + marvell,pins = "mpp29";
91 + marvell,function = "gpio";
92 + };
93 + pmx_led_hdd1_green: pmx-led-hdd1-green {
94 + marvell,pins = "mpp16";
95 + marvell,function = "gpio";
96 + };
97 + pmx_led_hdd1_red: pmx-led-hdd1-red {
98 + marvell,pins = "mpp13";
99 + marvell,function = "gpio";
100 + };
101 + pmx_pwr_sata1: pmx-pwr-sata1 {
102 + marvell,pins = "mpp33";
103 + marvell,function = "gpio";
104 + };
105 + };
106 +
107 + serial@12000 {
108 + status = "okay";
109 + };
110 +
111 + sata@80000 {
112 + status = "okay";
113 + nr-ports = <2>;
114 + };
115 +
116 + rtc@10300 {
117 + status = "disabled";
118 + };
119 +
120 + i2c@11000 {
121 + status = "okay";
122 + ht1382: rtc@68 {
123 + compatible = "htk,ht1382";
124 + reg = <0x68>;
125 + };
126 + };
127 + };
128 +
129 + regulators {
130 + compatible = "simple-bus";
131 + #address-cells = <1>;
132 + #size-cells = <0>;
133 + pinctrl-names = "default";
134 + pinctrl-0 = <&pmx_usb_power &pmx_pwr_sata1>;
135 +
136 + usb0_power: regulator@1 {
137 + compatible = "regulator-fixed";
138 + reg = <1>;
139 + regulator-name = "USB Power";
140 + regulator-min-microvolt = <5000000>;
141 + regulator-max-microvolt = <5000000>;
142 + regulator-always-on;
143 + regulator-boot-on;
144 + enable-active-high;
145 + gpio = <&gpio0 21 GPIO_ACTIVE_HIGH>;
146 + };
147 +
148 + sata1_power: regulator@2 {
149 + compatible = "regulator-fixed";
150 + reg = <2>;
151 + regulator-name = "SATA1 Power";
152 + regulator-min-microvolt = <5000000>;
153 + regulator-max-microvolt = <5000000>;
154 + regulator-always-on;
155 + regulator-boot-on;
156 + enable-active-high;
157 + gpio = <&gpio1 1 GPIO_ACTIVE_HIGH>;
158 + };
159 + };
160 +
161 +
162 + gpio_keys {
163 + compatible = "gpio-keys";
164 + #address-cells = <1>;
165 + #size-cells = <0>;
166 + pinctrl-0 = <&pmx_btn_reset &pmx_btn_copy &pmx_btn_power>;
167 + pinctrl-names = "default";
168 +
169 + button@1 {
170 + label = "Power Button";
171 + linux,code = <KEY_POWER>;
172 + gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
173 + };
174 + button@2 {
175 + label = "Copy Button";
176 + linux,code = <KEY_COPY>;
177 + gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
178 + };
179 + button@3 {
180 + label = "Reset Button";
181 + linux,code = <KEY_RESTART>;
182 + gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
183 + };
184 + };
185 +
186 + gpio-leds {
187 + compatible = "gpio-leds";
188 + pinctrl-0 = <&pmx_led_hdd2_green &pmx_led_hdd2_red
189 + &pmx_led_usb_green
190 + &pmx_led_sys_green &pmx_led_sys_orange
191 + &pmx_led_copy_green &pmx_led_copy_red
192 + &pmx_led_hdd1_green &pmx_led_hdd1_red>;
193 + pinctrl-names = "default";
194 +
195 + green-sys {
196 + label = "nsa310s:green:sys";
197 + gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
198 + linux,default-trigger = "timer";
199 + };
200 + orange-sys {
201 + label = "nsa310s:orange:sys";
202 + gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
203 + };
204 + green-hdd1 {
205 + label = "nsa310s:green:hdd1";
206 + gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
207 + };
208 + red-hdd1 {
209 + label = "nsa310s:red:hdd1";
210 + gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
211 + };
212 + green-hdd2 {
213 + label = "nsa310s:green:hdd2";
214 + gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
215 + };
216 + red-hdd2 {
217 + label = "nsa310s:red:hdd2";
218 + gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
219 + };
220 + green-usb {
221 + label = "nsa310s:green:usb";
222 + gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
223 + };
224 + green-copy {
225 + label = "nsa310s:green:copy";
226 + gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
227 + linux,default-trigger = "ide-disk";
228 + };
229 + red-copy {
230 + label = "nsa310s:red:copy";
231 + gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
232 + };
233 + };
234 +
235 + gpio_poweroff {
236 + compatible = "gpio-poweroff";
237 + pinctrl-0 = <&pmx_pwr_off>;
238 + pinctrl-names = "default";
239 + gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>;
240 + };
241 +};
242 +
243 +&nand {
244 + status = "okay";
245 + chip-delay = <35>;
246 +
247 + partition@0 {
248 + label = "u-boot";
249 + reg = <0x0000000 0xe0000>;
250 + };
251 +
252 + partition@e0000 {
253 + label = "u-boot environment";
254 + reg = <0xe0000 0x100000>;
255 + };
256 +
257 + partition@100000 {
258 + label = "second stage u-boot";
259 + reg = <0x100000 0x200000>;
260 + };
261 +
262 + partition@200000 {
263 + label = "root";
264 + reg = <0x200000 0xfe00000>;
265 + };
266 +};
267 +
268 +&mdio {
269 + status = "okay";
270 + ethphy0: ethernet-phy@1 {
271 + compatible = "marvell,88e1318s";
272 + reg = <1>;
273 + marvell,reg-init = <0x1 0x16 0x0 0x3>,
274 + <0x1 0x10 0x0 0x1017>,
275 + <0x1 0x11 0x0 0x4408>,
276 + <0x1 0x16 0x0 0x0>,
277 + <0x1 0x4 0x0 0x1e1>,
278 + <0x1 0x9 0x0 0x300>,
279 + <0x1 0x10 0x0 0x3860>,
280 + <0x1 0x0 0x0 0x9140>;
281 + };
282 +};
283 +
284 +&eth0 {
285 + status = "okay";
286 +
287 + ethernet0-port@0 {
288 + phy-handle = <&ethphy0>;
289 + };
290 +};
291 --- a/arch/arm/boot/dts/Makefile
292 +++ b/arch/arm/boot/dts/Makefile
293 @@ -196,6 +196,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
294 kirkwood-ns2mini.dtb \
295 kirkwood-nsa310.dtb \
296 kirkwood-nsa310a.dtb \
297 + kirkwood-nsa310s.dtb \
298 kirkwood-openblocks_a6.dtb \
299 kirkwood-openblocks_a7.dtb \
300 kirkwood-openrd-base.dtb \