Merge tag 'nfs-for-4.18-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / gemini-dlink-dns-313.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Device Tree file for D-Link DNS-313 1-Bay Network Storage Enclosure
4  */
5
6 /dts-v1/;
7
8 #include "gemini.dtsi"
9 #include <dt-bindings/input/input.h>
10 #include <dt-bindings/thermal/thermal.h>
11
12 / {
13         model = "D-Link DNS-313 1-Bay Network Storage Enclosure";
14         compatible = "dlink,dir-313", "cortina,gemini";
15         #address-cells = <1>;
16         #size-cells = <1>;
17
18         memory@0 {
19                 /* 64 MB SDRAM in a Nanya NT5DS32M16BS-6K package */
20                 device_type = "memory";
21                 reg = <0x00000000 0x4000000>;
22         };
23
24         aliases {
25                 mdio-gpio0 = &mdio0;
26         };
27
28         chosen {
29                 bootargs = "console=ttyS0,19200n8 root=/dev/sda4 rw rootwait";
30                 stdout-path = "uart0:19200n8";
31         };
32
33         gpio_keys {
34                 compatible = "gpio-keys";
35
36                 button-esc {
37                         debounce-interval = <50>;
38                         wakeup-source;
39                         linux,code = <KEY_ESC>;
40                         label = "reset";
41                         gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
42                 };
43         };
44
45         leds {
46                 compatible = "gpio-leds";
47                 led-power {
48                         label = "dns313:blue:power";
49                         gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
50                         default-state = "on";
51                         linux,default-trigger = "heartbeat";
52                 };
53                 led-disk-blue {
54                         label = "dns313:blue:disk";
55                         gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
56                         default-state = "off";
57                 };
58                 led-disk-green {
59                         label = "dns313:green:disk";
60                         gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;
61                         default-state = "off";
62                         linux,default-trigger = "disk-read";
63                 };
64                 led-disk-red {
65                         label = "dns313:red:disk";
66                         gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>;
67                         default-state = "off";
68                         linux,default-trigger = "disk-write";
69                 };
70         };
71
72         /*
73          * This is a ADDA AD0405GB-G73 fan @3000 and 6000 RPM.
74          */
75         fan0: gpio-fan {
76                 compatible = "gpio-fan";
77                 gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>,
78                         <&gpio0 12 GPIO_ACTIVE_HIGH>;
79                 gpio-fan,speed-map = <0 0>, <3000 1>, <6000 2>;
80                 #cooling-cells = <2>;
81         };
82
83
84         /* Global Mixed-Mode Technology G751 mounted on GPIO I2C */
85         gpio-i2c {
86                 compatible = "i2c-gpio";
87                 sda-gpios = <&gpio0 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
88                 scl-gpios = <&gpio0 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
89                 #address-cells = <1>;
90                 #size-cells = <0>;
91
92                 g751: temperature-sensor@48 {
93                         compatible = "gmt,g751";
94                         reg = <0x48>;
95                         #thermal-sensor-cells = <0>;
96                 };
97         };
98
99         thermal-zones {
100                 chassis-thermal {
101                         /* Poll every 20 seconds */
102                         polling-delay = <20000>;
103                         /* Poll every 2nd second when cooling */
104                         polling-delay-passive = <2000>;
105
106                         thermal-sensors = <&g751>;
107
108                         /* Tripping points from the fan.script in the rootfs */
109                         trips {
110                                 chassis_alert0: chassis-alert0 {
111                                         /* At 43 degrees turn on low speed */
112                                         temperature = <43000>;
113                                         hysteresis = <3000>;
114                                         type = "active";
115                                 };
116                                 chassis_alert1: chassis-alert1 {
117                                         /* At 47 degrees turn on high speed */
118                                         temperature = <47000>;
119                                         hysteresis = <3000>;
120                                         type = "active";
121                                 };
122                                 chassis_crit: chassis-crit {
123                                         /* Just shut down at 60 degrees */
124                                         temperature = <60000>;
125                                         hysteresis = <2000>;
126                                         type = "critical";
127                                 };
128                         };
129
130                         cooling-maps {
131                                 map0 {
132                                         trip = <&chassis_alert0>;
133                                         cooling-device = <&fan0 1 1>;
134                                 };
135                                 map1 {
136                                         trip = <&chassis_alert1>;
137                                         cooling-device = <&fan0 2 2>;
138                                 };
139                         };
140                 };
141         };
142
143         mdio0: ethernet-phy {
144                 compatible = "virtual,mdio-gpio";
145                 /* Uses MDC and MDIO */
146                 gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */
147                         <&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */
148                 #address-cells = <1>;
149                 #size-cells = <0>;
150
151                 /* This is a Realtek RTL8211B Gigabit ethernet transceiver */
152                 phy0: ethernet-phy@1 {
153                         reg = <1>;
154                         device_type = "ethernet-phy";
155                 };
156         };
157
158         soc {
159                 flash@30000000 {
160                         /*
161                          * This is a Eon EN29LV400AB 512 KiB flash with
162                          * three partitions.
163                          */
164                         compatible = "cortina,gemini-flash", "jedec-flash";
165                         status = "okay";
166                         reg = <0x30000000 0x00080000>;
167
168                         /*
169                          * This "RedBoot" is the Storlink derivative.
170                          */
171                         partition@0 {
172                                 label = "RedBoot";
173                                 reg = <0x00000000 0x00040000>;
174                                 read-only;
175                         };
176                         partition@40000 {
177                                 label = "MTD1";
178                                 reg = <0x00040000 0x00020000>;
179                                 read-only;
180                         };
181                         partition@60000 {
182                                 label = "MTD2";
183                                 reg = <0x00060000 0x00020000>;
184                                 read-only;
185                         };
186                 };
187
188                 syscon: syscon@40000000 {
189                         pinctrl {
190                                 /*
191                                  */
192                                 gpio0_default_pins: pinctrl-gpio0 {
193                                         mux {
194                                                 function = "gpio0";
195                                                 groups =
196                                                 /* Used by LEDs conflicts ICE */
197                                                 "gpio0bgrp",
198                                                 /* Used by ? conflicts ICE */
199                                                 "gpio0cgrp",
200                                                 /*
201                                                  * Used by fan & G751, conflicts LPC,
202                                                  * UART modem lines, SSP
203                                                  */
204                                                 "gpio0egrp",
205                                                 /* Used by G751 */
206                                                 "gpio0fgrp",
207                                                 /* Used by MDIO */
208                                                 "gpio0igrp";
209                                         };
210                                 };
211                                 gpio1_default_pins: pinctrl-gpio1 {
212                                         mux {
213                                                 function = "gpio1";
214                                                 /* Used by "reset" button */
215                                                 groups = "gpio1dgrp";
216                                         };
217                                 };
218                                 pinctrl-gmii {
219                                         mux {
220                                                 function = "gmii";
221                                                 groups = "gmii_gmac0_grp";
222                                         };
223                                         /*
224                                          * In the vendor Linux tree, these values are set for the C3
225                                          * version of the SL3512 ASIC with the comment "benson suggest"
226                                          */
227                                         conf0 {
228                                                 pins = "R8 GMAC0 RXDV", "U11 GMAC1 RXDV";
229                                                 skew-delay = <0>;
230                                         };
231                                         conf1 {
232                                                 pins = "T8 GMAC0 RXC";
233                                                 skew-delay = <10>;
234                                         };
235                                         conf2 {
236                                                 pins = "T11 GMAC1 RXC";
237                                                 skew-delay = <15>;
238                                         };
239                                         conf3 {
240                                                 pins = "P8 GMAC0 TXEN", "V11 GMAC1 TXEN";
241                                                 skew-delay = <7>;
242                                         };
243                                         conf4 {
244                                                 pins = "V7 GMAC0 TXC", "P10 GMAC1 TXC";
245                                                 skew-delay = <10>;
246                                         };
247                                         conf5 {
248                                                 /* The data lines all have default skew */
249                                                 pins = "U8 GMAC0 RXD0", "V8 GMAC0 RXD1",
250                                                        "P9 GMAC0 RXD2", "R9 GMAC0 RXD3",
251                                                        "R11 GMAC1 RXD0", "P11 GMAC1 RXD1",
252                                                        "V12 GMAC1 RXD2", "U12 GMAC1 RXD3",
253                                                        "R10 GMAC1 TXD0", "T10 GMAC1 TXD1",
254                                                        "U10 GMAC1 TXD2", "V10 GMAC1 TXD3";
255                                                 skew-delay = <7>;
256                                         };
257                                         conf6 {
258                                                 pins = "U7 GMAC0 TXD0", "T7 GMAC0 TXD1",
259                                                        "R7 GMAC0 TXD2", "P7 GMAC0 TXD3";
260                                                 skew-delay = <5>;
261                                         };
262                                         /* Set up drive strength on GMAC0 to 16 mA */
263                                         conf7 {
264                                                 groups = "gmii_gmac0_grp";
265                                                 drive-strength = <16>;
266                                         };
267                                 };
268                         };
269                 };
270
271                 sata: sata@46000000 {
272                         /* The ROM uses this muxmode */
273                         cortina,gemini-ata-muxmode = <0>;
274                         cortina,gemini-enable-sata-bridge;
275                         status = "okay";
276                 };
277
278                 gpio0: gpio@4d000000 {
279                         pinctrl-names = "default";
280                         pinctrl-0 = <&gpio0_default_pins>;
281                 };
282
283                 gpio1: gpio@4e000000 {
284                         pinctrl-names = "default";
285                         pinctrl-0 = <&gpio1_default_pins>;
286                 };
287
288                 ethernet@60000000 {
289                         status = "okay";
290
291                         ethernet-port@0 {
292                                 phy-mode = "rgmii";
293                                 phy-handle = <&phy0>;
294                         };
295                         ethernet-port@1 {
296                                 /* Not used in this platform */
297                         };
298                 };
299
300                 ata@63000000 {
301                         status = "okay";
302                 };
303         };
304 };