Просмотр исходного кода

lantiq: add Linux 5.10 support as testing kernel

Following changes are made to the Lantiq kernel patches:

  0001-MIPS-lantiq-add-pcie-driver.patch
    The pci header isn't included by the of_pci header any longer

  0024-MIPS-lantiq-revert-DSA-switch-driver-PMU-clock-chang.patch
    Due to the merge of grx390 and ar10 clocks, extend support to grx390

  0025-NET-MIPS-lantiq-adds-xrx200-legacy.patch
    The do_carrier arguments was dropped from phy_link_change. The
    phylib has always sets the third parameter to true so the flag is
    always changed anyway.

    of_get_phy_mode() returns an error, or 0 on success, and pass a
    pointer, of type phy_interface_t, where the phy mode should be
    stored now. So far an error wasn't considered. Print at least an
    error message if something unexpected happens.

    The stuck queue is now passed to xrx200_tx_timeout (the timeout
    handler) but not used so far.

  0028-NET-lantiq-various-etop-fixes.patch
    ioremap has provided non-cached semantics by default since the Linux
    2.6 days and was removed with kernel version 5.6.

    of_get_phy_mode() returns an error, or 0 on success, and pass a
    pointer, of type phy_interface_t, where the phy mode should be
    stored now. So far an error wasn't considered. Print at least an
    error message if something unexpected happens.

  0042-arch-mips-increase-io_space_limit.patch
    Move IO space extension to laniq specific file

Signed-off-by: Mathias Kresin <[email protected]>
Mathias Kresin 5 лет назад
Родитель
Сommit
0806f8fc80
24 измененных файлов с 338 добавлено и 91 удалено
  1. 0 2
      target/linux/generic/files/drivers/net/phy/psb6970.c
  2. 1 0
      target/linux/lantiq/Makefile
  3. 24 0
      target/linux/lantiq/ase/config-5.10
  4. 8 4
      target/linux/lantiq/config-5.10
  5. 9 0
      target/linux/lantiq/falcon/config-5.10
  6. 6 5
      target/linux/lantiq/patches-5.10/0001-MIPS-lantiq-add-pcie-driver.patch
  7. 1 1
      target/linux/lantiq/patches-5.10/0004-MIPS-lantiq-add-atm-hack.patch
  8. 6 6
      target/linux/lantiq/patches-5.10/0018-MTD-nand-lots-of-xrx200-fixes.patch
  9. 26 10
      target/linux/lantiq/patches-5.10/0024-MIPS-lantiq-revert-DSA-switch-driver-PMU-clock-chang.patch
  10. 17 14
      target/linux/lantiq/patches-5.10/0025-NET-MIPS-lantiq-adds-xrx200-legacy.patch
  11. 12 10
      target/linux/lantiq/patches-5.10/0028-NET-lantiq-various-etop-fixes.patch
  12. 7 7
      target/linux/lantiq/patches-5.10/0030-GPIO-add-named-gpio-exports.patch
  13. 2 2
      target/linux/lantiq/patches-5.10/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch
  14. 1 1
      target/linux/lantiq/patches-5.10/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch
  15. 14 13
      target/linux/lantiq/patches-5.10/0042-arch-mips-increase-io_space_limit.patch
  16. 2 2
      target/linux/lantiq/patches-5.10/0050-USB-DWC2-make-the-lantiq-settings-match-vendor-drive.patch
  17. 2 2
      target/linux/lantiq/patches-5.10/0051-MIPS-lantiq-improve-USB-initialization.patch
  18. 8 8
      target/linux/lantiq/patches-5.10/0101-find_active_root.patch
  19. 1 1
      target/linux/lantiq/patches-5.10/0151-lantiq-ifxmips_pcie-use-of.patch
  20. 1 1
      target/linux/lantiq/patches-5.10/0152-lantiq-VPE.patch
  21. 2 2
      target/linux/lantiq/patches-5.10/0301-xrx200-add-gphy-clk-src-device-tree-binding.patch
  22. 100 0
      target/linux/lantiq/xrx200/config-5.10
  23. 49 0
      target/linux/lantiq/xway/config-5.10
  24. 39 0
      target/linux/lantiq/xway_legacy/config-5.10

+ 0 - 2
target/linux/generic/files/drivers/net/phy/psb6970.c

@@ -355,8 +355,6 @@ static int psb6970_config_init(struct phy_device *pdev)
 		goto done;
 		goto done;
 	}
 	}
 
 
-	dev->phy_ptr = priv;
-
 done:
 done:
 	return ret;
 	return ret;
 }
 }

+ 1 - 0
target/linux/lantiq/Makefile

@@ -10,6 +10,7 @@ FEATURES:=squashfs
 SUBTARGETS:=xrx200 xway xway_legacy falcon ase
 SUBTARGETS:=xrx200 xway xway_legacy falcon ase
 
 
 KERNEL_PATCHVER:=5.4
 KERNEL_PATCHVER:=5.4
+KERNEL_TESTING_PATCHVER:=5.10
 
 
 define Target/Description
 define Target/Description
 	Build firmware images for Lantiq SoC
 	Build firmware images for Lantiq SoC

+ 24 - 0
target/linux/lantiq/ase/config-5.10

@@ -0,0 +1,24 @@
+CONFIG_ADM6996_PHY=y
+CONFIG_CPU_MIPS32_R1=y
+# CONFIG_CPU_MIPS32_R2 is not set
+CONFIG_CPU_MIPSR1=y
+CONFIG_CRC16=y
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_GENERIC_PLATFORM=y
+CONFIG_HW_RANDOM=y
+# CONFIG_ISDN is not set
+CONFIG_LANTIQ_ETOP=y
+CONFIG_NLS=y
+CONFIG_SGL_ALLOC=y
+CONFIG_SOC_AMAZON_SE=y
+CONFIG_SOC_TYPE_XWAY=y
+CONFIG_TARGET_ISA_REV=1
+CONFIG_USB=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_SUPPORT=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y

+ 8 - 4
target/linux/lantiq/config-5.10

@@ -39,6 +39,7 @@ CONFIG_CPU_SUPPORTS_HIGHMEM=y
 CONFIG_CPU_SUPPORTS_MSA=y
 CONFIG_CPU_SUPPORTS_MSA=y
 CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_LIB_POLY1305_RSIZE=2
 CONFIG_CRYPTO_RNG2=y
 CONFIG_CRYPTO_RNG2=y
 CONFIG_CSRC_R4K=y
 CONFIG_CSRC_R4K=y
 CONFIG_DMA_NONCOHERENT=y
 CONFIG_DMA_NONCOHERENT=y
@@ -61,7 +62,6 @@ CONFIG_GENERIC_GETTIMEOFDAY=y
 CONFIG_GENERIC_IOMAP=y
 CONFIG_GENERIC_IOMAP=y
 CONFIG_GENERIC_IRQ_CHIP=y
 CONFIG_GENERIC_IRQ_CHIP=y
 CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
 CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
-CONFIG_GENERIC_IRQ_IPI=y
 CONFIG_GENERIC_IRQ_SHOW=y
 CONFIG_GENERIC_IRQ_SHOW=y
 CONFIG_GENERIC_LIB_ASHLDI3=y
 CONFIG_GENERIC_LIB_ASHLDI3=y
 CONFIG_GENERIC_LIB_ASHRDI3=y
 CONFIG_GENERIC_LIB_ASHRDI3=y
@@ -116,7 +116,6 @@ CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
 CONFIG_HAVE_RSEQ=y
 CONFIG_HAVE_RSEQ=y
 CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
 CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
 CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
 CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
-CONFIG_HW_RANDOM=y
 CONFIG_HZ=250
 CONFIG_HZ=250
 CONFIG_HZ_250=y
 CONFIG_HZ_250=y
 CONFIG_HZ_PERIODIC=y
 CONFIG_HZ_PERIODIC=y
@@ -135,9 +134,11 @@ CONFIG_LANTIQ_WDT=y
 # CONFIG_LANTIQ_XRX200_LEGACY is not set
 # CONFIG_LANTIQ_XRX200_LEGACY is not set
 CONFIG_LEDS_GPIO=y
 CONFIG_LEDS_GPIO=y
 CONFIG_LIBFDT=y
 CONFIG_LIBFDT=y
