GNU Linux-libre 4.19.264-gnu1
[releases.git] / arch / arm / boot / dts / kirkwood-netxbig.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Device Tree common file for LaCie 2Big and 5Big Network v2
4  *
5  * Copyright (C) 2014
6  *
7  * Andrew Lunn <andrew@lunn.ch>
8  *
9  * Based on netxbig_v2-setup.c,
10  * Copyright (C) 2010 Simon Guinot <sguinot@lacie.com>
11  *
12 */
13
14 #include <dt-bindings/leds/leds-netxbig.h>
15 #include "kirkwood.dtsi"
16 #include "kirkwood-6281.dtsi"
17
18 / {
19         chosen {
20                 bootargs = "console=ttyS0,115200n8";
21                 stdout-path = &uart0;
22         };
23
24         ocp@f1000000 {
25                 serial@12000 {
26                         status = "okay";
27                 };
28
29                 spi@10600 {
30                         status = "okay";
31
32                         flash@0 {
33                                 #address-cells = <1>;
34                                 #size-cells = <1>;
35                                 compatible = "mxicy,mx25l4005a", "jedec,spi-nor";
36                                 reg = <0>;
37                                 spi-max-frequency = <20000000>;
38                                 mode = <0>;
39
40                                 partition@0 {
41                                         reg = <0x0 0x80000>;
42                                         label = "u-boot";
43                                 };
44                         };
45                 };
46
47                 sata@80000 {
48                         status = "okay";
49                         nr-ports = <2>;
50                 };
51
52         };
53
54         gpio-keys {
55                 compatible = "gpio-keys";
56                 #address-cells = <1>;
57                 #size-cells = <0>;
58
59                 /*
60                  * esc and power represent a three position rocker
61                  * switch. Thus the conventional KEY_POWER does not fit
62                  */
63                 exc {
64                         label = "Back power switch (on|auto)";
65                         linux,code = <KEY_ESC>;
66                         linux,input-type = <5>;
67                         gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
68                 };
69                 power {
70                         label = "Back power switch (auto|off)";
71                         linux,code = <KEY_1>;
72                         linux,input-type = <5>;
73                         gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
74                 };
75                 option {
76                         label = "Function button";
77                         linux,code = <KEY_OPTION>;
78                         gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
79                 };
80
81         };
82
83         gpio-poweroff {
84                 compatible = "gpio-poweroff";
85                 gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
86         };
87
88         regulators: regulators {
89                 status = "okay";
90                 compatible = "simple-bus";
91                 #address-cells = <1>;
92                 #size-cells = <0>;
93                 pinctrl-names = "default";
94
95                 regulator@1 {
96                         compatible = "regulator-fixed";
97                         reg = <1>;
98                         regulator-name = "hdd0power";
99                         regulator-min-microvolt = <5000000>;
100                         regulator-max-microvolt = <5000000>;
101                         enable-active-high;
102                         regulator-always-on;
103                         regulator-boot-on;
104                         gpio = <&gpio0 16 GPIO_ACTIVE_HIGH>;
105                 };
106         };
107
108         netxbig_gpio_ext: netxbig-gpio-ext {
109                 compatible = "lacie,netxbig-gpio-ext";
110
111                 addr-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH
112                               &gpio1 16 GPIO_ACTIVE_HIGH
113                               &gpio1 17 GPIO_ACTIVE_HIGH>;
114                 data-gpios = <&gpio1 12 GPIO_ACTIVE_HIGH
115                               &gpio1 13 GPIO_ACTIVE_HIGH
116                               &gpio1 14 GPIO_ACTIVE_HIGH>;
117                 enable-gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
118         };
119
120         netxbig-leds {
121                 compatible = "lacie,netxbig-leds";
122
123                 gpio-ext = <&netxbig_gpio_ext>;
124
125                 timers = <NETXBIG_LED_TIMER1 500 500
126                           NETXBIG_LED_TIMER2 500 1000>;
127
128                 blue-power {
129                         label = "netxbig:blue:power";
130                         mode-addr = <0>;
131                         mode-val = <NETXBIG_LED_OFF 0
132                                     NETXBIG_LED_ON 1
133                                     NETXBIG_LED_TIMER1 3
134                                     NETXBIG_LED_TIMER2 7>;
135                         bright-addr = <1>;
136                         max-brightness = <7>;
137                 };
138                 red-power {
139                         label = "netxbig:red:power";
140                         mode-addr = <0>;
141                         mode-val = <NETXBIG_LED_OFF 0
142                                     NETXBIG_LED_ON 2
143                                     NETXBIG_LED_TIMER1 4>;
144                         bright-addr = <1>;
145                         max-brightness = <7>;
146                 };
147                 blue-sata0 {
148                         label = "netxbig:blue:sata0";
149                         mode-addr = <3>;
150                         mode-val = <NETXBIG_LED_OFF 0
151                                     NETXBIG_LED_ON 7
152                                     NETXBIG_LED_SATA 1
153                                     NETXBIG_LED_TIMER1 3>;
154                         bright-addr = <2>;
155                         max-brightness = <7>;
156                 };
157                 red-sata0 {
158                         label = "netxbig:red:sata0";
159                         mode-addr = <3>;
160                         mode-val = <NETXBIG_LED_OFF 0
161                                     NETXBIG_LED_ON 2
162                                     NETXBIG_LED_TIMER1 4>;
163                         bright-addr = <2>;
164                         max-brightness = <7>;
165                 };
166                 blue-sata1 {
167                         label = "netxbig:blue:sata1";
168                         mode-addr = <4>;
169                         mode-val = <NETXBIG_LED_OFF 0
170                                     NETXBIG_LED_ON 7
171                                     NETXBIG_LED_SATA 1
172                                     NETXBIG_LED_TIMER1 3>;
173                         bright-addr = <2>;
174                         max-brightness = <7>;
175                 };
176                 red-sata1 {
177                         label = "netxbig:red:sata1";
178                         mode-addr = <4>;
179                         mode-val = <NETXBIG_LED_OFF 0
180                                     NETXBIG_LED_ON 2
181                                     NETXBIG_LED_TIMER1 4>;
182                         bright-addr = <2>;
183                         max-brightness = <7>;
184                 };
185         };
186 };
187
188 &mdio {
189         status = "okay";
190
191         ethphy0: ethernet-phy@0 {
192                 reg = <8>;
193         };
194
195         ethphy1: ethernet-phy@1 {
196                 reg = <0>;
197         };
198 };
199
200 &eth0 {
201         status = "okay";
202         ethernet0-port@0 {
203                 phy-handle = <&ethphy0>;
204         };
205 };
206
207 &pinctrl {
208         pinctrl-names = "default";
209
210         pmx_button_function: pmx-button-function {
211                 marvell,pins = "mpp34";
212                 marvell,function = "gpio";
213         };
214         pmx_button_power_off: pmx-button-power-off {
215                 marvell,pins = "mpp15";
216                 marvell,function = "gpio";
217         };
218         pmx_button_power_on: pmx-button-power-on {
219                 marvell,pins = "mpp13";
220                 marvell,function = "gpio";
221         };
222 };
223
224 &i2c0 {
225         status = "okay";
226
227         eeprom@50 {
228                 compatible = "atmel,24c04";
229                 pagesize = <16>;
230                 reg = <0x50>;
231         };
232 };