1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-23 23:46:16 +02:00

[lantiq] update 3.2 patches

sync with lantiq kernel series

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31260 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
blogic 2012-04-12 12:33:56 +00:00
parent d7f2b105ad
commit 9e31085943
75 changed files with 1524 additions and 318 deletions

View File

@ -43,7 +43,6 @@ static struct resource resources[] =
},
[1] = {
.name = "dwc_otg_irq",
.start = LTQ_USB_INT,
.flags = IORESOURCE_IRQ,
},
};
@ -65,6 +64,7 @@ xway_register_dwc(int pin)
struct irq_data d;
d.irq = resources[1].start;
ltq_enable_irq(&d);
resources[1].start = ltq_is_ase() ? LTQ_USB_ASE_INT : LTQ_USB_INT;
platform_dev.dev.platform_data = (void*) pin;
return platform_device_register(&platform_dev);
}

View File

@ -1,7 +1,7 @@
From 282f1ca84b35f3be68abc4fd8b52e229f3cb6bb7 Mon Sep 17 00:00:00 2001
From 8817c547f92016b9276ffec88b708c2c16d1f0f1 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 8 Mar 2012 13:23:53 +0100
Subject: [PATCH 01/70] GPIO: add bindings for managed devices
Subject: [PATCH 01/73] GPIO: add bindings for managed devices
This patch adds 2 functions that allow managed devices to request GPIOs.
These GPIOs will then be managed by drivers/base/devres.c.
@ -15,6 +15,8 @@ Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
3 files changed, 95 insertions(+), 1 deletions(-)
create mode 100644 drivers/gpio/devres.c
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
index 4e018d6..76dbd3f 100644
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -2,7 +2,7 @@
@ -26,6 +28,9 @@ Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
# Device drivers. Generally keep list sorted alphabetically
obj-$(CONFIG_GPIO_GENERIC) += gpio-generic.o
diff --git a/drivers/gpio/devres.c b/drivers/gpio/devres.c
new file mode 100644
index 0000000..3dd2939
--- /dev/null
+++ b/drivers/gpio/devres.c
@@ -0,0 +1,90 @@
@ -119,9 +124,11 @@ Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
+ gpio_free(gpio);
+}
+EXPORT_SYMBOL(devm_gpio_free);
diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h
index 8c86210..8601a02 100644
--- a/include/asm-generic/gpio.h
+++ b/include/asm-generic/gpio.h
@@ -175,6 +175,10 @@ extern int gpio_request_one(unsigned gpi
@@ -175,6 +175,10 @@ extern int gpio_request_one(unsigned gpio, unsigned long flags, const char *labe
extern int gpio_request_array(const struct gpio *array, size_t num);
extern void gpio_free_array(const struct gpio *array, size_t num);
@ -132,3 +139,6 @@ Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
#ifdef CONFIG_GPIO_SYSFS
/*
--
1.7.9.1

View File

@ -1,12 +1,14 @@
From b859096bdc4b029357217af98874d6feec3ff4bd Mon Sep 17 00:00:00 2001
From 770d7934edcc0b4125cd1ef1ad102ae2c2e02bca Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Fri, 16 Mar 2012 16:27:35 +0100
Subject: [PATCH 02/70] MIPS: remove unused prototype kgdb_config
Subject: [PATCH 02/73] MIPS: remove unused prototype kgdb_config
---
arch/mips/include/asm/mips-boards/generic.h | 4 ----
1 files changed, 0 insertions(+), 4 deletions(-)
diff --git a/arch/mips/include/asm/mips-boards/generic.h b/arch/mips/include/asm/mips-boards/generic.h
index 46c0856..6e23ceb 100644
--- a/arch/mips/include/asm/mips-boards/generic.h
+++ b/arch/mips/include/asm/mips-boards/generic.h
@@ -93,8 +93,4 @@ extern void mips_pcibios_init(void);
@ -18,3 +20,6 @@ Subject: [PATCH 02/70] MIPS: remove unused prototype kgdb_config
-#endif
-
#endif /* __ASM_MIPS_BOARDS_GENERIC_H */
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 63e9d017ce90dc1cd0822bace72e4e391feafdab Mon Sep 17 00:00:00 2001
From 1427dd3518e0c950c612157a67e56069000cd29c Mon Sep 17 00:00:00 2001
From: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
Date: Fri, 17 Feb 2012 22:32:18 +0100
Subject: [PATCH 03/70] MTD: MIPS: lantiq: reintroduce support for cmdline
Subject: [PATCH 03/73] MTD: MIPS: lantiq: reintroduce support for cmdline
partitions
Since commit ca97dec2ab5c87e9fbdf7e882e1820004a3966fa the
@ -13,6 +13,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
drivers/mtd/maps/lantiq-flash.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/mtd/maps/lantiq-flash.c b/drivers/mtd/maps/lantiq-flash.c
index 4f10e27..764d468 100644
--- a/drivers/mtd/maps/lantiq-flash.c
+++ b/drivers/mtd/maps/lantiq-flash.c
@@ -45,6 +45,7 @@ struct ltq_mtd {
@ -23,7 +25,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
static map_word
ltq_read16(struct map_info *map, unsigned long adr)
@@ -168,7 +169,7 @@ ltq_mtd_probe(struct platform_device *pd
@@ -168,7 +169,7 @@ ltq_mtd_probe(struct platform_device *pdev)
cfi->addr_unlock1 ^= 1;
cfi->addr_unlock2 ^= 1;
@ -32,3 +34,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
ltq_mtd_data->parts, ltq_mtd_data->nr_parts);
if (err) {
dev_err(&pdev->dev, "failed to add partitions\n");
--
1.7.9.1

View File

@ -1,15 +1,17 @@
From e4e27fbcaf2caa2a3e3ef45c736b4bb14f91ecfe Mon Sep 17 00:00:00 2001
From 3778c58845f39b145b80ca357ca22a3095a8dfb1 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Tue, 13 Mar 2012 18:03:33 +0100
Subject: [PATCH 04/70] MTD: add m25p80 id for mx25l2005a
Subject: [PATCH 04/73] MTD: add m25p80 id for mx25l2005a
---
drivers/mtd/devices/m25p80.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index 884904d..3f37f5f 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -684,6 +684,7 @@ static const struct spi_device_id m25p_i
@@ -676,6 +676,7 @@ static const struct spi_device_id m25p_ids[] = {
{ "640s33b", INFO(0x898913, 0, 64 * 1024, 128, 0) },
/* Macronix */
@ -17,3 +19,6 @@ Subject: [PATCH 04/70] MTD: add m25p80 id for mx25l2005a
{ "mx25l4005a", INFO(0xc22013, 0, 64 * 1024, 8, SECT_4K) },
{ "mx25l8005", INFO(0xc22014, 0, 64 * 1024, 16, 0) },
{ "mx25l1606e", INFO(0xc22015, 0, 64 * 1024, 32, SECT_4K) },
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From cf7086d4c2f7caeccd019c0a57bf1566c72c13ee Mon Sep 17 00:00:00 2001
From 222ee25fab35b3c3a4c63903b6af4eb0d0556750 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Wed, 10 Aug 2011 14:57:04 +0200
Subject: [PATCH 05/70] MIPS: lantiq: reorganize xway code
Subject: [PATCH 05/73] MIPS: lantiq: reorganize xway code
Inside the folder arch/mips/lantiq/xway, there were alot of small files with
lots of duplicated code. This patch adds a wrapper function for inserting and
@ -38,6 +38,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
delete mode 100644 arch/mips/lantiq/xway/setup-xway.c
create mode 100644 arch/mips/lantiq/xway/sysctrl.c
diff --git a/arch/mips/include/asm/mach-lantiq/lantiq.h b/arch/mips/include/asm/mach-lantiq/lantiq.h
index ce2f029..66d7300 100644
--- a/arch/mips/include/asm/mach-lantiq/lantiq.h
+++ b/arch/mips/include/asm/mach-lantiq/lantiq.h
@@ -9,6 +9,7 @@
@ -64,7 +66,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
extern unsigned int ltq_get_cpu_ver(void);
extern unsigned int ltq_get_soc_type(void);
@@ -51,7 +43,9 @@ extern void ltq_enable_irq(struct irq_da
@@ -51,7 +43,9 @@ extern void ltq_enable_irq(struct irq_data *data);
/* find out what caused the last cpu reset */
extern int ltq_reset_cause(void);
@ -75,6 +77,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
#define IOPORT_RESOURCE_START 0x10000000
#define IOPORT_RESOURCE_END 0xffffffff
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
index 8a3c6be..9b7ee366 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
@@ -61,6 +61,8 @@
@ -117,6 +121,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
static inline int ltq_is_ar9(void)
{
diff --git a/arch/mips/lantiq/clk.c b/arch/mips/lantiq/clk.c
index 77ed70f..39eef7f 100644
--- a/arch/mips/lantiq/clk.c
+++ b/arch/mips/lantiq/clk.c
@@ -22,6 +22,7 @@
@ -150,12 +156,12 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
- if (insert_resource(&iomem_resource, &ltq_cgu_resource) < 0)
- panic("Failed to insert cgu memory\n");
+ ltq_soc_init();
-
- if (request_mem_region(ltq_cgu_resource.start,
- resource_size(&ltq_cgu_resource), "cgu") < 0)
- panic("Failed to request cgu memory\n");
-
+ ltq_soc_init();
- ltq_cgu_membase = ioremap_nocache(ltq_cgu_resource.start,
- resource_size(&ltq_cgu_resource));
- if (!ltq_cgu_membase) {
@ -168,6 +174,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ pr_info("CPU Clock: %ldMHz\n", clk_get_rate(clk) / 1000000);
clk_put(clk);
}
diff --git a/arch/mips/lantiq/devices.c b/arch/mips/lantiq/devices.c
index de1cb2b..7193d78 100644
--- a/arch/mips/lantiq/devices.c
+++ b/arch/mips/lantiq/devices.c
@@ -27,12 +27,8 @@
@ -185,7 +193,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
static struct platform_device ltq_nor = {
.name = "ltq_nor",
@@ -47,12 +43,8 @@ void __init ltq_register_nor(struct phys
@@ -47,12 +43,8 @@ void __init ltq_register_nor(struct physmap_flash_data *data)
}
/* watchdog */
@ -227,6 +235,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
IRQ_RES(tx, LTQ_ASC_TIR(1)),
IRQ_RES(rx, LTQ_ASC_RIR(1)),
IRQ_RES(err, LTQ_ASC_EIR(1)),
diff --git a/arch/mips/lantiq/devices.h b/arch/mips/lantiq/devices.h
index 2947bb1..a03c23f 100644
--- a/arch/mips/lantiq/devices.h
+++ b/arch/mips/lantiq/devices.h
@@ -14,6 +14,10 @@
@ -240,6 +250,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
extern void ltq_register_nor(struct physmap_flash_data *data);
extern void ltq_register_wdt(void);
diff --git a/arch/mips/lantiq/prom.c b/arch/mips/lantiq/prom.c
index e34fcfd..e3b1e25 100644
--- a/arch/mips/lantiq/prom.c
+++ b/arch/mips/lantiq/prom.c
@@ -16,6 +16,10 @@
@ -253,7 +265,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
static struct ltq_soc_info soc_info;
unsigned int ltq_get_cpu_ver(void)
@@ -55,16 +59,51 @@ static void __init prom_init_cmdline(voi
@@ -55,16 +59,51 @@ static void __init prom_init_cmdline(void)
}
}
@ -263,7 +275,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
- struct clk *clk;
+ __iomem void *ret = NULL;
+ struct resource *lookup = lookup_resource(&iomem_resource, res->start);
+
+ if (lookup && strcmp(lookup->name, res->name)) {
+ pr_err("conflicting memory range %s\n", res->name);
+ return NULL;
@ -279,7 +291,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ pr_err("Failed to request %s memory\n", res->name);
+ goto err_res;
+ }
+
+ ret = ioremap_nocache(res->start, resource_size(res));
+ if (!ret)
+ goto err_mem;
@ -311,6 +323,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
soc_info.sys_type[LTQ_SYS_TYPE_LEN - 1] = '\0';
pr_info("SoC: %s\n", soc_info.sys_type);
prom_init_cmdline();
diff --git a/arch/mips/lantiq/prom.h b/arch/mips/lantiq/prom.h
index b4229d9..51dba1b 100644
--- a/arch/mips/lantiq/prom.h
+++ b/arch/mips/lantiq/prom.h
@@ -9,17 +9,21 @@
@ -335,6 +349,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
extern void ltq_soc_setup(void);
#endif
diff --git a/arch/mips/lantiq/xway/Makefile b/arch/mips/lantiq/xway/Makefile
index c517f2e..6678402 100644
--- a/arch/mips/lantiq/xway/Makefile
+++ b/arch/mips/lantiq/xway/Makefile
@@ -1,7 +1,7 @@
@ -348,6 +364,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
obj-$(CONFIG_LANTIQ_MACH_EASY50712) += mach-easy50712.o
obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o
diff --git a/arch/mips/lantiq/xway/devices.c b/arch/mips/lantiq/xway/devices.c
index d614aa7..f97e565 100644
--- a/arch/mips/lantiq/xway/devices.c
+++ b/arch/mips/lantiq/xway/devices.c
@@ -31,22 +31,9 @@
@ -420,6 +438,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
static struct platform_device ltq_etop = {
.name = "ltq_etop",
diff --git a/arch/mips/lantiq/xway/dma.c b/arch/mips/lantiq/xway/dma.c
index cbb6ae5..60cd11f 100644
--- a/arch/mips/lantiq/xway/dma.c
+++ b/arch/mips/lantiq/xway/dma.c
@@ -24,6 +24,8 @@
@ -465,6 +485,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
if (!ltq_dma_membase)
panic("Failed to remap dma memory\n");
diff --git a/arch/mips/lantiq/xway/ebu.c b/arch/mips/lantiq/xway/ebu.c
deleted file mode 100644
index 033b318..0000000
--- a/arch/mips/lantiq/xway/ebu.c
+++ /dev/null
@@ -1,52 +0,0 @@
@ -520,6 +543,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
-}
-
-postcore_initcall(lantiq_ebu_init);
diff --git a/arch/mips/lantiq/xway/pmu.c b/arch/mips/lantiq/xway/pmu.c
deleted file mode 100644
index 39f0d26..0000000
--- a/arch/mips/lantiq/xway/pmu.c
+++ /dev/null
@@ -1,69 +0,0 @@
@ -592,6 +618,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
-}
-
-core_initcall(ltq_pmu_init);
diff --git a/arch/mips/lantiq/xway/prom-ase.c b/arch/mips/lantiq/xway/prom-ase.c
index ae4959a..3f86a3b 100644
--- a/arch/mips/lantiq/xway/prom-ase.c
+++ b/arch/mips/lantiq/xway/prom-ase.c
@@ -13,6 +13,7 @@
@ -602,7 +630,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
#include "../prom.h"
#define SOC_AMAZON_SE "Amazon_SE"
@@ -26,6 +27,7 @@ void __init ltq_soc_detect(struct ltq_so
@@ -26,6 +27,7 @@ void __init ltq_soc_detect(struct ltq_soc_info *i)
{
i->partnum = (ltq_r32(LTQ_MPS_CHIPID) & PART_MASK) >> PART_SHIFT;
i->rev = (ltq_r32(LTQ_MPS_CHIPID) & REV_MASK) >> REV_SHIFT;
@ -610,7 +638,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
switch (i->partnum) {
case SOC_ID_AMAZON_SE:
i->name = SOC_AMAZON_SE;
@@ -37,3 +39,10 @@ void __init ltq_soc_detect(struct ltq_so
@@ -37,3 +39,10 @@ void __init ltq_soc_detect(struct ltq_soc_info *i)
break;
}
}
@ -621,6 +649,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ ltq_register_gpio();
+ ltq_register_wdt();
+}
diff --git a/arch/mips/lantiq/xway/prom-xway.c b/arch/mips/lantiq/xway/prom-xway.c
index 2228133..d823a92 100644
--- a/arch/mips/lantiq/xway/prom-xway.c
+++ b/arch/mips/lantiq/xway/prom-xway.c
@@ -13,6 +13,7 @@
@ -631,7 +661,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
#include "../prom.h"
#define SOC_DANUBE "Danube"
@@ -28,6 +29,7 @@ void __init ltq_soc_detect(struct ltq_so
@@ -28,6 +29,7 @@ void __init ltq_soc_detect(struct ltq_soc_info *i)
{
i->partnum = (ltq_r32(LTQ_MPS_CHIPID) & PART_MASK) >> PART_SHIFT;
i->rev = (ltq_r32(LTQ_MPS_CHIPID) & REV_MASK) >> REV_SHIFT;
@ -639,7 +669,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
switch (i->partnum) {
case SOC_ID_DANUBE1:
case SOC_ID_DANUBE2:
@@ -52,3 +54,11 @@ void __init ltq_soc_detect(struct ltq_so
@@ -52,3 +54,11 @@ void __init ltq_soc_detect(struct ltq_soc_info *i)
break;
}
}
@ -651,6 +681,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ ltq_register_gpio();
+ ltq_register_wdt();
+}
diff --git a/arch/mips/lantiq/xway/reset.c b/arch/mips/lantiq/xway/reset.c
index 3d41f0b..ca2212a 100644
--- a/arch/mips/lantiq/xway/reset.c
+++ b/arch/mips/lantiq/xway/reset.c
@@ -15,6 +15,8 @@
@ -696,6 +728,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
if (!ltq_rcu_membase)
panic("Failed to remap rcu memory\n");
diff --git a/arch/mips/lantiq/xway/setup-ase.c b/arch/mips/lantiq/xway/setup-ase.c
deleted file mode 100644
index f6f3267..0000000
--- a/arch/mips/lantiq/xway/setup-ase.c
+++ /dev/null
@@ -1,19 +0,0 @@
@ -718,6 +753,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
- ltq_register_gpio();
- ltq_register_wdt();
-}
diff --git a/arch/mips/lantiq/xway/setup-xway.c b/arch/mips/lantiq/xway/setup-xway.c
deleted file mode 100644
index c292f64..0000000
--- a/arch/mips/lantiq/xway/setup-xway.c
+++ /dev/null
@@ -1,20 +0,0 @@
@ -741,6 +779,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
- ltq_register_gpio();
- ltq_register_wdt();
-}
diff --git a/arch/mips/lantiq/xway/sysctrl.c b/arch/mips/lantiq/xway/sysctrl.c
new file mode 100644
index 0000000..8fd13a1
--- /dev/null
+++ b/arch/mips/lantiq/xway/sysctrl.c
@@ -0,0 +1,78 @@
@ -822,6 +863,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ /* make sure to unprotect the memory region where flash is located */
+ ltq_ebu_w32(ltq_ebu_r32(LTQ_EBU_BUSCON0) & ~EBU_WRDIS, LTQ_EBU_BUSCON0);
+}
diff --git a/drivers/watchdog/lantiq_wdt.c b/drivers/watchdog/lantiq_wdt.c
index 102aed0..179bf98 100644
--- a/drivers/watchdog/lantiq_wdt.c
+++ b/drivers/watchdog/lantiq_wdt.c
@@ -16,7 +16,7 @@
@ -833,3 +876,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
/* Section 3.4 of the datasheet
* The password sequence protects the WDT control register from unintended
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 35f0a707698fc8f20e4164a704d7ac6af3342fb8 Mon Sep 17 00:00:00 2001
From 2daf93364658fd26bf583b7a46b81c08fddaf1e4 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Fri, 11 Nov 2011 12:45:24 +0100
Subject: [PATCH 06/70] MIPS: lantiq: change ltq_request_gpio() call signature
Subject: [PATCH 06/73] MIPS: lantiq: change ltq_request_gpio() call signature
ltq_request_gpio() was using alt0/1 to multiplex the function of GPIO pins.
This was XWAY specific. In order to also accomodate SoCs that require more bits
@ -17,6 +17,8 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
arch/mips/pci/pci-lantiq.c | 36 +++++++++----------
4 files changed, 26 insertions(+), 28 deletions(-)
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
index 9b7ee366..87f6d24 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
@@ -135,8 +135,8 @@ extern __iomem void *ltq_ebu_membase;
@ -30,6 +32,8 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
extern void ltq_pmu_enable(unsigned int module);
extern void ltq_pmu_disable(unsigned int module);
extern void ltq_cgu_enable(unsigned int clk);
diff --git a/arch/mips/lantiq/xway/gpio.c b/arch/mips/lantiq/xway/gpio.c
index d2fa98f..f204f6c 100644
--- a/arch/mips/lantiq/xway/gpio.c
+++ b/arch/mips/lantiq/xway/gpio.c
@@ -48,8 +48,8 @@ int irq_to_gpio(unsigned int gpio)
@ -43,7 +47,7 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
{
int id = 0;
@@ -67,13 +67,13 @@ int ltq_gpio_request(unsigned int pin, u
@@ -67,13 +67,13 @@ int ltq_gpio_request(unsigned int pin, unsigned int alt0,
pin -= PINS_PER_PORT;
id++;
}
@ -59,6 +63,8 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
ltq_gpio_setbit(ltq_gpio_port[id].membase,
LTQ_GPIO_ALTSEL1, pin);
else
diff --git a/arch/mips/lantiq/xway/gpio_stp.c b/arch/mips/lantiq/xway/gpio_stp.c
index ff9991c..2c78660 100644
--- a/arch/mips/lantiq/xway/gpio_stp.c
+++ b/arch/mips/lantiq/xway/gpio_stp.c
@@ -79,9 +79,9 @@ static struct gpio_chip ltq_stp_chip = {
@ -74,6 +80,8 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
/* sane defaults */
ltq_stp_w32(0, LTQ_STP_AR);
diff --git a/arch/mips/pci/pci-lantiq.c b/arch/mips/pci/pci-lantiq.c
index be1e1af..c001c5a 100644
--- a/arch/mips/pci/pci-lantiq.c
+++ b/arch/mips/pci/pci-lantiq.c
@@ -70,28 +70,27 @@
@ -136,3 +144,6 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
ltq_pci_req_mask = (gpio >> PCI_REQ_SHIFT) & PCI_REQ_MASK;
}
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 03f55cae0f5d9a4c30f935abf8d621ced64ae425 Mon Sep 17 00:00:00 2001
From 318b9c6242418e1568430c7768371d2bd556109a Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 11 Aug 2011 12:25:55 +0200
Subject: [PATCH 07/70] MIPS: lantiq: make irq.c support the FALC-ON
Subject: [PATCH 07/73] MIPS: lantiq: make irq.c support the FALC-ON
There are minor differences in how irqs work on xway and falcon socs.
Xway needs 2 quirks that we need to disable for falcon to also work with
@ -16,9 +16,11 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/lantiq/irq.c | 24 +++++++++++++-----------
1 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/arch/mips/lantiq/irq.c b/arch/mips/lantiq/irq.c
index f9737bb..17c057f 100644
--- a/arch/mips/lantiq/irq.c
+++ b/arch/mips/lantiq/irq.c
@@ -195,7 +195,7 @@ static void ltq_hw_irqdispatch(int modul
@@ -195,7 +195,7 @@ static void ltq_hw_irqdispatch(int module)
do_IRQ((int)irq + INT_NUM_IM0_IRL0 + (INT_NUM_IM_OFFSET * module));
/* if this is a EBU irq, we need to ack it or get a deadlock */
@ -36,15 +38,14 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ if (LTQ_EIU_BASE_ADDR) {
+ if (insert_resource(&iomem_resource, &ltq_eiu_resource) < 0)
+ panic("Failed to insert eiu memory\n");
+
+ if (request_mem_region(ltq_eiu_resource.start,
+ resource_size(&ltq_eiu_resource), "eiu") < 0)
+ panic("Failed to request eiu memory\n");
- if (request_mem_region(ltq_eiu_resource.start,
- resource_size(&ltq_eiu_resource), "eiu") < 0)
- panic("Failed to request eiu memory\n");
-
+ if (request_mem_region(ltq_eiu_resource.start,
+ resource_size(&ltq_eiu_resource), "eiu") < 0)
+ panic("Failed to request eiu memory\n");
- ltq_eiu_membase = ioremap_nocache(ltq_eiu_resource.start,
+ ltq_eiu_membase = ioremap_nocache(ltq_eiu_resource.start,
resource_size(&ltq_eiu_resource));
@ -67,3 +68,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
irq_set_chip_and_handler(i, &ltq_eiu_type,
handle_level_irq);
/* EIU3-5 only exist on ar9 and vr9 */
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From d54a53bc8bc25bf2f9076013f89b30cb9103f99f Mon Sep 17 00:00:00 2001
From 9124a4d02b182c47c61fc9e58234cde9a070d2d5 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 11 Aug 2011 14:33:04 +0200
Subject: [PATCH 08/70] MIPS: lantiq: add basic support for FALC-ON
Subject: [PATCH 08/73] MIPS: lantiq: add basic support for FALC-ON
Adds support for the FALC-ON SoC. This SoC is from the FTTH/GPON SoC family.
@ -34,6 +34,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
create mode 100644 arch/mips/lantiq/falcon/reset.c
create mode 100644 arch/mips/lantiq/falcon/sysctrl.c
diff --git a/arch/mips/include/asm/mach-lantiq/falcon/falcon_irq.h b/arch/mips/include/asm/mach-lantiq/falcon/falcon_irq.h
new file mode 100644
index 0000000..4dc6466
--- /dev/null
+++ b/arch/mips/include/asm/mach-lantiq/falcon/falcon_irq.h
@@ -0,0 +1,268 @@
@ -305,6 +308,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+#define FALCON_IRQ_VPE0_PMCIR (INT_NUM_IM4_IRL0 + 31)
+
+#endif /* _FALCON_IRQ__ */
diff --git a/arch/mips/include/asm/mach-lantiq/falcon/irq.h b/arch/mips/include/asm/mach-lantiq/falcon/irq.h
new file mode 100644
index 0000000..2caccd9
--- /dev/null
+++ b/arch/mips/include/asm/mach-lantiq/falcon/irq.h
@@ -0,0 +1,18 @@
@ -326,6 +332,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+#include_next <irq.h>
+
+#endif
diff --git a/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
new file mode 100644
index 0000000..b074748
--- /dev/null
+++ b/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
@@ -0,0 +1,143 @@
@ -472,9 +481,11 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+
+#endif /* CONFIG_SOC_FALCON */
+#endif /* _LTQ_XWAY_H__ */
diff --git a/arch/mips/include/asm/mach-lantiq/lantiq.h b/arch/mips/include/asm/mach-lantiq/lantiq.h
index 66d7300..188de0f 100644
--- a/arch/mips/include/asm/mach-lantiq/lantiq.h
+++ b/arch/mips/include/asm/mach-lantiq/lantiq.h
@@ -25,6 +25,7 @@ extern unsigned int ltq_get_soc_type(voi
@@ -25,6 +25,7 @@ extern unsigned int ltq_get_soc_type(void);
/* clock speeds */
#define CLOCK_60M 60000000
#define CLOCK_83M 83333333
@ -482,6 +493,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
#define CLOCK_111M 111111111
#define CLOCK_133M 133333333
#define CLOCK_167M 166666667
diff --git a/arch/mips/lantiq/Kconfig b/arch/mips/lantiq/Kconfig
index 3fccf21..cb6b39f 100644
--- a/arch/mips/lantiq/Kconfig
+++ b/arch/mips/lantiq/Kconfig
@@ -16,8 +16,12 @@ config SOC_XWAY
@ -497,13 +510,17 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+source "arch/mips/lantiq/falcon/Kconfig"
endif
diff --git a/arch/mips/lantiq/Makefile b/arch/mips/lantiq/Makefile
index e5dae0e..7e9c69e 100644
--- a/arch/mips/lantiq/Makefile
+++ b/arch/mips/lantiq/Makefile
@@ -9,3 +9,4 @@ obj-y := irq.o setup.o clk.o prom.o devi
@@ -9,3 +9,4 @@ obj-y := irq.o setup.o clk.o prom.o devices.o
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
obj-$(CONFIG_SOC_TYPE_XWAY) += xway/
+obj-$(CONFIG_SOC_FALCON) += falcon/
diff --git a/arch/mips/lantiq/Platform b/arch/mips/lantiq/Platform
index f3dff05..b3ec498 100644
--- a/arch/mips/lantiq/Platform
+++ b/arch/mips/lantiq/Platform
@@ -6,3 +6,4 @@ platform-$(CONFIG_LANTIQ) += lantiq/
@ -511,10 +528,16 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
load-$(CONFIG_LANTIQ) = 0xffffffff80002000
cflags-$(CONFIG_SOC_TYPE_XWAY) += -I$(srctree)/arch/mips/include/asm/mach-lantiq/xway
+cflags-$(CONFIG_SOC_FALCON) += -I$(srctree)/arch/mips/include/asm/mach-lantiq/falcon
diff --git a/arch/mips/lantiq/falcon/Makefile b/arch/mips/lantiq/falcon/Makefile
new file mode 100644
index 0000000..e9c7455
--- /dev/null
+++ b/arch/mips/lantiq/falcon/Makefile
@@ -0,0 +1 @@
+obj-y := clk.o prom.o reset.o sysctrl.o devices.o
diff --git a/arch/mips/lantiq/falcon/clk.c b/arch/mips/lantiq/falcon/clk.c
new file mode 100644
index 0000000..afe1b52
--- /dev/null
+++ b/arch/mips/lantiq/falcon/clk.c
@@ -0,0 +1,44 @@
@ -562,6 +585,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ return CLOCK_100M;
+}
+EXPORT_SYMBOL(ltq_get_fpi_hz);
diff --git a/arch/mips/lantiq/falcon/devices.c b/arch/mips/lantiq/falcon/devices.c
new file mode 100644
index 0000000..c4606f2
--- /dev/null
+++ b/arch/mips/lantiq/falcon/devices.c
@@ -0,0 +1,87 @@
@ -652,6 +678,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+{
+ platform_device_register(&ltq_flash_nand);
+}
diff --git a/arch/mips/lantiq/falcon/devices.h b/arch/mips/lantiq/falcon/devices.h
new file mode 100644
index 0000000..e802a7c
--- /dev/null
+++ b/arch/mips/lantiq/falcon/devices.h
@@ -0,0 +1,18 @@
@ -673,6 +702,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+extern void falcon_register_nand(void);
+
+#endif
diff --git a/arch/mips/lantiq/falcon/prom.c b/arch/mips/lantiq/falcon/prom.c
new file mode 100644
index 0000000..b50d6f9
--- /dev/null
+++ b/arch/mips/lantiq/falcon/prom.c
@@ -0,0 +1,93 @@
@ -769,6 +801,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ break;
+ }
+}
diff --git a/arch/mips/lantiq/falcon/reset.c b/arch/mips/lantiq/falcon/reset.c
new file mode 100644
index 0000000..cbcadc5
--- /dev/null
+++ b/arch/mips/lantiq/falcon/reset.c
@@ -0,0 +1,87 @@
@ -859,6 +894,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+}
+
+arch_initcall(mips_reboot_setup);
diff --git a/arch/mips/lantiq/falcon/sysctrl.c b/arch/mips/lantiq/falcon/sysctrl.c
new file mode 100644
index 0000000..905a142
--- /dev/null
+++ b/arch/mips/lantiq/falcon/sysctrl.c
@@ -0,0 +1,183 @@
@ -1045,3 +1083,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+
+ ltq_gpe_enable();
+}
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 95e7c9e7b37b06462c8b3b8431dc64d60369eb38 Mon Sep 17 00:00:00 2001
From 61cbe7fcc29f439740e004ca967da852fda58b62 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 11 Aug 2011 14:35:02 +0200
Subject: [PATCH 09/70] MIPS: lantiq: add support for FALC-ON GPIOs
Subject: [PATCH 09/73] MIPS: lantiq: add support for FALC-ON GPIOs
FALC-ON uses a different GPIO core than the other Lantiq SoCs. This patch adds
the new driver.
@ -16,11 +16,15 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
4 files changed, 443 insertions(+), 1 deletions(-)
create mode 100644 arch/mips/lantiq/falcon/gpio.c
diff --git a/arch/mips/lantiq/falcon/Makefile b/arch/mips/lantiq/falcon/Makefile
index e9c7455..de72209 100644
--- a/arch/mips/lantiq/falcon/Makefile
+++ b/arch/mips/lantiq/falcon/Makefile
@@ -1 +1 @@
-obj-y := clk.o prom.o reset.o sysctrl.o devices.o
+obj-y := clk.o prom.o reset.o sysctrl.o devices.o gpio.o
diff --git a/arch/mips/lantiq/falcon/devices.c b/arch/mips/lantiq/falcon/devices.c
index c4606f2..4f47b44 100644
--- a/arch/mips/lantiq/falcon/devices.c
+++ b/arch/mips/lantiq/falcon/devices.c
@@ -9,6 +9,7 @@
@ -75,6 +79,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ ltq_sysctl_activate(SYSCTL_SYS1,
+ ACTS_PADCTRL3 | ACTS_PADCTRL4 | ACTS_P3 | ACTS_P4);
+}
diff --git a/arch/mips/lantiq/falcon/devices.h b/arch/mips/lantiq/falcon/devices.h
index e802a7c..18be8b6 100644
--- a/arch/mips/lantiq/falcon/devices.h
+++ b/arch/mips/lantiq/falcon/devices.h
@@ -14,5 +14,7 @@
@ -85,6 +91,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+extern void falcon_register_gpio_extra(void);
#endif
diff --git a/arch/mips/lantiq/falcon/gpio.c b/arch/mips/lantiq/falcon/gpio.c
new file mode 100644
index 0000000..28f8639
--- /dev/null
+++ b/arch/mips/lantiq/falcon/gpio.c
@@ -0,0 +1,399 @@
@ -487,3 +496,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+}
+
+postcore_initcall(falcon_gpio_init);
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 9397aa9584bade07ae667ecd5135653f9c04e236 Mon Sep 17 00:00:00 2001
From ce27aac6ea9503ae4be0f65423424d92a714d9da Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 11 Aug 2011 14:09:35 +0200
Subject: [PATCH 10/70] MIPS: lantiq: add support for the EASY98000 evaluation
Subject: [PATCH 10/73] MIPS: lantiq: add support for the EASY98000 evaluation
board
This patch adds the machine code for the EASY9800 evaluation board.
@ -17,6 +17,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
create mode 100644 arch/mips/lantiq/falcon/Kconfig
create mode 100644 arch/mips/lantiq/falcon/mach-easy98000.c
diff --git a/arch/mips/lantiq/falcon/Kconfig b/arch/mips/lantiq/falcon/Kconfig
new file mode 100644
index 0000000..03e999d
--- /dev/null
+++ b/arch/mips/lantiq/falcon/Kconfig
@@ -0,0 +1,11 @@
@ -31,11 +34,16 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+endmenu
+
+endif
diff --git a/arch/mips/lantiq/falcon/Makefile b/arch/mips/lantiq/falcon/Makefile
index de72209..56b22eb 100644
--- a/arch/mips/lantiq/falcon/Makefile
+++ b/arch/mips/lantiq/falcon/Makefile
@@ -1 +1,2 @@
obj-y := clk.o prom.o reset.o sysctrl.o devices.o gpio.o
+obj-$(CONFIG_LANTIQ_MACH_EASY98000) += mach-easy98000.o
diff --git a/arch/mips/lantiq/falcon/mach-easy98000.c b/arch/mips/lantiq/falcon/mach-easy98000.c
new file mode 100644
index 0000000..361b8f0
--- /dev/null
+++ b/arch/mips/lantiq/falcon/mach-easy98000.c
@@ -0,0 +1,110 @@
@ -149,6 +157,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ "EASY98000NAND",
+ "EASY98000 Eval Board (NAND Flash)",
+ easy98000nand_init);
diff --git a/arch/mips/lantiq/machtypes.h b/arch/mips/lantiq/machtypes.h
index 7e01b8c..dfc6af7 100644
--- a/arch/mips/lantiq/machtypes.h
+++ b/arch/mips/lantiq/machtypes.h
@@ -15,6 +15,11 @@ enum lantiq_mach_type {
@ -163,3 +173,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
};
#endif
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 68e9e86dda22c491e5e3c44271a91aefcf636434 Mon Sep 17 00:00:00 2001
From 993160b530efe9b0d3f0bc4551954a4c3344beeb Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Sat, 20 Aug 2011 18:55:13 +0200
Subject: [PATCH 11/70] MIPS: lantiq: fix early printk
Subject: [PATCH 11/73] MIPS: lantiq: fix early printk
The code was using a 32bit write operations in the early_printk code. This
resulted in 3 zero bytes also being written to the serial port. This patch
@ -14,6 +14,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/lantiq/early_printk.c | 14 ++++++++------
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
index 87f6d24..e31f52d 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
@@ -34,6 +34,12 @@
@ -29,6 +31,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
/* RCU - reset control unit */
#define LTQ_RCU_BASE_ADDR 0x1F203000
#define LTQ_RCU_SIZE 0x1000
diff --git a/arch/mips/lantiq/early_printk.c b/arch/mips/lantiq/early_printk.c
index 972e05f..5089075 100644
--- a/arch/mips/lantiq/early_printk.c
+++ b/arch/mips/lantiq/early_printk.c
@@ -12,11 +12,13 @@
@ -59,3 +63,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ ltq_w8(c, LTQ_ASC_TBUF);
local_irq_restore(flags);
}
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 3be934b64f874e6cd2af7945f4fc441c7fadb34f Mon Sep 17 00:00:00 2001
From 9c1b1cde50b09dd3679d74cde07694cee32c8b19 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Fri, 12 Aug 2011 16:27:38 +0200
Subject: [PATCH 12/70] MIPS: lantiq: fix cmdline parsing
Subject: [PATCH 12/73] MIPS: lantiq: fix cmdline parsing
The code tested if the KSEG1 mapped address of argv was != 0. We need to use
CPHYSADDR instead to make the conditional actually work.
@ -12,9 +12,11 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/lantiq/prom.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/mips/lantiq/prom.c b/arch/mips/lantiq/prom.c
index e3b1e25..acb8921 100644
--- a/arch/mips/lantiq/prom.c
+++ b/arch/mips/lantiq/prom.c
@@ -49,10 +49,12 @@ static void __init prom_init_cmdline(voi
@@ -49,10 +49,12 @@ static void __init prom_init_cmdline(void)
char **argv = (char **) KSEG1ADDR(fw_arg1);
int i;
@ -29,3 +31,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
strlcat(arcs_cmdline, p, sizeof(arcs_cmdline));
strlcat(arcs_cmdline, " ", sizeof(arcs_cmdline));
}
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 556ba7f7149a0350a47ecf26185aed99c8d87176 Mon Sep 17 00:00:00 2001
From 1314356c316e79f9887ac12b9cdf2ddba24d34a5 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 27 Oct 2011 20:06:05 +0200
Subject: [PATCH 13/70] MIPS: lantiq: fix STP gpio groups
Subject: [PATCH 13/73] MIPS: lantiq: fix STP gpio groups
The STP engine has 3 groups of 8 pins. Only the first was activated by default.
This patch activates the 2 missing groups.
@ -12,6 +12,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/lantiq/xway/gpio_stp.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/arch/mips/lantiq/xway/gpio_stp.c b/arch/mips/lantiq/xway/gpio_stp.c
index 2c78660..cb6f170 100644
--- a/arch/mips/lantiq/xway/gpio_stp.c
+++ b/arch/mips/lantiq/xway/gpio_stp.c
@@ -35,6 +35,8 @@
@ -35,3 +37,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
/* stp are update periodically by the FPI bus */
ltq_stp_w32_mask(LTQ_STP_UPD_MASK, LTQ_STP_UPD_FPI, LTQ_STP_CON1);
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From e97f45d255f4a223d38e2f39c1ddf7a3e0766527 Mon Sep 17 00:00:00 2001
From cf06a3358f752a7d1247498f1e9409b66b23a603 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 27 Oct 2011 20:06:30 +0200
Subject: [PATCH 14/70] MIPS: lantiq: fix pull gpio up resistors usage
Subject: [PATCH 14/73] MIPS: lantiq: fix pull gpio up resistors usage
The register that enables a gpios internal pullups was not used. This patch
makes sure the pullups are activated correctly.
@ -12,6 +12,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/lantiq/xway/gpio.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/arch/mips/lantiq/xway/gpio.c b/arch/mips/lantiq/xway/gpio.c
index f204f6c..14ff7c7 100644
--- a/arch/mips/lantiq/xway/gpio.c
+++ b/arch/mips/lantiq/xway/gpio.c
@@ -21,6 +21,8 @@
@ -23,7 +25,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
#define PINS_PER_PORT 16
#define MAX_PORTS 3
@@ -106,6 +108,8 @@ static int ltq_gpio_direction_input(stru
@@ -106,6 +108,8 @@ static int ltq_gpio_direction_input(struct gpio_chip *chip, unsigned int offset)
ltq_gpio_clearbit(ltq_gpio->membase, LTQ_GPIO_OD, offset);
ltq_gpio_clearbit(ltq_gpio->membase, LTQ_GPIO_DIR, offset);
@ -32,7 +34,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
return 0;
}
@@ -117,6 +121,8 @@ static int ltq_gpio_direction_output(str
@@ -117,6 +121,8 @@ static int ltq_gpio_direction_output(struct gpio_chip *chip,
ltq_gpio_setbit(ltq_gpio->membase, LTQ_GPIO_OD, offset);
ltq_gpio_setbit(ltq_gpio->membase, LTQ_GPIO_DIR, offset);
@ -41,3 +43,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
ltq_gpio_set(chip, offset, value);
return 0;
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 9946990028431fc732d1244c6ccdfface1ee5640 Mon Sep 17 00:00:00 2001
From 1b9ea6ce42ae06a5f746b6f1aaa039037b2d71a3 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Fri, 11 Nov 2011 22:02:27 +0100
Subject: [PATCH 15/70] MIPS: lantiq: add default configs
Subject: [PATCH 15/73] MIPS: lantiq: add default configs
This patch adds the default config for 3 Lantiq SoCs
@ -19,6 +19,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
create mode 100644 arch/mips/configs/falcon_defconfig
create mode 100644 arch/mips/configs/xway_defconfig
diff --git a/arch/mips/configs/ase_defconfig b/arch/mips/configs/ase_defconfig
new file mode 100644
index 0000000..5bb1d93
--- /dev/null
+++ b/arch/mips/configs/ase_defconfig
@@ -0,0 +1,67 @@
@ -89,6 +92,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+CONFIG_SQUASHFS_XZ=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_DEBUG_FS=y
diff --git a/arch/mips/configs/falcon_defconfig b/arch/mips/configs/falcon_defconfig
new file mode 100644
index 0000000..ce242a8
--- /dev/null
+++ b/arch/mips/configs/falcon_defconfig
@@ -0,0 +1,72 @@
@ -164,6 +170,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+CONFIG_SQUASHFS_XZ=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_DEBUG_FS=y
diff --git a/arch/mips/configs/xway_defconfig b/arch/mips/configs/xway_defconfig
new file mode 100644
index 0000000..510a964
--- /dev/null
+++ b/arch/mips/configs/xway_defconfig
@@ -0,0 +1,66 @@
@ -233,3 +242,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+CONFIG_SQUASHFS_XZ=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_DEBUG_FS=y
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From c68f8bdcd4c58a0c1d92e20230a943e8089d865a Mon Sep 17 00:00:00 2001
From ae4a7211739412c5f9ddd85d1437cab182fe428f Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 10 Nov 2011 19:32:37 +0100
Subject: [PATCH 16/70] MAINTAINERS: add entry for Lantiq related files
Subject: [PATCH 16/73] MAINTAINERS: add entry for Lantiq related files
Adds new entry to MAINTAINERS file for Lantiq SoC related code.
@ -10,9 +10,11 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
MAINTAINERS | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 62f1cd3..c04defd 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -4353,6 +4353,18 @@ S: Supported
@@ -4348,6 +4348,18 @@ S: Supported
F: Documentation/mips/
F: arch/mips/
@ -31,3 +33,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
MISCELLANEOUS MCA-SUPPORT
M: James Bottomley <James.Bottomley@HansenPartnership.com>
S: Maintained
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From e0bd3f1b16fbce1f0f7900a0dd624f9dc8a47f78 Mon Sep 17 00:00:00 2001
From 476a5cd7924926236c2356654da639fea90a8fea Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Wed, 24 Aug 2011 13:28:55 +0200
Subject: [PATCH 18/70] MIPS: lantiq: enable oprofile support on lantiq
Subject: [PATCH 17/73] MIPS: lantiq: enable oprofile support on lantiq
targets
This patch sets the performance counters irq and HAVE_OPROFILE flag for Lantiq
@ -13,6 +13,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/lantiq/irq.c | 5 +++++
2 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index d46f1da..c1ceadb 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -226,6 +226,7 @@ config LANTIQ
@ -23,6 +25,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
select MIPS_MACHINE
config LASAT
diff --git a/arch/mips/lantiq/irq.c b/arch/mips/lantiq/irq.c
index 17c057f..0b2ed87 100644
--- a/arch/mips/lantiq/irq.c
+++ b/arch/mips/lantiq/irq.c
@@ -40,6 +40,9 @@
@ -44,3 +48,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
}
unsigned int __cpuinit get_c0_compare_int(void)
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 4b24c79196e5777baff0f5d53b62cf2a964e26ff Mon Sep 17 00:00:00 2001
From a1a9dcf7554df9bbf23ca0933e645b2327abbb8b Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Wed, 10 Aug 2011 15:32:16 +0200
Subject: [PATCH 19/70] NET: MIPS: lantiq: make etop ethernet work on ase/ar9
Subject: [PATCH 18/73] NET: MIPS: lantiq: make etop ethernet work on ase/ar9
Extend the driver to handle the different DMA channel layout for AR9 and
Amazon-SE SoCs. The patch also adds support for the integrated PHY found
@ -16,6 +16,8 @@ Cc: netdev@vger.kernel.org
drivers/net/ethernet/lantiq_etop.c | 171 ++++++++++++++++++--
4 files changed, 174 insertions(+), 40 deletions(-)
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h
index b4465a8..2a8d5ad 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h
@@ -38,26 +38,8 @@
@ -47,6 +49,8 @@ Cc: netdev@vger.kernel.org
#define LTQ_PPE_MBOX_INT (INT_NUM_IM2_IRL0 + 24)
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
index e31f52d..6983d75 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
@@ -82,6 +82,7 @@
@ -68,7 +72,7 @@ Cc: netdev@vger.kernel.org
/* DMA */
#define LTQ_DMA_BASE_ADDR 0x1E104100
#define LTQ_DMA_SIZE 0x800
@@ -147,6 +152,11 @@ extern void ltq_pmu_enable(unsigned int
@@ -147,6 +152,11 @@ extern void ltq_pmu_enable(unsigned int module);
extern void ltq_pmu_disable(unsigned int module);
extern void ltq_cgu_enable(unsigned int clk);
@ -80,6 +84,8 @@ Cc: netdev@vger.kernel.org
static inline int ltq_is_ar9(void)
{
return (ltq_get_soc_type() == SOC_TYPE_AR9);
diff --git a/arch/mips/lantiq/xway/devices.c b/arch/mips/lantiq/xway/devices.c
index f97e565..eab4644d 100644
--- a/arch/mips/lantiq/xway/devices.c
+++ b/arch/mips/lantiq/xway/devices.c
@@ -74,18 +74,23 @@ void __init ltq_register_ase_asc(void)
@ -109,15 +115,18 @@ Cc: netdev@vger.kernel.org
if (eth) {
ltq_etop.dev.platform_data = eth;
platform_device_register(&ltq_etop);
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index 0b3567a..d3d4931 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -71,10 +71,43 @@
#define ETOP_MII_REVERSE 0xe
#define ETOP_PLEN_UNDER 0x40
#define ETOP_CGEN 0x800
+#define ETOP_CFG_MII0 0x01
-
-/* use 2 static channels for TX/RX */
+#define ETOP_CFG_MII0 0x01
+
+#define LTQ_GBIT_MDIO_CTL 0xCC
+#define LTQ_GBIT_MDIO_DATA 0xd0
+#define LTQ_GBIT_GCTL0 0x68
@ -265,7 +274,7 @@ Cc: netdev@vger.kernel.org
struct ltq_etop_chan *ch = &priv->ch[i];
ch->idx = ch->dma.nr = i;
@@ -339,6 +421,39 @@ static const struct ethtool_ops ltq_etop
@@ -339,6 +421,39 @@ static const struct ethtool_ops ltq_etop_ethtool_ops = {
};
static int
@ -305,7 +314,7 @@ Cc: netdev@vger.kernel.org
ltq_etop_mdio_wr(struct mii_bus *bus, int phy_addr, int phy_reg, u16 phy_data)
{
u32 val = MDIO_REQUEST |
@@ -379,14 +494,11 @@ ltq_etop_mdio_probe(struct net_device *d
@@ -379,14 +494,11 @@ ltq_etop_mdio_probe(struct net_device *dev)
{
struct ltq_etop_priv *priv = netdev_priv(dev);
struct phy_device *phydev = NULL;
@ -324,7 +333,7 @@ Cc: netdev@vger.kernel.org
if (!phydev) {
netdev_err(dev, "no PHY found\n");
@@ -408,6 +520,9 @@ ltq_etop_mdio_probe(struct net_device *d
@@ -408,6 +520,9 @@ ltq_etop_mdio_probe(struct net_device *dev)
| SUPPORTED_Autoneg
| SUPPORTED_MII
| SUPPORTED_TP);
@ -334,7 +343,7 @@ Cc: netdev@vger.kernel.org
phydev->advertising = phydev->supported;
priv->phydev = phydev;
@@ -433,8 +548,13 @@ ltq_etop_mdio_init(struct net_device *de
@@ -433,8 +548,13 @@ ltq_etop_mdio_init(struct net_device *dev)
}
priv->mii_bus->priv = dev;
@ -350,7 +359,7 @@ Cc: netdev@vger.kernel.org
priv->mii_bus->name = "ltq_mii";
snprintf(priv->mii_bus->id, MII_BUS_ID_SIZE, "%x", 0);
priv->mii_bus->irq = kmalloc(sizeof(int) * PHY_MAX_ADDR, GFP_KERNEL);
@@ -524,9 +644,9 @@ ltq_etop_tx(struct sk_buff *skb, struct
@@ -524,9 +644,9 @@ ltq_etop_tx(struct sk_buff *skb, struct net_device *dev)
struct ltq_etop_priv *priv = netdev_priv(dev);
struct ltq_etop_chan *ch = &priv->ch[(queue << 1) | 1];
struct ltq_dma_desc *desc = &ch->dma.desc_base[ch->dma.desc];
@ -361,7 +370,7 @@ Cc: netdev@vger.kernel.org
len = skb->len < ETH_ZLEN ? ETH_ZLEN : skb->len;
@@ -700,7 +820,7 @@ ltq_etop_probe(struct platform_device *p
@@ -700,7 +820,7 @@ ltq_etop_probe(struct platform_device *pdev)
{
struct net_device *dev;
struct ltq_etop_priv *priv;
@ -370,7 +379,7 @@ Cc: netdev@vger.kernel.org
int err;
int i;
@@ -728,6 +848,23 @@ ltq_etop_probe(struct platform_device *p
@@ -728,6 +848,23 @@ ltq_etop_probe(struct platform_device *pdev)
goto err_out;
}
@ -394,3 +403,6 @@ Cc: netdev@vger.kernel.org
dev = alloc_etherdev_mq(sizeof(struct ltq_etop_priv), 4);
strcpy(dev->name, "eth%d");
dev->netdev_ops = &ltq_eth_netdev_ops;
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From d9cddd0b4062e66f350297b4b855ef4db3a1c16b Mon Sep 17 00:00:00 2001
From 2bad6512b242b3b5f41414a830d7224d504d0825 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Tue, 15 Nov 2011 14:52:21 +0100
Subject: [PATCH 20/70] NET: MIPS: lantiq: non existing phy was not handled
Subject: [PATCH 19/73] NET: MIPS: lantiq: non existing phy was not handled
gracefully
The code blindly assumed that that a PHY device was present causing a BadVA.
@ -16,6 +16,8 @@ Cc: netdev@vger.kernel.org
drivers/net/ethernet/lantiq_etop.c | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index d3d4931..9fd6779 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -612,7 +612,8 @@ ltq_etop_open(struct net_device *dev)
@ -52,7 +54,7 @@ Cc: netdev@vger.kernel.org
return 0;
err_netdev:
@@ -868,7 +871,6 @@ ltq_etop_probe(struct platform_device *p
@@ -868,7 +871,6 @@ ltq_etop_probe(struct platform_device *pdev)
dev = alloc_etherdev_mq(sizeof(struct ltq_etop_priv), 4);
strcpy(dev->name, "eth%d");
dev->netdev_ops = &ltq_eth_netdev_ops;
@ -60,3 +62,6 @@ Cc: netdev@vger.kernel.org
priv = netdev_priv(dev);
priv->res = res;
priv->pldata = dev_get_platdata(&pdev->dev);
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 6916ef9742e45213d524b69700d937976098d1e6 Mon Sep 17 00:00:00 2001
From 641dd8688489331068ff4a3f35ee0ad3ca02dbd2 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Tue, 15 Nov 2011 15:56:06 +0100
Subject: [PATCH 21/70] NET: MIPS: lantiq: return value of request_irq was not
Subject: [PATCH 20/73] NET: MIPS: lantiq: return value of request_irq was not
handled gracefully
The return values of request_irq() were not checked leading to the following
@ -17,6 +17,8 @@ Cc: netdev@vger.kernel.org
drivers/net/ethernet/lantiq_etop.c | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index 9fd6779..dddb9fe 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -312,6 +312,7 @@ ltq_etop_hw_init(struct net_device *dev)
@ -64,3 +66,6 @@ Cc: netdev@vger.kernel.org
}
static void
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 9819317c005d57e1a5924af1faa43f73ed156a2d Mon Sep 17 00:00:00 2001
From 20ed991ce59030544426dc3422da7ee76667537b Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 8 Mar 2012 08:37:25 +0100
Subject: [PATCH 22/70] MIPS: lantiq: use devres managed gpios
Subject: [PATCH 21/73] MIPS: lantiq: use devres managed gpios
3.2 introduced devm_request_gpio() to allow managed gpios.
@ -22,6 +22,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
drivers/tty/serial/lantiq.c | 12 ++++++++++++
10 files changed, 45 insertions(+), 33 deletions(-)
diff --git a/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
index b074748..a5dc06a 100644
--- a/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
@@ -126,9 +126,7 @@ extern __iomem void *ltq_sys1_membase;
@ -35,9 +37,11 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
extern int ltq_gpio_mux_set(unsigned int pin, unsigned int mux);
/* to keep the irq code generic we need to define these to 0 as falcon
diff --git a/arch/mips/include/asm/mach-lantiq/lantiq.h b/arch/mips/include/asm/mach-lantiq/lantiq.h
index 188de0f..924b91a 100644
--- a/arch/mips/include/asm/mach-lantiq/lantiq.h
+++ b/arch/mips/include/asm/mach-lantiq/lantiq.h
@@ -37,6 +37,10 @@ extern unsigned int ltq_get_soc_type(voi
@@ -37,6 +37,10 @@ extern unsigned int ltq_get_soc_type(void);
/* spinlock all ebu i/o */
extern spinlock_t ebu_lock;
@ -48,6 +52,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
/* some irq helpers */
extern void ltq_disable_irq(struct irq_data *data);
extern void ltq_mask_and_ack_irq(struct irq_data *data);
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
index 6983d75..6c5b705 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
@@ -145,9 +145,6 @@
@ -60,9 +66,11 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
extern void ltq_pmu_enable(unsigned int module);
extern void ltq_pmu_disable(unsigned int module);
extern void ltq_cgu_enable(unsigned int clk);
diff --git a/arch/mips/lantiq/falcon/gpio.c b/arch/mips/lantiq/falcon/gpio.c
index 28f8639..a44f71b 100644
--- a/arch/mips/lantiq/falcon/gpio.c
+++ b/arch/mips/lantiq/falcon/gpio.c
@@ -97,7 +97,7 @@ int ltq_gpio_mux_set(unsigned int pin, u
@@ -97,7 +97,7 @@ int ltq_gpio_mux_set(unsigned int pin, unsigned int mux)
}
EXPORT_SYMBOL(ltq_gpio_mux_set);
@ -71,7 +79,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
unsigned int dir, const char *name)
{
int port = pin / 100;
@@ -106,7 +106,7 @@ int ltq_gpio_request(unsigned int pin, u
@@ -106,7 +106,7 @@ int ltq_gpio_request(unsigned int pin, unsigned int mux,
if (offset >= PINS_PER_PORT || port >= MAX_PORTS)
return -EINVAL;
@ -80,6 +88,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
pr_err("failed to setup lantiq gpio: %s\n", name);
return -EBUSY;
}
diff --git a/arch/mips/lantiq/falcon/prom.c b/arch/mips/lantiq/falcon/prom.c
index b50d6f9..f98b389 100644
--- a/arch/mips/lantiq/falcon/prom.c
+++ b/arch/mips/lantiq/falcon/prom.c
@@ -27,9 +27,6 @@
@ -103,6 +113,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
ltq_sysctl_activate(SYSCTL_SYS1, ACTS_ASC1_ACT);
}
}
diff --git a/arch/mips/lantiq/xway/gpio.c b/arch/mips/lantiq/xway/gpio.c
index 14ff7c7..54ec6c9 100644
--- a/arch/mips/lantiq/xway/gpio.c
+++ b/arch/mips/lantiq/xway/gpio.c
@@ -50,14 +50,14 @@ int irq_to_gpio(unsigned int gpio)
@ -122,6 +134,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
pr_err("failed to setup lantiq gpio: %s\n", name);
return -EBUSY;
}
diff --git a/arch/mips/lantiq/xway/gpio_stp.c b/arch/mips/lantiq/xway/gpio_stp.c
index cb6f170..e6b4809 100644
--- a/arch/mips/lantiq/xway/gpio_stp.c
+++ b/arch/mips/lantiq/xway/gpio_stp.c
@@ -80,11 +80,6 @@ static struct gpio_chip ltq_stp_chip = {
@ -136,7 +150,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
/* sane defaults */
ltq_stp_w32(0, LTQ_STP_AR);
ltq_stp_w32(0, LTQ_STP_CPU0);
@@ -133,6 +128,14 @@ static int __devinit ltq_stp_probe(struc
@@ -133,6 +128,14 @@ static int __devinit ltq_stp_probe(struct platform_device *pdev)
dev_err(&pdev->dev, "failed to remap STP memory\n");
return -ENOMEM;
}
@ -151,6 +165,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
ret = gpiochip_add(&ltq_stp_chip);
if (!ret)
ret = ltq_stp_hw_init();
diff --git a/arch/mips/pci/pci-lantiq.c b/arch/mips/pci/pci-lantiq.c
index c001c5a..47b551c 100644
--- a/arch/mips/pci/pci-lantiq.c
+++ b/arch/mips/pci/pci-lantiq.c
@@ -150,24 +150,26 @@ static u32 ltq_calc_bar11mask(void)
@ -186,7 +202,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
/* set clock to 33Mhz */
if (ltq_is_ar9()) {
@@ -190,7 +192,7 @@ static int __devinit ltq_pci_startup(str
@@ -190,7 +192,7 @@ static int __devinit ltq_pci_startup(struct ltq_pci_data *conf)
}
/* setup pci clock and gpis used by pci */
@ -195,7 +211,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
/* enable auto-switching between PCI and EBU */
ltq_pci_w32(0xa, PCI_CR_CLK_CTRL);
@@ -275,7 +277,7 @@ static int __devinit ltq_pci_probe(struc
@@ -275,7 +277,7 @@ static int __devinit ltq_pci_probe(struct platform_device *pdev)
ioremap_nocache(LTQ_PCI_CFG_BASE, LTQ_PCI_CFG_BASE);
ltq_pci_controller.io_map_base =
(unsigned long)ioremap(LTQ_PCI_IO_BASE, LTQ_PCI_IO_SIZE - 1);
@ -204,6 +220,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
register_pci_controller(&ltq_pci_controller);
return 0;
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index dddb9fe..fcbb9c7 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -291,9 +291,6 @@ ltq_etop_gbit_init(void)
@ -216,7 +234,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
ltq_gbit_w32_mask(0, GCTL0_SE, LTQ_GBIT_GCTL0);
/** Disable MDIO auto polling mode */
ltq_gbit_w32_mask(0, PX_CTL_DMDIO, LTQ_GBIT_P0_CTL);
@@ -868,6 +865,12 @@ ltq_etop_probe(struct platform_device *p
@@ -868,6 +865,12 @@ ltq_etop_probe(struct platform_device *pdev)
err = -ENOMEM;
goto err_out;
}
@ -229,6 +247,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
}
dev = alloc_etherdev_mq(sizeof(struct ltq_etop_priv), 4);
diff --git a/drivers/tty/serial/lantiq.c b/drivers/tty/serial/lantiq.c
index 96c1cac..5d25828 100644
--- a/drivers/tty/serial/lantiq.c
+++ b/drivers/tty/serial/lantiq.c
@@ -107,6 +107,9 @@
@ -241,7 +261,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
static void lqasc_tx_chars(struct uart_port *port);
static struct ltq_uart_port *lqasc_port[MAXPORTS];
static struct uart_driver lqasc_reg;
@@ -529,6 +532,15 @@ lqasc_request_port(struct uart_port *por
@@ -529,6 +532,15 @@ lqasc_request_port(struct uart_port *port)
if (port->membase == NULL)
return -ENOMEM;
}
@ -257,3 +277,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
return 0;
}
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From aeb5a729386db036163fa21a8f5e5e1f9a735ebf Mon Sep 17 00:00:00 2001
From 98f3072e25ba8b7552e51309b05b8c643725dec9 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 16 Feb 2012 20:23:36 +0100
Subject: [PATCH 23/70] MIPS: add clkdev.h
Subject: [PATCH 22/73] MIPS: add clkdev.h
For clkdev to work on MIPS we need this file
@ -13,6 +13,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
1 files changed, 25 insertions(+), 0 deletions(-)
create mode 100644 arch/mips/include/asm/clkdev.h
diff --git a/arch/mips/include/asm/clkdev.h b/arch/mips/include/asm/clkdev.h
new file mode 100644
index 0000000..2624754
--- /dev/null
+++ b/arch/mips/include/asm/clkdev.h
@@ -0,0 +1,25 @@
@ -41,3 +44,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+}
+
+#endif
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 8b47a5997efb253459fa62acce9c52202cbec9da Mon Sep 17 00:00:00 2001
From ba0e580e5af68726cea08990891fc4abf1cfcde4 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Tue, 21 Feb 2012 14:25:03 +0100
Subject: [PATCH 24/70] MIPS: lantiq: helper functions for SoC detection
Subject: [PATCH 23/73] MIPS: lantiq: helper functions for SoC detection
Add additional functions for runtime soc detection. We need these for the
serial driver.
@ -12,9 +12,11 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
.../mips/include/asm/mach-lantiq/xway/lantiq_soc.h | 5 +++++
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
index a5dc06a..0aa1f16 100644
--- a/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
@@ -134,8 +134,20 @@ extern int ltq_gpio_mux_set(unsigned int
@@ -134,8 +134,20 @@ extern int ltq_gpio_mux_set(unsigned int pin, unsigned int mux);
#define LTQ_EIU_BASE_ADDR 0
#define LTQ_EBU_PCC_ISTAT 0
@ -37,6 +39,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
#endif /* CONFIG_SOC_FALCON */
#endif /* _LTQ_XWAY_H__ */
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
index 6c5b705..45e480c 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
@@ -164,5 +164,10 @@ static inline int ltq_is_vr9(void)
@ -50,3 +54,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+
#endif /* CONFIG_SOC_TYPE_XWAY */
#endif /* _LTQ_XWAY_H__ */
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 25db3804c7c9ed3ee5161b00b38de84b1d19f6a8 Mon Sep 17 00:00:00 2001
From a5124da58605e1717b57953bce56301ea0b33d25 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 8 Mar 2012 08:39:06 +0100
Subject: [PATCH 25/70] MIPS: lantiq: convert to clkdev api
Subject: [PATCH 24/73] MIPS: lantiq: convert to clkdev api
* Change setup from HAVE_CLK -> HAVE_MACH_CLKDEV/CLKDEV_LOOKUP
* Add clk_activate/clk_deactivate
@ -17,6 +17,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/lantiq/prom.c | 1 -
5 files changed, 111 insertions(+), 61 deletions(-)
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index c1ceadb..1b78cd7 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -225,7 +225,8 @@ config LANTIQ
@ -29,6 +31,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
select HAVE_OPROFILE
select MIPS_MACHINE
diff --git a/arch/mips/include/asm/mach-lantiq/lantiq.h b/arch/mips/include/asm/mach-lantiq/lantiq.h
index 924b91a..622847f 100644
--- a/arch/mips/include/asm/mach-lantiq/lantiq.h
+++ b/arch/mips/include/asm/mach-lantiq/lantiq.h
@@ -9,6 +9,7 @@
@ -58,7 +62,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
/* spinlock all ebu i/o */
extern spinlock_t ebu_lock;
@@ -46,6 +35,13 @@ extern void ltq_disable_irq(struct irq_d
@@ -46,6 +35,13 @@ extern void ltq_disable_irq(struct irq_data *data);
extern void ltq_mask_and_ack_irq(struct irq_data *data);
extern void ltq_enable_irq(struct irq_data *data);
@ -72,6 +76,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
/* find out what caused the last cpu reset */
extern int ltq_reset_cause(void);
diff --git a/arch/mips/lantiq/clk.c b/arch/mips/lantiq/clk.c
index 39eef7f..84a201e 100644
--- a/arch/mips/lantiq/clk.c
+++ b/arch/mips/lantiq/clk.c
@@ -12,6 +12,7 @@
@ -116,26 +122,27 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
- .get_rate = ltq_get_io_region_clock,
- },
-};
-
-void clk_init(void)
+struct clk *clk_get_cpu(void)
+{
+ return &cpu_clk_generic[0];
+}
+
+struct clk *clk_get_fpi(void)
+{
+ return &cpu_clk_generic[1];
+}
-void clk_init(void)
+struct clk *clk_get_io(void)
{
- cpu_clk = cpu_clk_generic;
- cpu_clk_cnt = ARRAY_SIZE(cpu_clk_generic);
+ return &cpu_clk_generic[1];
+}
+
+struct clk *clk_get_io(void)
+{
+ return &cpu_clk_generic[2];
}
static inline int clk_good(struct clk *clk)
@@ -73,36 +70,49 @@ unsigned long clk_get_rate(struct clk *c
@@ -73,36 +70,49 @@ unsigned long clk_get_rate(struct clk *clk)
}
EXPORT_SYMBOL(clk_get_rate);
@ -145,15 +152,15 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
- int i;
+ if (unlikely(!clk_good(clk)))
+ return -1;
+
+ if (clk->enable)
+ return clk->enable(clk);
- for (i = 0; i < cpu_clk_cnt; i++)
- if (!strcmp(id, cpu_clk[i].name))
- return &cpu_clk[i];
- BUG();
- return ERR_PTR(-ENOENT);
+ if (clk->enable)
+ return clk->enable(clk);
+
+ return -1;
}
-EXPORT_SYMBOL(clk_get);
@ -212,6 +219,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
mips_hpt_frequency = clk_get_rate(clk) / ltq_get_counter_resolution();
write_c0_compare(read_c0_count());
pr_info("CPU Clock: %ldMHz\n", clk_get_rate(clk) / 1000000);
diff --git a/arch/mips/lantiq/clk.h b/arch/mips/lantiq/clk.h
index 3328925..d047768 100644
--- a/arch/mips/lantiq/clk.h
+++ b/arch/mips/lantiq/clk.h
@@ -9,10 +9,54 @@
@ -273,6 +282,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+extern unsigned long ltq_vr9_io_region_clock(void);
#endif
diff --git a/arch/mips/lantiq/prom.c b/arch/mips/lantiq/prom.c
index acb8921..971554b 100644
--- a/arch/mips/lantiq/prom.c
+++ b/arch/mips/lantiq/prom.c
@@ -103,7 +103,6 @@ EXPORT_SYMBOL(ltq_remap_resource);
@ -283,3 +294,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
snprintf(soc_info.sys_type, LTQ_SYS_TYPE_LEN - 1, "%s rev %s",
soc_info.name, soc_info.rev_type);
soc_info.sys_type[LTQ_SYS_TYPE_LEN - 1] = '\0';
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 418e330dc60aaabdb5cf4509ec08cce07d63f32e Mon Sep 17 00:00:00 2001
From b6a73eaeb10726bb30584aa8aa4620061db653ba Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 8 Mar 2012 11:18:22 +0100
Subject: [PATCH 26/70] MIPS: lantiq: convert xway to clkdev api
Subject: [PATCH 25/73] MIPS: lantiq: convert xway to clkdev api
Unify xway/ase clock code and add clkdev hooks to sysctrl.c
@ -18,6 +18,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
delete mode 100644 arch/mips/lantiq/xway/clk-xway.c
create mode 100644 arch/mips/lantiq/xway/clk.c
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
index 45e480c..e9d2dd4 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
@@ -81,15 +81,6 @@
@ -47,6 +49,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
static inline int ltq_is_ase(void)
{
return (ltq_get_soc_type() == SOC_TYPE_AMAZON_SE);
diff --git a/arch/mips/lantiq/xway/Makefile b/arch/mips/lantiq/xway/Makefile
index 6678402..4dcb96f 100644
--- a/arch/mips/lantiq/xway/Makefile
+++ b/arch/mips/lantiq/xway/Makefile
@@ -1,7 +1,7 @@
@ -60,6 +64,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
obj-$(CONFIG_LANTIQ_MACH_EASY50712) += mach-easy50712.o
obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o
diff --git a/arch/mips/lantiq/xway/clk-ase.c b/arch/mips/lantiq/xway/clk-ase.c
deleted file mode 100644
index 6522583..0000000
--- a/arch/mips/lantiq/xway/clk-ase.c
+++ /dev/null
@@ -1,48 +0,0 @@
@ -111,6 +118,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
- return CLOCK_133M;
-}
-EXPORT_SYMBOL(ltq_get_fpi_hz);
diff --git a/arch/mips/lantiq/xway/clk-xway.c b/arch/mips/lantiq/xway/clk-xway.c
deleted file mode 100644
index 696b1a3..0000000
--- a/arch/mips/lantiq/xway/clk-xway.c
+++ /dev/null
@@ -1,223 +0,0 @@
@ -337,6 +347,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
- return ddr_clock;
-}
-EXPORT_SYMBOL(ltq_get_fpi_hz);
diff --git a/arch/mips/lantiq/xway/clk.c b/arch/mips/lantiq/xway/clk.c
new file mode 100644
index 0000000..f3b50fc
--- /dev/null
+++ b/arch/mips/lantiq/xway/clk.c
@@ -0,0 +1,227 @@
@ -567,6 +580,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ return ddr_clock >> 1;
+ return ddr_clock;
+}
diff --git a/arch/mips/lantiq/xway/sysctrl.c b/arch/mips/lantiq/xway/sysctrl.c
index 8fd13a1..c5782b5 100644
--- a/arch/mips/lantiq/xway/sysctrl.c
+++ b/arch/mips/lantiq/xway/sysctrl.c
@@ -8,17 +8,48 @@
@ -624,18 +639,18 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
-void ltq_cgu_enable(unsigned int clk)
+static int ltq_cgu_enable(struct clk *clk)
+{
+ ltq_cgu_w32(ltq_cgu_r32(LTQ_CGU_IFCCR) | clk->bits, LTQ_CGU_IFCCR);
+ return 0;
+}
+
+static void ltq_cgu_disable(struct clk *clk)
{
- ltq_cgu_w32(ltq_cgu_r32(LTQ_CGU_IFCCR) | clk, LTQ_CGU_IFCCR);
+ ltq_cgu_w32(ltq_cgu_r32(LTQ_CGU_IFCCR) & ~clk->bits, LTQ_CGU_IFCCR);
+ ltq_cgu_w32(ltq_cgu_r32(LTQ_CGU_IFCCR) | clk->bits, LTQ_CGU_IFCCR);
+ return 0;
}
-void ltq_pmu_enable(unsigned int module)
+static void ltq_cgu_disable(struct clk *clk)
+{
+ ltq_cgu_w32(ltq_cgu_r32(LTQ_CGU_IFCCR) & ~clk->bits, LTQ_CGU_IFCCR);
+}
+
+static int ltq_pmu_enable(struct clk *clk)
{
int err = 1000000;
@ -650,10 +665,13 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
panic("activating PMU module failed!\n");
+
+ return 0;
+}
+
}
-EXPORT_SYMBOL(ltq_pmu_enable);
-void ltq_pmu_disable(unsigned int module)
+static void ltq_pmu_disable(struct clk *clk)
+{
{
- ltq_pmu_w32(ltq_pmu_r32(LTQ_PMU_PWDCR) | module, LTQ_PMU_PWDCR);
+ ltq_pmu_w32(ltq_pmu_r32(LTQ_PMU_PWDCR) | clk->bits, LTQ_PMU_PWDCR);
+}
+
@ -670,14 +688,11 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ clk->module = module;
+ clk->bits = bits;
+ clkdev_add(&clk->cl);
}
-EXPORT_SYMBOL(ltq_pmu_enable);
-void ltq_pmu_disable(unsigned int module)
+}
+
+static inline void clkdev_add_cgu(const char *dev, const char *con,
+ unsigned int bits)
{
- ltq_pmu_w32(ltq_pmu_r32(LTQ_PMU_PWDCR) | module, LTQ_PMU_PWDCR);
+{
+ struct clk *clk = kzalloc(sizeof(struct clk), GFP_KERNEL);
+
+ clk->cl.dev_id = dev;
@ -716,3 +731,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ clkdev_add_pmu("ltq_etop", "switch", 0, PMU_SWITCH);
+ }
}
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 07c4da1cf419022e5874c881511f051bb81e984e Mon Sep 17 00:00:00 2001
From 3a20e2b3471baf86765747b0e194400d3d74b6d8 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 8 Mar 2012 11:19:11 +0100
Subject: [PATCH 27/70] MIPS: lantiq: convert falcon to clkdev api
Subject: [PATCH 26/73] MIPS: lantiq: convert falcon to clkdev api
Unify sysctrl/clock code and add clkdev hooks to sysctrl.c
@ -12,6 +12,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/lantiq/falcon/sysctrl.c | 129 ++++++++++++--------
3 files changed, 80 insertions(+), 59 deletions(-)
diff --git a/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
index 0aa1f16..120c56c 100644
--- a/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
@@ -95,6 +95,7 @@
@ -36,12 +38,16 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
/* global register ranges */
extern __iomem void *ltq_ebu_membase;
extern __iomem void *ltq_sys1_membase;
diff --git a/arch/mips/lantiq/falcon/Makefile b/arch/mips/lantiq/falcon/Makefile
index 56b22eb..3634154 100644
--- a/arch/mips/lantiq/falcon/Makefile
+++ b/arch/mips/lantiq/falcon/Makefile
@@ -1,2 +1,2 @@
-obj-y := clk.o prom.o reset.o sysctrl.o devices.o gpio.o
+obj-y := prom.o reset.o sysctrl.o devices.o gpio.o
obj-$(CONFIG_LANTIQ_MACH_EASY98000) += mach-easy98000.o
diff --git a/arch/mips/lantiq/falcon/sysctrl.c b/arch/mips/lantiq/falcon/sysctrl.c
index 905a142..900f0e5 100644
--- a/arch/mips/lantiq/falcon/sysctrl.c
+++ b/arch/mips/lantiq/falcon/sysctrl.c
@@ -9,11 +9,13 @@
@ -93,16 +99,15 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
-void
-ltq_sysctl_activate(int module, unsigned int mask)
-{
+static int
+ltq_sysctl_activate(struct clk *clk)
{
- if (module > SYSCTL_SYSGPE)
- return;
-
- ltq_reg_w32(module, mask, LTQ_SYSCTL_CLKEN);
- ltq_reg_w32(module, mask, LTQ_SYSCTL_ACT);
- ltq_sysctl_wait(module, mask, mask, LTQ_SYSCTL_ACTS);
+static int
+ltq_sysctl_activate(struct clk *clk)
+{
+ ltq_reg_w32(clk->module, clk->bits, LTQ_SYSCTL_CLKEN);
+ ltq_reg_w32(clk->module, clk->bits, LTQ_SYSCTL_ACT);
+ ltq_sysctl_wait(clk, clk->bits, LTQ_SYSCTL_ACTS);
@ -164,8 +169,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ltq_sysctl_reboot(struct clk *clk)
{
unsigned int act;
+ unsigned int bits;
-
- if (module > SYSCTL_SYSGPE)
- return;
-
@ -174,6 +178,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
- ltq_sysctl_activate(module, ~act & mask);
- ltq_reg_w32(module, act & mask, LTQ_SYSCTL_RBT);
- ltq_sysctl_wait(module, mask, mask, LTQ_SYSCTL_ACTS);
+ unsigned int bits;
+
+ act = ltq_reg_r32(clk->module, LTQ_SYSCTL_ACT);
+ bits = ~act & clk->bits;
+ if (bits != 0) {
@ -233,3 +239,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ clkdev_add_sys("ltq_asc.1", SYSCTL_SYS1, ACTS_ASC1_ACT);
+ clkdev_add_sys("falcon_i2c", SYSCTL_SYS1, ACTS_I2C_ACT);
}
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From e6a19ba12790d04267a9f052a3dc64fa1a8cac16 Mon Sep 17 00:00:00 2001
From 56b484094fed84e4e76532895c5a692f896a9492 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 8 Mar 2012 11:21:08 +0100
Subject: [PATCH 28/70] MIPS: lantiq: convert dma driver to clkdev api
Subject: [PATCH 27/73] MIPS: lantiq: convert dma driver to clkdev api
Update from old pmu_{dis,en}able() to ckldev api.
@ -12,6 +12,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
2 files changed, 16 insertions(+), 1 deletions(-)
create mode 100644 arch/mips/lantiq/xway/Makefile.rej
diff --git a/arch/mips/lantiq/xway/Makefile.rej b/arch/mips/lantiq/xway/Makefile.rej
new file mode 100644
index 0000000..c0d5b52
--- /dev/null
+++ b/arch/mips/lantiq/xway/Makefile.rej
@@ -0,0 +1,11 @@
@ -26,6 +29,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+
+ obj-$(CONFIG_LANTIQ_MACH_EASY50712) += mach-easy50712.o
+ obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o
diff --git a/arch/mips/lantiq/xway/dma.c b/arch/mips/lantiq/xway/dma.c
index 60cd11f..388f1aa 100644
--- a/arch/mips/lantiq/xway/dma.c
+++ b/arch/mips/lantiq/xway/dma.c
@@ -20,6 +20,7 @@
@ -55,3 +60,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
ltq_dma_w32_mask(0, DMA_RESET, LTQ_DMA_CTRL);
/* disable all interrupts */
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 81cf50fd6cfff13e06cd587094f5094dec32d57d Mon Sep 17 00:00:00 2001
From a76818770adabc7afdf3bef07f9f30d061c10082 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 8 Mar 2012 11:21:33 +0100
Subject: [PATCH 29/70] MIPS: lantiq: convert gpio_stp driver to clkdev api
Subject: [PATCH 28/73] MIPS: lantiq: convert gpio_stp driver to clkdev api
Update from old pmu_{dis,en}able() to ckldev api.
@ -10,6 +10,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/lantiq/xway/gpio_stp.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/arch/mips/lantiq/xway/gpio_stp.c b/arch/mips/lantiq/xway/gpio_stp.c
index e6b4809..da91c5e 100644
--- a/arch/mips/lantiq/xway/gpio_stp.c
+++ b/arch/mips/lantiq/xway/gpio_stp.c
@@ -15,6 +15,8 @@
@ -44,7 +46,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
return 0;
}
@@ -138,7 +144,7 @@ static int __devinit ltq_stp_probe(struc
@@ -138,7 +144,7 @@ static int __devinit ltq_stp_probe(struct platform_device *pdev)
}
ret = gpiochip_add(&ltq_stp_chip);
if (!ret)
@ -53,3 +55,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
return ret;
}
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 3cb13f9992ae1948b6ca05c88d2bd25cf9e7cd41 Mon Sep 17 00:00:00 2001
From 509bc67e8e365c8f1a0cb91abcac7c7772cf8335 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 8 Mar 2012 11:22:03 +0100
Subject: [PATCH 30/70] MIPS: lantiq: convert falcon gpio to clkdev api
Subject: [PATCH 29/73] MIPS: lantiq: convert falcon gpio to clkdev api
The falcon gpio clocks used to be enabled when registering the platform device.
Move this code into the driver and use clkdev api.
@ -12,6 +12,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/lantiq/falcon/gpio.c | 10 ++++++++++
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/arch/mips/lantiq/falcon/devices.c b/arch/mips/lantiq/falcon/devices.c
index 4f47b44..6cd7a88 100644
--- a/arch/mips/lantiq/falcon/devices.c
+++ b/arch/mips/lantiq/falcon/devices.c
@@ -111,9 +111,6 @@ falcon_register_gpio(void)
@ -31,6 +33,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
- ltq_sysctl_activate(SYSCTL_SYS1,
- ACTS_PADCTRL3 | ACTS_PADCTRL4 | ACTS_P3 | ACTS_P4);
}
diff --git a/arch/mips/lantiq/falcon/gpio.c b/arch/mips/lantiq/falcon/gpio.c
index a44f71b..4147d61 100644
--- a/arch/mips/lantiq/falcon/gpio.c
+++ b/arch/mips/lantiq/falcon/gpio.c
@@ -11,6 +11,7 @@
@ -49,7 +53,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
};
static struct falcon_gpio_port ltq_gpio_port[MAX_PORTS];
@@ -332,6 +334,14 @@ falcon_gpio_probe(struct platform_device
@@ -332,6 +334,14 @@ falcon_gpio_probe(struct platform_device *pdev)
goto err;
}
@ -64,3 +68,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
if (irq > 0) {
/* irq_chip support */
gpio_port->gpio_chip.to_irq = falcon_gpio_to_irq;
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 1fdd8c04b65bd55730e6931a520cc1dabfc4d190 Mon Sep 17 00:00:00 2001
From da5f76f9eb0563597855f6b89894443d30a62d4f Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 16 Feb 2012 20:17:16 +0100
Subject: [PATCH 31/70] SERIAL: MIPS: lantiq: convert serial driver to clkdev
Subject: [PATCH 30/73] SERIAL: MIPS: lantiq: convert serial driver to clkdev
api
Reference the FPI clock via its new access function.
@ -12,9 +12,11 @@ Cc: linux-serial@vger.kernel.org
drivers/tty/serial/lantiq.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/drivers/tty/serial/lantiq.c b/drivers/tty/serial/lantiq.c
index 5d25828..1542ad6 100644
--- a/drivers/tty/serial/lantiq.c
+++ b/drivers/tty/serial/lantiq.c
@@ -540,6 +540,10 @@ lqasc_request_port(struct uart_port *por
@@ -540,6 +540,10 @@ lqasc_request_port(struct uart_port *port)
if (ltq_gpio_request(&pdev->dev, MUXC_SIF_TX_PIN,
3, 1, "asc1-tx"))
return -EBUSY;
@ -25,7 +27,7 @@ Cc: linux-serial@vger.kernel.org
}
return 0;
}
@@ -698,7 +702,7 @@ lqasc_probe(struct platform_device *pdev
@@ -698,7 +702,7 @@ lqasc_probe(struct platform_device *pdev)
if (lqasc_port[pdev->id] != NULL)
return -EBUSY;
@ -34,3 +36,6 @@ Cc: linux-serial@vger.kernel.org
if (IS_ERR(clk)) {
pr_err("failed to get fpi clk\n");
return -ENOENT;
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 005044f41ed9884ee23d756a5950e38679d31cc7 Mon Sep 17 00:00:00 2001
From 96cc1d1baabe7bc6df02e90bcd78e6dde542d384 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Tue, 21 Feb 2012 14:25:21 +0100
Subject: [PATCH 32/70] MIPS: lantiq: convert falcon debug uart to clkdev api
Subject: [PATCH 31/73] MIPS: lantiq: convert falcon debug uart to clkdev api
On Falcon SoCs we have a secondary serial port that can be used to help
debug the voice core. For the port to work several clocking bits need to
@ -13,6 +13,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
drivers/tty/serial/lantiq.c | 7 ++++---
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/arch/mips/lantiq/falcon/prom.c b/arch/mips/lantiq/falcon/prom.c
index f98b389..2a4eea17 100644
--- a/arch/mips/lantiq/falcon/prom.c
+++ b/arch/mips/lantiq/falcon/prom.c
@@ -43,10 +43,8 @@ ltq_soc_setup(void)
@ -27,6 +29,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
}
void __init
diff --git a/drivers/tty/serial/lantiq.c b/drivers/tty/serial/lantiq.c
index 1542ad6..82956de 100644
--- a/drivers/tty/serial/lantiq.c
+++ b/drivers/tty/serial/lantiq.c
@@ -117,6 +117,7 @@ static DEFINE_SPINLOCK(ltq_asc_lock);
@ -46,7 +50,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
ltq_w32_mask(ASCCLC_DISS | ASCCLC_RMCMASK, (1 << ASCCLC_RMCOFFSET),
port->membase + LTQ_ASC_CLC);
@@ -646,7 +647,7 @@ lqasc_console_setup(struct console *co,
@@ -646,7 +647,7 @@ lqasc_console_setup(struct console *co, char *options)
port = &ltq_port->port;
@ -55,7 +59,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
if (options)
uart_parse_options(options, &baud, &parity, &bits, &flow);
@@ -731,7 +732,7 @@ lqasc_probe(struct platform_device *pdev
@@ -731,7 +732,7 @@ lqasc_probe(struct platform_device *pdev)
port->irq = tx_irq; /* unused, just to be backward-compatibe */
port->mapbase = mmres->start;
@ -64,3 +68,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
ltq_port->tx_irq = tx_irq;
ltq_port->rx_irq = rx_irq;
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From c96f5cae05788c326f63c8b769e53c6e15215e70 Mon Sep 17 00:00:00 2001
From e3b7883bacd449a22e262cc359dc923c78eb32f6 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 8 Mar 2012 11:23:00 +0100
Subject: [PATCH 33/70] NET: MIPS: lantiq: convert etop driver to clkdev api
Subject: [PATCH 32/73] NET: MIPS: lantiq: convert etop driver to clkdev api
Update from old pmu_{dis,en}able() to ckldev api.
@ -11,6 +11,8 @@ Cc: netdev@vger.kernel.org
drivers/net/ethernet/lantiq_etop.c | 49 ++++++++++++++++++++++++++++++-----
1 files changed, 42 insertions(+), 7 deletions(-)
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index fcbb9c7..a084d74 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -36,6 +36,7 @@
@ -91,7 +93,7 @@ Cc: netdev@vger.kernel.org
/* we need to write this magic to the internal phy to
make it work */
ltq_etop_mdio_wr(NULL, 0x8, 0x12, 0xC020);
@@ -880,6 +897,24 @@ ltq_etop_probe(struct platform_device *p
@@ -880,6 +897,24 @@ ltq_etop_probe(struct platform_device *pdev)
priv->res = res;
priv->pldata = dev_get_platdata(&pdev->dev);
priv->netdev = dev;
@ -116,3 +118,6 @@ Cc: netdev@vger.kernel.org
spin_lock_init(&priv->lock);
for (i = 0; i < MAX_DMA_CHAN; i++) {
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From ac9ded7942720231ed139ac0660e60a3a2f82b86 Mon Sep 17 00:00:00 2001
From f2a29d33abb24184f84533e2c6032d4b1c3fd346 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 16 Feb 2012 20:17:50 +0100
Subject: [PATCH 34/70] WDT: MIPS: lantiq: convert watchdog driver to clkdev
Subject: [PATCH 33/73] WDT: MIPS: lantiq: convert watchdog driver to clkdev
api
Refrence the IO region clock via its new access function.
@ -12,9 +12,11 @@ Cc: linux-watchdog@vger.kernel.org
drivers/watchdog/lantiq_wdt.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/watchdog/lantiq_wdt.c b/drivers/watchdog/lantiq_wdt.c
index 179bf98..da2b09f 100644
--- a/drivers/watchdog/lantiq_wdt.c
+++ b/drivers/watchdog/lantiq_wdt.c
@@ -206,7 +206,7 @@ ltq_wdt_probe(struct platform_device *pd
@@ -206,7 +206,7 @@ ltq_wdt_probe(struct platform_device *pdev)
}
/* we do not need to enable the clock as it is always running */
@ -23,3 +25,6 @@ Cc: linux-watchdog@vger.kernel.org
WARN_ON(!clk);
ltq_io_region_clk_rate = clk_get_rate(clk);
clk_put(clk);
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From cab49331fac138102493dea8f1b1d8c28cae6db5 Mon Sep 17 00:00:00 2001
From f2c407ca7b975f979b0d73d2e52a73991de13dd9 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 8 Mar 2012 11:44:55 +0100
Subject: [PATCH 35/70] MIPS: lantiq: unify xway prom code
Subject: [PATCH 34/73] MIPS: lantiq: unify xway prom code
The xway prom-ase.c and prom-xway.c files are redundant. Unify the 2 files.
@ -18,6 +18,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
delete mode 100644 arch/mips/lantiq/xway/prom-xway.c
create mode 100644 arch/mips/lantiq/xway/prom.c
diff --git a/arch/mips/lantiq/xway/Makefile b/arch/mips/lantiq/xway/Makefile
index 4dcb96f..9d1a0a2 100644
--- a/arch/mips/lantiq/xway/Makefile
+++ b/arch/mips/lantiq/xway/Makefile
@@ -1,7 +1,4 @@
@ -29,6 +31,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
obj-$(CONFIG_LANTIQ_MACH_EASY50712) += mach-easy50712.o
obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o
diff --git a/arch/mips/lantiq/xway/Makefile.rej b/arch/mips/lantiq/xway/Makefile.rej
deleted file mode 100644
index c0d5b52..0000000
--- a/arch/mips/lantiq/xway/Makefile.rej
+++ /dev/null
@@ -1,11 +0,0 @@
@ -43,6 +48,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
-
- obj-$(CONFIG_LANTIQ_MACH_EASY50712) += mach-easy50712.o
- obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o
diff --git a/arch/mips/lantiq/xway/prom-ase.c b/arch/mips/lantiq/xway/prom-ase.c
deleted file mode 100644
index 3f86a3b..0000000
--- a/arch/mips/lantiq/xway/prom-ase.c
+++ /dev/null
@@ -1,48 +0,0 @@
@ -94,6 +102,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
- ltq_register_gpio();
- ltq_register_wdt();
-}
diff --git a/arch/mips/lantiq/xway/prom-xway.c b/arch/mips/lantiq/xway/prom-xway.c
deleted file mode 100644
index d823a92..0000000
--- a/arch/mips/lantiq/xway/prom-xway.c
+++ /dev/null
@@ -1,64 +0,0 @@
@ -161,6 +172,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
- ltq_register_gpio();
- ltq_register_wdt();
-}
diff --git a/arch/mips/lantiq/xway/prom.c b/arch/mips/lantiq/xway/prom.c
new file mode 100644
index 0000000..0929acb
--- /dev/null
+++ b/arch/mips/lantiq/xway/prom.c
@@ -0,0 +1,79 @@
@ -243,3 +257,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ ltq_register_gpio();
+ ltq_register_wdt();
+}
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 27c4128ab1835a2aff1a0ce6413bb21cfa614d93 Mon Sep 17 00:00:00 2001
From 958d1d653fe13627d13907e61ae201fe62ddd99f Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Tue, 21 Feb 2012 09:48:11 +0100
Subject: [PATCH 36/70] MIPS: lantiq: add vr9 support
Subject: [PATCH 35/73] MIPS: lantiq: add vr9 support
VR9 is a VDSL SoC made by Lantiq. It is very similar to the AR9.
This patch adds the clkdev init code and SoC detection for the VR9.
@ -15,6 +15,8 @@ Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
arch/mips/lantiq/xway/sysctrl.c | 12 +++-
4 files changed, 103 insertions(+), 1 deletions(-)
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
index e9d2dd4..5d11eb7 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
@@ -21,6 +21,9 @@
@ -27,6 +29,8 @@ Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
/* SoC Types */
#define SOC_TYPE_DANUBE 0x01
diff --git a/arch/mips/lantiq/xway/clk.c b/arch/mips/lantiq/xway/clk.c
index f3b50fc..3635c9f 100644
--- a/arch/mips/lantiq/xway/clk.c
+++ b/arch/mips/lantiq/xway/clk.c
@@ -225,3 +225,86 @@ unsigned long ltq_danube_fpi_hz(void)
@ -116,9 +120,11 @@ Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
+{
+ return ltq_vr9_fpi_hz();
+}
diff --git a/arch/mips/lantiq/xway/prom.c b/arch/mips/lantiq/xway/prom.c
index 0929acb..b6f56b7 100644
--- a/arch/mips/lantiq/xway/prom.c
+++ b/arch/mips/lantiq/xway/prom.c
@@ -60,6 +60,12 @@ void __init ltq_soc_detect(struct ltq_so
@@ -60,6 +60,12 @@ void __init ltq_soc_detect(struct ltq_soc_info *i)
#endif
break;
@ -131,6 +137,8 @@ Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
default:
unreachable();
break;
diff --git a/arch/mips/lantiq/xway/sysctrl.c b/arch/mips/lantiq/xway/sysctrl.c
index c5782b5..38f02f9 100644
--- a/arch/mips/lantiq/xway/sysctrl.c
+++ b/arch/mips/lantiq/xway/sysctrl.c
@@ -147,7 +147,8 @@ void __init ltq_soc_init(void)
@ -159,3 +167,6 @@ Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
} else {
clkdev_add_static(ltq_danube_cpu_hz(), ltq_danube_fpi_hz(),
ltq_danube_io_region_clock());
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 58d1ae79d144e6725a68fab99ef6a9b20b25a765 Mon Sep 17 00:00:00 2001
From da466512e536083352dcefd9ddbfd95a9c60b464 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Tue, 21 Feb 2012 21:09:01 +0100
Subject: [PATCH 37/70] MIPS: lantiq: add ipi handlers to make vsmp work
Subject: [PATCH 36/73] MIPS: lantiq: add ipi handlers to make vsmp work
Add IPI handlers to the interrupt code. This patch makes MIPS_MT_SMP work
on lantiq SoCs.
@ -12,6 +12,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/lantiq/prom.c | 5 ++++
2 files changed, 66 insertions(+), 0 deletions(-)
diff --git a/arch/mips/lantiq/irq.c b/arch/mips/lantiq/irq.c
index 0b2ed87..770a10c 100644
--- a/arch/mips/lantiq/irq.c
+++ b/arch/mips/lantiq/irq.c
@@ -9,6 +9,7 @@
@ -103,6 +105,8 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
#if !defined(CONFIG_MIPS_MT_SMP) && !defined(CONFIG_MIPS_MT_SMTC)
set_c0_status(IE_IRQ0 | IE_IRQ1 | IE_IRQ2 |
IE_IRQ3 | IE_IRQ4 | IE_IRQ5);
diff --git a/arch/mips/lantiq/prom.c b/arch/mips/lantiq/prom.c
index 971554b..00ad59c 100644
--- a/arch/mips/lantiq/prom.c
+++ b/arch/mips/lantiq/prom.c
@@ -108,4 +108,9 @@ void __init prom_init(void)
@ -115,3 +119,6 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ panic("failed to register_vsmp_smp_ops()");
+#endif
}
--
1.7.9.1

View File

@ -1,13 +1,15 @@
From 655f264da58e9e49d61bf26374f877e2175125e4 Mon Sep 17 00:00:00 2001
From 5585147ea9462778decc7146667ac54413acd91f Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Mon, 12 Mar 2012 15:23:39 +0100
Subject: [PATCH 38/70] MIPS: lantiq: add additional soc ids
Subject: [PATCH 37/73] MIPS: lantiq: add additional soc ids
---
.../mips/include/asm/mach-lantiq/xway/lantiq_soc.h | 38 +++++++++++++++----
arch/mips/lantiq/xway/prom.c | 35 ++++++++++++++++--
2 files changed, 61 insertions(+), 12 deletions(-)
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
index 5d11eb7..3f22acb 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
@@ -17,20 +17,32 @@
@ -71,6 +73,8 @@ Subject: [PATCH 38/70] MIPS: lantiq: add additional soc ids
}
static inline int ltq_is_falcon(void)
diff --git a/arch/mips/lantiq/xway/prom.c b/arch/mips/lantiq/xway/prom.c
index b6f56b7..e3dcbbd 100644
--- a/arch/mips/lantiq/xway/prom.c
+++ b/arch/mips/lantiq/xway/prom.c
@@ -18,7 +18,9 @@
@ -91,7 +95,7 @@ Subject: [PATCH 38/70] MIPS: lantiq: add additional soc ids
void __init ltq_soc_detect(struct ltq_soc_info *i)
{
@@ -46,13 +47,21 @@ void __init ltq_soc_detect(struct ltq_so
@@ -46,13 +47,21 @@ void __init ltq_soc_detect(struct ltq_soc_info *i)
break;
case SOC_ID_ARX188:
@ -115,7 +119,7 @@ Subject: [PATCH 38/70] MIPS: lantiq: add additional soc ids
i->name = SOC_AMAZON_SE;
i->type = SOC_TYPE_AMAZON_SE;
#ifdef CONFIG_PCI
@@ -60,12 +69,30 @@ void __init ltq_soc_detect(struct ltq_so
@@ -60,12 +69,30 @@ void __init ltq_soc_detect(struct ltq_soc_info *i)
#endif
break;
@ -147,3 +151,6 @@ Subject: [PATCH 38/70] MIPS: lantiq: add additional soc ids
default:
unreachable();
break;
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 0ebdb2202a06d096114aa7676f02d5f426a20366 Mon Sep 17 00:00:00 2001
From addbb26930d41b35e329d0ad6413cc8d087aa4cc Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Sat, 27 Aug 2011 18:12:26 +0200
Subject: [PATCH 39/70] SPI: MIPS: lantiq: add FALC-ON spi driver
Subject: [PATCH 38/73] SPI: MIPS: lantiq: add FALC-ON spi driver
The external bus unit (EBU) found on the FALC-ON SoC has spi emulation that is
designed for serial flash access. This driver has only been tested with m25p80
@ -20,6 +20,8 @@ Cc: spi-devel-general@lists.sourceforge.net
6 files changed, 532 insertions(+), 0 deletions(-)
create mode 100644 drivers/spi/spi-falcon.c
diff --git a/arch/mips/lantiq/falcon/devices.c b/arch/mips/lantiq/falcon/devices.c
index 6cd7a88..92ec571 100644
--- a/arch/mips/lantiq/falcon/devices.c
+++ b/arch/mips/lantiq/falcon/devices.c
@@ -121,3 +121,16 @@ falcon_register_gpio_extra(void)
@ -39,6 +41,8 @@ Cc: spi-devel-general@lists.sourceforge.net
+ spi_register_board_info(data, 1);
+ platform_device_register(&ltq_spi);
+}
diff --git a/arch/mips/lantiq/falcon/devices.h b/arch/mips/lantiq/falcon/devices.h
index 18be8b6..5e6f720 100644
--- a/arch/mips/lantiq/falcon/devices.h
+++ b/arch/mips/lantiq/falcon/devices.h
@@ -11,10 +11,14 @@
@ -56,9 +60,11 @@ Cc: spi-devel-general@lists.sourceforge.net
+extern void falcon_register_spi_flash(struct spi_board_info *data);
#endif
diff --git a/arch/mips/lantiq/falcon/mach-easy98000.c b/arch/mips/lantiq/falcon/mach-easy98000.c
index 361b8f0..1a7caad 100644
--- a/arch/mips/lantiq/falcon/mach-easy98000.c
+++ b/arch/mips/lantiq/falcon/mach-easy98000.c
@@ -40,6 +40,21 @@ struct physmap_flash_data easy98000_nor_
@@ -40,6 +40,21 @@ struct physmap_flash_data easy98000_nor_flash_data = {
.parts = easy98000_nor_partitions,
};
@ -106,9 +112,11 @@ Cc: spi-devel-general@lists.sourceforge.net
MIPS_MACHINE(LANTIQ_MACH_EASY98000NAND,
"EASY98000NAND",
"EASY98000 Eval Board (NAND Flash)",
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index 8ba4510..b8424ba 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -189,6 +189,10 @@ config SPI_MPC52xx
@@ -180,6 +180,10 @@ config SPI_MPC52xx
This drivers supports the MPC52xx SPI controller in master SPI
mode.
@ -119,9 +127,11 @@ Cc: spi-devel-general@lists.sourceforge.net
config SPI_MPC52xx_PSC
tristate "Freescale MPC52xx PSC SPI controller"
depends on PPC_MPC52xx && EXPERIMENTAL
diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
index 61c3261..570894c 100644
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
@@ -25,6 +25,7 @@ obj-$(CONFIG_SPI_DW_MMIO) += spi-dw-mmi
@@ -25,6 +25,7 @@ obj-$(CONFIG_SPI_DW_MMIO) += spi-dw-mmio.o
obj-$(CONFIG_SPI_DW_PCI) += spi-dw-midpci.o
spi-dw-midpci-objs := spi-dw-pci.o spi-dw-mid.o
obj-$(CONFIG_SPI_EP93XX) += spi-ep93xx.o
@ -129,6 +139,9 @@ Cc: spi-devel-general@lists.sourceforge.net
obj-$(CONFIG_SPI_FSL_LIB) += spi-fsl-lib.o
obj-$(CONFIG_SPI_FSL_ESPI) += spi-fsl-espi.o
obj-$(CONFIG_SPI_FSL_SPI) += spi-fsl-spi.o
diff --git a/drivers/spi/spi-falcon.c b/drivers/spi/spi-falcon.c
new file mode 100644
index 0000000..447bbaa
--- /dev/null
+++ b/drivers/spi/spi-falcon.c
@@ -0,0 +1,483 @@
@ -615,3 +628,6 @@ Cc: spi-devel-general@lists.sourceforge.net
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Lantiq Falcon SPI controller driver");
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 97050437c6a3ce59ce2c5a8286b9bc1c9f1b3b60 Mon Sep 17 00:00:00 2001
From 9732ec2d97f001961f670d12f342df9b70db27ea Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Fri, 4 Nov 2011 16:00:34 +0100
Subject: [PATCH 40/70] I2C: MIPS: lantiq: add FALC-ON i2c bus master
Subject: [PATCH 39/73] I2C: MIPS: lantiq: add FALC-ON i2c bus master
This patch adds the driver needed to make the I2C bus work on FALC-ON SoCs.
@ -21,6 +21,8 @@ Cc: linux-i2c@vger.kernel.org
delete mode 100644 arch/mips/lantiq/falcon/clk.c
create mode 100644 drivers/i2c/busses/i2c-falcon.c
diff --git a/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
index 120c56c..fff5ecd 100644
--- a/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
@@ -72,6 +72,10 @@
@ -42,6 +44,9 @@ Cc: linux-i2c@vger.kernel.org
/* global register ranges */
extern __iomem void *ltq_ebu_membase;
diff --git a/arch/mips/lantiq/falcon/clk.c b/arch/mips/lantiq/falcon/clk.c
deleted file mode 100644
index afe1b52..0000000
--- a/arch/mips/lantiq/falcon/clk.c
+++ /dev/null
@@ -1,44 +0,0 @@
@ -89,9 +94,11 @@ Cc: linux-i2c@vger.kernel.org
- return CLOCK_100M;
-}
-EXPORT_SYMBOL(ltq_get_fpi_hz);
diff --git a/arch/mips/lantiq/falcon/devices.c b/arch/mips/lantiq/falcon/devices.c
index 92ec571..e684ed4 100644
--- a/arch/mips/lantiq/falcon/devices.c
+++ b/arch/mips/lantiq/falcon/devices.c
@@ -134,3 +134,19 @@ falcon_register_spi_flash(struct spi_boa
@@ -134,3 +134,19 @@ falcon_register_spi_flash(struct spi_board_info *data)
spi_register_board_info(data, 1);
platform_device_register(&ltq_spi);
}
@ -111,6 +118,8 @@ Cc: linux-i2c@vger.kernel.org
+ platform_device_register_simple("i2c-falcon", 0,
+ falcon_i2c_resources, ARRAY_SIZE(falcon_i2c_resources));
+}
diff --git a/arch/mips/lantiq/falcon/devices.h b/arch/mips/lantiq/falcon/devices.h
index 5e6f720..d81edbe 100644
--- a/arch/mips/lantiq/falcon/devices.h
+++ b/arch/mips/lantiq/falcon/devices.h
@@ -20,5 +20,6 @@ extern void falcon_register_nand(void);
@ -120,6 +129,8 @@ Cc: linux-i2c@vger.kernel.org
+extern void falcon_register_i2c(void);
#endif
diff --git a/arch/mips/lantiq/falcon/mach-easy98000.c b/arch/mips/lantiq/falcon/mach-easy98000.c
index 1a7caad..fc5720d 100644
--- a/arch/mips/lantiq/falcon/mach-easy98000.c
+++ b/arch/mips/lantiq/falcon/mach-easy98000.c
@@ -98,6 +98,7 @@ easy98000_init_common(void)
@ -130,6 +141,8 @@ Cc: linux-i2c@vger.kernel.org
}
static void __init
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index a3afac4..41be6cc 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -369,6 +369,16 @@ config I2C_DESIGNWARE_PCI
@ -149,9 +162,11 @@ Cc: linux-i2c@vger.kernel.org
config I2C_GPIO
tristate "GPIO-based bitbanging I2C"
depends on GENERIC_GPIO
diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
index fba6da6..36239c8 100644
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
@@ -37,6 +37,7 @@ obj-$(CONFIG_I2C_DESIGNWARE_PLATFORM) +=
@@ -37,6 +37,7 @@ obj-$(CONFIG_I2C_DESIGNWARE_PLATFORM) += i2c-designware-platform.o
i2c-designware-platform-objs := i2c-designware-platdrv.o i2c-designware-core.o
obj-$(CONFIG_I2C_DESIGNWARE_PCI) += i2c-designware-pci.o
i2c-designware-pci-objs := i2c-designware-pcidrv.o i2c-designware-core.o
@ -159,6 +174,9 @@ Cc: linux-i2c@vger.kernel.org
obj-$(CONFIG_I2C_GPIO) += i2c-gpio.o
obj-$(CONFIG_I2C_HIGHLANDER) += i2c-highlander.o
obj-$(CONFIG_I2C_IBM_IIC) += i2c-ibm_iic.o
diff --git a/drivers/i2c/busses/i2c-falcon.c b/drivers/i2c/busses/i2c-falcon.c
new file mode 100644
index 0000000..fc4f0eb
--- /dev/null
+++ b/drivers/i2c/busses/i2c-falcon.c
@@ -0,0 +1,1040 @@
@ -1202,3 +1220,6 @@ Cc: linux-i2c@vger.kernel.org
+MODULE_ALIAS("platform:" DRV_NAME);
+MODULE_LICENSE("GPL");
+MODULE_VERSION(DRV_VERSION);
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 9c7a6f8804aef7559ee8edcb7466676ee7d00c09 Mon Sep 17 00:00:00 2001
From e125a83872c5b400852efbd451786c42bd395f11 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Sat, 27 Aug 2011 20:08:14 +0200
Subject: [PATCH 41/70] MIPS: lantiq: add xway nand driver
Subject: [PATCH 40/73] MIPS: lantiq: add xway nand driver
This patch adds a nand driver for XWAY SoCs. The patch makes use of the
plat_nand driver. As with the EBU NOR driver merged in 3.0, we have the
@ -25,6 +25,8 @@ TODO : memory ranges
6 files changed, 222 insertions(+), 1 deletions(-)
create mode 100644 arch/mips/lantiq/xway/nand.c
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
index 3f22acb..ab2d236 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
@@ -145,6 +145,8 @@
@ -36,6 +38,8 @@ TODO : memory ranges
#define ltq_cgu_w32(x, y) ltq_w32((x), ltq_cgu_membase + (y))
#define ltq_cgu_r32(x) ltq_r32(ltq_cgu_membase + (x))
diff --git a/arch/mips/lantiq/xway/Makefile b/arch/mips/lantiq/xway/Makefile
index 9d1a0a2..277aa34 100644
--- a/arch/mips/lantiq/xway/Makefile
+++ b/arch/mips/lantiq/xway/Makefile
@@ -1,4 +1,4 @@
@ -44,6 +48,8 @@ TODO : memory ranges
obj-$(CONFIG_LANTIQ_MACH_EASY50712) += mach-easy50712.o
obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o
diff --git a/arch/mips/lantiq/xway/devices.h b/arch/mips/lantiq/xway/devices.h
index e904934..d825cbd 100644
--- a/arch/mips/lantiq/xway/devices.h
+++ b/arch/mips/lantiq/xway/devices.h
@@ -16,5 +16,6 @@ extern void ltq_register_gpio(void);
@ -53,6 +59,9 @@ TODO : memory ranges
+extern void xway_register_nand(struct mtd_partition *parts, int count);
#endif
diff --git a/arch/mips/lantiq/xway/nand.c b/arch/mips/lantiq/xway/nand.c
new file mode 100644
index 0000000..9ab91d8
--- /dev/null
+++ b/arch/mips/lantiq/xway/nand.c
@@ -0,0 +1,216 @@
@ -272,9 +281,11 @@ TODO : memory ranges
+ falcon_flash_nand_data.chip.nr_partitions = count;
+ platform_device_register(&ltq_flash_nand);
+}
diff --git a/drivers/mtd/nand/plat_nand.c b/drivers/mtd/nand/plat_nand.c
index ea8e123..9040ba1 100644
--- a/drivers/mtd/nand/plat_nand.c
+++ b/drivers/mtd/nand/plat_nand.c
@@ -75,6 +75,7 @@ static int __devinit plat_nand_probe(str
@@ -75,6 +75,7 @@ static int __devinit plat_nand_probe(struct platform_device *pdev)
data->chip.select_chip = pdata->ctrl.select_chip;
data->chip.write_buf = pdata->ctrl.write_buf;
data->chip.read_buf = pdata->ctrl.read_buf;
@ -282,9 +293,11 @@ TODO : memory ranges
data->chip.chip_delay = pdata->chip.chip_delay;
data->chip.options |= pdata->chip.options;
data->chip.bbt_options |= pdata->chip.bbt_options;
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
index 904131b..80e11b9 100644
--- a/include/linux/mtd/nand.h
+++ b/include/linux/mtd/nand.h
@@ -651,6 +651,7 @@ struct platform_nand_ctrl {
@@ -650,6 +650,7 @@ struct platform_nand_ctrl {
void (*cmd_ctrl)(struct mtd_info *mtd, int dat, unsigned int ctrl);
void (*write_buf)(struct mtd_info *mtd, const uint8_t *buf, int len);
void (*read_buf)(struct mtd_info *mtd, uint8_t *buf, int len);
@ -292,3 +305,6 @@ TODO : memory ranges
void *priv;
};
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From b257baf20b44e97770a2654a07f196fcbcd46e92 Mon Sep 17 00:00:00 2001
From dfa93fd2fa8bab9965ae7359e23d15f9f69af19b Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Mon, 10 Oct 2011 22:29:13 +0200
Subject: [PATCH 42/70] SPI: MIPS: lantiq: adds spi xway
Subject: [PATCH 41/73] SPI: MIPS: lantiq: adds spi xway
---
.../mips/include/asm/mach-lantiq/lantiq_platform.h | 9 +
@ -12,6 +12,8 @@ Subject: [PATCH 42/70] SPI: MIPS: lantiq: adds spi xway
5 files changed, 1088 insertions(+), 0 deletions(-)
create mode 100644 drivers/spi/spi-xway.c
diff --git a/arch/mips/include/asm/mach-lantiq/lantiq_platform.h b/arch/mips/include/asm/mach-lantiq/lantiq_platform.h
index a305f1d..38ed938 100644
--- a/arch/mips/include/asm/mach-lantiq/lantiq_platform.h
+++ b/arch/mips/include/asm/mach-lantiq/lantiq_platform.h
@@ -50,4 +50,13 @@ struct ltq_eth_data {
@ -28,6 +30,8 @@ Subject: [PATCH 42/70] SPI: MIPS: lantiq: adds spi xway
+};
+
#endif
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h
index 2a8d5ad..b7f10e6 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h
@@ -27,6 +27,8 @@
@ -39,9 +43,11 @@ Subject: [PATCH 42/70] SPI: MIPS: lantiq: adds spi xway
#define LTQ_SSC_EIR (INT_NUM_IM0_IRL0 + 16)
#define LTQ_MEI_DYING_GASP_INT (INT_NUM_IM1_IRL0 + 21)
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index b8424ba..ca4189c 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -393,6 +393,14 @@ config SPI_NUC900
@@ -384,6 +384,14 @@ config SPI_NUC900
help
SPI driver for Nuvoton NUC900 series ARM SoCs
@ -56,14 +62,19 @@ Subject: [PATCH 42/70] SPI: MIPS: lantiq: adds spi xway
#
# Add new SPI master controllers in alphabetical order above this line
#
diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
index 570894c..a465d9a 100644
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
@@ -60,4 +60,5 @@ obj-$(CONFIG_SPI_TLE62X0) += spi-tle62x
@@ -59,4 +59,5 @@ obj-$(CONFIG_SPI_TLE62X0) += spi-tle62x0.o
obj-$(CONFIG_SPI_TOPCLIFF_PCH) += spi-topcliff-pch.o
obj-$(CONFIG_SPI_TXX9) += spi-txx9.o
obj-$(CONFIG_SPI_XILINX) += spi-xilinx.o
+obj-$(CONFIG_SPI_XWAY) += spi-xway.o
diff --git a/drivers/spi/spi-xway.c b/drivers/spi/spi-xway.c
new file mode 100644
index 0000000..016a6d0
--- /dev/null
+++ b/drivers/spi/spi-xway.c
@@ -0,0 +1,1068 @@
@ -1135,3 +1146,6 @@ Subject: [PATCH 42/70] SPI: MIPS: lantiq: adds spi xway
+MODULE_AUTHOR("Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:ltq-spi");
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 7591c5702cfe842f415e42f387532fe71ea3640f Mon Sep 17 00:00:00 2001
From 29be0a0cb78942568ea4dc164a86da1bcf7b3ad6 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Fri, 9 Mar 2012 19:03:40 +0100
Subject: [PATCH 43/70] NET: adds driver for lantiq vr9 ethernet
Subject: [PATCH 42/73] NET: adds driver for lantiq vr9 ethernet
---
.../mips/include/asm/mach-lantiq/xway/lantiq_soc.h | 2 +-
@ -13,6 +13,8 @@ Subject: [PATCH 43/70] NET: adds driver for lantiq vr9 ethernet
6 files changed, 1387 insertions(+), 1 deletions(-)
create mode 100644 drivers/net/ethernet/lantiq_vrx200.c
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
index ab2d236..d1b8cc8 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
@@ -102,7 +102,7 @@
@ -24,9 +26,11 @@ Subject: [PATCH 43/70] NET: adds driver for lantiq vr9 ethernet
/* DMA */
#define LTQ_DMA_BASE_ADDR 0x1E104100
diff --git a/arch/mips/lantiq/xway/devices.c b/arch/mips/lantiq/xway/devices.c
index eab4644d..5efa4f3 100644
--- a/arch/mips/lantiq/xway/devices.c
+++ b/arch/mips/lantiq/xway/devices.c
@@ -83,6 +83,7 @@ static struct platform_device ltq_etop =
@@ -83,6 +83,7 @@ static struct platform_device ltq_etop = {
.name = "ltq_etop",
.resource = ltq_etop_resources,
.num_resources = 1,
@ -34,7 +38,7 @@ Subject: [PATCH 43/70] NET: adds driver for lantiq vr9 ethernet
};
void __init
@@ -96,3 +97,22 @@ ltq_register_etop(struct ltq_eth_data *e
@@ -96,3 +97,22 @@ ltq_register_etop(struct ltq_eth_data *eth)
platform_device_register(&ltq_etop);
}
}
@ -57,6 +61,8 @@ Subject: [PATCH 43/70] NET: adds driver for lantiq vr9 ethernet
+ ltq_vrx200.dev.platform_data = eth;
+ platform_device_register(&ltq_vrx200);
+}
diff --git a/arch/mips/lantiq/xway/devices.h b/arch/mips/lantiq/xway/devices.h
index d825cbd..08befd9 100644
--- a/arch/mips/lantiq/xway/devices.h
+++ b/arch/mips/lantiq/xway/devices.h
@@ -17,5 +17,6 @@ extern void ltq_register_gpio_stp(void);
@ -66,6 +72,8 @@ Subject: [PATCH 43/70] NET: adds driver for lantiq vr9 ethernet
+extern void ltq_register_vrx200(struct ltq_eth_data *eth);
#endif
diff --git a/drivers/net/ethernet/Kconfig b/drivers/net/ethernet/Kconfig
index 597f4d4..2035cab 100644
--- a/drivers/net/ethernet/Kconfig
+++ b/drivers/net/ethernet/Kconfig
@@ -84,6 +84,12 @@ config LANTIQ_ETOP
@ -81,6 +89,8 @@ Subject: [PATCH 43/70] NET: adds driver for lantiq vr9 ethernet
source "drivers/net/ethernet/marvell/Kconfig"
source "drivers/net/ethernet/mellanox/Kconfig"
source "drivers/net/ethernet/micrel/Kconfig"
diff --git a/drivers/net/ethernet/Makefile b/drivers/net/ethernet/Makefile
index be5dde0..4fde2be 100644
--- a/drivers/net/ethernet/Makefile
+++ b/drivers/net/ethernet/Makefile
@@ -35,6 +35,7 @@ obj-$(CONFIG_IP1000) += icplus/
@ -91,6 +101,9 @@ Subject: [PATCH 43/70] NET: adds driver for lantiq vr9 ethernet
obj-$(CONFIG_NET_VENDOR_MARVELL) += marvell/
obj-$(CONFIG_NET_VENDOR_MELLANOX) += mellanox/
obj-$(CONFIG_NET_VENDOR_MICREL) += micrel/
diff --git a/drivers/net/ethernet/lantiq_vrx200.c b/drivers/net/ethernet/lantiq_vrx200.c
new file mode 100644
index 0000000..d79d380
--- /dev/null
+++ b/drivers/net/ethernet/lantiq_vrx200.c
@@ -0,0 +1,1358 @@
@ -1452,3 +1465,6 @@ Subject: [PATCH 43/70] NET: adds driver for lantiq vr9 ethernet
+MODULE_AUTHOR("John Crispin <blogic@openwrt.org>");
+MODULE_DESCRIPTION("Lantiq SoC ETOP");
+MODULE_LICENSE("GPL");
--
1.7.9.1

View File

@ -1,12 +1,14 @@
From 06663beb0230c02d1962eca8d9f6709c2e852328 Mon Sep 17 00:00:00 2001
From 7fd67cfebce500eaeaf209c303d7c1edf1aa34db Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Wed, 21 Mar 2012 18:14:06 +0100
Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
Subject: [PATCH 43/73] MIPS: NET: several fixes to etop driver
---
drivers/net/ethernet/lantiq_etop.c | 208 +++++++++++++++++++-----------------
1 files changed, 108 insertions(+), 100 deletions(-)
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c
index a084d74..1a807d8 100644
--- a/drivers/net/ethernet/lantiq_etop.c
+++ b/drivers/net/ethernet/lantiq_etop.c
@@ -103,15 +103,6 @@
@ -46,7 +48,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
spinlock_t lock;
@@ -206,8 +197,10 @@ ltq_etop_poll_rx(struct napi_struct *nap
@@ -206,8 +197,10 @@ ltq_etop_poll_rx(struct napi_struct *napi, int budget)
{
struct ltq_etop_chan *ch = container_of(napi,
struct ltq_etop_chan, napi);
@ -57,7 +59,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
while ((rx < budget) && !complete) {
struct ltq_dma_desc *desc = &ch->dma.desc_base[ch->dma.desc];
@@ -221,7 +214,9 @@ ltq_etop_poll_rx(struct napi_struct *nap
@@ -221,7 +214,9 @@ ltq_etop_poll_rx(struct napi_struct *napi, int budget)
}
if (complete || !rx) {
napi_complete(&ch->napi);
@ -67,7 +69,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
}
return rx;
}
@@ -233,7 +228,7 @@ ltq_etop_poll_tx(struct napi_struct *nap
@@ -233,7 +228,7 @@ ltq_etop_poll_tx(struct napi_struct *napi, int budget)
container_of(napi, struct ltq_etop_chan, napi);
struct ltq_etop_priv *priv = netdev_priv(ch->netdev);
struct netdev_queue *txq =
@ -76,7 +78,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
unsigned long flags;
spin_lock_irqsave(&priv->lock, flags);
@@ -251,7 +246,9 @@ ltq_etop_poll_tx(struct napi_struct *nap
@@ -251,7 +246,9 @@ ltq_etop_poll_tx(struct napi_struct *napi, int budget)
if (netif_tx_queue_stopped(txq))
netif_tx_start_queue(txq);
napi_complete(&ch->napi);
@ -100,7 +102,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
return IRQ_HANDLED;
}
@@ -273,7 +271,7 @@ ltq_etop_free_channel(struct net_device
@@ -273,7 +271,7 @@ ltq_etop_free_channel(struct net_device *dev, struct ltq_etop_chan *ch)
ltq_dma_free(&ch->dma);
if (ch->dma.irq)
free_irq(ch->dma.irq, priv);
@ -210,7 +212,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
return err;
}
@@ -410,7 +423,10 @@ ltq_etop_get_settings(struct net_device
@@ -410,7 +423,10 @@ ltq_etop_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
{
struct ltq_etop_priv *priv = netdev_priv(dev);
@ -222,7 +224,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
}
static int
@@ -418,7 +434,10 @@ ltq_etop_set_settings(struct net_device
@@ -418,7 +434,10 @@ ltq_etop_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
{
struct ltq_etop_priv *priv = netdev_priv(dev);
@ -234,7 +236,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
}
static int
@@ -426,7 +445,10 @@ ltq_etop_nway_reset(struct net_device *d
@@ -426,7 +445,10 @@ ltq_etop_nway_reset(struct net_device *dev)
{
struct ltq_etop_priv *priv = netdev_priv(dev);
@ -302,7 +304,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
return 0;
}
@@ -660,16 +683,16 @@ ltq_etop_tx(struct sk_buff *skb, struct
@@ -660,16 +683,16 @@ ltq_etop_tx(struct sk_buff *skb, struct net_device *dev)
int queue = skb_get_queue_mapping(skb);
struct netdev_queue *txq = netdev_get_tx_queue(dev, queue);
struct ltq_etop_priv *priv = netdev_priv(dev);
@ -323,7 +325,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
netdev_err(dev, "tx ring full\n");
netif_tx_stop_queue(txq);
return NETDEV_TX_BUSY;
@@ -677,7 +700,7 @@ ltq_etop_tx(struct sk_buff *skb, struct
@@ -677,7 +700,7 @@ ltq_etop_tx(struct sk_buff *skb, struct net_device *dev)
/* dma needs to start on a 16 byte aligned address */
byte_offset = CPHYSADDR(skb->data) % 16;
@ -332,7 +334,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
dev->trans_start = jiffies;
@@ -687,11 +710,11 @@ ltq_etop_tx(struct sk_buff *skb, struct
@@ -687,11 +710,11 @@ ltq_etop_tx(struct sk_buff *skb, struct net_device *dev)
wmb();
desc->ctl = LTQ_DMA_OWN | LTQ_DMA_SOP | LTQ_DMA_EOP |
LTQ_DMA_TX_OFFSET(byte_offset) | (len & LTQ_DMA_SIZE_MASK);
@ -358,7 +360,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
ltq_etop_change_mtu(dev, 1500);
memcpy(&mac, &priv->pldata->mac, sizeof(struct sockaddr));
@@ -811,6 +838,9 @@ ltq_etop_tx_timeout(struct net_device *d
@@ -811,6 +838,9 @@ ltq_etop_tx_timeout(struct net_device *dev)
err = ltq_etop_hw_init(dev);
if (err)
goto err_hw;
@ -368,7 +370,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
dev->trans_start = jiffies;
netif_wake_queue(dev);
return;
@@ -834,14 +864,13 @@ static const struct net_device_ops ltq_e
@@ -834,14 +864,13 @@ static const struct net_device_ops ltq_eth_netdev_ops = {
.ndo_tx_timeout = ltq_etop_tx_timeout,
};
@ -384,7 +386,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
@@ -917,15 +946,10 @@ ltq_etop_probe(struct platform_device *p
@@ -917,15 +946,10 @@ ltq_etop_probe(struct platform_device *pdev)
spin_lock_init(&priv->lock);
@ -404,7 +406,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
err = register_netdev(dev);
if (err)
@@ -955,6 +979,7 @@ ltq_etop_remove(struct platform_device *
@@ -955,6 +979,7 @@ ltq_etop_remove(struct platform_device *pdev)
}
static struct platform_driver ltq_mii_driver = {
@ -412,7 +414,7 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
.remove = __devexit_p(ltq_etop_remove),
.driver = {
.name = "ltq_etop",
@@ -962,24 +987,7 @@ static struct platform_driver ltq_mii_dr
@@ -962,24 +987,7 @@ static struct platform_driver ltq_mii_driver = {
},
};
@ -438,3 +440,6 @@ Subject: [PATCH 44/70] MIPS: NET: several fixes to etop driver
MODULE_AUTHOR("John Crispin <blogic@openwrt.org>");
MODULE_DESCRIPTION("Lantiq SoC ETOP");
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From f94454615da63008ac865e6a7b03bbe79041e8c2 Mon Sep 17 00:00:00 2001
From 8757ae55b11c87d75078b44384b27aadc52f2f22 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Mon, 20 Feb 2012 12:15:25 +0100
Subject: [PATCH 45/70] MTD: MIPS: lantiq: use module_platform_driver inside
Subject: [PATCH 44/73] MTD: MIPS: lantiq: use module_platform_driver inside
lantiq map driver
Reduce boilerplate code by converting driver to module_platform_driver.
@ -12,9 +12,11 @@ Cc: linux-mtd@lists.infradead.org
drivers/mtd/maps/lantiq-flash.c | 22 +++-------------------
1 files changed, 3 insertions(+), 19 deletions(-)
diff --git a/drivers/mtd/maps/lantiq-flash.c b/drivers/mtd/maps/lantiq-flash.c
index 764d468..b55212c 100644
--- a/drivers/mtd/maps/lantiq-flash.c
+++ b/drivers/mtd/maps/lantiq-flash.c
@@ -108,7 +108,7 @@ ltq_copy_to(struct map_info *map, unsign
@@ -108,7 +108,7 @@ ltq_copy_to(struct map_info *map, unsigned long to,
spin_unlock_irqrestore(&ebu_lock, flags);
}
@ -23,7 +25,7 @@ Cc: linux-mtd@lists.infradead.org
ltq_mtd_probe(struct platform_device *pdev)
{
struct physmap_flash_data *ltq_mtd_data = dev_get_platdata(&pdev->dev);
@@ -208,6 +208,7 @@ ltq_mtd_remove(struct platform_device *p
@@ -208,6 +208,7 @@ ltq_mtd_remove(struct platform_device *pdev)
}
static struct platform_driver ltq_mtd_driver = {
@ -31,7 +33,7 @@ Cc: linux-mtd@lists.infradead.org
.remove = __devexit_p(ltq_mtd_remove),
.driver = {
.name = "ltq_nor",
@@ -215,24 +216,7 @@ static struct platform_driver ltq_mtd_dr
@@ -215,24 +216,7 @@ static struct platform_driver ltq_mtd_driver = {
},
};
@ -57,3 +59,6 @@ Cc: linux-mtd@lists.infradead.org
MODULE_LICENSE("GPL");
MODULE_AUTHOR("John Crispin <blogic@openwrt.org>");
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 7d332825d131e70daff66b934797c89f50c11ace Mon Sep 17 00:00:00 2001
From 3b8b06b76d01136fa4e195a10c5ee12b2352616e Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Mon, 20 Feb 2012 12:16:31 +0100
Subject: [PATCH 46/70] WDT: MIPS: lantiq: use module_platform_driver inside
Subject: [PATCH 45/73] WDT: MIPS: lantiq: use module_platform_driver inside
lantiq watchdog driver
Reduce boilerplate code by converting driver to module_platform_driver.
@ -12,9 +12,11 @@ Cc: linux-watchdog@vger.kernel.org
drivers/watchdog/lantiq_wdt.c | 19 +++----------------
1 files changed, 3 insertions(+), 16 deletions(-)
diff --git a/drivers/watchdog/lantiq_wdt.c b/drivers/watchdog/lantiq_wdt.c
index da2b09f..40c9eb7 100644
--- a/drivers/watchdog/lantiq_wdt.c
+++ b/drivers/watchdog/lantiq_wdt.c
@@ -182,7 +182,7 @@ static struct miscdevice ltq_wdt_miscdev
@@ -182,7 +182,7 @@ static struct miscdevice ltq_wdt_miscdev = {
.fops = &ltq_wdt_fops,
};
@ -23,7 +25,7 @@ Cc: linux-watchdog@vger.kernel.org
ltq_wdt_probe(struct platform_device *pdev)
{
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -230,6 +230,7 @@ ltq_wdt_remove(struct platform_device *p
@@ -230,6 +230,7 @@ ltq_wdt_remove(struct platform_device *pdev)
static struct platform_driver ltq_wdt_driver = {
@ -31,7 +33,7 @@ Cc: linux-watchdog@vger.kernel.org
.remove = __devexit_p(ltq_wdt_remove),
.driver = {
.name = "ltq_wdt",
@@ -237,21 +238,7 @@ static struct platform_driver ltq_wdt_dr
@@ -237,21 +238,7 @@ static struct platform_driver ltq_wdt_driver = {
},
};
@ -54,3 +56,6 @@ Cc: linux-watchdog@vger.kernel.org
module_param(nowayout, int, 0);
MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started");
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From b672c54f9ae4504687a80bb51cdfe102bdae96e1 Mon Sep 17 00:00:00 2001
From 688c075ddc08723848df01fc0426d69d0b3a464b Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 29 Sep 2011 17:16:38 +0200
Subject: [PATCH 47/70] MIPS: lantiq: adds GPTU driver
Subject: [PATCH 46/73] MIPS: lantiq: adds GPTU driver
---
arch/mips/include/asm/mach-lantiq/lantiq_timer.h | 155 ++++
@ -12,6 +12,9 @@ Subject: [PATCH 47/70] MIPS: lantiq: adds GPTU driver
create mode 100644 arch/mips/include/asm/mach-lantiq/lantiq_timer.h
create mode 100644 arch/mips/lantiq/xway/timer.c
diff --git a/arch/mips/include/asm/mach-lantiq/lantiq_timer.h b/arch/mips/include/asm/mach-lantiq/lantiq_timer.h
new file mode 100644
index 0000000..ef564ab
--- /dev/null
+++ b/arch/mips/include/asm/mach-lantiq/lantiq_timer.h
@@ -0,0 +1,155 @@
@ -170,6 +173,8 @@ Subject: [PATCH 47/70] MIPS: lantiq: adds GPTU driver
+ u32 reload, unsigned long arg1, unsigned long arg2);
+
+#endif /* __DANUBE_GPTU_DEV_H__2005_07_26__10_19__ */
diff --git a/arch/mips/lantiq/xway/Makefile b/arch/mips/lantiq/xway/Makefile
index 277aa34..4c3106f 100644
--- a/arch/mips/lantiq/xway/Makefile
+++ b/arch/mips/lantiq/xway/Makefile
@@ -1,4 +1,4 @@
@ -178,6 +183,8 @@ Subject: [PATCH 47/70] MIPS: lantiq: adds GPTU driver
obj-$(CONFIG_LANTIQ_MACH_EASY50712) += mach-easy50712.o
obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o
diff --git a/arch/mips/lantiq/xway/sysctrl.c b/arch/mips/lantiq/xway/sysctrl.c
index 38f02f9..1a2e2d4 100644
--- a/arch/mips/lantiq/xway/sysctrl.c
+++ b/arch/mips/lantiq/xway/sysctrl.c
@@ -147,6 +147,7 @@ void __init ltq_soc_init(void)
@ -188,6 +195,9 @@ Subject: [PATCH 47/70] MIPS: lantiq: adds GPTU driver
if (!ltq_is_vr9())
clkdev_add_pmu("ltq_etop", NULL, 0, PMU_PPE);
if (ltq_is_ase()) {
diff --git a/arch/mips/lantiq/xway/timer.c b/arch/mips/lantiq/xway/timer.c
new file mode 100644
index 0000000..9794c87
--- /dev/null
+++ b/arch/mips/lantiq/xway/timer.c
@@ -0,0 +1,846 @@
@ -1037,3 +1047,6 @@ Subject: [PATCH 47/70] MIPS: lantiq: adds GPTU driver
+
+module_init(lq_gptu_init);
+module_exit(lq_gptu_exit);
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 668e5f88aa80ef8c4c8cb935c7c222146de79825 Mon Sep 17 00:00:00 2001
From 16e349f80eec982f301265bebd66fd08f3b0dce1 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Fri, 30 Sep 2011 14:37:36 +0200
Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
Subject: [PATCH 47/73] MIPS: lantiq: adds dwc_otg
---
drivers/usb/Kconfig | 2 +
@ -45,6 +45,8 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
create mode 100644 drivers/usb/dwc_otg/dwc_otg_plat.h
create mode 100644 drivers/usb/dwc_otg/dwc_otg_regs.h
diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig
index 791f11b..1eafa7a 100644
--- a/drivers/usb/Kconfig
+++ b/drivers/usb/Kconfig
@@ -129,6 +129,8 @@ source "drivers/usb/wusbcore/Kconfig"
@ -56,6 +58,8 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
source "drivers/usb/musb/Kconfig"
source "drivers/usb/renesas_usbhs/Kconfig"
diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile
index 75eca76..7fe8e83 100644
--- a/drivers/usb/Makefile
+++ b/drivers/usb/Makefile
@@ -30,6 +30,8 @@ obj-$(CONFIG_USB_C67X00_HCD) += c67x00/
@ -67,9 +71,11 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
obj-$(CONFIG_USB_ACM) += class/
obj-$(CONFIG_USB_PRINTER) += class/
obj-$(CONFIG_USB_WDM) += class/
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 7978146..6a7df52 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -2939,11 +2939,11 @@ hub_port_init (struct usb_hub *hub, stru
@@ -2935,11 +2935,11 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1,
udev->ttport = hdev->ttport;
} else if (udev->speed != USB_SPEED_HIGH
&& hdev->speed == USB_SPEED_HIGH) {
@ -83,6 +89,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
udev->tt = &hub->tt;
udev->ttport = port1;
}
diff --git a/drivers/usb/dwc_otg/Kconfig b/drivers/usb/dwc_otg/Kconfig
new file mode 100644
index 0000000..e018490
--- /dev/null
+++ b/drivers/usb/dwc_otg/Kconfig
@@ -0,0 +1,37 @@
@ -123,6 +132,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+config DWC_OTG_DEBUG
+ bool "Enable debug mode"
+ depends on DWC_OTG
diff --git a/drivers/usb/dwc_otg/Makefile b/drivers/usb/dwc_otg/Makefile
new file mode 100644
index 0000000..d4d2355
--- /dev/null
+++ b/drivers/usb/dwc_otg/Makefile
@@ -0,0 +1,39 @@
@ -165,6 +177,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+
+#obj-$(CONFIG_DWC_OTG_IFX) := dwc_otg_ifx.o
+#dwc_otg_ifx-objs := dwc_otg_ifx.o
diff --git a/drivers/usb/dwc_otg/dwc_otg_attr.c b/drivers/usb/dwc_otg/dwc_otg_attr.c
new file mode 100644
index 0000000..4675a5c
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_attr.c
@@ -0,0 +1,802 @@
@ -970,6 +985,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+ device_remove_file(_dev, &dev_attr_rd_reg_test);
+ device_remove_file(_dev, &dev_attr_wr_reg_test);
+}
diff --git a/drivers/usb/dwc_otg/dwc_otg_attr.h b/drivers/usb/dwc_otg/dwc_otg_attr.h
new file mode 100644
index 0000000..4bbf7df
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_attr.h
@@ -0,0 +1,67 @@
@ -1040,6 +1058,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+void dwc_otg_attr_remove (struct device *_dev);
+
+#endif
diff --git a/drivers/usb/dwc_otg/dwc_otg_cil.c b/drivers/usb/dwc_otg/dwc_otg_cil.c
new file mode 100644
index 0000000..42c69eb
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_cil.c
@@ -0,0 +1,3025 @@
@ -4068,6 +4089,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+ _cb->p = _p;
+}
+
diff --git a/drivers/usb/dwc_otg/dwc_otg_cil.h b/drivers/usb/dwc_otg/dwc_otg_cil.h
new file mode 100644
index 0000000..bbb9516
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_cil.h
@@ -0,0 +1,911 @@
@ -4982,6 +5006,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+
+
+#endif
diff --git a/drivers/usb/dwc_otg/dwc_otg_cil_ifx.h b/drivers/usb/dwc_otg/dwc_otg_cil_ifx.h
new file mode 100644
index 0000000..b0298ec
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_cil_ifx.h
@@ -0,0 +1,58 @@
@ -5043,6 +5070,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+
+#endif // __DWC_OTG_CIL_IFX_H__
+
diff --git a/drivers/usb/dwc_otg/dwc_otg_cil_intr.c b/drivers/usb/dwc_otg/dwc_otg_cil_intr.c
new file mode 100644
index 0000000..d469ab4
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_cil_intr.c
@@ -0,0 +1,708 @@
@ -5754,6 +5784,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+ }
+ return retval;
+}
diff --git a/drivers/usb/dwc_otg/dwc_otg_driver.c b/drivers/usb/dwc_otg/dwc_otg_driver.c
new file mode 100644
index 0000000..1b0daab
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_driver.c
@@ -0,0 +1,1274 @@
@ -7031,6 +7064,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+ </td></tr>
+
+*/
diff --git a/drivers/usb/dwc_otg/dwc_otg_driver.h b/drivers/usb/dwc_otg/dwc_otg_driver.h
new file mode 100644
index 0000000..7e6940d
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_driver.h
@@ -0,0 +1,84 @@
@ -7118,6 +7154,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+//#define dev_dbg(fake, format, arg...) printk(KERN_CRIT __FILE__ ":%d: " format "\n" , __LINE__, ## arg)
+
+#endif
diff --git a/drivers/usb/dwc_otg/dwc_otg_hcd.c b/drivers/usb/dwc_otg/dwc_otg_hcd.c
new file mode 100644
index 0000000..ad6bc72
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_hcd.c
@@ -0,0 +1,2870 @@
@ -9991,6 +10030,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+#endif
+}
+#endif /* DWC_DEVICE_ONLY */
diff --git a/drivers/usb/dwc_otg/dwc_otg_hcd.h b/drivers/usb/dwc_otg/dwc_otg_hcd.h
new file mode 100644
index 0000000..8a20dff
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_hcd.h
@@ -0,0 +1,676 @@
@ -10670,6 +10712,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+#endif // DEBUG
+#endif // __DWC_HCD_H__
+#endif /* DWC_DEVICE_ONLY */
diff --git a/drivers/usb/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/dwc_otg/dwc_otg_hcd_intr.c
new file mode 100644
index 0000000..834b5e0
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_hcd_intr.c
@@ -0,0 +1,1841 @@
@ -12514,6 +12559,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+}
+
+#endif /* DWC_DEVICE_ONLY */
diff --git a/drivers/usb/dwc_otg/dwc_otg_hcd_queue.c b/drivers/usb/dwc_otg/dwc_otg_hcd_queue.c
new file mode 100644
index 0000000..fcb5ce6
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_hcd_queue.c
@@ -0,0 +1,794 @@
@ -13311,6 +13359,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+}
+
+#endif /* DWC_DEVICE_ONLY */
diff --git a/drivers/usb/dwc_otg/dwc_otg_ifx.c b/drivers/usb/dwc_otg/dwc_otg_ifx.c
new file mode 100644
index 0000000..0a4c209
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_ifx.c
@@ -0,0 +1,100 @@
@ -13414,6 +13465,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+void ifx_usb_hc_remove(void)
+{
+}
diff --git a/drivers/usb/dwc_otg/dwc_otg_ifx.h b/drivers/usb/dwc_otg/dwc_otg_ifx.h
new file mode 100644
index 0000000..402d7a6
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_ifx.h
@@ -0,0 +1,85 @@
@ -13502,6 +13556,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+ ltq_mask_and_ack_irq(&d);
+}
+#endif //__DWC_OTG_IFX_H__
diff --git a/drivers/usb/dwc_otg/dwc_otg_plat.h b/drivers/usb/dwc_otg/dwc_otg_plat.h
new file mode 100644
index 0000000..727d0c4
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_plat.h
@@ -0,0 +1,269 @@
@ -13774,6 +13831,9 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+
+#endif
+
diff --git a/drivers/usb/dwc_otg/dwc_otg_regs.h b/drivers/usb/dwc_otg/dwc_otg_regs.h
new file mode 100644
index 0000000..397a954
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_regs.h
@@ -0,0 +1,1797 @@
@ -15574,3 +15634,6 @@ Subject: [PATCH 48/70] MIPS: lantiq: adds dwc_otg
+} dwc_otg_host_if_t;
+
+#endif
--
1.7.9.1

View File

@ -1,16 +1,18 @@
From 7f73b86b26fc58e0513a792533b7e11450aa0737 Mon Sep 17 00:00:00 2001
From 604835c84e9854d347a43b736b047d9789f19a00 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Fri, 23 Mar 2012 16:14:33 +0100
Subject: [PATCH 49/70] dwc_otg: remove bogus halt_channel
Subject: [PATCH 48/73] dwc_otg: remove bogus halt_channel
https://lists.openwrt.org/pipermail/openwrt-devel/2012-March/014524.html
---
drivers/usb/dwc_otg/dwc_otg_hcd_intr.c | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/dwc_otg/dwc_otg_hcd_intr.c
index 834b5e0..f6f3f3d 100644
--- a/drivers/usb/dwc_otg/dwc_otg_hcd_intr.c
+++ b/drivers/usb/dwc_otg/dwc_otg_hcd_intr.c
@@ -1278,8 +1278,6 @@ static int32_t handle_hc_ack_intr(dwc_ot
@@ -1278,8 +1278,6 @@ static int32_t handle_hc_ack_intr(dwc_otg_hcd_t *_hcd,
* automatically executes the PING, then the transfer.
*/
halt_channel(_hcd, _hc, _qtd, DWC_OTG_HC_XFER_ACK, must_free);
@ -19,3 +21,6 @@ https://lists.openwrt.org/pipermail/openwrt-devel/2012-March/014524.html
}
}
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 09071b501014528984b158bc5408d8a738ef6883 Mon Sep 17 00:00:00 2001
From ad4f618fdcbeb60ce82094c51ba8ea26ab8a6af2 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Sun, 11 Mar 2012 15:59:39 +0100
Subject: [PATCH 50/70] MIPS: adds ifxhcd
Subject: [PATCH 49/73] MIPS: adds ifxhcd
---
arch/mips/lantiq/xway/Makefile | 2 +-
@ -48,6 +48,8 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
create mode 100644 drivers/usb/ifxhcd/ifxusb_regs.h
create mode 100644 drivers/usb/ifxhcd/ifxusb_version.h
diff --git a/arch/mips/lantiq/xway/Makefile b/arch/mips/lantiq/xway/Makefile
index 4c3106f..c9baf91 100644
--- a/arch/mips/lantiq/xway/Makefile
+++ b/arch/mips/lantiq/xway/Makefile
@@ -1,4 +1,4 @@
@ -56,6 +58,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
obj-$(CONFIG_LANTIQ_MACH_EASY50712) += mach-easy50712.o
obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o
diff --git a/arch/mips/lantiq/xway/dev-ifxhcd.c b/arch/mips/lantiq/xway/dev-ifxhcd.c
new file mode 100644
index 0000000..ea08a35
--- /dev/null
+++ b/arch/mips/lantiq/xway/dev-ifxhcd.c
@@ -0,0 +1,45 @@
@ -104,6 +109,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+ platform_dev.dev.platform_data = pins;
+ return platform_device_register(&platform_dev);
+}
diff --git a/arch/mips/lantiq/xway/dev-ifxhcd.h b/arch/mips/lantiq/xway/dev-ifxhcd.h
new file mode 100644
index 0000000..18b3d2d
--- /dev/null
+++ b/arch/mips/lantiq/xway/dev-ifxhcd.h
@@ -0,0 +1,17 @@
@ -124,6 +132,8 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+extern void __init xway_register_hcd(int *pin);
+
+#endif
diff --git a/arch/mips/lantiq/xway/sysctrl.c b/arch/mips/lantiq/xway/sysctrl.c
index 1a2e2d4..ac7383f 100644
--- a/arch/mips/lantiq/xway/sysctrl.c
+++ b/arch/mips/lantiq/xway/sysctrl.c
@@ -166,6 +166,8 @@ void __init ltq_soc_init(void)
@ -135,6 +145,8 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
} else {
clkdev_add_static(ltq_danube_cpu_hz(), ltq_danube_fpi_hz(),
ltq_danube_io_region_clock());
diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig
index 1eafa7a..0f7926e 100644
--- a/drivers/usb/Kconfig
+++ b/drivers/usb/Kconfig
@@ -183,4 +183,6 @@ source "drivers/usb/gadget/Kconfig"
@ -144,6 +156,8 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+source "drivers/usb/ifxhcd/Kconfig"
+
endif # USB_SUPPORT
diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile
index 7fe8e83..61b4c88 100644
--- a/drivers/usb/Makefile
+++ b/drivers/usb/Makefile
@@ -57,3 +57,5 @@ obj-$(CONFIG_USB_OTG_UTILS) += otg/
@ -152,6 +166,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
obj-$(CONFIG_USB_COMMON) += usb-common.o
+
+obj-$(CONFIG_USB_HOST_IFX) += ifxhcd/
diff --git a/drivers/usb/ifxhcd/Kconfig b/drivers/usb/ifxhcd/Kconfig
new file mode 100644
index 0000000..7eb8ceb
--- /dev/null
+++ b/drivers/usb/ifxhcd/Kconfig
@@ -0,0 +1,58 @@
@ -213,6 +230,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+#config USB_HOST_IFX_UNALIGNED_NONE
+
+
diff --git a/drivers/usb/ifxhcd/Makefile b/drivers/usb/ifxhcd/Makefile
new file mode 100644
index 0000000..0a2ac99
--- /dev/null
+++ b/drivers/usb/ifxhcd/Makefile
@@ -0,0 +1,85 @@
@ -301,6 +321,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+
+obj-$(CONFIG_USB_HOST_IFX) += ifxusb_host.o
+
diff --git a/drivers/usb/ifxhcd/TagHistory b/drivers/usb/ifxhcd/TagHistory
new file mode 100644
index 0000000..3820d70
--- /dev/null
+++ b/drivers/usb/ifxhcd/TagHistory
@@ -0,0 +1,171 @@
@ -475,6 +498,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+
+Bekanntes Problem: Stick and Surf funktioniert nur sporadisch, weil CONTROL_IRQ manchmal ausbleibt.
+
diff --git a/drivers/usb/ifxhcd/ifxhcd.c b/drivers/usb/ifxhcd/ifxhcd.c
new file mode 100644
index 0000000..d2ae125
--- /dev/null
+++ b/drivers/usb/ifxhcd/ifxhcd.c
@@ -0,0 +1,2523 @@
@ -3001,6 +3027,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+ }
+#endif //__ENABLE_DUMP__
+
diff --git a/drivers/usb/ifxhcd/ifxhcd.h b/drivers/usb/ifxhcd/ifxhcd.h
new file mode 100644
index 0000000..3a40851
--- /dev/null
+++ b/drivers/usb/ifxhcd/ifxhcd.h
@@ -0,0 +1,628 @@
@ -3632,6 +3661,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+/*@}*//*IFXUSB_HCD*/
+
+#endif // __IFXHCD_H__
diff --git a/drivers/usb/ifxhcd/ifxhcd_es.c b/drivers/usb/ifxhcd/ifxhcd_es.c
new file mode 100644
index 0000000..ef9e8c0
--- /dev/null
+++ b/drivers/usb/ifxhcd/ifxhcd_es.c
@@ -0,0 +1,549 @@
@ -4184,6 +4216,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+ }
+#endif //__WITH_HS_ELECT_TST__
+
diff --git a/drivers/usb/ifxhcd/ifxhcd_intr.c b/drivers/usb/ifxhcd/ifxhcd_intr.c
new file mode 100644
index 0000000..76fe602
--- /dev/null
+++ b/drivers/usb/ifxhcd/ifxhcd_intr.c
@@ -0,0 +1,3742 @@
@ -7929,6 +7964,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+ }
+ return retval;
+}
diff --git a/drivers/usb/ifxhcd/ifxhcd_queue.c b/drivers/usb/ifxhcd/ifxhcd_queue.c
new file mode 100644
index 0000000..8f9dd25
--- /dev/null
+++ b/drivers/usb/ifxhcd/ifxhcd_queue.c
@@ -0,0 +1,418 @@
@ -8350,6 +8388,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+ return retval;
+}
+
diff --git a/drivers/usb/ifxhcd/ifxusb_cif.c b/drivers/usb/ifxhcd/ifxusb_cif.c
new file mode 100644
index 0000000..10b1292
--- /dev/null
+++ b/drivers/usb/ifxhcd/ifxusb_cif.c
@@ -0,0 +1,1458 @@
@ -9811,6 +9852,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+ return;
+}
+
diff --git a/drivers/usb/ifxhcd/ifxusb_cif.h b/drivers/usb/ifxhcd/ifxusb_cif.h
new file mode 100644
index 0000000..191781f
--- /dev/null
+++ b/drivers/usb/ifxhcd/ifxusb_cif.h
@@ -0,0 +1,665 @@
@ -10479,6 +10523,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+#endif // !defined(__IFXUSB_CIF_H__)
+
+
diff --git a/drivers/usb/ifxhcd/ifxusb_cif_d.c b/drivers/usb/ifxhcd/ifxusb_cif_d.c
new file mode 100644
index 0000000..36ab0e7
--- /dev/null
+++ b/drivers/usb/ifxhcd/ifxusb_cif_d.c
@@ -0,0 +1,458 @@
@ -10940,6 +10987,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+ }
+}
+
diff --git a/drivers/usb/ifxhcd/ifxusb_cif_h.c b/drivers/usb/ifxhcd/ifxusb_cif_h.c
new file mode 100644
index 0000000..0f47ecd
--- /dev/null
+++ b/drivers/usb/ifxhcd/ifxusb_cif_h.c
@@ -0,0 +1,846 @@
@ -11789,6 +11839,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+#endif //defined(__UEIP__)
+
+
diff --git a/drivers/usb/ifxhcd/ifxusb_ctl.c b/drivers/usb/ifxhcd/ifxusb_ctl.c
new file mode 100644
index 0000000..ade8e13
--- /dev/null
+++ b/drivers/usb/ifxhcd/ifxusb_ctl.c
@@ -0,0 +1,1385 @@
@ -13177,6 +13230,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+}
+
+
diff --git a/drivers/usb/ifxhcd/ifxusb_driver.c b/drivers/usb/ifxhcd/ifxusb_driver.c
new file mode 100644
index 0000000..2334905
--- /dev/null
+++ b/drivers/usb/ifxhcd/ifxusb_driver.c
@@ -0,0 +1,970 @@
@ -14150,6 +14206,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+MODULE_PARM_DESC(timeout_cal_fs, "Timeout Cal for FS");
+
+
diff --git a/drivers/usb/ifxhcd/ifxusb_plat.h b/drivers/usb/ifxhcd/ifxusb_plat.h
new file mode 100644
index 0000000..a50294f
--- /dev/null
+++ b/drivers/usb/ifxhcd/ifxusb_plat.h
@@ -0,0 +1,1018 @@
@ -15171,6 +15230,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+
+#endif //__IFXUSB_PLAT_H__
+
diff --git a/drivers/usb/ifxhcd/ifxusb_regs.h b/drivers/usb/ifxhcd/ifxusb_regs.h
new file mode 100644
index 0000000..014c6db
--- /dev/null
+++ b/drivers/usb/ifxhcd/ifxusb_regs.h
@@ -0,0 +1,1420 @@
@ -16594,6 +16656,9 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+/****************************************************************************/
+
+#endif //__IFXUSB_REGS_H__
diff --git a/drivers/usb/ifxhcd/ifxusb_version.h b/drivers/usb/ifxhcd/ifxusb_version.h
new file mode 100644
index 0000000..2dff735
--- /dev/null
+++ b/drivers/usb/ifxhcd/ifxusb_version.h
@@ -0,0 +1,5 @@
@ -16602,3 +16667,6 @@ Subject: [PATCH 50/70] MIPS: adds ifxhcd
+#define IFXUSB_VERSION "3.0alpha B100312"
+#endif
+
--
1.7.9.1

View File

@ -1,13 +1,16 @@
From a7c55f5e927b69bb30912fe1c3e5bcd8751e8381 Mon Sep 17 00:00:00 2001
From ce8fccecad845349cc5f6783b3812a17a074d39c Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Wed, 14 Mar 2012 15:37:19 +0100
Subject: [PATCH 51/70] MIPS: adds gptu driver
Subject: [PATCH 50/73] MIPS: adds gptu driver
---
arch/mips/lantiq/xway/gptu.c | 176 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 176 insertions(+), 0 deletions(-)
create mode 100644 arch/mips/lantiq/xway/gptu.c
diff --git a/arch/mips/lantiq/xway/gptu.c b/arch/mips/lantiq/xway/gptu.c
new file mode 100644
index 0000000..ac82c37
--- /dev/null
+++ b/arch/mips/lantiq/xway/gptu.c
@@ -0,0 +1,176 @@
@ -187,3 +190,6 @@ Subject: [PATCH 51/70] MIPS: adds gptu driver
+}
+
+arch_initcall(gptu_setup);
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 3571f6a294783e617c2f8f52021f9c33bc9e5a36 Mon Sep 17 00:00:00 2001
From 6a3a89057dbb65c67be80641f13f34c599ee3863 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 8 Mar 2012 12:00:17 +0100
Subject: [PATCH 52/70] MIPS: lantiq: pci: rename variable inside
Subject: [PATCH 51/73] MIPS: lantiq: pci: rename variable inside
* rename a global var inside the pci code
---
@ -10,9 +10,11 @@ Subject: [PATCH 52/70] MIPS: lantiq: pci: rename variable inside
arch/mips/pci/pci-lantiq.h | 2 +-
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/arch/mips/pci/ops-lantiq.c b/arch/mips/pci/ops-lantiq.c
index 1f2afb5..5cbb0cf 100644
--- a/arch/mips/pci/ops-lantiq.c
+++ b/arch/mips/pci/ops-lantiq.c
@@ -41,7 +41,7 @@ static int ltq_pci_config_access(unsigne
@@ -41,7 +41,7 @@ static int ltq_pci_config_access(unsigned char access_type, struct pci_bus *bus,
spin_lock_irqsave(&ebu_lock, flags);
@ -21,7 +23,7 @@ Subject: [PATCH 52/70] MIPS: lantiq: pci: rename variable inside
cfg_base |= (bus->number << LTQ_PCI_CFG_BUSNUM_SHF) | (devfn <<
LTQ_PCI_CFG_FUNNUM_SHF) | (where & ~0x3);
@@ -55,11 +55,11 @@ static int ltq_pci_config_access(unsigne
@@ -55,11 +55,11 @@ static int ltq_pci_config_access(unsigned char access_type, struct pci_bus *bus,
wmb();
/* clean possible Master abort */
@ -35,6 +37,8 @@ Subject: [PATCH 52/70] MIPS: lantiq: pci: rename variable inside
cfg_base |= (0x68 << LTQ_PCI_CFG_FUNNUM_SHF) + 4;
ltq_w32(temp, ((u32 *)cfg_base));
diff --git a/arch/mips/pci/pci-lantiq.c b/arch/mips/pci/pci-lantiq.c
index 47b551c..efcdd45 100644
--- a/arch/mips/pci/pci-lantiq.c
+++ b/arch/mips/pci/pci-lantiq.c
@@ -65,8 +65,8 @@
@ -48,7 +52,7 @@ Subject: [PATCH 52/70] MIPS: lantiq: pci: rename variable inside
struct ltq_pci_gpio_map {
int pin;
@@ -273,7 +273,7 @@ static int __devinit ltq_pci_probe(struc
@@ -273,7 +273,7 @@ static int __devinit ltq_pci_probe(struct platform_device *pdev)
pci_probe_only = 0;
ltq_pci_irq_map = ltq_pci_data->irq;
ltq_pci_membase = ioremap_nocache(PCI_CR_BASE_ADDR, PCI_CR_SIZE);
@ -57,6 +61,8 @@ Subject: [PATCH 52/70] MIPS: lantiq: pci: rename variable inside
ioremap_nocache(LTQ_PCI_CFG_BASE, LTQ_PCI_CFG_BASE);
ltq_pci_controller.io_map_base =
(unsigned long)ioremap(LTQ_PCI_IO_BASE, LTQ_PCI_IO_SIZE - 1);
diff --git a/arch/mips/pci/pci-lantiq.h b/arch/mips/pci/pci-lantiq.h
index 66bf6cd..c4721b4 100644
--- a/arch/mips/pci/pci-lantiq.h
+++ b/arch/mips/pci/pci-lantiq.h
@@ -9,7 +9,7 @@
@ -68,3 +74,6 @@ Subject: [PATCH 52/70] MIPS: lantiq: pci: rename variable inside
extern int ltq_pci_read_config_dword(struct pci_bus *bus,
unsigned int devfn, int where, int size, u32 *val);
extern int ltq_pci_write_config_dword(struct pci_bus *bus,
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 00dda451e12b6fc519cd4f575a696c4216f45992 Mon Sep 17 00:00:00 2001
From 3ea2b94a6721ebdde4508ef7d35521f1b8f06351 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 8 Mar 2012 13:13:31 +0100
Subject: [PATCH 53/70] MIPS: lantiq: pci: give xway pci support its own
Subject: [PATCH 52/73] MIPS: lantiq: pci: give xway pci support its own
kbuild symbol
---
@ -9,6 +9,8 @@ Subject: [PATCH 53/70] MIPS: lantiq: pci: give xway pci support its own
arch/mips/pci/Makefile | 2 +-
2 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/arch/mips/lantiq/Kconfig b/arch/mips/lantiq/Kconfig
index cb6b39f..dde9fc6 100644
--- a/arch/mips/lantiq/Kconfig
+++ b/arch/mips/lantiq/Kconfig
@@ -19,8 +19,13 @@ config SOC_XWAY
@ -25,9 +27,11 @@ Subject: [PATCH 53/70] MIPS: lantiq: pci: give xway pci support its own
source "arch/mips/lantiq/xway/Kconfig"
source "arch/mips/lantiq/falcon/Kconfig"
diff --git a/arch/mips/pci/Makefile b/arch/mips/pci/Makefile
index bb82cbd..afad91d 100644
--- a/arch/mips/pci/Makefile
+++ b/arch/mips/pci/Makefile
@@ -40,7 +40,7 @@ obj-$(CONFIG_SIBYTE_SB1250) += fixup-sb1
@@ -40,7 +40,7 @@ obj-$(CONFIG_SIBYTE_SB1250) += fixup-sb1250.o pci-sb1250.o
obj-$(CONFIG_SIBYTE_BCM112X) += fixup-sb1250.o pci-sb1250.o
obj-$(CONFIG_SIBYTE_BCM1x80) += pci-bcm1480.o pci-bcm1480ht.o
obj-$(CONFIG_SNI_RM) += fixup-sni.o ops-sni.o
@ -36,3 +40,6 @@ Subject: [PATCH 53/70] MIPS: lantiq: pci: give xway pci support its own
obj-$(CONFIG_TANBAC_TB0219) += fixup-tb0219.o
obj-$(CONFIG_TANBAC_TB0226) += fixup-tb0226.o
obj-$(CONFIG_TANBAC_TB0287) += fixup-tb0287.o
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 49b5d2242091e216736216d98d7f940870d4f1ec Mon Sep 17 00:00:00 2001
From e6b9f3ea5f2f3f8a66d6650c16f3537288806c0b Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 8 Mar 2012 15:53:10 +0100
Subject: [PATCH 54/70] MIPS: lantiq: pci: move pcibios code into
Subject: [PATCH 53/73] MIPS: lantiq: pci: move pcibios code into
fixup-lantiq.c
---
@ -11,9 +11,11 @@ Subject: [PATCH 54/70] MIPS: lantiq: pci: move pcibios code into
3 files changed, 45 insertions(+), 22 deletions(-)
create mode 100644 arch/mips/pci/fixup-lantiq.c
diff --git a/arch/mips/pci/Makefile b/arch/mips/pci/Makefile
index afad91d..3ca5f75 100644
--- a/arch/mips/pci/Makefile
+++ b/arch/mips/pci/Makefile
@@ -40,6 +40,7 @@ obj-$(CONFIG_SIBYTE_SB1250) += fixup-sb1
@@ -40,6 +40,7 @@ obj-$(CONFIG_SIBYTE_SB1250) += fixup-sb1250.o pci-sb1250.o
obj-$(CONFIG_SIBYTE_BCM112X) += fixup-sb1250.o pci-sb1250.o
obj-$(CONFIG_SIBYTE_BCM1x80) += pci-bcm1480.o pci-bcm1480ht.o
obj-$(CONFIG_SNI_RM) += fixup-sni.o ops-sni.o
@ -21,6 +23,9 @@ Subject: [PATCH 54/70] MIPS: lantiq: pci: move pcibios code into
obj-$(CONFIG_PCI_LANTIQ) += pci-lantiq.o ops-lantiq.o
obj-$(CONFIG_TANBAC_TB0219) += fixup-tb0219.o
obj-$(CONFIG_TANBAC_TB0226) += fixup-tb0226.o
diff --git a/arch/mips/pci/fixup-lantiq.c b/arch/mips/pci/fixup-lantiq.c
new file mode 100644
index 0000000..daf5ae9
--- /dev/null
+++ b/arch/mips/pci/fixup-lantiq.c
@@ -0,0 +1,42 @@
@ -66,9 +71,11 @@ Subject: [PATCH 54/70] MIPS: lantiq: pci: move pcibios code into
+}
+
+
diff --git a/arch/mips/pci/pci-lantiq.c b/arch/mips/pci/pci-lantiq.c
index efcdd45..7a29738 100644
--- a/arch/mips/pci/pci-lantiq.c
+++ b/arch/mips/pci/pci-lantiq.c
@@ -93,16 +93,14 @@ static struct ltq_pci_gpio_map ltq_pci_g
@@ -93,16 +93,14 @@ static struct ltq_pci_gpio_map ltq_pci_gpio_map[] = {
{ 37, 2, 0, "pci-req4" },
};
@ -87,7 +94,7 @@ Subject: [PATCH 54/70] MIPS: lantiq: pci: move pcibios code into
struct pci_ops ltq_pci_ops = {
.read = ltq_pci_read_config_dword,
@@ -131,14 +129,6 @@ static struct pci_controller ltq_pci_con
@@ -131,14 +129,6 @@ static struct pci_controller ltq_pci_controller = {
.io_offset = 0x00000000UL,
};
@ -102,7 +109,7 @@ Subject: [PATCH 54/70] MIPS: lantiq: pci: move pcibios code into
static u32 ltq_calc_bar11mask(void)
{
u32 mem, bar11mask;
@@ -256,16 +246,6 @@ static int __devinit ltq_pci_startup(str
@@ -256,16 +246,6 @@ static int __devinit ltq_pci_startup(struct device *dev)
return 0;
}
@ -119,3 +126,6 @@ Subject: [PATCH 54/70] MIPS: lantiq: pci: move pcibios code into
static int __devinit ltq_pci_probe(struct platform_device *pdev)
{
struct ltq_pci_data *ltq_pci_data =
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From a53d622001ae396d89c9abacb62f3c3c7fbd3c13 Mon Sep 17 00:00:00 2001
From ab91bdfb7d8dbeebe4594b96cf81721f97012d24 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 8 Mar 2012 15:57:33 +0100
Subject: [PATCH 55/70] MIPS: lantiq: pcie: add pcie driver
Subject: [PATCH 54/73] MIPS: lantiq: pcie: add pcie driver
---
arch/mips/Kconfig | 1 +
@ -21,9 +21,11 @@ Subject: [PATCH 55/70] MIPS: lantiq: pcie: add pcie driver
create mode 100644 arch/mips/pci/pcie-lantiq.c
create mode 100644 arch/mips/pci/pcie-lantiq.h
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 1b78cd7..bbaff9b 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -2353,6 +2353,7 @@ config PCI_DOMAINS
@@ -2329,6 +2329,7 @@ config PCI_DOMAINS
bool
source "drivers/pci/Kconfig"
@ -31,6 +33,8 @@ Subject: [PATCH 55/70] MIPS: lantiq: pcie: add pcie driver
#
# ISA support is now enabled via select. Too many systems still have the one
diff --git a/arch/mips/lantiq/Kconfig b/arch/mips/lantiq/Kconfig
index dde9fc6..d21d9d4 100644
--- a/arch/mips/lantiq/Kconfig
+++ b/arch/mips/lantiq/Kconfig
@@ -22,10 +22,6 @@ config SOC_FALCON
@ -44,6 +48,8 @@ Subject: [PATCH 55/70] MIPS: lantiq: pcie: add pcie driver
source "arch/mips/lantiq/xway/Kconfig"
source "arch/mips/lantiq/falcon/Kconfig"
diff --git a/arch/mips/lantiq/xway/Kconfig b/arch/mips/lantiq/xway/Kconfig
index 2b857de..54a51ff 100644
--- a/arch/mips/lantiq/xway/Kconfig
+++ b/arch/mips/lantiq/xway/Kconfig
@@ -8,6 +8,27 @@ config LANTIQ_MACH_EASY50712
@ -74,9 +80,11 @@ Subject: [PATCH 55/70] MIPS: lantiq: pcie: add pcie driver
endif
if SOC_AMAZON_SE
diff --git a/arch/mips/pci/Makefile b/arch/mips/pci/Makefile
index 3ca5f75..3386888 100644
--- a/arch/mips/pci/Makefile
+++ b/arch/mips/pci/Makefile
@@ -42,6 +42,8 @@ obj-$(CONFIG_SIBYTE_BCM1x80) += pci-bcm1
@@ -42,6 +42,8 @@ obj-$(CONFIG_SIBYTE_BCM1x80) += pci-bcm1480.o pci-bcm1480ht.o
obj-$(CONFIG_SNI_RM) += fixup-sni.o ops-sni.o
obj-$(CONFIG_LANTIQ) += fixup-lantiq.o
obj-$(CONFIG_PCI_LANTIQ) += pci-lantiq.o ops-lantiq.o
@ -85,6 +93,9 @@ Subject: [PATCH 55/70] MIPS: lantiq: pcie: add pcie driver
obj-$(CONFIG_TANBAC_TB0219) += fixup-tb0219.o
obj-$(CONFIG_TANBAC_TB0226) += fixup-tb0226.o
obj-$(CONFIG_TANBAC_TB0287) += fixup-tb0287.o
diff --git a/arch/mips/pci/fixup-lantiq-pcie.c b/arch/mips/pci/fixup-lantiq-pcie.c
new file mode 100644
index 0000000..84517df
--- /dev/null
+++ b/arch/mips/pci/fixup-lantiq-pcie.c
@@ -0,0 +1,81 @@
@ -169,6 +180,8 @@ Subject: [PATCH 55/70] MIPS: lantiq: pcie: add pcie driver
+
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LANTIQ, PCI_DEVICE_ID_LANTIQ_PCIE,
+ ifx_pcie_rc_class_early_fixup);
diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c
index 41af7fa..2239cda 100644
--- a/arch/mips/pci/pci.c
+++ b/arch/mips/pci/pci.c
@@ -167,6 +167,31 @@ static int __init pcibios_init(void)
@ -203,6 +216,9 @@ Subject: [PATCH 55/70] MIPS: lantiq: pcie: add pcie driver
static int pcibios_enable_resources(struct pci_dev *dev, int mask)
{
u16 cmd, old_cmd;
diff --git a/arch/mips/pci/pcie-lantiq-msi.c b/arch/mips/pci/pcie-lantiq-msi.c
new file mode 100644
index 0000000..9cbf639
--- /dev/null
+++ b/arch/mips/pci/pcie-lantiq-msi.c
@@ -0,0 +1,399 @@
@ -605,6 +621,9 @@ Subject: [PATCH 55/70] MIPS: lantiq: pcie: add pcie driver
+MODULE_SUPPORTED_DEVICE("Infineon PCIe IP builtin MSI PIC module");
+MODULE_DESCRIPTION("Infineon PCIe IP builtin MSI PIC driver");
+
diff --git a/arch/mips/pci/pcie-lantiq-phy.c b/arch/mips/pci/pcie-lantiq-phy.c
new file mode 100644
index 0000000..9f5027d
--- /dev/null
+++ b/arch/mips/pci/pcie-lantiq-phy.c
@@ -0,0 +1,408 @@
@ -1016,6 +1035,9 @@ Subject: [PATCH 55/70] MIPS: lantiq: pcie: add pcie driver
+#endif
+}
+
diff --git a/arch/mips/pci/pcie-lantiq.c b/arch/mips/pci/pcie-lantiq.c
new file mode 100644
index 0000000..1df55b5
--- /dev/null
+++ b/arch/mips/pci/pcie-lantiq.c
@@ -0,0 +1,1146 @@
@ -2165,6 +2187,9 @@ Subject: [PATCH 55/70] MIPS: lantiq: pcie: add pcie driver
+}
+
+arch_initcall(pciebios_init);
diff --git a/arch/mips/pci/pcie-lantiq.h b/arch/mips/pci/pcie-lantiq.h
new file mode 100644
index 0000000..d877c23
--- /dev/null
+++ b/arch/mips/pci/pcie-lantiq.h
@@ -0,0 +1,1305 @@
@ -3473,3 +3498,6 @@ Subject: [PATCH 55/70] MIPS: lantiq: pcie: add pcie driver
+
+#endif /* IFXMIPS_PCIE_VR9_H */
+
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From b11a96f2bdf1730fe3fd3be1d0667e20a4eb5bff Mon Sep 17 00:00:00 2001
From bc45b5c61ffb156eb01515bf56efc5ae8d2bc3b2 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Sat, 13 Aug 2011 13:59:50 +0200
Subject: [PATCH 56/70] MIPS: lantiq: make GPIO3 work on AR9
Subject: [PATCH 55/73] MIPS: lantiq: make GPIO3 work on AR9
There are 3 16bit and 1 8bit gpio ports on AR9. The gpio driver needs a hack
at 2 places to make the different register layout of the GPIO3 work properly
@ -18,6 +18,8 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
arch/mips/lantiq/xway/gpio_stp.c | 3 +-
5 files changed, 75 insertions(+), 20 deletions(-)
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
index d1b8cc8..bfdeb16 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
@@ -126,7 +126,9 @@
@ -30,9 +32,11 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
/* SSC */
#define LTQ_SSC_BASE_ADDR 0x1e100800
diff --git a/arch/mips/lantiq/xway/devices.c b/arch/mips/lantiq/xway/devices.c
index 5efa4f3..e6d45bc 100644
--- a/arch/mips/lantiq/xway/devices.c
+++ b/arch/mips/lantiq/xway/devices.c
@@ -34,6 +34,7 @@ static struct resource ltq_gpio_resource
@@ -34,6 +34,7 @@ static struct resource ltq_gpio_resource[] = {
MEM_RES("gpio0", LTQ_GPIO0_BASE_ADDR, LTQ_GPIO_SIZE),
MEM_RES("gpio1", LTQ_GPIO1_BASE_ADDR, LTQ_GPIO_SIZE),
MEM_RES("gpio2", LTQ_GPIO2_BASE_ADDR, LTQ_GPIO_SIZE),
@ -49,6 +53,8 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
}
}
diff --git a/arch/mips/lantiq/xway/gpio.c b/arch/mips/lantiq/xway/gpio.c
index 54ec6c9..375329b 100644
--- a/arch/mips/lantiq/xway/gpio.c
+++ b/arch/mips/lantiq/xway/gpio.c
@@ -23,9 +23,17 @@
@ -70,7 +76,7 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
#define ltq_gpio_getbit(m, r, p) (!!(ltq_r32(m + r) & (1 << p)))
#define ltq_gpio_setbit(m, r, p) ltq_w32_mask(0, (1 << p), m + r)
@@ -55,7 +63,7 @@ int ltq_gpio_request(struct device *dev,
@@ -55,7 +63,7 @@ int ltq_gpio_request(struct device *dev, unsigned int pin, unsigned int mux,
{
int id = 0;
@ -79,7 +85,7 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
return -EINVAL;
if (devm_gpio_request(dev, pin, name)) {
pr_err("failed to setup lantiq gpio: %s\n", name);
@@ -75,12 +83,21 @@ int ltq_gpio_request(struct device *dev,
@@ -75,12 +83,21 @@ int ltq_gpio_request(struct device *dev, unsigned int pin, unsigned int mux,
else
ltq_gpio_clearbit(ltq_gpio_port[id].membase,
LTQ_GPIO_ALTSEL0, pin);
@ -107,7 +113,7 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
return 0;
}
EXPORT_SYMBOL(ltq_gpio_request);
@@ -106,10 +123,19 @@ static int ltq_gpio_direction_input(stru
@@ -106,10 +123,19 @@ static int ltq_gpio_direction_input(struct gpio_chip *chip, unsigned int offset)
{
struct ltq_gpio *ltq_gpio = container_of(chip, struct ltq_gpio, chip);
@ -130,7 +136,7 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
return 0;
}
@@ -119,10 +145,19 @@ static int ltq_gpio_direction_output(str
@@ -119,10 +145,19 @@ static int ltq_gpio_direction_output(struct gpio_chip *chip,
{
struct ltq_gpio *ltq_gpio = container_of(chip, struct ltq_gpio, chip);
@ -153,7 +159,7 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
ltq_gpio_set(chip, offset, value);
return 0;
@@ -133,7 +168,11 @@ static int ltq_gpio_req(struct gpio_chip
@@ -133,7 +168,11 @@ static int ltq_gpio_req(struct gpio_chip *chip, unsigned offset)
struct ltq_gpio *ltq_gpio = container_of(chip, struct ltq_gpio, chip);
ltq_gpio_clearbit(ltq_gpio->membase, LTQ_GPIO_ALTSEL0, offset);
@ -166,7 +172,7 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
return 0;
}
@@ -146,6 +185,16 @@ static int ltq_gpio_probe(struct platfor
@@ -146,6 +185,16 @@ static int ltq_gpio_probe(struct platform_device *pdev)
pdev->id);
return -EINVAL;
}
@ -183,7 +189,7 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!res) {
dev_err(&pdev->dev, "failed to get memory for gpio port %d\n",
@@ -175,7 +224,10 @@ static int ltq_gpio_probe(struct platfor
@@ -175,7 +224,10 @@ static int ltq_gpio_probe(struct platform_device *pdev)
ltq_gpio_port[pdev->id].chip.set = ltq_gpio_set;
ltq_gpio_port[pdev->id].chip.request = ltq_gpio_req;
ltq_gpio_port[pdev->id].chip.base = PINS_PER_PORT * pdev->id;
@ -195,6 +201,8 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
platform_set_drvdata(pdev, &ltq_gpio_port[pdev->id]);
return gpiochip_add(&ltq_gpio_port[pdev->id].chip);
}
diff --git a/arch/mips/lantiq/xway/gpio_ebu.c b/arch/mips/lantiq/xway/gpio_ebu.c
index b91c7f1..bc5696b 100644
--- a/arch/mips/lantiq/xway/gpio_ebu.c
+++ b/arch/mips/lantiq/xway/gpio_ebu.c
@@ -61,9 +61,8 @@ static struct gpio_chip ltq_ebu_chip = {
@ -208,6 +216,8 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
.owner = THIS_MODULE,
};
diff --git a/arch/mips/lantiq/xway/gpio_stp.c b/arch/mips/lantiq/xway/gpio_stp.c
index da91c5e..9610c10 100644
--- a/arch/mips/lantiq/xway/gpio_stp.c
+++ b/arch/mips/lantiq/xway/gpio_stp.c
@@ -74,9 +74,8 @@ static struct gpio_chip ltq_stp_chip = {
@ -221,3 +231,6 @@ Signed-off-by: Thomas Langer <thomas.langer@lantiq.com>
.owner = THIS_MODULE,
};
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 587ca6b21ab64ab014625b1cacb36ef711c74962 Mon Sep 17 00:00:00 2001
From 7bd37f8a051a3760aa86da081e3b4d1e96c19dbf Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 29 Sep 2011 20:30:40 +0200
Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
Subject: [PATCH 56/73] MIPS: lantiq: VPE extensions
---
arch/mips/Kconfig | 22 +++
@ -17,9 +17,11 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
create mode 100644 arch/mips/kernel/mtsched_proc.c
create mode 100644 arch/mips/kernel/perf_proc.c
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index bbaff9b..902aedb 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1909,6 +1909,28 @@ config MIPS_VPE_LOADER
@@ -1897,6 +1897,28 @@ config MIPS_VPE_LOADER
Includes a loader for loading an elf relocatable object
onto another VPE and running it.
@ -48,6 +50,8 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
config MIPS_MT_SMTC_IM_BACKSTOP
bool "Use per-TC register bits as backstop for inhibited IM bits"
depends on MIPS_MT_SMTC
diff --git a/arch/mips/include/asm/mipsmtregs.h b/arch/mips/include/asm/mipsmtregs.h
index c9420aa..04bfb4b 100644
--- a/arch/mips/include/asm/mipsmtregs.h
+++ b/arch/mips/include/asm/mipsmtregs.h
@@ -28,14 +28,34 @@
@ -157,9 +161,11 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
/* GPR */
#define read_tc_gpr_sp() mftgpr(29)
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile
index 1a96618..bc5989e 100644
--- a/arch/mips/kernel/Makefile
+++ b/arch/mips/kernel/Makefile
@@ -88,7 +88,8 @@ obj-$(CONFIG_MIPS32_O32) += binfmt_elfo3
@@ -88,7 +88,8 @@ obj-$(CONFIG_MIPS32_O32) += binfmt_elfo32.o scall64-o32.o
obj-$(CONFIG_KGDB) += kgdb.o
obj-$(CONFIG_PROC_FS) += proc.o
@ -169,6 +175,8 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
obj-$(CONFIG_64BIT) += cpu-bugs64.o
obj-$(CONFIG_I8253) += i8253.o
diff --git a/arch/mips/kernel/mips-mt.c b/arch/mips/kernel/mips-mt.c
index c23d11f..11d6489 100644
--- a/arch/mips/kernel/mips-mt.c
+++ b/arch/mips/kernel/mips-mt.c
@@ -21,26 +21,96 @@
@ -273,7 +281,7 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
/*
* Dump new MIPS MT state for the core. Does not leave TCs halted.
@@ -78,18 +148,18 @@ void mips_mt_regdump(unsigned long mvpct
@@ -78,18 +148,18 @@ void mips_mt_regdump(unsigned long mvpctl)
if ((read_tc_c0_tcbind() & TCBIND_CURVPE) == i) {
printk(" VPE %d\n", i);
printk(" VPEControl : %08lx\n",
@ -309,6 +317,9 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
}
/*
diff --git a/arch/mips/kernel/mtsched_proc.c b/arch/mips/kernel/mtsched_proc.c
new file mode 100644
index 0000000..4dafded
--- /dev/null
+++ b/arch/mips/kernel/mtsched_proc.c
@@ -0,0 +1,279 @@
@ -591,6 +602,9 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
+
+/* Automagically create the entry */
+module_init(init_mtsched_proc);
diff --git a/arch/mips/kernel/perf_proc.c b/arch/mips/kernel/perf_proc.c
new file mode 100644
index 0000000..7eec015
--- /dev/null
+++ b/arch/mips/kernel/perf_proc.c
@@ -0,0 +1,191 @@
@ -785,6 +799,8 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
+
+/* Automagically create the entry */
+module_init(init_perf_proc);
diff --git a/arch/mips/kernel/proc.c b/arch/mips/kernel/proc.c
index e309665..2de204f 100644
--- a/arch/mips/kernel/proc.c
+++ b/arch/mips/kernel/proc.c
@@ -7,6 +7,7 @@
@ -795,7 +811,7 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
#include <asm/bootinfo.h>
#include <asm/cpu.h>
#include <asm/cpu-features.h>
@@ -110,3 +111,19 @@ const struct seq_operations cpuinfo_op =
@@ -110,3 +111,19 @@ const struct seq_operations cpuinfo_op = {
.stop = c_stop,
.show = show_cpuinfo,
};
@ -815,9 +831,11 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
+ mips_proc = proc_mkdir("mips", NULL);
+ return(mips_proc);
+}
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c
index f0895e7..199e853 100644
--- a/arch/mips/kernel/smtc.c
+++ b/arch/mips/kernel/smtc.c
@@ -1334,6 +1334,13 @@ void smtc_get_new_mmu_context(struct mm_
@@ -1334,6 +1334,13 @@ void smtc_get_new_mmu_context(struct mm_struct *mm, unsigned long cpu)
asid = asid_cache(cpu);
do {
@ -831,9 +849,11 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
if (!((asid += ASID_INC) & ASID_MASK) ) {
if (cpu_has_vtag_icache)
flush_icache_all();
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c
index bfa12a4..e338ba5 100644
--- a/arch/mips/kernel/vpe.c
+++ b/arch/mips/kernel/vpe.c
@@ -75,6 +75,58 @@ static struct kspd_notifications kspd_ev
@@ -75,6 +75,58 @@ static struct kspd_notifications kspd_events;
static int kspd_events_reqd;
#endif
@ -892,7 +912,7 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
/* grab the likely amount of memory we will need. */
#ifdef CONFIG_MIPS_VPE_LOADER_TOM
#define P_SIZE (2 * 1024 * 1024)
@@ -267,6 +319,13 @@ static void *alloc_progmem(unsigned long
@@ -267,6 +319,13 @@ static void *alloc_progmem(unsigned long len)
void *addr;
#ifdef CONFIG_MIPS_VPE_LOADER_TOM
@ -940,7 +960,7 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
/*
* The sde-kit passes 'memsize' to __start in $a3, so set something
* here... Or set $a3 to zero and define DFLT_STACK_SIZE and
@@ -832,6 +911,9 @@ static int find_vpe_symbols(struct vpe *
@@ -832,6 +911,9 @@ static int find_vpe_symbols(struct vpe * v, Elf_Shdr * sechdrs,
if ( (v->__start == 0) || (v->shared_ptr == NULL))
return -1;
@ -966,7 +986,7 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
if (v->__start == 0) {
printk(KERN_WARNING "VPE loader: program does not contain "
"a __start symbol\n");
@@ -1063,6 +1154,9 @@ static int vpe_open(struct inode *inode,
@@ -1063,6 +1154,9 @@ static int vpe_open(struct inode *inode, struct file *filp)
struct vpe_notifications *not;
struct vpe *v;
int ret;
@ -976,7 +996,7 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
if (minor != iminor(inode)) {
/* assume only 1 device at the moment. */
@@ -1088,7 +1182,12 @@ static int vpe_open(struct inode *inode,
@@ -1088,7 +1182,12 @@ static int vpe_open(struct inode *inode, struct file *filp)
release_progmem(v->load_addr);
cleanup_tc(get_tc(tclimit));
}
@ -990,7 +1010,7 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
/* this of-course trashes what was there before... */
v->pbuffer = vmalloc(P_SIZE);
if (!v->pbuffer) {
@@ -1096,11 +1195,14 @@ static int vpe_open(struct inode *inode,
@@ -1096,11 +1195,14 @@ static int vpe_open(struct inode *inode, struct file *filp)
return -ENOMEM;
}
v->plen = P_SIZE;
@ -1196,3 +1216,6 @@ Subject: [PATCH 57/70] MIPS: lantiq: VPE extensions
evpe(vpflags);
emt(mtflags);
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 6a76c0c9a33c32464319c24ff5647f7676642c51 Mon Sep 17 00:00:00 2001
From 7ee92edb5569c1cdc676a2635a40b53e8d9d647d Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 29 Sep 2011 21:29:14 +0200
Subject: [PATCH 58/70] MIPS: lantiq: falcon VPE softdog
Subject: [PATCH 57/73] MIPS: lantiq: falcon VPE softdog
---
arch/mips/include/asm/mach-lantiq/falcon/vpe.h | 44 ++++++++++
@ -10,6 +10,9 @@ Subject: [PATCH 58/70] MIPS: lantiq: falcon VPE softdog
create mode 100644 arch/mips/include/asm/mach-lantiq/falcon/vpe.h
create mode 100644 arch/mips/lantiq/falcon/softdog_vpe.c
diff --git a/arch/mips/include/asm/mach-lantiq/falcon/vpe.h b/arch/mips/include/asm/mach-lantiq/falcon/vpe.h
new file mode 100644
index 0000000..22a701b
--- /dev/null
+++ b/arch/mips/include/asm/mach-lantiq/falcon/vpe.h
@@ -0,0 +1,44 @@
@ -57,6 +60,9 @@ Subject: [PATCH 58/70] MIPS: lantiq: falcon VPE softdog
+int32_t vpe1_sw_wdog_register_reset_handler(VPE_SW_WDOG_RESET reset_fn);
+
+#endif
diff --git a/arch/mips/lantiq/falcon/softdog_vpe.c b/arch/mips/lantiq/falcon/softdog_vpe.c
new file mode 100644
index 0000000..85d22a2
--- /dev/null
+++ b/arch/mips/lantiq/falcon/softdog_vpe.c
@@ -0,0 +1,109 @@
@ -169,3 +175,6 @@ Subject: [PATCH 58/70] MIPS: lantiq: falcon VPE softdog
+MODULE_AUTHOR("LXDB");
+MODULE_DESCRIPTION("Software Watchdog For VPE1");
+MODULE_LICENSE("GPL");
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 268b631d81d5428cdf1a82b9655e9f44f64a8238 Mon Sep 17 00:00:00 2001
From 8bf74990542ad73bc633332f716a5edc76f858a2 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 29 Sep 2011 20:29:54 +0200
Subject: [PATCH 59/70] MIPS: lantiq: udp in-kernel redirect
Subject: [PATCH 58/73] MIPS: lantiq: udp in-kernel redirect
---
include/linux/udp_redirect.h | 57 +++++++++++++
@ -13,6 +13,9 @@ Subject: [PATCH 59/70] MIPS: lantiq: udp in-kernel redirect
create mode 100644 include/linux/udp_redirect.h
create mode 100644 net/ipv4/udp_redirect_symb.c
diff --git a/include/linux/udp_redirect.h b/include/linux/udp_redirect.h
new file mode 100644
index 0000000..de1e64f
--- /dev/null
+++ b/include/linux/udp_redirect.h
@@ -0,0 +1,57 @@
@ -73,6 +76,8 @@ Subject: [PATCH 59/70] MIPS: lantiq: udp in-kernel redirect
+extern int udpredirect_getfrag(void *p, char * to, int offset,
+ int fraglen, int odd, struct sk_buff *skb);
+#endif
diff --git a/net/Kconfig b/net/Kconfig
index a073148..d13e3fa 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -72,6 +72,12 @@ config INET
@ -88,9 +93,11 @@ Subject: [PATCH 59/70] MIPS: lantiq: udp in-kernel redirect
if INET
source "net/ipv4/Kconfig"
source "net/ipv6/Kconfig"
diff --git a/net/ipv4/Makefile b/net/ipv4/Makefile
index f2dc69c..6badd72 100644
--- a/net/ipv4/Makefile
+++ b/net/ipv4/Makefile
@@ -14,6 +14,9 @@ obj-y := route.o inetpeer.o protocol
@@ -14,6 +14,9 @@ obj-y := route.o inetpeer.o protocol.o \
inet_fragment.o ping.o
obj-$(CONFIG_SYSCTL) += sysctl_net_ipv4.o
@ -100,6 +107,8 @@ Subject: [PATCH 59/70] MIPS: lantiq: udp in-kernel redirect
obj-$(CONFIG_PROC_FS) += proc.o
obj-$(CONFIG_IP_MULTIPLE_TABLES) += fib_rules.o
obj-$(CONFIG_IP_MROUTE) += ipmr.o
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index 5a65eea..cdfa0d4 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -108,6 +108,10 @@
@ -113,7 +122,7 @@ Subject: [PATCH 59/70] MIPS: lantiq: udp in-kernel redirect
struct udp_table udp_table __read_mostly;
EXPORT_SYMBOL(udp_table);
@@ -803,7 +807,7 @@ int udp_sendmsg(struct kiocb *iocb, stru
@@ -803,7 +807,7 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
u8 tos;
int err, is_udplite = IS_UDPLITE(sk);
int corkreq = up->corkflag || msg->msg_flags&MSG_MORE;
@ -122,7 +131,7 @@ Subject: [PATCH 59/70] MIPS: lantiq: udp in-kernel redirect
struct sk_buff *skb;
struct ip_options_data opt_copy;
@@ -820,7 +824,13 @@ int udp_sendmsg(struct kiocb *iocb, stru
@@ -820,7 +824,13 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
ipc.opt = NULL;
ipc.tx_flags = 0;
@ -137,7 +146,7 @@ Subject: [PATCH 59/70] MIPS: lantiq: udp in-kernel redirect
fl4 = &inet->cork.fl.u.ip4;
if (up->pending) {
@@ -1623,6 +1633,7 @@ int __udp4_lib_rcv(struct sk_buff *skb,
@@ -1623,6 +1633,7 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
struct rtable *rt = skb_rtable(skb);
__be32 saddr, daddr;
struct net *net = dev_net(skb->dev);
@ -145,7 +154,7 @@ Subject: [PATCH 59/70] MIPS: lantiq: udp in-kernel redirect
/*
* Validate the packet.
@@ -1655,7 +1666,16 @@ int __udp4_lib_rcv(struct sk_buff *skb,
@@ -1655,7 +1666,16 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
sk = __udp4_lib_lookup_skb(skb, uh->source, uh->dest, udptable);
if (sk != NULL) {
@ -172,6 +181,9 @@ Subject: [PATCH 59/70] MIPS: lantiq: udp in-kernel redirect
/* ------------------------------------------------------------------------ */
#ifdef CONFIG_PROC_FS
diff --git a/net/ipv4/udp_redirect_symb.c b/net/ipv4/udp_redirect_symb.c
new file mode 100644
index 0000000..5617e86
--- /dev/null
+++ b/net/ipv4/udp_redirect_symb.c
@@ -0,0 +1,186 @@
@ -361,3 +373,6 @@ Subject: [PATCH 59/70] MIPS: lantiq: udp in-kernel redirect
+EXPORT_SYMBOL(udp_do_redirect_fn);
+EXPORT_SYMBOL(udpredirect_getfrag_fn);
+#endif /* CONFIG_IFX_UDP_REDIRECT* */
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 307ba9e4d8fb0608566aacf88ab8cded5e20e005 Mon Sep 17 00:00:00 2001
From bd865269f0a339d575ac9f0b768d1168b9865f85 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 29 Sep 2011 20:31:54 +0200
Subject: [PATCH 60/70] MIPS: lantiq: cache split
Subject: [PATCH 59/73] MIPS: lantiq: cache split
---
arch/mips/Kconfig | 22 ++++++
@ -9,9 +9,11 @@ Subject: [PATCH 60/70] MIPS: lantiq: cache split
arch/mips/mm/c-r4k.c | 172 ++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 260 insertions(+), 0 deletions(-)
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 902aedb..12ee3df 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1916,6 +1916,28 @@ config IFX_VPE_EXT
@@ -1904,6 +1904,28 @@ config IFX_VPE_EXT
help
IFX included extensions in APRP
@ -40,9 +42,11 @@ Subject: [PATCH 60/70] MIPS: lantiq: cache split
config PERFCTRS
bool "34K Performance counters"
depends on MIPS_MT && PROC_FS
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c
index e338ba5..0511d11 100644
--- a/arch/mips/kernel/vpe.c
+++ b/arch/mips/kernel/vpe.c
@@ -127,6 +127,13 @@ __setup("vpe1_wdog_timeout=", wdog_timeo
@@ -127,6 +127,13 @@ __setup("vpe1_wdog_timeout=", wdog_timeout);
EXPORT_SYMBOL(vpe1_wdog_timeout);
#endif
@ -122,9 +126,11 @@ Subject: [PATCH 60/70] MIPS: lantiq: cache split
/* clear out any left overs from a previous program */
write_vpe_c0_status(0);
write_vpe_c0_cause(0);
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index a79fe9a..94cb24f 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -1383,6 +1383,106 @@ static int __init setcoherentio(char *st
@@ -1383,6 +1383,106 @@ static int __init setcoherentio(char *str)
__setup("coherentio", setcoherentio);
#endif
@ -310,3 +316,6 @@ Subject: [PATCH 60/70] MIPS: lantiq: cache split
probe_pcache();
setup_scache();
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From d23a3c21962bcc3dc18e7916c2499cd3b26feaf0 Mon Sep 17 00:00:00 2001
From 720f8d0381c60af85f049353464a12fbed903edb Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Tue, 20 Mar 2012 08:26:04 +0100
Subject: [PATCH 61/70] MIPS: clean up clock code
Subject: [PATCH 60/73] MIPS: clean up clock code
---
arch/mips/lantiq/clk.c | 11 +++
@ -10,6 +10,8 @@ Subject: [PATCH 61/70] MIPS: clean up clock code
arch/mips/lantiq/xway/sysctrl.c | 166 ++++++++++++++++++++++++++++++---------
4 files changed, 143 insertions(+), 39 deletions(-)
diff --git a/arch/mips/lantiq/clk.c b/arch/mips/lantiq/clk.c
index 84a201e..5494b6e 100644
--- a/arch/mips/lantiq/clk.c
+++ b/arch/mips/lantiq/clk.c
@@ -44,6 +44,7 @@ struct clk *clk_get_fpi(void)
@ -20,7 +22,7 @@ Subject: [PATCH 61/70] MIPS: clean up clock code
struct clk *clk_get_io(void)
{
@@ -70,6 +71,16 @@ unsigned long clk_get_rate(struct clk *c
@@ -70,6 +71,16 @@ unsigned long clk_get_rate(struct clk *clk)
}
EXPORT_SYMBOL(clk_get_rate);
@ -37,6 +39,8 @@ Subject: [PATCH 61/70] MIPS: clean up clock code
int clk_enable(struct clk *clk)
{
if (unlikely(!clk_good(clk)))
diff --git a/arch/mips/lantiq/clk.h b/arch/mips/lantiq/clk.h
index d047768..b34e675 100644
--- a/arch/mips/lantiq/clk.h
+++ b/arch/mips/lantiq/clk.h
@@ -12,6 +12,7 @@
@ -58,9 +62,11 @@ Subject: [PATCH 61/70] MIPS: clean up clock code
int (*enable) (struct clk *clk);
void (*disable) (struct clk *clk);
int (*activate) (struct clk *clk);
diff --git a/arch/mips/lantiq/xway/devices.c b/arch/mips/lantiq/xway/devices.c
index e6d45bc..5d4650d 100644
--- a/arch/mips/lantiq/xway/devices.c
+++ b/arch/mips/lantiq/xway/devices.c
@@ -59,7 +59,7 @@ static struct resource ltq_stp_resource
@@ -59,7 +59,7 @@ static struct resource ltq_stp_resource =
void __init ltq_register_gpio_stp(void)
{
@ -69,6 +75,8 @@ Subject: [PATCH 61/70] MIPS: clean up clock code
}
/* asc ports - amazon se has its own serial mapping */
diff --git a/arch/mips/lantiq/xway/sysctrl.c b/arch/mips/lantiq/xway/sysctrl.c
index ac7383f..9df048c 100644
--- a/arch/mips/lantiq/xway/sysctrl.c
+++ b/arch/mips/lantiq/xway/sysctrl.c
@@ -16,40 +16,57 @@
@ -176,15 +184,15 @@ Subject: [PATCH 61/70] MIPS: clean up clock code
}
static int ltq_pmu_enable(struct clk *clk)
@@ -94,9 +111,49 @@ static int ltq_pmu_enable(struct clk *cl
@@ -94,9 +111,49 @@ static int ltq_pmu_enable(struct clk *clk)
static void ltq_pmu_disable(struct clk *clk)
{
- ltq_pmu_w32(ltq_pmu_r32(LTQ_PMU_PWDCR) | clk->bits, LTQ_PMU_PWDCR);
+ ltq_pmu_w32(ltq_pmu_r32(PWDCR(clk->module)) | clk->bits,
+ PWDCR(clk->module));
}
+}
+
+static int ltq_pci_enable(struct clk *clk)
+{
+ unsigned int ifccr = ltq_cgu_r32(CGU_IFCCR);
@ -221,13 +229,13 @@ Subject: [PATCH 61/70] MIPS: clean up clock code
+ ltq_cgu_w32(ltq_cgu_r32(CGU_IFCCR) | (1 << 16),
+ CGU_IFCCR);
+ ltq_cgu_w32((1 << 31) | (1 << 30), CGU_PCICR);
+}
+
}
+/* manage the clock gates via PMU */
static inline void clkdev_add_pmu(const char *dev, const char *con,
unsigned int module, unsigned int bits)
{
@@ -112,6 +169,7 @@ static inline void clkdev_add_pmu(const
@@ -112,6 +169,7 @@ static inline void clkdev_add_pmu(const char *dev, const char *con,
clkdev_add(&clk->cl);
}
@ -235,7 +243,7 @@ Subject: [PATCH 61/70] MIPS: clean up clock code
static inline void clkdev_add_cgu(const char *dev, const char *con,
unsigned int bits)
{
@@ -126,6 +184,33 @@ static inline void clkdev_add_cgu(const
@@ -126,6 +184,33 @@ static inline void clkdev_add_cgu(const char *dev, const char *con,
clkdev_add(&clk->cl);
}
@ -306,3 +314,6 @@ Subject: [PATCH 61/70] MIPS: clean up clock code
if (ltq_is_ar9())
clkdev_add_pmu("ltq_etop", "switch", 0, PMU_SWITCH);
}
--
1.7.9.1

View File

@ -1,12 +1,14 @@
From 1748dc7b4974109040d0249ac1fc322c120eb528 Mon Sep 17 00:00:00 2001
From 5e04db198bbad2dc345262e838965332826eb37c Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Fri, 16 Mar 2012 15:49:32 +0100
Subject: [PATCH 62/70] MIPS: cleanup reset code
Subject: [PATCH 61/73] MIPS: cleanup reset code
---
arch/mips/lantiq/xway/reset.c | 59 ++++++++++++++++++++++++++++++++++------
1 files changed, 50 insertions(+), 9 deletions(-)
diff --git a/arch/mips/lantiq/xway/reset.c b/arch/mips/lantiq/xway/reset.c
index ca2212a..8a5dff1 100644
--- a/arch/mips/lantiq/xway/reset.c
+++ b/arch/mips/lantiq/xway/reset.c
@@ -11,6 +11,7 @@
@ -96,3 +98,6 @@ Subject: [PATCH 62/70] MIPS: cleanup reset code
unreachable();
}
--
1.7.9.1

View File

@ -1,7 +1,7 @@
From 449adc45e29be18da14b23e9ccd97ba5251ffcc9 Mon Sep 17 00:00:00 2001
From 42cfda7eaf263248257cef40b88e06b7a0666eb4 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Sat, 17 Mar 2012 09:58:07 +0100
Subject: [PATCH 63/70] MIPS: lantiq: fixes ar9/vr9 clock
Subject: [PATCH 62/73] MIPS: lantiq: fixes ar9/vr9 clock
---
arch/mips/lantiq/clk.h | 4 +++-
@ -9,9 +9,11 @@ Subject: [PATCH 63/70] MIPS: lantiq: fixes ar9/vr9 clock
arch/mips/lantiq/xway/sysctrl.c | 13 ++++++++-----
3 files changed, 35 insertions(+), 11 deletions(-)
diff --git a/arch/mips/lantiq/clk.h b/arch/mips/lantiq/clk.h
index b34e675..010dfa7 100644
--- a/arch/mips/lantiq/clk.h
+++ b/arch/mips/lantiq/clk.h
@@ -56,8 +56,10 @@ extern unsigned long ltq_danube_cpu_hz(v
@@ -56,8 +56,10 @@ extern unsigned long ltq_danube_cpu_hz(void);
extern unsigned long ltq_danube_fpi_hz(void);
extern unsigned long ltq_danube_io_region_clock(void);
@ -23,6 +25,8 @@ Subject: [PATCH 63/70] MIPS: lantiq: fixes ar9/vr9 clock
-extern unsigned long ltq_vr9_io_region_clock(void);
#endif
diff --git a/arch/mips/lantiq/xway/clk.c b/arch/mips/lantiq/xway/clk.c
index 3635c9f..2bafc04 100644
--- a/arch/mips/lantiq/xway/clk.c
+++ b/arch/mips/lantiq/xway/clk.c
@@ -217,6 +217,30 @@ unsigned long ltq_danube_cpu_hz(void)
@ -68,6 +72,8 @@ Subject: [PATCH 63/70] MIPS: lantiq: fixes ar9/vr9 clock
unsigned long ltq_vr9_fpi_bus_clock(int fpi)
{
return ltq_vr9_fpi_hz();
diff --git a/arch/mips/lantiq/xway/sysctrl.c b/arch/mips/lantiq/xway/sysctrl.c
index 9df048c..6771a7e 100644
--- a/arch/mips/lantiq/xway/sysctrl.c
+++ b/arch/mips/lantiq/xway/sysctrl.c
@@ -237,6 +237,8 @@ void __init ltq_soc_init(void)
@ -105,3 +111,6 @@ Subject: [PATCH 63/70] MIPS: lantiq: fixes ar9/vr9 clock
+ ltq_danube_io_region_clock());
}
}
--
1.7.9.1

View File

@ -1,15 +1,17 @@
From 1303ac4fbe98c7132717102223089dc10d0ab4a2 Mon Sep 17 00:00:00 2001
From 08d0c1d1f42f6bc6d446763dafe5338b0963cf58 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Mon, 19 Mar 2012 15:53:37 +0100
Subject: [PATCH 64/70] MIPS: lantiq: fixes danube clock
Subject: [PATCH 63/73] MIPS: lantiq: fixes danube clock
---
arch/mips/lantiq/xway/clk.c | 20 ++++++++++----------
1 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/arch/mips/lantiq/xway/clk.c b/arch/mips/lantiq/xway/clk.c
index 2bafc04..5d850dc 100644
--- a/arch/mips/lantiq/xway/clk.c
+++ b/arch/mips/lantiq/xway/clk.c
@@ -181,7 +181,7 @@ unsigned long ltq_danube_io_region_clock
@@ -181,7 +181,7 @@ unsigned long ltq_danube_io_region_clock(void)
{
unsigned int ret = ltq_get_pll0_fosc();
@ -18,7 +20,7 @@ Subject: [PATCH 64/70] MIPS: lantiq: fixes danube clock
default:
case 0:
return (ret + 1) / 2;
@@ -203,6 +203,15 @@ unsigned long ltq_danube_fpi_bus_clock(i
@@ -203,6 +203,15 @@ unsigned long ltq_danube_fpi_bus_clock(int fpi)
return ret;
}
@ -50,3 +52,6 @@ Subject: [PATCH 64/70] MIPS: lantiq: fixes danube clock
unsigned long ltq_vr9_cpu_hz(void)
{
unsigned int cpu_sel;
--
1.7.9.1

View File

@ -1,12 +1,14 @@
From a840d623b6a70428e8b698f0116fecc38e16e668 Mon Sep 17 00:00:00 2001
From 76d01e1bc369026d9ec47d2c8355871c083134d2 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Tue, 20 Mar 2012 13:05:11 +0100
Subject: [PATCH 65/70] MIPS: adds dsl clocks
Subject: [PATCH 64/73] MIPS: adds dsl clocks
---
arch/mips/lantiq/xway/sysctrl.c | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/arch/mips/lantiq/xway/sysctrl.c b/arch/mips/lantiq/xway/sysctrl.c
index 6771a7e..3672fc6 100644
--- a/arch/mips/lantiq/xway/sysctrl.c
+++ b/arch/mips/lantiq/xway/sysctrl.c
@@ -41,8 +41,9 @@
@ -20,7 +22,7 @@ Subject: [PATCH 65/70] MIPS: adds dsl clocks
#define PMU_EBU BIT(10)
#define PMU_STP BIT(11)
#define PMU_GPT BIT(12)
@@ -147,7 +148,7 @@ static int ltq_pci_ext_enable(struct clk
@@ -147,7 +148,7 @@ static int ltq_pci_ext_enable(struct clk *clk)
static void ltq_pci_ext_disable(struct clk *clk)
{
@ -59,3 +61,6 @@ Subject: [PATCH 65/70] MIPS: adds dsl clocks
+ PMU_PPE_QSB | PMU_AHBS | PMU_DFE);
}
}
--
1.7.9.1

View File

@ -1,15 +1,17 @@
From ff4470f274b61cebaeb1586f2f462ff66b8041cb Mon Sep 17 00:00:00 2001
From 75ecc8a55268df4eee6c97f8236a42c82fde44b2 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Tue, 20 Mar 2012 08:22:11 +0100
Subject: [PATCH 66/70] MIPS: lantiq: dont always register asc0
Subject: [PATCH 65/73] MIPS: lantiq: dont always register asc0
---
arch/mips/lantiq/xway/prom.c | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/arch/mips/lantiq/xway/prom.c b/arch/mips/lantiq/xway/prom.c
index e3dcbbd..f776d5a 100644
--- a/arch/mips/lantiq/xway/prom.c
+++ b/arch/mips/lantiq/xway/prom.c
@@ -101,12 +101,10 @@ void __init ltq_soc_detect(struct ltq_so
@@ -101,12 +101,10 @@ void __init ltq_soc_detect(struct ltq_soc_info *i)
void __init ltq_soc_setup(void)
{
@ -24,3 +26,6 @@ Subject: [PATCH 66/70] MIPS: lantiq: dont always register asc0
ltq_register_gpio();
ltq_register_wdt();
}
--
1.7.9.1

View File

@ -1,12 +1,14 @@
From 845d2430d74cf6e2326da95b9205258170b30c86 Mon Sep 17 00:00:00 2001
From 88ac424363e7d5d0a9301bd163877f8b442cc865 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Tue, 20 Mar 2012 09:44:27 +0100
Subject: [PATCH 67/70] MIPS: lantiq: irqs were not cleared properly on boot
Subject: [PATCH 66/73] MIPS: lantiq: irqs were not cleared properly on boot
---
arch/mips/lantiq/irq.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/mips/lantiq/irq.c b/arch/mips/lantiq/irq.c
index 770a10c..d4e70b4 100644
--- a/arch/mips/lantiq/irq.c
+++ b/arch/mips/lantiq/irq.c
@@ -327,12 +327,12 @@ void __init arch_init_irq(void)
@ -27,3 +29,6 @@ Subject: [PATCH 67/70] MIPS: lantiq: irqs were not cleared properly on boot
mips_cpu_irq_init();
--
1.7.9.1

View File

@ -1,13 +1,15 @@
From 091358d0004ae2d2a28c9132e6976d46cf96fd3e Mon Sep 17 00:00:00 2001
From 5e679bb5e0ba948e5a1aa52ab50b6b60d175348d Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Wed, 21 Mar 2012 14:17:37 +0100
Subject: [PATCH 68/70] MIPS: lantiq: adds bootsel helper
Subject: [PATCH 67/73] MIPS: lantiq: adds bootsel helper
---
.../mips/include/asm/mach-lantiq/xway/lantiq_soc.h | 12 ++++++++++++
arch/mips/lantiq/xway/reset.c | 12 +++++++++++-
2 files changed, 23 insertions(+), 1 deletions(-)
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
index bfdeb16..1ec8f2a 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_soc.h
@@ -144,6 +144,18 @@
@ -29,6 +31,8 @@ Subject: [PATCH 68/70] MIPS: lantiq: adds bootsel helper
/* register access macros for EBU and CGU */
#define ltq_ebu_w32(x, y) ltq_w32((x), ltq_ebu_membase + (y))
#define ltq_ebu_r32(x) ltq_r32(ltq_ebu_membase + (x))
diff --git a/arch/mips/lantiq/xway/reset.c b/arch/mips/lantiq/xway/reset.c
index 8a5dff1..b8f7ffb 100644
--- a/arch/mips/lantiq/xway/reset.c
+++ b/arch/mips/lantiq/xway/reset.c
@@ -27,7 +27,11 @@
@ -57,3 +61,6 @@ Subject: [PATCH 68/70] MIPS: lantiq: adds bootsel helper
void ltq_reset_once(unsigned int module, ulong usec)
{
ltq_rcu_w32(ltq_rcu_r32(RCU_RST_REQ) | module, RCU_RST_REQ);
--
1.7.9.1

View File

@ -1,12 +1,14 @@
From 749d1baf548fda72bb1a74b7653415a63b00e8a0 Mon Sep 17 00:00:00 2001
From a843a038cefffbad99e2fc3e95b0f72e6cd28124 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Fri, 23 Mar 2012 11:28:22 +0100
Subject: [PATCH 69/70] MIPS: lantiq: adds USB_ARCH_HAS_HCD to CONFIG_LANTIQ
Subject: [PATCH 68/73] MIPS: lantiq: adds USB_ARCH_HAS_HCD to CONFIG_LANTIQ
---
arch/mips/Kconfig | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 12ee3df..81b22c1 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -229,6 +229,7 @@ config LANTIQ
@ -17,3 +19,6 @@ Subject: [PATCH 69/70] MIPS: lantiq: adds USB_ARCH_HAS_HCD to CONFIG_LANTIQ
config LASAT
bool "LASAT Networks platforms"
--
1.7.9.1

View File

@ -0,0 +1,25 @@
From 2690917f28c385dd3edf0e2b92dc6b44a1b3dd12 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 5 Apr 2012 21:51:05 +0200
Subject: [PATCH 69/73] MIPS: lantiq: fixes bad PMU_USB0(0) define
---
arch/mips/lantiq/xway/sysctrl.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/mips/lantiq/xway/sysctrl.c b/arch/mips/lantiq/xway/sysctrl.c
index 3672fc6..5807456 100644
--- a/arch/mips/lantiq/xway/sysctrl.c
+++ b/arch/mips/lantiq/xway/sysctrl.c
@@ -40,7 +40,7 @@
#define PMU_USB0_P BIT(0)
#define PMU_PCI BIT(4)
#define PMU_DMA BIT(5)
-#define PMU_USB0 BIT(5)
+#define PMU_USB0 BIT(6)
#define PMU_EPHY BIT(7) /* ase */
#define PMU_SPI BIT(8)
#define PMU_DFE BIT(9)
--
1.7.9.1

View File

@ -0,0 +1,60 @@
From 6c2374c768e0eacba197e242e8793d93846dc762 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Wed, 11 Apr 2012 18:43:50 +0200
Subject: [PATCH 70/73] MIPS: lantiq: fix dwc_otg usb for ase
changed irq number and pmu settings. little bit of fiddling to get the now variable
irq into resources.
Signed-off-by: Conor O'Gorman <i@conorogorman.net>
---
.../mips/include/asm/mach-lantiq/xway/lantiq_irq.h | 1 +
drivers/usb/dwc_otg/dwc_otg_driver.c | 3 +++
drivers/usb/dwc_otg/dwc_otg_ifx.c | 5 ++++-
3 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h
index b7f10e6..d9c892b 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h
@@ -36,6 +36,7 @@
#define LTQ_TIMER6_INT (INT_NUM_IM1_IRL0 + 23)
#define LTQ_USB_INT (INT_NUM_IM1_IRL0 + 22)
+#define LTQ_USB_ASE_INT (INT_NUM_IM0_IRL0 + 31)
#define LTQ_USB_OC_INT (INT_NUM_IM4_IRL0 + 23)
#define MIPS_CPU_TIMER_IRQ 7
diff --git a/drivers/usb/dwc_otg/dwc_otg_driver.c b/drivers/usb/dwc_otg/dwc_otg_driver.c
index 1b0daab..5c64ebb 100644
--- a/drivers/usb/dwc_otg/dwc_otg_driver.c
+++ b/drivers/usb/dwc_otg/dwc_otg_driver.c
@@ -860,6 +860,9 @@ static int __init dwc_otg_init(void)
printk(KERN_INFO "%s: version %s\n", dwc_driver_name, DWC_DRIVER_VERSION);
+ if (ltq_is_ase())
+ dwc_irq = LTQ_USB_ASE_INT;
+
// ifxmips setup
retval = ifx_usb_hc_init(dwc_iomem_base, dwc_irq);
if (retval < 0)
diff --git a/drivers/usb/dwc_otg/dwc_otg_ifx.c b/drivers/usb/dwc_otg/dwc_otg_ifx.c
index 0a4c209..e45da85 100644
--- a/drivers/usb/dwc_otg/dwc_otg_ifx.c
+++ b/drivers/usb/dwc_otg/dwc_otg_ifx.c
@@ -61,7 +61,10 @@ void dwc_otg_power_on (void)
// clear power
writel(readl(DANUBE_PMU_PWDCR) | 0x41, DANUBE_PMU_PWDCR);
// set clock gating
- writel(readl(DANUBE_CGU_IFCCR) | 0x30, DANUBE_CGU_IFCCR);
+ if (ltq_is_ase())
+ writel(readl(DANUBE_CGU_IFCCR) & ~0x20, DANUBE_CGU_IFCCR);
+ else
+ writel(readl(DANUBE_CGU_IFCCR) | 0x30, DANUBE_CGU_IFCCR);
// set power
writel(readl(DANUBE_PMU_PWDCR) & ~0x1, DANUBE_PMU_PWDCR);
writel(readl(DANUBE_PMU_PWDCR) & ~0x40, DANUBE_PMU_PWDCR);
--
1.7.9.1

View File

@ -0,0 +1,88 @@
From d8e3038c520ea6c7619d3f5339c47ca0c2aa7fe3 Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Wed, 11 Apr 2012 18:47:53 +0200
Subject: [PATCH 71/73] MIPS: lantiq: stp, fix for ase, add get, clock
disabled
Lantiq serial-to-parallel hardware gpio module
Added gpio pins as used for amazon se (ase)
Added get to enable reporting of gpio status
Changed to use software update, as hw clock was not running on ase. Clock
really only needed if hw flashing was implemented.
Signed-off-by: Conor O'Gorman <i@conorogorman.net>
---
arch/mips/lantiq/xway/gpio_stp.c | 22 +++++++++++++---------
1 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/arch/mips/lantiq/xway/gpio_stp.c b/arch/mips/lantiq/xway/gpio_stp.c
index 9610c10..791beeb 100644
--- a/arch/mips/lantiq/xway/gpio_stp.c
+++ b/arch/mips/lantiq/xway/gpio_stp.c
@@ -27,6 +27,7 @@
#define LTQ_STP_AR 0x10
#define LTQ_STP_CON_SWU (1 << 31)
+#define LTQ_STP_SWU_MASK (1 << 31)
#define LTQ_STP_2HZ 0
#define LTQ_STP_4HZ (1 << 23)
#define LTQ_STP_8HZ (2 << 23)
@@ -60,6 +61,12 @@ static void ltq_stp_set(struct gpio_chip *chip, unsigned offset, int value)
else
ltq_stp_shadow &= ~(1 << offset);
ltq_stp_w32(ltq_stp_shadow, LTQ_STP_CPU0);
+ ltq_stp_w32_mask(LTQ_STP_SWU_MASK, LTQ_STP_CON_SWU, LTQ_STP_CON0);
+}
+
+static int ltq_stp_get(struct gpio_chip *chip, unsigned offset)
+{
+ return !!(ltq_stp_r32(LTQ_STP_CPU0) & (1<<offset));
}
static int ltq_stp_direction_output(struct gpio_chip *chip, unsigned offset,
@@ -74,6 +81,7 @@ static struct gpio_chip ltq_stp_chip = {
.label = "ltq_stp",
.direction_output = ltq_stp_direction_output,
.set = ltq_stp_set,
+ .get = ltq_stp_get,
.base = 200,
.ngpio = 24,
.owner = THIS_MODULE,
@@ -97,12 +105,6 @@ static int ltq_stp_hw_init(struct device *dev)
ltq_stp_w32_mask(0, LTQ_STP_GROUP0 | LTQ_STP_GROUP1 | LTQ_STP_GROUP2,
LTQ_STP_CON1);
- /* stp are update periodically by the FPI bus */
- ltq_stp_w32_mask(LTQ_STP_UPD_MASK, LTQ_STP_UPD_FPI, LTQ_STP_CON1);
-
- /* set stp update speed */
- ltq_stp_w32_mask(LTQ_STP_SPEED_MASK, LTQ_STP_8HZ, LTQ_STP_CON1);
-
/* tell the hardware that pin (led) 0 and 1 are controlled
* by the dsl arc
*/
@@ -118,6 +120,7 @@ static int __devinit ltq_stp_probe(struct platform_device *pdev)
{
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
int ret = 0;
+ int pin;
if (!res)
return -ENOENT;
@@ -135,9 +138,10 @@ static int __devinit ltq_stp_probe(struct platform_device *pdev)
}
/* the 3 pins used to control the external stp */
- if (ltq_gpio_request(&pdev->dev, 4, 2, 1, "stp-st") ||
- ltq_gpio_request(&pdev->dev, 5, 2, 1, "stp-d") ||
- ltq_gpio_request(&pdev->dev, 6, 2, 1, "stp-sh")) {
+ pin = ltq_is_ase() ? 1 : 4;
+ if (ltq_gpio_request(&pdev->dev, pin, 2, 1, "stp-st") ||
+ ltq_gpio_request(&pdev->dev, pin+1, 2, 1, "stp-d") ||
+ ltq_gpio_request(&pdev->dev, pin+2, 2, 1, "stp-sh")) {
dev_err(&pdev->dev, "failed to request needed gpios\n");
return -EBUSY;
}
--
1.7.9.1

View File

@ -0,0 +1,197 @@
From d1cd860adbd87c42c90db1c5658cf10ed1dbdd3e Mon Sep 17 00:00:00 2001
From: John Crispin <blogic@openwrt.org>
Date: Thu, 12 Apr 2012 13:25:42 +0200
Subject: [PATCH 72/73] MIPS: lantiq: fix spi for ase, update for clkdev and
platform driver
irqs, gpios, chipselects
updated to use module_platform_driver()
clkdev is a bit hacky, using ltq_spi.0, as specifying no device numbering led to
the mtd driver not hooking up to an spi flash.
Signed-off-by: Conor O'Gorman <i@conorogorman.net>
---
.../mips/include/asm/mach-lantiq/xway/lantiq_irq.h | 4 ++
arch/mips/lantiq/xway/sysctrl.c | 2 +-
drivers/spi/spi-xway.c | 58 ++++++++++----------
3 files changed, 35 insertions(+), 29 deletions(-)
diff --git a/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h b/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h
index d9c892b..d86acdd 100644
--- a/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h
+++ b/arch/mips/include/asm/mach-lantiq/xway/lantiq_irq.h
@@ -30,6 +30,10 @@
#define LTQ_SSC_TIR_AR9 (INT_NUM_IM0_IRL0 + 14)
#define LTQ_SSC_RIR_AR9 (INT_NUM_IM0_IRL0 + 15)
#define LTQ_SSC_EIR (INT_NUM_IM0_IRL0 + 16)
+#define LTQ_SSC_RIR_ASE (INT_NUM_IM0_IRL0 + 16)
+#define LTQ_SSC_TIR_ASE (INT_NUM_IM0_IRL0 + 17)
+#define LTQ_SSC_EIR_ASE (INT_NUM_IM0_IRL0 + 18)
+#define LTQ_SSC_FIR_ASE (INT_NUM_IM0_IRL0 + 19)
#define LTQ_MEI_DYING_GASP_INT (INT_NUM_IM1_IRL0 + 21)
#define LTQ_MEI_INT (INT_NUM_IM1_IRL0 + 23)
diff --git a/arch/mips/lantiq/xway/sysctrl.c b/arch/mips/lantiq/xway/sysctrl.c
index 5807456..de4ce8f 100644
--- a/arch/mips/lantiq/xway/sysctrl.c
+++ b/arch/mips/lantiq/xway/sysctrl.c
@@ -233,7 +233,7 @@ void __init ltq_soc_init(void)
clkdev_add_pmu("ltq_fpi", NULL, 0, PMU_FPI);
clkdev_add_pmu("ltq_dma", NULL, 0, PMU_DMA);
clkdev_add_pmu("ltq_stp", NULL, 0, PMU_STP);
- clkdev_add_pmu("ltq_spi", NULL, 0, PMU_SPI);
+ clkdev_add_pmu("ltq_spi.0", NULL, 0, PMU_SPI);
clkdev_add_pmu("ltq_gptu", NULL, 0, PMU_GPT);
clkdev_add_pmu("ltq_ebu", NULL, 0, PMU_EBU);
if (!ltq_is_vr9())
diff --git a/drivers/spi/spi-xway.c b/drivers/spi/spi-xway.c
index 016a6d0..be5c25b 100644
--- a/drivers/spi/spi-xway.c
+++ b/drivers/spi/spi-xway.c
@@ -143,9 +143,9 @@
#define LTQ_SPI_IRNEN_ALL 0xF
/* Hard-wired GPIOs used by SPI controller */
-#define LTQ_SPI_GPIO_DI 16
-#define LTQ_SPI_GPIO_DO 17
-#define LTQ_SPI_GPIO_CLK 18
+#define LTQ_SPI_GPIO_DI (ltq_is_ase()? 8 : 16)
+#define LTQ_SPI_GPIO_DO (ltq_is_ase()? 9 : 17)
+#define LTQ_SPI_GPIO_CLK (ltq_is_ase()? 10 : 18)
struct ltq_spi {
struct spi_bitbang bitbang;
@@ -229,7 +229,7 @@ static void ltq_spi_hw_enable(struct ltq_spi *hw)
u32 clc;
/* Power-up mdule */
- clk_enable(hw->spiclk);
+ clk_enable(hw->spiclk);
/*
* Set clock divider for run mode to 1 to
@@ -245,7 +245,7 @@ static void ltq_spi_hw_disable(struct ltq_spi *hw)
ltq_spi_reg_write(hw, LTQ_SPI_CLC_DISS, LTQ_SPI_CLC);
/* Power-down mdule */
- clk_disable(hw->spiclk);
+ clk_disable(hw->spiclk);
}
static void ltq_spi_reset_fifos(struct ltq_spi *hw)
@@ -284,7 +284,7 @@ static inline int ltq_spi_wait_ready(struct ltq_spi *hw)
cond_resched();
} while (!time_after_eq(jiffies, timeout));
- dev_err(hw->dev, "SPI wait ready timed out\n");
+ dev_err(hw->dev, "SPI wait ready timed out stat: %x\n", stat);
return -ETIMEDOUT;
}
@@ -556,6 +556,12 @@ static const struct ltq_spi_cs_gpio_map ltq_spi_cs[] = {
{ 11, 3 },
};
+static const struct ltq_spi_cs_gpio_map ltq_spi_cs_ase[] = {
+ { 7, 2 },
+ { 15, 1 },
+ { 14, 1 },
+};
+
static int ltq_spi_setup(struct spi_device *spi)
{
struct ltq_spi *hw = ltq_spi_to_hw(spi);
@@ -600,8 +606,10 @@ static int ltq_spi_setup(struct spi_device *spi)
cstate->cs_activate = ltq_spi_gpio_cs_activate;
cstate->cs_deactivate = ltq_spi_gpio_cs_deactivate;
} else {
- ret = ltq_gpio_request(&spi->dev, ltq_spi_cs[spi->chip_select].gpio,
- ltq_spi_cs[spi->chip_select].mux,
+ struct ltq_spi_cs_gpio_map *cs_map =
+ ltq_is_ase() ? ltq_spi_cs_ase : ltq_spi_cs;
+ ret = ltq_gpio_request(&spi->dev, cs_map[spi->chip_select].gpio,
+ cs_map[spi->chip_select].mux,
1, "spi-cs");
if (ret)
return -EBUSY;
@@ -633,7 +641,8 @@ static void ltq_spi_cleanup(struct spi_device *spi)
if (cdata && cdata->gpio)
gpio = cdata->gpio;
else
- gpio = ltq_spi_cs[spi->chip_select].gpio;
+ gpio = ltq_is_ase() ? ltq_spi_cs_ase[spi->chip_select].gpio :
+ ltq_spi_cs[spi->chip_select].gpio;
gpio_free(gpio);
kfree(cstate);
@@ -868,7 +877,8 @@ static const struct ltq_spi_irq_map ltq_spi_irqs[] = {
{ "spi_err", ltq_spi_err_irq },
};
-static int __init ltq_spi_probe(struct platform_device *pdev)
+static int __devinit
+ltq_spi_probe(struct platform_device *pdev)
{
struct spi_master *master;
struct resource *r;
@@ -910,14 +920,14 @@ static int __init ltq_spi_probe(struct platform_device *pdev)
hw->fpiclk = clk_get_fpi();
if (IS_ERR(hw->fpiclk)) {
- dev_err(&pdev->dev, "clk_get\n");
+ dev_err(&pdev->dev, "fpi clk\n");
ret = PTR_ERR(hw->fpiclk);
goto err_master;
}
hw->spiclk = clk_get(&pdev->dev, NULL);
if (IS_ERR(hw->spiclk)) {
- dev_err(&pdev->dev, "clk_get\n");
+ dev_err(&pdev->dev, "spi clk\n");
ret = PTR_ERR(hw->spiclk);
goto err_master;
}
@@ -1014,7 +1024,8 @@ err:
return ret;
}
-static int __exit ltq_spi_remove(struct platform_device *pdev)
+static int __devexit
+ltq_spi_remove(struct platform_device *pdev)
{
struct ltq_spi *hw = platform_get_drvdata(pdev);
int ret, i;
@@ -1043,24 +1054,15 @@ static int __exit ltq_spi_remove(struct platform_device *pdev)
}
static struct platform_driver ltq_spi_driver = {
+ .probe = ltq_spi_probe,
+ .remove = __devexit_p(ltq_spi_remove),
.driver = {
- .name = "ltq_spi",
- .owner = THIS_MODULE,
- },
- .remove = __exit_p(ltq_spi_remove),
+ .name = "ltq_spi",
+ .owner = THIS_MODULE,
+ },
};
-static int __init ltq_spi_init(void)
-{
- return platform_driver_probe(&ltq_spi_driver, ltq_spi_probe);
-}
-module_init(ltq_spi_init);
-
-static void __exit ltq_spi_exit(void)
-{
- platform_driver_unregister(&ltq_spi_driver);
-}
-module_exit(ltq_spi_exit);
+module_platform_driver(ltq_spi_driver);
MODULE_DESCRIPTION("Lantiq SoC SPI controller driver");
MODULE_AUTHOR("Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>");
--
1.7.9.1

View File

@ -183,6 +183,15 @@
/*
* This function, given a master MTD object and a partition table, creates
* and registers slave MTD objects which are bound to the master according to
@@ -890,7 +1053,7 @@ int add_mtd_partitions(struct mtd_info *
struct mtd_part *slave;
uint64_t cur_offset = 0;
int i;
-#ifdef CONFIG_MTD_ROOTFS_SPLIT
+#if defined(CONFIG_MTD_ROOTFS_SPLIT) || defined(CONFIG_MTD_UIMAGE_SPLIT)
int ret;
#endif
@@ -907,6 +1070,17 @@ int add_mtd_partitions(struct mtd_info *
add_mtd_device(&slave->mtd);

View File

@ -59,7 +59,7 @@
#include <asm/bootinfo.h>
#include <asm/irq.h>
@@ -119,3 +120,84 @@ ltq_register_vrx200(struct ltq_eth_data
@@ -119,3 +120,97 @@ ltq_register_vrx200(struct ltq_eth_data
ltq_vrx200.dev.platform_data = eth;
platform_device_register(&ltq_vrx200);
}
@ -129,8 +129,19 @@
+ IRQ_RES(spi_err, LTQ_SSC_EIR),
+};
+
+static struct resource ltq_spi_resources_ase[] = {
+ {
+ .start = LTQ_SSC_BASE_ADDR,
+ .end = LTQ_SSC_BASE_ADDR + LTQ_SSC_SIZE - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ IRQ_RES(spi_tx, LTQ_SSC_TIR_ASE),
+ IRQ_RES(spi_rx, LTQ_SSC_RIR_ASE),
+ IRQ_RES(spi_err, LTQ_SSC_EIR_ASE),
+};
+
+static struct platform_device ltq_spi = {
+ .name = "ltq-spi",
+ .name = "ltq_spi",
+ .resource = ltq_spi_resources,
+ .num_resources = ARRAY_SIZE(ltq_spi_resources),
+};
@ -138,8 +149,10 @@
+void __init ltq_register_spi(struct ltq_spi_platform_data *pdata,
+ struct spi_board_info const *info, unsigned n)
+{
+ if(ltq_is_ar9())
+ if (ltq_is_ar9())
+ ltq_spi.resource = ltq_spi_resources_ar9;
+ else if (ltq_is_ase())
+ ltq_spi.resource = ltq_spi_resources_ase;
+ spi_register_board_info(info, n);
+ ltq_spi.dev.platform_data = pdata;
+ platform_device_register(&ltq_spi);