+CONFIG_LLD_VERSION=0
 CONFIG_LOCK_DEBUGGING_SUPPORT=y
 CONFIG_LOCK_DEBUGGING_SUPPORT=y
 CONFIG_MDIO_BUS=y
 CONFIG_MDIO_BUS=y
 CONFIG_MDIO_DEVICE=y
 CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_DEVRES=y
 CONFIG_MEMFD_CREATE=y
 CONFIG_MEMFD_CREATE=y
 CONFIG_MFD_CORE=y
 CONFIG_MFD_CORE=y
 CONFIG_MFD_SYSCON=y
 CONFIG_MFD_SYSCON=y
@@ -145,12 +146,14 @@ CONFIG_MIGRATION=y
 CONFIG_MIPS=y
 CONFIG_MIPS=y
 CONFIG_MIPS_ASID_BITS=8
 CONFIG_MIPS_ASID_BITS=8
 CONFIG_MIPS_ASID_SHIFT=0
 CONFIG_MIPS_ASID_SHIFT=0
+CONFIG_MIPS_CBPF_JIT=y
 CONFIG_MIPS_CLOCK_VSYSCALL=y
 CONFIG_MIPS_CLOCK_VSYSCALL=y
 # CONFIG_MIPS_CMDLINE_DTB_EXTEND is not set
 # CONFIG_MIPS_CMDLINE_DTB_EXTEND is not set
 # CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER is not set
 # CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER is not set
 CONFIG_MIPS_CMDLINE_FROM_DTB=y
 CONFIG_MIPS_CMDLINE_FROM_DTB=y
 # CONFIG_MIPS_ELF_APPENDED_DTB is not set
 # CONFIG_MIPS_ELF_APPENDED_DTB is not set
 CONFIG_MIPS_L1_CACHE_SHIFT=5
 CONFIG_MIPS_L1_CACHE_SHIFT=5
+CONFIG_MIPS_LD_CAN_LINK_VDSO=y
 # CONFIG_MIPS_MT_SMP is not set
 # CONFIG_MIPS_MT_SMP is not set
 # CONFIG_MIPS_NO_APPENDED_DTB is not set
 # CONFIG_MIPS_NO_APPENDED_DTB is not set
 CONFIG_MIPS_RAW_APPENDED_DTB=y
 CONFIG_MIPS_RAW_APPENDED_DTB=y
@@ -181,6 +184,7 @@ CONFIG_OF_IRQ=y
 CONFIG_OF_KOBJ=y
 CONFIG_OF_KOBJ=y
 CONFIG_OF_MDIO=y
 CONFIG_OF_MDIO=y
 CONFIG_OF_NET=y
 CONFIG_OF_NET=y
+# CONFIG_PCIE_LANTIQ is not set
 CONFIG_PCI_DRIVERS_LEGACY=y
 CONFIG_PCI_DRIVERS_LEGACY=y
 CONFIG_PERF_USE_VMALLOC=y
 CONFIG_PERF_USE_VMALLOC=y
 CONFIG_PGTABLE_LEVELS=2
 CONFIG_PGTABLE_LEVELS=2
@@ -199,10 +203,10 @@ CONFIG_RESET_CONTROLLER=y
 CONFIG_RESET_LANTIQ=y
 CONFIG_RESET_LANTIQ=y
 # CONFIG_SERIAL_8250 is not set
 # CONFIG_SERIAL_8250 is not set
 CONFIG_SERIAL_LANTIQ=y
 CONFIG_SERIAL_LANTIQ=y
+CONFIG_SERIAL_LANTIQ_CONSOLE=y
 # CONFIG_SOC_AMAZON_SE is not set
 # CONFIG_SOC_AMAZON_SE is not set
 # CONFIG_SOC_FALCON is not set
 # CONFIG_SOC_FALCON is not set
-CONFIG_SOC_TYPE_XWAY=y
-CONFIG_SOC_XWAY=y
+# CONFIG_SOC_XWAY is not set
 CONFIG_SPI=y
 CONFIG_SPI=y
 CONFIG_SPI_LANTIQ_SSC=y
 CONFIG_SPI_LANTIQ_SSC=y
 CONFIG_SPI_MASTER=y
 CONFIG_SPI_MASTER=y

+ 9 - 0
target/linux/lantiq/falcon/config-5.10

@@ -0,0 +1,9 @@
+CONFIG_CPU_HAS_DIEI=y
+CONFIG_MTD_NAND_CORE=y
+CONFIG_MTD_NAND_ECC=y
+CONFIG_MTD_NAND_ECC_SW_HAMMING=y
+CONFIG_MTD_RAW_NAND=y
+CONFIG_MTD_SPLIT_FIRMWARE_NAME="linux"
+CONFIG_PINCTRL_FALCON=y
+CONFIG_SOC_FALCON=y
+CONFIG_SPI_FALCON=y

+ 6 - 5
target/linux/lantiq/patches-5.10/0001-MIPS-lantiq-add-pcie-driver.patch

@@ -65,7 +65,7 @@ Signed-off-by: John Crispin <[email protected]>
  endif
  endif
 --- a/arch/mips/pci/Makefile
 --- a/arch/mips/pci/Makefile
 +++ b/arch/mips/pci/Makefile
 +++ b/arch/mips/pci/Makefile
-@@ -51,6 +51,8 @@ obj-$(CONFIG_PCI_LANTIQ)	+= pci-lantiq.o
+@@ -43,6 +43,8 @@ obj-$(CONFIG_PCI_LANTIQ)	+= pci-lantiq.o
  obj-$(CONFIG_SOC_MT7620)	+= pci-mt7620.o
  obj-$(CONFIG_SOC_MT7620)	+= pci-mt7620.o
  obj-$(CONFIG_SOC_RT288X)	+= pci-rt2880.o
  obj-$(CONFIG_SOC_RT288X)	+= pci-rt2880.o
  obj-$(CONFIG_SOC_RT3883)	+= pci-rt3883.o
  obj-$(CONFIG_SOC_RT3883)	+= pci-rt3883.o
@@ -153,10 +153,11 @@ Signed-off-by: John Crispin <[email protected]>
 +     ifx_pcie_rc_class_early_fixup);
 +     ifx_pcie_rc_class_early_fixup);
 --- a/arch/mips/pci/fixup-lantiq.c
 --- a/arch/mips/pci/fixup-lantiq.c
 +++ b/arch/mips/pci/fixup-lantiq.c
 +++ b/arch/mips/pci/fixup-lantiq.c
-@@ -6,12 +6,18 @@
+@@ -6,12 +6,19 @@
  
  
  #include <linux/of_irq.h>
  #include <linux/of_irq.h>
  #include <linux/of_pci.h>
  #include <linux/of_pci.h>
++#include <linux/pci.h>
 +#include "ifxmips_pci_common.h"
 +#include "ifxmips_pci_common.h"
  
  
  int (*ltq_pci_plat_arch_init)(struct pci_dev *dev) = NULL;
  int (*ltq_pci_plat_arch_init)(struct pci_dev *dev) = NULL;
@@ -172,7 +173,7 @@ Signed-off-by: John Crispin <[email protected]>
  	if (ltq_pci_plat_arch_init)
  	if (ltq_pci_plat_arch_init)
  		return ltq_pci_plat_arch_init(dev);
  		return ltq_pci_plat_arch_init(dev);
  
  
