linux-rp-2.6.24: Add patches from OE.dev
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4570 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
parent
ecec2e582c
commit
47a464d97b
|
@ -57,10 +57,10 @@
|
|||
include/linux/soc/tmio_mmc.h | 17
|
||||
56 files changed, 7469 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/Makefile
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/Makefile
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/Makefile 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/Makefile 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,19 @@
|
||||
+#
|
||||
+# Makefile for HTC Universal
|
||||
|
@ -81,10 +81,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/Makefile
|
|||
+obj-$(CONFIG_HTCUNIVERSAL_UDC) += htcuniversal_udc.o
|
||||
+
|
||||
+obj-$(CONFIG_HTCUNIVERSAL_AK4641) += htcuniversal_ak4641.o
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal.c
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,468 @@
|
||||
+/*
|
||||
+ * Hardware definitions for HTC Universal
|
||||
|
@ -554,10 +554,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal.c
|
|||
+ .init_machine = htcuniversal_init,
|
||||
+ .timer = &pxa_timer,
|
||||
+MACHINE_END
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.c
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,917 @@
|
||||
+/*
|
||||
+ * Audio support for codec Asahi Kasei AK4641
|
||||
|
@ -1476,10 +1476,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.c
|
|||
+MODULE_LICENSE("GPL");
|
||||
+
|
||||
+/* end {{ Module }} */
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.h
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,65 @@
|
||||
+/*
|
||||
+ * Audio support for codec Asahi Kasei AK4641
|
||||
|
@ -1546,10 +1546,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.h
|
|||
+void snd_ak4641_hp_detected(struct snd_ak4641 *ak, int detected); /* atomic context */
|
||||
+
|
||||
+#endif /* __SOUND_AK4641_H */
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_asic3_leds.c
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_asic3_leds.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_asic3_leds.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_asic3_leds.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,143 @@
|
||||
+/*
|
||||
+ * LEDs support for the HP iPaq hx4700
|
||||
|
@ -1694,10 +1694,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_asic3_leds.c
|
|||
+MODULE_AUTHOR("Anton Vorontsov <cbou@mail.ru>");
|
||||
+MODULE_DESCRIPTION("htcuniversal LEDs driver");
|
||||
+MODULE_LICENSE("GPL");
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bl.c
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_bl.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bl.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_bl.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,61 @@
|
||||
+/*
|
||||
+ * Use consistent with the GNU GPL is permitted,
|
||||
|
@ -1760,10 +1760,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bl.c
|
|||
+MODULE_AUTHOR("Paul Sokolovsky <pmiscml@gmail.com>");
|
||||
+MODULE_DESCRIPTION("Backlight driver for HTC Universal");
|
||||
+MODULE_LICENSE("GPL");
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.c
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,135 @@
|
||||
+/* Bluetooth interface driver for TI BRF6150 on HX4700
|
||||
+ *
|
||||
|
@ -1900,10 +1900,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.c
|
|||
+
|
||||
+/* vim600: set noexpandtab sw=8 ts=8 :*/
|
||||
+
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.h
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,17 @@
|
||||
+/*
|
||||
+ * Bluetooth support file for calling bluetooth configuration functions
|
||||
|
@ -1922,10 +1922,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.h
|
|||
+
|
||||
+
|
||||
+#endif
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_buttons.c
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_buttons.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_buttons.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_buttons.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,87 @@
|
||||
+/*
|
||||
+ * Buttons driver for HTC Universal
|
||||
|
@ -2014,10 +2014,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_buttons.c
|
|||
+MODULE_AUTHOR ("Joshua Wise, Pawel Kolodziejski, Paul Sokolosvky");
|
||||
+MODULE_DESCRIPTION ("Buttons support for HTC Universal");
|
||||
+MODULE_LICENSE ("GPL");
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,226 @@
|
||||
+/* Core Hardware driver for Hx4700 (Serial, ASIC3, EGPIOs)
|
||||
+ *
|
||||
|
@ -2245,10 +2245,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c
|
|||
+MODULE_LICENSE("GPL");
|
||||
+
|
||||
+/* vim600: set noexpandtab sw=8 ts=8 :*/
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_lcd.c
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_lcd.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_lcd.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_lcd.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,212 @@
|
||||
+/*
|
||||
+ * Use consistent with the GNU GPL is permitted,
|
||||
|
@ -2462,10 +2462,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_lcd.c
|
|||
+MODULE_DESCRIPTION("Framebuffer driver for HTC Universal");
|
||||
+MODULE_LICENSE("GPL");
|
||||
+
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.c
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,167 @@
|
||||
+
|
||||
+/* Phone interface driver for Qualcomm MSM6250 on HTC Universal
|
||||
|
@ -2634,10 +2634,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.c
|
|||
+MODULE_LICENSE("GPL");
|
||||
+
|
||||
+/* vim600: set noexpandtab sw=8 ts=8 :*/
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.h
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,16 @@
|
||||
+/*
|
||||
+ * Bluetooth support file for calling bluetooth configuration functions
|
||||
|
@ -2655,10 +2655,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.h
|
|||
+};
|
||||
+
|
||||
+#endif
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_pm.c
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_pm.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_pm.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_pm.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,69 @@
|
||||
+/*
|
||||
+ * MyPal 716 power management support for the original HTC IPL in DoC G3
|
||||
|
@ -2729,10 +2729,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_pm.c
|
|||
+ pxa_pm_set_ll_ops(&htcuniversal_ll_pm_ops);
|
||||
+}
|
||||
+#endif /* CONFIG_PM */
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_power2.c
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_power2.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_power2.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_power2.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,97 @@
|
||||
+/*
|
||||
+ * pda_power driver for HTC Universal
|
||||
|
@ -2831,10 +2831,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_power2.c
|
|||
+
|
||||
+MODULE_DESCRIPTION("Power driver for HTC Universal");
|
||||
+MODULE_LICENSE("GPL");
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,490 @@
|
||||
+/* Touch screen driver for the TI something-or-other
|
||||
+ *
|
||||
|
@ -3326,10 +3326,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c
|
|||
+MODULE_LICENSE("GPL");
|
||||
+MODULE_AUTHOR("Aric Blumer, SDG Systems, LLC");
|
||||
+MODULE_DESCRIPTION("HTC Universal Touch Screen Driver");
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_udc.c
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_udc.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_udc.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_udc.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,71 @@
|
||||
+
|
||||
+/*
|
||||
|
@ -3402,10 +3402,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_udc.c
|
|||
+
|
||||
+module_init(htcuniversal_udc_init);
|
||||
+MODULE_LICENSE("GPL");
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/tsc2046_ts.h
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/tsc2046_ts.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/tsc2046_ts.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/tsc2046_ts.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,20 @@
|
||||
+/*
|
||||
+ * temporary TSC2046 touchscreen hack
|
||||
|
@ -3427,13 +3427,13 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/tsc2046_ts.h
|
|||
+#define TSC2046_SAMPLE_Y 0x90
|
||||
+
|
||||
+#endif
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/Kconfig
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/Kconfig
|
||||
===================================================================
|
||||
--- linux-2.6.23.orig/arch/arm/mach-pxa/Kconfig 2008-01-20 18:59:41.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/Kconfig 2008-01-20 18:59:46.000000000 +0000
|
||||
@@ -92,6 +92,14 @@ config MACH_HX2750
|
||||
help
|
||||
This enables support for the HP iPAQ HX2750 handheld.
|
||||
--- linux-2.6.24.orig/arch/arm/mach-pxa/Kconfig 2008-03-10 16:08:01.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/Kconfig 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -92,6 +92,14 @@
|
||||
bool "Sharp PXA270 models (SL-Cxx00)"
|
||||
select PXA27x
|
||||
|
||||
+config MACH_HTCUNIVERSAL
|
||||
+ bool "HTC Universal"
|
||||
|
@ -3446,7 +3446,7 @@ Index: linux-2.6.23/arch/arm/mach-pxa/Kconfig
|
|||
endchoice
|
||||
|
||||
endif
|
||||
@@ -111,6 +119,86 @@ endchoice
|
||||
@@ -111,6 +119,86 @@
|
||||
|
||||
endif
|
||||
|
||||
|
@ -3533,16 +3533,16 @@ Index: linux-2.6.23/arch/arm/mach-pxa/Kconfig
|
|||
endmenu
|
||||
|
||||
config MACH_POODLE
|
||||
@@ -196,4 +284,3 @@ config PXA_KEYS
|
||||
@@ -196,4 +284,3 @@
|
||||
depends on (PXA25x || PXA27x) && INPUT
|
||||
|
||||
endif
|
||||
-
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/Makefile
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/Makefile
|
||||
===================================================================
|
||||
--- linux-2.6.23.orig/arch/arm/mach-pxa/Makefile 2008-01-20 18:59:41.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/Makefile 2008-01-20 18:59:46.000000000 +0000
|
||||
@@ -23,6 +23,7 @@ obj-$(CONFIG_MACH_POODLE) += poodle.o co
|
||||
--- linux-2.6.24.orig/arch/arm/mach-pxa/Makefile 2008-03-10 16:08:01.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/Makefile 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -23,6 +23,7 @@
|
||||
obj-$(CONFIG_MACH_TOSA) += tosa.o
|
||||
obj-$(CONFIG_MACH_EM_X270) += em-x270.o
|
||||
obj-$(CONFIG_MACH_HX2750) += hx2750.o hx2750_test.o
|
||||
|
@ -3550,11 +3550,11 @@ Index: linux-2.6.23/arch/arm/mach-pxa/Makefile
|
|||
|
||||
ifeq ($(CONFIG_MACH_ZYLONITE),y)
|
||||
obj-y += zylonite.o
|
||||
Index: linux-2.6.23/drivers/leds/Kconfig
|
||||
Index: linux-2.6.24/drivers/leds/Kconfig
|
||||
===================================================================
|
||||
--- linux-2.6.23.orig/drivers/leds/Kconfig 2008-01-20 18:59:17.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/leds/Kconfig 2008-01-20 18:59:46.000000000 +0000
|
||||
@@ -114,6 +114,13 @@ config LEDS_CM_X270
|
||||
--- linux-2.6.24.orig/drivers/leds/Kconfig 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/leds/Kconfig 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -114,6 +114,13 @@
|
||||
help
|
||||
This option enables support for the CM-X270 LEDs.
|
||||
|
||||
|
@ -3568,10 +3568,10 @@ Index: linux-2.6.23/drivers/leds/Kconfig
|
|||
comment "LED Triggers"
|
||||
|
||||
config LEDS_TRIGGERS
|
||||
Index: linux-2.6.23/drivers/leds/leds-asic3.c
|
||||
Index: linux-2.6.24/drivers/leds/leds-asic3.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/leds/leds-asic3.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/leds/leds-asic3.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,189 @@
|
||||
+/*
|
||||
+ * LEDs support for HTC ASIC3 devices.
|
||||
|
@ -3762,11 +3762,11 @@ Index: linux-2.6.23/drivers/leds/leds-asic3.c
|
|||
+MODULE_AUTHOR("Anton Vorontsov <cbou@mail.ru>");
|
||||
+MODULE_DESCRIPTION("HTC ASIC3 LEDs driver");
|
||||
+MODULE_LICENSE("GPL");
|
||||
Index: linux-2.6.23/drivers/mfd/Kconfig
|
||||
Index: linux-2.6.24/drivers/mfd/Kconfig
|
||||
===================================================================
|
||||
--- linux-2.6.23.orig/drivers/mfd/Kconfig 2008-01-20 18:59:38.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/mfd/Kconfig 2008-01-20 18:59:46.000000000 +0000
|
||||
@@ -21,6 +21,16 @@ config MFD_TSC2101
|
||||
--- linux-2.6.24.orig/drivers/mfd/Kconfig 2008-03-10 16:07:51.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/mfd/Kconfig 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -21,6 +21,16 @@
|
||||
help
|
||||
Support for TI TSC2101 Touchscreen and Audio Codec
|
||||
|
||||
|
@ -3783,10 +3783,10 @@ Index: linux-2.6.23/drivers/mfd/Kconfig
|
|||
endmenu
|
||||
|
||||
menu "Multimedia Capabilities Port drivers"
|
||||
Index: linux-2.6.23/drivers/mfd/Makefile
|
||||
Index: linux-2.6.24/drivers/mfd/Makefile
|
||||
===================================================================
|
||||
--- linux-2.6.23.orig/drivers/mfd/Makefile 2008-01-20 18:59:38.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/mfd/Makefile 2008-01-20 18:59:46.000000000 +0000
|
||||
--- linux-2.6.24.orig/drivers/mfd/Makefile 2008-03-10 16:07:51.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/mfd/Makefile 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -2,6 +2,8 @@
|
||||
# Makefile for multifunction miscellaneous devices
|
||||
#
|
||||
|
@ -3796,10 +3796,10 @@ Index: linux-2.6.23/drivers/mfd/Makefile
|
|||
obj-$(CONFIG_MFD_SM501) += sm501.o
|
||||
|
||||
obj-$(CONFIG_MCP) += mcp-core.o
|
||||
Index: linux-2.6.23/drivers/mfd/asic3_base.c
|
||||
Index: linux-2.6.24/drivers/mfd/asic3_base.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/mfd/asic3_base.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/mfd/asic3_base.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,1208 @@
|
||||
+/*
|
||||
+ * Driver interface to HTC "ASIC3"
|
||||
|
@ -5009,10 +5009,10 @@ Index: linux-2.6.23/drivers/mfd/asic3_base.c
|
|||
+MODULE_AUTHOR("Phil Blundell <pb@handhelds.org>");
|
||||
+MODULE_DESCRIPTION("Core driver for HTC ASIC3");
|
||||
+MODULE_SUPPORTED_DEVICE("asic3");
|
||||
Index: linux-2.6.23/drivers/mfd/soc-core.c
|
||||
Index: linux-2.6.24/drivers/mfd/soc-core.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/mfd/soc-core.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/mfd/soc-core.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,106 @@
|
||||
+/*
|
||||
+ * drivers/soc/soc-core.c
|
||||
|
@ -5089,7 +5089,7 @@ Index: linux-2.6.23/drivers/mfd/soc-core.c
|
|||
+ if (blk->res[r].flags & IORESOURCE_MEM) {
|
||||
+ base = mem->start;
|
||||
+ } else if ((blk->res[r].flags & IORESOURCE_IRQ) &&
|
||||
+ (blk->res[r].flags & IORESOURCE_IRQ_SOC_SUBDEVICE)) {
|
||||
+ (blk->res[r].flags & IORESOURCE_IRQ_MFD_SUBDEVICE)) {
|
||||
+ base = irq_base;
|
||||
+ }
|
||||
+
|
||||
|
@ -5120,10 +5120,10 @@ Index: linux-2.6.23/drivers/mfd/soc-core.c
|
|||
+ return NULL;
|
||||
+}
|
||||
+EXPORT_SYMBOL_GPL(soc_add_devices);
|
||||
Index: linux-2.6.23/drivers/mfd/soc-core.h
|
||||
Index: linux-2.6.24/drivers/mfd/soc-core.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/mfd/soc-core.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/mfd/soc-core.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,30 @@
|
||||
+/*
|
||||
+ * drivers/soc/soc-core.h
|
||||
|
@ -5155,10 +5155,10 @@ Index: linux-2.6.23/drivers/mfd/soc-core.h
|
|||
+
|
||||
+void soc_free_devices(struct platform_device *devices, int nr_devs);
|
||||
+
|
||||
Index: linux-2.6.23/include/asm-arm/arch-pxa/clock.h
|
||||
Index: linux-2.6.24/include/asm-arm/arch-pxa/clock.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/include/asm-arm/arch-pxa/clock.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/arch-pxa/clock.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,27 @@
|
||||
+/*
|
||||
+ * linux/include/asm-arm/arch-pxa/clock.h
|
||||
|
@ -5187,10 +5187,10 @@ Index: linux-2.6.23/include/asm-arm/arch-pxa/clock.h
|
|||
+
|
||||
+extern int clk_register(struct clk *clk);
|
||||
+extern void clk_unregister(struct clk *clk);
|
||||
Index: linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal-asic.h
|
||||
Index: linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal-asic.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal-asic.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal-asic.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,213 @@
|
||||
+/*
|
||||
+ * include/asm/arm/arch-pxa/htcuniversal-asic.h
|
||||
|
@ -5405,10 +5405,10 @@ Index: linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal-asic.h
|
|||
+
|
||||
+#endif /* _HTCUNIVERSAL_ASIC_H_ */
|
||||
+
|
||||
Index: linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal-gpio.h
|
||||
Index: linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal-gpio.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal-gpio.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal-gpio.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,220 @@
|
||||
+/*
|
||||
+ * include/asm-arm/arch-pxa/htcuniversal-gpio.h
|
||||
|
@ -5630,10 +5630,10 @@ Index: linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal-gpio.h
|
|||
+#define GPIO_NR_HTCUNIVERSAL_I2C_SDA_MD (118 | GPIO_ALT_FN_1_OUT)
|
||||
+
|
||||
+#endif /* _HTCUNIVERSAL_GPIO_H */
|
||||
Index: linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal-init.h
|
||||
Index: linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal-init.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal-init.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal-init.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,14 @@
|
||||
+/*
|
||||
+ * include/asm/arm/arch-pxa/htcuniversal-init.h
|
||||
|
@ -5649,18 +5649,18 @@ Index: linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal-init.h
|
|||
+
|
||||
+#endif /* _HTCUNIVERSAL_INIT_H_ */
|
||||
+
|
||||
Index: linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal.h
|
||||
Index: linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,3 @@
|
||||
+#include <asm/arch/irqs.h>
|
||||
+
|
||||
+#define HTCUNIVERSAL_ASIC3_IRQ_BASE IRQ_BOARD_START
|
||||
Index: linux-2.6.23/include/asm-arm/arch-pxa/pxa-pm_ll.h
|
||||
Index: linux-2.6.24/include/asm-arm/arch-pxa/pxa-pm_ll.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/include/asm-arm/arch-pxa/pxa-pm_ll.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/arch-pxa/pxa-pm_ll.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,6 @@
|
||||
+struct pxa_ll_pm_ops {
|
||||
+ void (*suspend)(unsigned long);
|
||||
|
@ -5668,10 +5668,10 @@ Index: linux-2.6.23/include/asm-arm/arch-pxa/pxa-pm_ll.h
|
|||
+};
|
||||
+
|
||||
+extern struct pxa_ll_pm_ops *pxa_pm_set_ll_ops(struct pxa_ll_pm_ops *new_ops);
|
||||
Index: linux-2.6.23/include/asm-arm/hardware/asic3_keys.h
|
||||
Index: linux-2.6.24/include/asm-arm/hardware/asic3_keys.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/include/asm-arm/hardware/asic3_keys.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/hardware/asic3_keys.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,18 @@
|
||||
+#include <linux/input.h>
|
||||
+
|
||||
|
@ -5691,10 +5691,10 @@ Index: linux-2.6.23/include/asm-arm/hardware/asic3_keys.h
|
|||
+ struct input_dev *input;
|
||||
+ struct device *asic3_dev;
|
||||
+};
|
||||
Index: linux-2.6.23/include/asm-arm/hardware/asic3_leds.h
|
||||
Index: linux-2.6.24/include/asm-arm/hardware/asic3_leds.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/include/asm-arm/hardware/asic3_leds.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/hardware/asic3_leds.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,34 @@
|
||||
+/*
|
||||
+ * LEDs support for HTC ASIC3 devices.
|
||||
|
@ -5730,10 +5730,10 @@ Index: linux-2.6.23/include/asm-arm/hardware/asic3_leds.h
|
|||
+extern int asic3_leds_register(void);
|
||||
+extern void asic3_leds_unregister(void);
|
||||
+
|
||||
Index: linux-2.6.23/include/asm-arm/hardware/ipaq-asic3.h
|
||||
Index: linux-2.6.24/include/asm-arm/hardware/ipaq-asic3.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/include/asm-arm/hardware/ipaq-asic3.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/hardware/ipaq-asic3.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,602 @@
|
||||
+/*
|
||||
+ *
|
||||
|
@ -6337,10 +6337,10 @@ Index: linux-2.6.23/include/asm-arm/hardware/ipaq-asic3.h
|
|||
+#define IPAQ_ASIC3_MAP_SIZE 0x2000
|
||||
+
|
||||
+#endif
|
||||
Index: linux-2.6.23/include/linux/gpiodev.h
|
||||
Index: linux-2.6.24/include/linux/gpiodev.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/include/linux/gpiodev.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/include/linux/gpiodev.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,44 @@
|
||||
+#ifndef __GPIODEV_H
|
||||
+#define __GPIODEV_H
|
||||
|
@ -6386,10 +6386,10 @@ Index: linux-2.6.23/include/linux/gpiodev.h
|
|||
+}
|
||||
+
|
||||
+#endif /* __GPIODEV_H */
|
||||
Index: linux-2.6.23/include/linux/input_pda.h
|
||||
Index: linux-2.6.24/include/linux/input_pda.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/include/linux/input_pda.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/include/linux/input_pda.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,47 @@
|
||||
+#ifndef _INPUT_PDA_H
|
||||
+#define _INPUT_PDA_H
|
||||
|
@ -6438,10 +6438,10 @@ Index: linux-2.6.23/include/linux/input_pda.h
|
|||
+#define _KEY_HOMEPAGE _KEY_APP4
|
||||
+
|
||||
+#endif
|
||||
Index: linux-2.6.23/include/linux/soc/asic3_base.h
|
||||
Index: linux-2.6.24/include/linux/soc/asic3_base.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/include/linux/soc/asic3_base.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/include/linux/soc/asic3_base.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,104 @@
|
||||
+#include <asm/types.h>
|
||||
+#include <linux/gpiodev.h>
|
||||
|
@ -6547,10 +6547,10 @@ Index: linux-2.6.23/include/linux/soc/asic3_base.h
|
|||
+
|
||||
+ struct tmio_mmc_hwconfig *tmio_mmc_hwconfig;
|
||||
+};
|
||||
Index: linux-2.6.23/include/linux/soc/tmio_mmc.h
|
||||
Index: linux-2.6.24/include/linux/soc/tmio_mmc.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/include/linux/soc/tmio_mmc.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/include/linux/soc/tmio_mmc.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,17 @@
|
||||
+#include <linux/platform_device.h>
|
||||
+
|
||||
|
@ -6569,10 +6569,10 @@ Index: linux-2.6.23/include/linux/soc/tmio_mmc.h
|
|||
+ int (*mmc_get_ro)(struct platform_device *pdev);
|
||||
+ short address_shift;
|
||||
+};
|
||||
Index: linux-2.6.23/include/asm-arm/arch-pxa/pxa-regs.h
|
||||
Index: linux-2.6.24/include/asm-arm/arch-pxa/pxa-regs.h
|
||||
===================================================================
|
||||
--- linux-2.6.23.orig/include/asm-arm/arch-pxa/pxa-regs.h 2008-01-20 18:59:40.000000000 +0000
|
||||
+++ linux-2.6.23/include/asm-arm/arch-pxa/pxa-regs.h 2008-01-20 18:59:46.000000000 +0000
|
||||
--- linux-2.6.24.orig/include/asm-arm/arch-pxa/pxa-regs.h 2008-03-10 16:07:59.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/arch-pxa/pxa-regs.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -2058,6 +2058,8 @@
|
||||
#define LDCMD_SOFINT (1 << 22)
|
||||
#define LDCMD_EOFINT (1 << 21)
|
||||
|
@ -6582,25 +6582,11 @@ Index: linux-2.6.23/include/asm-arm/arch-pxa/pxa-regs.h
|
|||
|
||||
#define LCCR5_SOFM1 (1<<0) /* Start Of Frame Mask for Overlay 1 (channel 1) */
|
||||
#define LCCR5_SOFM2 (1<<1) /* Start Of Frame Mask for Overlay 2 (channel 2) */
|
||||
Index: linux-2.6.23/drivers/mmc/host/Kconfig
|
||||
Index: linux-2.6.24/drivers/mmc/host/Makefile
|
||||
===================================================================
|
||||
--- linux-2.6.23.orig/drivers/mmc/host/Kconfig 2008-01-20 18:59:18.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/mmc/host/Kconfig 2008-01-20 18:59:46.000000000 +0000
|
||||
@@ -130,3 +130,9 @@ config MMC_SPI
|
||||
|
||||
If unsure, or if your system has no SPI master driver, say N.
|
||||
|
||||
+config MMC_ASIC3
|
||||
+ tristate "HTC ASIC3 SD/MMC support"
|
||||
+ depends on MMC && HTC_ASIC3
|
||||
+ help
|
||||
+ This provides support for the ASIC3 SD/MMC controller, used
|
||||
+ in the iPAQ hx4700 and others.
|
||||
Index: linux-2.6.23/drivers/mmc/host/Makefile
|
||||
===================================================================
|
||||
--- linux-2.6.23.orig/drivers/mmc/host/Makefile 2008-01-20 18:59:18.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/mmc/host/Makefile 2008-01-20 21:12:10.000000000 +0000
|
||||
@@ -13,6 +13,7 @@ obj-$(CONFIG_MMC_SDHCI) += sdhci.o
|
||||
--- linux-2.6.24.orig/drivers/mmc/host/Makefile 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/mmc/host/Makefile 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -13,6 +13,7 @@
|
||||
obj-$(CONFIG_MMC_RICOH_MMC) += ricoh_mmc.o
|
||||
obj-$(CONFIG_MMC_WBSD) += wbsd.o
|
||||
obj-$(CONFIG_MMC_AU1X) += au1xmmc.o
|
||||
|
@ -6608,10 +6594,10 @@ Index: linux-2.6.23/drivers/mmc/host/Makefile
|
|||
obj-$(CONFIG_MMC_OMAP) += omap.o
|
||||
obj-$(CONFIG_MMC_AT91) += at91_mci.o
|
||||
obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o
|
||||
Index: linux-2.6.23/drivers/mmc/host/asic3_mmc.c
|
||||
Index: linux-2.6.24/drivers/mmc/host/asic3_mmc.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/mmc/host/asic3_mmc.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/mmc/host/asic3_mmc.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,900 @@
|
||||
+/* Note that this driver can likely be merged into the tmio driver, so
|
||||
+ * consider this code temporary. It works, though.
|
||||
|
@ -7513,10 +7499,10 @@ Index: linux-2.6.23/drivers/mmc/host/asic3_mmc.c
|
|||
+MODULE_AUTHOR("Aric Blumer, SDG Systems, LLC");
|
||||
+MODULE_LICENSE("GPL");
|
||||
+
|
||||
Index: linux-2.6.23/drivers/mmc/host/asic3_mmc.h
|
||||
Index: linux-2.6.24/drivers/mmc/host/asic3_mmc.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/mmc/host/asic3_mmc.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/mmc/host/asic3_mmc.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,25 @@
|
||||
+#ifndef __ASIC3_MMC_H
|
||||
+#define __ASIC3_MMC_H
|
||||
|
@ -7543,22 +7529,10 @@ Index: linux-2.6.23/drivers/mmc/host/asic3_mmc.h
|
|||
+#define DONT_CARE_BUFFER_BITS ( SD_CTRL_INTMASKBUFFER_UNK7 | SD_CTRL_INTMASKBUFFER_CMD_BUSY )
|
||||
+
|
||||
+#endif // __ASIC3_MMC_H
|
||||
Index: linux-2.6.23/drivers/input/keyboard/Makefile
|
||||
===================================================================
|
||||
--- linux-2.6.23.orig/drivers/input/keyboard/Makefile 2008-01-20 18:59:16.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/input/keyboard/Makefile 2008-01-20 21:11:40.000000000 +0000
|
||||
@@ -15,6 +15,7 @@ obj-$(CONFIG_KEYBOARD_NEWTON) += newton
|
||||
obj-$(CONFIG_KEYBOARD_STOWAWAY) += stowaway.o
|
||||
obj-$(CONFIG_KEYBOARD_CORGI) += corgikbd.o
|
||||
obj-$(CONFIG_KEYBOARD_SPITZ) += spitzkbd.o
|
||||
+obj-$(CONFIG_KEYBOARD_ASIC3) += asic3_keys.o
|
||||
obj-$(CONFIG_KEYBOARD_HIL) += hil_kbd.o
|
||||
obj-$(CONFIG_KEYBOARD_HIL_OLD) += hilkbd.o
|
||||
obj-$(CONFIG_KEYBOARD_OMAP) += omap-keypad.o
|
||||
Index: linux-2.6.23/drivers/input/keyboard/asic3_keys.c
|
||||
Index: linux-2.6.24/drivers/input/keyboard/asic3_keys.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/input/keyboard/asic3_keys.c 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/input/keyboard/asic3_keys.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,131 @@
|
||||
+/*
|
||||
+ * Generic buttons driver for ASIC3 SoC.
|
||||
|
@ -7691,10 +7665,10 @@ Index: linux-2.6.23/drivers/input/keyboard/asic3_keys.c
|
|||
+MODULE_AUTHOR("Joshua Wise, Pawel Kolodziejski, Paul Sokolovsky");
|
||||
+MODULE_DESCRIPTION("Buttons driver for HTC ASIC3 SoC");
|
||||
+MODULE_LICENSE("GPL");
|
||||
Index: linux-2.6.23/include/asm-arm/arch-pxa/irqs.h
|
||||
Index: linux-2.6.24/include/asm-arm/arch-pxa/irqs.h
|
||||
===================================================================
|
||||
--- linux-2.6.23.orig/include/asm-arm/arch-pxa/irqs.h 2008-01-20 18:59:28.000000000 +0000
|
||||
+++ linux-2.6.23/include/asm-arm/arch-pxa/irqs.h 2008-01-20 18:59:46.000000000 +0000
|
||||
--- linux-2.6.24.orig/include/asm-arm/arch-pxa/irqs.h 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/arch-pxa/irqs.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -182,6 +182,8 @@
|
||||
defined(CONFIG_MACH_LOGICPD_PXA270) || \
|
||||
defined(CONFIG_MACH_MAINSTONE)
|
||||
|
@ -7704,22 +7678,10 @@ Index: linux-2.6.23/include/asm-arm/arch-pxa/irqs.h
|
|||
#else
|
||||
#define NR_IRQS (IRQ_BOARD_START)
|
||||
#endif
|
||||
Index: linux-2.6.23/include/linux/ioport.h
|
||||
===================================================================
|
||||
--- linux-2.6.23.orig/include/linux/ioport.h 2008-01-20 18:59:31.000000000 +0000
|
||||
+++ linux-2.6.23/include/linux/ioport.h 2008-01-20 18:59:46.000000000 +0000
|
||||
@@ -56,6 +56,7 @@ struct resource_list {
|
||||
#define IORESOURCE_IRQ_HIGHLEVEL (1<<2)
|
||||
#define IORESOURCE_IRQ_LOWLEVEL (1<<3)
|
||||
#define IORESOURCE_IRQ_SHAREABLE (1<<4)
|
||||
+#define IORESOURCE_IRQ_SOC_SUBDEVICE (1<<5)
|
||||
|
||||
/* ISA PnP DMA specific bits (IORESOURCE_BITS) */
|
||||
#define IORESOURCE_DMA_TYPE_MASK (3<<0)
|
||||
Index: linux-2.6.23/include/asm-arm/arch-pxa/serial.h
|
||||
Index: linux-2.6.24/include/asm-arm/arch-pxa/serial.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.23/include/asm-arm/arch-pxa/serial.h 2008-01-20 18:59:46.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/arch-pxa/serial.h 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -0,0 +1,78 @@
|
||||
+/*
|
||||
+ * linux/include/asm-arm/arch-pxa/serial.h
|
||||
|
@ -7799,10 +7761,10 @@ Index: linux-2.6.23/include/asm-arm/arch-pxa/serial.h
|
|||
+void pxa_set_btuart_info(struct platform_pxa_serial_funcs *btuart_funcs);
|
||||
+void pxa_set_stuart_info(struct platform_pxa_serial_funcs *stuart_funcs);
|
||||
+void pxa_set_hwuart_info(struct platform_pxa_serial_funcs *hwuart_funcs);
|
||||
Index: linux-2.6.23/drivers/serial/pxa.c
|
||||
Index: linux-2.6.24/drivers/serial/pxa.c
|
||||
===================================================================
|
||||
--- linux-2.6.23.orig/drivers/serial/pxa.c 2008-01-20 18:59:23.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/serial/pxa.c 2008-01-20 18:59:46.000000000 +0000
|
||||
--- linux-2.6.24.orig/drivers/serial/pxa.c 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/serial/pxa.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -47,6 +47,7 @@
|
||||
#include <asm/io.h>
|
||||
#include <asm/hardware.h>
|
||||
|
@ -7811,7 +7773,7 @@ Index: linux-2.6.23/drivers/serial/pxa.c
|
|||
#include <asm/arch/pxa-regs.h>
|
||||
|
||||
|
||||
@@ -60,6 +61,14 @@ struct uart_pxa_port {
|
||||
@@ -60,6 +61,14 @@
|
||||
char *name;
|
||||
};
|
||||
|
||||
|
@ -7826,7 +7788,7 @@ Index: linux-2.6.23/drivers/serial/pxa.c
|
|||
static inline unsigned int serial_in(struct uart_pxa_port *up, int offset)
|
||||
{
|
||||
offset <<= 2;
|
||||
@@ -347,6 +356,9 @@ static int serial_pxa_startup(struct uar
|
||||
@@ -347,6 +356,9 @@
|
||||
unsigned long flags;
|
||||
int retval;
|
||||
|
||||
|
@ -7836,7 +7798,7 @@ Index: linux-2.6.23/drivers/serial/pxa.c
|
|||
if (port->line == 3) /* HWUART */
|
||||
up->mcr |= UART_MCR_AFE;
|
||||
else
|
||||
@@ -404,6 +416,12 @@ static int serial_pxa_startup(struct uar
|
||||
@@ -404,6 +416,12 @@
|
||||
(void) serial_in(up, UART_IIR);
|
||||
(void) serial_in(up, UART_MSR);
|
||||
|
||||
|
@ -7849,7 +7811,7 @@ Index: linux-2.6.23/drivers/serial/pxa.c
|
|||
return 0;
|
||||
}
|
||||
|
||||
@@ -412,6 +430,8 @@ static void serial_pxa_shutdown(struct u
|
||||
@@ -412,6 +430,8 @@
|
||||
struct uart_pxa_port *up = (struct uart_pxa_port *)port;
|
||||
unsigned long flags;
|
||||
|
||||
|
@ -7858,7 +7820,7 @@ Index: linux-2.6.23/drivers/serial/pxa.c
|
|||
free_irq(up->port.irq, up);
|
||||
|
||||
/*
|
||||
@@ -433,6 +453,8 @@ static void serial_pxa_shutdown(struct u
|
||||
@@ -433,6 +453,8 @@
|
||||
UART_FCR_CLEAR_RCVR |
|
||||
UART_FCR_CLEAR_XMIT);
|
||||
serial_out(up, UART_FCR, 0);
|
||||
|
@ -7867,10 +7829,10 @@ Index: linux-2.6.23/drivers/serial/pxa.c
|
|||
}
|
||||
|
||||
static void
|
||||
Index: linux-2.6.23/arch/arm/mach-pxa/generic.c
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/generic.c
|
||||
===================================================================
|
||||
--- linux-2.6.23.orig/arch/arm/mach-pxa/generic.c 2008-01-20 18:59:09.000000000 +0000
|
||||
+++ linux-2.6.23/arch/arm/mach-pxa/generic.c 2008-01-20 18:59:46.000000000 +0000
|
||||
--- linux-2.6.24.orig/arch/arm/mach-pxa/generic.c 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/generic.c 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <asm/arch/mmc.h>
|
||||
#include <asm/arch/irda.h>
|
||||
|
@ -7879,7 +7841,7 @@ Index: linux-2.6.23/arch/arm/mach-pxa/generic.c
|
|||
|
||||
#include "devices.h"
|
||||
#include "generic.h"
|
||||
@@ -412,6 +413,18 @@ struct platform_device pxa_device_hwuart
|
||||
@@ -412,6 +413,18 @@
|
||||
.num_resources = ARRAY_SIZE(pxa_resource_hwuart),
|
||||
};
|
||||
|
||||
|
@ -7898,11 +7860,11 @@ Index: linux-2.6.23/arch/arm/mach-pxa/generic.c
|
|||
static struct resource pxai2c_resources[] = {
|
||||
{
|
||||
.start = 0x40301680,
|
||||
Index: linux-2.6.23/drivers/leds/Makefile
|
||||
Index: linux-2.6.24/drivers/leds/Makefile
|
||||
===================================================================
|
||||
--- linux-2.6.23.orig/drivers/leds/Makefile 2008-01-20 18:59:17.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/leds/Makefile 2008-01-20 21:10:45.000000000 +0000
|
||||
@@ -15,6 +15,7 @@ obj-$(CONFIG_LEDS_AMS_DELTA) += leds-am
|
||||
--- linux-2.6.24.orig/drivers/leds/Makefile 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/leds/Makefile 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -15,6 +15,7 @@
|
||||
obj-$(CONFIG_LEDS_NET48XX) += leds-net48xx.o
|
||||
obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
|
||||
obj-$(CONFIG_LEDS_H1940) += leds-h1940.o
|
||||
|
@ -7910,11 +7872,11 @@ Index: linux-2.6.23/drivers/leds/Makefile
|
|||
obj-$(CONFIG_LEDS_COBALT_QUBE) += leds-cobalt-qube.o
|
||||
obj-$(CONFIG_LEDS_COBALT_RAQ) += leds-cobalt-raq.o
|
||||
obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o
|
||||
Index: linux-2.6.23/drivers/input/keyboard/Kconfig
|
||||
Index: linux-2.6.24/drivers/input/keyboard/Kconfig
|
||||
===================================================================
|
||||
--- linux-2.6.23.orig/drivers/input/keyboard/Kconfig 2008-01-20 18:59:16.000000000 +0000
|
||||
+++ linux-2.6.23/drivers/input/keyboard/Kconfig 2008-01-20 18:59:46.000000000 +0000
|
||||
@@ -293,4 +293,11 @@ config KEYBOARD_BFIN
|
||||
--- linux-2.6.24.orig/drivers/input/keyboard/Kconfig 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/input/keyboard/Kconfig 2008-03-10 16:09:23.000000000 +0000
|
||||
@@ -293,4 +293,11 @@
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called bf54x-keys.
|
||||
|
||||
|
@ -7926,3 +7888,33 @@ Index: linux-2.6.23/drivers/input/keyboard/Kconfig
|
|||
+ HTC ASIC3 peripheral controller.
|
||||
+
|
||||
endif
|
||||
Index: linux-2.6.24/drivers/mmc/host/Kconfig
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/drivers/mmc/host/Kconfig 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/mmc/host/Kconfig 2008-03-10 16:09:59.000000000 +0000
|
||||
@@ -24,6 +24,13 @@
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
+config MMC_ASIC3
|
||||
+ tristate "HTC ASIC3 SD/MMC support"
|
||||
+ depends on MMC && HTC_ASIC3
|
||||
+ help
|
||||
+ This provides support for the ASIC3 SD/MMC controller, used
|
||||
+ in the iPAQ hx4700 and others.
|
||||
+
|
||||
config MMC_SDHCI
|
||||
tristate "Secure Digital Host Controller Interface support (EXPERIMENTAL)"
|
||||
depends on PCI && EXPERIMENTAL
|
||||
Index: linux-2.6.24/drivers/input/keyboard/Makefile
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/drivers/input/keyboard/Makefile 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/input/keyboard/Makefile 2008-03-10 16:10:28.000000000 +0000
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
obj-$(CONFIG_KEYBOARD_ATKBD) += atkbd.o
|
||||
obj-$(CONFIG_KEYBOARD_SUNKBD) += sunkbd.o
|
||||
+obj-$(CONFIG_KEYBOARD_ASIC3) += asic3_keys.o
|
||||
obj-$(CONFIG_KEYBOARD_LKKBD) += lkkbd.o
|
||||
obj-$(CONFIG_KEYBOARD_XTKBD) += xtkbd.o
|
||||
obj-$(CONFIG_KEYBOARD_AMIGA) += amikbd.o
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
List: linux-arm-kernel
|
||||
Subject: [PATCH] Fix PXA27x resume
|
||||
From: Russell King - ARM Linux <linux@arm.linux.org.uk>
|
||||
Date: 2008-01-21 13:53:31
|
||||
Message-ID: 20080121135331.GC30149@flint.arm.linux.org.uk
|
||||
[Download message RAW]
|
||||
|
||||
When PXA27x wakes up, tick_resume_oneshot() tries to set a timer
|
||||
interrupt to occur immediately. Since PXA27x requires at least
|
||||
MIN_OSCR_DELTA, this causes us to flag an error.
|
||||
|
||||
tick_program_event() then increments the next event time by
|
||||
min_delta_ns. However, by the time we get back to programming
|
||||
the next event, the OSCR has incremented such that we fail again.
|
||||
We repeatedly retry, but the OSCR is too fast for us - we never
|
||||
catch up, so we never break out of the loop - resulting in us
|
||||
never apparantly resuming.
|
||||
|
||||
Fix this by doubling min_delta_ns.
|
||||
|
||||
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
|
||||
diff --git a/arch/arm/mach-pxa/time.c b/arch/arm/mach-pxa/time.c
|
||||
index ac0bbad..7b7c017 100644
|
||||
--- a/arch/arm/mach-pxa/time.c
|
||||
+++ b/arch/arm/mach-pxa/time.c
|
||||
@@ -169,7 +169,7 @@ static void __init pxa_timer_init(void)
|
||||
ckevt_pxa_osmr0.max_delta_ns =
|
||||
clockevent_delta2ns(0x7fffffff, &ckevt_pxa_osmr0);
|
||||
ckevt_pxa_osmr0.min_delta_ns =
|
||||
- clockevent_delta2ns(MIN_OSCR_DELTA, &ckevt_pxa_osmr0) + 1;
|
||||
+ clockevent_delta2ns(MIN_OSCR_DELTA * 2, &ckevt_pxa_osmr0) + 1;
|
||||
|
||||
cksrc_pxa_oscr0.mult =
|
||||
clocksource_hz2mult(clock_tick_rate, cksrc_pxa_oscr0.shift);
|
||||
|
||||
-------------------------------------------------------------------
|
||||
List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
|
||||
FAQ: http://www.arm.linux.org.uk/mailinglists/faq.php
|
||||
Etiquette: http://www.arm.linux.org.uk/mailinglists/etiquette.php
|
||||
|
|
@ -0,0 +1,221 @@
|
|||
---
|
||||
drivers/usb/gadget/pxa2xx_udc.c | 88 ++++++++++++++++++++++------------------
|
||||
drivers/usb/gadget/pxa2xx_udc.h | 4 +
|
||||
2 files changed, 53 insertions(+), 39 deletions(-)
|
||||
|
||||
--- g26.orig/drivers/usb/gadget/pxa2xx_udc.c 2008-02-19 12:47:06.000000000 -0800
|
||||
+++ g26/drivers/usb/gadget/pxa2xx_udc.c 2008-02-19 14:07:17.000000000 -0800
|
||||
@@ -103,6 +103,12 @@ static const char ep0name [] = "ep0";
|
||||
#error "Can't configure both IXP and PXA"
|
||||
#endif
|
||||
|
||||
+/* IXP doesn't yet support <linux/clk.h> */
|
||||
+#define clk_get(dev,name) NULL
|
||||
+#define clk_enable(clk) do { } while (0)
|
||||
+#define clk_disable(clk) do { } while (0)
|
||||
+#define clk_put(clk) do { } while (0)
|
||||
+
|
||||
#endif
|
||||
|
||||
#include "pxa2xx_udc.h"
|
||||
@@ -934,20 +940,31 @@ static void udc_disable(struct pxa2xx_ud
|
||||
/* We disable the UDC -- and its 48 MHz clock -- whenever it's not
|
||||
* in active use.
|
||||
*/
|
||||
-static int pullup(struct pxa2xx_udc *udc, int is_active)
|
||||
+static int pullup(struct pxa2xx_udc *udc)
|
||||
{
|
||||
- is_active = is_active && udc->vbus && udc->pullup;
|
||||
+ int is_active = udc->vbus && udc->pullup && !udc->suspended;
|
||||
DMSG("%s\n", is_active ? "active" : "inactive");
|
||||
- if (is_active)
|
||||
- udc_enable(udc);
|
||||
- else {
|
||||
- if (udc->gadget.speed != USB_SPEED_UNKNOWN) {
|
||||
- DMSG("disconnect %s\n", udc->driver
|
||||
- ? udc->driver->driver.name
|
||||
- : "(no driver)");
|
||||
- stop_activity(udc, udc->driver);
|
||||
+ if (is_active) {
|
||||
+ if (!udc->active) {
|
||||
+ udc->active = 1;
|
||||
+ /* Enable clock for USB device */
|
||||
+ clk_enable(udc->clk);
|
||||
+ udc_enable(udc);
|
||||
}
|
||||
- udc_disable(udc);
|
||||
+ } else {
|
||||
+ if (udc->active) {
|
||||
+ if (udc->gadget.speed != USB_SPEED_UNKNOWN) {
|
||||
+ DMSG("disconnect %s\n", udc->driver
|
||||
+ ? udc->driver->driver.name
|
||||
+ : "(no driver)");
|
||||
+ stop_activity(udc, udc->driver);
|
||||
+ }
|
||||
+ udc_disable(udc);
|
||||
+ /* Disable clock for USB device */
|
||||
+ clk_disable(udc->clk);
|
||||
+ udc->active = 0;
|
||||
+ }
|
||||
+
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -958,9 +975,9 @@ static int pxa2xx_udc_vbus_session(struc
|
||||
struct pxa2xx_udc *udc;
|
||||
|
||||
udc = container_of(_gadget, struct pxa2xx_udc, gadget);
|
||||
- udc->vbus = is_active = (is_active != 0);
|
||||
+ udc->vbus = (is_active != 0);
|
||||
DMSG("vbus %s\n", is_active ? "supplied" : "inactive");
|
||||
- pullup(udc, is_active);
|
||||
+ pullup(udc);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -975,9 +992,8 @@ static int pxa2xx_udc_pullup(struct usb_
|
||||
if (!udc->mach->gpio_pullup && !udc->mach->udc_command)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
- is_active = (is_active != 0);
|
||||
- udc->pullup = is_active;
|
||||
- pullup(udc, is_active);
|
||||
+ udc->pullup = (is_active != 0);
|
||||
+ pullup(udc);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1146,11 +1162,6 @@ static void udc_disable(struct pxa2xx_ud
|
||||
|
||||
udc_clear_mask_UDCCR(UDCCR_UDE);
|
||||
|
||||
-#ifdef CONFIG_ARCH_PXA
|
||||
- /* Disable clock for USB device */
|
||||
- clk_disable(dev->clk);
|
||||
-#endif
|
||||
-
|
||||
ep0_idle (dev);
|
||||
dev->gadget.speed = USB_SPEED_UNKNOWN;
|
||||
}
|
||||
@@ -1191,11 +1202,6 @@ static void udc_enable (struct pxa2xx_ud
|
||||
{
|
||||
udc_clear_mask_UDCCR(UDCCR_UDE);
|
||||
|
||||
-#ifdef CONFIG_ARCH_PXA
|
||||
- /* Enable clock for USB device */
|
||||
- clk_enable(dev->clk);
|
||||
-#endif
|
||||
-
|
||||
/* try to clear these bits before we enable the udc */
|
||||
udc_ack_int_UDCCR(UDCCR_SUSIR|/*UDCCR_RSTIR|*/UDCCR_RESIR);
|
||||
|
||||
@@ -1286,7 +1292,7 @@ fail:
|
||||
* for set_configuration as well as eventual disconnect.
|
||||
*/
|
||||
DMSG("registered gadget driver '%s'\n", driver->driver.name);
|
||||
- pullup(dev, 1);
|
||||
+ pullup(dev);
|
||||
dump_state(dev);
|
||||
return 0;
|
||||
}
|
||||
@@ -1329,7 +1335,8 @@ int usb_gadget_unregister_driver(struct
|
||||
return -EINVAL;
|
||||
|
||||
local_irq_disable();
|
||||
- pullup(dev, 0);
|
||||
+ dev->pullup = 0;
|
||||
+ pullup(dev);
|
||||
stop_activity(dev, driver);
|
||||
local_irq_enable();
|
||||
|
||||
@@ -2131,13 +2138,11 @@ static int __init pxa2xx_udc_probe(struc
|
||||
if (irq < 0)
|
||||
return -ENODEV;
|
||||
|
||||
-#ifdef CONFIG_ARCH_PXA
|
||||
dev->clk = clk_get(&pdev->dev, "UDCCLK");
|
||||
if (IS_ERR(dev->clk)) {
|
||||
retval = PTR_ERR(dev->clk);
|
||||
goto err_clk;
|
||||
}
|
||||
-#endif
|
||||
|
||||
pr_debug("%s: IRQ %d%s%s\n", driver_name, irq,
|
||||
dev->has_cfr ? "" : " (!cfr)",
|
||||
@@ -2250,10 +2255,8 @@ lubbock_fail0:
|
||||
if (dev->mach->gpio_vbus)
|
||||
gpio_free(dev->mach->gpio_vbus);
|
||||
err_gpio_vbus:
|
||||
-#ifdef CONFIG_ARCH_PXA
|
||||
clk_put(dev->clk);
|
||||
err_clk:
|
||||
-#endif
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -2269,7 +2272,9 @@ static int __exit pxa2xx_udc_remove(stru
|
||||
if (dev->driver)
|
||||
return -EBUSY;
|
||||
|
||||
- udc_disable(dev);
|
||||
+ dev->pullup = 0;
|
||||
+ pullup(dev);
|
||||
+
|
||||
remove_proc_files();
|
||||
|
||||
if (dev->got_irq) {
|
||||
@@ -2289,9 +2294,7 @@ static int __exit pxa2xx_udc_remove(stru
|
||||
if (dev->mach->gpio_pullup)
|
||||
gpio_free(dev->mach->gpio_pullup);
|
||||
|
||||
-#ifdef CONFIG_ARCH_PXA
|
||||
clk_put(dev->clk);
|
||||
-#endif
|
||||
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
the_controller = NULL;
|
||||
@@ -2317,10 +2320,15 @@ static int __exit pxa2xx_udc_remove(stru
|
||||
static int pxa2xx_udc_suspend(struct platform_device *dev, pm_message_t state)
|
||||
{
|
||||
struct pxa2xx_udc *udc = platform_get_drvdata(dev);
|
||||
+ unsigned long flags;
|
||||
|
||||
if (!udc->mach->gpio_pullup && !udc->mach->udc_command)
|
||||
WARN("USB host won't detect disconnect!\n");
|
||||
- pullup(udc, 0);
|
||||
+ udc->suspended = 1;
|
||||
+
|
||||
+ local_irq_save(flags);
|
||||
+ pullup(udc);
|
||||
+ local_irq_restore(flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -2328,8 +2336,12 @@ static int pxa2xx_udc_suspend(struct pla
|
||||
static int pxa2xx_udc_resume(struct platform_device *dev)
|
||||
{
|
||||
struct pxa2xx_udc *udc = platform_get_drvdata(dev);
|
||||
+ unsigned long flags;
|
||||
|
||||
- pullup(udc, 1);
|
||||
+ udc->suspended = 0;
|
||||
+ local_irq_save(flags);
|
||||
+ pullup(udc);
|
||||
+ local_irq_restore(flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
--- g26.orig/drivers/usb/gadget/pxa2xx_udc.h 2008-02-19 12:47:06.000000000 -0800
|
||||
+++ g26/drivers/usb/gadget/pxa2xx_udc.h 2008-02-19 12:57:42.000000000 -0800
|
||||
@@ -119,7 +119,9 @@ struct pxa2xx_udc {
|
||||
has_cfr : 1,
|
||||
req_pending : 1,
|
||||
req_std : 1,
|
||||
- req_config : 1;
|
||||
+ req_config : 1,
|
||||
+ suspended : 1,
|
||||
+ active : 1;
|
||||
|
||||
#define start_watchdog(dev) mod_timer(&dev->timer, jiffies + (HZ/200))
|
||||
struct timer_list timer;
|
||||
-
|
|
@ -0,0 +1,527 @@
|
|||
This patch adds support for Sharp CE-RH2 on Spitz.
|
||||
|
||||
It is not clean enough to be upstreamed:
|
||||
- It is a bit syslog-noisy.
|
||||
- Does not support other Zaurus models.
|
||||
- Maybe split to more parts:
|
||||
* MAX1111 driver
|
||||
* linear input device
|
||||
* virtual keyboard on top of linear input device
|
||||
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/spitz.c
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/arch/arm/mach-pxa/spitz.c 2008-03-10 17:05:37.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/spitz.c 2008-03-10 17:05:55.000000000 +0000
|
||||
@@ -259,6 +259,13 @@
|
||||
.id = -1,
|
||||
};
|
||||
|
||||
+/*
|
||||
+ * Spitz Remote Control Device
|
||||
+ */
|
||||
+static struct platform_device sharpsl_rc_device = {
|
||||
+ .name = "sharpsl-remote-control",
|
||||
+ .id = -1,
|
||||
+};
|
||||
|
||||
/*
|
||||
* Spitz LEDs
|
||||
@@ -548,6 +555,7 @@
|
||||
&spitzscoop_device,
|
||||
&spitzssp_device,
|
||||
&spitzkbd_device,
|
||||
+ &sharpsl_rc_device,
|
||||
&spitzts_device,
|
||||
&spitzbl_device,
|
||||
&spitzled_device,
|
||||
Index: linux-2.6.24/drivers/input/keyboard/Kconfig
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/drivers/input/keyboard/Kconfig 2008-03-10 17:05:40.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/input/keyboard/Kconfig 2008-03-10 17:05:55.000000000 +0000
|
||||
@@ -154,6 +154,17 @@
|
||||
To compile this driver as a module, choose M here: the
|
||||
module will be called spitzkbd.
|
||||
|
||||
+config SHARPSL_RC
|
||||
+ tristate "Sharp SL-Cxx00 Remote Control"
|
||||
+ depends on PXA_SHARPSL
|
||||
+ default y
|
||||
+ help
|
||||
+ Say Y here to enable the remote on the Sharp Zaurus SL-Cxx00,
|
||||
+ SL-C1000, SL-C3000 and Sl-C3100 series of PDAs.
|
||||
+
|
||||
+ To compile this driver as a module, choose M here: the
|
||||
+ module will be called sharpsl_rc.
|
||||
+
|
||||
config KEYBOARD_AMIGA
|
||||
tristate "Amiga keyboard"
|
||||
depends on AMIGA
|
||||
Index: linux-2.6.24/drivers/input/keyboard/Makefile
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/drivers/input/keyboard/Makefile 2008-03-10 17:05:40.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/input/keyboard/Makefile 2008-03-10 17:06:17.000000000 +0000
|
||||
@@ -26,3 +26,5 @@
|
||||
obj-$(CONFIG_KEYBOARD_HP7XX) += jornada720_kbd.o
|
||||
obj-$(CONFIG_KEYBOARD_MAPLE) += maple_keyb.o
|
||||
obj-$(CONFIG_KEYBOARD_BFIN) += bf54x-keys.o
|
||||
+obj-$(CONFIG_SHARPSL_RC) += sharpsl_rc.o
|
||||
+
|
||||
Index: linux-2.6.24/drivers/input/keyboard/sharpsl_rc.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/input/keyboard/sharpsl_rc.c 2008-03-10 17:05:55.000000000 +0000
|
||||
@@ -0,0 +1,291 @@
|
||||
+/*
|
||||
+ * Keyboard driver for Sharp Clamshell Models (SL-Cxx00)
|
||||
+ *
|
||||
+ * Copyright (c) 2004-2005 Richard Purdie
|
||||
+ *
|
||||
+ * Based on corgikbd.c and Sharp's RC driver
|
||||
+ *
|
||||
+ * 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.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#define DEBUG 1
|
||||
+#include <linux/delay.h>
|
||||
+#include <linux/platform_device.h>
|
||||
+#include <linux/init.h>
|
||||
+#include <linux/input.h>
|
||||
+#include <linux/interrupt.h>
|
||||
+#include <linux/jiffies.h>
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/slab.h>
|
||||
+
|
||||
+#ifdef CONFIG_MACH_SPITZ
|
||||
+#include <asm/arch/spitz.h>
|
||||
+#endif
|
||||
+#ifdef CONFIG_MACH_CORGI
|
||||
+#include <asm/arch/corgi.h>
|
||||
+#endif
|
||||
+
|
||||
+#include <asm/arch/hardware.h>
|
||||
+#include <asm/arch/pxa-regs.h>
|
||||
+#include <asm/hardware/scoop.h>
|
||||
+#include <asm/arch/sharpsl.h>
|
||||
+#include <asm/hardware/sharpsl_pm.h>
|
||||
+
|
||||
+#define DPRINTK(fmt, args...) dev_dbg(data->dev, fmt "\n", ##args)
|
||||
+
|
||||
+struct remote_control_key {
|
||||
+ unsigned char min;
|
||||
+ unsigned char max;
|
||||
+ unsigned char key;
|
||||
+};
|
||||
+
|
||||
+#ifdef CONFIG_MACH_SPITZ
|
||||
+#define REMOTE_AKIN_PULLUP SPITZ_SCP2_AKIN_PULLUP
|
||||
+#define REMOTE_SCOOP_DEVICE spitzscoop2_device
|
||||
+#define REMOTE_GPIO_INT SPITZ_GPIO_AK_INT
|
||||
+#define REMOTE_IRQ_INT SPITZ_IRQ_GPIO_AK_INT
|
||||
+static struct remote_control_key remote_keys[] = {
|
||||
+ { 25, 35, KEY_STOPCD},
|
||||
+ { 55, 65, KEY_PLAYPAUSE},
|
||||
+ { 85, 95, KEY_NEXTSONG},
|
||||
+ { 115, 125, KEY_VOLUMEUP},
|
||||
+ { 145, 155, KEY_PREVIOUSSONG},
|
||||
+ { 180, 190, KEY_MUTE},
|
||||
+ { 215, 225, KEY_VOLUMEDOWN},
|
||||
+};
|
||||
+#endif
|
||||
+#ifdef CONFIG_MACH_CORGI
|
||||
+#define REMOTE_AKIN_PULLUP CORGI_SCP_AKIN_PULLUP
|
||||
+#define REMOTE_SCOOP_DEVICE corgiscoop_device
|
||||
+#define REMOTE_GPIO_INT CORGI_GPIO_AK_INT
|
||||
+#define REMOTE_IRQ_INT CORGI_IRQ_GPIO_AK_INT
|
||||
+static struct remote_control_key remote_keys[] = {
|
||||
+ //These need to be fixed for the CE-RH1's values
|
||||
+ { 25, 35, KEY_STOPCD},
|
||||
+ { 55, 65, KEY_PLAYPAUSE},
|
||||
+ { 85, 95, KEY_NEXTSONG},
|
||||
+ { 115, 125, KEY_VOLUMEUP},
|
||||
+ { 145, 155, KEY_PREVIOUSSONG},
|
||||
+ { 180, 190, KEY_MUTE},
|
||||
+ { 215, 225, KEY_VOLUMEDOWN},
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
+#define RELEASE_HI 230
|
||||
+#define MAX_EARPHONE 6
|
||||
+#define RC_POLL_MS 10
|
||||
+#define RC_FINISH_MS 500
|
||||
+#define WAIT_STATE 3
|
||||
+#define NOISE_THRESHOLD 100
|
||||
+
|
||||
+struct sharpsl_rc {
|
||||
+ struct input_dev *input;
|
||||
+ struct device *dev;
|
||||
+
|
||||
+ spinlock_t lock;
|
||||
+ struct timer_list rctimer;
|
||||
+ struct timer_list rctimer_finish;
|
||||
+
|
||||
+ unsigned int handling_press;
|
||||
+ unsigned int noise;
|
||||
+ unsigned int state;
|
||||
+ unsigned int last_key;
|
||||
+};
|
||||
+
|
||||
+static int get_remocon_raw(void)
|
||||
+{
|
||||
+ int i, val;
|
||||
+
|
||||
+ val = sharpsl_pm_pxa_read_max1111(MAX1111_REMCOM);
|
||||
+ for (i = 0; i < ARRAY_SIZE(remote_keys); ++i) {
|
||||
+ if (val >= remote_keys[i].min
|
||||
+ && val <= remote_keys[i].max) {
|
||||
+ printk("get_remocon_raw: VAL=%i, KEY=%i\n", val, remote_keys[i].key);
|
||||
+ return remote_keys[i].key;
|
||||
+ }
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static irqreturn_t sharpsl_rc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
+{
|
||||
+ struct sharpsl_rc *data = dev_id;
|
||||
+ DPRINTK("sharpsl_rc_interrupt %d\n", irq);
|
||||
+ if (!data->handling_press) {
|
||||
+ DPRINTK("handling interrupt");
|
||||
+ data->handling_press = 1;
|
||||
+ data->noise = 0;
|
||||
+ data->state = 0;
|
||||
+ data->last_key = 0;
|
||||
+
|
||||
+ reset_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP);
|
||||
+
|
||||
+ mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS));
|
||||
+ }
|
||||
+ return IRQ_HANDLED;
|
||||
+}
|
||||
+
|
||||
+static void sharpsl_rc_timer_callback(unsigned long dataPtr)
|
||||
+{
|
||||
+ struct sharpsl_rc *data = (struct sharpsl_rc *) dataPtr;
|
||||
+ int timer = 1;
|
||||
+ int key = get_remocon_raw();
|
||||
+ DPRINTK("timer callback, key: %d", key);
|
||||
+
|
||||
+ //wait for value to stabilize
|
||||
+ if (data->state < WAIT_STATE) {
|
||||
+ if (data->last_key != key) {
|
||||
+ ++data->noise;
|
||||
+ if (data->noise > NOISE_THRESHOLD) {
|
||||
+ DPRINTK("too much noise, bailing");
|
||||
+ timer = 0;
|
||||
+ }
|
||||
+ data->state = 0;
|
||||
+ } else {
|
||||
+ ++data->state;
|
||||
+ }
|
||||
+ data->last_key = key;
|
||||
+
|
||||
+ //stable value, send event
|
||||
+ } else if (data->state == WAIT_STATE) {
|
||||
+ data->noise = 0;
|
||||
+ //non-key returned, skip the rest of the states and bail now
|
||||
+ if (data->last_key == 0) {
|
||||
+ DPRINTK("non-key detected %d, noise: %d", data->last_key, data->noise);
|
||||
+ timer = 0;
|
||||
+ //send button press
|
||||
+ } else {
|
||||
+ DPRINTK("key press detected %d, noise %d", data->last_key, data->noise);
|
||||
+ input_report_key(data->input, data->last_key, 1);
|
||||
+ }
|
||||
+ ++data->state;
|
||||
+
|
||||
+ //wait until key is released
|
||||
+ } else if (data->state < WAIT_STATE * 2) {
|
||||
+ if (key == data->last_key
|
||||
+ && data->noise < NOISE_THRESHOLD) {
|
||||
+ data->state = WAIT_STATE + 1;
|
||||
+ ++data->noise;
|
||||
+ } else {
|
||||
+ ++data->state;
|
||||
+ }
|
||||
+ //key is released, send event
|
||||
+ } else {
|
||||
+ //send button release
|
||||
+ DPRINTK("release key %d", data->last_key);
|
||||
+ input_report_key(data->input, data->last_key, 0);
|
||||
+ timer = 0;
|
||||
+ }
|
||||
+ if (timer) {
|
||||
+ mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS));
|
||||
+ } else {
|
||||
+ set_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP);
|
||||
+ data->handling_press = 0;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static int __init sharpsl_rc_probe(struct platform_device *pdev)
|
||||
+{
|
||||
+ struct sharpsl_rc *sharpsl_rc;
|
||||
+ struct input_dev *input_dev;
|
||||
+ int i, ret;
|
||||
+
|
||||
+ dev_dbg(&pdev->dev, "sharpsl_rc_probe\n");
|
||||
+
|
||||
+ sharpsl_rc = kzalloc(sizeof(struct sharpsl_rc), GFP_KERNEL);
|
||||
+ input_dev = input_allocate_device();
|
||||
+ if (!sharpsl_rc || !input_dev) {
|
||||
+ kfree(sharpsl_rc);
|
||||
+ input_free_device(input_dev);
|
||||
+ return -ENOMEM;
|
||||
+ }
|
||||
+
|
||||
+ platform_set_drvdata(pdev, sharpsl_rc);
|
||||
+
|
||||
+ sharpsl_rc->dev = &pdev->dev;
|
||||
+ sharpsl_rc->input = input_dev;
|
||||
+ spin_lock_init(&sharpsl_rc->lock);
|
||||
+
|
||||
+ /* Init Remote Control Timer */
|
||||
+ init_timer(&sharpsl_rc->rctimer);
|
||||
+ sharpsl_rc->rctimer.function = sharpsl_rc_timer_callback;
|
||||
+ sharpsl_rc->rctimer.data = (unsigned long) sharpsl_rc;
|
||||
+
|
||||
+ input_dev->name = "Sharp Remote Control CE-RHX";
|
||||
+ input_dev->phys = "sharpsl_rc/input0";
|
||||
+ input_dev->id.bustype = BUS_HOST;
|
||||
+ input_dev->id.vendor = 0x0001;
|
||||
+ input_dev->id.product = 0x0001;
|
||||
+ input_dev->id.version = 0x0100;
|
||||
+ input_dev->cdev.dev = &pdev->dev;
|
||||
+ input_dev->private = sharpsl_rc;
|
||||
+
|
||||
+ input_dev->evbit[0] = BIT(EV_KEY);
|
||||
+
|
||||
+ for (i = 0; i <= ARRAY_SIZE(remote_keys); i++)
|
||||
+ set_bit(remote_keys[i].key, input_dev->keybit);
|
||||
+
|
||||
+ input_register_device(sharpsl_rc->input);
|
||||
+
|
||||
+ pxa_gpio_mode(REMOTE_GPIO_INT | GPIO_IN);
|
||||
+ ret = request_irq(REMOTE_IRQ_INT,
|
||||
+ sharpsl_rc_interrupt,
|
||||
+ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED,
|
||||
+ "sharpsl_rc",
|
||||
+ sharpsl_rc);
|
||||
+ if (ret < 0) {
|
||||
+ dev_dbg(&pdev->dev, "Can't get IRQ: %d!\n", i);
|
||||
+ kfree(sharpsl_rc);
|
||||
+ input_free_device(input_dev);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int sharpsl_rc_remove(struct platform_device *pdev)
|
||||
+{
|
||||
+ struct sharpsl_rc *sharpsl_rc = platform_get_drvdata(pdev);
|
||||
+
|
||||
+ dev_dbg(&pdev->dev, "sharpsl_rc_remove\n");
|
||||
+
|
||||
+ free_irq(REMOTE_IRQ_INT, sharpsl_rc);
|
||||
+ del_timer_sync(&sharpsl_rc->rctimer);
|
||||
+ input_unregister_device(sharpsl_rc->input);
|
||||
+ kfree(sharpsl_rc);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static struct platform_driver sharpsl_rc_driver = {
|
||||
+ .probe = sharpsl_rc_probe,
|
||||
+ .remove = sharpsl_rc_remove,
|
||||
+ .suspend = NULL,
|
||||
+ .resume = NULL,
|
||||
+ .driver = {
|
||||
+ .name = "sharpsl-remote-control",
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static int __devinit sharpsl_rc_init(void)
|
||||
+{
|
||||
+ printk("sharpsl_rc_init\n");
|
||||
+ return platform_driver_register(&sharpsl_rc_driver);
|
||||
+}
|
||||
+
|
||||
+static void __exit sharpsl_rc_exit(void)
|
||||
+{
|
||||
+ printk("sharpsl_rc_exit\n");
|
||||
+ platform_driver_unregister(&sharpsl_rc_driver);
|
||||
+}
|
||||
+
|
||||
+module_init(sharpsl_rc_init);
|
||||
+module_exit(sharpsl_rc_exit);
|
||||
+
|
||||
+MODULE_AUTHOR("Justin Patrin <papercrane@reversefold.com>");
|
||||
+MODULE_AUTHOR("Richard Purdie <rpurdie@rpsys.net>");
|
||||
+MODULE_DESCRIPTION("SharpSL Remote Control Driver");
|
||||
+MODULE_LICENSE("GPL");
|
||||
Index: linux-2.6.24/drivers/input/keyboard/spitzkbd.c
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/drivers/input/keyboard/spitzkbd.c 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/input/keyboard/spitzkbd.c 2008-03-10 17:05:55.000000000 +0000
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <linux/jiffies.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/slab.h>
|
||||
+#include <linux/kmod.h>
|
||||
|
||||
#include <asm/arch/spitz.h>
|
||||
#include <asm/arch/hardware.h>
|
||||
@@ -279,13 +280,21 @@
|
||||
static int sharpsl_hinge_state;
|
||||
static int hinge_count;
|
||||
|
||||
+void spitzkbd_handle_sharpsl_rc(void *arg) {
|
||||
+ request_module("sharpsl_rc");
|
||||
+}
|
||||
+
|
||||
+DECLARE_WORK(spitzkbd_work, spitzkbd_handle_sharpsl_rc);
|
||||
+
|
||||
static void spitzkbd_hinge_timer(unsigned long data)
|
||||
{
|
||||
struct spitzkbd *spitzkbd_data = (struct spitzkbd *) data;
|
||||
unsigned long state;
|
||||
unsigned long flags;
|
||||
+ unsigned int headphone, remote;
|
||||
|
||||
state = GPLR(SPITZ_GPIO_SWA) & (GPIO_bit(SPITZ_GPIO_SWA)|GPIO_bit(SPITZ_GPIO_SWB));
|
||||
+ state |= (GPLR(SPITZ_GPIO_HP_IN) & GPIO_bit(SPITZ_GPIO_HP_IN));
|
||||
state |= (GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT));
|
||||
if (state != sharpsl_hinge_state) {
|
||||
hinge_count = 0;
|
||||
@@ -299,9 +308,18 @@
|
||||
|
||||
input_report_switch(spitzkbd_data->input, SW_LID, ((GPLR(SPITZ_GPIO_SWA) & GPIO_bit(SPITZ_GPIO_SWA)) != 0));
|
||||
input_report_switch(spitzkbd_data->input, SW_TABLET_MODE, ((GPLR(SPITZ_GPIO_SWB) & GPIO_bit(SPITZ_GPIO_SWB)) != 0));
|
||||
- input_report_switch(spitzkbd_data->input, SW_HEADPHONE_INSERT, ((GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT)) != 0));
|
||||
+
|
||||
+ headphone = ((GPLR(SPITZ_GPIO_HP_IN) & GPIO_bit(SPITZ_GPIO_HP_IN)) != 0);
|
||||
+ input_report_switch(spitzkbd_data->input, SW_HEADPHONE_INSERT, headphone);
|
||||
+
|
||||
+ remote = headphone && ((GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT)) == 0);
|
||||
+ input_report_switch(spitzkbd_data->input, SW_REMOTE_INSERT, remote);
|
||||
input_sync(spitzkbd_data->input);
|
||||
|
||||
+ if (remote) {
|
||||
+ schedule_work(&spitzkbd_work);
|
||||
+ }
|
||||
+
|
||||
spin_unlock_irqrestore(&spitzkbd_data->lock, flags);
|
||||
} else {
|
||||
mod_timer(&spitzkbd_data->htimer, jiffies + msecs_to_jiffies(HINGE_SCAN_INTERVAL));
|
||||
@@ -395,6 +413,7 @@
|
||||
set_bit(SW_LID, input_dev->swbit);
|
||||
set_bit(SW_TABLET_MODE, input_dev->swbit);
|
||||
set_bit(SW_HEADPHONE_INSERT, input_dev->swbit);
|
||||
+ set_bit(SW_REMOTE_INSERT, input_dev->swbit);
|
||||
|
||||
err = input_register_device(input_dev);
|
||||
if (err)
|
||||
@@ -432,9 +451,12 @@
|
||||
request_irq(SPITZ_IRQ_GPIO_SWB, spitzkbd_hinge_isr,
|
||||
IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
|
||||
"Spitzkbd SWB", spitzkbd);
|
||||
- request_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd_hinge_isr,
|
||||
+ request_irq(SPITZ_IRQ_GPIO_HP_IN, spitzkbd_hinge_isr,
|
||||
IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
|
||||
"Spitzkbd HP", spitzkbd);
|
||||
+ request_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd_hinge_isr,
|
||||
+ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED,
|
||||
+ "Spitzkbd HP Type", spitzkbd);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -455,6 +477,7 @@
|
||||
free_irq(SPITZ_IRQ_GPIO_ON_KEY, spitzkbd);
|
||||
free_irq(SPITZ_IRQ_GPIO_SWA, spitzkbd);
|
||||
free_irq(SPITZ_IRQ_GPIO_SWB, spitzkbd);
|
||||
+ free_irq(SPITZ_IRQ_GPIO_HP_IN, spitzkbd);
|
||||
free_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd);
|
||||
|
||||
del_timer_sync(&spitzkbd->htimer);
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/sharpsl.h
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/arch/arm/mach-pxa/sharpsl.h 2008-03-10 17:05:35.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/sharpsl.h 2008-03-10 17:05:55.000000000 +0000
|
||||
@@ -37,15 +37,10 @@
|
||||
*/
|
||||
#define READ_GPIO_BIT(x) (GPLR(x) & GPIO_bit(x))
|
||||
|
||||
-/* MAX1111 Channel Definitions */
|
||||
-#define MAX1111_BATT_VOLT 4u
|
||||
-#define MAX1111_BATT_TEMP 2u
|
||||
-#define MAX1111_ACIN_VOLT 6u
|
||||
-
|
||||
extern struct battery_thresh spitz_battery_levels_acin[];
|
||||
extern struct battery_thresh spitz_battery_levels_noac[];
|
||||
void sharpsl_pm_pxa_init(void);
|
||||
void sharpsl_pm_pxa_remove(void);
|
||||
-int sharpsl_pm_pxa_read_max1111(int channel);
|
||||
+
|
||||
|
||||
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/sharpsl_pm.c
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/arch/arm/mach-pxa/sharpsl_pm.c 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/sharpsl_pm.c 2008-03-10 17:05:55.000000000 +0000
|
||||
@@ -135,6 +135,8 @@
|
||||
| MAXCTRL_SGL | MAXCTRL_UNI | MAXCTRL_STR);
|
||||
}
|
||||
|
||||
+EXPORT_SYMBOL(sharpsl_pm_pxa_read_max1111);
|
||||
+
|
||||
void sharpsl_pm_pxa_init(void)
|
||||
{
|
||||
pxa_gpio_mode(sharpsl_pm.machinfo->gpio_acin | GPIO_IN);
|
||||
Index: linux-2.6.24/include/asm-arm/hardware/sharpsl_pm.h
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/include/asm-arm/hardware/sharpsl_pm.h 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/hardware/sharpsl_pm.h 2008-03-10 17:05:55.000000000 +0000
|
||||
@@ -104,3 +104,10 @@
|
||||
irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id);
|
||||
irqreturn_t sharpsl_fatal_isr(int irq, void *dev_id);
|
||||
|
||||
+/* MAX1111 Channel Definitions */
|
||||
+#define MAX1111_REMCOM 0u
|
||||
+#define MAX1111_BATT_VOLT 4u
|
||||
+#define MAX1111_BATT_TEMP 2u
|
||||
+#define MAX1111_ACIN_VOLT 6u
|
||||
+
|
||||
+int sharpsl_pm_pxa_read_max1111(int channel);
|
||||
Index: linux-2.6.24/include/linux/input.h
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/include/linux/input.h 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/include/linux/input.h 2008-03-10 17:05:55.000000000 +0000
|
||||
@@ -636,6 +636,7 @@
|
||||
#define SW_TABLET_MODE 0x01 /* set = tablet mode */
|
||||
#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */
|
||||
#define SW_RADIO 0x03 /* set = radio enabled */
|
||||
+#define SW_REMOTE_INSERT 0x04 /* set = remote */
|
||||
#define SW_MAX 0x0f
|
||||
#define SW_CNT (SW_MAX+1)
|
||||
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/spitz_pm.c
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/arch/arm/mach-pxa/spitz_pm.c 2008-03-10 17:05:40.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/spitz_pm.c 2008-03-10 17:05:55.000000000 +0000
|
||||
@@ -162,6 +162,13 @@
|
||||
if (resume_on_alarm && (PEDR & PWER_RTC))
|
||||
is_resume |= PWER_RTC;
|
||||
|
||||
+ printk("wakeup: PEDR: %x, PKSR: %x, HP_IN: %x, AK_INT: %x\n", PEDR, PKSR, GPIO_bit(SPITZ_GPIO_HP_IN), GPIO_bit(SPITZ_GPIO_AK_INT));
|
||||
+
|
||||
+ //remote/headphone interrupt, wakeup
|
||||
+ if (PEDR == 0 && (PKSR & 0xc0d01) != 0) {
|
||||
+ is_resume |= PWER_RTC;
|
||||
+ }
|
||||
+
|
||||
dev_dbg(sharpsl_pm.dev, "is_resume: %x\n",is_resume);
|
||||
return is_resume;
|
||||
}
|
|
@ -0,0 +1,180 @@
|
|||
This patch adds support for Sharp CE-RH2 on Akita and CE-RH1 on C7x0.
|
||||
|
||||
This patch is a bit ugly:
|
||||
- Device specific functions should be moved to platform infrastructure.
|
||||
- Maybe define generic *_scoopexp functions handling Akita x Spitz differences.
|
||||
|
||||
Index: linux-2.6.24/drivers/input/keyboard/sharpsl_rc.c
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/drivers/input/keyboard/sharpsl_rc.c 2008-03-08 19:29:02.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/input/keyboard/sharpsl_rc.c 2008-03-08 22:23:35.000000000 +0000
|
||||
@@ -21,12 +21,10 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
-#ifdef CONFIG_MACH_SPITZ
|
||||
+#include <asm/mach-types.h>
|
||||
#include <asm/arch/spitz.h>
|
||||
-#endif
|
||||
-#ifdef CONFIG_MACH_CORGI
|
||||
+#include <asm/arch/akita.h>
|
||||
#include <asm/arch/corgi.h>
|
||||
-#endif
|
||||
|
||||
#include <asm/arch/hardware.h>
|
||||
#include <asm/arch/pxa-regs.h>
|
||||
@@ -42,12 +40,8 @@
|
||||
unsigned char key;
|
||||
};
|
||||
|
||||
-#ifdef CONFIG_MACH_SPITZ
|
||||
-#define REMOTE_AKIN_PULLUP SPITZ_SCP2_AKIN_PULLUP
|
||||
-#define REMOTE_SCOOP_DEVICE spitzscoop2_device
|
||||
-#define REMOTE_GPIO_INT SPITZ_GPIO_AK_INT
|
||||
-#define REMOTE_IRQ_INT SPITZ_IRQ_GPIO_AK_INT
|
||||
-static struct remote_control_key remote_keys[] = {
|
||||
+static struct remote_control_key remote_keys_spitz[] = {
|
||||
+ /* CE-RH2 values */
|
||||
{ 25, 35, KEY_STOPCD},
|
||||
{ 55, 65, KEY_PLAYPAUSE},
|
||||
{ 85, 95, KEY_NEXTSONG},
|
||||
@@ -56,23 +50,15 @@
|
||||
{ 180, 190, KEY_MUTE},
|
||||
{ 215, 225, KEY_VOLUMEDOWN},
|
||||
};
|
||||
-#endif
|
||||
-#ifdef CONFIG_MACH_CORGI
|
||||
-#define REMOTE_AKIN_PULLUP CORGI_SCP_AKIN_PULLUP
|
||||
-#define REMOTE_SCOOP_DEVICE corgiscoop_device
|
||||
-#define REMOTE_GPIO_INT CORGI_GPIO_AK_INT
|
||||
-#define REMOTE_IRQ_INT CORGI_IRQ_GPIO_AK_INT
|
||||
-static struct remote_control_key remote_keys[] = {
|
||||
- //These need to be fixed for the CE-RH1's values
|
||||
- { 25, 35, KEY_STOPCD},
|
||||
- { 55, 65, KEY_PLAYPAUSE},
|
||||
- { 85, 95, KEY_NEXTSONG},
|
||||
- { 115, 125, KEY_VOLUMEUP},
|
||||
- { 145, 155, KEY_PREVIOUSSONG},
|
||||
- { 180, 190, KEY_MUTE},
|
||||
- { 215, 225, KEY_VOLUMEDOWN},
|
||||
+static struct remote_control_key remote_keys_corgi[] = {
|
||||
+ /* CE-RH1 values */
|
||||
+ { 27, 35, KEY_STOPCD},
|
||||
+ { 7, 13, KEY_PLAYPAUSE},
|
||||
+ { 77, 93, KEY_NEXTSONG},
|
||||
+ { 115, 132, KEY_VOLUMEUP},
|
||||
+ { 46, 58, KEY_PREVIOUSSONG},
|
||||
+ { 170, 186, KEY_VOLUMEDOWN},
|
||||
};
|
||||
-#endif
|
||||
|
||||
#define RELEASE_HI 230
|
||||
#define MAX_EARPHONE 6
|
||||
@@ -98,9 +84,17 @@
|
||||
static int get_remocon_raw(void)
|
||||
{
|
||||
int i, val;
|
||||
+ struct remote_control_key *remote_keys;
|
||||
+
|
||||
+ if (machine_is_borzoi() || machine_is_spitz() || machine_is_akita())
|
||||
+ remote_keys = remote_keys_spitz;
|
||||
+ else
|
||||
+ remote_keys = remote_keys_corgi;
|
||||
|
||||
val = sharpsl_pm_pxa_read_max1111(MAX1111_REMCOM);
|
||||
- for (i = 0; i < ARRAY_SIZE(remote_keys); ++i) {
|
||||
+ for (i = 0; i < (machine_is_borzoi() || machine_is_spitz() || machine_is_akita() ?
|
||||
+ ARRAY_SIZE(remote_keys_spitz) : ARRAY_SIZE(remote_keys_corgi));
|
||||
+ ++i) {
|
||||
if (val >= remote_keys[i].min
|
||||
&& val <= remote_keys[i].max) {
|
||||
printk("get_remocon_raw: VAL=%i, KEY=%i\n", val, remote_keys[i].key);
|
||||
@@ -121,8 +115,12 @@
|
||||
data->state = 0;
|
||||
data->last_key = 0;
|
||||
|
||||
- reset_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP);
|
||||
-
|
||||
+ if (machine_is_borzoi() || machine_is_spitz())
|
||||
+ reset_scoop_gpio(platform_scoop_config->devs[1].dev, SPITZ_SCP2_AKIN_PULLUP);
|
||||
+ else if (machine_is_akita())
|
||||
+ akita_reset_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_AKIN_PULLUP);
|
||||
+ else
|
||||
+ reset_scoop_gpio(platform_scoop_config->devs[0].dev, CORGI_SCP_AKIN_PULLUP);
|
||||
mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS));
|
||||
}
|
||||
return IRQ_HANDLED;
|
||||
@@ -182,7 +180,12 @@
|
||||
if (timer) {
|
||||
mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS));
|
||||
} else {
|
||||
- set_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP);
|
||||
+ if (machine_is_borzoi() || machine_is_spitz())
|
||||
+ set_scoop_gpio(platform_scoop_config->devs[1].dev, SPITZ_SCP2_AKIN_PULLUP);
|
||||
+ else if (machine_is_akita())
|
||||
+ akita_set_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_AKIN_PULLUP);
|
||||
+ else
|
||||
+ set_scoop_gpio(platform_scoop_config->devs[0].dev, CORGI_SCP_AKIN_PULLUP);
|
||||
data->handling_press = 0;
|
||||
}
|
||||
}
|
||||
@@ -192,6 +195,7 @@
|
||||
struct sharpsl_rc *sharpsl_rc;
|
||||
struct input_dev *input_dev;
|
||||
int i, ret;
|
||||
+ struct remote_control_key *remote_keys;
|
||||
|
||||
dev_dbg(&pdev->dev, "sharpsl_rc_probe\n");
|
||||
|
||||
@@ -225,17 +229,32 @@
|
||||
|
||||
input_dev->evbit[0] = BIT(EV_KEY);
|
||||
|
||||
- for (i = 0; i <= ARRAY_SIZE(remote_keys); i++)
|
||||
+ if (machine_is_borzoi() || machine_is_spitz() || machine_is_akita())
|
||||
+ remote_keys = remote_keys_spitz;
|
||||
+ else
|
||||
+ remote_keys = remote_keys_corgi;
|
||||
+ for (i = 0; i < (machine_is_borzoi() || machine_is_spitz() || machine_is_akita() ?
|
||||
+ ARRAY_SIZE(remote_keys_spitz) : ARRAY_SIZE(remote_keys_corgi));
|
||||
+ ++i)
|
||||
set_bit(remote_keys[i].key, input_dev->keybit);
|
||||
|
||||
input_register_device(sharpsl_rc->input);
|
||||
|
||||
- pxa_gpio_mode(REMOTE_GPIO_INT | GPIO_IN);
|
||||
- ret = request_irq(REMOTE_IRQ_INT,
|
||||
- sharpsl_rc_interrupt,
|
||||
- IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED,
|
||||
- "sharpsl_rc",
|
||||
- sharpsl_rc);
|
||||
+ if (machine_is_borzoi() || machine_is_spitz() || machine_is_akita()) {
|
||||
+ pxa_gpio_mode(SPITZ_GPIO_AK_INT | GPIO_IN);
|
||||
+ ret = request_irq(SPITZ_IRQ_GPIO_AK_INT,
|
||||
+ sharpsl_rc_interrupt,
|
||||
+ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED,
|
||||
+ "sharpsl_rc",
|
||||
+ sharpsl_rc);
|
||||
+ } else {
|
||||
+ pxa_gpio_mode(CORGI_GPIO_AK_INT | GPIO_IN);
|
||||
+ ret = request_irq(CORGI_IRQ_GPIO_AK_INT,
|
||||
+ sharpsl_rc_interrupt,
|
||||
+ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED,
|
||||
+ "sharpsl_rc",
|
||||
+ sharpsl_rc);
|
||||
+ }
|
||||
if (ret < 0) {
|
||||
dev_dbg(&pdev->dev, "Can't get IRQ: %d!\n", i);
|
||||
kfree(sharpsl_rc);
|
||||
@@ -252,7 +271,10 @@
|
||||
|
||||
dev_dbg(&pdev->dev, "sharpsl_rc_remove\n");
|
||||
|
||||
- free_irq(REMOTE_IRQ_INT, sharpsl_rc);
|
||||
+ if (machine_is_borzoi() || machine_is_spitz() || machine_is_akita())
|
||||
+ free_irq(SPITZ_IRQ_GPIO_AK_INT, sharpsl_rc);
|
||||
+ else
|
||||
+ free_irq(CORGI_IRQ_GPIO_AK_INT, sharpsl_rc);
|
||||
del_timer_sync(&sharpsl_rc->rctimer);
|
||||
input_unregister_device(sharpsl_rc->input);
|
||||
kfree(sharpsl_rc);
|
|
@ -0,0 +1,497 @@
|
|||
http://www.uwsg.indiana.edu/hypermail/linux/kernel/0802.1/3541.html
|
||||
|
||||
Here is a rewrite of spitz.h, which includes comments documenting
|
||||
function of particular GPIO pins.
|
||||
|
||||
spitz_h_rewrite.patch provides:
|
||||
- no changes in compiled code
|
||||
- partial spitz.h rewrite:
|
||||
* organized by function
|
||||
* describes complete GPIO pinout
|
||||
* comments added
|
||||
* removed defines cloning pxa-regs.h
|
||||
- prefer generic pxa-regs.h GPIO if available
|
||||
- use GPIO names instead of numbers
|
||||
|
||||
Thanks to Trisoft for providing needed information.
|
||||
|
||||
Index: linux-2.6.24/arch/arm/mach-pxa/spitz_pm.c
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/arch/arm/mach-pxa/spitz_pm.c 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/arch/arm/mach-pxa/spitz_pm.c 2008-02-13 13:49:22.000000000 +0000
|
||||
@@ -110,9 +110,9 @@
|
||||
pxa_gpio_mode(GPIO18_RDY|GPIO_OUT | GPIO_DFLT_HIGH);
|
||||
|
||||
PRER = GPIO_bit(SPITZ_GPIO_KEY_INT);
|
||||
- PFER = GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(SPITZ_GPIO_RESET);
|
||||
- PWER = GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(SPITZ_GPIO_RESET) | PWER_RTC;
|
||||
- PKWR = GPIO_bit(SPITZ_GPIO_SYNC) | GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(SPITZ_GPIO_RESET);
|
||||
+ PFER = GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(GPIO1_RST);
|
||||
+ PWER = GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(GPIO1_RST) | PWER_RTC;
|
||||
+ PKWR = GPIO_bit(SPITZ_GPIO_SYNC) | GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(GPIO1_RST);
|
||||
PKSR = 0xffffffff; // clear
|
||||
|
||||
/* nRESET_OUT Disable */
|
||||
@@ -128,7 +128,7 @@
|
||||
static void spitz_postsuspend(void)
|
||||
{
|
||||
pxa_gpio_mode(GPIO18_RDY_MD);
|
||||
- pxa_gpio_mode(10 | GPIO_IN);
|
||||
+ pxa_gpio_mode(SPITZ_GPIO_NC_10 | GPIO_IN);
|
||||
}
|
||||
|
||||
static int spitz_should_wakeup(unsigned int resume_on_alarm)
|
||||
Index: linux-2.6.24/drivers/video/pxafb.c
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/drivers/video/pxafb.c 2008-02-13 13:49:04.000000000 +0000
|
||||
+++ linux-2.6.24/drivers/video/pxafb.c 2008-02-13 13:49:57.000000000 +0000
|
||||
@@ -920,7 +920,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
- for (gpio = 58; ldd_bits > 0; gpio++, ldd_bits--) {
|
||||
+ for (gpio = GPIO58_LDD_0; ldd_bits > 0; gpio++, ldd_bits--) {
|
||||
pxa_gpio_mode(gpio | GPIO_ALT_FN_2_OUT);
|
||||
}
|
||||
pxa_gpio_mode(GPIO74_LCD_FCLK_MD);
|
||||
Index: linux-2.6.24/include/asm-arm/arch-pxa/akita.h
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/include/asm-arm/arch-pxa/akita.h 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/arch-pxa/akita.h 2008-02-13 13:49:22.000000000 +0000
|
||||
@@ -12,11 +12,11 @@
|
||||
/* Akita IO Expander GPIOs */
|
||||
|
||||
#define AKITA_IOEXP_RESERVED_7 (1 << 7)
|
||||
-#define AKITA_IOEXP_IR_ON (1 << 6)
|
||||
-#define AKITA_IOEXP_AKIN_PULLUP (1 << 5)
|
||||
-#define AKITA_IOEXP_BACKLIGHT_CONT (1 << 4)
|
||||
-#define AKITA_IOEXP_BACKLIGHT_ON (1 << 3)
|
||||
-#define AKITA_IOEXP_MIC_BIAS (1 << 2)
|
||||
+#define AKITA_IOEXP_IR_ON (1 << 6) /* IrDA On */
|
||||
+#define AKITA_IOEXP_AKIN_PULLUP (1 << 5) /* Pull-Up for Remote */
|
||||
+#define AKITA_IOEXP_BACKLIGHT_CONT (1 << 4) /* Backlight Control */
|
||||
+#define AKITA_IOEXP_BACKLIGHT_ON (1 << 3) /* Backlight On */
|
||||
+#define AKITA_IOEXP_MIC_BIAS (1 << 2) /* Mic Bias On */
|
||||
#define AKITA_IOEXP_RESERVED_1 (1 << 1)
|
||||
#define AKITA_IOEXP_RESERVED_0 (1 << 0)
|
||||
|
||||
Index: linux-2.6.24/include/asm-arm/arch-pxa/pxa-regs.h
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/include/asm-arm/arch-pxa/pxa-regs.h 2008-02-13 13:49:07.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/arch-pxa/pxa-regs.h 2008-02-13 13:49:22.000000000 +0000
|
||||
@@ -1334,6 +1334,7 @@
|
||||
#define GPIO85_nPCE_1 85 /* Card Enable for Card Space (PXA27x) */
|
||||
#define GPIO92_MMCDAT0 92 /* MMC DAT0 (PXA27x) */
|
||||
#define GPIO102_nPCE_1 102 /* PCMCIA (PXA27x) */
|
||||
+#define GPIO104_pSKTSEL 104 /* PCMCIA Socket Select (PXA27x) */
|
||||
#define GPIO109_MMCDAT1 109 /* MMC DAT1 (PXA27x) */
|
||||
#define GPIO110_MMCDAT2 110 /* MMC DAT2 (PXA27x) */
|
||||
#define GPIO110_MMCCS0 110 /* MMC Chip Select 0 (PXA27x) */
|
||||
Index: linux-2.6.24/include/asm-arm/arch-pxa/spitz.h
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/include/asm-arm/arch-pxa/spitz.h 2008-02-13 13:49:01.000000000 +0000
|
||||
+++ linux-2.6.24/include/asm-arm/arch-pxa/spitz.h 2008-02-13 13:49:22.000000000 +0000
|
||||
@@ -1,8 +1,9 @@
|
||||
/*
|
||||
- * Hardware specific definitions for SL-Cx000 series of PDAs
|
||||
+ * Hardware specific definitions for SL-Cxx00 series of PDAs
|
||||
*
|
||||
* Copyright (c) 2005 Alexander Wykes
|
||||
* Copyright (c) 2005 Richard Purdie
|
||||
+ * Copyright (c) 2008 Stanislav Brabec
|
||||
*
|
||||
* Based on Sharp's 2.4 kernel patches
|
||||
*
|
||||
@@ -13,140 +14,257 @@
|
||||
*/
|
||||
#ifndef __ASM_ARCH_SPITZ_H
|
||||
#define __ASM_ARCH_SPITZ_H 1
|
||||
-#endif
|
||||
|
||||
-#include <linux/fb.h>
|
||||
+#include <asm-arm/arch-pxa/irqs.h>
|
||||
+#include <linux/platform_device.h>
|
||||
|
||||
/* Spitz/Akita GPIOs */
|
||||
|
||||
-#define SPITZ_GPIO_KEY_INT (0) /* Key Interrupt */
|
||||
-#define SPITZ_GPIO_RESET (1)
|
||||
-#define SPITZ_GPIO_nSD_DETECT (9)
|
||||
-#define SPITZ_GPIO_TP_INT (11) /* Touch Panel interrupt */
|
||||
-#define SPITZ_GPIO_AK_INT (13) /* Remote Control */
|
||||
-#define SPITZ_GPIO_ADS7846_CS (14)
|
||||
-#define SPITZ_GPIO_SYNC (16)
|
||||
-#define SPITZ_GPIO_MAX1111_CS (20)
|
||||
-#define SPITZ_GPIO_FATAL_BAT (21)
|
||||
-#define SPITZ_GPIO_HSYNC (22)
|
||||
-#define SPITZ_GPIO_nSD_CLK (32)
|
||||
-#define SPITZ_GPIO_USB_DEVICE (35)
|
||||
-#define SPITZ_GPIO_USB_HOST (37)
|
||||
-#define SPITZ_GPIO_USB_CONNECT (41)
|
||||
-#define SPITZ_GPIO_LCDCON_CS (53)
|
||||
-#define SPITZ_GPIO_nPCE (54)
|
||||
-#define SPITZ_GPIO_nSD_WP (81)
|
||||
-#define SPITZ_GPIO_ON_RESET (89)
|
||||
-#define SPITZ_GPIO_BAT_COVER (90)
|
||||
-#define SPITZ_GPIO_CF_CD (94)
|
||||
-#define SPITZ_GPIO_ON_KEY (95)
|
||||
-#define SPITZ_GPIO_SWA (97)
|
||||
-#define SPITZ_GPIO_SWB (96)
|
||||
-#define SPITZ_GPIO_CHRG_FULL (101)
|
||||
-#define SPITZ_GPIO_CO (101)
|
||||
-#define SPITZ_GPIO_CF_IRQ (105)
|
||||
-#define SPITZ_GPIO_AC_IN (115)
|
||||
-#define SPITZ_GPIO_HP_IN (116)
|
||||
+/* This list refers to all GPIO pins either in defines or in comments.
|
||||
+ *
|
||||
+ * GPIO pins not listed:
|
||||
+ * GPIO2 SYS_EN: System Power Enable
|
||||
+ * GPIO5-GPIO8 PWR_CAP0-PWR_CAP3: sleep DC-DC converter power capacitors
|
||||
+ * GPIO40 not connected
|
||||
+ */
|
||||
|
||||
-/* Spitz Only GPIOs */
|
||||
|
||||
-#define SPITZ_GPIO_CF2_IRQ (106) /* CF slot1 Ready */
|
||||
-#define SPITZ_GPIO_CF2_CD (93)
|
||||
+/* Spitz/Akita System GPIO */
|
||||
+
|
||||
+#define SPITZ_GPIO_KEY_INT (0) /* Key Interrupt */
|
||||
+#define SPITZ_GPIO_SYNC (16) /* IOPORT Wake Up (input) */
|
||||
+#define SPITZ_GPIO_NAND_CS (79) /* NAND Flash Chip Select */
|
||||
+#define SPITZ_GPIO_NC_10 (10) /* Not Connected (but used in kernel) */
|
||||
+/* This GPIO pin is connected:
|
||||
+ * GPIO1_RST
|
||||
+ */
|
||||
|
||||
|
||||
+/* Compact Flash Interface */
|
||||
+
|
||||
+/* Spitz/Akita Compact Flash Interface */
|
||||
+#define SPITZ_GPIO_CF_CD (94) /* CF IRQ */
|
||||
+#define SPITZ_GPIO_CF_IRQ (105) /* CF Ready */
|
||||
+/* These GPIO pins are connected:
|
||||
+ * GPIO48_nPOE
|
||||
+ * GPIO49_nPWE
|
||||
+ * GPIO50_nPIOR
|
||||
+ * GPIO51_nPIOW
|
||||
+ * GPIO54_nPCE_2
|
||||
+ * GPIO55_nPREG
|
||||
+ * GPIO56_nPWAIT
|
||||
+ * GPIO57_nIOIS16
|
||||
+ * GPIO80_nCS_4
|
||||
+ * GPIO85_nPCE_1
|
||||
+ * GPIO104_pSKTSEL
|
||||
+ */
|
||||
+
|
||||
+/* Spitz only Compact Flash Interface */
|
||||
+#define SPITZ_GPIO_CF2_CD (93) /* CF slot1 IRQ */
|
||||
+#define SPITZ_GPIO_CF2_IRQ (106) /* CF slot1 Ready */
|
||||
+/* This GPIO pin is connected:
|
||||
+ * GPIO78_nCS_2
|
||||
+ */
|
||||
+
|
||||
+
|
||||
+/* Spitz/Akita Battery, Power and Service Connector */
|
||||
+
|
||||
+#define SPITZ_GPIO_FATAL_BAT (21) /* Fatal Battery */
|
||||
+#define SPITZ_GPIO_BAT_COVER (90) /* Battery Cover switch */
|
||||
+#define SPITZ_GPIO_BAT_COVER2 (15) /* Battery Cover switch, parallel pin */
|
||||
+#define SPITZ_GPIO_CHRG_FULL (101) /* Battery Full */
|
||||
+#define SPITZ_GPIO_AC_IN (115) /* External Power Supply is active */
|
||||
+#define SPITZ_GPIO_ON_RESET (89) /* Software Reset */
|
||||
+#define SPITZ_GPIO_SERVICE0 (83) /* Service Connector */
|
||||
+#define SPITZ_GPIO_SERVICE1 (84) /* Service Connector */
|
||||
+/* This GPIO pin is connected:
|
||||
+ * GPIO18_RDY
|
||||
+ */
|
||||
+
|
||||
+
|
||||
+/* Spitz/Akita Display Controller */
|
||||
+
|
||||
+#define SPITZ_GPIO_HSYNC (22) /* Line Sync Feedback */
|
||||
+/* These GPIO pins are connected:
|
||||
+ * GPIO58_LDD_0-GPIO58_LDD_15
|
||||
+ * GPIO74_LCD_FCLK
|
||||
+ * GPIO75_LCD_LCLK
|
||||
+ * GPIO76_LCD_PCLK
|
||||
+ * GPIO77_LCD_ACBIAS
|
||||
+ */
|
||||
+
|
||||
+
|
||||
+/* Spitz/Akita SSP/SPI Bus and Devices */
|
||||
+
|
||||
+#define SPITZ_GPIO_SSP_CLK (19) /* SSP bus Clock */
|
||||
+#define SPITZ_GPIO_SSP_RXD (86) /* SSP bus RxD */
|
||||
+#define SPITZ_GPIO_SSP_TXD (87) /* SSP bus TxD */
|
||||
+#define SPITZ_GPIO_TP_INT (11) /* Touch Panel IRQ */
|
||||
+#define SPITZ_GPIO_ADS7846_CS (14) /* Touch Panel Controller Chip Select */
|
||||
+#define SPITZ_GPIO_MAX1111_CS (20) /* Multi Channel ADC Chip Select */
|
||||
+#define SPITZ_GPIO_LCDCON_CS (53) /* LCD Controller Chip Select */
|
||||
+
|
||||
+
|
||||
+/* Spitz/Akita Supplementary USB OTG Pins */
|
||||
+
|
||||
+#define SPITZ_GPIO_USB_DEVICE (35) /* USB Client power is present */
|
||||
+#define SPITZ_GPIO_USB_HOST (37) /* USB OTG 5V Host power supply control */
|
||||
+#define SPITZ_GPIO_USB_CONNECT (41) /* USB Host Cable is connected */
|
||||
+
|
||||
+
|
||||
+/* Spitz/Akita Audio */
|
||||
+
|
||||
+#define SPITZ_GPIO_HP_IN (116) /* CPU Headphone detect */
|
||||
+#define SPITZ_GPIO_AK_INT (13) /* Remote Control detect */
|
||||
+/* These GPIO AC97 pins are connected:
|
||||
+ * GPIO28_BITCLK
|
||||
+ * GPIO29_SDATA_IN
|
||||
+ * GPIO30_SDATA_OUT
|
||||
+ * GPIO31_SYNC
|
||||
+ * GPIO113_AC97_RESET_N
|
||||
+ */
|
||||
+
|
||||
+
|
||||
+/* Spitz/Akita SD Slot */
|
||||
+
|
||||
+#define SPITZ_GPIO_nSD_DETECT (9) /* SD Card Presence */
|
||||
+#define SPITZ_GPIO_nSD_WP (81) /* SD Write Protection */
|
||||
+/* These GPIO pins are connected:
|
||||
+ * GPIO32_MMCCLK
|
||||
+ * GPIO92_MMCDAT0
|
||||
+ * GPIO109_MMCDAT1
|
||||
+ * GPIO110_MMCDAT2
|
||||
+ * GPIO111_MMCDAT3
|
||||
+ * GPIO112_MMCCMD
|
||||
+ */
|
||||
+
|
||||
+/* Spitz/Akita I2C bus */
|
||||
+#define SPITZ_GPIO_SCL (117) /* I2C SCL */
|
||||
+#define SPITZ_GPIO_SDA (118) /* I2C SDA */
|
||||
+#define SPITZ_GPIO_PWR_SCL (3) /* I2C SCL power */
|
||||
+#define SPITZ_GPIO_PWR_SDA (4) /* I2C SDA power */
|
||||
+
|
||||
+/* audio codec pins */
|
||||
+
|
||||
+
|
||||
+/* Spitz/Akita UART ports */
|
||||
+
|
||||
+/* Fully Featured UART - connected to IOPORT connector */
|
||||
+#define SPITZ_GPIO_FFRXD (102) /* IOPORT has nRXD inverted levels */
|
||||
+#define SPITZ_GPIO_FFTXD (99) /* IOPORT has nTXD inverted levels */
|
||||
+#define SPITZ_GPIO_FFRTS (98)
|
||||
+#define SPITZ_GPIO_FFCTS (100)
|
||||
+#define SPITZ_GPIO_FFDTR (82)
|
||||
+#define SPITZ_GPIO_FFDSR (33)
|
||||
+
|
||||
+/* These UART GPIO pins are connected to Bluetooth
|
||||
+ * (only on Akita version with Bluetooth)
|
||||
+ * GPIO42_BTRXD
|
||||
+ * GPIO43_BTTXD
|
||||
+ * GPIO44_BTCTS
|
||||
+ * GPIO45_BTRTS
|
||||
+ */
|
||||
+
|
||||
+/* These UART GPIO pins are connected to IrDA:
|
||||
+ * GPIO46_STRXD
|
||||
+ * GPIO47_STTXD
|
||||
+ */
|
||||
+
|
||||
/* Spitz/Akita Keyboard Definitions */
|
||||
|
||||
-#define SPITZ_KEY_STROBE_NUM (11)
|
||||
-#define SPITZ_KEY_SENSE_NUM (7)
|
||||
-#define SPITZ_GPIO_G0_STROBE_BIT 0x0f800000
|
||||
-#define SPITZ_GPIO_G1_STROBE_BIT 0x00100000
|
||||
-#define SPITZ_GPIO_G2_STROBE_BIT 0x01000000
|
||||
-#define SPITZ_GPIO_G3_STROBE_BIT 0x00041880
|
||||
-#define SPITZ_GPIO_G0_SENSE_BIT 0x00021000
|
||||
-#define SPITZ_GPIO_G1_SENSE_BIT 0x000000d4
|
||||
-#define SPITZ_GPIO_G2_SENSE_BIT 0x08000000
|
||||
-#define SPITZ_GPIO_G3_SENSE_BIT 0x00000000
|
||||
-
|
||||
-#define SPITZ_GPIO_KEY_STROBE0 88
|
||||
-#define SPITZ_GPIO_KEY_STROBE1 23
|
||||
-#define SPITZ_GPIO_KEY_STROBE2 24
|
||||
-#define SPITZ_GPIO_KEY_STROBE3 25
|
||||
-#define SPITZ_GPIO_KEY_STROBE4 26
|
||||
-#define SPITZ_GPIO_KEY_STROBE5 27
|
||||
-#define SPITZ_GPIO_KEY_STROBE6 52
|
||||
-#define SPITZ_GPIO_KEY_STROBE7 103
|
||||
-#define SPITZ_GPIO_KEY_STROBE8 107
|
||||
-#define SPITZ_GPIO_KEY_STROBE9 108
|
||||
-#define SPITZ_GPIO_KEY_STROBE10 114
|
||||
-
|
||||
-#define SPITZ_GPIO_KEY_SENSE0 12
|
||||
-#define SPITZ_GPIO_KEY_SENSE1 17
|
||||
-#define SPITZ_GPIO_KEY_SENSE2 91
|
||||
-#define SPITZ_GPIO_KEY_SENSE3 34
|
||||
-#define SPITZ_GPIO_KEY_SENSE4 36
|
||||
-#define SPITZ_GPIO_KEY_SENSE5 38
|
||||
-#define SPITZ_GPIO_KEY_SENSE6 39
|
||||
+#define SPITZ_KEY_STROBE_NUM (11)
|
||||
+#define SPITZ_KEY_SENSE_NUM (7)
|
||||
+#define SPITZ_GPIO_G0_STROBE_BIT 0x0f800000
|
||||
+#define SPITZ_GPIO_G1_STROBE_BIT 0x00100000
|
||||
+#define SPITZ_GPIO_G2_STROBE_BIT 0x01000000
|
||||
+#define SPITZ_GPIO_G3_STROBE_BIT 0x00041880
|
||||
+#define SPITZ_GPIO_G0_SENSE_BIT 0x00021000
|
||||
+#define SPITZ_GPIO_G1_SENSE_BIT 0x000000d4
|
||||
+#define SPITZ_GPIO_G2_SENSE_BIT 0x08000000
|
||||
+#define SPITZ_GPIO_G3_SENSE_BIT 0x00000000
|
||||
+#define SPITZ_GPIO_KEY_STROBE0 (88)
|
||||
+#define SPITZ_GPIO_KEY_STROBE1 (23)
|
||||
+#define SPITZ_GPIO_KEY_STROBE2 (24)
|
||||
+#define SPITZ_GPIO_KEY_STROBE3 (25)
|
||||
+#define SPITZ_GPIO_KEY_STROBE4 (26)
|
||||
+#define SPITZ_GPIO_KEY_STROBE5 (27)
|
||||
+#define SPITZ_GPIO_KEY_STROBE6 (52)
|
||||
+#define SPITZ_GPIO_KEY_STROBE7 (103)
|
||||
+#define SPITZ_GPIO_KEY_STROBE8 (107)
|
||||
+#define SPITZ_GPIO_KEY_STROBE9 (108)
|
||||
+#define SPITZ_GPIO_KEY_STROBE10 (114)
|
||||
+#define SPITZ_GPIO_KEY_SENSE0 (12)
|
||||
+#define SPITZ_GPIO_KEY_SENSE1 (17)
|
||||
+#define SPITZ_GPIO_KEY_SENSE2 (91)
|
||||
+#define SPITZ_GPIO_KEY_SENSE3 (34)
|
||||
+#define SPITZ_GPIO_KEY_SENSE4 (36)
|
||||
+#define SPITZ_GPIO_KEY_SENSE5 (38)
|
||||
+#define SPITZ_GPIO_KEY_SENSE6 (39)
|
||||
+
|
||||
+#define SPITZ_GPIO_SWA (97) /* Keyboard Interrupt A */
|
||||
+#define SPITZ_GPIO_SWB (96) /* Keyboard Interrupt B */
|
||||
+#define SPITZ_GPIO_ON_KEY (95) /* Power On Key */
|
||||
|
||||
|
||||
-/* Spitz Scoop Device (No. 1) GPIOs */
|
||||
+/* Spitz/Akita Scoop Device (No. 1) GPIOs */
|
||||
/* Suspend States in comments */
|
||||
-#define SPITZ_SCP_LED_GREEN SCOOP_GPCR_PA11 /* Keep */
|
||||
-#define SPITZ_SCP_JK_B SCOOP_GPCR_PA12 /* Keep */
|
||||
-#define SPITZ_SCP_CHRG_ON SCOOP_GPCR_PA13 /* Keep */
|
||||
-#define SPITZ_SCP_MUTE_L SCOOP_GPCR_PA14 /* Low */
|
||||
-#define SPITZ_SCP_MUTE_R SCOOP_GPCR_PA15 /* Low */
|
||||
-#define SPITZ_SCP_CF_POWER SCOOP_GPCR_PA16 /* Keep */
|
||||
-#define SPITZ_SCP_LED_ORANGE SCOOP_GPCR_PA17 /* Keep */
|
||||
-#define SPITZ_SCP_JK_A SCOOP_GPCR_PA18 /* Low */
|
||||
-#define SPITZ_SCP_ADC_TEMP_ON SCOOP_GPCR_PA19 /* Low */
|
||||
+#define SPITZ_SCP_LED_GREEN SCOOP_GPCR_PA11 /* Green LED, Keep */
|
||||
+#define SPITZ_SCP_JK_B SCOOP_GPCR_PA12 /* Fast Charge On, Keep */
|
||||
+#define SPITZ_SCP_CHRG_ON SCOOP_GPCR_PA13 /* Charge On, Keep */
|
||||
+#define SPITZ_SCP_MUTE_L SCOOP_GPCR_PA14 /* Extra Mute Left, Low */
|
||||
+#define SPITZ_SCP_MUTE_R SCOOP_GPCR_PA15 /* Extra Mute Right, Low */
|
||||
+#define SPITZ_SCP_CF_POWER SCOOP_GPCR_PA16 /* CF+SD Power Circuit, Keep */
|
||||
+#define SPITZ_SCP_LED_ORANGE SCOOP_GPCR_PA17 /* Orange LED, Keep */
|
||||
+#define SPITZ_SCP_JK_A SCOOP_GPCR_PA18 /* Dummy Load, Low */
|
||||
+#define SPITZ_SCP_ADC_TEMP_ON SCOOP_GPCR_PA19 /* Battery Sensor On, Low */
|
||||
|
||||
#define SPITZ_SCP_IO_DIR (SPITZ_SCP_LED_GREEN | SPITZ_SCP_JK_B | SPITZ_SCP_CHRG_ON | \
|
||||
- SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | SPITZ_SCP_LED_ORANGE | \
|
||||
- SPITZ_SCP_CF_POWER | SPITZ_SCP_JK_A | SPITZ_SCP_ADC_TEMP_ON)
|
||||
+ SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | SPITZ_SCP_LED_ORANGE | \
|
||||
+ SPITZ_SCP_CF_POWER | SPITZ_SCP_JK_A | SPITZ_SCP_ADC_TEMP_ON)
|
||||
#define SPITZ_SCP_IO_OUT (SPITZ_SCP_CHRG_ON | SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R)
|
||||
#define SPITZ_SCP_SUS_CLR (SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | SPITZ_SCP_JK_A | SPITZ_SCP_ADC_TEMP_ON)
|
||||
#define SPITZ_SCP_SUS_SET 0
|
||||
|
||||
/* Spitz Scoop Device (No. 2) GPIOs */
|
||||
-/* Suspend States in comments */
|
||||
-#define SPITZ_SCP2_IR_ON SCOOP_GPCR_PA11 /* High */
|
||||
-#define SPITZ_SCP2_AKIN_PULLUP SCOOP_GPCR_PA12 /* Keep */
|
||||
-#define SPITZ_SCP2_RESERVED_1 SCOOP_GPCR_PA13 /* High */
|
||||
-#define SPITZ_SCP2_RESERVED_2 SCOOP_GPCR_PA14 /* Low */
|
||||
-#define SPITZ_SCP2_RESERVED_3 SCOOP_GPCR_PA15 /* Low */
|
||||
-#define SPITZ_SCP2_RESERVED_4 SCOOP_GPCR_PA16 /* Low */
|
||||
-#define SPITZ_SCP2_BACKLIGHT_CONT SCOOP_GPCR_PA17 /* Low */
|
||||
-#define SPITZ_SCP2_BACKLIGHT_ON SCOOP_GPCR_PA18 /* Low */
|
||||
-#define SPITZ_SCP2_MIC_BIAS SCOOP_GPCR_PA19 /* Low */
|
||||
+/* Suspend States in comments
|
||||
+ * Spitz only, Akita uses corresponding AKITA_IOEXP_ */
|
||||
+#define SPITZ_SCP2_IR_ON SCOOP_GPCR_PA11 /* IrDA On, High */
|
||||
+#define SPITZ_SCP2_AKIN_PULLUP SCOOP_GPCR_PA12 /* Pull-Up for Remote, Keep */
|
||||
+#define SPITZ_SCP2_RESERVED_1 SCOOP_GPCR_PA13 /* High */
|
||||
+#define SPITZ_SCP2_RESERVED_2 SCOOP_GPCR_PA14 /* Low */
|
||||
+#define SPITZ_SCP2_RESERVED_3 SCOOP_GPCR_PA15 /* Low */
|
||||
+#define SPITZ_SCP2_RESERVED_4 SCOOP_GPCR_PA16 /* Low */
|
||||
+#define SPITZ_SCP2_BACKLIGHT_CONT SCOOP_GPCR_PA17 /* Backlight Control, Low */
|
||||
+#define SPITZ_SCP2_BACKLIGHT_ON SCOOP_GPCR_PA18 /* Backlight On, Low */
|
||||
+#define SPITZ_SCP2_MIC_BIAS SCOOP_GPCR_PA19 /* Mic Bias On, Low */
|
||||
|
||||
#define SPITZ_SCP2_IO_DIR (SPITZ_SCP2_IR_ON | SPITZ_SCP2_AKIN_PULLUP | SPITZ_SCP2_RESERVED_1 | \
|
||||
- SPITZ_SCP2_RESERVED_2 | SPITZ_SCP2_RESERVED_3 | SPITZ_SCP2_RESERVED_4 | \
|
||||
- SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS)
|
||||
+ SPITZ_SCP2_RESERVED_2 | SPITZ_SCP2_RESERVED_3 | SPITZ_SCP2_RESERVED_4 | \
|
||||
+ SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS)
|
||||
|
||||
#define SPITZ_SCP2_IO_OUT (SPITZ_SCP2_IR_ON | SPITZ_SCP2_AKIN_PULLUP | SPITZ_SCP2_RESERVED_1)
|
||||
#define SPITZ_SCP2_SUS_CLR (SPITZ_SCP2_RESERVED_2 | SPITZ_SCP2_RESERVED_3 | SPITZ_SCP2_RESERVED_4 | \
|
||||
- SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS)
|
||||
+ SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS)
|
||||
#define SPITZ_SCP2_SUS_SET (SPITZ_SCP2_IR_ON | SPITZ_SCP2_RESERVED_1)
|
||||
|
||||
|
||||
-/* Spitz IRQ Definitions */
|
||||
+/* Spitz/Akita IRQ Definitions */
|
||||
|
||||
-#define SPITZ_IRQ_GPIO_KEY_INT IRQ_GPIO(SPITZ_GPIO_KEY_INT)
|
||||
-#define SPITZ_IRQ_GPIO_AC_IN IRQ_GPIO(SPITZ_GPIO_AC_IN)
|
||||
-#define SPITZ_IRQ_GPIO_AK_INT IRQ_GPIO(SPITZ_GPIO_AK_INT)
|
||||
-#define SPITZ_IRQ_GPIO_HP_IN IRQ_GPIO(SPITZ_GPIO_HP_IN)
|
||||
-#define SPITZ_IRQ_GPIO_TP_INT IRQ_GPIO(SPITZ_GPIO_TP_INT)
|
||||
-#define SPITZ_IRQ_GPIO_SYNC IRQ_GPIO(SPITZ_GPIO_SYNC)
|
||||
-#define SPITZ_IRQ_GPIO_ON_KEY IRQ_GPIO(SPITZ_GPIO_ON_KEY)
|
||||
-#define SPITZ_IRQ_GPIO_SWA IRQ_GPIO(SPITZ_GPIO_SWA)
|
||||
-#define SPITZ_IRQ_GPIO_SWB IRQ_GPIO(SPITZ_GPIO_SWB)
|
||||
+#define SPITZ_IRQ_GPIO_KEY_INT IRQ_GPIO(SPITZ_GPIO_KEY_INT)
|
||||
+#define SPITZ_IRQ_GPIO_AC_IN IRQ_GPIO(SPITZ_GPIO_AC_IN)
|
||||
+#define SPITZ_IRQ_GPIO_AK_INT IRQ_GPIO(SPITZ_GPIO_AK_INT)
|
||||
+#define SPITZ_IRQ_GPIO_HP_IN IRQ_GPIO(SPITZ_GPIO_HP_IN)
|
||||
+#define SPITZ_IRQ_GPIO_TP_INT IRQ_GPIO(SPITZ_GPIO_TP_INT)
|
||||
+#define SPITZ_IRQ_GPIO_SYNC IRQ_GPIO(SPITZ_GPIO_SYNC)
|
||||
+#define SPITZ_IRQ_GPIO_ON_KEY IRQ_GPIO(SPITZ_GPIO_ON_KEY)
|
||||
+#define SPITZ_IRQ_GPIO_SWA IRQ_GPIO(SPITZ_GPIO_SWA)
|
||||
+#define SPITZ_IRQ_GPIO_SWB IRQ_GPIO(SPITZ_GPIO_SWB)
|
||||
#define SPITZ_IRQ_GPIO_BAT_COVER IRQ_GPIO(SPITZ_GPIO_BAT_COVER)
|
||||
#define SPITZ_IRQ_GPIO_FATAL_BAT IRQ_GPIO(SPITZ_GPIO_FATAL_BAT)
|
||||
-#define SPITZ_IRQ_GPIO_CO IRQ_GPIO(SPITZ_GPIO_CO)
|
||||
-#define SPITZ_IRQ_GPIO_CF_IRQ IRQ_GPIO(SPITZ_GPIO_CF_IRQ)
|
||||
-#define SPITZ_IRQ_GPIO_CF_CD IRQ_GPIO(SPITZ_GPIO_CF_CD)
|
||||
-#define SPITZ_IRQ_GPIO_CF2_IRQ IRQ_GPIO(SPITZ_GPIO_CF2_IRQ)
|
||||
-#define SPITZ_IRQ_GPIO_nSD_INT IRQ_GPIO(SPITZ_GPIO_nSD_INT)
|
||||
+#define SPITZ_IRQ_GPIO_CF_IRQ IRQ_GPIO(SPITZ_GPIO_CF_IRQ)
|
||||
+#define SPITZ_IRQ_GPIO_CF_CD IRQ_GPIO(SPITZ_GPIO_CF_CD)
|
||||
+#define SPITZ_IRQ_GPIO_CF2_IRQ IRQ_GPIO(SPITZ_GPIO_CF2_IRQ)
|
||||
+#define SPITZ_IRQ_GPIO_nSD_INT IRQ_GPIO(SPITZ_GPIO_nSD_INT)
|
||||
#define SPITZ_IRQ_GPIO_nSD_DETECT IRQ_GPIO(SPITZ_GPIO_nSD_DETECT)
|
||||
|
||||
/*
|
||||
@@ -156,3 +274,5 @@
|
||||
extern struct platform_device spitzscoop2_device;
|
||||
extern struct platform_device spitzssp_device;
|
||||
extern struct sharpsl_charger_machinfo spitz_pm_machinfo;
|
||||
+
|
||||
+#endif
|
||||
Index: linux-2.6.24/sound/arm/pxa2xx-ac97.c
|
||||
===================================================================
|
||||
--- linux-2.6.24.orig/sound/arm/pxa2xx-ac97.c 2008-01-24 22:58:37.000000000 +0000
|
||||
+++ linux-2.6.24/sound/arm/pxa2xx-ac97.c 2008-02-13 13:49:22.000000000 +0000
|
||||
@@ -133,10 +133,10 @@
|
||||
#ifdef CONFIG_PXA27x
|
||||
/* warm reset broken on Bulverde,
|
||||
so manually keep AC97 reset high */
|
||||
- pxa_gpio_mode(113 | GPIO_OUT | GPIO_DFLT_HIGH);
|
||||
+ pxa_gpio_mode(GPIO113_AC97_RESET_N | GPIO_OUT | GPIO_DFLT_HIGH);
|
||||
udelay(10);
|
||||
GCR |= GCR_WARM_RST;
|
||||
- pxa_gpio_mode(113 | GPIO_ALT_FN_2_OUT);
|
||||
+ pxa_gpio_mode(GPIO113_AC97_RESET_N_MD);
|
||||
udelay(500);
|
||||
#else
|
||||
GCR |= GCR_WARM_RST|GCR_PRIRDY_IEN|GCR_SECRDY_IEN;
|
||||
@@ -335,7 +335,7 @@
|
||||
pxa_gpio_mode(GPIO29_SDATA_IN_AC97_MD);
|
||||
#ifdef CONFIG_PXA27x
|
||||
/* Use GPIO 113 as AC97 Reset on Bulverde */
|
||||
- pxa_gpio_mode(113 | GPIO_ALT_FN_2_OUT);
|
||||
+ pxa_gpio_mode(GPIO113_AC97_RESET_N_MD);
|
||||
#endif
|
||||
pxa_set_cken(CKEN_AC97, 1);
|
||||
|
Loading…
Reference in New Issue