blob: fb49df2a3bce7b02169dae13551dd5eb5f7befba [file] [log] [blame]
Dennis Gilmore77c39402018-06-11 19:39:53 -05001// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Device Tree file for Helios4
4 * based on SolidRun Clearfog revision A1 rev 2.0 (88F6828)
5 *
6 * Copyright (C) 2017 Aditya Prayoga <aditya@kobol.io>
7 *
8 */
9
10/dts-v1/;
11#include "armada-388.dtsi"
12#include "armada-38x-solidrun-microsom.dtsi"
13
14/ {
15 model = "Helios4";
16 compatible = "kobol,helios4", "marvell,armada388",
17 "marvell,armada385", "marvell,armada380";
18
19 memory {
20 device_type = "memory";
21 reg = <0x00000000 0x80000000>; /* 2 GB */
22 };
23
24 aliases {
25 /* So that mvebu u-boot can update the MAC addresses */
26 ethernet1 = &eth0;
27 };
28
29 chosen {
30 stdout-path = "serial0:115200n8";
31 };
32
33 reg_12v: regulator-12v {
34 compatible = "regulator-fixed";
35 regulator-name = "power_brick_12V";
36 regulator-min-microvolt = <12000000>;
37 regulator-max-microvolt = <12000000>;
38 regulator-always-on;
39 };
40
41 reg_3p3v: regulator-3p3v {
42 compatible = "regulator-fixed";
43 regulator-name = "3P3V";
44 regulator-min-microvolt = <3300000>;
45 regulator-max-microvolt = <3300000>;
46 regulator-always-on;
47 vin-supply = <&reg_12v>;
48 };
49
50 reg_5p0v_hdd: regulator-5v-hdd {
51 compatible = "regulator-fixed";
52 regulator-name = "5V_HDD";
53 regulator-min-microvolt = <5000000>;
54 regulator-max-microvolt = <5000000>;
55 regulator-always-on;
56 vin-supply = <&reg_12v>;
57 };
58
59 reg_5p0v_usb: regulator-5v-usb {
60 compatible = "regulator-fixed";
61 regulator-name = "USB-PWR";
62 regulator-min-microvolt = <5000000>;
63 regulator-max-microvolt = <5000000>;
64 regulator-boot-on;
65 regulator-always-on;
66 enable-active-high;
67 gpio = <&expander0 6 GPIO_ACTIVE_HIGH>;
68 vin-supply = <&reg_12v>;
69 };
70
71 system-leds {
72 compatible = "gpio-leds";
73 status-led {
74 label = "helios4:green:status";
75 gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
76 linux,default-trigger = "heartbeat";
77 default-state = "on";
78 };
79
80 fault-led {
81 label = "helios4:red:fault";
82 gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
83 default-state = "keep";
84 };
85 };
86
87 io-leds {
88 compatible = "gpio-leds";
89 sata1-led {
90 label = "helios4:green:ata1";
91 gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
92 linux,default-trigger = "ata1";
93 default-state = "off";
94 };
95 sata2-led {
96 label = "helios4:green:ata2";
97 gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
98 linux,default-trigger = "ata2";
99 default-state = "off";
100 };
101 sata3-led {
102 label = "helios4:green:ata3";
103 gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
104 linux,default-trigger = "ata3";
105 default-state = "off";
106 };
107 sata4-led {
108 label = "helios4:green:ata4";
109 gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
110 linux,default-trigger = "ata4";
111 default-state = "off";
112 };
113 usb-led {
114 label = "helios4:green:usb";
115 gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
116 linux,default-trigger = "usb-host";
117 default-state = "off";
118 };
119 };
120
121 fan1: j10-pwm {
122 compatible = "pwm-fan";
123 pwms = <&gpio1 9 40000>; /* Target freq:25 kHz */
124 };
125
126 fan2: j17-pwm {
127 compatible = "pwm-fan";
128 pwms = <&gpio1 23 40000>; /* Target freq:25 kHz */
129 };
130
131 usb2_phy: usb2-phy {
132 compatible = "usb-nop-xceiv";
133 vbus-regulator = <&reg_5p0v_usb>;
134 };
135
136 usb3_phy: usb3-phy {
137 compatible = "usb-nop-xceiv";
138 };
139
140 soc {
141 internal-regs {
142 i2c@11000 {
Dennis Gilmore77c39402018-06-11 19:39:53 -0500143 /*
144 * PCA9655 GPIO expander, up to 1MHz clock.
145 * 0-Board Revision bit 0 #
146 * 1-Board Revision bit 1 #
147 * 5-USB3 overcurrent
148 * 6-USB3 power
149 */
150 expander0: gpio-expander@20 {
151 /*
152 * This is how it should be:
153 * compatible = "onnn,pca9655",
154 * "nxp,pca9555";
155 * but you can't do this because of
156 * the way I2C works.
157 */
158 compatible = "nxp,pca9555";
159 gpio-controller;
160 #gpio-cells = <2>;
161 reg = <0x20>;
162 pinctrl-names = "default";
163 pinctrl-0 = <&pca0_pins>;
164 interrupt-parent = <&gpio0>;
165 interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
166 interrupt-controller;
167 #interrupt-cells = <2>;
168
169 board_rev_bit_0 {
170 gpio-hog;
171 gpios = <0 GPIO_ACTIVE_LOW>;
172 input;
173 line-name = "board-rev-0";
174 };
175 board_rev_bit_1 {
176 gpio-hog;
177 gpios = <1 GPIO_ACTIVE_LOW>;
178 input;
179 line-name = "board-rev-1";
180 };
181 usb3_ilimit {
182 gpio-hog;
183 gpios = <5 GPIO_ACTIVE_HIGH>;
184 input;
Dennis Gilmoref08364f2020-06-27 15:00:16 -0500185 line-name = "usb-overcurrent-status";
Dennis Gilmore77c39402018-06-11 19:39:53 -0500186 };
187 };
188
189 temp_sensor: temp@4c {
190 compatible = "ti,lm75";
191 reg = <0x4c>;
192 vcc-supply = <&reg_3p3v>;
193 };
194 };
195
196 i2c@11100 {
197 /*
198 * External I2C Bus for user peripheral
199 */
200 clock-frequency = <400000>;
201 pinctrl-0 = <&helios_i2c1_pins>;
202 pinctrl-names = "default";
203 status = "okay";
204 };
205
206 sata@a8000 {
207 status = "okay";
208 #address-cells = <1>;
209 #size-cells = <0>;
210
211 sata0: sata-port@0 {
212 reg = <0>;
213 };
214
215 sata1: sata-port@1 {
216 reg = <1>;
217 };
218 };
219
220 sata@e0000 {
221 status = "okay";
222 #address-cells = <1>;
223 #size-cells = <0>;
224
225 sata2: sata-port@0 {
226 reg = <0>;
227 };
228
229 sata3: sata-port@1 {
230 reg = <1>;
231 };
232 };
233
234 spi@10680 {
235 pinctrl-0 = <&spi1_pins
236 &microsom_spi1_cs_pins>;
237 pinctrl-names = "default";
238 status = "okay";
239 };
240
241 sdhci@d8000 {
242 bus-width = <4>;
243 cd-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
244 no-1-8-v;
Dennis Gilmoref08364f2020-06-27 15:00:16 -0500245 pinctrl-0 = <&helios_sdhci_pins
Dennis Gilmore77c39402018-06-11 19:39:53 -0500246 &helios_sdhci_cd_pins>;
247 pinctrl-names = "default";
248 status = "okay";
249 vmmc = <&reg_3p3v>;
250 wp-inverted;
251 };
252
253 usb@58000 {
254 usb-phy = <&usb2_phy>;
255 status = "okay";
256 };
257
258 usb3@f0000 {
259 status = "okay";
260 };
261
262 usb3@f8000 {
263 status = "okay";
264 };
265
266 pinctrl@18000 {
267 pca0_pins: pca0-pins {
268 marvell,pins = "mpp23";
269 marvell,function = "gpio";
270 };
271 microsom_phy0_int_pins: microsom-phy0-int-pins {
272 marvell,pins = "mpp18";
273 marvell,function = "gpio";
274 };
275 helios_i2c1_pins: i2c1-pins {
276 marvell,pins = "mpp26", "mpp27";
277 marvell,function = "i2c1";
278 };
279 helios_sdhci_cd_pins: helios-sdhci-cd-pins {
280 marvell,pins = "mpp20";
281 marvell,function = "gpio";
282 };
Dennis Gilmoref08364f2020-06-27 15:00:16 -0500283 helios_sdhci_pins: helios-sdhci-pins {
284 marvell,pins = "mpp21", "mpp28",
285 "mpp37", "mpp38",
286 "mpp39", "mpp40";
287 marvell,function = "sd0";
288 };
Dennis Gilmore77c39402018-06-11 19:39:53 -0500289 helios_led_pins: helios-led-pins {
290 marvell,pins = "mpp24", "mpp25",
291 "mpp49", "mpp50",
292 "mpp52", "mpp53",
293 "mpp54";
294 marvell,function = "gpio";
295 };
296 helios_fan_pins: helios-fan-pins {
297 marvell,pins = "mpp41", "mpp43",
298 "mpp48", "mpp55";
299 marvell,function = "gpio";
300 };
301 microsom_spi1_cs_pins: spi1-cs-pins {
302 marvell,pins = "mpp59";
303 marvell,function = "spi1";
304 };
305 };
306 };
307 };
308};