summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/arm_pxa_20070923.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/arm_pxa_20070923.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/binutils-buildid-arm.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/binutils-buildid-arm.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/connectplus-remove-ide-HACK.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/connectplus-remove-ide-HACK.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-akita (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-akita)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-bootcdx86 (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-bootcdx86)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-c7x0 (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-c7x0)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-collie (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-collie)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-htcuniversal (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-htcuniversal)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-hx2000 (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-hx2000)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-poodle (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-poodle)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-qemuarm (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-qemuarm)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-qemux86 (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-qemux86)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-spitz (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-spitz)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-tosa (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-tosa)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-zylonite (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-zylonite)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/hostap-monitor-mode.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/hostap-monitor-mode.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/htcuni-acx.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/htcuni-acx.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/htcuni.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/htcuni.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/hx2750_base-r31.patch1094
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/mmcsd_no_scr_check-r2.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/mmcsd_no_scr_check-r2.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/pda-power.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/pda-power.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/pxa-serial-hack.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/pxa-serial-hack.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/pxa27x_overlay-r8.patch2427
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/pxa_fb_overlay.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/pxa_fb_overlay.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/squashfs3.0-2.6.15.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/squashfs3.0-2.6.15.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/squashfs3.2-2.6.20-r0.patch4376
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/uvesafb-0.1-rc3-2.6.22.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/uvesafb-0.1-rc3-2.6.22.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/vt_ioctl_race.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/vt_ioctl_race.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/w100fb-unused-var.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/w100fb-unused-var.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/wm97xx-lcdnoise-r0.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/wm97xx-lcdnoise-r0.patch)0
-rw-r--r--meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/zylonite-boot.patch (renamed from meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/zylonite-boot.patch)0
-rw-r--r--meta/packages/linux/linux-rp_2.6.23+2.6.24-rc1.bb (renamed from meta/packages/linux/linux-rp_2.6.23+2.6.24-rc0+git.bb)18
33 files changed, 7904 insertions, 11 deletions
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/arm_pxa_20070923.patch b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/arm_pxa_20070923.patch
index ad4ce996df..ad4ce996df 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/arm_pxa_20070923.patch
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/arm_pxa_20070923.patch
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/binutils-buildid-arm.patch b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/binutils-buildid-arm.patch
index 68e35e89e1..68e35e89e1 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/binutils-buildid-arm.patch
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/binutils-buildid-arm.patch
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/connectplus-remove-ide-HACK.patch b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/connectplus-remove-ide-HACK.patch
index 4414b21191..4414b21191 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/connectplus-remove-ide-HACK.patch
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/connectplus-remove-ide-HACK.patch
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-akita b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-akita
index 59ec5c95b7..59ec5c95b7 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-akita
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-akita
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-bootcdx86 b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-bootcdx86
index 833f72ac9e..833f72ac9e 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-bootcdx86
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-bootcdx86
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-c7x0 b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-c7x0
index bd11500398..bd11500398 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-c7x0
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-c7x0
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-collie b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-collie
index 49d9596b92..49d9596b92 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-collie
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-collie
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-htcuniversal b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-htcuniversal
index 2b02621499..2b02621499 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-htcuniversal
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-htcuniversal
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-hx2000 b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-hx2000
index ee05db4e5a..ee05db4e5a 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-hx2000
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-hx2000
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-poodle b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-poodle
index 387b5e9bff..387b5e9bff 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-poodle
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-poodle
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-qemuarm b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-qemuarm
index 35cf3f5b17..35cf3f5b17 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-qemuarm
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-qemuarm
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-qemux86 b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-qemux86
index e9eb83e2dd..e9eb83e2dd 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-qemux86
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-qemux86
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-spitz b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-spitz
index 8e044e6a14..8e044e6a14 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-spitz
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-spitz
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-tosa b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-tosa
index 74fc076608..74fc076608 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-tosa
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-tosa
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-zylonite b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-zylonite
index 0321704a1f..0321704a1f 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/defconfig-zylonite
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/defconfig-zylonite
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/hostap-monitor-mode.patch b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/hostap-monitor-mode.patch
index 641fd19e50..641fd19e50 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/hostap-monitor-mode.patch
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/hostap-monitor-mode.patch
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/htcuni-acx.patch b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/htcuni-acx.patch
index 769674c935..769674c935 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/htcuni-acx.patch
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/htcuni-acx.patch
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/htcuni.patch b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/htcuni.patch
index 4d746749c5..4d746749c5 100644
--- a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc0+git/htcuni.patch
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/htcuni.patch
diff --git a/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/hx2750_base-r31.patch b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/hx2750_base-r31.patch
new file mode 100644
index 0000000000..5d58bcf55d
--- /dev/null
+++ b/meta/packages/linux/linux-rp-2.6.23+2.6.24-rc1/hx2750_base-r31.patch
@@ -0,0 +1,1094 @@
+---
+ arch/arm/mach-pxa/Kconfig | 10
+ arch/arm/mach-pxa/Makefile | 1
+ arch/arm/mach-pxa/hx2750.c | 450 ++++++++++++++++++++++++++++++++++++++
+ arch/arm/mach-pxa/hx2750_test.c | 433 ++++++++++++++++++++++++++++++++++++
+ arch/arm/mach-pxa/pm.c | 5
+ arch/arm/mach-pxa/pxa25x.c | 4
+ arch/arm/mach-pxa/pxa27x.c | 4
+ include/asm-arm/arch-pxa/hx2750.h | 90 +++++++
+ 8 files changed, 995 insertions(+), 2 deletions(-)
+
+--- /dev/null
++++ linux-2.6.24-rc1/include/asm-arm/arch-pxa/hx2750.h
+@@ -0,0 +1,90 @@
++/*
++ * Hardware specific definitions for iPAQ hx2750
++ *
++ * Copyright 2005 Openedhand Ltd.
++ *
++ * Author: Richard Purdie <richard@o-hand.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.
++ *
++ */
++#ifndef __ASM_ARCH_HX2750_H
++#define __ASM_ARCH_HX2750_H 1
++
++/*
++ * HX2750 (Non Standard) GPIO Definitions
++ */
++
++#define HX2750_GPIO_KEYPWR (0) /* Power button */
++#define HX2750_GPIO_BATTCOVER1 (9) /* Battery Cover Switch */
++#define HX2750_GPIO_CF_IRQ (11) /* CF IRQ? */
++#define HX2750_GPIO_USBCONNECT (12) /* USB Connected? */
++#define HX2750_GPIO_CF_DETECT (13) /* CF Card Detect? */
++#define HX2750_GPIO_EXTPWR (14) /* External Power Detect */
++#define HX2750_GPIO_BATLVL (15) /* Battery Level Detect */
++#define HX2750_GPIO_CF_PWR (17) /* CF Power? */
++#define HX2750_GPIO_SR_STROBE (18) /* Shift Register Strobe */
++#define HX2750_GPIO_CHARGE (22) /* Charging Enable (active low) */
++#define HX2750_GPIO_TSC2101_SS (24) /* TSC2101 SS# */
++#define HX2750_GPIO_BTPWR (27) /* Bluetooth Power? */
++#define HX2750_GPIO_BATTCOVER2 (33) /* Battery Cover Switch */
++#define HX2750_GPIO_SD_DETECT (38) /* MMC Card Detect */
++#define HX2750_GPIO_SR_CLK1 (52) /* Shift Register Clock */
++#define HX2750_GPIO_SR_CLK2 (53)
++#define HX2750_GPIO_CF_WIFIIRQ (54) /* CF Wifi IRQ? */
++#define HX2750_GPIO_GPIO_DIN (88) /* Shift Register Data */
++#define HX2750_GPIO_KEYLEFT (90) /* Left button */
++#define HX2750_GPIO_KEYRIGHT (91) /* Right button */
++#define HX2750_GPIO_KEYCAL (93) /* Calander button */
++#define HX2750_GPIO_KEYTASK (94) /* Task button */
++#define HX2750_GPIO_KEYSIDE (95) /* Side button */
++#define HX2750_GPIO_KEYENTER (96) /* Enter Button*/
++#define HX2750_GPIO_KEYCON (97) /* Contacts button */
++#define HX2750_GPIO_KEYMAIL (98) /* Mail button */
++#define HX2750_GPIO_BIOPWR (99) /* BIO Reader Power? */
++#define HX2750_GPIO_KEYUP (100) /* Up button */
++#define HX2750_GPIO_KEYDOWN (101) /* Down button*/
++#define HX2750_GPIO_SD_READONLY (103) /* MMC/SD Write Protection */
++#define HX2750_GPIO_LEDMAIL (106) /* Green Mail LED */
++#define HX2750_GPIO_HP_JACK (108) /* Head Phone Jack Present */
++#define HX2750_GPIO_PENDOWN (117) /* Touch Screen Pendown */
++
++
++//#define HX2750_GPIO_ () /* */
++
++/*
++ * HX2750 Interrupts
++ */
++#define HX2750_IRQ_GPIO_EXTPWR IRQ_GPIO(HX2750_GPIO_EXTPWR)
++#define HX2750_IRQ_GPIO_SD_DETECT IRQ_GPIO(HX2750_GPIO_SD_DETECT)
++#define HX2750_IRQ_GPIO_PENDOWN IRQ_GPIO(HX2750_GPIO_PENDOWN)
++#define HX2750_IRQ_GPIO_CF_DETECT IRQ_GPIO(HX2750_GPIO_CF_DETECT)
++#define HX2750_IRQ_GPIO_CF_IRQ IRQ_GPIO(HX2750_GPIO_CF_IRQ)
++#define HX2750_IRQ_GPIO_CF_WIFIIRQ IRQ_GPIO(HX2750_GPIO_CF_WIFIIRQ)
++
++/*
++ * HX2750 Extra GPIO Definitions
++ */
++
++#define HX2750_EGPIO_WIFI_PWR (1 << 11) /* Wifi power */
++#define HX2750_EGPIO_LCD_PWR (1 << 10) /* LCD Power */
++#define HX2750_EGPIO_BL_PWR (1 << 9) /* Backlight LED Power */
++#define HX2750_EGPIO_8 (1 << 8) /* */
++#define HX2750_EGPIO_7 (1 << 7) /* */
++#define HX2750_EGPIO_SD_PWR (1 << 6) /* SD Power */
++#define HX2750_EGPIO_TSC_PWR (1 << 5) /* TS Power */
++#define HX2750_EGPIO_CF0_RESET (1 << 4) /* CF0 Reset */
++#define HX2750_EGPIO_CF1_RESET (1 << 3) /* CF1 Reset */
++#define HX2750_EGPIO_2 (1 << 2) /* Power/Red LED Related?*/
++#define HX2750_EGPIO_1 (1 << 1) /* Power/Red LED Related?*/
++#define HX2750_EGPIO_PWRLED (1 << 0) /* Power/Red LED Related?*/
++
++
++void hx2750_set_egpio(unsigned int gpio);
++void hx2750_clear_egpio(unsigned int gpio);
++
++
++#endif /* __ASM_ARCH_HX2750_H */
++
+--- linux-2.6.24-rc1.orig/arch/arm/mach-pxa/Makefile
++++ linux-2.6.24-rc1/arch/arm/mach-pxa/Makefile
+@@ -22,6 +22,7 @@
+ obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o
+ obj-$(CONFIG_MACH_TOSA) += tosa.o
+ obj-$(CONFIG_MACH_EM_X270) += em-x270.o
++obj-$(CONFIG_MACH_HX2750) += hx2750.o hx2750_test.o
+
+ ifeq ($(CONFIG_MACH_ZYLONITE),y)
+ obj-y += zylonite.o
+--- /dev/null
++++ linux-2.6.24-rc1/arch/arm/mach-pxa/hx2750_test.c
+@@ -0,0 +1,433 @@
++/*
++ * HP iPAQ hx2750 Test Development Code
++ *
++ * Copyright 2005 Openedhand Ltd.
++ *
++ * Author: Richard Purdie <richard@o-hand.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/init.h>
++#include <linux/kernel.h>
++#include <linux/ioport.h>
++#include <linux/device.h>
++#include <linux/input.h>
++#include <linux/delay.h>
++#include <linux/interrupt.h>
++
++#include <asm/mach-types.h>
++#include <asm/hardware.h>
++#include <asm/mach/arch.h>
++
++#include <asm/arch/hx2750.h>
++#include <asm/arch/pxa-regs.h>
++
++
++static int prodval;
++
++/*
++ * Sysfs functions
++ */
++static ssize_t test1_show(struct device *dev, char *buf)
++{
++ unsigned long rp;
++
++ asm ("mrc p15, 0, %0, cr1, cr0;\n" :"=r"(rp) );
++ printk("%lx\n",rp);
++
++ asm ("mrc p15, 0, %0, cr1, cr1;\n" :"=r"(rp) );
++ printk("%lx\n",rp);
++
++ asm ("mrc p15, 0, %0, cr2, cr0;\n" :"=r"(rp) );
++ printk("%lx\n",rp);
++
++ asm ("mrc p15, 0, %0, cr3, cr0;\n" :"=r"(rp) );
++ printk("%lx\n",rp);
++
++ asm ("mrc p15, 0, %0, cr13, cr0;\n" :"=r"(rp) );
++ printk("%lx\n",rp);
++
++ return sprintf(buf, "%d\n",prodval);
++}
++extern void tsc2101_print_miscdata(struct device *dev);
++extern struct platform_device tsc2101_device;
++
++static ssize_t test1_store(struct device *dev, const char *buf, size_t count)
++{
++ prodval = simple_strtoul(buf, NULL, 10);
++
++ tsc2101_print_miscdata(&tsc2101_device.dev);
++
++ return count;
++}
++
++static DEVICE_ATTR(test1, 0644, test1_show, test1_store);
++
++static ssize_t test2_show(struct device *dev, char *buf)
++{
++ printk(KERN_ERR "SSCR0_P2: %08x\n", SSCR0_P2);
++ printk(KERN_ERR "SSCR1_P2: %08x\n", SSCR1_P2);
++ printk(KERN_ERR "SSSR_P2: %08x\n", SSSR_P2);
++ printk(KERN_ERR "SSITR_P2: %08x\n", SSITR_P2);
++ printk(KERN_ERR "SSDR_P2: %08x\n", SSDR_P2);
++ printk(KERN_ERR "SSTO_P2: %08x\n", SSTO_P2);
++ printk(KERN_ERR "SSPSP_P2: %08x\n", SSPSP_P2);
++
++ hx2750_ssp_init2();
++
++ printk(KERN_ERR "SSCR0_P2: %08x\n", SSCR0_P2);
++ printk(KERN_ERR "SSCR1_P2: %08x\n", SSCR1_P2);
++ printk(KERN_ERR "SSSR_P2: %08x\n", SSSR_P2);
++ printk(KERN_ERR "SSITR_P2: %08x\n", SSITR_P2);
++ printk(KERN_ERR "SSDR_P2: %08x\n", SSDR_P2);
++ printk(KERN_ERR "SSTO_P2: %08x\n", SSTO_P2);
++ printk(KERN_ERR "SSPSP_P2: %08x\n", SSPSP_P2);
++
++ return sprintf(buf, "%d\n",0);
++}
++
++static DEVICE_ATTR(test2, 0444, test2_show, NULL);
++
++extern unsigned int hx2750_egpio_current;
++
++static ssize_t setegpio_show(struct device *dev, char *buf)
++{
++ return sprintf(buf, "%x\n",hx2750_egpio_current);
++}
++
++static ssize_t setegpio_store(struct device *dev, const char *buf, size_t count)
++{
++ unsigned int val = simple_strtoul(buf, NULL, 10);
++
++ hx2750_set_egpio(1 << val);
++
++ return count;
++}
++
++static DEVICE_ATTR(setegpio, 0644, setegpio_show, setegpio_store);
++
++static ssize_t clregpio_show(struct device *dev, char *buf)
++{
++ return sprintf(buf, "%x\n",hx2750_egpio_current);
++}
++
++static ssize_t gpio_show(struct device *dev, char *buf)
++{
++ int i;
++
++ printk(KERN_ERR "GPIO# D S A INTER\n");
++
++ for (i=0;i<119;i++) {
++ printk(KERN_ERR " %3d: ",i);
++ if (GPDR(i) & GPIO_bit(i))
++ printk("O ");
++ else
++ printk("I ");
++ printk("%d ",(GPLR(i) & GPIO_bit(i)) != 0);
++ printk("%d ",((GAFR(i) & (0x3 << (((i) & 0xf)*2)))) >> (((i) & 0xf)*2) );
++ if (GEDR(i) & GPIO_bit(i))
++ printk("ED ");
++ if (GRER(i) & GPIO_bit(i))
++ printk("RE ");
++ if (GFER(i) & GPIO_bit(i))
++ printk("FE ");
++
++ printk("\n");
++ }
++ return sprintf(buf, "EGPIO: %x\n",hx2750_egpio_current);
++}
++
++static ssize_t clregpio_store(struct device *dev, const char *buf, size_t count)
++{
++ unsigned int val = simple_strtoul(buf, NULL, 10);
++
++ hx2750_clear_egpio(1 << val);
++
++ return count;
++}
++
++static DEVICE_ATTR(clregpio, 0644, clregpio_show, clregpio_store);
++
++
++static ssize_t gpioclr_store(struct device *dev, const char *buf, size_t count)
++{
++ int prod;
++ prod = simple_strtoul(buf, NULL, 10);
++
++ GPCR(prod) = GPIO_bit(prod);
++
++ return count;
++}
++
++static DEVICE_ATTR(gpioclr, 0644, gpio_show, gpioclr_store);
++
++static ssize_t gpioset_store(struct device *dev, const char *buf, size_t count)
++{
++ int prod;
++ prod = simple_strtoul(buf, NULL, 10);
++
++ GPSR(prod) = GPIO_bit(prod);
++
++ return count;
++}
++
++static DEVICE_ATTR(gpioset, 0644, gpio_show, gpioset_store);
++
++
++static ssize_t ssp2read_store(struct device *dev, const char *buf, size_t count)
++{
++ unsigned int val = simple_strtoul(buf, NULL, 16);
++
++ printk("Read: %08x\n",hx2750_ssp2_read(val));
++
++ return count;
++}
++
++static DEVICE_ATTR(ssp2read, 0200, NULL, ssp2read_store);
++
++static ssize_t ssp2write_store(struct device *dev, const char *buf, size_t count)
++{
++ unsigned int val = simple_strtoul(buf, NULL, 16);
++
++ printk("Write: %08x\n",hx2750_ssp2_write(val));
++
++ return count;
++}
++
++static DEVICE_ATTR(ssp2write, 0200, NULL, ssp2write_store);
++
++
++static ssize_t sspr_store(struct device *dev, const char *buf, size_t count)
++{
++ unsigned long val,ret;
++ val = simple_strtoul(buf, NULL, 0);
++
++ hx2750_tsc2101_send(1<<15,val,&ret,1);
++
++ printk("Response: %x\n",ret);
++
++ return count;
++}
++
++static DEVICE_ATTR(sspr, 0200, NULL, sspr_store);
++
++static ssize_t sspw_store(struct device *dev, const char *buf, size_t count)
++{
++ int val,ret;
++ sscanf(buf, "%lx %lx", &val, &ret);
++
++ hx2750_tsc2101_send(0,val,&ret,1);
++
++ return count;
++}
++
++static DEVICE_ATTR(sspw, 0200, NULL, sspw_store);
++
++
++extern struct pm_ops pxa_pm_ops;
++extern void pxa_cpu_resume(void);
++extern unsigned long pxa_pm_pspr_value;
++
++static int (*pxa_pm_enter_orig)(suspend_state_t state);
++
++//static struct {
++// u32 ffier, fflcr, ffmcr, ffspr, ffisr, ffdll, ffdlh;
++//} sys_ctx;
++
++u32 resstruct[20];
++
++static int hx2750_pxa_pm_enter(suspend_state_t state)
++{
++ int i;
++ u32 save[10];
++
++ PWER = 0xC0000003;// | PWER_RTC;
++ PFER = 0x00000003;
++ PRER = 0x00000003;
++
++ PGSR0=0x00000018;
++ PGSR1=0x00000380;
++ PGSR2=0x00800000;
++ PGSR3=0x00500400;
++
++ //PVCR=0x494; or 0x14;
++ //PVCR=0x14;
++ //PCMD0=0x41f;
++ //i=PISR;
++ //PICR=0x00000062;
++
++ //PCFR=0x457;
++ //PCFR=0x70; // Does not resume from sleep
++ PCFR=0x077; // was 0x477
++ PSLR=0xff100004;
++
++ resstruct[0]=0x0000b4e6;
++ resstruct[1]=0x00000001;
++ resstruct[2]=virt_to_phys(pxa_cpu_resume);
++ resstruct[3]=0xffffffff; //value for r0
++
++ resstruct[14]=0x00000078; //mcr 15, 0, r0, cr1, cr0, {0}
++ resstruct[15]=0x00000000; //mcr 15, 0, r0, cr1, cr1, {0} 0xffffffff
++ resstruct[16]=0xa0000000; //mcr 15, 0, r0, cr2, cr0, {0} 0xa0748000
++ resstruct[17]=0x00000001; //mcr 15, 0, r0, cr3, cr0, {0} 0x00000015
++ resstruct[18]=0x00000000; //mcr 15, 0, r0, cr13, cr0, {0} 0x00000000
++
++ pxa_pm_pspr_value=virt_to_phys(&resstruct[0]);
++
++ hx2750_send_egpio(3);
++
++ pxa_gpio_mode(87 | GPIO_OUT | GPIO_DFLT_HIGH);
++
++ //sys_ctx.ffier = FFIER;
++ //sys_ctx.fflcr = FFLCR;
++ //sys_ctx.ffmcr = FFMCR;
++ //sys_ctx.ffspr = FFSPR;
++ //sys_ctx.ffisr = FFISR;
++ //FFLCR |= 0x80;
++ //sys_ctx.ffdll = FFDLL;
++ //sys_ctx.ffdlh = FFDLH;
++ //FFLCR &= 0xef;
++
++ pxa_pm_enter_orig(state);
++
++ //FFMCR = sys_ctx.ffmcr;
++ //FFSPR = sys_ctx.ffspr;
++ //FFLCR = sys_ctx.fflcr;
++ //FFLCR |= 0x80;
++ //FFDLH = sys_ctx.ffdlh;
++ //FFDLL = sys_ctx.ffdll;
++ //FFLCR = sys_ctx.fflcr;
++ //FFISR = sys_ctx.ffisr;
++ //FFLCR = 0x07;
++ //FFIER = sys_ctx.ffier;
++
++ return 0;
++}
++
++static irqreturn_t hx2750_charge_int(int irq, void *dev_id, struct pt_regs *regs)
++{
++ if ((GPLR(HX2750_GPIO_EXTPWR) & GPIO_bit(HX2750_GPIO_EXTPWR)) == 0) {
++ printk("Charging On\n");
++ GPCR(HX2750_GPIO_CHARGE);
++ } else {
++ printk("Charging Off\n");
++ GPSR(HX2750_GPIO_CHARGE);
++ }
++
++ return IRQ_HANDLED;
++}
++
++
++
++
++static irqreturn_t hx2750_interrupt(int irq, void *dev_id, struct pt_regs *regs)
++{
++ printk("Input %d changed.\n", irq-32);
++
++ return IRQ_HANDLED;
++}
++
++
++static int __init hx2750_test_probe(struct device *dev)
++{
++ pxa_gpio_mode(21 | GPIO_OUT | GPIO_DFLT_HIGH);
++ pxa_gpio_mode(HX2750_GPIO_CHARGE | GPIO_OUT | GPIO_DFLT_HIGH);
++ pxa_gpio_mode(83 | GPIO_OUT | GPIO_DFLT_HIGH);
++ pxa_gpio_mode(HX2750_GPIO_BIOPWR | GPIO_OUT | GPIO_DFLT_HIGH);
++ pxa_gpio_mode(116 | GPIO_OUT | GPIO_DFLT_HIGH);
++ pxa_gpio_mode(118 | GPIO_OUT | GPIO_DFLT_HIGH);
++
++
++ //pxa_gpio_mode(HX2750_GPIO_CF_PWR | GPIO_OUT | GPIO_DFLT_LOW);
++ pxa_gpio_mode(HX2750_GPIO_CF_PWR | GPIO_OUT | GPIO_DFLT_HIGH);
++ pxa_gpio_mode(HX2750_GPIO_BTPWR | GPIO_OUT | GPIO_DFLT_LOW);
++ pxa_gpio_mode(79 | GPIO_OUT | GPIO_DFLT_LOW);
++ pxa_gpio_mode(85 | GPIO_OUT | GPIO_DFLT_LOW);
++ pxa_gpio_mode(HX2750_GPIO_LEDMAIL | GPIO_OUT | GPIO_DFLT_LOW);
++ pxa_gpio_mode(107 | GPIO_OUT | GPIO_DFLT_LOW);
++ pxa_gpio_mode(114 | GPIO_OUT | GPIO_DFLT_LOW);
++
++ pxa_gpio_mode(HX2750_GPIO_BATTCOVER1 | GPIO_IN);
++ pxa_gpio_mode(HX2750_GPIO_BATTCOVER2 | GPIO_IN);
++ pxa_gpio_mode(HX2750_GPIO_CF_IRQ | GPIO_IN);
++ pxa_gpio_mode(HX2750_GPIO_USBCONNECT | GPIO_IN);
++ pxa_gpio_mode(HX2750_GPIO_CF_DETECT | GPIO_IN);
++ pxa_gpio_mode(HX2750_GPIO_EXTPWR | GPIO_IN);
++
++ pxa_gpio_mode(HX2750_GPIO_BATLVL | GPIO_IN);
++ //pxa_gpio_mode(HX2750_GPIO_CF_WIFIIRQ | GPIO_IN);
++ pxa_gpio_mode(80 | GPIO_IN);
++ pxa_gpio_mode(HX2750_GPIO_HP_JACK | GPIO_IN);
++ pxa_gpio_mode(115 | GPIO_IN);
++ pxa_gpio_mode(119 | GPIO_IN);
++
++ request_irq(IRQ_GPIO(HX2750_GPIO_BATLVL), hx2750_interrupt, SA_INTERRUPT, "hx2750test", NULL);
++ //request_irq(IRQ_GPIO(HX2750_GPIO_CF_WIFIIRQ), hx2750_interrupt, SA_INTERRUPT, "hx2750test", NULL);
++ request_irq(IRQ_GPIO(80), hx2750_interrupt, SA_INTERRUPT, "hx2750test", NULL);
++ request_irq(IRQ_GPIO(115), hx2750_interrupt, SA_INTERRUPT, "hx2750test", NULL);
++ request_irq(IRQ_GPIO(119), hx2750_interrupt, SA_INTERRUPT, "hx2750test", NULL);
++ request_irq(IRQ_GPIO(HX2750_GPIO_SR_CLK2), hx2750_interrupt, SA_INTERRUPT, "hx2750test", NULL);
++
++ //request_irq(IRQ_GPIO(10), hx2750_interrupt, SA_INTERRUPT, "hx2750test", NULL);
++
++ set_irq_type(IRQ_GPIO(HX2750_GPIO_BATLVL),IRQT_BOTHEDGE);
++ //set_irq_type(IRQ_GPIO(HX2750_GPIO_CF_WIFIIRQ),IRQT_BOTHEDGE);
++ set_irq_type(IRQ_GPIO(80),IRQT_BOTHEDGE);
++ set_irq_type(IRQ_GPIO(115),IRQT_BOTHEDGE);
++ set_irq_type(IRQ_GPIO(119),IRQT_BOTHEDGE);
++ set_irq_type(IRQ_GPIO(HX2750_GPIO_SR_CLK2),IRQT_BOTHEDGE);
++
++ //set_irq_type(IRQ_GPIO(10),IRQT_BOTHEDGE);
++
++ printk("hx2750 Test Code Initialized.\n");
++ device_create_file(dev, &dev_attr_test1);
++ device_create_file(dev, &dev_attr_test2);
++ device_create_file(dev, &dev_attr_setegpio);
++ device_create_file(dev, &dev_attr_clregpio);
++ device_create_file(dev, &dev_attr_gpioset);
++ device_create_file(dev, &dev_attr_gpioclr);
++ device_create_file(dev, &dev_attr_sspr);
++ device_create_file(dev, &dev_attr_sspw);
++ device_create_file(dev, &dev_attr_ssp2read);
++ device_create_file(dev, &dev_attr_ssp2write);
++
++ request_irq(HX2750_IRQ_GPIO_EXTPWR, hx2750_charge_int, SA_INTERRUPT, "hx2750_extpwr", NULL);
++ set_irq_type(HX2750_IRQ_GPIO_EXTPWR, IRQT_BOTHEDGE);
++
++ pxa_pm_enter_orig=pxa_pm_ops.enter;
++ pxa_pm_ops.enter=hx2750_pxa_pm_enter