diff options
author | Richard Purdie <richard@openedhand.com> | 2008-06-01 22:58:34 +0000 |
---|---|---|
committer | Richard Purdie <richard@openedhand.com> | 2008-06-01 22:58:34 +0000 |
commit | 47a464d97b88104c616d6ffb4a74245e43060f86 (patch) | |
tree | d28257ddc4e63b19b7c301ed66885d4fba9284ee | |
parent | ecec2e582c809368f6e53ebf9c725195a7b80784 (diff) | |
download | poky-47a464d97b88104c616d6ffb4a74245e43060f86.tar.gz |
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
-rw-r--r-- | meta/packages/linux/linux-rp-2.6.24/htcuni.patch | 332 | ||||
-rw-r--r-- | meta/packages/linux/linux-rp-2.6.24/pxa27x-resume.patch | 41 | ||||
-rw-r--r-- | meta/packages/linux/linux-rp-2.6.24/pxa2xx_udc-clock.patch | 221 | ||||
-rw-r--r-- | meta/packages/linux/linux-rp-2.6.24/sharpsl-rc-r1.patch | 527 | ||||
-rw-r--r-- | meta/packages/linux/linux-rp-2.6.24/sharpsl-rc-r2.patch | 180 | ||||
-rw-r--r-- | meta/packages/linux/linux-rp-2.6.24/spitz_h_rewrite.patch | 497 |
6 files changed, 1628 insertions, 170 deletions
diff --git a/meta/packages/linux/linux-rp-2.6.24/htcuni.patch b/meta/packages/linux/linux-rp-2.6.24/htcuni.patch index f462650566..8448c4ec06 100644 --- a/meta/packages/linux/linux-rp-2.6.24/htcuni.patch +++ b/meta/packages/linux/linux-rp-2.6.24/htcuni.patch | |||
@@ -57,10 +57,10 @@ | |||
57 | include/linux/soc/tmio_mmc.h | 17 | 57 | include/linux/soc/tmio_mmc.h | 17 |
58 | 56 files changed, 7469 insertions(+), 1 deletion(-) | 58 | 56 files changed, 7469 insertions(+), 1 deletion(-) |
59 | 59 | ||
60 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/Makefile | 60 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/Makefile |
61 | =================================================================== | 61 | =================================================================== |
62 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 62 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
63 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/Makefile 2008-01-20 18:59:46.000000000 +0000 | 63 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/Makefile 2008-03-10 16:09:23.000000000 +0000 |
64 | @@ -0,0 +1,19 @@ | 64 | @@ -0,0 +1,19 @@ |
65 | +# | 65 | +# |
66 | +# Makefile for HTC Universal | 66 | +# Makefile for HTC Universal |
@@ -81,10 +81,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/Makefile | |||
81 | +obj-$(CONFIG_HTCUNIVERSAL_UDC) += htcuniversal_udc.o | 81 | +obj-$(CONFIG_HTCUNIVERSAL_UDC) += htcuniversal_udc.o |
82 | + | 82 | + |
83 | +obj-$(CONFIG_HTCUNIVERSAL_AK4641) += htcuniversal_ak4641.o | 83 | +obj-$(CONFIG_HTCUNIVERSAL_AK4641) += htcuniversal_ak4641.o |
84 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal.c | 84 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal.c |
85 | =================================================================== | 85 | =================================================================== |
86 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 86 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
87 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal.c 2008-01-20 18:59:46.000000000 +0000 | 87 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal.c 2008-03-10 16:09:23.000000000 +0000 |
88 | @@ -0,0 +1,468 @@ | 88 | @@ -0,0 +1,468 @@ |
89 | +/* | 89 | +/* |
90 | + * Hardware definitions for HTC Universal | 90 | + * Hardware definitions for HTC Universal |
@@ -554,10 +554,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal.c | |||
554 | + .init_machine = htcuniversal_init, | 554 | + .init_machine = htcuniversal_init, |
555 | + .timer = &pxa_timer, | 555 | + .timer = &pxa_timer, |
556 | +MACHINE_END | 556 | +MACHINE_END |
557 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.c | 557 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.c |
558 | =================================================================== | 558 | =================================================================== |
559 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 559 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
560 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.c 2008-01-20 18:59:46.000000000 +0000 | 560 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.c 2008-03-10 16:09:23.000000000 +0000 |
561 | @@ -0,0 +1,917 @@ | 561 | @@ -0,0 +1,917 @@ |
562 | +/* | 562 | +/* |
563 | + * Audio support for codec Asahi Kasei AK4641 | 563 | + * Audio support for codec Asahi Kasei AK4641 |
@@ -1476,10 +1476,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.c | |||
1476 | +MODULE_LICENSE("GPL"); | 1476 | +MODULE_LICENSE("GPL"); |
1477 | + | 1477 | + |
1478 | +/* end {{ Module }} */ | 1478 | +/* end {{ Module }} */ |
1479 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.h | 1479 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.h |
1480 | =================================================================== | 1480 | =================================================================== |
1481 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 1481 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1482 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.h 2008-01-20 18:59:46.000000000 +0000 | 1482 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.h 2008-03-10 16:09:23.000000000 +0000 |
1483 | @@ -0,0 +1,65 @@ | 1483 | @@ -0,0 +1,65 @@ |
1484 | +/* | 1484 | +/* |
1485 | + * Audio support for codec Asahi Kasei AK4641 | 1485 | + * Audio support for codec Asahi Kasei AK4641 |
@@ -1546,10 +1546,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ak4641.h | |||
1546 | +void snd_ak4641_hp_detected(struct snd_ak4641 *ak, int detected); /* atomic context */ | 1546 | +void snd_ak4641_hp_detected(struct snd_ak4641 *ak, int detected); /* atomic context */ |
1547 | + | 1547 | + |
1548 | +#endif /* __SOUND_AK4641_H */ | 1548 | +#endif /* __SOUND_AK4641_H */ |
1549 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_asic3_leds.c | 1549 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_asic3_leds.c |
1550 | =================================================================== | 1550 | =================================================================== |
1551 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 1551 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1552 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_asic3_leds.c 2008-01-20 18:59:46.000000000 +0000 | 1552 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_asic3_leds.c 2008-03-10 16:09:23.000000000 +0000 |
1553 | @@ -0,0 +1,143 @@ | 1553 | @@ -0,0 +1,143 @@ |
1554 | +/* | 1554 | +/* |
1555 | + * LEDs support for the HP iPaq hx4700 | 1555 | + * 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 | |||
1694 | +MODULE_AUTHOR("Anton Vorontsov <cbou@mail.ru>"); | 1694 | +MODULE_AUTHOR("Anton Vorontsov <cbou@mail.ru>"); |
1695 | +MODULE_DESCRIPTION("htcuniversal LEDs driver"); | 1695 | +MODULE_DESCRIPTION("htcuniversal LEDs driver"); |
1696 | +MODULE_LICENSE("GPL"); | 1696 | +MODULE_LICENSE("GPL"); |
1697 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bl.c | 1697 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_bl.c |
1698 | =================================================================== | 1698 | =================================================================== |
1699 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 1699 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1700 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bl.c 2008-01-20 18:59:46.000000000 +0000 | 1700 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_bl.c 2008-03-10 16:09:23.000000000 +0000 |
1701 | @@ -0,0 +1,61 @@ | 1701 | @@ -0,0 +1,61 @@ |
1702 | +/* | 1702 | +/* |
1703 | + * Use consistent with the GNU GPL is permitted, | 1703 | + * 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 | |||
1760 | +MODULE_AUTHOR("Paul Sokolovsky <pmiscml@gmail.com>"); | 1760 | +MODULE_AUTHOR("Paul Sokolovsky <pmiscml@gmail.com>"); |
1761 | +MODULE_DESCRIPTION("Backlight driver for HTC Universal"); | 1761 | +MODULE_DESCRIPTION("Backlight driver for HTC Universal"); |
1762 | +MODULE_LICENSE("GPL"); | 1762 | +MODULE_LICENSE("GPL"); |
1763 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.c | 1763 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.c |
1764 | =================================================================== | 1764 | =================================================================== |
1765 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 1765 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1766 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.c 2008-01-20 18:59:46.000000000 +0000 | 1766 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.c 2008-03-10 16:09:23.000000000 +0000 |
1767 | @@ -0,0 +1,135 @@ | 1767 | @@ -0,0 +1,135 @@ |
1768 | +/* Bluetooth interface driver for TI BRF6150 on HX4700 | 1768 | +/* Bluetooth interface driver for TI BRF6150 on HX4700 |
1769 | + * | 1769 | + * |
@@ -1900,10 +1900,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.c | |||
1900 | + | 1900 | + |
1901 | +/* vim600: set noexpandtab sw=8 ts=8 :*/ | 1901 | +/* vim600: set noexpandtab sw=8 ts=8 :*/ |
1902 | + | 1902 | + |
1903 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.h | 1903 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.h |
1904 | =================================================================== | 1904 | =================================================================== |
1905 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 1905 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1906 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.h 2008-01-20 18:59:46.000000000 +0000 | 1906 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_bt.h 2008-03-10 16:09:23.000000000 +0000 |
1907 | @@ -0,0 +1,17 @@ | 1907 | @@ -0,0 +1,17 @@ |
1908 | +/* | 1908 | +/* |
1909 | + * Bluetooth support file for calling bluetooth configuration functions | 1909 | + * 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 | |||
1922 | + | 1922 | + |
1923 | + | 1923 | + |
1924 | +#endif | 1924 | +#endif |
1925 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_buttons.c | 1925 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_buttons.c |
1926 | =================================================================== | 1926 | =================================================================== |
1927 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 1927 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1928 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_buttons.c 2008-01-20 18:59:46.000000000 +0000 | 1928 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_buttons.c 2008-03-10 16:09:23.000000000 +0000 |
1929 | @@ -0,0 +1,87 @@ | 1929 | @@ -0,0 +1,87 @@ |
1930 | +/* | 1930 | +/* |
1931 | + * Buttons driver for HTC Universal | 1931 | + * Buttons driver for HTC Universal |
@@ -2014,10 +2014,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_buttons.c | |||
2014 | +MODULE_AUTHOR ("Joshua Wise, Pawel Kolodziejski, Paul Sokolosvky"); | 2014 | +MODULE_AUTHOR ("Joshua Wise, Pawel Kolodziejski, Paul Sokolosvky"); |
2015 | +MODULE_DESCRIPTION ("Buttons support for HTC Universal"); | 2015 | +MODULE_DESCRIPTION ("Buttons support for HTC Universal"); |
2016 | +MODULE_LICENSE ("GPL"); | 2016 | +MODULE_LICENSE ("GPL"); |
2017 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c | 2017 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c |
2018 | =================================================================== | 2018 | =================================================================== |
2019 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 2019 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
2020 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c 2008-01-20 18:59:46.000000000 +0000 | 2020 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c 2008-03-10 16:09:23.000000000 +0000 |
2021 | @@ -0,0 +1,226 @@ | 2021 | @@ -0,0 +1,226 @@ |
2022 | +/* Core Hardware driver for Hx4700 (Serial, ASIC3, EGPIOs) | 2022 | +/* Core Hardware driver for Hx4700 (Serial, ASIC3, EGPIOs) |
2023 | + * | 2023 | + * |
@@ -2245,10 +2245,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_core.c | |||
2245 | +MODULE_LICENSE("GPL"); | 2245 | +MODULE_LICENSE("GPL"); |
2246 | + | 2246 | + |
2247 | +/* vim600: set noexpandtab sw=8 ts=8 :*/ | 2247 | +/* vim600: set noexpandtab sw=8 ts=8 :*/ |
2248 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_lcd.c | 2248 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_lcd.c |
2249 | =================================================================== | 2249 | =================================================================== |
2250 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 2250 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
2251 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_lcd.c 2008-01-20 18:59:46.000000000 +0000 | 2251 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_lcd.c 2008-03-10 16:09:23.000000000 +0000 |
2252 | @@ -0,0 +1,212 @@ | 2252 | @@ -0,0 +1,212 @@ |
2253 | +/* | 2253 | +/* |
2254 | + * Use consistent with the GNU GPL is permitted, | 2254 | + * 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 | |||
2462 | +MODULE_DESCRIPTION("Framebuffer driver for HTC Universal"); | 2462 | +MODULE_DESCRIPTION("Framebuffer driver for HTC Universal"); |
2463 | +MODULE_LICENSE("GPL"); | 2463 | +MODULE_LICENSE("GPL"); |
2464 | + | 2464 | + |
2465 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.c | 2465 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.c |
2466 | =================================================================== | 2466 | =================================================================== |
2467 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 2467 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
2468 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.c 2008-01-20 18:59:46.000000000 +0000 | 2468 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.c 2008-03-10 16:09:23.000000000 +0000 |
2469 | @@ -0,0 +1,167 @@ | 2469 | @@ -0,0 +1,167 @@ |
2470 | + | 2470 | + |
2471 | +/* Phone interface driver for Qualcomm MSM6250 on HTC Universal | 2471 | +/* 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 | |||
2634 | +MODULE_LICENSE("GPL"); | 2634 | +MODULE_LICENSE("GPL"); |
2635 | + | 2635 | + |
2636 | +/* vim600: set noexpandtab sw=8 ts=8 :*/ | 2636 | +/* vim600: set noexpandtab sw=8 ts=8 :*/ |
2637 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.h | 2637 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.h |
2638 | =================================================================== | 2638 | =================================================================== |
2639 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 2639 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
2640 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.h 2008-01-20 18:59:46.000000000 +0000 | 2640 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_phone.h 2008-03-10 16:09:23.000000000 +0000 |
2641 | @@ -0,0 +1,16 @@ | 2641 | @@ -0,0 +1,16 @@ |
2642 | +/* | 2642 | +/* |
2643 | + * Bluetooth support file for calling bluetooth configuration functions | 2643 | + * 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 | |||
2655 | +}; | 2655 | +}; |
2656 | + | 2656 | + |
2657 | +#endif | 2657 | +#endif |
2658 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_pm.c | 2658 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_pm.c |
2659 | =================================================================== | 2659 | =================================================================== |
2660 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 2660 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
2661 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_pm.c 2008-01-20 18:59:46.000000000 +0000 | 2661 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_pm.c 2008-03-10 16:09:23.000000000 +0000 |
2662 | @@ -0,0 +1,69 @@ | 2662 | @@ -0,0 +1,69 @@ |
2663 | +/* | 2663 | +/* |
2664 | + * MyPal 716 power management support for the original HTC IPL in DoC G3 | 2664 | + * 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 | |||
2729 | + pxa_pm_set_ll_ops(&htcuniversal_ll_pm_ops); | 2729 | + pxa_pm_set_ll_ops(&htcuniversal_ll_pm_ops); |
2730 | +} | 2730 | +} |
2731 | +#endif /* CONFIG_PM */ | 2731 | +#endif /* CONFIG_PM */ |
2732 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_power2.c | 2732 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_power2.c |
2733 | =================================================================== | 2733 | =================================================================== |
2734 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 2734 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
2735 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_power2.c 2008-01-20 18:59:46.000000000 +0000 | 2735 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_power2.c 2008-03-10 16:09:23.000000000 +0000 |
2736 | @@ -0,0 +1,97 @@ | 2736 | @@ -0,0 +1,97 @@ |
2737 | +/* | 2737 | +/* |
2738 | + * pda_power driver for HTC Universal | 2738 | + * pda_power driver for HTC Universal |
@@ -2831,10 +2831,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_power2.c | |||
2831 | + | 2831 | + |
2832 | +MODULE_DESCRIPTION("Power driver for HTC Universal"); | 2832 | +MODULE_DESCRIPTION("Power driver for HTC Universal"); |
2833 | +MODULE_LICENSE("GPL"); | 2833 | +MODULE_LICENSE("GPL"); |
2834 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c | 2834 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c |
2835 | =================================================================== | 2835 | =================================================================== |
2836 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 2836 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
2837 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c 2008-01-20 18:59:46.000000000 +0000 | 2837 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c 2008-03-10 16:09:23.000000000 +0000 |
2838 | @@ -0,0 +1,490 @@ | 2838 | @@ -0,0 +1,490 @@ |
2839 | +/* Touch screen driver for the TI something-or-other | 2839 | +/* Touch screen driver for the TI something-or-other |
2840 | + * | 2840 | + * |
@@ -3326,10 +3326,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_ts2.c | |||
3326 | +MODULE_LICENSE("GPL"); | 3326 | +MODULE_LICENSE("GPL"); |
3327 | +MODULE_AUTHOR("Aric Blumer, SDG Systems, LLC"); | 3327 | +MODULE_AUTHOR("Aric Blumer, SDG Systems, LLC"); |
3328 | +MODULE_DESCRIPTION("HTC Universal Touch Screen Driver"); | 3328 | +MODULE_DESCRIPTION("HTC Universal Touch Screen Driver"); |
3329 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_udc.c | 3329 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_udc.c |
3330 | =================================================================== | 3330 | =================================================================== |
3331 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 3331 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
3332 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_udc.c 2008-01-20 18:59:46.000000000 +0000 | 3332 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/htcuniversal_udc.c 2008-03-10 16:09:23.000000000 +0000 |
3333 | @@ -0,0 +1,71 @@ | 3333 | @@ -0,0 +1,71 @@ |
3334 | + | 3334 | + |
3335 | +/* | 3335 | +/* |
@@ -3402,10 +3402,10 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/htcuniversal_udc.c | |||
3402 | + | 3402 | + |
3403 | +module_init(htcuniversal_udc_init); | 3403 | +module_init(htcuniversal_udc_init); |
3404 | +MODULE_LICENSE("GPL"); | 3404 | +MODULE_LICENSE("GPL"); |
3405 | Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/tsc2046_ts.h | 3405 | Index: linux-2.6.24/arch/arm/mach-pxa/htcuniversal/tsc2046_ts.h |
3406 | =================================================================== | 3406 | =================================================================== |
3407 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 3407 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
3408 | +++ linux-2.6.23/arch/arm/mach-pxa/htcuniversal/tsc2046_ts.h 2008-01-20 18:59:46.000000000 +0000 | 3408 | +++ linux-2.6.24/arch/arm/mach-pxa/htcuniversal/tsc2046_ts.h 2008-03-10 16:09:23.000000000 +0000 |
3409 | @@ -0,0 +1,20 @@ | 3409 | @@ -0,0 +1,20 @@ |
3410 | +/* | 3410 | +/* |
3411 | + * temporary TSC2046 touchscreen hack | 3411 | + * temporary TSC2046 touchscreen hack |
@@ -3427,13 +3427,13 @@ Index: linux-2.6.23/arch/arm/mach-pxa/htcuniversal/tsc2046_ts.h | |||
3427 | +#define TSC2046_SAMPLE_Y 0x90 | 3427 | +#define TSC2046_SAMPLE_Y 0x90 |
3428 | + | 3428 | + |
3429 | +#endif | 3429 | +#endif |
3430 | Index: linux-2.6.23/arch/arm/mach-pxa/Kconfig | 3430 | Index: linux-2.6.24/arch/arm/mach-pxa/Kconfig |
3431 | =================================================================== | 3431 | =================================================================== |
3432 | --- linux-2.6.23.orig/arch/arm/mach-pxa/Kconfig 2008-01-20 18:59:41.000000000 +0000 | 3432 | --- linux-2.6.24.orig/arch/arm/mach-pxa/Kconfig 2008-03-10 16:08:01.000000000 +0000 |
3433 | +++ linux-2.6.23/arch/arm/mach-pxa/Kconfig 2008-01-20 18:59:46.000000000 +0000 | 3433 | +++ linux-2.6.24/arch/arm/mach-pxa/Kconfig 2008-03-10 16:09:23.000000000 +0000 |
3434 | @@ -92,6 +92,14 @@ config MACH_HX2750 | 3434 | @@ -92,6 +92,14 @@ |
3435 | help | 3435 | bool "Sharp PXA270 models (SL-Cxx00)" |
3436 | This enables support for the HP iPAQ HX2750 handheld. | 3436 | select PXA27x |
3437 | 3437 | ||
3438 | +config MACH_HTCUNIVERSAL | 3438 | +config MACH_HTCUNIVERSAL |
3439 | + bool "HTC Universal" | 3439 | + bool "HTC Universal" |
@@ -3446,7 +3446,7 @@ Index: linux-2.6.23/arch/arm/mach-pxa/Kconfig | |||
3446 | endchoice | 3446 | endchoice |
3447 | 3447 | ||
3448 | endif | 3448 | endif |
3449 | @@ -111,6 +119,86 @@ endchoice | 3449 | @@ -111,6 +119,86 @@ |
3450 | 3450 | ||
3451 | endif | 3451 | endif |
3452 | 3452 | ||
@@ -3533,16 +3533,16 @@ Index: linux-2.6.23/arch/arm/mach-pxa/Kconfig | |||
3533 | endmenu | 3533 | endmenu |
3534 | 3534 | ||
3535 | config MACH_POODLE | 3535 | config MACH_POODLE |
3536 | @@ -196,4 +284,3 @@ config PXA_KEYS | 3536 | @@ -196,4 +284,3 @@ |
3537 | depends on (PXA25x || PXA27x) && INPUT | 3537 | depends on (PXA25x || PXA27x) && INPUT |
3538 | 3538 | ||
3539 | endif | 3539 | endif |
3540 | - | 3540 | - |
3541 | Index: linux-2.6.23/arch/arm/mach-pxa/Makefile | 3541 | Index: linux-2.6.24/arch/arm/mach-pxa/Makefile |
3542 | =================================================================== | 3542 | =================================================================== |
3543 | --- linux-2.6.23.orig/arch/arm/mach-pxa/Makefile 2008-01-20 18:59:41.000000000 +0000 | 3543 | --- linux-2.6.24.orig/arch/arm/mach-pxa/Makefile 2008-03-10 16:08:01.000000000 +0000 |
3544 | +++ linux-2.6.23/arch/arm/mach-pxa/Makefile 2008-01-20 18:59:46.000000000 +0000 | 3544 | +++ linux-2.6.24/arch/arm/mach-pxa/Makefile 2008-03-10 16:09:23.000000000 +0000 |
3545 | @@ -23,6 +23,7 @@ obj-$(CONFIG_MACH_POODLE) += poodle.o co | 3545 | @@ -23,6 +23,7 @@ |
3546 | obj-$(CONFIG_MACH_TOSA) += tosa.o | 3546 | obj-$(CONFIG_MACH_TOSA) += tosa.o |
3547 | obj-$(CONFIG_MACH_EM_X270) += em-x270.o | 3547 | obj-$(CONFIG_MACH_EM_X270) += em-x270.o |
3548 | obj-$(CONFIG_MACH_HX2750) += hx2750.o hx2750_test.o | 3548 | obj-$(CONFIG_MACH_HX2750) += hx2750.o hx2750_test.o |
@@ -3550,11 +3550,11 @@ Index: linux-2.6.23/arch/arm/mach-pxa/Makefile | |||
3550 | 3550 | ||
3551 | ifeq ($(CONFIG_MACH_ZYLONITE),y) | 3551 | ifeq ($(CONFIG_MACH_ZYLONITE),y) |
3552 | obj-y += zylonite.o | 3552 | obj-y += zylonite.o |
3553 | Index: linux-2.6.23/drivers/leds/Kconfig | 3553 | Index: linux-2.6.24/drivers/leds/Kconfig |
3554 | =================================================================== | 3554 | =================================================================== |
3555 | --- linux-2.6.23.orig/drivers/leds/Kconfig 2008-01-20 18:59:17.000000000 +0000 | 3555 | --- linux-2.6.24.orig/drivers/leds/Kconfig 2008-01-24 22:58:37.000000000 +0000 |
3556 | +++ linux-2.6.23/drivers/leds/Kconfig 2008-01-20 18:59:46.000000000 +0000 | 3556 | +++ linux-2.6.24/drivers/leds/Kconfig 2008-03-10 16:09:23.000000000 +0000 |
3557 | @@ -114,6 +114,13 @@ config LEDS_CM_X270 | 3557 | @@ -114,6 +114,13 @@ |
3558 | help | 3558 | help |
3559 | This option enables support for the CM-X270 LEDs. | 3559 | This option enables support for the CM-X270 LEDs. |
3560 | 3560 | ||
@@ -3568,10 +3568,10 @@ Index: linux-2.6.23/drivers/leds/Kconfig | |||
3568 | comment "LED Triggers" | 3568 | comment "LED Triggers" |
3569 | 3569 | ||
3570 | config LEDS_TRIGGERS | 3570 | config LEDS_TRIGGERS |
3571 | Index: linux-2.6.23/drivers/leds/leds-asic3.c | 3571 | Index: linux-2.6.24/drivers/leds/leds-asic3.c |
3572 | =================================================================== | 3572 | =================================================================== |
3573 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 3573 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
3574 | +++ linux-2.6.23/drivers/leds/leds-asic3.c 2008-01-20 18:59:46.000000000 +0000 | 3574 | +++ linux-2.6.24/drivers/leds/leds-asic3.c 2008-03-10 16:09:23.000000000 +0000 |
3575 | @@ -0,0 +1,189 @@ | 3575 | @@ -0,0 +1,189 @@ |
3576 | +/* | 3576 | +/* |
3577 | + * LEDs support for HTC ASIC3 devices. | 3577 | + * LEDs support for HTC ASIC3 devices. |
@@ -3762,11 +3762,11 @@ Index: linux-2.6.23/drivers/leds/leds-asic3.c | |||
3762 | +MODULE_AUTHOR("Anton Vorontsov <cbou@mail.ru>"); | 3762 | +MODULE_AUTHOR("Anton Vorontsov <cbou@mail.ru>"); |
3763 | +MODULE_DESCRIPTION("HTC ASIC3 LEDs driver"); | 3763 | +MODULE_DESCRIPTION("HTC ASIC3 LEDs driver"); |
3764 | +MODULE_LICENSE("GPL"); | 3764 | +MODULE_LICENSE("GPL"); |
3765 | Index: linux-2.6.23/drivers/mfd/Kconfig | 3765 | Index: linux-2.6.24/drivers/mfd/Kconfig |
3766 | =================================================================== | 3766 | =================================================================== |
3767 | --- linux-2.6.23.orig/drivers/mfd/Kconfig 2008-01-20 18:59:38.000000000 +0000 | 3767 | --- linux-2.6.24.orig/drivers/mfd/Kconfig 2008-03-10 16:07:51.000000000 +0000 |
3768 | +++ linux-2.6.23/drivers/mfd/Kconfig 2008-01-20 18:59:46.000000000 +0000 | 3768 | +++ linux-2.6.24/drivers/mfd/Kconfig 2008-03-10 16:09:23.000000000 +0000 |
3769 | @@ -21,6 +21,16 @@ config MFD_TSC2101 | 3769 | @@ -21,6 +21,16 @@ |
3770 | help | 3770 | help |
3771 | Support for TI TSC2101 Touchscreen and Audio Codec | 3771 | Support for TI TSC2101 Touchscreen and Audio Codec |
3772 | 3772 | ||
@@ -3783,10 +3783,10 @@ Index: linux-2.6.23/drivers/mfd/Kconfig | |||
3783 | endmenu | 3783 | endmenu |
3784 | 3784 | ||
3785 | menu "Multimedia Capabilities Port drivers" | 3785 | menu "Multimedia Capabilities Port drivers" |
3786 | Index: linux-2.6.23/drivers/mfd/Makefile | 3786 | Index: linux-2.6.24/drivers/mfd/Makefile |
3787 | =================================================================== | 3787 | =================================================================== |
3788 | --- linux-2.6.23.orig/drivers/mfd/Makefile 2008-01-20 18:59:38.000000000 +0000 | 3788 | --- linux-2.6.24.orig/drivers/mfd/Makefile 2008-03-10 16:07:51.000000000 +0000 |
3789 | +++ linux-2.6.23/drivers/mfd/Makefile 2008-01-20 18:59:46.000000000 +0000 | 3789 | +++ linux-2.6.24/drivers/mfd/Makefile 2008-03-10 16:09:23.000000000 +0000 |
3790 | @@ -2,6 +2,8 @@ | 3790 | @@ -2,6 +2,8 @@ |
3791 | # Makefile for multifunction miscellaneous devices | 3791 | # Makefile for multifunction miscellaneous devices |
3792 | # | 3792 | # |
@@ -3796,10 +3796,10 @@ Index: linux-2.6.23/drivers/mfd/Makefile | |||
3796 | obj-$(CONFIG_MFD_SM501) += sm501.o | 3796 | obj-$(CONFIG_MFD_SM501) += sm501.o |
3797 | 3797 | ||
3798 | obj-$(CONFIG_MCP) += mcp-core.o | 3798 | obj-$(CONFIG_MCP) += mcp-core.o |
3799 | Index: linux-2.6.23/drivers/mfd/asic3_base.c | 3799 | Index: linux-2.6.24/drivers/mfd/asic3_base.c |
3800 | =================================================================== | 3800 | =================================================================== |
3801 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 3801 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
3802 | +++ linux-2.6.23/drivers/mfd/asic3_base.c 2008-01-20 18:59:46.000000000 +0000 | 3802 | +++ linux-2.6.24/drivers/mfd/asic3_base.c 2008-03-10 16:09:23.000000000 +0000 |
3803 | @@ -0,0 +1,1208 @@ | 3803 | @@ -0,0 +1,1208 @@ |
3804 | +/* | 3804 | +/* |
3805 | + * Driver interface to HTC "ASIC3" | 3805 | + * Driver interface to HTC "ASIC3" |
@@ -5009,10 +5009,10 @@ Index: linux-2.6.23/drivers/mfd/asic3_base.c | |||
5009 | +MODULE_AUTHOR("Phil Blundell <pb@handhelds.org>"); | 5009 | +MODULE_AUTHOR("Phil Blundell <pb@handhelds.org>"); |
5010 | +MODULE_DESCRIPTION("Core driver for HTC ASIC3"); | 5010 | +MODULE_DESCRIPTION("Core driver for HTC ASIC3"); |
5011 | +MODULE_SUPPORTED_DEVICE("asic3"); | 5011 | +MODULE_SUPPORTED_DEVICE("asic3"); |
5012 | Index: linux-2.6.23/drivers/mfd/soc-core.c | 5012 | Index: linux-2.6.24/drivers/mfd/soc-core.c |
5013 | =================================================================== | 5013 | =================================================================== |
5014 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 5014 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
5015 | +++ linux-2.6.23/drivers/mfd/soc-core.c 2008-01-20 18:59:46.000000000 +0000 | 5015 | +++ linux-2.6.24/drivers/mfd/soc-core.c 2008-03-10 16:09:23.000000000 +0000 |
5016 | @@ -0,0 +1,106 @@ | 5016 | @@ -0,0 +1,106 @@ |
5017 | +/* | 5017 | +/* |
5018 | + * drivers/soc/soc-core.c | 5018 | + * drivers/soc/soc-core.c |
@@ -5089,7 +5089,7 @@ Index: linux-2.6.23/drivers/mfd/soc-core.c | |||
5089 | + if (blk->res[r].flags & IORESOURCE_MEM) { | 5089 | + if (blk->res[r].flags & IORESOURCE_MEM) { |
5090 | + base = mem->start; | 5090 | + base = mem->start; |
5091 | + } else if ((blk->res[r].flags & IORESOURCE_IRQ) && | 5091 | + } else if ((blk->res[r].flags & IORESOURCE_IRQ) && |
5092 | + (blk->res[r].flags & IORESOURCE_IRQ_SOC_SUBDEVICE)) { | 5092 | + (blk->res[r].flags & IORESOURCE_IRQ_MFD_SUBDEVICE)) { |
5093 | + base = irq_base; | 5093 | + base = irq_base; |
5094 | + } | 5094 | + } |
5095 | + | 5095 | + |
@@ -5120,10 +5120,10 @@ Index: linux-2.6.23/drivers/mfd/soc-core.c | |||
5120 | + return NULL; | 5120 | + return NULL; |
5121 | +} | 5121 | +} |
5122 | +EXPORT_SYMBOL_GPL(soc_add_devices); | 5122 | +EXPORT_SYMBOL_GPL(soc_add_devices); |
5123 | Index: linux-2.6.23/drivers/mfd/soc-core.h | 5123 | Index: linux-2.6.24/drivers/mfd/soc-core.h |
5124 | =================================================================== | 5124 | =================================================================== |
5125 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 5125 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
5126 | +++ linux-2.6.23/drivers/mfd/soc-core.h 2008-01-20 18:59:46.000000000 +0000 | 5126 | +++ linux-2.6.24/drivers/mfd/soc-core.h 2008-03-10 16:09:23.000000000 +0000 |
5127 | @@ -0,0 +1,30 @@ | 5127 | @@ -0,0 +1,30 @@ |
5128 | +/* | 5128 | +/* |
5129 | + * drivers/soc/soc-core.h | 5129 | + * drivers/soc/soc-core.h |
@@ -5155,10 +5155,10 @@ Index: linux-2.6.23/drivers/mfd/soc-core.h | |||
5155 | + | 5155 | + |
5156 | +void soc_free_devices(struct platform_device *devices, int nr_devs); | 5156 | +void soc_free_devices(struct platform_device *devices, int nr_devs); |
5157 | + | 5157 | + |
5158 | Index: linux-2.6.23/include/asm-arm/arch-pxa/clock.h | 5158 | Index: linux-2.6.24/include/asm-arm/arch-pxa/clock.h |
5159 | =================================================================== | 5159 | =================================================================== |
5160 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 5160 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
5161 | +++ linux-2.6.23/include/asm-arm/arch-pxa/clock.h 2008-01-20 18:59:46.000000000 +0000 | 5161 | +++ linux-2.6.24/include/asm-arm/arch-pxa/clock.h 2008-03-10 16:09:23.000000000 +0000 |
5162 | @@ -0,0 +1,27 @@ | 5162 | @@ -0,0 +1,27 @@ |
5163 | +/* | 5163 | +/* |
5164 | + * linux/include/asm-arm/arch-pxa/clock.h | 5164 | + * linux/include/asm-arm/arch-pxa/clock.h |
@@ -5187,10 +5187,10 @@ Index: linux-2.6.23/include/asm-arm/arch-pxa/clock.h | |||
5187 | + | 5187 | + |
5188 | +extern int clk_register(struct clk *clk); | 5188 | +extern int clk_register(struct clk *clk); |
5189 | +extern void clk_unregister(struct clk *clk); | 5189 | +extern void clk_unregister(struct clk *clk); |
5190 | Index: linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal-asic.h | 5190 | Index: linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal-asic.h |
5191 | =================================================================== | 5191 | =================================================================== |
5192 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 5192 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
5193 | +++ linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal-asic.h 2008-01-20 18:59:46.000000000 +0000 | 5193 | +++ linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal-asic.h 2008-03-10 16:09:23.000000000 +0000 |
5194 | @@ -0,0 +1,213 @@ | 5194 | @@ -0,0 +1,213 @@ |
5195 | +/* | 5195 | +/* |
5196 | + * include/asm/arm/arch-pxa/htcuniversal-asic.h | 5196 | + * 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 | |||
5405 | + | 5405 | + |
5406 | +#endif /* _HTCUNIVERSAL_ASIC_H_ */ | 5406 | +#endif /* _HTCUNIVERSAL_ASIC_H_ */ |
5407 | + | 5407 | + |
5408 | Index: linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal-gpio.h | 5408 | Index: linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal-gpio.h |
5409 | =================================================================== | 5409 | =================================================================== |
5410 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 5410 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
5411 | +++ linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal-gpio.h 2008-01-20 18:59:46.000000000 +0000 | 5411 | +++ linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal-gpio.h 2008-03-10 16:09:23.000000000 +0000 |
5412 | @@ -0,0 +1,220 @@ | 5412 | @@ -0,0 +1,220 @@ |
5413 | +/* | 5413 | +/* |
5414 | + * include/asm-arm/arch-pxa/htcuniversal-gpio.h | 5414 | + * 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 | |||
5630 | +#define GPIO_NR_HTCUNIVERSAL_I2C_SDA_MD (118 | GPIO_ALT_FN_1_OUT) | 5630 | +#define GPIO_NR_HTCUNIVERSAL_I2C_SDA_MD (118 | GPIO_ALT_FN_1_OUT) |
5631 | + | 5631 | + |
5632 | +#endif /* _HTCUNIVERSAL_GPIO_H */ | 5632 | +#endif /* _HTCUNIVERSAL_GPIO_H */ |
5633 | Index: linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal-init.h | 5633 | Index: linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal-init.h |
5634 | =================================================================== | 5634 | =================================================================== |
5635 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 5635 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
5636 | +++ linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal-init.h 2008-01-20 18:59:46.000000000 +0000 | 5636 | +++ linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal-init.h 2008-03-10 16:09:23.000000000 +0000 |
5637 | @@ -0,0 +1,14 @@ | 5637 | @@ -0,0 +1,14 @@ |
5638 | +/* | 5638 | +/* |
5639 | + * include/asm/arm/arch-pxa/htcuniversal-init.h | 5639 | + * 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 | |||
5649 | + | 5649 | + |
5650 | +#endif /* _HTCUNIVERSAL_INIT_H_ */ | 5650 | +#endif /* _HTCUNIVERSAL_INIT_H_ */ |
5651 | + | 5651 | + |
5652 | Index: linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal.h | 5652 | Index: linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal.h |
5653 | =================================================================== | 5653 | =================================================================== |
5654 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 5654 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
5655 | +++ linux-2.6.23/include/asm-arm/arch-pxa/htcuniversal.h 2008-01-20 18:59:46.000000000 +0000 | 5655 | +++ linux-2.6.24/include/asm-arm/arch-pxa/htcuniversal.h 2008-03-10 16:09:23.000000000 +0000 |
5656 | @@ -0,0 +1,3 @@ | 5656 | @@ -0,0 +1,3 @@ |
5657 | +#include <asm/arch/irqs.h> | 5657 | +#include <asm/arch/irqs.h> |
5658 | + | 5658 | + |
5659 | +#define HTCUNIVERSAL_ASIC3_IRQ_BASE IRQ_BOARD_START | 5659 | +#define HTCUNIVERSAL_ASIC3_IRQ_BASE IRQ_BOARD_START |
5660 | Index: linux-2.6.23/include/asm-arm/arch-pxa/pxa-pm_ll.h | 5660 | Index: linux-2.6.24/include/asm-arm/arch-pxa/pxa-pm_ll.h |
5661 | =================================================================== | 5661 | =================================================================== |
5662 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 5662 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
5663 | +++ linux-2.6.23/include/asm-arm/arch-pxa/pxa-pm_ll.h 2008-01-20 18:59:46.000000000 +0000 | 5663 | +++ linux-2.6.24/include/asm-arm/arch-pxa/pxa-pm_ll.h 2008-03-10 16:09:23.000000000 +0000 |
5664 | @@ -0,0 +1,6 @@ | 5664 | @@ -0,0 +1,6 @@ |
5665 | +struct pxa_ll_pm_ops { | 5665 | +struct pxa_ll_pm_ops { |
5666 | + void (*suspend)(unsigned long); | 5666 | + void (*suspend)(unsigned long); |
@@ -5668,10 +5668,10 @@ Index: linux-2.6.23/include/asm-arm/arch-pxa/pxa-pm_ll.h | |||
5668 | +}; | 5668 | +}; |
5669 | + | 5669 | + |
5670 | +extern struct pxa_ll_pm_ops *pxa_pm_set_ll_ops(struct pxa_ll_pm_ops *new_ops); | 5670 | +extern struct pxa_ll_pm_ops *pxa_pm_set_ll_ops(struct pxa_ll_pm_ops *new_ops); |
5671 | Index: linux-2.6.23/include/asm-arm/hardware/asic3_keys.h | 5671 | Index: linux-2.6.24/include/asm-arm/hardware/asic3_keys.h |
5672 | =================================================================== | 5672 | =================================================================== |
5673 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 5673 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
5674 | +++ linux-2.6.23/include/asm-arm/hardware/asic3_keys.h 2008-01-20 18:59:46.000000000 +0000 | 5674 | +++ linux-2.6.24/include/asm-arm/hardware/asic3_keys.h 2008-03-10 16:09:23.000000000 +0000 |
5675 | @@ -0,0 +1,18 @@ | 5675 | @@ -0,0 +1,18 @@ |
5676 | +#include <linux/input.h> | 5676 | +#include <linux/input.h> |
5677 | + | 5677 | + |
@@ -5691,10 +5691,10 @@ Index: linux-2.6.23/include/asm-arm/hardware/asic3_keys.h | |||
5691 | + struct input_dev *input; | 5691 | + struct input_dev *input; |
5692 | + struct device *asic3_dev; | 5692 | + struct device *asic3_dev; |
5693 | +}; | 5693 | +}; |
5694 | Index: linux-2.6.23/include/asm-arm/hardware/asic3_leds.h | 5694 | Index: linux-2.6.24/include/asm-arm/hardware/asic3_leds.h |
5695 | =================================================================== | 5695 | =================================================================== |
5696 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 5696 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
5697 | +++ linux-2.6.23/include/asm-arm/hardware/asic3_leds.h 2008-01-20 18:59:46.000000000 +0000 | 5697 | +++ linux-2.6.24/include/asm-arm/hardware/asic3_leds.h 2008-03-10 16:09:23.000000000 +0000 |
5698 | @@ -0,0 +1,34 @@ | 5698 | @@ -0,0 +1,34 @@ |
5699 | +/* | 5699 | +/* |
5700 | + * LEDs support for HTC ASIC3 devices. | 5700 | + * LEDs support for HTC ASIC3 devices. |
@@ -5730,10 +5730,10 @@ Index: linux-2.6.23/include/asm-arm/hardware/asic3_leds.h | |||
5730 | +extern int asic3_leds_register(void); | 5730 | +extern int asic3_leds_register(void); |
5731 | +extern void asic3_leds_unregister(void); | 5731 | +extern void asic3_leds_unregister(void); |
5732 | + | 5732 | + |
5733 | Index: linux-2.6.23/include/asm-arm/hardware/ipaq-asic3.h | 5733 | Index: linux-2.6.24/include/asm-arm/hardware/ipaq-asic3.h |
5734 | =================================================================== | 5734 | =================================================================== |
5735 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 5735 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
5736 | +++ linux-2.6.23/include/asm-arm/hardware/ipaq-asic3.h 2008-01-20 18:59:46.000000000 +0000 | 5736 | +++ linux-2.6.24/include/asm-arm/hardware/ipaq-asic3.h 2008-03-10 16:09:23.000000000 +0000 |
5737 | @@ -0,0 +1,602 @@ | 5737 | @@ -0,0 +1,602 @@ |
5738 | +/* | 5738 | +/* |
5739 | + * | 5739 | + * |
@@ -6337,10 +6337,10 @@ Index: linux-2.6.23/include/asm-arm/hardware/ipaq-asic3.h | |||
6337 | +#define IPAQ_ASIC3_MAP_SIZE 0x2000 | 6337 | +#define IPAQ_ASIC3_MAP_SIZE 0x2000 |
6338 | + | 6338 | + |
6339 | +#endif | 6339 | +#endif |
6340 | Index: linux-2.6.23/include/linux/gpiodev.h | 6340 | Index: linux-2.6.24/include/linux/gpiodev.h |
6341 | =================================================================== | 6341 | =================================================================== |
6342 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 6342 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
6343 | +++ linux-2.6.23/include/linux/gpiodev.h 2008-01-20 18:59:46.000000000 +0000 | 6343 | +++ linux-2.6.24/include/linux/gpiodev.h 2008-03-10 16:09:23.000000000 +0000 |
6344 | @@ -0,0 +1,44 @@ | 6344 | @@ -0,0 +1,44 @@ |
6345 | +#ifndef __GPIODEV_H | 6345 | +#ifndef __GPIODEV_H |
6346 | +#define __GPIODEV_H | 6346 | +#define __GPIODEV_H |
@@ -6386,10 +6386,10 @@ Index: linux-2.6.23/include/linux/gpiodev.h | |||
6386 | +} | 6386 | +} |
6387 | + | 6387 | + |
6388 | +#endif /* __GPIODEV_H */ | 6388 | +#endif /* __GPIODEV_H */ |
6389 | Index: linux-2.6.23/include/linux/input_pda.h | 6389 | Index: linux-2.6.24/include/linux/input_pda.h |
6390 | =================================================================== | 6390 | =================================================================== |
6391 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 6391 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
6392 | +++ linux-2.6.23/include/linux/input_pda.h 2008-01-20 18:59:46.000000000 +0000 | 6392 | +++ linux-2.6.24/include/linux/input_pda.h 2008-03-10 16:09:23.000000000 +0000 |
6393 | @@ -0,0 +1,47 @@ | 6393 | @@ -0,0 +1,47 @@ |
6394 | +#ifndef _INPUT_PDA_H | 6394 | +#ifndef _INPUT_PDA_H |
6395 | +#define _INPUT_PDA_H | 6395 | +#define _INPUT_PDA_H |
@@ -6438,10 +6438,10 @@ Index: linux-2.6.23/include/linux/input_pda.h | |||
6438 | +#define _KEY_HOMEPAGE _KEY_APP4 | 6438 | +#define _KEY_HOMEPAGE _KEY_APP4 |
6439 | + | 6439 | + |
6440 | +#endif | 6440 | +#endif |
6441 | Index: linux-2.6.23/include/linux/soc/asic3_base.h | 6441 | Index: linux-2.6.24/include/linux/soc/asic3_base.h |
6442 | =================================================================== | 6442 | =================================================================== |
6443 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 6443 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
6444 | +++ linux-2.6.23/include/linux/soc/asic3_base.h 2008-01-20 18:59:46.000000000 +0000 | 6444 | +++ linux-2.6.24/include/linux/soc/asic3_base.h 2008-03-10 16:09:23.000000000 +0000 |
6445 | @@ -0,0 +1,104 @@ | 6445 | @@ -0,0 +1,104 @@ |
6446 | +#include <asm/types.h> | 6446 | +#include <asm/types.h> |
6447 | +#include <linux/gpiodev.h> | 6447 | +#include <linux/gpiodev.h> |
@@ -6547,10 +6547,10 @@ Index: linux-2.6.23/include/linux/soc/asic3_base.h | |||
6547 | + | 6547 | + |
6548 | + struct tmio_mmc_hwconfig *tmio_mmc_hwconfig; | 6548 | + struct tmio_mmc_hwconfig *tmio_mmc_hwconfig; |
6549 | +}; | 6549 | +}; |
6550 | Index: linux-2.6.23/include/linux/soc/tmio_mmc.h | 6550 | Index: linux-2.6.24/include/linux/soc/tmio_mmc.h |
6551 | =================================================================== | 6551 | =================================================================== |
6552 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 6552 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
6553 | +++ linux-2.6.23/include/linux/soc/tmio_mmc.h 2008-01-20 18:59:46.000000000 +0000 | 6553 | +++ linux-2.6.24/include/linux/soc/tmio_mmc.h 2008-03-10 16:09:23.000000000 +0000 |
6554 | @@ -0,0 +1,17 @@ | 6554 | @@ -0,0 +1,17 @@ |
6555 | +#include <linux/platform_device.h> | 6555 | +#include <linux/platform_device.h> |
6556 | + | 6556 | + |
@@ -6569,10 +6569,10 @@ Index: linux-2.6.23/include/linux/soc/tmio_mmc.h | |||
6569 | + int (*mmc_get_ro)(struct platform_device *pdev); | 6569 | + int (*mmc_get_ro)(struct platform_device *pdev); |
6570 | + short address_shift; | 6570 | + short address_shift; |
6571 | +}; | 6571 | +}; |
6572 | Index: linux-2.6.23/include/asm-arm/arch-pxa/pxa-regs.h | 6572 | Index: linux-2.6.24/include/asm-arm/arch-pxa/pxa-regs.h |
6573 | =================================================================== | 6573 | =================================================================== |
6574 | --- linux-2.6.23.orig/include/asm-arm/arch-pxa/pxa-regs.h 2008-01-20 18:59:40.000000000 +0000 | 6574 | --- linux-2.6.24.orig/include/asm-arm/arch-pxa/pxa-regs.h 2008-03-10 16:07:59.000000000 +0000 |
6575 | +++ linux-2.6.23/include/asm-arm/arch-pxa/pxa-regs.h 2008-01-20 18:59:46.000000000 +0000 | 6575 | +++ linux-2.6.24/include/asm-arm/arch-pxa/pxa-regs.h 2008-03-10 16:09:23.000000000 +0000 |
6576 | @@ -2058,6 +2058,8 @@ | 6576 | @@ -2058,6 +2058,8 @@ |
6577 | #define LDCMD_SOFINT (1 << 22) | 6577 | #define LDCMD_SOFINT (1 << 22) |
6578 | #define LDCMD_EOFINT (1 << 21) | 6578 | #define LDCMD_EOFINT (1 << 21) |
@@ -6582,25 +6582,11 @@ Index: linux-2.6.23/include/asm-arm/arch-pxa/pxa-regs.h | |||
6582 | 6582 | ||
6583 | #define LCCR5_SOFM1 (1<<0) /* Start Of Frame Mask for Overlay 1 (channel 1) */ | 6583 | #define LCCR5_SOFM1 (1<<0) /* Start Of Frame Mask for Overlay 1 (channel 1) */ |
6584 | #define LCCR5_SOFM2 (1<<1) /* Start Of Frame Mask for Overlay 2 (channel 2) */ | 6584 | #define LCCR5_SOFM2 (1<<1) /* Start Of Frame Mask for Overlay 2 (channel 2) */ |
6585 | Index: linux-2.6.23/drivers/mmc/host/Kconfig | 6585 | Index: linux-2.6.24/drivers/mmc/host/Makefile |
6586 | =================================================================== | ||
6587 | --- linux-2.6.23.orig/drivers/mmc/host/Kconfig 2008-01-20 18:59:18.000000000 +0000 | ||
6588 | +++ linux-2.6.23/drivers/mmc/host/Kconfig 2008-01-20 18:59:46.000000000 +0000 | ||
6589 | @@ -130,3 +130,9 @@ config MMC_SPI | ||
6590 | |||
6591 | If unsure, or if your system has no SPI master driver, say N. | ||
6592 | |||
6593 | +config MMC_ASIC3 | ||
6594 | + tristate "HTC ASIC3 SD/MMC support" | ||
6595 | + depends on MMC && HTC_ASIC3 | ||
6596 | + help | ||
6597 | + This provides support for the ASIC3 SD/MMC controller, used | ||
6598 | + in the iPAQ hx4700 and others. | ||
6599 | Index: linux-2.6.23/drivers/mmc/host/Makefile | ||
6600 | =================================================================== | 6586 | =================================================================== |
6601 | --- linux-2.6.23.orig/drivers/mmc/host/Makefile 2008-01-20 18:59:18.000000000 +0000 | 6587 | --- linux-2.6.24.orig/drivers/mmc/host/Makefile 2008-01-24 22:58:37.000000000 +0000 |
6602 | +++ linux-2.6.23/drivers/mmc/host/Makefile 2008-01-20 21:12:10.000000000 +0000 | 6588 | +++ linux-2.6.24/drivers/mmc/host/Makefile 2008-03-10 16:09:23.000000000 +0000 |
6603 | @@ -13,6 +13,7 @@ obj-$(CONFIG_MMC_SDHCI) += sdhci.o | 6589 | @@ -13,6 +13,7 @@ |
6604 | obj-$(CONFIG_MMC_RICOH_MMC) += ricoh_mmc.o | 6590 | obj-$(CONFIG_MMC_RICOH_MMC) += ricoh_mmc.o |
6605 | obj-$(CONFIG_MMC_WBSD) += wbsd.o | 6591 | obj-$(CONFIG_MMC_WBSD) += wbsd.o |
6606 | obj-$(CONFIG_MMC_AU1X) += au1xmmc.o | 6592 | obj-$(CONFIG_MMC_AU1X) += au1xmmc.o |
@@ -6608,10 +6594,10 @@ Index: linux-2.6.23/drivers/mmc/host/Makefile | |||
6608 | obj-$(CONFIG_MMC_OMAP) += omap.o | 6594 | obj-$(CONFIG_MMC_OMAP) += omap.o |
6609 | obj-$(CONFIG_MMC_AT91) += at91_mci.o | 6595 | obj-$(CONFIG_MMC_AT91) += at91_mci.o |
6610 | obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o | 6596 | obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o |
6611 | Index: linux-2.6.23/drivers/mmc/host/asic3_mmc.c | 6597 | Index: linux-2.6.24/drivers/mmc/host/asic3_mmc.c |
6612 | =================================================================== | 6598 | =================================================================== |
6613 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 6599 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
6614 | +++ linux-2.6.23/drivers/mmc/host/asic3_mmc.c 2008-01-20 18:59:46.000000000 +0000 | 6600 | +++ linux-2.6.24/drivers/mmc/host/asic3_mmc.c 2008-03-10 16:09:23.000000000 +0000 |
6615 | @@ -0,0 +1,900 @@ | 6601 | @@ -0,0 +1,900 @@ |
6616 | +/* Note that this driver can likely be merged into the tmio driver, so | 6602 | +/* Note that this driver can likely be merged into the tmio driver, so |
6617 | + * consider this code temporary. It works, though. | 6603 | + * consider this code temporary. It works, though. |
@@ -7513,10 +7499,10 @@ Index: linux-2.6.23/drivers/mmc/host/asic3_mmc.c | |||
7513 | +MODULE_AUTHOR("Aric Blumer, SDG Systems, LLC"); | 7499 | +MODULE_AUTHOR("Aric Blumer, SDG Systems, LLC"); |
7514 | +MODULE_LICENSE("GPL"); | 7500 | +MODULE_LICENSE("GPL"); |
7515 | + | 7501 | + |
7516 | Index: linux-2.6.23/drivers/mmc/host/asic3_mmc.h | 7502 | Index: linux-2.6.24/drivers/mmc/host/asic3_mmc.h |
7517 | =================================================================== | 7503 | =================================================================== |
7518 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 7504 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
7519 | +++ linux-2.6.23/drivers/mmc/host/asic3_mmc.h 2008-01-20 18:59:46.000000000 +0000 | 7505 | +++ linux-2.6.24/drivers/mmc/host/asic3_mmc.h 2008-03-10 16:09:23.000000000 +0000 |
7520 | @@ -0,0 +1,25 @@ | 7506 | @@ -0,0 +1,25 @@ |
7521 | +#ifndef __ASIC3_MMC_H | 7507 | +#ifndef __ASIC3_MMC_H |
7522 | +#define __ASIC3_MMC_H | 7508 | +#define __ASIC3_MMC_H |
@@ -7543,22 +7529,10 @@ Index: linux-2.6.23/drivers/mmc/host/asic3_mmc.h | |||
7543 | +#define DONT_CARE_BUFFER_BITS ( SD_CTRL_INTMASKBUFFER_UNK7 | SD_CTRL_INTMASKBUFFER_CMD_BUSY ) | 7529 | +#define DONT_CARE_BUFFER_BITS ( SD_CTRL_INTMASKBUFFER_UNK7 | SD_CTRL_INTMASKBUFFER_CMD_BUSY ) |
7544 | + | 7530 | + |
7545 | +#endif // __ASIC3_MMC_H | 7531 | +#endif // __ASIC3_MMC_H |
7546 | Index: linux-2.6.23/drivers/input/keyboard/Makefile | 7532 | Index: linux-2.6.24/drivers/input/keyboard/asic3_keys.c |
7547 | =================================================================== | ||
7548 | --- linux-2.6.23.orig/drivers/input/keyboard/Makefile 2008-01-20 18:59:16.000000000 +0000 | ||
7549 | +++ linux-2.6.23/drivers/input/keyboard/Makefile 2008-01-20 21:11:40.000000000 +0000 | ||
7550 | @@ -15,6 +15,7 @@ obj-$(CONFIG_KEYBOARD_NEWTON) += newton | ||
7551 | obj-$(CONFIG_KEYBOARD_STOWAWAY) += stowaway.o | ||
7552 | obj-$(CONFIG_KEYBOARD_CORGI) += corgikbd.o | ||
7553 | obj-$(CONFIG_KEYBOARD_SPITZ) += spitzkbd.o | ||
7554 | +obj-$(CONFIG_KEYBOARD_ASIC3) += asic3_keys.o | ||
7555 | obj-$(CONFIG_KEYBOARD_HIL) += hil_kbd.o | ||
7556 | obj-$(CONFIG_KEYBOARD_HIL_OLD) += hilkbd.o | ||
7557 | obj-$(CONFIG_KEYBOARD_OMAP) += omap-keypad.o | ||
7558 | Index: linux-2.6.23/drivers/input/keyboard/asic3_keys.c | ||
7559 | =================================================================== | 7533 | =================================================================== |
7560 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 7534 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
7561 | +++ linux-2.6.23/drivers/input/keyboard/asic3_keys.c 2008-01-20 18:59:46.000000000 +0000 | 7535 | +++ linux-2.6.24/drivers/input/keyboard/asic3_keys.c 2008-03-10 16:09:23.000000000 +0000 |
7562 | @@ -0,0 +1,131 @@ | 7536 | @@ -0,0 +1,131 @@ |
7563 | +/* | 7537 | +/* |
7564 | + * Generic buttons driver for ASIC3 SoC. | 7538 | + * Generic buttons driver for ASIC3 SoC. |
@@ -7691,10 +7665,10 @@ Index: linux-2.6.23/drivers/input/keyboard/asic3_keys.c | |||
7691 | +MODULE_AUTHOR("Joshua Wise, Pawel Kolodziejski, Paul Sokolovsky"); | 7665 | +MODULE_AUTHOR("Joshua Wise, Pawel Kolodziejski, Paul Sokolovsky"); |
7692 | +MODULE_DESCRIPTION("Buttons driver for HTC ASIC3 SoC"); | 7666 | +MODULE_DESCRIPTION("Buttons driver for HTC ASIC3 SoC"); |
7693 | +MODULE_LICENSE("GPL"); | 7667 | +MODULE_LICENSE("GPL"); |
7694 | Index: linux-2.6.23/include/asm-arm/arch-pxa/irqs.h | 7668 | Index: linux-2.6.24/include/asm-arm/arch-pxa/irqs.h |
7695 | =================================================================== | 7669 | =================================================================== |
7696 | --- linux-2.6.23.orig/include/asm-arm/arch-pxa/irqs.h 2008-01-20 18:59:28.000000000 +0000 | 7670 | --- linux-2.6.24.orig/include/asm-arm/arch-pxa/irqs.h 2008-01-24 22:58:37.000000000 +0000 |
7697 | +++ linux-2.6.23/include/asm-arm/arch-pxa/irqs.h 2008-01-20 18:59:46.000000000 +0000 | 7671 | +++ linux-2.6.24/include/asm-arm/arch-pxa/irqs.h 2008-03-10 16:09:23.000000000 +0000 |
7698 | @@ -182,6 +182,8 @@ | 7672 | @@ -182,6 +182,8 @@ |
7699 | defined(CONFIG_MACH_LOGICPD_PXA270) || \ | 7673 | defined(CONFIG_MACH_LOGICPD_PXA270) || \ |
7700 | defined(CONFIG_MACH_MAINSTONE) | 7674 | defined(CONFIG_MACH_MAINSTONE) |
@@ -7704,22 +7678,10 @@ Index: linux-2.6.23/include/asm-arm/arch-pxa/irqs.h | |||
7704 | #else | 7678 | #else |
7705 | #define NR_IRQS (IRQ_BOARD_START) | 7679 | #define NR_IRQS (IRQ_BOARD_START) |
7706 | #endif | 7680 | #endif |
7707 | Index: linux-2.6.23/include/linux/ioport.h | 7681 | Index: linux-2.6.24/include/asm-arm/arch-pxa/serial.h |
7708 | =================================================================== | ||
7709 | --- linux-2.6.23.orig/include/linux/ioport.h 2008-01-20 18:59:31.000000000 +0000 | ||
7710 | +++ linux-2.6.23/include/linux/ioport.h 2008-01-20 18:59:46.000000000 +0000 | ||
7711 | @@ -56,6 +56,7 @@ struct resource_list { | ||
7712 | #define IORESOURCE_IRQ_HIGHLEVEL (1<<2) | ||
7713 | #define IORESOURCE_IRQ_LOWLEVEL (1<<3) | ||
7714 | #define IORESOURCE_IRQ_SHAREABLE (1<<4) | ||
7715 | +#define IORESOURCE_IRQ_SOC_SUBDEVICE (1<<5) | ||
7716 | |||
7717 | /* ISA PnP DMA specific bits (IORESOURCE_BITS) */ | ||
7718 | #define IORESOURCE_DMA_TYPE_MASK (3<<0) | ||
7719 | Index: linux-2.6.23/include/asm-arm/arch-pxa/serial.h | ||
7720 | =================================================================== | 7682 | =================================================================== |
7721 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 7683 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
7722 | +++ linux-2.6.23/include/asm-arm/arch-pxa/serial.h 2008-01-20 18:59:46.000000000 +0000 | 7684 | +++ linux-2.6.24/include/asm-arm/arch-pxa/serial.h 2008-03-10 16:09:23.000000000 +0000 |
7723 | @@ -0,0 +1,78 @@ | 7685 | @@ -0,0 +1,78 @@ |
7724 | +/* | 7686 | +/* |
7725 | + * linux/include/asm-arm/arch-pxa/serial.h | 7687 | + * linux/include/asm-arm/arch-pxa/serial.h |
@@ -7799,10 +7761,10 @@ Index: linux-2.6.23/include/asm-arm/arch-pxa/serial.h | |||
7799 | +void pxa_set_btuart_info(struct platform_pxa_serial_funcs *btuart_funcs); | 7761 | +void pxa_set_btuart_info(struct platform_pxa_serial_funcs *btuart_funcs); |
7800 | +void pxa_set_stuart_info(struct platform_pxa_serial_funcs *stuart_funcs); | 7762 | +void pxa_set_stuart_info(struct platform_pxa_serial_funcs *stuart_funcs); |
7801 | +void pxa_set_hwuart_info(struct platform_pxa_serial_funcs *hwuart_funcs); | 7763 | +void pxa_set_hwuart_info(struct platform_pxa_serial_funcs *hwuart_funcs); |
7802 | Index: linux-2.6.23/drivers/serial/pxa.c | 7764 | Index: linux-2.6.24/drivers/serial/pxa.c |
7803 | =================================================================== | 7765 | =================================================================== |
7804 | --- linux-2.6.23.orig/drivers/serial/pxa.c 2008-01-20 18:59:23.000000000 +0000 | 7766 | --- linux-2.6.24.orig/drivers/serial/pxa.c 2008-01-24 22:58:37.000000000 +0000 |
7805 | +++ linux-2.6.23/drivers/serial/pxa.c 2008-01-20 18:59:46.000000000 +0000 | 7767 | +++ linux-2.6.24/drivers/serial/pxa.c 2008-03-10 16:09:23.000000000 +0000 |
7806 | @@ -47,6 +47,7 @@ | 7768 | @@ -47,6 +47,7 @@ |
7807 | #include <asm/io.h> | 7769 | #include <asm/io.h> |
7808 | #include <asm/hardware.h> | 7770 | #include <asm/hardware.h> |
@@ -7811,7 +7773,7 @@ Index: linux-2.6.23/drivers/serial/pxa.c | |||
7811 | #include <asm/arch/pxa-regs.h> | 7773 | #include <asm/arch/pxa-regs.h> |
7812 | 7774 | ||
7813 | 7775 | ||
7814 | @@ -60,6 +61,14 @@ struct uart_pxa_port { | 7776 | @@ -60,6 +61,14 @@ |
7815 | char *name; | 7777 | char *name; |
7816 | }; | 7778 | }; |
7817 | 7779 | ||
@@ -7826,7 +7788,7 @@ Index: linux-2.6.23/drivers/serial/pxa.c | |||
7826 | static inline unsigned int serial_in(struct uart_pxa_port *up, int offset) | 7788 | static inline unsigned int serial_in(struct uart_pxa_port *up, int offset) |
7827 | { | 7789 | { |
7828 | offset <<= 2; | 7790 | offset <<= 2; |
7829 | @@ -347,6 +356,9 @@ static int serial_pxa_startup(struct uar | 7791 | @@ -347,6 +356,9 @@ |
7830 | unsigned long flags; | 7792 | unsigned long flags; |
7831 | int retval; | 7793 | int retval; |
7832 | 7794 | ||
@@ -7836,7 +7798,7 @@ Index: linux-2.6.23/drivers/serial/pxa.c | |||
7836 | if (port->line == 3) /* HWUART */ | 7798 | if (port->line == 3) /* HWUART */ |
7837 | up->mcr |= UART_MCR_AFE; | 7799 | up->mcr |= UART_MCR_AFE; |
7838 | else | 7800 | else |
7839 | @@ -404,6 +416,12 @@ static int serial_pxa_startup(struct uar | 7801 | @@ -404,6 +416,12 @@ |
7840 | (void) serial_in(up, UART_IIR); | 7802 | (void) serial_in(up, UART_IIR); |
7841 | (void) serial_in(up, UART_MSR); | 7803 | (void) serial_in(up, UART_MSR); |
7842 | 7804 | ||
@@ -7849,7 +7811,7 @@ Index: linux-2.6.23/drivers/serial/pxa.c | |||
7849 | return 0; | 7811 | return 0; |
7850 | } | 7812 | } |
7851 | 7813 | ||
7852 | @@ -412,6 +430,8 @@ static void serial_pxa_shutdown(struct u | 7814 | @@ -412,6 +430,8 @@ |
7853 | struct uart_pxa_port *up = (struct uart_pxa_port *)port; | 7815 | struct uart_pxa_port *up = (struct uart_pxa_port *)port; |
7854 | unsigned long flags; | 7816 | unsigned long flags; |
7855 | 7817 | ||
@@ -7858,7 +7820,7 @@ Index: linux-2.6.23/drivers/serial/pxa.c | |||
7858 | free_irq(up->port.irq, up); | 7820 | free_irq(up->port.irq, up); |
7859 | 7821 | ||
7860 | /* | 7822 | /* |
7861 | @@ -433,6 +453,8 @@ static void serial_pxa_shutdown(struct u | 7823 | @@ -433,6 +453,8 @@ |
7862 | UART_FCR_CLEAR_RCVR | | 7824 | UART_FCR_CLEAR_RCVR | |
7863 | UART_FCR_CLEAR_XMIT); | 7825 | UART_FCR_CLEAR_XMIT); |
7864 | serial_out(up, UART_FCR, 0); | 7826 | serial_out(up, UART_FCR, 0); |
@@ -7867,10 +7829,10 @@ Index: linux-2.6.23/drivers/serial/pxa.c | |||
7867 | } | 7829 | } |
7868 | 7830 | ||
7869 | static void | 7831 | static void |
7870 | Index: linux-2.6.23/arch/arm/mach-pxa/generic.c | 7832 | Index: linux-2.6.24/arch/arm/mach-pxa/generic.c |
7871 | =================================================================== | 7833 | =================================================================== |
7872 | --- linux-2.6.23.orig/arch/arm/mach-pxa/generic.c 2008-01-20 18:59:09.000000000 +0000 | 7834 | --- linux-2.6.24.orig/arch/arm/mach-pxa/generic.c 2008-01-24 22:58:37.000000000 +0000 |
7873 | +++ linux-2.6.23/arch/arm/mach-pxa/generic.c 2008-01-20 18:59:46.000000000 +0000 | 7835 | +++ linux-2.6.24/arch/arm/mach-pxa/generic.c 2008-03-10 16:09:23.000000000 +0000 |
7874 | @@ -38,6 +38,7 @@ | 7836 | @@ -38,6 +38,7 @@ |
7875 | #include <asm/arch/mmc.h> | 7837 | #include <asm/arch/mmc.h> |
7876 | #include <asm/arch/irda.h> | 7838 | #include <asm/arch/irda.h> |
@@ -7879,7 +7841,7 @@ Index: linux-2.6.23/arch/arm/mach-pxa/generic.c | |||
7879 | 7841 | ||
7880 | #include "devices.h" | 7842 | #include "devices.h" |
7881 | #include "generic.h" | 7843 | #include "generic.h" |
7882 | @@ -412,6 +413,18 @@ struct platform_device pxa_device_hwuart | 7844 | @@ -412,6 +413,18 @@ |
7883 | .num_resources = ARRAY_SIZE(pxa_resource_hwuart), | 7845 | .num_resources = ARRAY_SIZE(pxa_resource_hwuart), |
7884 | }; | 7846 | }; |
7885 | 7847 | ||
@@ -7898,11 +7860,11 @@ Index: linux-2.6.23/arch/arm/mach-pxa/generic.c | |||
7898 | static struct resource pxai2c_resources[] = { | 7860 | static struct resource pxai2c_resources[] = { |
7899 | { | 7861 | { |
7900 | .start = 0x40301680, | 7862 | .start = 0x40301680, |
7901 | Index: linux-2.6.23/drivers/leds/Makefile | 7863 | Index: linux-2.6.24/drivers/leds/Makefile |
7902 | =================================================================== | 7864 | =================================================================== |
7903 | --- linux-2.6.23.orig/drivers/leds/Makefile 2008-01-20 18:59:17.000000000 +0000 | 7865 | --- linux-2.6.24.orig/drivers/leds/Makefile 2008-01-24 22:58:37.000000000 +0000 |
7904 | +++ linux-2.6.23/drivers/leds/Makefile 2008-01-20 21:10:45.000000000 +0000 | 7866 | +++ linux-2.6.24/drivers/leds/Makefile 2008-03-10 16:09:23.000000000 +0000 |
7905 | @@ -15,6 +15,7 @@ obj-$(CONFIG_LEDS_AMS_DELTA) += leds-am | 7867 | @@ -15,6 +15,7 @@ |
7906 | obj-$(CONFIG_LEDS_NET48XX) += leds-net48xx.o | 7868 | obj-$(CONFIG_LEDS_NET48XX) += leds-net48xx.o |
7907 | obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o | 7869 | obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o |
7908 | obj-$(CONFIG_LEDS_H1940) += leds-h1940.o | 7870 | obj-$(CONFIG_LEDS_H1940) += leds-h1940.o |
@@ -7910,11 +7872,11 @@ Index: linux-2.6.23/drivers/leds/Makefile | |||
7910 | obj-$(CONFIG_LEDS_COBALT_QUBE) += leds-cobalt-qube.o | 7872 | obj-$(CONFIG_LEDS_COBALT_QUBE) += leds-cobalt-qube.o |
7911 | obj-$(CONFIG_LEDS_COBALT_RAQ) += leds-cobalt-raq.o | 7873 | obj-$(CONFIG_LEDS_COBALT_RAQ) += leds-cobalt-raq.o |
7912 | obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o | 7874 | obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o |
7913 | Index: linux-2.6.23/drivers/input/keyboard/Kconfig | 7875 | Index: linux-2.6.24/drivers/input/keyboard/Kconfig |
7914 | =================================================================== | 7876 | =================================================================== |
7915 | --- linux-2.6.23.orig/drivers/input/keyboard/Kconfig 2008-01-20 18:59:16.000000000 +0000 | 7877 | --- linux-2.6.24.orig/drivers/input/keyboard/Kconfig 2008-01-24 22:58:37.000000000 +0000 |
7916 | +++ linux-2.6.23/drivers/input/keyboard/Kconfig 2008-01-20 18:59:46.000000000 +0000 | 7878 | +++ linux-2.6.24/drivers/input/keyboard/Kconfig 2008-03-10 16:09:23.000000000 +0000 |
7917 | @@ -293,4 +293,11 @@ config KEYBOARD_BFIN | 7879 | @@ -293,4 +293,11 @@ |
7918 | To compile this driver as a module, choose M here: the | 7880 | To compile this driver as a module, choose M here: the |
7919 | module will be called bf54x-keys. | 7881 | module will be called bf54x-keys. |
7920 | 7882 | ||
@@ -7926,3 +7888,33 @@ Index: linux-2.6.23/drivers/input/keyboard/Kconfig | |||
7926 | + HTC ASIC3 peripheral controller. | 7888 | + HTC ASIC3 peripheral controller. |
7927 | + | 7889 | + |
7928 | endif | 7890 | endif |
7891 | Index: linux-2.6.24/drivers/mmc/host/Kconfig | ||
7892 | =================================================================== | ||
7893 | --- linux-2.6.24.orig/drivers/mmc/host/Kconfig 2008-01-24 22:58:37.000000000 +0000 | ||
7894 | +++ linux-2.6.24/drivers/mmc/host/Kconfig 2008-03-10 16:09:59.000000000 +0000 | ||
7895 | @@ -24,6 +24,13 @@ | ||
7896 | |||
7897 | If unsure, say N. | ||
7898 | |||
7899 | +config MMC_ASIC3 | ||
7900 | + tristate "HTC ASIC3 SD/MMC support" | ||
7901 | + depends on MMC && HTC_ASIC3 | ||
7902 | + help | ||
7903 | + This provides support for the ASIC3 SD/MMC controller, used | ||
7904 | + in the iPAQ hx4700 and others. | ||
7905 | + | ||
7906 | config MMC_SDHCI | ||
7907 | tristate "Secure Digital Host Controller Interface support (EXPERIMENTAL)" | ||
7908 | depends on PCI && EXPERIMENTAL | ||
7909 | Index: linux-2.6.24/drivers/input/keyboard/Makefile | ||
7910 | =================================================================== | ||
7911 | --- linux-2.6.24.orig/drivers/input/keyboard/Makefile 2008-01-24 22:58:37.000000000 +0000 | ||
7912 | +++ linux-2.6.24/drivers/input/keyboard/Makefile 2008-03-10 16:10:28.000000000 +0000 | ||
7913 | @@ -6,6 +6,7 @@ | ||
7914 | |||
7915 | obj-$(CONFIG_KEYBOARD_ATKBD) += atkbd.o | ||
7916 | obj-$(CONFIG_KEYBOARD_SUNKBD) += sunkbd.o | ||
7917 | +obj-$(CONFIG_KEYBOARD_ASIC3) += asic3_keys.o | ||
7918 | obj-$(CONFIG_KEYBOARD_LKKBD) += lkkbd.o | ||
7919 | obj-$(CONFIG_KEYBOARD_XTKBD) += xtkbd.o | ||
7920 | obj-$(CONFIG_KEYBOARD_AMIGA) += amikbd.o | ||
diff --git a/meta/packages/linux/linux-rp-2.6.24/pxa27x-resume.patch b/meta/packages/linux/linux-rp-2.6.24/pxa27x-resume.patch new file mode 100644 index 0000000000..6447a0b104 --- /dev/null +++ b/meta/packages/linux/linux-rp-2.6.24/pxa27x-resume.patch | |||
@@ -0,0 +1,41 @@ | |||
1 | List: linux-arm-kernel | ||
2 | Subject: [PATCH] Fix PXA27x resume | ||
3 | From: Russell King - ARM Linux <linux@arm.linux.org.uk> | ||
4 | Date: 2008-01-21 13:53:31 | ||
5 | Message-ID: 20080121135331.GC30149@flint.arm.linux.org.uk | ||
6 | [Download message RAW] | ||
7 | |||
8 | When PXA27x wakes up, tick_resume_oneshot() tries to set a timer | ||
9 | interrupt to occur immediately. Since PXA27x requires at least | ||
10 | MIN_OSCR_DELTA, this causes us to flag an error. | ||
11 | |||
12 | tick_program_event() then increments the next event time by | ||
13 | min_delta_ns. However, by the time we get back to programming | ||
14 | the next event, the OSCR has incremented such that we fail again. | ||
15 | We repeatedly retry, but the OSCR is too fast for us - we never | ||
16 | catch up, so we never break out of the loop - resulting in us | ||
17 | never apparantly resuming. | ||
18 | |||
19 | Fix this by doubling min_delta_ns. | ||
20 | |||
21 | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> | ||
22 | |||
23 | diff --git a/arch/arm/mach-pxa/time.c b/arch/arm/mach-pxa/time.c | ||
24 | index ac0bbad..7b7c017 100644 | ||
25 | --- a/arch/arm/mach-pxa/time.c | ||
26 | +++ b/arch/arm/mach-pxa/time.c | ||
27 | @@ -169,7 +169,7 @@ static void __init pxa_timer_init(void) | ||
28 | ckevt_pxa_osmr0.max_delta_ns = | ||
29 | clockevent_delta2ns(0x7fffffff, &ckevt_pxa_osmr0); | ||
30 | ckevt_pxa_osmr0.min_delta_ns = | ||
31 | - clockevent_delta2ns(MIN_OSCR_DELTA, &ckevt_pxa_osmr0) + 1; | ||
32 | + clockevent_delta2ns(MIN_OSCR_DELTA * 2, &ckevt_pxa_osmr0) + 1; | ||
33 | |||
34 | cksrc_pxa_oscr0.mult = | ||
35 | clocksource_hz2mult(clock_tick_rate, cksrc_pxa_oscr0.shift); | ||
36 | |||
37 | ------------------------------------------------------------------- | ||
38 | List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel | ||
39 | FAQ: http://www.arm.linux.org.uk/mailinglists/faq.php | ||
40 | Etiquette: http://www.arm.linux.org.uk/mailinglists/etiquette.php | ||
41 | |||
diff --git a/meta/packages/linux/linux-rp-2.6.24/pxa2xx_udc-clock.patch b/meta/packages/linux/linux-rp-2.6.24/pxa2xx_udc-clock.patch new file mode 100644 index 0000000000..14c496a31a --- /dev/null +++ b/meta/packages/linux/linux-rp-2.6.24/pxa2xx_udc-clock.patch | |||
@@ -0,0 +1,221 @@ | |||
1 | --- | ||
2 | drivers/usb/gadget/pxa2xx_udc.c | 88 ++++++++++++++++++++++------------------ | ||
3 | drivers/usb/gadget/pxa2xx_udc.h | 4 + | ||
4 | 2 files changed, 53 insertions(+), 39 deletions(-) | ||
5 | |||
6 | --- g26.orig/drivers/usb/gadget/pxa2xx_udc.c 2008-02-19 12:47:06.000000000 -0800 | ||
7 | +++ g26/drivers/usb/gadget/pxa2xx_udc.c 2008-02-19 14:07:17.000000000 -0800 | ||
8 | @@ -103,6 +103,12 @@ static const char ep0name [] = "ep0"; | ||
9 | #error "Can't configure both IXP and PXA" | ||
10 | #endif | ||
11 | |||
12 | +/* IXP doesn't yet support <linux/clk.h> */ | ||
13 | +#define clk_get(dev,name) NULL | ||
14 | +#define clk_enable(clk) do { } while (0) | ||
15 | +#define clk_disable(clk) do { } while (0) | ||
16 | +#define clk_put(clk) do { } while (0) | ||
17 | + | ||
18 | #endif | ||
19 | |||
20 | #include "pxa2xx_udc.h" | ||
21 | @@ -934,20 +940,31 @@ static void udc_disable(struct pxa2xx_ud | ||
22 | /* We disable the UDC -- and its 48 MHz clock -- whenever it's not | ||
23 | * in active use. | ||
24 | */ | ||
25 | -static int pullup(struct pxa2xx_udc *udc, int is_active) | ||
26 | +static int pullup(struct pxa2xx_udc *udc) | ||
27 | { | ||
28 | - is_active = is_active && udc->vbus && udc->pullup; | ||
29 | + int is_active = udc->vbus && udc->pullup && !udc->suspended; | ||
30 | DMSG("%s\n", is_active ? "active" : "inactive"); | ||
31 | - if (is_active) | ||
32 | - udc_enable(udc); | ||
33 | - else { | ||
34 | - if (udc->gadget.speed != USB_SPEED_UNKNOWN) { | ||
35 | - DMSG("disconnect %s\n", udc->driver | ||
36 | - ? udc->driver->driver.name | ||
37 | - : "(no driver)"); | ||
38 | - stop_activity(udc, udc->driver); | ||
39 | + if (is_active) { | ||
40 | + if (!udc->active) { | ||
41 | + udc->active = 1; | ||
42 | + /* Enable clock for USB device */ | ||
43 | + clk_enable(udc->clk); | ||
44 | + udc_enable(udc); | ||
45 | } | ||
46 | - udc_disable(udc); | ||
47 | + } else { | ||
48 | + if (udc->active) { | ||
49 | + if (udc->gadget.speed != USB_SPEED_UNKNOWN) { | ||
50 | + DMSG("disconnect %s\n", udc->driver | ||
51 | + ? udc->driver->driver.name | ||
52 | + : "(no driver)"); | ||
53 | + stop_activity(udc, udc->driver); | ||
54 | + } | ||
55 | + udc_disable(udc); | ||
56 | + /* Disable clock for USB device */ | ||
57 | + clk_disable(udc->clk); | ||
58 | + udc->active = 0; | ||
59 | + } | ||
60 | + | ||
61 | } | ||
62 | return 0; | ||
63 | } | ||
64 | @@ -958,9 +975,9 @@ static int pxa2xx_udc_vbus_session(struc | ||
65 | struct pxa2xx_udc *udc; | ||
66 | |||
67 | udc = container_of(_gadget, struct pxa2xx_udc, gadget); | ||
68 | - udc->vbus = is_active = (is_active != 0); | ||
69 | + udc->vbus = (is_active != 0); | ||
70 | DMSG("vbus %s\n", is_active ? "supplied" : "inactive"); | ||
71 | - pullup(udc, is_active); | ||
72 | + pullup(udc); | ||
73 | return 0; | ||
74 | } | ||
75 | |||
76 | @@ -975,9 +992,8 @@ static int pxa2xx_udc_pullup(struct usb_ | ||
77 | if (!udc->mach->gpio_pullup && !udc->mach->udc_command) | ||
78 | return -EOPNOTSUPP; | ||
79 | |||
80 | - is_active = (is_active != 0); | ||
81 | - udc->pullup = is_active; | ||
82 | - pullup(udc, is_active); | ||
83 | + udc->pullup = (is_active != 0); | ||
84 | + pullup(udc); | ||
85 | return 0; | ||
86 | } | ||
87 | |||
88 | @@ -1146,11 +1162,6 @@ static void udc_disable(struct pxa2xx_ud | ||
89 | |||
90 | udc_clear_mask_UDCCR(UDCCR_UDE); | ||
91 | |||
92 | -#ifdef CONFIG_ARCH_PXA | ||
93 | - /* Disable clock for USB device */ | ||
94 | - clk_disable(dev->clk); | ||
95 | -#endif | ||
96 | - | ||
97 | ep0_idle (dev); | ||
98 | dev->gadget.speed = USB_SPEED_UNKNOWN; | ||
99 | } | ||
100 | @@ -1191,11 +1202,6 @@ static void udc_enable (struct pxa2xx_ud | ||
101 | { | ||
102 | udc_clear_mask_UDCCR(UDCCR_UDE); | ||
103 | |||
104 | -#ifdef CONFIG_ARCH_PXA | ||
105 | - /* Enable clock for USB device */ | ||
106 | - clk_enable(dev->clk); | ||
107 | -#endif | ||
108 | - | ||
109 | /* try to clear these bits before we enable the udc */ | ||
110 | udc_ack_int_UDCCR(UDCCR_SUSIR|/*UDCCR_RSTIR|*/UDCCR_RESIR); | ||
111 | |||
112 | @@ -1286,7 +1292,7 @@ fail: | ||
113 | * for set_configuration as well as eventual disconnect. | ||
114 | */ | ||
115 | DMSG("registered gadget driver '%s'\n", driver->driver.name); | ||
116 | - pullup(dev, 1); | ||
117 | + pullup(dev); | ||
118 | dump_state(dev); | ||
119 | return 0; | ||
120 | } | ||
121 | @@ -1329,7 +1335,8 @@ int usb_gadget_unregister_driver(struct | ||
122 | return -EINVAL; | ||
123 | |||
124 | local_irq_disable(); | ||
125 | - pullup(dev, 0); | ||
126 | + dev->pullup = 0; | ||
127 | + pullup(dev); | ||
128 | stop_activity(dev, driver); | ||
129 | local_irq_enable(); | ||
130 | |||
131 | @@ -2131,13 +2138,11 @@ static int __init pxa2xx_udc_probe(struc | ||
132 | if (irq < 0) | ||
133 | return -ENODEV; | ||
134 | |||
135 | -#ifdef CONFIG_ARCH_PXA | ||
136 | dev->clk = clk_get(&pdev->dev, "UDCCLK"); | ||
137 | if (IS_ERR(dev->clk)) { | ||
138 | retval = PTR_ERR(dev->clk); | ||
139 | goto err_clk; | ||
140 | } | ||
141 | -#endif | ||
142 | |||
143 | pr_debug("%s: IRQ %d%s%s\n", driver_name, irq, | ||
144 | dev->has_cfr ? "" : " (!cfr)", | ||
145 | @@ -2250,10 +2255,8 @@ lubbock_fail0: | ||
146 | if (dev->mach->gpio_vbus) | ||
147 | gpio_free(dev->mach->gpio_vbus); | ||
148 | err_gpio_vbus: | ||
149 | -#ifdef CONFIG_ARCH_PXA | ||
150 | clk_put(dev->clk); | ||
151 | err_clk: | ||
152 | -#endif | ||
153 | return retval; | ||
154 | } | ||
155 | |||
156 | @@ -2269,7 +2272,9 @@ static int __exit pxa2xx_udc_remove(stru | ||
157 | if (dev->driver) | ||
158 | return -EBUSY; | ||
159 | |||
160 | - udc_disable(dev); | ||
161 | + dev->pullup = 0; | ||
162 | + pullup(dev); | ||
163 | + | ||
164 | remove_proc_files(); | ||
165 | |||
166 | if (dev->got_irq) { | ||
167 | @@ -2289,9 +2294,7 @@ static int __exit pxa2xx_udc_remove(stru | ||
168 | if (dev->mach->gpio_pullup) | ||
169 | gpio_free(dev->mach->gpio_pullup); | ||
170 | |||
171 | -#ifdef CONFIG_ARCH_PXA | ||
172 | clk_put(dev->clk); | ||
173 | -#endif | ||
174 | |||
175 | platform_set_drvdata(pdev, NULL); | ||
176 | the_controller = NULL; | ||
177 | @@ -2317,10 +2320,15 @@ static int __exit pxa2xx_udc_remove(stru | ||
178 | static int pxa2xx_udc_suspend(struct platform_device *dev, pm_message_t state) | ||
179 | { | ||
180 | struct pxa2xx_udc *udc = platform_get_drvdata(dev); | ||
181 | + unsigned long flags; | ||
182 | |||
183 | if (!udc->mach->gpio_pullup && !udc->mach->udc_command) | ||
184 | WARN("USB host won't detect disconnect!\n"); | ||
185 | - pullup(udc, 0); | ||
186 | + udc->suspended = 1; | ||
187 | + | ||
188 | + local_irq_save(flags); | ||
189 | + pullup(udc); | ||
190 | + local_irq_restore(flags); | ||
191 | |||
192 | return 0; | ||
193 | } | ||
194 | @@ -2328,8 +2336,12 @@ static int pxa2xx_udc_suspend(struct pla | ||
195 | static int pxa2xx_udc_resume(struct platform_device *dev) | ||
196 | { | ||
197 | struct pxa2xx_udc *udc = platform_get_drvdata(dev); | ||
198 | + unsigned long flags; | ||
199 | |||
200 | - pullup(udc, 1); | ||
201 | + udc->suspended = 0; | ||
202 | + local_irq_save(flags); | ||
203 | + pullup(udc); | ||
204 | + local_irq_restore(flags); | ||
205 | |||
206 | return 0; | ||
207 | } | ||
208 | --- g26.orig/drivers/usb/gadget/pxa2xx_udc.h 2008-02-19 12:47:06.000000000 -0800 | ||
209 | +++ g26/drivers/usb/gadget/pxa2xx_udc.h 2008-02-19 12:57:42.000000000 -0800 | ||
210 | @@ -119,7 +119,9 @@ struct pxa2xx_udc { | ||
211 | has_cfr : 1, | ||
212 | req_pending : 1, | ||
213 | req_std : 1, | ||
214 | - req_config : 1; | ||
215 | + req_config : 1, | ||
216 | + suspended : 1, | ||
217 | + active : 1; | ||
218 | |||
219 | #define start_watchdog(dev) mod_timer(&dev->timer, jiffies + (HZ/200)) | ||
220 | struct timer_list timer; | ||
221 | - | ||
diff --git a/meta/packages/linux/linux-rp-2.6.24/sharpsl-rc-r1.patch b/meta/packages/linux/linux-rp-2.6.24/sharpsl-rc-r1.patch new file mode 100644 index 0000000000..bed41c55d5 --- /dev/null +++ b/meta/packages/linux/linux-rp-2.6.24/sharpsl-rc-r1.patch | |||
@@ -0,0 +1,527 @@ | |||
1 | This patch adds support for Sharp CE-RH2 on Spitz. | ||
2 | |||
3 | It is not clean enough to be upstreamed: | ||
4 | - It is a bit syslog-noisy. | ||
5 | - Does not support other Zaurus models. | ||
6 | - Maybe split to more parts: | ||
7 | * MAX1111 driver | ||
8 | * linear input device | ||
9 | * virtual keyboard on top of linear input device | ||
10 | |||
11 | Index: linux-2.6.24/arch/arm/mach-pxa/spitz.c | ||
12 | =================================================================== | ||
13 | --- linux-2.6.24.orig/arch/arm/mach-pxa/spitz.c 2008-03-10 17:05:37.000000000 +0000 | ||
14 | +++ linux-2.6.24/arch/arm/mach-pxa/spitz.c 2008-03-10 17:05:55.000000000 +0000 | ||
15 | @@ -259,6 +259,13 @@ | ||
16 | .id = -1, | ||
17 | }; | ||
18 | |||
19 | +/* | ||
20 | + * Spitz Remote Control Device | ||
21 | + */ | ||
22 | +static struct platform_device sharpsl_rc_device = { | ||
23 | + .name = "sharpsl-remote-control", | ||
24 | + .id = -1, | ||
25 | +}; | ||
26 | |||
27 | /* | ||
28 | * Spitz LEDs | ||
29 | @@ -548,6 +555,7 @@ | ||
30 | &spitzscoop_device, | ||
31 | &spitzssp_device, | ||
32 | &spitzkbd_device, | ||
33 | + &sharpsl_rc_device, | ||
34 | &spitzts_device, | ||
35 | &spitzbl_device, | ||
36 | &spitzled_device, | ||
37 | Index: linux-2.6.24/drivers/input/keyboard/Kconfig | ||
38 | =================================================================== | ||
39 | --- linux-2.6.24.orig/drivers/input/keyboard/Kconfig 2008-03-10 17:05:40.000000000 +0000 | ||
40 | +++ linux-2.6.24/drivers/input/keyboard/Kconfig 2008-03-10 17:05:55.000000000 +0000 | ||
41 | @@ -154,6 +154,17 @@ | ||
42 | To compile this driver as a module, choose M here: the | ||
43 | module will be called spitzkbd. | ||
44 | |||
45 | +config SHARPSL_RC | ||
46 | + tristate "Sharp SL-Cxx00 Remote Control" | ||
47 | + depends on PXA_SHARPSL | ||
48 | + default y | ||
49 | + help | ||
50 | + Say Y here to enable the remote on the Sharp Zaurus SL-Cxx00, | ||
51 | + SL-C1000, SL-C3000 and Sl-C3100 series of PDAs. | ||
52 | + | ||
53 | + To compile this driver as a module, choose M here: the | ||
54 | + module will be called sharpsl_rc. | ||
55 | + | ||
56 | config KEYBOARD_AMIGA | ||
57 | tristate "Amiga keyboard" | ||
58 | depends on AMIGA | ||
59 | Index: linux-2.6.24/drivers/input/keyboard/Makefile | ||
60 | =================================================================== | ||
61 | --- linux-2.6.24.orig/drivers/input/keyboard/Makefile 2008-03-10 17:05:40.000000000 +0000 | ||
62 | +++ linux-2.6.24/drivers/input/keyboard/Makefile 2008-03-10 17:06:17.000000000 +0000 | ||
63 | @@ -26,3 +26,5 @@ | ||
64 | obj-$(CONFIG_KEYBOARD_HP7XX) += jornada720_kbd.o | ||
65 | obj-$(CONFIG_KEYBOARD_MAPLE) += maple_keyb.o | ||
66 | obj-$(CONFIG_KEYBOARD_BFIN) += bf54x-keys.o | ||
67 | +obj-$(CONFIG_SHARPSL_RC) += sharpsl_rc.o | ||
68 | + | ||
69 | Index: linux-2.6.24/drivers/input/keyboard/sharpsl_rc.c | ||
70 | =================================================================== | ||
71 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
72 | +++ linux-2.6.24/drivers/input/keyboard/sharpsl_rc.c 2008-03-10 17:05:55.000000000 +0000 | ||
73 | @@ -0,0 +1,291 @@ | ||
74 | +/* | ||
75 | + * Keyboard driver for Sharp Clamshell Models (SL-Cxx00) | ||
76 | + * | ||
77 | + * Copyright (c) 2004-2005 Richard Purdie | ||
78 | + * | ||
79 | + * Based on corgikbd.c and Sharp's RC driver | ||
80 | + * | ||
81 | + * This program is free software; you can redistribute it and/or modify | ||
82 | + * it under the terms of the GNU General Public License version 2 as | ||
83 | + * published by the Free Software Foundation. | ||
84 | + * | ||
85 | + */ | ||
86 | + | ||
87 | +#define DEBUG 1 | ||
88 | +#include <linux/delay.h> | ||
89 | +#include <linux/platform_device.h> | ||
90 | +#include <linux/init.h> | ||
91 | +#include <linux/input.h> | ||
92 | +#include <linux/interrupt.h> | ||
93 | +#include <linux/jiffies.h> | ||
94 | +#include <linux/module.h> | ||
95 | +#include <linux/slab.h> | ||
96 | + | ||
97 | +#ifdef CONFIG_MACH_SPITZ | ||
98 | +#include <asm/arch/spitz.h> | ||
99 | +#endif | ||
100 | +#ifdef CONFIG_MACH_CORGI | ||
101 | +#include <asm/arch/corgi.h> | ||
102 | +#endif | ||
103 | + | ||
104 | +#include <asm/arch/hardware.h> | ||
105 | +#include <asm/arch/pxa-regs.h> | ||
106 | +#include <asm/hardware/scoop.h> | ||
107 | +#include <asm/arch/sharpsl.h> | ||
108 | +#include <asm/hardware/sharpsl_pm.h> | ||
109 | + | ||
110 | +#define DPRINTK(fmt, args...) dev_dbg(data->dev, fmt "\n", ##args) | ||
111 | + | ||
112 | +struct remote_control_key { | ||
113 | + unsigned char min; | ||
114 | + unsigned char max; | ||
115 | + unsigned char key; | ||
116 | +}; | ||
117 | + | ||
118 | +#ifdef CONFIG_MACH_SPITZ | ||
119 | +#define REMOTE_AKIN_PULLUP SPITZ_SCP2_AKIN_PULLUP | ||
120 | +#define REMOTE_SCOOP_DEVICE spitzscoop2_device | ||
121 | +#define REMOTE_GPIO_INT SPITZ_GPIO_AK_INT | ||
122 | +#define REMOTE_IRQ_INT SPITZ_IRQ_GPIO_AK_INT | ||
123 | +static struct remote_control_key remote_keys[] = { | ||
124 | + { 25, 35, KEY_STOPCD}, | ||
125 | + { 55, 65, KEY_PLAYPAUSE}, | ||
126 | + { 85, 95, KEY_NEXTSONG}, | ||
127 | + { 115, 125, KEY_VOLUMEUP}, | ||
128 | + { 145, 155, KEY_PREVIOUSSONG}, | ||
129 | + { 180, 190, KEY_MUTE}, | ||
130 | + { 215, 225, KEY_VOLUMEDOWN}, | ||
131 | +}; | ||
132 | +#endif | ||
133 | +#ifdef CONFIG_MACH_CORGI | ||
134 | +#define REMOTE_AKIN_PULLUP CORGI_SCP_AKIN_PULLUP | ||
135 | +#define REMOTE_SCOOP_DEVICE corgiscoop_device | ||
136 | +#define REMOTE_GPIO_INT CORGI_GPIO_AK_INT | ||
137 | +#define REMOTE_IRQ_INT CORGI_IRQ_GPIO_AK_INT | ||
138 | +static struct remote_control_key remote_keys[] = { | ||
139 | + //These need to be fixed for the CE-RH1's values | ||
140 | + { 25, 35, KEY_STOPCD}, | ||
141 | + { 55, 65, KEY_PLAYPAUSE}, | ||
142 | + { 85, 95, KEY_NEXTSONG}, | ||
143 | + { 115, 125, KEY_VOLUMEUP}, | ||
144 | + { 145, 155, KEY_PREVIOUSSONG}, | ||
145 | + { 180, 190, KEY_MUTE}, | ||
146 | + { 215, 225, KEY_VOLUMEDOWN}, | ||
147 | +}; | ||
148 | +#endif | ||
149 | + | ||
150 | +#define RELEASE_HI 230 | ||
151 | +#define MAX_EARPHONE 6 | ||
152 | +#define RC_POLL_MS 10 | ||
153 | +#define RC_FINISH_MS 500 | ||
154 | +#define WAIT_STATE 3 | ||
155 | +#define NOISE_THRESHOLD 100 | ||
156 | + | ||
157 | +struct sharpsl_rc { | ||
158 | + struct input_dev *input; | ||
159 | + struct device *dev; | ||
160 | + | ||
161 | + spinlock_t lock; | ||
162 | + struct timer_list rctimer; | ||
163 | + struct timer_list rctimer_finish; | ||
164 | + | ||
165 | + unsigned int handling_press; | ||
166 | + unsigned int noise; | ||
167 | + unsigned int state; | ||
168 | + unsigned int last_key; | ||
169 | +}; | ||
170 | + | ||
171 | +static int get_remocon_raw(void) | ||
172 | +{ | ||
173 | + int i, val; | ||
174 | + | ||
175 | + val = sharpsl_pm_pxa_read_max1111(MAX1111_REMCOM); | ||
176 | + for (i = 0; i < ARRAY_SIZE(remote_keys); ++i) { | ||
177 | + if (val >= remote_keys[i].min | ||
178 | + && val <= remote_keys[i].max) { | ||
179 | + printk("get_remocon_raw: VAL=%i, KEY=%i\n", val, remote_keys[i].key); | ||
180 | + return remote_keys[i].key; | ||
181 | + } | ||
182 | + } | ||
183 | + return 0; | ||
184 | +} | ||
185 | + | ||
186 | +static irqreturn_t sharpsl_rc_interrupt(int irq, void *dev_id, struct pt_regs *regs) | ||
187 | +{ | ||
188 | + struct sharpsl_rc *data = dev_id; | ||
189 | + DPRINTK("sharpsl_rc_interrupt %d\n", irq); | ||
190 | + if (!data->handling_press) { | ||
191 | + DPRINTK("handling interrupt"); | ||
192 | + data->handling_press = 1; | ||
193 | + data->noise = 0; | ||
194 | + data->state = 0; | ||
195 | + data->last_key = 0; | ||
196 | + | ||
197 | + reset_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP); | ||
198 | + | ||
199 | + mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS)); | ||
200 | + } | ||
201 | + return IRQ_HANDLED; | ||
202 | +} | ||
203 | + | ||
204 | +static void sharpsl_rc_timer_callback(unsigned long dataPtr) | ||
205 | +{ | ||
206 | + struct sharpsl_rc *data = (struct sharpsl_rc *) dataPtr; | ||
207 | + int timer = 1; | ||
208 | + int key = get_remocon_raw(); | ||
209 | + DPRINTK("timer callback, key: %d", key); | ||
210 | + | ||
211 | + //wait for value to stabilize | ||
212 | + if (data->state < WAIT_STATE) { | ||
213 | + if (data->last_key != key) { | ||
214 | + ++data->noise; | ||
215 | + if (data->noise > NOISE_THRESHOLD) { | ||
216 | + DPRINTK("too much noise, bailing"); | ||
217 | + timer = 0; | ||
218 | + } | ||
219 | + data->state = 0; | ||
220 | + } else { | ||
221 | + ++data->state; | ||
222 | + } | ||
223 | + data->last_key = key; | ||
224 | + | ||
225 | + //stable value, send event | ||
226 | + } else if (data->state == WAIT_STATE) { | ||
227 | + data->noise = 0; | ||
228 | + //non-key returned, skip the rest of the states and bail now | ||
229 | + if (data->last_key == 0) { | ||
230 | + DPRINTK("non-key detected %d, noise: %d", data->last_key, data->noise); | ||
231 | + timer = 0; | ||
232 | + //send button press | ||
233 | + } else { | ||
234 | + DPRINTK("key press detected %d, noise %d", data->last_key, data->noise); | ||
235 | + input_report_key(data->input, data->last_key, 1); | ||
236 | + } | ||
237 | + ++data->state; | ||
238 | + | ||
239 | + //wait until key is released | ||
240 | + } else if (data->state < WAIT_STATE * 2) { | ||
241 | + if (key == data->last_key | ||
242 | + && data->noise < NOISE_THRESHOLD) { | ||
243 | + data->state = WAIT_STATE + 1; | ||
244 | + ++data->noise; | ||
245 | + } else { | ||
246 | + ++data->state; | ||
247 | + } | ||
248 | + //key is released, send event | ||
249 | + } else { | ||
250 | + //send button release | ||
251 | + DPRINTK("release key %d", data->last_key); | ||
252 | + input_report_key(data->input, data->last_key, 0); | ||
253 | + timer = 0; | ||
254 | + } | ||
255 | + if (timer) { | ||
256 | + mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS)); | ||
257 | + } else { | ||
258 | + set_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP); | ||
259 | + data->handling_press = 0; | ||
260 | + } | ||
261 | +} | ||
262 | + | ||
263 | +static int __init sharpsl_rc_probe(struct platform_device *pdev) | ||
264 | +{ | ||
265 | + struct sharpsl_rc *sharpsl_rc; | ||
266 | + struct input_dev *input_dev; | ||
267 | + int i, ret; | ||
268 | + | ||
269 | + dev_dbg(&pdev->dev, "sharpsl_rc_probe\n"); | ||
270 | + | ||
271 | + sharpsl_rc = kzalloc(sizeof(struct sharpsl_rc), GFP_KERNEL); | ||
272 | + input_dev = input_allocate_device(); | ||
273 | + if (!sharpsl_rc || !input_dev) { | ||
274 | + kfree(sharpsl_rc); | ||
275 | + input_free_device(input_dev); | ||
276 | + return -ENOMEM; | ||
277 | + } | ||
278 | + | ||
279 | + platform_set_drvdata(pdev, sharpsl_rc); | ||
280 | + | ||
281 | + sharpsl_rc->dev = &pdev->dev; | ||
282 | + sharpsl_rc->input = input_dev; | ||
283 | + spin_lock_init(&sharpsl_rc->lock); | ||
284 | + | ||
285 | + /* Init Remote Control Timer */ | ||
286 | + init_timer(&sharpsl_rc->rctimer); | ||
287 | + sharpsl_rc->rctimer.function = sharpsl_rc_timer_callback; | ||
288 | + sharpsl_rc->rctimer.data = (unsigned long) sharpsl_rc; | ||
289 | + | ||
290 | + input_dev->name = "Sharp Remote Control CE-RHX"; | ||
291 | + input_dev->phys = "sharpsl_rc/input0"; | ||
292 | + input_dev->id.bustype = BUS_HOST; | ||
293 | + input_dev->id.vendor = 0x0001; | ||
294 | + input_dev->id.product = 0x0001; | ||
295 | + input_dev->id.version = 0x0100; | ||
296 | + input_dev->cdev.dev = &pdev->dev; | ||
297 | + input_dev->private = sharpsl_rc; | ||
298 | + | ||
299 | + input_dev->evbit[0] = BIT(EV_KEY); | ||
300 | + | ||
301 | + for (i = 0; i <= ARRAY_SIZE(remote_keys); i++) | ||
302 | + set_bit(remote_keys[i].key, input_dev->keybit); | ||
303 | + | ||
304 | + input_register_device(sharpsl_rc->input); | ||
305 | + | ||
306 | + pxa_gpio_mode(REMOTE_GPIO_INT | GPIO_IN); | ||
307 | + ret = request_irq(REMOTE_IRQ_INT, | ||
308 | + sharpsl_rc_interrupt, | ||
309 | + IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED, | ||
310 | + "sharpsl_rc", | ||
311 | + sharpsl_rc); | ||
312 | + if (ret < 0) { | ||
313 | + dev_dbg(&pdev->dev, "Can't get IRQ: %d!\n", i); | ||
314 | + kfree(sharpsl_rc); | ||
315 | + input_free_device(input_dev); | ||
316 | + return ret; | ||
317 | + } | ||
318 | + | ||
319 | + return 0; | ||
320 | +} | ||
321 | + | ||
322 | +static int sharpsl_rc_remove(struct platform_device *pdev) | ||
323 | +{ | ||
324 | + struct sharpsl_rc *sharpsl_rc = platform_get_drvdata(pdev); | ||
325 | + | ||
326 | + dev_dbg(&pdev->dev, "sharpsl_rc_remove\n"); | ||
327 | + | ||
328 | + free_irq(REMOTE_IRQ_INT, sharpsl_rc); | ||
329 | + del_timer_sync(&sharpsl_rc->rctimer); | ||
330 | + input_unregister_device(sharpsl_rc->input); | ||
331 | + kfree(sharpsl_rc); | ||
332 | + | ||
333 | + return 0; | ||
334 | +} | ||
335 | + | ||
336 | +static struct platform_driver sharpsl_rc_driver = { | ||
337 | + .probe = sharpsl_rc_probe, | ||
338 | + .remove = sharpsl_rc_remove, | ||
339 | + .suspend = NULL, | ||
340 | + .resume = NULL, | ||
341 | + .driver = { | ||
342 | + .name = "sharpsl-remote-control", | ||
343 | + }, | ||
344 | +}; | ||
345 | + | ||
346 | +static int __devinit sharpsl_rc_init(void) | ||
347 | +{ | ||
348 | + printk("sharpsl_rc_init\n"); | ||
349 | + return platform_driver_register(&sharpsl_rc_driver); | ||
350 | +} | ||
351 | + | ||
352 | +static void __exit sharpsl_rc_exit(void) | ||
353 | +{ | ||
354 | + printk("sharpsl_rc_exit\n"); | ||
355 | + platform_driver_unregister(&sharpsl_rc_driver); | ||
356 | +} | ||
357 | + | ||
358 | +module_init(sharpsl_rc_init); | ||
359 | +module_exit(sharpsl_rc_exit); | ||
360 | + | ||
361 | +MODULE_AUTHOR("Justin Patrin <papercrane@reversefold.com>"); | ||
362 | +MODULE_AUTHOR("Richard Purdie <rpurdie@rpsys.net>"); | ||
363 | +MODULE_DESCRIPTION("SharpSL Remote Control Driver"); | ||
364 | +MODULE_LICENSE("GPL"); | ||
365 | Index: linux-2.6.24/drivers/input/keyboard/spitzkbd.c | ||
366 | =================================================================== | ||
367 | --- linux-2.6.24.orig/drivers/input/keyboard/spitzkbd.c 2008-01-24 22:58:37.000000000 +0000 | ||
368 | +++ linux-2.6.24/drivers/input/keyboard/spitzkbd.c 2008-03-10 17:05:55.000000000 +0000 | ||
369 | @@ -19,6 +19,7 @@ | ||
370 | #include <linux/jiffies.h> | ||
371 | #include <linux/module.h> | ||
372 | #include <linux/slab.h> | ||
373 | +#include <linux/kmod.h> | ||
374 | |||
375 | #include <asm/arch/spitz.h> | ||
376 | #include <asm/arch/hardware.h> | ||
377 | @@ -279,13 +280,21 @@ | ||
378 | static int sharpsl_hinge_state; | ||
379 | static int hinge_count; | ||
380 | |||
381 | +void spitzkbd_handle_sharpsl_rc(void *arg) { | ||
382 | + request_module("sharpsl_rc"); | ||
383 | +} | ||
384 | + | ||
385 | +DECLARE_WORK(spitzkbd_work, spitzkbd_handle_sharpsl_rc); | ||
386 | + | ||
387 | static void spitzkbd_hinge_timer(unsigned long data) | ||
388 | { | ||
389 | struct spitzkbd *spitzkbd_data = (struct spitzkbd *) data; | ||
390 | unsigned long state; | ||
391 | unsigned long flags; | ||
392 | + unsigned int headphone, remote; | ||
393 | |||
394 | state = GPLR(SPITZ_GPIO_SWA) & (GPIO_bit(SPITZ_GPIO_SWA)|GPIO_bit(SPITZ_GPIO_SWB)); | ||
395 | + state |= (GPLR(SPITZ_GPIO_HP_IN) & GPIO_bit(SPITZ_GPIO_HP_IN)); | ||
396 | state |= (GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT)); | ||
397 | if (state != sharpsl_hinge_state) { | ||
398 | hinge_count = 0; | ||
399 | @@ -299,9 +308,18 @@ | ||
400 | |||
401 | input_report_switch(spitzkbd_data->input, SW_LID, ((GPLR(SPITZ_GPIO_SWA) & GPIO_bit(SPITZ_GPIO_SWA)) != 0)); | ||
402 | input_report_switch(spitzkbd_data->input, SW_TABLET_MODE, ((GPLR(SPITZ_GPIO_SWB) & GPIO_bit(SPITZ_GPIO_SWB)) != 0)); | ||
403 | - input_report_switch(spitzkbd_data->input, SW_HEADPHONE_INSERT, ((GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT)) != 0)); | ||
404 | + | ||
405 | + headphone = ((GPLR(SPITZ_GPIO_HP_IN) & GPIO_bit(SPITZ_GPIO_HP_IN)) != 0); | ||
406 | + input_report_switch(spitzkbd_data->input, SW_HEADPHONE_INSERT, headphone); | ||
407 | + | ||
408 | + remote = headphone && ((GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT)) == 0); | ||
409 | + input_report_switch(spitzkbd_data->input, SW_REMOTE_INSERT, remote); | ||
410 | input_sync(spitzkbd_data->input); | ||
411 | |||
412 | + if (remote) { | ||
413 | + schedule_work(&spitzkbd_work); | ||
414 | + } | ||
415 | + | ||
416 | spin_unlock_irqrestore(&spitzkbd_data->lock, flags); | ||
417 | } else { | ||
418 | mod_timer(&spitzkbd_data->htimer, jiffies + msecs_to_jiffies(HINGE_SCAN_INTERVAL)); | ||
419 | @@ -395,6 +413,7 @@ | ||
420 | set_bit(SW_LID, input_dev->swbit); | ||
421 | set_bit(SW_TABLET_MODE, input_dev->swbit); | ||
422 | set_bit(SW_HEADPHONE_INSERT, input_dev->swbit); | ||
423 | + set_bit(SW_REMOTE_INSERT, input_dev->swbit); | ||
424 | |||
425 | err = input_register_device(input_dev); | ||
426 | if (err) | ||
427 | @@ -432,9 +451,12 @@ | ||
428 | request_irq(SPITZ_IRQ_GPIO_SWB, spitzkbd_hinge_isr, | ||
429 | IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, | ||
430 | "Spitzkbd SWB", spitzkbd); | ||
431 | - request_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd_hinge_isr, | ||
432 | + request_irq(SPITZ_IRQ_GPIO_HP_IN, spitzkbd_hinge_isr, | ||
433 | IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, | ||
434 | "Spitzkbd HP", spitzkbd); | ||
435 | + request_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd_hinge_isr, | ||
436 | + IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED, | ||
437 | + "Spitzkbd HP Type", spitzkbd); | ||
438 | |||
439 | return 0; | ||
440 | |||
441 | @@ -455,6 +477,7 @@ | ||
442 | free_irq(SPITZ_IRQ_GPIO_ON_KEY, spitzkbd); | ||
443 | free_irq(SPITZ_IRQ_GPIO_SWA, spitzkbd); | ||
444 | free_irq(SPITZ_IRQ_GPIO_SWB, spitzkbd); | ||
445 | + free_irq(SPITZ_IRQ_GPIO_HP_IN, spitzkbd); | ||
446 | free_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd); | ||
447 | |||
448 | del_timer_sync(&spitzkbd->htimer); | ||
449 | Index: linux-2.6.24/arch/arm/mach-pxa/sharpsl.h | ||
450 | =================================================================== | ||
451 | --- linux-2.6.24.orig/arch/arm/mach-pxa/sharpsl.h 2008-03-10 17:05:35.000000000 +0000 | ||
452 | +++ linux-2.6.24/arch/arm/mach-pxa/sharpsl.h 2008-03-10 17:05:55.000000000 +0000 | ||
453 | @@ -37,15 +37,10 @@ | ||
454 | */ | ||
455 | #define READ_GPIO_BIT(x) (GPLR(x) & GPIO_bit(x)) | ||
456 | |||
457 | -/* MAX1111 Channel Definitions */ | ||
458 | -#define MAX1111_BATT_VOLT 4u | ||
459 | -#define MAX1111_BATT_TEMP 2u | ||
460 | -#define MAX1111_ACIN_VOLT 6u | ||
461 | - | ||
462 | extern struct battery_thresh spitz_battery_levels_acin[]; | ||
463 | extern struct battery_thresh spitz_battery_levels_noac[]; | ||
464 | void sharpsl_pm_pxa_init(void); | ||
465 | void sharpsl_pm_pxa_remove(void); | ||
466 | -int sharpsl_pm_pxa_read_max1111(int channel); | ||
467 | + | ||
468 | |||
469 | |||
470 | Index: linux-2.6.24/arch/arm/mach-pxa/sharpsl_pm.c | ||
471 | =================================================================== | ||
472 | --- linux-2.6.24.orig/arch/arm/mach-pxa/sharpsl_pm.c 2008-01-24 22:58:37.000000000 +0000 | ||
473 | +++ linux-2.6.24/arch/arm/mach-pxa/sharpsl_pm.c 2008-03-10 17:05:55.000000000 +0000 | ||
474 | @@ -135,6 +135,8 @@ | ||
475 | | MAXCTRL_SGL | MAXCTRL_UNI | MAXCTRL_STR); | ||
476 | } | ||
477 | |||
478 | +EXPORT_SYMBOL(sharpsl_pm_pxa_read_max1111); | ||
479 | + | ||
480 | void sharpsl_pm_pxa_init(void) | ||
481 | { | ||
482 | pxa_gpio_mode(sharpsl_pm.machinfo->gpio_acin | GPIO_IN); | ||
483 | Index: linux-2.6.24/include/asm-arm/hardware/sharpsl_pm.h | ||
484 | =================================================================== | ||
485 | --- linux-2.6.24.orig/include/asm-arm/hardware/sharpsl_pm.h 2008-01-24 22:58:37.000000000 +0000 | ||
486 | +++ linux-2.6.24/include/asm-arm/hardware/sharpsl_pm.h 2008-03-10 17:05:55.000000000 +0000 | ||
487 | @@ -104,3 +104,10 @@ | ||
488 | irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id); | ||
489 | irqreturn_t sharpsl_fatal_isr(int irq, void *dev_id); | ||
490 | |||
491 | +/* MAX1111 Channel Definitions */ | ||
492 | +#define MAX1111_REMCOM 0u | ||
493 | +#define MAX1111_BATT_VOLT 4u | ||
494 | +#define MAX1111_BATT_TEMP 2u | ||
495 | +#define MAX1111_ACIN_VOLT 6u | ||
496 | + | ||
497 | +int sharpsl_pm_pxa_read_max1111(int channel); | ||
498 | Index: linux-2.6.24/include/linux/input.h | ||
499 | =================================================================== | ||
500 | --- linux-2.6.24.orig/include/linux/input.h 2008-01-24 22:58:37.000000000 +0000 | ||
501 | +++ linux-2.6.24/include/linux/input.h 2008-03-10 17:05:55.000000000 +0000 | ||
502 | @@ -636,6 +636,7 @@ | ||
503 | #define SW_TABLET_MODE 0x01 /* set = tablet mode */ | ||
504 | #define SW_HEADPHONE_INSERT 0x02 /* set = inserted */ | ||
505 | #define SW_RADIO 0x03 /* set = radio enabled */ | ||
506 | +#define SW_REMOTE_INSERT 0x04 /* set = remote */ | ||
507 | #define SW_MAX 0x0f | ||
508 | #define SW_CNT (SW_MAX+1) | ||
509 | |||
510 | Index: linux-2.6.24/arch/arm/mach-pxa/spitz_pm.c | ||
511 | =================================================================== | ||
512 | --- linux-2.6.24.orig/arch/arm/mach-pxa/spitz_pm.c 2008-03-10 17:05:40.000000000 +0000 | ||
513 | +++ linux-2.6.24/arch/arm/mach-pxa/spitz_pm.c 2008-03-10 17:05:55.000000000 +0000 | ||
514 | @@ -162,6 +162,13 @@ | ||
515 | if (resume_on_alarm && (PEDR & PWER_RTC)) | ||
516 | is_resume |= PWER_RTC; | ||
517 | |||
518 | + 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)); | ||
519 | + | ||
520 | + //remote/headphone interrupt, wakeup | ||
521 | + if (PEDR == 0 && (PKSR & 0xc0d01) != 0) { | ||
522 | + is_resume |= PWER_RTC; | ||
523 | + } | ||
524 | + | ||
525 | dev_dbg(sharpsl_pm.dev, "is_resume: %x\n",is_resume); | ||
526 | return is_resume; | ||
527 | } | ||
diff --git a/meta/packages/linux/linux-rp-2.6.24/sharpsl-rc-r2.patch b/meta/packages/linux/linux-rp-2.6.24/sharpsl-rc-r2.patch new file mode 100644 index 0000000000..6fb34ec179 --- /dev/null +++ b/meta/packages/linux/linux-rp-2.6.24/sharpsl-rc-r2.patch | |||
@@ -0,0 +1,180 @@ | |||
1 | This patch adds support for Sharp CE-RH2 on Akita and CE-RH1 on C7x0. | ||
2 | |||
3 | This patch is a bit ugly: | ||
4 | - Device specific functions should be moved to platform infrastructure. | ||
5 | - Maybe define generic *_scoopexp functions handling Akita x Spitz differences. | ||
6 | |||
7 | Index: linux-2.6.24/drivers/input/keyboard/sharpsl_rc.c | ||
8 | =================================================================== | ||
9 | --- linux-2.6.24.orig/drivers/input/keyboard/sharpsl_rc.c 2008-03-08 19:29:02.000000000 +0000 | ||
10 | +++ linux-2.6.24/drivers/input/keyboard/sharpsl_rc.c 2008-03-08 22:23:35.000000000 +0000 | ||
11 | @@ -21,12 +21,10 @@ | ||
12 | #include <linux/module.h> | ||
13 | #include <linux/slab.h> | ||
14 | |||
15 | -#ifdef CONFIG_MACH_SPITZ | ||
16 | +#include <asm/mach-types.h> | ||
17 | #include <asm/arch/spitz.h> | ||
18 | -#endif | ||
19 | -#ifdef CONFIG_MACH_CORGI | ||
20 | +#include <asm/arch/akita.h> | ||
21 | #include <asm/arch/corgi.h> | ||
22 | -#endif | ||
23 | |||
24 | #include <asm/arch/hardware.h> | ||
25 | #include <asm/arch/pxa-regs.h> | ||
26 | @@ -42,12 +40,8 @@ | ||
27 | unsigned char key; | ||
28 | }; | ||
29 | |||
30 | -#ifdef CONFIG_MACH_SPITZ | ||
31 | -#define REMOTE_AKIN_PULLUP SPITZ_SCP2_AKIN_PULLUP | ||
32 | -#define REMOTE_SCOOP_DEVICE spitzscoop2_device | ||
33 | -#define REMOTE_GPIO_INT SPITZ_GPIO_AK_INT | ||
34 | -#define REMOTE_IRQ_INT SPITZ_IRQ_GPIO_AK_INT | ||
35 | -static struct remote_control_key remote_keys[] = { | ||
36 | +static struct remote_control_key remote_keys_spitz[] = { | ||
37 | + /* CE-RH2 values */ | ||
38 | { 25, 35, KEY_STOPCD}, | ||
39 | { 55, 65, KEY_PLAYPAUSE}, | ||
40 | { 85, 95, KEY_NEXTSONG}, | ||
41 | @@ -56,23 +50,15 @@ | ||
42 | { 180, 190, KEY_MUTE}, | ||
43 | { 215, 225, KEY_VOLUMEDOWN}, | ||
44 | }; | ||
45 | -#endif | ||
46 | -#ifdef CONFIG_MACH_CORGI | ||
47 | -#define REMOTE_AKIN_PULLUP CORGI_SCP_AKIN_PULLUP | ||
48 | -#define REMOTE_SCOOP_DEVICE corgiscoop_device | ||
49 | -#define REMOTE_GPIO_INT CORGI_GPIO_AK_INT | ||
50 | -#define REMOTE_IRQ_INT CORGI_IRQ_GPIO_AK_INT | ||
51 | -static struct remote_control_key remote_keys[] = { | ||
52 | - //These need to be fixed for the CE-RH1's values | ||
53 | - { 25, 35, KEY_STOPCD}, | ||
54 | - { 55, 65, KEY_PLAYPAUSE}, | ||
55 | - { 85, 95, KEY_NEXTSONG}, | ||
56 | - { 115, 125, KEY_VOLUMEUP}, | ||
57 | - { 145, 155, KEY_PREVIOUSSONG}, | ||
58 | - { 180, 190, KEY_MUTE}, | ||
59 | - { 215, 225, KEY_VOLUMEDOWN}, | ||
60 | +static struct remote_control_key remote_keys_corgi[] = { | ||
61 | + /* CE-RH1 values */ | ||
62 | + { 27, 35, KEY_STOPCD}, | ||
63 | + { 7, 13, KEY_PLAYPAUSE}, | ||
64 | + { 77, 93, KEY_NEXTSONG}, | ||
65 | + { 115, 132, KEY_VOLUMEUP}, | ||
66 | + { 46, 58, KEY_PREVIOUSSONG}, | ||
67 | + { 170, 186, KEY_VOLUMEDOWN}, | ||
68 | }; | ||
69 | -#endif | ||
70 | |||
71 | #define RELEASE_HI 230 | ||
72 | #define MAX_EARPHONE 6 | ||
73 | @@ -98,9 +84,17 @@ | ||
74 | static int get_remocon_raw(void) | ||
75 | { | ||
76 | int i, val; | ||
77 | + struct remote_control_key *remote_keys; | ||
78 | + | ||
79 | + if (machine_is_borzoi() || machine_is_spitz() || machine_is_akita()) | ||
80 | + remote_keys = remote_keys_spitz; | ||
81 | + else | ||
82 | + remote_keys = remote_keys_corgi; | ||
83 | |||
84 | val = sharpsl_pm_pxa_read_max1111(MAX1111_REMCOM); | ||
85 | - for (i = 0; i < ARRAY_SIZE(remote_keys); ++i) { | ||
86 | + for (i = 0; i < (machine_is_borzoi() || machine_is_spitz() || machine_is_akita() ? | ||
87 | + ARRAY_SIZE(remote_keys_spitz) : ARRAY_SIZE(remote_keys_corgi)); | ||
88 | + ++i) { | ||
89 | if (val >= remote_keys[i].min | ||
90 | && val <= remote_keys[i].max) { | ||
91 | printk("get_remocon_raw: VAL=%i, KEY=%i\n", val, remote_keys[i].key); | ||
92 | @@ -121,8 +115,12 @@ | ||
93 | data->state = 0; | ||
94 | data->last_key = 0; | ||
95 | |||
96 | - reset_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP); | ||
97 | - | ||
98 | + if (machine_is_borzoi() || machine_is_spitz()) | ||
99 | + reset_scoop_gpio(platform_scoop_config->devs[1].dev, SPITZ_SCP2_AKIN_PULLUP); | ||
100 | + else if (machine_is_akita()) | ||
101 | + akita_reset_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_AKIN_PULLUP); | ||
102 | + else | ||
103 | + reset_scoop_gpio(platform_scoop_config->devs[0].dev, CORGI_SCP_AKIN_PULLUP); | ||
104 | mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS)); | ||
105 | } | ||
106 | return IRQ_HANDLED; | ||
107 | @@ -182,7 +180,12 @@ | ||
108 | if (timer) { | ||
109 | mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS)); | ||
110 | } else { | ||
111 | - set_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP); | ||
112 | + if (machine_is_borzoi() || machine_is_spitz()) | ||
113 | + set_scoop_gpio(platform_scoop_config->devs[1].dev, SPITZ_SCP2_AKIN_PULLUP); | ||
114 | + else if (machine_is_akita()) | ||
115 | + akita_set_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_AKIN_PULLUP); | ||
116 | + else | ||
117 | + set_scoop_gpio(platform_scoop_config->devs[0].dev, CORGI_SCP_AKIN_PULLUP); | ||
118 | data->handling_press = 0; | ||
119 | } | ||
120 | } | ||
121 | @@ -192,6 +195,7 @@ | ||
122 | struct sharpsl_rc *sharpsl_rc; | ||
123 | struct input_dev *input_dev; | ||
124 | int i, ret; | ||
125 | + struct remote_control_key *remote_keys; | ||
126 | |||
127 | dev_dbg(&pdev->dev, "sharpsl_rc_probe\n"); | ||
128 | |||
129 | @@ -225,17 +229,32 @@ | ||
130 | |||
131 | input_dev->evbit[0] = BIT(EV_KEY); | ||
132 | |||
133 | - for (i = 0; i <= ARRAY_SIZE(remote_keys); i++) | ||
134 | + if (machine_is_borzoi() || machine_is_spitz() || machine_is_akita()) | ||
135 | + remote_keys = remote_keys_spitz; | ||
136 | + else | ||
137 | + remote_keys = remote_keys_corgi; | ||
138 | + for (i = 0; i < (machine_is_borzoi() || machine_is_spitz() || machine_is_akita() ? | ||
139 | + ARRAY_SIZE(remote_keys_spitz) : ARRAY_SIZE(remote_keys_corgi)); | ||
140 | + ++i) | ||
141 | set_bit(remote_keys[i].key, input_dev->keybit); | ||
142 | |||
143 | input_register_device(sharpsl_rc->input); | ||
144 | |||
145 | - pxa_gpio_mode(REMOTE_GPIO_INT | GPIO_IN); | ||
146 | - ret = request_irq(REMOTE_IRQ_INT, | ||
147 | - sharpsl_rc_interrupt, | ||
148 | - IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED, | ||
149 | - "sharpsl_rc", | ||
150 | - sharpsl_rc); | ||
151 | + if (machine_is_borzoi() || machine_is_spitz() || machine_is_akita()) { | ||
152 | + pxa_gpio_mode(SPITZ_GPIO_AK_INT | GPIO_IN); | ||
153 | + ret = request_irq(SPITZ_IRQ_GPIO_AK_INT, | ||
154 | + sharpsl_rc_interrupt, | ||
155 | + IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED, | ||
156 | + "sharpsl_rc", | ||
157 | + sharpsl_rc); | ||
158 | + } else { | ||
159 | + pxa_gpio_mode(CORGI_GPIO_AK_INT | GPIO_IN); | ||
160 | + ret = request_irq(CORGI_IRQ_GPIO_AK_INT, | ||
161 | + sharpsl_rc_interrupt, | ||
162 | + IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED, | ||
163 | + "sharpsl_rc", | ||
164 | + sharpsl_rc); | ||
165 | + } | ||
166 | if (ret < 0) { | ||
167 | dev_dbg(&pdev->dev, "Can't get IRQ: %d!\n", i); | ||
168 | kfree(sharpsl_rc); | ||
169 | @@ -252,7 +271,10 @@ | ||
170 | |||
171 | dev_dbg(&pdev->dev, "sharpsl_rc_remove\n"); | ||
172 | |||
173 | - free_irq(REMOTE_IRQ_INT, sharpsl_rc); | ||
174 | + if (machine_is_borzoi() || machine_is_spitz() || machine_is_akita()) | ||
175 | + free_irq(SPITZ_IRQ_GPIO_AK_INT, sharpsl_rc); | ||
176 | + else | ||
177 | + free_irq(CORGI_IRQ_GPIO_AK_INT, sharpsl_rc); | ||
178 | del_timer_sync(&sharpsl_rc->rctimer); | ||
179 | input_unregister_device(sharpsl_rc->input); | ||
180 | kfree(sharpsl_rc); | ||
diff --git a/meta/packages/linux/linux-rp-2.6.24/spitz_h_rewrite.patch b/meta/packages/linux/linux-rp-2.6.24/spitz_h_rewrite.patch new file mode 100644 index 0000000000..df6d5f66c2 --- /dev/null +++ b/meta/packages/linux/linux-rp-2.6.24/spitz_h_rewrite.patch | |||
@@ -0,0 +1,497 @@ | |||
1 | http://www.uwsg.indiana.edu/hypermail/linux/kernel/0802.1/3541.html | ||
2 | |||
3 | Here is a rewrite of spitz.h, which includes comments documenting | ||
4 | function of particular GPIO pins. | ||
5 | |||
6 | spitz_h_rewrite.patch provides: | ||
7 | - no changes in compiled code | ||
8 | - partial spitz.h rewrite: | ||
9 | * organized by function | ||
10 | * describes complete GPIO pinout | ||
11 | * comments added | ||
12 | * removed defines cloning pxa-regs.h | ||
13 | - prefer generic pxa-regs.h GPIO if available | ||
14 | - use GPIO names instead of numbers | ||
15 | |||
16 | Thanks to Trisoft for providing needed information. | ||
17 | |||
18 | Index: linux-2.6.24/arch/arm/mach-pxa/spitz_pm.c | ||
19 | =================================================================== | ||
20 | --- linux-2.6.24.orig/arch/arm/mach-pxa/spitz_pm.c 2008-01-24 22:58:37.000000000 +0000 | ||
21 | +++ linux-2.6.24/arch/arm/mach-pxa/spitz_pm.c 2008-02-13 13:49:22.000000000 +0000 | ||
22 | @@ -110,9 +110,9 @@ | ||
23 | pxa_gpio_mode(GPIO18_RDY|GPIO_OUT | GPIO_DFLT_HIGH); | ||
24 | |||
25 | PRER = GPIO_bit(SPITZ_GPIO_KEY_INT); | ||
26 | - PFER = GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(SPITZ_GPIO_RESET); | ||
27 | - PWER = GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(SPITZ_GPIO_RESET) | PWER_RTC; | ||
28 | - PKWR = GPIO_bit(SPITZ_GPIO_SYNC) | GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(SPITZ_GPIO_RESET); | ||
29 | + PFER = GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(GPIO1_RST); | ||
30 | + PWER = GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(GPIO1_RST) | PWER_RTC; | ||
31 | + PKWR = GPIO_bit(SPITZ_GPIO_SYNC) | GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(GPIO1_RST); | ||
32 | PKSR = 0xffffffff; // clear | ||
33 | |||
34 | /* nRESET_OUT Disable */ | ||
35 | @@ -128,7 +128,7 @@ | ||
36 | static void spitz_postsuspend(void) | ||
37 | { | ||
38 | pxa_gpio_mode(GPIO18_RDY_MD); | ||
39 | - pxa_gpio_mode(10 | GPIO_IN); | ||
40 | + pxa_gpio_mode(SPITZ_GPIO_NC_10 | GPIO_IN); | ||
41 | } | ||
42 | |||
43 | static int spitz_should_wakeup(unsigned int resume_on_alarm) | ||
44 | Index: linux-2.6.24/drivers/video/pxafb.c | ||
45 | =================================================================== | ||
46 | --- linux-2.6.24.orig/drivers/video/pxafb.c 2008-02-13 13:49:04.000000000 +0000 | ||
47 | +++ linux-2.6.24/drivers/video/pxafb.c 2008-02-13 13:49:57.000000000 +0000 | ||
48 | @@ -920,7 +920,7 @@ | ||
49 | return; | ||
50 | } | ||
51 | |||
52 | - for (gpio = 58; ldd_bits > 0; gpio++, ldd_bits--) { | ||
53 | + for (gpio = GPIO58_LDD_0; ldd_bits > 0; gpio++, ldd_bits--) { | ||
54 | pxa_gpio_mode(gpio | GPIO_ALT_FN_2_OUT); | ||
55 | } | ||
56 | pxa_gpio_mode(GPIO74_LCD_FCLK_MD); | ||
57 | Index: linux-2.6.24/include/asm-arm/arch-pxa/akita.h | ||
58 | =================================================================== | ||
59 | --- linux-2.6.24.orig/include/asm-arm/arch-pxa/akita.h 2008-01-24 22:58:37.000000000 +0000 | ||
60 | +++ linux-2.6.24/include/asm-arm/arch-pxa/akita.h 2008-02-13 13:49:22.000000000 +0000 | ||
61 | @@ -12,11 +12,11 @@ | ||
62 | /* Akita IO Expander GPIOs */ | ||
63 | |||
64 | #define AKITA_IOEXP_RESERVED_7 (1 << 7) | ||
65 | -#define AKITA_IOEXP_IR_ON (1 << 6) | ||
66 | -#define AKITA_IOEXP_AKIN_PULLUP (1 << 5) | ||
67 | -#define AKITA_IOEXP_BACKLIGHT_CONT (1 << 4) | ||
68 | -#define AKITA_IOEXP_BACKLIGHT_ON (1 << 3) | ||
69 | -#define AKITA_IOEXP_MIC_BIAS (1 << 2) | ||
70 | +#define AKITA_IOEXP_IR_ON (1 << 6) /* IrDA On */ | ||
71 | +#define AKITA_IOEXP_AKIN_PULLUP (1 << 5) /* Pull-Up for Remote */ | ||
72 | +#define AKITA_IOEXP_BACKLIGHT_CONT (1 << 4) /* Backlight Control */ | ||
73 | +#define AKITA_IOEXP_BACKLIGHT_ON (1 << 3) /* Backlight On */ | ||
74 | +#define AKITA_IOEXP_MIC_BIAS (1 << 2) /* Mic Bias On */ | ||
75 | #define AKITA_IOEXP_RESERVED_1 (1 << 1) | ||
76 | #define AKITA_IOEXP_RESERVED_0 (1 << 0) | ||
77 | |||
78 | Index: linux-2.6.24/include/asm-arm/arch-pxa/pxa-regs.h | ||
79 | =================================================================== | ||
80 | --- linux-2.6.24.orig/include/asm-arm/arch-pxa/pxa-regs.h 2008-02-13 13:49:07.000000000 +0000 | ||
81 | +++ linux-2.6.24/include/asm-arm/arch-pxa/pxa-regs.h 2008-02-13 13:49:22.000000000 +0000 | ||
82 | @@ -1334,6 +1334,7 @@ | ||
83 | #define GPIO85_nPCE_1 85 /* Card Enable for Card Space (PXA27x) */ | ||
84 | #define GPIO92_MMCDAT0 92 /* MMC DAT0 (PXA27x) */ | ||
85 | #define GPIO102_nPCE_1 102 /* PCMCIA (PXA27x) */ | ||
86 | +#define GPIO104_pSKTSEL 104 /* PCMCIA Socket Select (PXA27x) */ | ||
87 | #define GPIO109_MMCDAT1 109 /* MMC DAT1 (PXA27x) */ | ||
88 | #define GPIO110_MMCDAT2 110 /* MMC DAT2 (PXA27x) */ | ||
89 | #define GPIO110_MMCCS0 110 /* MMC Chip Select 0 (PXA27x) */ | ||
90 | Index: linux-2.6.24/include/asm-arm/arch-pxa/spitz.h | ||
91 | =================================================================== | ||
92 | --- linux-2.6.24.orig/include/asm-arm/arch-pxa/spitz.h 2008-02-13 13:49:01.000000000 +0000 | ||
93 | +++ linux-2.6.24/include/asm-arm/arch-pxa/spitz.h 2008-02-13 13:49:22.000000000 +0000 | ||
94 | @@ -1,8 +1,9 @@ | ||
95 | /* | ||
96 | - * Hardware specific definitions for SL-Cx000 series of PDAs | ||
97 | + * Hardware specific definitions for SL-Cxx00 series of PDAs | ||
98 | * | ||
99 | * Copyright (c) 2005 Alexander Wykes | ||
100 | * Copyright (c) 2005 Richard Purdie | ||
101 | + * Copyright (c) 2008 Stanislav Brabec | ||
102 | * | ||
103 | * Based on Sharp's 2.4 kernel patches | ||
104 | * | ||
105 | @@ -13,140 +14,257 @@ | ||
106 | */ | ||
107 | #ifndef __ASM_ARCH_SPITZ_H | ||
108 | #define __ASM_ARCH_SPITZ_H 1 | ||
109 | -#endif | ||
110 | |||
111 | -#include <linux/fb.h> | ||
112 | +#include <asm-arm/arch-pxa/irqs.h> | ||
113 | +#include <linux/platform_device.h> | ||
114 | |||
115 | /* Spitz/Akita GPIOs */ | ||
116 | |||
117 | -#define SPITZ_GPIO_KEY_INT (0) /* Key Interrupt */ | ||
118 | -#define SPITZ_GPIO_RESET (1) | ||
119 | -#define SPITZ_GPIO_nSD_DETECT (9) | ||
120 | -#define SPITZ_GPIO_TP_INT (11) /* Touch Panel interrupt */ | ||
121 | -#define SPITZ_GPIO_AK_INT (13) /* Remote Control */ | ||
122 | -#define SPITZ_GPIO_ADS7846_CS (14) | ||
123 | -#define SPITZ_GPIO_SYNC (16) | ||
124 | -#define SPITZ_GPIO_MAX1111_CS (20) | ||
125 | -#define SPITZ_GPIO_FATAL_BAT (21) | ||
126 | -#define SPITZ_GPIO_HSYNC (22) | ||
127 | -#define SPITZ_GPIO_nSD_CLK (32) | ||
128 | -#define SPITZ_GPIO_USB_DEVICE (35) | ||
129 | -#define SPITZ_GPIO_USB_HOST (37) | ||
130 | -#define SPITZ_GPIO_USB_CONNECT (41) | ||
131 | -#define SPITZ_GPIO_LCDCON_CS (53) | ||
132 | -#define SPITZ_GPIO_nPCE (54) | ||
133 | -#define SPITZ_GPIO_nSD_WP (81) | ||
134 | -#define SPITZ_GPIO_ON_RESET (89) | ||
135 | -#define SPITZ_GPIO_BAT_COVER (90) | ||
136 | -#define SPITZ_GPIO_CF_CD (94) | ||
137 | -#define SPITZ_GPIO_ON_KEY (95) | ||
138 | -#define SPITZ_GPIO_SWA (97) | ||
139 | -#define SPITZ_GPIO_SWB (96) | ||
140 | -#define SPITZ_GPIO_CHRG_FULL (101) | ||
141 | -#define SPITZ_GPIO_CO (101) | ||
142 | -#define SPITZ_GPIO_CF_IRQ (105) | ||
143 | -#define SPITZ_GPIO_AC_IN (115) | ||
144 | -#define SPITZ_GPIO_HP_IN (116) | ||
145 | +/* This list refers to all GPIO pins either in defines or in comments. | ||
146 | + * | ||
147 | + * GPIO pins not listed: | ||
148 | + * GPIO2 SYS_EN: System Power Enable | ||
149 | + * GPIO5-GPIO8 PWR_CAP0-PWR_CAP3: sleep DC-DC converter power capacitors | ||
150 | + * GPIO40 not connected | ||
151 | + */ | ||
152 | |||
153 | -/* Spitz Only GPIOs */ | ||
154 | |||
155 | -#define SPITZ_GPIO_CF2_IRQ (106) /* CF slot1 Ready */ | ||
156 | -#define SPITZ_GPIO_CF2_CD (93) | ||
157 | +/* Spitz/Akita System GPIO */ | ||
158 | + | ||
159 | +#define SPITZ_GPIO_KEY_INT (0) /* Key Interrupt */ | ||
160 | +#define SPITZ_GPIO_SYNC (16) /* IOPORT Wake Up (input) */ | ||
161 | +#define SPITZ_GPIO_NAND_CS (79) /* NAND Flash Chip Select */ | ||
162 | +#define SPITZ_GPIO_NC_10 (10) /* Not Connected (but used in kernel) */ | ||
163 | +/* This GPIO pin is connected: | ||
164 | + * GPIO1_RST | ||
165 | + */ | ||
166 | |||
167 | |||
168 | +/* Compact Flash Interface */ | ||
169 | + | ||
170 | +/* Spitz/Akita Compact Flash Interface */ | ||
171 | +#define SPITZ_GPIO_CF_CD (94) /* CF IRQ */ | ||
172 | +#define SPITZ_GPIO_CF_IRQ (105) /* CF Ready */ | ||
173 | +/* These GPIO pins are connected: | ||
174 | + * GPIO48_nPOE | ||
175 | + * GPIO49_nPWE | ||
176 | + * GPIO50_nPIOR | ||
177 | + * GPIO51_nPIOW | ||
178 | + * GPIO54_nPCE_2 | ||
179 | + * GPIO55_nPREG | ||
180 | + * GPIO56_nPWAIT | ||
181 | + * GPIO57_nIOIS16 | ||
182 | + * GPIO80_nCS_4 | ||
183 | + * GPIO85_nPCE_1 | ||
184 | + * GPIO104_pSKTSEL | ||
185 | + */ | ||
186 | + | ||
187 | +/* Spitz only Compact Flash Interface */ | ||
188 | +#define SPITZ_GPIO_CF2_CD (93) /* CF slot1 IRQ */ | ||
189 | +#define SPITZ_GPIO_CF2_IRQ (106) /* CF slot1 Ready */ | ||
190 | +/* This GPIO pin is connected: | ||
191 | + * GPIO78_nCS_2 | ||
192 | + */ | ||
193 | + | ||
194 | + | ||
195 | +/* Spitz/Akita Battery, Power and Service Connector */ | ||
196 | + | ||
197 | +#define SPITZ_GPIO_FATAL_BAT (21) /* Fatal Battery */ | ||
198 | +#define SPITZ_GPIO_BAT_COVER (90) /* Battery Cover switch */ | ||
199 | +#define SPITZ_GPIO_BAT_COVER2 (15) /* Battery Cover switch, parallel pin */ | ||
200 | +#define SPITZ_GPIO_CHRG_FULL (101) /* Battery Full */ | ||
201 | +#define SPITZ_GPIO_AC_IN (115) /* External Power Supply is active */ | ||
202 | +#define SPITZ_GPIO_ON_RESET (89) /* Software Reset */ | ||
203 | +#define SPITZ_GPIO_SERVICE0 (83) /* Service Connector */ | ||
204 | +#define SPITZ_GPIO_SERVICE1 (84) /* Service Connector */ | ||
205 | +/* This GPIO pin is connected: | ||
206 | + * GPIO18_RDY | ||
207 | + */ | ||
208 | + | ||
209 | + | ||
210 | +/* Spitz/Akita Display Controller */ | ||
211 | + | ||
212 | +#define SPITZ_GPIO_HSYNC (22) /* Line Sync Feedback */ | ||
213 | +/* These GPIO pins are connected: | ||
214 | + * GPIO58_LDD_0-GPIO58_LDD_15 | ||
215 | + * GPIO74_LCD_FCLK | ||
216 | + * GPIO75_LCD_LCLK | ||
217 | + * GPIO76_LCD_PCLK | ||
218 | + * GPIO77_LCD_ACBIAS | ||
219 | + */ | ||
220 | + | ||
221 | + | ||
222 | +/* Spitz/Akita SSP/SPI Bus and Devices */ | ||
223 | + | ||
224 | +#define SPITZ_GPIO_SSP_CLK (19) /* SSP bus Clock */ | ||
225 | +#define SPITZ_GPIO_SSP_RXD (86) /* SSP bus RxD */ | ||
226 | +#define SPITZ_GPIO_SSP_TXD (87) /* SSP bus TxD */ | ||
227 | +#define SPITZ_GPIO_TP_INT (11) /* Touch Panel IRQ */ | ||
228 | +#define SPITZ_GPIO_ADS7846_CS (14) /* Touch Panel Controller Chip Select */ | ||
229 | +#define SPITZ_GPIO_MAX1111_CS (20) /* Multi Channel ADC Chip Select */ | ||
230 | +#define SPITZ_GPIO_LCDCON_CS (53) /* LCD Controller Chip Select */ | ||
231 | + | ||
232 | + | ||
233 | +/* Spitz/Akita Supplementary USB OTG Pins */ | ||
234 | + | ||
235 | +#define SPITZ_GPIO_USB_DEVICE (35) /* USB Client power is present */ | ||
236 | +#define SPITZ_GPIO_USB_HOST (37) /* USB OTG 5V Host power supply control */ | ||
237 | +#define SPITZ_GPIO_USB_CONNECT (41) /* USB Host Cable is connected */ | ||
238 | + | ||
239 | + | ||
240 | +/* Spitz/Akita Audio */ | ||
241 | + | ||
242 | +#define SPITZ_GPIO_HP_IN (116) /* CPU Headphone detect */ | ||
243 | +#define SPITZ_GPIO_AK_INT (13) /* Remote Control detect */ | ||
244 | +/* These GPIO AC97 pins are connected: | ||
245 | + * GPIO28_BITCLK | ||
246 | + * GPIO29_SDATA_IN | ||
247 | + * GPIO30_SDATA_OUT | ||
248 | + * GPIO31_SYNC | ||
249 | + * GPIO113_AC97_RESET_N | ||
250 | + */ | ||
251 | + | ||
252 | + | ||
253 | +/* Spitz/Akita SD Slot */ | ||
254 | + | ||
255 | +#define SPITZ_GPIO_nSD_DETECT (9) /* SD Card Presence */ | ||
256 | +#define SPITZ_GPIO_nSD_WP (81) /* SD Write Protection */ | ||
257 | +/* These GPIO pins are connected: | ||
258 | + * GPIO32_MMCCLK | ||
259 | + * GPIO92_MMCDAT0 | ||
260 | + * GPIO109_MMCDAT1 | ||
261 | + * GPIO110_MMCDAT2 | ||
262 | + * GPIO111_MMCDAT3 | ||
263 | + * GPIO112_MMCCMD | ||
264 | + */ | ||
265 | + | ||
266 | +/* Spitz/Akita I2C bus */ | ||
267 | +#define SPITZ_GPIO_SCL (117) /* I2C SCL */ | ||
268 | +#define SPITZ_GPIO_SDA (118) /* I2C SDA */ | ||
269 | +#define SPITZ_GPIO_PWR_SCL (3) /* I2C SCL power */ | ||
270 | +#define SPITZ_GPIO_PWR_SDA (4) /* I2C SDA power */ | ||
271 | + | ||
272 | +/* audio codec pins */ | ||
273 | + | ||
274 | + | ||
275 | +/* Spitz/Akita UART ports */ | ||
276 | + | ||
277 | +/* Fully Featured UART - connected to IOPORT connector */ | ||
278 | +#define SPITZ_GPIO_FFRXD (102) /* IOPORT has nRXD inverted levels */ | ||
279 | +#define SPITZ_GPIO_FFTXD (99) /* IOPORT has nTXD inverted levels */ | ||
280 | +#define SPITZ_GPIO_FFRTS (98) | ||
281 | +#define SPITZ_GPIO_FFCTS (100) | ||
282 | +#define SPITZ_GPIO_FFDTR (82) | ||
283 | +#define SPITZ_GPIO_FFDSR (33) | ||
284 | + | ||
285 | +/* These UART GPIO pins are connected to Bluetooth | ||
286 | + * (only on Akita version with Bluetooth) | ||
287 | + * GPIO42_BTRXD | ||
288 | + * GPIO43_BTTXD | ||
289 | + * GPIO44_BTCTS | ||
290 | + * GPIO45_BTRTS | ||
291 | + */ | ||
292 | + | ||
293 | +/* These UART GPIO pins are connected to IrDA: | ||
294 | + * GPIO46_STRXD | ||
295 | + * GPIO47_STTXD | ||
296 | + */ | ||
297 | + | ||
298 | /* Spitz/Akita Keyboard Definitions */ | ||
299 | |||
300 | -#define SPITZ_KEY_STROBE_NUM (11) | ||
301 | -#define SPITZ_KEY_SENSE_NUM (7) | ||
302 | -#define SPITZ_GPIO_G0_STROBE_BIT 0x0f800000 | ||
303 | -#define SPITZ_GPIO_G1_STROBE_BIT 0x00100000 | ||
304 | -#define SPITZ_GPIO_G2_STROBE_BIT 0x01000000 | ||
305 | -#define SPITZ_GPIO_G3_STROBE_BIT 0x00041880 | ||
306 | -#define SPITZ_GPIO_G0_SENSE_BIT 0x00021000 | ||
307 | -#define SPITZ_GPIO_G1_SENSE_BIT 0x000000d4 | ||
308 | -#define SPITZ_GPIO_G2_SENSE_BIT 0x08000000 | ||
309 | -#define SPITZ_GPIO_G3_SENSE_BIT 0x00000000 | ||
310 | - | ||
311 | -#define SPITZ_GPIO_KEY_STROBE0 88 | ||
312 | -#define SPITZ_GPIO_KEY_STROBE1 23 | ||
313 | -#define SPITZ_GPIO_KEY_STROBE2 24 | ||
314 | -#define SPITZ_GPIO_KEY_STROBE3 25 | ||
315 | -#define SPITZ_GPIO_KEY_STROBE4 26 | ||
316 | -#define SPITZ_GPIO_KEY_STROBE5 27 | ||
317 | -#define SPITZ_GPIO_KEY_STROBE6 52 | ||
318 | -#define SPITZ_GPIO_KEY_STROBE7 103 | ||
319 | -#define SPITZ_GPIO_KEY_STROBE8 107 | ||
320 | -#define SPITZ_GPIO_KEY_STROBE9 108 | ||
321 | -#define SPITZ_GPIO_KEY_STROBE10 114 | ||
322 | - | ||
323 | -#define SPITZ_GPIO_KEY_SENSE0 12 | ||
324 | -#define SPITZ_GPIO_KEY_SENSE1 17 | ||
325 | -#define SPITZ_GPIO_KEY_SENSE2 91 | ||
326 | -#define SPITZ_GPIO_KEY_SENSE3 34 | ||
327 | -#define SPITZ_GPIO_KEY_SENSE4 36 | ||
328 | -#define SPITZ_GPIO_KEY_SENSE5 38 | ||
329 | -#define SPITZ_GPIO_KEY_SENSE6 39 | ||
330 | +#define SPITZ_KEY_STROBE_NUM (11) | ||
331 | +#define SPITZ_KEY_SENSE_NUM (7) | ||
332 | +#define SPITZ_GPIO_G0_STROBE_BIT 0x0f800000 | ||
333 | +#define SPITZ_GPIO_G1_STROBE_BIT 0x00100000 | ||
334 | +#define SPITZ_GPIO_G2_STROBE_BIT 0x01000000 | ||
335 | +#define SPITZ_GPIO_G3_STROBE_BIT 0x00041880 | ||
336 | +#define SPITZ_GPIO_G0_SENSE_BIT 0x00021000 | ||
337 | +#define SPITZ_GPIO_G1_SENSE_BIT 0x000000d4 | ||
338 | +#define SPITZ_GPIO_G2_SENSE_BIT 0x08000000 | ||
339 | +#define SPITZ_GPIO_G3_SENSE_BIT 0x00000000 | ||
340 | +#define SPITZ_GPIO_KEY_STROBE0 (88) | ||
341 | +#define SPITZ_GPIO_KEY_STROBE1 (23) | ||
342 | +#define SPITZ_GPIO_KEY_STROBE2 (24) | ||
343 | +#define SPITZ_GPIO_KEY_STROBE3 (25) | ||
344 | +#define SPITZ_GPIO_KEY_STROBE4 (26) | ||
345 | +#define SPITZ_GPIO_KEY_STROBE5 (27) | ||
346 | +#define SPITZ_GPIO_KEY_STROBE6 (52) | ||
347 | +#define SPITZ_GPIO_KEY_STROBE7 (103) | ||
348 | +#define SPITZ_GPIO_KEY_STROBE8 (107) | ||
349 | +#define SPITZ_GPIO_KEY_STROBE9 (108) | ||
350 | +#define SPITZ_GPIO_KEY_STROBE10 (114) | ||
351 | +#define SPITZ_GPIO_KEY_SENSE0 (12) | ||
352 | +#define SPITZ_GPIO_KEY_SENSE1 (17) | ||
353 | +#define SPITZ_GPIO_KEY_SENSE2 (91) | ||
354 | +#define SPITZ_GPIO_KEY_SENSE3 (34) | ||
355 | +#define SPITZ_GPIO_KEY_SENSE4 (36) | ||
356 | +#define SPITZ_GPIO_KEY_SENSE5 (38) | ||
357 | +#define SPITZ_GPIO_KEY_SENSE6 (39) | ||
358 | + | ||
359 | +#define SPITZ_GPIO_SWA (97) /* Keyboard Interrupt A */ | ||
360 | +#define SPITZ_GPIO_SWB (96) /* Keyboard Interrupt B */ | ||
361 | +#define SPITZ_GPIO_ON_KEY (95) /* Power On Key */ | ||
362 | |||
363 | |||
364 | -/* Spitz Scoop Device (No. 1) GPIOs */ | ||
365 | +/* Spitz/Akita Scoop Device (No. 1) GPIOs */ | ||
366 | /* Suspend States in comments */ | ||
367 | -#define SPITZ_SCP_LED_GREEN SCOOP_GPCR_PA11 /* Keep */ | ||
368 | -#define SPITZ_SCP_JK_B SCOOP_GPCR_PA12 /* Keep */ | ||
369 | -#define SPITZ_SCP_CHRG_ON SCOOP_GPCR_PA13 /* Keep */ | ||
370 | -#define SPITZ_SCP_MUTE_L SCOOP_GPCR_PA14 /* Low */ | ||
371 | -#define SPITZ_SCP_MUTE_R SCOOP_GPCR_PA15 /* Low */ | ||
372 | -#define SPITZ_SCP_CF_POWER SCOOP_GPCR_PA16 /* Keep */ | ||
373 | -#define SPITZ_SCP_LED_ORANGE SCOOP_GPCR_PA17 /* Keep */ | ||
374 | -#define SPITZ_SCP_JK_A SCOOP_GPCR_PA18 /* Low */ | ||
375 | -#define SPITZ_SCP_ADC_TEMP_ON SCOOP_GPCR_PA19 /* Low */ | ||
376 | +#define SPITZ_SCP_LED_GREEN SCOOP_GPCR_PA11 /* Green LED, Keep */ | ||
377 | +#define SPITZ_SCP_JK_B SCOOP_GPCR_PA12 /* Fast Charge On, Keep */ | ||
378 | +#define SPITZ_SCP_CHRG_ON SCOOP_GPCR_PA13 /* Charge On, Keep */ | ||
379 | +#define SPITZ_SCP_MUTE_L SCOOP_GPCR_PA14 /* Extra Mute Left, Low */ | ||
380 | +#define SPITZ_SCP_MUTE_R SCOOP_GPCR_PA15 /* Extra Mute Right, Low */ | ||
381 | +#define SPITZ_SCP_CF_POWER SCOOP_GPCR_PA16 /* CF+SD Power Circuit, Keep */ | ||
382 | +#define SPITZ_SCP_LED_ORANGE SCOOP_GPCR_PA17 /* Orange LED, Keep */ | ||
383 | +#define SPITZ_SCP_JK_A SCOOP_GPCR_PA18 /* Dummy Load, Low */ | ||
384 | +#define SPITZ_SCP_ADC_TEMP_ON SCOOP_GPCR_PA19 /* Battery Sensor On, Low */ | ||
385 | |||
386 | #define SPITZ_SCP_IO_DIR (SPITZ_SCP_LED_GREEN | SPITZ_SCP_JK_B | SPITZ_SCP_CHRG_ON | \ | ||
387 | - SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | SPITZ_SCP_LED_ORANGE | \ | ||
388 | - SPITZ_SCP_CF_POWER | SPITZ_SCP_JK_A | SPITZ_SCP_ADC_TEMP_ON) | ||
389 | + SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | SPITZ_SCP_LED_ORANGE | \ | ||
390 | + SPITZ_SCP_CF_POWER | SPITZ_SCP_JK_A | SPITZ_SCP_ADC_TEMP_ON) | ||
391 | #define SPITZ_SCP_IO_OUT (SPITZ_SCP_CHRG_ON | SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R) | ||
392 | #define SPITZ_SCP_SUS_CLR (SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | SPITZ_SCP_JK_A | SPITZ_SCP_ADC_TEMP_ON) | ||
393 | #define SPITZ_SCP_SUS_SET 0 | ||
394 | |||
395 | /* Spitz Scoop Device (No. 2) GPIOs */ | ||
396 | -/* Suspend States in comments */ | ||
397 | -#define SPITZ_SCP2_IR_ON SCOOP_GPCR_PA11 /* High */ | ||
398 | -#define SPITZ_SCP2_AKIN_PULLUP SCOOP_GPCR_PA12 /* Keep */ | ||
399 | -#define SPITZ_SCP2_RESERVED_1 SCOOP_GPCR_PA13 /* High */ | ||
400 | -#define SPITZ_SCP2_RESERVED_2 SCOOP_GPCR_PA14 /* Low */ | ||
401 | -#define SPITZ_SCP2_RESERVED_3 SCOOP_GPCR_PA15 /* Low */ | ||
402 | -#define SPITZ_SCP2_RESERVED_4 SCOOP_GPCR_PA16 /* Low */ | ||
403 | -#define SPITZ_SCP2_BACKLIGHT_CONT SCOOP_GPCR_PA17 /* Low */ | ||
404 | -#define SPITZ_SCP2_BACKLIGHT_ON SCOOP_GPCR_PA18 /* Low */ | ||
405 | -#define SPITZ_SCP2_MIC_BIAS SCOOP_GPCR_PA19 /* Low */ | ||
406 | +/* Suspend States in comments | ||
407 | + * Spitz only, Akita uses corresponding AKITA_IOEXP_ */ | ||
408 | +#define SPITZ_SCP2_IR_ON SCOOP_GPCR_PA11 /* IrDA On, High */ | ||
409 | +#define SPITZ_SCP2_AKIN_PULLUP SCOOP_GPCR_PA12 /* Pull-Up for Remote, Keep */ | ||
410 | +#define SPITZ_SCP2_RESERVED_1 SCOOP_GPCR_PA13 /* High */ | ||
411 | +#define SPITZ_SCP2_RESERVED_2 SCOOP_GPCR_PA14 /* Low */ | ||
412 | +#define SPITZ_SCP2_RESERVED_3 SCOOP_GPCR_PA15 /* Low */ | ||
413 | +#define SPITZ_SCP2_RESERVED_4 SCOOP_GPCR_PA16 /* Low */ | ||
414 | +#define SPITZ_SCP2_BACKLIGHT_CONT SCOOP_GPCR_PA17 /* Backlight Control, Low */ | ||
415 | +#define SPITZ_SCP2_BACKLIGHT_ON SCOOP_GPCR_PA18 /* Backlight On, Low */ | ||
416 | +#define SPITZ_SCP2_MIC_BIAS SCOOP_GPCR_PA19 /* Mic Bias On, Low */ | ||
417 | |||
418 | #define SPITZ_SCP2_IO_DIR (SPITZ_SCP2_IR_ON | SPITZ_SCP2_AKIN_PULLUP | SPITZ_SCP2_RESERVED_1 | \ | ||
419 | - SPITZ_SCP2_RESERVED_2 | SPITZ_SCP2_RESERVED_3 | SPITZ_SCP2_RESERVED_4 | \ | ||
420 | - SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS) | ||
421 | + SPITZ_SCP2_RESERVED_2 | SPITZ_SCP2_RESERVED_3 | SPITZ_SCP2_RESERVED_4 | \ | ||
422 | + SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS) | ||
423 | |||
424 | #define SPITZ_SCP2_IO_OUT (SPITZ_SCP2_IR_ON | SPITZ_SCP2_AKIN_PULLUP | SPITZ_SCP2_RESERVED_1) | ||
425 | #define SPITZ_SCP2_SUS_CLR (SPITZ_SCP2_RESERVED_2 | SPITZ_SCP2_RESERVED_3 | SPITZ_SCP2_RESERVED_4 | \ | ||
426 | - SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS) | ||
427 | + SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS) | ||
428 | #define SPITZ_SCP2_SUS_SET (SPITZ_SCP2_IR_ON | SPITZ_SCP2_RESERVED_1) | ||
429 | |||
430 | |||
431 | -/* Spitz IRQ Definitions */ | ||
432 | +/* Spitz/Akita IRQ Definitions */ | ||
433 | |||
434 | -#define SPITZ_IRQ_GPIO_KEY_INT IRQ_GPIO(SPITZ_GPIO_KEY_INT) | ||
435 | -#define SPITZ_IRQ_GPIO_AC_IN IRQ_GPIO(SPITZ_GPIO_AC_IN) | ||
436 | -#define SPITZ_IRQ_GPIO_AK_INT IRQ_GPIO(SPITZ_GPIO_AK_INT) | ||
437 | -#define SPITZ_IRQ_GPIO_HP_IN IRQ_GPIO(SPITZ_GPIO_HP_IN) | ||
438 | -#define SPITZ_IRQ_GPIO_TP_INT IRQ_GPIO(SPITZ_GPIO_TP_INT) | ||
439 | -#define SPITZ_IRQ_GPIO_SYNC IRQ_GPIO(SPITZ_GPIO_SYNC) | ||
440 | -#define SPITZ_IRQ_GPIO_ON_KEY IRQ_GPIO(SPITZ_GPIO_ON_KEY) | ||
441 | -#define SPITZ_IRQ_GPIO_SWA IRQ_GPIO(SPITZ_GPIO_SWA) | ||
442 | -#define SPITZ_IRQ_GPIO_SWB IRQ_GPIO(SPITZ_GPIO_SWB) | ||
443 | +#define SPITZ_IRQ_GPIO_KEY_INT IRQ_GPIO(SPITZ_GPIO_KEY_INT) | ||
444 | +#define SPITZ_IRQ_GPIO_AC_IN IRQ_GPIO(SPITZ_GPIO_AC_IN) | ||
445 | +#define SPITZ_IRQ_GPIO_AK_INT IRQ_GPIO(SPITZ_GPIO_AK_INT) | ||
446 | +#define SPITZ_IRQ_GPIO_HP_IN IRQ_GPIO(SPITZ_GPIO_HP_IN) | ||
447 | +#define SPITZ_IRQ_GPIO_TP_INT IRQ_GPIO(SPITZ_GPIO_TP_INT) | ||
448 | +#define SPITZ_IRQ_GPIO_SYNC IRQ_GPIO(SPITZ_GPIO_SYNC) | ||
449 | +#define SPITZ_IRQ_GPIO_ON_KEY IRQ_GPIO(SPITZ_GPIO_ON_KEY) | ||
450 | +#define SPITZ_IRQ_GPIO_SWA IRQ_GPIO(SPITZ_GPIO_SWA) | ||
451 | +#define SPITZ_IRQ_GPIO_SWB IRQ_GPIO(SPITZ_GPIO_SWB) | ||
452 | #define SPITZ_IRQ_GPIO_BAT_COVER IRQ_GPIO(SPITZ_GPIO_BAT_COVER) | ||
453 | #define SPITZ_IRQ_GPIO_FATAL_BAT IRQ_GPIO(SPITZ_GPIO_FATAL_BAT) | ||
454 | -#define SPITZ_IRQ_GPIO_CO IRQ_GPIO(SPITZ_GPIO_CO) | ||
455 | -#define SPITZ_IRQ_GPIO_CF_IRQ IRQ_GPIO(SPITZ_GPIO_CF_IRQ) | ||
456 | -#define SPITZ_IRQ_GPIO_CF_CD IRQ_GPIO(SPITZ_GPIO_CF_CD) | ||
457 | -#define SPITZ_IRQ_GPIO_CF2_IRQ IRQ_GPIO(SPITZ_GPIO_CF2_IRQ) | ||
458 | -#define SPITZ_IRQ_GPIO_nSD_INT IRQ_GPIO(SPITZ_GPIO_nSD_INT) | ||
459 | +#define SPITZ_IRQ_GPIO_CF_IRQ IRQ_GPIO(SPITZ_GPIO_CF_IRQ) | ||
460 | +#define SPITZ_IRQ_GPIO_CF_CD IRQ_GPIO(SPITZ_GPIO_CF_CD) | ||
461 | +#define SPITZ_IRQ_GPIO_CF2_IRQ IRQ_GPIO(SPITZ_GPIO_CF2_IRQ) | ||
462 | +#define SPITZ_IRQ_GPIO_nSD_INT IRQ_GPIO(SPITZ_GPIO_nSD_INT) | ||
463 | #define SPITZ_IRQ_GPIO_nSD_DETECT IRQ_GPIO(SPITZ_GPIO_nSD_DETECT) | ||
464 | |||
465 | /* | ||
466 | @@ -156,3 +274,5 @@ | ||
467 | extern struct platform_device spitzscoop2_device; | ||
468 | extern struct platform_device spitzssp_device; | ||
469 | extern struct sharpsl_charger_machinfo spitz_pm_machinfo; | ||
470 | + | ||
471 | +#endif | ||
472 | Index: linux-2.6.24/sound/arm/pxa2xx-ac97.c | ||
473 | =================================================================== | ||
474 | --- linux-2.6.24.orig/sound/arm/pxa2xx-ac97.c 2008-01-24 22:58:37.000000000 +0000 | ||
475 | +++ linux-2.6.24/sound/arm/pxa2xx-ac97.c 2008-02-13 13:49:22.000000000 +0000 | ||
476 | @@ -133,10 +133,10 @@ | ||
477 | #ifdef CONFIG_PXA27x | ||
478 | /* warm reset broken on Bulverde, | ||
479 | so manually keep AC97 reset high */ | ||
480 | - pxa_gpio_mode(113 | GPIO_OUT | GPIO_DFLT_HIGH); | ||
481 | + pxa_gpio_mode(GPIO113_AC97_RESET_N | GPIO_OUT | GPIO_DFLT_HIGH); | ||
482 | udelay(10); | ||
483 | GCR |= GCR_WARM_RST; | ||
484 | - pxa_gpio_mode(113 | GPIO_ALT_FN_2_OUT); | ||
485 | + pxa_gpio_mode(GPIO113_AC97_RESET_N_MD); | ||
486 | udelay(500); | ||
487 | #else | ||
488 | GCR |= GCR_WARM_RST|GCR_PRIRDY_IEN|GCR_SECRDY_IEN; | ||
489 | @@ -335,7 +335,7 @@ | ||
490 | pxa_gpio_mode(GPIO29_SDATA_IN_AC97_MD); | ||
491 | #ifdef CONFIG_PXA27x | ||
492 | /* Use GPIO 113 as AC97 Reset on Bulverde */ | ||
493 | - pxa_gpio_mode(113 | GPIO_ALT_FN_2_OUT); | ||
494 | + pxa_gpio_mode(GPIO113_AC97_RESET_N_MD); | ||
495 | #endif | ||
496 | pxa_set_cken(CKEN_AC97, 1); | ||
497 | |||