Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The helios4 is a Armada388 based nas board designed by SolidRun and based on their SOM. It is sold by kobol.io the dts file came from https://raw.githubusercontent.com/armbian/build/master/patch/kernel/mvebu-default/95-helios4-device-tree.patch I added a SPDX license line to match the clearfog it says it was based on and a compatible line for "kobol,helios4" Signed-off-by: Dennis Gilmore <dennis@ausil.us> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
- Loading branch information
Showing
2 changed files
with
314 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,313 @@ | ||
// SPDX-License-Identifier: (GPL-2.0 OR MIT) | ||
/* | ||
* Device Tree file for Helios4 | ||
* based on SolidRun Clearfog revision A1 rev 2.0 (88F6828) | ||
* | ||
* Copyright (C) 2017 Aditya Prayoga <aditya@kobol.io> | ||
* | ||
*/ | ||
|
||
/dts-v1/; | ||
#include "armada-388.dtsi" | ||
#include "armada-38x-solidrun-microsom.dtsi" | ||
|
||
/ { | ||
model = "Helios4"; | ||
compatible = "kobol,helios4", "marvell,armada388", | ||
"marvell,armada385", "marvell,armada380"; | ||
|
||
memory { | ||
device_type = "memory"; | ||
reg = <0x00000000 0x80000000>; /* 2 GB */ | ||
}; | ||
|
||
aliases { | ||
/* So that mvebu u-boot can update the MAC addresses */ | ||
ethernet1 = ð0; | ||
}; | ||
|
||
chosen { | ||
stdout-path = "serial0:115200n8"; | ||
}; | ||
|
||
reg_12v: regulator-12v { | ||
compatible = "regulator-fixed"; | ||
regulator-name = "power_brick_12V"; | ||
regulator-min-microvolt = <12000000>; | ||
regulator-max-microvolt = <12000000>; | ||
regulator-always-on; | ||
}; | ||
|
||
reg_3p3v: regulator-3p3v { | ||
compatible = "regulator-fixed"; | ||
regulator-name = "3P3V"; | ||
regulator-min-microvolt = <3300000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-always-on; | ||
vin-supply = <®_12v>; | ||
}; | ||
|
||
reg_5p0v_hdd: regulator-5v-hdd { | ||
compatible = "regulator-fixed"; | ||
regulator-name = "5V_HDD"; | ||
regulator-min-microvolt = <5000000>; | ||
regulator-max-microvolt = <5000000>; | ||
regulator-always-on; | ||
vin-supply = <®_12v>; | ||
}; | ||
|
||
reg_5p0v_usb: regulator-5v-usb { | ||
compatible = "regulator-fixed"; | ||
regulator-name = "USB-PWR"; | ||
regulator-min-microvolt = <5000000>; | ||
regulator-max-microvolt = <5000000>; | ||
regulator-boot-on; | ||
regulator-always-on; | ||
enable-active-high; | ||
gpio = <&expander0 6 GPIO_ACTIVE_HIGH>; | ||
vin-supply = <®_12v>; | ||
}; | ||
|
||
system-leds { | ||
compatible = "gpio-leds"; | ||
status-led { | ||
label = "helios4:green:status"; | ||
gpios = <&gpio0 24 GPIO_ACTIVE_LOW>; | ||
linux,default-trigger = "heartbeat"; | ||
default-state = "on"; | ||
}; | ||
|
||
fault-led { | ||
label = "helios4:red:fault"; | ||
gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; | ||
default-state = "keep"; | ||
}; | ||
}; | ||
|
||
io-leds { | ||
compatible = "gpio-leds"; | ||
sata1-led { | ||
label = "helios4:green:ata1"; | ||
gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; | ||
linux,default-trigger = "ata1"; | ||
default-state = "off"; | ||
}; | ||
sata2-led { | ||
label = "helios4:green:ata2"; | ||
gpios = <&gpio1 18 GPIO_ACTIVE_LOW>; | ||
linux,default-trigger = "ata2"; | ||
default-state = "off"; | ||
}; | ||
sata3-led { | ||
label = "helios4:green:ata3"; | ||
gpios = <&gpio1 20 GPIO_ACTIVE_LOW>; | ||
linux,default-trigger = "ata3"; | ||
default-state = "off"; | ||
}; | ||
sata4-led { | ||
label = "helios4:green:ata4"; | ||
gpios = <&gpio1 21 GPIO_ACTIVE_LOW>; | ||
linux,default-trigger = "ata4"; | ||
default-state = "off"; | ||
}; | ||
usb-led { | ||
label = "helios4:green:usb"; | ||
gpios = <&gpio1 22 GPIO_ACTIVE_LOW>; | ||
linux,default-trigger = "usb-host"; | ||
default-state = "off"; | ||
}; | ||
}; | ||
|
||
fan1: j10-pwm { | ||
compatible = "pwm-fan"; | ||
pwms = <&gpio1 9 40000>; /* Target freq:25 kHz */ | ||
}; | ||
|
||
fan2: j17-pwm { | ||
compatible = "pwm-fan"; | ||
pwms = <&gpio1 23 40000>; /* Target freq:25 kHz */ | ||
}; | ||
|
||
usb2_phy: usb2-phy { | ||
compatible = "usb-nop-xceiv"; | ||
vbus-regulator = <®_5p0v_usb>; | ||
}; | ||
|
||
usb3_phy: usb3-phy { | ||
compatible = "usb-nop-xceiv"; | ||
}; | ||
|
||
soc { | ||
internal-regs { | ||
i2c@11000 { | ||
clock-frequency = <400000>; | ||
pinctrl-0 = <&i2c0_pins>; | ||
pinctrl-names = "default"; | ||
status = "okay"; | ||
|
||
/* | ||
* PCA9655 GPIO expander, up to 1MHz clock. | ||
* 0-Board Revision bit 0 # | ||
* 1-Board Revision bit 1 # | ||
* 5-USB3 overcurrent | ||
* 6-USB3 power | ||
*/ | ||
expander0: gpio-expander@20 { | ||
/* | ||
* This is how it should be: | ||
* compatible = "onnn,pca9655", | ||
* "nxp,pca9555"; | ||
* but you can't do this because of | ||
* the way I2C works. | ||
*/ | ||
compatible = "nxp,pca9555"; | ||
gpio-controller; | ||
#gpio-cells = <2>; | ||
reg = <0x20>; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&pca0_pins>; | ||
interrupt-parent = <&gpio0>; | ||
interrupts = <23 IRQ_TYPE_EDGE_FALLING>; | ||
interrupt-controller; | ||
#interrupt-cells = <2>; | ||
|
||
board_rev_bit_0 { | ||
gpio-hog; | ||
gpios = <0 GPIO_ACTIVE_LOW>; | ||
input; | ||
line-name = "board-rev-0"; | ||
}; | ||
board_rev_bit_1 { | ||
gpio-hog; | ||
gpios = <1 GPIO_ACTIVE_LOW>; | ||
input; | ||
line-name = "board-rev-1"; | ||
}; | ||
usb3_ilimit { | ||
gpio-hog; | ||
gpios = <5 GPIO_ACTIVE_HIGH>; | ||
input; | ||
line-name = "usb-overcurrent-status"; | ||
}; | ||
}; | ||
|
||
temp_sensor: temp@4c { | ||
compatible = "ti,lm75"; | ||
reg = <0x4c>; | ||
vcc-supply = <®_3p3v>; | ||
}; | ||
}; | ||
|
||
i2c@11100 { | ||
/* | ||
* External I2C Bus for user peripheral | ||
*/ | ||
clock-frequency = <400000>; | ||
pinctrl-0 = <&helios_i2c1_pins>; | ||
pinctrl-names = "default"; | ||
status = "okay"; | ||
}; | ||
|
||
sata@a8000 { | ||
status = "okay"; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
sata0: sata-port@0 { | ||
reg = <0>; | ||
}; | ||
|
||
sata1: sata-port@1 { | ||
reg = <1>; | ||
}; | ||
}; | ||
|
||
sata@e0000 { | ||
status = "okay"; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
sata2: sata-port@0 { | ||
reg = <0>; | ||
}; | ||
|
||
sata3: sata-port@1 { | ||
reg = <1>; | ||
}; | ||
}; | ||
|
||
spi@10680 { | ||
pinctrl-0 = <&spi1_pins | ||
µsom_spi1_cs_pins>; | ||
pinctrl-names = "default"; | ||
status = "okay"; | ||
}; | ||
|
||
sdhci@d8000 { | ||
bus-width = <4>; | ||
cd-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>; | ||
no-1-8-v; | ||
pinctrl-0 = <&helios_sdhci_pins | ||
&helios_sdhci_cd_pins>; | ||
pinctrl-names = "default"; | ||
status = "okay"; | ||
vmmc = <®_3p3v>; | ||
wp-inverted; | ||
}; | ||
|
||
usb@58000 { | ||
usb-phy = <&usb2_phy>; | ||
status = "okay"; | ||
}; | ||
|
||
usb3@f0000 { | ||
status = "okay"; | ||
}; | ||
|
||
usb3@f8000 { | ||
status = "okay"; | ||
}; | ||
|
||
pinctrl@18000 { | ||
pca0_pins: pca0-pins { | ||
marvell,pins = "mpp23"; | ||
marvell,function = "gpio"; | ||
}; | ||
microsom_phy0_int_pins: microsom-phy0-int-pins { | ||
marvell,pins = "mpp18"; | ||
marvell,function = "gpio"; | ||
}; | ||
helios_i2c1_pins: i2c1-pins { | ||
marvell,pins = "mpp26", "mpp27"; | ||
marvell,function = "i2c1"; | ||
}; | ||
helios_sdhci_cd_pins: helios-sdhci-cd-pins { | ||
marvell,pins = "mpp20"; | ||
marvell,function = "gpio"; | ||
}; | ||
helios_sdhci_pins: helios-sdhci-pins { | ||
marvell,pins = "mpp21", "mpp28", | ||
"mpp37", "mpp38", | ||
"mpp39", "mpp40"; | ||
marvell,function = "sd0"; | ||
}; | ||
helios_led_pins: helios-led-pins { | ||
marvell,pins = "mpp24", "mpp25", | ||
"mpp49", "mpp50", | ||
"mpp52", "mpp53", | ||
"mpp54"; | ||
marvell,function = "gpio"; | ||
}; | ||
helios_fan_pins: helios-fan-pins { | ||
marvell,pins = "mpp41", "mpp43", | ||
"mpp48", "mpp55"; | ||
marvell,function = "gpio"; | ||
}; | ||
microsom_spi1_cs_pins: spi1-cs-pins { | ||
marvell,pins = "mpp59"; | ||
marvell,function = "spi1"; | ||
}; | ||
}; | ||
}; | ||
}; | ||
}; |