diff options
Diffstat (limited to 'target/linux/x86/patches-3.2/005-net5501_platform.patch')
-rw-r--r-- | target/linux/x86/patches-3.2/005-net5501_platform.patch | 307 |
1 files changed, 0 insertions, 307 deletions
diff --git a/target/linux/x86/patches-3.2/005-net5501_platform.patch b/target/linux/x86/patches-3.2/005-net5501_platform.patch deleted file mode 100644 index 290e79a022..0000000000 --- a/target/linux/x86/patches-3.2/005-net5501_platform.patch +++ /dev/null @@ -1,307 +0,0 @@ ---- a/arch/x86/Kconfig -+++ b/arch/x86/Kconfig -@@ -2097,6 +2097,12 @@ config GEOS - ---help--- - This option enables system support for the Traverse Technologies GEOS. - -+config NET5501 -+ bool "Soekris Engineering net5501 System Support (LEDS, GPIO, etc)" -+ select GPIOLIB -+ ---help--- -+ This option enables system support for the Soekris Engineering net5501. -+ - endif # X86_32 - - config AMD_NB ---- a/arch/x86/platform/geode/Makefile -+++ b/arch/x86/platform/geode/Makefile -@@ -1,2 +1,3 @@ - obj-$(CONFIG_ALIX) += alix.o -+obj-$(CONFIG_NET5501) += net5501.o - obj-$(CONFIG_GEOS) += geos.o ---- /dev/null -+++ b/arch/x86/platform/geode/net5501.c -@@ -0,0 +1,154 @@ -+/* -+ * System Specific setup for Soekris net5501 -+ * At the moment this means setup of GPIO control of LEDs and buttons -+ * on net5501 boards. -+ * -+ * -+ * Copyright (C) 2008-2009 Tower Technologies -+ * Written by Alessandro Zummo <a.zummo@towertech.it> -+ * -+ * Copyright (C) 2008 Constantin Baranov <const@mimas.ru> -+ * Copyright (C) 2011 Ed Wildgoose <kernel@wildgooses.com> -+ * and Philip Prindeville <philipp@redfish-solutions.com> -+ * -+ * 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. -+ */ -+ -+#include <linux/kernel.h> -+#include <linux/init.h> -+#include <linux/io.h> -+#include <linux/string.h> -+#include <linux/module.h> -+#include <linux/leds.h> -+#include <linux/platform_device.h> -+#include <linux/gpio.h> -+#include <linux/input.h> -+#include <linux/gpio_keys.h> -+ -+#include <asm/geode.h> -+ -+#define BIOS_REGION_BASE 0xffff0000 -+#define BIOS_REGION_SIZE 0x00010000 -+ -+static struct gpio_keys_button net5501_gpio_buttons[] = { -+ { -+ .code = KEY_RESTART, -+ .gpio = 24, -+ .active_low = 1, -+ .desc = "Reset button", -+ .type = EV_KEY, -+ .wakeup = 0, -+ .debounce_interval = 100, -+ .can_disable = 0, -+ } -+}; -+static struct gpio_keys_platform_data net5501_buttons_data = { -+ .buttons = net5501_gpio_buttons, -+ .nbuttons = ARRAY_SIZE(net5501_gpio_buttons), -+ .poll_interval = 20, -+}; -+ -+static struct platform_device net5501_buttons_dev = { -+ .name = "gpio-keys-polled", -+ .id = 1, -+ .dev = { -+ .platform_data = &net5501_buttons_data, -+ } -+}; -+ -+static struct gpio_led net5501_leds[] = { -+ { -+ .name = "net5501:1", -+ .gpio = 6, -+ .default_trigger = "default-on", -+ .active_low = 1, -+ }, -+}; -+ -+static struct gpio_led_platform_data net5501_leds_data = { -+ .num_leds = ARRAY_SIZE(net5501_leds), -+ .leds = net5501_leds, -+}; -+ -+static struct platform_device net5501_leds_dev = { -+ .name = "leds-gpio", -+ .id = -1, -+ .dev.platform_data = &net5501_leds_data, -+}; -+ -+static struct __initdata platform_device *net5501_devs[] = { -+ &net5501_buttons_dev, -+ &net5501_leds_dev, -+}; -+ -+static void __init register_net5501(void) -+{ -+ /* Setup LED control through leds-gpio driver */ -+ platform_add_devices(net5501_devs, ARRAY_SIZE(net5501_devs)); -+} -+ -+struct net5501_board { -+ u16 offset; -+ u16 len; -+ char *sig; -+}; -+ -+static struct net5501_board __initdata boards[] = { -+ { 0xb7b, 7, "net5501" }, /* net5501 v1.33/1.33c */ -+ { 0xb1f, 7, "net5501" }, /* net5501 v1.32i */ -+}; -+ -+static bool __init net5501_present(void) -+{ -+ int i; -+ unsigned char *rombase, *bios; -+ bool found = false; -+ -+ rombase = ioremap(BIOS_REGION_BASE, BIOS_REGION_SIZE - 1); -+ if (!rombase) { -+ printk(KERN_ERR "%s: failed to get rombase\n", KBUILD_MODNAME); -+ return found; -+ } -+ -+ bios = rombase + 0x20; /* null terminated */ -+ -+ if (memcmp(bios, "comBIOS", 7)) -+ goto unmap; -+ -+ for (i = 0; i < ARRAY_SIZE(boards); i++) { -+ unsigned char *model = rombase + boards[i].offset; -+ -+ if (!memcmp(model, boards[i].sig, boards[i].len)) { -+ printk(KERN_INFO "%s: system is recognized as \"%s\"\n", -+ KBUILD_MODNAME, model); -+ -+ found = true; -+ break; -+ } -+ } -+ -+unmap: -+ iounmap(rombase); -+ return found; -+} -+ -+static int __init net5501_init(void) -+{ -+ if (!is_geode()) -+ return 0; -+ -+ if (!net5501_present()) -+ return 0; -+ -+ register_net5501(); -+ -+ return 0; -+} -+ -+module_init(net5501_init); -+ -+MODULE_AUTHOR("Philip Prindeville <philipp@redfish-solutions.com>"); -+MODULE_DESCRIPTION("Soekris net5501 System Setup"); -+MODULE_LICENSE("GPL"); ---- a/drivers/leds/leds-net5501.c -+++ /dev/null -@@ -1,97 +0,0 @@ --/* -- * Soekris board support code -- * -- * Copyright (C) 2008-2009 Tower Technologies -- * Written by Alessandro Zummo <a.zummo@towertech.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 by the Free Software Foundation. -- */ -- --#include <linux/kernel.h> --#include <linux/init.h> --#include <linux/io.h> --#include <linux/string.h> --#include <linux/leds.h> --#include <linux/platform_device.h> --#include <linux/gpio.h> --#include <linux/module.h> -- --#include <asm/geode.h> -- --static const struct gpio_led net5501_leds[] = { -- { -- .name = "error", -- .gpio = 6, -- .default_trigger = "default-on", -- }, --}; -- --static struct gpio_led_platform_data net5501_leds_data = { -- .num_leds = ARRAY_SIZE(net5501_leds), -- .leds = net5501_leds, --}; -- --static struct platform_device net5501_leds_dev = { -- .name = "leds-gpio", -- .id = -1, -- .dev.platform_data = &net5501_leds_data, --}; -- --static void __init init_net5501(void) --{ -- platform_device_register(&net5501_leds_dev); --} -- --struct soekris_board { -- u16 offset; -- char *sig; -- u8 len; -- void (*init)(void); --}; -- --static struct soekris_board __initdata boards[] = { -- { 0xb7b, "net5501", 7, init_net5501 }, /* net5501 v1.33/1.33c */ -- { 0xb1f, "net5501", 7, init_net5501 }, /* net5501 v1.32i */ --}; -- --static int __init soekris_init(void) --{ -- int i; -- unsigned char *rombase, *bios; -- -- if (!is_geode()) -- return 0; -- -- rombase = ioremap(0xffff0000, 0xffff); -- if (!rombase) { -- printk(KERN_INFO "Soekris net5501 LED driver failed to get rombase"); -- return 0; -- } -- -- bios = rombase + 0x20; /* null terminated */ -- -- if (strncmp(bios, "comBIOS", 7)) -- goto unmap; -- -- for (i = 0; i < ARRAY_SIZE(boards); i++) { -- unsigned char *model = rombase + boards[i].offset; -- -- if (strncmp(model, boards[i].sig, boards[i].len) == 0) { -- printk(KERN_INFO "Soekris %s: %s\n", model, bios); -- -- if (boards[i].init) -- boards[i].init(); -- break; -- } -- } -- --unmap: -- iounmap(rombase); -- return 0; --} -- --arch_initcall(soekris_init); -- --MODULE_LICENSE("GPL"); ---- a/drivers/leds/Kconfig -+++ b/drivers/leds/Kconfig -@@ -89,16 +89,6 @@ config LEDS_NET48XX - This option enables support for the Soekris net4801 and net4826 error - LED. - --config LEDS_NET5501 -- tristate "LED Support for Soekris net5501 series Error LED" -- depends on LEDS_TRIGGERS -- depends on X86 && GPIO_CS5535 -- select LEDS_TRIGGER_DEFAULT_ON -- default n -- help -- Add support for the Soekris net5501 board (detection, error led -- and GPIO). -- - config LEDS_FSG - tristate "LED Support for the Freecom FSG-3" - depends on LEDS_CLASS ---- a/drivers/leds/Makefile -+++ b/drivers/leds/Makefile -@@ -14,7 +14,6 @@ obj-$(CONFIG_LEDS_MIKROTIK_RB532) += led - obj-$(CONFIG_LEDS_S3C24XX) += leds-s3c24xx.o - obj-$(CONFIG_LEDS_AMS_DELTA) += leds-ams-delta.o - obj-$(CONFIG_LEDS_NET48XX) += leds-net48xx.o --obj-$(CONFIG_LEDS_NET5501) += leds-net5501.o - obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o - obj-$(CONFIG_LEDS_COBALT_QUBE) += leds-cobalt-qube.o - obj-$(CONFIG_LEDS_COBALT_RAQ) += leds-cobalt-raq.o |