diff options
| -rw-r--r-- | target/linux/lantiq/image/Makefile | 2 | ||||
| -rw-r--r-- | target/linux/lantiq/patches/101-header.patch | 29 | ||||
| -rw-r--r-- | target/linux/lantiq/patches/104-board_xway.patch | 58 | ||||
| -rw-r--r-- | target/linux/lantiq/patches/110-machine.patch | 12 | ||||
| -rw-r--r-- | target/linux/lantiq/patches/260-pci.patch | 154 | ||||
| -rw-r--r-- | target/linux/lantiq/patches/400-mach-arv45xx.patch | 97 | ||||
| -rw-r--r-- | target/linux/lantiq/patches/700-dwc_otg.patch | 8 | ||||
| -rw-r--r-- | target/linux/lantiq/patches/900-pci_ath5k_hook.patch | 40 | ||||
| -rw-r--r-- | target/linux/lantiq/xway/config-default | 3 |
9 files changed, 258 insertions, 145 deletions
diff --git a/target/linux/lantiq/image/Makefile b/target/linux/lantiq/image/Makefile index ee1f86dd45e..71d09204ce0 100644 --- a/target/linux/lantiq/image/Makefile +++ b/target/linux/lantiq/image/Makefile @@ -60,6 +60,7 @@ define Image/BuildKernel $(call Image/BuildKernel/Template,EASY50712,$(xway_cmdline)) $(call Image/BuildKernel/Template,EASY50812,$(xway_cmdline)) $(call Image/BuildKernel/Template,ARV452,$(xway_cmdline)) + $(call Image/BuildKernel/Template,ARV752DPW22,$(xway_cmdline)) $(call Image/BuildKernel/Template,NONE) endef @@ -68,6 +69,7 @@ define Image/Build $(call Image/Build/$(1),$(1),EASY50712) $(call Image/Build/$(1),$(1),EASY50812) $(call Image/Build/$(1),$(1),ARV452) + $(call Image/Build/$(1),$(1),ARV752DPW22) $(call Image/Build/$(1),$(1),NONE) $(CP) $(KDIR)/root.$(1) $(BIN_DIR)/$(IMG_PREFIX)-$(1).rootfs endef diff --git a/target/linux/lantiq/patches/101-header.patch b/target/linux/lantiq/patches/101-header.patch index 3d0caf2f16a..28a44a7425e 100644 --- a/target/linux/lantiq/patches/101-header.patch +++ b/target/linux/lantiq/patches/101-header.patch @@ -97,7 +97,7 @@ +#endif --- /dev/null +++ b/arch/mips/include/asm/mach-lantiq/lantiq_platform.h -@@ -0,0 +1,36 @@ +@@ -0,0 +1,51 @@ +/* + * 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 @@ -122,15 +122,30 @@ + int mii_mode; +}; + -+/* struct used to pass info to the pci core */ -+enum { -+ PCI_CLOCK_INT = 0, -+ PCI_CLOCK_EXT -+}; ++#define PCI_EXIN0 0x0001 ++#define PCI_EXIN1 0x0002 ++#define PCI_EXIN2 0x0004 ++#define PCI_EXIN_SHIFT 0 ++ ++#define PCI_GNT1 0x0008 ++#define PCI_GNT2 0x0010 ++#define PCI_GNT3 0x0020 ++#define PCI_GNT_SHIFT 3 ++ ++#define PCI_REQ1 0x0040 ++#define PCI_REQ2 0x0080 ++#define PCI_REQ3 0x0100 ++#define PCI_REQ_SHIFT 6 ++ ++#define PCI_CLOCK_INT 0 ++#define PCI_CLOCK_EXT 1 + +struct lq_pci_data { + int clock; -+ int req_mask; ++ int gpio; ++ int irq[16]; +}; + ++extern int (*ifxmips_pci_plat_dev_init)(struct pci_dev *dev); ++ +#endif diff --git a/target/linux/lantiq/patches/104-board_xway.patch b/target/linux/lantiq/patches/104-board_xway.patch index 1aaeab63e1f..e70ff800740 100644 --- a/target/linux/lantiq/patches/104-board_xway.patch +++ b/target/linux/lantiq/patches/104-board_xway.patch @@ -23,7 +23,7 @@ +endif --- /dev/null +++ b/arch/mips/lantiq/xway/gpio_ebu.c -@@ -0,0 +1,107 @@ +@@ -0,0 +1,116 @@ +/* + * 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 @@ -54,13 +54,9 @@ +} + +static void -+lq_ebu_set(struct gpio_chip *chip, unsigned offset, int value) ++lq_ebu_apply(void) +{ + unsigned long flags; -+ if(value) -+ shadow |= (1 << offset); -+ else -+ shadow &= ~(1 << offset); + spin_lock_irqsave(&ebu_lock, flags); + lq_w32(LQ_EBU_BUSCON, LQ_EBU_BUSCON1); + *((__u16*)virt) = shadow; @@ -68,6 +64,16 @@ + spin_unlock_irqrestore(&ebu_lock, flags); +} + ++static void ++lq_ebu_set(struct gpio_chip *chip, unsigned offset, int value) ++{ ++ if(value) ++ shadow |= (1 << offset); ++ else ++ shadow &= ~(1 << offset); ++ lq_ebu_apply(); ++} ++ +static struct gpio_chip +lq_ebu_chip = +{ @@ -108,7 +114,10 @@ + + ret = gpiochip_add(&lq_ebu_chip); + if (!ret) ++ { ++ lq_ebu_apply(); + return 0; ++ } + +err_release_mem_region: + release_mem_region(res->start, resource_size(res)); @@ -130,7 +139,7 @@ + return platform_driver_register(&lq_ebu_driver); +} + -+arch_initcall(init_lq_ebu); ++postcore_initcall(init_lq_ebu); --- /dev/null +++ b/arch/mips/lantiq/xway/gpio_leds.c @@ -0,0 +1,161 @@ @@ -294,10 +303,10 @@ + return ret; +} + -+arch_initcall(init_lq_stp); ++postcore_initcall(init_lq_stp); --- /dev/null +++ b/arch/mips/lantiq/xway/mach-easy4010.c -@@ -0,0 +1,79 @@ +@@ -0,0 +1,82 @@ +/* + * 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 @@ -353,7 +362,10 @@ + +static struct lq_pci_data lq_pci_data = { + .clock = PCI_CLOCK_INT, -+ .req_mask = 0xf, ++ .gpio = PCI_GNT1 | PCI_REQ1, ++ .irq = { ++ [14] = INT_NUM_IM0_IRL0 + 22, ++ }, +}; + +static struct lq_eth_data lq_eth_data = { @@ -379,7 +391,7 @@ + easy4010_init); --- /dev/null +++ b/arch/mips/lantiq/xway/mach-easy50712.c -@@ -0,0 +1,79 @@ +@@ -0,0 +1,82 @@ +/* |
