diff options
Diffstat (limited to 'packages')
-rw-r--r-- | packages/linux/linux/progear/progear_bl-r6.patch | 200 | ||||
-rw-r--r-- | packages/linux/linux/simpad/defconfig | 161 | ||||
-rw-r--r-- | packages/linux/linux/simpad/linux-2.6.21-SIMpad-cs3-simpad.patch | 315 | ||||
-rw-r--r-- | packages/linux/linux/simpad/linux-2.6.21-SIMpad-mq200.patch (renamed from packages/linux/linux/simpad/linux-2.6.20.SIMpad-mq200.patch) | 470 | ||||
-rw-r--r-- | packages/linux/linux/simpad/linux-2.6.21-SIMpad-serial-and-gpio_keys.patch | 194 | ||||
-rw-r--r-- | packages/linux/linux/simpad/linux-2.6.21-SIMpad-ucb1x00-switches.patch (renamed from packages/linux/linux/simpad/linux-2.6.20.SIMpad-ucb1x00-switches.patch) | 22 | ||||
-rw-r--r-- | packages/linux/linux/simpad/linux-2.6.21-pcmcia-device-to-platform-driver.patch | 54 | ||||
-rw-r--r-- | packages/linux/linux_2.6.20.bb | 11 | ||||
-rw-r--r-- | packages/linux/linux_2.6.21.bb | 23 |
9 files changed, 995 insertions, 455 deletions
diff --git a/packages/linux/linux/progear/progear_bl-r6.patch b/packages/linux/linux/progear/progear_bl-r6.patch deleted file mode 100644 index 6ac01714b7..0000000000 --- a/packages/linux/linux/progear/progear_bl-r6.patch +++ /dev/null @@ -1,200 +0,0 @@ -From: Marcin Juszkiewicz <openembedded@hrw.one.pl> - -Add control of LCD backlight for Frontpath ProGear HX1050+. -Patch is based on http://downloads.sf.net/progear/progear-lcd-0.2.tar.gz -driver by M Schacht. - -Signed-Off-By: Marcin Juszkiewicz <openembedded@hrw.one.pl> - ---- -Patch follow kernel version 2.6.20 - - Kconfig | 8 +++ - Makefile | 1 - progear_bl.c | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 163 insertions(+) - -Index: git/drivers/video/backlight/Kconfig -=================================================================== ---- git.orig/drivers/video/backlight/Kconfig 2006-12-29 17:31:36.511043439 +0100 -+++ git/drivers/video/backlight/Kconfig 2007-02-07 08:57:31.020095845 +0100 -@@ -66,3 +66,11 @@ - If you have a HP Jornada 680, say y to enable the - backlight driver. - -+config BACKLIGHT_PROGEAR -+ tristate "Frontpath ProGear Backlight Driver" -+ depends on BACKLIGHT_DEVICE && PCI && X86 -+ default y -+ help -+ If you have a Frontpath ProGear say Y to enable the -+ backlight driver. -+ -Index: git/drivers/video/backlight/progear_bl.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/drivers/video/backlight/progear_bl.c 2007-02-07 08:55:46.813993140 +0100 -@@ -0,0 +1,154 @@ -+/* -+ * Backlight Driver for Frontpath ProGear HX1050+ -+ * -+ * Copyright (c) 2006 Marcin Juszkiewicz -+ * -+ * Based on Progear LCD driver by M Schacht -+ * <mschacht at alumni dot washington dot edu> -+ * -+ * Based on Sharp's Corgi Backlight Driver -+ * Based on Backlight Driver for HP Jornada 680 -+ * -+ * 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/module.h> -+#include <linux/kernel.h> -+#include <linux/init.h> -+#include <linux/platform_device.h> -+#include <linux/mutex.h> -+#include <linux/fb.h> -+#include <linux/backlight.h> -+#include <linux/pci.h> -+#include <asm/uaccess.h> -+ -+#define PMU_LPCR 0xB0 -+#define SB_MPS1 0x61 -+#define HW_LEVEL_MAX 0x77 -+#define HW_LEVEL_MIN 0x4f -+ -+static struct pci_dev *pmu_dev = NULL; -+static struct pci_dev *sb_dev = NULL; -+ -+static int progearbl_set_intensity(struct backlight_device *bd) -+{ -+ int intensity = bd->props->brightness; -+ -+ if (bd->props->power != FB_BLANK_UNBLANK) -+ intensity = 0; -+ if (bd->props->fb_blank != FB_BLANK_UNBLANK) -+ intensity = 0; -+ -+ pci_write_config_byte(pmu_dev, PMU_LPCR, intensity + HW_LEVEL_MIN); -+ -+ return 0; -+} -+ -+static int progearbl_get_intensity(struct backlight_device *bd) -+{ -+ u8 intensity; -+ pci_read_config_byte(pmu_dev, PMU_LPCR, &intensity); -+ -+ return intensity - HW_LEVEL_MIN; -+} -+ -+static struct backlight_properties progearbl_data = { -+ .owner = THIS_MODULE, -+ .get_brightness = progearbl_get_intensity, -+ .update_status = progearbl_set_intensity, -+}; -+ -+static int progearbl_probe(struct platform_device *pdev) -+{ -+ u8 temp; -+ struct backlight_device *progear_backlight_device; -+ -+ pmu_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M7101, 0); -+ if (!pmu_dev) { -+ printk("ALI M7101 PMU not found.\n"); -+ return -ENODEV; -+ } -+ -+ sb_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, 0); -+ if (!sb_dev) { -+ printk("ALI 1533 SB not found.\n"); -+ pci_dev_put(pmu_dev); -+ return -ENODEV; -+ } -+ -+ /* Set SB_MPS1 to enable brightness control. */ -+ pci_read_config_byte(sb_dev, SB_MPS1, &temp); -+ pci_write_config_byte(sb_dev, SB_MPS1, temp | 0x20); -+ -+ progear_backlight_device = backlight_device_register("progear-bl", -+ &pdev->dev, NULL, -+ &progearbl_data); -+ if (IS_ERR(progear_backlight_device)) -+ return PTR_ERR(progear_backlight_device); -+ -+ platform_set_drvdata(pdev, progear_backlight_device); -+ -+ progearbl_data.power = FB_BLANK_UNBLANK; -+ progearbl_data.brightness = HW_LEVEL_MAX - HW_LEVEL_MIN; -+ progearbl_data.max_brightness = HW_LEVEL_MAX - HW_LEVEL_MIN; -+ progearbl_set_intensity(progear_backlight_device); -+ -+ return 0; -+} -+ -+static int progearbl_remove(struct platform_device *pdev) -+{ -+ struct backlight_device *bd = platform_get_drvdata(pdev); -+ backlight_device_unregister(bd); -+ -+ return 0; -+} -+ -+static struct platform_driver progearbl_driver = { -+ .probe = progearbl_probe, -+ .remove = progearbl_remove, -+ .driver = { -+ .name = "progear-bl", -+ }, -+}; -+ -+static struct platform_device *progearbl_device; -+ -+static int __init progearbl_init(void) -+{ -+ int ret = platform_driver_register(&progearbl_driver); -+ -+ if (!ret) { -+ progearbl_device = platform_device_alloc("progear-bl", -1); -+ if (!progearbl_device) -+ return -ENOMEM; -+ -+ ret = platform_device_add(progearbl_device); -+ -+ if (ret) { -+ platform_device_put(progearbl_device); -+ platform_driver_unregister(&progearbl_driver); -+ } -+ } -+ -+ return ret; -+} -+ -+static void __exit progearbl_exit(void) -+{ -+ pci_dev_put(pmu_dev); -+ pci_dev_put(sb_dev); -+ -+ platform_device_unregister(progearbl_device); -+ platform_driver_unregister(&progearbl_driver); -+} -+ -+module_init(progearbl_init); -+module_exit(progearbl_exit); -+ -+MODULE_AUTHOR("Marcin Juszkiewicz <linux@hrw.one.pl>"); -+MODULE_DESCRIPTION("ProGear Backlight Driver"); -+MODULE_LICENSE("GPL"); -Index: git/drivers/video/backlight/Makefile -=================================================================== ---- git.orig/drivers/video/backlight/Makefile 2006-12-29 17:31:36.511043439 +0100 -+++ git/drivers/video/backlight/Makefile 2007-02-06 21:34:54.503712923 +0100 -@@ -5,3 +5,4 @@ - obj-$(CONFIG_BACKLIGHT_CORGI) += corgi_bl.o - obj-$(CONFIG_BACKLIGHT_HP680) += hp680_bl.o - obj-$(CONFIG_BACKLIGHT_LOCOMO) += locomolcd.o -+obj-$(CONFIG_BACKLIGHT_PROGEAR) += progear_bl.o diff --git a/packages/linux/linux/simpad/defconfig b/packages/linux/linux/simpad/defconfig index 2115d30a2c..36d5e942b4 100644 --- a/packages/linux/linux/simpad/defconfig +++ b/packages/linux/linux/simpad/defconfig @@ -1,11 +1,14 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.20 -# Mon Apr 2 11:51:54 2007 +# Linux kernel version: 2.6.21 +# Sun May 6 14:01:42 2007 # CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y # CONFIG_GENERIC_TIME is not set CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set CONFIG_GENERIC_HARDIRQS=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_HARDIRQS_SW_RESEND=y @@ -15,6 +18,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y # CONFIG_ARCH_HAS_ILOG2_U64 is not set CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y CONFIG_ARCH_MTD_XIP=y CONFIG_VECTORS_BASE=0xffff0000 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" @@ -35,6 +39,7 @@ CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_IPC_NS is not set +CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set @@ -43,7 +48,7 @@ CONFIG_SYSVIPC=y # CONFIG_IKCONFIG is not set CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -CONFIG_INITRAMFS_SOURCE="" +# CONFIG_BLK_DEV_INITRD is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y @@ -71,9 +76,8 @@ CONFIG_BASE_SMALL=0 # Loadable module support # CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_MODVERSIONS=y +# CONFIG_MODULE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_KMOD=y @@ -122,6 +126,7 @@ CONFIG_DEFAULT_IOSCHED="cfq" # CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_NS9XXX is not set # CONFIG_ARCH_PNX4008 is not set # CONFIG_ARCH_PXA is not set # CONFIG_ARCH_RPC is not set @@ -167,6 +172,7 @@ CONFIG_CPU_CP15_MMU=y # # CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set # # Bus support @@ -177,7 +183,7 @@ CONFIG_ISA=y # PCCARD (PCMCIA/CardBus) support # CONFIG_PCCARD=y -CONFIG_PCMCIA_DEBUG=y +# CONFIG_PCMCIA_DEBUG is not set CONFIG_PCMCIA=y CONFIG_PCMCIA_LOAD_CIS=y CONFIG_PCMCIA_IOCTL=y @@ -208,6 +214,7 @@ CONFIG_NEED_MULTIPLE_NODES=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4096 # CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 CONFIG_LEDS=y CONFIG_LEDS_TIMER=y # CONFIG_LEDS_CPU is not set @@ -220,6 +227,7 @@ CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_CMDLINE="mtdparts=sa1100:512k(boot),1m(kernel),-(root) console=ttySA0 root=1f02 noinitrd mem=64M jffs2_orphaned_inodes=delete rootfstype=jffs2" # CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set # # CPU Frequency scaling @@ -249,11 +257,10 @@ CONFIG_BINFMT_MISC=m # Power management options # CONFIG_PM=y -CONFIG_PM_LEGACY=y -CONFIG_PM_DEBUG=y -CONFIG_DISABLE_CONSOLE_SUSPEND=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set # CONFIG_PM_SYSFS_DEPRECATED is not set -CONFIG_APM=y +# CONFIG_APM_EMULATION is not set # # Networking @@ -270,6 +277,7 @@ CONFIG_UNIX=y CONFIG_XFRM=y # CONFIG_XFRM_USER is not set # CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set # CONFIG_NET_KEY is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set @@ -403,12 +411,7 @@ CONFIG_BT_BNEP_PROTO_FILTER=y # CONFIG_BT_HCIBLUECARD is not set # CONFIG_BT_HCIBTUART is not set # CONFIG_BT_HCIVHCI is not set -CONFIG_IEEE80211=m -# CONFIG_IEEE80211_DEBUG is not set -CONFIG_IEEE80211_CRYPT_WEP=m -# CONFIG_IEEE80211_CRYPT_CCMP is not set -# CONFIG_IEEE80211_CRYPT_TKIP is not set -# CONFIG_IEEE80211_SOFTMAC is not set +# CONFIG_IEEE80211 is not set CONFIG_WIRELESS_EXT=y # @@ -422,6 +425,7 @@ CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set # @@ -528,6 +532,7 @@ CONFIG_MTD_SA1100=y # Plug and Play support # # CONFIG_PNP is not set +# CONFIG_PNPACPI is not set # # Block devices @@ -540,38 +545,13 @@ CONFIG_BLK_DEV_RAM=m CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=8192 CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 -# CONFIG_BLK_DEV_INITRD is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set # # ATA/ATAPI/MFM/RLL support # -CONFIG_IDE=y -CONFIG_IDE_MAX_HWIFS=4 -CONFIG_BLK_DEV_IDE=y - -# -# Please see Documentation/ide.txt for help/info on IDE drives -# -# CONFIG_BLK_DEV_IDE_SATA is not set -CONFIG_BLK_DEV_IDEDISK=y -# CONFIG_IDEDISK_MULTI_MODE is not set -CONFIG_BLK_DEV_IDECS=y -# CONFIG_BLK_DEV_IDECD is not set -# CONFIG_BLK_DEV_IDETAPE is not set -# CONFIG_BLK_DEV_IDEFLOPPY is not set -# CONFIG_IDE_TASK_IOCTL is not set - -# -# IDE chipset support/bugfixes -# -# CONFIG_IDE_GENERIC is not set -# CONFIG_IDE_ARM is not set -# CONFIG_IDE_CHIPSETS is not set -# CONFIG_BLK_DEV_IDEDMA is not set -# CONFIG_IDEDMA_AUTO is not set -# CONFIG_BLK_DEV_HD is not set +# CONFIG_IDE is not set # # SCSI device support @@ -749,7 +729,14 @@ CONFIG_INPUT_EVBUG=y # # Input Device Drivers # -# CONFIG_INPUT_KEYBOARD is not set +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +CONFIG_KEYBOARD_GPIO=y # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TOUCHSCREEN is not set @@ -798,7 +785,7 @@ CONFIG_LEGACY_PTY_COUNT=256 # Watchdog Cards # # CONFIG_WATCHDOG is not set -CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM=m # CONFIG_NVRAM is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set @@ -836,12 +823,6 @@ CONFIG_HW_RANDOM=y # Hardware Monitoring support # CONFIG_HWMON=y - -# -# Hardware Monitoring - Battery -# -CONFIG_BATTERY_MONITOR=y -CONFIG_MCP_UCB1200_SIMPAD_BATTERY=y # CONFIG_HWMON_VID is not set # CONFIG_SENSORS_ABITUGURU is not set # CONFIG_SENSORS_F71805F is not set @@ -852,7 +833,11 @@ CONFIG_MCP_UCB1200_SIMPAD_BATTERY=y # # Misc devices # -# CONFIG_TIFM_CORE is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set # # Multimedia Capabilities Port drivers @@ -889,15 +874,26 @@ CONFIG_MCP_UCB1200_SWITCHES=y # # Graphics support # -CONFIG_FIRMWARE_EDID=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_BACKLIGHT_SIMPAD=y +CONFIG_LCD_SIMPAD=y CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set # CONFIG_FB_BACKLIGHT is not set # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set + +# +# Frambuffer hardware drivers +# # CONFIG_FB_SA1100 is not set # CONFIG_FB_S1D13XXX is not set CONFIG_FB_MQ200=y @@ -922,13 +918,6 @@ CONFIG_LOGO=y CONFIG_LOGO_LINUX_MONO=y CONFIG_LOGO_LINUX_VGA16=y CONFIG_LOGO_LINUX_CLUT224=y -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_DEVICE=y -CONFIG_LCD_CLASS_DEVICE=y -CONFIG_LCD_DEVICE=y -CONFIG_FB_MQ200_LCD=y -CONFIG_FB_MQ200_BACKLIGHT=y # # Sound @@ -949,6 +938,7 @@ CONFIG_SOUND=y # HID Devices # CONFIG_HID=y +# CONFIG_HID_DEBUG is not set # # USB support @@ -997,7 +987,7 @@ CONFIG_REISERFS_FS=m CONFIG_REISERFS_PROC_INFO=y # CONFIG_REISERFS_FS_XATTR is not set # CONFIG_JFS_FS is not set -CONFIG_FS_POSIX_ACL=y +# CONFIG_FS_POSIX_ACL is not set # CONFIG_XFS_FS is not set # CONFIG_GFS2_FS is not set # CONFIG_OCFS2_FS is not set @@ -1010,7 +1000,6 @@ CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set # CONFIG_FUSE_FS is not set -CONFIG_GENERIC_ACL=y # # CD-ROM/DVD Filesystems @@ -1034,8 +1023,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_PROC_FS=y CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y -CONFIG_TMPFS=y -CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_TMPFS is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y # CONFIG_CONFIGFS_FS is not set @@ -1160,16 +1148,17 @@ CONFIG_ENABLE_MUST_CHECK=y # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set CONFIG_LOG_BUF_SHIFT=14 CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set # CONFIG_DEBUG_SLAB is not set CONFIG_DEBUG_PREEMPT=y # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set @@ -1180,6 +1169,7 @@ CONFIG_DEBUG_BUGVERBOSE=y CONFIG_FRAME_POINTER=y CONFIG_FORCED_INLINING=y # CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_FAULT_INJECTION is not set CONFIG_DEBUG_USER=y CONFIG_DEBUG_ERRORS=y CONFIG_DEBUG_LL=y @@ -1194,43 +1184,7 @@ CONFIG_DEBUG_LL=y # # Cryptographic options # -CONFIG_CRYPTO=y -CONFIG_CRYPTO_ALGAPI=m -CONFIG_CRYPTO_BLKCIPHER=m -CONFIG_CRYPTO_MANAGER=m -# CONFIG_CRYPTO_HMAC is not set -# CONFIG_CRYPTO_XCBC is not set -# CONFIG_CRYPTO_NULL is not set -# CONFIG_CRYPTO_MD4 is not set -# CONFIG_CRYPTO_MD5 is not set -# CONFIG_CRYPTO_SHA1 is not set -# CONFIG_CRYPTO_SHA256 is not set -# CONFIG_CRYPTO_SHA512 is not set -# CONFIG_CRYPTO_WP512 is not set -# CONFIG_CRYPTO_TGR192 is not set -# CONFIG_CRYPTO_GF128MUL is not set -CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_CBC=m -# CONFIG_CRYPTO_LRW is not set -# CONFIG_CRYPTO_DES is not set -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_TWOFISH is not set -# CONFIG_CRYPTO_SERPENT is not set -# CONFIG_CRYPTO_AES is not set -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_TEA is not set -CONFIG_CRYPTO_ARC4=m -# CONFIG_CRYPTO_KHAZAD is not set -# CONFIG_CRYPTO_ANUBIS is not set -# CONFIG_CRYPTO_DEFLATE is not set -# CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_CRC32C is not set -# CONFIG_CRYPTO_TEST is not set - -# -# Hardware crypto devices -# +# CONFIG_CRYPTO is not set # # Library routines @@ -1243,4 +1197,5 @@ CONFIG_CRC32=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_PLIST=y -CONFIG_IOMAP_COPY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y diff --git a/packages/linux/linux/simpad/linux-2.6.21-SIMpad-cs3-simpad.patch b/packages/linux/linux/simpad/linux-2.6.21-SIMpad-cs3-simpad.patch new file mode 100644 index 0000000000..6d6c373271 --- /dev/null +++ b/packages/linux/linux/simpad/linux-2.6.21-SIMpad-cs3-simpad.patch @@ -0,0 +1,315 @@ +diff -uNr linux-2.6.21.vanilla/arch/arm/mach-sa1100/Makefile linux-2.6.21/arch/arm/mach-sa1100/Makefile +--- linux-2.6.21.vanilla/arch/arm/mach-sa1100/Makefile 2007-05-01 16:40:44.000000000 +0200 ++++ linux-2.6.21/arch/arm/mach-sa1100/Makefile 2007-05-01 16:52:10.000000000 +0200 +@@ -40,6 +40,7 @@ + obj-$(CONFIG_SA1100_SHANNON) += shannon.o + + obj-$(CONFIG_SA1100_SIMPAD) += simpad.o ++obj-$(CONFIG_SA1100_SIMPAD) += cs3-simpad.o + led-$(CONFIG_SA1100_SIMPAD) += leds-simpad.o + + # LEDs support +diff -uNr linux-2.6.21.vanilla/arch/arm/mach-sa1100/cs3-simpad.c linux-2.6.21/arch/arm/mach-sa1100/cs3-simpad.c +--- linux-2.6.21.vanilla/arch/arm/mach-sa1100/cs3-simpad.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.21/arch/arm/mach-sa1100/cs3-simpad.c 2007-05-01 16:52:10.000000000 +0200 +@@ -0,0 +1,300 @@ ++/* ++ * cs3-simpad.c ++ * ++ * This driver shows the GPIO states of the cs3 latch. You can also ++ * switch some GPIOS. ++ * ++ * (c) 2007 Bernhard Guillon <Bernhard.Guillon@OpenSIMpad.org> ++ * ++ * You may use this code as per GPL version 2 ++ * ++ * Some parts are based on battery.c ++ * ++ */ ++ ++#include <linux/module.h> ++#include <linux/types.h> ++#include <linux/init.h> ++#include <linux/device.h> ++ ++#include <asm/arch/simpad.h> ++ ++extern long get_cs3_shadow(void); ++extern void set_cs3_bit(int value); ++extern void clear_cs3_bit(int value); ++ ++struct cs3 { ++ struct class_device class_dev; ++ const char *name; ++ char *id; ++ int type; ++}; ++ ++struct cs3 cs3 ={ ++ .name = "latch_cs3", ++}; ++ ++static ssize_t get_VCC_5V_EN (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & VCC_5V_EN ) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++static ssize_t get_VCC_3V_EN (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & VCC_3V_EN) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++static ssize_t get_EN1 (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & EN1) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++static ssize_t get_EN0 (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & EN0) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++static ssize_t get_DISPLAY_ON (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & DISPLAY_ON) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++static ssize_t get_PCMCIA_BUFF_DIS (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & PCMCIA_BUFF_DIS) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++static ssize_t get_MQ_RESET (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & MQ_RESET) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++static ssize_t get_PCMCIA_RESET (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & PCMCIA_RESET) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++static ssize_t get_DECT_POWER_ON (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & DECT_POWER_ON) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++static ssize_t get_IRDA_SD (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & IRDA_SD) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++static ssize_t get_RS232_ON (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & RS232_ON) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++static ssize_t get_SD_MEDIAQ (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & SD_MEDIAQ) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++static ssize_t get_LED2_ON (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & LED2_ON) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++static ssize_t get_IRDA_MODE (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & IRDA_MODE) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++static ssize_t get_ENABLE_5V (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & ENABLE_5V) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++static ssize_t get_RESET_SIMCARD (struct class_device *class_dev, char *buf) { ++ if (get_cs3_shadow() & RESET_SIMCARD) ++ return sprintf(buf, "1\n"); ++ else ++ return sprintf(buf, "0\n"); ++} ++ ++ ++static ssize_t write_DISPLAY_ON (struct class_device *cdev, const char * buf, size_t count){ ++ char val; ++ if (sscanf(buf, "%c",&val) !=1) ++ return -EINVAL; ++ if (val=='1') ++ set_cs3_bit(DISPLAY_ON); ++ else if (val=='0') ++ clear_cs3_bit(DISPLAY_ON); ++ return strlen(buf); ++} ++ ++static ssize_t write_DECT_POWER_ON (struct class_device *cdev, const char * buf, size_t count){ ++ char val; ++ if (sscanf(buf, "%c",&val) !=1) ++ return -EINVAL; ++ if (val=='1') ++ set_cs3_bit(DECT_POWER_ON); ++ else if (val=='0') ++ clear_cs3_bit(DECT_POWER_ON); ++ return strlen(buf); ++} ++ ++static ssize_t write_IRDA_SD (struct class_device *cdev, const char * buf, size_t count){ ++ char val; ++ if (sscanf(buf, "%c",&val) !=1) ++ return -EINVAL; ++ if (val=='1') ++ set_cs3_bit(IRDA_SD); ++ else if (val=='0') ++ clear_cs3_bit(IRDA_SD); ++ return strlen(buf); ++} ++ ++static ssize_t write_SD_MEDIAQ (struct class_device *cdev, const char * buf, size_t count){ ++ char val; ++ if (sscanf(buf, "%c",&val) !=1) ++ return -EINVAL; ++ if (val=='1') ++ set_cs3_bit(SD_MEDIAQ); ++ else if (val=='0') ++ clear_cs3_bit(SD_MEDIAQ); ++ return strlen(buf); ++} ++ ++static ssize_t write_LED2_ON (struct class_device *cdev, const char * buf, size_t count){ ++ char val; ++ if (sscanf(buf, "%c",&val) !=1) ++ return -EINVAL; ++ if (val=='1') ++ set_cs3_bit(LED2_ON); ++ else if (val=='0') ++ clear_cs3_bit(LED2_ON); ++ return strlen(buf); ++} ++ ++static ssize_t write_IRDA_MODE (struct class_device *cdev, const char * buf, size_t count){ ++ char val; ++ if (sscanf(buf, "%c",&val) !=1) ++ return -EINVAL; ++ if (val=='1') ++ set_cs3_bit(IRDA_MODE); ++ else if (val=='0') ++ clear_cs3_bit(IRDA_MODE); ++ return strlen(buf); ++} ++ ++static ssize_t write_RESET_SIMCARD (struct class_device *cdev, const char * buf, size_t count){ ++ char val; ++ if (sscanf(buf, "%c",&val) !=1) ++ return -EINVAL; ++ if (val=='1') ++ set_cs3_bit(RESET_SIMCARD); ++ else if (val=='0') ++ clear_cs3_bit(RESET_SIMCARD); ++ return strlen(buf); ++} ++ ++static CLASS_DEVICE_ATTR(vcc_5v_en, 0444, get_VCC_5V_EN, NULL); ++static CLASS_DEVICE_ATTR(vcc_3v_en, 0444, get_VCC_3V_EN, NULL); ++static CLASS_DEVICE_ATTR(en1, 0444, get_EN1, NULL); ++static CLASS_DEVICE_ATTR(en0, 0444, get_EN0, NULL); ++static CLASS_DEVICE_ATTR(display_on, 0664, get_DISPLAY_ON, write_DISPLAY_ON); ++static CLASS_DEVICE_ATTR(pcmcia_buff_dis, 0444, get_PCMCIA_BUFF_DIS, NULL); ++static CLASS_DEVICE_ATTR(mq_reset, 0444, get_MQ_RESET, NULL); ++static CLASS_DEVICE_ATTR(pcmcia_reset, 0444, get_PCMCIA_RESET, NULL); ++static CLASS_DEVICE_ATTR(dect_power_on, 0664, get_DECT_POWER_ON, write_DECT_POWER_ON); ++static CLASS_DEVICE_ATTR(irda_sd, 0664, get_IRDA_SD, write_IRDA_SD); ++static CLASS_DEVICE_ATTR(rs232_on, 0444, get_RS232_ON, NULL); ++static CLASS_DEVICE_ATTR(sd_mediaq, 0664, get_SD_MEDIAQ, write_SD_MEDIAQ); ++static CLASS_DEVICE_ATTR(led2_on, 0664, get_LED2_ON, write_LED2_ON); ++static CLASS_DEVICE_ATTR(irda_mode, 0664, get_IRDA_MODE, write_IRDA_MODE); ++static CLASS_DEVICE_ATTR(enable_5v, 0444, get_ENABLE_5V, NULL); ++static CLASS_DEVICE_ATTR(reset_simcard, 0664, get_RESET_SIMCARD, write_RESET_SIMCARD); ++ ++static struct class simpad_gpios_class = { ++ .name = "simpad" ++}; ++ ++#define create_entry_conditional(name) \ ++ rc = class_device_create_file(&cs3->class_dev, &class_device_attr_##name); \ ++ if (rc) goto out; \ ++ ++static int register_cs3_latch(struct cs3 *cs3){ ++ int rc = 0; ++ cs3->class_dev.class = &simpad_gpios_class; ++ strcpy(cs3->class_dev.class_id, cs3->name); ++ rc = class_device_register(&cs3->class_dev); ++ if(rc) ++ goto out; ++ ++ create_entry_conditional(vcc_5v_en); ++ create_entry_conditional(vcc_3v_en); ++ create_entry_conditional(en1); ++ create_entry_conditional(en0); ++ create_entry_conditional(display_on); ++ create_entry_conditional(pcmcia_buff_dis); ++ create_entry_conditional(mq_reset); ++ create_entry_conditional(pcmcia_reset); ++ create_entry_conditional(dect_power_on); ++ create_entry_conditional(irda_sd); ++ create_entry_conditional(rs232_on); ++ create_entry_conditional(sd_mediaq); ++ create_entry_conditional(led2_on); ++ create_entry_conditional(irda_mode); ++ create_entry_conditional(enable_5v); ++ create_entry_conditional(reset_simcard); ++ ++out: ++ return rc; ++} ++ ++static int __init simpad_gpios_class_init(void) ++{ ++ if (class_register(&simpad_gpios_class) != 0) ++ printk(KERN_ERR "cs3 latch class failed " ++ "to register properly\n"); ++ register_cs3_latch(&cs3); ++ return 0; ++} ++ ++static void __exit simpad_gpios_class_exit(void) ++{ ++ class_unregister(&simpad_gpios_class); ++} ++ ++module_init(simpad_gpios_class_init); ++module_exit(simpad_gpios_class_exit); ++ ++MODULE_DESCRIPTION("CS3_latch driver"); ++MODULE_AUTHOR("Bernhard Guillon"); ++MODULE_LICENSE("GPL"); diff --git a/packages/linux/linux/simpad/linux-2.6.20.SIMpad-mq200.patch b/packages/linux/linux/simpad/linux-2.6.21-SIMpad-mq200.patch index 841cf4566c..5726779ad6 100644 --- a/packages/linux/linux/simpad/linux-2.6.20.SIMpad-mq200.patch +++ b/packages/linux/linux/simpad/linux-2.6.21-SIMpad-mq200.patch @@ -1,9 +1,18 @@ -diff -uNr linux-2.6.20.vanilla/drivers/video/Kconfig linux-2.6.20/drivers/video/Kconfig ---- linux-2.6.20.vanilla/drivers/video/Kconfig 2007-03-24 21:25:52.000000000 +0100 -+++ linux-2.6.20/drivers/video/Kconfig 2007-03-28 22:53:44.000000000 +0200 -@@ -1147,6 +1147,15 @@ - help - If you have a S3 Trio say Y. Say N for S3 Virge. +diff -uNr linux-2.6.21.vanilla/drivers/video/Kconfig linux-2.6.21/drivers/video/Kconfig +--- linux-2.6.21.vanilla/drivers/video/Kconfig 2007-05-01 16:40:48.000000000 +0200 ++++ linux-2.6.21/drivers/video/Kconfig 2007-05-01 17:02:17.000000000 +0200 +@@ -139,7 +139,7 @@ + This is particularly important to one driver, matroxfb. If + unsure, say N. + +-comment "Frame buffer hardware drivers" ++comment "Frambuffer hardware drivers" + depends on FB + + config FB_CIRRUS +@@ -1120,6 +1120,15 @@ + ---help--- + Driver for graphics boards with S3 Trio / S3 Virge chip. +config FB_MQ200 + bool "MQ200 Driver" @@ -17,10 +26,10 @@ diff -uNr linux-2.6.20.vanilla/drivers/video/Kconfig linux-2.6.20/drivers/video/ config FB_SAVAGE tristate "S3 Savage support" depends on FB && PCI && EXPERIMENTAL -diff -uNr linux-2.6.20.vanilla/drivers/video/Makefile linux-2.6.20/drivers/video/Makefile ---- linux-2.6.20.vanilla/drivers/video/Makefile 2007-03-24 21:25:52.000000000 +0100 -+++ linux-2.6.20/drivers/video/Makefile 2007-03-28 22:53:44.000000000 +0200 -@@ -30,6 +30,7 @@ +diff -uNr linux-2.6.21.vanilla/drivers/video/Makefile linux-2.6.21/drivers/video/Makefile +--- linux-2.6.21.vanilla/drivers/video/Makefile 2007-05-01 16:40:48.000000000 +0200 ++++ linux-2.6.21/drivers/video/Makefile 2007-05-01 17:02:17.000000000 +0200 +@@ -29,6 +29,7 @@ obj-$(CONFIG_FB_PM2) += pm2fb.o obj-$(CONFIG_FB_PM3) += pm3fb.o @@ -28,33 +37,43 @@ diff -uNr linux-2.6.20.vanilla/drivers/video/Makefile linux-2.6.20/drivers/video obj-$(CONFIG_FB_MATROX) += matrox/ obj-$(CONFIG_FB_RIVA) += riva/ vgastate.o obj-$(CONFIG_FB_NVIDIA) += nvidia/ -diff -uNr linux-2.6.20.vanilla/drivers/video/backlight/Kconfig linux-2.6.20/drivers/video/backlight/Kconfig ---- linux-2.6.20.vanilla/drivers/video/backlight/Kconfig 2007-03-24 21:25:53.000000000 +0100 -+++ linux-2.6.20/drivers/video/backlight/Kconfig 2007-03-28 22:53:44.000000000 +0200 -@@ -66,3 +66,10 @@ - If you have a HP Jornada 680, say y to enable the +diff -uNr linux-2.6.21.vanilla/drivers/video/backlight/Kconfig linux-2.6.21/drivers/video/backlight/Kconfig +--- linux-2.6.21.vanilla/drivers/video/backlight/Kconfig 2007-05-01 16:40:48.000000000 +0200 ++++ linux-2.6.21/drivers/video/backlight/Kconfig 2007-05-01 17:02:17.000000000 +0200 +@@ -63,3 +63,20 @@ + help + If you have a Frontpath ProGear say Y to enable the backlight driver. - -+config FB_MQ200_LCD -+ bool "MQ200 LCD class implemetation" -+ depends on SA1100_SIMPAD && LCD_DEVICE -+ -+config FB_MQ200_BACKLIGHT -+ bool "MQ200 Backlight class implementation" -+ depends on SA1100_SIMPAD && BACKLIGHT_DEVICE -diff -uNr linux-2.6.20.vanilla/drivers/video/backlight/Makefile linux-2.6.20/drivers/video/backlight/Makefile ---- linux-2.6.20.vanilla/drivers/video/backlight/Makefile 2007-03-24 21:25:53.000000000 +0100 -+++ linux-2.6.20/drivers/video/backlight/Makefile 2007-03-28 22:53:44.000000000 +0200 -@@ -5,3 +5,5 @@ - obj-$(CONFIG_BACKLIGHT_CORGI) += corgi_bl.o ++ ++config BACKLIGHT_SIMPAD ++ tristate "SIMpad MQ200 Backlight driver" ++ depends on SA1100_SIMPAD && BACKLIGHT_CLASS_DEVICE ++ default y ++ help ++ If you have a Siemens SIMpad say Y to enable the ++ backlight driver. ++ ++config LCD_SIMPAD ++ tristate "SIMpad MQ200 LCD driver" ++ depends on SA1100_SIMPAD && LCD_CLASS_DEVICE ++ default y ++ help ++ If you have a Siemens SIMpad say Y to enable the ++ LCD driver. ++ +diff -uNr linux-2.6.21.vanilla/drivers/video/backlight/Makefile linux-2.6.21/drivers/video/backlight/Makefile +--- linux-2.6.21.vanilla/drivers/video/backlight/Makefile 2007-05-01 16:40:48.000000000 +0200 ++++ linux-2.6.21/drivers/video/backlight/Makefile 2007-05-01 17:02:17.000000000 +0200 +@@ -6,3 +6,5 @@ obj-$(CONFIG_BACKLIGHT_HP680) += hp680_bl.o obj-$(CONFIG_BACKLIGHT_LOCOMO) += locomolcd.o -+obj-$(CONFIG_FB_MQ200_BACKLIGHT) += simpad_bl.o -+obj-$(CONFIG_FB_MQ200_LCD) += simpad_lcd.o -diff -uNr linux-2.6.20.vanilla/drivers/video/backlight/simpad_bl.c linux-2.6.20/drivers/video/backlight/simpad_bl.c ---- linux-2.6.20.vanilla/drivers/video/backlight/simpad_bl.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.20/drivers/video/backlight/simpad_bl.c 2007-03-28 22:53:44.000000000 +0200 -@@ -0,0 +1,109 @@ + obj-$(CONFIG_BACKLIGHT_PROGEAR) += progear_bl.o ++obj-$(CONFIG_BACKLIGHT_SIMPAD) += simpad_bl.o ++obj-$(CONFIG_LCD_SIMPAD) += simpad_lcd.o +diff -uNr linux-2.6.21.vanilla/drivers/video/backlight/simpad_bl.c linux-2.6.21/drivers/video/backlight/simpad_bl.c +--- linux-2.6.21.vanilla/drivers/video/backlight/simpad_bl.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.21/drivers/video/backlight/simpad_bl.c 2007-05-01 17:02:17.000000000 +0200 +@@ -0,0 +1,208 @@ +/* + * GPLv2 <zecke@handhelds.org + * @@ -73,90 +92,189 @@ diff -uNr linux-2.6.20.vanilla/drivers/video/backlight/simpad_bl.c linux-2.6.20/ + * - added .brightness=127 in + * struct backlight_properties simpad_bl_props() + */ ++#include <linux/module.h> ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/spinlock.h> ++#include <linux/fb.h> ++#include <linux/backlight.h> ++ +#include <asm/types.h> +#include <asm/hardware.h> +#include <asm/io.h> + -+#include <linux/device.h> -+#include <linux/backlight.h> -+#include <linux/fb.h> -+ +#include "../mq200/mq200_data.h" + +#define SIMPAD_BACKLIGHT_MASK 0x00a10044 -+#define MAX_BRIGHT 254 ++#define SIMPAD_DEFAULT_INTENSITY 127 ++#define SIMPAD_MAX_INTENSITY 254 +#define REGISTER_BASE 0xf2e00000 + ++static int simpad_bl_suspended; ++static int current_intensity = 0; + -+static int simpad_bl_get_brightness(struct backlight_device *dev) ++static void simpad_bl_send_intensity(struct backlight_device *bd) +{ -+ u32 pwmctl; ++ int intensity = bd->props.brightness; ++ ++ union fp0fr fp0fr; ++ unsigned long dutyCycle, pwmcontrol; ++ ++ if (intensity > SIMPAD_MAX_INTENSITY) ++ intensity = SIMPAD_MAX_INTENSITY; ++ ++ if (bd->props.power != FB_BLANK_UNBLANK) ++ intensity = 0; ++ ++ if (bd->props.fb_blank != FB_BLANK_UNBLANK) ++ intensity = 0; ++ ++ if (simpad_bl_suspended) ++ intensity = 0; ++ ++ if (intensity != current_intensity) ++ { ++ /* ++ * Determine dutyCycle. ++ * Note: the lower the value, the brighter the display! ++ */ ++ ++ dutyCycle = SIMPAD_MAX_INTENSITY - intensity; ++ ++ /* ++ * Configure PWM0 (source clock = oscillator clock, pwm always enabled, ++ * zero, clock pre-divider = 4) pwm frequency = 12.0kHz ++ */ ++ ++ fp0fr.whole = readl(FP0FR(REGISTER_BASE)); ++ pwmcontrol = fp0fr.whole & 0xffff00ff; ++ fp0fr.whole &= 0xffffff00; ++ fp0fr.whole |= 0x00000044; ++ writel(fp0fr.whole, FP0FR(REGISTER_BASE)); ++ ++ /* Write to pwm duty cycle register. */ ++ fp0fr.whole = dutyCycle << 8; ++ fp0fr.whole &= 0x0000ff00; ++ fp0fr.whole |= pwmcontrol; ++ writel(fp0fr.whole, FP0FR(REGISTER_BASE)); ++ ++ current_intensity = intensity; ++ } ++} + -+ pwmctl = readl(FP0FR(REGISTER_BASE)); -+ pwmctl &= ~SIMPAD_BACKLIGHT_MASK; -+ pwmctl = pwmctl >> 8; -+ pwmctl = MAX_BRIGHT - pwmctl; + -+ return pwmctl; ++#ifdef CONFIG_PM ++static int simpad_bl_suspend(struct platform_device *pdev, pm_message_t state) ++{ ++ struct backlight_device *bd = platform_get_drvdata(pdev); ++ ++ simpad_bl_suspended = 1; ++ simpad_bl_send_intensity(bd); ++ return 0; +} + -+static int simpad_bl_set_brightness(int bright) ++static int simpad_bl_resume(struct platform_device *pdev) +{ -+ union fp0fr fp0fr; -+ unsigned long dutyCycle, pwmcontrol; ++ struct backlight_device *bd = platform_get_drvdata(pdev); + -+ if(bright > MAX_BRIGHT) -+ bright = MAX_BRIGHT; ++ simpad_bl_suspended = 0; ++ simpad_bl_send_intensity(bd); ++ return 0; ++} ++#else ++#define simpad_bl_suspend NULL ++#define simpad_bl_resume NULL ++#endif + -+ /* -+ * Determine dutyCycle. -+ * Note: the lower the value, the brighter the display! -+ */ + -+ dutyCycle = MAX_BRIGHT - bright; ++static int simpad_bl_set_intensity(struct backlight_device *bd) ++{ ++ simpad_bl_send_intensity(bd); ++ return 0; ++} + -+ /* -+ *Configure PWM0 (source clock = oscillator clock, pwm always enabled, -+ *zero, clock pre-divider = 4) pwm frequency = 12.0kHz -+ */ -+ fp0fr.whole = readl(FP0FR(REGISTER_BASE)); -+ pwmcontrol = fp0fr.whole & 0xffff00ff; -+ fp0fr.whole &= 0xffffff00; -+ fp0fr.whole |= 0x00000044; -+ writel(fp0fr.whole, FP0FR(REGISTER_BASE)); -+ -+ /* Write to pwm duty cycle register. */ -+ fp0fr.whole = dutyCycle << 8; -+ fp0fr.whole &= 0x0000ff00; -+ fp0fr.whole |= pwmcontrol; -+ writel(fp0fr.whole, FP0FR(REGISTER_BASE)); + -+ return 0; ++static int simpad_bl_get_intensity(struct backlight_device *bd) ++{ ++ return current_intensity; +} + -+static int simpad_bl_update_status(struct backlight_device *dev) ++ ++static struct backlight_ops simpad_bl_ops = { ++ .get_brightness = simpad_bl_get_intensity, ++ .update_status = simpad_bl_set_intensity, ++}; ++ ++ ++static int __init simpad_bl_probe(struct platform_device *pdev) +{ -+ return simpad_bl_set_brightness(dev->props->brightness); ++ struct backlight_device *bd; ++ ++ bd = backlight_device_register("simpad-mq200-bl", &pdev->dev, NULL, &simpad_bl_ops); ++ ++ if (IS_ERR (bd)) ++ return PTR_ERR (bd); ++ ++ platform_set_drvdata(pdev, bd); ++ ++ bd->props.max_brightness = SIMPAD_MAX_INTENSITY; ++ bd->props.brightness = SIMPAD_DEFAULT_INTENSITY; ++ simpad_bl_send_intensity(bd); ++ ++ return 0; +} + -+static struct backlight_properties simpad_bl_props = { -+ .owner = THIS_MODULE, -+ .update_status = simpad_bl_update_status, -+ .get_brightness = simpad_bl_get_brightness, -+ .brightness=127, -+ .max_brightness = MAX_BRIGHT, ++ ++static int simpad_bl_remove(struct platform_device *pdev) ++{ ++ struct backlight_device *bd = platform_get_drvdata(pdev); ++ ++ bd->props.brightness = 0; ++ bd->props.power = 0; ++ simpad_bl_send_intensity(bd); ++ ++ backlight_device_unregister(bd); ++ ++ return 0; ++} ++ ++static struct platform_driver simpad_bl_driver = { ++ .probe = simpad_bl_probe, ++ .remove = simpad_bl_remove, ++ .suspend = simpad_bl_suspend, ++ .resume = simpad_bl_resume, ++ .driver = { ++ .name = "simpad-mq200-bl", ++ }, +}; + -+static struct backlight_device *simpad_bl_device = NULL; ++static struct platform_device *simpad_bl_device = NULL; + -+static int __init simpad_bl_init(void) { -+ simpad_bl_device = backlight_device_register("mq200_fb0", NULL, -+ NULL, &simpad_bl_props); -+ return simpad_bl_device != NULL; ++static int __init simpad_bl_init(void) ++{ ++ int ret; ++ ++ ret = platform_driver_register(&simpad_bl_driver); ++ if (!ret) { ++ simpad_bl_device = platform_device_alloc("simpad-mq200-bl", -1); ++ if (!simpad_bl_device) ++ return -ENOMEM; ++ ++ ret = platform_device_add(simpad_bl_device); ++ ++ if (ret) { ++ platform_device_put(simpad_bl_device); ++ platform_driver_unregister(&simpad_bl_driver); ++ } ++ } ++ return ret; +} + -+static void __exit simpad_bl_exit(void) { -+ backlight_device_unregister(simpad_bl_device); ++static void __exit simpad_bl_exit(void) ++{ ++ platform_device_unregister(simpad_bl_device); ++ platform_driver_unregister(&simpad_bl_driver); +} + + @@ -164,10 +282,10 @@ diff -uNr linux-2.6.20.vanilla/drivers/video/backlight/simpad_bl.c linux-2.6.20/ +module_exit(simpad_bl_exit); +MODULE_AUTHOR("Holger Hans Peter Freyther"); +MODULE_LICENSE("GPL"); -diff -uNr linux-2.6.20.vanilla/drivers/video/backlight/simpad_lcd.c linux-2.6.20/drivers/video/backlight/simpad_lcd.c ---- linux-2.6.20.vanilla/drivers/video/backlight/simpad_lcd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.20/drivers/video/backlight/simpad_lcd.c 2007-03-28 22:58:41.000000000 +0200 -@@ -0,0 +1,80 @@ +diff -uNr linux-2.6.21.vanilla/drivers/video/backlight/simpad_lcd.c linux-2.6.21/drivers/video/backlight/simpad_lcd.c +--- linux-2.6.21.vanilla/drivers/video/backlight/simpad_lcd.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.21/drivers/video/backlight/simpad_lcd.c 2007-05-01 17:02:17.000000000 +0200 +@@ -0,0 +1,170 @@ +/* + * GPLv2 <zecke@handhelds.org + * @@ -178,12 +296,16 @@ diff -uNr linux-2.6.20.vanilla/drivers/video/backlight/simpad_lcd.c linux-2.6.20 + * - added simpad_lcd_set_contrast() + * - modify struct lcd_properties simpad_lcd_props + */ ++#include <linux/module.h> ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/fb.h> ++#include <linux/lcd.h> ++ +#include <asm/arch/simpad.h> +#include <asm/hardware.h> + -+#include <linux/device.h> -+#include <linux/lcd.h> -+ +extern long get_cs3_shadow(void); +extern void set_cs3_bit(int); +extern void clear_cs3_bit(int); @@ -192,65 +314,151 @@ diff -uNr linux-2.6.20.vanilla/drivers/video/backlight/simpad_lcd.c linux-2.6.20 + +static int simpad_lcd_get_power(struct lcd_device* dev) +{ -+ UNUSED(dev); ++ UNUSED(dev); + -+ return (get_cs3_shadow() & DISPLAY_ON) ? 0 : 4; ++ return (get_cs3_shadow() & DISPLAY_ON) ? 0 : 4; +} + +static int simpad_lcd_set_power(struct lcd_device* dev, int power) +{ -+ UNUSED(dev); ++ UNUSED(dev); + -+ if( power == 4 ) -+ clear_cs3_bit(DISPLAY_ON); -+ else -+ set_cs3_bit(DISPLAY_ON); ++ if( power == 4 ) ++ clear_cs3_bit(DISPLAY_ON); ++ else ++ set_cs3_bit(DISPLAY_ON); + -+ return 0; ++ return 0; +} + +static int simpad_lcd_get_contrast(struct lcd_device* dev) +{ -+ UNUSED(dev); ++ UNUSED(dev); + -+ return 0; ++ return 0; +} + +static int simpad_lcd_set_contrast(struct lcd_device* dev, int contrast) +{ -+ UNUSED(dev); ++ UNUSED(dev); + -+ UNUSED(contrast); ++ UNUSED(contrast); + -+ return 0; ++ return 0; ++} ++ ++#ifdef CONFIG_PM ++static int simpad_lcd_suspend(struct platform_device *pdev, pm_message_t state) ++{ ++ UNUSED(state); ++ static int ret; ++ ++ struct lcd_device* ld; ++ ++ ld = platform_get_drvdata(pdev); ++ ++ ret = simpad_lcd_set_power(ld, 4); ++ ++ return ret; ++} ++ ++static int simpad_lcd_resume(struct platform_device *pdev) ++{ ++ struct lcd_device *ld; ++ static int ret; ++ ++ ld = platform_get_drvdata(pdev); ++ ++ ret = simpad_lcd_set_power(ld, 0); ++ ++ return ret; +} ++#else ++#define simpad_lcd_suspend NULL ++#define simpad_lcd_resume NULL ++#endif + +static struct lcd_properties simpad_lcd_props = { -+ .owner = THIS_MODULE, -+ .get_power = simpad_lcd_get_power, -+ .set_power = simpad_lcd_set_power, -+ .get_contrast = simpad_lcd_get_contrast, -+ .set_contrast = simpad_lcd_set_contrast, -+ .max_contrast = 0 ++ .max_contrast = 0, ++}; ++ ++ ++static struct lcd_ops simpad_lcd_ops = { ++ .get_power = simpad_lcd_get_power, ++ .set_power = simpad_lcd_set_power, ++ .get_contrast = simpad_lcd_get_contrast, ++ .set_contrast = simpad_lcd_set_contrast, ++}; ++ ++static int __init simpad_lcd_probe(struct platform_device *pdev) ++{ ++ struct lcd_device *ld; ++ ++ ld = lcd_device_register ("simpad-mq200-lcd", &pdev->dev, &simpad_lcd_ops); ++ ++ if (IS_ERR(ld)) ++ return PTR_ERR(ld); ++ ++ platform_set_drvdata(pdev, ld); ++ ++ ld->props.max_contrast = 0; ++ ++ return 0; ++} ++ ++static int simpad_lcd_remove(struct platform_device *pdev) ++{ ++ struct lcd_device *ld = platform_get_drvdata(pdev); ++ ++ lcd_device_unregister(ld); ++ ++ return 0; ++} ++ ++static struct platform_driver simpad_lcd_driver = { ++ .probe = simpad_lcd_probe, ++ .remove = simpad_lcd_remove, ++ .suspend = simpad_lcd_suspend, ++ .resume = simpad_lcd_resume, ++ .driver = { ++ .name = "simpad-mq200-lcd", ++ }, +}; + -+static struct lcd_device* simpad_lcd_device = NULL; ++static struct platform_device *simpad_lcd_device = NULL; + -+static int __init simpad_lcd_init(void) { -+ simpad_lcd_device = lcd_device_register("mq200_fb0", NULL, -+ &simpad_lcd_props); -+ return simpad_lcd_device != NULL; ++static int __init simpad_lcd_init(void) ++{ ++ int ret; ++ ++ ret = platform_driver_register(&simpad_lcd_driver); ++ if (!ret) { ++ simpad_lcd_device = platform_device_alloc("simpad-mq200-lcd", -1); ++ if (!simpad_lcd_device) ++ return -ENOMEM; ++ ++ ret = platform_device_add(simpad_lcd_device); ++ ++ if (ret) { ++ platform_device_put(simpad_lcd_device); ++ platform_driver_unregister(&simpad_lcd_driver); ++ } ++ } ++ return ret; +} + +static void __exit simpad_lcd_exit(void) { -+ lcd_device_unregister(simpad_lcd_device); ++ platform_driver_unregister(&simpad_lcd_driver); ++ platform_device_unregister(simpad_lcd_device); +} + +module_init(simpad_lcd_init); +module_exit(simpad_lcd_exit); -diff -uNr linux-2.6.20.vanilla/drivers/video/mq200/Makefile linux-2.6.20/drivers/video/mq200/Makefile ---- linux-2.6.20.vanilla/drivers/video/mq200/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.20/drivers/video/mq200/Makefile 2007-03-28 22:53:44.000000000 +0200 ++MODULE_AUTHOR("Holger Hans Peter Freyther"); ++MODULE_LICENSE("GPL"); +diff -uNr linux-2.6.21.vanilla/drivers/video/mq200/Makefile linux-2.6.21/drivers/video/mq200/Makefile +--- linux-2.6.21.vanilla/drivers/video/mq200/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.21/drivers/video/mq200/Makefile 2007-05-01 17:02:17.000000000 +0200 @@ -0,0 +1,6 @@ +# Makefile for mq200 video driver +# 4 Aug 2003, Holger Hans Peter Freyther @@ -258,9 +466,9 @@ diff -uNr linux-2.6.20.vanilla/drivers/video/mq200/Makefile linux-2.6.20/drivers + +obj-$(CONFIG_FB_MQ200) += mq_skeleton.o mq_external.o + -diff -uNr linux-2.6.20.vanilla/drivers/video/mq200/mq200_data.h linux-2.6.20/drivers/video/mq200/mq200_data.h ---- linux-2.6.20.vanilla/drivers/video/mq200/mq200_data.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.20/drivers/video/mq200/mq200_data.h 2007-03-28 22:53:44.000000000 +0200 +diff -uNr linux-2.6.21.vanilla/drivers/video/mq200/mq200_data.h linux-2.6.21/drivers/video/mq200/mq200_data.h +--- linux-2.6.21.vanilla/drivers/video/mq200/mq200_data.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.21/drivers/video/mq200/mq200_data.h 2007-05-01 17:02:17.000000000 +0200 @@ -0,0 +1,1120 @@ +/* + * From ucLinux mq200fb.c and mq200fb.h @@ -1382,9 +1590,9 @@ diff -uNr linux-2.6.20.vanilla/drivers/video/mq200/mq200_data.h linux-2.6.20/dri + + +#endif -diff -uNr linux-2.6.20.vanilla/drivers/video/mq200/mq_external.c linux-2.6.20/drivers/video/mq200/mq_external.c ---- linux-2.6.20.vanilla/drivers/video/mq200/mq_external.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.20/drivers/video/mq200/mq_external.c 2007-03-28 22:53:44.000000000 +0200 +diff -uNr linux-2.6.21.vanilla/drivers/video/mq200/mq_external.c linux-2.6.21/drivers/video/mq200/mq_external.c +--- linux-2.6.21.vanilla/drivers/video/mq200/mq_external.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.21/drivers/video/mq200/mq_external.c 2007-05-01 17:02:17.000000000 +0200 @@ -0,0 +1,513 @@ +/* + * Copyright (C) 2005 Holger Hans Peter Freyther @@ -1899,9 +2107,9 @@ diff -uNr linux-2.6.20.vanilla/drivers/video/mq200/mq_external.c linux-2.6.20/dr + pc00r.part.device, pc00r.part.vendor); + return 1; +} -diff -uNr linux-2.6.20.vanilla/drivers/video/mq200/mq_skeleton.c linux-2.6.20/drivers/video/mq200/mq_skeleton.c ---- linux-2.6.20.vanilla/drivers/video/mq200/mq_skeleton.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.20/drivers/video/mq200/mq_skeleton.c 2007-03-28 22:53:44.000000000 +0200 +diff -uNr linux-2.6.21.vanilla/drivers/video/mq200/mq_skeleton.c linux-2.6.21/drivers/video/mq200/mq_skeleton.c +--- linux-2.6.21.vanilla/drivers/video/mq200/mq_skeleton.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.21/drivers/video/mq200/mq_skeleton.c 2007-05-01 17:02:17.000000000 +0200 @@ -0,0 +1,398 @@ +/* + * Author: Holger Hans Peter Freyther diff --git a/packages/linux/linux/simpad/linux-2.6.21-SIMpad-serial-and-gpio_keys.patch b/packages/linux/linux/simpad/linux-2.6.21-SIMpad-serial-and-gpio_keys.patch new file mode 100644 index 0000000000..90ce4cb009 --- /dev/null +++ b/packages/linux/linux/simpad/linux-2.6.21-SIMpad-serial-and-gpio_keys.patch @@ -0,0 +1,194 @@ +diff -uNr linux-2.6.21.vanilla/arch/arm/mach-sa1100/simpad.c linux-2.6.21/arch/arm/mach-sa1100/simpad.c +--- linux-2.6.21.vanilla/arch/arm/mach-sa1100/simpad.c 2007-05-01 16:40:44.000000000 +0200 ++++ linux-2.6.21/arch/arm/mach-sa1100/simpad.c 2007-05-01 19:23:29.000000000 +0200 +@@ -1,5 +1,14 @@ + /* + * linux/arch/arm/mach-sa1100/simpad.c ++ * ++ * 2007/04/11 mrdata: ++ * - insert simpad_uart_set_mctrl() ++ * simpad_uart_get_mctrl() ++ * - internal RS232/DECT/Bluetooth ++ * works again (based on 2.4 simpad-serial.patch) ++ * ++ * 2007/04/12 Bernhard Guillon: ++ * -added gpio_keys (based on h3000.c from hh.org) + */ + + #include <linux/module.h> +@@ -27,6 +36,8 @@ + + #include <linux/serial_core.h> + #include <linux/ioport.h> ++#include <linux/input.h> ++#include <linux/gpio_keys.h> + #include <asm/io.h> + + #include "generic.h" +@@ -55,6 +66,7 @@ + *(CS3BUSTYPE *)(CS3_BASE) = cs3_shadow; + } + ++EXPORT_SYMBOL(get_cs3_shadow); + EXPORT_SYMBOL(set_cs3_bit); + EXPORT_SYMBOL(clear_cs3_bit); + +@@ -73,23 +85,71 @@ + }; + + ++static void simpad_uart_set_mctrl(struct uart_port *port, u_int mctrl) ++{ ++ if (port->mapbase == _Ser1UTCR0) { ++ /* internal serial port (ttySA1, DECT/Bluetooth) */ ++ if (mctrl & TIOCM_RTS) GPCR = GPIO_UART1_RTS; ++ else GPSR = GPIO_UART1_RTS; ++ ++ if (mctrl & TIOCM_DTR) GPCR = GPIO_UART1_DTR; ++ else GPSR = GPIO_UART1_DTR; ++ } ++ ++ else if (port->mapbase == _Ser3UTCR0) { ++ /* external serial port (ttySA0, RS232) */ ++ if (mctrl & TIOCM_RTS) GPCR = GPIO_UART3_RTS; ++ else GPSR = GPIO_UART3_RTS; ++ ++ if (mctrl & TIOCM_DTR) GPCR = GPIO_UART3_DTR; ++ else GPSR = GPIO_UART3_DTR; ++ } ++} ++ ++ ++static u_int simpad_uart_get_mctrl(struct uart_port *port) ++{ ++ u_int ret = TIOCM_CD | TIOCM_CTS | TIOCM_DSR; ++ ++ if (port->mapbase == _Ser1UTCR0) { ++ /* internal serial port (ttySA1, DECT/Bluetooth) */ ++ int gplr = GPLR; ++ if (gplr & GPIO_UART1_DCD) ret &= ~TIOCM_CD; ++ if (gplr & GPIO_UART1_CTS) ret &= ~TIOCM_CTS; ++ if (gplr & GPIO_UART1_DSR) ret &= ~TIOCM_DSR; ++ } ++ ++ else if (port->mapbase == _Ser3UTCR0) { ++ /* external serial port (ttySA0, RS232) */ ++ int gplr = GPLR; ++ if (gplr & GPIO_UART3_DCD) ret &= ~TIOCM_CD; ++ if (gplr & GPIO_UART3_CTS) ret &= ~TIOCM_CTS; ++ if (gplr & GPIO_UART3_DSR) ret &= ~TIOCM_DSR; ++ } ++ return ret; ++} ++ ++ + static void simpad_uart_pm(struct uart_port *port, u_int state, u_int oldstate) + { +- if (port->mapbase == (u_int)&Ser1UTCR0) { +- if (state) +- { +- clear_cs3_bit(RS232_ON); +- clear_cs3_bit(DECT_POWER_ON); +- }else +- { +- set_cs3_bit(RS232_ON); +- set_cs3_bit(DECT_POWER_ON); +- } +- } ++ if (port->mapbase == (u_int)&Ser3UTCR0) { ++ if (state) ++ { ++ clear_cs3_bit(RS232_ON); ++ /* clear_cs3_bit(DECT_POWER_ON); */ ++ }else ++ { ++ set_cs3_bit(RS232_ON); ++ /* set_cs3_bit(DECT_POWER_ON); */ ++ } ++ } + } + ++ + static struct sa1100_port_fns simpad_port_fns __initdata = { +- .pm = simpad_uart_pm, ++ .set_mctrl = simpad_uart_set_mctrl, ++ .get_mctrl = simpad_uart_get_mctrl, ++ .pm = simpad_uart_pm, + }; + + +@@ -150,7 +210,7 @@ + sa1100_register_uart(0, 3); /* serial interface */ + sa1100_register_uart(1, 1); /* DECT */ + +- // Reassign UART 1 pins ++ /* Reassign UART 1 pins */ + GAFR |= GPIO_UART_TXD | GPIO_UART_RXD; + GPDR |= GPIO_UART_TXD | GPIO_LDD13 | GPIO_LDD15; + GPDR &= ~GPIO_UART_RXD; +@@ -173,7 +233,7 @@ + + static void simpad_power_off(void) + { +- local_irq_disable(); // was cli ++ local_irq_disable(); /* was cli */ + set_cs3(0x800); /* only SD_MEDIAQ */ + + /* disable internal oscillator, float CS lines */ +@@ -197,19 +257,42 @@ + + + /* ++ * gpio_keys ++*/ ++ ++static struct gpio_keys_button simpad_button_table[] = { ++ { KEY_POWER, IRQ_GPIO_POWER_BUTTON, 0, "power button" }, ++}; ++ ++static struct gpio_keys_platform_data simpad_keys_data = { ++ .buttons = simpad_button_table, ++ .nbuttons = ARRAY_SIZE(simpad_button_table), ++}; ++ ++static struct platform_device simpad_keys = { ++ .name = "gpio-keys", ++ .dev = { ++ .platform_data = &simpad_keys_data, ++ }, ++}; ++ ++ ++/* + * MediaQ Video Device + */ ++ + static struct platform_device simpad_mq200fb = { + .name = "simpad-mq200", + .id = 0, + }; + ++ + static struct platform_device *devices[] __initdata = { +- &simpad_mq200fb ++ &simpad_keys, ++ &simpad_mq200fb, + }; + + +- + static int __init simpad_init(void) + { + int ret; +diff -uNr linux-2.6.21.vanilla/include/asm-arm/arch-sa1100/simpad.h linux-2.6.21/include/asm-arm/arch-sa1100/simpad.h +--- linux-2.6.21.vanilla/include/asm-arm/arch-sa1100/simpad.h 2007-05-01 16:40:51.000000000 +0200 ++++ linux-2.6.21/include/asm-arm/arch-sa1100/simpad.h 2007-05-01 19:22:45.000000000 +0200 +@@ -12,7 +12,7 @@ + #define __ASM_ARCH_SIMPAD_H + + +-#define GPIO_UART1_RTS GPIO_GPIO14 ++#define GPIO_UART1_RTS GPIO_GPIO9 + #define GPIO_UART1_DTR GPIO_GPIO7 + #define GPIO_UART1_CTS GPIO_GPIO8 + #define GPIO_UART1_DCD GPIO_GPIO23 diff --git a/packages/linux/linux/simpad/linux-2.6.20.SIMpad-ucb1x00-switches.patch b/packages/linux/linux/simpad/linux-2.6.21-SIMpad-ucb1x00-switches.patch index 7cf2f28c89..ff2f50566c 100644 --- a/packages/linux/linux/simpad/linux-2.6.20.SIMpad-ucb1x00-switches.patch +++ b/packages/linux/linux/simpad/linux-2.6.21-SIMpad-ucb1x00-switches.patch @@ -1,7 +1,7 @@ -diff -uNr linux-2.6.20.vanilla/drivers/mfd/Kconfig linux-2.6.20/drivers/mfd/Kconfig ---- linux-2.6.20.vanilla/drivers/mfd/Kconfig 2007-02-10 19:01:56.000000000 +0100 -+++ linux-2.6.20/drivers/mfd/Kconfig 2007-02-28 16:36:01.000000000 +0100 -@@ -23,4 +23,7 @@ +diff -uNr linux-2.6.21.vanilla/drivers/mfd/Kconfig linux-2.6.21/drivers/mfd/Kconfig +--- linux-2.6.21.vanilla/drivers/mfd/Kconfig 2007-05-01 16:40:45.000000000 +0200 ++++ linux-2.6.21/drivers/mfd/Kconfig 2007-05-01 16:55:38.000000000 +0200 +@@ -37,4 +37,7 @@ tristate "Touchscreen interface support" depends on MCP_UCB1200 && INPUT @@ -9,10 +9,10 @@ diff -uNr linux-2.6.20.vanilla/drivers/mfd/Kconfig linux-2.6.20/drivers/mfd/Kcon + tristate "SIMpad Switches support" + depends on MCP_UCB1200 && INPUT endmenu -diff -uNr linux-2.6.20.vanilla/drivers/mfd/Makefile linux-2.6.20/drivers/mfd/Makefile ---- linux-2.6.20.vanilla/drivers/mfd/Makefile 2007-02-10 19:01:56.000000000 +0100 -+++ linux-2.6.20/drivers/mfd/Makefile 2007-02-28 16:36:01.000000000 +0100 -@@ -6,7 +6,7 @@ +diff -uNr linux-2.6.21.vanilla/drivers/mfd/Makefile linux-2.6.21/drivers/mfd/Makefile +--- linux-2.6.21.vanilla/drivers/mfd/Makefile 2007-05-01 16:40:45.000000000 +0200 ++++ linux-2.6.21/drivers/mfd/Makefile 2007-05-01 16:55:38.000000000 +0200 +@@ -8,7 +8,7 @@ obj-$(CONFIG_MCP_SA11X0) += mcp-sa11x0.o obj-$(CONFIG_MCP_UCB1200) += ucb1x00-core.o obj-$(CONFIG_MCP_UCB1200_TS) += ucb1x00-ts.o @@ -21,9 +21,9 @@ diff -uNr linux-2.6.20.vanilla/drivers/mfd/Makefile linux-2.6.20/drivers/mfd/Mak ifeq ($(CONFIG_SA1100_ASSABET),y) obj-$(CONFIG_MCP_UCB1200) += ucb1x00-assabet.o endif -diff -uNr linux-2.6.20.vanilla/drivers/mfd/ucb1x00-switches.c linux-2.6.20/drivers/mfd/ucb1x00-switches.c ---- linux-2.6.20.vanilla/drivers/mfd/ucb1x00-switches.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-2.6.20/drivers/mfd/ucb1x00-switches.c 2007-02-28 16:36:43.000000000 +0100 +diff -uNr linux-2.6.21.vanilla/drivers/mfd/ucb1x00-switches.c linux-2.6.21/drivers/mfd/ucb1x00-switches.c +--- linux-2.6.21.vanilla/drivers/mfd/ucb1x00-switches.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.21/drivers/mfd/ucb1x00-switches.c 2007-05-01 16:55:38.000000000 +0200 @@ -0,0 +1,162 @@ +/* + * linux/drivers/mfd/ucb1x00-switches.c diff --git a/packages/linux/linux/simpad/linux-2.6.21-pcmcia-device-to-platform-driver.patch b/packages/linux/linux/simpad/linux-2.6.21-pcmcia-device-to-platform-driver.patch new file mode 100644 index 0000000000..e6233cbe30 --- /dev/null +++ b/packages/linux/linux/simpad/linux-2.6.21-pcmcia-device-to-platform-driver.patch @@ -0,0 +1,54 @@ +diff -uNr linux-2.6.21.vanilla/drivers/pcmcia/sa1100_generic.c linux-2.6.21/drivers/pcmcia/sa1100_generic.c +--- linux-2.6.21.vanilla/drivers/pcmcia/sa1100_generic.c 2007-05-01 16:40:46.000000000 +0200 ++++ linux-2.6.21/drivers/pcmcia/sa1100_generic.c 2007-05-01 19:38:05.000000000 +0200 +@@ -28,6 +28,9 @@ + the provisions above, a recipient may use your version of this + file under either the MPL or the GPL. + ++ 2007 mrnice: added thesings changes from device_driver ++ to platform_driver - many thx to thesing ++ + ======================================================================*/ + + #include <linux/module.h> +@@ -81,13 +84,15 @@ + return ret; + } + +-static struct device_driver sa11x0_pcmcia_driver = { +- .probe = sa11x0_drv_pcmcia_probe, +- .remove = soc_common_drv_pcmcia_remove, +- .name = "sa11x0-pcmcia", +- .bus = &platform_bus_type, +- .suspend = pcmcia_socket_dev_suspend, +- .resume = pcmcia_socket_dev_resume, ++static struct platform_driver sa11x0_pcmcia_driver = { ++ .driver = { ++ .name = "sa11x0-pcmcia", ++ .probe = sa11x0_drv_pcmcia_probe, ++ .remove = soc_common_drv_pcmcia_remove, ++ .suspend= pcmcia_socket_dev_suspend, ++ .resume = pcmcia_socket_dev_resume, ++ //.bus = &platform_bus_type, ++ }, + }; + + /* sa11x0_pcmcia_init() +@@ -100,7 +105,7 @@ + */ + static int __init sa11x0_pcmcia_init(void) + { +- return driver_register(&sa11x0_pcmcia_driver); ++ return platform_driver_register(&sa11x0_pcmcia_driver); + } + + /* sa11x0_pcmcia_exit() +@@ -110,7 +115,7 @@ + */ + static void __exit sa11x0_pcmcia_exit(void) + { +- driver_unregister(&sa11x0_pcmcia_driver); ++ platform_driver_unregister(&sa11x0_pcmcia_driver); + } + + MODULE_AUTHOR("John Dorsey <john+@cs.cmu.edu>"); diff --git a/packages/linux/linux_2.6.20.bb b/packages/linux/linux_2.6.20.bb index 178a44dd14..80f6c71442 100644 --- a/packages/linux/linux_2.6.20.bb +++ b/packages/linux/linux_2.6.20.bb @@ -1,19 +1,11 @@ DESCRIPTION = "Linux Kernel" SECTION = "kernel" LICENSE = "GPL" -PR = "r5" +PR = "r6" SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ file://defconfig" -SRC_URI_append_progear = " \ - file://progear_bl-r6.patch;patch=1 \ - " -SRC_URI_append_simpad = "\ - file://linux-2.6.20.SIMpad-battery.patch;patch=1\ - file://linux-2.6.20.SIMpad-mq200.patch;patch=1 \ - file://linux-2.6.20.SIMpad-ucb1x00-switches.patch;patch=1 \ - " SRC_URI_append_n2100 = "\ file://n2100-r8169-parity.patch;patch=1 \ file://rtc-rs5c372-n2100.patch;patch=1 \ @@ -22,7 +14,6 @@ SRC_URI_append_n2100 = "\ inherit kernel KERNEL_IMAGETYPE = "bzImage" -KERNEL_IMAGETYPE_simpad = "zImage" KERNEL_IMAGETYPE_n2100 = "zImage" do_configure_prepend() { diff --git a/packages/linux/linux_2.6.21.bb b/packages/linux/linux_2.6.21.bb new file mode 100644 index 0000000000..d801f88507 --- /dev/null +++ b/packages/linux/linux_2.6.21.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "Linux Kernel" +SECTION = "kernel" +LICENSE = "GPL" + +SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ + file://defconfig" + +SRC_URI_append_simpad = "\ + file://linux-2.6.21-SIMpad-cs3-simpad.patch;patch=1 \ + file://linux-2.6.21-SIMpad-mq200.patch;patch=1 \ + file://linux-2.6.21-SIMpad-serial-and-gpio_keys.patch;patch=1 \ + file://linux-2.6.21-SIMpad-ucb1x00-switches.patch;patch=1 \ + file://linux-2.6.21-pcmcia-device-to-platform-driver.patch;patch=1 \ + " + +inherit kernel + +KERNEL_IMAGETYPE_simpad = "zImage" + +do_configure_prepend() { + install -m 0644 ${WORKDIR}/defconfig ${S}/.config +} + |