162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0 OR MIT) 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Device Tree file for Helios4 462306a36Sopenharmony_ci * based on SolidRun Clearfog revision A1 rev 2.0 (88F6828) 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Copyright (C) 2017 Aditya Prayoga <aditya@kobol.io> 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci/dts-v1/; 1162306a36Sopenharmony_ci#include "armada-388.dtsi" 1262306a36Sopenharmony_ci#include "armada-38x-solidrun-microsom.dtsi" 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci/ { 1562306a36Sopenharmony_ci model = "Helios4"; 1662306a36Sopenharmony_ci compatible = "kobol,helios4", "marvell,armada388", 1762306a36Sopenharmony_ci "marvell,armada385", "marvell,armada380"; 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci memory { 2062306a36Sopenharmony_ci device_type = "memory"; 2162306a36Sopenharmony_ci reg = <0x00000000 0x80000000>; /* 2 GB */ 2262306a36Sopenharmony_ci }; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci aliases { 2562306a36Sopenharmony_ci /* So that mvebu u-boot can update the MAC addresses */ 2662306a36Sopenharmony_ci ethernet1 = ð0; 2762306a36Sopenharmony_ci }; 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci chosen { 3062306a36Sopenharmony_ci stdout-path = "serial0:115200n8"; 3162306a36Sopenharmony_ci }; 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci reg_12v: regulator-12v { 3462306a36Sopenharmony_ci compatible = "regulator-fixed"; 3562306a36Sopenharmony_ci regulator-name = "power_brick_12V"; 3662306a36Sopenharmony_ci regulator-min-microvolt = <12000000>; 3762306a36Sopenharmony_ci regulator-max-microvolt = <12000000>; 3862306a36Sopenharmony_ci regulator-always-on; 3962306a36Sopenharmony_ci }; 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci reg_3p3v: regulator-3p3v { 4262306a36Sopenharmony_ci compatible = "regulator-fixed"; 4362306a36Sopenharmony_ci regulator-name = "3P3V"; 4462306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 4562306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 4662306a36Sopenharmony_ci regulator-always-on; 4762306a36Sopenharmony_ci vin-supply = <®_12v>; 4862306a36Sopenharmony_ci }; 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci reg_5p0v_hdd: regulator-5v-hdd { 5162306a36Sopenharmony_ci compatible = "regulator-fixed"; 5262306a36Sopenharmony_ci regulator-name = "5V_HDD"; 5362306a36Sopenharmony_ci regulator-min-microvolt = <5000000>; 5462306a36Sopenharmony_ci regulator-max-microvolt = <5000000>; 5562306a36Sopenharmony_ci regulator-always-on; 5662306a36Sopenharmony_ci vin-supply = <®_12v>; 5762306a36Sopenharmony_ci }; 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci reg_5p0v_usb: regulator-5v-usb { 6062306a36Sopenharmony_ci compatible = "regulator-fixed"; 6162306a36Sopenharmony_ci regulator-name = "USB-PWR"; 6262306a36Sopenharmony_ci regulator-min-microvolt = <5000000>; 6362306a36Sopenharmony_ci regulator-max-microvolt = <5000000>; 6462306a36Sopenharmony_ci regulator-boot-on; 6562306a36Sopenharmony_ci regulator-always-on; 6662306a36Sopenharmony_ci enable-active-high; 6762306a36Sopenharmony_ci gpio = <&expander0 6 GPIO_ACTIVE_HIGH>; 6862306a36Sopenharmony_ci vin-supply = <®_12v>; 6962306a36Sopenharmony_ci }; 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci system-leds { 7262306a36Sopenharmony_ci compatible = "gpio-leds"; 7362306a36Sopenharmony_ci pinctrl-names = "default"; 7462306a36Sopenharmony_ci pinctrl-0 = <&helios_system_led_pins>; 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci status-led { 7762306a36Sopenharmony_ci label = "helios4:green:status"; 7862306a36Sopenharmony_ci gpios = <&gpio0 24 GPIO_ACTIVE_LOW>; 7962306a36Sopenharmony_ci linux,default-trigger = "heartbeat"; 8062306a36Sopenharmony_ci default-state = "on"; 8162306a36Sopenharmony_ci }; 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ci fault-led { 8462306a36Sopenharmony_ci label = "helios4:red:fault"; 8562306a36Sopenharmony_ci gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; 8662306a36Sopenharmony_ci default-state = "keep"; 8762306a36Sopenharmony_ci }; 8862306a36Sopenharmony_ci }; 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci io-leds { 9162306a36Sopenharmony_ci compatible = "gpio-leds"; 9262306a36Sopenharmony_ci pinctrl-names = "default"; 9362306a36Sopenharmony_ci pinctrl-0 = <&helios_io_led_pins>; 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci sata1-led { 9662306a36Sopenharmony_ci label = "helios4:green:ata1"; 9762306a36Sopenharmony_ci gpios = <&gpio1 17 GPIO_ACTIVE_LOW>; 9862306a36Sopenharmony_ci linux,default-trigger = "ata1"; 9962306a36Sopenharmony_ci default-state = "off"; 10062306a36Sopenharmony_ci }; 10162306a36Sopenharmony_ci sata2-led { 10262306a36Sopenharmony_ci label = "helios4:green:ata2"; 10362306a36Sopenharmony_ci gpios = <&gpio1 18 GPIO_ACTIVE_LOW>; 10462306a36Sopenharmony_ci linux,default-trigger = "ata2"; 10562306a36Sopenharmony_ci default-state = "off"; 10662306a36Sopenharmony_ci }; 10762306a36Sopenharmony_ci sata3-led { 10862306a36Sopenharmony_ci label = "helios4:green:ata3"; 10962306a36Sopenharmony_ci gpios = <&gpio1 20 GPIO_ACTIVE_LOW>; 11062306a36Sopenharmony_ci linux,default-trigger = "ata3"; 11162306a36Sopenharmony_ci default-state = "off"; 11262306a36Sopenharmony_ci }; 11362306a36Sopenharmony_ci sata4-led { 11462306a36Sopenharmony_ci label = "helios4:green:ata4"; 11562306a36Sopenharmony_ci gpios = <&gpio1 21 GPIO_ACTIVE_LOW>; 11662306a36Sopenharmony_ci linux,default-trigger = "ata4"; 11762306a36Sopenharmony_ci default-state = "off"; 11862306a36Sopenharmony_ci }; 11962306a36Sopenharmony_ci usb-led { 12062306a36Sopenharmony_ci label = "helios4:green:usb"; 12162306a36Sopenharmony_ci gpios = <&gpio1 22 GPIO_ACTIVE_LOW>; 12262306a36Sopenharmony_ci linux,default-trigger = "usb-host"; 12362306a36Sopenharmony_ci default-state = "off"; 12462306a36Sopenharmony_ci }; 12562306a36Sopenharmony_ci }; 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ci fan1: j10-pwm { 12862306a36Sopenharmony_ci compatible = "pwm-fan"; 12962306a36Sopenharmony_ci pwms = <&gpio1 9 40000>; /* Target freq:25 kHz */ 13062306a36Sopenharmony_ci pinctrl-names = "default"; 13162306a36Sopenharmony_ci pinctrl-0 = <&helios_fan1_pins>; 13262306a36Sopenharmony_ci }; 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ci fan2: j17-pwm { 13562306a36Sopenharmony_ci compatible = "pwm-fan"; 13662306a36Sopenharmony_ci pwms = <&gpio1 23 40000>; /* Target freq:25 kHz */ 13762306a36Sopenharmony_ci pinctrl-names = "default"; 13862306a36Sopenharmony_ci pinctrl-0 = <&helios_fan2_pins>; 13962306a36Sopenharmony_ci }; 14062306a36Sopenharmony_ci 14162306a36Sopenharmony_ci usb2_phy: usb2-phy { 14262306a36Sopenharmony_ci compatible = "usb-nop-xceiv"; 14362306a36Sopenharmony_ci vbus-regulator = <®_5p0v_usb>; 14462306a36Sopenharmony_ci }; 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci usb3_phy: usb3-phy { 14762306a36Sopenharmony_ci compatible = "usb-nop-xceiv"; 14862306a36Sopenharmony_ci }; 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci soc { 15162306a36Sopenharmony_ci internal-regs { 15262306a36Sopenharmony_ci i2c@11000 { 15362306a36Sopenharmony_ci /* 15462306a36Sopenharmony_ci * PCA9655 GPIO expander, up to 1MHz clock. 15562306a36Sopenharmony_ci * 0-Board Revision bit 0 # 15662306a36Sopenharmony_ci * 1-Board Revision bit 1 # 15762306a36Sopenharmony_ci * 5-USB3 overcurrent 15862306a36Sopenharmony_ci * 6-USB3 power 15962306a36Sopenharmony_ci */ 16062306a36Sopenharmony_ci expander0: gpio-expander@20 { 16162306a36Sopenharmony_ci /* 16262306a36Sopenharmony_ci * This is how it should be: 16362306a36Sopenharmony_ci * compatible = "onnn,pca9655", 16462306a36Sopenharmony_ci * "nxp,pca9555"; 16562306a36Sopenharmony_ci * but you can't do this because of 16662306a36Sopenharmony_ci * the way I2C works. 16762306a36Sopenharmony_ci */ 16862306a36Sopenharmony_ci compatible = "nxp,pca9555"; 16962306a36Sopenharmony_ci gpio-controller; 17062306a36Sopenharmony_ci #gpio-cells = <2>; 17162306a36Sopenharmony_ci reg = <0x20>; 17262306a36Sopenharmony_ci pinctrl-names = "default"; 17362306a36Sopenharmony_ci pinctrl-0 = <&pca0_pins>; 17462306a36Sopenharmony_ci interrupt-parent = <&gpio0>; 17562306a36Sopenharmony_ci interrupts = <23 IRQ_TYPE_EDGE_FALLING>; 17662306a36Sopenharmony_ci interrupt-controller; 17762306a36Sopenharmony_ci #interrupt-cells = <2>; 17862306a36Sopenharmony_ci 17962306a36Sopenharmony_ci board-rev-bit-0-hog { 18062306a36Sopenharmony_ci gpio-hog; 18162306a36Sopenharmony_ci gpios = <0 GPIO_ACTIVE_LOW>; 18262306a36Sopenharmony_ci input; 18362306a36Sopenharmony_ci line-name = "board-rev-0"; 18462306a36Sopenharmony_ci }; 18562306a36Sopenharmony_ci board-rev-bit-1-hog { 18662306a36Sopenharmony_ci gpio-hog; 18762306a36Sopenharmony_ci gpios = <1 GPIO_ACTIVE_LOW>; 18862306a36Sopenharmony_ci input; 18962306a36Sopenharmony_ci line-name = "board-rev-1"; 19062306a36Sopenharmony_ci }; 19162306a36Sopenharmony_ci usb3-ilimit-hog { 19262306a36Sopenharmony_ci gpio-hog; 19362306a36Sopenharmony_ci gpios = <5 GPIO_ACTIVE_HIGH>; 19462306a36Sopenharmony_ci input; 19562306a36Sopenharmony_ci line-name = "usb-overcurrent-status"; 19662306a36Sopenharmony_ci }; 19762306a36Sopenharmony_ci }; 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ci temp_sensor: temp@4c { 20062306a36Sopenharmony_ci compatible = "ti,lm75"; 20162306a36Sopenharmony_ci reg = <0x4c>; 20262306a36Sopenharmony_ci vcc-supply = <®_3p3v>; 20362306a36Sopenharmony_ci }; 20462306a36Sopenharmony_ci }; 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ci i2c@11100 { 20762306a36Sopenharmony_ci /* 20862306a36Sopenharmony_ci * External I2C Bus for user peripheral 20962306a36Sopenharmony_ci */ 21062306a36Sopenharmony_ci clock-frequency = <400000>; 21162306a36Sopenharmony_ci pinctrl-0 = <&helios_i2c1_pins>; 21262306a36Sopenharmony_ci pinctrl-names = "default"; 21362306a36Sopenharmony_ci status = "okay"; 21462306a36Sopenharmony_ci }; 21562306a36Sopenharmony_ci 21662306a36Sopenharmony_ci sata@a8000 { 21762306a36Sopenharmony_ci status = "okay"; 21862306a36Sopenharmony_ci #address-cells = <1>; 21962306a36Sopenharmony_ci #size-cells = <0>; 22062306a36Sopenharmony_ci 22162306a36Sopenharmony_ci sata0: sata-port@0 { 22262306a36Sopenharmony_ci reg = <0>; 22362306a36Sopenharmony_ci }; 22462306a36Sopenharmony_ci 22562306a36Sopenharmony_ci sata1: sata-port@1 { 22662306a36Sopenharmony_ci reg = <1>; 22762306a36Sopenharmony_ci }; 22862306a36Sopenharmony_ci }; 22962306a36Sopenharmony_ci 23062306a36Sopenharmony_ci sata@e0000 { 23162306a36Sopenharmony_ci status = "okay"; 23262306a36Sopenharmony_ci #address-cells = <1>; 23362306a36Sopenharmony_ci #size-cells = <0>; 23462306a36Sopenharmony_ci 23562306a36Sopenharmony_ci sata2: sata-port@0 { 23662306a36Sopenharmony_ci reg = <0>; 23762306a36Sopenharmony_ci }; 23862306a36Sopenharmony_ci 23962306a36Sopenharmony_ci sata3: sata-port@1 { 24062306a36Sopenharmony_ci reg = <1>; 24162306a36Sopenharmony_ci }; 24262306a36Sopenharmony_ci }; 24362306a36Sopenharmony_ci 24462306a36Sopenharmony_ci spi@10680 { 24562306a36Sopenharmony_ci pinctrl-0 = <&spi1_pins 24662306a36Sopenharmony_ci µsom_spi1_cs_pins>; 24762306a36Sopenharmony_ci pinctrl-names = "default"; 24862306a36Sopenharmony_ci status = "okay"; 24962306a36Sopenharmony_ci }; 25062306a36Sopenharmony_ci 25162306a36Sopenharmony_ci sdhci@d8000 { 25262306a36Sopenharmony_ci bus-width = <4>; 25362306a36Sopenharmony_ci cd-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>; 25462306a36Sopenharmony_ci no-1-8-v; 25562306a36Sopenharmony_ci pinctrl-0 = <&helios_sdhci_pins 25662306a36Sopenharmony_ci &helios_sdhci_cd_pins>; 25762306a36Sopenharmony_ci pinctrl-names = "default"; 25862306a36Sopenharmony_ci status = "okay"; 25962306a36Sopenharmony_ci vmmc = <®_3p3v>; 26062306a36Sopenharmony_ci wp-inverted; 26162306a36Sopenharmony_ci }; 26262306a36Sopenharmony_ci 26362306a36Sopenharmony_ci usb@58000 { 26462306a36Sopenharmony_ci usb-phy = <&usb2_phy>; 26562306a36Sopenharmony_ci status = "okay"; 26662306a36Sopenharmony_ci }; 26762306a36Sopenharmony_ci 26862306a36Sopenharmony_ci usb3@f0000 { 26962306a36Sopenharmony_ci status = "okay"; 27062306a36Sopenharmony_ci }; 27162306a36Sopenharmony_ci 27262306a36Sopenharmony_ci usb3@f8000 { 27362306a36Sopenharmony_ci status = "okay"; 27462306a36Sopenharmony_ci }; 27562306a36Sopenharmony_ci 27662306a36Sopenharmony_ci pinctrl@18000 { 27762306a36Sopenharmony_ci pca0_pins: pca0-pins { 27862306a36Sopenharmony_ci marvell,pins = "mpp23"; 27962306a36Sopenharmony_ci marvell,function = "gpio"; 28062306a36Sopenharmony_ci }; 28162306a36Sopenharmony_ci microsom_phy0_int_pins: microsom-phy0-int-pins { 28262306a36Sopenharmony_ci marvell,pins = "mpp18"; 28362306a36Sopenharmony_ci marvell,function = "gpio"; 28462306a36Sopenharmony_ci }; 28562306a36Sopenharmony_ci helios_i2c1_pins: i2c1-pins { 28662306a36Sopenharmony_ci marvell,pins = "mpp26", "mpp27"; 28762306a36Sopenharmony_ci marvell,function = "i2c1"; 28862306a36Sopenharmony_ci }; 28962306a36Sopenharmony_ci helios_sdhci_cd_pins: helios-sdhci-cd-pins { 29062306a36Sopenharmony_ci marvell,pins = "mpp20"; 29162306a36Sopenharmony_ci marvell,function = "gpio"; 29262306a36Sopenharmony_ci }; 29362306a36Sopenharmony_ci helios_sdhci_pins: helios-sdhci-pins { 29462306a36Sopenharmony_ci marvell,pins = "mpp21", "mpp28", 29562306a36Sopenharmony_ci "mpp37", "mpp38", 29662306a36Sopenharmony_ci "mpp39", "mpp40"; 29762306a36Sopenharmony_ci marvell,function = "sd0"; 29862306a36Sopenharmony_ci }; 29962306a36Sopenharmony_ci helios_system_led_pins: helios-system-led-pins { 30062306a36Sopenharmony_ci marvell,pins = "mpp24", "mpp25"; 30162306a36Sopenharmony_ci marvell,function = "gpio"; 30262306a36Sopenharmony_ci }; 30362306a36Sopenharmony_ci helios_io_led_pins: helios-io-led-pins { 30462306a36Sopenharmony_ci marvell,pins = "mpp49", "mpp50", 30562306a36Sopenharmony_ci "mpp52", "mpp53", 30662306a36Sopenharmony_ci "mpp54"; 30762306a36Sopenharmony_ci marvell,function = "gpio"; 30862306a36Sopenharmony_ci }; 30962306a36Sopenharmony_ci helios_fan1_pins: helios_fan1_pins { 31062306a36Sopenharmony_ci marvell,pins = "mpp41", "mpp43"; 31162306a36Sopenharmony_ci marvell,function = "gpio"; 31262306a36Sopenharmony_ci }; 31362306a36Sopenharmony_ci helios_fan2_pins: helios_fan2_pins { 31462306a36Sopenharmony_ci marvell,pins = "mpp48", "mpp55"; 31562306a36Sopenharmony_ci marvell,function = "gpio"; 31662306a36Sopenharmony_ci }; 31762306a36Sopenharmony_ci microsom_spi1_cs_pins: spi1-cs-pins { 31862306a36Sopenharmony_ci marvell,pins = "mpp59"; 31962306a36Sopenharmony_ci marvell,function = "spi1"; 32062306a36Sopenharmony_ci }; 32162306a36Sopenharmony_ci }; 32262306a36Sopenharmony_ci }; 32362306a36Sopenharmony_ci }; 32462306a36Sopenharmony_ci}; 325