kirkwood: add 4.4 support
[openwrt.git] / target / linux / kirkwood / patches-4.4 / 190-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,nsa320s", "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 0x7e00000>;
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 @@ -203,6 +203,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 \