1// 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 = ð0; 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 = <®_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 = <®_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 = <®_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 = <®_5p0v_usb>; 134 }; 135 136 usb3_phy: usb3-phy { 137 compatible = "usb-nop-xceiv"; 138 }; 139 140 soc { 141 internal-regs { 142 i2c@11000 { 143 clock-frequency = <400000>; 144 pinctrl-0 = <&i2c0_pins>; 145 pinctrl-names = "default"; 146 status = "okay"; 147 148 /* 149 * PCA9655 GPIO expander, up to 1MHz clock. 150 * 0-Board Revision bit 0 # 151 * 1-Board Revision bit 1 # 152 * 5-USB3 overcurrent 153 * 6-USB3 power 154 */ 155 expander0: gpio-expander@20 { 156 /* 157 * This is how it should be: 158 * compatible = "onnn,pca9655", 159 * "nxp,pca9555"; 160 * but you can't do this because of 161 * the way I2C works. 162 */ 163 compatible = "nxp,pca9555"; 164 gpio-controller; 165 #gpio-cells = <2>; 166 reg = <0x20>; 167 pinctrl-names = "default"; 168 pinctrl-0 = <&pca0_pins>; 169 interrupt-parent = <&gpio0>; 170 interrupts = <23 IRQ_TYPE_EDGE_FALLING>; 171 interrupt-controller; 172 #interrupt-cells = <2>; 173 174 board_rev_bit_0 { 175 gpio-hog; 176 gpios = <0 GPIO_ACTIVE_LOW>; 177 input; 178 line-name = "board-rev-0"; 179 }; 180 board_rev_bit_1 { 181 gpio-hog; 182 gpios = <1 GPIO_ACTIVE_LOW>; 183 input; 184 line-name = "board-rev-1"; 185 }; 186 usb3_ilimit { 187 gpio-hog; 188 gpios = <5 GPIO_ACTIVE_HIGH>; 189 input; 190 line-name = "usb-overcurrent-status"; 191 }; 192 }; 193 194 temp_sensor: temp@4c { 195 compatible = "ti,lm75"; 196 reg = <0x4c>; 197 vcc-supply = <®_3p3v>; 198 }; 199 }; 200 201 i2c@11100 { 202 /* 203 * External I2C Bus for user peripheral 204 */ 205 clock-frequency = <400000>; 206 pinctrl-0 = <&helios_i2c1_pins>; 207 pinctrl-names = "default"; 208 status = "okay"; 209 }; 210 211 sata@a8000 { 212 status = "okay"; 213 #address-cells = <1>; 214 #size-cells = <0>; 215 216 sata0: sata-port@0 { 217 reg = <0>; 218 }; 219 220 sata1: sata-port@1 { 221 reg = <1>; 222 }; 223 }; 224 225 sata@e0000 { 226 status = "okay"; 227 #address-cells = <1>; 228 #size-cells = <0>; 229 230 sata2: sata-port@0 { 231 reg = <0>; 232 }; 233 234 sata3: sata-port@1 { 235 reg = <1>; 236 }; 237 }; 238 239 spi@10680 { 240 pinctrl-0 = <&spi1_pins 241 µsom_spi1_cs_pins>; 242 pinctrl-names = "default"; 243 status = "okay"; 244 }; 245 246 sdhci@d8000 { 247 bus-width = <4>; 248 cd-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>; 249 no-1-8-v; 250 pinctrl-0 = <&helios_sdhci_pins 251 &helios_sdhci_cd_pins>; 252 pinctrl-names = "default"; 253 status = "okay"; 254 vmmc = <®_3p3v>; 255 wp-inverted; 256 }; 257 258 usb@58000 { 259 usb-phy = <&usb2_phy>; 260 status = "okay"; 261 }; 262 263 usb3@f0000 { 264 status = "okay"; 265 }; 266 267 usb3@f8000 { 268 status = "okay"; 269 }; 270 271 pinctrl@18000 { 272 pca0_pins: pca0-pins { 273 marvell,pins = "mpp23"; 274 marvell,function = "gpio"; 275 }; 276 microsom_phy0_int_pins: microsom-phy0-int-pins { 277 marvell,pins = "mpp18"; 278 marvell,function = "gpio"; 279 }; 280 helios_i2c1_pins: i2c1-pins { 281 marvell,pins = "mpp26", "mpp27"; 282 marvell,function = "i2c1"; 283 }; 284 helios_sdhci_cd_pins: helios-sdhci-cd-pins { 285 marvell,pins = "mpp20"; 286 marvell,function = "gpio"; 287 }; 288 helios_sdhci_pins: helios-sdhci-pins { 289 marvell,pins = "mpp21", "mpp28", 290 "mpp37", "mpp38", 291 "mpp39", "mpp40"; 292 marvell,function = "sd0"; 293 }; 294 helios_led_pins: helios-led-pins { 295 marvell,pins = "mpp24", "mpp25", 296 "mpp49", "mpp50", 297 "mpp52", "mpp53", 298 "mpp54"; 299 marvell,function = "gpio"; 300 }; 301 helios_fan_pins: helios-fan-pins { 302 marvell,pins = "mpp41", "mpp43", 303 "mpp48", "mpp55"; 304 marvell,function = "gpio"; 305 }; 306 microsom_spi1_cs_pins: spi1-cs-pins { 307 marvell,pins = "mpp59"; 308 marvell,function = "spi1"; 309 }; 310 }; 311 }; 312 }; 313}; 314