]>
Commit | Line | Data |
---|---|---|
dd5c0561 LW |
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 | ||
e7c88159 | 18 | memory@0 { |
dd5c0561 LW |
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 { | |
0d6ce772 | 29 | bootargs = "console=ttyS0,19200n8 root=/dev/sda4 rw rootwait"; |
dd5c0561 LW |
30 | stdout-path = "uart0:19200n8"; |
31 | }; | |
32 | ||
33 | gpio_keys { | |
34 | compatible = "gpio-keys"; | |
e7c88159 | 35 | |
dd5c0561 | 36 | button-esc { |
c0b20bac | 37 | debounce-interval = <50>; |
dd5c0561 LW |
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"; | |
2bd2bbff | 62 | linux,default-trigger = "disk-read"; |
dd5c0561 LW |
63 | }; |
64 | led-disk-red { | |
65 | label = "dns313:red:disk"; | |
66 | gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>; | |
67 | default-state = "off"; | |
2bd2bbff | 68 | linux,default-trigger = "disk-write"; |
dd5c0561 LW |
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>; | |
dd5c0561 LW |
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 { | |
a10d862e LW |
160 | /* |
161 | * This is a Eon EN29LV400AB 512 KiB flash with | |
162 | * three partitions. | |
163 | */ | |
164 | compatible = "cortina,gemini-flash", "jedec-flash"; | |
dd5c0561 | 165 | status = "okay"; |
dd5c0561 LW |
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 | }; | |
95220046 LW |
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 | }; | |
dd5c0561 LW |
268 | }; |
269 | }; | |
270 | ||
271 | sata: sata@46000000 { | |
272 | /* The ROM uses this muxmode */ | |
29d1d52b | 273 | cortina,gemini-ata-muxmode = <0>; |
dd5c0561 LW |
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 | ||
95220046 LW |
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 | ||
dd5c0561 LW |
300 | ata@63000000 { |
301 | status = "okay"; | |
302 | }; | |
303 | }; | |
304 | }; |