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