mirror of
https://github.com/Fishwaldo/build.git
synced 2025-07-23 13:29:33 +00:00
* helios4: next branch use u-boot 2018
use new u-boot based on upstream 2018
Signed-off-by: Aditya Prayoga <aditya@kobol.io>
* helios4: Tweak fancontrol configuration
Adjusted MINSTART and MINSTOP to suit both old and new fan.
Adjusted TEMP threshold so fan would stop or run in minimal speed when
the system idle.
Fixed wrong MINPWM value.
URL:https://wiki.kobol.io/pwm/#configuration-file
Signed-off-by: Aditya Prayoga <aditya@kobol.io>
* kernel: mvebu-next: use upstream helios4 dts
Helios4 device tree has been merged on upstream since 4.19.
Rework the patch to produce same device tree.
URL:https://patchwork.kernel.org/patch/10449393/
Signed-off-by: Aditya Prayoga <aditya@kobol.io>
* Helios4: Use boot-mvebu-next bootscript
Use boot-mvebu-next.cmd that make use of upstream's Generic Distro
Configuration.
Since loadaddr and fdt_addr varibales are no longer required, remove the
patch.
Signed-off-by: Aditya Prayoga <aditya@kobol.io>
* Helios4: mvebu-next: Add workaround for SPI and SATA concurrent access issue
Concurrent access on SPI NOR and SATA drives can lead to unstable SATA.
Therefore as workaround, disable SATA controller when SPI flash access
is needed and make it as user configurable item in armbianEnv.txt
This workaround might applies to Clearfog too.
Refer to
Commit 59af84c07c
("Helios4: Add SPI bootloader install feature
(#1126)")
Signed-off-by: Aditya Prayoga <aditya@kobol.io>
* Bootscripts: Fixed boot-mvebu-next.cmd
The environment setting (armbianEnv.txt) is loaded to RAM located on
${load_addr} but the env import use wrong address (${pxefile_addr_r}).
bootargs still expect ${boot_interface} which carried over from boot-
marvell.cmd. Upstream's distro configuration use ${devtype} instead.
Signed-off-by: Aditya Prayoga <aditya@kobol.io>
332 lines
7.5 KiB
Diff
332 lines
7.5 KiB
Diff
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
|
|
index 4b17f35..c6b6038 100644
|
|
--- a/arch/arm/boot/dts/Makefile
|
|
+++ b/arch/arm/boot/dts/Makefile
|
|
@@ -1020,6 +1020,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
|
|
armada-388-clearfog.dtb \
|
|
armada-388-clearfog-base.dtb \
|
|
armada-388-clearfog-pro.dtb \
|
|
+ armada-388-helios4.dtb \
|
|
armada-388-db.dtb \
|
|
armada-388-gp.dtb \
|
|
armada-388-rd.dtb
|
|
|
|
diff --git a/arch/arm/boot/dts/armada-388-helios4.dts b/arch/arm/boot/dts/armada-388-helios4.dts
|
|
new file mode 100644
|
|
index 0000000..705adfa
|
|
--- /dev/null
|
|
+++ b/arch/arm/boot/dts/armada-388-helios4.dts
|
|
@@ -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";
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+};
|