aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/kirkwood/config-5.4282
-rw-r--r--target/linux/kirkwood/patches-5.4/001-ARM-dts-kirkwood-Add-Check-Point-L-50-board.patch485
-rw-r--r--target/linux/kirkwood/patches-5.4/100-ib62x0.patch53
-rw-r--r--target/linux/kirkwood/patches-5.4/101-iconnect.patch80
-rw-r--r--target/linux/kirkwood/patches-5.4/102-dockstar.patch62
-rw-r--r--target/linux/kirkwood/patches-5.4/103-iomega-ix2-200.patch67
-rw-r--r--target/linux/kirkwood/patches-5.4/105-linksys-viper-dts.patch59
-rw-r--r--target/linux/kirkwood/patches-5.4/106-goflexnet.patch53
-rw-r--r--target/linux/kirkwood/patches-5.4/107-01-zyxel-nsa3x0-common-nand-partitions.patch48
-rw-r--r--target/linux/kirkwood/patches-5.4/107-03-nsa325.patch54
-rw-r--r--target/linux/kirkwood/patches-5.4/109-pogoplug_v4.patch87
-rw-r--r--target/linux/kirkwood/patches-5.4/110-pogo_e02.patch68
-rw-r--r--target/linux/kirkwood/patches-5.4/111-l-50.patch47
-rw-r--r--target/linux/kirkwood/patches-5.4/112-sheevaplug.patch47
-rw-r--r--target/linux/kirkwood/patches-5.4/113-readynas_duo_v2.patch76
-rw-r--r--target/linux/kirkwood/patches-5.4/201-enable-sata-port-specific-led-triggers.patch10
-rw-r--r--target/linux/kirkwood/patches-5.4/202-linksys-find-active-root.patch62
-rw-r--r--target/linux/kirkwood/patches-5.4/203-blackarmor-nas220.patch99
-rw-r--r--target/linux/kirkwood/patches-5.4/800-power-reset-linkstation-poweroff-prepare-for-new-dev.patch101
-rw-r--r--target/linux/kirkwood/patches-5.4/801-power-reset-linkstation-poweroff-add-new-device.patch97
20 files changed, 0 insertions, 1937 deletions
diff --git a/target/linux/kirkwood/config-5.4 b/target/linux/kirkwood/config-5.4
deleted file mode 100644
index 258ddce5cf..0000000000
--- a/target/linux/kirkwood/config-5.4
+++ /dev/null
@@ -1,282 +0,0 @@
-CONFIG_ALIGNMENT_TRAP=y
-CONFIG_ARCH_32BIT_OFF_T=y
-CONFIG_ARCH_CLOCKSOURCE_DATA=y
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_ARCH_KEEP_MEMBLOCK=y
-CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
-CONFIG_ARCH_MULTIPLATFORM=y
-CONFIG_ARCH_MULTI_CPU_AUTO=y
-# CONFIG_ARCH_MULTI_V4 is not set
-# CONFIG_ARCH_MULTI_V4T is not set
-CONFIG_ARCH_MULTI_V4_V5=y
-CONFIG_ARCH_MULTI_V5=y
-CONFIG_ARCH_MVEBU=y
-CONFIG_ARCH_NR_GPIO=0
-CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARM=y
-# CONFIG_ARMADA_37XX_WATCHDOG is not set
-# CONFIG_ARMADA_THERMAL is not set
-CONFIG_ARM_APPENDED_DTB=y
-CONFIG_ARM_ATAG_DTB_COMPAT=y
-CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
-CONFIG_ARM_HAS_SG_CHAIN=y
-# CONFIG_ARM_KIRKWOOD_CPUIDLE is not set
-CONFIG_ARM_L1_CACHE_SHIFT=5
-# CONFIG_ARM_MVEBU_V7_CPUIDLE is not set
-CONFIG_ARM_PATCH_PHYS_VIRT=y
-# CONFIG_ARM_THUMB is not set
-CONFIG_ARM_UNWIND=y
-CONFIG_ATA=y
-CONFIG_ATAGS=y
-CONFIG_ATA_LEDS=y
-CONFIG_AUTO_ZRELADDR=y
-CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
-CONFIG_BLK_DEV_SD=y
-CONFIG_BLK_MQ_PCI=y
-CONFIG_BLK_SCSI_REQUEST=y
-CONFIG_CACHE_FEROCEON_L2=y
-# CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set
-CONFIG_CLKDEV_LOOKUP=y
-CONFIG_CLKSRC_MMIO=y
-CONFIG_CLONE_BACKWARDS=y
-CONFIG_COMMON_CLK=y
-CONFIG_COMPAT_32BIT_TIME=y
-CONFIG_CPU_32v5=y
-CONFIG_CPU_ABRT_EV5T=y
-CONFIG_CPU_CACHE_VIVT=y
-CONFIG_CPU_COPY_FEROCEON=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-CONFIG_CPU_FEROCEON=y
-# CONFIG_CPU_FEROCEON_OLD_ID is not set
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_PABRT_LEGACY=y
-CONFIG_CPU_PM=y
-CONFIG_CPU_THUMB_CAPABLE=y
-CONFIG_CPU_TLB_FEROCEON=y
-CONFIG_CPU_USE_DOMAINS=y
-CONFIG_CRC16=y
-# CONFIG_CRC32_SARWATE is not set
-CONFIG_CRC32_SLICEBY8=y
-CONFIG_CRYPTO_ACOMP2=y
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_DEFLATE=y
-CONFIG_CRYPTO_DES=y
-CONFIG_CRYPTO_DEV_MARVELL_CESA=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_HASH_INFO=y
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_LIB_DES=y
-CONFIG_CRYPTO_LZO=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_DEBUG_LL=y
-CONFIG_DEBUG_LL_INCLUDE="debug/8250.S"
-CONFIG_DEBUG_MVEBU_UART0_ALTERNATE=y
-# CONFIG_DEBUG_MVEBU_UART1_ALTERNATE is not set
-CONFIG_DEBUG_UART_8250=y
-# CONFIG_DEBUG_UART_8250_FLOW_CONTROL is not set
-CONFIG_DEBUG_UART_8250_SHIFT=2
-# CONFIG_DEBUG_UART_8250_WORD is not set
-CONFIG_DEBUG_UART_PHYS=0xf1012000
-CONFIG_DEBUG_UART_VIRT=0xfed12000
-CONFIG_DEBUG_UNCOMPRESS=y
-# CONFIG_DLCI is not set
-CONFIG_DMA_REMAP=y
-CONFIG_DNOTIFY=y
-CONFIG_DTC=y
-# CONFIG_EARLY_PRINTK is not set
-CONFIG_EDAC_ATOMIC_SCRUB=y
-CONFIG_EDAC_SUPPORT=y
-CONFIG_FIXED_PHY=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_FORCE_PCI=y
-CONFIG_FW_LOADER_PAGED_BUF=y
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_GENERIC_ATOMIC64=y
-CONFIG_GENERIC_BUG=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CPU_AUTOPROBE=y
-CONFIG_GENERIC_EARLY_IOREMAP=y
-CONFIG_GENERIC_IDLE_POLL_SETUP=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_GENERIC_PHY=y
-CONFIG_GENERIC_PINCONF=y
-CONFIG_GENERIC_SCHED_CLOCK=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GLOB=y
-CONFIG_GPIOLIB=y
-CONFIG_GPIOLIB_IRQCHIP=y
-CONFIG_GPIO_MVEBU=y
-CONFIG_GRO_CELLS=y
-CONFIG_HANDLE_DOMAIN_IRQ=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_HAS_DMA=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT_MAP=y
-CONFIG_HW_RANDOM=y
-CONFIG_HW_RANDOM_OMAP=y
-CONFIG_HZ_FIXED=0
-CONFIG_HZ_PERIODIC=y
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_MV64XXX=y
-# CONFIG_I2C_PXA is not set
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_IRQCHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_IRQ_FORCED_THREADING=y
-CONFIG_IRQ_WORK=y
-CONFIG_KIRKWOOD_CLK=y
-CONFIG_KIRKWOOD_THERMAL=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_NETXBIG=y
-CONFIG_LEDS_NS2=y
-CONFIG_LIBFDT=y
-CONFIG_LOCK_DEBUGGING_SUPPORT=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_MACH_KIRKWOOD=y
-CONFIG_MACH_MVEBU_ANY=y
-CONFIG_MANGLE_BOOTARGS=y
-CONFIG_MARVELL_PHY=y
-CONFIG_MDIO_BUS=y
-CONFIG_MDIO_DEVICE=y
-CONFIG_MEMFD_CREATE=y
-CONFIG_MIGRATION=y
-CONFIG_MODULES_USE_ELF_REL=y
-# CONFIG_MTD_CFI is not set
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_NAND_CORE=y
-CONFIG_MTD_NAND_ECC_SW_HAMMING=y
-# CONFIG_MTD_NAND_MARVELL is not set
-CONFIG_MTD_NAND_ORION=y
-CONFIG_MTD_RAW_NAND=y
-CONFIG_MTD_UBI=y
-CONFIG_MTD_UBI_BEB_LIMIT=20
-CONFIG_MTD_UBI_BLOCK=y
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MV643XX_ETH=y
-CONFIG_MVEBU_CLK_COMMON=y
-CONFIG_MVEBU_MBUS=y
-CONFIG_MVMDIO=y
-# CONFIG_MVNETA is not set
-# CONFIG_MVPP2 is not set
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_NEED_KUSER_HELPERS=y
-CONFIG_NEED_PER_CPU_KM=y
-CONFIG_NET_DEVLINK=y
-CONFIG_NET_DSA=y
-CONFIG_NET_DSA_MV88E6XXX=y
-CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
-CONFIG_NET_DSA_TAG_DSA=y
-CONFIG_NET_DSA_TAG_EDSA=y
-CONFIG_NET_SWITCHDEV=y
-CONFIG_NLS=y
-CONFIG_NVMEM=y
-CONFIG_OF=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_EARLY_FLATTREE=y
-CONFIG_OF_FLATTREE=y
-CONFIG_OF_GPIO=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_KOBJ=y
-CONFIG_OF_MDIO=y
-CONFIG_OF_NET=y
-CONFIG_OLD_SIGACTION=y
-CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_ORION_IRQCHIP=y
-CONFIG_ORION_TIMER=y
-CONFIG_ORION_WATCHDOG=y
-CONFIG_OUTER_CACHE=y
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_PCI=y
-CONFIG_PCI_BRIDGE_EMUL=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PCI_DOMAINS_GENERIC=y
-CONFIG_PCI_MVEBU=y
-CONFIG_PERF_USE_VMALLOC=y
-CONFIG_PGTABLE_LEVELS=2
-CONFIG_PHYLIB=y
-CONFIG_PHYLINK=y
-# CONFIG_PHY_MVEBU_A3700_UTMI is not set
-# CONFIG_PHY_MVEBU_A38X_COMPHY is not set
-CONFIG_PHY_MVEBU_SATA=y
-CONFIG_PINCTRL=y
-CONFIG_PINCTRL_KIRKWOOD=y
-CONFIG_PINCTRL_MVEBU=y
-# CONFIG_PINCTRL_SINGLE is not set
-CONFIG_PINCTRL_SX150X=y
-CONFIG_PLAT_ORION=y
-CONFIG_POWER_RESET=y
-CONFIG_POWER_RESET_GPIO=y
-CONFIG_POWER_RESET_LINKSTATION=y
-# CONFIG_POWER_RESET_QNAP is not set
-CONFIG_POWER_SUPPLY=y
-CONFIG_RATIONAL=y
-CONFIG_REFCOUNT_FULL=y
-CONFIG_REGMAP=y
-CONFIG_REGMAP_MMIO=y
-CONFIG_REGULATOR=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_MV=y
-CONFIG_RTC_I2C_AND_SPI=y
-CONFIG_RTC_MC146818_LIB=y
-CONFIG_SATA_PMP=y
-CONFIG_SCSI=y
-CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
-CONFIG_SERIAL_8250_FSL=y
-CONFIG_SERIAL_MCTRL_GPIO=y
-# CONFIG_SERIAL_MVEBU_UART is not set
-CONFIG_SERIAL_OF_PLATFORM=y
-CONFIG_SGL_ALLOC=y
-CONFIG_SG_POOL=y
-CONFIG_SOC_BUS=y
-CONFIG_SPARSE_IRQ=y
-CONFIG_SPI=y
-# CONFIG_SPI_ARMADA_3700 is not set
-CONFIG_SPI_MASTER=y
-CONFIG_SPI_ORION=y
-CONFIG_SPLIT_PTLOCK_CPUS=999999
-CONFIG_SRAM=y
-CONFIG_SRAM_EXEC=y
-CONFIG_SRCU=y
-CONFIG_SWPHY=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_THERMAL=y
-CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
-CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
-CONFIG_THERMAL_GOV_STEP_WISE=y
-CONFIG_THERMAL_OF=y
-CONFIG_TICK_CPU_ACCOUNTING=y
-CONFIG_TIMER_OF=y
-CONFIG_TIMER_PROBE=y
-CONFIG_TINY_SRCU=y
-CONFIG_UBIFS_FS=y
-CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
-CONFIG_UNWINDER_ARM=y
-CONFIG_USB=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_LED_TRIG=y
-CONFIG_USB_SUPPORT=y
-CONFIG_USE_OF=y
-# CONFIG_VFP is not set
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_WAN=y
-CONFIG_WATCHDOG_CORE=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_BCJ=y
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_ZLIB_INFLATE=y
diff --git a/target/linux/kirkwood/patches-5.4/001-ARM-dts-kirkwood-Add-Check-Point-L-50-board.patch b/target/linux/kirkwood/patches-5.4/001-ARM-dts-kirkwood-Add-Check-Point-L-50-board.patch
deleted file mode 100644
index 52caee7b40..0000000000
--- a/target/linux/kirkwood/patches-5.4/001-ARM-dts-kirkwood-Add-Check-Point-L-50-board.patch
+++ /dev/null
@@ -1,485 +0,0 @@
-From efa968c18abab78c5e0c40a853caf286c3629a59 Mon Sep 17 00:00:00 2001
-From: Pawel Dembicki <paweldembicki@gmail.com>
-Date: Tue, 17 Mar 2020 21:28:01 +0100
-Subject: [PATCH v3] ARM: dts: kirkwood: Add Check Point L-50 board
-
-This patch adds dts for the Check Point L-50 from 600/1100 series
-routers.
-
-Specification:
--CPU: Marvell Kirkwood 88F6821 1200MHz
--RAM: 512MB
--Flash: NAND 512MB
--WiFi: mPCIe card based on Atheros AR9287 b/g/n
--WAN: 1 Gigabit Port (Marvell 88E1116R PHY)
--LAN: 9 Gigabit Ports (2x Marvell 88E6171(5+3))
--USB: 2x USB2.0
--Express card slot
--SD card slot
--Serial console: RJ-45 115200 8n1
--Unsupported DSL
-
-Reviewed-by: Andrew Lunn <andrew@lunn.ch>
-Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
----
-Changes in v3:
-- fix typo and code style issues pointed by OpenWrt guys
-Changes in v2:
-- none
-
- arch/arm/boot/dts/Makefile | 1 +
- arch/arm/boot/dts/kirkwood-l-50.dts | 438 ++++++++++++++++++++++++++++
- 2 files changed, 439 insertions(+)
- create mode 100644 arch/arm/boot/dts/kirkwood-l-50.dts
-
---- a/arch/arm/boot/dts/Makefile
-+++ b/arch/arm/boot/dts/Makefile
-@@ -270,6 +270,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
- kirkwood-iomega_ix2_200.dtb \
- kirkwood-is2.dtb \
- kirkwood-km_kirkwood.dtb \
-+ kirkwood-l-50.dtb \
- kirkwood-laplug.dtb \
- kirkwood-linkstation-lsqvl.dtb \
- kirkwood-linkstation-lsvl.dtb \
---- /dev/null
-+++ b/arch/arm/boot/dts/kirkwood-l-50.dts
-@@ -0,0 +1,438 @@
-+// SPDX-License-Identifier: GPL-2.0
-+/*
-+ * Check Point L-50 Board Description
-+ * Copyright 2020 Pawel Dembicki <paweldembicki@gmail.com>
-+ */
-+
-+/dts-v1/;
-+
-+#include "kirkwood.dtsi"
-+#include "kirkwood-6281.dtsi"
-+
-+/ {
-+ model = "Check Point L-50";
-+ compatible = "checkpoint,l-50", "marvell,kirkwood-88f6281", "marvell,kirkwood";
-+
-+ memory {
-+ device_type = "memory";
-+ reg = <0x00000000 0x20000000>;
-+ };
-+
-+ chosen {
-+ bootargs = "console=ttyS0,115200n8";
-+ stdout-path = &uart0;
-+ };
-+
-+ ocp@f1000000 {
-+ pinctrl: pin-controller@10000 {
-+ pinctrl-0 = <&pmx_led38 &pmx_sysrst &pmx_button29>;
-+ pinctrl-names = "default";
-+
-+ pmx_sysrst: pmx-sysrst {
-+ marvell,pins = "mpp6";
-+ marvell,function = "sysrst";
-+ };
-+
-+ pmx_button29: pmx_button29 {
-+ marvell,pins = "mpp29";
-+ marvell,function = "gpio";
-+ };
-+
-+ pmx_led38: pmx_led38 {
-+ marvell,pins = "mpp38";
-+ marvell,function = "gpio";
-+ };
-+
-+ pmx_sdio_cd: pmx-sdio-cd {
-+ marvell,pins = "mpp46";
-+ marvell,function = "gpio";
-+ };
-+ };
-+
-+ serial@12000 {
-+ status = "okay";
-+ };
-+
-+ mvsdio@90000 {
-+ status = "okay";
-+ cd-gpios = <&gpio1 14 9>;
-+ };
-+
-+ i2c@11000 {
-+ status = "okay";
-+ clock-frequency = <400000>;
-+
-+ gpio2: gpio-expander@20{
-+ #gpio-cells = <2>;
-+ #interrupt-cells = <2>;
-+ compatible = "semtech,sx1505q";
-+ reg = <0x20>;
-+
-+ gpio-controller;
-+ };
-+
-+ /* Three GPIOs from 0x21 exp. are undescribed in dts:
-+ * 1: DSL module reset (active low)
-+ * 5: mPCIE reset (active low)
-+ * 6: Express card reset (active low)
-+ */
-+ gpio3: gpio-expander@21{
-+ #gpio-cells = <2>;
-+ #interrupt-cells = <2>;
-+ compatible = "semtech,sx1505q";
-+ reg = <0x21>;
-+
-+ gpio-controller;
-+ };
-+
-+ rtc@30 {
-+ compatible = "s35390a";
-+ reg = <0x30>;
-+ };
-+ };
-+ };
-+
-+ leds {
-+ compatible = "gpio-leds";
-+
-+ status_green {
-+ label = "l-50:green:status";
-+ gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ status_red {
-+ label = "l-50:red:status";
-+ gpios = <&gpio3 2 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ wifi {
-+ label = "l-50:green:wifi";
-+ gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
-+ linux,default-trigger = "phy0tpt";
-+ };
-+
-+ internet_green {
-+ label = "l-50:green:internet";
-+ gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ internet_red {
-+ label = "l-50:red:internet";
-+ gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ usb1_green {
-+ label = "l-50:green:usb1";
-+ gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
-+ linux,default-trigger = "usbport";
-+ trigger-sources = <&hub_port3>;
-+ };
-+
-+ usb1_red {
-+ label = "l-50:red:usb1";
-+ gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
-+ };
-+
-+ usb2_green {
-+ label = "l-50:green:usb2";
-+ gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
-+ linux,default-trigger = "usbport";
-+ trigger-sources = <&hub_port1>;
-+ };
-+
-+ usb2_red {
-+ label = "l-50:red:usb2";
-+ gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
-+ };
-+ };
-+
-+ usb2_pwr {
-+ compatible = "regulator-fixed";
-+ regulator-name = "usb2_pwr";
-+
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ gpio = <&gpio3 3 GPIO_ACTIVE_LOW>;
-+ regulator-always-on;
-+ };
-+
-+ usb1_pwr {
-+ compatible = "regulator-fixed";
-+ regulator-name = "usb1_pwr";
-+
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ gpio = <&gpio3 4 GPIO_ACTIVE_LOW>;
-+ regulator-always-on;
-+ };
-+
-+ mpcie_pwr {
-+ compatible = "regulator-fixed";
-+ regulator-name = "mpcie_pwr";
-+
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ gpio = <&gpio3 5 GPIO_ACTIVE_HIGH>;
-+ enable-active-high;
-+ regulator-always-on;
-+ };
-+
-+ express_card_pwr {
-+ compatible = "regulator-fixed";
-+ regulator-name = "express_card_pwr";
-+
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
-+ enable-active-high;
-+ regulator-always-on;
-+ };
-+
-+ keys {
-+ compatible = "gpio-keys";
-+
-+ factory_defaults {
-+ label = "factory_defaults";
-+ gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
-+ linux,code = <KEY_RESTART>;
-+ };
-+ };
-+};
-+
-+&mdio {
-+ status = "okay";
-+
-+ ethphy8: ethernet-phy@8 {
-+ reg = <0x08>;
-+ };
-+
-+ switch0: switch@10 {
-+ compatible = "marvell,mv88e6085";
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ reg = <0x10>;
-+ dsa,member = <0 0>;
-+
-+ ports {
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ port@0 {
-+ reg = <0>;
-+ label = "lan5";
-+ };
-+
-+ port@1 {
-+ reg = <1>;
-+ label = "lan1";
-+ };
-+
-+ port@2 {
-+ reg = <2>;
-+ label = "lan6";
-+ };
-+
-+ port@3 {
-+ reg = <3>;
-+ label = "lan2";
-+ };
-+
-+ port@4 {
-+ reg = <4>;
-+ label = "lan7";
-+ };
-+
-+ switch0port5: port@5 {
-+ reg = <5>;
-+ phy-mode = "rgmii-txid";
-+ link = <&switch1port5>;
-+ fixed-link {
-+ speed = <1000>;
-+ full-duplex;
-+ };
-+ };
-+
-+ port@6 {
-+ reg = <6>;
-+ label = "cpu";
-+ phy-mode = "rgmii-id";
-+ ethernet = <&eth1port>;
-+ fixed-link {
-+ speed = <1000>;
-+ full-duplex;
-+ };
-+ };
-+ };
-+ };
-+
-+ switch@11 {
-+ compatible = "marvell,mv88e6085";
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ reg = <0x11>;
-+ dsa,member = <0 1>;
-+
-+ ports {
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ port@0 {
-+ reg = <0>;
-+ label = "lan3";
-+ };
-+
-+ port@1 {
-+ reg = <1>;
-+ label = "lan8";
-+ };
-+
-+ port@2 {
-+ reg = <2>;
-+ label = "lan4";
-+ };
-+
-+ port@3 {
-+ reg = <3>;
-+ label = "dmz";
-+ };
-+
-+ switch1port5: port@5 {
-+ reg = <5>;
-+ phy-mode = "rgmii-txid";
-+ link = <&switch0port5>;
-+ fixed-link {
-+ speed = <1000>;
-+ full-duplex;
-+ };
-+ };
-+
-+ port@6 {
-+ reg = <6>;
-+ label = "dsl";
-+ fixed-link {
-+ speed = <100>;
-+ full-duplex;
-+ };
-+ };
-+ };
-+ };
-+};
-+
-+&eth0 {
-+ status = "okay";
-+ ethernet0-port@0 {
-+ phy-handle = <&ethphy8>;
-+ };
-+};
-+
-+&eth1 {
-+ status = "okay";
-+ ethernet1-port@0 {
-+ speed = <1000>;
-+ duplex = <1>;
-+ };
-+};
-+
-+&nand {
-+ status = "okay";
-+ pinctrl-0 = <&pmx_nand>;
-+ pinctrl-names = "default";
-+
-+ partition@0 {
-+ label = "u-boot";
-+ reg = <0x00000000 0x000c0000>;
-+ };
-+
-+ partition@a0000 {
-+ label = "bootldr-env";
-+ reg = <0x000c0000 0x00040000>;
-+ };
-+
-+ partition@100000 {
-+ label = "kernel-1";
-+ reg = <0x00100000 0x00800000>;
-+ };
-+
-+ partition@900000 {
-+ label = "rootfs-1";
-+ reg = <0x00900000 0x07100000>;
-+ };
-+
-+ partition@7a00000 {
-+ label = "kernel-2";
-+ reg = <0x07a00000 0x00800000>;
-+ };
-+
-+ partition@8200000 {
-+ label = "rootfs-2";
-+ reg = <0x08200000 0x07100000>;
-+ };
-+
-+ partition@f300000 {
-+ label = "default_sw";
-+ reg = <0x0f300000 0x07900000>;
-+ };
-+
-+ partition@16c00000 {
-+ label = "logs";
-+ reg = <0x16c00000 0x01800000>;
-+ };
-+
-+ partition@18400000 {
-+ label = "preset_cfg";
-+ reg = <0x18400000 0x00100000>;
-+ };
-+
-+ partition@18500000 {
-+ label = "adsl";
-+ reg = <0x18500000 0x00100000>;
-+ };
-+
-+ partition@18600000 {
-+ label = "storage";
-+ reg = <0x18600000 0x07a00000>;
-+ };
-+};
-+
-+&rtc {
-+ status = "disabled";
-+};
-+
-+&pciec {
-+ status = "okay";
-+};
-+
-+&pcie0 {
-+ status = "okay";
-+};
-+
-+&sata_phy0 {
-+ status = "disabled";
-+};
-+
-+&sata_phy1 {
-+ status = "disabled";
-+};
-+
-+&usb0 {
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ status = "okay";
-+
-+ port@1 {
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ reg = <1>;
-+ #trigger-source-cells = <0>;
-+
-+ hub_port1: port@1 {
-+ reg = <1>;
-+ #trigger-source-cells = <0>;
-+ };
-+
-+ hub_port3: port@3 {
-+ reg = <3>;
-+ #trigger-source-cells = <0>;
-+ };
-+ };
-+};
diff --git a/target/linux/kirkwood/patches-5.4/100-ib62x0.patch b/target/linux/kirkwood/patches-5.4/100-ib62x0.patch
deleted file mode 100644
index 0637c24b63..0000000000
--- a/target/linux/kirkwood/patches-5.4/100-ib62x0.patch
+++ /dev/null
@@ -1,53 +0,0 @@
---- a/arch/arm/boot/dts/kirkwood-ib62x0.dts
-+++ b/arch/arm/boot/dts/kirkwood-ib62x0.dts
-@@ -6,7 +6,14 @@
-
- / {
- model = "RaidSonic ICY BOX IB-NAS62x0 (Rev B)";
-- compatible = "raidsonic,ib-nas6210-b", "raidsonic,ib-nas6220-b", "raidsonic,ib-nas6210", "raidsonic,ib-nas6220", "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood";
-+ compatible = "raidsonic,ib-nas62x0", "marvell,kirkwood-88f6281", "marvell,kirkwood";
-+
-+ aliases {
-+ led-boot = &led_green_os;
-+ led-failsafe = &led_red_os;
-+ led-running = &led_green_os;
-+ led-upgrade = &led_red_os;
-+ };
-
- memory {
- device_type = "memory";
-@@ -81,12 +88,12 @@
- &pmx_led_usb_transfer>;
- pinctrl-names = "default";
-
-- green-os {
-+ led_green_os: green-os {
- label = "ib62x0:green:os";
- gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>;
-- default-state = "keep";
-+ default-state = "on";
- };
-- red-os {
-+ led_red_os: red-os {
- label = "ib62x0:red:os";
- gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
- };
-@@ -118,13 +125,13 @@
- };
-
- partition@100000 {
-- label = "uImage";
-- reg = <0x0100000 0x600000>;
-+ label = "second stage u-boot";
-+ reg = <0x100000 0x200000>;
- };
-
-- partition@700000 {
-- label = "root";
-- reg = <0x0700000 0xf900000>;
-+ partition@200000 {
-+ label = "ubi";
-+ reg = <0x200000 0xfe00000>;
- };
-
- };
diff --git a/target/linux/kirkwood/patches-5.4/101-iconnect.patch b/target/linux/kirkwood/patches-5.4/101-iconnect.patch
deleted file mode 100644
index 935e2dfcf5..0000000000
--- a/target/linux/kirkwood/patches-5.4/101-iconnect.patch
+++ /dev/null
@@ -1,80 +0,0 @@
---- a/arch/arm/boot/dts/kirkwood-iconnect.dts
-+++ b/arch/arm/boot/dts/kirkwood-iconnect.dts
-@@ -8,6 +8,13 @@
- model = "Iomega Iconnect";
- compatible = "iom,iconnect-1.1", "iom,iconnect", "marvell,kirkwood-88f6281", "marvell,kirkwood";
-
-+ aliases {
-+ led-boot = &led_power_blue;
-+ led-failsafe = &led_power_red;
-+ led-running = &led_power_blue;
-+ led-upgrade = &led_power_red;
-+ };
-+
- memory {
- device_type = "memory";
- reg = <0x00000000 0x10000000>;
-@@ -16,8 +23,6 @@
- chosen {
- bootargs = "console=ttyS0,115200n8 earlyprintk";
- stdout-path = &uart0;
-- linux,initrd-start = <0x4500040>;
-- linux,initrd-end = <0x4800000>;
- };
-
- ocp@f1000000 {
-@@ -89,12 +94,12 @@
- gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
- default-state = "on";
- };
-- power-blue {
-+ led_power_blue: power-blue {
- label = "power:blue";
- gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
-- default-state = "keep";
-+ default-state = "on";
- };
-- power-red {
-+ led_power_red: power-red {
- label = "power:red";
- gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
- };
-@@ -146,28 +151,23 @@
- status = "okay";
-
- partition@0 {
-- label = "uboot";
-- reg = <0x0000000 0xc0000>;
-+ label = "u-boot";
-+ reg = <0x0000000 0xe0000>;
- };
-
-- partition@a0000 {
-- label = "env";
-- reg = <0xa0000 0x20000>;
-+ partition@e0000 {
-+ label = "u-boot environment";
-+ reg = <0xe0000 0x100000>;
- };
-
- partition@100000 {
-- label = "zImage";
-- reg = <0x100000 0x300000>;
-- };
--
-- partition@540000 {
-- label = "initrd";
-- reg = <0x540000 0x300000>;
-+ label = "second stage u-boot";
-+ reg = <0x100000 0x200000>;
- };
-
-- partition@980000 {
-- label = "boot";
-- reg = <0x980000 0x1f400000>;
-+ partition@200000 {
-+ label = "ubi";
-+ reg = <0x200000 0x1fe00000>;
- };
- };
-
diff --git a/target/linux/kirkwood/patches-5.4/102-dockstar.patch b/target/linux/kirkwood/patches-5.4/102-dockstar.patch
deleted file mode 100644
index 127f84962c..0000000000
--- a/target/linux/kirkwood/patches-5.4/102-dockstar.patch
+++ /dev/null
@@ -1,62 +0,0 @@
---- a/arch/arm/boot/dts/kirkwood-dockstar.dts
-+++ b/arch/arm/boot/dts/kirkwood-dockstar.dts
-@@ -8,6 +8,13 @@
- model = "Seagate FreeAgent Dockstar";
- compatible = "seagate,dockstar", "marvell,kirkwood-88f6281", "marvell,kirkwood";
-
-+ aliases {
-+ led-boot = &led_health;
-+ led-failsafe = &led_fault;
-+ led-running = &led_health;
-+ led-upgrade = &led_fault;
-+ };
-+
- memory {
- device_type = "memory";
- reg = <0x00000000 0x8000000>;
-@@ -42,12 +49,12 @@
- pinctrl-0 = <&pmx_led_green &pmx_led_orange>;
- pinctrl-names = "default";
-
-- health {
-+ led_health: health {
- label = "status:green:health";
- gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
-- default-state = "keep";
-+ default-state = "on";
- };
-- fault {
-+ led_fault: fault {
- label = "status:orange:fault";
- gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
- };
-@@ -78,18 +85,22 @@
-
- partition@0 {
- label = "u-boot";
-- reg = <0x0000000 0x100000>;
-- read-only;
-+ reg = <0x0000000 0xe0000>;
-+ };
-+
-+ partition@e0000 {
-+ label = "u-boot environment";
-+ reg = <0xe0000 0x100000>;
- };
-
- partition@100000 {
-- label = "uImage";
-- reg = <0x0100000 0x400000>;
-+ label = "second stage u-boot";
-+ reg = <0x100000 0x200000>;
- };
-
-- partition@500000 {
-- label = "data";
-- reg = <0x0500000 0xfb00000>;
-+ partition@200000 {
-+ label = "ubi";
-+ reg = <0x200000 0xfe00000>;
- };
- };
-
diff --git a/target/linux/kirkwood/patches-5.4/103-iomega-ix2-200.patch b/target/linux/kirkwood/patches-5.4/103-iomega-ix2-200.patch
deleted file mode 100644
index 9313b4bc3e..0000000000
--- a/target/linux/kirkwood/patches-5.4/103-iomega-ix2-200.patch
+++ /dev/null
@@ -1,67 +0,0 @@
---- a/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
-+++ b/arch/arm/boot/dts/kirkwood-iomega_ix2_200.dts
-@@ -8,6 +8,13 @@
- model = "Iomega StorCenter ix2-200";
- compatible = "iom,ix2-200", "marvell,kirkwood-88f6281", "marvell,kirkwood";
-
-+ aliases {
-+ led-boot = &led_power;
-+ led-failsafe = &led_health;
-+ led-running = &led_power;
-+ led-upgrade = &led_health;
-+ };
-+
- memory {
- device_type = "memory";
- reg = <0x00000000 0x10000000>;
-@@ -127,16 +134,16 @@
- &pmx_led_rebuild &pmx_led_health >;
- pinctrl-names = "default";
-
-- power_led {
-+ led_power: power_led {
- label = "status:white:power_led";
- gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
-- default-state = "keep";
-+ default-state = "on";
- };
- rebuild_led {
- label = "status:white:rebuild_led";
- gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
- };
-- health_led {
-+ led_health: health_led {
- label = "status:red:health_led";
- gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
- };
-@@ -186,18 +193,18 @@
- };
-
- partition@a0000 {
-- label = "env";
-+ label = "u-boot environment";
- reg = <0xa0000 0x20000>;
- read-only;
- };
-
- partition@100000 {
-- label = "uImage";
-+ label = "kernel";
- reg = <0x100000 0x300000>;
- };
-
- partition@400000 {
-- label = "rootfs";
-+ label = "ubi";
- reg = <0x400000 0x1C00000>;
- };
- };
-@@ -211,7 +218,7 @@
- };
-
- &eth0 {
-- status = "okay";
-+ status = "disabled";
- ethernet0-port@0 {
- speed = <1000>;
- duplex = <1>;
diff --git a/target/linux/kirkwood/patches-5.4/105-linksys-viper-dts.patch b/target/linux/kirkwood/patches-5.4/105-linksys-viper-dts.patch
deleted file mode 100644
index d56a469d94..0000000000
--- a/target/linux/kirkwood/patches-5.4/105-linksys-viper-dts.patch
+++ /dev/null
@@ -1,59 +0,0 @@
---- a/arch/arm/boot/dts/kirkwood-linksys-viper.dts
-+++ b/arch/arm/boot/dts/kirkwood-linksys-viper.dts
-@@ -24,6 +24,10 @@
- };
-
- aliases {
-+ led-boot = &led_white_health;
-+ led-failsafe = &led_white_health;
-+ led-running = &led_white_health;
-+ led-upgrade = &led_white_health;
- serial0 = &uart0;
- };
-
-@@ -56,9 +60,10 @@
- pinctrl-0 = < &pmx_led_white_health &pmx_led_white_pulse >;
- pinctrl-names = "default";
-
-- white-health {
-+ led_white_health: white-health {
- label = "viper:white:health";
- gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
-+ default-state = "on";
- };
-
- white-pulse {
-@@ -114,23 +119,23 @@
- };
-
- partition@200000 {
-- label = "kernel";
-- reg = <0x200000 0x2A0000>;
-+ label = "kernel1";
-+ reg = <0x200000 0x1A00000>;
- };
-
-- partition@4a0000 {
-- label = "rootfs";
-- reg = <0x4A0000 0x1760000>;
-+ partition@500000 {
-+ label = "rootfs1";
-+ reg = <0x500000 0x1700000>;
- };
-
- partition@1c00000 {
-- label = "alt_kernel";
-- reg = <0x1C00000 0x2A0000>;
-+ label = "kernel2";
-+ reg = <0x1C00000 0x1A00000>;
- };
-
-- partition@1ea0000 {
-- label = "alt_rootfs";
-- reg = <0x1EA0000 0x1760000>;
-+ partition@1f00000 {
-+ label = "rootfs2";
-+ reg = <0x1F00000 0x1700000>;
- };
-
- partition@3600000 {
diff --git a/target/linux/kirkwood/patches-5.4/106-goflexnet.patch b/target/linux/kirkwood/patches-5.4/106-goflexnet.patch
deleted file mode 100644
index 82cf90841e..0000000000
--- a/target/linux/kirkwood/patches-5.4/106-goflexnet.patch
+++ /dev/null
@@ -1,53 +0,0 @@
---- a/arch/arm/boot/dts/kirkwood-goflexnet.dts
-+++ b/arch/arm/boot/dts/kirkwood-goflexnet.dts
-@@ -8,6 +8,13 @@
- model = "Seagate GoFlex Net";
- compatible = "seagate,goflexnet", "marvell,kirkwood-88f6281", "marvell,kirkwood";
-
-+ aliases {
-+ led-boot = &led_health;
-+ led-failsafe = &led_fault;
-+ led-running = &led_health;
-+ led-upgrade = &led_fault;
-+ };
-+
- memory {
- device_type = "memory";
- reg = <0x00000000 0x8000000>;
-@@ -85,12 +92,12 @@
- >;
- pinctrl-names = "default";
-
-- health {
-+ led_health: health {
- label = "status:green:health";
- gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
-- default-state = "keep";
-+ default-state = "on";
- };
-- fault {
-+ led_fault: fault {
- label = "status:orange:fault";
- gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
- };
-@@ -159,18 +166,8 @@
- };
-
- partition@100000 {
-- label = "uImage";
-- reg = <0x0100000 0x400000>;
-- };
--
-- partition@500000 {
-- label = "pogoplug";
-- reg = <0x0500000 0x2000000>;
-- };
--
-- partition@2500000 {
-- label = "root";
-- reg = <0x02500000 0xd800000>;
-+ label = "ubi";
-+ reg = <0x0100000 0x0ff00000>;
- };
- };
-
diff --git a/target/linux/kirkwood/patches-5.4/107-01-zyxel-nsa3x0-common-nand-partitions.patch b/target/linux/kirkwood/patches-5.4/107-01-zyxel-nsa3x0-common-nand-partitions.patch
deleted file mode 100644
index df654033fd..0000000000
--- a/target/linux/kirkwood/patches-5.4/107-01-zyxel-nsa3x0-common-nand-partitions.patch
+++ /dev/null
@@ -1,48 +0,0 @@
---- a/arch/arm/boot/dts/kirkwood-nsa3x0-common.dtsi
-+++ b/arch/arm/boot/dts/kirkwood-nsa3x0-common.dtsi
-@@ -112,40 +112,16 @@
-
- partition@0 {
- label = "uboot";
-- reg = <0x0000000 0x0100000>;
-+ reg = <0x0000000 0x00c0000>;
- read-only;
- };
- partition@100000 {
- label = "uboot_env";
-- reg = <0x0100000 0x0080000>;
-+ reg = <0x00c0000 0x0080000>;
- };
-- partition@180000 {
-- label = "key_store";
-- reg = <0x0180000 0x0080000>;
-- };
-- partition@200000 {
-- label = "info";
-- reg = <0x0200000 0x0080000>;
-- };
-- partition@280000 {
-- label = "etc";
-- reg = <0x0280000 0x0a00000>;
-- };
-- partition@c80000 {
-- label = "kernel_1";
-- reg = <0x0c80000 0x0a00000>;
-- };
-- partition@1680000 {
-- label = "rootfs1";
-- reg = <0x1680000 0x2fc0000>;
-- };
-- partition@4640000 {
-- label = "kernel_2";
-- reg = <0x4640000 0x0a00000>;
-- };
-- partition@5040000 {
-- label = "rootfs2";
-- reg = <0x5040000 0x2fc0000>;
-+ partition@140000 {
-+ label = "ubi";
-+ reg = <0x0140000 0x7ec0000>;
- };
- };
-
diff --git a/target/linux/kirkwood/patches-5.4/107-03-nsa325.patch b/target/linux/kirkwood/patches-5.4/107-03-nsa325.patch
deleted file mode 100644
index 374c0895a9..0000000000
--- a/target/linux/kirkwood/patches-5.4/107-03-nsa325.patch
+++ /dev/null
@@ -1,54 +0,0 @@
---- a/arch/arm/boot/dts/kirkwood-nsa325.dts
-+++ b/arch/arm/boot/dts/kirkwood-nsa325.dts
-@@ -15,6 +15,13 @@
- model = "ZyXEL NSA325";
- compatible = "zyxel,nsa325", "marvell,kirkwood-88f6282", "marvell,kirkwood";
-
-+ aliases {
-+ led-boot = &led_green_sys;
-+ led-failsafe = &led_orange_sys;
-+ led-running = &led_green_sys;
-+ led-upgrade = &led_orange_sys;
-+ };
-+
- memory {
- device_type = "memory";
- reg = <0x00000000 0x20000000>;
-@@ -162,17 +169,19 @@
- &pmx_led_hdd1_green &pmx_led_hdd1_red>;
- pinctrl-names = "default";
-
-- green-sys {
-+ led_green_sys: green-sys {
- label = "nsa325:green:sys";
- gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
-+ default-state = "on";
- };
-- orange-sys {
-+ led_orange_sys: orange-sys {
- label = "nsa325:orange:sys";
- gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
- };
- green-hdd1 {
- label = "nsa325:green:hdd1";
- gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
-+ linux,default-trigger = "ata1";
- };
- red-hdd1 {
- label = "nsa325:red:hdd1";
-@@ -181,6 +190,7 @@
- green-hdd2 {
- label = "nsa325:green:hdd2";
- gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
-+ linux,default-trigger = "ata2";
- };
- red-hdd2 {
- label = "nsa325:red:hdd2";
-@@ -189,6 +199,7 @@
- green-usb {
- label = "nsa325:green:usb";
- gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
-+ linux,default-trigger = "usb-host";
- };
- green-copy {
- label = "nsa325:green:copy";
diff --git a/target/linux/kirkwood/patches-5.4/109-pogoplug_v4.patch b/target/linux/kirkwood/patches-5.4/109-pogoplug_v4.patch
deleted file mode 100644
index 4273eb9af1..0000000000
--- a/target/linux/kirkwood/patches-5.4/109-pogoplug_v4.patch
+++ /dev/null
@@ -1,87 +0,0 @@
---- a/arch/arm/boot/dts/kirkwood-pogoplug-series-4.dts
-+++ b/arch/arm/boot/dts/kirkwood-pogoplug-series-4.dts
-@@ -18,12 +18,20 @@
- compatible = "cloudengines,pogoplugv4", "marvell,kirkwood-88f6192",
- "marvell,kirkwood";
-
-+ aliases {
-+ led-boot = &led_health;
-+ led-failsafe = &led_fault;
-+ led-running = &led_health;
-+ led-upgrade = &led_fault;
-+ };
-+
- memory {
- device_type = "memory";
- reg = <0x00000000 0x08000000>;
- };
-
- chosen {
-+ bootargs = "console=ttyS0,115200";
- stdout-path = "uart0:115200n8";
- };
-
-@@ -37,8 +45,8 @@
- eject {
- debounce-interval = <50>;
- wakeup-source;
-- linux,code = <KEY_EJECTCD>;
-- label = "Eject Button";
-+ linux,code = <KEY_RESTART>;
-+ label = "Reset";
- gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
- };
- };
-@@ -48,12 +56,12 @@
- pinctrl-0 = <&pmx_led_green &pmx_led_red>;
- pinctrl-names = "default";
-
-- health {
-+ led_health: health {
- label = "pogoplugv4:green:health";
- gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
- default-state = "on";
- };
-- fault {
-+ led_fault: fault {
- label = "pogoplugv4:red:fault";
- gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
- };
-@@ -137,29 +145,19 @@
- #size-cells = <1>;
-
- partition@0 {
-- label = "u-boot";
-- reg = <0x00000000 0x200000>;
-+ label = "uboot";
-+ reg = <0x00000000 0x1c0000>;
- read-only;
- };
-
-- partition@200000 {
-- label = "uImage";
-- reg = <0x00200000 0x300000>;
-- };
--
-- partition@500000 {
-- label = "uImage2";
-- reg = <0x00500000 0x300000>;
-- };
--
-- partition@800000 {
-- label = "failsafe";
-- reg = <0x00800000 0x800000>;
-+ partition@1c0000 {
-+ label = "uboot_env";
-+ reg = <0x001c0000 0x40000>;
- };
-
-- partition@1000000 {
-- label = "root";
-- reg = <0x01000000 0x7000000>;
-+ partition@200000 {
-+ label = "ubi";
-+ reg = <0x00200000 0x7e00000>;
- };
- };
- };
diff --git a/target/linux/kirkwood/patches-5.4/110-pogo_e02.patch b/target/linux/kirkwood/patches-5.4/110-pogo_e02.patch
deleted file mode 100644
index fc384d3521..0000000000
--- a/target/linux/kirkwood/patches-5.4/110-pogo_e02.patch
+++ /dev/null
@@ -1,68 +0,0 @@
---- a/arch/arm/boot/dts/kirkwood-pogo_e02.dts
-+++ b/arch/arm/boot/dts/kirkwood-pogo_e02.dts
-@@ -20,6 +20,13 @@
- compatible = "cloudengines,pogoe02", "marvell,kirkwood-88f6281",
- "marvell,kirkwood";
-
-+ aliases {
-+ led-boot = &led_health;
-+ led-failsafe = &led_fault;
-+ led-running = &led_health;
-+ led-upgrade = &led_fault;
-+ };
-+
- memory {
- device_type = "memory";
- reg = <0x00000000 0x10000000>;
-@@ -33,12 +40,12 @@
- gpio-leds {
- compatible = "gpio-leds";
-
-- health {
-+ led_health: health {
- label = "pogo_e02:green:health";
- gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
-- default-state = "keep";
-+ default-state = "on";
- };
-- fault {
-+ led_fault: fault {
- label = "pogo_e02:orange:fault";
- gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
- };
-@@ -95,24 +102,24 @@
- status = "okay";
-
- partition@0 {
-- label = "u-boot";
-- reg = <0x0000000 0x100000>;
-+ label = "uboot";
-+ reg = <0x0 0xe0000>;
- read-only;
- };
-
-- partition@100000 {
-- label = "uImage";
-- reg = <0x0100000 0x400000>;
-+ partition@e0000 {
-+ label = "uboot_env";
-+ reg = <0xe0000 0x20000>;
- };
-
-- partition@500000 {
-- label = "pogoplug";
-- reg = <0x0500000 0x2000000>;
-+ partition@100000 {
-+ label = "second_stage_uboot";
-+ reg = <0x100000 0x100000>;
- };
-
-- partition@2500000 {
-- label = "root";
-- reg = <0x02500000 0x5b00000>;
-+ partition@200000 {
-+ label = "ubi";
-+ reg = <0x200000 0x7e00000>;
- };
- };
-
diff --git a/target/linux/kirkwood/patches-5.4/111-l-50.patch b/target/linux/kirkwood/patches-5.4/111-l-50.patch
deleted file mode 100644
index bc933cb610..0000000000
--- a/target/linux/kirkwood/patches-5.4/111-l-50.patch
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/arch/arm/boot/dts/kirkwood-l-50.dts
-+++ b/arch/arm/boot/dts/kirkwood-l-50.dts
-@@ -18,6 +18,13 @@
- reg = <0x00000000 0x20000000>;
- };
-
-+ 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,115200n8";
- stdout-path = &uart0;
-@@ -95,12 +102,12 @@
- leds {
- compatible = "gpio-leds";
-
-- status_green {
-+ led_status_green: status_green {
- label = "l-50:green:status";
- gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
- };
-
-- status_red {
-+ led_status_red: status_red {
- label = "l-50:red:status";
- gpios = <&gpio3 2 GPIO_ACTIVE_LOW>;
- };
-@@ -349,13 +356,8 @@
- };
-
- partition@100000 {
-- label = "kernel-1";
-- reg = <0x00100000 0x00800000>;
-- };
--
-- partition@900000 {
-- label = "rootfs-1";
-- reg = <0x00900000 0x07100000>;
-+ label = "ubi";
-+ reg = <0x00100000 0x07900000>;
- };
-
- partition@7a00000 {
diff --git a/target/linux/kirkwood/patches-5.4/112-sheevaplug.patch b/target/linux/kirkwood/patches-5.4/112-sheevaplug.patch
deleted file mode 100644
index d1ff9884a0..0000000000
--- a/target/linux/kirkwood/patches-5.4/112-sheevaplug.patch
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/arch/arm/boot/dts/kirkwood-sheevaplug-common.dtsi
-+++ b/arch/arm/boot/dts/kirkwood-sheevaplug-common.dtsi
-@@ -78,13 +78,8 @@
- };
-
- partition@100000 {
-- label = "uImage";
-- reg = <0x0100000 0x400000>;
-- };
--
-- partition@500000 {
-- label = "root";
-- reg = <0x0500000 0x1fb00000>;
-+ label = "ubi";
-+ reg = <0x0100000 0x1ff00000>;
- };
- };
-
---- a/arch/arm/boot/dts/kirkwood-sheevaplug.dts
-+++ b/arch/arm/boot/dts/kirkwood-sheevaplug.dts
-@@ -13,6 +13,13 @@
- model = "Globalscale Technologies SheevaPlug";
- compatible = "globalscale,sheevaplug", "marvell,kirkwood-88f6281", "marvell,kirkwood";
-
-+ aliases {
-+ led-boot = &led_health;
-+ led-failsafe = &led_health;
-+ led-running = &led_health;
-+ led-upgrade = &led_health;
-+ };
-+
- ocp@f1000000 {
- mvsdio@90000 {
- pinctrl-0 = <&pmx_sdio>;
-@@ -28,10 +35,10 @@
- pinctrl-0 = <&pmx_led_blue &pmx_led_red>;
- pinctrl-names = "default";
-
-- health {
-+ led_health: health {
- label = "sheevaplug:blue:health";
- gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
-- default-state = "keep";
-+ default-state = "on";
- };
-
- misc {
diff --git a/target/linux/kirkwood/patches-5.4/113-readynas_duo_v2.patch b/target/linux/kirkwood/patches-5.4/113-readynas_duo_v2.patch
deleted file mode 100644
index c6452c55a3..0000000000
--- a/target/linux/kirkwood/patches-5.4/113-readynas_duo_v2.patch
+++ /dev/null
@@ -1,76 +0,0 @@
---- a/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts
-+++ b/arch/arm/boot/dts/kirkwood-netgear_readynas_duo_v2.dts
-@@ -19,6 +19,13 @@
- reg = <0x00000000 0x10000000>;
- };
-
-+ aliases {
-+ led-boot = &led_power;
-+ led-failsafe = &led_power;
-+ led-running = &led_power;
-+ led-upgrade = &led_power;
-+ };
-+
- chosen {
- bootargs = "console=ttyS0,115200n8 earlyprintk";
- stdout-path = &uart0;
-@@ -115,7 +122,7 @@
- &pmx_led_blue_backup >;
- pinctrl-names = "default";
-
-- power_led {
-+ led_power: power_led {
- label = "status:blue:power_led";
- gpios = <&gpio0 31 GPIO_ACTIVE_LOW>;
- default-state = "keep";
-@@ -129,11 +136,13 @@
- disk1_led {
- label = "status:blue:disk1_led";
- gpios = <&gpio0 23 GPIO_ACTIVE_LOW>;
-+ linux,default-trigger = "ata1";
- };
-
- disk2_led {
- label = "status:blue:disk2_led";
- gpios = <&gpio0 22 GPIO_ACTIVE_LOW>;
-+ linux,default-trigger = "ata2";
- };
-
- backup_led {
-@@ -150,7 +159,13 @@
-
- power-button {
- label = "Power Button";
-- linux,code = <KEY_POWER>;
-+ /* Power button and INT pin from PHY are both connected
-+ * to this GPIO. Every network restart causes PHY restart
-+ * and button is pressed. It's difficult to use it as
-+ * KEY_POWER without changes in kernel (or netifd) so
-+ * the button is configured as regular one.
-+ */
-+ linux,code = <BTN_1>;
- gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
- };
-
-@@ -208,18 +223,13 @@
- };
-
- partition@200000 {
-- label = "uImage";
-+ label = "kernel";
- reg = <0x0200000 0x600000>;
- };
-
- partition@800000 {
-- label = "minirootfs";
-- reg = <0x0800000 0x1000000>;
-- };
--
-- partition@1800000 {
-- label = "jffs2";
-- reg = <0x1800000 0x6800000>;
-+ label = "ubi";
-+ reg = <0x0800000 0x7800000>;
- };
- };
-
diff --git a/target/linux/kirkwood/patches-5.4/201-enable-sata-port-specific-led-triggers.patch b/target/linux/kirkwood/patches-5.4/201-enable-sata-port-specific-led-triggers.patch
deleted file mode 100644
index c1645367a4..0000000000
--- a/target/linux/kirkwood/patches-5.4/201-enable-sata-port-specific-led-triggers.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/arch/arm/mach-mvebu/Kconfig
-+++ b/arch/arm/mach-mvebu/Kconfig
-@@ -119,6 +119,7 @@ config MACH_DOVE
- config MACH_KIRKWOOD
- bool "Marvell Kirkwood boards"
- depends on ARCH_MULTI_V5
-+ select ARCH_WANT_LIBATA_LEDS
- select CPU_FEROCEON
- select GPIOLIB
- select KIRKWOOD_CLK
diff --git a/target/linux/kirkwood/patches-5.4/202-linksys-find-active-root.patch b/target/linux/kirkwood/patches-5.4/202-linksys-find-active-root.patch
deleted file mode 100644
index fe5e1e2cd0..0000000000
--- a/target/linux/kirkwood/patches-5.4/202-linksys-find-active-root.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-The WRT1900AC among other Linksys routers uses a dual-firmware layout.
-Dynamically rename the active partition to "ubi".
-
-Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
----
---- a/drivers/mtd/parsers/ofpart_core.c
-+++ b/drivers/mtd/parsers/ofpart_core.c
-@@ -38,6 +38,8 @@ static bool node_has_compatible(struct d
- return of_get_property(pp, "compatible", NULL);
- }
-
-+static int mangled_rootblock;
-+
- static int parse_fixed_partitions(struct mtd_info *master,
- const struct mtd_partition **pparts,
- struct mtd_part_parser_data *data)
-@@ -47,6 +49,7 @@ static int parse_fixed_partitions(struct
- struct mtd_partition *parts;
- struct device_node *mtd_node;
- struct device_node *ofpart_node;
-+ const char *owrtpart = "ubi";
- const char *partname;
- struct device_node *pp;
- int nr_parts, i, ret = 0;
-@@ -133,9 +136,15 @@ static int parse_fixed_partitions(struct
- parts[i].size = of_read_number(reg + a_cells, s_cells);
- parts[i].of_node = pp;
-
-- partname = of_get_property(pp, "label", &len);
-- if (!partname)
-- partname = of_get_property(pp, "name", &len);
-+ if (mangled_rootblock && (i == mangled_rootblock)) {
-+ partname = owrtpart;
-+ } else {
-+ partname = of_get_property(pp, "label", &len);
-+
-+ if (!partname)
-+ partname = of_get_property(pp, "name", &len);
-+ }
-+
- parts[i].name = partname;
-
- if (of_get_property(pp, "read-only", &len))
-@@ -249,6 +258,18 @@ static int __init ofpart_parser_init(voi
- return 0;
- }
-
-+static int __init active_root(char *str)
-+{
-+ get_option(&str, &mangled_rootblock);
-+
-+ if (!mangled_rootblock)
-+ return 1;
-+
-+ return 1;
-+}
-+
-+__setup("mangled_rootblock=", active_root);
-+
- static void __exit ofpart_parser_exit(void)
- {
- deregister_mtd_parser(&ofpart_parser);
diff --git a/target/linux/kirkwood/patches-5.4/203-blackarmor-nas220.patch b/target/linux/kirkwood/patches-5.4/203-blackarmor-nas220.patch
deleted file mode 100644
index e04a28206a..0000000000
--- a/target/linux/kirkwood/patches-5.4/203-blackarmor-nas220.patch
+++ /dev/null
@@ -1,99 +0,0 @@
---- a/arch/arm/boot/dts/kirkwood-blackarmor-nas220.dts
-+++ b/arch/arm/boot/dts/kirkwood-blackarmor-nas220.dts
-@@ -17,6 +17,13 @@
- compatible = "seagate,blackarmor-nas220","marvell,kirkwood-88f6192",
- "marvell,kirkwood";
-
-+ aliases {
-+ led-boot = &led_status_amber;
-+ led-failsafe = &led_status_amber;
-+ led-running = &led_status_blue;
-+ led-upgrade = &led_status_amber;
-+ };
-+
- memory { /* 128 MB */
- device_type = "memory";
- reg = <0x00000000 0x8000000>;
-@@ -36,14 +43,14 @@
- compatible = "gpio-keys";
-
- reset {
-- label = "Reset";
-- linux,code = <KEY_POWER>;
-+ label = "Reset Button";
-+ linux,code = <KEY_RESTART>;
- gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
- };
-
-- button {
-- label = "Power";
-- linux,code = <KEY_SLEEP>;
-+ power {
-+ label = "Power Button";
-+ linux,code = <KEY_POWER>;
- gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
- };
- };
-@@ -51,11 +58,27 @@
- gpio-leds {
- compatible = "gpio-leds";
-
-- blue-power {
-+ led_power_blue: power_blue {
- label = "nas220:blue:power";
- gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
- linux,default-trigger = "default-on";
- };
-+
-+ disk_blue {
-+ label = "nas220:blue:disk";
-+ gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
-+ linux,default-trigger = "disk-activity";
-+ };
-+
-+ led_status_blue: status_blue {
-+ label = "nas220:blue:status";
-+ gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
-+ };
-+
-+ led_status_amber: status_amber {
-+ label = "nas220:amber:status";
-+ gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
-+ };
- };
-
- regulators {
-@@ -153,6 +176,33 @@
-
- &nand {
- status = "okay";
-+
-+ partitions {
-+ compatible = "fixed-partitions";
-+
-+ partition@0 {
-+ label = "uboot";
-+ reg = <0x0 0xa0000>;
-+ read-only;
-+ };
-+
-+ partition@a0000 {
-+ label = "uboot-env";
-+ reg = <0xa0000 0x10000>;
-+ read-only;
-+ };
-+
-+ partition@b0000 {
-+ label = "reserved";
-+ reg = <0xb0000 0x10000>;
-+ read-only;
-+ };
-+
-+ partition@c0000 {
-+ label = "ubi";
-+ reg = <0xc0000 0x1e80000>;
-+ };
-+ };
- };
-
- &mdio {
diff --git a/target/linux/kirkwood/patches-5.4/800-power-reset-linkstation-poweroff-prepare-for-new-dev.patch b/target/linux/kirkwood/patches-5.4/800-power-reset-linkstation-poweroff-prepare-for-new-dev.patch
deleted file mode 100644
index 4b4d03839a..0000000000
--- a/target/linux/kirkwood/patches-5.4/800-power-reset-linkstation-poweroff-prepare-for-new-dev.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From 11cab9f5cd9390cd83747e579957c8f5b807c09c Mon Sep 17 00:00:00 2001
-From: Pawel Dembicki <paweldembicki@gmail.com>
-Date: Fri, 18 Jun 2021 12:37:27 +0200
-Subject: [PATCH 1/2] power: reset: linkstation-poweroff: prepare for new
- devices
-
-This commit prepare driver for another device support.
-
-New power_off_cfg structure describes two most important things: name of
-mdio bus and pointer to register setting function. It allow to add new
-device with different mdio bus node and other phy register config.
-
-Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
----
- drivers/power/reset/linkstation-poweroff.c | 35 ++++++++++++++++++----
- 1 file changed, 29 insertions(+), 6 deletions(-)
-
---- a/drivers/power/reset/linkstation-poweroff.c
-+++ b/drivers/power/reset/linkstation-poweroff.c
-@@ -29,11 +29,21 @@
- #define LED2_FORCE_ON (0x8 << 8)
- #define LEDMASK GENMASK(11,8)
-
-+struct power_off_cfg {
-+ char *mdio_node_name;
-+ void (*phy_set_reg)(bool restart);
-+};
-+
- static struct phy_device *phydev;
-+static const struct power_off_cfg *cfg;
-
--static void mvphy_reg_intn(u16 data)
-+static void linkstation_mvphy_reg_intn(bool restart)
- {
- int rc = 0, saved_page;
-+ u16 data = 0;
-+
-+ if(restart)
-+ data = MII_88E1318S_PHY_LED_TCR_FORCE_INT;
-
- saved_page = phy_select_page(phydev, MII_MARVELL_LED_PAGE);
- if (saved_page < 0)
-@@ -66,11 +76,16 @@ err:
- dev_err(&phydev->mdio.dev, "Write register failed, %d\n", rc);
- }
-
-+static const struct power_off_cfg linkstation_power_off_cfg = {
-+ .mdio_node_name = "mdio",
-+ .phy_set_reg = linkstation_mvphy_reg_intn,
-+};
-+
- static int linkstation_reboot_notifier(struct notifier_block *nb,
- unsigned long action, void *unused)
- {
- if (action == SYS_RESTART)
-- mvphy_reg_intn(MII_88E1318S_PHY_LED_TCR_FORCE_INT);
-+ cfg->phy_set_reg(true);
-
- return NOTIFY_DONE;
- }
-@@ -82,14 +97,18 @@ static struct notifier_block linkstation
- static void linkstation_poweroff(void)
- {
- unregister_reboot_notifier(&linkstation_reboot_nb);
-- mvphy_reg_intn(0);
-+ cfg->phy_set_reg(false);
-
- kernel_restart("Power off");
- }
-
- static const struct of_device_id ls_poweroff_of_match[] = {
-- { .compatible = "buffalo,ls421d" },
-- { .compatible = "buffalo,ls421de" },
-+ { .compatible = "buffalo,ls421d",
-+ .data = &linkstation_power_off_cfg,
-+ },
-+ { .compatible = "buffalo,ls421de",
-+ .data = &linkstation_power_off_cfg,
-+ },
- { },
- };
-
-@@ -97,13 +116,17 @@ static int __init linkstation_poweroff_i
- {
- struct mii_bus *bus;
- struct device_node *dn;
-+ const struct of_device_id *match;
-
- dn = of_find_matching_node(NULL, ls_poweroff_of_match);
- if (!dn)
- return -ENODEV;
- of_node_put(dn);
-
-- dn = of_find_node_by_name(NULL, "mdio");
-+ match = of_match_node(ls_poweroff_of_match, dn);
-+ cfg = match->data;
-+
-+ dn = of_find_node_by_name(NULL, cfg->mdio_node_name);
- if (!dn)
- return -ENODEV;
-
diff --git a/target/linux/kirkwood/patches-5.4/801-power-reset-linkstation-poweroff-add-new-device.patch b/target/linux/kirkwood/patches-5.4/801-power-reset-linkstation-poweroff-add-new-device.patch
deleted file mode 100644
index a929aacfd0..0000000000
--- a/target/linux/kirkwood/patches-5.4/801-power-reset-linkstation-poweroff-add-new-device.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From a2d9c86df8d12646f5bf66920e4f1e6d940cfc62 Mon Sep 17 00:00:00 2001
-From: Pawel Dembicki <paweldembicki@gmail.com>
-Date: Fri, 18 Jun 2021 13:25:33 +0200
-Subject: [PATCH 2/2] power: reset: linkstation-poweroff: add new device
-
-This commit introduces support for NETGEAR ReadyNAS Duo v2.
-This device use bit 4 of LED[2:0] Polarity Control Register to indicate
-AC Power loss.
-
-For more details about AC loss detection in NETGEAR ReadyNAS Duo v2,
-please look at the file:
-RND_5.3.13_WW.src/u-boot/board/mv_feroceon/mv_hal/usibootup/usibootup.c
-from Netgear GPL sources.
-
-Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
----
- drivers/power/reset/linkstation-poweroff.c | 43 ++++++++++++++++++++++
- 1 file changed, 43 insertions(+)
-
---- a/drivers/power/reset/linkstation-poweroff.c
-+++ b/drivers/power/reset/linkstation-poweroff.c
-@@ -19,6 +19,7 @@
- #define MII_MARVELL_PHY_PAGE 22
-
- #define MII_PHY_LED_CTRL 16
-+#define MII_PHY_LED_POL_CTRL 17
- #define MII_88E1318S_PHY_LED_TCR 18
- #define MII_88E1318S_PHY_WOL_CTRL 16
- #define MII_M1011_IEVENT 19
-@@ -29,6 +30,8 @@
- #define LED2_FORCE_ON (0x8 << 8)
- #define LEDMASK GENMASK(11,8)
-
-+#define MII_88E1318S_PHY_LED_POL_LED2 BIT(4)
-+
- struct power_off_cfg {
- char *mdio_node_name;
- void (*phy_set_reg)(bool restart);
-@@ -76,11 +79,48 @@ err:
- dev_err(&phydev->mdio.dev, "Write register failed, %d\n", rc);
- }
-
-+static void readynas_mvphy_set_reg(bool restart)
-+{
-+ int rc = 0, saved_page;
-+ u16 data = 0;
-+
-+ if(restart)
-+ data = MII_88E1318S_PHY_LED_POL_LED2;
-+
-+ saved_page = phy_select_page(phydev, MII_MARVELL_LED_PAGE);
-+ if (saved_page < 0)
-+ goto err;
-+
-+ /* Set the LED[2].0 Polarity bit to the required state */
-+ __phy_modify(phydev, MII_PHY_LED_POL_CTRL,
-+ MII_88E1318S_PHY_LED_POL_LED2, data);
-+
-+ if (!data) {
-+
-+ /* If WOL was enabled and a magic packet was received before powering
-+ * off, we won't be able to wake up by sending another magic packet.
-+ * Clear WOL status.
-+ */
-+ __phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_MARVELL_WOL_PAGE);
-+ __phy_set_bits(phydev, MII_88E1318S_PHY_WOL_CTRL,
-+ MII_88E1318S_PHY_WOL_CTRL_CLEAR_WOL_STATUS);
-+ }
-+err:
-+ rc = phy_restore_page(phydev, saved_page, rc);
-+ if (rc < 0)
-+ dev_err(&phydev->mdio.dev, "Write register failed, %d\n", rc);
-+}
-+
- static const struct power_off_cfg linkstation_power_off_cfg = {
- .mdio_node_name = "mdio",
- .phy_set_reg = linkstation_mvphy_reg_intn,
- };
-
-+static const struct power_off_cfg readynas_power_off_cfg = {
-+ .mdio_node_name = "mdio-bus",
-+ .phy_set_reg = readynas_mvphy_set_reg,
-+};
-+
- static int linkstation_reboot_notifier(struct notifier_block *nb,
- unsigned long action, void *unused)
- {
-@@ -109,6 +149,9 @@ static const struct of_device_id ls_powe
- { .compatible = "buffalo,ls421de",
- .data = &linkstation_power_off_cfg,
- },
-+ { .compatible = "netgear,readynas-duo-v2",
-+ .data = &readynas_power_off_cfg,
-+ },
- { },
- };
-