diff options
Diffstat (limited to 'target/linux/lantiq/patches-2.6.39/0005-MIPS-Lantiq-Add-platform-device-support.patch')
-rw-r--r-- | target/linux/lantiq/patches-2.6.39/0005-MIPS-Lantiq-Add-platform-device-support.patch | 319 |
1 files changed, 0 insertions, 319 deletions
diff --git a/target/linux/lantiq/patches-2.6.39/0005-MIPS-Lantiq-Add-platform-device-support.patch b/target/linux/lantiq/patches-2.6.39/0005-MIPS-Lantiq-Add-platform-device-support.patch deleted file mode 100644 index ff376ea21..000000000 --- a/target/linux/lantiq/patches-2.6.39/0005-MIPS-Lantiq-Add-platform-device-support.patch +++ /dev/null @@ -1,319 +0,0 @@ -From 09e57348261c1ae0ff89c68679126fc76a28b2a2 Mon Sep 17 00:00:00 2001 -From: John Crispin <blogic@openwrt.org> -Date: Wed, 30 Mar 2011 09:27:53 +0200 -Subject: [PATCH 05/13] MIPS: Lantiq: Add platform device support - -This patch adds the wrappers for registering our platform devices. - -Signed-off-by: John Crispin <blogic@openwrt.org> -Signed-off-by: Ralph Hempel <ralph.hempel@lantiq.com> -Cc: linux-mips@linux-mips.org -Patchwork: https://patchwork.linux-mips.org/patch/2254/ -Patchwork: https://patchwork.linux-mips.org/patch/2360/ -Patchwork: https://patchwork.linux-mips.org/patch/2359/ -Signed-off-by: Ralf Baechle <ralf@linux-mips.org> ---- - arch/mips/lantiq/Makefile | 2 +- - arch/mips/lantiq/devices.c | 122 +++++++++++++++++++++++++++++++++++++++ - arch/mips/lantiq/devices.h | 23 +++++++ - arch/mips/lantiq/xway/Makefile | 2 +- - arch/mips/lantiq/xway/devices.c | 98 +++++++++++++++++++++++++++++++ - arch/mips/lantiq/xway/devices.h | 18 ++++++ - 6 files changed, 263 insertions(+), 2 deletions(-) - create mode 100644 arch/mips/lantiq/devices.c - create mode 100644 arch/mips/lantiq/devices.h - create mode 100644 arch/mips/lantiq/xway/devices.c - create mode 100644 arch/mips/lantiq/xway/devices.h - ---- a/arch/mips/lantiq/Makefile -+++ b/arch/mips/lantiq/Makefile -@@ -4,7 +4,7 @@ - # under the terms of the GNU General Public License version 2 as published - # by the Free Software Foundation. - --obj-y := irq.o setup.o clk.o prom.o -+obj-y := irq.o setup.o clk.o prom.o devices.o - - obj-$(CONFIG_EARLY_PRINTK) += early_printk.o - ---- /dev/null -+++ b/arch/mips/lantiq/devices.c -@@ -0,0 +1,122 @@ -+/* -+ * 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 -+ * by the Free Software Foundation. -+ * -+ * Copyright (C) 2010 John Crispin <blogic@openwrt.org> -+ */ -+ -+#include <linux/init.h> -+#include <linux/module.h> -+#include <linux/types.h> -+#include <linux/string.h> -+#include <linux/kernel.h> -+#include <linux/reboot.h> -+#include <linux/platform_device.h> -+#include <linux/leds.h> -+#include <linux/etherdevice.h> -+#include <linux/reboot.h> -+#include <linux/time.h> -+#include <linux/io.h> -+#include <linux/gpio.h> -+#include <linux/leds.h> -+ -+#include <asm/bootinfo.h> -+#include <asm/irq.h> -+ -+#include <lantiq_soc.h> -+ -+#include "devices.h" -+ -+/* nor flash */ -+static struct resource ltq_nor_resource = { -+ .name = "nor", -+ .start = LTQ_FLASH_START, -+ .end = LTQ_FLASH_START + LTQ_FLASH_MAX - 1, -+ .flags = IORESOURCE_MEM, -+}; -+ -+static struct platform_device ltq_nor = { -+ .name = "ltq_nor", -+ .resource = <q_nor_resource, -+ .num_resources = 1, -+}; -+ -+void __init ltq_register_nor(struct physmap_flash_data *data) -+{ -+ ltq_nor.dev.platform_data = data; -+ platform_device_register(<q_nor); -+} -+ -+/* watchdog */ -+static struct resource ltq_wdt_resource = { -+ .name = "watchdog", -+ .start = LTQ_WDT_BASE_ADDR, -+ .end = LTQ_WDT_BASE_ADDR + LTQ_WDT_SIZE - 1, -+ .flags = IORESOURCE_MEM, -+}; -+ -+void __init ltq_register_wdt(void) -+{ -+ platform_device_register_simple("ltq_wdt", 0, <q_wdt_resource, 1); -+} -+ -+/* asc ports */ -+static struct resource ltq_asc0_resources[] = { -+ { -+ .name = "asc0", -+ .start = LTQ_ASC0_BASE_ADDR, -+ .end = LTQ_ASC0_BASE_ADDR + LTQ_ASC_SIZE - 1, -+ .flags = IORESOURCE_MEM, -+ }, -+ IRQ_RES(tx, LTQ_ASC_TIR(0)), -+ IRQ_RES(rx, LTQ_ASC_RIR(0)), -+ IRQ_RES(err, LTQ_ASC_EIR(0)), -+}; -+ -+static struct resource ltq_asc1_resources[] = { -+ { -+ .name = "asc1", -+ .start = LTQ_ASC1_BASE_ADDR, -+ .end = LTQ_ASC1_BASE_ADDR + LTQ_ASC_SIZE - 1, -+ .flags = IORESOURCE_MEM, -+ }, -+ IRQ_RES(tx, LTQ_ASC_TIR(1)), -+ IRQ_RES(rx, LTQ_ASC_RIR(1)), -+ IRQ_RES(err, LTQ_ASC_EIR(1)), -+}; -+ -+void __init ltq_register_asc(int port) -+{ -+ switch (port) { -+ case 0: -+ platform_device_register_simple("ltq_asc", 0, -+ ltq_asc0_resources, ARRAY_SIZE(ltq_asc0_resources)); -+ break; -+ case 1: -+ platform_device_register_simple("ltq_asc", 1, -+ ltq_asc1_resources, ARRAY_SIZE(ltq_asc1_resources)); -+ break; -+ default: -+ break; -+ } -+} -+ -+#ifdef CONFIG_PCI -+/* pci */ -+static struct platform_device ltq_pci = { -+ .name = "ltq_pci", -+ .num_resources = 0, -+}; -+ -+void __init ltq_register_pci(struct ltq_pci_data *data) -+{ -+ ltq_pci.dev.platform_data = data; -+ platform_device_register(<q_pci); -+} -+#else -+void __init ltq_register_pci(struct ltq_pci_data *data) -+{ -+ pr_err("kernel is compiled without PCI support\n"); -+} -+#endif ---- /dev/null -+++ b/arch/mips/lantiq/devices.h -@@ -0,0 +1,23 @@ -+/* -+ * 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 -+ * by the Free Software Foundation. -+ * -+ * Copyright (C) 2010 John Crispin <blogic@openwrt.org> -+ */ -+ -+#ifndef _LTQ_DEVICES_H__ -+#define _LTQ_DEVICES_H__ -+ -+#include <lantiq_platform.h> -+#include <linux/mtd/physmap.h> -+ -+#define IRQ_RES(resname, irq) \ -+ {.name = #resname, .start = (irq), .flags = IORESOURCE_IRQ} -+ -+extern void ltq_register_nor(struct physmap_flash_data *data); -+extern void ltq_register_wdt(void); -+extern void ltq_register_asc(int port); -+extern void ltq_register_pci(struct ltq_pci_data *data); -+ -+#endif ---- a/arch/mips/lantiq/xway/Makefile -+++ b/arch/mips/lantiq/xway/Makefile -@@ -1,4 +1,4 @@ --obj-y := pmu.o ebu.o reset.o gpio.o -+obj-y := pmu.o ebu.o reset.o gpio.o devices.o - - obj-$(CONFIG_SOC_XWAY) += clk-xway.o prom-xway.o - obj-$(CONFIG_SOC_AMAZON_SE) += clk-ase.o prom-ase.o ---- /dev/null -+++ b/arch/mips/lantiq/xway/devices.c -@@ -0,0 +1,98 @@ -+/* -+ * 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 -+ * by the Free Software Foundation. -+ * -+ * Copyright (C) 2010 John Crispin <blogic@openwrt.org> -+ */ -+ -+#include <linux/init.h> -+#include <linux/module.h> -+#include <linux/types.h> -+#include <linux/string.h> -+#include <linux/mtd/physmap.h> -+#include <linux/kernel.h> -+#include <linux/reboot.h> -+#include <linux/platform_device.h> -+#include <linux/leds.h> -+#include <linux/etherdevice.h> -+#include <linux/reboot.h> -+#include <linux/time.h> -+#include <linux/io.h> -+#include <linux/gpio.h> -+#include <linux/leds.h> -+ -+#include <asm/bootinfo.h> -+#include <asm/irq.h> -+ -+#include <lantiq_soc.h> -+#include <lantiq_irq.h> -+#include <lantiq_platform.h> -+ -+#include "devices.h" -+ -+/* gpio */ -+static struct resource ltq_gpio_resource[] = { -+ { -+ .name = "gpio0", -+ .start = LTQ_GPIO0_BASE_ADDR, -+ .end = LTQ_GPIO0_BASE_ADDR + LTQ_GPIO_SIZE - 1, -+ .flags = IORESOURCE_MEM, -+ }, { -+ .name = "gpio1", -+ .start = LTQ_GPIO1_BASE_ADDR, -+ .end = LTQ_GPIO1_BASE_ADDR + LTQ_GPIO_SIZE - 1, -+ .flags = IORESOURCE_MEM, -+ }, { -+ .name = "gpio2", -+ .start = LTQ_GPIO2_BASE_ADDR, -+ .end = LTQ_GPIO2_BASE_ADDR + LTQ_GPIO_SIZE - 1, -+ .flags = IORESOURCE_MEM, -+ } -+}; -+ -+void __init ltq_register_gpio(void) -+{ -+ platform_device_register_simple("ltq_gpio", 0, -+ <q_gpio_resource[0], 1); -+ platform_device_register_simple("ltq_gpio", 1, -+ <q_gpio_resource[1], 1); -+ -+ /* AR9 and VR9 have an extra gpio block */ -+ if (ltq_is_ar9() || ltq_is_vr9()) { -+ platform_device_register_simple("ltq_gpio", 2, -+ <q_gpio_resource[2], 1); -+ } -+} -+ -+/* serial to parallel conversion */ -+static struct resource ltq_stp_resource = { -+ .name = "stp", -+ .start = LTQ_STP_BASE_ADDR, -+ .end = LTQ_STP_BASE_ADDR + LTQ_STP_SIZE - 1, -+ .flags = IORESOURCE_MEM, -+}; -+ -+void __init ltq_register_gpio_stp(void) -+{ -+ platform_device_register_simple("ltq_stp", 0, <q_stp_resource, 1); -+} -+ -+/* asc ports - amazon se has its own serial mapping */ -+static struct resource ltq_ase_asc_resources[] = { -+ { -+ .name = "asc0", -+ .start = LTQ_ASC1_BASE_ADDR, -+ .end = LTQ_ASC1_BASE_ADDR + LTQ_ASC_SIZE - 1, -+ .flags = IORESOURCE_MEM, -+ }, -+ IRQ_RES(tx, LTQ_ASC_ASE_TIR), -+ IRQ_RES(rx, LTQ_ASC_ASE_RIR), -+ IRQ_RES(err, LTQ_ASC_ASE_EIR), -+}; -+ -+void __init ltq_register_ase_asc(void) -+{ -+ platform_device_register_simple("ltq_asc", 0, -+ ltq_ase_asc_resources, ARRAY_SIZE(ltq_ase_asc_resources)); -+} ---- /dev/null -+++ b/arch/mips/lantiq/xway/devices.h -@@ -0,0 +1,18 @@ -+/* -+ * 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 -+ * by the Free Software Foundation. -+ * -+ * Copyright (C) 2010 John Crispin <blogic@openwrt.org> -+ */ -+ -+#ifndef _LTQ_DEVICES_XWAY_H__ -+#define _LTQ_DEVICES_XWAY_H__ -+ -+#include "../devices.h" -+ -+extern void ltq_register_gpio(void); -+extern void ltq_register_gpio_stp(void); -+extern void ltq_register_ase_asc(void); -+ -+#endif |