-@@ -23,5 +29,10 @@ int pcibios_plat_dev_init(struct pci_dev
+@@ -23,5 +30,10 @@ int pcibios_plat_dev_init(struct pci_dev
  
  
  int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
  int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
  {
  {
@@ -5470,7 +5471,7 @@ Signed-off-by: John Crispin <[email protected]>
 +
 +
 --- a/drivers/pci/pcie/Kconfig
 --- a/drivers/pci/pcie/Kconfig
 +++ b/drivers/pci/pcie/Kconfig
 +++ b/drivers/pci/pcie/Kconfig
-@@ -52,6 +52,7 @@ config PCIEAER_INJECT
+@@ -51,6 +51,7 @@ config PCIEAER_INJECT
  config PCIE_ECRC
  config PCIE_ECRC
  	bool "PCI Express ECRC settings control"
  	bool "PCI Express ECRC settings control"
  	depends on PCIEAER
  	depends on PCIEAER
@@ -5480,7 +5481,7 @@ Signed-off-by: John Crispin <[email protected]>
  	  (transaction layer end-to-end CRC checking).
  	  (transaction layer end-to-end CRC checking).
 --- a/include/linux/pci.h
 --- a/include/linux/pci.h
 +++ b/include/linux/pci.h
 +++ b/include/linux/pci.h
-@@ -1390,6 +1390,8 @@ void pci_walk_bus(struct pci_bus *top, i
+@@ -1416,6 +1416,8 @@ void pci_walk_bus(struct pci_bus *top, i
  		  void *userdata);
  		  void *userdata);
  int pci_cfg_space_size(struct pci_dev *dev);
  int pci_cfg_space_size(struct pci_dev *dev);
  unsigned char pci_bus_max_busnr(struct pci_bus *bus);
  unsigned char pci_bus_max_busnr(struct pci_bus *bus);

+ 1 - 1
target/linux/lantiq/patches-5.10/0004-MIPS-lantiq-add-atm-hack.patch

@@ -441,7 +441,7 @@ Signed-off-by: John Crispin <[email protected]>
  {
  {
 --- a/arch/mips/mm/cache.c
 --- a/arch/mips/mm/cache.c
 +++ b/arch/mips/mm/cache.c
 +++ b/arch/mips/mm/cache.c
-@@ -62,6 +62,10 @@ void (*_dma_cache_wback_inv)(unsigned lo
+@@ -61,6 +61,10 @@ void (*_dma_cache_wback_inv)(unsigned lo
  void (*_dma_cache_wback)(unsigned long start, unsigned long size);
  void (*_dma_cache_wback)(unsigned long start, unsigned long size);
  void (*_dma_cache_inv)(unsigned long start, unsigned long size);
  void (*_dma_cache_inv)(unsigned long start, unsigned long size);
  
  

+ 6 - 6
target/linux/lantiq/patches-5.10/0018-MTD-nand-lots-of-xrx200-fixes.patch

@@ -33,9 +33,9 @@ Signed-off-by: John Crispin <[email protected]>
 +static __be32 req_mask = 0;
 +static __be32 req_mask = 0;
 +
 +
  struct xway_nand_data {
  struct xway_nand_data {
+ 	struct nand_controller	controller;
  	struct nand_chip	chip;
  	struct nand_chip	chip;
- 	unsigned long		csflags;
-@@ -91,10 +109,22 @@ static void xway_select_chip(struct nand
+@@ -92,10 +110,22 @@ static void xway_select_chip(struct nand
  	case -1:
  	case -1:
  		ltq_ebu_w32_mask(NAND_CON_CE, 0, EBU_NAND_CON);
  		ltq_ebu_w32_mask(NAND_CON_CE, 0, EBU_NAND_CON);
  		ltq_ebu_w32_mask(NAND_CON_NANDM, 0, EBU_NAND_CON);
  		ltq_ebu_w32_mask(NAND_CON_NANDM, 0, EBU_NAND_CON);
@@ -58,7 +58,7 @@ Signed-off-by: John Crispin <[email protected]>
  		ltq_ebu_w32_mask(0, NAND_CON_NANDM, EBU_NAND_CON);
  		ltq_ebu_w32_mask(0, NAND_CON_NANDM, EBU_NAND_CON);
  		ltq_ebu_w32_mask(0, NAND_CON_CE, EBU_NAND_CON);
  		ltq_ebu_w32_mask(0, NAND_CON_CE, EBU_NAND_CON);
  		break;
  		break;
-@@ -107,6 +137,11 @@ static void xway_cmd_ctrl(struct nand_ch
+@@ -108,6 +138,11 @@ static void xway_cmd_ctrl(struct nand_ch
  {
  {
  	struct mtd_info *mtd = nand_to_mtd(chip);
  	struct mtd_info *mtd = nand_to_mtd(chip);
  
  
@@ -70,7 +70,7 @@ Signed-off-by: John Crispin <[email protected]>
  	if (cmd == NAND_CMD_NONE)
  	if (cmd == NAND_CMD_NONE)
  		return;
  		return;
  
  
-@@ -117,6 +152,24 @@ static void xway_cmd_ctrl(struct nand_ch
+@@ -118,6 +153,24 @@ static void xway_cmd_ctrl(struct nand_ch
  
  
  	while ((ltq_ebu_r32(EBU_NAND_WAIT) & NAND_WAIT_WR_C) == 0)
  	while ((ltq_ebu_r32(EBU_NAND_WAIT) & NAND_WAIT_WR_C) == 0)
  		;
  		;
@@ -95,7 +95,7 @@ Signed-off-by: John Crispin <[email protected]>
  }
  }
  
  
  static int xway_dev_ready(struct nand_chip *chip)
  static int xway_dev_ready(struct nand_chip *chip)
-@@ -156,6 +209,7 @@ static int xway_nand_probe(struct platfo
+@@ -171,6 +224,7 @@ static int xway_nand_probe(struct platfo
  	int err;
  	int err;
  	u32 cs;
  	u32 cs;
  	u32 cs_flag = 0;
  	u32 cs_flag = 0;
@@ -103,7 +103,7 @@ Signed-off-by: John Crispin <[email protected]>
  
  
  	/* Allocate memory for the device structure (and zero it) */
  	/* Allocate memory for the device structure (and zero it) */
  	data = devm_kzalloc(&pdev->dev, sizeof(struct xway_nand_data),
  	data = devm_kzalloc(&pdev->dev, sizeof(struct xway_nand_data),
-@@ -191,6 +245,15 @@ static int xway_nand_probe(struct platfo
+@@ -207,6 +261,15 @@ static int xway_nand_probe(struct platfo
  	if (!err && cs == 1)
  	if (!err && cs == 1)
  		cs_flag = NAND_CON_IN_CS1 | NAND_CON_OUT_CS1;
  		cs_flag = NAND_CON_IN_CS1 | NAND_CON_OUT_CS1;
  
  

+ 26 - 10
target/linux/lantiq/patches-5.10/0024-MIPS-lantiq-revert-DSA-switch-driver-PMU-clock-chang.patch

@@ -8,12 +8,34 @@ happy.
 
 
 Signed-off-by: Mathias Kresin <[email protected]>
 Signed-off-by: Mathias Kresin <[email protected]>
 ---
 ---
- arch/mips/lantiq/xway/sysctrl.c | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
+ arch/mips/lantiq/xway/sysctrl.c | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
 
 
 --- a/arch/mips/lantiq/xway/sysctrl.c
 --- a/arch/mips/lantiq/xway/sysctrl.c
 +++ b/arch/mips/lantiq/xway/sysctrl.c
 +++ b/arch/mips/lantiq/xway/sysctrl.c
+@@ -469,9 +469,9 @@ void __init ltq_soc_init(void)
+ 
+ 	if (of_machine_is_compatible("lantiq,grx390") ||
+ 	    of_machine_is_compatible("lantiq,ar10")) {
+-		clkdev_add_pmu("1e108000.switch", "gphy0", 0, 0, PMU_GPHY0);
+-		clkdev_add_pmu("1e108000.switch", "gphy1", 0, 0, PMU_GPHY1);
+-		clkdev_add_pmu("1e108000.switch", "gphy2", 0, 0, PMU_GPHY2);
++		clkdev_add_pmu("1f203020.gphy", NULL, 1, 0, PMU_GPHY0);
++		clkdev_add_pmu("1f203068.gphy", NULL, 1, 0, PMU_GPHY1);
++		clkdev_add_pmu("1f2030ac.gphy", NULL, 1, 0, PMU_GPHY2);
+ 		clkdev_add_pmu("1f203018.usb2-phy", "phy", 1, 2, PMU_ANALOG_USB0_P);
+ 		clkdev_add_pmu("1f203034.usb2-phy", "phy", 1, 2, PMU_ANALOG_USB1_P);
+ 		/* rc 0 */
 @@ -503,7 +503,7 @@ void __init ltq_soc_init(void)
 @@ -503,7 +503,7 @@ void __init ltq_soc_init(void)
+ 	} else if (of_machine_is_compatible("lantiq,grx390")) {
+ 		clkdev_add_static(ltq_grx390_cpu_hz(), ltq_grx390_fpi_hz(),
+ 				  ltq_grx390_fpi_hz(), ltq_grx390_pp32_hz());
+-		clkdev_add_pmu("1e108000.switch", "gphy3", 0, 0, PMU_GPHY3);
++		clkdev_add_pmu("1f203264.gphy", NULL, 1, 0, PMU_GPHY3);
+ 		clkdev_add_pmu("1e101000.usb", "otg", 1, 0, PMU_USB0);
+ 		clkdev_add_pmu("1e106000.usb", "otg", 1, 0, PMU_USB1);
+ 		/* rc 2 */
+@@ -511,7 +511,7 @@ void __init ltq_soc_init(void)
  		clkdev_add_pmu("1a800000.pcie", "msi", 1, 1, PMU1_PCIE2_MSI);
  		clkdev_add_pmu("1a800000.pcie", "msi", 1, 1, PMU1_PCIE2_MSI);
  		clkdev_add_pmu("1f106a00.pcie", "pdi", 1, 1, PMU1_PCIE2_PDI);
  		clkdev_add_pmu("1f106a00.pcie", "pdi", 1, 1, PMU1_PCIE2_PDI);
  		clkdev_add_pmu("1a800000.pcie", "ctl", 1, 1, PMU1_PCIE2_CTL);
  		clkdev_add_pmu("1a800000.pcie", "ctl", 1, 1, PMU1_PCIE2_CTL);
@@ -22,7 +44,7 @@ Signed-off-by: Mathias Kresin <[email protected]>
  		clkdev_add_pmu("1da00000.usif", "NULL", 1, 0, PMU_USIF);
  		clkdev_add_pmu("1da00000.usif", "NULL", 1, 0, PMU_USIF);
  		clkdev_add_pmu("1e103100.deu", NULL, 1, 0, PMU_DEU);
  		clkdev_add_pmu("1e103100.deu", NULL, 1, 0, PMU_DEU);
  	} else if (of_machine_is_compatible("lantiq,ar10")) {
  	} else if (of_machine_is_compatible("lantiq,ar10")) {
-@@ -511,11 +511,11 @@ void __init ltq_soc_init(void)
+@@ -519,7 +519,7 @@ void __init ltq_soc_init(void)
  				  ltq_ar10_fpi_hz(), ltq_ar10_pp32_hz());
  				  ltq_ar10_fpi_hz(), ltq_ar10_pp32_hz());
  		clkdev_add_pmu("1e101000.usb", "otg", 1, 0, PMU_USB0);
  		clkdev_add_pmu("1e101000.usb", "otg", 1, 0, PMU_USB0);
  		clkdev_add_pmu("1e106000.usb", "otg", 1, 0, PMU_USB1);
  		clkdev_add_pmu("1e106000.usb", "otg", 1, 0, PMU_USB1);
@@ -30,14 +52,8 @@ Signed-off-by: Mathias Kresin <[email protected]>
 +		clkdev_add_pmu("1e108000.eth", NULL, 0, 0, PMU_SWITCH |
 +		clkdev_add_pmu("1e108000.eth", NULL, 0, 0, PMU_SWITCH |
  			       PMU_PPE_DP | PMU_PPE_TC);
  			       PMU_PPE_DP | PMU_PPE_TC);
  		clkdev_add_pmu("1da00000.usif", "NULL", 1, 0, PMU_USIF);
  		clkdev_add_pmu("1da00000.usif", "NULL", 1, 0, PMU_USIF);
--		clkdev_add_pmu("1e108000.switch", "gphy0", 0, 0, PMU_GPHY);
--		clkdev_add_pmu("1e108000.switch", "gphy1", 0, 0, PMU_GPHY);
-+		clkdev_add_pmu("1f203020.gphy", NULL, 1, 0, PMU_GPHY);
-+		clkdev_add_pmu("1f203068.gphy", NULL, 1, 0, PMU_GPHY);
  		clkdev_add_pmu("1e103100.deu", NULL, 1, 0, PMU_DEU);
  		clkdev_add_pmu("1e103100.deu", NULL, 1, 0, PMU_DEU);
- 		clkdev_add_pmu("1e116000.mei", "afe", 1, 2, PMU_ANALOG_DSL_AFE);
- 		clkdev_add_pmu("1e116000.mei", "dfe", 1, 0, PMU_DFE);
-@@ -534,12 +534,12 @@ void __init ltq_soc_init(void)
+@@ -540,12 +540,12 @@ void __init ltq_soc_init(void)
  		clkdev_add_pmu(NULL, "ahb", 1, 0, PMU_AHBM | PMU_AHBS);
  		clkdev_add_pmu(NULL, "ahb", 1, 0, PMU_AHBM | PMU_AHBS);
  
  
  		clkdev_add_pmu("1da00000.usif", "NULL", 1, 0, PMU_USIF);
  		clkdev_add_pmu("1da00000.usif", "NULL", 1, 0, PMU_USIF);

+ 17 - 14
target/linux/lantiq/patches-5.10/0025-NET-MIPS-lantiq-adds-xrx200-legacy.patch

@@ -16,24 +16,24 @@ Subject: NET: MIPS: lantiq: adds xrx200 ethernet and switch driver
 
 
 --- a/drivers/net/ethernet/Kconfig
 --- a/drivers/net/ethernet/Kconfig
 +++ b/drivers/net/ethernet/Kconfig
 +++ b/drivers/net/ethernet/Kconfig
-@@ -108,7 +108,13 @@ config LANTIQ_ETOP
+@@ -107,7 +107,13 @@ config LANTIQ_ETOP
  	tristate "Lantiq SoC ETOP driver"
  	tristate "Lantiq SoC ETOP driver"
  	depends on SOC_TYPE_XWAY
  	depends on SOC_TYPE_XWAY
- 	---help---
+ 	help
 -	  Support for the MII0 inside the Lantiq SoC
 -	  Support for the MII0 inside the Lantiq SoC
 +	  Support for the MII0 inside the Lantiq ADSL SoC
 +	  Support for the MII0 inside the Lantiq ADSL SoC
 +
 +
 +config LANTIQ_XRX200_LEGACY
 +config LANTIQ_XRX200_LEGACY
 +	tristate "Lantiq SoC XRX200 driver"
 +	tristate "Lantiq SoC XRX200 driver"
 +	depends on SOC_TYPE_XWAY
 +	depends on SOC_TYPE_XWAY
-+	---help---
++	help
 +	  Support for the MII0 inside the Lantiq VDSL SoC
 +	  Support for the MII0 inside the Lantiq VDSL SoC
  
  
  config LANTIQ_XRX200
  config LANTIQ_XRX200
  	tristate "Lantiq / Intel xRX200 PMAC network driver"
  	tristate "Lantiq / Intel xRX200 PMAC network driver"
 --- a/drivers/net/ethernet/Makefile
 --- a/drivers/net/ethernet/Makefile
 +++ b/drivers/net/ethernet/Makefile
 +++ b/drivers/net/ethernet/Makefile
-@@ -51,6 +51,7 @@ obj-$(CONFIG_JME) += jme.o
+@@ -50,6 +50,7 @@ obj-$(CONFIG_JME) += jme.o
  obj-$(CONFIG_KORINA) += korina.o
  obj-$(CONFIG_KORINA) += korina.o
  obj-$(CONFIG_LANTIQ_ETOP) += lantiq_etop.o
  obj-$(CONFIG_LANTIQ_ETOP) += lantiq_etop.o
  obj-$(CONFIG_LANTIQ_XRX200) += lantiq_xrx200.o
  obj-$(CONFIG_LANTIQ_XRX200) += lantiq_xrx200.o
@@ -209,7 +209,7 @@ Subject: NET: MIPS: lantiq: adds xrx200 ethernet and switch driver
 +};
 +};
 --- /dev/null
 --- /dev/null
 +++ b/drivers/net/ethernet/lantiq_xrx200_legacy.c
 +++ b/drivers/net/ethernet/lantiq_xrx200_legacy.c
-@@ -0,0 +1,1927 @@
+@@ -0,0 +1,1930 @@
 +/*
 +/*
 + *   This program is free software; you can redistribute it and/or modify it
 + *   This program is free software; you can redistribute it and/or modify it
 + *   under the terms of the GNU General Public License version 2 as published
 + *   under the terms of the GNU General Public License version 2 as published
@@ -1281,7 +1281,7 @@ Subject: NET: MIPS: lantiq: adds xrx200 ethernet and switch driver
 +	return &priv->stats;
 +	return &priv->stats;
 +}
 +}
 +
 +
-+static void xrx200_tx_timeout(struct net_device *dev)
++static void xrx200_tx_timeout(struct net_device *dev, unsigned int txqueue)
 +{
 +{
 +	struct xrx200_priv *priv = netdev_priv(dev);
 +	struct xrx200_priv *priv = netdev_priv(dev);
 +
 +
@@ -1570,16 +1570,14 @@ Subject: NET: MIPS: lantiq: adds xrx200 ethernet and switch driver
 +	return 0;
 +	return 0;
 +}
 +}
 +
 +
-+static void xrx200_phy_link_change(struct phy_device *phydev, bool up, bool do_carrier)
++static void xrx200_phy_link_change(struct phy_device *phydev, bool up)
 +{
 +{
 +	struct net_device *netdev = phydev->attached_dev;
 +	struct net_device *netdev = phydev->attached_dev;
 +
 +
-+	if (do_carrier) {
-+		if (up)
-+			netif_carrier_on(netdev);
-+		else if (!xrx200_phy_has_link(netdev))
-+			netif_carrier_off(netdev);
-+	}
++	if (up)
++		netif_carrier_on(netdev);
++	else if (!xrx200_phy_has_link(netdev))
++		netif_carrier_off(netdev);
 +
 +
 +	phydev->adjust_link(netdev);
 +	phydev->adjust_link(netdev);
 +}
 +}
@@ -1897,6 +1895,7 @@ Subject: NET: MIPS: lantiq: adds xrx200 ethernet and switch driver
 +{
 +{
 +	const __be32 *addr, *id = of_get_property(port, "reg", NULL);
 +	const __be32 *addr, *id = of_get_property(port, "reg", NULL);
 +	struct xrx200_port *p = &priv->port[priv->num_port];
 +	struct xrx200_port *p = &priv->port[priv->num_port];
++	int ret;
 +
 +
 +	if (!id)
 +	if (!id)
 +		return;
 +		return;
@@ -1909,7 +1908,11 @@ Subject: NET: MIPS: lantiq: adds xrx200 ethernet and switch driver
 +
 +
 +	p->num = *id;
 +	p->num = *id;
 +	p->phy_addr = *addr;
 +	p->phy_addr = *addr;
-+	p->phy_if = of_get_phy_mode(port);
++
++	ret = of_get_phy_mode(port, &p->phy_if);
++	if (ret)
++		pr_err("Can't find phy-mode for port\n");
++
 +	if (p->phy_addr > 0x10)
 +	if (p->phy_addr > 0x10)
 +		p->flags = XRX200_PORT_TYPE_MAC;
 +		p->flags = XRX200_PORT_TYPE_MAC;
 +	else
 +	else

+ 12 - 10
target/linux/lantiq/patches-5.10/0028-NET-lantiq-various-etop-fixes.patch

@@ -171,7 +171,7 @@ Signed-off-by: John Crispin <[email protected]>
 +	int rx_irq;
 +	int rx_irq;
 +
 +
 +	unsigned char mac[6];
 +	unsigned char mac[6];
-+	int mii_mode;
++	phy_interface_t mii_mode;
 + 
 + 
 + 	spinlock_t lock;
 + 	spinlock_t lock;
 +
 +
@@ -330,7 +330,7 @@ Signed-off-by: John Crispin <[email protected]>
  {
  {
  	struct ltq_etop_priv *priv = netdev_priv(dev);
  	struct ltq_etop_priv *priv = netdev_priv(dev);
 -	int i;
 -	int i;
-+	int mii_mode = priv->mii_mode;
++	phy_interface_t mii_mode = priv->mii_mode;
  
  
 -	ltq_pmu_enable(PMU_PPE);
 -	ltq_pmu_enable(PMU_PPE);
 +	clk_enable(priv->clk_ppe);
 +	clk_enable(priv->clk_ppe);
@@ -687,7 +687,7 @@ Signed-off-by: John Crispin <[email protected]>
  	spin_unlock_irqrestore(&priv->lock, flags);
  	spin_unlock_irqrestore(&priv->lock, flags);
  
  
  	return 0;
  	return 0;
-@@ -563,6 +760,9 @@ ltq_etop_init(struct net_device *dev)
+@@ -556,6 +753,9 @@ ltq_etop_init(struct net_device *dev)
  	if (err)
  	if (err)
  		goto err_hw;
  		goto err_hw;
  	ltq_etop_change_mtu(dev, 1500);
  	ltq_etop_change_mtu(dev, 1500);
@@ -697,7 +697,7 @@ Signed-off-by: John Crispin <[email protected]>
  
  
  	memcpy(&mac, &priv->pldata->mac, sizeof(struct sockaddr));
  	memcpy(&mac, &priv->pldata->mac, sizeof(struct sockaddr));
  	if (!is_valid_ether_addr(mac.sa_data)) {
  	if (!is_valid_ether_addr(mac.sa_data)) {
-@@ -580,9 +780,10 @@ ltq_etop_init(struct net_device *dev)
+@@ -573,9 +773,10 @@ ltq_etop_init(struct net_device *dev)
  		dev->addr_assign_type = NET_ADDR_RANDOM;
  		dev->addr_assign_type = NET_ADDR_RANDOM;
  
  
  	ltq_etop_set_multicast_list(dev);
  	ltq_etop_set_multicast_list(dev);
@@ -711,7 +711,7 @@ Signed-off-by: John Crispin <[email protected]>
  	return 0;
  	return 0;
  
  
  err_netdev:
  err_netdev:
-@@ -602,6 +803,9 @@ ltq_etop_tx_timeout(struct net_device *d
+@@ -595,6 +796,9 @@ ltq_etop_tx_timeout(struct net_device *d
  	err = ltq_etop_hw_init(dev);
  	err = ltq_etop_hw_init(dev);
  	if (err)
  	if (err)
  		goto err_hw;
  		goto err_hw;
@@ -721,7 +721,7 @@ Signed-off-by: John Crispin <[email protected]>
  	netif_trans_update(dev);
  	netif_trans_update(dev);
  	netif_wake_queue(dev);
  	netif_wake_queue(dev);
  	return;
  	return;
-@@ -625,14 +829,19 @@ static const struct net_device_ops ltq_e
+@@ -618,14 +822,19 @@ static const struct net_device_ops ltq_e
  	.ndo_tx_timeout = ltq_etop_tx_timeout,
  	.ndo_tx_timeout = ltq_etop_tx_timeout,
  };
  };
  
  
@@ -745,7 +745,7 @@ Signed-off-by: John Crispin <[email protected]>
  
  
  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  	if (!res) {
  	if (!res) {
-@@ -658,31 +867,62 @@ ltq_etop_probe(struct platform_device *p
+@@ -651,31 +860,64 @@ ltq_etop_probe(struct platform_device *p
  		goto err_out;
  		goto err_out;
  	}
  	}
  
  
@@ -760,7 +760,7 @@ Signed-off-by: John Crispin <[email protected]>
 +			err = -ENOENT;
 +			err = -ENOENT;
 +			goto err_out;
 +			goto err_out;
 +		}
 +		}
-+		ltq_gbit_membase = devm_ioremap_nocache(&pdev->dev,
++		ltq_gbit_membase = devm_ioremap(&pdev->dev,
 +			gbit_res->start, resource_size(gbit_res));
 +			gbit_res->start, resource_size(gbit_res));
 +		if (!ltq_gbit_membase) {
 +		if (!ltq_gbit_membase) {
 +			dev_err(&pdev->dev, "failed to remap gigabit switch %d\n",
 +			dev_err(&pdev->dev, "failed to remap gigabit switch %d\n",
@@ -781,7 +781,9 @@ Signed-off-by: John Crispin <[email protected]>
  	priv->netdev = dev;
  	priv->netdev = dev;
 +	priv->tx_irq = irqres[0].start;
 +	priv->tx_irq = irqres[0].start;
 +	priv->rx_irq = irqres[1].start;
 +	priv->rx_irq = irqres[1].start;
-+	priv->mii_mode = of_get_phy_mode(pdev->dev.of_node);
++	err = of_get_phy_mode(pdev->dev.of_node, &priv->mii_mode);
++	if (err)
++		pr_err("Can't find phy-mode for port\n");
 +
 +
 +	mac = of_get_mac_address(pdev->dev.of_node);
 +	mac = of_get_mac_address(pdev->dev.of_node);
 +	if (mac)
 +	if (mac)
@@ -823,7 +825,7 @@ Signed-off-by: John Crispin <[email protected]>
  
  
  	err = register_netdev(dev);
  	err = register_netdev(dev);
  	if (err)
  	if (err)
-@@ -711,31 +951,22 @@ ltq_etop_remove(struct platform_device *
+@@ -704,31 +946,22 @@ ltq_etop_remove(struct platform_device *
  	return 0;
  	return 0;
  }
  }
  
  

+ 7 - 7
target/linux/lantiq/patches-5.10/0030-GPIO-add-named-gpio-exports.patch

@@ -22,7 +22,7 @@ Signed-off-by: John Crispin <[email protected]>
  
  
  #include "gpiolib.h"
  #include "gpiolib.h"
  #include "gpiolib-of.h"
  #include "gpiolib-of.h"
-@@ -915,3 +917,72 @@ void of_gpiochip_remove(struct gpio_chip
+@@ -1039,3 +1041,72 @@ void of_gpiochip_remove(struct gpio_chip
  {
  {
  	of_node_put(chip->of_node);
  	of_node_put(chip->of_node);
  }
  }
@@ -97,7 +97,7 @@ Signed-off-by: John Crispin <[email protected]>
 +#endif
 +#endif
 --- a/include/asm-generic/gpio.h
 --- a/include/asm-generic/gpio.h
 +++ b/include/asm-generic/gpio.h
 +++ b/include/asm-generic/gpio.h
-@@ -127,6 +127,12 @@ static inline int gpio_export(unsigned g
+@@ -125,6 +125,12 @@ static inline int gpio_export(unsigned g
  	return gpiod_export(gpio_to_desc(gpio), direction_may_change);
  	return gpiod_export(gpio_to_desc(gpio), direction_may_change);
  }
  }
  
  
@@ -112,7 +112,7 @@ Signed-off-by: John Crispin <[email protected]>
  {
  {
 --- a/include/linux/gpio/consumer.h
 --- a/include/linux/gpio/consumer.h
 +++ b/include/linux/gpio/consumer.h
 +++ b/include/linux/gpio/consumer.h
-@@ -668,6 +668,7 @@ static inline void devm_acpi_dev_remove_
+@@ -715,6 +715,7 @@ static inline void devm_acpi_dev_remove_
  
  
  #if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS)
  #if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS)
  
  
@@ -120,7 +120,7 @@ Signed-off-by: John Crispin <[email protected]>
  int gpiod_export(struct gpio_desc *desc, bool direction_may_change);
  int gpiod_export(struct gpio_desc *desc, bool direction_may_change);
  int gpiod_export_link(struct device *dev, const char *name,
  int gpiod_export_link(struct device *dev, const char *name,
  		      struct gpio_desc *desc);
  		      struct gpio_desc *desc);
-@@ -675,6 +676,13 @@ void gpiod_unexport(struct gpio_desc *de
+@@ -722,6 +723,13 @@ void gpiod_unexport(struct gpio_desc *de
  
  
  #else  /* CONFIG_GPIOLIB && CONFIG_GPIO_SYSFS */
  #else  /* CONFIG_GPIOLIB && CONFIG_GPIO_SYSFS */
  
  
@@ -136,7 +136,7 @@ Signed-off-by: John Crispin <[email protected]>
  {
  {
 --- a/drivers/gpio/gpiolib-sysfs.c
 --- a/drivers/gpio/gpiolib-sysfs.c
 +++ b/drivers/gpio/gpiolib-sysfs.c
 +++ b/drivers/gpio/gpiolib-sysfs.c
-@@ -563,7 +563,7 @@ static struct class gpio_class = {
+@@ -564,7 +564,7 @@ static struct class gpio_class = {
   *
   *
   * Returns zero on success, else an error.
   * Returns zero on success, else an error.
   */
   */
@@ -145,7 +145,7 @@ Signed-off-by: John Crispin <[email protected]>
  {
  {
  	struct gpio_chip	*chip;
  	struct gpio_chip	*chip;
  	struct gpio_device	*gdev;
  	struct gpio_device	*gdev;
-@@ -625,6 +625,8 @@ int gpiod_export(struct gpio_desc *desc,
+@@ -626,6 +626,8 @@ int gpiod_export(struct gpio_desc *desc,
  	offset = gpio_chip_hwgpio(desc);
  	offset = gpio_chip_hwgpio(desc);
  	if (chip->names && chip->names[offset])
  	if (chip->names && chip->names[offset])
  		ioname = chip->names[offset];
  		ioname = chip->names[offset];
@@ -154,7 +154,7 @@ Signed-off-by: John Crispin <[email protected]>
  
  
  	dev = device_create_with_groups(&gpio_class, &gdev->dev,
  	dev = device_create_with_groups(&gpio_class, &gdev->dev,
  					MKDEV(0, 0), data, gpio_groups,
  					MKDEV(0, 0), data, gpio_groups,
-@@ -646,6 +648,12 @@ err_unlock:
+@@ -647,6 +649,12 @@ err_unlock:
  	gpiod_dbg(desc, "%s: status %d\n", __func__, status);
  	gpiod_dbg(desc, "%s: status %d\n", __func__, status);
  	return status;
  	return status;
  }
  }

+ 2 - 2
target/linux/lantiq/patches-5.10/0031-I2C-MIPS-lantiq-add-FALC-ON-i2c-bus-master.patch

@@ -18,7 +18,7 @@ Signed-off-by: John Crispin <[email protected]>
 
 
 --- a/drivers/i2c/busses/Kconfig
 --- a/drivers/i2c/busses/Kconfig
 +++ b/drivers/i2c/busses/Kconfig
 +++ b/drivers/i2c/busses/Kconfig
-@@ -729,6 +729,16 @@ config I2C_MESON
+@@ -753,6 +753,16 @@ config I2C_MESON
  	  If you say yes to this option, support will be included for the
  	  If you say yes to this option, support will be included for the
  	  I2C interface on the Amlogic Meson family of SoCs.
  	  I2C interface on the Amlogic Meson family of SoCs.
  
  
@@ -37,7 +37,7 @@ Signed-off-by: John Crispin <[email protected]>
  	depends on PPC
  	depends on PPC
 --- a/drivers/i2c/busses/Makefile
 --- a/drivers/i2c/busses/Makefile
 +++ b/drivers/i2c/busses/Makefile
 +++ b/drivers/i2c/busses/Makefile
-@@ -73,6 +73,7 @@ obj-$(CONFIG_I2C_IMX_LPI2C)	+= i2c-imx-l
+@@ -72,6 +72,7 @@ obj-$(CONFIG_I2C_IMX_LPI2C)	+= i2c-imx-l
  obj-$(CONFIG_I2C_IOP3XX)	+= i2c-iop3xx.o
  obj-$(CONFIG_I2C_IOP3XX)	+= i2c-iop3xx.o
  obj-$(CONFIG_I2C_JZ4780)	+= i2c-jz4780.o
  obj-$(CONFIG_I2C_JZ4780)	+= i2c-jz4780.o
  obj-$(CONFIG_I2C_KEMPLD)	+= i2c-kempld.o
  obj-$(CONFIG_I2C_KEMPLD)	+= i2c-kempld.o

+ 1 - 1
target/linux/lantiq/patches-5.10/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch

@@ -203,7 +203,7 @@ Signed-off-by: John Crispin <[email protected]>
 +early_param("ethaddr", setup_ethaddr);
 +early_param("ethaddr", setup_ethaddr);
 --- a/drivers/net/ethernet/lantiq_etop.c
 --- a/drivers/net/ethernet/lantiq_etop.c
 +++ b/drivers/net/ethernet/lantiq_etop.c
 +++ b/drivers/net/ethernet/lantiq_etop.c
-@@ -764,7 +764,11 @@ ltq_etop_init(struct net_device *dev)
+@@ -757,7 +757,11 @@ ltq_etop_init(struct net_device *dev)
  	if (err)
  	if (err)
  		goto err_hw;
  		goto err_hw;
  
  

+ 14 - 13
target/linux/lantiq/patches-5.10/0042-arch-mips-increase-io_space_limit.patch

@@ -7,17 +7,18 @@ this value comes from x86 and breaks some pci devices
 
 
 Signed-off-by: John Crispin <[email protected]>
 Signed-off-by: John Crispin <[email protected]>
 ---
 ---
- arch/mips/include/asm/io.h |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ arch/mips/include/asm/mach-lantiq/spaces.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+ create mode 100644 arch/mips/include/asm/mach-lantiq/spaces.h
 
 
---- a/arch/mips/include/asm/io.h
-+++ b/arch/mips/include/asm/io.h
-@@ -53,7 +53,7 @@
- 
- /* ioswab[bwlq], __mem_ioswab[bwlq] are defined in mangle-port.h */
- 
--#define IO_SPACE_LIMIT 0xffff
-+#define IO_SPACE_LIMIT 0xffffffff
- 
- /*
-  * On MIPS I/O ports are memory mapped, so we access them using normal
+--- /dev/null
++++ b/arch/mips/include/asm/mach-lantiq/spaces.h
+@@ -0,0 +1,8 @@
++/* SPDX-License-Identifier: GPL-2.0 */
++#ifndef __ASM_MACH_LANTIQ_SPACES_H_
++#define __ASM_MACH_LANTIQ_SPACES_H_
++
++#define IO_SPACE_LIMIT  0xffffffff
++
++#include <asm/mach-generic/spaces.h>
++#endif

+ 2 - 2
target/linux/lantiq/patches-5.10/0050-USB-DWC2-make-the-lantiq-settings-match-vendor-drive.patch

@@ -24,7 +24,7 @@ Signed-off-by: Hauke Mehrtens <[email protected]>
 --- a/drivers/usb/dwc2/params.c
 --- a/drivers/usb/dwc2/params.c
 +++ b/drivers/usb/dwc2/params.c
 +++ b/drivers/usb/dwc2/params.c
 @@ -92,7 +92,14 @@ static void dwc2_set_rk_params(struct dw
 @@ -92,7 +92,14 @@ static void dwc2_set_rk_params(struct dw
- 	p->power_down = 0;
+ 	p->power_down = DWC2_POWER_DOWN_PARAM_NONE;
  }
  }
  
  
 -static void dwc2_set_ltq_params(struct dwc2_hsotg *hsotg)
 -static void dwc2_set_ltq_params(struct dwc2_hsotg *hsotg)
@@ -62,7 +62,7 @@ Signed-off-by: Hauke Mehrtens <[email protected]>
  static void dwc2_set_amlogic_params(struct dwc2_hsotg *hsotg)
  static void dwc2_set_amlogic_params(struct dwc2_hsotg *hsotg)
  {
  {
  	struct dwc2_core_params *p = &hsotg->params;
  	struct dwc2_core_params *p = &hsotg->params;
-@@ -167,8 +182,11 @@ const struct of_device_id dwc2_of_match_
+@@ -196,8 +211,11 @@ const struct of_device_id dwc2_of_match_
  	{ .compatible = "brcm,bcm2835-usb", .data = dwc2_set_bcm_params },
  	{ .compatible = "brcm,bcm2835-usb", .data = dwc2_set_bcm_params },
  	{ .compatible = "hisilicon,hi6220-usb", .data = dwc2_set_his_params  },
  	{ .compatible = "hisilicon,hi6220-usb", .data = dwc2_set_his_params  },
  	{ .compatible = "rockchip,rk3066-usb", .data = dwc2_set_rk_params },
  	{ .compatible = "rockchip,rk3066-usb", .data = dwc2_set_rk_params },

+ 2 - 2
target/linux/lantiq/patches-5.10/0051-MIPS-lantiq-improve-USB-initialization.patch

@@ -15,7 +15,7 @@ Signed-off-by: Hauke Mehrtens <[email protected]>
 
 
 --- a/arch/mips/lantiq/xway/sysctrl.c
 --- a/arch/mips/lantiq/xway/sysctrl.c
 +++ b/arch/mips/lantiq/xway/sysctrl.c
 +++ b/arch/mips/lantiq/xway/sysctrl.c
-@@ -244,6 +244,25 @@ static void pmu_disable(struct clk *clk)
+@@ -248,6 +248,25 @@ static void pmu_disable(struct clk *clk)
  		pr_warn("deactivating PMU module failed!");
  		pr_warn("deactivating PMU module failed!");
  }
  }
  
  
@@ -41,7 +41,7 @@ Signed-off-by: Hauke Mehrtens <[email protected]>
  /* the pci enable helper */
  /* the pci enable helper */
  static int pci_enable(struct clk *clk)
  static int pci_enable(struct clk *clk)
  {
  {
-@@ -565,4 +584,5 @@ void __init ltq_soc_init(void)
+@@ -571,4 +590,5 @@ void __init ltq_soc_init(void)
  		clkdev_add_pmu("1e116000.mei", "dfe", 1, 0, PMU_DFE);
  		clkdev_add_pmu("1e116000.mei", "dfe", 1, 0, PMU_DFE);
  		clkdev_add_pmu("1e100400.serial", NULL, 1, 0, PMU_ASC0);
  		clkdev_add_pmu("1e100400.serial", NULL, 1, 0, PMU_ASC0);
  	}
  	}

+ 8 - 8
target/linux/lantiq/patches-5.10/0101-find_active_root.patch

@@ -1,6 +1,6 @@
 --- a/drivers/mtd/parsers/ofpart_core.c
 --- a/drivers/mtd/parsers/ofpart_core.c
 +++ b/drivers/mtd/parsers/ofpart_core.c
 +++ b/drivers/mtd/parsers/ofpart_core.c
-@@ -33,6 +33,38 @@ static bool node_has_compatible(struct d
+@@ -38,6 +38,38 @@ static bool node_has_compatible(struct d
  	return of_get_property(pp, "compatible", NULL);
  	return of_get_property(pp, "compatible", NULL);
  }
  }
  
  
@@ -39,7 +39,7 @@
  static int parse_fixed_partitions(struct mtd_info *master,
  static int parse_fixed_partitions(struct mtd_info *master,
  				  const struct mtd_partition **pparts,
  				  const struct mtd_partition **pparts,
  				  struct mtd_part_parser_data *data)
  				  struct mtd_part_parser_data *data)
-@@ -46,6 +78,8 @@ static int parse_fixed_partitions(struct
+@@ -51,6 +83,8 @@ static int parse_fixed_partitions(struct
  	struct device_node *pp;
  	struct device_node *pp;
  	int nr_parts, i, ret = 0;
  	int nr_parts, i, ret = 0;
  	bool dedicated = true;
  	bool dedicated = true;
@@ -48,7 +48,7 @@
  
  
  	/* Pull of_node from the master device node */
  	/* Pull of_node from the master device node */
  	mtd_node = mtd_get_of_node(master);
  	mtd_node = mtd_get_of_node(master);
-@@ -86,7 +120,9 @@ static int parse_fixed_partitions(struct
+@@ -93,7 +127,9 @@ static int parse_fixed_partitions(struct
  		return 0;
  		return 0;
  
  
  	parts = kcalloc(nr_parts, sizeof(*parts), GFP_KERNEL);
  	parts = kcalloc(nr_parts, sizeof(*parts), GFP_KERNEL);
@@ -59,9 +59,9 @@
  		return -ENOMEM;
  		return -ENOMEM;
  
  
  	i = 0;
  	i = 0;
-@@ -135,6 +171,11 @@ static int parse_fixed_partitions(struct
- 		if (of_get_property(pp, "lock", &len))
- 			parts[i].mask_flags |= MTD_POWERUP_LOCK;
+@@ -145,6 +181,11 @@ static int parse_fixed_partitions(struct
+ 		if (of_property_read_bool(pp, "slc-mode"))
+ 			parts[i].add_flags |= MTD_SLC_ON_MLC_EMULATION;
  
  
 +		if (!proot_id && of_device_is_compatible(pp, "brnboot,root-selector"))
 +		if (!proot_id && of_device_is_compatible(pp, "brnboot,root-selector"))
 +			proot_id = brnboot_get_selected_root_part(master, parts[i].offset);
 +			proot_id = brnboot_get_selected_root_part(master, parts[i].offset);
@@ -71,7 +71,7 @@
  		i++;
  		i++;
  	}
  	}
  
  
-@@ -144,6 +185,11 @@ static int parse_fixed_partitions(struct
+@@ -154,6 +195,11 @@ static int parse_fixed_partitions(struct
  	if (quirks && quirks->post_parse)
  	if (quirks && quirks->post_parse)
  		quirks->post_parse(master, parts, nr_parts);
  		quirks->post_parse(master, parts, nr_parts);
  
  
@@ -83,7 +83,7 @@
  	*pparts = parts;
  	*pparts = parts;
  	return nr_parts;
  	return nr_parts;
  
  
-@@ -154,6 +200,7 @@ ofpart_fail:
+@@ -164,6 +210,7 @@ ofpart_fail:
  ofpart_none:
  ofpart_none:
  	of_node_put(pp);
  	of_node_put(pp);
  	kfree(parts);
  	kfree(parts);

+ 1 - 1
target/linux/lantiq/patches-5.10/0151-lantiq-ifxmips_pcie-use-of.patch

@@ -376,7 +376,7 @@
  	struct clk *clk;
  	struct clk *clk;
 --- a/arch/mips/pci/Makefile
 --- a/arch/mips/pci/Makefile
 +++ b/arch/mips/pci/Makefile
 +++ b/arch/mips/pci/Makefile
-@@ -51,7 +51,7 @@ obj-$(CONFIG_PCI_LANTIQ)	+= pci-lantiq.o
+@@ -43,7 +43,7 @@ obj-$(CONFIG_PCI_LANTIQ)	+= pci-lantiq.o
  obj-$(CONFIG_SOC_MT7620)	+= pci-mt7620.o
  obj-$(CONFIG_SOC_MT7620)	+= pci-mt7620.o
  obj-$(CONFIG_SOC_RT288X)	+= pci-rt2880.o
  obj-$(CONFIG_SOC_RT288X)	+= pci-rt2880.o
  obj-$(CONFIG_SOC_RT3883)	+= pci-rt3883.o
  obj-$(CONFIG_SOC_RT3883)	+= pci-rt3883.o

+ 1 - 1
target/linux/lantiq/patches-5.10/0152-lantiq-VPE.patch

@@ -1,6 +1,6 @@
 --- a/arch/mips/Kconfig
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -2377,6 +2377,12 @@ config MIPS_VPE_LOADER
+@@ -2425,6 +2425,12 @@ config MIPS_VPE_LOADER
  	  Includes a loader for loading an elf relocatable object
  	  Includes a loader for loading an elf relocatable object
  	  onto another VPE and running it.
  	  onto another VPE and running it.
  
  

+ 2 - 2
target/linux/lantiq/patches-5.10/0301-xrx200-add-gphy-clk-src-device-tree-binding.patch

@@ -1,6 +1,6 @@
 --- a/arch/mips/lantiq/xway/sysctrl.c
 --- a/arch/mips/lantiq/xway/sysctrl.c
 +++ b/arch/mips/lantiq/xway/sysctrl.c
 +++ b/arch/mips/lantiq/xway/sysctrl.c
-@@ -422,6 +422,20 @@ static void clkdev_add_clkout(void)
+@@ -426,6 +426,20 @@ static void clkdev_add_clkout(void)
  	}
  	}
  }
  }
  
  
@@ -21,7 +21,7 @@
  /* bring up all register ranges that we need for basic system control */
  /* bring up all register ranges that we need for basic system control */
  void __init ltq_soc_init(void)
  void __init ltq_soc_init(void)
  {
  {
-@@ -585,4 +599,6 @@ void __init ltq_soc_init(void)
+@@ -591,4 +605,6 @@ void __init ltq_soc_init(void)
  		clkdev_add_pmu("1e100400.serial", NULL, 1, 0, PMU_ASC0);
  		clkdev_add_pmu("1e100400.serial", NULL, 1, 0, PMU_ASC0);
  	}
  	}
  	usb_set_clock();
  	usb_set_clock();

+ 100 - 0
target/linux/lantiq/xrx200/config-5.10

@@ -0,0 +1,100 @@
+CONFIG_AT803X_PHY=y
+CONFIG_BLK_MQ_PCI=y
+CONFIG_CPU_HAS_DIEI=y
+CONFIG_CPU_MIPSR2_IRQ_EI=y
+CONFIG_CPU_MIPSR2_IRQ_VI=y
+CONFIG_CPU_RMAP=y
+CONFIG_CRC16=y
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_NULL2=y
+CONFIG_CRYPTO_ZSTD=y
+CONFIG_EXTRA_FIRMWARE="lantiq/xrx200_phy11g_a14.bin lantiq/xrx200_phy11g_a22.bin lantiq/xrx200_phy22f_a14.bin lantiq/xrx200_phy22f_a22.bin"
+CONFIG_EXTRA_FIRMWARE_DIR="firmware"
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_HWMON=y
+CONFIG_HW_RANDOM=y
+CONFIG_ICPLUS_PHY=y
+CONFIG_IFX_VPE_EXT=y
+CONFIG_INPUT=y
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_POLLDEV=y
+CONFIG_INTEL_XWAY_PHY=y
+# CONFIG_ISDN is not set
+CONFIG_LANTIQ_XRX200_LEGACY=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_MIPS_MT=y
+# CONFIG_MIPS_MT_FPAFF is not set
+CONFIG_MIPS_MT_SMP=y
+CONFIG_MIPS_NR_CPU_NR_MAP=2
+CONFIG_MIPS_PERF_SHARED_TC_COUNTERS=y
+CONFIG_MIPS_VPE_APSP_API=y
+CONFIG_MIPS_VPE_APSP_API_MT=y
+CONFIG_MIPS_VPE_LOADER=y
+CONFIG_MIPS_VPE_LOADER_MT=y
+CONFIG_MIPS_VPE_LOADER_TOM=y
+CONFIG_MTD_NAND_CORE=y
+CONFIG_MTD_NAND_ECC=y
+CONFIG_MTD_NAND_ECC_SW_HAMMING=y
+CONFIG_MTD_NAND_PLATFORM=y
+CONFIG_MTD_NAND_XWAY=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_NET_FLOW_LIMIT=y
+CONFIG_NLS=y
+CONFIG_NR_CPUS=2
+CONFIG_PADATA=y
+CONFIG_PCI=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIE_LANTIQ=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_LANTIQ=y
+CONFIG_PHY_LANTIQ_VRX200_PCIE=y
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_POWER_SUPPLY_HWMON=y
+CONFIG_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_SPINLOCKS=y
+CONFIG_RCU_NEED_SEGCBLIST=y
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_RFS_ACCEL=y
+CONFIG_RPS=y
+CONFIG_SENSORS_LTQ_CPUTEMP=y
+CONFIG_SGL_ALLOC=y
+CONFIG_SMP=y
+CONFIG_SMP_UP=y
+CONFIG_SOC_TYPE_XWAY=y
+CONFIG_SOC_XWAY=y
+CONFIG_SWCONFIG_LEDS=y
+CONFIG_SYNC_R4K=y
+CONFIG_SYS_SUPPORTS_SCHED_SMT=y
+CONFIG_SYS_SUPPORTS_SMP=y
+CONFIG_TREE_RCU=y
+CONFIG_TREE_SRCU=y
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_UBIFS_FS_ZSTD=y
+CONFIG_USB=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_SUPPORT=y
+CONFIG_XPS=y
+CONFIG_XRX200_PHY_FW=y
+CONFIG_XXHASH=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZSTD_COMPRESS=y
+CONFIG_ZSTD_DECOMPRESS=y

+ 49 - 0
target/linux/lantiq/xway/config-5.10

@@ -0,0 +1,49 @@
+CONFIG_ADM6996_PHY=y
+CONFIG_AR8216_PHY=y
+CONFIG_AT803X_PHY=y
+CONFIG_BLK_MQ_PCI=y
+CONFIG_CPU_HAS_DIEI=y
+CONFIG_CRC16=y
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_HW_RANDOM=y
+CONFIG_INPUT=y
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_POLLDEV=y
+# CONFIG_ISDN is not set
+CONFIG_LANTIQ_ETOP=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_MTD_NAND_CORE=y
+CONFIG_MTD_NAND_ECC=y
+CONFIG_MTD_NAND_ECC_SW_HAMMING=y
+CONFIG_MTD_NAND_XWAY=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_NLS=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_LANTIQ=y
+CONFIG_PSB6970_PHY=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_RTL8306_PHY=y
+CONFIG_RTL8366RB_PHY=y
+CONFIG_RTL8366S_PHY=y
+CONFIG_RTL8366_SMI=y
+CONFIG_RTL8367B_PHY=y
+CONFIG_RTL8367_PHY=y
+CONFIG_SGL_ALLOC=y
+CONFIG_SOC_TYPE_XWAY=y
+CONFIG_SOC_XWAY=y
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_USB=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_SUPPORT=y

+ 39 - 0
target/linux/lantiq/xway_legacy/config-5.10

@@ -0,0 +1,39 @@
+CONFIG_ADM6996_PHY=y
+CONFIG_AR8216_PHY=y
+CONFIG_BLK_MQ_PCI=y
+CONFIG_CPU_HAS_DIEI=y
+CONFIG_CRC16=y
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_GENERIC_ALLOCATOR=y
+# CONFIG_GPIO_SYSFS is not set
+CONFIG_INPUT=y
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_POLLDEV=y
+# CONFIG_ISDN is not set
+CONFIG_LANTIQ_ETOP=y
+# CONFIG_LEDS_TRIGGER_TIMER is not set
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_NLS=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_LANTIQ=y
+CONFIG_PSB6970_PHY=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_RTL8306_PHY=y
+CONFIG_RTL8366RB_PHY=y
+CONFIG_RTL8366S_PHY=y
+CONFIG_RTL8366_SMI=y
+CONFIG_RTL8367B_PHY=y
+CONFIG_RTL8367_PHY=y
+CONFIG_SGL_ALLOC=y
+CONFIG_SOC_TYPE_XWAY=y
+CONFIG_SOC_XWAY=y
+CONFIG_USB=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_SUPPORT=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y