[lantiq]
* rebase 3.0 patches * fold some fixes into existing patches git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28308 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
573a49afbe
commit
1489979632
|
@ -1,6 +1,6 @@
|
||||||
--- a/arch/mips/lantiq/xway/mach-easy50601.c
|
--- a/arch/mips/lantiq/xway/mach-easy50601.c
|
||||||
+++ b/arch/mips/lantiq/xway/mach-easy50601.c
|
+++ b/arch/mips/lantiq/xway/mach-easy50601.c
|
||||||
@@ -32,12 +32,7 @@
|
@@ -32,12 +32,7 @@ static struct mtd_partition easy50601_pa
|
||||||
{
|
{
|
||||||
.name = "linux",
|
.name = "linux",
|
||||||
.offset = 0x20000,
|
.offset = 0x20000,
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
--- a/arch/mips/lantiq/xway/mach-easy50712.c
|
--- a/arch/mips/lantiq/xway/mach-easy50712.c
|
||||||
+++ b/arch/mips/lantiq/xway/mach-easy50712.c
|
+++ b/arch/mips/lantiq/xway/mach-easy50712.c
|
||||||
@@ -34,12 +34,7 @@
|
@@ -34,12 +34,7 @@ static struct mtd_partition easy50712_pa
|
||||||
{
|
{
|
||||||
.name = "linux",
|
.name = "linux",
|
||||||
.offset = 0x20000,
|
.offset = 0x20000,
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
--- a/arch/mips/lantiq/clk.c
|
--- a/arch/mips/lantiq/clk.c
|
||||||
+++ b/arch/mips/lantiq/clk.c
|
+++ b/arch/mips/lantiq/clk.c
|
||||||
@@ -100,6 +100,17 @@
|
@@ -100,6 +100,17 @@ void clk_put(struct clk *clk)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(clk_put);
|
EXPORT_SYMBOL(clk_put);
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
|
|
||||||
#include <asm/bootinfo.h>
|
#include <asm/bootinfo.h>
|
||||||
#include <asm/irq_cpu.h>
|
#include <asm/irq_cpu.h>
|
||||||
@@ -105,6 +106,7 @@
|
@@ -99,6 +100,7 @@ void ltq_mask_and_ack_irq(struct irq_dat
|
||||||
ltq_icu_w32(ltq_icu_r32(ier) & ~(1 << irq_nr), ier);
|
ltq_icu_w32(ltq_icu_r32(ier) & ~(1 << irq_nr), ier);
|
||||||
ltq_icu_w32((1 << irq_nr), isr);
|
ltq_icu_w32((1 << irq_nr), isr);
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
void __init plat_mem_setup(void)
|
void __init plat_mem_setup(void)
|
||||||
{
|
{
|
||||||
/* assume 16M as default incase uboot fails to pass proper ramsize */
|
/* assume 16M as default incase uboot fails to pass proper ramsize */
|
||||||
@@ -40,8 +42,8 @@
|
@@ -40,8 +42,8 @@ void __init plat_mem_setup(void)
|
||||||
}
|
}
|
||||||
envp++;
|
envp++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,7 +72,7 @@
|
||||||
+EXPORT_SYMBOL(ltq_get_fpi_hz);
|
+EXPORT_SYMBOL(ltq_get_fpi_hz);
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/mips/lantiq/falcon/devices.c
|
+++ b/arch/mips/lantiq/falcon/devices.c
|
||||||
@@ -0,0 +1,254 @@
|
@@ -0,0 +1,258 @@
|
||||||
+#include <linux/init.h>
|
+#include <linux/init.h>
|
||||||
+#include <linux/module.h>
|
+#include <linux/module.h>
|
||||||
+#include <linux/types.h>
|
+#include <linux/types.h>
|
||||||
|
@ -109,6 +109,10 @@
|
||||||
+unsigned char ltq_ethaddr[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
|
+unsigned char ltq_ethaddr[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
|
||||||
+EXPORT_SYMBOL(ltq_ethaddr);
|
+EXPORT_SYMBOL(ltq_ethaddr);
|
||||||
+
|
+
|
||||||
|
+/* create dummy ebu spinlock for drivers shared with XWAY targets */
|
||||||
|
+DEFINE_SPINLOCK(ebu_lock);
|
||||||
|
+EXPORT_SYMBOL_GPL(ebu_lock);
|
||||||
|
+
|
||||||
+static int __init
|
+static int __init
|
||||||
+falcon_set_ethaddr(char *str)
|
+falcon_set_ethaddr(char *str)
|
||||||
+{
|
+{
|
||||||
|
@ -793,7 +797,7 @@
|
||||||
+EXPORT_SYMBOL(sys_gpe_hw_is_activated);
|
+EXPORT_SYMBOL(sys_gpe_hw_is_activated);
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/mips/lantiq/falcon/gpio.c
|
+++ b/arch/mips/lantiq/falcon/gpio.c
|
||||||
@@ -0,0 +1,463 @@
|
@@ -0,0 +1,505 @@
|
||||||
+/*
|
+/*
|
||||||
+ * This program is free software; you can redistribute it and/or modify
|
+ * This program is free software; you can redistribute it and/or modify
|
||||||
+ * it under the terms of the GNU General Public License as published by
|
+ * it under the terms of the GNU General Public License as published by
|
||||||
|
@ -842,6 +846,8 @@
|
||||||
+#define gpio_w32(val, reg) __raw_writel(val, reg)
|
+#define gpio_w32(val, reg) __raw_writel(val, reg)
|
||||||
+#define gpio_w32_mask(clear, set, reg) gpio_w32((gpio_r32(reg) & ~(clear)) | (set), reg)
|
+#define gpio_w32_mask(clear, set, reg) gpio_w32((gpio_r32(reg) & ~(clear)) | (set), reg)
|
||||||
+
|
+
|
||||||
|
+#define MAX_PORTS 5
|
||||||
|
+#define PINS_PER_PORT 32
|
||||||
+
|
+
|
||||||
+/** register structure for padctrl
|
+/** register structure for padctrl
|
||||||
+ (mainly needed for mux control) */
|
+ (mainly needed for mux control) */
|
||||||
|
@ -926,6 +932,8 @@
|
||||||
+ unsigned int chained_irq;
|
+ unsigned int chained_irq;
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
|
+static struct falcon_gpio_port ltq_gpio_port[MAX_PORTS];
|
||||||
|
+
|
||||||
+static int gpio_exported = 0;
|
+static int gpio_exported = 0;
|
||||||
+static int __init gpio_export_setup(char *str)
|
+static int __init gpio_export_setup(char *str)
|
||||||
+{
|
+{
|
||||||
|
@ -946,13 +954,6 @@
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static int falcon_gpio_direction_output(struct gpio_chip *chip, unsigned int offset, int value)
|
|
||||||
+{
|
|
||||||
+ struct falcon_gpio_port *gpio_port = to_falcon_gpio_port(chip);
|
|
||||||
+ gpio_w32(1<<offset, &gpio_port->port->dirset);
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void falcon_gpio_set(struct gpio_chip *chip, unsigned int offset, int value)
|
+static void falcon_gpio_set(struct gpio_chip *chip, unsigned int offset, int value)
|
||||||
+{
|
+{
|
||||||
+ struct falcon_gpio_port *gpio_port = to_falcon_gpio_port(chip);
|
+ struct falcon_gpio_port *gpio_port = to_falcon_gpio_port(chip);
|
||||||
|
@ -962,6 +963,14 @@
|
||||||
+ gpio_w32(1<<offset, &gpio_port->port->outclr);
|
+ gpio_w32(1<<offset, &gpio_port->port->outclr);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
+static int falcon_gpio_direction_output(struct gpio_chip *chip, unsigned int offset, int value)
|
||||||
|
+{
|
||||||
|
+ struct falcon_gpio_port *gpio_port = to_falcon_gpio_port(chip);
|
||||||
|
+ falcon_gpio_set(chip, offset, value);
|
||||||
|
+ gpio_w32(1<<offset, &gpio_port->port->dirset);
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
+static int falcon_gpio_get(struct gpio_chip *chip, unsigned int offset)
|
+static int falcon_gpio_get(struct gpio_chip *chip, unsigned int offset)
|
||||||
+{
|
+{
|
||||||
+ struct falcon_gpio_port *gpio_port = to_falcon_gpio_port(chip);
|
+ struct falcon_gpio_port *gpio_port = to_falcon_gpio_port(chip);
|
||||||
|
@ -1038,6 +1047,46 @@
|
||||||
+ gpio_w32(1<<offset, &gpio_port->port->irncr);
|
+ gpio_w32(1<<offset, &gpio_port->port->irncr);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
+int ltq_gpio_mux_set(unsigned int pin, unsigned int mux)
|
||||||
|
+{
|
||||||
|
+ int port = pin / 100;
|
||||||
|
+ int offset = pin % 100;
|
||||||
|
+ struct falcon_gpio_port *gpio_port;
|
||||||
|
+
|
||||||
|
+ if (offset >= PINS_PER_PORT || port >= MAX_PORTS)
|
||||||
|
+ return -EINVAL;
|
||||||
|
+
|
||||||
|
+ gpio_port = <q_gpio_port[port];
|
||||||
|
+ gpio_w32(mux, &gpio_port->pad->muxc[offset]);
|
||||||
|
+
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+EXPORT_SYMBOL(ltq_gpio_mux_set);
|
||||||
|
+
|
||||||
|
+int ltq_gpio_request(unsigned int pin, unsigned int alt0,
|
||||||
|
+ unsigned int alt1, unsigned int dir, const char *name)
|
||||||
|
+{
|
||||||
|
+ int port = pin / 100;
|
||||||
|
+ int offset = pin % 100;
|
||||||
|
+ unsigned int mux = (alt0 & 1) + (alt1 & 1) * 2;
|
||||||
|
+
|
||||||
|
+ if (offset >= PINS_PER_PORT || port >= MAX_PORTS)
|
||||||
|
+ return -EINVAL;
|
||||||
|
+
|
||||||
|
+ if (gpio_request(pin, name)) {
|
||||||
|
+ pr_err("failed to setup lantiq gpio: %s\n", name);
|
||||||
|
+ return -EBUSY;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (dir)
|
||||||
|
+ gpio_direction_output(pin, 1);
|
||||||
|
+ else
|
||||||
|
+ gpio_direction_input(pin);
|
||||||
|
+
|
||||||
|
+ return ltq_gpio_mux_set(pin, mux);
|
||||||
|
+}
|
||||||
|
+EXPORT_SYMBOL(ltq_gpio_request);
|
||||||
|
+
|
||||||
+static struct irq_chip falcon_gpio_irq_chip;
|
+static struct irq_chip falcon_gpio_irq_chip;
|
||||||
+static int falcon_gpio_irq_type(struct irq_data *d, unsigned int type)
|
+static int falcon_gpio_irq_type(struct irq_data *d, unsigned int type)
|
||||||
+{
|
+{
|
||||||
|
@ -1115,16 +1164,16 @@
|
||||||
+ struct resource *gpiores, *padres;
|
+ struct resource *gpiores, *padres;
|
||||||
+ int irq;
|
+ int irq;
|
||||||
+
|
+
|
||||||
|
+ if (pdev->id >= MAX_PORTS)
|
||||||
|
+ return -ENODEV;
|
||||||
|
+
|
||||||
+ gpiores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
+ gpiores = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||||
+ padres = platform_get_resource(pdev, IORESOURCE_MEM, 1);
|
+ padres = platform_get_resource(pdev, IORESOURCE_MEM, 1);
|
||||||
+ irq = platform_get_irq(pdev, 0);
|
+ irq = platform_get_irq(pdev, 0);
|
||||||
+ if (!gpiores || !padres)
|
+ if (!gpiores || !padres)
|
||||||
+ return -ENODEV;
|
+ return -ENODEV;
|
||||||
+
|
+
|
||||||
+ gpio_port = kzalloc(sizeof(*gpio_port), GFP_KERNEL);
|
+ gpio_port = <q_gpio_port[pdev->id];
|
||||||
+ if (gpio_port == NULL)
|
|
||||||
+ return -ENOMEM;
|
|
||||||
+
|
|
||||||
+ gpio_port->gpio_chip.label = "falcon-gpio";
|
+ gpio_port->gpio_chip.label = "falcon-gpio";
|
||||||
+ gpio_port->gpio_chip.direction_input = falcon_gpio_direction_input;
|
+ gpio_port->gpio_chip.direction_input = falcon_gpio_direction_input;
|
||||||
+ gpio_port->gpio_chip.direction_output = falcon_gpio_direction_output;
|
+ gpio_port->gpio_chip.direction_output = falcon_gpio_direction_output;
|
||||||
|
@ -1200,7 +1249,6 @@
|
||||||
+ iounmap(gpio_port->port);
|
+ iounmap(gpio_port->port);
|
||||||
+ if (gpio_port->pad)
|
+ if (gpio_port->pad)
|
||||||
+ iounmap(gpio_port->pad);
|
+ iounmap(gpio_port->pad);
|
||||||
+ kfree(gpio_port);
|
|
||||||
+ return ret;
|
+ return ret;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
@ -1218,8 +1266,6 @@
|
||||||
+ iounmap(gpio_port->port);
|
+ iounmap(gpio_port->port);
|
||||||
+ if (gpio_port->pad)
|
+ if (gpio_port->pad)
|
||||||
+ iounmap(gpio_port->pad);
|
+ iounmap(gpio_port->pad);
|
||||||
+ if (ret == 0)
|
|
||||||
+ kfree(gpio_port);
|
|
||||||
+
|
+
|
||||||
+ return ret;
|
+ return ret;
|
||||||
+}
|
+}
|
||||||
|
@ -1278,7 +1324,7 @@
|
||||||
+#endif
|
+#endif
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/mips/lantiq/falcon/reset.c
|
+++ b/arch/mips/lantiq/falcon/reset.c
|
||||||
@@ -0,0 +1,80 @@
|
@@ -0,0 +1,95 @@
|
||||||
+/*
|
+/*
|
||||||
+ * This program is free software; you can redistribute it and/or modify
|
+ * This program is free software; you can redistribute it and/or modify
|
||||||
+ * it under the terms of the GNU General Public License as published by
|
+ * it under the terms of the GNU General Public License as published by
|
||||||
|
@ -1305,6 +1351,22 @@
|
||||||
+#define WDT_PW2 0x00DC0000
|
+#define WDT_PW2 0x00DC0000
|
||||||
+#define WDT_REG_BASE (KSEG1 | 0x1F8803F0)
|
+#define WDT_REG_BASE (KSEG1 | 0x1F8803F0)
|
||||||
+
|
+
|
||||||
|
+struct gpon_reg_boot {
|
||||||
|
+ /* bootrom related virtual registers */
|
||||||
|
+ unsigned int rvec;
|
||||||
|
+ unsigned int nvec;
|
||||||
|
+ unsigned int evec;
|
||||||
|
+ unsigned int cp0_status;
|
||||||
|
+ unsigned int cp0_epc;
|
||||||
|
+ unsigned int cp0_eepc;
|
||||||
|
+ unsigned int size;
|
||||||
|
+ unsigned int cfg_stat;
|
||||||
|
+ /* additional virtual registers */
|
||||||
|
+ unsigned int magic0; /* magic for valid reboot */
|
||||||
|
+ unsigned int magic1; /* -"- */
|
||||||
|
+ unsigned int bcount; /* reboot counter, used by u-boot */
|
||||||
|
+} * const pBOOT = (struct gpon_reg_boot *)GPON_SBS0RAM_BASE;
|
||||||
|
+
|
||||||
+/* This function is used by the watchdog driver */
|
+/* This function is used by the watchdog driver */
|
||||||
+int ltq_reset_cause(void)
|
+int ltq_reset_cause(void)
|
||||||
+{
|
+{
|
||||||
|
@ -1317,11 +1379,11 @@
|
||||||
+{
|
+{
|
||||||
+ printk(KERN_NOTICE "System restart\n");
|
+ printk(KERN_NOTICE "System restart\n");
|
||||||
+ local_irq_disable();
|
+ local_irq_disable();
|
||||||
+ ltq_w32(0, (void*)0xBF200000); /* reset Bootreg RVEC */
|
+ /* write magic to signal a valid restart */
|
||||||
+#if 0
|
+ ltq_w32(0x4C545100, &pBOOT->magic0); /* 'LTQ\0' */
|
||||||
+ ltq_w32(RBT_CPU_TRIG, &pSYS1->rbt);
|
+ ltq_w32(0x0051544C, &pBOOT->magic1); /* '\0QTL' */
|
||||||
+#else
|
+ ltq_w32(0, &pBOOT->rvec); /* reset Bootreg RVEC */
|
||||||
+ /* use workaround via watchdog timer */
|
+ /* reset via watchdog timer, to ensure reset of all hardware components */
|
||||||
+ ltq_w32(WDT_PW1, (void*)WDT_REG_BASE);
|
+ ltq_w32(WDT_PW1, (void*)WDT_REG_BASE);
|
||||||
+ ltq_w32(WDT_PW2 |
|
+ ltq_w32(WDT_PW2 |
|
||||||
+ (0x3 << 26) | /* PWL */
|
+ (0x3 << 26) | /* PWL */
|
||||||
|
@ -1329,7 +1391,6 @@
|
||||||
+ (0x1 << 31) | /* enable */
|
+ (0x1 << 31) | /* enable */
|
||||||
+ (1), /* reload */
|
+ (1), /* reload */
|
||||||
+ (void*)WDT_REG_BASE);
|
+ (void*)WDT_REG_BASE);
|
||||||
+#endif
|
|
||||||
+ for(;;);
|
+ for(;;);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
@ -1778,7 +1839,7 @@
|
||||||
+#endif
|
+#endif
|
||||||
--- a/arch/mips/lantiq/Kconfig
|
--- a/arch/mips/lantiq/Kconfig
|
||||||
+++ b/arch/mips/lantiq/Kconfig
|
+++ b/arch/mips/lantiq/Kconfig
|
||||||
@@ -16,8 +16,12 @@
|
@@ -16,8 +16,12 @@ config SOC_XWAY
|
||||||
bool "XWAY"
|
bool "XWAY"
|
||||||
select SOC_TYPE_XWAY
|
select SOC_TYPE_XWAY
|
||||||
select HW_HAS_PCI
|
select HW_HAS_PCI
|
||||||
|
@ -1793,21 +1854,21 @@
|
||||||
endif
|
endif
|
||||||
--- a/arch/mips/lantiq/Makefile
|
--- a/arch/mips/lantiq/Makefile
|
||||||
+++ b/arch/mips/lantiq/Makefile
|
+++ b/arch/mips/lantiq/Makefile
|
||||||
@@ -9,3 +9,4 @@
|
@@ -9,3 +9,4 @@ obj-y := irq.o setup.o clk.o prom.o devi
|
||||||
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
|
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
|
||||||
|
|
||||||
obj-$(CONFIG_SOC_TYPE_XWAY) += xway/
|
obj-$(CONFIG_SOC_TYPE_XWAY) += xway/
|
||||||
+obj-$(CONFIG_SOC_FALCON) += falcon/
|
+obj-$(CONFIG_SOC_FALCON) += falcon/
|
||||||
--- a/arch/mips/lantiq/Platform
|
--- a/arch/mips/lantiq/Platform
|
||||||
+++ b/arch/mips/lantiq/Platform
|
+++ b/arch/mips/lantiq/Platform
|
||||||
@@ -6,3 +6,4 @@
|
@@ -6,3 +6,4 @@ platform-$(CONFIG_LANTIQ) += lantiq/
|
||||||
cflags-$(CONFIG_LANTIQ) += -I$(srctree)/arch/mips/include/asm/mach-lantiq
|
cflags-$(CONFIG_LANTIQ) += -I$(srctree)/arch/mips/include/asm/mach-lantiq
|
||||||
load-$(CONFIG_LANTIQ) = 0xffffffff80002000
|
load-$(CONFIG_LANTIQ) = 0xffffffff80002000
|
||||||
cflags-$(CONFIG_SOC_TYPE_XWAY) += -I$(srctree)/arch/mips/include/asm/mach-lantiq/xway
|
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
|
+cflags-$(CONFIG_SOC_FALCON) += -I$(srctree)/arch/mips/include/asm/mach-lantiq/falcon
|
||||||
--- a/arch/mips/lantiq/machtypes.h
|
--- a/arch/mips/lantiq/machtypes.h
|
||||||
+++ b/arch/mips/lantiq/machtypes.h
|
+++ b/arch/mips/lantiq/machtypes.h
|
||||||
@@ -15,6 +15,12 @@
|
@@ -15,6 +15,12 @@ enum lantiq_mach_type {
|
||||||
LTQ_MACH_GENERIC = 0,
|
LTQ_MACH_GENERIC = 0,
|
||||||
LTQ_MACH_EASY50712, /* Danube evaluation board */
|
LTQ_MACH_EASY50712, /* Danube evaluation board */
|
||||||
LTQ_MACH_EASY50601, /* Amazon SE evaluation board */
|
LTQ_MACH_EASY50601, /* Amazon SE evaluation board */
|
||||||
|
@ -2035,3 +2096,20 @@
|
||||||
+
|
+
|
||||||
+module_init(easy98000_addon_init);
|
+module_init(easy98000_addon_init);
|
||||||
+module_exit(easy98000_addon_exit);
|
+module_exit(easy98000_addon_exit);
|
||||||
|
--- a/arch/mips/lantiq/prom.c
|
||||||
|
+++ b/arch/mips/lantiq/prom.c
|
||||||
|
@@ -45,10 +45,12 @@ static void __init prom_init_cmdline(voi
|
||||||
|
char **argv = (char **) KSEG1ADDR(fw_arg1);
|
||||||
|
int i;
|
||||||
|
|
||||||
|
+ arcs_cmdline[0] = '\0';
|
||||||
|
+
|
||||||
|
for (i = 0; i < argc; i++) {
|
||||||
|
- char *p = (char *) KSEG1ADDR(argv[i]);
|
||||||
|
+ char *p = (char *) KSEG1ADDR(argv[i]);
|
||||||
|
|
||||||
|
- if (p && *p) {
|
||||||
|
+ if (CPHYSADDR(p) && *p) {
|
||||||
|
strlcat(arcs_cmdline, p, sizeof(arcs_cmdline));
|
||||||
|
strlcat(arcs_cmdline, " ", sizeof(arcs_cmdline));
|
||||||
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
||||||
--- a/drivers/spi/Makefile
|
--- a/drivers/spi/Makefile
|
||||||
+++ b/drivers/spi/Makefile
|
+++ b/drivers/spi/Makefile
|
||||||
@@ -55,6 +55,7 @@ obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.
|
@@ -56,6 +56,7 @@ obj-$(CONFIG_SPI_SH_SCI) += spi_sh_sci.
|
||||||
obj-$(CONFIG_SPI_SH_MSIOF) += spi_sh_msiof.o
|
obj-$(CONFIG_SPI_SH_MSIOF) += spi_sh_msiof.o
|
||||||
obj-$(CONFIG_SPI_STMP3XXX) += spi_stmp.o
|
obj-$(CONFIG_SPI_STMP3XXX) += spi_stmp.o
|
||||||
obj-$(CONFIG_SPI_NUC900) += spi_nuc900.o
|
obj-$(CONFIG_SPI_NUC900) += spi_nuc900.o
|
||||||
|
@ -484,7 +484,7 @@
|
||||||
+MODULE_DESCRIPTION("Lantiq Falcon SPI controller driver");
|
+MODULE_DESCRIPTION("Lantiq Falcon SPI controller driver");
|
||||||
--- a/drivers/spi/Kconfig
|
--- a/drivers/spi/Kconfig
|
||||||
+++ b/drivers/spi/Kconfig
|
+++ b/drivers/spi/Kconfig
|
||||||
@@ -210,6 +210,10 @@ config SPI_MPC52xx
|
@@ -219,6 +219,10 @@ config SPI_MPC52xx
|
||||||
This drivers supports the MPC52xx SPI controller in master SPI
|
This drivers supports the MPC52xx SPI controller in master SPI
|
||||||
mode.
|
mode.
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,7 @@
|
||||||
+ easy98020_init);
|
+ easy98020_init);
|
||||||
--- a/arch/mips/lantiq/falcon/Kconfig
|
--- a/arch/mips/lantiq/falcon/Kconfig
|
||||||
+++ b/arch/mips/lantiq/falcon/Kconfig
|
+++ b/arch/mips/lantiq/falcon/Kconfig
|
||||||
@@ -6,6 +6,10 @@
|
@@ -6,6 +6,10 @@ config LANTIQ_MACH_EASY98000
|
||||||
bool "Easy98000"
|
bool "Easy98000"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@
|
||||||
endif
|
endif
|
||||||
--- a/arch/mips/lantiq/falcon/Makefile
|
--- a/arch/mips/lantiq/falcon/Makefile
|
||||||
+++ b/arch/mips/lantiq/falcon/Makefile
|
+++ b/arch/mips/lantiq/falcon/Makefile
|
||||||
@@ -3,3 +3,4 @@
|
@@ -3,3 +3,4 @@ obj-y += softdog_vpe.o
|
||||||
obj-$(CONFIG_LANTIQ_MACH_EASY98000) += addon-easy98000.o
|
obj-$(CONFIG_LANTIQ_MACH_EASY98000) += addon-easy98000.o
|
||||||
obj-$(CONFIG_LANTIQ_MACH_EASY98000) += mach-easy98000.o
|
obj-$(CONFIG_LANTIQ_MACH_EASY98000) += mach-easy98000.o
|
||||||
obj-$(CONFIG_LANTIQ_MACH_EASY98000) += dev-leds-easy98000-cpld.o
|
obj-$(CONFIG_LANTIQ_MACH_EASY98000) += dev-leds-easy98000-cpld.o
|
||||||
|
|
|
@ -102,7 +102,7 @@
|
||||||
+ board_95C3AM1_init);
|
+ board_95C3AM1_init);
|
||||||
--- a/arch/mips/lantiq/falcon/Kconfig
|
--- a/arch/mips/lantiq/falcon/Kconfig
|
||||||
+++ b/arch/mips/lantiq/falcon/Kconfig
|
+++ b/arch/mips/lantiq/falcon/Kconfig
|
||||||
@@ -10,6 +10,10 @@
|
@@ -10,6 +10,10 @@ config LANTIQ_MACH_EASY98020
|
||||||
bool "Easy98020"
|
bool "Easy98020"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
@ -115,14 +115,14 @@
|
||||||
endif
|
endif
|
||||||
--- a/arch/mips/lantiq/falcon/Makefile
|
--- a/arch/mips/lantiq/falcon/Makefile
|
||||||
+++ b/arch/mips/lantiq/falcon/Makefile
|
+++ b/arch/mips/lantiq/falcon/Makefile
|
||||||
@@ -4,3 +4,4 @@
|
@@ -4,3 +4,4 @@ obj-$(CONFIG_LANTIQ_MACH_EASY98000) += a
|
||||||
obj-$(CONFIG_LANTIQ_MACH_EASY98000) += mach-easy98000.o
|
obj-$(CONFIG_LANTIQ_MACH_EASY98000) += mach-easy98000.o
|
||||||
obj-$(CONFIG_LANTIQ_MACH_EASY98000) += dev-leds-easy98000-cpld.o
|
obj-$(CONFIG_LANTIQ_MACH_EASY98000) += dev-leds-easy98000-cpld.o
|
||||||
obj-$(CONFIG_LANTIQ_MACH_EASY98020) += mach-easy98020.o
|
obj-$(CONFIG_LANTIQ_MACH_EASY98020) += mach-easy98020.o
|
||||||
+obj-$(CONFIG_LANTIQ_MACH_95C3AM1) += mach-95C3AM1.o
|
+obj-$(CONFIG_LANTIQ_MACH_95C3AM1) += mach-95C3AM1.o
|
||||||
--- a/arch/mips/lantiq/machtypes.h
|
--- a/arch/mips/lantiq/machtypes.h
|
||||||
+++ b/arch/mips/lantiq/machtypes.h
|
+++ b/arch/mips/lantiq/machtypes.h
|
||||||
@@ -21,6 +21,7 @@
|
@@ -21,6 +21,7 @@ enum lantiq_mach_type {
|
||||||
LANTIQ_MACH_EASY98000SF, /* Falcon Eval Board, Serial Flash */
|
LANTIQ_MACH_EASY98000SF, /* Falcon Eval Board, Serial Flash */
|
||||||
LANTIQ_MACH_EASY98000NAND, /* Falcon Eval Board, NAND Flash */
|
LANTIQ_MACH_EASY98000NAND, /* Falcon Eval Board, NAND Flash */
|
||||||
LANTIQ_MACH_EASY98020, /* Falcon Reference Board */
|
LANTIQ_MACH_EASY98020, /* Falcon Reference Board */
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/ioport.h>
|
#include <linux/ioport.h>
|
||||||
#include <linux/netdevice.h>
|
#include <linux/netdevice.h>
|
||||||
@@ -125,6 +126,8 @@
|
@@ -125,6 +126,8 @@ typedef struct board_info {
|
||||||
struct delayed_work phy_poll;
|
struct delayed_work phy_poll;
|
||||||
struct net_device *ndev;
|
struct net_device *ndev;
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
spinlock_t lock;
|
spinlock_t lock;
|
||||||
|
|
||||||
struct mii_if_info mii;
|
struct mii_if_info mii;
|
||||||
@@ -824,6 +827,8 @@
|
@@ -824,6 +827,8 @@ static void dm9000_timeout(struct net_de
|
||||||
netif_stop_queue(dev);
|
netif_stop_queue(dev);
|
||||||
dm9000_reset(db);
|
dm9000_reset(db);
|
||||||
dm9000_init_dm9000(dev);
|
dm9000_init_dm9000(dev);
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
/* We can accept TX packets again */
|
/* We can accept TX packets again */
|
||||||
dev->trans_start = jiffies; /* prevent tx timeout */
|
dev->trans_start = jiffies; /* prevent tx timeout */
|
||||||
netif_wake_queue(dev);
|
netif_wake_queue(dev);
|
||||||
@@ -895,6 +900,12 @@
|
@@ -895,6 +900,12 @@ dm9000_start_xmit(struct sk_buff *skb, s
|
||||||
/* free this SKB */
|
/* free this SKB */
|
||||||
dev_kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
return NETDEV_TX_OK;
|
return NETDEV_TX_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1136,6 +1147,18 @@
|
@@ -1136,6 +1147,18 @@ static void dm9000_poll_controller(struc
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
/*
|
/*
|
||||||
* Open the interface.
|
* Open the interface.
|
||||||
* The interface is opened whenever "ifconfig" actives it.
|
* The interface is opened whenever "ifconfig" actives it.
|
||||||
@@ -1149,14 +1172,15 @@
|
@@ -1149,14 +1172,15 @@ dm9000_open(struct net_device *dev)
|
||||||
if (netif_msg_ifup(db))
|
if (netif_msg_ifup(db))
|
||||||
dev_dbg(db->dev, "enabling %s\n", dev->name);
|
dev_dbg(db->dev, "enabling %s\n", dev->name);
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@
|
||||||
/* GPIO0 on pre-activate PHY, Reg 1F is not set by reset */
|
/* GPIO0 on pre-activate PHY, Reg 1F is not set by reset */
|
||||||
iow(db, DM9000_GPR, 0); /* REG_1F bit0 activate phyxcer */
|
iow(db, DM9000_GPR, 0); /* REG_1F bit0 activate phyxcer */
|
||||||
mdelay(1); /* delay needs by DM9000B */
|
mdelay(1); /* delay needs by DM9000B */
|
||||||
@@ -1165,8 +1189,14 @@
|
@@ -1165,8 +1189,14 @@ dm9000_open(struct net_device *dev)
|
||||||
dm9000_reset(db);
|
dm9000_reset(db);
|
||||||
dm9000_init_dm9000(dev);
|
dm9000_init_dm9000(dev);
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@
|
||||||
|
|
||||||
/* Init driver variable */
|
/* Init driver variable */
|
||||||
db->dbug_cnt = 0;
|
db->dbug_cnt = 0;
|
||||||
@@ -1174,6 +1204,9 @@
|
@@ -1174,6 +1204,9 @@ dm9000_open(struct net_device *dev)
|
||||||
mii_check_media(&db->mii, netif_msg_link(db), 1);
|
mii_check_media(&db->mii, netif_msg_link(db), 1);
|
||||||
netif_start_queue(dev);
|
netif_start_queue(dev);
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@
|
||||||
dm9000_schedule_poll(db);
|
dm9000_schedule_poll(db);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1371,6 +1404,7 @@
|
@@ -1371,6 +1404,7 @@ dm9000_probe(struct platform_device *pde
|
||||||
mutex_init(&db->addr_lock);
|
mutex_init(&db->addr_lock);
|
||||||
|
|
||||||
INIT_DELAYED_WORK(&db->phy_poll, dm9000_poll_work);
|
INIT_DELAYED_WORK(&db->phy_poll, dm9000_poll_work);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/arch/mips/lantiq/irq.c
|
--- a/arch/mips/lantiq/irq.c
|
||||||
+++ b/arch/mips/lantiq/irq.c
|
+++ b/arch/mips/lantiq/irq.c
|
||||||
@@ -51,6 +51,7 @@
|
@@ -52,6 +52,7 @@
|
||||||
#define ltq_eiu_w32(x, y) ltq_w32((x), ltq_eiu_membase + (y))
|
#define ltq_eiu_w32(x, y) ltq_w32((x), ltq_eiu_membase + (y))
|
||||||
#define ltq_eiu_r32(x) ltq_r32(ltq_eiu_membase + (x))
|
#define ltq_eiu_r32(x) ltq_r32(ltq_eiu_membase + (x))
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
static unsigned short ltq_eiu_irq[MAX_EIU] = {
|
static unsigned short ltq_eiu_irq[MAX_EIU] = {
|
||||||
LTQ_EIU_IR0,
|
LTQ_EIU_IR0,
|
||||||
LTQ_EIU_IR1,
|
LTQ_EIU_IR1,
|
||||||
@@ -59,6 +60,7 @@
|
@@ -60,6 +61,7 @@ static unsigned short ltq_eiu_irq[MAX_EI
|
||||||
LTQ_EIU_IR4,
|
LTQ_EIU_IR4,
|
||||||
LTQ_EIU_IR5,
|
LTQ_EIU_IR5,
|
||||||
};
|
};
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
static struct resource ltq_icu_resource = {
|
static struct resource ltq_icu_resource = {
|
||||||
.name = "icu",
|
.name = "icu",
|
||||||
@@ -67,15 +69,19 @@
|
@@ -68,15 +70,19 @@ static struct resource ltq_icu_resource
|
||||||
.flags = IORESOURCE_MEM,
|
.flags = IORESOURCE_MEM,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
|
|
||||||
void ltq_disable_irq(struct irq_data *d)
|
void ltq_disable_irq(struct irq_data *d)
|
||||||
{
|
{
|
||||||
@@ -120,6 +126,7 @@
|
@@ -122,6 +128,7 @@ void ltq_enable_irq(struct irq_data *d)
|
||||||
ltq_icu_w32(ltq_icu_r32(ier) | (1 << irq_nr), ier);
|
ltq_icu_w32(ltq_icu_r32(ier) | (1 << irq_nr), ier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
static unsigned int ltq_startup_eiu_irq(struct irq_data *d)
|
static unsigned int ltq_startup_eiu_irq(struct irq_data *d)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@@ -159,6 +166,7 @@
|
@@ -161,6 +168,7 @@ static void ltq_shutdown_eiu_irq(struct
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
|
|
||||||
static struct irq_chip ltq_irq_type = {
|
static struct irq_chip ltq_irq_type = {
|
||||||
"icu",
|
"icu",
|
||||||
@@ -170,6 +178,7 @@
|
@@ -172,6 +180,7 @@ static struct irq_chip ltq_irq_type = {
|
||||||
.irq_mask_ack = ltq_mask_and_ack_irq,
|
.irq_mask_ack = ltq_mask_and_ack_irq,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
static struct irq_chip ltq_eiu_type = {
|
static struct irq_chip ltq_eiu_type = {
|
||||||
"eiu",
|
"eiu",
|
||||||
.irq_startup = ltq_startup_eiu_irq,
|
.irq_startup = ltq_startup_eiu_irq,
|
||||||
@@ -181,6 +190,7 @@
|
@@ -183,6 +192,7 @@ static struct irq_chip ltq_eiu_type = {
|
||||||
.irq_mask = ltq_disable_irq,
|
.irq_mask = ltq_disable_irq,
|
||||||
.irq_mask_ack = ltq_mask_and_ack_irq,
|
.irq_mask_ack = ltq_mask_and_ack_irq,
|
||||||
};
|
};
|
||||||
|
@ -68,7 +68,7 @@
|
||||||
|
|
||||||
static void ltq_hw_irqdispatch(int module)
|
static void ltq_hw_irqdispatch(int module)
|
||||||
{
|
{
|
||||||
@@ -196,10 +206,12 @@
|
@@ -198,10 +208,12 @@ static void ltq_hw_irqdispatch(int modul
|
||||||
irq = __fls(irq);
|
irq = __fls(irq);
|
||||||
do_IRQ((int)irq + INT_NUM_IM0_IRL0 + (INT_NUM_IM_OFFSET * module));
|
do_IRQ((int)irq + INT_NUM_IM0_IRL0 + (INT_NUM_IM_OFFSET * module));
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DEFINE_HWx_IRQDISPATCH(x) \
|
#define DEFINE_HWx_IRQDISPATCH(x) \
|
||||||
@@ -262,6 +274,7 @@
|
@@ -264,6 +276,7 @@ void __init arch_init_irq(void)
|
||||||
if (!ltq_icu_membase)
|
if (!ltq_icu_membase)
|
||||||
panic("Failed to remap icu memory\n");
|
panic("Failed to remap icu memory\n");
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@
|
||||||
if (insert_resource(&iomem_resource, <q_eiu_resource) < 0)
|
if (insert_resource(&iomem_resource, <q_eiu_resource) < 0)
|
||||||
panic("Failed to insert eiu memory\n");
|
panic("Failed to insert eiu memory\n");
|
||||||
|
|
||||||
@@ -273,6 +286,7 @@
|
@@ -275,6 +288,7 @@ void __init arch_init_irq(void)
|
||||||
resource_size(<q_eiu_resource));
|
resource_size(<q_eiu_resource));
|
||||||
if (!ltq_eiu_membase)
|
if (!ltq_eiu_membase)
|
||||||
panic("Failed to remap eiu memory\n");
|
panic("Failed to remap eiu memory\n");
|
||||||
|
@ -97,7 +97,7 @@
|
||||||
|
|
||||||
/* make sure all irqs are turned off by default */
|
/* make sure all irqs are turned off by default */
|
||||||
for (i = 0; i < 5; i++)
|
for (i = 0; i < 5; i++)
|
||||||
@@ -298,6 +312,7 @@
|
@@ -300,6 +314,7 @@ void __init arch_init_irq(void)
|
||||||
|
|
||||||
for (i = INT_NUM_IRQ0;
|
for (i = INT_NUM_IRQ0;
|
||||||
i <= (INT_NUM_IRQ0 + (5 * INT_NUM_IM_OFFSET)); i++)
|
i <= (INT_NUM_IRQ0 + (5 * INT_NUM_IM_OFFSET)); i++)
|
||||||
|
@ -105,7 +105,7 @@
|
||||||
if ((i == LTQ_EIU_IR0) || (i == LTQ_EIU_IR1) ||
|
if ((i == LTQ_EIU_IR0) || (i == LTQ_EIU_IR1) ||
|
||||||
(i == LTQ_EIU_IR2))
|
(i == LTQ_EIU_IR2))
|
||||||
irq_set_chip_and_handler(i, <q_eiu_type,
|
irq_set_chip_and_handler(i, <q_eiu_type,
|
||||||
@@ -308,6 +323,7 @@
|
@@ -310,6 +325,7 @@ void __init arch_init_irq(void)
|
||||||
irq_set_chip_and_handler(i, <q_eiu_type,
|
irq_set_chip_and_handler(i, <q_eiu_type,
|
||||||
handle_level_irq);
|
handle_level_irq);
|
||||||
else
|
else
|
||||||
|
@ -115,7 +115,7 @@
|
||||||
|
|
||||||
--- a/arch/mips/lantiq/clk.c
|
--- a/arch/mips/lantiq/clk.c
|
||||||
+++ b/arch/mips/lantiq/clk.c
|
+++ b/arch/mips/lantiq/clk.c
|
||||||
@@ -46,6 +46,7 @@
|
@@ -46,6 +46,7 @@ static struct clk cpu_clk_generic[] = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@
|
||||||
static struct resource ltq_cgu_resource = {
|
static struct resource ltq_cgu_resource = {
|
||||||
.name = "cgu",
|
.name = "cgu",
|
||||||
.start = LTQ_CGU_BASE_ADDR,
|
.start = LTQ_CGU_BASE_ADDR,
|
||||||
@@ -55,6 +56,7 @@
|
@@ -55,6 +56,7 @@ static struct resource ltq_cgu_resource
|
||||||
|
|
||||||
/* remapped clock register range */
|
/* remapped clock register range */
|
||||||
void __iomem *ltq_cgu_membase;
|
void __iomem *ltq_cgu_membase;
|
||||||
|
@ -131,7 +131,7 @@
|
||||||
|
|
||||||
void clk_init(void)
|
void clk_init(void)
|
||||||
{
|
{
|
||||||
@@ -120,6 +122,7 @@
|
@@ -131,6 +133,7 @@ void __init plat_time_init(void)
|
||||||
{
|
{
|
||||||
struct clk *clk;
|
struct clk *clk;
|
||||||
|
|
||||||
|
@ -139,7 +139,7 @@
|
||||||
if (insert_resource(&iomem_resource, <q_cgu_resource) < 0)
|
if (insert_resource(&iomem_resource, <q_cgu_resource) < 0)
|
||||||
panic("Failed to insert cgu memory\n");
|
panic("Failed to insert cgu memory\n");
|
||||||
|
|
||||||
@@ -133,6 +136,7 @@
|
@@ -144,6 +147,7 @@ void __init plat_time_init(void)
|
||||||
pr_err("Failed to remap cgu memory\n");
|
pr_err("Failed to remap cgu memory\n");
|
||||||
unreachable();
|
unreachable();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
|
+++ b/arch/mips/include/asm/mach-lantiq/falcon/lantiq_soc.h
|
||||||
@@ -0,0 +1,40 @@
|
@@ -0,0 +1,45 @@
|
||||||
+/*
|
+/*
|
||||||
+ * This program is free software; you can redistribute it and/or modify it
|
+ * This program is free software; you can redistribute it and/or modify it
|
||||||
+ * under the terms of the GNU General Public License version 2 as published
|
+ * under the terms of the GNU General Public License version 2 as published
|
||||||
|
@ -39,5 +39,10 @@
|
||||||
+#define LTQ_WDT_BASE_ADDR 0x1F8803F0
|
+#define LTQ_WDT_BASE_ADDR 0x1F8803F0
|
||||||
+#define LTQ_WDT_SIZE 0x10
|
+#define LTQ_WDT_SIZE 0x10
|
||||||
+
|
+
|
||||||
|
+extern int ltq_gpio_request(unsigned int pin, unsigned int alt0,
|
||||||
|
+ unsigned int alt1, unsigned int dir,
|
||||||
|
+ const char *name);
|
||||||
|
+extern int ltq_gpio_mux_set(unsigned int pin, unsigned int mux);
|
||||||
|
+
|
||||||
+#endif /* CONFIG_SOC_FALCON */
|
+#endif /* CONFIG_SOC_FALCON */
|
||||||
+#endif /* _LTQ_XWAY_H__ */
|
+#endif /* _LTQ_XWAY_H__ */
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/drivers/net/lantiq_etop.c
|
--- a/drivers/net/lantiq_etop.c
|
||||||
+++ b/drivers/net/lantiq_etop.c
|
+++ b/drivers/net/lantiq_etop.c
|
||||||
@@ -155,8 +155,12 @@
|
@@ -147,8 +147,12 @@ ltq_etop_hw_receive(struct ltq_etop_chan
|
||||||
|
|
||||||
skb_put(skb, len);
|
skb_put(skb, len);
|
||||||
skb->dev = ch->netdev;
|
skb->dev = ch->netdev;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
--- a/drivers/mtd/Kconfig
|
--- a/drivers/mtd/Kconfig
|
||||||
+++ b/drivers/mtd/Kconfig
|
+++ b/drivers/mtd/Kconfig
|
||||||
@@ -57,6 +57,10 @@ config MTD_ROOTFS_SPLIT
|
@@ -41,6 +41,10 @@ config MTD_ROOTFS_SPLIT
|
||||||
depends on MTD_PARTITIONS
|
bool "Automatically split 'rootfs' partition for squashfs"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
+config MTD_UIMAGE_SPLIT
|
+config MTD_UIMAGE_SPLIT
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
---help---
|
---help---
|
||||||
--- a/drivers/mtd/mtdpart.c
|
--- a/drivers/mtd/mtdpart.c
|
||||||
+++ b/drivers/mtd/mtdpart.c
|
+++ b/drivers/mtd/mtdpart.c
|
||||||
@@ -860,6 +860,82 @@ static int refresh_rootfs_split(struct m
|
@@ -861,6 +861,82 @@ static int refresh_rootfs_split(struct m
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_MTD_ROOTFS_SPLIT */
|
#endif /* CONFIG_MTD_ROOTFS_SPLIT */
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@
|
||||||
/*
|
/*
|
||||||
* This function, given a master MTD object and a partition table, creates
|
* 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
|
* and registers slave MTD objects which are bound to the master according to
|
||||||
@@ -893,6 +969,17 @@ int add_mtd_partitions(struct mtd_info *
|
@@ -894,6 +970,17 @@ int add_mtd_partitions(struct mtd_info *
|
||||||
|
|
||||||
add_mtd_device(&slave->mtd);
|
add_mtd_device(&slave->mtd);
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
static void __init prom_init_cmdline(void)
|
static void __init prom_init_cmdline(void)
|
||||||
{
|
{
|
||||||
int argc = fw_arg0;
|
int argc = fw_arg0;
|
||||||
@@ -53,6 +81,7 @@ static void __init prom_init_cmdline(voi
|
@@ -55,6 +83,7 @@ static void __init prom_init_cmdline(voi
|
||||||
strlcat(arcs_cmdline, " ", sizeof(arcs_cmdline));
|
strlcat(arcs_cmdline, " ", sizeof(arcs_cmdline));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -250,7 +250,7 @@
|
||||||
--- a/net/ipv4/Makefile
|
--- a/net/ipv4/Makefile
|
||||||
+++ b/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
|
||||||
inet_fragment.o
|
inet_fragment.o ping.o
|
||||||
|
|
||||||
obj-$(CONFIG_SYSCTL) += sysctl_net_ipv4.o
|
obj-$(CONFIG_SYSCTL) += sysctl_net_ipv4.o
|
||||||
+ifneq ($(CONFIG_IFX_UDP_REDIRECT),)
|
+ifneq ($(CONFIG_IFX_UDP_REDIRECT),)
|
||||||
|
@ -279,9 +279,9 @@
|
||||||
- int (*getfrag)(void *, char *, int, int, int, struct sk_buff *);
|
- int (*getfrag)(void *, char *, int, int, int, struct sk_buff *);
|
||||||
+ int (*getfrag)(void *, char *, int, int, int, struct sk_buff *) = NULL;
|
+ int (*getfrag)(void *, char *, int, int, int, struct sk_buff *) = NULL;
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
|
struct ip_options_data opt_copy;
|
||||||
|
|
||||||
if (len > 0xFFFF)
|
@@ -819,7 +823,13 @@ int udp_sendmsg(struct kiocb *iocb, stru
|
||||||
@@ -818,7 +822,13 @@ int udp_sendmsg(struct kiocb *iocb, stru
|
|
||||||
ipc.opt = NULL;
|
ipc.opt = NULL;
|
||||||
ipc.tx_flags = 0;
|
ipc.tx_flags = 0;
|
||||||
|
|
||||||
|
@ -294,9 +294,9 @@
|
||||||
+#endif /* IFX_UDP_REDIRECT */
|
+#endif /* IFX_UDP_REDIRECT */
|
||||||
+ getfrag = is_udplite ? udplite_getfrag : ip_generic_getfrag;
|
+ getfrag = is_udplite ? udplite_getfrag : ip_generic_getfrag;
|
||||||
|
|
||||||
|
fl4 = &inet->cork.fl.u.ip4;
|
||||||
if (up->pending) {
|
if (up->pending) {
|
||||||
/*
|
@@ -1619,6 +1629,7 @@ int __udp4_lib_rcv(struct sk_buff *skb,
|
||||||
@@ -1608,6 +1618,7 @@ int __udp4_lib_rcv(struct sk_buff *skb,
|
|
||||||
struct rtable *rt = skb_rtable(skb);
|
struct rtable *rt = skb_rtable(skb);
|
||||||
__be32 saddr, daddr;
|
__be32 saddr, daddr;
|
||||||
struct net *net = dev_net(skb->dev);
|
struct net *net = dev_net(skb->dev);
|
||||||
|
@ -304,7 +304,7 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Validate the packet.
|
* Validate the packet.
|
||||||
@@ -1640,7 +1651,16 @@ int __udp4_lib_rcv(struct sk_buff *skb,
|
@@ -1651,7 +1662,16 @@ int __udp4_lib_rcv(struct sk_buff *skb,
|
||||||
sk = __udp4_lib_lookup_skb(skb, uh->source, uh->dest, udptable);
|
sk = __udp4_lib_lookup_skb(skb, uh->source, uh->dest, udptable);
|
||||||
|
|
||||||
if (sk != NULL) {
|
if (sk != NULL) {
|
||||||
|
@ -322,7 +322,7 @@
|
||||||
sock_put(sk);
|
sock_put(sk);
|
||||||
|
|
||||||
/* a return value > 0 means to resubmit the input, but
|
/* a return value > 0 means to resubmit the input, but
|
||||||
@@ -1937,7 +1957,7 @@ struct proto udp_prot = {
|
@@ -1948,7 +1968,7 @@ struct proto udp_prot = {
|
||||||
.clear_sk = sk_prot_clear_portaddr_nulls,
|
.clear_sk = sk_prot_clear_portaddr_nulls,
|
||||||
};
|
};
|
||||||
EXPORT_SYMBOL(udp_prot);
|
EXPORT_SYMBOL(udp_prot);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/arch/mips/Kconfig
|
--- a/arch/mips/Kconfig
|
||||||
+++ b/arch/mips/Kconfig
|
+++ b/arch/mips/Kconfig
|
||||||
@@ -1871,6 +1871,28 @@ config MIPS_VPE_LOADER
|
@@ -1905,6 +1905,28 @@ config MIPS_VPE_LOADER
|
||||||
Includes a loader for loading an elf relocatable object
|
Includes a loader for loading an elf relocatable object
|
||||||
onto another VPE and running it.
|
onto another VPE and running it.
|
||||||
|
|
||||||
|
@ -140,7 +140,7 @@
|
||||||
#define read_tc_gpr_sp() mftgpr(29)
|
#define read_tc_gpr_sp() mftgpr(29)
|
||||||
--- a/arch/mips/kernel/Makefile
|
--- a/arch/mips/kernel/Makefile
|
||||||
+++ b/arch/mips/kernel/Makefile
|
+++ b/arch/mips/kernel/Makefile
|
||||||
@@ -85,7 +85,8 @@ obj-$(CONFIG_MIPS32_O32) += binfmt_elfo3
|
@@ -86,7 +86,8 @@ obj-$(CONFIG_MIPS32_O32) += binfmt_elfo3
|
||||||
|
|
||||||
obj-$(CONFIG_KGDB) += kgdb.o
|
obj-$(CONFIG_KGDB) += kgdb.o
|
||||||
obj-$(CONFIG_PROC_FS) += proc.o
|
obj-$(CONFIG_PROC_FS) += proc.o
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/arch/mips/Kconfig
|
--- a/arch/mips/Kconfig
|
||||||
+++ b/arch/mips/Kconfig
|
+++ b/arch/mips/Kconfig
|
||||||
@@ -1878,6 +1878,28 @@ config IFX_VPE_EXT
|
@@ -1912,6 +1912,28 @@ config IFX_VPE_EXT
|
||||||
help
|
help
|
||||||
IFX included extensions in APRP
|
IFX included extensions in APRP
|
||||||
|
|
||||||
|
@ -113,7 +113,7 @@
|
||||||
write_vpe_c0_cause(0);
|
write_vpe_c0_cause(0);
|
||||||
--- a/arch/mips/mm/c-r4k.c
|
--- a/arch/mips/mm/c-r4k.c
|
||||||
+++ b/arch/mips/mm/c-r4k.c
|
+++ b/arch/mips/mm/c-r4k.c
|
||||||
@@ -1345,6 +1345,106 @@ static int __init setcoherentio(char *st
|
@@ -1346,6 +1346,106 @@ static int __init setcoherentio(char *st
|
||||||
__setup("coherentio", setcoherentio);
|
__setup("coherentio", setcoherentio);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@
|
||||||
void __cpuinit r4k_cache_init(void)
|
void __cpuinit r4k_cache_init(void)
|
||||||
{
|
{
|
||||||
extern void build_clear_page(void);
|
extern void build_clear_page(void);
|
||||||
@@ -1364,6 +1464,78 @@ void __cpuinit r4k_cache_init(void)
|
@@ -1365,6 +1465,78 @@ void __cpuinit r4k_cache_init(void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
|
||||||
|
|
||||||
--- a/drivers/spi/Kconfig
|
--- a/drivers/spi/Kconfig
|
||||||
+++ b/drivers/spi/Kconfig
|
+++ b/drivers/spi/Kconfig
|
||||||
@@ -193,6 +193,14 @@
|
@@ -202,6 +202,14 @@ config SPI_IMX
|
||||||
This enables using the Freescale i.MX SPI controllers in master
|
This enables using the Freescale i.MX SPI controllers in master
|
||||||
mode.
|
mode.
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
|
||||||
depends on PARPORT && EXPERIMENTAL
|
depends on PARPORT && EXPERIMENTAL
|
||||||
--- a/drivers/spi/Makefile
|
--- a/drivers/spi/Makefile
|
||||||
+++ b/drivers/spi/Makefile
|
+++ b/drivers/spi/Makefile
|
||||||
@@ -26,6 +26,7 @@
|
@@ -27,6 +27,7 @@ obj-$(CONFIG_SPI_EP93XX) += ep93xx_spi.
|
||||||
obj-$(CONFIG_SPI_GPIO) += spi_gpio.o
|
obj-$(CONFIG_SPI_GPIO) += spi_gpio.o
|
||||||
obj-$(CONFIG_SPI_GPIO_OLD) += spi_gpio_old.o
|
obj-$(CONFIG_SPI_GPIO_OLD) += spi_gpio_old.o
|
||||||
obj-$(CONFIG_SPI_IMX) += spi_imx.o
|
obj-$(CONFIG_SPI_IMX) += spi_imx.o
|
||||||
|
|
|
@ -34,7 +34,7 @@ Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@googlemail.com>
|
||||||
|
|
||||||
#include <asm/bootinfo.h>
|
#include <asm/bootinfo.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
@@ -119,3 +120,41 @@
|
@@ -119,3 +120,41 @@ ltq_register_etop(struct ltq_eth_data *e
|
||||||
platform_device_register(<q_etop);
|
platform_device_register(<q_etop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/drivers/usb/Kconfig
|
--- a/drivers/usb/Kconfig
|
||||||
+++ b/drivers/usb/Kconfig
|
+++ b/drivers/usb/Kconfig
|
||||||
@@ -116,6 +116,8 @@
|
@@ -116,6 +116,8 @@ source "drivers/usb/wusbcore/Kconfig"
|
||||||
|
|
||||||
source "drivers/usb/host/Kconfig"
|
source "drivers/usb/host/Kconfig"
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
||||||
source "drivers/usb/renesas_usbhs/Kconfig"
|
source "drivers/usb/renesas_usbhs/Kconfig"
|
||||||
--- a/drivers/usb/Makefile
|
--- a/drivers/usb/Makefile
|
||||||
+++ b/drivers/usb/Makefile
|
+++ b/drivers/usb/Makefile
|
||||||
@@ -28,6 +28,8 @@
|
@@ -28,6 +28,8 @@ obj-$(CONFIG_USB_C67X00_HCD) += c67x00/
|
||||||
|
|
||||||
obj-$(CONFIG_USB_WUSB) += wusbcore/
|
obj-$(CONFIG_USB_WUSB) += wusbcore/
|
||||||
|
|
||||||
|
@ -15615,7 +15615,7 @@
|
||||||
+#endif
|
+#endif
|
||||||
--- a/drivers/usb/core/hub.c
|
--- a/drivers/usb/core/hub.c
|
||||||
+++ b/drivers/usb/core/hub.c
|
+++ b/drivers/usb/core/hub.c
|
||||||
@@ -2879,11 +2879,11 @@
|
@@ -2885,11 +2885,11 @@ hub_port_init (struct usb_hub *hub, stru
|
||||||
udev->ttport = hdev->ttport;
|
udev->ttport = hdev->ttport;
|
||||||
} else if (udev->speed != USB_SPEED_HIGH
|
} else if (udev->speed != USB_SPEED_HIGH
|
||||||
&& hdev->speed == USB_SPEED_HIGH) {
|
&& hdev->speed == USB_SPEED_HIGH) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/arch/mips/lantiq/xway/Kconfig
|
--- a/arch/mips/lantiq/xway/Kconfig
|
||||||
+++ b/arch/mips/lantiq/xway/Kconfig
|
+++ b/arch/mips/lantiq/xway/Kconfig
|
||||||
@@ -6,6 +6,10 @@
|
@@ -6,6 +6,10 @@ config LANTIQ_MACH_EASY50712
|
||||||
bool "Easy50712 - Danube"
|
bool "Easy50712 - Danube"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
endif
|
endif
|
||||||
--- a/arch/mips/lantiq/xway/Makefile
|
--- a/arch/mips/lantiq/xway/Makefile
|
||||||
+++ b/arch/mips/lantiq/xway/Makefile
|
+++ b/arch/mips/lantiq/xway/Makefile
|
||||||
@@ -5,3 +5,4 @@
|
@@ -5,3 +5,4 @@ obj-$(CONFIG_SOC_AMAZON_SE) += clk-ase.o
|
||||||
|
|
||||||
obj-$(CONFIG_LANTIQ_MACH_EASY50712) += mach-easy50712.o
|
obj-$(CONFIG_LANTIQ_MACH_EASY50712) += mach-easy50712.o
|
||||||
obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o
|
obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o
|
||||||
|
@ -518,7 +518,7 @@
|
||||||
+ arv752dpw22_init);
|
+ arv752dpw22_init);
|
||||||
--- a/arch/mips/lantiq/machtypes.h
|
--- a/arch/mips/lantiq/machtypes.h
|
||||||
+++ b/arch/mips/lantiq/machtypes.h
|
+++ b/arch/mips/lantiq/machtypes.h
|
||||||
@@ -22,6 +22,17 @@
|
@@ -22,6 +22,17 @@ enum lantiq_mach_type {
|
||||||
LANTIQ_MACH_EASY98000NAND, /* Falcon Eval Board, NAND Flash */
|
LANTIQ_MACH_EASY98000NAND, /* Falcon Eval Board, NAND Flash */
|
||||||
LANTIQ_MACH_EASY98020, /* Falcon Reference Board */
|
LANTIQ_MACH_EASY98020, /* Falcon Reference Board */
|
||||||
LANTIQ_MACH_95C3AM1, /* Board 95C3AM1 */
|
LANTIQ_MACH_95C3AM1, /* Board 95C3AM1 */
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/arch/mips/lantiq/machtypes.h
|
--- a/arch/mips/lantiq/machtypes.h
|
||||||
+++ b/arch/mips/lantiq/machtypes.h
|
+++ b/arch/mips/lantiq/machtypes.h
|
||||||
@@ -33,6 +33,9 @@
|
@@ -33,6 +33,9 @@ enum lantiq_mach_type {
|
||||||
LANTIQ_MACH_ARV752DPW, /* Arcor easybox a802 */
|
LANTIQ_MACH_ARV752DPW, /* Arcor easybox a802 */
|
||||||
LANTIQ_MACH_ARV752DPW22, /* Arcor easybox a803 */
|
LANTIQ_MACH_ARV752DPW22, /* Arcor easybox a803 */
|
||||||
LANTIQ_MACH_ARV7518PW, /* ASTORIA */
|
LANTIQ_MACH_ARV7518PW, /* ASTORIA */
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
#endif
|
#endif
|
||||||
--- a/arch/mips/lantiq/xway/Kconfig
|
--- a/arch/mips/lantiq/xway/Kconfig
|
||||||
+++ b/arch/mips/lantiq/xway/Kconfig
|
+++ b/arch/mips/lantiq/xway/Kconfig
|
||||||
@@ -10,6 +10,10 @@
|
@@ -10,6 +10,10 @@ config LANTIQ_MACH_ARV45XX
|
||||||
bool "ARV45XX"
|
bool "ARV45XX"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
endif
|
endif
|
||||||
--- a/arch/mips/lantiq/xway/Makefile
|
--- a/arch/mips/lantiq/xway/Makefile
|
||||||
+++ b/arch/mips/lantiq/xway/Makefile
|
+++ b/arch/mips/lantiq/xway/Makefile
|
||||||
@@ -6,3 +6,4 @@
|
@@ -6,3 +6,4 @@ obj-$(CONFIG_SOC_AMAZON_SE) += clk-ase.o
|
||||||
obj-$(CONFIG_LANTIQ_MACH_EASY50712) += mach-easy50712.o
|
obj-$(CONFIG_LANTIQ_MACH_EASY50712) += mach-easy50712.o
|
||||||
obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o
|
obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o
|
||||||
obj-$(CONFIG_LANTIQ_MACH_ARV45XX) += mach-arv45xx.o
|
obj-$(CONFIG_LANTIQ_MACH_ARV45XX) += mach-arv45xx.o
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/arch/mips/lantiq/xway/Kconfig
|
--- a/arch/mips/lantiq/xway/Kconfig
|
||||||
+++ b/arch/mips/lantiq/xway/Kconfig
|
+++ b/arch/mips/lantiq/xway/Kconfig
|
||||||
@@ -14,6 +14,10 @@
|
@@ -14,6 +14,10 @@ config LANTIQ_MACH_NETGEAR
|
||||||
bool "Netgear"
|
bool "Netgear"
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
endif
|
endif
|
||||||
--- a/arch/mips/lantiq/xway/Makefile
|
--- a/arch/mips/lantiq/xway/Makefile
|
||||||
+++ b/arch/mips/lantiq/xway/Makefile
|
+++ b/arch/mips/lantiq/xway/Makefile
|
||||||
@@ -7,3 +7,4 @@
|
@@ -7,3 +7,4 @@ obj-$(CONFIG_LANTIQ_MACH_EASY50712) += m
|
||||||
obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o
|
obj-$(CONFIG_LANTIQ_MACH_EASY50601) += mach-easy50601.o
|
||||||
obj-$(CONFIG_LANTIQ_MACH_ARV45XX) += mach-arv45xx.o
|
obj-$(CONFIG_LANTIQ_MACH_ARV45XX) += mach-arv45xx.o
|
||||||
obj-$(CONFIG_LANTIQ_MACH_NETGEAR) += mach-netgear.o
|
obj-$(CONFIG_LANTIQ_MACH_NETGEAR) += mach-netgear.o
|
||||||
|
@ -132,7 +132,7 @@
|
||||||
+ gigasx76x_init);
|
+ gigasx76x_init);
|
||||||
--- a/arch/mips/lantiq/machtypes.h
|
--- a/arch/mips/lantiq/machtypes.h
|
||||||
+++ b/arch/mips/lantiq/machtypes.h
|
+++ b/arch/mips/lantiq/machtypes.h
|
||||||
@@ -36,6 +36,9 @@
|
@@ -36,6 +36,9 @@ enum lantiq_mach_type {
|
||||||
|
|
||||||
/* Netgear */
|
/* Netgear */
|
||||||
LANTIQ_MACH_DGN3500B, /* Netgear DGN3500 */
|
LANTIQ_MACH_DGN3500B, /* Netgear DGN3500 */
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
--- a/arch/mips/lantiq/falcon/mach-easy98020.c
|
||||||
|
+++ b/arch/mips/lantiq/falcon/mach-easy98020.c
|
||||||
|
@@ -111,3 +111,13 @@ MIPS_MACHINE(LANTIQ_MACH_EASY98020,
|
||||||
|
"EASY98020",
|
||||||
|
"EASY98020 Eval Board",
|
||||||
|
easy98020_init);
|
||||||
|
+
|
||||||
|
+MIPS_MACHINE(LANTIQ_MACH_EASY98020_1LAN,
|
||||||
|
+ "EASY98020_1LAN",
|
||||||
|
+ "EASY98020 Eval Board (1 LAN port)",
|
||||||
|
+ easy98020_init);
|
||||||
|
+
|
||||||
|
+MIPS_MACHINE(LANTIQ_MACH_EASY98020_2LAN,
|
||||||
|
+ "EASY98020_2LAN",
|
||||||
|
+ "EASY98020 Eval Board (2 LAN ports)",
|
||||||
|
+ easy98020_init);
|
||||||
|
--- a/arch/mips/lantiq/machtypes.h
|
||||||
|
+++ b/arch/mips/lantiq/machtypes.h
|
||||||
|
@@ -21,6 +21,8 @@ enum lantiq_mach_type {
|
||||||
|
LANTIQ_MACH_EASY98000SF, /* Falcon Eval Board, Serial Flash */
|
||||||
|
LANTIQ_MACH_EASY98000NAND, /* Falcon Eval Board, NAND Flash */
|
||||||
|
LANTIQ_MACH_EASY98020, /* Falcon Reference Board */
|
||||||
|
+ LANTIQ_MACH_EASY98020_1LAN, /* Falcon Reference Board (1 LAN port) */
|
||||||
|
+ LANTIQ_MACH_EASY98020_2LAN, /* Falcon Reference Board (2 LAN ports) */
|
||||||
|
LANTIQ_MACH_95C3AM1, /* Board 95C3AM1 */
|
||||||
|
|
||||||
|
/* Arcadyan */
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/arch/mips/lantiq/xway/devices.c
|
--- a/arch/mips/lantiq/xway/devices.c
|
||||||
+++ b/arch/mips/lantiq/xway/devices.c
|
+++ b/arch/mips/lantiq/xway/devices.c
|
||||||
@@ -121,6 +121,16 @@
|
@@ -121,6 +121,16 @@ ltq_register_etop(struct ltq_eth_data *e
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
.start = LTQ_SSC_BASE_ADDR,
|
.start = LTQ_SSC_BASE_ADDR,
|
||||||
--- a/arch/mips/lantiq/xway/devices.h
|
--- a/arch/mips/lantiq/xway/devices.h
|
||||||
+++ b/arch/mips/lantiq/xway/devices.h
|
+++ b/arch/mips/lantiq/xway/devices.h
|
||||||
@@ -19,5 +19,6 @@
|
@@ -19,5 +19,6 @@ extern void ltq_register_ase_asc(void);
|
||||||
extern void ltq_register_etop(struct ltq_eth_data *eth);
|
extern void ltq_register_etop(struct ltq_eth_data *eth);
|
||||||
extern void ltq_register_spi(struct ltq_spi_platform_data *pdata,
|
extern void ltq_register_spi(struct ltq_spi_platform_data *pdata,
|
||||||
struct spi_board_info const *info, unsigned n);
|
struct spi_board_info const *info, unsigned n);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/arch/mips/lantiq/xway/devices.c
|
--- a/arch/mips/lantiq/xway/devices.c
|
||||||
+++ b/arch/mips/lantiq/xway/devices.c
|
+++ b/arch/mips/lantiq/xway/devices.c
|
||||||
@@ -131,6 +131,26 @@
|
@@ -131,6 +131,26 @@ ltq_register_madwifi_eep(void)
|
||||||
lantiq_emulate_madwifi_eep = 1;
|
lantiq_emulate_madwifi_eep = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
|
|
||||||
extern void ltq_register_gpio(void);
|
extern void ltq_register_gpio(void);
|
||||||
extern void ltq_register_gpio_stp(void);
|
extern void ltq_register_gpio_stp(void);
|
||||||
@@ -20,5 +21,6 @@
|
@@ -20,5 +21,6 @@ extern void ltq_register_etop(struct ltq
|
||||||
extern void ltq_register_spi(struct ltq_spi_platform_data *pdata,
|
extern void ltq_register_spi(struct ltq_spi_platform_data *pdata,
|
||||||
struct spi_board_info const *info, unsigned n);
|
struct spi_board_info const *info, unsigned n);
|
||||||
extern void ltq_register_madwifi_eep(void);
|
extern void ltq_register_madwifi_eep(void);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/arch/mips/lantiq/devices.c
|
--- a/arch/mips/lantiq/devices.c
|
||||||
+++ b/arch/mips/lantiq/devices.c
|
+++ b/arch/mips/lantiq/devices.c
|
||||||
@@ -120,3 +120,20 @@
|
@@ -120,3 +120,20 @@ void __init ltq_register_pci(struct ltq_
|
||||||
pr_err("kernel is compiled without PCI support\n");
|
pr_err("kernel is compiled without PCI support\n");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
+}
|
+}
|
||||||
--- a/arch/mips/lantiq/devices.h
|
--- a/arch/mips/lantiq/devices.h
|
||||||
+++ b/arch/mips/lantiq/devices.h
|
+++ b/arch/mips/lantiq/devices.h
|
||||||
@@ -19,5 +19,6 @@
|
@@ -19,5 +19,6 @@ extern void ltq_register_nor(struct phys
|
||||||
extern void ltq_register_wdt(void);
|
extern void ltq_register_wdt(void);
|
||||||
extern void ltq_register_asc(int port);
|
extern void ltq_register_asc(int port);
|
||||||
extern void ltq_register_pci(struct ltq_pci_data *data);
|
extern void ltq_register_pci(struct ltq_pci_data *data);
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
#endif
|
#endif
|
||||||
--- a/arch/mips/lantiq/xway/mach-easy50712.c
|
--- a/arch/mips/lantiq/xway/mach-easy50712.c
|
||||||
+++ b/arch/mips/lantiq/xway/mach-easy50712.c
|
+++ b/arch/mips/lantiq/xway/mach-easy50712.c
|
||||||
@@ -61,6 +61,7 @@
|
@@ -61,6 +61,7 @@ static void __init easy50712_init(void)
|
||||||
ltq_register_nor(&easy50712_flash_data);
|
ltq_register_nor(&easy50712_flash_data);
|
||||||
ltq_register_pci(<q_pci_data);
|
ltq_register_pci(<q_pci_data);
|
||||||
ltq_register_etop(<q_eth_data);
|
ltq_register_etop(<q_eth_data);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/arch/mips/lantiq/xway/devices.c
|
--- a/arch/mips/lantiq/xway/devices.c
|
||||||
+++ b/arch/mips/lantiq/xway/devices.c
|
+++ b/arch/mips/lantiq/xway/devices.c
|
||||||
@@ -151,6 +151,29 @@
|
@@ -151,6 +151,29 @@ ltq_register_gpio_buttons(struct gpio_bu
|
||||||
platform_device_register(<q_gpio_buttons_platform_device);
|
platform_device_register(<q_gpio_buttons_platform_device);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
activate serial driver for ASC1 if "use_asc1=x" is given on kernel commandline
|
||||||
|
mux setup for pins is done via late_initcall, when the gpio driver is initialized
|
||||||
|
|
||||||
|
only implemented for EASY98000, generic version t.b.d.
|
||||||
|
--- a/arch/mips/lantiq/falcon/devices.c
|
||||||
|
+++ b/arch/mips/lantiq/falcon/devices.c
|
||||||
|
@@ -75,6 +75,7 @@ void __init falcon_register_asc(int port
|
||||||
|
case 1:
|
||||||
|
platform_device_register_simple("ltq_asc", 1,
|
||||||
|
falcon_asc1_resources, ARRAY_SIZE(falcon_asc1_resources));
|
||||||
|
+ sys1_hw_activate(ACTS_ASC1_ACT);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
--- a/arch/mips/lantiq/falcon/mach-easy98000.c
|
||||||
|
+++ b/arch/mips/lantiq/falcon/mach-easy98000.c
|
||||||
|
@@ -15,6 +15,7 @@
|
||||||
|
#include <linux/spi/spi.h>
|
||||||
|
#include <linux/spi/spi_gpio.h>
|
||||||
|
#include <linux/spi/eeprom.h>
|
||||||
|
+#include <falcon/lantiq_soc.h>
|
||||||
|
|
||||||
|
#include "../machtypes.h"
|
||||||
|
|
||||||
|
@@ -206,9 +207,34 @@ static void __init easy98000_spi_gpio_in
|
||||||
|
platform_device_register(&easy98000_spi_gpio_device);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static int register_asc1 = 0;
|
||||||
|
+static int __init parse_asc1(char *p)
|
||||||
|
+{
|
||||||
|
+ register_asc1 = 1;
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+__setup("use_asc1", parse_asc1);
|
||||||
|
+
|
||||||
|
+#define MUXC_SIF_RX_PIN 112
|
||||||
|
+#define MUXC_SIF_TX_PIN 113
|
||||||
|
+
|
||||||
|
+static int __init asc1_mux_setup(void)
|
||||||
|
+{
|
||||||
|
+ if (register_asc1) {
|
||||||
|
+ if (ltq_gpio_request(MUXC_SIF_RX_PIN, 1, 1, 0, "asc1-rx"))
|
||||||
|
+ return -1;
|
||||||
|
+ if (ltq_gpio_request(MUXC_SIF_TX_PIN, 1, 1, 1, "asc1-tx"))
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+late_initcall(asc1_mux_setup);
|
||||||
|
+
|
||||||
|
static void __init easy98000_init_common(void)
|
||||||
|
{
|
||||||
|
falcon_register_asc(0);
|
||||||
|
+ if (register_asc1)
|
||||||
|
+ falcon_register_asc(1);
|
||||||
|
falcon_register_gpio();
|
||||||
|
falcon_register_wdt();
|
||||||
|
falcon_register_i2c();
|
Loading…
Reference in New Issue