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 = 191 "usb-overcurrent-status"; 192 }; 193 }; 194 195 temp_sensor: temp@4c { 196 compatible = "ti,lm75"; 197 reg = <0x4c>; 198 vcc-supply = <®_3p3v>; 199 }; 200 }; 201 202 i2c@11100 { 203 /* 204 * External I2C Bus for user peripheral 205 */ 206 clock-frequency = <400000>; 207 pinctrl-0 = <&helios_i2c1_pins>; 208 pinctrl-names = "default"; 209 status = "okay"; 210 }; 211 212 sata@a8000 { 213 status = "okay"; 214 #address-cells = <1>; 215 #size-cells = <0>; 216 217 sata0: sata-port@0 { 218 reg = <0>; 219 }; 220 221 sata1: sata-port@1 { 222 reg = <1>; 223 }; 224 }; 225 226 sata@e0000 { 227 status = "okay"; 228 #address-cells = <1>; 229 #size-cells = <0>; 230 231 sata2: sata-port@0 { 232 reg = <0>; 233 }; 234 235 sata3: sata-port@1 { 236 reg = <1>; 237 }; 238 }; 239 240 spi@10680 { 241 pinctrl-0 = <&spi1_pins 242 µsom_spi1_cs_pins>; 243 pinctrl-names = "default"; 244 status = "okay"; 245 }; 246 247 sdhci@d8000 { 248 bus-width = <4>; 249 cd-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>; 250 no-1-8-v; 251 pinctrl-0 = <&helios_sdhci_pins 252 &helios_sdhci_cd_pins>; 253 pinctrl-names = "default"; 254 status = "okay"; 255 vmmc = <®_3p3v>; 256 wp-inverted; 257 }; 258 259 usb@58000 { 260 usb-phy = <&usb2_phy>; 261 status = "okay"; 262 }; 263 264 usb3@f0000 { 265 status = "okay"; 266 }; 267 268 usb3@f8000 { 269 status = "okay"; 270 }; 271 272 pinctrl@18000 { 273 pca0_pins: pca0-pins { 274 marvell,pins = "mpp23"; 275 marvell,function = "gpio"; 276 }; 277 microsom_phy0_int_pins: microsom-phy0-int-pins { 278 marvell,pins = "mpp18"; 279 marvell,function = "gpio"; 280 }; 281 helios_i2c1_pins: i2c1-pins { 282 marvell,pins = "mpp26", "mpp27"; 283 marvell,function = "i2c1"; 284 }; 285 helios_sdhci_cd_pins: helios-sdhci-cd-pins { 286 marvell,pins = "mpp20"; 287 marvell,function = "gpio"; 288 }; 289 helios_sdhci_pins: helios-sdhci-pins { 290 marvell,pins = "mpp21", "mpp28", 291 "mpp37", "mpp38", 292 "mpp39", "mpp40"; 293 marvell,function = "sd0"; 294 }; 295 helios_led_pins: helios-led-pins { 296 marvell,pins = "mpp24", "mpp25", 297 "mpp49", "mpp50", 298 "mpp52", "mpp53", 299 "mpp54"; 300 marvell,function = "gpio"; 301 }; 302 helios_fan_pins: helios-fan-pins { 303 marvell,pins = "mpp41", "mpp43", 304 "mpp48", "mpp55"; 305 marvell,function = "gpio"; 306 }; 307 microsom_spi1_cs_pins: spi1-cs-pins { 308 marvell,pins = "mpp59"; 309 marvell,function = "spi1"; 310 }; 311 }; 312 }; 313 }; 314}; 315