As of 6.6, all upstream DTSes are moved to their respective vendor subdir.
OpenWrt already followed this practice for ARM64, but not yet for 32 bit
ARM (Armada 37x/38x).
Signed-off-by: Stijn Segers <foss@volatilesystems.org>
+++ /dev/null
-// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
-/*
- * Device Tree file for Buffalo LinkStation LS220DE
- *
- * Copyright (C) 2023 Daniel González Cabanelas <dgcbueu@gmail.com>
- */
-
-/dts-v1/;
-
-#include "armada-370.dtsi"
-#include "mvebu-linkstation-fan.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/leds/common.h>
-#include <dt-bindings/thermal/thermal.h>
-
-/ {
- model = "Buffalo LinkStation LS220DE";
- compatible = "buffalo,ls220de", "marvell,armada370", "marvell,armada-370-xp";
-
- aliases {
- led-boot = &led_boot;
- led-failsafe = &led_failsafe;
- led-running = &led_power;
- led-upgrade = &led_upgrade;
- };
-
- chosen {
- bootargs = "earlycon";
- stdout-path = "serial0:115200n8";
- append-rootblock = "nullparameter="; /* override the bootloader args */
- };
-
- memory {
- device_type = "memory";
- reg = <0x00000000 0x10000000>; /* 256 MB */
- };
-
- soc {
- ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
- MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
- MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;
- };
-
- system_fan: gpio_fan {
- gpios = <&gpio0 13 GPIO_ACTIVE_HIGH
- &gpio0 14 GPIO_ACTIVE_HIGH>;
- alarm-gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
-
- #cooling-cells = <2>;
- };
-
- thermal-zones {
- hdd-thermal {
- polling-delay = <20000>;
- polling-delay-passive = <2000>;
-
- thermal-sensors = <&hdd0_temp>; /* only one drivetemp sensor is supported */
-
- trips {
- hdd_alert1: trip1 {
- temperature = <34000>;
- hysteresis = <2000>;
- type = "active";
- };
- hdd_alert2: trip2 {
- temperature = <40000>;
- hysteresis = <2000>;
- type = "active";
- };
- hdd_alert3: trip3 {
- temperature = <45000>;
- hysteresis = <2000>;
- type = "passive";
- };
- hdd_hot {
- temperature = <50000>;
- hysteresis = <2000>;
- type = "hot";
- };
- hdd_crit {
- temperature = <60000>;
- hysteresis = <2000>;
- type = "critical";
- };
- };
-
- cooling-maps {
- map1 {
- trip = <&hdd_alert1>;
- cooling-device = <&system_fan THERMAL_NO_LIMIT 1>;
- };
- map2 {
- trip = <&hdd_alert2>;
- cooling-device = <&system_fan 2 2>;
- };
- map3 {
- trip = <&hdd_alert3>;
- cooling-device = <&system_fan 3 THERMAL_NO_LIMIT>;
- };
- };
- };
- };
-
- gpio_keys {
- compatible = "gpio-keys";
- pinctrl-0 = <&pmx_buttons>;
- pinctrl-names = "default";
-
- power {
- label = "Power Switch";
- linux,code = <KEY_POWER>;
- linux,input-type = <EV_SW>;
- gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
- };
-
- function {
- label = "Function Button";
- linux,code = <KEY_CONFIG>;
- gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
- };
- };
-
- gpio_leds {
- compatible = "gpio-leds";
- pinctrl-names = "default";
- pinctrl-0 = <&pmx_leds1 &pmx_leds2>;
-
- indicator_red {
- function = LED_FUNCTION_INDICATOR;
- color = <LED_COLOR_ID_RED>;
- gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
- panic-indicator;
- };
-
- led_power: power_white {
- function = LED_FUNCTION_POWER;
- color = <LED_COLOR_ID_WHITE>;
- gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
- default-state = "on";
- };
-
- led_failsafe: power_red {
- function = LED_FUNCTION_POWER;
- color = <LED_COLOR_ID_RED>;
- gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
- };
-
- led_upgrade: power_orange {
- function = LED_FUNCTION_POWER;
- color = <LED_COLOR_ID_AMBER>;
- gpios = <&gpio1 25 GPIO_ACTIVE_HIGH>;
- };
-
- led_boot: indicator_white {
- function = LED_FUNCTION_INDICATOR;
- color = <LED_COLOR_ID_WHITE>;
- gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
- };
-
- hdd1_red {
- function = LED_FUNCTION_DISK;
- color = <LED_COLOR_ID_RED>;
- gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
- linux,default-trigger = "ata1";
- function-enumerator = <1>;
- };
-
- hdd2_red {
- function = LED_FUNCTION_DISK;
- color = <LED_COLOR_ID_RED>;
- gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
- linux,default-trigger = "ata2";
- function-enumerator = <2>;
- };
- };
-
- regulators {
- compatible = "simple-bus";
- #address-cells = <1>;
- #size-cells = <0>;
- pinctrl-0 = <&pmx_power_hdd1 &pmx_power_hdd2>;
- pinctrl-names = "default";
-
- sata1_power: regulator@1 {
- compatible = "regulator-fixed";
- reg = <1>;
- regulator-name = "HDD1";
- regulator-min-microvolt = <12000000>;
- regulator-max-microvolt = <12000000>;
- startup-delay-us = <2000000>;
- enable-active-high;
- regulator-always-on;
- regulator-boot-on;
- gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
- };
-
- sata2_power: regulator@2 {
- compatible = "regulator-fixed";
- reg = <2>;
- regulator-name = "HDD2";
- regulator-min-microvolt = <12000000>;
- regulator-max-microvolt = <12000000>;
- startup-delay-us = <4000000>;
- enable-active-high;
- regulator-always-on;
- regulator-boot-on;
- gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>;
- };
- };
-};
-
-&coherencyfab {
- broken-idle;
-};
-
-ð1 {
- pinctrl-0 = <&ge1_rgmii_pins>;
- pinctrl-names = "default";
- status = "okay";
- phy-handle = <ðphy0>;
- phy-connection-type = "rgmii-id";
-};
-
-&mdio {
- pinctrl-0 = <&mdio_pins>;
- pinctrl-names = "default";
-
- ethphy0: ethernet-phy@0 { /* Marvell 88E1318 */
- reg = <0>;
- marvell,reg-init = <0x3 0x10 0xf000 0x091A>, /* LED function */
- <0x3 0x11 0x0000 0x4401>, /* LED polarity */
- <0x3 0x12 0x0000 0x4905>; /* LED timer */
- #thermal-sensor-cells = <0>;
- };
-};
-
-&nand_controller {
- status = "okay";
-
- nand@0 {
- reg = <0>;
- label = "pxa3xx_nand-0";
- nand-rb = <0>;
- marvell,nand-keep-config;
- nand-on-flash-bbt;
- nand-ecc-strength = <4>;
- nand-ecc-step-size = <512>;
-
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@0 {
- label = "ubi_kernel";
- reg = <0x00000000 0x02000000>; /* 32 MiB */
- };
-
- partition@2000000 {
- label = "ubi";
- reg = <0x02000000 0x1df00000>; /* 479 MiB */
- };
- };
- };
-};
-
-&sata {
- nr-ports = <2>;
- status = "okay";
- #address-cells = <1>;
- #size-cells = <0>;
-
- hdd0_temp: sata-port@0 {
- reg = <0>;
- #thermal-sensor-cells = <0>;
- };
-
- hdd1_temp: sata-port@1 {
- reg = <1>;
- #thermal-sensor-cells = <0>;
- };
-};
-
-&spi0 {
- status = "okay";
- pinctrl-0 = <&spi0_pins2>;
- pinctrl-names = "default";
-
- spi-flash@0 {
- compatible = "mxicy,mx25l8005", "jedec,spi-nor";
- reg = <0>;
- spi-max-frequency = <50000000>;
-
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@0 {
- reg = <0x00000 0xf0000>; /* 960 KiB*/
- label = "u-boot";
- read-only;
- };
- partition@f0000 {
- reg = <0xf0000 0x10000>; /* 64 KiB */
- label = "u-boot-env";
- };
- };
- };
-};
-
-&pmsu {
- pinctrl-0 = <&pmx_power_cpu>;
- pinctrl-names = "default";
-};
-
-&uart0 {
- status = "okay";
-};
-
-&usb0 {
- status = "okay";
-};
-
-&pinctrl {
- pmx_power_hdd2: pmx-power-hdd2 {
- marvell,pins = "mpp2";
- marvell,function = "gpio";
- };
-
- pmx_power_cpu: pmx-power-cpu {
- marvell,pins = "mpp4";
- marvell,function = "vdd";
- };
-
- pmx_power_hdd1: pmx-power-hdd1 {
- marvell,pins = "mpp8";
- marvell,function = "gpio";
- };
-
- pmx_fan_lock: pmx-fan-lock {
- marvell,pins = "mpp10";
- marvell,function = "gpio";
- };
-
- pmx_hdd_present: pmx-hdd-present {
- marvell,pins = "mpp11", "mpp12";
- marvell,function = "gpio";
- };
-
- pmx_fan_high: pmx-fan-high {
- marvell,pins = "mpp13";
- marvell,function = "gpio";
- };
-
- pmx_fan_low: pmx-fan-low {
- marvell,pins = "mpp14";
- marvell,function = "gpio";
- };
-
- pmx_buttons: pmx-buttons {
- marvell,pins = "mpp15", "mpp16";
- marvell,function = "gpio";
- };
-
- pmx_leds1: pmx-leds {
- marvell,pins = "mpp7", "mpp54", "mpp59", "mpp61";
- marvell,function = "gpo";
- };
-
- pmx_leds2: pmx-leds {
- marvell,pins = "mpp55", "mpp57", "mpp62";
- marvell,function = "gpio";
- };
-};
+++ /dev/null
-// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
-/*
- * Device Tree file for Buffalo LinkStation LS421DE
- *
- * Copyright (C) 2020 Daniel González Cabanelas <dgcbueu@gmail.com>
- */
-
-/dts-v1/;
-
-#include "armada-370.dtsi"
-#include "mvebu-linkstation-fan.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/thermal/thermal.h>
-
-/ {
- model = "Buffalo LinkStation LS421DE";
- compatible = "buffalo,ls421de", "marvell,armada370", "marvell,armada-370-xp";
-
- aliases {
- led-boot = &led_boot;
- led-failsafe = &led_failsafe;
- led-running = &led_power;
- led-upgrade = &led_upgrade;
- };
-
- chosen {
- bootargs = "earlycon";
- stdout-path = "serial0:115200n8";
- append-rootblock = "nullparameter="; /* override the bootloader args */
- };
-
- memory {
- device_type = "memory";
- reg = <0x00000000 0x20000000>; /* 512 MB */
- };
-
- soc {
- ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
- MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
- MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;
- };
-
- system_fan: gpio_fan {
- gpios = <&gpio0 13 GPIO_ACTIVE_HIGH
- &gpio0 14 GPIO_ACTIVE_HIGH>;
- alarm-gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
-
- #cooling-cells = <2>;
- };
-
- thermal-zones {
- hdd-thermal {
- polling-delay = <20000>;
- polling-delay-passive = <2000>;
-
- thermal-sensors = <&hdd0_temp>; /* only one drivetemp sensor is supported */
-
- trips {
- hdd_alert1: trip1 {
- temperature = <36000>;
- hysteresis = <2000>;
- type = "active";
- };
- hdd_alert2: trip2 {
- temperature = <44000>;
- hysteresis = <2000>;
- type = "active";
- };
- hdd_alert3: trip3 {
- temperature = <52000>;
- hysteresis = <2000>;
- type = "passive";
- };
- hdd_crit: trip4 {
- temperature = <60000>;
- hysteresis = <2000>;
- type = "critical";
- };
- };
-
- cooling-maps {
- map1 {
- trip = <&hdd_alert1>;
- cooling-device = <&system_fan THERMAL_NO_LIMIT 1>;
- };
- map2 {
- trip = <&hdd_alert2>;
- cooling-device = <&system_fan 2 2>;
- };
- map3 {
- trip = <&hdd_alert3>;
- cooling-device = <&system_fan 3 THERMAL_NO_LIMIT>;
- };
- };
- };
-
- ethphy-thermal {
- polling-delay = <20000>;
- polling-delay-passive = <2000>;
-
- thermal-sensors = <ðphy0>;
-
- trips {
- ethphy_alert1: trip1 {
- temperature = <65000>;
- hysteresis = <4000>;
- type = "passive";
- };
-
- ethphy_crit: trip2 {
- temperature = <100000>;
- hysteresis = <2000>;
- type = "critical";
- };
- };
-
- cooling-maps {
- map1 {
- trip = <ðphy_alert1>;
- cooling-device = <&system_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
- };
-
- };
- };
- };
-
- gpio_keys {
- compatible = "gpio-keys";
- pinctrl-0 = <&pmx_buttons>;
- pinctrl-names = "default";
-
- power {
- label = "Power Switch";
- linux,code = <KEY_POWER>;
- linux,input-type = <EV_SW>;
- gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
- };
-
- function {
- label = "Function Button";
- linux,code = <KEY_CONFIG>;
- gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
- };
- };
-
- gpio_leds {
- compatible = "gpio-leds";
- pinctrl-names = "default";
- pinctrl-0 = <&pmx_leds1 &pmx_leds2>;
-
- system_red {
- label = "ls421de:red:system";
- gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
- };
-
- led_power: power_white {
- label = "ls421de:white:power";
- gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
- default-state = "on";
- };
-
- led_failsafe: power_red {
- label = "ls421de:red:power";
- gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
- };
-
- led_upgrade: power_orange {
- label = "ls421de:orange:power";
- gpios = <&gpio1 25 GPIO_ACTIVE_HIGH>;
- };
-
- led_boot: system_white {
- label = "ls421de:white:system";
- gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
- };
-
- hdd1_red {
- label = "ls421de:red:hdd1";
- gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
- linux,default-trigger = "ata1";
- };
-
- hdd2_red {
- label = "ls421de:red:hdd2";
- gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
- linux,default-trigger = "ata2";
- };
- };
-
- regulators {
- compatible = "simple-bus";
- #address-cells = <1>;
- #size-cells = <0>;
- pinctrl-0 = <&pmx_power_usb &pmx_power_hdd1 &pmx_power_hdd2>;
- pinctrl-names = "default";
-
- usb_power: regulator@0 {
- compatible = "regulator-fixed";
- reg = <0>;
- regulator-name = "USB";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- enable-active-high;
- regulator-always-on;
- regulator-boot-on;
- gpio = <&gpio0 5 GPIO_ACTIVE_HIGH>;
- };
-
- sata1_power: regulator@1 {
- compatible = "regulator-fixed";
- reg = <1>;
- regulator-name = "HDD1";
- regulator-min-microvolt = <12000000>;
- regulator-max-microvolt = <12000000>;
- startup-delay-us = <2000000>;
- enable-active-high;
- regulator-always-on;
- regulator-boot-on;
- gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
- };
-
- sata2_power: regulator@2 {
- compatible = "regulator-fixed";
- reg = <2>;
- regulator-name = "HDD2";
- regulator-min-microvolt = <12000000>;
- regulator-max-microvolt = <12000000>;
- startup-delay-us = <4000000>;
- enable-active-high;
- regulator-always-on;
- regulator-boot-on;
- gpio = <&gpio0 9 GPIO_ACTIVE_HIGH>;
- };
- };
-};
-
-&coherencyfab {
- broken-idle;
-};
-
-ð1 {
- pinctrl-0 = <&ge1_rgmii_pins>;
- pinctrl-names = "default";
- status = "okay";
- phy-handle = <ðphy0>;
- phy-connection-type = "rgmii-id";
-};
-
-&i2c0 {
- pinctrl-0 = <&i2c0_pins>;
- pinctrl-names = "default";
- clock-frequency = <100000>;
- status = "okay";
-
- rs5c372a: rs5c372a@32 {
- compatible = "ricoh,rs5c372a";
- reg = <0x32>;
- wakeup-source;
- };
-};
-
-&mdio {
- pinctrl-0 = <&mdio_pins>;
- pinctrl-names = "default";
-
- ethphy0: ethernet-phy@0 { /* Marvell 88E1518 */
- reg = <0>;
- marvell,reg-init = <0x2 0x10 0xffff 0x0006>, /* disable CLK125 */
- <0x3 0x10 0x0000 0x1991>, /* LED function */
- <0x3 0x11 0x0000 0x4401>, /* LED polarity */
- <0x3 0x12 0x0000 0x4905>; /* LED timer */
- #thermal-sensor-cells = <0>;
- };
-};
-
-&pciec {
- status = "okay";
- pinctrl-0 = <&pmx_pcie>;
- pinctrl-names = "default";
-
- /* Connected to uPD720202 USB 3.0 Host */
- pcie@1,0 {
- status = "okay";
- };
-};
-
-&pmsu {
- pinctrl-0 = <&pmx_power_cpu>;
- pinctrl-names = "default";
-};
-
-&rtc {
- status = "disabled";
-};
-
-&sata {
- nr-ports = <2>;
- status = "okay";
- #address-cells = <1>;
- #size-cells = <0>;
-
- hdd0_temp: sata-port@0 {
- reg = <0>;
- #thermal-sensor-cells = <0>;
- };
-
- hdd1_temp: sata-port@1 {
- reg = <1>;
- #thermal-sensor-cells = <0>;
- };
-};
-
-&sdio {
- pinctrl-0 = <&sdio_pins2>;
- pinctrl-names = "default";
- status = "okay";
- /* No CD or WP GPIOs */
- broken-cd;
-};
-
-&uart0 {
- status = "okay";
-};
-
-&usb0 {
- status = "okay";
-};
-
-&nand_controller {
- status = "okay";
-
- nand@0 {
- reg = <0>;
- label = "pxa3xx_nand-0";
- nand-rb = <0>;
- marvell,nand-keep-config;
- nand-on-flash-bbt;
- nand-ecc-strength = <4>;
- nand-ecc-step-size = <512>;
-
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@0 {
- label = "kernel";
- reg = <0x00000000 0x02000000>; /* 32 MiB */
- };
-
- partition@2000000 {
- label = "ubi";
- reg = <0x02000000 0x1e000000>; /* 480 MiB */
- };
- };
- };
-};
-
-&spi0 {
- status = "okay";
- pinctrl-0 = <&spi0_pins2>;
- pinctrl-names = "default";
-
- spi-flash@0 {
- compatible = "mxicy,mx25l8005", "jedec,spi-nor";
- reg = <0>; /* Chip select 0 */
- spi-max-frequency = <50000000>;
-
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@0 {
- reg = <0x00000 0xf0000>; /* 960 KiB*/
- label = "u-boot";
- read-only;
- };
- partition@f0000 {
- reg = <0xf0000 0x10000>; /* 64 KiB */
- label = "u-boot-env";
- };
- };
- };
-};
-
-&pinctrl {
- pmx_power_cpu: pmx-power-cpu {
- marvell,pins = "mpp4";
- marvell,function = "vdd";
- };
-
- pmx_power_usb: pmx-power-usb {
- marvell,pins = "mpp5";
- marvell,function = "gpo";
- };
-
- pmx_power_hdd1: pmx-power-hdd1 {
- marvell,pins = "mpp8";
- marvell,function = "gpio";
- };
-
- pmx_power_hdd2: pmx-power-hdd2 {
- marvell,pins = "mpp9";
- marvell,function = "gpo";
- };
-
- pmx_fan_lock: pmx-fan-lock {
- marvell,pins = "mpp10";
- marvell,function = "gpio";
- };
-
- pmx_hdd_present: pmx-hdd-present {
- marvell,pins = "mpp11", "mpp12";
- marvell,function = "gpio";
- };
-
- pmx_fan_high: pmx-fan-high {
- marvell,pins = "mpp13";
- marvell,function = "gpio";
- };
-
- pmx_fan_low: pmx-fan-low {
- marvell,pins = "mpp14";
- marvell,function = "gpio";
- };
-
- pmx_buttons: pmx-buttons {
- marvell,pins = "mpp15", "mpp16";
- marvell,function = "gpio";
- };
-
- pmx_leds1: pmx-leds {
- marvell,pins = "mpp7", "mpp54", "mpp59", "mpp61";
- marvell,function = "gpo";
- };
-
- pmx_leds2: pmx-leds {
- marvell,pins = "mpp55", "mpp57", "mpp62";
- marvell,function = "gpio";
- };
-
- pmx_pcie: pmx-pcie {
- marvell,pins = "mpp56", "mpp60";
- marvell,function = "pcie";
- };
-};
+++ /dev/null
-// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
-/*
- * Device Tree file for Ctera C200-V2
- *
- * Copyright (C) 2021 Pawel Dembicki <paweldembicki@gmail.com>
- */
-
-/dts-v1/;
-
-#include "armada-370.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/thermal/thermal.h>
-#include <dt-bindings/leds/common.h>
-
-/ {
- model = "Ctera C200 V2";
- compatible = "ctera,c200-v2", "marvell,armada370", "marvell,armada-370-xp";
-
- aliases {
- led-boot = &led_status_green;
- led-failsafe = &led_status_red;
- led-running = &led_status_green;
- led-upgrade = &led_status_red;
- };
-
- chosen {
- bootargs = "console=ttyS0,115200";
- stdout-path = "serial0:115200n8";
- };
-
- memory {
- device_type = "memory";
- reg = <0x00000000 0x40000000>; /* 1024 MB */
- };
-
- soc {
- ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
- MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
- MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;
- };
-
- thermal-zones {
- ethphy-thermal {
- polling-delay = <20000>;
- polling-delay-passive = <2000>;
-
- thermal-sensors = <ðphy0>;
-
- trips {
- ethphy_alert1: trip1 {
- temperature = <65000>;
- hysteresis = <4000>;
- type = "passive";
- };
-
- ethphy_crit: trip2 {
- temperature = <100000>;
- hysteresis = <2000>;
- type = "critical";
- };
- };
- };
- };
-
- keys {
- compatible = "gpio-keys";
- pinctrl-0 = <&pmx_buttons>;
- pinctrl-names = "default";
-
- power {
- label = "Power Button";
- linux,code = <KEY_POWER>;
- gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
- };
-
- reset {
- label = "Reset Button";
- linux,code = <KEY_RESTART>;
- gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
- };
-
- usb1 {
- label = "USB1 Button";
- linux,code = <BTN_0>;
- gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
- };
-
- usb2 {
- label = "USB2 Button";
- linux,code = <BTN_1>;
- gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
- };
- };
-
- gpio-poweroff {
- compatible = "gpio-poweroff";
- pinctrl-0 = <&pmx_poweroff>;
- pinctrl-names = "default";
- gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
- };
-
- leds {
- compatible = "gpio-leds";
- pinctrl-0 = <&pmx_leds1 &pmx_leds2>;
- pinctrl-names = "default";
-
- led-0 {
- function = LED_FUNCTION_USB;
- function-enumerator = <2>;
- color = <LED_COLOR_ID_RED>;
- gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
- };
-
- led-1 {
- function = LED_FUNCTION_USB;
- function-enumerator = <2>;
- color = <LED_COLOR_ID_GREEN>;
- gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
- linux,default-trigger = "usbport";
- trigger-sources = <&usb1_port 1>, <&usb2_port 1>;
- };
-
- led-2 {
- function = LED_FUNCTION_USB;
- function-enumerator = <1>;
- color = <LED_COLOR_ID_RED>;
- gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
- };
-
- led-3 {
- function = LED_FUNCTION_USB;
- function-enumerator = <1>;
- color = <LED_COLOR_ID_GREEN>;
- gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
- linux,default-trigger = "usbport";
- trigger-sources = <&usb1_port 2>, <&usb2_port 2>;
- };
-
- led-4 {
- function = LED_FUNCTION_DISK;
- function-enumerator = <2>;
- color = <LED_COLOR_ID_GREEN>;
- gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
- linux,default-trigger = "ata2";
- };
-
- led-5 {
- function = LED_FUNCTION_DISK;
- function-enumerator = <1>;
- color = <LED_COLOR_ID_RED>;
- gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
- };
-
- led-6 {
- function = LED_FUNCTION_DISK;
- function-enumerator = <2>;
- color = <LED_COLOR_ID_RED>;
- gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
- };
-
- led-7 {
- function = LED_FUNCTION_INDICATOR;
- color = <LED_COLOR_ID_BLUE>;
- gpios = <&gpio1 20 GPIO_ACTIVE_HIGH>;
- };
-
- led-8 {
- function = LED_FUNCTION_DISK_ERR;
- color = <LED_COLOR_ID_RED>;
- gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
- };
-
- led-9 {
- function = LED_FUNCTION_DISK_ERR;
- color = <LED_COLOR_ID_GREEN>;
- gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
- };
-
- led_status_red: led-10 {
- function = LED_FUNCTION_STATUS;
- color = <LED_COLOR_ID_RED>;
- gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
- };
-
- led-11 {
- function = LED_FUNCTION_DISK;
- function-enumerator = <1>;
- color = <LED_COLOR_ID_GREEN>;
- gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
- linux,default-trigger = "ata1";
- };
-
- led_status_green: led-12 {
- function = LED_FUNCTION_STATUS;
- color = <LED_COLOR_ID_GREEN>;
- gpios = <&gpio1 26 GPIO_ACTIVE_LOW>;
- };
- };
-};
-
-&coherencyfab {
- broken-idle;
-};
-
-ð1 {
- pinctrl-0 = <&ge1_rgmii_pins>;
- pinctrl-names = "default";
- status = "okay";
- phy-handle = <ðphy0>;
- phy-connection-type = "rgmii-id";
-};
-
-&i2c0 {
- pinctrl-0 = <&i2c0_pins>;
- pinctrl-names = "default";
- clock-frequency = <100000>;
- status = "okay";
-
- hwmon@2a {
- compatible = "nuvoton,nct7802";
- reg = <0x2a>;
- };
-
- rtc@30 {
- compatible = "sii,s35390a";
- reg = <0x30>;
- };
-};
-
-&mdio {
- pinctrl-0 = <&mdio_pins>;
- pinctrl-names = "default";
-
- ethphy0: ethernet-phy@0 { /* Marvell 88E1318 */
- reg = <0>;
- #thermal-sensor-cells = <0>;
- };
-};
-
-&nand_controller {
- status = "okay";
-
- nand@0 {
- reg = <0>;
- label = "pxa3xx_nand-0";
- nand-rb = <0>;
- marvell,nand-keep-config;
- nand-on-flash-bbt;
- nand-ecc-strength = <4>;
- nand-ecc-step-size = <512>;
-
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@0 {
- label = "uboot";
- reg = <0x0000000 0x200000>;
- read-only;
- };
-
- partition@200000 {
- label = "certificate";
- reg = <0x0200000 0x100000>;
- read-only;
- };
-
- partition@300000 {
- label = "preset_cfg";
- reg = <0x0300000 0x100000>;
- read-only;
- };
-
- partition@400000 {
- label = "dev_params";
- reg = <0x0400000 0x100000>;
- read-only;
- };
- partition@500000 {
- label = "active_bank";
- reg = <0x0500000 0x0100000>;
- };
-
- partition@600000 {
- label = "magic";
- reg = <0x0600000 0x0100000>;
- read-only;
- };
-
- partition@700000 {
- label = "bank1";
- reg = <0x0700000 0x2800000>;
- };
-
- partition@2f00000 {
- label = "bank2";
- reg = <0x2f00000 0x2800000>;
- };
-
- /* 0x5700000-0x5a00000 undefined in vendor firmware */
-
- partition@5a00000 {
- label = "reserved";
- reg = <0x5a00000 0x2000000>;
- };
-
- partition@7a00000 {
- label = "ubi";
- reg = <0x7a00000 0x8600000>;
- };
- };
- };
-};
-
-&pciec {
- status = "okay";
-
- pcie@1,0 {
- pinctrl-0 = <&pmx_pcie>;
- pinctrl-names = "default";
- status = "okay";
- reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>;
-
- /* -[0000:00]---01.0-[01]----00.0 */
- /* usbport trigger won't work */
- bridge@0,1 {
- compatible = "pci11ab,6710";
- reg = <0x3800 0 0 0 0>;
- #address-cells = <3>;
- #size-cells = <2>;
-
- usb@1,0 {
- /* Renesas uPD720202 */
- compatible = "pci1912,0015";
- reg = <0x1000 0 0 0 0>;
- #address-cells = <3>;
- #size-cells = <2>;
-
- usb1_port: port@1 {
- reg = <1>;
- #trigger-source-cells = <1>;
- };
-
- usb2_port: port@2 {
- reg = <2>;
- #trigger-source-cells = <1>;
- };
- };
- };
- };
-};
-
-&pinctrl {
- pmx_poweroff: pmx-poweroff {
- marvell,pins = "mpp7";
- marvell,function = "gpo";
- };
-
- pmx_power_cpu: pmx-power-cpu {
- marvell,pins = "mpp4";
- marvell,function = "vdd";
- };
-
- pmx_buttons: pmx-buttons {
- marvell,pins = "mpp6", "mpp10", "mpp14", "mpp32";
- marvell,function = "gpio";
- };
-
- pmx_leds1: pmx-leds1 {
- marvell,pins = "mpp47";
- marvell,function = "gpo";
- };
-
- pmx_leds2: pmx-leds2 {
- marvell,pins = "mpp12", "mpp13", "mpp15", "mpp16", "mpp50", "mpp51",
- "mpp52", "mpp53", "mpp55", "mpp56", "mpp57", "mpp58";
- marvell,function = "gpio";
- };
-
- pmx_pcie: pmx-pcie {
- marvell,pins = "mpp59";
- marvell,function = "gpio";
- };
-
- /* this gpio is connected to the pin of buzzer
- * leave it as is due lack of proper driver
- */
- pmx_buzzer: pmx-buzzer {
- marvell,pins = "mpp63";
- marvell,function = "gpio";
- };
-};
-
-&pmsu {
- pinctrl-0 = <&pmx_power_cpu>;
- pinctrl-names = "default";
-};
-
-&rtc {
- status = "disabled";
-};
-
-&sata {
- nr-ports = <2>;
- status = "okay";
- #address-cells = <1>;
- #size-cells = <0>;
-
- hdd0_temp: sata-port@0 {
- reg = <0>;
- #thermal-sensor-cells = <0>;
- };
-
- hdd1_temp: sata-port@1 {
- reg = <1>;
- #thermal-sensor-cells = <0>;
- };
-};
-
-&uart0 {
- status = "okay";
-};
+++ /dev/null
-// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-
-/dts-v1/;
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/leds/common.h>
-#include "armada-380.dtsi"
-
-/ {
- model = "IIJ SA-W2";
- compatible = "iij,sa-w2", "marvell,armada380";
-
- aliases {
- led-boot = &led_power_green;
- led-failsafe = &led_power_red;
- led-running = &led_power_green;
- led-upgrade = &led_power_green;
- label-mac-device = &ge0;
- };
-
- chosen {
- stdout-path = "serial0:115200n8";
- };
-
- memory@0 {
- device_type = "memory";
- reg = <0x00000000 0x10000000>; /* 256MB */
- };
-
- soc {
- ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
- MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
- MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
- MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
- MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
-
- pcie {
- status = "okay";
-
- pcie@1,0 {
- status = "okay";
- };
-
- pcie@3,0 {
- status = "okay";
- };
- };
- };
-
- keys {
- compatible = "gpio-keys";
- pinctrl-names = "default";
- pinctrl-0 = <&pmx_keys_pins>;
-
- button-init {
- label = "init";
- linux,code = <KEY_RESTART>;
- gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
- };
- };
-
- leds {
- compatible = "gpio-leds";
- pinctrl-names = "default";
- pinctrl-0 = <&pmx_leds_pins>;
-
- led-0 {
- gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_GREEN>;
- linux,default-trigger = "phy0tpt";
- };
-
- led-1 {
- gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_RED>;
- };
-
- led-2 {
- gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_GREEN>;
- function = LED_FUNCTION_STATUS;
- };
-
- led-3 {
- gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_RED>;
- function = LED_FUNCTION_STATUS;
- };
-
- led-4 {
- gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_GREEN>;
- };
-
- led-5 {
- gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_RED>;
- };
-
- led-6 {
- gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_GREEN>;
- linux,default-trigger = "phy1tpt";
- };
-
- led-7 {
- gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_RED>;
- };
-
- led_power_green: led-8 {
- gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_GREEN>;
- };
-
- led_power_red: led-9 {
- gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_RED>;
- };
-
- led-10 {
- gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_GREEN>;
- linux,default-trigger = "usbport";
- trigger-sources = <&hub_port2>;
- };
-
- led-11 {
- gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_GREEN>;
- linux,default-trigger = "usbport";
- trigger-sources = <&hub_port1>;
- };
- };
-
- regulator-vbus-usb0 {
- compatible = "regulator-fixed";
- regulator-name = "vbus-usb0";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- gpio = <&gpio1 20 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- regulator-always-on;
- };
-
- regulator-vbus-usb1 {
- compatible = "regulator-fixed";
- regulator-name = "vbus-usb1";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- gpio = <&gpio1 21 GPIO_ACTIVE_HIGH>;
- enable-active-high;
- regulator-always-on;
- };
-};
-
-&uart0 {
- pinctrl-names = "default";
- pinctrl-0 = <&uart0_pins>;
- status = "okay";
-};
-
-&pinctrl {
- pmx_usb_pins: usb-pins {
- marvell,pins = "mpp2", /* smsc usb2514b reset */
- "mpp48", "mpp49", /* port over current */
- "mpp52", "mpp53"; /* port vbus */
- marvell,function = "gpio";
- };
-
- pmx_keys_pins: keys-pins {
- marvell,pins = "mpp18";
- marvell,function = "gpio";
- };
-
- pmx_leds_pins: leds-pins {
- marvell,pins = "mpp19", "mpp20", "mpp33", "mpp34", "mpp35",
- "mpp36", "mpp44", "mpp45", "mpp46", "mpp47",
- "mpp54", "mpp55";
- marvell,function = "gpio";
- };
-};
-
-&gpio0 {
- usb-hub-reset {
- gpio-hog;
- gpios = <2 GPIO_ACTIVE_HIGH>;
- output-high;
- };
-};
-
-&usb0 {
- pinctrl-names = "default";
- pinctrl-0 = <&pmx_usb_pins>;
- status = "okay";
- #address-cells = <1>;
- #size-cells = <0>;
-
- /* SMSC USB2514B on PCB */
- hub@1 {
- compatible = "usb424,2514";
- reg = <1>;
- #address-cells = <1>;
- #size-cells = <0>;
-
- hub_port1: port@1 {
- reg = <1>;
- #trigger-source-cells = <0>;
- };
-
- hub_port2: port@2 {
- reg = <2>;
- #trigger-source-cells = <0>;
- };
- };
-};
-
-&bm {
- status = "okay";
-};
-
-&bm_bppi {
- status = "okay";
-};
-
-ð1 {
- pinctrl-names = "default";
- pinctrl-0 = <&ge1_rgmii_pins>;
- status = "okay";
-
- phy-connection-type = "rgmii-id";
- buffer-manager = <&bm>;
- bm,pool-long = <2>;
- bm,pool-short = <3>;
-
- nvmem-cells = <&macaddr_bdinfo_6 1>;
- nvmem-cell-names = "mac-address";
-
- fixed-link {
- speed = <1000>;
- full-duplex;
- };
-};
-
-&mdio {
- pinctrl-names = "default";
- pinctrl-0 = <&mdio_pins>;
- status = "okay";
-
- /* Marvell 88E6172 */
- switch@0 {
- compatible = "marvell,mv88e6085";
- reg = <0x0>;
- interrupt-controller;
- #interrupt-cells = <2>;
- interrupt-parent = <&gpio1>;
- interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 {
- reg = <0>;
- label = "ge1_0";
- };
-
- port@1 {
- reg = <1>;
- label = "ge1_1";
- };
-
- port@2 {
- reg = <2>;
- label = "ge1_2";
- };
-
- port@3 {
- reg = <3>;
- label = "ge1_3";
- };
-
- ge0: port@4 {
- reg = <4>;
- label = "ge0";
- nvmem-cells = <&macaddr_bdinfo_6 0>;
- nvmem-cell-names = "mac-address";
- };
-
- /*
- * eth0 is connected to port5 for WAN connection
- * on port4 ("GE0")
- */
-
- port@6 {
- reg = <6>;
- label = "cpu";
- ethernet = <ð1>;
- phy-connection-type = "rgmii-id";
-
- fixed-link {
- speed = <1000>;
- full-duplex;
- };
- };
- };
- };
-};
-
-&rtc {
- status = "disabled";
-};
-
-&spi1 {
- pinctrl-names = "default";
- pinctrl-0 = <&spi1_pins>;
- status = "okay";
-
- flash@0 {
- compatible = "jedec,spi-nor";
- reg = <0>;
- spi-max-frequency = <40000000>;
-
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@0 {
- reg = <0x0 0x100000>;
- label = "bootloader";
- read-only;
- };
-
- partition@100000 {
- reg = <0x100000 0x10000>;
- label = "bootloader-env";
- read-only;
- };
-
- partition@110000 {
- reg = <0x110000 0xf0000>;
- label = "board_info";
- read-only;
-
- nvmem-layout {
- compatible = "fixed-layout";
- #address-cells = <1>;
- #size-cells = <1>;
-
- macaddr_bdinfo_6: macaddr@6 {
- compatible = "mac-base";
- reg = <0x6 0x6>;
- #nvmem-cell-cells = <1>;
- };
- };
- };
-
- partition@200000 {
- compatible = "iij,seil-firmware";
- reg = <0x200000 0xf00000>;
- label = "firmware";
- iij,bootdev-name = "flash";
- iij,seil-id = <0x5345494c 0x32303135>;
- };
-
- partition@1100000 {
- compatible = "iij,seil-firmware";
- reg = <0x1100000 0xf00000>;
- label = "rescue";
- iij,bootdev-name = "rescue";
- iij,seil-id = <0x5345494c 0x32303135>;
- };
- };
- };
-};
+++ /dev/null
-// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-
-#include "armada-385-fortinet-fg-x0e.dtsi"
-
-/ {
- model = "Fortinet FortiGate 30E";
- compatible = "fortinet,fg-30e", "marvell,armada385", "marvell,armada380";
-
- memory@0 {
- device_type = "memory";
- reg = <0x00000000 0x40000000>; /* 1GB */
- };
-};
-
-&gpio_leds {
- led-14 {
- gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_AMBER>;
- linux,default-trigger = "mv88e6xxx-1:00:100Mbps";
- };
-
- led-15 {
- gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_GREEN>;
- linux,default-trigger = "mv88e6xxx-1:00:1Gbps";
- };
-};
-
-&pinctrl {
- pmx_switch_pins: switch-pins {
- marvell,pins = "mpp19";
- marvell,function = "gpio";
- };
-};
-
-&mdio {
- pinctrl-names = "default";
- pinctrl-0 = <&mdio_pins>, <&pmx_switch_pins>;
-
- /* Marvell 88E6176 */
- switch@2 {
- compatible = "marvell,mv88e6085";
- reg = <0x2>;
- reset-gpios = <&gpio0 19 GPIO_ACTIVE_LOW>;
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 {
- reg = <0>;
- label = "wan";
- nvmem-cells = <&macaddr_bdinfo_d880 1>;
- nvmem-cell-names = "mac-address";
- };
-
- port@1 {
- reg = <1>;
- label = "lan4";
- nvmem-cells = <&macaddr_bdinfo_d880 5>;
- nvmem-cell-names = "mac-address";
- };
-
- port@2 {
- reg = <2>;
- label = "lan3";
- nvmem-cells = <&macaddr_bdinfo_d880 4>;
- nvmem-cell-names = "mac-address";
- };
-
- port@3 {
- reg = <3>;
- label = "lan2";
- nvmem-cells = <&macaddr_bdinfo_d880 3>;
- nvmem-cell-names = "mac-address";
- };
-
- port@4 {
- reg = <4>;
- label = "lan1";
- nvmem-cells = <&macaddr_bdinfo_d880 2>;
- nvmem-cell-names = "mac-address";
- };
-
- port@6 {
- reg = <6>;
- ethernet = <ð0>;
- phy-connection-type = "rgmii-id";
-
- fixed-link {
- speed = <1000>;
- full-duplex;
- };
- };
- };
- };
-};
+++ /dev/null
-// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-
-#include "armada-385-fortinet-fg-x0e.dtsi"
-
-/ {
- model = "Fortinet FortiGate 50E";
- compatible = "fortinet,fg-50e", "marvell,armada385", "marvell,armada380";
-
- memory@0 {
- device_type = "memory";
- reg = <0x00000000 0x80000000>; /* 2GB */
- };
-};
-
-&gpio_leds {
- led-14 {
- gpios = <&gpio2 0 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_GREEN>;
- linux,default-trigger = "f1072004.mdio-mii:00:1Gbps";
- };
-
- led-15 {
- gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_GREEN>;
- linux,default-trigger = "f1072004.mdio-mii:01:1Gbps";
- };
-
- led-16 {
- gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_AMBER>;
- linux,default-trigger = "mv88e6xxx-1:00:100Mbps";
- };
-
- led-17 {
- gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
- color = <LED_COLOR_ID_GREEN>;
- linux,default-trigger = "mv88e6xxx-1:00:1Gbps";
- };
-};
-
-&pinctrl {
- pmx_phy_switch_pins: phy-switch-pins {
- marvell,pins = "mpp19", "mpp20", "mpp23", "mpp34", "mpp41";
- marvell,function = "gpio";
- };
-};
-
-ð1 {
- status = "okay";
-
- phy-handle = <ðphy0>;
- phy-connection-type = "sgmii";
- buffer-manager = <&bm>;
- bm,pool-long = <2>;
- nvmem-cells = <&macaddr_bdinfo_d880 1>;
- nvmem-cell-names = "mac-address";
-};
-
-ð2 {
- status = "okay";
-
- phy-handle = <ðphy1>;
- phy-connection-type = "sgmii";
- buffer-manager = <&bm>;
- bm,pool-long = <3>;
- nvmem-cells = <&macaddr_bdinfo_d880 2>;
- nvmem-cell-names = "mac-address";
-};
-
-&mdio {
- pinctrl-names = "default";
- pinctrl-0 = <&mdio_pins>, <&pmx_phy_switch_pins>;
-
- /* Marvell 88E1512 */
- ethphy0: ethernet-phy@0 {
- compatible = "ethernet-phy-id0141,0dd1",
- "ethernet-phy-ieee802.3-c22";
- reg = <0>;
- interrupt-parent = <&gpio0>;
- interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
- reset-gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
- reset-assert-us = <10000>;
- reset-deassert-us = <10000>;
- /*
- * LINK/ACT (Green): LED[0], Active Low
- * SPEED 100M (Amber): LED[1], Active High
- */
- marvell,reg-init = <3 16 0 0x71>,
- <3 17 0 0x4>;
- };
-
- /* Marvell 88E1512 */
- ethphy1: ethernet-phy@1 {
- compatible = "ethernet-phy-id0141,0dd1",
- "ethernet-phy-ieee802.3-c22";
- reg = <1>;
- interrupt-parent = <&gpio1>;
- interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
- reset-gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
- reset-assert-us = <10000>;
- reset-deassert-us = <10000>;
- /*
- * LINK/ACT (Green): LED[0], Active Low
- * SPEED 100M (Amber): LED[1], Active High
- */
- marvell,reg-init = <3 16 0 0x71>,
- <3 17 0 0x4>;
- };
-
- /* Marvell 88E6176 */
- switch@2 {
- compatible = "marvell,mv88e6085";
- reg = <0x2>;
- reset-gpios = <&gpio0 19 GPIO_ACTIVE_LOW>;
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 {
- reg = <0>;
- label = "lan5";
- nvmem-cells = <&macaddr_bdinfo_d880 7>;
- nvmem-cell-names = "mac-address";
- };
-
- port@1 {
- reg = <1>;
- label = "lan4";
- nvmem-cells = <&macaddr_bdinfo_d880 6>;
- nvmem-cell-names = "mac-address";
- };
-
- port@2 {
- reg = <2>;
- label = "lan3";
- nvmem-cells = <&macaddr_bdinfo_d880 5>;
- nvmem-cell-names = "mac-address";
- };
-
- port@3 {
- reg = <3>;
- label = "lan2";
- nvmem-cells = <&macaddr_bdinfo_d880 4>;
- nvmem-cell-names = "mac-address";
- };
-
- port@4 {
- reg = <4>;
- label = "lan1";
- nvmem-cells = <&macaddr_bdinfo_d880 3>;
- nvmem-cell-names = "mac-address";
- };
-
- port@6 {
- reg = <6>;
- ethernet = <ð0>;
- phy-connection-type = "rgmii-id";
-
- fixed-link {
- speed = <1000>;
- full-duplex;
- };
- };
- };
- };
-};
+++ /dev/null
-// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-
-/dts-v1/;
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/leds/common.h>
-#include "armada-385.dtsi"
-
-/ {
- aliases {
- led-boot = &led_status_green;
- led-failsafe = &led_status_red;
- led-running = &led_status_green;
- led-upgrade = &led_status_green;
- label-mac-device = ð0;
- };
-
- chosen {
- stdout-path = "serial0:9600n8";
- };
-
- soc {
- ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
- MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
- MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
- MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
- MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
- };
-
- gpio-keys {
- compatible = "gpio-keys";
- pinctrl-names = "default";
- pinctrl-0 = <&pmx_gpio_keys_pins>;
-
- reset {
- label = "reset";
- linux,code = <KEY_RESTART>;
- gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
- };
- };
-
- gpio_leds: gpio-leds {
- compatible = "gpio-leds";
- pinctrl-names = "default";
- pinctrl-0 = <&pmx_gpio_leds_pins>;
-
- led-0 {
- gpios = <&gpio0 30 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_RED>;
- function = LED_FUNCTION_ALARM;
- };
-
- led-1 {
- gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_RED>;
- };
-
- led_status_green: led-2 {
- gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_GREEN>;
- function = LED_FUNCTION_STATUS;
- };
-
- led-3 {
- gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_GREEN>;
- };
-
- led-4 {
- gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_AMBER>;
- function = LED_FUNCTION_ALARM;
- };
-
- led_status_red: led-5 {
- gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_RED>;
- function = LED_FUNCTION_STATUS;
- };
-
- led-6 {
- gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_GREEN>;
- linux,default-trigger = "mv88e6xxx-1:01:1Gbps";
- };
-
- led-7 {
- gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_AMBER>;
- linux,default-trigger = "mv88e6xxx-1:01:100Mbps";
- };
-
- led-8 {
- gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_AMBER>;
- linux,default-trigger = "mv88e6xxx-1:02:100Mbps";
- };
-
- led-9 {
- gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_GREEN>;
- linux,default-trigger = "mv88e6xxx-1:02:1Gbps";
- };
-
- led-10 {
- gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_GREEN>;
- linux,default-trigger = "mv88e6xxx-1:04:1Gbps";
- };
-
- led-11 {
- gpios = <&gpio2 13 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_AMBER>;
- linux,default-trigger = "mv88e6xxx-1:04:100Mbps";
- };
-
- led-12 {
- gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_GREEN>;
- linux,default-trigger = "mv88e6xxx-1:03:1Gbps";
- };
-
- led-13 {
- gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
- color = <LED_COLOR_ID_AMBER>;
- linux,default-trigger = "mv88e6xxx-1:03:100Mbps";
- };
- };
-
- reg_usb_vbus: regulator-usb-vbus {
- compatible = "fixed-regulator";
- regulator-name = "usb-vbus";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
- gpio = <&gpio1 21 GPIO_ACTIVE_LOW>;
- regulator-always-on;
- };
-};
-
-&i2c0 {
- pinctrl-names = "default";
- pinctrl-0 = <&i2c0_pins>;
- status = "okay";
-
- gpio2: gpio@24 {
- compatible = "nxp,pca9555";
- reg = <0x24>;
- gpio-controller;
- #gpio-cells = <0x2>;
- };
-
- hwmon@28 {
- compatible = "nuvoton,nct7802";
- reg = <0x28>;
- };
-};
-
-&uart0 {
- pinctrl-names = "default";
- pinctrl-0 = <&uart0_pins>;
- status = "okay";
-};
-
-&pinctrl {
- pmx_gpio_leds_pins: gpio-leds-pins {
- marvell,pins = "mpp30", "mpp32", "mpp33", "mpp35",
- "mpp45", "mpp47";
- marvell,function = "gpio";
- };
-
- pmx_usb_pins: usb-pins {
- marvell,pins = "mpp53";
- marvell,function = "gpio";
- };
-
- pmx_gpio_keys_pins: gpio-keys-pins {
- marvell,pins = "mpp54";
- marvell,function = "gpio";
- };
-};
-
-&bm {
- status = "okay";
-};
-
-&bm_bppi {
- status = "okay";
-};
-
-ð0 {
- pinctrl-names = "default";
- pinctrl-0 = <&ge0_rgmii_pins>;
- status = "okay";
-
- phy-connection-type = "rgmii-id";
- buffer-manager = <&bm>;
- bm,pool-long = <0>;
- bm,pool-short = <1>;
- nvmem-cells = <&macaddr_bdinfo_d880 0>;
- nvmem-cell-names = "mac-address";
-
- fixed-link {
- speed = <1000>;
- full-duplex;
- };
-};
-
-&usb3_0 {
- pinctrl-names = "default";
- pinctrl-0 = <&pmx_usb_pins>;
- status = "okay";
-
- vbus-supply = <®_usb_vbus>;
-};
-
-&spi1 {
- pinctrl-names = "default";
- pinctrl-0 = <&spi1_pins>;
- status = "okay";
-
- flash@0 {
- compatible = "jedec,spi-nor";
- reg = <0>;
- spi-max-frequency = <50000000>;
-
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@0 {
- reg = <0x0 0x1c0000>;
- label = "u-boot";
- read-only;
- };
-
- partition@1c0000 {
- reg = <0x1c0000 0x10000>;
- label = "firmware-info";
-
- /*
- * 0x10 - 0x2f : image name (image1)
- * 0x30 - 0x4f : image name (image2)
- * 0x170 (1byte): active image (0x0/0x1)
- * 0x184 - 0x185: kernel block count (image1)
- * 0x18c - 0x18d: rootfs block count (image1)
- * 0x194 - 0x195: kernel block count (image2)
- * 0x19c - 0x19d: rootfs block count (image2)
- * 0x1be (1byte): bit7 -> active flag (image1)?
- * 0x1ce (1byte): bit7 -> active flag (image2)?
- *
- * Note: block size --> 0x200 (512 bytes)
- */
- };
-
- partition@1d0000 {
- reg = <0x1d0000 0x10000>;
- label = "dtb";
- read-only;
- };
-
- partition@1e0000 {
- reg = <0x1e0000 0x10000>;
- label = "u-boot-env";
- read-only;
- };
-
- partition@1f0000 {
- reg = <0x1f0000 0x10000>;
- label = "board-info";
- read-only;
-
- nvmem-layout {
- compatible = "fixed-layout";
- #address-cells = <1>;
- #size-cells = <1>;
-
- macaddr_bdinfo_d880: macaddr@d880 {
- compatible = "mac-base";
- reg = <0xd880 0x6>;
- #nvmem-cell-cells = <1>;
- };
- };
- };
-
- partition@200000 {
- reg = <0x200000 0x600000>;
- label = "kernel";
- };
-
- partition@800000 {
- reg = <0x800000 0x1800000>;
- label = "rootfs";
- };
-
- partition@2000000 {
- reg = <0x2000000 0x600000>;
- label = "kn2";
- read-only;
- };
-
- partition@2600000 {
- reg = <0x2600000 0x1800000>;
- label = "rfs2";
- read-only;
- };
-
- partition@3e00000 {
- reg = <0x3e00000 0x1200000>;
- label = "part1";
- read-only;
- };
-
- partition@5000000 {
- reg = <0x5000000 0x1200000>;
- label = "part2";
- read-only;
- };
-
- partition@6200000 {
- reg = <0x6200000 0x1e00000>;
- label = "config";
- read-only;
- };
- };
- };
-};
+++ /dev/null
-/*
- * Device Tree file for the Linksys WRT32X (Venom)
- *
- * Copyright (C) 2017 Imre Kaloz <kaloz@openwrt.org>
- *
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- * a) This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without
- * any warranty of any kind, whether express or implied.
- *
- * Or, alternatively,
- *
- * b) Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or
- * sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include "armada-385-linksys.dtsi"
-
-/ {
- model = "Linksys WRT32X";
- compatible = "linksys,wrt32x", "linksys,venom", "linksys,armada385",
- "marvell,armada385", "marvell,armada380";
-
- chosen {
- bootargs = "console=ttyS0,115200";
- stdout-path = "serial0:115200n8";
- append-rootblock = "root=/dev/mtdblock";
- };
-};
-
-&expander0 {
- wan_amber@0 {
- label = "venom:amber:wan";
- reg = <0x0>;
- };
-
- wan_blue@1 {
- label = "venom:blue:wan";
- reg = <0x1>;
- };
-
- usb2@5 {
- label = "venom:blue:usb2";
- reg = <0x5>;
- };
-
- usb3_1@6 {
- label = "venom:blue:usb3_1";
- reg = <0x6>;
- };
-
- usb3_2@7 {
- label = "venom:blue:usb3_2";
- reg = <0x7>;
- };
-
- wps_blue@8 {
- label = "venom:blue:wps";
- reg = <0x8>;
- };
-
- wps_amber@9 {
- label = "venom:amber:wps";
- reg = <0x9>;
- };
-};
-
-&gpio_leds {
- power {
- gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
- label = "venom:blue:power";
- };
-
- sata {
- gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
- label = "venom:blue:sata";
- };
-
- wlan_2g {
- gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
- label = "venom:blue:wlan_2g";
- };
-
- wlan_5g {
- gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
- label = "venom:blue:wlan_5g";
- };
-};
-
-&gpio_leds_pins {
- marvell,pins = "mpp21", "mpp45", "mpp46", "mpp56";
-};
-
-&nand {
- /* Spansion S34ML02G2 256MiB, OEM Layout */
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@0 {
- label = "u-boot";
- reg = <0x0000000 0x200000>; /* 2MB */
- read-only;
- };
-
- partition@200000 {
- label = "u_env";
- reg = <0x200000 0x20000>; /* 128KB */
- };
-
- partition@220000 {
- label = "s_env";
- reg = <0x220000 0x40000>; /* 256KB */
- };
-
- partition@180000 {
- label = "unused_area";
- reg = <0x260000 0x5c0000>; /* 5.75MB */
- };
-
- partition@7e0000 {
- label = "devinfo";
- reg = <0x7e0000 0x40000>; /* 256KB */
- read-only;
- };
-
- /* kernel1 overlaps with rootfs1 by design */
- partition@900000 {
- label = "kernel1";
- reg = <0x900000 0x7b00000>; /* 123MB */
- };
-
- partition@f00000 {
- label = "rootfs1";
- reg = <0xf00000 0x7500000>; /* 117MB */
- };
-
- /* kernel2 overlaps with rootfs2 by design */
- partition@8400000 {
- label = "kernel2";
- reg = <0x8400000 0x7b00000>; /* 123MB */
- };
-
- partition@8a00000 {
- label = "rootfs2";
- reg = <0x8a00000 0x7500000>; /* 117MB */
- };
-
- /* last MB is for the BBT, not writable */
- partition@ff00000 {
- label = "BBT";
- reg = <0xff00000 0x100000>;
- };
- };
-};
-
-
-&pcie1 {
- mwlwifi {
- marvell,chainmask = <4 4>;
- };
-};
-
-&pcie2 {
- mwlwifi {
- marvell,chainmask = <4 4>;
- };
-};
-
-&sdhci {
- pinctrl-names = "default";
- pinctrl-0 = <&sdhci_pins>;
- no-1-8-v;
- non-removable;
- wp-inverted;
- bus-width = <8>;
- status = "okay";
-};
-
-&usb3_1_vbus {
- gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
-};
-
-&usb3_1_vbus_pins {
- marvell,pins = "mpp44";
-};
+++ /dev/null
-// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
-/*
- * Device Tree file for ipTIME NAS1dual
- *
- * Copyright (C) 2020 Sungbo Eo <mans0n@gorani.run>
- *
- * Based on armada-385-linksys.dtsi
- * Copyright (C) 2015 Imre Kaloz <kaloz@openwrt.org>
- */
-
-/dts-v1/;
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/leds/common.h>
-#include "armada-385.dtsi"
-
-/ {
- model = "ipTIME NAS1dual";
- compatible = "iptime,nas1dual", "marvell,armada385", "marvell,armada380";
-
- aliases {
- led-boot = &led_ready;
- led-failsafe = &led_ready;
- led-running = &led_ready;
- led-upgrade = &led_ready;
- label-mac-device = ð0;
- };
-
- chosen {
- bootargs = "console=ttyS0,115200n8";
- stdout-path = "serial0:115200n8";
- };
-
- memory@0 {
- device_type = "memory";
- reg = <0x00000000 0x80000000>; /* 2GB */
- };
-
- soc {
- ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
- MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
- MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
- MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
- MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
- };
-
- gpio-keys {
- compatible = "gpio-keys";
- pinctrl-names = "default";
- pinctrl-0 = <&gpio_keys_pins>;
-
- power {
- label = "Power Button";
- linux,input-type = <EV_SW>;
- linux,code = <KEY_POWER>;
- gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
- };
-
- reset {
- label = "Reset Button";
- linux,code = <KEY_RESTART>;
- gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
- };
-
- copy {
- label = "USB Copy Button";
- linux,code = <KEY_COPY>;
- gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
- };
- };
-
- gpio-leds {
- compatible = "gpio-leds";
- pinctrl-names = "default";
- pinctrl-0 = <&gpio_leds_pins>;
-
- led_ready: ready {
- label = "blue:ready";
- gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
- };
-
- hdd {
- label = "blue:hdd";
- gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
- linux,default-trigger = "disk-activity";
- };
-
- usb {
- function = LED_FUNCTION_USB;
- color = <LED_COLOR_ID_BLUE>;
- gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
- trigger-sources = <&usb3_0_port1 &usb3_0_port2>;
- linux,default-trigger = "usbport";
- };
- };
-
- gpio-fan {
- compatible = "gpio-fan";
- pinctrl-names = "default";
- pinctrl-0 = <&gpio_fan_pins>;
- gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>,
- <&gpio1 18 GPIO_ACTIVE_HIGH>;
- /* We don't know the exact rpm, just use dummy values here. */
- gpio-fan,speed-map = <0 0>, <1 1>, <2 2>;
- #cooling-cells = <2>;
- };
-
- gpio-poweroff {
- compatible = "gpio-poweroff";
- gpios = <&pca9536 1 GPIO_ACTIVE_LOW>;
- };
-
- regulators {
- compatible = "simple-bus";
- #address-cells = <1>;
- #size-cells = <0>;
- pinctrl-names = "default";
- pinctrl-0 = <&sata_power_pins>;
-
- reg_sata_power: regulator@1 {
- compatible = "regulator-fixed";
- reg = <1>;
- regulator-name = "sata-power";
- regulator-min-microvolt = <12000000>;
- regulator-max-microvolt = <12000000>;
- gpio = <&gpio1 20 GPIO_ACTIVE_LOW>;
- regulator-always-on;
- };
- };
-};
-
-&ahci0 {
- status = "okay";
- #address-cells = <1>;
- #size-cells = <0>;
-
- sata-port@0 {
- reg = <0>;
- target-supply = <®_sata_power>;
- #thermal-sensor-cells = <0>;
- };
-};
-
-&bm {
- status = "okay";
-};
-
-&bm_bppi {
- status = "okay";
-};
-
-ð0 {
- pinctrl-names = "default";
- pinctrl-0 = <&ge0_rgmii_pins>;
- status = "okay";
- phy-handle = <ðphy1>;
- phy-connection-type = "rgmii-id";
- buffer-manager = <&bm>;
- bm,pool-long = <0>;
- bm,pool-short = <1>;
- nvmem-cells = <&macaddr_uboot_fffa8>;
- nvmem-cell-names = "mac-address";
-};
-
-ð1 {
- pinctrl-names = "default";
- pinctrl-0 = <&ge1_rgmii_pins>;
- status = "okay";
- phy-handle = <ðphy0>;
- phy-connection-type = "rgmii-id";
- buffer-manager = <&bm>;
- bm,pool-long = <2>;
- bm,pool-short = <3>;
- nvmem-cells = <&macaddr_uboot_fffa8>;
- nvmem-cell-names = "mac-address";
-};
-
-&i2c0 {
- pinctrl-names = "default";
- pinctrl-0 = <&i2c0_pins>;
- status = "okay";
-
- pca9536: gpio@41 {
- compatible = "nxp,pca9536";
- reg = <0x41>;
- gpio-controller;
- #gpio-cells = <2>;
- gpio-line-names = "power-led", "power-board";
- };
-};
-
-&mdio {
- pinctrl-names = "default";
- pinctrl-0 = <&mdio_pins>;
-
- /* LED1: On - Link, Blink - Activity, Off - No Link */
-
- ethphy0: ethernet-phy@0 {
- reg = <0>;
- marvell,reg-init = <3 16 0 0x1017>;
- };
-
- ethphy1: ethernet-phy@1 {
- reg = <1>;
- marvell,reg-init = <3 16 0 0x1017>;
- };
-};
-
-&pinctrl {
- gpio_keys_pins: gpio-keys-pins {
- marvell,pins = "mpp24", "mpp26", "mpp48";
- marvell,function = "gpio";
- };
-
- gpio_leds_pins: gpio-leds-pins {
- marvell,pins = "mpp18", "mpp20", "mpp51";
- marvell,function = "gpio";
- };
-
- gpio_fan_pins: gpio-fan-pins {
- marvell,pins = "mpp25", "mpp50";
- marvell,function = "gpio";
- };
-
- sata_power_pins: sata-power-pins {
- marvell,pins = "mpp52";
- marvell,function = "gpio";
- };
-
- uart1_pins_alt: uart-pins-1-alt {
- marvell,pins = "mpp45", "mpp46";
- marvell,function = "ua1";
- };
-};
-
-&spi1 {
- pinctrl-names = "default";
- pinctrl-0 = <&spi1_pins>;
- status = "okay";
-
- flash@0 {
- compatible = "jedec,spi-nor";
- reg = <0>;
- spi-max-frequency = <40000000>;
-
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@0 {
- reg = <0x00000000 0x00100000>;
- label = "u-boot";
- read-only;
-
- nvmem-layout {
- compatible = "fixed-layout";
- #address-cells = <1>;
- #size-cells = <1>;
-
- macaddr_uboot_fffa8: macaddr@fffa8 {
- reg = <0xfffa8 0x6>;
- };
- };
- };
-
- partition@100000 {
- reg = <0x00100000 0x03ec0000>;
- label = "firmware";
-
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@0 {
- reg = <0x00000000 0x00600000>;
- label = "kernel";
- };
-
- partition@600000 {
- reg = <0x00600000 0x038c0000>;
- label = "rootfs";
- };
- };
-
- partition@3fc0000 {
- reg = <0x03fc0000 0x00040000>;
- label = "config";
- read-only;
- };
- };
- };
-};
-
-&uart0 {
- pinctrl-names = "default";
- pinctrl-0 = <&uart0_pins>;
- status = "okay";
-};
-
-&uart1 {
- pinctrl-names = "default";
- pinctrl-0 = <&uart1_pins_alt>;
- status = "okay";
-};
-
-&usb3_0 {
- status = "okay";
- #address-cells = <1>;
- #size-cells = <0>;
-
- usb3_0_port1: port@1 {
- reg = <1>;
- #trigger-source-cells = <0>;
- };
-
- usb3_0_port2: port@2 {
- reg = <2>;
- #trigger-source-cells = <0>;
- };
-};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Device Tree file for Buffalo LinkStation LS220DE
+ *
+ * Copyright (C) 2023 Daniel González Cabanelas <dgcbueu@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "armada-370.dtsi"
+#include "mvebu-linkstation-fan.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/thermal/thermal.h>
+
+/ {
+ model = "Buffalo LinkStation LS220DE";
+ compatible = "buffalo,ls220de", "marvell,armada370", "marvell,armada-370-xp";
+
+ aliases {
+ led-boot = &led_boot;
+ led-failsafe = &led_failsafe;
+ led-running = &led_power;
+ led-upgrade = &led_upgrade;
+ };
+
+ chosen {
+ bootargs = "earlycon";
+ stdout-path = "serial0:115200n8";
+ append-rootblock = "nullparameter="; /* override the bootloader args */
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <0x00000000 0x10000000>; /* 256 MB */
+ };
+
+ soc {
+ ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
+ MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
+ MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;
+ };
+
+ system_fan: gpio_fan {
+ gpios = <&gpio0 13 GPIO_ACTIVE_HIGH
+ &gpio0 14 GPIO_ACTIVE_HIGH>;
+ alarm-gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
+
+ #cooling-cells = <2>;
+ };
+
+ thermal-zones {
+ hdd-thermal {
+ polling-delay = <20000>;
+ polling-delay-passive = <2000>;
+
+ thermal-sensors = <&hdd0_temp>; /* only one drivetemp sensor is supported */
+
+ trips {
+ hdd_alert1: trip1 {
+ temperature = <34000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+ hdd_alert2: trip2 {
+ temperature = <40000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+ hdd_alert3: trip3 {
+ temperature = <45000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+ hdd_hot {
+ temperature = <50000>;
+ hysteresis = <2000>;
+ type = "hot";
+ };
+ hdd_crit {
+ temperature = <60000>;
+ hysteresis = <2000>;
+ type = "critical";
+ };
+ };
+
+ cooling-maps {
+ map1 {
+ trip = <&hdd_alert1>;
+ cooling-device = <&system_fan THERMAL_NO_LIMIT 1>;
+ };
+ map2 {
+ trip = <&hdd_alert2>;
+ cooling-device = <&system_fan 2 2>;
+ };
+ map3 {
+ trip = <&hdd_alert3>;
+ cooling-device = <&system_fan 3 THERMAL_NO_LIMIT>;
+ };
+ };
+ };
+ };
+
+ gpio_keys {
+ compatible = "gpio-keys";
+ pinctrl-0 = <&pmx_buttons>;
+ pinctrl-names = "default";
+
+ power {
+ label = "Power Switch";
+ linux,code = <KEY_POWER>;
+ linux,input-type = <EV_SW>;
+ gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
+ };
+
+ function {
+ label = "Function Button";
+ linux,code = <KEY_CONFIG>;
+ gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ gpio_leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmx_leds1 &pmx_leds2>;
+
+ indicator_red {
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
+ panic-indicator;
+ };
+
+ led_power: power_white {
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_WHITE>;
+ gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
+ default-state = "on";
+ };
+
+ led_failsafe: power_red {
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_upgrade: power_orange {
+ function = LED_FUNCTION_POWER;
+ color = <LED_COLOR_ID_AMBER>;
+ gpios = <&gpio1 25 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_boot: indicator_white {
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_WHITE>;
+ gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
+ };
+
+ hdd1_red {
+ function = LED_FUNCTION_DISK;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "ata1";
+ function-enumerator = <1>;
+ };
+
+ hdd2_red {
+ function = LED_FUNCTION_DISK;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "ata2";
+ function-enumerator = <2>;
+ };
+ };
+
+ regulators {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-0 = <&pmx_power_hdd1 &pmx_power_hdd2>;
+ pinctrl-names = "default";
+
+ sata1_power: regulator@1 {
+ compatible = "regulator-fixed";
+ reg = <1>;
+ regulator-name = "HDD1";
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ startup-delay-us = <2000000>;
+ enable-active-high;
+ regulator-always-on;
+ regulator-boot-on;
+ gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
+ };
+
+ sata2_power: regulator@2 {
+ compatible = "regulator-fixed";
+ reg = <2>;
+ regulator-name = "HDD2";
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ startup-delay-us = <4000000>;
+ enable-active-high;
+ regulator-always-on;
+ regulator-boot-on;
+ gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
+&coherencyfab {
+ broken-idle;
+};
+
+ð1 {
+ pinctrl-0 = <&ge1_rgmii_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+ phy-handle = <ðphy0>;
+ phy-connection-type = "rgmii-id";
+};
+
+&mdio {
+ pinctrl-0 = <&mdio_pins>;
+ pinctrl-names = "default";
+
+ ethphy0: ethernet-phy@0 { /* Marvell 88E1318 */
+ reg = <0>;
+ marvell,reg-init = <0x3 0x10 0xf000 0x091A>, /* LED function */
+ <0x3 0x11 0x0000 0x4401>, /* LED polarity */
+ <0x3 0x12 0x0000 0x4905>; /* LED timer */
+ #thermal-sensor-cells = <0>;
+ };
+};
+
+&nand_controller {
+ status = "okay";
+
+ nand@0 {
+ reg = <0>;
+ label = "pxa3xx_nand-0";
+ nand-rb = <0>;
+ marvell,nand-keep-config;
+ nand-on-flash-bbt;
+ nand-ecc-strength = <4>;
+ nand-ecc-step-size = <512>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "ubi_kernel";
+ reg = <0x00000000 0x02000000>; /* 32 MiB */
+ };
+
+ partition@2000000 {
+ label = "ubi";
+ reg = <0x02000000 0x1df00000>; /* 479 MiB */
+ };
+ };
+ };
+};
+
+&sata {
+ nr-ports = <2>;
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ hdd0_temp: sata-port@0 {
+ reg = <0>;
+ #thermal-sensor-cells = <0>;
+ };
+
+ hdd1_temp: sata-port@1 {
+ reg = <1>;
+ #thermal-sensor-cells = <0>;
+ };
+};
+
+&spi0 {
+ status = "okay";
+ pinctrl-0 = <&spi0_pins2>;
+ pinctrl-names = "default";
+
+ spi-flash@0 {
+ compatible = "mxicy,mx25l8005", "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <50000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x00000 0xf0000>; /* 960 KiB*/
+ label = "u-boot";
+ read-only;
+ };
+ partition@f0000 {
+ reg = <0xf0000 0x10000>; /* 64 KiB */
+ label = "u-boot-env";
+ };
+ };
+ };
+};
+
+&pmsu {
+ pinctrl-0 = <&pmx_power_cpu>;
+ pinctrl-names = "default";
+};
+
+&uart0 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+};
+
+&pinctrl {
+ pmx_power_hdd2: pmx-power-hdd2 {
+ marvell,pins = "mpp2";
+ marvell,function = "gpio";
+ };
+
+ pmx_power_cpu: pmx-power-cpu {
+ marvell,pins = "mpp4";
+ marvell,function = "vdd";
+ };
+
+ pmx_power_hdd1: pmx-power-hdd1 {
+ marvell,pins = "mpp8";
+ marvell,function = "gpio";
+ };
+
+ pmx_fan_lock: pmx-fan-lock {
+ marvell,pins = "mpp10";
+ marvell,function = "gpio";
+ };
+
+ pmx_hdd_present: pmx-hdd-present {
+ marvell,pins = "mpp11", "mpp12";
+ marvell,function = "gpio";
+ };
+
+ pmx_fan_high: pmx-fan-high {
+ marvell,pins = "mpp13";
+ marvell,function = "gpio";
+ };
+
+ pmx_fan_low: pmx-fan-low {
+ marvell,pins = "mpp14";
+ marvell,function = "gpio";
+ };
+
+ pmx_buttons: pmx-buttons {
+ marvell,pins = "mpp15", "mpp16";
+ marvell,function = "gpio";
+ };
+
+ pmx_leds1: pmx-leds {
+ marvell,pins = "mpp7", "mpp54", "mpp59", "mpp61";
+ marvell,function = "gpo";
+ };
+
+ pmx_leds2: pmx-leds {
+ marvell,pins = "mpp55", "mpp57", "mpp62";
+ marvell,function = "gpio";
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Device Tree file for Buffalo LinkStation LS421DE
+ *
+ * Copyright (C) 2020 Daniel González Cabanelas <dgcbueu@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "armada-370.dtsi"
+#include "mvebu-linkstation-fan.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/thermal/thermal.h>
+
+/ {
+ model = "Buffalo LinkStation LS421DE";
+ compatible = "buffalo,ls421de", "marvell,armada370", "marvell,armada-370-xp";
+
+ aliases {
+ led-boot = &led_boot;
+ led-failsafe = &led_failsafe;
+ led-running = &led_power;
+ led-upgrade = &led_upgrade;
+ };
+
+ chosen {
+ bootargs = "earlycon";
+ stdout-path = "serial0:115200n8";
+ append-rootblock = "nullparameter="; /* override the bootloader args */
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <0x00000000 0x20000000>; /* 512 MB */
+ };
+
+ soc {
+ ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
+ MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
+ MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;
+ };
+
+ system_fan: gpio_fan {
+ gpios = <&gpio0 13 GPIO_ACTIVE_HIGH
+ &gpio0 14 GPIO_ACTIVE_HIGH>;
+ alarm-gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
+
+ #cooling-cells = <2>;
+ };
+
+ thermal-zones {
+ hdd-thermal {
+ polling-delay = <20000>;
+ polling-delay-passive = <2000>;
+
+ thermal-sensors = <&hdd0_temp>; /* only one drivetemp sensor is supported */
+
+ trips {
+ hdd_alert1: trip1 {
+ temperature = <36000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+ hdd_alert2: trip2 {
+ temperature = <44000>;
+ hysteresis = <2000>;
+ type = "active";
+ };
+ hdd_alert3: trip3 {
+ temperature = <52000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+ hdd_crit: trip4 {
+ temperature = <60000>;
+ hysteresis = <2000>;
+ type = "critical";
+ };
+ };
+
+ cooling-maps {
+ map1 {
+ trip = <&hdd_alert1>;
+ cooling-device = <&system_fan THERMAL_NO_LIMIT 1>;
+ };
+ map2 {
+ trip = <&hdd_alert2>;
+ cooling-device = <&system_fan 2 2>;
+ };
+ map3 {
+ trip = <&hdd_alert3>;
+ cooling-device = <&system_fan 3 THERMAL_NO_LIMIT>;
+ };
+ };
+ };
+
+ ethphy-thermal {
+ polling-delay = <20000>;
+ polling-delay-passive = <2000>;
+
+ thermal-sensors = <ðphy0>;
+
+ trips {
+ ethphy_alert1: trip1 {
+ temperature = <65000>;
+ hysteresis = <4000>;
+ type = "passive";
+ };
+
+ ethphy_crit: trip2 {
+ temperature = <100000>;
+ hysteresis = <2000>;
+ type = "critical";
+ };
+ };
+
+ cooling-maps {
+ map1 {
+ trip = <ðphy_alert1>;
+ cooling-device = <&system_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ };
+
+ };
+ };
+ };
+
+ gpio_keys {
+ compatible = "gpio-keys";
+ pinctrl-0 = <&pmx_buttons>;
+ pinctrl-names = "default";
+
+ power {
+ label = "Power Switch";
+ linux,code = <KEY_POWER>;
+ linux,input-type = <EV_SW>;
+ gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
+ };
+
+ function {
+ label = "Function Button";
+ linux,code = <KEY_CONFIG>;
+ gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ gpio_leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmx_leds1 &pmx_leds2>;
+
+ system_red {
+ label = "ls421de:red:system";
+ gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_power: power_white {
+ label = "ls421de:white:power";
+ gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
+ default-state = "on";
+ };
+
+ led_failsafe: power_red {
+ label = "ls421de:red:power";
+ gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_upgrade: power_orange {
+ label = "ls421de:orange:power";
+ gpios = <&gpio1 25 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_boot: system_white {
+ label = "ls421de:white:system";
+ gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
+ };
+
+ hdd1_red {
+ label = "ls421de:red:hdd1";
+ gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "ata1";
+ };
+
+ hdd2_red {
+ label = "ls421de:red:hdd2";
+ gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "ata2";
+ };
+ };
+
+ regulators {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-0 = <&pmx_power_usb &pmx_power_hdd1 &pmx_power_hdd2>;
+ pinctrl-names = "default";
+
+ usb_power: regulator@0 {
+ compatible = "regulator-fixed";
+ reg = <0>;
+ regulator-name = "USB";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ enable-active-high;
+ regulator-always-on;
+ regulator-boot-on;
+ gpio = <&gpio0 5 GPIO_ACTIVE_HIGH>;
+ };
+
+ sata1_power: regulator@1 {
+ compatible = "regulator-fixed";
+ reg = <1>;
+ regulator-name = "HDD1";
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ startup-delay-us = <2000000>;
+ enable-active-high;
+ regulator-always-on;
+ regulator-boot-on;
+ gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
+ };
+
+ sata2_power: regulator@2 {
+ compatible = "regulator-fixed";
+ reg = <2>;
+ regulator-name = "HDD2";
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ startup-delay-us = <4000000>;
+ enable-active-high;
+ regulator-always-on;
+ regulator-boot-on;
+ gpio = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+ };
+ };
+};
+
+&coherencyfab {
+ broken-idle;
+};
+
+ð1 {
+ pinctrl-0 = <&ge1_rgmii_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+ phy-handle = <ðphy0>;
+ phy-connection-type = "rgmii-id";
+};
+
+&i2c0 {
+ pinctrl-0 = <&i2c0_pins>;
+ pinctrl-names = "default";
+ clock-frequency = <100000>;
+ status = "okay";
+
+ rs5c372a: rs5c372a@32 {
+ compatible = "ricoh,rs5c372a";
+ reg = <0x32>;
+ wakeup-source;
+ };
+};
+
+&mdio {
+ pinctrl-0 = <&mdio_pins>;
+ pinctrl-names = "default";
+
+ ethphy0: ethernet-phy@0 { /* Marvell 88E1518 */
+ reg = <0>;
+ marvell,reg-init = <0x2 0x10 0xffff 0x0006>, /* disable CLK125 */
+ <0x3 0x10 0x0000 0x1991>, /* LED function */
+ <0x3 0x11 0x0000 0x4401>, /* LED polarity */
+ <0x3 0x12 0x0000 0x4905>; /* LED timer */
+ #thermal-sensor-cells = <0>;
+ };
+};
+
+&pciec {
+ status = "okay";
+ pinctrl-0 = <&pmx_pcie>;
+ pinctrl-names = "default";
+
+ /* Connected to uPD720202 USB 3.0 Host */
+ pcie@1,0 {
+ status = "okay";
+ };
+};
+
+&pmsu {
+ pinctrl-0 = <&pmx_power_cpu>;
+ pinctrl-names = "default";
+};
+
+&rtc {
+ status = "disabled";
+};
+
+&sata {
+ nr-ports = <2>;
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ hdd0_temp: sata-port@0 {
+ reg = <0>;
+ #thermal-sensor-cells = <0>;
+ };
+
+ hdd1_temp: sata-port@1 {
+ reg = <1>;
+ #thermal-sensor-cells = <0>;
+ };
+};
+
+&sdio {
+ pinctrl-0 = <&sdio_pins2>;
+ pinctrl-names = "default";
+ status = "okay";
+ /* No CD or WP GPIOs */
+ broken-cd;
+};
+
+&uart0 {
+ status = "okay";
+};
+
+&usb0 {
+ status = "okay";
+};
+
+&nand_controller {
+ status = "okay";
+
+ nand@0 {
+ reg = <0>;
+ label = "pxa3xx_nand-0";
+ nand-rb = <0>;
+ marvell,nand-keep-config;
+ nand-on-flash-bbt;
+ nand-ecc-strength = <4>;
+ nand-ecc-step-size = <512>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "kernel";
+ reg = <0x00000000 0x02000000>; /* 32 MiB */
+ };
+
+ partition@2000000 {
+ label = "ubi";
+ reg = <0x02000000 0x1e000000>; /* 480 MiB */
+ };
+ };
+ };
+};
+
+&spi0 {
+ status = "okay";
+ pinctrl-0 = <&spi0_pins2>;
+ pinctrl-names = "default";
+
+ spi-flash@0 {
+ compatible = "mxicy,mx25l8005", "jedec,spi-nor";
+ reg = <0>; /* Chip select 0 */
+ spi-max-frequency = <50000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x00000 0xf0000>; /* 960 KiB*/
+ label = "u-boot";
+ read-only;
+ };
+ partition@f0000 {
+ reg = <0xf0000 0x10000>; /* 64 KiB */
+ label = "u-boot-env";
+ };
+ };
+ };
+};
+
+&pinctrl {
+ pmx_power_cpu: pmx-power-cpu {
+ marvell,pins = "mpp4";
+ marvell,function = "vdd";
+ };
+
+ pmx_power_usb: pmx-power-usb {
+ marvell,pins = "mpp5";
+ marvell,function = "gpo";
+ };
+
+ pmx_power_hdd1: pmx-power-hdd1 {
+ marvell,pins = "mpp8";
+ marvell,function = "gpio";
+ };
+
+ pmx_power_hdd2: pmx-power-hdd2 {
+ marvell,pins = "mpp9";
+ marvell,function = "gpo";
+ };
+
+ pmx_fan_lock: pmx-fan-lock {
+ marvell,pins = "mpp10";
+ marvell,function = "gpio";
+ };
+
+ pmx_hdd_present: pmx-hdd-present {
+ marvell,pins = "mpp11", "mpp12";
+ marvell,function = "gpio";
+ };
+
+ pmx_fan_high: pmx-fan-high {
+ marvell,pins = "mpp13";
+ marvell,function = "gpio";
+ };
+
+ pmx_fan_low: pmx-fan-low {
+ marvell,pins = "mpp14";
+ marvell,function = "gpio";
+ };
+
+ pmx_buttons: pmx-buttons {
+ marvell,pins = "mpp15", "mpp16";
+ marvell,function = "gpio";
+ };
+
+ pmx_leds1: pmx-leds {
+ marvell,pins = "mpp7", "mpp54", "mpp59", "mpp61";
+ marvell,function = "gpo";
+ };
+
+ pmx_leds2: pmx-leds {
+ marvell,pins = "mpp55", "mpp57", "mpp62";
+ marvell,function = "gpio";
+ };
+
+ pmx_pcie: pmx-pcie {
+ marvell,pins = "mpp56", "mpp60";
+ marvell,function = "pcie";
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Device Tree file for Ctera C200-V2
+ *
+ * Copyright (C) 2021 Pawel Dembicki <paweldembicki@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "armada-370.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/thermal/thermal.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+ model = "Ctera C200 V2";
+ compatible = "ctera,c200-v2", "marvell,armada370", "marvell,armada-370-xp";
+
+ aliases {
+ led-boot = &led_status_green;
+ led-failsafe = &led_status_red;
+ led-running = &led_status_green;
+ led-upgrade = &led_status_red;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ stdout-path = "serial0:115200n8";
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <0x00000000 0x40000000>; /* 1024 MB */
+ };
+
+ soc {
+ ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
+ MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
+ MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;
+ };
+
+ thermal-zones {
+ ethphy-thermal {
+ polling-delay = <20000>;
+ polling-delay-passive = <2000>;
+
+ thermal-sensors = <ðphy0>;
+
+ trips {
+ ethphy_alert1: trip1 {
+ temperature = <65000>;
+ hysteresis = <4000>;
+ type = "passive";
+ };
+
+ ethphy_crit: trip2 {
+ temperature = <100000>;
+ hysteresis = <2000>;
+ type = "critical";
+ };
+ };
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+ pinctrl-0 = <&pmx_buttons>;
+ pinctrl-names = "default";
+
+ power {
+ label = "Power Button";
+ linux,code = <KEY_POWER>;
+ gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
+ };
+
+ reset {
+ label = "Reset Button";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
+ };
+
+ usb1 {
+ label = "USB1 Button";
+ linux,code = <BTN_0>;
+ gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
+ };
+
+ usb2 {
+ label = "USB2 Button";
+ linux,code = <BTN_1>;
+ gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ gpio-poweroff {
+ compatible = "gpio-poweroff";
+ pinctrl-0 = <&pmx_poweroff>;
+ pinctrl-names = "default";
+ gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-0 = <&pmx_leds1 &pmx_leds2>;
+ pinctrl-names = "default";
+
+ led-0 {
+ function = LED_FUNCTION_USB;
+ function-enumerator = <2>;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
+ };
+
+ led-1 {
+ function = LED_FUNCTION_USB;
+ function-enumerator = <2>;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "usbport";
+ trigger-sources = <&usb1_port 1>, <&usb2_port 1>;
+ };
+
+ led-2 {
+ function = LED_FUNCTION_USB;
+ function-enumerator = <1>;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
+ };
+
+ led-3 {
+ function = LED_FUNCTION_USB;
+ function-enumerator = <1>;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "usbport";
+ trigger-sources = <&usb1_port 2>, <&usb2_port 2>;
+ };
+
+ led-4 {
+ function = LED_FUNCTION_DISK;
+ function-enumerator = <2>;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "ata2";
+ };
+
+ led-5 {
+ function = LED_FUNCTION_DISK;
+ function-enumerator = <1>;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
+ };
+
+ led-6 {
+ function = LED_FUNCTION_DISK;
+ function-enumerator = <2>;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
+ };
+
+ led-7 {
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_BLUE>;
+ gpios = <&gpio1 20 GPIO_ACTIVE_HIGH>;
+ };
+
+ led-8 {
+ function = LED_FUNCTION_DISK_ERR;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
+ };
+
+ led-9 {
+ function = LED_FUNCTION_DISK_ERR;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
+ };
+
+ led_status_red: led-10 {
+ function = LED_FUNCTION_STATUS;
+ color = <LED_COLOR_ID_RED>;
+ gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
+ };
+
+ led-11 {
+ function = LED_FUNCTION_DISK;
+ function-enumerator = <1>;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "ata1";
+ };
+
+ led_status_green: led-12 {
+ function = LED_FUNCTION_STATUS;
+ color = <LED_COLOR_ID_GREEN>;
+ gpios = <&gpio1 26 GPIO_ACTIVE_LOW>;
+ };
+ };
+};
+
+&coherencyfab {
+ broken-idle;
+};
+
+ð1 {
+ pinctrl-0 = <&ge1_rgmii_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+ phy-handle = <ðphy0>;
+ phy-connection-type = "rgmii-id";
+};
+
+&i2c0 {
+ pinctrl-0 = <&i2c0_pins>;
+ pinctrl-names = "default";
+ clock-frequency = <100000>;
+ status = "okay";
+
+ hwmon@2a {
+ compatible = "nuvoton,nct7802";
+ reg = <0x2a>;
+ };
+
+ rtc@30 {
+ compatible = "sii,s35390a";
+ reg = <0x30>;
+ };
+};
+
+&mdio {
+ pinctrl-0 = <&mdio_pins>;
+ pinctrl-names = "default";
+
+ ethphy0: ethernet-phy@0 { /* Marvell 88E1318 */
+ reg = <0>;
+ #thermal-sensor-cells = <0>;
+ };
+};
+
+&nand_controller {
+ status = "okay";
+
+ nand@0 {
+ reg = <0>;
+ label = "pxa3xx_nand-0";
+ nand-rb = <0>;
+ marvell,nand-keep-config;
+ nand-on-flash-bbt;
+ nand-ecc-strength = <4>;
+ nand-ecc-step-size = <512>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "uboot";
+ reg = <0x0000000 0x200000>;
+ read-only;
+ };
+
+ partition@200000 {
+ label = "certificate";
+ reg = <0x0200000 0x100000>;
+ read-only;
+ };
+
+ partition@300000 {
+ label = "preset_cfg";
+ reg = <0x0300000 0x100000>;
+ read-only;
+ };
+
+ partition@400000 {
+ label = "dev_params";
+ reg = <0x0400000 0x100000>;
+ read-only;
+ };
+ partition@500000 {
+ label = "active_bank";
+ reg = <0x0500000 0x0100000>;
+ };
+
+ partition@600000 {
+ label = "magic";
+ reg = <0x0600000 0x0100000>;
+ read-only;
+ };
+
+ partition@700000 {
+ label = "bank1";
+ reg = <0x0700000 0x2800000>;
+ };
+
+ partition@2f00000 {
+ label = "bank2";
+ reg = <0x2f00000 0x2800000>;
+ };
+
+ /* 0x5700000-0x5a00000 undefined in vendor firmware */
+
+ partition@5a00000 {
+ label = "reserved";
+ reg = <0x5a00000 0x2000000>;
+ };
+
+ partition@7a00000 {
+ label = "ubi";
+ reg = <0x7a00000 0x8600000>;
+ };
+ };
+ };
+};
+
+&pciec {
+ status = "okay";
+
+ pcie@1,0 {
+ pinctrl-0 = <&pmx_pcie>;
+ pinctrl-names = "default";
+ status = "okay";
+ reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>;
+
+ /* -[0000:00]---01.0-[01]----00.0 */
+ /* usbport trigger won't work */
+ bridge@0,1 {
+ compatible = "pci11ab,6710";
+ reg = <0x3800 0 0 0 0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ usb@1,0 {
+ /* Renesas uPD720202 */
+ compatible = "pci1912,0015";
+ reg = <0x1000 0 0 0 0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+
+ usb1_port: port@1 {
+ reg = <1>;
+ #trigger-source-cells = <1>;
+ };
+
+ usb2_port: port@2 {
+ reg = <2>;
+ #trigger-source-cells = <1>;
+ };
+ };
+ };
+ };
+};
+
+&pinctrl {
+ pmx_poweroff: pmx-poweroff {
+ marvell,pins = "mpp7";
+ marvell,function = "gpo";
+ };
+
+ pmx_power_cpu: pmx-power-cpu {
+ marvell,pins = "mpp4";
+ marvell,function = "vdd";
+ };
+
+ pmx_buttons: pmx-buttons {
+ marvell,pins = "mpp6", "mpp10", "mpp14", "mpp32";
+ marvell,function = "gpio";
+ };
+
+ pmx_leds1: pmx-leds1 {
+ marvell,pins = "mpp47";
+ marvell,function = "gpo";
+ };
+
+ pmx_leds2: pmx-leds2 {
+ marvell,pins = "mpp12", "mpp13", "mpp15", "mpp16", "mpp50", "mpp51",
+ "mpp52", "mpp53", "mpp55", "mpp56", "mpp57", "mpp58";
+ marvell,function = "gpio";
+ };
+
+ pmx_pcie: pmx-pcie {
+ marvell,pins = "mpp59";
+ marvell,function = "gpio";
+ };
+
+ /* this gpio is connected to the pin of buzzer
+ * leave it as is due lack of proper driver
+ */
+ pmx_buzzer: pmx-buzzer {
+ marvell,pins = "mpp63";
+ marvell,function = "gpio";
+ };
+};
+
+&pmsu {
+ pinctrl-0 = <&pmx_power_cpu>;
+ pinctrl-names = "default";
+};
+
+&rtc {
+ status = "disabled";
+};
+
+&sata {
+ nr-ports = <2>;
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ hdd0_temp: sata-port@0 {
+ reg = <0>;
+ #thermal-sensor-cells = <0>;
+ };
+
+ hdd1_temp: sata-port@1 {
+ reg = <1>;
+ #thermal-sensor-cells = <0>;
+ };
+};
+
+&uart0 {
+ status = "okay";
+};
--- /dev/null
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include "armada-380.dtsi"
+
+/ {
+ model = "IIJ SA-W2";
+ compatible = "iij,sa-w2", "marvell,armada380";
+
+ aliases {
+ led-boot = &led_power_green;
+ led-failsafe = &led_power_red;
+ led-running = &led_power_green;
+ led-upgrade = &led_power_green;
+ label-mac-device = &ge0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x00000000 0x10000000>; /* 256MB */
+ };
+
+ soc {
+ ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
+ MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
+ MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
+ MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
+ MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
+
+ pcie {
+ status = "okay";
+
+ pcie@1,0 {
+ status = "okay";
+ };
+
+ pcie@3,0 {
+ status = "okay";
+ };
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmx_keys_pins>;
+
+ button-init {
+ label = "init";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmx_leds_pins>;
+
+ led-0 {
+ gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_GREEN>;
+ linux,default-trigger = "phy0tpt";
+ };
+
+ led-1 {
+ gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_RED>;
+ };
+
+ led-2 {
+ gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_STATUS;
+ };
+
+ led-3 {
+ gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_RED>;
+ function = LED_FUNCTION_STATUS;
+ };
+
+ led-4 {
+ gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_GREEN>;
+ };
+
+ led-5 {
+ gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_RED>;
+ };
+
+ led-6 {
+ gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_GREEN>;
+ linux,default-trigger = "phy1tpt";
+ };
+
+ led-7 {
+ gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_RED>;
+ };
+
+ led_power_green: led-8 {
+ gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_GREEN>;
+ };
+
+ led_power_red: led-9 {
+ gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_RED>;
+ };
+
+ led-10 {
+ gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_GREEN>;
+ linux,default-trigger = "usbport";
+ trigger-sources = <&hub_port2>;
+ };
+
+ led-11 {
+ gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_GREEN>;
+ linux,default-trigger = "usbport";
+ trigger-sources = <&hub_port1>;
+ };
+ };
+
+ regulator-vbus-usb0 {
+ compatible = "regulator-fixed";
+ regulator-name = "vbus-usb0";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpio = <&gpio1 20 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-always-on;
+ };
+
+ regulator-vbus-usb1 {
+ compatible = "regulator-fixed";
+ regulator-name = "vbus-usb1";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpio = <&gpio1 21 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-always-on;
+ };
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_pins>;
+ status = "okay";
+};
+
+&pinctrl {
+ pmx_usb_pins: usb-pins {
+ marvell,pins = "mpp2", /* smsc usb2514b reset */
+ "mpp48", "mpp49", /* port over current */
+ "mpp52", "mpp53"; /* port vbus */
+ marvell,function = "gpio";
+ };
+
+ pmx_keys_pins: keys-pins {
+ marvell,pins = "mpp18";
+ marvell,function = "gpio";
+ };
+
+ pmx_leds_pins: leds-pins {
+ marvell,pins = "mpp19", "mpp20", "mpp33", "mpp34", "mpp35",
+ "mpp36", "mpp44", "mpp45", "mpp46", "mpp47",
+ "mpp54", "mpp55";
+ marvell,function = "gpio";
+ };
+};
+
+&gpio0 {
+ usb-hub-reset {
+ gpio-hog;
+ gpios = <2 GPIO_ACTIVE_HIGH>;
+ output-high;
+ };
+};
+
+&usb0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmx_usb_pins>;
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* SMSC USB2514B on PCB */
+ hub@1 {
+ compatible = "usb424,2514";
+ reg = <1>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ hub_port1: port@1 {
+ reg = <1>;
+ #trigger-source-cells = <0>;
+ };
+
+ hub_port2: port@2 {
+ reg = <2>;
+ #trigger-source-cells = <0>;
+ };
+ };
+};
+
+&bm {
+ status = "okay";
+};
+
+&bm_bppi {
+ status = "okay";
+};
+
+ð1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ge1_rgmii_pins>;
+ status = "okay";
+
+ phy-connection-type = "rgmii-id";
+ buffer-manager = <&bm>;
+ bm,pool-long = <2>;
+ bm,pool-short = <3>;
+
+ nvmem-cells = <&macaddr_bdinfo_6 1>;
+ nvmem-cell-names = "mac-address";
+
+ fixed-link {
+ speed = <1000>;
+ full-duplex;
+ };
+};
+
+&mdio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mdio_pins>;
+ status = "okay";
+
+ /* Marvell 88E6172 */
+ switch@0 {
+ compatible = "marvell,mv88e6085";
+ reg = <0x0>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ label = "ge1_0";
+ };
+
+ port@1 {
+ reg = <1>;
+ label = "ge1_1";
+ };
+
+ port@2 {
+ reg = <2>;
+ label = "ge1_2";
+ };
+
+ port@3 {
+ reg = <3>;
+ label = "ge1_3";
+ };
+
+ ge0: port@4 {
+ reg = <4>;
+ label = "ge0";
+ nvmem-cells = <&macaddr_bdinfo_6 0>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ /*
+ * eth0 is connected to port5 for WAN connection
+ * on port4 ("GE0")
+ */
+
+ port@6 {
+ reg = <6>;
+ label = "cpu";
+ ethernet = <ð1>;
+ phy-connection-type = "rgmii-id";
+
+ fixed-link {
+ speed = <1000>;
+ full-duplex;
+ };
+ };
+ };
+ };
+};
+
+&rtc {
+ status = "disabled";
+};
+
+&spi1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi1_pins>;
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <40000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x0 0x100000>;
+ label = "bootloader";
+ read-only;
+ };
+
+ partition@100000 {
+ reg = <0x100000 0x10000>;
+ label = "bootloader-env";
+ read-only;
+ };
+
+ partition@110000 {
+ reg = <0x110000 0xf0000>;
+ label = "board_info";
+ read-only;
+
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ macaddr_bdinfo_6: macaddr@6 {
+ compatible = "mac-base";
+ reg = <0x6 0x6>;
+ #nvmem-cell-cells = <1>;
+ };
+ };
+ };
+
+ partition@200000 {
+ compatible = "iij,seil-firmware";
+ reg = <0x200000 0xf00000>;
+ label = "firmware";
+ iij,bootdev-name = "flash";
+ iij,seil-id = <0x5345494c 0x32303135>;
+ };
+
+ partition@1100000 {
+ compatible = "iij,seil-firmware";
+ reg = <0x1100000 0xf00000>;
+ label = "rescue";
+ iij,bootdev-name = "rescue";
+ iij,seil-id = <0x5345494c 0x32303135>;
+ };
+ };
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "armada-385-fortinet-fg-x0e.dtsi"
+
+/ {
+ model = "Fortinet FortiGate 30E";
+ compatible = "fortinet,fg-30e", "marvell,armada385", "marvell,armada380";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x00000000 0x40000000>; /* 1GB */
+ };
+};
+
+&gpio_leds {
+ led-14 {
+ gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_AMBER>;
+ linux,default-trigger = "mv88e6xxx-1:00:100Mbps";
+ };
+
+ led-15 {
+ gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_GREEN>;
+ linux,default-trigger = "mv88e6xxx-1:00:1Gbps";
+ };
+};
+
+&pinctrl {
+ pmx_switch_pins: switch-pins {
+ marvell,pins = "mpp19";
+ marvell,function = "gpio";
+ };
+};
+
+&mdio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mdio_pins>, <&pmx_switch_pins>;
+
+ /* Marvell 88E6176 */
+ switch@2 {
+ compatible = "marvell,mv88e6085";
+ reg = <0x2>;
+ reset-gpios = <&gpio0 19 GPIO_ACTIVE_LOW>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ label = "wan";
+ nvmem-cells = <&macaddr_bdinfo_d880 1>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@1 {
+ reg = <1>;
+ label = "lan4";
+ nvmem-cells = <&macaddr_bdinfo_d880 5>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@2 {
+ reg = <2>;
+ label = "lan3";
+ nvmem-cells = <&macaddr_bdinfo_d880 4>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@3 {
+ reg = <3>;
+ label = "lan2";
+ nvmem-cells = <&macaddr_bdinfo_d880 3>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@4 {
+ reg = <4>;
+ label = "lan1";
+ nvmem-cells = <&macaddr_bdinfo_d880 2>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@6 {
+ reg = <6>;
+ ethernet = <ð0>;
+ phy-connection-type = "rgmii-id";
+
+ fixed-link {
+ speed = <1000>;
+ full-duplex;
+ };
+ };
+ };
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "armada-385-fortinet-fg-x0e.dtsi"
+
+/ {
+ model = "Fortinet FortiGate 50E";
+ compatible = "fortinet,fg-50e", "marvell,armada385", "marvell,armada380";
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x00000000 0x80000000>; /* 2GB */
+ };
+};
+
+&gpio_leds {
+ led-14 {
+ gpios = <&gpio2 0 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_GREEN>;
+ linux,default-trigger = "f1072004.mdio-mii:00:1Gbps";
+ };
+
+ led-15 {
+ gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_GREEN>;
+ linux,default-trigger = "f1072004.mdio-mii:01:1Gbps";
+ };
+
+ led-16 {
+ gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_AMBER>;
+ linux,default-trigger = "mv88e6xxx-1:00:100Mbps";
+ };
+
+ led-17 {
+ gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
+ color = <LED_COLOR_ID_GREEN>;
+ linux,default-trigger = "mv88e6xxx-1:00:1Gbps";
+ };
+};
+
+&pinctrl {
+ pmx_phy_switch_pins: phy-switch-pins {
+ marvell,pins = "mpp19", "mpp20", "mpp23", "mpp34", "mpp41";
+ marvell,function = "gpio";
+ };
+};
+
+ð1 {
+ status = "okay";
+
+ phy-handle = <ðphy0>;
+ phy-connection-type = "sgmii";
+ buffer-manager = <&bm>;
+ bm,pool-long = <2>;
+ nvmem-cells = <&macaddr_bdinfo_d880 1>;
+ nvmem-cell-names = "mac-address";
+};
+
+ð2 {
+ status = "okay";
+
+ phy-handle = <ðphy1>;
+ phy-connection-type = "sgmii";
+ buffer-manager = <&bm>;
+ bm,pool-long = <3>;
+ nvmem-cells = <&macaddr_bdinfo_d880 2>;
+ nvmem-cell-names = "mac-address";
+};
+
+&mdio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mdio_pins>, <&pmx_phy_switch_pins>;
+
+ /* Marvell 88E1512 */
+ ethphy0: ethernet-phy@0 {
+ compatible = "ethernet-phy-id0141,0dd1",
+ "ethernet-phy-ieee802.3-c22";
+ reg = <0>;
+ interrupt-parent = <&gpio0>;
+ interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
+ reset-assert-us = <10000>;
+ reset-deassert-us = <10000>;
+ /*
+ * LINK/ACT (Green): LED[0], Active Low
+ * SPEED 100M (Amber): LED[1], Active High
+ */
+ marvell,reg-init = <3 16 0 0x71>,
+ <3 17 0 0x4>;
+ };
+
+ /* Marvell 88E1512 */
+ ethphy1: ethernet-phy@1 {
+ compatible = "ethernet-phy-id0141,0dd1",
+ "ethernet-phy-ieee802.3-c22";
+ reg = <1>;
+ interrupt-parent = <&gpio1>;
+ interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
+ reset-gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
+ reset-assert-us = <10000>;
+ reset-deassert-us = <10000>;
+ /*
+ * LINK/ACT (Green): LED[0], Active Low
+ * SPEED 100M (Amber): LED[1], Active High
+ */
+ marvell,reg-init = <3 16 0 0x71>,
+ <3 17 0 0x4>;
+ };
+
+ /* Marvell 88E6176 */
+ switch@2 {
+ compatible = "marvell,mv88e6085";
+ reg = <0x2>;
+ reset-gpios = <&gpio0 19 GPIO_ACTIVE_LOW>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ label = "lan5";
+ nvmem-cells = <&macaddr_bdinfo_d880 7>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@1 {
+ reg = <1>;
+ label = "lan4";
+ nvmem-cells = <&macaddr_bdinfo_d880 6>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@2 {
+ reg = <2>;
+ label = "lan3";
+ nvmem-cells = <&macaddr_bdinfo_d880 5>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@3 {
+ reg = <3>;
+ label = "lan2";
+ nvmem-cells = <&macaddr_bdinfo_d880 4>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@4 {
+ reg = <4>;
+ label = "lan1";
+ nvmem-cells = <&macaddr_bdinfo_d880 3>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@6 {
+ reg = <6>;
+ ethernet = <ð0>;
+ phy-connection-type = "rgmii-id";
+
+ fixed-link {
+ speed = <1000>;
+ full-duplex;
+ };
+ };
+ };
+ };
+};
--- /dev/null
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include "armada-385.dtsi"
+
+/ {
+ aliases {
+ led-boot = &led_status_green;
+ led-failsafe = &led_status_red;
+ led-running = &led_status_green;
+ led-upgrade = &led_status_green;
+ label-mac-device = ð0;
+ };
+
+ chosen {
+ stdout-path = "serial0:9600n8";
+ };
+
+ soc {
+ ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
+ MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
+ MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
+ MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
+ MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmx_gpio_keys_pins>;
+
+ reset {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ gpio_leds: gpio-leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmx_gpio_leds_pins>;
+
+ led-0 {
+ gpios = <&gpio0 30 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_RED>;
+ function = LED_FUNCTION_ALARM;
+ };
+
+ led-1 {
+ gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_RED>;
+ };
+
+ led_status_green: led-2 {
+ gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_STATUS;
+ };
+
+ led-3 {
+ gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_GREEN>;
+ };
+
+ led-4 {
+ gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_AMBER>;
+ function = LED_FUNCTION_ALARM;
+ };
+
+ led_status_red: led-5 {
+ gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_RED>;
+ function = LED_FUNCTION_STATUS;
+ };
+
+ led-6 {
+ gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_GREEN>;
+ linux,default-trigger = "mv88e6xxx-1:01:1Gbps";
+ };
+
+ led-7 {
+ gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_AMBER>;
+ linux,default-trigger = "mv88e6xxx-1:01:100Mbps";
+ };
+
+ led-8 {
+ gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_AMBER>;
+ linux,default-trigger = "mv88e6xxx-1:02:100Mbps";
+ };
+
+ led-9 {
+ gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_GREEN>;
+ linux,default-trigger = "mv88e6xxx-1:02:1Gbps";
+ };
+
+ led-10 {
+ gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_GREEN>;
+ linux,default-trigger = "mv88e6xxx-1:04:1Gbps";
+ };
+
+ led-11 {
+ gpios = <&gpio2 13 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_AMBER>;
+ linux,default-trigger = "mv88e6xxx-1:04:100Mbps";
+ };
+
+ led-12 {
+ gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_GREEN>;
+ linux,default-trigger = "mv88e6xxx-1:03:1Gbps";
+ };
+
+ led-13 {
+ gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
+ color = <LED_COLOR_ID_AMBER>;
+ linux,default-trigger = "mv88e6xxx-1:03:100Mbps";
+ };
+ };
+
+ reg_usb_vbus: regulator-usb-vbus {
+ compatible = "fixed-regulator";
+ regulator-name = "usb-vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ gpio = <&gpio1 21 GPIO_ACTIVE_LOW>;
+ regulator-always-on;
+ };
+};
+
+&i2c0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c0_pins>;
+ status = "okay";
+
+ gpio2: gpio@24 {
+ compatible = "nxp,pca9555";
+ reg = <0x24>;
+ gpio-controller;
+ #gpio-cells = <0x2>;
+ };
+
+ hwmon@28 {
+ compatible = "nuvoton,nct7802";
+ reg = <0x28>;
+ };
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_pins>;
+ status = "okay";
+};
+
+&pinctrl {
+ pmx_gpio_leds_pins: gpio-leds-pins {
+ marvell,pins = "mpp30", "mpp32", "mpp33", "mpp35",
+ "mpp45", "mpp47";
+ marvell,function = "gpio";
+ };
+
+ pmx_usb_pins: usb-pins {
+ marvell,pins = "mpp53";
+ marvell,function = "gpio";
+ };
+
+ pmx_gpio_keys_pins: gpio-keys-pins {
+ marvell,pins = "mpp54";
+ marvell,function = "gpio";
+ };
+};
+
+&bm {
+ status = "okay";
+};
+
+&bm_bppi {
+ status = "okay";
+};
+
+ð0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ge0_rgmii_pins>;
+ status = "okay";
+
+ phy-connection-type = "rgmii-id";
+ buffer-manager = <&bm>;
+ bm,pool-long = <0>;
+ bm,pool-short = <1>;
+ nvmem-cells = <&macaddr_bdinfo_d880 0>;
+ nvmem-cell-names = "mac-address";
+
+ fixed-link {
+ speed = <1000>;
+ full-duplex;
+ };
+};
+
+&usb3_0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pmx_usb_pins>;
+ status = "okay";
+
+ vbus-supply = <®_usb_vbus>;
+};
+
+&spi1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi1_pins>;
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <50000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x0 0x1c0000>;
+ label = "u-boot";
+ read-only;
+ };
+
+ partition@1c0000 {
+ reg = <0x1c0000 0x10000>;
+ label = "firmware-info";
+
+ /*
+ * 0x10 - 0x2f : image name (image1)
+ * 0x30 - 0x4f : image name (image2)
+ * 0x170 (1byte): active image (0x0/0x1)
+ * 0x184 - 0x185: kernel block count (image1)
+ * 0x18c - 0x18d: rootfs block count (image1)
+ * 0x194 - 0x195: kernel block count (image2)
+ * 0x19c - 0x19d: rootfs block count (image2)
+ * 0x1be (1byte): bit7 -> active flag (image1)?
+ * 0x1ce (1byte): bit7 -> active flag (image2)?
+ *
+ * Note: block size --> 0x200 (512 bytes)
+ */
+ };
+
+ partition@1d0000 {
+ reg = <0x1d0000 0x10000>;
+ label = "dtb";
+ read-only;
+ };
+
+ partition@1e0000 {
+ reg = <0x1e0000 0x10000>;
+ label = "u-boot-env";
+ read-only;
+ };
+
+ partition@1f0000 {
+ reg = <0x1f0000 0x10000>;
+ label = "board-info";
+ read-only;
+
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ macaddr_bdinfo_d880: macaddr@d880 {
+ compatible = "mac-base";
+ reg = <0xd880 0x6>;
+ #nvmem-cell-cells = <1>;
+ };
+ };
+ };
+
+ partition@200000 {
+ reg = <0x200000 0x600000>;
+ label = "kernel";
+ };
+
+ partition@800000 {
+ reg = <0x800000 0x1800000>;
+ label = "rootfs";
+ };
+
+ partition@2000000 {
+ reg = <0x2000000 0x600000>;
+ label = "kn2";
+ read-only;
+ };
+
+ partition@2600000 {
+ reg = <0x2600000 0x1800000>;
+ label = "rfs2";
+ read-only;
+ };
+
+ partition@3e00000 {
+ reg = <0x3e00000 0x1200000>;
+ label = "part1";
+ read-only;
+ };
+
+ partition@5000000 {
+ reg = <0x5000000 0x1200000>;
+ label = "part2";
+ read-only;
+ };
+
+ partition@6200000 {
+ reg = <0x6200000 0x1e00000>;
+ label = "config";
+ read-only;
+ };
+ };
+ };
+};
--- /dev/null
+/*
+ * Device Tree file for the Linksys WRT32X (Venom)
+ *
+ * Copyright (C) 2017 Imre Kaloz <kaloz@openwrt.org>
+ *
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ * a) This file is licensed under the terms of the GNU General Public
+ * License version 2. This program is licensed "as is" without
+ * any warranty of any kind, whether express or implied.
+ *
+ * Or, alternatively,
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include "armada-385-linksys.dtsi"
+
+/ {
+ model = "Linksys WRT32X";
+ compatible = "linksys,wrt32x", "linksys,venom", "linksys,armada385",
+ "marvell,armada385", "marvell,armada380";
+
+ chosen {
+ bootargs = "console=ttyS0,115200";
+ stdout-path = "serial0:115200n8";
+ append-rootblock = "root=/dev/mtdblock";
+ };
+};
+
+&expander0 {
+ wan_amber@0 {
+ label = "venom:amber:wan";
+ reg = <0x0>;
+ };
+
+ wan_blue@1 {
+ label = "venom:blue:wan";
+ reg = <0x1>;
+ };
+
+ usb2@5 {
+ label = "venom:blue:usb2";
+ reg = <0x5>;
+ };
+
+ usb3_1@6 {
+ label = "venom:blue:usb3_1";
+ reg = <0x6>;
+ };
+
+ usb3_2@7 {
+ label = "venom:blue:usb3_2";
+ reg = <0x7>;
+ };
+
+ wps_blue@8 {
+ label = "venom:blue:wps";
+ reg = <0x8>;
+ };
+
+ wps_amber@9 {
+ label = "venom:amber:wps";
+ reg = <0x9>;
+ };
+};
+
+&gpio_leds {
+ power {
+ gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
+ label = "venom:blue:power";
+ };
+
+ sata {
+ gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
+ label = "venom:blue:sata";
+ };
+
+ wlan_2g {
+ gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
+ label = "venom:blue:wlan_2g";
+ };
+
+ wlan_5g {
+ gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
+ label = "venom:blue:wlan_5g";
+ };
+};
+
+&gpio_leds_pins {
+ marvell,pins = "mpp21", "mpp45", "mpp46", "mpp56";
+};
+
+&nand {
+ /* Spansion S34ML02G2 256MiB, OEM Layout */
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0000000 0x200000>; /* 2MB */
+ read-only;
+ };
+
+ partition@200000 {
+ label = "u_env";
+ reg = <0x200000 0x20000>; /* 128KB */
+ };
+
+ partition@220000 {
+ label = "s_env";
+ reg = <0x220000 0x40000>; /* 256KB */
+ };
+
+ partition@180000 {
+ label = "unused_area";
+ reg = <0x260000 0x5c0000>; /* 5.75MB */
+ };
+
+ partition@7e0000 {
+ label = "devinfo";
+ reg = <0x7e0000 0x40000>; /* 256KB */
+ read-only;
+ };
+
+ /* kernel1 overlaps with rootfs1 by design */
+ partition@900000 {
+ label = "kernel1";
+ reg = <0x900000 0x7b00000>; /* 123MB */
+ };
+
+ partition@f00000 {
+ label = "rootfs1";
+ reg = <0xf00000 0x7500000>; /* 117MB */
+ };
+
+ /* kernel2 overlaps with rootfs2 by design */
+ partition@8400000 {
+ label = "kernel2";
+ reg = <0x8400000 0x7b00000>; /* 123MB */
+ };
+
+ partition@8a00000 {
+ label = "rootfs2";
+ reg = <0x8a00000 0x7500000>; /* 117MB */
+ };
+
+ /* last MB is for the BBT, not writable */
+ partition@ff00000 {
+ label = "BBT";
+ reg = <0xff00000 0x100000>;
+ };
+ };
+};
+
+
+&pcie1 {
+ mwlwifi {
+ marvell,chainmask = <4 4>;
+ };
+};
+
+&pcie2 {
+ mwlwifi {
+ marvell,chainmask = <4 4>;
+ };
+};
+
+&sdhci {
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdhci_pins>;
+ no-1-8-v;
+ non-removable;
+ wp-inverted;
+ bus-width = <8>;
+ status = "okay";
+};
+
+&usb3_1_vbus {
+ gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+};
+
+&usb3_1_vbus_pins {
+ marvell,pins = "mpp44";
+};
--- /dev/null
+// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
+/*
+ * Device Tree file for ipTIME NAS1dual
+ *
+ * Copyright (C) 2020 Sungbo Eo <mans0n@gorani.run>
+ *
+ * Based on armada-385-linksys.dtsi
+ * Copyright (C) 2015 Imre Kaloz <kaloz@openwrt.org>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include "armada-385.dtsi"
+
+/ {
+ model = "ipTIME NAS1dual";
+ compatible = "iptime,nas1dual", "marvell,armada385", "marvell,armada380";
+
+ aliases {
+ led-boot = &led_ready;
+ led-failsafe = &led_ready;
+ led-running = &led_ready;
+ led-upgrade = &led_ready;
+ label-mac-device = ð0;
+ };
+
+ chosen {
+ bootargs = "console=ttyS0,115200n8";
+ stdout-path = "serial0:115200n8";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x00000000 0x80000000>; /* 2GB */
+ };
+
+ soc {
+ ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
+ MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
+ MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
+ MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
+ MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ pinctrl-names = "default";
+ pinctrl-0 = <&gpio_keys_pins>;
+
+ power {
+ label = "Power Button";
+ linux,input-type = <EV_SW>;
+ linux,code = <KEY_POWER>;
+ gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
+ };
+
+ reset {
+ label = "Reset Button";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
+ };
+
+ copy {
+ label = "USB Copy Button";
+ linux,code = <KEY_COPY>;
+ gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ gpio-leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&gpio_leds_pins>;
+
+ led_ready: ready {
+ label = "blue:ready";
+ gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
+ };
+
+ hdd {
+ label = "blue:hdd";
+ gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "disk-activity";
+ };
+
+ usb {
+ function = LED_FUNCTION_USB;
+ color = <LED_COLOR_ID_BLUE>;
+ gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
+ trigger-sources = <&usb3_0_port1 &usb3_0_port2>;
+ linux,default-trigger = "usbport";
+ };
+ };
+
+ gpio-fan {
+ compatible = "gpio-fan";
+ pinctrl-names = "default";
+ pinctrl-0 = <&gpio_fan_pins>;
+ gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>,
+ <&gpio1 18 GPIO_ACTIVE_HIGH>;
+ /* We don't know the exact rpm, just use dummy values here. */
+ gpio-fan,speed-map = <0 0>, <1 1>, <2 2>;
+ #cooling-cells = <2>;
+ };
+
+ gpio-poweroff {
+ compatible = "gpio-poweroff";
+ gpios = <&pca9536 1 GPIO_ACTIVE_LOW>;
+ };
+
+ regulators {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&sata_power_pins>;
+
+ reg_sata_power: regulator@1 {
+ compatible = "regulator-fixed";
+ reg = <1>;
+ regulator-name = "sata-power";
+ regulator-min-microvolt = <12000000>;
+ regulator-max-microvolt = <12000000>;
+ gpio = <&gpio1 20 GPIO_ACTIVE_LOW>;
+ regulator-always-on;
+ };
+ };
+};
+
+&ahci0 {
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ sata-port@0 {
+ reg = <0>;
+ target-supply = <®_sata_power>;
+ #thermal-sensor-cells = <0>;
+ };
+};
+
+&bm {
+ status = "okay";
+};
+
+&bm_bppi {
+ status = "okay";
+};
+
+ð0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ge0_rgmii_pins>;
+ status = "okay";
+ phy-handle = <ðphy1>;
+ phy-connection-type = "rgmii-id";
+ buffer-manager = <&bm>;
+ bm,pool-long = <0>;
+ bm,pool-short = <1>;
+ nvmem-cells = <&macaddr_uboot_fffa8>;
+ nvmem-cell-names = "mac-address";
+};
+
+ð1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ge1_rgmii_pins>;
+ status = "okay";
+ phy-handle = <ðphy0>;
+ phy-connection-type = "rgmii-id";
+ buffer-manager = <&bm>;
+ bm,pool-long = <2>;
+ bm,pool-short = <3>;
+ nvmem-cells = <&macaddr_uboot_fffa8>;
+ nvmem-cell-names = "mac-address";
+};
+
+&i2c0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c0_pins>;
+ status = "okay";
+
+ pca9536: gpio@41 {
+ compatible = "nxp,pca9536";
+ reg = <0x41>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ gpio-line-names = "power-led", "power-board";
+ };
+};
+
+&mdio {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mdio_pins>;
+
+ /* LED1: On - Link, Blink - Activity, Off - No Link */
+
+ ethphy0: ethernet-phy@0 {
+ reg = <0>;
+ marvell,reg-init = <3 16 0 0x1017>;
+ };
+
+ ethphy1: ethernet-phy@1 {
+ reg = <1>;
+ marvell,reg-init = <3 16 0 0x1017>;
+ };
+};
+
+&pinctrl {
+ gpio_keys_pins: gpio-keys-pins {
+ marvell,pins = "mpp24", "mpp26", "mpp48";
+ marvell,function = "gpio";
+ };
+
+ gpio_leds_pins: gpio-leds-pins {
+ marvell,pins = "mpp18", "mpp20", "mpp51";
+ marvell,function = "gpio";
+ };
+
+ gpio_fan_pins: gpio-fan-pins {
+ marvell,pins = "mpp25", "mpp50";
+ marvell,function = "gpio";
+ };
+
+ sata_power_pins: sata-power-pins {
+ marvell,pins = "mpp52";
+ marvell,function = "gpio";
+ };
+
+ uart1_pins_alt: uart-pins-1-alt {
+ marvell,pins = "mpp45", "mpp46";
+ marvell,function = "ua1";
+ };
+};
+
+&spi1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&spi1_pins>;
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <40000000>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x00000000 0x00100000>;
+ label = "u-boot";
+ read-only;
+
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ macaddr_uboot_fffa8: macaddr@fffa8 {
+ reg = <0xfffa8 0x6>;
+ };
+ };
+ };
+
+ partition@100000 {
+ reg = <0x00100000 0x03ec0000>;
+ label = "firmware";
+
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ reg = <0x00000000 0x00600000>;
+ label = "kernel";
+ };
+
+ partition@600000 {
+ reg = <0x00600000 0x038c0000>;
+ label = "rootfs";
+ };
+ };
+
+ partition@3fc0000 {
+ reg = <0x03fc0000 0x00040000>;
+ label = "config";
+ read-only;
+ };
+ };
+ };
+};
+
+&uart0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart0_pins>;
+ status = "okay";
+};
+
+&uart1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart1_pins_alt>;
+ status = "okay";
+};
+
+&usb3_0 {
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ usb3_0_port1: port@1 {
+ reg = <1>;
+ #trigger-source-cells = <0>;
+ };
+
+ usb3_0_port2: port@2 {
+ reg = <2>;
+ #trigger-source-cells = <0>;
+ };
+};
---- a/arch/arm/boot/dts/armada-385-linksys.dtsi
-+++ b/arch/arm/boot/dts/armada-385-linksys.dtsi
+--- a/arch/arm/boot/dts/marvell/armada-385-linksys.dtsi
++++ b/arch/arm/boot/dts/marvell/armada-385-linksys.dtsi
@@ -214,11 +214,19 @@
&pcie1 {
/* Marvell 88W8864, 5GHz-only */
};
&pinctrl {
---- a/arch/arm/boot/dts/armada-385-linksys-caiman.dts
-+++ b/arch/arm/boot/dts/armada-385-linksys-caiman.dts
+--- a/arch/arm/boot/dts/marvell/armada-385-linksys-caiman.dts
++++ b/arch/arm/boot/dts/marvell/armada-385-linksys-caiman.dts
@@ -142,3 +142,205 @@
};
};
+ };
+ };
+};
---- a/arch/arm/boot/dts/armada-385-linksys-cobra.dts
-+++ b/arch/arm/boot/dts/armada-385-linksys-cobra.dts
+--- a/arch/arm/boot/dts/marvell/armada-385-linksys-cobra.dts
++++ b/arch/arm/boot/dts/marvell/armada-385-linksys-cobra.dts
@@ -142,3 +142,205 @@
};
};
+ };
+ };
+};
---- a/arch/arm/boot/dts/armada-385-linksys-shelby.dts
-+++ b/arch/arm/boot/dts/armada-385-linksys-shelby.dts
+--- a/arch/arm/boot/dts/marvell/armada-385-linksys-shelby.dts
++++ b/arch/arm/boot/dts/marvell/armada-385-linksys-shelby.dts
@@ -142,3 +142,205 @@
};
};
+ };
+ };
+};
---- a/arch/arm/boot/dts/armada-385-linksys-rango.dts
-+++ b/arch/arm/boot/dts/armada-385-linksys-rango.dts
+--- a/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts
++++ b/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts
@@ -157,6 +157,18 @@
};
};
&sdhci {
pinctrl-names = "default";
pinctrl-0 = <&sdhci_pins>;
---- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
-+++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+--- a/arch/arm/boot/dts/marvell/armada-xp-linksys-mamba.dts
++++ b/arch/arm/boot/dts/marvell/armada-xp-linksys-mamba.dts
@@ -223,12 +223,100 @@
pcie@2,0 {
/* Port 0, Lane 1 */
---- a/arch/arm/boot/dts/armada-xp.dtsi
-+++ b/arch/arm/boot/dts/armada-xp.dtsi
+--- a/arch/arm/boot/dts/marvell/armada-xp.dtsi
++++ b/arch/arm/boot/dts/marvell/armada-xp.dtsi
@@ -237,12 +237,10 @@
};
---- a/arch/arm/boot/dts/armada-388-rd.dts
-+++ b/arch/arm/boot/dts/armada-388-rd.dts
+--- a/arch/arm/boot/dts/marvell/armada-388-rd.dts
++++ b/arch/arm/boot/dts/marvell/armada-388-rd.dts
@@ -103,6 +103,16 @@
compatible = "st,m25p128", "jedec,spi-nor";
reg = <0>; /* Chip select 0 */
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
---
- arch/arm/boot/dts/armada-385-db-ap.dts | 6 +++---
+ arch/arm/boot/dts/marvell/armada-385-db-ap.dts | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
---- a/arch/arm/boot/dts/armada-385-db-ap.dts
-+++ b/arch/arm/boot/dts/armada-385-db-ap.dts
+--- a/arch/arm/boot/dts/marvell/armada-385-db-ap.dts
++++ b/arch/arm/boot/dts/marvell/armada-385-db-ap.dts
@@ -218,19 +218,19 @@
#size-cells = <1>;
---- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
-+++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+--- a/arch/arm/boot/dts/marvell/armada-xp-linksys-mamba.dts
++++ b/arch/arm/boot/dts/marvell/armada-xp-linksys-mamba.dts
@@ -483,3 +483,7 @@
};
};
---- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
-+++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+--- a/arch/arm/boot/dts/marvell/armada-xp-linksys-mamba.dts
++++ b/arch/arm/boot/dts/marvell/armada-xp-linksys-mamba.dts
@@ -385,7 +385,7 @@
port@4 {
---- a/arch/arm/boot/dts/armada-385-linksys.dtsi
-+++ b/arch/arm/boot/dts/armada-385-linksys.dtsi
+--- a/arch/arm/boot/dts/marvell/armada-385-linksys.dtsi
++++ b/arch/arm/boot/dts/marvell/armada-385-linksys.dtsi
@@ -14,6 +14,13 @@
compatible = "linksys,armada385", "marvell,armada385",
"marvell,armada380";
gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
---- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
-+++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+--- a/arch/arm/boot/dts/marvell/armada-xp-linksys-mamba.dts
++++ b/arch/arm/boot/dts/marvell/armada-xp-linksys-mamba.dts
@@ -26,6 +26,13 @@
compatible = "linksys,mamba", "marvell,armadaxp-mv78230",
"marvell,armadaxp", "marvell,armada-370-xp";
---- a/arch/arm/boot/dts/armada-385-linksys.dtsi
-+++ b/arch/arm/boot/dts/armada-385-linksys.dtsi
+--- a/arch/arm/boot/dts/marvell/armada-385-linksys.dtsi
++++ b/arch/arm/boot/dts/marvell/armada-385-linksys.dtsi
@@ -116,7 +116,7 @@
};
---- a/arch/arm/boot/dts/armada-385-linksys-rango.dts
-+++ b/arch/arm/boot/dts/armada-385-linksys-rango.dts
+--- a/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts
++++ b/arch/arm/boot/dts/marvell/armada-385-linksys-rango.dts
@@ -12,8 +12,8 @@
/ {
};
&expander0 {
---- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
-+++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+--- a/arch/arm/boot/dts/marvell/armada-xp-linksys-mamba.dts
++++ b/arch/arm/boot/dts/marvell/armada-xp-linksys-mamba.dts
@@ -22,9 +22,10 @@
#include "armada-xp-mv78230.dtsi"
aliases {
led-boot = &led_power;
---- a/arch/arm/boot/dts/armada-385-linksys-cobra.dts
-+++ b/arch/arm/boot/dts/armada-385-linksys-cobra.dts
+--- a/arch/arm/boot/dts/marvell/armada-385-linksys-cobra.dts
++++ b/arch/arm/boot/dts/marvell/armada-385-linksys-cobra.dts
@@ -9,8 +9,9 @@
#include "armada-385-linksys.dtsi"
"marvell,armada380";
};
---- a/arch/arm/boot/dts/armada-385-linksys-caiman.dts
-+++ b/arch/arm/boot/dts/armada-385-linksys-caiman.dts
+--- a/arch/arm/boot/dts/marvell/armada-385-linksys-caiman.dts
++++ b/arch/arm/boot/dts/marvell/armada-385-linksys-caiman.dts
@@ -10,8 +10,8 @@
/ {
};
&expander0 {
---- a/arch/arm/boot/dts/armada-385-linksys-shelby.dts
-+++ b/arch/arm/boot/dts/armada-385-linksys-shelby.dts
+--- a/arch/arm/boot/dts/marvell/armada-385-linksys-shelby.dts
++++ b/arch/arm/boot/dts/marvell/armada-385-linksys-shelby.dts
@@ -10,7 +10,8 @@
/ {
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
- .../arm/boot/dts/armada-388-clearfog-base.dts | 1 +
+ .../arm/boot/dts/marvell/armada-388-clearfog-base.dts | 1 +
.../armada-38x-solidrun-microsom-emmc.dtsi | 62 +++++++++++++++++++
2 files changed, 63 insertions(+)
- create mode 100644 arch/arm/boot/dts/armada-38x-solidrun-microsom-emmc.dtsi
+ create mode 100644 arch/arm/boot/dts/marvell/armada-38x-solidrun-microsom-emmc.dtsi
---- a/arch/arm/boot/dts/armada-388-clearfog-base.dts
-+++ b/arch/arm/boot/dts/armada-388-clearfog-base.dts
+--- a/arch/arm/boot/dts/marvell/armada-388-clearfog-base.dts
++++ b/arch/arm/boot/dts/marvell/armada-388-clearfog-base.dts
@@ -7,6 +7,7 @@
/dts-v1/;
/ {
model = "SolidRun Clearfog Base A1";
--- /dev/null
-+++ b/arch/arm/boot/dts/armada-38x-solidrun-microsom-emmc.dtsi
++++ b/arch/arm/boot/dts/marvell/armada-38x-solidrun-microsom-emmc.dtsi
@@ -0,0 +1,62 @@
+/*
+ * Device Tree file for SolidRun Armada 38x Microsom add-on for eMMC
---- a/arch/arm/boot/dts/armada-388-helios4.dts
-+++ b/arch/arm/boot/dts/armada-388-helios4.dts
+--- a/arch/arm/boot/dts/marvell/armada-388-helios4.dts
++++ b/arch/arm/boot/dts/marvell/armada-388-helios4.dts
@@ -15,6 +15,13 @@
model = "Helios4";
compatible = "kobol,helios4", "marvell,armada388",
Signed-off-by: Tad Davanzo <tad@spotco.us>
---
- arch/arm/boot/dts/armada-xp-linksys-mamba.dts | 8 ++++----
+ arch/arm/boot/dts/marvell/armada-xp-linksys-mamba.dts | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
---- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
-+++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+--- a/arch/arm/boot/dts/marvell/armada-xp-linksys-mamba.dts
++++ b/arch/arm/boot/dts/marvell/armada-xp-linksys-mamba.dts
@@ -454,9 +454,9 @@
reg = <0xa00000 0x2800000>; /* 40MB */
};
---- a/arch/arm/boot/dts/armada-370.dtsi
-+++ b/arch/arm/boot/dts/armada-370.dtsi
+--- a/arch/arm/boot/dts/marvell/armada-370.dtsi
++++ b/arch/arm/boot/dts/marvell/armada-370.dtsi
@@ -254,7 +254,7 @@
clocks = <&gateclk 23>;
clock-names = "cesa0";
---- a/arch/arm/boot/dts/armada-370-synology-ds213j.dts
-+++ b/arch/arm/boot/dts/armada-370-synology-ds213j.dts
+--- a/arch/arm/boot/dts/marvell/armada-370-synology-ds213j.dts
++++ b/arch/arm/boot/dts/marvell/armada-370-synology-ds213j.dts
@@ -31,6 +31,7 @@
chosen {