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 /* 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; 185 line-name = "usb-overcurrent-status"; 186 }; 187 }; 188 189 temp_sensor: temp@4c { 190 compatible = "ti,lm75"; 191 reg = <0x4c>; 192 vcc-supply = <®_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 µsom_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; 245 pinctrl-0 = <&helios_sdhci_pins 246 &helios_sdhci_cd_pins>; 247 pinctrl-names = "default"; 248 status = "okay"; 249 vmmc = <®_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 }; 283 helios_sdhci_pins: helios-sdhci-pins { 284 marvell,pins = "mpp21", "mpp28", 285 "mpp37", "mpp38", 286 "mpp39", "mpp40"; 287 marvell,function = "sd0"; 288 }; 289 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}; 309