diff options
Diffstat (limited to 'recipes-kernel/linux/linux-handheld-4.0/poodle')
5 files changed, 856 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-handheld-4.0/poodle/0001-ARM-pxa-add-gpio-charger-configuration-on-poodle.patch b/recipes-kernel/linux/linux-handheld-4.0/poodle/0001-ARM-pxa-add-gpio-charger-configuration-on-poodle.patch new file mode 100644 index 0000000..0733967 --- /dev/null +++ b/recipes-kernel/linux/linux-handheld-4.0/poodle/0001-ARM-pxa-add-gpio-charger-configuration-on-poodle.patch @@ -0,0 +1,59 @@ +From 326abbbaca8943824dd72a8db3e9ed907a7fca5f Mon Sep 17 00:00:00 2001 +From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> +Date: Tue, 2 Dec 2014 20:20:40 +0300 +Subject: [PATCH 01/04] ARM: pxa: add gpio-charger configuration on poodle + +Add declration of gpio-charger device for Sharp SL-5600 poodle device. + +Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> +--- + arch/arm/mach-pxa/poodle.c | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c +index 6002112..4dd29a7 100644 +--- a/arch/arm/mach-pxa/poodle.c ++++ b/arch/arm/mach-pxa/poodle.c +@@ -31,6 +31,7 @@ + #include <linux/spi/ads7846.h> + #include <linux/spi/pxa2xx_spi.h> + #include <linux/mtd/sharpsl.h> ++#include <linux/power/gpio-charger.h> + #include <linux/memblock.h> + #include <linux/iio/machine.h> + #include <linux/mfd/locomo.h> +@@ -413,12 +414,31 @@ static struct platform_device sharpsl_rom_device = { + .dev.platform_data = &sharpsl_rom_data, + }; + ++static char *poodle_ac_supplied_to[] = { ++ "main-battery", ++}; ++ ++static struct gpio_charger_platform_data poodle_power_data = { ++ .name = "charger", ++ .type = POWER_SUPPLY_TYPE_MAINS, ++ .gpio = POODLE_GPIO_AC_IN, ++ .supplied_to = poodle_ac_supplied_to, ++ .num_supplicants = ARRAY_SIZE(poodle_ac_supplied_to), ++}; ++ ++static struct platform_device poodle_power_device = { ++ .name = "gpio-charger", ++ .id = -1, ++ .dev.platform_data = &poodle_power_data, ++}; ++ + static struct platform_device *devices[] __initdata = { + &poodle_locomo_device, + &poodle_scoop_device, + &poodle_audio_device, + &sharpsl_nand_device, + &sharpsl_rom_device, ++ &poodle_power_device, + }; + + static struct i2c_board_info __initdata poodle_i2c_devices[] = { +-- +1.9.1 + diff --git a/recipes-kernel/linux/linux-handheld-4.0/poodle/0002-ARM-pxa-poodle-add-gpio-keys-configuration.patch b/recipes-kernel/linux/linux-handheld-4.0/poodle/0002-ARM-pxa-poodle-add-gpio-keys-configuration.patch new file mode 100644 index 0000000..6d67268 --- /dev/null +++ b/recipes-kernel/linux/linux-handheld-4.0/poodle/0002-ARM-pxa-poodle-add-gpio-keys-configuration.patch @@ -0,0 +1,76 @@ +From 0939a5b7a9711457895655467dfb6f0fe6933834 Mon Sep 17 00:00:00 2001 +From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> +Date: Wed, 24 Dec 2014 01:42:55 +0300 +Subject: [PATCH 02/04] ARM: pxa: poodle: add gpio-keys configuration + +Support setting wakeup sources through the two gpio keys - On button and +'Sync' key present on cradle. + +Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> +--- + arch/arm/mach-pxa/poodle.c | 35 +++++++++++++++++++++++++++++++++++ + 1 file changed, 35 insertions(+) + +diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c +index 4dd29a7..596e756 100644 +--- a/arch/arm/mach-pxa/poodle.c ++++ b/arch/arm/mach-pxa/poodle.c +@@ -35,6 +35,8 @@ + #include <linux/memblock.h> + #include <linux/iio/machine.h> + #include <linux/mfd/locomo.h> ++#include <linux/gpio_keys.h> ++#include <linux/input.h> + + #include <mach/hardware.h> + #include <asm/mach-types.h> +@@ -161,6 +163,38 @@ static struct scoop_pcmcia_config poodle_pcmcia_config = { + + EXPORT_SYMBOL(poodle_scoop_device); + ++static struct gpio_keys_button poodle_gpio_keys[] = { ++ { ++ .type = EV_PWR, ++ .code = KEY_RESERVED, ++ .gpio = POODLE_GPIO_ON_KEY, ++ .desc = "On key", ++ .wakeup = 1, ++ .active_low = 1, ++ }, ++ { ++ .type = EV_PWR, ++ .code = KEY_WAKEUP, ++ .gpio = POODLE_GPIO_WAKEUP, ++ .desc = "Sync", ++ .wakeup = 1, ++ .active_low = 1, ++ }, ++}; ++ ++static struct gpio_keys_platform_data poodle_gpio_keys_data = { ++ .buttons = poodle_gpio_keys, ++ .nbuttons = ARRAY_SIZE(poodle_gpio_keys), ++}; ++ ++static struct platform_device poodle_gpio_keys_device = { ++ .name = "gpio-keys", ++ .id = -1, ++ .dev = { ++ .platform_data = &poodle_gpio_keys_data, ++ }, ++}; ++ + + static struct platform_device poodle_audio_device = { + .name = "poodle-audio", +@@ -436,6 +470,7 @@ static struct platform_device *devices[] __initdata = { + &poodle_locomo_device, + &poodle_scoop_device, + &poodle_audio_device, ++ &poodle_gpio_keys_device, + &sharpsl_nand_device, + &sharpsl_rom_device, + &poodle_power_device, +-- +1.9.1 + diff --git a/recipes-kernel/linux/linux-handheld-4.0/poodle/0003-ARM-pxa-declare-battery-device-on-poodle.patch b/recipes-kernel/linux/linux-handheld-4.0/poodle/0003-ARM-pxa-declare-battery-device-on-poodle.patch new file mode 100644 index 0000000..f75c72c --- /dev/null +++ b/recipes-kernel/linux/linux-handheld-4.0/poodle/0003-ARM-pxa-declare-battery-device-on-poodle.patch @@ -0,0 +1,39 @@ +From 334353f837455e036445880d106415d3d4432b01 Mon Sep 17 00:00:00 2001 +From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> +Date: Tue, 2 Dec 2014 20:34:50 +0300 +Subject: [PATCH 03/04] ARM: pxa: declare battery device on poodle + +Declare a battery platform device for SL-5600 (poodle) platform. + +Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> +--- + arch/arm/mach-pxa/poodle.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c +index 596e756..90d679a 100644 +--- a/arch/arm/mach-pxa/poodle.c ++++ b/arch/arm/mach-pxa/poodle.c +@@ -466,6 +466,11 @@ static struct platform_device poodle_power_device = { + .dev.platform_data = &poodle_power_data, + }; + ++static struct platform_device poodle_battery_device = { ++ .name = "poodle-battery", ++ .id = -1, ++}; ++ + static struct platform_device *devices[] __initdata = { + &poodle_locomo_device, + &poodle_scoop_device, +@@ -474,6 +479,7 @@ static struct platform_device *devices[] __initdata = { + &sharpsl_nand_device, + &sharpsl_rom_device, + &poodle_power_device, ++ &poodle_battery_device, + }; + + static struct i2c_board_info __initdata poodle_i2c_devices[] = { +-- +1.9.1 + diff --git a/recipes-kernel/linux/linux-handheld-4.0/poodle/0004-power-add-poodle-battery-driver.patch b/recipes-kernel/linux/linux-handheld-4.0/poodle/0004-power-add-poodle-battery-driver.patch new file mode 100644 index 0000000..1268dc8 --- /dev/null +++ b/recipes-kernel/linux/linux-handheld-4.0/poodle/0004-power-add-poodle-battery-driver.patch @@ -0,0 +1,307 @@ +From da5b9945a361dd6dfc060cbca45fffff6889d992 Mon Sep 17 00:00:00 2001 +From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> +Date: Wed, 3 Dec 2014 02:56:33 +0300 +Subject: [PATCH 04/04] power: add poodle battery driver + +Add a driver supporting battery charging on Sharp SL-5600 (poodle). +Voltage and temperature readings are provided through add7846 hwmon +interface. Battery voltage is in1_input (mV) and temp in in0_input +(values unknown, but should be less than 2441). + +Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> +--- + drivers/power/Kconfig | 7 ++ + drivers/power/Makefile | 1 + + drivers/power/poodle_battery.c | 250 +++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 258 insertions(+) + create mode 100644 drivers/power/poodle_battery.c + +diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig +index 27b751b..678f23e 100644 +--- a/drivers/power/Kconfig ++++ b/drivers/power/Kconfig +@@ -137,6 +137,13 @@ config BATTERY_COLLIE + Say Y to enable support for the battery on the Sharp Zaurus + SL-5500 (collie) models. + ++config BATTERY_POODLE ++ tristate "Sharp SL-5600 (poodle) battery" ++ depends on MACH_POODLE ++ help ++ Say Y to enable support for the battery on the Sharp Zaurus ++ SL-5600 (poodle) models. ++ + config BATTERY_IPAQ_MICRO + tristate "iPAQ Atmel Micro ASIC battery driver" + depends on MFD_IPAQ_MICRO +diff --git a/drivers/power/Makefile b/drivers/power/Makefile +index 36f9e0d..ff3e793 100644 +--- a/drivers/power/Makefile ++++ b/drivers/power/Makefile +@@ -26,6 +26,7 @@ obj-$(CONFIG_BATTERY_PMU) += pmu_battery.o + obj-$(CONFIG_BATTERY_OLPC) += olpc_battery.o + obj-$(CONFIG_BATTERY_TOSA) += tosa_battery.o + obj-$(CONFIG_BATTERY_COLLIE) += collie_battery.o ++obj-$(CONFIG_BATTERY_POODLE) += poodle_battery.o + obj-$(CONFIG_BATTERY_IPAQ_MICRO) += ipaq_micro_battery.o + obj-$(CONFIG_BATTERY_WM97XX) += wm97xx_battery.o + obj-$(CONFIG_BATTERY_SBS) += sbs-battery.o +diff --git a/drivers/power/poodle_battery.c b/drivers/power/poodle_battery.c +new file mode 100644 +index 0000000..ad96e13 +--- /dev/null ++++ b/drivers/power/poodle_battery.c +@@ -0,0 +1,250 @@ ++/* ++ * Battery handler for Sharp SL-5600 Poodle device ++ * ++ * Copyright (c) 2014 Dmitry Eremin-Solenikov ++ * ++ * 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/delay.h> ++#include <linux/gpio.h> ++#include <linux/interrupt.h> ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/platform_device.h> ++#include <linux/power_supply.h> ++ ++#include <mach/poodle.h> ++ ++struct poodle_bat { ++ int status; ++ struct power_supply psy; ++ ++ struct mutex work_lock; /* protects data */ ++ ++ bool (*is_present)(struct poodle_bat *bat); ++ int technology; ++}; ++ ++static DEFINE_MUTEX(bat_lock); /* protects gpio pins */ ++static struct work_struct bat_work; ++ ++static struct poodle_bat poodle_bat_main; ++ ++static int poodle_bat_get_property(struct power_supply *psy, ++ enum power_supply_property psp, ++ union power_supply_propval *val) ++{ ++ int ret = 0; ++ struct poodle_bat *bat = container_of(psy, struct poodle_bat, psy); ++ ++ if (bat->is_present && !bat->is_present(bat) ++ && psp != POWER_SUPPLY_PROP_PRESENT) { ++ return -ENODEV; ++ } ++ ++ switch (psp) { ++ case POWER_SUPPLY_PROP_STATUS: ++ val->intval = bat->status; ++ break; ++ case POWER_SUPPLY_PROP_TECHNOLOGY: ++ val->intval = bat->technology; ++ break; ++ case POWER_SUPPLY_PROP_PRESENT: ++ val->intval = bat->is_present ? bat->is_present(bat) : 1; ++ break; ++ default: ++ ret = -EINVAL; ++ break; ++ } ++ return ret; ++} ++ ++static bool poodle_bat_is_present(struct poodle_bat *bat) ++{ ++ return gpio_get_value(POODLE_GPIO_BAT_COVER); ++} ++ ++static void poodle_bat_external_power_changed(struct power_supply *psy) ++{ ++ schedule_work(&bat_work); ++} ++ ++static irqreturn_t poodle_bat_gpio_isr(int irq, void *data) ++{ ++ pr_info("poodle_bat_gpio irq\n"); ++ schedule_work(&bat_work); ++ return IRQ_HANDLED; ++} ++ ++static void poodle_bat_update(struct poodle_bat *bat) ++{ ++ int old; ++ struct power_supply *psy = &bat->psy; ++ ++ mutex_lock(&bat->work_lock); ++ ++ old = bat->status; ++ ++ if (bat->is_present && !bat->is_present(bat)) { ++ pr_info("%s not present\n", psy->name); ++ bat->status = POWER_SUPPLY_STATUS_UNKNOWN; ++ gpio_set_value(POODLE_GPIO_JK_B, 0); ++ gpio_set_value(POODLE_GPIO_CHRG_ON, 0); ++ } else if (power_supply_am_i_supplied(psy)) { ++ gpio_set_value(POODLE_GPIO_JK_B, 1); ++ if (bat->status == POWER_SUPPLY_STATUS_DISCHARGING) { ++ gpio_set_value(POODLE_GPIO_CHRG_ON, 1); ++ msleep(20); ++ } ++ ++ if (gpio_get_value(POODLE_GPIO_CHRG_FULL)) { ++ gpio_set_value(POODLE_GPIO_CHRG_ON, 0); ++ bat->status = POWER_SUPPLY_STATUS_FULL; ++ } else { ++ gpio_set_value(POODLE_GPIO_CHRG_ON, 1); ++ bat->status = POWER_SUPPLY_STATUS_CHARGING; ++ } ++ } else { ++ gpio_set_value(POODLE_GPIO_JK_B, 0); ++ gpio_set_value(POODLE_GPIO_CHRG_ON, 0); ++ bat->status = POWER_SUPPLY_STATUS_DISCHARGING; ++ } ++ ++ if (old != bat->status) ++ power_supply_changed(psy); ++ ++ mutex_unlock(&bat->work_lock); ++} ++ ++static void poodle_bat_work(struct work_struct *work) ++{ ++ poodle_bat_update(&poodle_bat_main); ++} ++ ++static enum power_supply_property poodle_bat_main_props[] = { ++ POWER_SUPPLY_PROP_STATUS, ++ POWER_SUPPLY_PROP_TECHNOLOGY, ++ POWER_SUPPLY_PROP_PRESENT, ++}; ++ ++static struct poodle_bat poodle_bat_main = { ++ .status = POWER_SUPPLY_STATUS_DISCHARGING, ++ .psy = { ++ .name = "main-battery", ++ .type = POWER_SUPPLY_TYPE_BATTERY, ++ .properties = poodle_bat_main_props, ++ .num_properties = ARRAY_SIZE(poodle_bat_main_props), ++ .get_property = poodle_bat_get_property, ++ .external_power_changed = poodle_bat_external_power_changed, ++ .use_for_apm = 1, ++ }, ++ ++ .is_present = poodle_bat_is_present, ++ ++ .technology = POWER_SUPPLY_TECHNOLOGY_LIPO, ++}; ++ ++static struct gpio poodle_batt_gpios[] = { ++ { POODLE_GPIO_BAT_COVER, GPIOF_IN, "main battery cover" }, ++ { POODLE_GPIO_CHRG_FULL, GPIOF_IN, "main battery full" }, ++ { POODLE_GPIO_JK_B, GPIOF_OUT_INIT_LOW, "main charge on" }, ++ { POODLE_GPIO_CHRG_ON, GPIOF_OUT_INIT_LOW, "main charge on" }, ++ { POODLE_GPIO_BYPASS_ON, GPIOF_OUT_INIT_LOW, "main charge bypass" }, ++ /* on for now */ ++ { POODLE_GPIO_ADC_TEMP_ON, GPIOF_OUT_INIT_HIGH, "main battery temp" }, ++}; ++ ++#ifdef CONFIG_PM ++static int poodle_battery_suspend(struct device *dev) ++{ ++ /* flush all pending status updates */ ++ flush_work(&bat_work); ++ return 0; ++} ++ ++static int poodle_battery_resume(struct device *dev) ++{ ++ /* things may have changed while we were away */ ++ schedule_work(&bat_work); ++ return 0; ++} ++ ++static SIMPLE_DEV_PM_OPS(poodle_battery_pm, ++ poodle_battery_suspend, ++ poodle_battery_resume); ++ ++#define POODLE_BATTERY_PM (&poodle_battery_pm) ++ ++#else ++#define POODLE_BATTERY_PM NULL ++#endif ++ ++static int poodle_battery_probe(struct platform_device *dev) ++{ ++ int ret; ++ ++ ret = gpio_request_array(poodle_batt_gpios, ++ ARRAY_SIZE(poodle_batt_gpios)); ++ if (ret) ++ return ret; ++ ++ mutex_init(&poodle_bat_main.work_lock); ++ ++ INIT_WORK(&bat_work, poodle_bat_work); ++ ++ ret = power_supply_register(&dev->dev, &poodle_bat_main.psy); ++ if (ret) ++ goto err_psy_reg_main; ++ ++ ret = devm_request_irq(&dev->dev, gpio_to_irq(POODLE_GPIO_CHRG_FULL), ++ poodle_bat_gpio_isr, ++ IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, ++ "main full", NULL); ++ if (ret) ++ goto err_psy_irq; ++ ++ ret = devm_request_irq(&dev->dev, gpio_to_irq(POODLE_GPIO_BAT_COVER), ++ poodle_bat_gpio_isr, ++ IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, ++ "battery cover", NULL); ++ if (ret) ++ goto err_psy_irq; ++ ++ return 0; ++ ++err_psy_irq: ++ power_supply_unregister(&poodle_bat_main.psy); ++ ++ cancel_work_sync(&bat_work); ++err_psy_reg_main: ++ gpio_free_array(poodle_batt_gpios, ARRAY_SIZE(poodle_batt_gpios)); ++ ++ return ret; ++} ++ ++static int poodle_battery_remove(struct platform_device *dev) ++{ ++ power_supply_unregister(&poodle_bat_main.psy); ++ ++ cancel_work_sync(&bat_work); ++ ++ gpio_free_array(poodle_batt_gpios, ARRAY_SIZE(poodle_batt_gpios)); ++ ++ return 0; ++} ++ ++static struct platform_driver poodle_battery_driver = { ++ .driver.name = "poodle-battery", ++ .probe = poodle_battery_probe, ++ .remove = poodle_battery_remove, ++ .driver.pm = POODLE_BATTERY_PM, ++}; ++ ++module_platform_driver(poodle_battery_driver); ++ ++MODULE_LICENSE("GPL v2"); ++MODULE_AUTHOR("Dmitry Eremin-Solenikov"); ++MODULE_DESCRIPTION("Poodle battery driver"); ++MODULE_ALIAS("platform:poodle-battery"); +-- +1.9.1 + diff --git a/recipes-kernel/linux/linux-handheld-4.0/poodle/defconfig b/recipes-kernel/linux/linux-handheld-4.0/poodle/defconfig new file mode 100644 index 0000000..3e48411 --- /dev/null +++ b/recipes-kernel/linux/linux-handheld-4.0/poodle/defconfig @@ -0,0 +1,375 @@ +CONFIG_LOCALVERSION="-yocto-standard" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_KERNEL_LZMA=y +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_FHANDLE=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_CGROUPS=y +CONFIG_CGROUP_DEBUG=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CPUSETS=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_MEMCG_KMEM=y +CONFIG_CGROUP_SCHED=y +CONFIG_RT_GROUP_SCHED=y +CONFIG_BLK_CGROUP=y +CONFIG_NAMESPACES=y +CONFIG_USER_NS=y +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_EMBEDDED=y +CONFIG_PERF_EVENTS=y +CONFIG_SLAB=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_PARTITION_ADVANCED=y +# CONFIG_EFI_PARTITION is not set +CONFIG_ARCH_PXA=y +CONFIG_PXA_SHARPSL=y +CONFIG_MACH_POODLE=y +CONFIG_PCCARD=y +CONFIG_PCMCIA_PXA2XX=y +CONFIG_PREEMPT=y +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 fbcon=rotate:1 loglevel=3" +CONFIG_KEXEC=y +CONFIG_BINFMT_MISC=m +CONFIG_APM_EMULATION=y +CONFIG_NET=y +CONFIG_PACKET=m +CONFIG_UNIX=y +CONFIG_XFRM_USER=m +CONFIG_XFRM_SUB_POLICY=y +CONFIG_NET_KEY=m +CONFIG_NET_KEY_MIGRATE=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_NET_IPIP=m +CONFIG_NET_IPVTI=m +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_LRO=m +CONFIG_INET_DIAG=m +CONFIG_INET_UDP_DIAG=m +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_VTI=m +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_ADVANCED is not set +# CONFIG_NETFILTER_NETLINK_LOG is not set +# CONFIG_NF_CONNTRACK is not set +# CONFIG_NETFILTER_XT_MARK is not set +# CONFIG_NETFILTER_XT_TARGET_LOG is not set +# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set +# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set +# CONFIG_NETFILTER_XT_MATCH_POLICY is not set +CONFIG_IP_NF_RAW=m +# CONFIG_IP6_NF_TARGET_REJECT is not set +CONFIG_IP6_NF_RAW=m +CONFIG_IP_SCTP=m +CONFIG_TIPC=m +CONFIG_BRIDGE=m +CONFIG_VLAN_8021Q=m +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_CLS_BASIC=y +CONFIG_NET_CLS_U32=y +CONFIG_NET_CLS_CGROUP=y +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_PKTGEN=m +CONFIG_IRDA=m +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +CONFIG_PXA_FICP=m +CONFIG_BT=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_CFG80211=m +CONFIG_CFG80211_WEXT=y +CONFIG_MAC80211=m +CONFIG_RFKILL=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_MTD=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_ROM=y +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_SHARPSL=y +CONFIG_MTD_UBI=y +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_SD=y +CONFIG_ATA=y +CONFIG_PATA_PXA=y +CONFIG_PATA_PCMCIA=y +CONFIG_NETDEVICES=y +CONFIG_BONDING=m +CONFIG_DUMMY=m +CONFIG_NETCONSOLE=y +CONFIG_TUN=m +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_NET_VENDOR_AMD is not set +# CONFIG_NET_CADENCE is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_CIRRUS is not set +# CONFIG_NET_VENDOR_FARADAY is not set +# CONFIG_NET_VENDOR_FUJITSU is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +CONFIG_PCMCIA_PCNET=m +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SMSC is not set +# CONFIG_NET_VENDOR_STMICRO is not set +# CONFIG_NET_VENDOR_WIZNET is not set +# CONFIG_NET_VENDOR_XIRCOM is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOE=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_AIRO_CS=m +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_CS=m +CONFIG_RT2X00=m +CONFIG_INPUT_MOUSEDEV_SCREEN_X=240 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320 +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_APMPOWER=y +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_LOCOMO=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ADS7846=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=m +CONFIG_SERIAL_8250=m +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_PXA=y +CONFIG_SERIAL_PXA_CONSOLE=y +CONFIG_I2C=y +CONFIG_I2C_LOCOMO=y +CONFIG_I2C_PXA=y +CONFIG_SPI=y +CONFIG_SPI_PXA2XX=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_LOCOMO=y +CONFIG_POWER_SUPPLY=y +CONFIG_APM_POWER=y +CONFIG_BATTERY_POODLE=y +CONFIG_CHARGER_GPIO=y +CONFIG_SENSORS_MAX1111=y +CONFIG_WATCHDOG=y +CONFIG_SOFT_WATCHDOG=m +CONFIG_MFD_LOCOMO=y +CONFIG_FB=y +CONFIG_FB_PXA=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_LCD_LOCOMO=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_LOGO=y +CONFIG_SOUND=m +CONFIG_SND=m +CONFIG_SND_SEQUENCER=m +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_PXA2XX_AC97=m +CONFIG_SND_SOC=m +CONFIG_SND_PXA2XX_SOC=m +CONFIG_SND_PXA2XX_SOC_POODLE=m +CONFIG_HID=m +CONFIG_NOP_USB_XCEIV=m +CONFIG_USB_GPIO_VBUS=m +CONFIG_USB_ULPI=y +CONFIG_USB_GADGET=m +CONFIG_USB_GADGET_DEBUG_FILES=y +CONFIG_USB_GADGET_DEBUG_FS=y +CONFIG_USB_PXA25X=m +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m +CONFIG_USB_ETH_EEM=y +CONFIG_USB_GADGETFS=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_G_SERIAL=m +CONFIG_USB_CDC_COMPOSITE=m +CONFIG_USB_G_MULTI=m +CONFIG_USB_G_MULTI_CDC=y +CONFIG_MMC=y +CONFIG_MMC_PXA=y +CONFIG_MMC_SPI=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_LOCOMO=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_SA1100=y +CONFIG_M62332=y +CONFIG_EXT2_FS=y +CONFIG_EXT3_FS=y +# CONFIG_EXT3_FS_XATTR is not set +CONFIG_EXT4_FS=y +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=m +CONFIG_CUSE=m +CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_SUMMARY=y +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_LZO=y +CONFIG_UBIFS_FS=y +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +CONFIG_CRAMFS=y +CONFIG_MINIX_FS=m +CONFIG_ROMFS_FS=m +CONFIG_NFS_FS=m +CONFIG_NFS_V4=m +CONFIG_NFSD=m +CONFIG_NFSD_V4=y +CONFIG_CIFS=m +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +CONFIG_DEBUG_FS=y +CONFIG_MAGIC_SYSRQ=y +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_FTRACE is not set +CONFIG_SECURITY=y +CONFIG_CRYPTO_AUTHENC=y +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRC_CCITT=y +CONFIG_FONTS=y +CONFIG_FONT_8x8=y |