| // 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"; |
| }; |
| }; |
| }; |
| }; |
| }; |