diff options
Diffstat (limited to 'ANDROID_3.4.5/arch/x86/platform/geode')
-rw-r--r-- | ANDROID_3.4.5/arch/x86/platform/geode/Makefile | 3 | ||||
-rw-r--r-- | ANDROID_3.4.5/arch/x86/platform/geode/alix.c | 200 | ||||
-rw-r--r-- | ANDROID_3.4.5/arch/x86/platform/geode/geos.c | 128 | ||||
-rw-r--r-- | ANDROID_3.4.5/arch/x86/platform/geode/net5501.c | 154 |
4 files changed, 0 insertions, 485 deletions
diff --git a/ANDROID_3.4.5/arch/x86/platform/geode/Makefile b/ANDROID_3.4.5/arch/x86/platform/geode/Makefile deleted file mode 100644 index 5b51194f..00000000 --- a/ANDROID_3.4.5/arch/x86/platform/geode/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -obj-$(CONFIG_ALIX) += alix.o -obj-$(CONFIG_NET5501) += net5501.o -obj-$(CONFIG_GEOS) += geos.o diff --git a/ANDROID_3.4.5/arch/x86/platform/geode/alix.c b/ANDROID_3.4.5/arch/x86/platform/geode/alix.c deleted file mode 100644 index 90e23e76..00000000 --- a/ANDROID_3.4.5/arch/x86/platform/geode/alix.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - * System Specific setup for PCEngines ALIX. - * At the moment this means setup of GPIO control of LEDs - * on Alix.2/3/6 boards. - * - * - * Copyright (C) 2008 Constantin Baranov <const@mimas.ru> - * Copyright (C) 2011 Ed Wildgoose <kernel@wildgooses.com> - * and Philip Prindeville <philipp@redfish-solutions.com> - * - * TODO: There are large similarities with leds-net5501.c - * by Alessandro Zummo <a.zummo@towertech.it> - * In the future leds-net5501.c should be migrated over to platform - * - * 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 <linux/dmi.h> - -#include <asm/geode.h> - -#define BIOS_SIGNATURE_TINYBIOS 0xf0000 -#define BIOS_SIGNATURE_COREBOOT 0x500 -#define BIOS_REGION_SIZE 0x10000 - -static bool force = 0; -module_param(force, bool, 0444); -/* FIXME: Award bios is not automatically detected as Alix platform */ -MODULE_PARM_DESC(force, "Force detection as ALIX.2/ALIX.3 platform"); - -static struct gpio_keys_button alix_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 alix_buttons_data = { - .buttons = alix_gpio_buttons, - .nbuttons = ARRAY_SIZE(alix_gpio_buttons), - .poll_interval = 20, -}; - -static struct platform_device alix_buttons_dev = { - .name = "gpio-keys-polled", - .id = 1, - .dev = { - .platform_data = &alix_buttons_data, - } -}; - -static struct gpio_led alix_leds[] = { - { - .name = "alix:1", - .gpio = 6, - .default_trigger = "default-on", - .active_low = 1, - }, - { - .name = "alix:2", - .gpio = 25, - .default_trigger = "default-off", - .active_low = 1, - }, - { - .name = "alix:3", - .gpio = 27, - .default_trigger = "default-off", - .active_low = 1, - }, -}; - -static struct gpio_led_platform_data alix_leds_data = { - .num_leds = ARRAY_SIZE(alix_leds), - .leds = alix_leds, -}; - -static struct platform_device alix_leds_dev = { - .name = "leds-gpio", - .id = -1, - .dev.platform_data = &alix_leds_data, -}; - -static struct __initdata platform_device *alix_devs[] = { - &alix_buttons_dev, - &alix_leds_dev, -}; - -static void __init register_alix(void) -{ - /* Setup LED control through leds-gpio driver */ - platform_add_devices(alix_devs, ARRAY_SIZE(alix_devs)); -} - -static bool __init alix_present(unsigned long bios_phys, - const char *alix_sig, - size_t alix_sig_len) -{ - const size_t bios_len = BIOS_REGION_SIZE; - const char *bios_virt; - const char *scan_end; - const char *p; - char name[64]; - - if (force) { - printk(KERN_NOTICE "%s: forced to skip BIOS test, " - "assume system is ALIX.2/ALIX.3\n", - KBUILD_MODNAME); - return true; - } - - bios_virt = phys_to_virt(bios_phys); - scan_end = bios_virt + bios_len - (alix_sig_len + 2); - for (p = bios_virt; p < scan_end; p++) { - const char *tail; - char *a; - - if (memcmp(p, alix_sig, alix_sig_len) != 0) - continue; - - memcpy(name, p, sizeof(name)); - - /* remove the first \0 character from string */ - a = strchr(name, '\0'); - if (a) - *a = ' '; - - /* cut the string at a newline */ - a = strchr(name, '\r'); - if (a) - *a = '\0'; - - tail = p + alix_sig_len; - if ((tail[0] == '2' || tail[0] == '3' || tail[0] == '6')) { - printk(KERN_INFO - "%s: system is recognized as \"%s\"\n", - KBUILD_MODNAME, name); - return true; - } - } - - return false; -} - -static bool __init alix_present_dmi(void) -{ - const char *vendor, *product; - - vendor = dmi_get_system_info(DMI_SYS_VENDOR); - if (!vendor || strcmp(vendor, "PC Engines")) - return false; - - product = dmi_get_system_info(DMI_PRODUCT_NAME); - if (!product || (strcmp(product, "ALIX.2D") && strcmp(product, "ALIX.6"))) - return false; - - printk(KERN_INFO "%s: system is recognized as \"%s %s\"\n", - KBUILD_MODNAME, vendor, product); - - return true; -} - -static int __init alix_init(void) -{ - const char tinybios_sig[] = "PC Engines ALIX."; - const char coreboot_sig[] = "PC Engines\0ALIX."; - - if (!is_geode()) - return 0; - - if (alix_present(BIOS_SIGNATURE_TINYBIOS, tinybios_sig, sizeof(tinybios_sig) - 1) || - alix_present(BIOS_SIGNATURE_COREBOOT, coreboot_sig, sizeof(coreboot_sig) - 1) || - alix_present_dmi()) - register_alix(); - - return 0; -} - -module_init(alix_init); - -MODULE_AUTHOR("Ed Wildgoose <kernel@wildgooses.com>"); -MODULE_DESCRIPTION("PCEngines ALIX System Setup"); -MODULE_LICENSE("GPL"); diff --git a/ANDROID_3.4.5/arch/x86/platform/geode/geos.c b/ANDROID_3.4.5/arch/x86/platform/geode/geos.c deleted file mode 100644 index c2e6d535..00000000 --- a/ANDROID_3.4.5/arch/x86/platform/geode/geos.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - * System Specific setup for Traverse Technologies GEOS. - * At the moment this means setup of GPIO control of LEDs. - * - * Copyright (C) 2008 Constantin Baranov <const@mimas.ru> - * Copyright (C) 2011 Ed Wildgoose <kernel@wildgooses.com> - * and Philip Prindeville <philipp@redfish-solutions.com> - * - * TODO: There are large similarities with leds-net5501.c - * by Alessandro Zummo <a.zummo@towertech.it> - * In the future leds-net5501.c should be migrated over to platform - * - * 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 <linux/dmi.h> - -#include <asm/geode.h> - -static struct gpio_keys_button geos_gpio_buttons[] = { - { - .code = KEY_RESTART, - .gpio = 3, - .active_low = 1, - .desc = "Reset button", - .type = EV_KEY, - .wakeup = 0, - .debounce_interval = 100, - .can_disable = 0, - } -}; -static struct gpio_keys_platform_data geos_buttons_data = { - .buttons = geos_gpio_buttons, - .nbuttons = ARRAY_SIZE(geos_gpio_buttons), - .poll_interval = 20, -}; - -static struct platform_device geos_buttons_dev = { - .name = "gpio-keys-polled", - .id = 1, - .dev = { - .platform_data = &geos_buttons_data, - } -}; - -static struct gpio_led geos_leds[] = { - { - .name = "geos:1", - .gpio = 6, - .default_trigger = "default-on", - .active_low = 1, - }, - { - .name = "geos:2", - .gpio = 25, - .default_trigger = "default-off", - .active_low = 1, - }, - { - .name = "geos:3", - .gpio = 27, - .default_trigger = "default-off", - .active_low = 1, - }, -}; - -static struct gpio_led_platform_data geos_leds_data = { - .num_leds = ARRAY_SIZE(geos_leds), - .leds = geos_leds, -}; - -static struct platform_device geos_leds_dev = { - .name = "leds-gpio", - .id = -1, - .dev.platform_data = &geos_leds_data, -}; - -static struct __initdata platform_device *geos_devs[] = { - &geos_buttons_dev, - &geos_leds_dev, -}; - -static void __init register_geos(void) -{ - /* Setup LED control through leds-gpio driver */ - platform_add_devices(geos_devs, ARRAY_SIZE(geos_devs)); -} - -static int __init geos_init(void) -{ - const char *vendor, *product; - - if (!is_geode()) - return 0; - - vendor = dmi_get_system_info(DMI_SYS_VENDOR); - if (!vendor || strcmp(vendor, "Traverse Technologies")) - return 0; - - product = dmi_get_system_info(DMI_PRODUCT_NAME); - if (!product || strcmp(product, "Geos")) - return 0; - - printk(KERN_INFO "%s: system is recognized as \"%s %s\"\n", - KBUILD_MODNAME, vendor, product); - - register_geos(); - - return 0; -} - -module_init(geos_init); - -MODULE_AUTHOR("Philip Prindeville <philipp@redfish-solutions.com>"); -MODULE_DESCRIPTION("Traverse Technologies Geos System Setup"); -MODULE_LICENSE("GPL"); diff --git a/ANDROID_3.4.5/arch/x86/platform/geode/net5501.c b/ANDROID_3.4.5/arch/x86/platform/geode/net5501.c deleted file mode 100644 index 646e3b5b..00000000 --- a/ANDROID_3.4.5/arch/x86/platform/geode/net5501.c +++ /dev/null @@ -1,154 +0,0 @@ -/* - * 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 = 0, - }, -}; - -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"); |