aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2009-12-04 12:34:16 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-12-04 12:34:16 -0500
commit4567c4a89693416ccca02d32109bce967e9c1ade (patch)
tree9d77cf02ce269ed5fc4b6e2ebddb9ad7fd504ad1
parent602fd7c36728a04e61a442c9755e7d454501266c (diff)
parent19d6c13b56a78b3757e747f469285c2a546d634a (diff)
Merge branch 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6 into devel-stable
-rw-r--r--MAINTAINERS13
-rw-r--r--arch/arm/configs/cm_x300_defconfig351
-rw-r--r--arch/arm/configs/ezx_defconfig947
-rw-r--r--arch/arm/mach-mmp/aspenite.c39
-rw-r--r--arch/arm/mach-mmp/clock.c15
-rw-r--r--arch/arm/mach-mmp/clock.h1
-rw-r--r--arch/arm/mach-mmp/include/mach/irqs.h4
-rw-r--r--arch/arm/mach-mmp/include/mach/pxa168.h7
-rw-r--r--arch/arm/mach-mmp/include/mach/pxa910.h7
-rw-r--r--arch/arm/mach-mmp/pxa168.c5
-rw-r--r--arch/arm/mach-mmp/pxa910.c4
-rw-r--r--arch/arm/mach-mmp/ttc_dkb.c87
-rw-r--r--arch/arm/mach-pxa/Kconfig638
-rw-r--r--arch/arm/mach-pxa/Makefile90
-rw-r--r--arch/arm/mach-pxa/balloon3.c4
-rw-r--r--arch/arm/mach-pxa/cm-x2xx.c4
-rw-r--r--arch/arm/mach-pxa/cm-x300.c260
-rw-r--r--arch/arm/mach-pxa/colibri-pxa270.c3
-rw-r--r--arch/arm/mach-pxa/colibri-pxa300.c4
-rw-r--r--arch/arm/mach-pxa/colibri-pxa320.c4
-rw-r--r--arch/arm/mach-pxa/colibri-pxa3xx.c2
-rw-r--r--arch/arm/mach-pxa/corgi.c4
-rw-r--r--arch/arm/mach-pxa/corgi_pm.c4
-rw-r--r--arch/arm/mach-pxa/csb726.c3
-rw-r--r--arch/arm/mach-pxa/devices.c30
-rw-r--r--arch/arm/mach-pxa/e330.c3
-rw-r--r--arch/arm/mach-pxa/e350.c3
-rw-r--r--arch/arm/mach-pxa/e400.c3
-rw-r--r--arch/arm/mach-pxa/e740.c3
-rw-r--r--arch/arm/mach-pxa/e750.c3
-rw-r--r--arch/arm/mach-pxa/e800.c3
-rw-r--r--arch/arm/mach-pxa/em-x270.c13
-rw-r--r--arch/arm/mach-pxa/ezx.c251
-rw-r--r--arch/arm/mach-pxa/generic.h5
-rw-r--r--arch/arm/mach-pxa/gumstix.c5
-rw-r--r--arch/arm/mach-pxa/h5000.c3
-rw-r--r--arch/arm/mach-pxa/himalaya.c3
-rw-r--r--arch/arm/mach-pxa/hx4700.c5
-rw-r--r--arch/arm/mach-pxa/idp.c3
-rw-r--r--arch/arm/mach-pxa/imote2.c6
-rw-r--r--arch/arm/mach-pxa/include/mach/hardware.h7
-rw-r--r--arch/arm/mach-pxa/include/mach/palmtreo.h67
-rw-r--r--arch/arm/mach-pxa/include/mach/pxafb.h3
-rw-r--r--arch/arm/mach-pxa/include/mach/regs-u2d.h199
-rw-r--r--arch/arm/mach-pxa/include/mach/treo680.h49
-rw-r--r--arch/arm/mach-pxa/littleton.c8
-rw-r--r--arch/arm/mach-pxa/lpd270.c4
-rw-r--r--arch/arm/mach-pxa/lubbock.c4
-rw-r--r--arch/arm/mach-pxa/magician.c4
-rw-r--r--arch/arm/mach-pxa/mainstone.c4
-rw-r--r--arch/arm/mach-pxa/mioa701.c3
-rw-r--r--arch/arm/mach-pxa/mp900.c3
-rw-r--r--arch/arm/mach-pxa/palmld.c4
-rw-r--r--arch/arm/mach-pxa/palmt5.c4
-rw-r--r--arch/arm/mach-pxa/palmtc.c5
-rw-r--r--arch/arm/mach-pxa/palmte2.c4
-rw-r--r--arch/arm/mach-pxa/palmtreo.c (renamed from arch/arm/mach-pxa/treo680.c)365
-rw-r--r--arch/arm/mach-pxa/palmtx.c4
-rw-r--r--arch/arm/mach-pxa/palmz72.c4
-rw-r--r--arch/arm/mach-pxa/pcm027.c4
-rw-r--r--arch/arm/mach-pxa/pcm990-baseboard.c8
-rw-r--r--arch/arm/mach-pxa/poodle.c4
-rw-r--r--arch/arm/mach-pxa/pxa25x.c7
-rw-r--r--arch/arm/mach-pxa/pxa27x.c3
-rw-r--r--arch/arm/mach-pxa/pxa3xx.c47
-rw-r--r--arch/arm/mach-pxa/saar.c105
-rw-r--r--arch/arm/mach-pxa/sharpsl.h4
-rw-r--r--arch/arm/mach-pxa/sharpsl_pm.c112
-rw-r--r--arch/arm/mach-pxa/spitz.c4
-rw-r--r--arch/arm/mach-pxa/spitz_pm.c14
-rw-r--r--arch/arm/mach-pxa/ssp.c73
-rw-r--r--arch/arm/mach-pxa/stargate2.c4
-rw-r--r--arch/arm/mach-pxa/tavorevb.c4
-rw-r--r--arch/arm/mach-pxa/tosa.c5
-rw-r--r--arch/arm/mach-pxa/trizeps4.c4
-rw-r--r--arch/arm/mach-pxa/viper.c15
-rw-r--r--arch/arm/mach-pxa/xcep.c5
-rw-r--r--arch/arm/mach-pxa/zylonite.c6
-rw-r--r--arch/arm/mm/mmu.c2
-rw-r--r--arch/arm/plat-pxa/include/plat/pxa3xx_nand.h (renamed from arch/arm/mach-pxa/include/mach/pxa3xx_nand.h)0
-rw-r--r--drivers/mmc/host/pxamci.c10
-rw-r--r--drivers/mtd/nand/Kconfig2
-rw-r--r--drivers/mtd/nand/pxa3xx_nand.c82
-rw-r--r--drivers/video/backlight/da903x_bl.c7
-rw-r--r--drivers/video/backlight/tdo24m.c1
-rw-r--r--drivers/video/pxa168fb.c1
-rw-r--r--drivers/video/pxafb.c23
-rw-r--r--include/linux/mfd/da903x.h4
-rw-r--r--include/video/pxa168fb.h2
89 files changed, 3068 insertions, 1081 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index c824b4d62754..54f7d4afdbb1 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -707,6 +707,19 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
707S: Maintained 707S: Maintained
708F: arch/arm/mach-ixp4xx/ 708F: arch/arm/mach-ixp4xx/
709 709
710ARM/INTEL RESEARCH IMOTE 2 MACHINE SUPPORT
711M: Jonathan Cameron <jic23@cam.ac.uk>
712L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
713S: Maintained
714F: arch/arm/mach-pxa/imote2.c
715
716ARM/INTEL RESEARCH STARGATE 2 MACHINE SUPPORT
717M: Jonathan Cameron <jic23@cam.ac.uk>
718L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
719S: Maintained
720F: arch/arm/mach-pxa/stargate2.c
721F: drivers/pcmcia/pxa2xx_stargate2.c
722
710ARM/INTEL XSC3 (MANZANO) ARM CORE 723ARM/INTEL XSC3 (MANZANO) ARM CORE
711M: Lennert Buytenhek <kernel@wantstofly.org> 724M: Lennert Buytenhek <kernel@wantstofly.org>
712M: Dan Williams <dan.j.williams@intel.com> 725M: Dan Williams <dan.j.williams@intel.com>
diff --git a/arch/arm/configs/cm_x300_defconfig b/arch/arm/configs/cm_x300_defconfig
index d18d21bb41e4..a0170867130e 100644
--- a/arch/arm/configs/cm_x300_defconfig
+++ b/arch/arm/configs/cm_x300_defconfig
@@ -1,15 +1,13 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.30-rc8 3# Linux kernel version: 2.6.32-rc4
4# Thu Jun 4 09:53:21 2009 4# Tue Oct 13 19:03:13 2009
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y 8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y 9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y 10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y 11CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y 12CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_HAVE_LATENCYTOP_SUPPORT=y 13CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -18,14 +16,14 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
18CONFIG_HARDIRQS_SW_RESEND=y 16CONFIG_HARDIRQS_SW_RESEND=y
19CONFIG_GENERIC_IRQ_PROBE=y 17CONFIG_GENERIC_IRQ_PROBE=y
20CONFIG_RWSEM_GENERIC_SPINLOCK=y 18CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U32 is not set 19CONFIG_ARCH_HAS_CPUFREQ=y
22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
23CONFIG_GENERIC_HWEIGHT=y 20CONFIG_GENERIC_HWEIGHT=y
24CONFIG_GENERIC_CALIBRATE_DELAY=y 21CONFIG_GENERIC_CALIBRATE_DELAY=y
25CONFIG_ARCH_MTD_XIP=y 22CONFIG_ARCH_MTD_XIP=y
26CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 23CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
27CONFIG_VECTORS_BASE=0xffff0000 24CONFIG_VECTORS_BASE=0xffff0000
28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 25CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
26CONFIG_CONSTRUCTORS=y
29 27
30# 28#
31# General setup 29# General setup
@@ -46,11 +44,12 @@ CONFIG_SYSVIPC_SYSCTL=y
46# 44#
47# RCU Subsystem 45# RCU Subsystem
48# 46#
49CONFIG_CLASSIC_RCU=y 47CONFIG_TREE_RCU=y
50# CONFIG_TREE_RCU is not set 48# CONFIG_TREE_PREEMPT_RCU is not set
51# CONFIG_PREEMPT_RCU is not set 49# CONFIG_RCU_TRACE is not set
50CONFIG_RCU_FANOUT=32
51# CONFIG_RCU_FANOUT_EXACT is not set
52# CONFIG_TREE_RCU_TRACE is not set 52# CONFIG_TREE_RCU_TRACE is not set
53# CONFIG_PREEMPT_RCU_TRACE is not set
54CONFIG_IKCONFIG=y 53CONFIG_IKCONFIG=y
55CONFIG_IKCONFIG_PROC=y 54CONFIG_IKCONFIG_PROC=y
56CONFIG_LOG_BUF_SHIFT=18 55CONFIG_LOG_BUF_SHIFT=18
@@ -83,7 +82,6 @@ CONFIG_SYSCTL_SYSCALL=y
83CONFIG_KALLSYMS=y 82CONFIG_KALLSYMS=y
84# CONFIG_KALLSYMS_ALL is not set 83# CONFIG_KALLSYMS_ALL is not set
85# CONFIG_KALLSYMS_EXTRA_PASS is not set 84# CONFIG_KALLSYMS_EXTRA_PASS is not set
86# CONFIG_STRIP_ASM_SYMS is not set
87CONFIG_HOTPLUG=y 85CONFIG_HOTPLUG=y
88CONFIG_PRINTK=y 86CONFIG_PRINTK=y
89CONFIG_BUG=y 87CONFIG_BUG=y
@@ -96,6 +94,10 @@ CONFIG_TIMERFD=y
96CONFIG_EVENTFD=y 94CONFIG_EVENTFD=y
97CONFIG_SHMEM=y 95CONFIG_SHMEM=y
98CONFIG_AIO=y 96CONFIG_AIO=y
97
98#
99# Kernel Performance Events And Counters
100#
99CONFIG_VM_EVENT_COUNTERS=y 101CONFIG_VM_EVENT_COUNTERS=y
100CONFIG_SLUB_DEBUG=y 102CONFIG_SLUB_DEBUG=y
101CONFIG_COMPAT_BRK=y 103CONFIG_COMPAT_BRK=y
@@ -103,13 +105,17 @@ CONFIG_COMPAT_BRK=y
103CONFIG_SLUB=y 105CONFIG_SLUB=y
104# CONFIG_SLOB is not set 106# CONFIG_SLOB is not set
105# CONFIG_PROFILING is not set 107# CONFIG_PROFILING is not set
106# CONFIG_MARKERS is not set
107CONFIG_HAVE_OPROFILE=y 108CONFIG_HAVE_OPROFILE=y
108# CONFIG_KPROBES is not set 109# CONFIG_KPROBES is not set
109CONFIG_HAVE_KPROBES=y 110CONFIG_HAVE_KPROBES=y
110CONFIG_HAVE_KRETPROBES=y 111CONFIG_HAVE_KRETPROBES=y
111CONFIG_HAVE_CLK=y 112CONFIG_HAVE_CLK=y
112# CONFIG_SLOW_WORK is not set 113
114#
115# GCOV-based kernel profiling
116#
117# CONFIG_GCOV_KERNEL is not set
118CONFIG_SLOW_WORK=y
113CONFIG_HAVE_GENERIC_DMA_COHERENT=y 119CONFIG_HAVE_GENERIC_DMA_COHERENT=y
114CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
115CONFIG_RT_MUTEXES=y 121CONFIG_RT_MUTEXES=y
@@ -117,11 +123,11 @@ CONFIG_BASE_SMALL=0
117CONFIG_MODULES=y 123CONFIG_MODULES=y
118# CONFIG_MODULE_FORCE_LOAD is not set 124# CONFIG_MODULE_FORCE_LOAD is not set
119CONFIG_MODULE_UNLOAD=y 125CONFIG_MODULE_UNLOAD=y
120# CONFIG_MODULE_FORCE_UNLOAD is not set 126CONFIG_MODULE_FORCE_UNLOAD=y
121# CONFIG_MODVERSIONS is not set 127# CONFIG_MODVERSIONS is not set
122# CONFIG_MODULE_SRCVERSION_ALL is not set 128# CONFIG_MODULE_SRCVERSION_ALL is not set
123CONFIG_BLOCK=y 129CONFIG_BLOCK=y
124# CONFIG_LBD is not set 130CONFIG_LBDAF=y
125# CONFIG_BLK_DEV_BSG is not set 131# CONFIG_BLK_DEV_BSG is not set
126# CONFIG_BLK_DEV_INTEGRITY is not set 132# CONFIG_BLK_DEV_INTEGRITY is not set
127 133
@@ -142,19 +148,22 @@ CONFIG_FREEZER=y
142# 148#
143# System Type 149# System Type
144# 150#
151CONFIG_MMU=y
145# CONFIG_ARCH_AAEC2000 is not set 152# CONFIG_ARCH_AAEC2000 is not set
146# CONFIG_ARCH_INTEGRATOR is not set 153# CONFIG_ARCH_INTEGRATOR is not set
147# CONFIG_ARCH_REALVIEW is not set 154# CONFIG_ARCH_REALVIEW is not set
148# CONFIG_ARCH_VERSATILE is not set 155# CONFIG_ARCH_VERSATILE is not set
149# CONFIG_ARCH_AT91 is not set 156# CONFIG_ARCH_AT91 is not set
150# CONFIG_ARCH_CLPS711X is not set 157# CONFIG_ARCH_CLPS711X is not set
158# CONFIG_ARCH_GEMINI is not set
151# CONFIG_ARCH_EBSA110 is not set 159# CONFIG_ARCH_EBSA110 is not set
152# CONFIG_ARCH_EP93XX is not set 160# CONFIG_ARCH_EP93XX is not set
153# CONFIG_ARCH_GEMINI is not set
154# CONFIG_ARCH_FOOTBRIDGE is not set 161# CONFIG_ARCH_FOOTBRIDGE is not set
162# CONFIG_ARCH_MXC is not set
163# CONFIG_ARCH_STMP3XXX is not set
155# CONFIG_ARCH_NETX is not set 164# CONFIG_ARCH_NETX is not set
156# CONFIG_ARCH_H720X is not set 165# CONFIG_ARCH_H720X is not set
157# CONFIG_ARCH_IMX is not set 166# CONFIG_ARCH_NOMADIK is not set
158# CONFIG_ARCH_IOP13XX is not set 167# CONFIG_ARCH_IOP13XX is not set
159# CONFIG_ARCH_IOP32X is not set 168# CONFIG_ARCH_IOP32X is not set
160# CONFIG_ARCH_IOP33X is not set 169# CONFIG_ARCH_IOP33X is not set
@@ -163,25 +172,27 @@ CONFIG_FREEZER=y
163# CONFIG_ARCH_IXP4XX is not set 172# CONFIG_ARCH_IXP4XX is not set
164# CONFIG_ARCH_L7200 is not set 173# CONFIG_ARCH_L7200 is not set
165# CONFIG_ARCH_KIRKWOOD is not set 174# CONFIG_ARCH_KIRKWOOD is not set
166# CONFIG_ARCH_KS8695 is not set
167# CONFIG_ARCH_NS9XXX is not set
168# CONFIG_ARCH_LOKI is not set 175# CONFIG_ARCH_LOKI is not set
169# CONFIG_ARCH_MV78XX0 is not set 176# CONFIG_ARCH_MV78XX0 is not set
170# CONFIG_ARCH_MXC is not set
171# CONFIG_ARCH_ORION5X is not set 177# CONFIG_ARCH_ORION5X is not set
178# CONFIG_ARCH_MMP is not set
179# CONFIG_ARCH_KS8695 is not set
180# CONFIG_ARCH_NS9XXX is not set
181# CONFIG_ARCH_W90X900 is not set
172# CONFIG_ARCH_PNX4008 is not set 182# CONFIG_ARCH_PNX4008 is not set
173CONFIG_ARCH_PXA=y 183CONFIG_ARCH_PXA=y
174# CONFIG_ARCH_MMP is not set 184# CONFIG_ARCH_MSM is not set
175# CONFIG_ARCH_RPC is not set 185# CONFIG_ARCH_RPC is not set
176# CONFIG_ARCH_SA1100 is not set 186# CONFIG_ARCH_SA1100 is not set
177# CONFIG_ARCH_S3C2410 is not set 187# CONFIG_ARCH_S3C2410 is not set
178# CONFIG_ARCH_S3C64XX is not set 188# CONFIG_ARCH_S3C64XX is not set
189# CONFIG_ARCH_S5PC1XX is not set
179# CONFIG_ARCH_SHARK is not set 190# CONFIG_ARCH_SHARK is not set
180# CONFIG_ARCH_LH7A40X is not set 191# CONFIG_ARCH_LH7A40X is not set
192# CONFIG_ARCH_U300 is not set
181# CONFIG_ARCH_DAVINCI is not set 193# CONFIG_ARCH_DAVINCI is not set
182# CONFIG_ARCH_OMAP is not set 194# CONFIG_ARCH_OMAP is not set
183# CONFIG_ARCH_MSM is not set 195# CONFIG_ARCH_BCMRING is not set
184# CONFIG_ARCH_W90X900 is not set
185 196
186# 197#
187# Intel PXA2xx/PXA3xx Implementations 198# Intel PXA2xx/PXA3xx Implementations
@@ -191,16 +202,19 @@ CONFIG_ARCH_PXA=y
191# Supported PXA3xx Processor Variants 202# Supported PXA3xx Processor Variants
192# 203#
193CONFIG_CPU_PXA300=y 204CONFIG_CPU_PXA300=y
194# CONFIG_CPU_PXA310 is not set 205CONFIG_CPU_PXA310=y
195# CONFIG_CPU_PXA320 is not set 206# CONFIG_CPU_PXA320 is not set
196# CONFIG_CPU_PXA930 is not set 207# CONFIG_CPU_PXA930 is not set
197# CONFIG_CPU_PXA935 is not set 208# CONFIG_CPU_PXA935 is not set
209# CONFIG_CPU_PXA950 is not set
198# CONFIG_ARCH_GUMSTIX is not set 210# CONFIG_ARCH_GUMSTIX is not set
199# CONFIG_MACH_INTELMOTE2 is not set 211# CONFIG_MACH_INTELMOTE2 is not set
212# CONFIG_MACH_STARGATE2 is not set
200# CONFIG_ARCH_LUBBOCK is not set 213# CONFIG_ARCH_LUBBOCK is not set
201# CONFIG_MACH_LOGICPD_PXA270 is not set 214# CONFIG_MACH_LOGICPD_PXA270 is not set
202# CONFIG_MACH_MAINSTONE is not set 215# CONFIG_MACH_MAINSTONE is not set
203# CONFIG_MACH_MP900C is not set 216# CONFIG_MACH_MP900C is not set
217# CONFIG_MACH_BALLOON3 is not set
204# CONFIG_ARCH_PXA_IDP is not set 218# CONFIG_ARCH_PXA_IDP is not set
205# CONFIG_PXA_SHARPSL is not set 219# CONFIG_PXA_SHARPSL is not set
206# CONFIG_ARCH_VIPER is not set 220# CONFIG_ARCH_VIPER is not set
@@ -218,6 +232,7 @@ CONFIG_CPU_PXA300=y
218# CONFIG_MACH_SAAR is not set 232# CONFIG_MACH_SAAR is not set
219# CONFIG_MACH_ARMCORE is not set 233# CONFIG_MACH_ARMCORE is not set
220CONFIG_MACH_CM_X300=y 234CONFIG_MACH_CM_X300=y
235# CONFIG_MACH_H4700 is not set
221# CONFIG_MACH_MAGICIAN is not set 236# CONFIG_MACH_MAGICIAN is not set
222# CONFIG_MACH_HIMALAYA is not set 237# CONFIG_MACH_HIMALAYA is not set
223# CONFIG_MACH_MIOA701 is not set 238# CONFIG_MACH_MIOA701 is not set
@@ -225,8 +240,8 @@ CONFIG_MACH_CM_X300=y
225# CONFIG_ARCH_PXA_PALM is not set 240# CONFIG_ARCH_PXA_PALM is not set
226# CONFIG_MACH_CSB726 is not set 241# CONFIG_MACH_CSB726 is not set
227# CONFIG_PXA_EZX is not set 242# CONFIG_PXA_EZX is not set
243# CONFIG_MACH_XCEP is not set
228CONFIG_PXA3xx=y 244CONFIG_PXA3xx=y
229# CONFIG_PXA_PWM is not set
230CONFIG_PLAT_PXA=y 245CONFIG_PLAT_PXA=y
231 246
232# 247#
@@ -236,7 +251,7 @@ CONFIG_CPU_32=y
236CONFIG_CPU_XSC3=y 251CONFIG_CPU_XSC3=y
237CONFIG_CPU_32v5=y 252CONFIG_CPU_32v5=y
238CONFIG_CPU_ABRT_EV5T=y 253CONFIG_CPU_ABRT_EV5T=y
239CONFIG_CPU_PABRT_NOIFAR=y 254CONFIG_CPU_PABRT_LEGACY=y
240CONFIG_CPU_CACHE_VIVT=y 255CONFIG_CPU_CACHE_VIVT=y
241CONFIG_CPU_TLB_V4WBI=y 256CONFIG_CPU_TLB_V4WBI=y
242CONFIG_CPU_CP15=y 257CONFIG_CPU_CP15=y
@@ -246,11 +261,12 @@ CONFIG_IO_36=y
246# 261#
247# Processor Features 262# Processor Features
248# 263#
249# CONFIG_ARM_THUMB is not set 264CONFIG_ARM_THUMB=y
250# CONFIG_CPU_DCACHE_DISABLE is not set 265# CONFIG_CPU_DCACHE_DISABLE is not set
251# CONFIG_CPU_BPREDICT_DISABLE is not set 266# CONFIG_CPU_BPREDICT_DISABLE is not set
252CONFIG_OUTER_CACHE=y 267CONFIG_OUTER_CACHE=y
253CONFIG_CACHE_XSC3L2=y 268CONFIG_CACHE_XSC3L2=y
269CONFIG_ARM_L1_CACHE_SHIFT=5
254CONFIG_IWMMXT=y 270CONFIG_IWMMXT=y
255CONFIG_COMMON_CLKDEV=y 271CONFIG_COMMON_CLKDEV=y
256 272
@@ -272,11 +288,12 @@ CONFIG_VMSPLIT_3G=y
272# CONFIG_VMSPLIT_2G is not set 288# CONFIG_VMSPLIT_2G is not set
273# CONFIG_VMSPLIT_1G is not set 289# CONFIG_VMSPLIT_1G is not set
274CONFIG_PAGE_OFFSET=0xC0000000 290CONFIG_PAGE_OFFSET=0xC0000000
291CONFIG_PREEMPT_NONE=y
292# CONFIG_PREEMPT_VOLUNTARY is not set
275# CONFIG_PREEMPT is not set 293# CONFIG_PREEMPT is not set
276CONFIG_HZ=100 294CONFIG_HZ=100
277CONFIG_AEABI=y 295CONFIG_AEABI=y
278CONFIG_OABI_COMPAT=y 296CONFIG_OABI_COMPAT=y
279# CONFIG_ARCH_HAS_HOLES_MEMORYMODEL is not set
280# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set 297# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
281# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set 298# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
282CONFIG_HIGHMEM=y 299CONFIG_HIGHMEM=y
@@ -292,17 +309,19 @@ CONFIG_SPLIT_PTLOCK_CPUS=4096
292CONFIG_ZONE_DMA_FLAG=0 309CONFIG_ZONE_DMA_FLAG=0
293CONFIG_BOUNCE=y 310CONFIG_BOUNCE=y
294CONFIG_VIRT_TO_BUS=y 311CONFIG_VIRT_TO_BUS=y
295CONFIG_UNEVICTABLE_LRU=y
296CONFIG_HAVE_MLOCK=y 312CONFIG_HAVE_MLOCK=y
297CONFIG_HAVE_MLOCKED_PAGE_BIT=y 313CONFIG_HAVE_MLOCKED_PAGE_BIT=y
314# CONFIG_KSM is not set
315CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
298CONFIG_ALIGNMENT_TRAP=y 316CONFIG_ALIGNMENT_TRAP=y
317# CONFIG_UACCESS_WITH_MEMCPY is not set
299 318
300# 319#
301# Boot options 320# Boot options
302# 321#
303CONFIG_ZBOOT_ROM_TEXT=0x0 322CONFIG_ZBOOT_ROM_TEXT=0x0
304CONFIG_ZBOOT_ROM_BSS=0x0 323CONFIG_ZBOOT_ROM_BSS=0x0
305CONFIG_CMDLINE="root=/dev/mtdblock5 rootfstype=jffs2 console=ttyS2,38400" 324CONFIG_CMDLINE="root=/dev/mtdblock5 rootfstype=ubifs console=ttyS2,38400"
306# CONFIG_XIP_KERNEL is not set 325# CONFIG_XIP_KERNEL is not set
307# CONFIG_KEXEC is not set 326# CONFIG_KEXEC is not set
308 327
@@ -355,6 +374,7 @@ CONFIG_PM_SLEEP=y
355CONFIG_SUSPEND=y 374CONFIG_SUSPEND=y
356CONFIG_SUSPEND_FREEZER=y 375CONFIG_SUSPEND_FREEZER=y
357CONFIG_APM_EMULATION=y 376CONFIG_APM_EMULATION=y
377# CONFIG_PM_RUNTIME is not set
358CONFIG_ARCH_SUSPEND_POSSIBLE=y 378CONFIG_ARCH_SUSPEND_POSSIBLE=y
359CONFIG_NET=y 379CONFIG_NET=y
360 380
@@ -396,6 +416,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
396# CONFIG_NETFILTER is not set 416# CONFIG_NETFILTER is not set
397# CONFIG_IP_DCCP is not set 417# CONFIG_IP_DCCP is not set
398# CONFIG_IP_SCTP is not set 418# CONFIG_IP_SCTP is not set
419# CONFIG_RDS is not set
399# CONFIG_TIPC is not set 420# CONFIG_TIPC is not set
400# CONFIG_ATM is not set 421# CONFIG_ATM is not set
401# CONFIG_BRIDGE is not set 422# CONFIG_BRIDGE is not set
@@ -410,6 +431,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
410# CONFIG_ECONET is not set 431# CONFIG_ECONET is not set
411# CONFIG_WAN_ROUTER is not set 432# CONFIG_WAN_ROUTER is not set
412# CONFIG_PHONET is not set 433# CONFIG_PHONET is not set
434# CONFIG_IEEE802154 is not set
413# CONFIG_NET_SCHED is not set 435# CONFIG_NET_SCHED is not set
414# CONFIG_DCB is not set 436# CONFIG_DCB is not set
415 437
@@ -433,22 +455,27 @@ CONFIG_BT_HIDP=m
433# 455#
434# Bluetooth device drivers 456# Bluetooth device drivers
435# 457#
436# CONFIG_BT_HCIBTUSB is not set 458CONFIG_BT_HCIBTUSB=m
437# CONFIG_BT_HCIBTSDIO is not set 459# CONFIG_BT_HCIBTSDIO is not set
438# CONFIG_BT_HCIUART is not set 460# CONFIG_BT_HCIUART is not set
439# CONFIG_BT_HCIBCM203X is not set 461# CONFIG_BT_HCIBCM203X is not set
440# CONFIG_BT_HCIBPA10X is not set 462# CONFIG_BT_HCIBPA10X is not set
441# CONFIG_BT_HCIBFUSB is not set 463# CONFIG_BT_HCIBFUSB is not set
442# CONFIG_BT_HCIVHCI is not set 464# CONFIG_BT_HCIVHCI is not set
465# CONFIG_BT_MRVL is not set
443# CONFIG_AF_RXRPC is not set 466# CONFIG_AF_RXRPC is not set
444CONFIG_WIRELESS=y 467CONFIG_WIRELESS=y
445# CONFIG_CFG80211 is not set 468# CONFIG_CFG80211 is not set
469CONFIG_CFG80211_DEFAULT_PS_VALUE=0
446# CONFIG_WIRELESS_OLD_REGULATORY is not set 470# CONFIG_WIRELESS_OLD_REGULATORY is not set
447CONFIG_WIRELESS_EXT=y 471CONFIG_WIRELESS_EXT=y
448CONFIG_WIRELESS_EXT_SYSFS=y 472CONFIG_WIRELESS_EXT_SYSFS=y
449CONFIG_LIB80211=m 473CONFIG_LIB80211=m
450# CONFIG_LIB80211_DEBUG is not set 474# CONFIG_LIB80211_DEBUG is not set
451# CONFIG_MAC80211 is not set 475
476#
477# CFG80211 needs to be enabled for MAC80211
478#
452# CONFIG_WIMAX is not set 479# CONFIG_WIMAX is not set
453# CONFIG_RFKILL is not set 480# CONFIG_RFKILL is not set
454# CONFIG_NET_9P is not set 481# CONFIG_NET_9P is not set
@@ -461,6 +488,7 @@ CONFIG_LIB80211=m
461# Generic Driver Options 488# Generic Driver Options
462# 489#
463CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 490CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
491# CONFIG_DEVTMPFS is not set
464CONFIG_STANDALONE=y 492CONFIG_STANDALONE=y
465CONFIG_PREVENT_FIRMWARE_BUILD=y 493CONFIG_PREVENT_FIRMWARE_BUILD=y
466CONFIG_FW_LOADER=y 494CONFIG_FW_LOADER=y
@@ -472,9 +500,9 @@ CONFIG_EXTRA_FIRMWARE=""
472# CONFIG_CONNECTOR is not set 500# CONFIG_CONNECTOR is not set
473CONFIG_MTD=y 501CONFIG_MTD=y
474# CONFIG_MTD_DEBUG is not set 502# CONFIG_MTD_DEBUG is not set
503# CONFIG_MTD_TESTS is not set
475# CONFIG_MTD_CONCAT is not set 504# CONFIG_MTD_CONCAT is not set
476CONFIG_MTD_PARTITIONS=y 505CONFIG_MTD_PARTITIONS=y
477# CONFIG_MTD_TESTS is not set
478# CONFIG_MTD_REDBOOT_PARTS is not set 506# CONFIG_MTD_REDBOOT_PARTS is not set
479# CONFIG_MTD_CMDLINE_PARTS is not set 507# CONFIG_MTD_CMDLINE_PARTS is not set
480# CONFIG_MTD_AFS_PARTS is not set 508# CONFIG_MTD_AFS_PARTS is not set
@@ -521,6 +549,9 @@ CONFIG_MTD_CFI_I2=y
521# 549#
522# Self-contained MTD device drivers 550# Self-contained MTD device drivers
523# 551#
552# CONFIG_MTD_DATAFLASH is not set
553# CONFIG_MTD_M25P80 is not set
554# CONFIG_MTD_SST25L is not set
524# CONFIG_MTD_SLRAM is not set 555# CONFIG_MTD_SLRAM is not set
525# CONFIG_MTD_PHRAM is not set 556# CONFIG_MTD_PHRAM is not set
526# CONFIG_MTD_MTDRAM is not set 557# CONFIG_MTD_MTDRAM is not set
@@ -556,7 +587,15 @@ CONFIG_MTD_NAND_PXA3xx=y
556# 587#
557# UBI - Unsorted block images 588# UBI - Unsorted block images
558# 589#
559# CONFIG_MTD_UBI is not set 590CONFIG_MTD_UBI=y
591CONFIG_MTD_UBI_WL_THRESHOLD=4096
592CONFIG_MTD_UBI_BEB_RESERVE=1
593# CONFIG_MTD_UBI_GLUEBI is not set
594
595#
596# UBI debugging options
597#
598# CONFIG_MTD_UBI_DEBUG is not set
560# CONFIG_PARPORT is not set 599# CONFIG_PARPORT is not set
561CONFIG_BLK_DEV=y 600CONFIG_BLK_DEV=y
562# CONFIG_BLK_DEV_COW_COMMON is not set 601# CONFIG_BLK_DEV_COW_COMMON is not set
@@ -570,6 +609,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
570# CONFIG_BLK_DEV_XIP is not set 609# CONFIG_BLK_DEV_XIP is not set
571# CONFIG_CDROM_PKTCDVD is not set 610# CONFIG_CDROM_PKTCDVD is not set
572# CONFIG_ATA_OVER_ETH is not set 611# CONFIG_ATA_OVER_ETH is not set
612# CONFIG_MG_DISK is not set
573# CONFIG_MISC_DEVICES is not set 613# CONFIG_MISC_DEVICES is not set
574CONFIG_HAVE_IDE=y 614CONFIG_HAVE_IDE=y
575# CONFIG_IDE is not set 615# CONFIG_IDE is not set
@@ -593,10 +633,6 @@ CONFIG_BLK_DEV_SD=y
593# CONFIG_BLK_DEV_SR is not set 633# CONFIG_BLK_DEV_SR is not set
594# CONFIG_CHR_DEV_SG is not set 634# CONFIG_CHR_DEV_SG is not set
595# CONFIG_CHR_DEV_SCH is not set 635# CONFIG_CHR_DEV_SCH is not set
596
597#
598# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
599#
600# CONFIG_SCSI_MULTI_LUN is not set 636# CONFIG_SCSI_MULTI_LUN is not set
601# CONFIG_SCSI_CONSTANTS is not set 637# CONFIG_SCSI_CONSTANTS is not set
602# CONFIG_SCSI_LOGGING is not set 638# CONFIG_SCSI_LOGGING is not set
@@ -621,7 +657,6 @@ CONFIG_SCSI_LOWLEVEL=y
621# CONFIG_ATA is not set 657# CONFIG_ATA is not set
622# CONFIG_MD is not set 658# CONFIG_MD is not set
623CONFIG_NETDEVICES=y 659CONFIG_NETDEVICES=y
624CONFIG_COMPAT_NET_DEV_OPS=y
625# CONFIG_DUMMY is not set 660# CONFIG_DUMMY is not set
626# CONFIG_BONDING is not set 661# CONFIG_BONDING is not set
627# CONFIG_MACVLAN is not set 662# CONFIG_MACVLAN is not set
@@ -636,6 +671,7 @@ CONFIG_MII=y
636CONFIG_DM9000=y 671CONFIG_DM9000=y
637CONFIG_DM9000_DEBUGLEVEL=0 672CONFIG_DM9000_DEBUGLEVEL=0
638CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y 673CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
674# CONFIG_ENC28J60 is not set
639# CONFIG_ETHOC is not set 675# CONFIG_ETHOC is not set
640# CONFIG_SMC911X is not set 676# CONFIG_SMC911X is not set
641# CONFIG_SMSC911X is not set 677# CONFIG_SMSC911X is not set
@@ -648,20 +684,20 @@ CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
648# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 684# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
649# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 685# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
650# CONFIG_B44 is not set 686# CONFIG_B44 is not set
687# CONFIG_KS8842 is not set
688# CONFIG_KS8851 is not set
689# CONFIG_KS8851_MLL is not set
651# CONFIG_NETDEV_1000 is not set 690# CONFIG_NETDEV_1000 is not set
652# CONFIG_NETDEV_10000 is not set 691# CONFIG_NETDEV_10000 is not set
653 692CONFIG_WLAN=y
654#
655# Wireless LAN
656#
657# CONFIG_WLAN_PRE80211 is not set 693# CONFIG_WLAN_PRE80211 is not set
658CONFIG_WLAN_80211=y 694CONFIG_WLAN_80211=y
659CONFIG_LIBERTAS=m 695CONFIG_LIBERTAS=m
660# CONFIG_LIBERTAS_USB is not set 696# CONFIG_LIBERTAS_USB is not set
661CONFIG_LIBERTAS_SDIO=m 697CONFIG_LIBERTAS_SDIO=m
698# CONFIG_LIBERTAS_SPI is not set
662# CONFIG_LIBERTAS_DEBUG is not set 699# CONFIG_LIBERTAS_DEBUG is not set
663# CONFIG_USB_ZD1201 is not set 700# CONFIG_USB_ZD1201 is not set
664# CONFIG_USB_NET_RNDIS_WLAN is not set
665# CONFIG_HOSTAP is not set 701# CONFIG_HOSTAP is not set
666 702
667# 703#
@@ -683,6 +719,7 @@ CONFIG_LIBERTAS_SDIO=m
683# CONFIG_NETPOLL is not set 719# CONFIG_NETPOLL is not set
684# CONFIG_NET_POLL_CONTROLLER is not set 720# CONFIG_NET_POLL_CONTROLLER is not set
685# CONFIG_ISDN is not set 721# CONFIG_ISDN is not set
722# CONFIG_PHONE is not set
686 723
687# 724#
688# Input device support 725# Input device support
@@ -706,33 +743,51 @@ CONFIG_INPUT_EVDEV=y
706# Input Device Drivers 743# Input Device Drivers
707# 744#
708CONFIG_INPUT_KEYBOARD=y 745CONFIG_INPUT_KEYBOARD=y
746# CONFIG_KEYBOARD_ADP5588 is not set
709# CONFIG_KEYBOARD_ATKBD is not set 747# CONFIG_KEYBOARD_ATKBD is not set
710# CONFIG_KEYBOARD_SUNKBD is not set 748# CONFIG_QT2160 is not set
711# CONFIG_KEYBOARD_LKKBD is not set 749# CONFIG_KEYBOARD_LKKBD is not set
712# CONFIG_KEYBOARD_XTKBD is not set 750# CONFIG_KEYBOARD_GPIO is not set
751# CONFIG_KEYBOARD_MATRIX is not set
752# CONFIG_KEYBOARD_LM8323 is not set
753# CONFIG_KEYBOARD_MAX7359 is not set
713# CONFIG_KEYBOARD_NEWTON is not set 754# CONFIG_KEYBOARD_NEWTON is not set
714# CONFIG_KEYBOARD_STOWAWAY is not set 755# CONFIG_KEYBOARD_OPENCORES is not set
715CONFIG_KEYBOARD_PXA27x=m 756CONFIG_KEYBOARD_PXA27x=m
716# CONFIG_KEYBOARD_GPIO is not set 757# CONFIG_KEYBOARD_STOWAWAY is not set
758# CONFIG_KEYBOARD_SUNKBD is not set
759# CONFIG_KEYBOARD_XTKBD is not set
717# CONFIG_INPUT_MOUSE is not set 760# CONFIG_INPUT_MOUSE is not set
718# CONFIG_INPUT_JOYSTICK is not set 761# CONFIG_INPUT_JOYSTICK is not set
719# CONFIG_INPUT_TABLET is not set 762# CONFIG_INPUT_TABLET is not set
720CONFIG_INPUT_TOUCHSCREEN=y 763CONFIG_INPUT_TOUCHSCREEN=y
764# CONFIG_TOUCHSCREEN_ADS7846 is not set
765# CONFIG_TOUCHSCREEN_AD7877 is not set
721# CONFIG_TOUCHSCREEN_AD7879_I2C is not set 766# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
767# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
722# CONFIG_TOUCHSCREEN_AD7879 is not set 768# CONFIG_TOUCHSCREEN_AD7879 is not set
769# CONFIG_TOUCHSCREEN_DA9034 is not set
770# CONFIG_TOUCHSCREEN_EETI is not set
723# CONFIG_TOUCHSCREEN_FUJITSU is not set 771# CONFIG_TOUCHSCREEN_FUJITSU is not set
724# CONFIG_TOUCHSCREEN_GUNZE is not set 772# CONFIG_TOUCHSCREEN_GUNZE is not set
725# CONFIG_TOUCHSCREEN_ELO is not set 773# CONFIG_TOUCHSCREEN_ELO is not set
726# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set 774# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
775# CONFIG_TOUCHSCREEN_MCS5000 is not set
727# CONFIG_TOUCHSCREEN_MTOUCH is not set 776# CONFIG_TOUCHSCREEN_MTOUCH is not set
728# CONFIG_TOUCHSCREEN_INEXIO is not set 777# CONFIG_TOUCHSCREEN_INEXIO is not set
729# CONFIG_TOUCHSCREEN_MK712 is not set 778# CONFIG_TOUCHSCREEN_MK712 is not set
730# CONFIG_TOUCHSCREEN_PENMOUNT is not set 779# CONFIG_TOUCHSCREEN_PENMOUNT is not set
731# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 780# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
732# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 781# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
782CONFIG_TOUCHSCREEN_WM97XX=m
783# CONFIG_TOUCHSCREEN_WM9705 is not set
784CONFIG_TOUCHSCREEN_WM9712=y
785# CONFIG_TOUCHSCREEN_WM9713 is not set
786# CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE is not set
733# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 787# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
734# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set 788# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
735# CONFIG_TOUCHSCREEN_TSC2007 is not set 789# CONFIG_TOUCHSCREEN_TSC2007 is not set
790# CONFIG_TOUCHSCREEN_W90X900 is not set
736# CONFIG_INPUT_MISC is not set 791# CONFIG_INPUT_MISC is not set
737 792
738# 793#
@@ -760,6 +815,7 @@ CONFIG_DEVKMEM=y
760# 815#
761# Non-8250 serial port support 816# Non-8250 serial port support
762# 817#
818# CONFIG_SERIAL_MAX3100 is not set
763CONFIG_SERIAL_PXA=y 819CONFIG_SERIAL_PXA=y
764CONFIG_SERIAL_PXA_CONSOLE=y 820CONFIG_SERIAL_PXA_CONSOLE=y
765CONFIG_SERIAL_CORE=y 821CONFIG_SERIAL_CORE=y
@@ -774,6 +830,7 @@ CONFIG_UNIX98_PTYS=y
774# CONFIG_TCG_TPM is not set 830# CONFIG_TCG_TPM is not set
775CONFIG_I2C=y 831CONFIG_I2C=y
776CONFIG_I2C_BOARDINFO=y 832CONFIG_I2C_BOARDINFO=y
833CONFIG_I2C_COMPAT=y
777# CONFIG_I2C_CHARDEV is not set 834# CONFIG_I2C_CHARDEV is not set
778CONFIG_I2C_HELPER_AUTO=y 835CONFIG_I2C_HELPER_AUTO=y
779 836
@@ -784,6 +841,7 @@ CONFIG_I2C_HELPER_AUTO=y
784# 841#
785# I2C system bus drivers (mostly embedded / system-on-chip) 842# I2C system bus drivers (mostly embedded / system-on-chip)
786# 843#
844# CONFIG_I2C_DESIGNWARE is not set
787# CONFIG_I2C_GPIO is not set 845# CONFIG_I2C_GPIO is not set
788# CONFIG_I2C_OCORES is not set 846# CONFIG_I2C_OCORES is not set
789CONFIG_I2C_PXA=y 847CONFIG_I2C_PXA=y
@@ -807,19 +865,36 @@ CONFIG_I2C_PXA=y
807# Miscellaneous I2C Chip support 865# Miscellaneous I2C Chip support
808# 866#
809# CONFIG_DS1682 is not set 867# CONFIG_DS1682 is not set
810# CONFIG_SENSORS_PCF8574 is not set
811# CONFIG_PCF8575 is not set
812# CONFIG_SENSORS_MAX6875 is not set
813# CONFIG_SENSORS_TSL2550 is not set 868# CONFIG_SENSORS_TSL2550 is not set
814# CONFIG_I2C_DEBUG_CORE is not set 869# CONFIG_I2C_DEBUG_CORE is not set
815# CONFIG_I2C_DEBUG_ALGO is not set 870# CONFIG_I2C_DEBUG_ALGO is not set
816# CONFIG_I2C_DEBUG_BUS is not set 871# CONFIG_I2C_DEBUG_BUS is not set
817# CONFIG_I2C_DEBUG_CHIP is not set 872# CONFIG_I2C_DEBUG_CHIP is not set
818# CONFIG_SPI is not set 873CONFIG_SPI=y
874# CONFIG_SPI_DEBUG is not set
875CONFIG_SPI_MASTER=y
876
877#
878# SPI Master Controller Drivers
879#
880CONFIG_SPI_BITBANG=y
881CONFIG_SPI_GPIO=y
882# CONFIG_SPI_PXA2XX is not set
883
884#
885# SPI Protocol Masters
886#
887# CONFIG_SPI_SPIDEV is not set
888# CONFIG_SPI_TLE62X0 is not set
889
890#
891# PPS support
892#
893# CONFIG_PPS is not set
819CONFIG_ARCH_REQUIRE_GPIOLIB=y 894CONFIG_ARCH_REQUIRE_GPIOLIB=y
820CONFIG_GPIOLIB=y 895CONFIG_GPIOLIB=y
821# CONFIG_DEBUG_GPIO is not set 896# CONFIG_DEBUG_GPIO is not set
822# CONFIG_GPIO_SYSFS is not set 897CONFIG_GPIO_SYSFS=y
823 898
824# 899#
825# Memory mapped GPIO expanders: 900# Memory mapped GPIO expanders:
@@ -839,11 +914,17 @@ CONFIG_GPIO_PCA953X=y
839# 914#
840# SPI GPIO expanders: 915# SPI GPIO expanders:
841# 916#
917# CONFIG_GPIO_MAX7301 is not set
918# CONFIG_GPIO_MCP23S08 is not set
919# CONFIG_GPIO_MC33880 is not set
920
921#
922# AC97 GPIO expanders:
923#
842# CONFIG_W1 is not set 924# CONFIG_W1 is not set
843# CONFIG_POWER_SUPPLY is not set 925# CONFIG_POWER_SUPPLY is not set
844# CONFIG_HWMON is not set 926# CONFIG_HWMON is not set
845# CONFIG_THERMAL is not set 927# CONFIG_THERMAL is not set
846# CONFIG_THERMAL_HWMON is not set
847# CONFIG_WATCHDOG is not set 928# CONFIG_WATCHDOG is not set
848CONFIG_SSB_POSSIBLE=y 929CONFIG_SSB_POSSIBLE=y
849 930
@@ -860,32 +941,33 @@ CONFIG_SSB_POSSIBLE=y
860# CONFIG_MFD_ASIC3 is not set 941# CONFIG_MFD_ASIC3 is not set
861# CONFIG_HTC_EGPIO is not set 942# CONFIG_HTC_EGPIO is not set
862# CONFIG_HTC_PASIC3 is not set 943# CONFIG_HTC_PASIC3 is not set
944# CONFIG_UCB1400_CORE is not set
863# CONFIG_TPS65010 is not set 945# CONFIG_TPS65010 is not set
864# CONFIG_TWL4030_CORE is not set 946# CONFIG_TWL4030_CORE is not set
865# CONFIG_MFD_TMIO is not set 947# CONFIG_MFD_TMIO is not set
866# CONFIG_MFD_T7L66XB is not set 948# CONFIG_MFD_T7L66XB is not set
867# CONFIG_MFD_TC6387XB is not set 949# CONFIG_MFD_TC6387XB is not set
868# CONFIG_MFD_TC6393XB is not set 950# CONFIG_MFD_TC6393XB is not set
869# CONFIG_PMIC_DA903X is not set 951CONFIG_PMIC_DA903X=y
870# CONFIG_MFD_WM8400 is not set 952# CONFIG_MFD_WM8400 is not set
953# CONFIG_MFD_WM831X is not set
871# CONFIG_MFD_WM8350_I2C is not set 954# CONFIG_MFD_WM8350_I2C is not set
872# CONFIG_MFD_PCF50633 is not set 955# CONFIG_MFD_PCF50633 is not set
873 956# CONFIG_MFD_MC13783 is not set
874# 957# CONFIG_AB3100_CORE is not set
875# Multimedia devices 958# CONFIG_EZX_PCAP is not set
876# 959CONFIG_REGULATOR=y
877 960# CONFIG_REGULATOR_DEBUG is not set
878# 961# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
879# Multimedia core support 962# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
880# 963# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
881# CONFIG_VIDEO_DEV is not set 964# CONFIG_REGULATOR_BQ24022 is not set
882# CONFIG_DVB_CORE is not set 965# CONFIG_REGULATOR_MAX1586 is not set
883# CONFIG_VIDEO_MEDIA is not set 966CONFIG_REGULATOR_DA903X=y
884 967# CONFIG_REGULATOR_LP3971 is not set
885# 968# CONFIG_REGULATOR_TPS65023 is not set
886# Multimedia drivers 969# CONFIG_REGULATOR_TPS6507X is not set
887# 970# CONFIG_MEDIA_SUPPORT is not set
888# CONFIG_DAB is not set
889 971
890# 972#
891# Graphics support 973# Graphics support
@@ -925,7 +1007,17 @@ CONFIG_FB_PXA=y
925# CONFIG_FB_METRONOME is not set 1007# CONFIG_FB_METRONOME is not set
926# CONFIG_FB_MB862XX is not set 1008# CONFIG_FB_MB862XX is not set
927# CONFIG_FB_BROADSHEET is not set 1009# CONFIG_FB_BROADSHEET is not set
928# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1010CONFIG_BACKLIGHT_LCD_SUPPORT=y
1011CONFIG_LCD_CLASS_DEVICE=y
1012# CONFIG_LCD_LMS283GF05 is not set
1013# CONFIG_LCD_LTV350QV is not set
1014# CONFIG_LCD_ILI9320 is not set
1015CONFIG_LCD_TDO24M=y
1016# CONFIG_LCD_VGG2432A4 is not set
1017# CONFIG_LCD_PLATFORM is not set
1018CONFIG_BACKLIGHT_CLASS_DEVICE=m
1019# CONFIG_BACKLIGHT_GENERIC is not set
1020CONFIG_BACKLIGHT_DA903X=m
929 1021
930# 1022#
931# Display device support 1023# Display device support
@@ -956,38 +1048,48 @@ CONFIG_LOGO_LINUX_MONO=y
956CONFIG_LOGO_LINUX_VGA16=y 1048CONFIG_LOGO_LINUX_VGA16=y
957CONFIG_LOGO_LINUX_CLUT224=y 1049CONFIG_LOGO_LINUX_CLUT224=y
958CONFIG_SOUND=m 1050CONFIG_SOUND=m
959# CONFIG_SOUND_OSS_CORE is not set 1051CONFIG_SOUND_OSS_CORE=y
1052CONFIG_SOUND_OSS_CORE_PRECLAIM=y
960CONFIG_SND=m 1053CONFIG_SND=m
961CONFIG_SND_TIMER=m 1054CONFIG_SND_TIMER=m
962CONFIG_SND_PCM=m 1055CONFIG_SND_PCM=m
963CONFIG_SND_JACK=y 1056CONFIG_SND_JACK=y
964# CONFIG_SND_SEQUENCER is not set 1057# CONFIG_SND_SEQUENCER is not set
965# CONFIG_SND_MIXER_OSS is not set 1058CONFIG_SND_OSSEMUL=y
966# CONFIG_SND_PCM_OSS is not set 1059CONFIG_SND_MIXER_OSS=m
1060CONFIG_SND_PCM_OSS=m
1061CONFIG_SND_PCM_OSS_PLUGINS=y
967# CONFIG_SND_DYNAMIC_MINORS is not set 1062# CONFIG_SND_DYNAMIC_MINORS is not set
968CONFIG_SND_SUPPORT_OLD_API=y 1063CONFIG_SND_SUPPORT_OLD_API=y
969CONFIG_SND_VERBOSE_PROCFS=y 1064CONFIG_SND_VERBOSE_PROCFS=y
970# CONFIG_SND_VERBOSE_PRINTK is not set 1065# CONFIG_SND_VERBOSE_PRINTK is not set
971# CONFIG_SND_DEBUG is not set 1066# CONFIG_SND_DEBUG is not set
972CONFIG_SND_DRIVERS=y 1067CONFIG_SND_VMASTER=y
973# CONFIG_SND_DUMMY is not set 1068# CONFIG_SND_RAWMIDI_SEQ is not set
974# CONFIG_SND_MTPAV is not set 1069# CONFIG_SND_OPL3_LIB_SEQ is not set
975# CONFIG_SND_SERIAL_U16550 is not set 1070# CONFIG_SND_OPL4_LIB_SEQ is not set
976# CONFIG_SND_MPU401 is not set 1071# CONFIG_SND_SBAWE_SEQ is not set
1072# CONFIG_SND_EMU10K1_SEQ is not set
1073CONFIG_SND_AC97_CODEC=m
1074# CONFIG_SND_DRIVERS is not set
977CONFIG_SND_ARM=y 1075CONFIG_SND_ARM=y
978CONFIG_SND_PXA2XX_LIB=m 1076CONFIG_SND_PXA2XX_LIB=m
1077CONFIG_SND_PXA2XX_LIB_AC97=y
979# CONFIG_SND_PXA2XX_AC97 is not set 1078# CONFIG_SND_PXA2XX_AC97 is not set
980CONFIG_SND_USB=y 1079# CONFIG_SND_SPI is not set
981# CONFIG_SND_USB_AUDIO is not set 1080# CONFIG_SND_USB is not set
982# CONFIG_SND_USB_CAIAQ is not set
983CONFIG_SND_SOC=m 1081CONFIG_SND_SOC=m
1082CONFIG_SND_SOC_AC97_BUS=y
984CONFIG_SND_PXA2XX_SOC=m 1083CONFIG_SND_PXA2XX_SOC=m
1084CONFIG_SND_PXA2XX_SOC_AC97=m
1085CONFIG_SND_PXA2XX_SOC_EM_X270=m
985CONFIG_SND_SOC_I2C_AND_SPI=m 1086CONFIG_SND_SOC_I2C_AND_SPI=m
986# CONFIG_SND_SOC_ALL_CODECS is not set 1087# CONFIG_SND_SOC_ALL_CODECS is not set
1088CONFIG_SND_SOC_WM9712=m
987# CONFIG_SOUND_PRIME is not set 1089# CONFIG_SOUND_PRIME is not set
1090CONFIG_AC97_BUS=m
988CONFIG_HID_SUPPORT=y 1091CONFIG_HID_SUPPORT=y
989CONFIG_HID=y 1092CONFIG_HID=y
990CONFIG_HID_DEBUG=y
991# CONFIG_HIDRAW is not set 1093# CONFIG_HIDRAW is not set
992 1094
993# 1095#
@@ -1006,10 +1108,12 @@ CONFIG_HID_BELKIN=y
1006CONFIG_HID_CHERRY=y 1108CONFIG_HID_CHERRY=y
1007CONFIG_HID_CHICONY=y 1109CONFIG_HID_CHICONY=y
1008CONFIG_HID_CYPRESS=y 1110CONFIG_HID_CYPRESS=y
1111CONFIG_HID_DRAGONRISE=y
1009# CONFIG_DRAGONRISE_FF is not set 1112# CONFIG_DRAGONRISE_FF is not set
1010CONFIG_HID_EZKEY=y 1113CONFIG_HID_EZKEY=y
1011CONFIG_HID_KYE=y 1114CONFIG_HID_KYE=y
1012CONFIG_HID_GYRATION=y 1115CONFIG_HID_GYRATION=y
1116CONFIG_HID_TWINHAN=y
1013CONFIG_HID_KENSINGTON=y 1117CONFIG_HID_KENSINGTON=y
1014CONFIG_HID_LOGITECH=y 1118CONFIG_HID_LOGITECH=y
1015# CONFIG_LOGITECH_FF is not set 1119# CONFIG_LOGITECH_FF is not set
@@ -1023,9 +1127,15 @@ CONFIG_HID_PETALYNX=y
1023CONFIG_HID_SAMSUNG=y 1127CONFIG_HID_SAMSUNG=y
1024CONFIG_HID_SONY=y 1128CONFIG_HID_SONY=y
1025CONFIG_HID_SUNPLUS=y 1129CONFIG_HID_SUNPLUS=y
1130CONFIG_HID_GREENASIA=y
1026# CONFIG_GREENASIA_FF is not set 1131# CONFIG_GREENASIA_FF is not set
1132CONFIG_HID_SMARTJOYPLUS=y
1133# CONFIG_SMARTJOYPLUS_FF is not set
1027CONFIG_HID_TOPSEED=y 1134CONFIG_HID_TOPSEED=y
1135CONFIG_HID_THRUSTMASTER=y
1028# CONFIG_THRUSTMASTER_FF is not set 1136# CONFIG_THRUSTMASTER_FF is not set
1137CONFIG_HID_WACOM=m
1138CONFIG_HID_ZEROPLUS=y
1029# CONFIG_ZEROPLUS_FF is not set 1139# CONFIG_ZEROPLUS_FF is not set
1030CONFIG_USB_SUPPORT=y 1140CONFIG_USB_SUPPORT=y
1031CONFIG_USB_ARCH_HAS_HCD=y 1141CONFIG_USB_ARCH_HAS_HCD=y
@@ -1054,6 +1164,7 @@ CONFIG_USB_MON=y
1054# CONFIG_USB_OXU210HP_HCD is not set 1164# CONFIG_USB_OXU210HP_HCD is not set
1055# CONFIG_USB_ISP116X_HCD is not set 1165# CONFIG_USB_ISP116X_HCD is not set
1056# CONFIG_USB_ISP1760_HCD is not set 1166# CONFIG_USB_ISP1760_HCD is not set
1167# CONFIG_USB_ISP1362_HCD is not set
1057CONFIG_USB_OHCI_HCD=y 1168CONFIG_USB_OHCI_HCD=y
1058# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 1169# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1059# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 1170# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
@@ -1151,8 +1262,9 @@ CONFIG_MMC_BLOCK_BOUNCE=y
1151# 1262#
1152CONFIG_MMC_PXA=m 1263CONFIG_MMC_PXA=m
1153# CONFIG_MMC_SDHCI is not set 1264# CONFIG_MMC_SDHCI is not set
1265# CONFIG_MMC_AT91 is not set
1266# CONFIG_MMC_ATMELMCI is not set
1154# CONFIG_MEMSTICK is not set 1267# CONFIG_MEMSTICK is not set
1155# CONFIG_ACCESSIBILITY is not set
1156CONFIG_NEW_LEDS=y 1268CONFIG_NEW_LEDS=y
1157CONFIG_LEDS_CLASS=y 1269CONFIG_LEDS_CLASS=y
1158 1270
@@ -1162,8 +1274,10 @@ CONFIG_LEDS_CLASS=y
1162# CONFIG_LEDS_PCA9532 is not set 1274# CONFIG_LEDS_PCA9532 is not set
1163CONFIG_LEDS_GPIO=y 1275CONFIG_LEDS_GPIO=y
1164CONFIG_LEDS_GPIO_PLATFORM=y 1276CONFIG_LEDS_GPIO_PLATFORM=y
1165# CONFIG_LEDS_LP5521 is not set 1277# CONFIG_LEDS_LP3944 is not set
1166# CONFIG_LEDS_PCA955X is not set 1278# CONFIG_LEDS_PCA955X is not set
1279# CONFIG_LEDS_DA903X is not set
1280# CONFIG_LEDS_DAC124S085 is not set
1167# CONFIG_LEDS_BD2802 is not set 1281# CONFIG_LEDS_BD2802 is not set
1168 1282
1169# 1283#
@@ -1179,6 +1293,7 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1179# 1293#
1180# iptables trigger is under Netfilter config (LED target) 1294# iptables trigger is under Netfilter config (LED target)
1181# 1295#
1296# CONFIG_ACCESSIBILITY is not set
1182CONFIG_RTC_LIB=y 1297CONFIG_RTC_LIB=y
1183CONFIG_RTC_CLASS=y 1298CONFIG_RTC_CLASS=y
1184CONFIG_RTC_HCTOSYS=y 1299CONFIG_RTC_HCTOSYS=y
@@ -1210,10 +1325,19 @@ CONFIG_RTC_INTF_DEV=y
1210# CONFIG_RTC_DRV_S35390A is not set 1325# CONFIG_RTC_DRV_S35390A is not set
1211# CONFIG_RTC_DRV_FM3130 is not set 1326# CONFIG_RTC_DRV_FM3130 is not set
1212# CONFIG_RTC_DRV_RX8581 is not set 1327# CONFIG_RTC_DRV_RX8581 is not set
1328# CONFIG_RTC_DRV_RX8025 is not set
1213 1329
1214# 1330#
1215# SPI RTC drivers 1331# SPI RTC drivers
1216# 1332#
1333# CONFIG_RTC_DRV_M41T94 is not set
1334# CONFIG_RTC_DRV_DS1305 is not set
1335# CONFIG_RTC_DRV_DS1390 is not set
1336# CONFIG_RTC_DRV_MAX6902 is not set
1337# CONFIG_RTC_DRV_R9701 is not set
1338# CONFIG_RTC_DRV_RS5C348 is not set
1339# CONFIG_RTC_DRV_DS3234 is not set
1340# CONFIG_RTC_DRV_PCF2123 is not set
1217 1341
1218# 1342#
1219# Platform RTC drivers 1343# Platform RTC drivers
@@ -1233,12 +1357,15 @@ CONFIG_RTC_DRV_V3020=y
1233# 1357#
1234# on-CPU RTC drivers 1358# on-CPU RTC drivers
1235# 1359#
1236CONFIG_RTC_DRV_SA1100=y 1360# CONFIG_RTC_DRV_SA1100 is not set
1237# CONFIG_RTC_DRV_PXA is not set 1361CONFIG_RTC_DRV_PXA=y
1238# CONFIG_DMADEVICES is not set 1362# CONFIG_DMADEVICES is not set
1239# CONFIG_AUXDISPLAY is not set 1363# CONFIG_AUXDISPLAY is not set
1240# CONFIG_REGULATOR is not set
1241# CONFIG_UIO is not set 1364# CONFIG_UIO is not set
1365
1366#
1367# TI VLYNQ
1368#
1242# CONFIG_STAGING is not set 1369# CONFIG_STAGING is not set
1243 1370
1244# 1371#
@@ -1256,10 +1383,13 @@ CONFIG_JBD=y
1256# CONFIG_REISERFS_FS is not set 1383# CONFIG_REISERFS_FS is not set
1257# CONFIG_JFS_FS is not set 1384# CONFIG_JFS_FS is not set
1258CONFIG_FS_POSIX_ACL=y 1385CONFIG_FS_POSIX_ACL=y
1259CONFIG_FILE_LOCKING=y
1260# CONFIG_XFS_FS is not set 1386# CONFIG_XFS_FS is not set
1387# CONFIG_GFS2_FS is not set
1261# CONFIG_OCFS2_FS is not set 1388# CONFIG_OCFS2_FS is not set
1262# CONFIG_BTRFS_FS is not set 1389# CONFIG_BTRFS_FS is not set
1390# CONFIG_NILFS2_FS is not set
1391CONFIG_FILE_LOCKING=y
1392CONFIG_FSNOTIFY=y
1263CONFIG_DNOTIFY=y 1393CONFIG_DNOTIFY=y
1264CONFIG_INOTIFY=y 1394CONFIG_INOTIFY=y
1265CONFIG_INOTIFY_USER=y 1395CONFIG_INOTIFY_USER=y
@@ -1319,6 +1449,12 @@ CONFIG_JFFS2_ZLIB=y
1319# CONFIG_JFFS2_LZO is not set 1449# CONFIG_JFFS2_LZO is not set
1320CONFIG_JFFS2_RTIME=y 1450CONFIG_JFFS2_RTIME=y
1321# CONFIG_JFFS2_RUBIN is not set 1451# CONFIG_JFFS2_RUBIN is not set
1452CONFIG_UBIFS_FS=y
1453# CONFIG_UBIFS_FS_XATTR is not set
1454# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
1455CONFIG_UBIFS_FS_LZO=y
1456CONFIG_UBIFS_FS_ZLIB=y
1457# CONFIG_UBIFS_FS_DEBUG is not set
1322# CONFIG_CRAMFS is not set 1458# CONFIG_CRAMFS is not set
1323# CONFIG_SQUASHFS is not set 1459# CONFIG_SQUASHFS is not set
1324# CONFIG_VXFS_FS is not set 1460# CONFIG_VXFS_FS is not set
@@ -1329,12 +1465,12 @@ CONFIG_JFFS2_RTIME=y
1329# CONFIG_ROMFS_FS is not set 1465# CONFIG_ROMFS_FS is not set
1330# CONFIG_SYSV_FS is not set 1466# CONFIG_SYSV_FS is not set
1331# CONFIG_UFS_FS is not set 1467# CONFIG_UFS_FS is not set
1332# CONFIG_NILFS2_FS is not set
1333CONFIG_NETWORK_FILESYSTEMS=y 1468CONFIG_NETWORK_FILESYSTEMS=y
1334CONFIG_NFS_FS=y 1469CONFIG_NFS_FS=y
1335CONFIG_NFS_V3=y 1470CONFIG_NFS_V3=y
1336CONFIG_NFS_V3_ACL=y 1471CONFIG_NFS_V3_ACL=y
1337CONFIG_NFS_V4=y 1472CONFIG_NFS_V4=y
1473# CONFIG_NFS_V4_1 is not set
1338CONFIG_ROOT_NFS=y 1474CONFIG_ROOT_NFS=y
1339# CONFIG_NFSD is not set 1475# CONFIG_NFSD is not set
1340CONFIG_LOCKD=y 1476CONFIG_LOCKD=y
@@ -1378,7 +1514,7 @@ CONFIG_MSDOS_PARTITION=y
1378# CONFIG_KARMA_PARTITION is not set 1514# CONFIG_KARMA_PARTITION is not set
1379# CONFIG_EFI_PARTITION is not set 1515# CONFIG_EFI_PARTITION is not set
1380# CONFIG_SYSV68_PARTITION is not set 1516# CONFIG_SYSV68_PARTITION is not set
1381CONFIG_NLS=m 1517CONFIG_NLS=y
1382CONFIG_NLS_DEFAULT="iso8859-1" 1518CONFIG_NLS_DEFAULT="iso8859-1"
1383CONFIG_NLS_CODEPAGE_437=m 1519CONFIG_NLS_CODEPAGE_437=m
1384# CONFIG_NLS_CODEPAGE_737 is not set 1520# CONFIG_NLS_CODEPAGE_737 is not set
@@ -1428,6 +1564,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1428CONFIG_ENABLE_MUST_CHECK=y 1564CONFIG_ENABLE_MUST_CHECK=y
1429CONFIG_FRAME_WARN=1024 1565CONFIG_FRAME_WARN=1024
1430# CONFIG_MAGIC_SYSRQ is not set 1566# CONFIG_MAGIC_SYSRQ is not set
1567# CONFIG_STRIP_ASM_SYMS is not set
1431# CONFIG_UNUSED_SYMBOLS is not set 1568# CONFIG_UNUSED_SYMBOLS is not set
1432CONFIG_DEBUG_FS=y 1569CONFIG_DEBUG_FS=y
1433# CONFIG_HEADERS_CHECK is not set 1570# CONFIG_HEADERS_CHECK is not set
@@ -1441,6 +1578,7 @@ CONFIG_DEBUG_KERNEL=y
1441# CONFIG_DEBUG_OBJECTS is not set 1578# CONFIG_DEBUG_OBJECTS is not set
1442# CONFIG_SLUB_DEBUG_ON is not set 1579# CONFIG_SLUB_DEBUG_ON is not set
1443# CONFIG_SLUB_STATS is not set 1580# CONFIG_SLUB_STATS is not set
1581# CONFIG_DEBUG_KMEMLEAK is not set
1444# CONFIG_DEBUG_RT_MUTEXES is not set 1582# CONFIG_DEBUG_RT_MUTEXES is not set
1445# CONFIG_RT_MUTEX_TESTER is not set 1583# CONFIG_RT_MUTEX_TESTER is not set
1446# CONFIG_DEBUG_SPINLOCK is not set 1584# CONFIG_DEBUG_SPINLOCK is not set
@@ -1460,32 +1598,20 @@ CONFIG_DEBUG_MEMORY_INIT=y
1460# CONFIG_DEBUG_LIST is not set 1598# CONFIG_DEBUG_LIST is not set
1461# CONFIG_DEBUG_SG is not set 1599# CONFIG_DEBUG_SG is not set
1462# CONFIG_DEBUG_NOTIFIERS is not set 1600# CONFIG_DEBUG_NOTIFIERS is not set
1601# CONFIG_DEBUG_CREDENTIALS is not set
1463# CONFIG_BOOT_PRINTK_DELAY is not set 1602# CONFIG_BOOT_PRINTK_DELAY is not set
1464# CONFIG_RCU_TORTURE_TEST is not set 1603# CONFIG_RCU_TORTURE_TEST is not set
1465# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1604# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1466# CONFIG_BACKTRACE_SELF_TEST is not set 1605# CONFIG_BACKTRACE_SELF_TEST is not set
1467# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1606# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1607# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1468# CONFIG_FAULT_INJECTION is not set 1608# CONFIG_FAULT_INJECTION is not set
1469# CONFIG_LATENCYTOP is not set 1609# CONFIG_LATENCYTOP is not set
1470CONFIG_SYSCTL_SYSCALL_CHECK=y 1610CONFIG_SYSCTL_SYSCALL_CHECK=y
1471# CONFIG_PAGE_POISONING is not set 1611# CONFIG_PAGE_POISONING is not set
1472CONFIG_HAVE_FUNCTION_TRACER=y 1612CONFIG_HAVE_FUNCTION_TRACER=y
1473CONFIG_TRACING_SUPPORT=y 1613CONFIG_TRACING_SUPPORT=y
1474 1614# CONFIG_FTRACE is not set
1475#
1476# Tracers
1477#
1478# CONFIG_FUNCTION_TRACER is not set
1479# CONFIG_IRQSOFF_TRACER is not set
1480# CONFIG_SCHED_TRACER is not set
1481# CONFIG_CONTEXT_SWITCH_TRACER is not set
1482# CONFIG_EVENT_TRACER is not set
1483# CONFIG_BOOT_TRACER is not set
1484# CONFIG_TRACE_BRANCH_PROFILING is not set
1485# CONFIG_STACK_TRACER is not set
1486# CONFIG_KMEMTRACE is not set
1487# CONFIG_WORKQUEUE_TRACER is not set
1488# CONFIG_BLK_DEV_IO_TRACE is not set
1489# CONFIG_DYNAMIC_DEBUG is not set 1615# CONFIG_DYNAMIC_DEBUG is not set
1490# CONFIG_SAMPLES is not set 1616# CONFIG_SAMPLES is not set
1491CONFIG_HAVE_ARCH_KGDB=y 1617CONFIG_HAVE_ARCH_KGDB=y
@@ -1509,7 +1635,6 @@ CONFIG_CRYPTO=y
1509# 1635#
1510# Crypto core or helper 1636# Crypto core or helper
1511# 1637#
1512# CONFIG_CRYPTO_FIPS is not set
1513CONFIG_CRYPTO_ALGAPI=y 1638CONFIG_CRYPTO_ALGAPI=y
1514CONFIG_CRYPTO_ALGAPI2=y 1639CONFIG_CRYPTO_ALGAPI2=y
1515CONFIG_CRYPTO_AEAD2=y 1640CONFIG_CRYPTO_AEAD2=y
@@ -1551,11 +1676,13 @@ CONFIG_CRYPTO_ECB=m
1551# 1676#
1552# CONFIG_CRYPTO_HMAC is not set 1677# CONFIG_CRYPTO_HMAC is not set
1553# CONFIG_CRYPTO_XCBC is not set 1678# CONFIG_CRYPTO_XCBC is not set
1679# CONFIG_CRYPTO_VMAC is not set
1554 1680
1555# 1681#
1556# Digest 1682# Digest
1557# 1683#
1558# CONFIG_CRYPTO_CRC32C is not set 1684# CONFIG_CRYPTO_CRC32C is not set
1685# CONFIG_CRYPTO_GHASH is not set
1559# CONFIG_CRYPTO_MD4 is not set 1686# CONFIG_CRYPTO_MD4 is not set
1560CONFIG_CRYPTO_MD5=y 1687CONFIG_CRYPTO_MD5=y
1561CONFIG_CRYPTO_MICHAEL_MIC=m 1688CONFIG_CRYPTO_MICHAEL_MIC=m
@@ -1591,9 +1718,9 @@ CONFIG_CRYPTO_DES=y
1591# 1718#
1592# Compression 1719# Compression
1593# 1720#
1594# CONFIG_CRYPTO_DEFLATE is not set 1721CONFIG_CRYPTO_DEFLATE=y
1595# CONFIG_CRYPTO_ZLIB is not set 1722# CONFIG_CRYPTO_ZLIB is not set
1596# CONFIG_CRYPTO_LZO is not set 1723CONFIG_CRYPTO_LZO=y
1597 1724
1598# 1725#
1599# Random Number Generation 1726# Random Number Generation
@@ -1608,7 +1735,7 @@ CONFIG_CRYPTO_DES=y
1608CONFIG_BITREVERSE=y 1735CONFIG_BITREVERSE=y
1609CONFIG_GENERIC_FIND_LAST_BIT=y 1736CONFIG_GENERIC_FIND_LAST_BIT=y
1610# CONFIG_CRC_CCITT is not set 1737# CONFIG_CRC_CCITT is not set
1611# CONFIG_CRC16 is not set 1738CONFIG_CRC16=y
1612CONFIG_CRC_T10DIF=y 1739CONFIG_CRC_T10DIF=y
1613# CONFIG_CRC_ITU_T is not set 1740# CONFIG_CRC_ITU_T is not set
1614CONFIG_CRC32=y 1741CONFIG_CRC32=y
@@ -1616,6 +1743,8 @@ CONFIG_CRC32=y
1616# CONFIG_LIBCRC32C is not set 1743# CONFIG_LIBCRC32C is not set
1617CONFIG_ZLIB_INFLATE=y 1744CONFIG_ZLIB_INFLATE=y
1618CONFIG_ZLIB_DEFLATE=y 1745CONFIG_ZLIB_DEFLATE=y
1746CONFIG_LZO_COMPRESS=y
1747CONFIG_LZO_DECOMPRESS=y
1619CONFIG_DECOMPRESS_GZIP=y 1748CONFIG_DECOMPRESS_GZIP=y
1620CONFIG_DECOMPRESS_BZIP2=y 1749CONFIG_DECOMPRESS_BZIP2=y
1621CONFIG_DECOMPRESS_LZMA=y 1750CONFIG_DECOMPRESS_LZMA=y
diff --git a/arch/arm/configs/ezx_defconfig b/arch/arm/configs/ezx_defconfig
index d5ee16e6abf3..492f29aba332 100644
--- a/arch/arm/configs/ezx_defconfig
+++ b/arch/arm/configs/ezx_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc3 3# Linux kernel version: 2.6.32-rc5
4# Mon Jul 7 17:52:21 2008 4# Mon Nov 2 13:18:50 2009
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_HAVE_PWM=y 7CONFIG_HAVE_PWM=y
@@ -9,24 +9,22 @@ CONFIG_SYS_SUPPORTS_APM_EMULATION=y
9CONFIG_GENERIC_GPIO=y 9CONFIG_GENERIC_GPIO=y
10CONFIG_GENERIC_TIME=y 10CONFIG_GENERIC_TIME=y
11CONFIG_GENERIC_CLOCKEVENTS=y 11CONFIG_GENERIC_CLOCKEVENTS=y
12CONFIG_MMU=y
13# CONFIG_NO_IOPORT is not set
14CONFIG_GENERIC_HARDIRQS=y 12CONFIG_GENERIC_HARDIRQS=y
15CONFIG_STACKTRACE_SUPPORT=y 13CONFIG_STACKTRACE_SUPPORT=y
14CONFIG_HAVE_LATENCYTOP_SUPPORT=y
16CONFIG_LOCKDEP_SUPPORT=y 15CONFIG_LOCKDEP_SUPPORT=y
17CONFIG_TRACE_IRQFLAGS_SUPPORT=y 16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
18CONFIG_HARDIRQS_SW_RESEND=y 17CONFIG_HARDIRQS_SW_RESEND=y
19CONFIG_GENERIC_IRQ_PROBE=y 18CONFIG_GENERIC_IRQ_PROBE=y
20CONFIG_RWSEM_GENERIC_SPINLOCK=y 19CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U32 is not set 20CONFIG_ARCH_HAS_CPUFREQ=y
22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
23CONFIG_GENERIC_HWEIGHT=y 21CONFIG_GENERIC_HWEIGHT=y
24CONFIG_GENERIC_CALIBRATE_DELAY=y 22CONFIG_GENERIC_CALIBRATE_DELAY=y
25CONFIG_ARCH_SUPPORTS_AOUT=y
26CONFIG_ZONE_DMA=y
27CONFIG_ARCH_MTD_XIP=y 23CONFIG_ARCH_MTD_XIP=y
24CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
28CONFIG_VECTORS_BASE=0xffff0000 25CONFIG_VECTORS_BASE=0xffff0000
29CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27CONFIG_CONSTRUCTORS=y
30 28
31# 29#
32# General setup 30# General setup
@@ -35,7 +33,7 @@ CONFIG_EXPERIMENTAL=y
35CONFIG_BROKEN_ON_SMP=y 33CONFIG_BROKEN_ON_SMP=y
36CONFIG_LOCK_KERNEL=y 34CONFIG_LOCK_KERNEL=y
37CONFIG_INIT_ENV_ARG_LIMIT=32 35CONFIG_INIT_ENV_ARG_LIMIT=32
38CONFIG_LOCALVERSION="-ezxdev" 36CONFIG_LOCALVERSION="-ezx200910312315"
39# CONFIG_LOCALVERSION_AUTO is not set 37# CONFIG_LOCALVERSION_AUTO is not set
40CONFIG_SWAP=y 38CONFIG_SWAP=y
41CONFIG_SYSVIPC=y 39CONFIG_SYSVIPC=y
@@ -44,56 +42,78 @@ CONFIG_SYSVIPC_SYSCTL=y
44# CONFIG_BSD_PROCESS_ACCT is not set 42# CONFIG_BSD_PROCESS_ACCT is not set
45# CONFIG_TASKSTATS is not set 43# CONFIG_TASKSTATS is not set
46# CONFIG_AUDIT is not set 44# CONFIG_AUDIT is not set
47CONFIG_IKCONFIG=y 45
48CONFIG_IKCONFIG_PROC=y 46#
47# RCU Subsystem
48#
49CONFIG_TREE_RCU=y
50# CONFIG_TREE_PREEMPT_RCU is not set
51# CONFIG_RCU_TRACE is not set
52CONFIG_RCU_FANOUT=32
53# CONFIG_RCU_FANOUT_EXACT is not set
54# CONFIG_TREE_RCU_TRACE is not set
55# CONFIG_IKCONFIG is not set
49CONFIG_LOG_BUF_SHIFT=14 56CONFIG_LOG_BUF_SHIFT=14
50# CONFIG_CGROUPS is not set
51CONFIG_GROUP_SCHED=y 57CONFIG_GROUP_SCHED=y
52CONFIG_FAIR_GROUP_SCHED=y 58CONFIG_FAIR_GROUP_SCHED=y
53# CONFIG_RT_GROUP_SCHED is not set 59# CONFIG_RT_GROUP_SCHED is not set
54CONFIG_USER_SCHED=y 60CONFIG_USER_SCHED=y
55# CONFIG_CGROUP_SCHED is not set 61# CONFIG_CGROUP_SCHED is not set
62# CONFIG_CGROUPS is not set
56CONFIG_SYSFS_DEPRECATED=y 63CONFIG_SYSFS_DEPRECATED=y
57CONFIG_SYSFS_DEPRECATED_V2=y 64CONFIG_SYSFS_DEPRECATED_V2=y
58# CONFIG_RELAY is not set 65# CONFIG_RELAY is not set
59# CONFIG_NAMESPACES is not set 66# CONFIG_NAMESPACES is not set
60# CONFIG_BLK_DEV_INITRD is not set 67CONFIG_BLK_DEV_INITRD=y
68CONFIG_INITRAMFS_SOURCE=""
69CONFIG_RD_GZIP=y
70CONFIG_RD_BZIP2=y
71CONFIG_RD_LZMA=y
61CONFIG_CC_OPTIMIZE_FOR_SIZE=y 72CONFIG_CC_OPTIMIZE_FOR_SIZE=y
62CONFIG_SYSCTL=y 73CONFIG_SYSCTL=y
74CONFIG_ANON_INODES=y
63CONFIG_EMBEDDED=y 75CONFIG_EMBEDDED=y
64CONFIG_UID16=y 76CONFIG_UID16=y
65CONFIG_SYSCTL_SYSCALL=y 77CONFIG_SYSCTL_SYSCALL=y
66CONFIG_SYSCTL_SYSCALL_CHECK=y
67CONFIG_KALLSYMS=y 78CONFIG_KALLSYMS=y
79CONFIG_KALLSYMS_ALL=y
68# CONFIG_KALLSYMS_EXTRA_PASS is not set 80# CONFIG_KALLSYMS_EXTRA_PASS is not set
69CONFIG_HOTPLUG=y 81CONFIG_HOTPLUG=y
70CONFIG_PRINTK=y 82CONFIG_PRINTK=y
71CONFIG_BUG=y 83CONFIG_BUG=y
72CONFIG_ELF_CORE=y 84CONFIG_ELF_CORE=y
73# CONFIG_COMPAT_BRK is not set
74CONFIG_BASE_FULL=y 85CONFIG_BASE_FULL=y
75CONFIG_FUTEX=y 86CONFIG_FUTEX=y
76CONFIG_ANON_INODES=y
77CONFIG_EPOLL=y 87CONFIG_EPOLL=y
78CONFIG_SIGNALFD=y 88CONFIG_SIGNALFD=y
79CONFIG_TIMERFD=y 89CONFIG_TIMERFD=y
80CONFIG_EVENTFD=y 90CONFIG_EVENTFD=y
81CONFIG_SHMEM=y 91CONFIG_SHMEM=y
92CONFIG_AIO=y
93
94#
95# Kernel Performance Events And Counters
96#
82CONFIG_VM_EVENT_COUNTERS=y 97CONFIG_VM_EVENT_COUNTERS=y
98# CONFIG_COMPAT_BRK is not set
83CONFIG_SLAB=y 99CONFIG_SLAB=y
84# CONFIG_SLUB is not set 100# CONFIG_SLUB is not set
85# CONFIG_SLOB is not set 101# CONFIG_SLOB is not set
86# CONFIG_PROFILING is not set 102# CONFIG_PROFILING is not set
87# CONFIG_MARKERS is not set
88CONFIG_HAVE_OPROFILE=y 103CONFIG_HAVE_OPROFILE=y
89# CONFIG_KPROBES is not set 104# CONFIG_KPROBES is not set
90CONFIG_HAVE_KPROBES=y 105CONFIG_HAVE_KPROBES=y
91CONFIG_HAVE_KRETPROBES=y 106CONFIG_HAVE_KRETPROBES=y
92# CONFIG_HAVE_DMA_ATTRS is not set 107CONFIG_HAVE_CLK=y
93CONFIG_PROC_PAGE_MONITOR=y 108
109#
110# GCOV-based kernel profiling
111#
112# CONFIG_GCOV_KERNEL is not set
113CONFIG_SLOW_WORK=y
114CONFIG_HAVE_GENERIC_DMA_COHERENT=y
94CONFIG_SLABINFO=y 115CONFIG_SLABINFO=y
95CONFIG_RT_MUTEXES=y 116CONFIG_RT_MUTEXES=y
96# CONFIG_TINY_SHMEM is not set
97CONFIG_BASE_SMALL=0 117CONFIG_BASE_SMALL=0
98CONFIG_MODULES=y 118CONFIG_MODULES=y
99# CONFIG_MODULE_FORCE_LOAD is not set 119# CONFIG_MODULE_FORCE_LOAD is not set
@@ -101,12 +121,10 @@ CONFIG_MODULE_UNLOAD=y
101CONFIG_MODULE_FORCE_UNLOAD=y 121CONFIG_MODULE_FORCE_UNLOAD=y
102CONFIG_MODVERSIONS=y 122CONFIG_MODVERSIONS=y
103# CONFIG_MODULE_SRCVERSION_ALL is not set 123# CONFIG_MODULE_SRCVERSION_ALL is not set
104CONFIG_KMOD=y
105CONFIG_BLOCK=y 124CONFIG_BLOCK=y
106# CONFIG_LBD is not set 125# CONFIG_LBDAF is not set
107# CONFIG_BLK_DEV_IO_TRACE is not set
108# CONFIG_LSF is not set
109# CONFIG_BLK_DEV_BSG is not set 126# CONFIG_BLK_DEV_BSG is not set
127# CONFIG_BLK_DEV_INTEGRITY is not set
110 128
111# 129#
112# IO Schedulers 130# IO Schedulers
@@ -120,25 +138,27 @@ CONFIG_DEFAULT_DEADLINE=y
120# CONFIG_DEFAULT_CFQ is not set 138# CONFIG_DEFAULT_CFQ is not set
121# CONFIG_DEFAULT_NOOP is not set 139# CONFIG_DEFAULT_NOOP is not set
122CONFIG_DEFAULT_IOSCHED="deadline" 140CONFIG_DEFAULT_IOSCHED="deadline"
123CONFIG_CLASSIC_RCU=y 141CONFIG_FREEZER=y
124 142
125# 143#
126# System Type 144# System Type
127# 145#
146CONFIG_MMU=y
128# CONFIG_ARCH_AAEC2000 is not set 147# CONFIG_ARCH_AAEC2000 is not set
129# CONFIG_ARCH_INTEGRATOR is not set 148# CONFIG_ARCH_INTEGRATOR is not set
130# CONFIG_ARCH_REALVIEW is not set 149# CONFIG_ARCH_REALVIEW is not set
131# CONFIG_ARCH_VERSATILE is not set 150# CONFIG_ARCH_VERSATILE is not set
132# CONFIG_ARCH_AT91 is not set 151# CONFIG_ARCH_AT91 is not set
133# CONFIG_ARCH_CLPS7500 is not set
134# CONFIG_ARCH_CLPS711X is not set 152# CONFIG_ARCH_CLPS711X is not set
135# CONFIG_ARCH_CO285 is not set 153# CONFIG_ARCH_GEMINI is not set
136# CONFIG_ARCH_EBSA110 is not set 154# CONFIG_ARCH_EBSA110 is not set
137# CONFIG_ARCH_EP93XX is not set 155# CONFIG_ARCH_EP93XX is not set
138# CONFIG_ARCH_FOOTBRIDGE is not set 156# CONFIG_ARCH_FOOTBRIDGE is not set
157# CONFIG_ARCH_MXC is not set
158# CONFIG_ARCH_STMP3XXX is not set
139# CONFIG_ARCH_NETX is not set 159# CONFIG_ARCH_NETX is not set
140# CONFIG_ARCH_H720X is not set 160# CONFIG_ARCH_H720X is not set
141# CONFIG_ARCH_IMX is not set 161# CONFIG_ARCH_NOMADIK is not set
142# CONFIG_ARCH_IOP13XX is not set 162# CONFIG_ARCH_IOP13XX is not set
143# CONFIG_ARCH_IOP32X is not set 163# CONFIG_ARCH_IOP32X is not set
144# CONFIG_ARCH_IOP33X is not set 164# CONFIG_ARCH_IOP33X is not set
@@ -146,39 +166,64 @@ CONFIG_CLASSIC_RCU=y
146# CONFIG_ARCH_IXP2000 is not set 166# CONFIG_ARCH_IXP2000 is not set
147# CONFIG_ARCH_IXP4XX is not set 167# CONFIG_ARCH_IXP4XX is not set
148# CONFIG_ARCH_L7200 is not set 168# CONFIG_ARCH_L7200 is not set
169# CONFIG_ARCH_KIRKWOOD is not set
170# CONFIG_ARCH_LOKI is not set
171# CONFIG_ARCH_MV78XX0 is not set
172# CONFIG_ARCH_ORION5X is not set
173# CONFIG_ARCH_MMP is not set
149# CONFIG_ARCH_KS8695 is not set 174# CONFIG_ARCH_KS8695 is not set
150# CONFIG_ARCH_NS9XXX is not set 175# CONFIG_ARCH_NS9XXX is not set
151# CONFIG_ARCH_MXC is not set 176# CONFIG_ARCH_W90X900 is not set
152# CONFIG_ARCH_ORION5X is not set
153# CONFIG_ARCH_PNX4008 is not set 177# CONFIG_ARCH_PNX4008 is not set
154CONFIG_ARCH_PXA=y 178CONFIG_ARCH_PXA=y
179# CONFIG_ARCH_MSM is not set
155# CONFIG_ARCH_RPC is not set 180# CONFIG_ARCH_RPC is not set
156# CONFIG_ARCH_SA1100 is not set 181# CONFIG_ARCH_SA1100 is not set
157# CONFIG_ARCH_S3C2410 is not set 182# CONFIG_ARCH_S3C2410 is not set
183# CONFIG_ARCH_S3C64XX is not set
184# CONFIG_ARCH_S5PC1XX is not set
158# CONFIG_ARCH_SHARK is not set 185# CONFIG_ARCH_SHARK is not set
159# CONFIG_ARCH_LH7A40X is not set 186# CONFIG_ARCH_LH7A40X is not set
187# CONFIG_ARCH_U300 is not set
160# CONFIG_ARCH_DAVINCI is not set 188# CONFIG_ARCH_DAVINCI is not set
161# CONFIG_ARCH_OMAP is not set 189# CONFIG_ARCH_OMAP is not set
162# CONFIG_ARCH_MSM7X00A is not set 190# CONFIG_ARCH_BCMRING is not set
163 191
164# 192#
165# Intel PXA2xx/PXA3xx Implementations 193# Intel PXA2xx/PXA3xx Implementations
166# 194#
167# CONFIG_ARCH_GUMSTIX is not set 195# CONFIG_ARCH_GUMSTIX is not set
196# CONFIG_MACH_INTELMOTE2 is not set
197# CONFIG_MACH_STARGATE2 is not set
168# CONFIG_ARCH_LUBBOCK is not set 198# CONFIG_ARCH_LUBBOCK is not set
169# CONFIG_MACH_LOGICPD_PXA270 is not set 199# CONFIG_MACH_LOGICPD_PXA270 is not set
170# CONFIG_MACH_MAINSTONE is not set 200# CONFIG_MACH_MAINSTONE is not set
201# CONFIG_MACH_MP900C is not set
202# CONFIG_MACH_BALLOON3 is not set
171# CONFIG_ARCH_PXA_IDP is not set 203# CONFIG_ARCH_PXA_IDP is not set
172# CONFIG_PXA_SHARPSL is not set 204# CONFIG_PXA_SHARPSL is not set
205# CONFIG_ARCH_VIPER is not set
173# CONFIG_ARCH_PXA_ESERIES is not set 206# CONFIG_ARCH_PXA_ESERIES is not set
174# CONFIG_MACH_TRIZEPS4 is not set 207# CONFIG_TRIZEPS_PXA is not set
208# CONFIG_MACH_H5000 is not set
175# CONFIG_MACH_EM_X270 is not set 209# CONFIG_MACH_EM_X270 is not set
210# CONFIG_MACH_EXEDA is not set
176# CONFIG_MACH_COLIBRI is not set 211# CONFIG_MACH_COLIBRI is not set
212# CONFIG_MACH_COLIBRI300 is not set
213# CONFIG_MACH_COLIBRI320 is not set
177# CONFIG_MACH_ZYLONITE is not set 214# CONFIG_MACH_ZYLONITE is not set
178# CONFIG_MACH_LITTLETON is not set 215# CONFIG_MACH_LITTLETON is not set
216# CONFIG_MACH_TAVOREVB is not set
217# CONFIG_MACH_SAAR is not set
179# CONFIG_MACH_ARMCORE is not set 218# CONFIG_MACH_ARMCORE is not set
219# CONFIG_MACH_CM_X300 is not set
220# CONFIG_MACH_H4700 is not set
180# CONFIG_MACH_MAGICIAN is not set 221# CONFIG_MACH_MAGICIAN is not set
222# CONFIG_MACH_HIMALAYA is not set
223# CONFIG_MACH_MIOA701 is not set
181# CONFIG_MACH_PCM027 is not set 224# CONFIG_MACH_PCM027 is not set
225# CONFIG_ARCH_PXA_PALM is not set
226# CONFIG_MACH_CSB726 is not set
182CONFIG_PXA_EZX=y 227CONFIG_PXA_EZX=y
183CONFIG_MACH_EZX_A780=y 228CONFIG_MACH_EZX_A780=y
184CONFIG_MACH_EZX_E680=y 229CONFIG_MACH_EZX_E680=y
@@ -186,17 +231,11 @@ CONFIG_MACH_EZX_A1200=y
186CONFIG_MACH_EZX_A910=y 231CONFIG_MACH_EZX_A910=y
187CONFIG_MACH_EZX_E6=y 232CONFIG_MACH_EZX_E6=y
188CONFIG_MACH_EZX_E2=y 233CONFIG_MACH_EZX_E2=y
234# CONFIG_MACH_XCEP is not set
189CONFIG_PXA27x=y 235CONFIG_PXA27x=y
190CONFIG_PXA_SSP=y 236CONFIG_PXA_SSP=y
191CONFIG_PXA_PWM=y 237CONFIG_PXA_HAVE_BOARD_IRQS=y
192 238CONFIG_PLAT_PXA=y
193#
194# Boot options
195#
196
197#
198# Power management
199#
200 239
201# 240#
202# Processor Type 241# Processor Type
@@ -205,7 +244,7 @@ CONFIG_CPU_32=y
205CONFIG_CPU_XSCALE=y 244CONFIG_CPU_XSCALE=y
206CONFIG_CPU_32v5=y 245CONFIG_CPU_32v5=y
207CONFIG_CPU_ABRT_EV5T=y 246CONFIG_CPU_ABRT_EV5T=y
208CONFIG_CPU_PABRT_NOIFAR=y 247CONFIG_CPU_PABRT_LEGACY=y
209CONFIG_CPU_CACHE_VIVT=y 248CONFIG_CPU_CACHE_VIVT=y
210CONFIG_CPU_TLB_V4WBI=y 249CONFIG_CPU_TLB_V4WBI=y
211CONFIG_CPU_CP15=y 250CONFIG_CPU_CP15=y
@@ -216,9 +255,10 @@ CONFIG_CPU_CP15_MMU=y
216# 255#
217CONFIG_ARM_THUMB=y 256CONFIG_ARM_THUMB=y
218# CONFIG_CPU_DCACHE_DISABLE is not set 257# CONFIG_CPU_DCACHE_DISABLE is not set
219# CONFIG_OUTER_CACHE is not set 258CONFIG_ARM_L1_CACHE_SHIFT=5
220CONFIG_IWMMXT=y 259CONFIG_IWMMXT=y
221CONFIG_XSCALE_PMU=y 260CONFIG_XSCALE_PMU=y
261CONFIG_COMMON_CLKDEV=y
222 262
223# 263#
224# Bus support 264# Bus support
@@ -231,44 +271,71 @@ CONFIG_XSCALE_PMU=y
231# Kernel Features 271# Kernel Features
232# 272#
233CONFIG_TICK_ONESHOT=y 273CONFIG_TICK_ONESHOT=y
234# CONFIG_NO_HZ is not set 274CONFIG_NO_HZ=y
235CONFIG_HIGH_RES_TIMERS=y 275CONFIG_HIGH_RES_TIMERS=y
236CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 276CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
277CONFIG_VMSPLIT_3G=y
278# CONFIG_VMSPLIT_2G is not set
279# CONFIG_VMSPLIT_1G is not set
280CONFIG_PAGE_OFFSET=0xC0000000
281# CONFIG_PREEMPT_NONE is not set
282# CONFIG_PREEMPT_VOLUNTARY is not set
237CONFIG_PREEMPT=y 283CONFIG_PREEMPT=y
238CONFIG_HZ=100 284CONFIG_HZ=100
239CONFIG_AEABI=y 285CONFIG_AEABI=y
240CONFIG_OABI_COMPAT=y 286CONFIG_OABI_COMPAT=y
241# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 287# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
288# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
289# CONFIG_HIGHMEM is not set
242CONFIG_SELECT_MEMORY_MODEL=y 290CONFIG_SELECT_MEMORY_MODEL=y
243CONFIG_FLATMEM_MANUAL=y 291CONFIG_FLATMEM_MANUAL=y
244# CONFIG_DISCONTIGMEM_MANUAL is not set 292# CONFIG_DISCONTIGMEM_MANUAL is not set
245# CONFIG_SPARSEMEM_MANUAL is not set 293# CONFIG_SPARSEMEM_MANUAL is not set
246CONFIG_FLATMEM=y 294CONFIG_FLATMEM=y
247CONFIG_FLAT_NODE_MEM_MAP=y 295CONFIG_FLAT_NODE_MEM_MAP=y
248# CONFIG_SPARSEMEM_STATIC is not set
249# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
250CONFIG_PAGEFLAGS_EXTENDED=y 296CONFIG_PAGEFLAGS_EXTENDED=y
251CONFIG_SPLIT_PTLOCK_CPUS=4096 297CONFIG_SPLIT_PTLOCK_CPUS=4096
252# CONFIG_RESOURCES_64BIT is not set 298# CONFIG_PHYS_ADDR_T_64BIT is not set
253CONFIG_ZONE_DMA_FLAG=1 299CONFIG_ZONE_DMA_FLAG=0
254CONFIG_BOUNCE=y
255CONFIG_VIRT_TO_BUS=y 300CONFIG_VIRT_TO_BUS=y
301CONFIG_HAVE_MLOCK=y
302CONFIG_HAVE_MLOCKED_PAGE_BIT=y
303# CONFIG_KSM is not set
304CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
256CONFIG_ALIGNMENT_TRAP=y 305CONFIG_ALIGNMENT_TRAP=y
306# CONFIG_UACCESS_WITH_MEMCPY is not set
257 307
258# 308#
259# Boot options 309# Boot options
260# 310#
261CONFIG_ZBOOT_ROM_TEXT=0x0 311CONFIG_ZBOOT_ROM_TEXT=0x0
262CONFIG_ZBOOT_ROM_BSS=0x0 312CONFIG_ZBOOT_ROM_BSS=0x0
263CONFIG_CMDLINE="console=tty1 root=/dev/mmcblk0p2 rootfstype=ext2 rootdelay=1 ip=192.168.0.202:192.168.0.200:192.168.0.200:255.255.255.0 debug" 313CONFIG_CMDLINE="console=tty1 root=/dev/mmcblk0p2 rootfstype=ext2 rootdelay=3 ip=192.168.0.202:192.168.0.200:192.168.0.200:255.255.255.0 debug"
264# CONFIG_XIP_KERNEL is not set 314# CONFIG_XIP_KERNEL is not set
265CONFIG_KEXEC=y 315CONFIG_KEXEC=y
266CONFIG_ATAGS_PROC=y 316CONFIG_ATAGS_PROC=y
267 317
268# 318#
269# CPU Frequency scaling 319# CPU Power Management
270# 320#
271# CONFIG_CPU_FREQ is not set 321CONFIG_CPU_FREQ=y
322CONFIG_CPU_FREQ_TABLE=y
323CONFIG_CPU_FREQ_DEBUG=y
324CONFIG_CPU_FREQ_STAT=y
325# CONFIG_CPU_FREQ_STAT_DETAILS is not set
326CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
327# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
328# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
329# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
330# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
331CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
332CONFIG_CPU_FREQ_GOV_POWERSAVE=m
333CONFIG_CPU_FREQ_GOV_USERSPACE=m
334CONFIG_CPU_FREQ_GOV_ONDEMAND=m
335CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
336CONFIG_CPU_IDLE=y
337CONFIG_CPU_IDLE_GOV_LADDER=y
338CONFIG_CPU_IDLE_GOV_MENU=y
272 339
273# 340#
274# Floating point emulation 341# Floating point emulation
@@ -285,6 +352,8 @@ CONFIG_FPE_NWFPE=y
285# Userspace binary formats 352# Userspace binary formats
286# 353#
287CONFIG_BINFMT_ELF=y 354CONFIG_BINFMT_ELF=y
355# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
356CONFIG_HAVE_AOUT=y
288CONFIG_BINFMT_AOUT=m 357CONFIG_BINFMT_AOUT=m
289CONFIG_BINFMT_MISC=m 358CONFIG_BINFMT_MISC=m
290 359
@@ -297,11 +366,8 @@ CONFIG_PM_SLEEP=y
297CONFIG_SUSPEND=y 366CONFIG_SUSPEND=y
298CONFIG_SUSPEND_FREEZER=y 367CONFIG_SUSPEND_FREEZER=y
299CONFIG_APM_EMULATION=y 368CONFIG_APM_EMULATION=y
369CONFIG_PM_RUNTIME=y
300CONFIG_ARCH_SUSPEND_POSSIBLE=y 370CONFIG_ARCH_SUSPEND_POSSIBLE=y
301
302#
303# Networking
304#
305CONFIG_NET=y 371CONFIG_NET=y
306 372
307# 373#
@@ -315,6 +381,7 @@ CONFIG_XFRM=y
315# CONFIG_XFRM_SUB_POLICY is not set 381# CONFIG_XFRM_SUB_POLICY is not set
316# CONFIG_XFRM_MIGRATE is not set 382# CONFIG_XFRM_MIGRATE is not set
317# CONFIG_XFRM_STATISTICS is not set 383# CONFIG_XFRM_STATISTICS is not set
384CONFIG_XFRM_IPCOMP=m
318# CONFIG_NET_KEY is not set 385# CONFIG_NET_KEY is not set
319CONFIG_INET=y 386CONFIG_INET=y
320# CONFIG_IP_MULTICAST is not set 387# CONFIG_IP_MULTICAST is not set
@@ -342,7 +409,6 @@ CONFIG_INET_TUNNEL=m
342CONFIG_TCP_CONG_CUBIC=y 409CONFIG_TCP_CONG_CUBIC=y
343CONFIG_DEFAULT_TCP_CONG="cubic" 410CONFIG_DEFAULT_TCP_CONG="cubic"
344# CONFIG_TCP_MD5SIG is not set 411# CONFIG_TCP_MD5SIG is not set
345# CONFIG_IP_VS is not set
346CONFIG_IPV6=m 412CONFIG_IPV6=m
347# CONFIG_IPV6_PRIVACY is not set 413# CONFIG_IPV6_PRIVACY is not set
348# CONFIG_IPV6_ROUTER_PREF is not set 414# CONFIG_IPV6_ROUTER_PREF is not set
@@ -393,18 +459,22 @@ CONFIG_NF_CONNTRACK_SANE=m
393CONFIG_NF_CONNTRACK_SIP=m 459CONFIG_NF_CONNTRACK_SIP=m
394CONFIG_NF_CONNTRACK_TFTP=m 460CONFIG_NF_CONNTRACK_TFTP=m
395CONFIG_NF_CT_NETLINK=m 461CONFIG_NF_CT_NETLINK=m
462# CONFIG_NETFILTER_TPROXY is not set
396CONFIG_NETFILTER_XTABLES=m 463CONFIG_NETFILTER_XTABLES=m
397CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 464CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
398# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set 465# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
399# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 466# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
467CONFIG_NETFILTER_XT_TARGET_HL=m
468CONFIG_NETFILTER_XT_TARGET_LED=m
400CONFIG_NETFILTER_XT_TARGET_MARK=m 469CONFIG_NETFILTER_XT_TARGET_MARK=m
401CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
402CONFIG_NETFILTER_XT_TARGET_NFLOG=m 470CONFIG_NETFILTER_XT_TARGET_NFLOG=m
471CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
403# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set 472# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
404# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set 473# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
405# CONFIG_NETFILTER_XT_TARGET_TRACE is not set 474# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
406CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 475CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
407# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set 476# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
477# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
408CONFIG_NETFILTER_XT_MATCH_COMMENT=m 478CONFIG_NETFILTER_XT_MATCH_COMMENT=m
409CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 479CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
410CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 480CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -413,20 +483,23 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
413CONFIG_NETFILTER_XT_MATCH_DCCP=m 483CONFIG_NETFILTER_XT_MATCH_DCCP=m
414CONFIG_NETFILTER_XT_MATCH_DSCP=m 484CONFIG_NETFILTER_XT_MATCH_DSCP=m
415CONFIG_NETFILTER_XT_MATCH_ESP=m 485CONFIG_NETFILTER_XT_MATCH_ESP=m
486CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
416CONFIG_NETFILTER_XT_MATCH_HELPER=m 487CONFIG_NETFILTER_XT_MATCH_HELPER=m
488CONFIG_NETFILTER_XT_MATCH_HL=m
417# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set 489# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
418CONFIG_NETFILTER_XT_MATCH_LENGTH=m 490CONFIG_NETFILTER_XT_MATCH_LENGTH=m
419CONFIG_NETFILTER_XT_MATCH_LIMIT=m 491CONFIG_NETFILTER_XT_MATCH_LIMIT=m
420CONFIG_NETFILTER_XT_MATCH_MAC=m 492CONFIG_NETFILTER_XT_MATCH_MAC=m
421CONFIG_NETFILTER_XT_MATCH_MARK=m 493CONFIG_NETFILTER_XT_MATCH_MARK=m
494CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
422# CONFIG_NETFILTER_XT_MATCH_OWNER is not set 495# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
423CONFIG_NETFILTER_XT_MATCH_POLICY=m 496CONFIG_NETFILTER_XT_MATCH_POLICY=m
424CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
425# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set 497# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
426CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 498CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
427CONFIG_NETFILTER_XT_MATCH_QUOTA=m 499CONFIG_NETFILTER_XT_MATCH_QUOTA=m
428# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set 500# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
429CONFIG_NETFILTER_XT_MATCH_REALM=m 501CONFIG_NETFILTER_XT_MATCH_REALM=m
502# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
430CONFIG_NETFILTER_XT_MATCH_SCTP=m 503CONFIG_NETFILTER_XT_MATCH_SCTP=m
431CONFIG_NETFILTER_XT_MATCH_STATE=m 504CONFIG_NETFILTER_XT_MATCH_STATE=m
432CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 505CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -434,20 +507,21 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
434CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 507CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
435CONFIG_NETFILTER_XT_MATCH_TIME=m 508CONFIG_NETFILTER_XT_MATCH_TIME=m
436CONFIG_NETFILTER_XT_MATCH_U32=m 509CONFIG_NETFILTER_XT_MATCH_U32=m
437CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 510# CONFIG_NETFILTER_XT_MATCH_OSF is not set
511# CONFIG_IP_VS is not set
438 512
439# 513#
440# IP: Netfilter Configuration 514# IP: Netfilter Configuration
441# 515#
516CONFIG_NF_DEFRAG_IPV4=m
442CONFIG_NF_CONNTRACK_IPV4=m 517CONFIG_NF_CONNTRACK_IPV4=m
443CONFIG_NF_CONNTRACK_PROC_COMPAT=y 518CONFIG_NF_CONNTRACK_PROC_COMPAT=y
444CONFIG_IP_NF_QUEUE=m 519CONFIG_IP_NF_QUEUE=m
445CONFIG_IP_NF_IPTABLES=m 520CONFIG_IP_NF_IPTABLES=m
446CONFIG_IP_NF_MATCH_RECENT=m 521CONFIG_IP_NF_MATCH_ADDRTYPE=m
447CONFIG_IP_NF_MATCH_ECN=m
448CONFIG_IP_NF_MATCH_AH=m 522CONFIG_IP_NF_MATCH_AH=m
523CONFIG_IP_NF_MATCH_ECN=m
449CONFIG_IP_NF_MATCH_TTL=m 524CONFIG_IP_NF_MATCH_TTL=m
450CONFIG_IP_NF_MATCH_ADDRTYPE=m
451CONFIG_IP_NF_FILTER=m 525CONFIG_IP_NF_FILTER=m
452CONFIG_IP_NF_TARGET_REJECT=m 526CONFIG_IP_NF_TARGET_REJECT=m
453CONFIG_IP_NF_TARGET_LOG=m 527CONFIG_IP_NF_TARGET_LOG=m
@@ -455,8 +529,8 @@ CONFIG_IP_NF_TARGET_ULOG=m
455CONFIG_NF_NAT=m 529CONFIG_NF_NAT=m
456CONFIG_NF_NAT_NEEDED=y 530CONFIG_NF_NAT_NEEDED=y
457CONFIG_IP_NF_TARGET_MASQUERADE=m 531CONFIG_IP_NF_TARGET_MASQUERADE=m
458CONFIG_IP_NF_TARGET_REDIRECT=m
459CONFIG_IP_NF_TARGET_NETMAP=m 532CONFIG_IP_NF_TARGET_NETMAP=m
533CONFIG_IP_NF_TARGET_REDIRECT=m
460CONFIG_NF_NAT_SNMP_BASIC=m 534CONFIG_NF_NAT_SNMP_BASIC=m
461CONFIG_NF_NAT_PROTO_GRE=m 535CONFIG_NF_NAT_PROTO_GRE=m
462CONFIG_NF_NAT_PROTO_UDPLITE=m 536CONFIG_NF_NAT_PROTO_UDPLITE=m
@@ -469,9 +543,9 @@ CONFIG_NF_NAT_PPTP=m
469CONFIG_NF_NAT_H323=m 543CONFIG_NF_NAT_H323=m
470CONFIG_NF_NAT_SIP=m 544CONFIG_NF_NAT_SIP=m
471CONFIG_IP_NF_MANGLE=m 545CONFIG_IP_NF_MANGLE=m
546CONFIG_IP_NF_TARGET_CLUSTERIP=m
472CONFIG_IP_NF_TARGET_ECN=m 547CONFIG_IP_NF_TARGET_ECN=m
473CONFIG_IP_NF_TARGET_TTL=m 548CONFIG_IP_NF_TARGET_TTL=m
474CONFIG_IP_NF_TARGET_CLUSTERIP=m
475CONFIG_IP_NF_RAW=m 549CONFIG_IP_NF_RAW=m
476CONFIG_IP_NF_ARPTABLES=m 550CONFIG_IP_NF_ARPTABLES=m
477CONFIG_IP_NF_ARPFILTER=m 551CONFIG_IP_NF_ARPFILTER=m
@@ -483,30 +557,29 @@ CONFIG_IP_NF_ARP_MANGLE=m
483CONFIG_NF_CONNTRACK_IPV6=m 557CONFIG_NF_CONNTRACK_IPV6=m
484CONFIG_IP6_NF_QUEUE=m 558CONFIG_IP6_NF_QUEUE=m
485CONFIG_IP6_NF_IPTABLES=m 559CONFIG_IP6_NF_IPTABLES=m
486CONFIG_IP6_NF_MATCH_RT=m 560CONFIG_IP6_NF_MATCH_AH=m
487CONFIG_IP6_NF_MATCH_OPTS=m 561CONFIG_IP6_NF_MATCH_EUI64=m
488CONFIG_IP6_NF_MATCH_FRAG=m 562CONFIG_IP6_NF_MATCH_FRAG=m
563CONFIG_IP6_NF_MATCH_OPTS=m
489CONFIG_IP6_NF_MATCH_HL=m 564CONFIG_IP6_NF_MATCH_HL=m
490CONFIG_IP6_NF_MATCH_IPV6HEADER=m 565CONFIG_IP6_NF_MATCH_IPV6HEADER=m
491CONFIG_IP6_NF_MATCH_AH=m
492CONFIG_IP6_NF_MATCH_MH=m 566CONFIG_IP6_NF_MATCH_MH=m
493CONFIG_IP6_NF_MATCH_EUI64=m 567CONFIG_IP6_NF_MATCH_RT=m
494CONFIG_IP6_NF_FILTER=m 568CONFIG_IP6_NF_TARGET_HL=m
495CONFIG_IP6_NF_TARGET_LOG=m 569CONFIG_IP6_NF_TARGET_LOG=m
570CONFIG_IP6_NF_FILTER=m
496CONFIG_IP6_NF_TARGET_REJECT=m 571CONFIG_IP6_NF_TARGET_REJECT=m
497CONFIG_IP6_NF_MANGLE=m 572CONFIG_IP6_NF_MANGLE=m
498CONFIG_IP6_NF_TARGET_HL=m
499CONFIG_IP6_NF_RAW=m 573CONFIG_IP6_NF_RAW=m
500
501#
502# Bridge: Netfilter Configuration
503#
504# CONFIG_BRIDGE_NF_EBTABLES is not set 574# CONFIG_BRIDGE_NF_EBTABLES is not set
505# CONFIG_IP_DCCP is not set 575# CONFIG_IP_DCCP is not set
506# CONFIG_IP_SCTP is not set 576# CONFIG_IP_SCTP is not set
577# CONFIG_RDS is not set
507# CONFIG_TIPC is not set 578# CONFIG_TIPC is not set
508# CONFIG_ATM is not set 579# CONFIG_ATM is not set
580CONFIG_STP=m
509CONFIG_BRIDGE=m 581CONFIG_BRIDGE=m
582# CONFIG_NET_DSA is not set
510# CONFIG_VLAN_8021Q is not set 583# CONFIG_VLAN_8021Q is not set
511# CONFIG_DECNET is not set 584# CONFIG_DECNET is not set
512CONFIG_LLC=m 585CONFIG_LLC=m
@@ -517,9 +590,11 @@ CONFIG_LLC=m
517# CONFIG_LAPB is not set 590# CONFIG_LAPB is not set
518# CONFIG_ECONET is not set 591# CONFIG_ECONET is not set
519# CONFIG_WAN_ROUTER is not set 592# CONFIG_WAN_ROUTER is not set
593# CONFIG_PHONET is not set
594# CONFIG_IEEE802154 is not set
520# CONFIG_NET_SCHED is not set 595# CONFIG_NET_SCHED is not set
521CONFIG_NET_CLS_ROUTE=y 596CONFIG_NET_CLS_ROUTE=y
522CONFIG_NET_SCH_FIFO=y 597# CONFIG_DCB is not set
523 598
524# 599#
525# Network testing 600# Network testing
@@ -529,64 +604,34 @@ CONFIG_NET_SCH_FIFO=y
529# CONFIG_CAN is not set 604# CONFIG_CAN is not set
530# CONFIG_IRDA is not set 605# CONFIG_IRDA is not set
531CONFIG_BT=y 606CONFIG_BT=y
532CONFIG_BT_L2CAP=m 607CONFIG_BT_L2CAP=y
533CONFIG_BT_SCO=y 608CONFIG_BT_SCO=y
534CONFIG_BT_RFCOMM=m 609CONFIG_BT_RFCOMM=y
535CONFIG_BT_RFCOMM_TTY=y 610CONFIG_BT_RFCOMM_TTY=y
536CONFIG_BT_BNEP=m 611CONFIG_BT_BNEP=y
537CONFIG_BT_BNEP_MC_FILTER=y 612CONFIG_BT_BNEP_MC_FILTER=y
538CONFIG_BT_BNEP_PROTO_FILTER=y 613CONFIG_BT_BNEP_PROTO_FILTER=y
539CONFIG_BT_HIDP=m 614CONFIG_BT_HIDP=y
540 615
541# 616#
542# Bluetooth device drivers 617# Bluetooth device drivers
543# 618#
544# CONFIG_BT_HCIUSB is not set 619CONFIG_BT_HCIBTUSB=m
545# CONFIG_BT_HCIBTUSB is not set 620CONFIG_BT_HCIBTSDIO=m
546# CONFIG_BT_HCIBTSDIO is not set
547CONFIG_BT_HCIUART=y 621CONFIG_BT_HCIUART=y
548CONFIG_BT_HCIUART_H4=y 622CONFIG_BT_HCIUART_H4=y
549# CONFIG_BT_HCIUART_BCSP is not set 623# CONFIG_BT_HCIUART_BCSP is not set
550# CONFIG_BT_HCIUART_LL is not set 624# CONFIG_BT_HCIUART_LL is not set
551# CONFIG_BT_HCIBCM203X is not set 625CONFIG_BT_HCIBCM203X=m
552# CONFIG_BT_HCIBPA10X is not set 626CONFIG_BT_HCIBPA10X=m
553# CONFIG_BT_HCIBFUSB is not set 627CONFIG_BT_HCIBFUSB=m
554# CONFIG_BT_HCIVHCI is not set 628CONFIG_BT_HCIVHCI=m
629CONFIG_BT_MRVL=m
630CONFIG_BT_MRVL_SDIO=m
555# CONFIG_AF_RXRPC is not set 631# CONFIG_AF_RXRPC is not set
556CONFIG_FIB_RULES=y 632CONFIG_FIB_RULES=y
557 633# CONFIG_WIRELESS is not set
558# 634# CONFIG_WIMAX is not set
559# Wireless
560#
561CONFIG_CFG80211=m
562CONFIG_NL80211=y
563CONFIG_WIRELESS_EXT=y
564CONFIG_MAC80211=m
565
566#
567# Rate control algorithm selection
568#
569CONFIG_MAC80211_RC_DEFAULT_PID=y
570# CONFIG_MAC80211_RC_DEFAULT_NONE is not set
571
572#
573# Selecting 'y' for an algorithm will
574#
575
576#
577# build the algorithm into mac80211.
578#
579CONFIG_MAC80211_RC_DEFAULT="pid"
580CONFIG_MAC80211_RC_PID=y
581# CONFIG_MAC80211_MESH is not set
582CONFIG_MAC80211_LEDS=y
583# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set
584# CONFIG_MAC80211_DEBUG is not set
585CONFIG_IEEE80211=m
586# CONFIG_IEEE80211_DEBUG is not set
587CONFIG_IEEE80211_CRYPT_WEP=m
588CONFIG_IEEE80211_CRYPT_CCMP=m
589CONFIG_IEEE80211_CRYPT_TKIP=m
590# CONFIG_RFKILL is not set 635# CONFIG_RFKILL is not set
591# CONFIG_NET_9P is not set 636# CONFIG_NET_9P is not set
592 637
@@ -598,13 +643,19 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
598# Generic Driver Options 643# Generic Driver Options
599# 644#
600CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 645CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
646# CONFIG_DEVTMPFS is not set
601CONFIG_STANDALONE=y 647CONFIG_STANDALONE=y
602CONFIG_PREVENT_FIRMWARE_BUILD=y 648CONFIG_PREVENT_FIRMWARE_BUILD=y
603CONFIG_FW_LOADER=m 649CONFIG_FW_LOADER=m
650CONFIG_FIRMWARE_IN_KERNEL=y
651CONFIG_EXTRA_FIRMWARE=""
652# CONFIG_DEBUG_DRIVER is not set
653# CONFIG_DEBUG_DEVRES is not set
604# CONFIG_SYS_HYPERVISOR is not set 654# CONFIG_SYS_HYPERVISOR is not set
605CONFIG_CONNECTOR=m 655CONFIG_CONNECTOR=m
606CONFIG_MTD=y 656CONFIG_MTD=y
607# CONFIG_MTD_DEBUG is not set 657# CONFIG_MTD_DEBUG is not set
658# CONFIG_MTD_TESTS is not set
608# CONFIG_MTD_CONCAT is not set 659# CONFIG_MTD_CONCAT is not set
609CONFIG_MTD_PARTITIONS=y 660CONFIG_MTD_PARTITIONS=y
610# CONFIG_MTD_REDBOOT_PARTS is not set 661# CONFIG_MTD_REDBOOT_PARTS is not set
@@ -616,9 +667,9 @@ CONFIG_MTD_PARTITIONS=y
616# User Modules And Translation Layers 667# User Modules And Translation Layers
617# 668#
618CONFIG_MTD_CHAR=y 669CONFIG_MTD_CHAR=y
619# CONFIG_MTD_BLKDEVS is not set 670CONFIG_HAVE_MTD_OTP=y
620# CONFIG_MTD_BLOCK is not set 671CONFIG_MTD_BLKDEVS=y
621# CONFIG_MTD_BLOCK_RO is not set 672CONFIG_MTD_BLOCK=y
622# CONFIG_FTL is not set 673# CONFIG_FTL is not set
623# CONFIG_NFTL is not set 674# CONFIG_NFTL is not set
624# CONFIG_INFTL is not set 675# CONFIG_INFTL is not set
@@ -647,7 +698,7 @@ CONFIG_MTD_CFI_I1=y
647# CONFIG_MTD_CFI_I2 is not set 698# CONFIG_MTD_CFI_I2 is not set
648# CONFIG_MTD_CFI_I4 is not set 699# CONFIG_MTD_CFI_I4 is not set
649# CONFIG_MTD_CFI_I8 is not set 700# CONFIG_MTD_CFI_I8 is not set
650# CONFIG_MTD_OTP is not set 701CONFIG_MTD_OTP=y
651CONFIG_MTD_CFI_INTELEXT=y 702CONFIG_MTD_CFI_INTELEXT=y
652# CONFIG_MTD_CFI_AMDSTD is not set 703# CONFIG_MTD_CFI_AMDSTD is not set
653# CONFIG_MTD_CFI_STAA is not set 704# CONFIG_MTD_CFI_STAA is not set
@@ -655,19 +706,15 @@ CONFIG_MTD_CFI_UTIL=y
655# CONFIG_MTD_RAM is not set 706# CONFIG_MTD_RAM is not set
656# CONFIG_MTD_ROM is not set 707# CONFIG_MTD_ROM is not set
657# CONFIG_MTD_ABSENT is not set 708# CONFIG_MTD_ABSENT is not set
658CONFIG_MTD_XIP=y 709# CONFIG_MTD_XIP is not set
659 710
660# 711#
661# Mapping drivers for chip access 712# Mapping drivers for chip access
662# 713#
663# CONFIG_MTD_COMPLEX_MAPPINGS is not set 714# CONFIG_MTD_COMPLEX_MAPPINGS is not set
664CONFIG_MTD_PHYSMAP=y 715# CONFIG_MTD_PHYSMAP is not set
665CONFIG_MTD_PHYSMAP_START=0x0 716CONFIG_MTD_PXA2XX=y
666CONFIG_MTD_PHYSMAP_LEN=0x0
667CONFIG_MTD_PHYSMAP_BANKWIDTH=2
668# CONFIG_MTD_PXA2XX is not set
669# CONFIG_MTD_ARM_INTEGRATOR is not set 717# CONFIG_MTD_ARM_INTEGRATOR is not set
670# CONFIG_MTD_SHARP_SL is not set
671# CONFIG_MTD_PLATRAM is not set 718# CONFIG_MTD_PLATRAM is not set
672 719
673# 720#
@@ -675,6 +722,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
675# 722#
676# CONFIG_MTD_DATAFLASH is not set 723# CONFIG_MTD_DATAFLASH is not set
677# CONFIG_MTD_M25P80 is not set 724# CONFIG_MTD_M25P80 is not set
725# CONFIG_MTD_SST25L is not set
678# CONFIG_MTD_SLRAM is not set 726# CONFIG_MTD_SLRAM is not set
679# CONFIG_MTD_PHRAM is not set 727# CONFIG_MTD_PHRAM is not set
680# CONFIG_MTD_MTDRAM is not set 728# CONFIG_MTD_MTDRAM is not set
@@ -690,6 +738,11 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
690# CONFIG_MTD_ONENAND is not set 738# CONFIG_MTD_ONENAND is not set
691 739
692# 740#
741# LPDDR flash memory drivers
742#
743# CONFIG_MTD_LPDDR is not set
744
745#
693# UBI - Unsorted block images 746# UBI - Unsorted block images
694# 747#
695# CONFIG_MTD_UBI is not set 748# CONFIG_MTD_UBI is not set
@@ -700,15 +753,14 @@ CONFIG_BLK_DEV_LOOP=m
700CONFIG_BLK_DEV_CRYPTOLOOP=m 753CONFIG_BLK_DEV_CRYPTOLOOP=m
701CONFIG_BLK_DEV_NBD=m 754CONFIG_BLK_DEV_NBD=m
702# CONFIG_BLK_DEV_UB is not set 755# CONFIG_BLK_DEV_UB is not set
703CONFIG_BLK_DEV_RAM=m 756CONFIG_BLK_DEV_RAM=y
704CONFIG_BLK_DEV_RAM_COUNT=16 757CONFIG_BLK_DEV_RAM_COUNT=16
705CONFIG_BLK_DEV_RAM_SIZE=4096 758CONFIG_BLK_DEV_RAM_SIZE=4096
706# CONFIG_BLK_DEV_XIP is not set 759# CONFIG_BLK_DEV_XIP is not set
707# CONFIG_CDROM_PKTCDVD is not set 760# CONFIG_CDROM_PKTCDVD is not set
708# CONFIG_ATA_OVER_ETH is not set 761# CONFIG_ATA_OVER_ETH is not set
709CONFIG_MISC_DEVICES=y 762# CONFIG_MG_DISK is not set
710# CONFIG_EEPROM_93CX6 is not set 763# CONFIG_MISC_DEVICES is not set
711# CONFIG_ENCLOSURE_SERVICES is not set
712CONFIG_HAVE_IDE=y 764CONFIG_HAVE_IDE=y
713# CONFIG_IDE is not set 765# CONFIG_IDE is not set
714 766
@@ -722,7 +774,6 @@ CONFIG_HAVE_IDE=y
722# CONFIG_ATA is not set 774# CONFIG_ATA is not set
723# CONFIG_MD is not set 775# CONFIG_MD is not set
724CONFIG_NETDEVICES=y 776CONFIG_NETDEVICES=y
725# CONFIG_NETDEVICES_MULTIQUEUE is not set
726CONFIG_DUMMY=y 777CONFIG_DUMMY=y
727# CONFIG_BONDING is not set 778# CONFIG_BONDING is not set
728# CONFIG_MACVLAN is not set 779# CONFIG_MACVLAN is not set
@@ -732,13 +783,11 @@ CONFIG_DUMMY=y
732# CONFIG_NET_ETHERNET is not set 783# CONFIG_NET_ETHERNET is not set
733# CONFIG_NETDEV_1000 is not set 784# CONFIG_NETDEV_1000 is not set
734# CONFIG_NETDEV_10000 is not set 785# CONFIG_NETDEV_10000 is not set
786# CONFIG_WLAN is not set
735 787
736# 788#
737# Wireless LAN 789# Enable WiMAX (Networking options) to see the WiMAX drivers
738# 790#
739# CONFIG_WLAN_PRE80211 is not set
740# CONFIG_WLAN_80211 is not set
741# CONFIG_IWLWIFI_LEDS is not set
742 791
743# 792#
744# USB Network Adapters 793# USB Network Adapters
@@ -765,6 +814,7 @@ CONFIG_SLHC=m
765# CONFIG_NETPOLL is not set 814# CONFIG_NETPOLL is not set
766# CONFIG_NET_POLL_CONTROLLER is not set 815# CONFIG_NET_POLL_CONTROLLER is not set
767# CONFIG_ISDN is not set 816# CONFIG_ISDN is not set
817# CONFIG_PHONE is not set
768 818
769# 819#
770# Input device support 820# Input device support
@@ -786,29 +836,45 @@ CONFIG_INPUT_EVDEV=y
786# Input Device Drivers 836# Input Device Drivers
787# 837#
788CONFIG_INPUT_KEYBOARD=y 838CONFIG_INPUT_KEYBOARD=y
839# CONFIG_KEYBOARD_ADP5588 is not set
789# CONFIG_KEYBOARD_ATKBD is not set 840# CONFIG_KEYBOARD_ATKBD is not set
790# CONFIG_KEYBOARD_SUNKBD is not set 841# CONFIG_QT2160 is not set
791# CONFIG_KEYBOARD_LKKBD is not set 842# CONFIG_KEYBOARD_LKKBD is not set
792# CONFIG_KEYBOARD_XTKBD is not set 843CONFIG_KEYBOARD_GPIO=y
844# CONFIG_KEYBOARD_MATRIX is not set
845# CONFIG_KEYBOARD_LM8323 is not set
846# CONFIG_KEYBOARD_MAX7359 is not set
793# CONFIG_KEYBOARD_NEWTON is not set 847# CONFIG_KEYBOARD_NEWTON is not set
794# CONFIG_KEYBOARD_STOWAWAY is not set 848# CONFIG_KEYBOARD_OPENCORES is not set
795CONFIG_KEYBOARD_PXA27x=y 849CONFIG_KEYBOARD_PXA27x=y
796CONFIG_KEYBOARD_GPIO=y 850# CONFIG_KEYBOARD_STOWAWAY is not set
851# CONFIG_KEYBOARD_SUNKBD is not set
852# CONFIG_KEYBOARD_XTKBD is not set
797# CONFIG_INPUT_MOUSE is not set 853# CONFIG_INPUT_MOUSE is not set
798# CONFIG_INPUT_JOYSTICK is not set 854# CONFIG_INPUT_JOYSTICK is not set
799# CONFIG_INPUT_TABLET is not set 855# CONFIG_INPUT_TABLET is not set
800CONFIG_INPUT_TOUCHSCREEN=y 856CONFIG_INPUT_TOUCHSCREEN=y
801# CONFIG_TOUCHSCREEN_ADS7846 is not set 857# CONFIG_TOUCHSCREEN_ADS7846 is not set
858# CONFIG_TOUCHSCREEN_AD7877 is not set
859# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
860# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
861# CONFIG_TOUCHSCREEN_AD7879 is not set
862# CONFIG_TOUCHSCREEN_EETI is not set
802# CONFIG_TOUCHSCREEN_FUJITSU is not set 863# CONFIG_TOUCHSCREEN_FUJITSU is not set
803# CONFIG_TOUCHSCREEN_GUNZE is not set 864# CONFIG_TOUCHSCREEN_GUNZE is not set
804# CONFIG_TOUCHSCREEN_ELO is not set 865# CONFIG_TOUCHSCREEN_ELO is not set
866# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
867# CONFIG_TOUCHSCREEN_MCS5000 is not set
805# CONFIG_TOUCHSCREEN_MTOUCH is not set 868# CONFIG_TOUCHSCREEN_MTOUCH is not set
869# CONFIG_TOUCHSCREEN_INEXIO is not set
806# CONFIG_TOUCHSCREEN_MK712 is not set 870# CONFIG_TOUCHSCREEN_MK712 is not set
807# CONFIG_TOUCHSCREEN_PENMOUNT is not set 871# CONFIG_TOUCHSCREEN_PENMOUNT is not set
808# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 872# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
809# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 873# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
810# CONFIG_TOUCHSCREEN_UCB1400 is not set
811# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 874# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
875# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
876# CONFIG_TOUCHSCREEN_TSC2007 is not set
877# CONFIG_TOUCHSCREEN_W90X900 is not set
812CONFIG_TOUCHSCREEN_PCAP=y 878CONFIG_TOUCHSCREEN_PCAP=y
813CONFIG_INPUT_MISC=y 879CONFIG_INPUT_MISC=y
814# CONFIG_INPUT_ATI_REMOTE is not set 880# CONFIG_INPUT_ATI_REMOTE is not set
@@ -816,7 +882,10 @@ CONFIG_INPUT_MISC=y
816# CONFIG_INPUT_KEYSPAN_REMOTE is not set 882# CONFIG_INPUT_KEYSPAN_REMOTE is not set
817# CONFIG_INPUT_POWERMATE is not set 883# CONFIG_INPUT_POWERMATE is not set
818# CONFIG_INPUT_YEALINK is not set 884# CONFIG_INPUT_YEALINK is not set
885# CONFIG_INPUT_CM109 is not set
819CONFIG_INPUT_UINPUT=y 886CONFIG_INPUT_UINPUT=y
887# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
888CONFIG_INPUT_PCAP=y
820 889
821# 890#
822# Hardware I/O ports 891# Hardware I/O ports
@@ -828,6 +897,7 @@ CONFIG_INPUT_UINPUT=y
828# Character devices 897# Character devices
829# 898#
830CONFIG_VT=y 899CONFIG_VT=y
900CONFIG_CONSOLE_TRANSLATIONS=y
831CONFIG_VT_CONSOLE=y 901CONFIG_VT_CONSOLE=y
832CONFIG_HW_CONSOLE=y 902CONFIG_HW_CONSOLE=y
833# CONFIG_VT_HW_CONSOLE_BINDING is not set 903# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -842,92 +912,130 @@ CONFIG_DEVKMEM=y
842# 912#
843# Non-8250 serial port support 913# Non-8250 serial port support
844# 914#
915# CONFIG_SERIAL_MAX3100 is not set
845CONFIG_SERIAL_PXA=y 916CONFIG_SERIAL_PXA=y
846CONFIG_SERIAL_PXA_CONSOLE=y 917CONFIG_SERIAL_PXA_CONSOLE=y
847CONFIG_SERIAL_CORE=y 918CONFIG_SERIAL_CORE=y
848CONFIG_SERIAL_CORE_CONSOLE=y 919CONFIG_SERIAL_CORE_CONSOLE=y
849CONFIG_UNIX98_PTYS=y 920CONFIG_UNIX98_PTYS=y
921# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
850CONFIG_LEGACY_PTYS=y 922CONFIG_LEGACY_PTYS=y
851CONFIG_LEGACY_PTY_COUNT=8 923CONFIG_LEGACY_PTY_COUNT=8
852# CONFIG_IPMI_HANDLER is not set 924# CONFIG_IPMI_HANDLER is not set
853CONFIG_HW_RANDOM=y 925# CONFIG_HW_RANDOM is not set
854# CONFIG_NVRAM is not set
855# CONFIG_R3964 is not set 926# CONFIG_R3964 is not set
856# CONFIG_RAW_DRIVER is not set 927# CONFIG_RAW_DRIVER is not set
857# CONFIG_TCG_TPM is not set 928# CONFIG_TCG_TPM is not set
858CONFIG_I2C=y 929CONFIG_I2C=y
859CONFIG_I2C_BOARDINFO=y 930CONFIG_I2C_BOARDINFO=y
931CONFIG_I2C_COMPAT=y
860CONFIG_I2C_CHARDEV=y 932CONFIG_I2C_CHARDEV=y
933CONFIG_I2C_HELPER_AUTO=y
861 934
862# 935#
863# I2C Hardware Bus support 936# I2C Hardware Bus support
864# 937#
938
939#
940# I2C system bus drivers (mostly embedded / system-on-chip)
941#
942# CONFIG_I2C_DESIGNWARE is not set
865# CONFIG_I2C_GPIO is not set 943# CONFIG_I2C_GPIO is not set
944# CONFIG_I2C_OCORES is not set
866CONFIG_I2C_PXA=y 945CONFIG_I2C_PXA=y
867# CONFIG_I2C_PXA_SLAVE is not set 946# CONFIG_I2C_PXA_SLAVE is not set
868# CONFIG_I2C_OCORES is not set
869# CONFIG_I2C_PARPORT_LIGHT is not set
870# CONFIG_I2C_SIMTEC is not set 947# CONFIG_I2C_SIMTEC is not set
948
949#
950# External I2C/SMBus adapter drivers
951#
952# CONFIG_I2C_PARPORT_LIGHT is not set
871# CONFIG_I2C_TAOS_EVM is not set 953# CONFIG_I2C_TAOS_EVM is not set
872# CONFIG_I2C_STUB is not set
873# CONFIG_I2C_TINY_USB is not set 954# CONFIG_I2C_TINY_USB is not set
955
956#
957# Other I2C/SMBus bus drivers
958#
874# CONFIG_I2C_PCA_PLATFORM is not set 959# CONFIG_I2C_PCA_PLATFORM is not set
960# CONFIG_I2C_STUB is not set
875 961
876# 962#
877# Miscellaneous I2C Chip support 963# Miscellaneous I2C Chip support
878# 964#
879# CONFIG_DS1682 is not set 965# CONFIG_DS1682 is not set
880# CONFIG_EEPROM_LEGACY is not set
881# CONFIG_SENSORS_PCF8574 is not set
882# CONFIG_PCF8575 is not set
883# CONFIG_SENSORS_PCF8591 is not set
884# CONFIG_TPS65010 is not set
885# CONFIG_SENSORS_MAX6875 is not set
886# CONFIG_SENSORS_TSL2550 is not set 966# CONFIG_SENSORS_TSL2550 is not set
887# CONFIG_I2C_DEBUG_CORE is not set 967# CONFIG_I2C_DEBUG_CORE is not set
888# CONFIG_I2C_DEBUG_ALGO is not set 968# CONFIG_I2C_DEBUG_ALGO is not set
889# CONFIG_I2C_DEBUG_BUS is not set 969# CONFIG_I2C_DEBUG_BUS is not set
890# CONFIG_I2C_DEBUG_CHIP is not set 970# CONFIG_I2C_DEBUG_CHIP is not set
891CONFIG_SPI=y 971CONFIG_SPI=y
972# CONFIG_SPI_DEBUG is not set
892CONFIG_SPI_MASTER=y 973CONFIG_SPI_MASTER=y
893 974
894# 975#
895# SPI Master Controller Drivers 976# SPI Master Controller Drivers
896# 977#
897# CONFIG_SPI_BITBANG is not set 978# CONFIG_SPI_BITBANG is not set
898CONFIG_SPI_PXA2XX=m 979# CONFIG_SPI_GPIO is not set
980CONFIG_SPI_PXA2XX=y
899 981
900# 982#
901# SPI Protocol Masters 983# SPI Protocol Masters
902# 984#
903# CONFIG_EEPROM_AT25 is not set
904# CONFIG_SPI_SPIDEV is not set 985# CONFIG_SPI_SPIDEV is not set
905# CONFIG_SPI_TLE62X0 is not set 986# CONFIG_SPI_TLE62X0 is not set
906CONFIG_HAVE_GPIO_LIB=y
907 987
908# 988#
909# GPIO Support 989# PPS support
990#
991# CONFIG_PPS is not set
992CONFIG_ARCH_REQUIRE_GPIOLIB=y
993CONFIG_GPIOLIB=y
994# CONFIG_DEBUG_GPIO is not set
995CONFIG_GPIO_SYSFS=y
996
997#
998# Memory mapped GPIO expanders:
910# 999#
911 1000
912# 1001#
913# I2C GPIO expanders: 1002# I2C GPIO expanders:
914# 1003#
1004# CONFIG_GPIO_MAX732X is not set
915# CONFIG_GPIO_PCA953X is not set 1005# CONFIG_GPIO_PCA953X is not set
916# CONFIG_GPIO_PCF857X is not set 1006# CONFIG_GPIO_PCF857X is not set
917 1007
918# 1008#
1009# PCI GPIO expanders:
1010#
1011
1012#
919# SPI GPIO expanders: 1013# SPI GPIO expanders:
920# 1014#
1015# CONFIG_GPIO_MAX7301 is not set
921# CONFIG_GPIO_MCP23S08 is not set 1016# CONFIG_GPIO_MCP23S08 is not set
1017# CONFIG_GPIO_MC33880 is not set
1018
1019#
1020# AC97 GPIO expanders:
1021#
922# CONFIG_W1 is not set 1022# CONFIG_W1 is not set
923# CONFIG_POWER_SUPPLY is not set 1023CONFIG_POWER_SUPPLY=y
1024# CONFIG_POWER_SUPPLY_DEBUG is not set
1025# CONFIG_PDA_POWER is not set
1026# CONFIG_APM_POWER is not set
1027# CONFIG_BATTERY_DS2760 is not set
1028# CONFIG_BATTERY_DS2782 is not set
1029# CONFIG_BATTERY_BQ27x00 is not set
1030# CONFIG_BATTERY_MAX17040 is not set
924# CONFIG_HWMON is not set 1031# CONFIG_HWMON is not set
1032# CONFIG_THERMAL is not set
925# CONFIG_WATCHDOG is not set 1033# CONFIG_WATCHDOG is not set
1034CONFIG_SSB_POSSIBLE=y
926 1035
927# 1036#
928# Sonics Silicon Backplane 1037# Sonics Silicon Backplane
929# 1038#
930CONFIG_SSB_POSSIBLE=y
931# CONFIG_SSB is not set 1039# CONFIG_SSB is not set
932 1040
933# 1041#
@@ -938,54 +1046,170 @@ CONFIG_SSB_POSSIBLE=y
938# CONFIG_MFD_ASIC3 is not set 1046# CONFIG_MFD_ASIC3 is not set
939# CONFIG_HTC_EGPIO is not set 1047# CONFIG_HTC_EGPIO is not set
940# CONFIG_HTC_PASIC3 is not set 1048# CONFIG_HTC_PASIC3 is not set
1049# CONFIG_TPS65010 is not set
1050# CONFIG_TWL4030_CORE is not set
1051# CONFIG_MFD_TMIO is not set
1052# CONFIG_MFD_T7L66XB is not set
1053# CONFIG_MFD_TC6387XB is not set
941# CONFIG_MFD_TC6393XB is not set 1054# CONFIG_MFD_TC6393XB is not set
1055# CONFIG_PMIC_DA903X is not set
1056# CONFIG_MFD_WM8400 is not set
1057# CONFIG_MFD_WM831X is not set
1058# CONFIG_MFD_WM8350_I2C is not set
1059# CONFIG_MFD_PCF50633 is not set
1060# CONFIG_MFD_MC13783 is not set
1061# CONFIG_AB3100_CORE is not set
942CONFIG_EZX_PCAP=y 1062CONFIG_EZX_PCAP=y
943 1063CONFIG_REGULATOR=y
944# 1064CONFIG_REGULATOR_DEBUG=y
945# Multimedia devices 1065# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
946# 1066CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
1067CONFIG_REGULATOR_USERSPACE_CONSUMER=y
1068# CONFIG_REGULATOR_BQ24022 is not set
1069# CONFIG_REGULATOR_MAX1586 is not set
1070# CONFIG_REGULATOR_LP3971 is not set
1071CONFIG_REGULATOR_PCAP=y
1072# CONFIG_REGULATOR_TPS65023 is not set
1073# CONFIG_REGULATOR_TPS6507X is not set
1074CONFIG_MEDIA_SUPPORT=y
947 1075
948# 1076#
949# Multimedia core support 1077# Multimedia core support
950# 1078#
951CONFIG_VIDEO_DEV=m 1079CONFIG_VIDEO_DEV=y
952CONFIG_VIDEO_V4L2_COMMON=m 1080CONFIG_VIDEO_V4L2_COMMON=y
953CONFIG_VIDEO_ALLOW_V4L1=y 1081CONFIG_VIDEO_ALLOW_V4L1=y
954CONFIG_VIDEO_V4L1_COMPAT=y 1082CONFIG_VIDEO_V4L1_COMPAT=y
955# CONFIG_DVB_CORE is not set 1083# CONFIG_DVB_CORE is not set
956CONFIG_VIDEO_MEDIA=m 1084CONFIG_VIDEO_MEDIA=y
957 1085
958# 1086#
959# Multimedia drivers 1087# Multimedia drivers
960# 1088#
961# CONFIG_MEDIA_ATTACH is not set 1089# CONFIG_MEDIA_ATTACH is not set
962CONFIG_MEDIA_TUNER=m 1090CONFIG_MEDIA_TUNER=y
963# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set 1091CONFIG_MEDIA_TUNER_CUSTOMISE=y
964CONFIG_MEDIA_TUNER_SIMPLE=m 1092# CONFIG_MEDIA_TUNER_SIMPLE is not set
965CONFIG_MEDIA_TUNER_TDA8290=m 1093# CONFIG_MEDIA_TUNER_TDA8290 is not set
966CONFIG_MEDIA_TUNER_TDA9887=m 1094# CONFIG_MEDIA_TUNER_TDA827X is not set
967CONFIG_MEDIA_TUNER_TEA5761=m 1095# CONFIG_MEDIA_TUNER_TDA18271 is not set
968CONFIG_MEDIA_TUNER_TEA5767=m 1096# CONFIG_MEDIA_TUNER_TDA9887 is not set
969CONFIG_MEDIA_TUNER_MT20XX=m 1097# CONFIG_MEDIA_TUNER_TEA5761 is not set
970CONFIG_MEDIA_TUNER_XC2028=m 1098# CONFIG_MEDIA_TUNER_TEA5767 is not set
971CONFIG_MEDIA_TUNER_XC5000=m 1099# CONFIG_MEDIA_TUNER_MT20XX is not set
972CONFIG_VIDEO_V4L2=m 1100# CONFIG_MEDIA_TUNER_MT2060 is not set
973CONFIG_VIDEO_V4L1=m 1101# CONFIG_MEDIA_TUNER_MT2266 is not set
1102# CONFIG_MEDIA_TUNER_MT2131 is not set
1103# CONFIG_MEDIA_TUNER_QT1010 is not set
1104# CONFIG_MEDIA_TUNER_XC2028 is not set
1105# CONFIG_MEDIA_TUNER_XC5000 is not set
1106# CONFIG_MEDIA_TUNER_MXL5005S is not set
1107# CONFIG_MEDIA_TUNER_MXL5007T is not set
1108# CONFIG_MEDIA_TUNER_MC44S803 is not set
1109CONFIG_VIDEO_V4L2=y
1110CONFIG_VIDEO_V4L1=y
1111CONFIG_VIDEOBUF_GEN=y
1112CONFIG_VIDEOBUF_DMA_SG=y
974CONFIG_VIDEO_CAPTURE_DRIVERS=y 1113CONFIG_VIDEO_CAPTURE_DRIVERS=y
975# CONFIG_VIDEO_ADV_DEBUG is not set 1114# CONFIG_VIDEO_ADV_DEBUG is not set
976CONFIG_VIDEO_HELPER_CHIPS_AUTO=y 1115# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
1116# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
1117
1118#
1119# Encoders/decoders and other helper chips
1120#
1121
1122#
1123# Audio decoders
1124#
1125# CONFIG_VIDEO_TVAUDIO is not set
1126# CONFIG_VIDEO_TDA7432 is not set
1127# CONFIG_VIDEO_TDA9840 is not set
1128# CONFIG_VIDEO_TDA9875 is not set
1129# CONFIG_VIDEO_TEA6415C is not set
1130# CONFIG_VIDEO_TEA6420 is not set
1131# CONFIG_VIDEO_MSP3400 is not set
1132# CONFIG_VIDEO_CS5345 is not set
1133# CONFIG_VIDEO_CS53L32A is not set
1134# CONFIG_VIDEO_M52790 is not set
1135# CONFIG_VIDEO_TLV320AIC23B is not set
1136# CONFIG_VIDEO_WM8775 is not set
1137# CONFIG_VIDEO_WM8739 is not set
1138# CONFIG_VIDEO_VP27SMPX is not set
1139
1140#
1141# RDS decoders
1142#
1143# CONFIG_VIDEO_SAA6588 is not set
1144
1145#
1146# Video decoders
1147#
1148# CONFIG_VIDEO_ADV7180 is not set
1149# CONFIG_VIDEO_BT819 is not set
1150# CONFIG_VIDEO_BT856 is not set
1151# CONFIG_VIDEO_BT866 is not set
1152# CONFIG_VIDEO_KS0127 is not set
1153# CONFIG_VIDEO_OV7670 is not set
1154# CONFIG_VIDEO_MT9V011 is not set
1155# CONFIG_VIDEO_TCM825X is not set
1156# CONFIG_VIDEO_SAA7110 is not set
1157# CONFIG_VIDEO_SAA711X is not set
1158# CONFIG_VIDEO_SAA717X is not set
1159# CONFIG_VIDEO_SAA7191 is not set
1160# CONFIG_VIDEO_TVP514X is not set
1161# CONFIG_VIDEO_TVP5150 is not set
1162# CONFIG_VIDEO_VPX3220 is not set
1163
1164#
1165# Video and audio decoders
1166#
1167# CONFIG_VIDEO_CX25840 is not set
1168
1169#
1170# MPEG video encoders
1171#
1172# CONFIG_VIDEO_CX2341X is not set
1173
1174#
1175# Video encoders
1176#
1177# CONFIG_VIDEO_SAA7127 is not set
1178# CONFIG_VIDEO_SAA7185 is not set
1179# CONFIG_VIDEO_ADV7170 is not set
1180# CONFIG_VIDEO_ADV7175 is not set
1181# CONFIG_VIDEO_THS7303 is not set
1182# CONFIG_VIDEO_ADV7343 is not set
1183
1184#
1185# Video improvement chips
1186#
1187# CONFIG_VIDEO_UPD64031A is not set
1188# CONFIG_VIDEO_UPD64083 is not set
977# CONFIG_VIDEO_VIVI is not set 1189# CONFIG_VIDEO_VIVI is not set
978# CONFIG_VIDEO_CPIA is not set 1190# CONFIG_VIDEO_CPIA is not set
979# CONFIG_VIDEO_CPIA2 is not set 1191# CONFIG_VIDEO_CPIA2 is not set
980# CONFIG_VIDEO_SAA5246A is not set 1192# CONFIG_VIDEO_SAA5246A is not set
981# CONFIG_VIDEO_SAA5249 is not set 1193# CONFIG_VIDEO_SAA5249 is not set
982# CONFIG_TUNER_3036 is not set 1194CONFIG_SOC_CAMERA=y
1195# CONFIG_SOC_CAMERA_MT9M001 is not set
1196CONFIG_SOC_CAMERA_MT9M111=y
1197# CONFIG_SOC_CAMERA_MT9T031 is not set
1198# CONFIG_SOC_CAMERA_MT9V022 is not set
1199# CONFIG_SOC_CAMERA_TW9910 is not set
1200# CONFIG_SOC_CAMERA_PLATFORM is not set
1201# CONFIG_SOC_CAMERA_OV772X is not set
1202CONFIG_VIDEO_PXA27x=y
1203# CONFIG_VIDEO_SH_MOBILE_CEU is not set
983# CONFIG_V4L_USB_DRIVERS is not set 1204# CONFIG_V4L_USB_DRIVERS is not set
984# CONFIG_SOC_CAMERA is not set
985# CONFIG_VIDEO_PXA27x is not set
986CONFIG_RADIO_ADAPTERS=y 1205CONFIG_RADIO_ADAPTERS=y
1206# CONFIG_I2C_SI4713 is not set
1207# CONFIG_RADIO_SI4713 is not set
987# CONFIG_USB_DSBR is not set 1208# CONFIG_USB_DSBR is not set
988# CONFIG_USB_SI470X is not set 1209# CONFIG_RADIO_SI470X is not set
1210# CONFIG_USB_MR800 is not set
1211CONFIG_RADIO_TEA5764=y
1212CONFIG_RADIO_TEA5764_XTAL=y
989# CONFIG_DAB is not set 1213# CONFIG_DAB is not set
990 1214
991# 1215#
@@ -996,6 +1220,7 @@ CONFIG_RADIO_ADAPTERS=y
996CONFIG_FB=y 1220CONFIG_FB=y
997# CONFIG_FIRMWARE_EDID is not set 1221# CONFIG_FIRMWARE_EDID is not set
998# CONFIG_FB_DDC is not set 1222# CONFIG_FB_DDC is not set
1223# CONFIG_FB_BOOT_VESA_SUPPORT is not set
999CONFIG_FB_CFB_FILLRECT=y 1224CONFIG_FB_CFB_FILLRECT=y
1000CONFIG_FB_CFB_COPYAREA=y 1225CONFIG_FB_CFB_COPYAREA=y
1001CONFIG_FB_CFB_IMAGEBLIT=y 1226CONFIG_FB_CFB_IMAGEBLIT=y
@@ -1017,15 +1242,19 @@ CONFIG_FB_CFB_IMAGEBLIT=y
1017# CONFIG_FB_UVESA is not set 1242# CONFIG_FB_UVESA is not set
1018# CONFIG_FB_S1D13XXX is not set 1243# CONFIG_FB_S1D13XXX is not set
1019CONFIG_FB_PXA=y 1244CONFIG_FB_PXA=y
1245CONFIG_FB_PXA_OVERLAY=y
1020# CONFIG_FB_PXA_SMARTPANEL is not set 1246# CONFIG_FB_PXA_SMARTPANEL is not set
1021CONFIG_FB_PXA_PARAMETERS=y 1247CONFIG_FB_PXA_PARAMETERS=y
1022# CONFIG_FB_MBX is not set 1248# CONFIG_FB_MBX is not set
1023# CONFIG_FB_AM200EPD is not set 1249# CONFIG_FB_W100 is not set
1024# CONFIG_FB_VIRTUAL is not set 1250# CONFIG_FB_VIRTUAL is not set
1251# CONFIG_FB_METRONOME is not set
1252# CONFIG_FB_MB862XX is not set
1253# CONFIG_FB_BROADSHEET is not set
1025CONFIG_BACKLIGHT_LCD_SUPPORT=y 1254CONFIG_BACKLIGHT_LCD_SUPPORT=y
1026# CONFIG_LCD_CLASS_DEVICE is not set 1255# CONFIG_LCD_CLASS_DEVICE is not set
1027CONFIG_BACKLIGHT_CLASS_DEVICE=y 1256CONFIG_BACKLIGHT_CLASS_DEVICE=y
1028# CONFIG_BACKLIGHT_CORGI is not set 1257CONFIG_BACKLIGHT_GENERIC=y
1029CONFIG_BACKLIGHT_PWM=y 1258CONFIG_BACKLIGHT_PWM=y
1030 1259
1031# 1260#
@@ -1053,85 +1282,60 @@ CONFIG_FONT_MINI_4x6=y
1053# CONFIG_FONT_SUN12x22 is not set 1282# CONFIG_FONT_SUN12x22 is not set
1054# CONFIG_FONT_10x18 is not set 1283# CONFIG_FONT_10x18 is not set
1055# CONFIG_LOGO is not set 1284# CONFIG_LOGO is not set
1056
1057#
1058# Sound
1059#
1060CONFIG_SOUND=y 1285CONFIG_SOUND=y
1061 1286CONFIG_SOUND_OSS_CORE=y
1062# 1287CONFIG_SOUND_OSS_CORE_PRECLAIM=y
1063# Advanced Linux Sound Architecture
1064#
1065CONFIG_SND=y 1288CONFIG_SND=y
1066CONFIG_SND_TIMER=y 1289CONFIG_SND_TIMER=y
1067CONFIG_SND_PCM=y 1290CONFIG_SND_PCM=y
1291CONFIG_SND_JACK=y
1068# CONFIG_SND_SEQUENCER is not set 1292# CONFIG_SND_SEQUENCER is not set
1069CONFIG_SND_OSSEMUL=y 1293CONFIG_SND_OSSEMUL=y
1070CONFIG_SND_MIXER_OSS=y 1294CONFIG_SND_MIXER_OSS=y
1071CONFIG_SND_PCM_OSS=y 1295CONFIG_SND_PCM_OSS=y
1072CONFIG_SND_PCM_OSS_PLUGINS=y 1296CONFIG_SND_PCM_OSS_PLUGINS=y
1297# CONFIG_SND_HRTIMER is not set
1073# CONFIG_SND_DYNAMIC_MINORS is not set 1298# CONFIG_SND_DYNAMIC_MINORS is not set
1074CONFIG_SND_SUPPORT_OLD_API=y 1299CONFIG_SND_SUPPORT_OLD_API=y
1075CONFIG_SND_VERBOSE_PROCFS=y 1300CONFIG_SND_VERBOSE_PROCFS=y
1076# CONFIG_SND_VERBOSE_PRINTK is not set 1301# CONFIG_SND_VERBOSE_PRINTK is not set
1077# CONFIG_SND_DEBUG is not set 1302# CONFIG_SND_DEBUG is not set
1078 1303# CONFIG_SND_RAWMIDI_SEQ is not set
1079# 1304# CONFIG_SND_OPL3_LIB_SEQ is not set
1080# Generic devices 1305# CONFIG_SND_OPL4_LIB_SEQ is not set
1081# 1306# CONFIG_SND_SBAWE_SEQ is not set
1082# CONFIG_SND_DUMMY is not set 1307# CONFIG_SND_EMU10K1_SEQ is not set
1083# CONFIG_SND_MTPAV is not set 1308# CONFIG_SND_DRIVERS is not set
1084# CONFIG_SND_SERIAL_U16550 is not set 1309# CONFIG_SND_ARM is not set
1085# CONFIG_SND_MPU401 is not set 1310CONFIG_SND_PXA2XX_LIB=y
1086 1311# CONFIG_SND_SPI is not set
1087# 1312# CONFIG_SND_USB is not set
1088# ALSA ARM devices
1089#
1090# CONFIG_SND_PXA2XX_AC97 is not set
1091
1092#
1093# SPI devices
1094#
1095
1096#
1097# USB devices
1098#
1099# CONFIG_SND_USB_AUDIO is not set
1100# CONFIG_SND_USB_CAIAQ is not set
1101
1102#
1103# System on Chip audio support
1104#
1105CONFIG_SND_SOC=y 1313CONFIG_SND_SOC=y
1106CONFIG_SND_PXA2XX_SOC=y 1314CONFIG_SND_PXA2XX_SOC=y
1107 1315CONFIG_SND_SOC_I2C_AND_SPI=y
1108# 1316# CONFIG_SND_SOC_ALL_CODECS is not set
1109# ALSA SoC audio for Freescale SOCs
1110#
1111
1112#
1113# SoC Audio for the Texas Instruments OMAP
1114#
1115
1116#
1117# Open Sound System
1118#
1119# CONFIG_SOUND_PRIME is not set 1317# CONFIG_SOUND_PRIME is not set
1120CONFIG_HID_SUPPORT=y 1318CONFIG_HID_SUPPORT=y
1121CONFIG_HID=y 1319CONFIG_HID=y
1122# CONFIG_HID_DEBUG is not set
1123# CONFIG_HIDRAW is not set 1320# CONFIG_HIDRAW is not set
1124 1321
1125# 1322#
1126# USB Input Devices 1323# USB Input Devices
1127# 1324#
1128# CONFIG_USB_HID is not set 1325# CONFIG_USB_HID is not set
1326# CONFIG_HID_PID is not set
1129 1327
1130# 1328#
1131# USB HID Boot Protocol drivers 1329# USB HID Boot Protocol drivers
1132# 1330#
1133# CONFIG_USB_KBD is not set 1331# CONFIG_USB_KBD is not set
1134# CONFIG_USB_MOUSE is not set 1332# CONFIG_USB_MOUSE is not set
1333
1334#
1335# Special HID drivers
1336#
1337CONFIG_HID_APPLE=m
1338# CONFIG_HID_WACOM is not set
1135CONFIG_USB_SUPPORT=y 1339CONFIG_USB_SUPPORT=y
1136CONFIG_USB_ARCH_HAS_HCD=y 1340CONFIG_USB_ARCH_HAS_HCD=y
1137CONFIG_USB_ARCH_HAS_OHCI=y 1341CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1150,32 +1354,42 @@ CONFIG_USB=y
1150# CONFIG_USB_OTG is not set 1354# CONFIG_USB_OTG is not set
1151# CONFIG_USB_OTG_WHITELIST is not set 1355# CONFIG_USB_OTG_WHITELIST is not set
1152# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1356# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1357# CONFIG_USB_MON is not set
1358# CONFIG_USB_WUSB is not set
1359# CONFIG_USB_WUSB_CBAF is not set
1153 1360
1154# 1361#
1155# USB Host Controller Drivers 1362# USB Host Controller Drivers
1156# 1363#
1157# CONFIG_USB_C67X00_HCD is not set 1364# CONFIG_USB_C67X00_HCD is not set
1365# CONFIG_USB_OXU210HP_HCD is not set
1158# CONFIG_USB_ISP116X_HCD is not set 1366# CONFIG_USB_ISP116X_HCD is not set
1159# CONFIG_USB_ISP1760_HCD is not set 1367# CONFIG_USB_ISP1760_HCD is not set
1368# CONFIG_USB_ISP1362_HCD is not set
1160CONFIG_USB_OHCI_HCD=y 1369CONFIG_USB_OHCI_HCD=y
1161# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 1370# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1162# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 1371# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1163CONFIG_USB_OHCI_LITTLE_ENDIAN=y 1372CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1164# CONFIG_USB_SL811_HCD is not set 1373# CONFIG_USB_SL811_HCD is not set
1165# CONFIG_USB_R8A66597_HCD is not set 1374# CONFIG_USB_R8A66597_HCD is not set
1375# CONFIG_USB_HWA_HCD is not set
1376# CONFIG_USB_MUSB_HDRC is not set
1377# CONFIG_USB_GADGET_MUSB_HDRC is not set
1166 1378
1167# 1379#
1168# USB Device Class drivers 1380# USB Device Class drivers
1169# 1381#
1170# CONFIG_USB_ACM is not set 1382# CONFIG_USB_ACM is not set
1171# CONFIG_USB_PRINTER is not set 1383# CONFIG_USB_PRINTER is not set
1384# CONFIG_USB_WDM is not set
1385# CONFIG_USB_TMC is not set
1172 1386
1173# 1387#
1174# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1388# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1175# 1389#
1176 1390
1177# 1391#
1178# may also be needed; see USB_STORAGE Help for more information 1392# also be needed; see USB_STORAGE Help for more info
1179# 1393#
1180# CONFIG_USB_LIBUSUAL is not set 1394# CONFIG_USB_LIBUSUAL is not set
1181 1395
@@ -1183,7 +1397,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1183# USB Imaging devices 1397# USB Imaging devices
1184# 1398#
1185# CONFIG_USB_MDC800 is not set 1399# CONFIG_USB_MDC800 is not set
1186# CONFIG_USB_MON is not set
1187 1400
1188# 1401#
1189# USB port drivers 1402# USB port drivers
@@ -1196,7 +1409,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1196# CONFIG_USB_EMI62 is not set 1409# CONFIG_USB_EMI62 is not set
1197# CONFIG_USB_EMI26 is not set 1410# CONFIG_USB_EMI26 is not set
1198# CONFIG_USB_ADUTUX is not set 1411# CONFIG_USB_ADUTUX is not set
1199# CONFIG_USB_AUERSWALD is not set 1412# CONFIG_USB_SEVSEG is not set
1200# CONFIG_USB_RIO500 is not set 1413# CONFIG_USB_RIO500 is not set
1201# CONFIG_USB_LEGOTOWER is not set 1414# CONFIG_USB_LEGOTOWER is not set
1202# CONFIG_USB_LCD is not set 1415# CONFIG_USB_LCD is not set
@@ -1204,62 +1417,94 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1204# CONFIG_USB_LED is not set 1417# CONFIG_USB_LED is not set
1205# CONFIG_USB_CYPRESS_CY7C63 is not set 1418# CONFIG_USB_CYPRESS_CY7C63 is not set
1206# CONFIG_USB_CYTHERM is not set 1419# CONFIG_USB_CYTHERM is not set
1207# CONFIG_USB_PHIDGET is not set
1208# CONFIG_USB_IDMOUSE is not set 1420# CONFIG_USB_IDMOUSE is not set
1209# CONFIG_USB_FTDI_ELAN is not set 1421# CONFIG_USB_FTDI_ELAN is not set
1210# CONFIG_USB_APPLEDISPLAY is not set 1422# CONFIG_USB_APPLEDISPLAY is not set
1211# CONFIG_USB_LD is not set 1423# CONFIG_USB_LD is not set
1212# CONFIG_USB_TRANCEVIBRATOR is not set 1424# CONFIG_USB_TRANCEVIBRATOR is not set
1213# CONFIG_USB_IOWARRIOR is not set 1425# CONFIG_USB_IOWARRIOR is not set
1426# CONFIG_USB_TEST is not set
1427# CONFIG_USB_ISIGHTFW is not set
1428# CONFIG_USB_VST is not set
1214CONFIG_USB_GADGET=y 1429CONFIG_USB_GADGET=y
1430# CONFIG_USB_GADGET_DEBUG is not set
1215# CONFIG_USB_GADGET_DEBUG_FILES is not set 1431# CONFIG_USB_GADGET_DEBUG_FILES is not set
1432# CONFIG_USB_GADGET_DEBUG_FS is not set
1433CONFIG_USB_GADGET_VBUS_DRAW=2
1216CONFIG_USB_GADGET_SELECTED=y 1434CONFIG_USB_GADGET_SELECTED=y
1217# CONFIG_USB_GADGET_AMD5536UDC is not set 1435# CONFIG_USB_GADGET_AT91 is not set
1218# CONFIG_USB_GADGET_ATMEL_USBA is not set 1436# CONFIG_USB_GADGET_ATMEL_USBA is not set
1219# CONFIG_USB_GADGET_FSL_USB2 is not set 1437# CONFIG_USB_GADGET_FSL_USB2 is not set
1220# CONFIG_USB_GADGET_NET2280 is not set 1438# CONFIG_USB_GADGET_LH7A40X is not set
1439# CONFIG_USB_GADGET_OMAP is not set
1221# CONFIG_USB_GADGET_PXA25X is not set 1440# CONFIG_USB_GADGET_PXA25X is not set
1222# CONFIG_USB_GADGET_M66592 is not set 1441# CONFIG_USB_GADGET_R8A66597 is not set
1223CONFIG_USB_GADGET_PXA27X=y 1442CONFIG_USB_GADGET_PXA27X=y
1224CONFIG_USB_PXA27X=y 1443CONFIG_USB_PXA27X=y
1225# CONFIG_USB_GADGET_GOKU is not set 1444# CONFIG_USB_GADGET_S3C_HSOTG is not set
1226# CONFIG_USB_GADGET_LH7A40X is not set 1445# CONFIG_USB_GADGET_IMX is not set
1227# CONFIG_USB_GADGET_OMAP is not set
1228# CONFIG_USB_GADGET_S3C2410 is not set 1446# CONFIG_USB_GADGET_S3C2410 is not set
1229# CONFIG_USB_GADGET_AT91 is not set 1447# CONFIG_USB_GADGET_M66592 is not set
1448# CONFIG_USB_GADGET_AMD5536UDC is not set
1449# CONFIG_USB_GADGET_FSL_QE is not set
1450# CONFIG_USB_GADGET_CI13XXX is not set
1451# CONFIG_USB_GADGET_NET2280 is not set
1452# CONFIG_USB_GADGET_GOKU is not set
1453# CONFIG_USB_GADGET_LANGWELL is not set
1230# CONFIG_USB_GADGET_DUMMY_HCD is not set 1454# CONFIG_USB_GADGET_DUMMY_HCD is not set
1231# CONFIG_USB_GADGET_DUALSPEED is not set 1455# CONFIG_USB_GADGET_DUALSPEED is not set
1232# CONFIG_USB_ZERO is not set 1456# CONFIG_USB_ZERO is not set
1457# CONFIG_USB_AUDIO is not set
1233CONFIG_USB_ETH=y 1458CONFIG_USB_ETH=y
1234# CONFIG_USB_ETH_RNDIS is not set 1459# CONFIG_USB_ETH_RNDIS is not set
1460# CONFIG_USB_ETH_EEM is not set
1235# CONFIG_USB_GADGETFS is not set 1461# CONFIG_USB_GADGETFS is not set
1236# CONFIG_USB_FILE_STORAGE is not set 1462# CONFIG_USB_FILE_STORAGE is not set
1237# CONFIG_USB_G_SERIAL is not set 1463# CONFIG_USB_G_SERIAL is not set
1238# CONFIG_USB_MIDI_GADGET is not set 1464# CONFIG_USB_MIDI_GADGET is not set
1239# CONFIG_USB_G_PRINTER is not set 1465# CONFIG_USB_G_PRINTER is not set
1466# CONFIG_USB_CDC_COMPOSITE is not set
1467
1468#
1469# OTG and related infrastructure
1470#
1471CONFIG_USB_OTG_UTILS=y
1472# CONFIG_USB_GPIO_VBUS is not set
1473# CONFIG_NOP_USB_XCEIV is not set
1240CONFIG_MMC=y 1474CONFIG_MMC=y
1241# CONFIG_MMC_DEBUG is not set 1475# CONFIG_MMC_DEBUG is not set
1242CONFIG_MMC_UNSAFE_RESUME=y 1476CONFIG_MMC_UNSAFE_RESUME=y
1243 1477
1244# 1478#
1245# MMC/SD Card Drivers 1479# MMC/SD/SDIO Card Drivers
1246# 1480#
1247CONFIG_MMC_BLOCK=y 1481CONFIG_MMC_BLOCK=y
1248CONFIG_MMC_BLOCK_BOUNCE=y 1482CONFIG_MMC_BLOCK_BOUNCE=y
1249CONFIG_SDIO_UART=y 1483CONFIG_SDIO_UART=m
1484# CONFIG_MMC_TEST is not set
1250 1485
1251# 1486#
1252# MMC/SD Host Controller Drivers 1487# MMC/SD/SDIO Host Controller Drivers
1253# 1488#
1254CONFIG_MMC_PXA=y 1489CONFIG_MMC_PXA=y
1255# CONFIG_MMC_SPI is not set 1490# CONFIG_MMC_SDHCI is not set
1491# CONFIG_MMC_AT91 is not set
1492# CONFIG_MMC_ATMELMCI is not set
1493CONFIG_MMC_SPI=y
1494# CONFIG_MEMSTICK is not set
1256CONFIG_NEW_LEDS=y 1495CONFIG_NEW_LEDS=y
1257CONFIG_LEDS_CLASS=y 1496CONFIG_LEDS_CLASS=y
1258 1497
1259# 1498#
1260# LED drivers 1499# LED drivers
1261# 1500#
1501# CONFIG_LEDS_PCA9532 is not set
1262# CONFIG_LEDS_GPIO is not set 1502# CONFIG_LEDS_GPIO is not set
1503CONFIG_LEDS_LP3944=y
1504# CONFIG_LEDS_PCA955X is not set
1505# CONFIG_LEDS_DAC124S085 is not set
1506# CONFIG_LEDS_PWM is not set
1507# CONFIG_LEDS_BD2802 is not set
1263 1508
1264# 1509#
1265# LED Triggers 1510# LED Triggers
@@ -1267,7 +1512,14 @@ CONFIG_LEDS_CLASS=y
1267CONFIG_LEDS_TRIGGERS=y 1512CONFIG_LEDS_TRIGGERS=y
1268CONFIG_LEDS_TRIGGER_TIMER=y 1513CONFIG_LEDS_TRIGGER_TIMER=y
1269CONFIG_LEDS_TRIGGER_HEARTBEAT=y 1514CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1270# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set 1515CONFIG_LEDS_TRIGGER_BACKLIGHT=y
1516CONFIG_LEDS_TRIGGER_GPIO=y
1517CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
1518
1519#
1520# iptables trigger is under Netfilter config (LED target)
1521#
1522# CONFIG_ACCESSIBILITY is not set
1271CONFIG_RTC_LIB=y 1523CONFIG_RTC_LIB=y
1272CONFIG_RTC_CLASS=y 1524CONFIG_RTC_CLASS=y
1273CONFIG_RTC_HCTOSYS=y 1525CONFIG_RTC_HCTOSYS=y
@@ -1297,45 +1549,67 @@ CONFIG_RTC_INTF_DEV=y
1297# CONFIG_RTC_DRV_PCF8583 is not set 1549# CONFIG_RTC_DRV_PCF8583 is not set
1298# CONFIG_RTC_DRV_M41T80 is not set 1550# CONFIG_RTC_DRV_M41T80 is not set
1299# CONFIG_RTC_DRV_S35390A is not set 1551# CONFIG_RTC_DRV_S35390A is not set
1552# CONFIG_RTC_DRV_FM3130 is not set
1553# CONFIG_RTC_DRV_RX8581 is not set
1554# CONFIG_RTC_DRV_RX8025 is not set
1300 1555
1301# 1556#
1302# SPI RTC drivers 1557# SPI RTC drivers
1303# 1558#
1559# CONFIG_RTC_DRV_M41T94 is not set
1560# CONFIG_RTC_DRV_DS1305 is not set
1561# CONFIG_RTC_DRV_DS1390 is not set
1304# CONFIG_RTC_DRV_MAX6902 is not set 1562# CONFIG_RTC_DRV_MAX6902 is not set
1305# CONFIG_RTC_DRV_R9701 is not set 1563# CONFIG_RTC_DRV_R9701 is not set
1306# CONFIG_RTC_DRV_RS5C348 is not set 1564# CONFIG_RTC_DRV_RS5C348 is not set
1565# CONFIG_RTC_DRV_DS3234 is not set
1566# CONFIG_RTC_DRV_PCF2123 is not set
1307 1567
1308# 1568#
1309# Platform RTC drivers 1569# Platform RTC drivers
1310# 1570#
1311# CONFIG_RTC_DRV_CMOS is not set 1571# CONFIG_RTC_DRV_CMOS is not set
1572# CONFIG_RTC_DRV_DS1286 is not set
1312# CONFIG_RTC_DRV_DS1511 is not set 1573# CONFIG_RTC_DRV_DS1511 is not set
1313# CONFIG_RTC_DRV_DS1553 is not set 1574# CONFIG_RTC_DRV_DS1553 is not set
1314# CONFIG_RTC_DRV_DS1742 is not set 1575# CONFIG_RTC_DRV_DS1742 is not set
1315# CONFIG_RTC_DRV_STK17TA8 is not set 1576# CONFIG_RTC_DRV_STK17TA8 is not set
1316# CONFIG_RTC_DRV_M48T86 is not set 1577# CONFIG_RTC_DRV_M48T86 is not set
1578# CONFIG_RTC_DRV_M48T35 is not set
1317# CONFIG_RTC_DRV_M48T59 is not set 1579# CONFIG_RTC_DRV_M48T59 is not set
1580# CONFIG_RTC_DRV_BQ4802 is not set
1318# CONFIG_RTC_DRV_V3020 is not set 1581# CONFIG_RTC_DRV_V3020 is not set
1319 1582
1320# 1583#
1321# on-CPU RTC drivers 1584# on-CPU RTC drivers
1322# 1585#
1323CONFIG_RTC_DRV_SA1100=m 1586# CONFIG_RTC_DRV_SA1100 is not set
1587# CONFIG_RTC_DRV_PXA is not set
1588CONFIG_RTC_DRV_PCAP=y
1589# CONFIG_DMADEVICES is not set
1590# CONFIG_AUXDISPLAY is not set
1324# CONFIG_UIO is not set 1591# CONFIG_UIO is not set
1325 1592
1326# 1593#
1594# TI VLYNQ
1595#
1596# CONFIG_STAGING is not set
1597
1598#
1327# File systems 1599# File systems
1328# 1600#
1329CONFIG_EXT2_FS=y 1601CONFIG_EXT2_FS=y
1330# CONFIG_EXT2_FS_XATTR is not set 1602# CONFIG_EXT2_FS_XATTR is not set
1331# CONFIG_EXT2_FS_XIP is not set 1603# CONFIG_EXT2_FS_XIP is not set
1332CONFIG_EXT3_FS=m 1604CONFIG_EXT3_FS=m
1605# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1333CONFIG_EXT3_FS_XATTR=y 1606CONFIG_EXT3_FS_XATTR=y
1334# CONFIG_EXT3_FS_POSIX_ACL is not set 1607# CONFIG_EXT3_FS_POSIX_ACL is not set
1335# CONFIG_EXT3_FS_SECURITY is not set 1608# CONFIG_EXT3_FS_SECURITY is not set
1336# CONFIG_EXT4DEV_FS is not set 1609# CONFIG_EXT4_FS is not set
1337CONFIG_JBD=m 1610CONFIG_JBD=m
1338CONFIG_FS_MBCACHE=y 1611# CONFIG_JBD_DEBUG is not set
1612CONFIG_FS_MBCACHE=m
1339CONFIG_REISERFS_FS=m 1613CONFIG_REISERFS_FS=m
1340# CONFIG_REISERFS_CHECK is not set 1614# CONFIG_REISERFS_CHECK is not set
1341# CONFIG_REISERFS_PROC_INFO is not set 1615# CONFIG_REISERFS_PROC_INFO is not set
@@ -1350,6 +1624,10 @@ CONFIG_XFS_FS=m
1350# CONFIG_XFS_RT is not set 1624# CONFIG_XFS_RT is not set
1351# CONFIG_XFS_DEBUG is not set 1625# CONFIG_XFS_DEBUG is not set
1352# CONFIG_OCFS2_FS is not set 1626# CONFIG_OCFS2_FS is not set
1627# CONFIG_BTRFS_FS is not set
1628# CONFIG_NILFS2_FS is not set
1629CONFIG_FILE_LOCKING=y
1630CONFIG_FSNOTIFY=y
1353CONFIG_DNOTIFY=y 1631CONFIG_DNOTIFY=y
1354CONFIG_INOTIFY=y 1632CONFIG_INOTIFY=y
1355CONFIG_INOTIFY_USER=y 1633CONFIG_INOTIFY_USER=y
@@ -1357,6 +1635,12 @@ CONFIG_INOTIFY_USER=y
1357CONFIG_AUTOFS_FS=y 1635CONFIG_AUTOFS_FS=y
1358CONFIG_AUTOFS4_FS=y 1636CONFIG_AUTOFS4_FS=y
1359CONFIG_FUSE_FS=m 1637CONFIG_FUSE_FS=m
1638CONFIG_CUSE=m
1639
1640#
1641# Caches
1642#
1643# CONFIG_FSCACHE is not set
1360 1644
1361# 1645#
1362# CD-ROM/DVD Filesystems 1646# CD-ROM/DVD Filesystems
@@ -1381,15 +1665,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1381# 1665#
1382CONFIG_PROC_FS=y 1666CONFIG_PROC_FS=y
1383CONFIG_PROC_SYSCTL=y 1667CONFIG_PROC_SYSCTL=y
1668CONFIG_PROC_PAGE_MONITOR=y
1384CONFIG_SYSFS=y 1669CONFIG_SYSFS=y
1385CONFIG_TMPFS=y 1670CONFIG_TMPFS=y
1386# CONFIG_TMPFS_POSIX_ACL is not set 1671# CONFIG_TMPFS_POSIX_ACL is not set
1387# CONFIG_HUGETLB_PAGE is not set 1672# CONFIG_HUGETLB_PAGE is not set
1388# CONFIG_CONFIGFS_FS is not set 1673# CONFIG_CONFIGFS_FS is not set
1389 1674CONFIG_MISC_FILESYSTEMS=y
1390#
1391# Miscellaneous filesystems
1392#
1393# CONFIG_ADFS_FS is not set 1675# CONFIG_ADFS_FS is not set
1394# CONFIG_AFFS_FS is not set 1676# CONFIG_AFFS_FS is not set
1395# CONFIG_HFS_FS is not set 1677# CONFIG_HFS_FS is not set
@@ -1397,13 +1679,35 @@ CONFIG_TMPFS=y
1397# CONFIG_BEFS_FS is not set 1679# CONFIG_BEFS_FS is not set
1398# CONFIG_BFS_FS is not set 1680# CONFIG_BFS_FS is not set
1399# CONFIG_EFS_FS is not set 1681# CONFIG_EFS_FS is not set
1400# CONFIG_JFFS2_FS is not set 1682CONFIG_JFFS2_FS=m
1683CONFIG_JFFS2_FS_DEBUG=0
1684CONFIG_JFFS2_FS_WRITEBUFFER=y
1685# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1686# CONFIG_JFFS2_SUMMARY is not set
1687# CONFIG_JFFS2_FS_XATTR is not set
1688CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1689CONFIG_JFFS2_ZLIB=y
1690CONFIG_JFFS2_LZO=y
1691CONFIG_JFFS2_RTIME=y
1692CONFIG_JFFS2_RUBIN=y
1693# CONFIG_JFFS2_CMODE_NONE is not set
1694CONFIG_JFFS2_CMODE_PRIORITY=y
1695# CONFIG_JFFS2_CMODE_SIZE is not set
1696# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1401CONFIG_CRAMFS=m 1697CONFIG_CRAMFS=m
1698CONFIG_SQUASHFS=m
1699# CONFIG_SQUASHFS_EMBEDDED is not set
1700CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1402# CONFIG_VXFS_FS is not set 1701# CONFIG_VXFS_FS is not set
1403# CONFIG_MINIX_FS is not set 1702# CONFIG_MINIX_FS is not set
1703# CONFIG_OMFS_FS is not set
1404# CONFIG_HPFS_FS is not set 1704# CONFIG_HPFS_FS is not set
1405# CONFIG_QNX4FS_FS is not set 1705# CONFIG_QNX4FS_FS is not set
1406# CONFIG_ROMFS_FS is not set 1706CONFIG_ROMFS_FS=m
1707CONFIG_ROMFS_BACKED_BY_BLOCK=y
1708# CONFIG_ROMFS_BACKED_BY_MTD is not set
1709# CONFIG_ROMFS_BACKED_BY_BOTH is not set
1710CONFIG_ROMFS_ON_BLOCK=y
1407# CONFIG_SYSV_FS is not set 1711# CONFIG_SYSV_FS is not set
1408# CONFIG_UFS_FS is not set 1712# CONFIG_UFS_FS is not set
1409CONFIG_NETWORK_FILESYSTEMS=y 1713CONFIG_NETWORK_FILESYSTEMS=y
@@ -1411,19 +1715,18 @@ CONFIG_NFS_FS=y
1411CONFIG_NFS_V3=y 1715CONFIG_NFS_V3=y
1412CONFIG_NFS_V3_ACL=y 1716CONFIG_NFS_V3_ACL=y
1413# CONFIG_NFS_V4 is not set 1717# CONFIG_NFS_V4 is not set
1718# CONFIG_ROOT_NFS is not set
1414CONFIG_NFSD=m 1719CONFIG_NFSD=m
1415CONFIG_NFSD_V2_ACL=y 1720CONFIG_NFSD_V2_ACL=y
1416CONFIG_NFSD_V3=y 1721CONFIG_NFSD_V3=y
1417CONFIG_NFSD_V3_ACL=y 1722CONFIG_NFSD_V3_ACL=y
1418# CONFIG_NFSD_V4 is not set 1723# CONFIG_NFSD_V4 is not set
1419# CONFIG_ROOT_NFS is not set
1420CONFIG_LOCKD=y 1724CONFIG_LOCKD=y
1421CONFIG_LOCKD_V4=y 1725CONFIG_LOCKD_V4=y
1422CONFIG_EXPORTFS=m 1726CONFIG_EXPORTFS=m
1423CONFIG_NFS_ACL_SUPPORT=y 1727CONFIG_NFS_ACL_SUPPORT=y
1424CONFIG_NFS_COMMON=y 1728CONFIG_NFS_COMMON=y
1425CONFIG_SUNRPC=y 1729CONFIG_SUNRPC=y
1426# CONFIG_SUNRPC_BIND34 is not set
1427# CONFIG_RPCSEC_GSS_KRB5 is not set 1730# CONFIG_RPCSEC_GSS_KRB5 is not set
1428# CONFIG_RPCSEC_GSS_SPKM3 is not set 1731# CONFIG_RPCSEC_GSS_SPKM3 is not set
1429CONFIG_SMB_FS=m 1732CONFIG_SMB_FS=m
@@ -1490,25 +1793,83 @@ CONFIG_NLS_UTF8=m
1490# 1793#
1491# Kernel hacking 1794# Kernel hacking
1492# 1795#
1493# CONFIG_PRINTK_TIME is not set 1796CONFIG_PRINTK_TIME=y
1494CONFIG_ENABLE_WARN_DEPRECATED=y 1797CONFIG_ENABLE_WARN_DEPRECATED=y
1495# CONFIG_ENABLE_MUST_CHECK is not set 1798CONFIG_ENABLE_MUST_CHECK=y
1496CONFIG_FRAME_WARN=1024 1799CONFIG_FRAME_WARN=1024
1497# CONFIG_MAGIC_SYSRQ is not set 1800# CONFIG_MAGIC_SYSRQ is not set
1801# CONFIG_STRIP_ASM_SYMS is not set
1498# CONFIG_UNUSED_SYMBOLS is not set 1802# CONFIG_UNUSED_SYMBOLS is not set
1499# CONFIG_DEBUG_FS is not set 1803CONFIG_DEBUG_FS=y
1500# CONFIG_HEADERS_CHECK is not set 1804# CONFIG_HEADERS_CHECK is not set
1501# CONFIG_DEBUG_KERNEL is not set 1805CONFIG_DEBUG_KERNEL=y
1502# CONFIG_DEBUG_BUGVERBOSE is not set 1806# CONFIG_DEBUG_SHIRQ is not set
1503CONFIG_FRAME_POINTER=y 1807CONFIG_DETECT_SOFTLOCKUP=y
1808# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1809CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1810CONFIG_DETECT_HUNG_TASK=y
1811# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1812CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1813# CONFIG_SCHED_DEBUG is not set
1814# CONFIG_SCHEDSTATS is not set
1815# CONFIG_TIMER_STATS is not set
1816# CONFIG_DEBUG_OBJECTS is not set
1817# CONFIG_DEBUG_SLAB is not set
1818# CONFIG_DEBUG_KMEMLEAK is not set
1819CONFIG_DEBUG_PREEMPT=y
1820CONFIG_DEBUG_RT_MUTEXES=y
1821CONFIG_DEBUG_PI_LIST=y
1822# CONFIG_RT_MUTEX_TESTER is not set
1823CONFIG_DEBUG_SPINLOCK=y
1824CONFIG_DEBUG_MUTEXES=y
1825CONFIG_DEBUG_LOCK_ALLOC=y
1826CONFIG_PROVE_LOCKING=y
1827CONFIG_LOCKDEP=y
1828# CONFIG_LOCK_STAT is not set
1829# CONFIG_DEBUG_LOCKDEP is not set
1830CONFIG_TRACE_IRQFLAGS=y
1831# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1832# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1833CONFIG_STACKTRACE=y
1834# CONFIG_DEBUG_KOBJECT is not set
1835CONFIG_DEBUG_BUGVERBOSE=y
1836# CONFIG_DEBUG_INFO is not set
1837# CONFIG_DEBUG_VM is not set
1838# CONFIG_DEBUG_WRITECOUNT is not set
1839# CONFIG_DEBUG_MEMORY_INIT is not set
1840# CONFIG_DEBUG_LIST is not set
1841# CONFIG_DEBUG_SG is not set
1842# CONFIG_DEBUG_NOTIFIERS is not set
1843# CONFIG_DEBUG_CREDENTIALS is not set
1844# CONFIG_BOOT_PRINTK_DELAY is not set
1845# CONFIG_RCU_TORTURE_TEST is not set
1846# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1847# CONFIG_BACKTRACE_SELF_TEST is not set
1848# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1849# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1850# CONFIG_FAULT_INJECTION is not set
1851# CONFIG_LATENCYTOP is not set
1852# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1853# CONFIG_PAGE_POISONING is not set
1854CONFIG_HAVE_FUNCTION_TRACER=y
1855CONFIG_TRACING_SUPPORT=y
1856# CONFIG_FTRACE is not set
1857# CONFIG_DYNAMIC_DEBUG is not set
1504# CONFIG_SAMPLES is not set 1858# CONFIG_SAMPLES is not set
1505# CONFIG_DEBUG_USER is not set 1859CONFIG_HAVE_ARCH_KGDB=y
1860# CONFIG_KGDB is not set
1861CONFIG_ARM_UNWIND=y
1862CONFIG_DEBUG_USER=y
1863CONFIG_DEBUG_ERRORS=y
1864# CONFIG_DEBUG_STACK_USAGE is not set
1865# CONFIG_DEBUG_LL is not set
1506 1866
1507# 1867#
1508# Security options 1868# Security options
1509# 1869#
1510# CONFIG_KEYS is not set 1870# CONFIG_KEYS is not set
1511# CONFIG_SECURITY is not set 1871# CONFIG_SECURITY is not set
1872# CONFIG_SECURITYFS is not set
1512# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1873# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1513CONFIG_CRYPTO=y 1874CONFIG_CRYPTO=y
1514 1875
@@ -1516,12 +1877,20 @@ CONFIG_CRYPTO=y
1516# Crypto core or helper 1877# Crypto core or helper
1517# 1878#
1518CONFIG_CRYPTO_ALGAPI=m 1879CONFIG_CRYPTO_ALGAPI=m
1880CONFIG_CRYPTO_ALGAPI2=m
1519CONFIG_CRYPTO_AEAD=m 1881CONFIG_CRYPTO_AEAD=m
1882CONFIG_CRYPTO_AEAD2=m
1520CONFIG_CRYPTO_BLKCIPHER=m 1883CONFIG_CRYPTO_BLKCIPHER=m
1884CONFIG_CRYPTO_BLKCIPHER2=m
1521CONFIG_CRYPTO_HASH=m 1885CONFIG_CRYPTO_HASH=m
1886CONFIG_CRYPTO_HASH2=m
1887CONFIG_CRYPTO_RNG2=m
1888CONFIG_CRYPTO_PCOMP=m
1522CONFIG_CRYPTO_MANAGER=m 1889CONFIG_CRYPTO_MANAGER=m
1890CONFIG_CRYPTO_MANAGER2=m
1523CONFIG_CRYPTO_GF128MUL=m 1891CONFIG_CRYPTO_GF128MUL=m
1524CONFIG_CRYPTO_NULL=m 1892CONFIG_CRYPTO_NULL=m
1893CONFIG_CRYPTO_WORKQUEUE=m
1525CONFIG_CRYPTO_CRYPTD=m 1894CONFIG_CRYPTO_CRYPTD=m
1526CONFIG_CRYPTO_AUTHENC=m 1895CONFIG_CRYPTO_AUTHENC=m
1527CONFIG_CRYPTO_TEST=m 1896CONFIG_CRYPTO_TEST=m
@@ -1549,14 +1918,20 @@ CONFIG_CRYPTO_XTS=m
1549# 1918#
1550CONFIG_CRYPTO_HMAC=m 1919CONFIG_CRYPTO_HMAC=m
1551CONFIG_CRYPTO_XCBC=m 1920CONFIG_CRYPTO_XCBC=m
1921CONFIG_CRYPTO_VMAC=m
1552 1922
1553# 1923#
1554# Digest 1924# Digest
1555# 1925#
1556CONFIG_CRYPTO_CRC32C=m 1926CONFIG_CRYPTO_CRC32C=m
1927CONFIG_CRYPTO_GHASH=m
1557CONFIG_CRYPTO_MD4=m 1928CONFIG_CRYPTO_MD4=m
1558CONFIG_CRYPTO_MD5=m 1929CONFIG_CRYPTO_MD5=m
1559CONFIG_CRYPTO_MICHAEL_MIC=m 1930CONFIG_CRYPTO_MICHAEL_MIC=m
1931# CONFIG_CRYPTO_RMD128 is not set
1932# CONFIG_CRYPTO_RMD160 is not set
1933# CONFIG_CRYPTO_RMD256 is not set
1934# CONFIG_CRYPTO_RMD320 is not set
1560CONFIG_CRYPTO_SHA1=m 1935CONFIG_CRYPTO_SHA1=m
1561CONFIG_CRYPTO_SHA256=m 1936CONFIG_CRYPTO_SHA256=m
1562CONFIG_CRYPTO_SHA512=m 1937CONFIG_CRYPTO_SHA512=m
@@ -1587,28 +1962,40 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1587# Compression 1962# Compression
1588# 1963#
1589CONFIG_CRYPTO_DEFLATE=m 1964CONFIG_CRYPTO_DEFLATE=m
1965# CONFIG_CRYPTO_ZLIB is not set
1590# CONFIG_CRYPTO_LZO is not set 1966# CONFIG_CRYPTO_LZO is not set
1967
1968#
1969# Random Number Generation
1970#
1971# CONFIG_CRYPTO_ANSI_CPRNG is not set
1591CONFIG_CRYPTO_HW=y 1972CONFIG_CRYPTO_HW=y
1973# CONFIG_BINARY_PRINTF is not set
1592 1974
1593# 1975#
1594# Library routines 1976# Library routines
1595# 1977#
1596CONFIG_BITREVERSE=y 1978CONFIG_BITREVERSE=y
1597# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1979CONFIG_GENERIC_FIND_LAST_BIT=y
1598# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1599CONFIG_CRC_CCITT=m 1980CONFIG_CRC_CCITT=m
1600CONFIG_CRC16=m 1981CONFIG_CRC16=y
1601# CONFIG_CRC_ITU_T is not set 1982# CONFIG_CRC_T10DIF is not set
1983CONFIG_CRC_ITU_T=y
1602CONFIG_CRC32=y 1984CONFIG_CRC32=y
1603# CONFIG_CRC7 is not set 1985CONFIG_CRC7=y
1604CONFIG_LIBCRC32C=m 1986CONFIG_LIBCRC32C=m
1605CONFIG_ZLIB_INFLATE=m 1987CONFIG_ZLIB_INFLATE=y
1606CONFIG_ZLIB_DEFLATE=m 1988CONFIG_ZLIB_DEFLATE=m
1989CONFIG_LZO_COMPRESS=m
1990CONFIG_LZO_DECOMPRESS=m
1991CONFIG_DECOMPRESS_GZIP=y
1992CONFIG_DECOMPRESS_BZIP2=y
1993CONFIG_DECOMPRESS_LZMA=y
1607CONFIG_TEXTSEARCH=y 1994CONFIG_TEXTSEARCH=y
1608CONFIG_TEXTSEARCH_KMP=m 1995CONFIG_TEXTSEARCH_KMP=m
1609CONFIG_TEXTSEARCH_BM=m 1996CONFIG_TEXTSEARCH_BM=m
1610CONFIG_TEXTSEARCH_FSM=m 1997CONFIG_TEXTSEARCH_FSM=m
1611CONFIG_PLIST=y
1612CONFIG_HAS_IOMEM=y 1998CONFIG_HAS_IOMEM=y
1613CONFIG_HAS_IOPORT=y 1999CONFIG_HAS_IOPORT=y
1614CONFIG_HAS_DMA=y 2000CONFIG_HAS_DMA=y
2001CONFIG_NLATTR=y
diff --git a/arch/arm/mach-mmp/aspenite.c b/arch/arm/mach-mmp/aspenite.c
index 4562452d4074..a2d307ec0420 100644
--- a/arch/arm/mach-mmp/aspenite.c
+++ b/arch/arm/mach-mmp/aspenite.c
@@ -13,6 +13,9 @@
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/platform_device.h> 14#include <linux/platform_device.h>
15#include <linux/smc91x.h> 15#include <linux/smc91x.h>
16#include <linux/mtd/mtd.h>
17#include <linux/mtd/partitions.h>
18#include <linux/mtd/nand.h>
16 19
17#include <asm/mach-types.h> 20#include <asm/mach-types.h>
18#include <asm/mach/arch.h> 21#include <asm/mach/arch.h>
@@ -85,12 +88,48 @@ static struct platform_device smc91x_device = {
85 .resource = smc91x_resources, 88 .resource = smc91x_resources,
86}; 89};
87 90
91static struct mtd_partition aspenite_nand_partitions[] = {
92 {
93 .name = "bootloader",
94 .offset = 0,
95 .size = SZ_1M,
96 .mask_flags = MTD_WRITEABLE,
97 }, {
98 .name = "reserved",
99 .offset = MTDPART_OFS_APPEND,
100 .size = SZ_128K,
101 .mask_flags = MTD_WRITEABLE,
102 }, {
103 .name = "reserved",
104 .offset = MTDPART_OFS_APPEND,
105 .size = SZ_8M,
106 .mask_flags = MTD_WRITEABLE,
107 }, {
108 .name = "kernel",
109 .offset = MTDPART_OFS_APPEND,
110 .size = (SZ_2M + SZ_1M),
111 .mask_flags = 0,
112 }, {
113 .name = "filesystem",
114 .offset = MTDPART_OFS_APPEND,
115 .size = SZ_48M,
116 .mask_flags = 0,
117 }
118};
119
120static struct pxa3xx_nand_platform_data aspenite_nand_info = {
121 .enable_arbiter = 1,
122 .parts = aspenite_nand_partitions,
123 .nr_parts = ARRAY_SIZE(aspenite_nand_partitions),
124};
125
88static void __init common_init(void) 126static void __init common_init(void)
89{ 127{
90 mfp_config(ARRAY_AND_SIZE(common_pin_config)); 128 mfp_config(ARRAY_AND_SIZE(common_pin_config));
91 129
92 /* on-chip devices */ 130 /* on-chip devices */
93 pxa168_add_uart(1); 131 pxa168_add_uart(1);
132 pxa168_add_nand(&aspenite_nand_info);
94 133
95 /* off-chip devices */ 134 /* off-chip devices */
96 platform_device_register(&smc91x_device); 135 platform_device_register(&smc91x_device);
diff --git a/arch/arm/mach-mmp/clock.c b/arch/arm/mach-mmp/clock.c
index 2d9cc5a7122f..2a46ed5cc2a2 100644
--- a/arch/arm/mach-mmp/clock.c
+++ b/arch/arm/mach-mmp/clock.c
@@ -34,6 +34,21 @@ struct clkops apbc_clk_ops = {
34 .disable = apbc_clk_disable, 34 .disable = apbc_clk_disable,
35}; 35};
36 36
37static void apmu_clk_enable(struct clk *clk)
38{
39 __raw_writel(clk->enable_val, clk->clk_rst);
40}
41
42static void apmu_clk_disable(struct clk *clk)
43{
44 __raw_writel(0, clk->clk_rst);
45}
46
47struct clkops apmu_clk_ops = {
48 .enable = apmu_clk_enable,
49 .disable = apmu_clk_disable,
50};
51
37static DEFINE_SPINLOCK(clocks_lock); 52static DEFINE_SPINLOCK(clocks_lock);
38 53
39int clk_enable(struct clk *clk) 54int clk_enable(struct clk *clk)
diff --git a/arch/arm/mach-mmp/clock.h b/arch/arm/mach-mmp/clock.h
index ed967e78e6a8..eefffbe683b0 100644
--- a/arch/arm/mach-mmp/clock.h
+++ b/arch/arm/mach-mmp/clock.h
@@ -25,6 +25,7 @@ struct clk {
25}; 25};
26 26
27extern struct clkops apbc_clk_ops; 27extern struct clkops apbc_clk_ops;
28extern struct clkops apmu_clk_ops;
28 29
29#define APBC_CLK(_name, _reg, _fnclksel, _rate) \ 30#define APBC_CLK(_name, _reg, _fnclksel, _rate) \
30struct clk clk_##_name = { \ 31struct clk clk_##_name = { \
diff --git a/arch/arm/mach-mmp/include/mach/irqs.h b/arch/arm/mach-mmp/include/mach/irqs.h
index 16295cfd5e29..d68871b0f28c 100644
--- a/arch/arm/mach-mmp/include/mach/irqs.h
+++ b/arch/arm/mach-mmp/include/mach/irqs.h
@@ -31,7 +31,9 @@
31#define IRQ_PXA168_DDR_INT 26 31#define IRQ_PXA168_DDR_INT 26
32#define IRQ_PXA168_UART1 27 32#define IRQ_PXA168_UART1 27
33#define IRQ_PXA168_UART2 28 33#define IRQ_PXA168_UART2 28
34#define IRQ_PXA168_UART3 29
34#define IRQ_PXA168_WDT 35 35#define IRQ_PXA168_WDT 35
36#define IRQ_PXA168_MAIN_PMU 36
35#define IRQ_PXA168_FRQ_CHANGE 38 37#define IRQ_PXA168_FRQ_CHANGE 38
36#define IRQ_PXA168_SDH1 39 38#define IRQ_PXA168_SDH1 39
37#define IRQ_PXA168_SDH2 40 39#define IRQ_PXA168_SDH2 40
@@ -46,7 +48,7 @@
46#define IRQ_PXA168_USB2 51 48#define IRQ_PXA168_USB2 51
47#define IRQ_PXA168_AC97 57 49#define IRQ_PXA168_AC97 57
48#define IRQ_PXA168_TWSI1 58 50#define IRQ_PXA168_TWSI1 58
49#define IRQ_PXA168_PMU 60 51#define IRQ_PXA168_AP_PMU 60
50#define IRQ_PXA168_SM_INT 63 52#define IRQ_PXA168_SM_INT 63
51 53
52/* 54/*
diff --git a/arch/arm/mach-mmp/include/mach/pxa168.h b/arch/arm/mach-mmp/include/mach/pxa168.h
index 6bf1f0eefcd1..3ad612cbdf09 100644
--- a/arch/arm/mach-mmp/include/mach/pxa168.h
+++ b/arch/arm/mach-mmp/include/mach/pxa168.h
@@ -4,6 +4,7 @@
4#include <linux/i2c.h> 4#include <linux/i2c.h>
5#include <mach/devices.h> 5#include <mach/devices.h>
6#include <plat/i2c.h> 6#include <plat/i2c.h>
7#include <plat/pxa3xx_nand.h>
7 8
8extern struct pxa_device_desc pxa168_device_uart1; 9extern struct pxa_device_desc pxa168_device_uart1;
9extern struct pxa_device_desc pxa168_device_uart2; 10extern struct pxa_device_desc pxa168_device_uart2;
@@ -13,6 +14,7 @@ extern struct pxa_device_desc pxa168_device_pwm1;
13extern struct pxa_device_desc pxa168_device_pwm2; 14extern struct pxa_device_desc pxa168_device_pwm2;
14extern struct pxa_device_desc pxa168_device_pwm3; 15extern struct pxa_device_desc pxa168_device_pwm3;
15extern struct pxa_device_desc pxa168_device_pwm4; 16extern struct pxa_device_desc pxa168_device_pwm4;
17extern struct pxa_device_desc pxa168_device_nand;
16 18
17static inline int pxa168_add_uart(int id) 19static inline int pxa168_add_uart(int id)
18{ 20{
@@ -64,4 +66,9 @@ static inline int pxa168_add_pwm(int id)
64 66
65 return pxa_register_device(d, NULL, 0); 67 return pxa_register_device(d, NULL, 0);
66} 68}
69
70static inline int pxa168_add_nand(struct pxa3xx_nand_platform_data *info)
71{
72 return pxa_register_device(&pxa168_device_nand, info, sizeof(*info));
73}
67#endif /* __ASM_MACH_PXA168_H */ 74#endif /* __ASM_MACH_PXA168_H */
diff --git a/arch/arm/mach-mmp/include/mach/pxa910.h b/arch/arm/mach-mmp/include/mach/pxa910.h
index 6ae1ed7a0a9f..4f0b4ec6f5d0 100644
--- a/arch/arm/mach-mmp/include/mach/pxa910.h
+++ b/arch/arm/mach-mmp/include/mach/pxa910.h
@@ -4,6 +4,7 @@
4#include <linux/i2c.h> 4#include <linux/i2c.h>
5#include <mach/devices.h> 5#include <mach/devices.h>
6#include <plat/i2c.h> 6#include <plat/i2c.h>
7#include <plat/pxa3xx_nand.h>
7 8
8extern struct pxa_device_desc pxa910_device_uart1; 9extern struct pxa_device_desc pxa910_device_uart1;
9extern struct pxa_device_desc pxa910_device_uart2; 10extern struct pxa_device_desc pxa910_device_uart2;
@@ -13,6 +14,7 @@ extern struct pxa_device_desc pxa910_device_pwm1;
13extern struct pxa_device_desc pxa910_device_pwm2; 14extern struct pxa_device_desc pxa910_device_pwm2;
14extern struct pxa_device_desc pxa910_device_pwm3; 15extern struct pxa_device_desc pxa910_device_pwm3;
15extern struct pxa_device_desc pxa910_device_pwm4; 16extern struct pxa_device_desc pxa910_device_pwm4;
17extern struct pxa_device_desc pxa910_device_nand;
16 18
17static inline int pxa910_add_uart(int id) 19static inline int pxa910_add_uart(int id)
18{ 20{
@@ -64,4 +66,9 @@ static inline int pxa910_add_pwm(int id)
64 66
65 return pxa_register_device(d, NULL, 0); 67 return pxa_register_device(d, NULL, 0);
66} 68}
69
70static inline int pxa910_add_nand(struct pxa3xx_nand_platform_data *info)
71{
72 return pxa_register_device(&pxa910_device_nand, info, sizeof(*info));
73}
67#endif /* __ASM_MACH_PXA910_H */ 74#endif /* __ASM_MACH_PXA910_H */
diff --git a/arch/arm/mach-mmp/pxa168.c b/arch/arm/mach-mmp/pxa168.c
index 71b1ae338753..37dbdde17fac 100644
--- a/arch/arm/mach-mmp/pxa168.c
+++ b/arch/arm/mach-mmp/pxa168.c
@@ -19,6 +19,7 @@
19#include <mach/addr-map.h> 19#include <mach/addr-map.h>
20#include <mach/cputype.h> 20#include <mach/cputype.h>
21#include <mach/regs-apbc.h> 21#include <mach/regs-apbc.h>
22#include <mach/regs-apmu.h>
22#include <mach/irqs.h> 23#include <mach/irqs.h>
23#include <mach/gpio.h> 24#include <mach/gpio.h>
24#include <mach/dma.h> 25#include <mach/dma.h>
@@ -72,6 +73,8 @@ static APBC_CLK(pwm2, PXA168_PWM2, 1, 13000000);
72static APBC_CLK(pwm3, PXA168_PWM3, 1, 13000000); 73static APBC_CLK(pwm3, PXA168_PWM3, 1, 13000000);
73static APBC_CLK(pwm4, PXA168_PWM4, 1, 13000000); 74static APBC_CLK(pwm4, PXA168_PWM4, 1, 13000000);
74 75
76static APMU_CLK(nand, NAND, 0x01db, 208000000);
77
75/* device and clock bindings */ 78/* device and clock bindings */
76static struct clk_lookup pxa168_clkregs[] = { 79static struct clk_lookup pxa168_clkregs[] = {
77 INIT_CLKREG(&clk_uart1, "pxa2xx-uart.0", NULL), 80 INIT_CLKREG(&clk_uart1, "pxa2xx-uart.0", NULL),
@@ -82,6 +85,7 @@ static struct clk_lookup pxa168_clkregs[] = {
82 INIT_CLKREG(&clk_pwm2, "pxa168-pwm.1", NULL), 85 INIT_CLKREG(&clk_pwm2, "pxa168-pwm.1", NULL),
83 INIT_CLKREG(&clk_pwm3, "pxa168-pwm.2", NULL), 86 INIT_CLKREG(&clk_pwm3, "pxa168-pwm.2", NULL),
84 INIT_CLKREG(&clk_pwm4, "pxa168-pwm.3", NULL), 87 INIT_CLKREG(&clk_pwm4, "pxa168-pwm.3", NULL),
88 INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL),
85}; 89};
86 90
87static int __init pxa168_init(void) 91static int __init pxa168_init(void)
@@ -127,3 +131,4 @@ PXA168_DEVICE(pwm1, "pxa168-pwm", 0, NONE, 0xd401a000, 0x10);
127PXA168_DEVICE(pwm2, "pxa168-pwm", 1, NONE, 0xd401a400, 0x10); 131PXA168_DEVICE(pwm2, "pxa168-pwm", 1, NONE, 0xd401a400, 0x10);
128PXA168_DEVICE(pwm3, "pxa168-pwm", 2, NONE, 0xd401a800, 0x10); 132PXA168_DEVICE(pwm3, "pxa168-pwm", 2, NONE, 0xd401a800, 0x10);
129PXA168_DEVICE(pwm4, "pxa168-pwm", 3, NONE, 0xd401ac00, 0x10); 133PXA168_DEVICE(pwm4, "pxa168-pwm", 3, NONE, 0xd401ac00, 0x10);
134PXA168_DEVICE(nand, "pxa3xx-nand", -1, NAND, 0xd4283000, 0x80, 97, 99);
diff --git a/arch/arm/mach-mmp/pxa910.c b/arch/arm/mach-mmp/pxa910.c
index 5882ca6b49fb..d4049508a4df 100644
--- a/arch/arm/mach-mmp/pxa910.c
+++ b/arch/arm/mach-mmp/pxa910.c
@@ -110,6 +110,8 @@ static APBC_CLK(pwm2, PXA910_PWM2, 1, 13000000);
110static APBC_CLK(pwm3, PXA910_PWM3, 1, 13000000); 110static APBC_CLK(pwm3, PXA910_PWM3, 1, 13000000);
111static APBC_CLK(pwm4, PXA910_PWM4, 1, 13000000); 111static APBC_CLK(pwm4, PXA910_PWM4, 1, 13000000);
112 112
113static APMU_CLK(nand, NAND, 0x01db, 208000000);
114
113/* device and clock bindings */ 115/* device and clock bindings */
114static struct clk_lookup pxa910_clkregs[] = { 116static struct clk_lookup pxa910_clkregs[] = {
115 INIT_CLKREG(&clk_uart1, "pxa2xx-uart.0", NULL), 117 INIT_CLKREG(&clk_uart1, "pxa2xx-uart.0", NULL),
@@ -120,6 +122,7 @@ static struct clk_lookup pxa910_clkregs[] = {
120 INIT_CLKREG(&clk_pwm2, "pxa910-pwm.1", NULL), 122 INIT_CLKREG(&clk_pwm2, "pxa910-pwm.1", NULL),
121 INIT_CLKREG(&clk_pwm3, "pxa910-pwm.2", NULL), 123 INIT_CLKREG(&clk_pwm3, "pxa910-pwm.2", NULL),
122 INIT_CLKREG(&clk_pwm4, "pxa910-pwm.3", NULL), 124 INIT_CLKREG(&clk_pwm4, "pxa910-pwm.3", NULL),
125 INIT_CLKREG(&clk_nand, "pxa3xx-nand", NULL),
123}; 126};
124 127
125static int __init pxa910_init(void) 128static int __init pxa910_init(void)
@@ -174,3 +177,4 @@ PXA910_DEVICE(pwm1, "pxa910-pwm", 0, NONE, 0xd401a000, 0x10);
174PXA910_DEVICE(pwm2, "pxa910-pwm", 1, NONE, 0xd401a400, 0x10); 177PXA910_DEVICE(pwm2, "pxa910-pwm", 1, NONE, 0xd401a400, 0x10);
175PXA910_DEVICE(pwm3, "pxa910-pwm", 2, NONE, 0xd401a800, 0x10); 178PXA910_DEVICE(pwm3, "pxa910-pwm", 2, NONE, 0xd401a800, 0x10);
176PXA910_DEVICE(pwm4, "pxa910-pwm", 3, NONE, 0xd401ac00, 0x10); 179PXA910_DEVICE(pwm4, "pxa910-pwm", 3, NONE, 0xd401ac00, 0x10);
180PXA910_DEVICE(nand, "pxa3xx-nand", -1, NAND, 0xd4283000, 0x80, 97, 99);
diff --git a/arch/arm/mach-mmp/ttc_dkb.c b/arch/arm/mach-mmp/ttc_dkb.c
index 08cfef6c92a2..8f49b2b12608 100644
--- a/arch/arm/mach-mmp/ttc_dkb.c
+++ b/arch/arm/mach-mmp/ttc_dkb.c
@@ -11,9 +11,13 @@
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/kernel.h> 12#include <linux/kernel.h>
13#include <linux/platform_device.h> 13#include <linux/platform_device.h>
14#include <linux/mtd/mtd.h>
15#include <linux/mtd/partitions.h>
16#include <linux/mtd/onenand.h>
14 17
15#include <asm/mach-types.h> 18#include <asm/mach-types.h>
16#include <asm/mach/arch.h> 19#include <asm/mach/arch.h>
20#include <asm/mach/flash.h>
17#include <mach/addr-map.h> 21#include <mach/addr-map.h>
18#include <mach/mfp-pxa910.h> 22#include <mach/mfp-pxa910.h>
19#include <mach/pxa910.h> 23#include <mach/pxa910.h>
@@ -26,6 +30,86 @@ static unsigned long ttc_dkb_pin_config[] __initdata = {
26 /* UART2 */ 30 /* UART2 */
27 GPIO47_UART2_RXD, 31 GPIO47_UART2_RXD,
28 GPIO48_UART2_TXD, 32 GPIO48_UART2_TXD,
33
34 /* DFI */
35 DF_IO0_ND_IO0,
36 DF_IO1_ND_IO1,
37 DF_IO2_ND_IO2,
38 DF_IO3_ND_IO3,
39 DF_IO4_ND_IO4,
40 DF_IO5_ND_IO5,
41 DF_IO6_ND_IO6,
42 DF_IO7_ND_IO7,
43 DF_IO8_ND_IO8,
44 DF_IO9_ND_IO9,
45 DF_IO10_ND_IO10,
46 DF_IO11_ND_IO11,
47 DF_IO12_ND_IO12,
48 DF_IO13_ND_IO13,
49 DF_IO14_ND_IO14,
50 DF_IO15_ND_IO15,
51 DF_nCS0_SM_nCS2_nCS0,
52 DF_ALE_SM_WEn_ND_ALE,
53 DF_CLE_SM_OEn_ND_CLE,
54 DF_WEn_DF_WEn,
55 DF_REn_DF_REn,
56 DF_RDY0_DF_RDY0,
57};
58
59static struct mtd_partition ttc_dkb_onenand_partitions[] = {
60 {
61 .name = "bootloader",
62 .offset = 0,
63 .size = SZ_1M,
64 .mask_flags = MTD_WRITEABLE,
65 }, {
66 .name = "reserved",
67 .offset = MTDPART_OFS_APPEND,
68 .size = SZ_128K,
69 .mask_flags = MTD_WRITEABLE,
70 }, {
71 .name = "reserved",
72 .offset = MTDPART_OFS_APPEND,
73 .size = SZ_8M,
74 .mask_flags = MTD_WRITEABLE,
75 }, {
76 .name = "kernel",
77 .offset = MTDPART_OFS_APPEND,
78 .size = (SZ_2M + SZ_1M),
79 .mask_flags = 0,
80 }, {
81 .name = "filesystem",
82 .offset = MTDPART_OFS_APPEND,
83 .size = SZ_48M,
84 .mask_flags = 0,
85 }
86};
87
88static struct onenand_platform_data ttc_dkb_onenand_info = {
89 .parts = ttc_dkb_onenand_partitions,
90 .nr_parts = ARRAY_SIZE(ttc_dkb_onenand_partitions),
91};
92
93static struct resource ttc_dkb_resource_onenand[] = {
94 [0] = {
95 .start = SMC_CS0_PHYS_BASE,
96 .end = SMC_CS0_PHYS_BASE + SZ_1M,
97 .flags = IORESOURCE_MEM,
98 },
99};
100
101static struct platform_device ttc_dkb_device_onenand = {
102 .name = "onenand-flash",
103 .id = -1,
104 .resource = ttc_dkb_resource_onenand,
105 .num_resources = ARRAY_SIZE(ttc_dkb_resource_onenand),
106 .dev = {
107 .platform_data = &ttc_dkb_onenand_info,
108 },
109};
110
111static struct platform_device *ttc_dkb_devices[] = {
112 &ttc_dkb_device_onenand,
29}; 113};
30 114
31static void __init ttc_dkb_init(void) 115static void __init ttc_dkb_init(void)
@@ -34,6 +118,9 @@ static void __init ttc_dkb_init(void)
34 118
35 /* on-chip devices */ 119 /* on-chip devices */
36 pxa910_add_uart(1); 120 pxa910_add_uart(1);
121
122 /* off-chip devices */
123 platform_add_devices(ARRAY_AND_SIZE(ttc_dkb_devices));
37} 124}
38 125
39MACHINE_START(TTC_DKB, "PXA910-based TTC_DKB Development Platform") 126MACHINE_START(TTC_DKB, "PXA910-based TTC_DKB Development Platform")
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index a6f8eab14ba5..d89c6adbe8bc 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -2,34 +2,105 @@ if ARCH_PXA
2 2
3menu "Intel PXA2xx/PXA3xx Implementations" 3menu "Intel PXA2xx/PXA3xx Implementations"
4 4
5if PXA3xx 5comment "Intel/Marvell Dev Platforms (sorted by hardware release time)"
6 6
7menu "Supported PXA3xx Processor Variants" 7config ARCH_LUBBOCK
8 bool "Intel DBPXA250 Development Platform (aka Lubbock)"
9 select PXA25x
10 select SA1111
11 select PXA_HAVE_BOARD_IRQS
8 12
9config CPU_PXA300 13config MACH_MAINSTONE
10 bool "PXA300 (codename Monahans-L)" 14 bool "Intel HCDDBBVA0 Development Platform (aka Mainstone)"
15 select PXA27x
16 select HAVE_PWM
17 select PXA_HAVE_BOARD_IRQS
11 18
12config CPU_PXA310 19config MACH_ZYLONITE
13 bool "PXA310 (codename Monahans-LV)" 20 bool
21 select PXA3xx
22 select PXA_SSP
23 select HAVE_PWM
24 select PXA_HAVE_BOARD_IRQS
25
26config MACH_ZYLONITE300
27 bool "PXA3xx Development Platform (aka Zylonite) PXA300/310"
14 select CPU_PXA300 28 select CPU_PXA300
29 select CPU_PXA310
30 select MACH_ZYLONITE
15 31
16config CPU_PXA320 32config MACH_ZYLONITE320
17 bool "PXA320 (codename Monahans-P)" 33 bool "PXA3xx Development Platform (aka Zylonite) PXA320"
34 select CPU_PXA320
35 select MACH_ZYLONITE
18 36
19config CPU_PXA930 37config MACH_LITTLETON
20 bool "PXA930 (codename Tavor-P)" 38 bool "PXA3xx Form Factor Platform (aka Littleton)"
39 select PXA3xx
40 select PXA_SSP
21 41
22config CPU_PXA935 42config MACH_TAVOREVB
23 bool "PXA935 (codename Tavor-P65)" 43 bool "PXA930 Evaluation Board (aka TavorEVB)"
44 select PXA3xx
24 select CPU_PXA930 45 select CPU_PXA930
25 46
26config CPU_PXA950 47config MACH_SAAR
27 bool "PXA950 (codename Tavor-PV2)" 48 bool "PXA930 Handheld Platform (aka SAAR)"
49 select PXA3xx
28 select CPU_PXA930 50 select CPU_PXA930
29 51
30endmenu 52comment "Third Party Dev Platforms (sorted by vendor name)"
31 53
32endif 54config ARCH_PXA_IDP
55 bool "Accelent Xscale IDP"
56 select PXA25x
57
58config ARCH_VIPER
59 bool "Arcom/Eurotech VIPER SBC"
60 select PXA25x
61 select ISA
62 select I2C_GPIO
63 select HAVE_PWM
64 select PXA_HAVE_BOARD_IRQS
65 select PXA_HAVE_ISA_IRQS
66
67config MACH_BALLOON3
68 bool "Balloon 3 board"
69 select PXA27x
70 select IWMMXT
71 select PXA_HAVE_BOARD_IRQS
72
73config MACH_CSB726
74 bool "Enable Cogent CSB726 System On a Module"
75 select PXA27x
76 select IWMMXT
77 help
78 Say Y here if you intend to run this kernel on a Cogent
79 CSB726 System On Module.
80
81config CSB726_CSB701
82 bool "Enable support for CSB701 baseboard"
83 depends on MACH_CSB726
84
85config MACH_ARMCORE
86 bool "CompuLab CM-X255/CM-X270 modules"
87 select PXA27x
88 select IWMMXT
89 select PXA25x
90 select PXA_SSP
91
92config MACH_EM_X270
93 bool "CompuLab EM-x270 platform"
94 select PXA27x
95
96config MACH_EXEDA
97 bool "CompuLab eXeda platform"
98 select PXA27x
99
100config MACH_CM_X300
101 bool "CompuLab CM-X300 modules"
102 select PXA3xx
103 select CPU_PXA300
33 104
34config ARCH_GUMSTIX 105config ARCH_GUMSTIX
35 bool "Gumstix XScale 255 boards" 106 bool "Gumstix XScale 255 boards"
@@ -62,185 +133,24 @@ config MACH_STARGATE2
62 select IWMMXT 133 select IWMMXT
63 select PXA_HAVE_BOARD_IRQS 134 select PXA_HAVE_BOARD_IRQS
64 135
65config ARCH_LUBBOCK 136config MACH_XCEP
66 bool "Intel DBPXA250 Development Platform" 137 bool "Iskratel Electronics XCEP"
67 select PXA25x
68 select SA1111
69 select PXA_HAVE_BOARD_IRQS
70
71config MACH_LOGICPD_PXA270
72 bool "LogicPD PXA270 Card Engine Development Platform"
73 select PXA27x
74 select HAVE_PWM
75 select PXA_HAVE_BOARD_IRQS
76
77config MACH_MAINSTONE
78 bool "Intel HCDDBBVA0 Development Platform"
79 select PXA27x
80 select HAVE_PWM
81 select PXA_HAVE_BOARD_IRQS
82
83config MACH_MP900C
84 bool "Nec Mobilepro 900/c"
85 select PXA25x
86
87config MACH_BALLOON3
88 bool "Balloon 3 board"
89 select PXA27x
90 select IWMMXT
91 select PXA_HAVE_BOARD_IRQS
92
93config ARCH_PXA_IDP
94 bool "Accelent Xscale IDP"
95 select PXA25x
96
97config PXA_SHARPSL
98 bool "SHARP Zaurus SL-5600, SL-C7xx and SL-Cxx00 Models"
99 select SHARP_SCOOP
100 select SHARP_PARAM
101 help
102 Say Y here if you intend to run this kernel on a
103 Sharp Zaurus SL-5600 (Poodle), SL-C700 (Corgi),
104 SL-C750 (Shepherd), SL-C760 (Husky), SL-C1000 (Akita),
105 SL-C3000 (Spitz), SL-C3100 (Borzoi) or SL-C6000x (Tosa)
106 handheld computer.
107
108config SHARPSL_PM
109 bool
110 select APM_EMULATION
111
112config CORGI_SSP_DEPRECATED
113 bool
114 select PXA_SSP
115 help
116 This option will include corgi_ssp.c and corgi_lcd.c
117 that corgi_ts.c and other legacy drivers (corgi_bl.c
118 and sharpsl_pm.c) may depend on.
119
120config MACH_POODLE
121 bool "Enable Sharp SL-5600 (Poodle) Support"
122 depends on PXA_SHARPSL
123 select PXA25x 138 select PXA25x
124 select SHARP_LOCOMO 139 select MTD
140 select MTD_PARTITIONS
141 select MTD_PHYSMAP
142 select MTD_CFI_INTELEXT
143 select MTD_CFI
144 select MTD_CHAR
145 select SMC91X
125 select PXA_SSP 146 select PXA_SSP
126
127config MACH_CORGI
128 bool "Enable Sharp SL-C700 (Corgi) Support"
129 depends on PXA_SHARPSL
130 select PXA25x
131 select PXA_SHARP_C7xx
132
133config MACH_SHEPHERD
134 bool "Enable Sharp SL-C750 (Shepherd) Support"
135 depends on PXA_SHARPSL
136 select PXA25x
137 select PXA_SHARP_C7xx
138
139config MACH_HUSKY
140 bool "Enable Sharp SL-C760 (Husky) Support"
141 depends on PXA_SHARPSL
142 select PXA25x
143 select PXA_SHARP_C7xx
144
145config MACH_AKITA
146 bool "Enable Sharp SL-1000 (Akita) Support"
147 depends on PXA_SHARPSL
148 select PXA27x
149 select PXA_SHARP_Cxx00
150 select MACH_SPITZ
151 select I2C
152 select I2C_PXA
153
154config MACH_SPITZ
155 bool "Enable Sharp Zaurus SL-3000 (Spitz) Support"
156 depends on PXA_SHARPSL
157 select PXA27x
158 select PXA_SHARP_Cxx00
159
160config MACH_BORZOI
161 bool "Enable Sharp Zaurus SL-3100 (Borzoi) Support"
162 depends on PXA_SHARPSL
163 select PXA27x
164 select PXA_SHARP_Cxx00
165
166config MACH_TOSA
167 bool "Enable Sharp SL-6000x (Tosa) Support"
168 depends on PXA_SHARPSL
169 select PXA25x
170 select PXA_HAVE_BOARD_IRQS
171
172config ARCH_VIPER
173 bool "Arcom/Eurotech VIPER SBC"
174 select PXA25x
175 select ISA
176 select I2C_GPIO
177 select HAVE_PWM
178 select PXA_HAVE_BOARD_IRQS
179 select PXA_HAVE_ISA_IRQS
180
181config ARCH_PXA_ESERIES
182 bool "PXA based Toshiba e-series PDAs"
183 select PXA25x
184 select PXA_HAVE_BOARD_IRQS
185
186config MACH_E330
187 bool "Toshiba e330"
188 default y
189 depends on ARCH_PXA_ESERIES
190 help
191 Say Y here if you intend to run this kernel on a Toshiba
192 e330 family PDA.
193
194config MACH_E350
195 bool "Toshiba e350"
196 default y
197 depends on ARCH_PXA_ESERIES
198 help
199 Say Y here if you intend to run this kernel on a Toshiba
200 e350 family PDA.
201
202config MACH_E740
203 bool "Toshiba e740"
204 default y
205 depends on ARCH_PXA_ESERIES
206 select FB_W100
207 help
208 Say Y here if you intend to run this kernel on a Toshiba
209 e740 family PDA.
210
211config MACH_E750
212 bool "Toshiba e750"
213 default y
214 depends on ARCH_PXA_ESERIES
215 select FB_W100
216 help
217 Say Y here if you intend to run this kernel on a Toshiba
218 e750 family PDA.
219
220config MACH_E400
221 bool "Toshiba e400"
222 default y
223 depends on ARCH_PXA_ESERIES
224 help 147 help
225 Say Y here if you intend to run this kernel on a Toshiba 148 PXA255 based Single Board Computer with SMC 91C111 ethernet chip and 64 MB of flash.
226 e400 family PDA. 149 Tuned for usage in Libera instruments for particle accelerators.
227
228config MACH_E800
229 bool "Toshiba e800"
230 default y
231 depends on ARCH_PXA_ESERIES
232 select FB_W100
233 help
234 Say Y here if you intend to run this kernel on a Toshiba
235 e800 family PDA.
236 150
237config TRIZEPS_PXA 151config TRIZEPS_PXA
238 bool "PXA based Keith und Koep Trizeps DIMM-Modules" 152 bool "PXA based Keith und Koep Trizeps DIMM-Modules"
239 153
240config MACH_H5000
241 bool "HP iPAQ h5000"
242 select PXA25x
243
244config MACH_TRIZEPS4 154config MACH_TRIZEPS4
245 bool "Keith und Koep Trizeps4 DIMM-Module" 155 bool "Keith und Koep Trizeps4 DIMM-Module"
246 depends on TRIZEPS_PXA 156 depends on TRIZEPS_PXA
@@ -274,13 +184,38 @@ config TRIZEPS_PCMCIA
274 help 184 help
275 Enable PCMCIA support for Trizeps modules 185 Enable PCMCIA support for Trizeps modules
276 186
277config MACH_EM_X270 187config MACH_LOGICPD_PXA270
278 bool "CompuLab EM-x270 platform" 188 bool "LogicPD PXA270 Card Engine Development Platform"
279 select PXA27x 189 select PXA27x
190 select HAVE_PWM
191 select PXA_HAVE_BOARD_IRQS
280 192
281config MACH_EXEDA 193config MACH_PCM027
282 bool "CompuLab eXeda platform" 194 bool "Phytec phyCORE-PXA270 CPU module (PCM-027)"
283 select PXA27x 195 select PXA27x
196 select IWMMXT
197 select PXA_SSP
198 select PXA_HAVE_BOARD_IRQS
199
200config MACH_PCM990_BASEBOARD
201 bool "PHYTEC PCM-990 development board"
202 select HAVE_PWM
203 depends on MACH_PCM027
204
205choice
206 prompt "display on pcm990"
207 depends on MACH_PCM990_BASEBOARD
208
209config PCM990_DISPLAY_SHARP
210 bool "sharp lq084v1dg21 stn display"
211
212config PCM990_DISPLAY_NEC
213 bool "nec nl6448bc20_18d tft display"
214
215config PCM990_DISPLAY_NONE
216 bool "no display"
217
218endchoice
284 219
285config MACH_COLIBRI 220config MACH_COLIBRI
286 bool "Toradex Colibri PXA270" 221 bool "Toradex Colibri PXA270"
@@ -290,45 +225,15 @@ config MACH_COLIBRI300
290 bool "Toradex Colibri PXA300/310" 225 bool "Toradex Colibri PXA300/310"
291 select PXA3xx 226 select PXA3xx
292 select CPU_PXA300 227 select CPU_PXA300
228 select CPU_PXA310
229 select HAVE_PWM
293 230
294config MACH_COLIBRI320 231config MACH_COLIBRI320
295 bool "Toradex Colibri PXA320" 232 bool "Toradex Colibri PXA320"
296 select PXA3xx 233 select PXA3xx
297 select CPU_PXA320 234 select CPU_PXA320
298 235
299config MACH_ZYLONITE 236comment "End-user Products (sorted by vendor name)"
300 bool "PXA3xx Development Platform (aka Zylonite)"
301 select PXA3xx
302 select PXA_SSP
303 select HAVE_PWM
304 select PXA_HAVE_BOARD_IRQS
305
306config MACH_LITTLETON
307 bool "PXA3xx Form Factor Platform (aka Littleton)"
308 select PXA3xx
309 select PXA_SSP
310
311config MACH_TAVOREVB
312 bool "PXA930 Evaluation Board (aka TavorEVB)"
313 select PXA3xx
314 select CPU_PXA930
315
316config MACH_SAAR
317 bool "PXA930 Handheld Platform (aka SAAR)"
318 select PXA3xx
319 select CPU_PXA930
320
321config MACH_ARMCORE
322 bool "CompuLab CM-X255/CM-X270 modules"
323 select PXA27x
324 select IWMMXT
325 select PXA25x
326 select PXA_SSP
327
328config MACH_CM_X300
329 bool "CompuLab CM-X300 modules"
330 select PXA3xx
331 select CPU_PXA300
332 237
333config MACH_H4700 238config MACH_H4700
334 bool "HP iPAQ hx4700" 239 bool "HP iPAQ hx4700"
@@ -338,6 +243,15 @@ config MACH_H4700
338 select HAVE_PWM 243 select HAVE_PWM
339 select PXA_HAVE_BOARD_IRQS 244 select PXA_HAVE_BOARD_IRQS
340 245
246config MACH_H5000
247 bool "HP iPAQ h5000"
248 select PXA25x
249
250config MACH_HIMALAYA
251 bool "HTC Himalaya Support"
252 select CPU_PXA26x
253 select FB_W100
254
341config MACH_MAGICIAN 255config MACH_MAGICIAN
342 bool "Enable HTC Magician Support" 256 bool "Enable HTC Magician Support"
343 select PXA27x 257 select PXA27x
@@ -346,11 +260,6 @@ config MACH_MAGICIAN
346 select HAVE_PWM 260 select HAVE_PWM
347 select PXA_HAVE_BOARD_IRQS 261 select PXA_HAVE_BOARD_IRQS
348 262
349config MACH_HIMALAYA
350 bool "HTC Himalaya Support"
351 select CPU_PXA26x
352 select FB_W100
353
354config MACH_MIOA701 263config MACH_MIOA701
355 bool "Mitac Mio A701 Support" 264 bool "Mitac Mio A701 Support"
356 select PXA27x 265 select PXA27x
@@ -362,13 +271,47 @@ config MACH_MIOA701
362 MIO A701. Currently there is only basic support 271 MIO A701. Currently there is only basic support
363 for this PDA. 272 for this PDA.
364 273
365config MACH_PCM027 274config PXA_EZX
366 bool "Phytec phyCORE-PXA270 CPU module (PCM-027)" 275 bool "Motorola EZX Platform"
367 select PXA27x 276 select PXA27x
368 select IWMMXT 277 select IWMMXT
369 select PXA_SSP 278 select HAVE_PWM
370 select PXA_HAVE_BOARD_IRQS 279 select PXA_HAVE_BOARD_IRQS
371 280
281config MACH_EZX_A780
282 bool "Motorola EZX A780"
283 default y
284 depends on PXA_EZX
285
286config MACH_EZX_E680
287 bool "Motorola EZX E680"
288 default y
289 depends on PXA_EZX
290
291config MACH_EZX_A1200
292 bool "Motorola EZX A1200"
293 default y
294 depends on PXA_EZX
295
296config MACH_EZX_A910
297 bool "Motorola EZX A910"
298 default y
299 depends on PXA_EZX
300
301config MACH_EZX_E6
302 bool "Motorola EZX E6"
303 default y
304 depends on PXA_EZX
305
306config MACH_EZX_E2
307 bool "Motorola EZX E2"
308 default y
309 depends on PXA_EZX
310
311config MACH_MP900C
312 bool "Nec Mobilepro 900/c"
313 select PXA25x
314
372config ARCH_PXA_PALM 315config ARCH_PXA_PALM
373 bool "PXA based Palm PDAs" 316 bool "PXA based Palm PDAs"
374 select HAVE_PWM 317 select HAVE_PWM
@@ -421,109 +364,172 @@ config MACH_PALMZ72
421 Say Y here if you intend to run this kernel on Palm Zire 72 364 Say Y here if you intend to run this kernel on Palm Zire 72
422 handheld computer. 365 handheld computer.
423 366
424config MACH_TREO680 367config MACH_PALMLD
425 bool "Palm Treo 680" 368 bool "Palm LifeDrive"
426 default y 369 default y
427 depends on ARCH_PXA_PALM 370 depends on ARCH_PXA_PALM
428 select PXA27x 371 select PXA27x
429 select IWMMXT 372 select IWMMXT
430 help 373 help
431 Say Y here if you intend to run this kernel on Palm Treo 680 374 Say Y here if you intend to run this kernel on a Palm LifeDrive
375 handheld computer.
376
377config PALM_TREO
378 bool
379 depends on ARCH_PXA_PALM
380
381config MACH_CENTRO
382 bool "Palm Centro 685 (GSM)"
383 default y
384 depends on ARCH_PXA_PALM
385 select PXA27x
386 select IWMMXT
387 select PALM_TREO
388 help
389 Say Y here if you intend to run this kernel on Palm Centro 685 (GSM)
432 smartphone. 390 smartphone.
433 391
434config MACH_PALMLD 392config MACH_TREO680
435 bool "Palm LifeDrive" 393 bool "Palm Treo 680"
436 default y 394 default y
437 depends on ARCH_PXA_PALM 395 depends on ARCH_PXA_PALM
438 select PXA27x 396 select PXA27x
439 select IWMMXT 397 select IWMMXT
398 select PALM_TREO
440 help 399 help
441 Say Y here if you intend to run this kernel on a Palm LifeDrive 400 Say Y here if you intend to run this kernel on Palm Treo 680
401 smartphone.
402
403config PXA_SHARPSL
404 bool "SHARP Zaurus SL-5600, SL-C7xx and SL-Cxx00 Models"
405 select SHARP_SCOOP
406 select SHARP_PARAM
407 help
408 Say Y here if you intend to run this kernel on a
409 Sharp Zaurus SL-5600 (Poodle), SL-C700 (Corgi),
410 SL-C750 (Shepherd), SL-C760 (Husky), SL-C1000 (Akita),
411 SL-C3000 (Spitz), SL-C3100 (Borzoi) or SL-C6000x (Tosa)
442 handheld computer. 412 handheld computer.
443 413
444config MACH_PCM990_BASEBOARD 414config SHARPSL_PM
445 bool "PHYTEC PCM-990 development board" 415 bool
446 select HAVE_PWM 416 select APM_EMULATION
447 depends on MACH_PCM027
448 417
449choice 418config CORGI_SSP_DEPRECATED
450 prompt "display on pcm990" 419 bool
451 depends on MACH_PCM990_BASEBOARD 420 select PXA_SSP
421 help
422 This option will include corgi_ssp.c and corgi_lcd.c
423 that corgi_ts.c and other legacy drivers (corgi_bl.c
424 and sharpsl_pm.c) may depend on.
452 425
453config PCM990_DISPLAY_SHARP 426config MACH_POODLE
454 bool "sharp lq084v1dg21 stn display" 427 bool "Enable Sharp SL-5600 (Poodle) Support"
428 depends on PXA_SHARPSL
429 select PXA25x
430 select SHARP_LOCOMO
431 select PXA_SSP
455 432
456config PCM990_DISPLAY_NEC 433config MACH_CORGI
457 bool "nec nl6448bc20_18d tft display" 434 bool "Enable Sharp SL-C700 (Corgi) Support"
435 depends on PXA_SHARPSL
436 select PXA25x
437 select PXA_SHARP_C7xx
458 438
459config PCM990_DISPLAY_NONE 439config MACH_SHEPHERD
460 bool "no display" 440 bool "Enable Sharp SL-C750 (Shepherd) Support"
441 depends on PXA_SHARPSL
442 select PXA25x
443 select PXA_SHARP_C7xx
461 444
462endchoice 445config MACH_HUSKY
446 bool "Enable Sharp SL-C760 (Husky) Support"
447 depends on PXA_SHARPSL
448 select PXA25x
449 select PXA_SHARP_C7xx
463 450
464config MACH_CSB726 451config MACH_AKITA
465 bool "Enable Cogent CSB726 System On a Module" 452 bool "Enable Sharp SL-1000 (Akita) Support"
453 depends on PXA_SHARPSL
466 select PXA27x 454 select PXA27x
467 select IWMMXT 455 select PXA_SHARP_Cxx00
468 help 456 select MACH_SPITZ
469 Say Y here if you intend to run this kernel on a Cogent 457 select I2C
470 CSB726 System On Module. 458 select I2C_PXA
471 459
472config CSB726_CSB701 460config MACH_SPITZ
473 bool "Enable supprot for CSB701 baseboard" 461 bool "Enable Sharp Zaurus SL-3000 (Spitz) Support"
474 depends on MACH_CSB726 462 depends on PXA_SHARPSL
463 select PXA27x
464 select PXA_SHARP_Cxx00
475 465
476config PXA_EZX 466config MACH_BORZOI
477 bool "Motorola EZX Platform" 467 bool "Enable Sharp Zaurus SL-3100 (Borzoi) Support"
468 depends on PXA_SHARPSL
478 select PXA27x 469 select PXA27x
479 select IWMMXT 470 select PXA_SHARP_Cxx00
480 select HAVE_PWM 471
472config MACH_TOSA
473 bool "Enable Sharp SL-6000x (Tosa) Support"
474 depends on PXA_SHARPSL
475 select PXA25x
481 select PXA_HAVE_BOARD_IRQS 476 select PXA_HAVE_BOARD_IRQS
482 477
483config MACH_EZX_A780 478config ARCH_PXA_ESERIES
484 bool "Motorola EZX A780" 479 bool "PXA based Toshiba e-series PDAs"
485 default y 480 select PXA25x
486 depends on PXA_EZX 481 select PXA_HAVE_BOARD_IRQS
487 482
488config MACH_EZX_E680 483config MACH_E330
489 bool "Motorola EZX E680" 484 bool "Toshiba e330"
490 default y 485 default y
491 depends on PXA_EZX 486 depends on ARCH_PXA_ESERIES
487 help
488 Say Y here if you intend to run this kernel on a Toshiba
489 e330 family PDA.
492 490
493config MACH_EZX_A1200 491config MACH_E350
494 bool "Motorola EZX A1200" 492 bool "Toshiba e350"
495 default y 493 default y
496 depends on PXA_EZX 494 depends on ARCH_PXA_ESERIES
495 help
496 Say Y here if you intend to run this kernel on a Toshiba
497 e350 family PDA.
497 498
498config MACH_EZX_A910 499config MACH_E740
499 bool "Motorola EZX A910" 500 bool "Toshiba e740"
500 default y 501 default y
501 depends on PXA_EZX 502 depends on ARCH_PXA_ESERIES
503 select FB_W100
504 help
505 Say Y here if you intend to run this kernel on a Toshiba
506 e740 family PDA.
502 507
503config MACH_EZX_E6 508config MACH_E750
504 bool "Motorola EZX E6" 509 bool "Toshiba e750"
505 default y 510 default y
506 depends on PXA_EZX 511 depends on ARCH_PXA_ESERIES
512 select FB_W100
513 help
514 Say Y here if you intend to run this kernel on a Toshiba
515 e750 family PDA.
507 516
508config MACH_EZX_E2 517config MACH_E400
509 bool "Motorola EZX E2" 518 bool "Toshiba e400"
510 default y 519 default y
511 depends on PXA_EZX 520 depends on ARCH_PXA_ESERIES
521 help
522 Say Y here if you intend to run this kernel on a Toshiba
523 e400 family PDA.
512 524
513config MACH_XCEP 525config MACH_E800
514 bool "Iskratel Electronics XCEP" 526 bool "Toshiba e800"
515 select PXA25x 527 default y
516 select MTD 528 depends on ARCH_PXA_ESERIES
517 select MTD_PARTITIONS 529 select FB_W100
518 select MTD_PHYSMAP
519 select MTD_CFI_INTELEXT
520 select MTD_CFI
521 select MTD_CHAR
522 select SMC91X
523 select PXA_SSP
524 help 530 help
525 PXA255 based Single Board Computer with SMC 91C111 ethernet chip and 64 MB of flash. 531 Say Y here if you intend to run this kernel on a Toshiba
526 Tuned for usage in Libera instruments for particle accelerators. 532 e800 family PDA.
527 533
528endmenu 534endmenu
529 535
@@ -551,6 +557,42 @@ config PXA3xx
551 help 557 help
552 Select code specific to PXA3xx variants 558 Select code specific to PXA3xx variants
553 559
560config CPU_PXA300
561 bool
562 select PXA3xx
563 help
564 PXA300 (codename Monahans-L)
565
566config CPU_PXA310
567 bool
568 select CPU_PXA300
569 help
570 PXA310 (codename Monahans-LV)
571
572config CPU_PXA320
573 bool
574 select PXA3xx
575 help
576 PXA320 (codename Monahans-P)
577
578config CPU_PXA930
579 bool
580 select PXA3xx
581 help
582 PXA930 (codename Tavor-P)
583
584config CPU_PXA935
585 bool
586 select CPU_PXA930
587 help
588 PXA935 (codename Tavor-P65)
589
590config CPU_PXA950
591 bool
592 select CPU_PXA930
593 help
594 PXA950 (codename Tavor-PV2)
595
554config PXA_SHARP_C7xx 596config PXA_SHARP_C7xx
555 bool 597 bool
556 select PXA_SSP 598 select PXA_SSP
diff --git a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile
index f10e152bfc27..b5d29e60a341 100644
--- a/arch/arm/mach-pxa/Makefile
+++ b/arch/arm/mach-pxa/Makefile
@@ -24,33 +24,63 @@ obj-$(CONFIG_CPU_PXA300) += pxa300.o
24obj-$(CONFIG_CPU_PXA320) += pxa320.o 24obj-$(CONFIG_CPU_PXA320) += pxa320.o
25obj-$(CONFIG_CPU_PXA930) += pxa930.o 25obj-$(CONFIG_CPU_PXA930) += pxa930.o
26 26
27# Specific board support 27# NOTE: keep the order of boards in accordance to their order in Kconfig
28obj-$(CONFIG_ARCH_GUMSTIX) += gumstix.o 28
29obj-$(CONFIG_GUMSTIX_AM200EPD) += am200epd.o 29# Intel/Marvell Dev Platforms
30obj-$(CONFIG_GUMSTIX_AM300EPD) += am300epd.o
31obj-$(CONFIG_ARCH_LUBBOCK) += lubbock.o 30obj-$(CONFIG_ARCH_LUBBOCK) += lubbock.o
32obj-$(CONFIG_MACH_LOGICPD_PXA270) += lpd270.o
33obj-$(CONFIG_MACH_MAINSTONE) += mainstone.o 31obj-$(CONFIG_MACH_MAINSTONE) += mainstone.o
34obj-$(CONFIG_MACH_BALLOON3) += balloon3.o 32obj-$(CONFIG_MACH_ZYLONITE300) += zylonite.o zylonite_pxa300.o
35obj-$(CONFIG_MACH_MP900C) += mp900.o 33obj-$(CONFIG_MACH_ZYLONITE320) += zylonite.o zylonite_pxa320.o
34obj-$(CONFIG_MACH_LITTLETON) += littleton.o
35obj-$(CONFIG_MACH_TAVOREVB) += tavorevb.o
36obj-$(CONFIG_MACH_SAAR) += saar.o
37
38# 3rd Party Dev Platforms
36obj-$(CONFIG_ARCH_PXA_IDP) += idp.o 39obj-$(CONFIG_ARCH_PXA_IDP) += idp.o
40obj-$(CONFIG_ARCH_VIPER) += viper.o
41obj-$(CONFIG_MACH_BALLOON3) += balloon3.o
42obj-$(CONFIG_MACH_CSB726) += csb726.o
43obj-$(CONFIG_CSB726_CSB701) += csb701.o
44obj-$(CONFIG_MACH_ARMCORE) += cm-x2xx.o cm-x255.o cm-x270.o
45ifeq ($(CONFIG_PCI),y)
46obj-$(CONFIG_MACH_ARMCORE) += cm-x2xx-pci.o
47endif
48obj-$(CONFIG_MACH_EM_X270) += em-x270.o
49obj-$(CONFIG_MACH_CM_X300) += cm-x300.o
50obj-$(CONFIG_ARCH_GUMSTIX) += gumstix.o
51obj-$(CONFIG_GUMSTIX_AM200EPD) += am200epd.o
52obj-$(CONFIG_GUMSTIX_AM300EPD) += am300epd.o
53obj-$(CONFIG_MACH_INTELMOTE2) += imote2.o
54obj-$(CONFIG_MACH_STARGATE2) += stargate2.o
55obj-$(CONFIG_MACH_XCEP) += xcep.o
37obj-$(CONFIG_MACH_TRIZEPS4) += trizeps4.o 56obj-$(CONFIG_MACH_TRIZEPS4) += trizeps4.o
57obj-$(CONFIG_MACH_LOGICPD_PXA270) += lpd270.o
58obj-$(CONFIG_MACH_PCM027) += pcm027.o
59obj-$(CONFIG_MACH_PCM990_BASEBOARD) += pcm990-baseboard.o
38obj-$(CONFIG_MACH_COLIBRI) += colibri-pxa270.o 60obj-$(CONFIG_MACH_COLIBRI) += colibri-pxa270.o
39obj-$(CONFIG_MACH_COLIBRI300) += colibri-pxa3xx.o colibri-pxa300.o 61obj-$(CONFIG_MACH_COLIBRI300) += colibri-pxa3xx.o colibri-pxa300.o
40obj-$(CONFIG_MACH_COLIBRI320) += colibri-pxa3xx.o colibri-pxa320.o 62obj-$(CONFIG_MACH_COLIBRI320) += colibri-pxa3xx.o colibri-pxa320.o
63
64# End-user Products
65obj-$(CONFIG_MACH_H4700) += hx4700.o
41obj-$(CONFIG_MACH_H5000) += h5000.o 66obj-$(CONFIG_MACH_H5000) += h5000.o
67obj-$(CONFIG_MACH_HIMALAYA) += himalaya.o
68obj-$(CONFIG_MACH_MAGICIAN) += magician.o
69obj-$(CONFIG_MACH_MIOA701) += mioa701.o mioa701_bootresume.o
70obj-$(CONFIG_PXA_EZX) += ezx.o
71obj-$(CONFIG_MACH_MP900C) += mp900.o
72obj-$(CONFIG_MACH_PALMTE2) += palmte2.o
73obj-$(CONFIG_MACH_PALMTC) += palmtc.o
74obj-$(CONFIG_MACH_PALMT5) += palmt5.o
75obj-$(CONFIG_MACH_PALMTX) += palmtx.o
76obj-$(CONFIG_MACH_PALMZ72) += palmz72.o
77obj-$(CONFIG_MACH_PALMLD) += palmld.o
78obj-$(CONFIG_PALM_TREO) += palmtreo.o
42obj-$(CONFIG_PXA_SHARP_C7xx) += corgi.o sharpsl_pm.o corgi_pm.o 79obj-$(CONFIG_PXA_SHARP_C7xx) += corgi.o sharpsl_pm.o corgi_pm.o
43obj-$(CONFIG_PXA_SHARP_Cxx00) += spitz.o sharpsl_pm.o spitz_pm.o 80obj-$(CONFIG_PXA_SHARP_Cxx00) += spitz.o sharpsl_pm.o spitz_pm.o
44obj-$(CONFIG_CORGI_SSP_DEPRECATED) += corgi_ssp.o corgi_lcd.o 81obj-$(CONFIG_CORGI_SSP_DEPRECATED) += corgi_ssp.o corgi_lcd.o
45obj-$(CONFIG_MACH_POODLE) += poodle.o 82obj-$(CONFIG_MACH_POODLE) += poodle.o
46obj-$(CONFIG_MACH_PCM027) += pcm027.o
47obj-$(CONFIG_MACH_PCM990_BASEBOARD) += pcm990-baseboard.o
48obj-$(CONFIG_MACH_TOSA) += tosa.o 83obj-$(CONFIG_MACH_TOSA) += tosa.o
49obj-$(CONFIG_MACH_EM_X270) += em-x270.o
50obj-$(CONFIG_MACH_H4700) += hx4700.o
51obj-$(CONFIG_MACH_MAGICIAN) += magician.o
52obj-$(CONFIG_MACH_HIMALAYA) += himalaya.o
53obj-$(CONFIG_MACH_MIOA701) += mioa701.o mioa701_bootresume.o
54obj-$(CONFIG_ARCH_PXA_ESERIES) += eseries.o 84obj-$(CONFIG_ARCH_PXA_ESERIES) += eseries.o
55obj-$(CONFIG_MACH_E330) += e330.o 85obj-$(CONFIG_MACH_E330) += e330.o
56obj-$(CONFIG_MACH_E350) += e350.o 86obj-$(CONFIG_MACH_E350) += e350.o
@@ -58,34 +88,6 @@ obj-$(CONFIG_MACH_E740) += e740.o
58obj-$(CONFIG_MACH_E750) += e750.o 88obj-$(CONFIG_MACH_E750) += e750.o
59obj-$(CONFIG_MACH_E400) += e400.o 89obj-$(CONFIG_MACH_E400) += e400.o
60obj-$(CONFIG_MACH_E800) += e800.o 90obj-$(CONFIG_MACH_E800) += e800.o
61obj-$(CONFIG_MACH_PALMTE2) += palmte2.o
62obj-$(CONFIG_MACH_PALMTC) += palmtc.o
63obj-$(CONFIG_MACH_PALMT5) += palmt5.o
64obj-$(CONFIG_MACH_PALMTX) += palmtx.o
65obj-$(CONFIG_MACH_PALMLD) += palmld.o
66obj-$(CONFIG_MACH_PALMZ72) += palmz72.o
67obj-$(CONFIG_MACH_TREO680) += treo680.o
68obj-$(CONFIG_ARCH_VIPER) += viper.o
69
70ifeq ($(CONFIG_MACH_ZYLONITE),y)
71 obj-y += zylonite.o
72 obj-$(CONFIG_CPU_PXA300) += zylonite_pxa300.o
73 obj-$(CONFIG_CPU_PXA320) += zylonite_pxa320.o
74endif
75obj-$(CONFIG_MACH_LITTLETON) += littleton.o
76obj-$(CONFIG_MACH_TAVOREVB) += tavorevb.o
77obj-$(CONFIG_MACH_SAAR) += saar.o
78
79obj-$(CONFIG_MACH_ARMCORE) += cm-x2xx.o cm-x255.o cm-x270.o
80obj-$(CONFIG_MACH_CM_X300) += cm-x300.o
81obj-$(CONFIG_PXA_EZX) += ezx.o
82
83obj-$(CONFIG_MACH_XCEP) += xcep.o
84
85obj-$(CONFIG_MACH_INTELMOTE2) += imote2.o
86obj-$(CONFIG_MACH_STARGATE2) += stargate2.o
87obj-$(CONFIG_MACH_CSB726) += csb726.o
88obj-$(CONFIG_CSB726_CSB701) += csb701.o
89 91
90# Support for blinky lights 92# Support for blinky lights
91led-y := leds.o 93led-y := leds.o
@@ -95,8 +97,4 @@ led-$(CONFIG_ARCH_PXA_IDP) += leds-idp.o
95 97
96obj-$(CONFIG_LEDS) += $(led-y) 98obj-$(CONFIG_LEDS) += $(led-y)
97 99
98ifeq ($(CONFIG_PCI),y)
99obj-$(CONFIG_MACH_ARMCORE) += cm-x2xx-pci.o
100endif
101
102obj-$(CONFIG_TOSA_BT) += tosa-bt.o 100obj-$(CONFIG_TOSA_BT) += tosa-bt.o
diff --git a/arch/arm/mach-pxa/balloon3.c b/arch/arm/mach-pxa/balloon3.c
index f23138b8fca3..b8cd07ca9380 100644
--- a/arch/arm/mach-pxa/balloon3.c
+++ b/arch/arm/mach-pxa/balloon3.c
@@ -306,6 +306,10 @@ static void __init balloon3_init(void)
306 */ 306 */
307 ARB_CNTRL = ARB_CORE_PARK | 0x234; 307 ARB_CNTRL = ARB_CORE_PARK | 0x234;
308 308
309 pxa_set_ffuart_info(NULL);
310 pxa_set_btuart_info(NULL);
311 pxa_set_stuart_info(NULL);
312
309 pxa_set_i2c_info(NULL); 313 pxa_set_i2c_info(NULL);
310 if (balloon3_has(BALLOON3_FEATURE_AUDIO)) 314 if (balloon3_has(BALLOON3_FEATURE_AUDIO))
311 pxa_set_ac97_info(NULL); 315 pxa_set_ac97_info(NULL);
diff --git a/arch/arm/mach-pxa/cm-x2xx.c b/arch/arm/mach-pxa/cm-x2xx.c
index b50ef39eabfc..bff6e78f033d 100644
--- a/arch/arm/mach-pxa/cm-x2xx.c
+++ b/arch/arm/mach-pxa/cm-x2xx.c
@@ -453,6 +453,10 @@ static inline void cmx2xx_init_ac97(void) {}
453 453
454static void __init cmx2xx_init(void) 454static void __init cmx2xx_init(void)
455{ 455{
456 pxa_set_ffuart_info(NULL);
457 pxa_set_btuart_info(NULL);
458 pxa_set_stuart_info(NULL);
459
456 cmx2xx_pm_init(); 460 cmx2xx_pm_init();
457 461
458 if (cpu_is_pxa25x()) 462 if (cpu_is_pxa25x())
diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c
index 102916f1e465..d37cfa132a65 100644
--- a/arch/arm/mach-pxa/cm-x300.c
+++ b/arch/arm/mach-pxa/cm-x300.c
@@ -3,9 +3,10 @@
3 * 3 *
4 * Support for the CompuLab CM-X300 modules 4 * Support for the CompuLab CM-X300 modules
5 * 5 *
6 * Copyright (C) 2008 CompuLab Ltd. 6 * Copyright (C) 2008,2009 CompuLab Ltd.
7 * 7 *
8 * Mike Rapoport <mike@compulab.co.il> 8 * Mike Rapoport <mike@compulab.co.il>
9 * Igor Grinberg <grinberg@compulab.co.il>
9 * 10 *
10 * This program is free software; you can redistribute it and/or modify 11 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as 12 * it under the terms of the GNU General Public License version 2 as
@@ -16,30 +17,41 @@
16#include <linux/kernel.h> 17#include <linux/kernel.h>
17#include <linux/interrupt.h> 18#include <linux/interrupt.h>
18#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/delay.h>
19#include <linux/platform_device.h> 21#include <linux/platform_device.h>
20 22
21#include <linux/gpio.h> 23#include <linux/gpio.h>
22#include <linux/dm9000.h> 24#include <linux/dm9000.h>
23#include <linux/leds.h> 25#include <linux/leds.h>
24#include <linux/rtc-v3020.h> 26#include <linux/rtc-v3020.h>
27#include <linux/pwm_backlight.h>
25 28
26#include <linux/i2c.h> 29#include <linux/i2c.h>
27#include <linux/i2c/pca953x.h> 30#include <linux/i2c/pca953x.h>
28 31
32#include <linux/mfd/da903x.h>
33
34#include <linux/spi/spi.h>
35#include <linux/spi/spi_gpio.h>
36#include <linux/spi/tdo24m.h>
37
29#include <asm/mach-types.h> 38#include <asm/mach-types.h>
30#include <asm/mach/arch.h> 39#include <asm/mach/arch.h>
31#include <asm/setup.h> 40#include <asm/setup.h>
32 41
33#include <mach/pxa300.h> 42#include <mach/pxa300.h>
43#include <mach/pxa27x-udc.h>
34#include <mach/pxafb.h> 44#include <mach/pxafb.h>
35#include <mach/mmc.h> 45#include <mach/mmc.h>
36#include <mach/ohci.h> 46#include <mach/ohci.h>
37#include <plat/i2c.h> 47#include <plat/i2c.h>
38#include <mach/pxa3xx_nand.h> 48#include <plat/pxa3xx_nand.h>
49#include <mach/audio.h>
39 50
40#include <asm/mach/map.h> 51#include <asm/mach/map.h>
41 52
42#include "generic.h" 53#include "generic.h"
54#include "devices.h"
43 55
44#define CM_X300_ETH_PHYS 0x08000010 56#define CM_X300_ETH_PHYS 0x08000010
45 57
@@ -53,7 +65,7 @@
53#define GPIO97_RTC_RD (97) 65#define GPIO97_RTC_RD (97)
54#define GPIO98_RTC_IO (98) 66#define GPIO98_RTC_IO (98)
55 67
56static mfp_cfg_t cm_x300_mfp_cfg[] __initdata = { 68static mfp_cfg_t cm_x3xx_mfp_cfg[] __initdata = {
57 /* LCD */ 69 /* LCD */
58 GPIO54_LCD_LDD_0, 70 GPIO54_LCD_LDD_0,
59 GPIO55_LCD_LDD_1, 71 GPIO55_LCD_LDD_1,
@@ -137,7 +149,6 @@ static mfp_cfg_t cm_x300_mfp_cfg[] __initdata = {
137 GPIO36_UART1_DTR, 149 GPIO36_UART1_DTR,
138 150
139 /* GPIOs */ 151 /* GPIOs */
140 GPIO79_GPIO, /* LED */
141 GPIO82_GPIO | MFP_PULL_HIGH, /* MMC CD */ 152 GPIO82_GPIO | MFP_PULL_HIGH, /* MMC CD */
142 GPIO85_GPIO, /* MMC WP */ 153 GPIO85_GPIO, /* MMC WP */
143 GPIO99_GPIO, /* Ethernet IRQ */ 154 GPIO99_GPIO, /* Ethernet IRQ */
@@ -151,6 +162,50 @@ static mfp_cfg_t cm_x300_mfp_cfg[] __initdata = {
151 /* Standard I2C */ 162 /* Standard I2C */
152 GPIO21_I2C_SCL, 163 GPIO21_I2C_SCL,
153 GPIO22_I2C_SDA, 164 GPIO22_I2C_SDA,
165
166 /* PWM Backlight */
167 GPIO19_PWM2_OUT,
168};
169
170static mfp_cfg_t cm_x3xx_rev_lt130_mfp_cfg[] __initdata = {
171 /* GPIOs */
172 GPIO79_GPIO, /* LED */
173 GPIO77_GPIO, /* WiFi reset */
174 GPIO78_GPIO, /* BT reset */
175};
176
177static mfp_cfg_t cm_x3xx_rev_ge130_mfp_cfg[] __initdata = {
178 /* GPIOs */
179 GPIO76_GPIO, /* LED */
180 GPIO71_GPIO, /* WiFi reset */
181 GPIO70_GPIO, /* BT reset */
182};
183
184static mfp_cfg_t cm_x310_mfp_cfg[] __initdata = {
185 /* USB PORT 2 */
186 ULPI_STP,
187 ULPI_NXT,
188 ULPI_DIR,
189 GPIO30_ULPI_DATA_OUT_0,
190 GPIO31_ULPI_DATA_OUT_1,
191 GPIO32_ULPI_DATA_OUT_2,
192 GPIO33_ULPI_DATA_OUT_3,
193 GPIO34_ULPI_DATA_OUT_4,
194 GPIO35_ULPI_DATA_OUT_5,
195 GPIO36_ULPI_DATA_OUT_6,
196 GPIO37_ULPI_DATA_OUT_7,
197 GPIO38_ULPI_CLK,
198 /* external PHY reset pin */
199 GPIO127_GPIO,
200
201 /* USB PORT 3 */
202 GPIO77_USB_P3_1,
203 GPIO78_USB_P3_2,
204 GPIO79_USB_P3_3,
205 GPIO80_USB_P3_4,
206 GPIO81_USB_P3_5,
207 GPIO82_USB_P3_6,
208 GPIO0_2_USBH_PEN,
154}; 209};
155 210
156#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE) 211#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
@@ -195,17 +250,18 @@ static void __init cm_x300_init_dm9000(void)
195static inline void cm_x300_init_dm9000(void) {} 250static inline void cm_x300_init_dm9000(void) {}
196#endif 251#endif
197 252
253/* LCD */
198#if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE) 254#if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
199static struct pxafb_mode_info cm_x300_lcd_modes[] = { 255static struct pxafb_mode_info cm_x300_lcd_modes[] = {
200 [0] = { 256 [0] = {
201 .pixclock = 38000, 257 .pixclock = 38250,
202 .bpp = 16, 258 .bpp = 16,
203 .xres = 480, 259 .xres = 480,
204 .yres = 640, 260 .yres = 640,
205 .hsync_len = 8, 261 .hsync_len = 8,
206 .vsync_len = 2, 262 .vsync_len = 2,
207 .left_margin = 8, 263 .left_margin = 8,
208 .upper_margin = 0, 264 .upper_margin = 2,
209 .right_margin = 24, 265 .right_margin = 24,
210 .lower_margin = 4, 266 .lower_margin = 4,
211 .cmap_greyscale = 0, 267 .cmap_greyscale = 0,
@@ -227,7 +283,7 @@ static struct pxafb_mode_info cm_x300_lcd_modes[] = {
227 283
228static struct pxafb_mach_info cm_x300_lcd = { 284static struct pxafb_mach_info cm_x300_lcd = {
229 .modes = cm_x300_lcd_modes, 285 .modes = cm_x300_lcd_modes,
230 .num_modes = 2, 286 .num_modes = ARRAY_SIZE(cm_x300_lcd_modes),
231 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL, 287 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
232}; 288};
233 289
@@ -239,6 +295,87 @@ static void __init cm_x300_init_lcd(void)
239static inline void cm_x300_init_lcd(void) {} 295static inline void cm_x300_init_lcd(void) {}
240#endif 296#endif
241 297
298#if defined(CONFIG_BACKLIGHT_PWM) || defined(CONFIG_BACKLIGHT_PWM_MODULE)
299static struct platform_pwm_backlight_data cm_x300_backlight_data = {
300 .pwm_id = 2,
301 .max_brightness = 100,
302 .dft_brightness = 100,
303 .pwm_period_ns = 10000,
304};
305
306static struct platform_device cm_x300_backlight_device = {
307 .name = "pwm-backlight",
308 .dev = {
309 .parent = &pxa27x_device_pwm0.dev,
310 .platform_data = &cm_x300_backlight_data,
311 },
312};
313
314static void cm_x300_init_bl(void)
315{
316 platform_device_register(&cm_x300_backlight_device);
317}
318#else
319static inline void cm_x300_init_bl(void) {}
320#endif
321
322#if defined(CONFIG_SPI_GPIO) || defined(CONFIG_SPI_GPIO_MODULE)
323#define GPIO_LCD_BASE (144)
324#define GPIO_LCD_DIN (GPIO_LCD_BASE + 8) /* aux_gpio3_0 */
325#define GPIO_LCD_DOUT (GPIO_LCD_BASE + 9) /* aux_gpio3_1 */
326#define GPIO_LCD_SCL (GPIO_LCD_BASE + 10) /* aux_gpio3_2 */
327#define GPIO_LCD_CS (GPIO_LCD_BASE + 11) /* aux_gpio3_3 */
328#define LCD_SPI_BUS_NUM (1)
329
330static struct spi_gpio_platform_data cm_x300_spi_gpio_pdata = {
331 .sck = GPIO_LCD_SCL,
332 .mosi = GPIO_LCD_DIN,
333 .miso = GPIO_LCD_DOUT,
334 .num_chipselect = 1,
335};
336
337static struct platform_device cm_x300_spi_gpio = {
338 .name = "spi_gpio",
339 .id = LCD_SPI_BUS_NUM,
340 .dev = {
341 .platform_data = &cm_x300_spi_gpio_pdata,
342 },
343};
344
345static struct tdo24m_platform_data cm_x300_tdo24m_pdata = {
346 .model = TDO35S,
347};
348
349static struct spi_board_info cm_x300_spi_devices[] __initdata = {
350 {
351 .modalias = "tdo24m",
352 .max_speed_hz = 1000000,
353 .bus_num = LCD_SPI_BUS_NUM,
354 .chip_select = 0,
355 .controller_data = (void *) GPIO_LCD_CS,
356 .platform_data = &cm_x300_tdo24m_pdata,
357 },
358};
359
360static void __init cm_x300_init_spi(void)
361{
362 spi_register_board_info(cm_x300_spi_devices,
363 ARRAY_SIZE(cm_x300_spi_devices));
364 platform_device_register(&cm_x300_spi_gpio);
365}
366#else
367static inline void cm_x300_init_spi(void) {}
368#endif
369
370#if defined(CONFIG_SND_PXA2XX_LIB_AC97)
371static void __init cm_x300_init_ac97(void)
372{
373 pxa_set_ac97_info(NULL);
374}
375#else
376static inline void cm_x300_init_ac97(void) {}
377#endif
378
242#if defined(CONFIG_MTD_NAND_PXA3xx) || defined(CONFIG_MTD_NAND_PXA3xx_MODULE) 379#if defined(CONFIG_MTD_NAND_PXA3xx) || defined(CONFIG_MTD_NAND_PXA3xx_MODULE)
243static struct mtd_partition cm_x300_nand_partitions[] = { 380static struct mtd_partition cm_x300_nand_partitions[] = {
244 [0] = { 381 [0] = {
@@ -333,9 +470,19 @@ static inline void cm_x300_init_mmc(void) {}
333#endif 470#endif
334 471
335#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) 472#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
473static int cm_x300_ohci_init(struct device *dev)
474{
475 if (cpu_is_pxa300())
476 UP2OCR = UP2OCR_HXS
477 | UP2OCR_HXOE | UP2OCR_DMPDE | UP2OCR_DPPDE;
478
479 return 0;
480}
481
336static struct pxaohci_platform_data cm_x300_ohci_platform_data = { 482static struct pxaohci_platform_data cm_x300_ohci_platform_data = {
337 .port_mode = PMM_PERPORT_MODE, 483 .port_mode = PMM_PERPORT_MODE,
338 .flags = ENABLE_PORT1 | ENABLE_PORT2 | POWER_CONTROL_LOW, 484 .flags = ENABLE_PORT_ALL | POWER_CONTROL_LOW,
485 .init = cm_x300_ohci_init,
339}; 486};
340 487
341static void __init cm_x300_init_ohci(void) 488static void __init cm_x300_init_ohci(void)
@@ -351,7 +498,6 @@ static struct gpio_led cm_x300_leds[] = {
351 [0] = { 498 [0] = {
352 .name = "cm-x300:green", 499 .name = "cm-x300:green",
353 .default_trigger = "heartbeat", 500 .default_trigger = "heartbeat",
354 .gpio = 79,
355 .active_low = 1, 501 .active_low = 1,
356 }, 502 },
357}; 503};
@@ -371,6 +517,11 @@ static struct platform_device cm_x300_led_device = {
371 517
372static void __init cm_x300_init_leds(void) 518static void __init cm_x300_init_leds(void)
373{ 519{
520 if (system_rev < 130)
521 cm_x300_leds[0].gpio = 79;
522 else
523 cm_x300_leds[0].gpio = 76;
524
374 platform_device_register(&cm_x300_led_device); 525 platform_device_register(&cm_x300_led_device);
375} 526}
376#else 527#else
@@ -433,11 +584,94 @@ static void __init cm_x300_init_rtc(void)
433static inline void cm_x300_init_rtc(void) {} 584static inline void cm_x300_init_rtc(void) {}
434#endif 585#endif
435 586
436static void __init cm_x300_init(void) 587/* DA9030 */
588struct da903x_subdev_info cm_x300_da9030_subdevs[] = {
589 {
590 .name = "da903x-backlight",
591 .id = DA9030_ID_WLED,
592 }
593};
594
595static struct da903x_platform_data cm_x300_da9030_info = {
596 .num_subdevs = ARRAY_SIZE(cm_x300_da9030_subdevs),
597 .subdevs = cm_x300_da9030_subdevs,
598};
599
600static struct i2c_board_info cm_x300_pmic_info = {
601 I2C_BOARD_INFO("da9030", 0x49),
602 .irq = IRQ_GPIO(0),
603 .platform_data = &cm_x300_da9030_info,
604};
605
606static struct i2c_pxa_platform_data cm_x300_pwr_i2c_info = {
607 .use_pio = 1,
608};
609
610static void __init cm_x300_init_da9030(void)
611{
612 pxa3xx_set_i2c_power_info(&cm_x300_pwr_i2c_info);
613 i2c_register_board_info(1, &cm_x300_pmic_info, 1);
614}
615
616static void __init cm_x300_init_wi2wi(void)
617{
618 int bt_reset, wlan_en;
619 int err;
620
621 if (system_rev < 130) {
622 wlan_en = 77;
623 bt_reset = 78;
624 } else {
625 wlan_en = 71;
626 bt_reset = 70;
627 }
628
629 /* Libertas and CSR reset */
630 err = gpio_request(wlan_en, "wlan en");
631 if (err) {
632 pr_err("CM-X300: failed to request wlan en gpio: %d\n", err);
633 } else {
634 gpio_direction_output(wlan_en, 1);
635 gpio_free(wlan_en);
636 }
637
638 err = gpio_request(bt_reset, "bt reset");
639 if (err) {
640 pr_err("CM-X300: failed to request bt reset gpio: %d\n", err);
641 } else {
642 gpio_direction_output(bt_reset, 1);
643 udelay(10);
644 gpio_set_value(bt_reset, 0);
645 udelay(10);
646 gpio_set_value(bt_reset, 1);
647 gpio_free(bt_reset);
648 }
649}
650
651/* MFP */
652static void __init cm_x300_init_mfp(void)
437{ 653{
438 /* board-processor specific GPIO initialization */ 654 /* board-processor specific GPIO initialization */
439 pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x300_mfp_cfg)); 655 pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x3xx_mfp_cfg));
656
657 if (system_rev < 130)
658 pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x3xx_rev_lt130_mfp_cfg));
659 else
660 pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x3xx_rev_ge130_mfp_cfg));
661
662 if (cpu_is_pxa310())
663 pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x310_mfp_cfg));
664}
665
666static void __init cm_x300_init(void)
667{
668 cm_x300_init_mfp();
669
670 pxa_set_ffuart_info(NULL);
671 pxa_set_btuart_info(NULL);
672 pxa_set_stuart_info(NULL);
440 673
674 cm_x300_init_da9030();
441 cm_x300_init_dm9000(); 675 cm_x300_init_dm9000();
442 cm_x300_init_lcd(); 676 cm_x300_init_lcd();
443 cm_x300_init_ohci(); 677 cm_x300_init_ohci();
@@ -445,7 +679,11 @@ static void __init cm_x300_init(void)
445 cm_x300_init_nand(); 679 cm_x300_init_nand();
446 cm_x300_init_leds(); 680 cm_x300_init_leds();
447 cm_x300_init_i2c(); 681 cm_x300_init_i2c();
682 cm_x300_init_spi();
448 cm_x300_init_rtc(); 683 cm_x300_init_rtc();
684 cm_x300_init_ac97();
685 cm_x300_init_wi2wi();
686 cm_x300_init_bl();
449} 687}
450 688
451static void __init cm_x300_fixup(struct machine_desc *mdesc, struct tag *tags, 689static void __init cm_x300_fixup(struct machine_desc *mdesc, struct tag *tags,
diff --git a/arch/arm/mach-pxa/colibri-pxa270.c b/arch/arm/mach-pxa/colibri-pxa270.c
index 01bcfaae75bc..061c45316de8 100644
--- a/arch/arm/mach-pxa/colibri-pxa270.c
+++ b/arch/arm/mach-pxa/colibri-pxa270.c
@@ -130,6 +130,9 @@ static struct platform_device *colibri_pxa270_devices[] __initdata = {
130static void __init colibri_pxa270_init(void) 130static void __init colibri_pxa270_init(void)
131{ 131{
132 pxa2xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa270_pin_config)); 132 pxa2xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa270_pin_config));
133 pxa_set_ffuart_info(NULL);
134 pxa_set_btuart_info(NULL);
135 pxa_set_stuart_info(NULL);
133 platform_add_devices(ARRAY_AND_SIZE(colibri_pxa270_devices)); 136 platform_add_devices(ARRAY_AND_SIZE(colibri_pxa270_devices));
134} 137}
135 138
diff --git a/arch/arm/mach-pxa/colibri-pxa300.c b/arch/arm/mach-pxa/colibri-pxa300.c
index 37c239c56568..45c23fd6df31 100644
--- a/arch/arm/mach-pxa/colibri-pxa300.c
+++ b/arch/arm/mach-pxa/colibri-pxa300.c
@@ -170,6 +170,10 @@ static inline void colibri_pxa310_init_ac97(void) {}
170 170
171void __init colibri_pxa300_init(void) 171void __init colibri_pxa300_init(void)
172{ 172{
173 pxa_set_ffuart_info(NULL);
174 pxa_set_btuart_info(NULL);
175 pxa_set_stuart_info(NULL);
176
173 colibri_pxa300_init_eth(); 177 colibri_pxa300_init_eth();
174 colibri_pxa300_init_ohci(); 178 colibri_pxa300_init_ohci();
175 colibri_pxa3xx_init_nand(); 179 colibri_pxa3xx_init_nand();
diff --git a/arch/arm/mach-pxa/colibri-pxa320.c b/arch/arm/mach-pxa/colibri-pxa320.c
index ec0e14b96682..ae835fad7d10 100644
--- a/arch/arm/mach-pxa/colibri-pxa320.c
+++ b/arch/arm/mach-pxa/colibri-pxa320.c
@@ -199,6 +199,10 @@ static void __init colibri_pxa320_init_uart(void)
199 199
200void __init colibri_pxa320_init(void) 200void __init colibri_pxa320_init(void)
201{ 201{
202 pxa_set_ffuart_info(NULL);
203 pxa_set_btuart_info(NULL);
204 pxa_set_stuart_info(NULL);
205
202 colibri_pxa320_init_eth(); 206 colibri_pxa320_init_eth();
203 colibri_pxa320_init_ohci(); 207 colibri_pxa320_init_ohci();
204 colibri_pxa3xx_init_nand(); 208 colibri_pxa3xx_init_nand();
diff --git a/arch/arm/mach-pxa/colibri-pxa3xx.c b/arch/arm/mach-pxa/colibri-pxa3xx.c
index efebaf4d734d..e6c0a2287eb8 100644
--- a/arch/arm/mach-pxa/colibri-pxa3xx.c
+++ b/arch/arm/mach-pxa/colibri-pxa3xx.c
@@ -25,7 +25,7 @@
25#include <mach/colibri.h> 25#include <mach/colibri.h>
26#include <mach/mmc.h> 26#include <mach/mmc.h>
27#include <mach/pxafb.h> 27#include <mach/pxafb.h>
28#include <mach/pxa3xx_nand.h> 28#include <plat/pxa3xx_nand.h>
29 29
30#include "generic.h" 30#include "generic.h"
31#include "devices.h" 31#include "devices.h"
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c
index b536b5a5a10d..74446cf8ae69 100644
--- a/arch/arm/mach-pxa/corgi.c
+++ b/arch/arm/mach-pxa/corgi.c
@@ -671,6 +671,10 @@ static void __init corgi_init(void)
671 671
672 pxa2xx_mfp_config(ARRAY_AND_SIZE(corgi_pin_config)); 672 pxa2xx_mfp_config(ARRAY_AND_SIZE(corgi_pin_config));
673 673
674 pxa_set_ffuart_info(NULL);
675 pxa_set_btuart_info(NULL);
676 pxa_set_stuart_info(NULL);
677
674 corgi_init_spi(); 678 corgi_init_spi();
675 679
676 pxa_set_udc_info(&udc_info); 680 pxa_set_udc_info(&udc_info);
diff --git a/arch/arm/mach-pxa/corgi_pm.c b/arch/arm/mach-pxa/corgi_pm.c
index a093282fe4db..d4a0733e905b 100644
--- a/arch/arm/mach-pxa/corgi_pm.c
+++ b/arch/arm/mach-pxa/corgi_pm.c
@@ -214,8 +214,8 @@ static struct sharpsl_charger_machinfo corgi_pm_machinfo = {
214 .fatal_acin_volt = SHARPSL_FATAL_ACIN_VOLT, 214 .fatal_acin_volt = SHARPSL_FATAL_ACIN_VOLT,
215 .fatal_noacin_volt= SHARPSL_FATAL_NOACIN_VOLT, 215 .fatal_noacin_volt= SHARPSL_FATAL_NOACIN_VOLT,
216 .bat_levels = 40, 216 .bat_levels = 40,
217 .bat_levels_noac = spitz_battery_levels_noac, 217 .bat_levels_noac = sharpsl_battery_levels_noac,
218 .bat_levels_acin = spitz_battery_levels_acin, 218 .bat_levels_acin = sharpsl_battery_levels_acin,
219 .status_high_acin = 188, 219 .status_high_acin = 188,
220 .status_low_acin = 178, 220 .status_low_acin = 178,
221 .status_high_noac = 185, 221 .status_high_noac = 185,
diff --git a/arch/arm/mach-pxa/csb726.c b/arch/arm/mach-pxa/csb726.c
index 965480eb4fe6..88575b87bd33 100644
--- a/arch/arm/mach-pxa/csb726.c
+++ b/arch/arm/mach-pxa/csb726.c
@@ -268,6 +268,9 @@ static void __init csb726_init(void)
268/* MSC2 = 0x06697ff4; *//* none/SM501 */ 268/* MSC2 = 0x06697ff4; *//* none/SM501 */
269 MSC2 = (MSC2 & ~0xffff) | 0x7ff4; /* SM501 */ 269 MSC2 = (MSC2 & ~0xffff) | 0x7ff4; /* SM501 */
270 270
271 pxa_set_ffuart_info(NULL);
272 pxa_set_btuart_info(NULL);
273 pxa_set_stuart_info(NULL);
271 pxa_set_i2c_info(NULL); 274 pxa_set_i2c_info(NULL);
272 pxa27x_set_i2c_power_info(NULL); 275 pxa27x_set_i2c_power_info(NULL);
273 pxa_set_mci_info(&csb726_mci); 276 pxa_set_mci_info(&csb726_mci);
diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c
index 46fabe1cca11..3395463bb5a6 100644
--- a/arch/arm/mach-pxa/devices.c
+++ b/arch/arm/mach-pxa/devices.c
@@ -4,17 +4,18 @@
4#include <linux/platform_device.h> 4#include <linux/platform_device.h>
5#include <linux/dma-mapping.h> 5#include <linux/dma-mapping.h>
6 6
7#include <mach/hardware.h>
7#include <mach/udc.h> 8#include <mach/udc.h>
8#include <mach/pxafb.h> 9#include <mach/pxafb.h>
9#include <mach/mmc.h> 10#include <mach/mmc.h>
10#include <mach/irda.h> 11#include <mach/irda.h>
11#include <plat/i2c.h>
12#include <mach/ohci.h> 12#include <mach/ohci.h>
13#include <mach/pxa27x_keypad.h> 13#include <mach/pxa27x_keypad.h>
14#include <mach/pxa2xx_spi.h> 14#include <mach/pxa2xx_spi.h>
15#include <mach/camera.h> 15#include <mach/camera.h>
16#include <mach/audio.h> 16#include <mach/audio.h>
17#include <mach/pxa3xx_nand.h> 17#include <plat/i2c.h>
18#include <plat/pxa3xx_nand.h>
18 19
19#include "devices.h" 20#include "devices.h"
20#include "generic.h" 21#include "generic.h"
@@ -167,13 +168,18 @@ static struct resource pxa_resource_ffuart[] = {
167 } 168 }
168}; 169};
169 170
170struct platform_device pxa_device_ffuart= { 171struct platform_device pxa_device_ffuart = {
171 .name = "pxa2xx-uart", 172 .name = "pxa2xx-uart",
172 .id = 0, 173 .id = 0,
173 .resource = pxa_resource_ffuart, 174 .resource = pxa_resource_ffuart,
174 .num_resources = ARRAY_SIZE(pxa_resource_ffuart), 175 .num_resources = ARRAY_SIZE(pxa_resource_ffuart),
175}; 176};
176 177
178void __init pxa_set_ffuart_info(void *info)
179{
180 pxa_register_device(&pxa_device_ffuart, info);
181}
182
177static struct resource pxa_resource_btuart[] = { 183static struct resource pxa_resource_btuart[] = {
178 { 184 {
179 .start = 0x40200000, 185 .start = 0x40200000,
@@ -193,6 +199,11 @@ struct platform_device pxa_device_btuart = {
193 .num_resources = ARRAY_SIZE(pxa_resource_btuart), 199 .num_resources = ARRAY_SIZE(pxa_resource_btuart),
194}; 200};
195 201
202void __init pxa_set_btuart_info(void *info)
203{
204 pxa_register_device(&pxa_device_btuart, info);
205}
206
196static struct resource pxa_resource_stuart[] = { 207static struct resource pxa_resource_stuart[] = {
197 { 208 {
198 .start = 0x40700000, 209 .start = 0x40700000,
@@ -212,6 +223,11 @@ struct platform_device pxa_device_stuart = {
212 .num_resources = ARRAY_SIZE(pxa_resource_stuart), 223 .num_resources = ARRAY_SIZE(pxa_resource_stuart),
213}; 224};
214 225
226void __init pxa_set_stuart_info(void *info)
227{
228 pxa_register_device(&pxa_device_stuart, info);
229}
230
215static struct resource pxa_resource_hwuart[] = { 231static struct resource pxa_resource_hwuart[] = {
216 { 232 {
217 .start = 0x41600000, 233 .start = 0x41600000,
@@ -231,6 +247,14 @@ struct platform_device pxa_device_hwuart = {
231 .num_resources = ARRAY_SIZE(pxa_resource_hwuart), 247 .num_resources = ARRAY_SIZE(pxa_resource_hwuart),
232}; 248};
233 249
250void __init pxa_set_hwuart_info(void *info)
251{
252 if (cpu_is_pxa255())
253 pxa_register_device(&pxa_device_hwuart, info);
254 else
255 pr_info("UART: Ignoring attempt to register HWUART on non-PXA255 hardware");
256}
257
234static struct resource pxai2c_resources[] = { 258static struct resource pxai2c_resources[] = {
235 { 259 {
236 .start = 0x40301680, 260 .start = 0x40301680,
diff --git a/arch/arm/mach-pxa/e330.c b/arch/arm/mach-pxa/e330.c
index 74d3f8987c5c..8fde3387279d 100644
--- a/arch/arm/mach-pxa/e330.c
+++ b/arch/arm/mach-pxa/e330.c
@@ -55,6 +55,9 @@ static struct platform_device *devices[] __initdata = {
55 55
56static void __init e330_init(void) 56static void __init e330_init(void)
57{ 57{
58 pxa_set_ffuart_info(NULL);
59 pxa_set_btuart_info(NULL);
60 pxa_set_stuart_info(NULL);
58 eseries_register_clks(); 61 eseries_register_clks();
59 eseries_get_tmio_gpios(); 62 eseries_get_tmio_gpios();
60 platform_add_devices(devices, ARRAY_SIZE(devices)); 63 platform_add_devices(devices, ARRAY_SIZE(devices));
diff --git a/arch/arm/mach-pxa/e350.c b/arch/arm/mach-pxa/e350.c
index 080036272131..f50f055f5720 100644
--- a/arch/arm/mach-pxa/e350.c
+++ b/arch/arm/mach-pxa/e350.c
@@ -56,6 +56,9 @@ static struct platform_device *devices[] __initdata = {
56 56
57static void __init e350_init(void) 57static void __init e350_init(void)
58{ 58{
59 pxa_set_ffuart_info(NULL);
60 pxa_set_btuart_info(NULL);
61 pxa_set_stuart_info(NULL);
59 eseries_register_clks(); 62 eseries_register_clks();
60 eseries_get_tmio_gpios(); 63 eseries_get_tmio_gpios();
61 platform_add_devices(devices, ARRAY_SIZE(devices)); 64 platform_add_devices(devices, ARRAY_SIZE(devices));
diff --git a/arch/arm/mach-pxa/e400.c b/arch/arm/mach-pxa/e400.c
index ed9c0c3f64a2..55b950f12844 100644
--- a/arch/arm/mach-pxa/e400.c
+++ b/arch/arm/mach-pxa/e400.c
@@ -130,6 +130,9 @@ static struct platform_device *devices[] __initdata = {
130static void __init e400_init(void) 130static void __init e400_init(void)
131{ 131{
132 pxa2xx_mfp_config(ARRAY_AND_SIZE(e400_pin_config)); 132 pxa2xx_mfp_config(ARRAY_AND_SIZE(e400_pin_config));
133 pxa_set_ffuart_info(NULL);
134 pxa_set_btuart_info(NULL);
135 pxa_set_stuart_info(NULL);
133 /* Fixme - e400 may have a switched clock */ 136 /* Fixme - e400 may have a switched clock */
134 eseries_register_clks(); 137 eseries_register_clks();
135 eseries_get_tmio_gpios(); 138 eseries_get_tmio_gpios();
diff --git a/arch/arm/mach-pxa/e740.c b/arch/arm/mach-pxa/e740.c
index 49acdfa6650d..94b23a9e3877 100644
--- a/arch/arm/mach-pxa/e740.c
+++ b/arch/arm/mach-pxa/e740.c
@@ -192,6 +192,9 @@ static struct platform_device *devices[] __initdata = {
192static void __init e740_init(void) 192static void __init e740_init(void)
193{ 193{
194 pxa2xx_mfp_config(ARRAY_AND_SIZE(e740_pin_config)); 194 pxa2xx_mfp_config(ARRAY_AND_SIZE(e740_pin_config));
195 pxa_set_ffuart_info(NULL);
196 pxa_set_btuart_info(NULL);
197 pxa_set_stuart_info(NULL);
195 eseries_register_clks(); 198 eseries_register_clks();
196 clk_add_alias("CLK_CK48M", e740_t7l66xb_device.name, 199 clk_add_alias("CLK_CK48M", e740_t7l66xb_device.name,
197 "UDCCLK", &pxa25x_device_udc.dev), 200 "UDCCLK", &pxa25x_device_udc.dev),
diff --git a/arch/arm/mach-pxa/e750.c b/arch/arm/mach-pxa/e750.c
index 4052ece3ef49..5eccbce73a33 100644
--- a/arch/arm/mach-pxa/e750.c
+++ b/arch/arm/mach-pxa/e750.c
@@ -194,6 +194,9 @@ static struct platform_device *devices[] __initdata = {
194static void __init e750_init(void) 194static void __init e750_init(void)
195{ 195{
196 pxa2xx_mfp_config(ARRAY_AND_SIZE(e750_pin_config)); 196 pxa2xx_mfp_config(ARRAY_AND_SIZE(e750_pin_config));
197 pxa_set_ffuart_info(NULL);
198 pxa_set_btuart_info(NULL);
199 pxa_set_stuart_info(NULL);
197 clk_add_alias("CLK_CK3P6MI", e750_tc6393xb_device.name, 200 clk_add_alias("CLK_CK3P6MI", e750_tc6393xb_device.name,
198 "GPIO11_CLK", NULL), 201 "GPIO11_CLK", NULL),
199 eseries_get_tmio_gpios(); 202 eseries_get_tmio_gpios();
diff --git a/arch/arm/mach-pxa/e800.c b/arch/arm/mach-pxa/e800.c
index 9866c7b9e784..aad129bed199 100644
--- a/arch/arm/mach-pxa/e800.c
+++ b/arch/arm/mach-pxa/e800.c
@@ -195,6 +195,9 @@ static struct platform_device *devices[] __initdata = {
195 195
196static void __init e800_init(void) 196static void __init e800_init(void)
197{ 197{
198 pxa_set_ffuart_info(NULL);
199 pxa_set_btuart_info(NULL);
200 pxa_set_stuart_info(NULL);
198 clk_add_alias("CLK_CK3P6MI", e800_tc6393xb_device.name, 201 clk_add_alias("CLK_CK3P6MI", e800_tc6393xb_device.name,
199 "GPIO11_CLK", NULL), 202 "GPIO11_CLK", NULL),
200 eseries_get_tmio_gpios(); 203 eseries_get_tmio_gpios();
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c
index aec7f4214b14..1c0de808b54d 100644
--- a/arch/arm/mach-pxa/em-x270.c
+++ b/arch/arm/mach-pxa/em-x270.c
@@ -967,7 +967,7 @@ static inline void em_x270_init_gpio_keys(void) {}
967#if defined(CONFIG_VIDEO_PXA27x) || defined(CONFIG_VIDEO_PXA27x_MODULE) 967#if defined(CONFIG_VIDEO_PXA27x) || defined(CONFIG_VIDEO_PXA27x_MODULE)
968static struct regulator *em_x270_camera_ldo; 968static struct regulator *em_x270_camera_ldo;
969 969
970static int em_x270_sensor_init(struct device *dev) 970static int em_x270_sensor_init(void)
971{ 971{
972 int ret; 972 int ret;
973 973
@@ -996,7 +996,6 @@ static int em_x270_sensor_init(struct device *dev)
996} 996}
997 997
998struct pxacamera_platform_data em_x270_camera_platform_data = { 998struct pxacamera_platform_data em_x270_camera_platform_data = {
999 .init = em_x270_sensor_init,
1000 .flags = PXA_CAMERA_MASTER | PXA_CAMERA_DATAWIDTH_8 | 999 .flags = PXA_CAMERA_MASTER | PXA_CAMERA_DATAWIDTH_8 |
1001 PXA_CAMERA_PCLK_EN | PXA_CAMERA_MCLK_EN, 1000 PXA_CAMERA_PCLK_EN | PXA_CAMERA_MCLK_EN,
1002 .mclk_10khz = 2600, 1001 .mclk_10khz = 2600,
@@ -1049,8 +1048,10 @@ static struct platform_device em_x270_camera = {
1049 1048
1050static void __init em_x270_init_camera(void) 1049static void __init em_x270_init_camera(void)
1051{ 1050{
1052 pxa_set_camera_info(&em_x270_camera_platform_data); 1051 if (em_x270_sensor_init() == 0) {
1053 platform_device_register(&em_x270_camera); 1052 pxa_set_camera_info(&em_x270_camera_platform_data);
1053 platform_device_register(&em_x270_camera);
1054 }
1054} 1055}
1055#else 1056#else
1056static inline void em_x270_init_camera(void) {} 1057static inline void em_x270_init_camera(void) {}
@@ -1286,6 +1287,10 @@ static void __init em_x270_init(void)
1286{ 1287{
1287 pxa2xx_mfp_config(ARRAY_AND_SIZE(common_pin_config)); 1288 pxa2xx_mfp_config(ARRAY_AND_SIZE(common_pin_config));
1288 1289
1290 pxa_set_ffuart_info(NULL);
1291 pxa_set_btuart_info(NULL);
1292 pxa_set_stuart_info(NULL);
1293
1289#ifdef CONFIG_PM 1294#ifdef CONFIG_PM
1290 pxa27x_set_pwrmode(PWRMODE_DEEPSLEEP); 1295 pxa27x_set_pwrmode(PWRMODE_DEEPSLEEP);
1291#endif 1296#endif
diff --git a/arch/arm/mach-pxa/ezx.c b/arch/arm/mach-pxa/ezx.c
index 588b265e5755..626c82b13970 100644
--- a/arch/arm/mach-pxa/ezx.c
+++ b/arch/arm/mach-pxa/ezx.c
@@ -17,7 +17,11 @@
17#include <linux/delay.h> 17#include <linux/delay.h>
18#include <linux/pwm_backlight.h> 18#include <linux/pwm_backlight.h>
19#include <linux/input.h> 19#include <linux/input.h>
20#include <linux/gpio.h>
20#include <linux/gpio_keys.h> 21#include <linux/gpio_keys.h>
22#include <linux/leds-lp3944.h>
23
24#include <media/soc_camera.h>
21 25
22#include <asm/setup.h> 26#include <asm/setup.h>
23#include <asm/mach-types.h> 27#include <asm/mach-types.h>
@@ -29,6 +33,7 @@
29#include <plat/i2c.h> 33#include <plat/i2c.h>
30#include <mach/hardware.h> 34#include <mach/hardware.h>
31#include <mach/pxa27x_keypad.h> 35#include <mach/pxa27x_keypad.h>
36#include <mach/camera.h>
32 37
33#include "devices.h" 38#include "devices.h"
34#include "generic.h" 39#include "generic.h"
@@ -38,6 +43,9 @@
38#define GPIO15_A910_FLIP_LID 15 43#define GPIO15_A910_FLIP_LID 15
39#define GPIO12_E680_LOCK_SWITCH 12 44#define GPIO12_E680_LOCK_SWITCH 12
40#define GPIO15_E6_LOCK_SWITCH 15 45#define GPIO15_E6_LOCK_SWITCH 15
46#define GPIO50_nCAM_EN 50
47#define GPIO19_GEN1_CAM_RST 19
48#define GPIO28_GEN2_CAM_RST 28
41 49
42static struct platform_pwm_backlight_data ezx_backlight_data = { 50static struct platform_pwm_backlight_data ezx_backlight_data = {
43 .pwm_id = 0, 51 .pwm_id = 0,
@@ -191,8 +199,8 @@ static unsigned long gen1_pin_config[] __initdata = {
191 GPIO94_CIF_DD_5, 199 GPIO94_CIF_DD_5,
192 GPIO17_CIF_DD_6, 200 GPIO17_CIF_DD_6,
193 GPIO108_CIF_DD_7, 201 GPIO108_CIF_DD_7,
194 GPIO50_GPIO, /* CAM_EN */ 202 GPIO50_GPIO | MFP_LPM_DRIVE_HIGH, /* CAM_EN */
195 GPIO19_GPIO, /* CAM_RST */ 203 GPIO19_GPIO | MFP_LPM_DRIVE_HIGH, /* CAM_RST */
196 204
197 /* EMU */ 205 /* EMU */
198 GPIO120_GPIO, /* EMU_MUX1 */ 206 GPIO120_GPIO, /* EMU_MUX1 */
@@ -248,8 +256,8 @@ static unsigned long gen2_pin_config[] __initdata = {
248 GPIO48_CIF_DD_5, 256 GPIO48_CIF_DD_5,
249 GPIO93_CIF_DD_6, 257 GPIO93_CIF_DD_6,
250 GPIO12_CIF_DD_7, 258 GPIO12_CIF_DD_7,
251 GPIO50_GPIO, /* CAM_EN */ 259 GPIO50_GPIO | MFP_LPM_DRIVE_HIGH, /* CAM_EN */
252 GPIO28_GPIO, /* CAM_RST */ 260 GPIO28_GPIO | MFP_LPM_DRIVE_HIGH, /* CAM_RST */
253 GPIO17_GPIO, /* CAM_FLASH */ 261 GPIO17_GPIO, /* CAM_FLASH */
254}; 262};
255#endif 263#endif
@@ -683,6 +691,81 @@ static struct platform_device a780_gpio_keys = {
683 }, 691 },
684}; 692};
685 693
694/* camera */
695static int a780_camera_init(void)
696{
697 int err;
698
699 /*
700 * GPIO50_nCAM_EN is active low
701 * GPIO19_GEN1_CAM_RST is active on rising edge
702 */
703 err = gpio_request(GPIO50_nCAM_EN, "nCAM_EN");
704 if (err) {
705 pr_err("%s: Failed to request nCAM_EN\n", __func__);
706 goto fail;
707 }
708
709 err = gpio_request(GPIO19_GEN1_CAM_RST, "CAM_RST");
710 if (err) {
711 pr_err("%s: Failed to request CAM_RST\n", __func__);
712 goto fail_gpio_cam_rst;
713 }
714
715 gpio_direction_output(GPIO50_nCAM_EN, 1);
716 gpio_direction_output(GPIO19_GEN1_CAM_RST, 0);
717
718 return 0;
719
720fail_gpio_cam_rst:
721 gpio_free(GPIO50_nCAM_EN);
722fail:
723 return err;
724}
725
726static int a780_camera_power(struct device *dev, int on)
727{
728 gpio_set_value(GPIO50_nCAM_EN, !on);
729 return 0;
730}
731
732static int a780_camera_reset(struct device *dev)
733{
734 gpio_set_value(GPIO19_GEN1_CAM_RST, 0);
735 msleep(10);
736 gpio_set_value(GPIO19_GEN1_CAM_RST, 1);
737
738 return 0;
739}
740
741struct pxacamera_platform_data a780_pxacamera_platform_data = {
742 .flags = PXA_CAMERA_MASTER | PXA_CAMERA_DATAWIDTH_8 |
743 PXA_CAMERA_PCLK_EN | PXA_CAMERA_MCLK_EN,
744 .mclk_10khz = 5000,
745};
746
747static struct i2c_board_info a780_camera_i2c_board_info = {
748 I2C_BOARD_INFO("mt9m111", 0x5d),
749};
750
751static struct soc_camera_link a780_iclink = {
752 .bus_id = 0,
753 .flags = SOCAM_SENSOR_INVERT_PCLK,
754 .i2c_adapter_id = 0,
755 .board_info = &a780_camera_i2c_board_info,
756 .module_name = "mt9m111",
757 .power = a780_camera_power,
758 .reset = a780_camera_reset,
759};
760
761static struct platform_device a780_camera = {
762 .name = "soc-camera-pdrv",
763 .id = 0,
764 .dev = {
765 .platform_data = &a780_iclink,
766 },
767};
768
686static struct platform_device *a780_devices[] __initdata = { 769static struct platform_device *a780_devices[] __initdata = {
687 &a780_gpio_keys, 770 &a780_gpio_keys,
688}; 771};
@@ -693,12 +776,21 @@ static void __init a780_init(void)
693 pxa2xx_mfp_config(ARRAY_AND_SIZE(gen1_pin_config)); 776 pxa2xx_mfp_config(ARRAY_AND_SIZE(gen1_pin_config));
694 pxa2xx_mfp_config(ARRAY_AND_SIZE(a780_pin_config)); 777 pxa2xx_mfp_config(ARRAY_AND_SIZE(a780_pin_config));
695 778
779 pxa_set_ffuart_info(NULL);
780 pxa_set_btuart_info(NULL);
781 pxa_set_stuart_info(NULL);
782
696 pxa_set_i2c_info(NULL); 783 pxa_set_i2c_info(NULL);
697 784
698 set_pxa_fb_info(&ezx_fb_info_1); 785 set_pxa_fb_info(&ezx_fb_info_1);
699 786
700 pxa_set_keypad_info(&a780_keypad_platform_data); 787 pxa_set_keypad_info(&a780_keypad_platform_data);
701 788
789 if (a780_camera_init() == 0) {
790 pxa_set_camera_info(&a780_pxacamera_platform_data);
791 platform_device_register(&a780_camera);
792 }
793
702 platform_add_devices(ARRAY_AND_SIZE(ezx_devices)); 794 platform_add_devices(ARRAY_AND_SIZE(ezx_devices));
703 platform_add_devices(ARRAY_AND_SIZE(a780_devices)); 795 platform_add_devices(ARRAY_AND_SIZE(a780_devices));
704} 796}
@@ -754,6 +846,10 @@ static void __init e680_init(void)
754 pxa2xx_mfp_config(ARRAY_AND_SIZE(gen1_pin_config)); 846 pxa2xx_mfp_config(ARRAY_AND_SIZE(gen1_pin_config));
755 pxa2xx_mfp_config(ARRAY_AND_SIZE(e680_pin_config)); 847 pxa2xx_mfp_config(ARRAY_AND_SIZE(e680_pin_config));
756 848
849 pxa_set_ffuart_info(NULL);
850 pxa_set_btuart_info(NULL);
851 pxa_set_stuart_info(NULL);
852
757 pxa_set_i2c_info(NULL); 853 pxa_set_i2c_info(NULL);
758 i2c_register_board_info(0, ARRAY_AND_SIZE(e680_i2c_board_info)); 854 i2c_register_board_info(0, ARRAY_AND_SIZE(e680_i2c_board_info));
759 855
@@ -816,6 +912,10 @@ static void __init a1200_init(void)
816 pxa2xx_mfp_config(ARRAY_AND_SIZE(gen2_pin_config)); 912 pxa2xx_mfp_config(ARRAY_AND_SIZE(gen2_pin_config));
817 pxa2xx_mfp_config(ARRAY_AND_SIZE(a1200_pin_config)); 913 pxa2xx_mfp_config(ARRAY_AND_SIZE(a1200_pin_config));
818 914
915 pxa_set_ffuart_info(NULL);
916 pxa_set_btuart_info(NULL);
917 pxa_set_stuart_info(NULL);
918
819 pxa_set_i2c_info(NULL); 919 pxa_set_i2c_info(NULL);
820 i2c_register_board_info(0, ARRAY_AND_SIZE(a1200_i2c_board_info)); 920 i2c_register_board_info(0, ARRAY_AND_SIZE(a1200_i2c_board_info));
821 921
@@ -864,6 +964,131 @@ static struct platform_device a910_gpio_keys = {
864 }, 964 },
865}; 965};
866 966
967/* camera */
968static int a910_camera_init(void)
969{
970 int err;
971
972 /*
973 * GPIO50_nCAM_EN is active low
974 * GPIO28_GEN2_CAM_RST is active on rising edge
975 */
976 err = gpio_request(GPIO50_nCAM_EN, "nCAM_EN");
977 if (err) {
978 pr_err("%s: Failed to request nCAM_EN\n", __func__);
979 goto fail;
980 }
981
982 err = gpio_request(GPIO28_GEN2_CAM_RST, "CAM_RST");
983 if (err) {
984 pr_err("%s: Failed to request CAM_RST\n", __func__);
985 goto fail_gpio_cam_rst;
986 }
987
988 gpio_direction_output(GPIO50_nCAM_EN, 1);
989 gpio_direction_output(GPIO28_GEN2_CAM_RST, 0);
990
991 return 0;
992
993fail_gpio_cam_rst:
994 gpio_free(GPIO50_nCAM_EN);
995fail:
996 return err;
997}
998
999static int a910_camera_power(struct device *dev, int on)
1000{
1001 gpio_set_value(GPIO50_nCAM_EN, !on);
1002 return 0;
1003}
1004
1005static int a910_camera_reset(struct device *dev)
1006{
1007 gpio_set_value(GPIO28_GEN2_CAM_RST, 0);
1008 msleep(10);
1009 gpio_set_value(GPIO28_GEN2_CAM_RST, 1);
1010
1011 return 0;
1012}
1013
1014struct pxacamera_platform_data a910_pxacamera_platform_data = {
1015 .flags = PXA_CAMERA_MASTER | PXA_CAMERA_DATAWIDTH_8 |
1016 PXA_CAMERA_PCLK_EN | PXA_CAMERA_MCLK_EN,
1017 .mclk_10khz = 5000,
1018};
1019
1020static struct i2c_board_info a910_camera_i2c_board_info = {
1021 I2C_BOARD_INFO("mt9m111", 0x5d),
1022};
1023
1024static struct soc_camera_link a910_iclink = {
1025 .bus_id = 0,
1026 .i2c_adapter_id = 0,
1027 .board_info = &a910_camera_i2c_board_info,
1028 .module_name = "mt9m111",
1029 .power = a910_camera_power,
1030 .reset = a910_camera_reset,
1031};
1032
1033static struct platform_device a910_camera = {
1034 .name = "soc-camera-pdrv",
1035 .id = 0,
1036 .dev = {
1037 .platform_data = &a910_iclink,
1038 },
1039};
1040
1041/* leds-lp3944 */
1042static struct lp3944_platform_data a910_lp3944_leds = {
1043 .leds_size = LP3944_LEDS_MAX,
1044 .leds = {
1045 [0] = {
1046 .name = "a910:red:",
1047 .status = LP3944_LED_STATUS_OFF,
1048 .type = LP3944_LED_TYPE_LED,
1049 },
1050 [1] = {
1051 .name = "a910:green:",
1052 .status = LP3944_LED_STATUS_OFF,
1053 .type = LP3944_LED_TYPE_LED,
1054 },
1055 [2] {
1056 .name = "a910:blue:",
1057 .status = LP3944_LED_STATUS_OFF,
1058 .type = LP3944_LED_TYPE_LED,
1059 },
1060 /* Leds 3 and 4 are used as display power switches */
1061 [3] = {
1062 .name = "a910::cli_display",
1063 .status = LP3944_LED_STATUS_OFF,
1064 .type = LP3944_LED_TYPE_LED_INVERTED
1065 },
1066 [4] = {
1067 .name = "a910::main_display",
1068 .status = LP3944_LED_STATUS_ON,
1069 .type = LP3944_LED_TYPE_LED_INVERTED
1070 },
1071 [5] = { .type = LP3944_LED_TYPE_NONE },
1072 [6] = {
1073 .name = "a910::torch",
1074 .status = LP3944_LED_STATUS_OFF,
1075 .type = LP3944_LED_TYPE_LED,
1076 },
1077 [7] = {
1078 .name = "a910::flash",
1079 .status = LP3944_LED_STATUS_OFF,
1080 .type = LP3944_LED_TYPE_LED_INVERTED,
1081 },
1082 },
1083};
1084
1085static struct i2c_board_info __initdata a910_i2c_board_info[] = {
1086 {
1087 I2C_BOARD_INFO("lp3944", 0x60),
1088 .platform_data = &a910_lp3944_leds,
1089 },
1090};
1091
867static struct platform_device *a910_devices[] __initdata = { 1092static struct platform_device *a910_devices[] __initdata = {
868 &a910_gpio_keys, 1093 &a910_gpio_keys,
869}; 1094};
@@ -874,12 +1099,22 @@ static void __init a910_init(void)
874 pxa2xx_mfp_config(ARRAY_AND_SIZE(gen2_pin_config)); 1099 pxa2xx_mfp_config(ARRAY_AND_SIZE(gen2_pin_config));
875 pxa2xx_mfp_config(ARRAY_AND_SIZE(a910_pin_config)); 1100 pxa2xx_mfp_config(ARRAY_AND_SIZE(a910_pin_config));
876 1101
1102 pxa_set_ffuart_info(NULL);
1103 pxa_set_btuart_info(NULL);
1104 pxa_set_stuart_info(NULL);
1105
877 pxa_set_i2c_info(NULL); 1106 pxa_set_i2c_info(NULL);
1107 i2c_register_board_info(0, ARRAY_AND_SIZE(a910_i2c_board_info));
878 1108
879 set_pxa_fb_info(&ezx_fb_info_2); 1109 set_pxa_fb_info(&ezx_fb_info_2);
880 1110
881 pxa_set_keypad_info(&a910_keypad_platform_data); 1111 pxa_set_keypad_info(&a910_keypad_platform_data);
882 1112
1113 if (a910_camera_init() == 0) {
1114 pxa_set_camera_info(&a910_pxacamera_platform_data);
1115 platform_device_register(&a910_camera);
1116 }
1117
883 platform_add_devices(ARRAY_AND_SIZE(ezx_devices)); 1118 platform_add_devices(ARRAY_AND_SIZE(ezx_devices));
884 platform_add_devices(ARRAY_AND_SIZE(a910_devices)); 1119 platform_add_devices(ARRAY_AND_SIZE(a910_devices));
885} 1120}
@@ -935,6 +1170,10 @@ static void __init e6_init(void)
935 pxa2xx_mfp_config(ARRAY_AND_SIZE(gen2_pin_config)); 1170 pxa2xx_mfp_config(ARRAY_AND_SIZE(gen2_pin_config));
936 pxa2xx_mfp_config(ARRAY_AND_SIZE(e6_pin_config)); 1171 pxa2xx_mfp_config(ARRAY_AND_SIZE(e6_pin_config));
937 1172
1173 pxa_set_ffuart_info(NULL);
1174 pxa_set_btuart_info(NULL);
1175 pxa_set_stuart_info(NULL);
1176
938 pxa_set_i2c_info(NULL); 1177 pxa_set_i2c_info(NULL);
939 i2c_register_board_info(0, ARRAY_AND_SIZE(e6_i2c_board_info)); 1178 i2c_register_board_info(0, ARRAY_AND_SIZE(e6_i2c_board_info));
940 1179
@@ -971,6 +1210,10 @@ static void __init e2_init(void)
971 pxa2xx_mfp_config(ARRAY_AND_SIZE(gen2_pin_config)); 1210 pxa2xx_mfp_config(ARRAY_AND_SIZE(gen2_pin_config));
972 pxa2xx_mfp_config(ARRAY_AND_SIZE(e2_pin_config)); 1211 pxa2xx_mfp_config(ARRAY_AND_SIZE(e2_pin_config));
973 1212
1213 pxa_set_ffuart_info(NULL);
1214 pxa_set_btuart_info(NULL);
1215 pxa_set_stuart_info(NULL);
1216
974 pxa_set_i2c_info(NULL); 1217 pxa_set_i2c_info(NULL);
975 i2c_register_board_info(0, ARRAY_AND_SIZE(e2_i2c_board_info)); 1218 i2c_register_board_info(0, ARRAY_AND_SIZE(e2_i2c_board_info));
976 1219
diff --git a/arch/arm/mach-pxa/generic.h b/arch/arm/mach-pxa/generic.h
index 485fede83d97..890fb90a672f 100644
--- a/arch/arm/mach-pxa/generic.h
+++ b/arch/arm/mach-pxa/generic.h
@@ -67,3 +67,8 @@ extern struct sysdev_class pxa_irq_sysclass;
67extern struct sysdev_class pxa_gpio_sysclass; 67extern struct sysdev_class pxa_gpio_sysclass;
68extern struct sysdev_class pxa2xx_mfp_sysclass; 68extern struct sysdev_class pxa2xx_mfp_sysclass;
69extern struct sysdev_class pxa3xx_mfp_sysclass; 69extern struct sysdev_class pxa3xx_mfp_sysclass;
70
71void __init pxa_set_ffuart_info(void *info);
72void __init pxa_set_btuart_info(void *info);
73void __init pxa_set_stuart_info(void *info);
74void __init pxa_set_hwuart_info(void *info);
diff --git a/arch/arm/mach-pxa/gumstix.c b/arch/arm/mach-pxa/gumstix.c
index 1708c0109844..96c345129135 100644
--- a/arch/arm/mach-pxa/gumstix.c
+++ b/arch/arm/mach-pxa/gumstix.c
@@ -211,6 +211,11 @@ static void __init gumstix_init(void)
211{ 211{
212 pxa2xx_mfp_config(ARRAY_AND_SIZE(gumstix_pin_config)); 212 pxa2xx_mfp_config(ARRAY_AND_SIZE(gumstix_pin_config));
213 213
214 pxa_set_ffuart_info(NULL);
215 pxa_set_btuart_info(NULL);
216 pxa_set_stuart_info(NULL);
217 pxa_set_hwuart_info(NULL);
218
214 gumstix_bluetooth_init(); 219 gumstix_bluetooth_init();
215 gumstix_udc_init(); 220 gumstix_udc_init();
216 gumstix_mmc_init(); 221 gumstix_mmc_init();
diff --git a/arch/arm/mach-pxa/h5000.c b/arch/arm/mach-pxa/h5000.c
index f3d220c32e07..c1cab0871c99 100644
--- a/arch/arm/mach-pxa/h5000.c
+++ b/arch/arm/mach-pxa/h5000.c
@@ -193,6 +193,9 @@ static void __init h5000_init(void)
193 fix_msc(); 193 fix_msc();
194 194
195 pxa2xx_mfp_config(ARRAY_AND_SIZE(h5000_pin_config)); 195 pxa2xx_mfp_config(ARRAY_AND_SIZE(h5000_pin_config));
196 pxa_set_ffuart_info(NULL);
197 pxa_set_btuart_info(NULL);
198 pxa_set_stuart_info(NULL);
196 pxa_set_udc_info(&h5000_udc_mach_info); 199 pxa_set_udc_info(&h5000_udc_mach_info);
197 platform_add_devices(ARRAY_AND_SIZE(devices)); 200 platform_add_devices(ARRAY_AND_SIZE(devices));
198} 201}
diff --git a/arch/arm/mach-pxa/himalaya.c b/arch/arm/mach-pxa/himalaya.c
index cea99fe65b97..f9a2e4b0f090 100644
--- a/arch/arm/mach-pxa/himalaya.c
+++ b/arch/arm/mach-pxa/himalaya.c
@@ -150,6 +150,9 @@ static void __init himalaya_lcd_init(void)
150 150
151static void __init himalaya_init(void) 151static void __init himalaya_init(void)
152{ 152{
153 pxa_set_ffuart_info(NULL);
154 pxa_set_btuart_info(NULL);
155 pxa_set_stuart_info(NULL);
153 himalaya_lcd_init(); 156 himalaya_lcd_init();
154 platform_add_devices(devices, ARRAY_SIZE(devices)); 157 platform_add_devices(devices, ARRAY_SIZE(devices));
155} 158}
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c
index 83bd3c6e3884..848c861dd23f 100644
--- a/arch/arm/mach-pxa/hx4700.c
+++ b/arch/arm/mach-pxa/hx4700.c
@@ -820,6 +820,7 @@ static struct platform_device *devices[] __initdata = {
820 &gpio_keys, 820 &gpio_keys,
821 &backlight, 821 &backlight,
822 &w3220, 822 &w3220,
823 &hx4700_lcd,
823 &egpio, 824 &egpio,
824 &bq24022, 825 &bq24022,
825 &gpio_vbus, 826 &gpio_vbus,
@@ -849,6 +850,10 @@ static void __init hx4700_init(void)
849 pxa2xx_mfp_config(ARRAY_AND_SIZE(hx4700_pin_config)); 850 pxa2xx_mfp_config(ARRAY_AND_SIZE(hx4700_pin_config));
850 hx4700_gpio_request(ARRAY_AND_SIZE(global_gpios)); 851 hx4700_gpio_request(ARRAY_AND_SIZE(global_gpios));
851 852
853 pxa_set_ffuart_info(NULL);
854 pxa_set_btuart_info(NULL);
855 pxa_set_stuart_info(NULL);
856
852 platform_add_devices(devices, ARRAY_SIZE(devices)); 857 platform_add_devices(devices, ARRAY_SIZE(devices));
853 858
854 pxa_set_ficp_info(&ficp_info); 859 pxa_set_ficp_info(&ficp_info);
diff --git a/arch/arm/mach-pxa/idp.c b/arch/arm/mach-pxa/idp.c
index b6486ef20b17..5c9e11d74f49 100644
--- a/arch/arm/mach-pxa/idp.c
+++ b/arch/arm/mach-pxa/idp.c
@@ -179,6 +179,9 @@ static void __init idp_init(void)
179 printk("idp_init()\n"); 179 printk("idp_init()\n");
180 180
181 pxa2xx_mfp_config(ARRAY_AND_SIZE(idp_pin_config)); 181 pxa2xx_mfp_config(ARRAY_AND_SIZE(idp_pin_config));
182 pxa_set_ffuart_info(NULL);
183 pxa_set_btuart_info(NULL);
184 pxa_set_stuart_info(NULL);
182 185
183 platform_device_register(&smc91x_device); 186 platform_device_register(&smc91x_device);
184 //platform_device_register(&mst_audio_device); 187 //platform_device_register(&mst_audio_device);
diff --git a/arch/arm/mach-pxa/imote2.c b/arch/arm/mach-pxa/imote2.c
index 2a4945db31c5..5b0862df61ab 100644
--- a/arch/arm/mach-pxa/imote2.c
+++ b/arch/arm/mach-pxa/imote2.c
@@ -554,8 +554,12 @@ static struct i2c_pxa_platform_data i2c_pdata = {
554 554
555static void __init imote2_init(void) 555static void __init imote2_init(void)
556{ 556{
557
558 pxa2xx_mfp_config(ARRAY_AND_SIZE(imote2_pin_config)); 557 pxa2xx_mfp_config(ARRAY_AND_SIZE(imote2_pin_config));
558
559 pxa_set_ffuart_info(NULL);
560 pxa_set_btuart_info(NULL);
561 pxa_set_stuart_info(NULL);
562
559 /* SPI chip select directions - all other directions should 563 /* SPI chip select directions - all other directions should
560 * be handled by drivers.*/ 564 * be handled by drivers.*/
561 gpio_direction_output(37, 0); 565 gpio_direction_output(37, 0);
diff --git a/arch/arm/mach-pxa/include/mach/hardware.h b/arch/arm/mach-pxa/include/mach/hardware.h
index aa3d9f70a08a..50f1297bf5ac 100644
--- a/arch/arm/mach-pxa/include/mach/hardware.h
+++ b/arch/arm/mach-pxa/include/mach/hardware.h
@@ -105,6 +105,7 @@
105 * 105 *
106 * PXA935 A0 0x56056931 0x1E653013 106 * PXA935 A0 0x56056931 0x1E653013
107 * PXA935 B0 0x56056936 0x6E653013 107 * PXA935 B0 0x56056936 0x6E653013
108 * PXA935 B1 0x56056938 0x8E653013
108 */ 109 */
109#ifdef CONFIG_PXA25x 110#ifdef CONFIG_PXA25x
110#define __cpu_is_pxa210(id) \ 111#define __cpu_is_pxa210(id) \
@@ -283,7 +284,7 @@
283 _id == 0x3; \ 284 _id == 0x3; \
284 }) 285 })
285 286
286#define __cpu_is_pxa9xx(id) \ 287#define __cpu_is_pxa93x(id) \
287 ({ \ 288 ({ \
288 unsigned int _id = (id) >> 4 & 0xfff; \ 289 unsigned int _id = (id) >> 4 & 0xfff; \
289 _id == 0x683 || _id == 0x693; \ 290 _id == 0x683 || _id == 0x693; \
@@ -299,9 +300,9 @@
299 __cpu_is_pxa3xx(read_cpuid_id()); \ 300 __cpu_is_pxa3xx(read_cpuid_id()); \
300 }) 301 })
301 302
302#define cpu_is_pxa9xx() \ 303#define cpu_is_pxa93x() \
303 ({ \ 304 ({ \
304 __cpu_is_pxa9xx(read_cpuid_id()); \ 305 __cpu_is_pxa93x(read_cpuid_id()); \
305 }) 306 })
306/* 307/*
307 * return current memory and LCD clock frequency in units of 10kHz 308 * return current memory and LCD clock frequency in units of 10kHz
diff --git a/arch/arm/mach-pxa/include/mach/palmtreo.h b/arch/arm/mach-pxa/include/mach/palmtreo.h
new file mode 100644
index 000000000000..2d3f14e3be29
--- /dev/null
+++ b/arch/arm/mach-pxa/include/mach/palmtreo.h
@@ -0,0 +1,67 @@
1/*
2 * GPIOs and interrupts for Palm Treo smartphones
3 *
4 * currently supported:
5 * Palm Treo 680 (GSM)
6 * Palm Centro 685 (GSM)
7 *
8 * Author: Tomas Cech <sleep_walker@suse.cz>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
13 *
14 * find more info at www.hackndev.com
15 *
16 */
17
18#ifndef _INCLUDE_TREO_H_
19#define _INCLUDE_TREO_H_
20
21/* GPIOs */
22#define GPIO_NR_TREO_POWER_DETECT 0
23#define GPIO_NR_TREO_AMP_EN 27
24#define GPIO_NR_TREO_GREEN_LED 20
25#define GPIO_NR_TREO_RED_LED 79
26#define GPIO_NR_TREO_SD_DETECT_N 113
27#define GPIO_NR_TREO_EP_DETECT_N 116
28#define GPIO_NR_TREO_USB_DETECT 1
29#define GPIO_NR_TREO_USB_PULLUP 114
30#define GPIO_NR_TREO_GSM_POWER 40
31#define GPIO_NR_TREO_GSM_RESET 87
32#define GPIO_NR_TREO_GSM_WAKE 57
33#define GPIO_NR_TREO_GSM_HOST_WAKE 14
34#define GPIO_NR_TREO_GSM_TRIGGER 10
35#define GPIO_NR_TREO_IR_EN 115
36#define GPIO_NR_TREO_IR_TXD 47
37#define GPIO_NR_TREO_BL_POWER 38
38#define GPIO_NR_TREO_LCD_POWER 25
39
40/* Treo680 specific GPIOs */
41#ifdef CONFIG_MACH_TREO680
42#define GPIO_NR_TREO680_SD_READONLY 33
43#define GPIO_NR_TREO680_SD_POWER 42
44#define GPIO_NR_TREO680_VIBRATE_EN 44
45#define GPIO_NR_TREO680_KEYB_BL 24
46#define GPIO_NR_TREO680_BT_EN 43
47#endif /* CONFIG_MACH_TREO680 */
48
49/* Centro685 specific GPIOs */
50#define GPIO_NR_CENTRO_SD_POWER 21
51#define GPIO_NR_CENTRO_VIBRATE_EN 22
52#define GPIO_NR_CENTRO_KEYB_BL 33
53#define GPIO_NR_CENTRO_BT_EN 80
54
55/* Various addresses */
56#define TREO_PHYS_RAM_START 0xa0000000
57#define TREO_PHYS_IO_START 0x40000000
58#define TREO_STR_BASE 0xa2000000
59
60/* BACKLIGHT */
61#define TREO_MAX_INTENSITY 254
62#define TREO_DEFAULT_INTENSITY 160
63#define TREO_LIMIT_MASK 0x7F
64#define TREO_PRESCALER 63
65#define TREO_PERIOD_NS 3500
66
67#endif
diff --git a/arch/arm/mach-pxa/include/mach/pxafb.h b/arch/arm/mach-pxa/include/mach/pxafb.h
index f73061c90b5e..160ec83f51a6 100644
--- a/arch/arm/mach-pxa/include/mach/pxafb.h
+++ b/arch/arm/mach-pxa/include/mach/pxafb.h
@@ -76,7 +76,8 @@ struct pxafb_mode_info {
76 u_char bpp; 76 u_char bpp;
77 u_int cmap_greyscale:1, 77 u_int cmap_greyscale:1,
78 depth:8, 78 depth:8,
79 unused:23; 79 transparency:1,
80 unused:22;
80 81
81 /* Parallel Mode Timing */ 82 /* Parallel Mode Timing */
82 u_char hsync_len; 83 u_char hsync_len;
diff --git a/arch/arm/mach-pxa/include/mach/regs-u2d.h b/arch/arm/mach-pxa/include/mach/regs-u2d.h
new file mode 100644
index 000000000000..44b0b20b69a4
--- /dev/null
+++ b/arch/arm/mach-pxa/include/mach/regs-u2d.h
@@ -0,0 +1,199 @@
1#ifndef __ASM_ARCH_PXA3xx_U2D_H
2#define __ASM_ARCH_PXA3xx_U2D_H
3
4#include <mach/bitfield.h>
5
6/*
7 * USB2 device controller registers and bits definitions
8 */
9#define U2DCR (0x0000) /* U2D Control Register */
10#define U2DCR_NDC (1 << 31) /* NAK During Config */
11#define U2DCR_HSTC (0x7 << 28) /* High Speed Timeout Calibration */
12#define U2DCR_SPEOREN (1 << 27) /* Short Packet EOR INTR generation Enable */
13#define U2DCR_FSTC (0x7 << 24) /* Full Speed Timeout Calibration */
14#define U2DCR_UCLKOVR (1 << 22) /* UTM Clock Override */
15#define U2DCR_ABP (1 << 21) /* Application Bus Power */
16#define U2DCR_ADD (1 << 20) /* Application Device Disconnect */
17#define U2DCR_CC (1 << 19) /* Configuration Change */
18#define U2DCR_HS (1 << 18) /* High Speed USB Detection */
19#define U2DCR_SMAC (1 << 17) /* Switch Endpoint Memory to Active Configuration */
20#define U2DCR_DWRE (1 << 16) /* Device Remote Wake-up Feature */
21#define U2DCR_ACN (0xf << 12) /* Active U2D Configuration Number */
22#define U2DCR_AIN (0xf << 8) /* Active U2D Interface Number */
23#define U2DCR_AAISN (0xf << 4) /* Active U2D Alternate Interface Setting Number */
24#define U2DCR_EMCE (1 << 3) /* Endpoint Memory Configuration Error */
25#define U2DCR_UDR (1 << 2) /* U2D Resume */
26#define U2DCR_UDA (1 << 1) /* U2D Active */
27#define U2DCR_UDE (1 << 0) /* U2D Enable */
28
29#define U2DICR (0x0004) /* U2D Interrupt Control Register */
30#define U2DISR (0x000C) /* U2D Interrupt Status Register */
31#define U2DINT_CC (1 << 31) /* Interrupt - Configuration Change */
32#define U2DINT_SOF (1 << 30) /* Interrupt - SOF */
33#define U2DINT_USOF (1 << 29) /* Interrupt - micro SOF */
34#define U2DINT_RU (1 << 28) /* Interrupt - Resume */
35#define U2DINT_SU (1 << 27) /* Interrupt - Suspend */
36#define U2DINT_RS (1 << 26) /* Interrupt - Reset */
37#define U2DINT_DPE (1 << 25) /* Interrupt - Data Packet Error */
38#define U2DINT_FIFOERR (0x4) /* Interrupt - endpoint FIFO error */
39#define U2DINT_PACKETCMP (0x2) /* Interrupt - endpoint packet complete */
40#define U2DINT_SPACKETCMP (0x1) /* Interrupt - endpoint short packet complete */
41
42#define U2DFNR (0x0014) /* U2D Frame Number Register */
43
44#define U2DINT(n, intr) (((intr) & 0x07) << (((n) & 0x07) * 3))
45#define U2DICR2 (0x0008) /* U2D Interrupt Control Register 2 */
46#define U2DISR2 (0x0010) /* U2D Interrupt Status Register 2 */
47
48#define U2DOTGCR (0x0020) /* U2D OTG Control Register */
49#define U2DOTGCR_OTGEN (1 << 31) /* On-The-Go Enable */
50#define U2DOTGCR_AALTHNP (1 << 30) /* A-device Alternate Host Negotiation Protocal Port Support */
51#define U2DOTGCR_AHNP (1 << 29) /* A-device Host Negotiation Protocal Support */
52#define U2DOTGCR_BHNP (1 << 28) /* B-device Host Negotiation Protocal Enable */
53
54#ifdef CONFIG_CPU_PXA930
55#define U2DOTGCR_LPA (1 << 15) /* ULPI low power mode active */
56#define U2DOTGCR_IESI (1 << 13) /* OTG interrupt Enable */
57#define U2DOTGCR_ISSI (1 << 12) /* OTG interrupt status */
58#endif
59
60#define U2DOTGCR_CKAF (1 << 5) /* Carkit Mode Alternate Function Select */
61#define U2DOTGCR_UTMID (1 << 4) /* UTMI Interface Disable */
62#define U2DOTGCR_ULAF (1 << 3) /* ULPI Mode Alternate Function Select */
63#define U2DOTGCR_SMAF (1 << 2) /* Serial Mode Alternate Function Select */
64#define U2DOTGCR_RTSM (1 << 1) /* Return to Synchronous Mode (ULPI Mode) */
65#define U2DOTGCR_ULE (1 << 0) /* ULPI Wrapper Enable */
66
67#define U2DOTGICR (0x0024) /* U2D OTG Interrupt Control Register */
68#define U2DOTGISR (0x0028) /* U2D OTG Interrupt Status Register */
69
70#define U2DOTGINT_SF (1 << 17) /* OTG Set Feature Command Received */
71#define U2DOTGINT_SI (1 << 16) /* OTG Interrupt */
72#define U2DOTGINT_RLS1 (1 << 14) /* RXCMD Linestate[1] Change Interrupt Rise */
73#define U2DOTGINT_RLS0 (1 << 13) /* RXCMD Linestate[0] Change Interrupt Rise */
74#define U2DOTGINT_RID (1 << 12) /* RXCMD OTG ID Change Interrupt Rise */
75#define U2DOTGINT_RSE (1 << 11) /* RXCMD OTG Session End Interrupt Rise */
76#define U2DOTGINT_RSV (1 << 10) /* RXCMD OTG Session Valid Interrupt Rise */
77#define U2DOTGINT_RVV (1 << 9) /* RXCMD OTG Vbus Valid Interrupt Rise */
78#define U2DOTGINT_RCK (1 << 8) /* RXCMD Carkit Interrupt Rise */
79#define U2DOTGINT_FLS1 (1 << 6) /* RXCMD Linestate[1] Change Interrupt Fall */
80#define U2DOTGINT_FLS0 (1 << 5) /* RXCMD Linestate[0] Change Interrupt Fall */
81#define U2DOTGINT_FID (1 << 4) /* RXCMD OTG ID Change Interrupt Fall */
82#define U2DOTGINT_FSE (1 << 3) /* RXCMD OTG Session End Interrupt Fall */
83#define U2DOTGINT_FSV (1 << 2) /* RXCMD OTG Session Valid Interrupt Fall */
84#define U2DOTGINT_FVV (1 << 1) /* RXCMD OTG Vbus Valid Interrupt Fall */
85#define U2DOTGINT_FCK (1 << 0) /* RXCMD Carkit Interrupt Fall */
86
87#define U2DOTGUSR (0x002C) /* U2D OTG ULPI Status Register */
88#define U2DOTGUSR_LPA (1 << 31) /* ULPI Low Power Mode Active */
89#define U2DOTGUSR_S6A (1 << 30) /* ULPI Serial Mode (6-pin) Active */
90#define U2DOTGUSR_S3A (1 << 29) /* ULPI Serial Mode (3-pin) Active */
91#define U2DOTGUSR_CKA (1 << 28) /* ULPI Car Kit Mode Active */
92#define U2DOTGUSR_LS1 (1 << 6) /* RXCMD Linestate 1 Status */
93#define U2DOTGUSR_LS0 (1 << 5) /* RXCMD Linestate 0 Status */
94#define U2DOTGUSR_ID (1 << 4) /* OTG IDGnd Status */
95#define U2DOTGUSR_SE (1 << 3) /* OTG Session End Status */
96#define U2DOTGUSR_SV (1 << 2) /* OTG Session Valid Status */
97#define U2DOTGUSR_VV (1 << 1) /* OTG Vbus Valid Status */
98#define U2DOTGUSR_CK (1 << 0) /* Carkit Interrupt Status */
99
100#define U2DOTGUCR (0x0030) /* U2D OTG ULPI Control Register */
101#define U2DOTGUCR_RUN (1 << 25) /* RUN */
102#define U2DOTGUCR_RNW (1 << 24) /* Read or Write operation */
103#define U2DOTGUCR_ADDR (0x3f << 16) /* Address of the ULPI PHY register */
104#define U2DOTGUCR_WDATA (0xff << 8) /* The data for a WRITE command */
105#define U2DOTGUCR_RDATA (0xff << 0) /* The data for a READ command */
106
107#define U2DP3CR (0x0034) /* U2D Port 3 Control Register */
108#define U2DP3CR_P2SS (0x3 << 8) /* Host Port 2 Serial Mode Select */
109#define U2DP3CR_P3SS (0x7 << 4) /* Host Port 3 Serial Mode Select */
110#define U2DP3CR_VPVMBEN (0x1 << 2) /* Host Port 3 Vp/Vm Block Enable */
111#define U2DP3CR_CFG (0x3 << 0) /* Host Port 3 Configuration */
112
113#define U2DCSR0 (0x0100) /* U2D Control/Status Register - Endpoint 0 */
114#define U2DCSR0_IPA (1 << 8) /* IN Packet Adjusted */
115#define U2DCSR0_SA (1 << 7) /* SETUP Active */
116#define U2DCSR0_RNE (1 << 6) /* Receive FIFO Not Empty */
117#define U2DCSR0_FST (1 << 5) /* Force Stall */
118#define U2DCSR0_SST (1 << 4) /* Send Stall */
119#define U2DCSR0_DME (1 << 3) /* DMA Enable */
120#define U2DCSR0_FTF (1 << 2) /* Flush Transmit FIFO */
121#define U2DCSR0_IPR (1 << 1) /* IN Packet Ready */
122#define U2DCSR0_OPC (1 << 0) /* OUT Packet Complete */
123
124#define U2DCSR(x) (0x0100 + ((x) << 2)) /* U2D Control/Status Register - Endpoint x */
125#define U2DCSR_BF (1 << 10) /* Buffer Full, for OUT eps */
126#define U2DCSR_BE (1 << 10) /* Buffer Empty, for IN eps */
127#define U2DCSR_DPE (1 << 9) /* Data Packet Error, for ISO eps only */
128#define U2DCSR_FEF (1 << 8) /* Flush Endpoint FIFO */
129#define U2DCSR_SP (1 << 7) /* Short Packet Control/Status, for OUT eps only, readonly */
130#define U2DCSR_BNE (1 << 6) /* Buffer Not Empty, for OUT eps */
131#define U2DCSR_BNF (1 << 6) /* Buffer Not Full, for IN eps */
132#define U2DCSR_FST (1 << 5) /* Force STALL, write 1 set */
133#define U2DCSR_SST (1 << 4) /* Sent STALL, write 1 clear */
134#define U2DCSR_DME (1 << 3) /* DMA Enable */
135#define U2DCSR_TRN (1 << 2) /* Tx/Rx NAK, write 1 clear */
136#define U2DCSR_PC (1 << 1) /* Packet Complete, write 1 clear */
137#define U2DCSR_FS (1 << 0) /* FIFO needs Service */
138
139#define U2DBCR0 (0x0200) /* U2D Byte Count Register - Endpoint 0 */
140#define U2DBCR(x) (0x0200 + ((x) << 2)) /* U2D Byte Count Register - Endpoint x */
141
142#define U2DDR0 (0x0300) /* U2D Data Register - Endpoint 0 */
143
144#define U2DEPCR(x) (0x0400 + ((x) << 2)) /* U2D Configuration Register - Endpoint x */
145#define U2DEPCR_EE (1 << 0) /* Endpoint Enable */
146#define U2DEPCR_BS_MASK (0x3FE) /* Buffer Size, BS*8=FIFO size, max 8184B = 8KB */
147
148#define U2DSCA (0x0500) /* U2D Setup Command Address */
149#define U2DSCA_VALUE (0x0120)
150
151#define U2DEN0 (0x0504) /* U2D Endpoint Information Register - Endpoint 0 */
152#define U2DEN(x) (0x0504 + ((x) << 2)) /* U2D Endpoint Information Register - Endpoint x */
153
154/* U2DMA registers */
155#define U2DMACSR0 (0x1000) /* U2DMA Control/Status Register - Channel 0 */
156#define U2DMACSR(x) (0x1000 + ((x) << 2)) /* U2DMA Control/Status Register - Channel x */
157#define U2DMACSR_RUN (1 << 31) /* Run Bit (read / write) */
158#define U2DMACSR_STOPIRQEN (1 << 29) /* Stop Interrupt Enable (read / write) */
159#define U2DMACSR_EORIRQEN (1 << 28) /* End of Receive Interrupt Enable (R/W) */
160#define U2DMACSR_EORJMPEN (1 << 27) /* Jump to next descriptor on EOR */
161#define U2DMACSR_EORSTOPEN (1 << 26) /* STOP on an EOR */
162#define U2DMACSR_RASIRQEN (1 << 23) /* Request After Cnannel Stopped Interrupt Enable */
163#define U2DMACSR_MASKRUN (1 << 22) /* Mask Run */
164#define U2DMACSR_SCEMC (3 << 18) /* System Bus Split Completion Error Message Class */
165#define U2DMACSR_SCEMI (0x1f << 13) /* System Bus Split Completion Error Message Index */
166#define U2DMACSR_BUSERRTYPE (7 << 10) /* PX Bus Error Type */
167#define U2DMACSR_EORINTR (1 << 9) /* End Of Receive */
168#define U2DMACSR_REQPEND (1 << 8) /* Request Pending */
169#define U2DMACSR_RASINTR (1 << 4) /* Request After Channel Stopped (read / write 1 clear) */#define U2DMACSR_STOPINTR (1 << 3) /* Stop Interrupt (read only) */
170#define U2DMACSR_ENDINTR (1 << 2) /* End Interrupt (read / write 1 clear) */
171#define U2DMACSR_STARTINTR (1 << 1) /* Start Interrupt (read / write 1 clear) */
172#define U2DMACSR_BUSERRINTR (1 << 0) /* Bus Error Interrupt (read / write 1 clear) */
173
174#define U2DMACR (0x1080) /* U2DMA Control Register */
175#define U2DMAINT (0x10F0) /* U2DMA Interrupt Register */
176
177#define U2DMABR0 (0x1100) /* U2DMA Branch Register - Channel 0 */
178#define U2DMABR(x) (0x1100 + (x) << 2) /* U2DMA Branch Register - Channel x */
179
180#define U2DMADADR0 (0x1200) /* U2DMA Descriptor Address Register - Channel 0 */
181#define U2DMADADR(x) (0x1200 + (x) * 0x10) /* U2DMA Descriptor Address Register - Channel x */
182
183#define U2DMADADR_STOP (1U << 0)
184
185#define U2DMASADR0 (0x1204) /* U2DMA Source Address Register - Channel 0 */
186#define U2DMASADR(x) (0x1204 + (x) * 0x10) /* U2DMA Source Address Register - Channel x */
187#define U2DMATADR0 (0x1208) /* U2DMA Target Address Register - Channel 0 */
188#define U2DMATADR(x) (0x1208 + (x) * 0x10) /* U2DMA Target Address Register - Channel x */
189
190#define U2DMACMDR0 (0x120C) /* U2DMA Command Address Register - Channel 0 */
191#define U2DMACMDR(x) (0x120C + (x) * 0x10) /* U2DMA Command Address Register - Channel x */
192
193#define U2DMACMDR_XFRDIS (1 << 31) /* Transfer Direction */
194#define U2DMACMDR_STARTIRQEN (1 << 22) /* Start Interrupt Enable */
195#define U2DMACMDR_ENDIRQEN (1 << 21) /* End Interrupt Enable */
196#define U2DMACMDR_PACKCOMP (1 << 13) /* Packet Complete */
197#define U2DMACMDR_LEN (0x07ff) /* length mask (max = 2K - 1) */
198
199#endif /* __ASM_ARCH_PXA3xx_U2D_H */
diff --git a/arch/arm/mach-pxa/include/mach/treo680.h b/arch/arm/mach-pxa/include/mach/treo680.h
deleted file mode 100644
index af443b24d99a..000000000000
--- a/arch/arm/mach-pxa/include/mach/treo680.h
+++ /dev/null
@@ -1,49 +0,0 @@
1/*
2 * GPIOs and interrupts for Palm Treo 680 smartphone
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 */
9
10#ifndef _INCLUDE_TREO680_H_
11#define _INCLUDE_TREO680_H_
12
13/* GPIOs */
14#define GPIO_NR_TREO680_POWER_DETECT 0
15#define GPIO_NR_TREO680_AMP_EN 27
16#define GPIO_NR_TREO680_KEYB_BL 24
17#define GPIO_NR_TREO680_VIBRATE_EN 44
18#define GPIO_NR_TREO680_GREEN_LED 20
19#define GPIO_NR_TREO680_RED_LED 79
20#define GPIO_NR_TREO680_SD_DETECT_N 113
21#define GPIO_NR_TREO680_SD_READONLY 33
22#define GPIO_NR_TREO680_EP_DETECT_N 116
23#define GPIO_NR_TREO680_SD_POWER 42
24#define GPIO_NR_TREO680_USB_DETECT 1
25#define GPIO_NR_TREO680_USB_PULLUP 114
26#define GPIO_NR_TREO680_GSM_POWER 40
27#define GPIO_NR_TREO680_GSM_RESET 87
28#define GPIO_NR_TREO680_GSM_WAKE 57
29#define GPIO_NR_TREO680_GSM_HOST_WAKE 14
30#define GPIO_NR_TREO680_GSM_TRIGGER 10
31#define GPIO_NR_TREO680_BT_EN 43
32#define GPIO_NR_TREO680_IR_EN 115
33#define GPIO_NR_TREO680_IR_TXD 47
34#define GPIO_NR_TREO680_BL_POWER 38
35#define GPIO_NR_TREO680_LCD_POWER 25
36
37/* Various addresses */
38#define TREO680_PHYS_RAM_START 0xa0000000
39#define TREO680_PHYS_IO_START 0x40000000
40#define TREO680_STR_BASE 0xa2000000
41
42/* BACKLIGHT */
43#define TREO680_MAX_INTENSITY 254
44#define TREO680_DEFAULT_INTENSITY 160
45#define TREO680_LIMIT_MASK 0x7F
46#define TREO680_PRESCALER 63
47#define TREO680_PERIOD_NS 3500
48
49#endif
diff --git a/arch/arm/mach-pxa/littleton.c b/arch/arm/mach-pxa/littleton.c
index 13848955d133..f28c1715b910 100644
--- a/arch/arm/mach-pxa/littleton.c
+++ b/arch/arm/mach-pxa/littleton.c
@@ -44,10 +44,10 @@
44#include <mach/ssp.h> 44#include <mach/ssp.h>
45#include <mach/mmc.h> 45#include <mach/mmc.h>
46#include <mach/pxa2xx_spi.h> 46#include <mach/pxa2xx_spi.h>
47#include <plat/i2c.h>
48#include <mach/pxa27x_keypad.h> 47#include <mach/pxa27x_keypad.h>
49#include <mach/pxa3xx_nand.h>
50#include <mach/littleton.h> 48#include <mach/littleton.h>
49#include <plat/i2c.h>
50#include <plat/pxa3xx_nand.h>
51 51
52#include "generic.h" 52#include "generic.h"
53 53
@@ -413,6 +413,10 @@ static void __init littleton_init(void)
413 /* initialize MFP configurations */ 413 /* initialize MFP configurations */
414 pxa3xx_mfp_config(ARRAY_AND_SIZE(littleton_mfp_cfg)); 414 pxa3xx_mfp_config(ARRAY_AND_SIZE(littleton_mfp_cfg));
415 415
416 pxa_set_ffuart_info(NULL);
417 pxa_set_btuart_info(NULL);
418 pxa_set_stuart_info(NULL);
419
416 /* 420 /*
417 * Note: we depend bootloader set the correct 421 * Note: we depend bootloader set the correct
418 * value to MSC register for SMC91x. 422 * value to MSC register for SMC91x.
diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c
index d64395f26a3e..1373c22dbb83 100644
--- a/arch/arm/mach-pxa/lpd270.c
+++ b/arch/arm/mach-pxa/lpd270.c
@@ -455,6 +455,10 @@ static void __init lpd270_init(void)
455{ 455{
456 pxa2xx_mfp_config(ARRAY_AND_SIZE(lpd270_pin_config)); 456 pxa2xx_mfp_config(ARRAY_AND_SIZE(lpd270_pin_config));
457 457
458 pxa_set_ffuart_info(NULL);
459 pxa_set_btuart_info(NULL);
460 pxa_set_stuart_info(NULL);
461
458 lpd270_flash_data[0].width = (BOOT_DEF & 1) ? 2 : 4; 462 lpd270_flash_data[0].width = (BOOT_DEF & 1) ? 2 : 4;
459 lpd270_flash_data[1].width = 4; 463 lpd270_flash_data[1].width = 4;
460 464
diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c
index c6a94d3fdd61..98ee7e590299 100644
--- a/arch/arm/mach-pxa/lubbock.c
+++ b/arch/arm/mach-pxa/lubbock.c
@@ -518,6 +518,10 @@ static void __init lubbock_init(void)
518 518
519 pxa2xx_mfp_config(ARRAY_AND_SIZE(lubbock_pin_config)); 519 pxa2xx_mfp_config(ARRAY_AND_SIZE(lubbock_pin_config));
520 520
521 pxa_set_ffuart_info(NULL);
522 pxa_set_btuart_info(NULL);
523 pxa_set_stuart_info(NULL);
524
521 clk_add_alias("SA1111_CLK", NULL, "GPIO11_CLK", NULL); 525 clk_add_alias("SA1111_CLK", NULL, "GPIO11_CLK", NULL);
522 pxa_set_udc_info(&udc_info); 526 pxa_set_udc_info(&udc_info);
523 set_pxa_fb_info(&sharp_lm8v31); 527 set_pxa_fb_info(&sharp_lm8v31);
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c
index 5360c07f5138..8a38d604dc77 100644
--- a/arch/arm/mach-pxa/magician.c
+++ b/arch/arm/mach-pxa/magician.c
@@ -742,6 +742,10 @@ static void __init magician_init(void)
742 742
743 pxa2xx_mfp_config(ARRAY_AND_SIZE(magician_pin_config)); 743 pxa2xx_mfp_config(ARRAY_AND_SIZE(magician_pin_config));
744 744
745 pxa_set_ffuart_info(NULL);
746 pxa_set_btuart_info(NULL);
747 pxa_set_stuart_info(NULL);
748
745 platform_add_devices(ARRAY_AND_SIZE(devices)); 749 platform_add_devices(ARRAY_AND_SIZE(devices));
746 750
747 err = gpio_request(GPIO83_MAGICIAN_nIR_EN, "nIR_EN"); 751 err = gpio_request(GPIO83_MAGICIAN_nIR_EN, "nIR_EN");
diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c
index a4eeae345e64..851ee0fc32e2 100644
--- a/arch/arm/mach-pxa/mainstone.c
+++ b/arch/arm/mach-pxa/mainstone.c
@@ -576,6 +576,10 @@ static void __init mainstone_init(void)
576 576
577 pxa2xx_mfp_config(ARRAY_AND_SIZE(mainstone_pin_config)); 577 pxa2xx_mfp_config(ARRAY_AND_SIZE(mainstone_pin_config));
578 578
579 pxa_set_ffuart_info(NULL);
580 pxa_set_btuart_info(NULL);
581 pxa_set_stuart_info(NULL);
582
579 mst_flash_data[0].width = (BOOT_DEF & 1) ? 2 : 4; 583 mst_flash_data[0].width = (BOOT_DEF & 1) ? 2 : 4;
580 mst_flash_data[1].width = 4; 584 mst_flash_data[1].width = 4;
581 585
diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c
index 3cab452e5567..2466a44d8fda 100644
--- a/arch/arm/mach-pxa/mioa701.c
+++ b/arch/arm/mach-pxa/mioa701.c
@@ -798,6 +798,9 @@ static void __init mioa701_machine_init(void)
798 UP2OCR = UP2OCR_HXOE; 798 UP2OCR = UP2OCR_HXOE;
799 799
800 pxa2xx_mfp_config(ARRAY_AND_SIZE(mioa701_pin_config)); 800 pxa2xx_mfp_config(ARRAY_AND_SIZE(mioa701_pin_config));
801 pxa_set_ffuart_info(NULL);
802 pxa_set_btuart_info(NULL);
803 pxa_set_stuart_info(NULL);
801 mio_gpio_request(ARRAY_AND_SIZE(global_gpios)); 804 mio_gpio_request(ARRAY_AND_SIZE(global_gpios));
802 bootstrap_init(); 805 bootstrap_init();
803 set_pxa_fb_info(&mioa701_pxafb_info); 806 set_pxa_fb_info(&mioa701_pxafb_info);
diff --git a/arch/arm/mach-pxa/mp900.c b/arch/arm/mach-pxa/mp900.c
index a65713ce019e..6d4503927a76 100644
--- a/arch/arm/mach-pxa/mp900.c
+++ b/arch/arm/mach-pxa/mp900.c
@@ -84,6 +84,9 @@ static struct platform_device *devices[] __initdata = {
84static void __init mp900c_init(void) 84static void __init mp900c_init(void)
85{ 85{
86 printk(KERN_INFO "MobilePro 900/C machine init\n"); 86 printk(KERN_INFO "MobilePro 900/C machine init\n");
87 pxa_set_ffuart_info(NULL);
88 pxa_set_btuart_info(NULL);
89 pxa_set_stuart_info(NULL);
87 platform_add_devices(devices, ARRAY_SIZE(devices)); 90 platform_add_devices(devices, ARRAY_SIZE(devices));
88} 91}
89 92
diff --git a/arch/arm/mach-pxa/palmld.c b/arch/arm/mach-pxa/palmld.c
index 1ad029dd4438..59140217890a 100644
--- a/arch/arm/mach-pxa/palmld.c
+++ b/arch/arm/mach-pxa/palmld.c
@@ -530,6 +530,10 @@ static void __init palmld_init(void)
530{ 530{
531 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmld_pin_config)); 531 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmld_pin_config));
532 532
533 pxa_set_ffuart_info(NULL);
534 pxa_set_btuart_info(NULL);
535 pxa_set_stuart_info(NULL);
536
533 palmld_pm_init(); 537 palmld_pm_init();
534 set_pxa_fb_info(&palmld_lcd_screen); 538 set_pxa_fb_info(&palmld_lcd_screen);
535 pxa_set_mci_info(&palmld_mci_platform_data); 539 pxa_set_mci_info(&palmld_mci_platform_data);
diff --git a/arch/arm/mach-pxa/palmt5.c b/arch/arm/mach-pxa/palmt5.c
index 2dd7ce28556b..7f89ca20f13a 100644
--- a/arch/arm/mach-pxa/palmt5.c
+++ b/arch/arm/mach-pxa/palmt5.c
@@ -419,6 +419,10 @@ static void __init palmt5_init(void)
419{ 419{
420 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmt5_pin_config)); 420 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmt5_pin_config));
421 421
422 pxa_set_ffuart_info(NULL);
423 pxa_set_btuart_info(NULL);
424 pxa_set_stuart_info(NULL);
425
422 palmt5_pm_init(); 426 palmt5_pm_init();
423 set_pxa_fb_info(&palmt5_lcd_screen); 427 set_pxa_fb_info(&palmt5_lcd_screen);
424 pxa_set_mci_info(&palmt5_mci_platform_data); 428 pxa_set_mci_info(&palmt5_mci_platform_data);
diff --git a/arch/arm/mach-pxa/palmtc.c b/arch/arm/mach-pxa/palmtc.c
index 0b92291a58f6..308417592007 100644
--- a/arch/arm/mach-pxa/palmtc.c
+++ b/arch/arm/mach-pxa/palmtc.c
@@ -416,6 +416,11 @@ static void __init palmtc_init(void)
416{ 416{
417 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmtc_pin_config)); 417 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmtc_pin_config));
418 418
419 pxa_set_ffuart_info(NULL);
420 pxa_set_btuart_info(NULL);
421 pxa_set_stuart_info(NULL);
422 pxa_set_hwuart_info(NULL);
423
419 set_pxa_fb_info(&palmtc_lcd_screen); 424 set_pxa_fb_info(&palmtc_lcd_screen);
420 pxa_set_mci_info(&palmtc_mci_platform_data); 425 pxa_set_mci_info(&palmtc_mci_platform_data);
421 pxa_set_udc_info(&palmtc_udc_info); 426 pxa_set_udc_info(&palmtc_udc_info);
diff --git a/arch/arm/mach-pxa/palmte2.c b/arch/arm/mach-pxa/palmte2.c
index 277c4062e3c6..265d62bae7de 100644
--- a/arch/arm/mach-pxa/palmte2.c
+++ b/arch/arm/mach-pxa/palmte2.c
@@ -373,6 +373,10 @@ static void __init palmte2_init(void)
373{ 373{
374 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmte2_pin_config)); 374 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmte2_pin_config));
375 375
376 pxa_set_ffuart_info(NULL);
377 pxa_set_btuart_info(NULL);
378 pxa_set_stuart_info(NULL);
379
376 set_pxa_fb_info(&palmte2_lcd_screen); 380 set_pxa_fb_info(&palmte2_lcd_screen);
377 pxa_set_mci_info(&palmte2_mci_platform_data); 381 pxa_set_mci_info(&palmte2_mci_platform_data);
378 palmte2_udc_init(); 382 palmte2_udc_init();
diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/palmtreo.c
index fe085076fbf2..606eb7e8a17e 100644
--- a/arch/arm/mach-pxa/treo680.c
+++ b/arch/arm/mach-pxa/palmtreo.c
@@ -1,5 +1,9 @@
1/* 1/*
2 * Hardware definitions for Palm Treo 680 2 * Hardware definitions for Palm Treo smartphones
3 *
4 * currently supported:
5 * Palm Treo 680 (GSM)
6 * Palm Centro 685 (GSM)
3 * 7 *
4 * Author: Tomas Cech <sleep_walker@suse.cz> 8 * Author: Tomas Cech <sleep_walker@suse.cz>
5 * 9 *
@@ -31,7 +35,7 @@
31#include <mach/pxa27x.h> 35#include <mach/pxa27x.h>
32#include <mach/pxa27x-udc.h> 36#include <mach/pxa27x-udc.h>
33#include <mach/audio.h> 37#include <mach/audio.h>
34#include <mach/treo680.h> 38#include <mach/palmtreo.h>
35#include <mach/mmc.h> 39#include <mach/mmc.h>
36#include <mach/pxafb.h> 40#include <mach/pxafb.h>
37#include <mach/irda.h> 41#include <mach/irda.h>
@@ -50,7 +54,7 @@
50/****************************************************************************** 54/******************************************************************************
51 * Pin configuration 55 * Pin configuration
52 ******************************************************************************/ 56 ******************************************************************************/
53static unsigned long treo680_pin_config[] __initdata = { 57static unsigned long treo_pin_config[] __initdata = {
54 /* MMC */ 58 /* MMC */
55 GPIO32_MMC_CLK, 59 GPIO32_MMC_CLK,
56 GPIO92_MMC_DAT_0, 60 GPIO92_MMC_DAT_0,
@@ -58,7 +62,6 @@ static unsigned long treo680_pin_config[] __initdata = {
58 GPIO110_MMC_DAT_2, 62 GPIO110_MMC_DAT_2,
59 GPIO111_MMC_DAT_3, 63 GPIO111_MMC_DAT_3,
60 GPIO112_MMC_CMD, 64 GPIO112_MMC_CMD,
61 GPIO33_GPIO, /* SD read only */
62 GPIO113_GPIO, /* SD detect */ 65 GPIO113_GPIO, /* SD detect */
63 66
64 /* AC97 */ 67 /* AC97 */
@@ -80,12 +83,10 @@ static unsigned long treo680_pin_config[] __initdata = {
80 GPIO1_GPIO | WAKEUP_ON_EDGE_BOTH, /* usb detect */ 83 GPIO1_GPIO | WAKEUP_ON_EDGE_BOTH, /* usb detect */
81 84
82 /* MATRIX KEYPAD */ 85 /* MATRIX KEYPAD */
83 GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
84 GPIO101_KP_MKIN_1, 86 GPIO101_KP_MKIN_1,
85 GPIO102_KP_MKIN_2, 87 GPIO102_KP_MKIN_2,
86 GPIO97_KP_MKIN_3, 88 GPIO97_KP_MKIN_3,
87 GPIO98_KP_MKIN_4, 89 GPIO98_KP_MKIN_4,
88 GPIO99_KP_MKIN_5,
89 GPIO91_KP_MKIN_6, 90 GPIO91_KP_MKIN_6,
90 GPIO13_KP_MKIN_7, 91 GPIO13_KP_MKIN_7,
91 GPIO103_KP_MKOUT_0 | MFP_LPM_DRIVE_HIGH, 92 GPIO103_KP_MKOUT_0 | MFP_LPM_DRIVE_HIGH,
@@ -150,19 +151,57 @@ static unsigned long treo680_pin_config[] __initdata = {
150 GPIO11_GPIO | WAKEUP_ON_EDGE_BOTH, /* bluetooth host wake up */ 151 GPIO11_GPIO | WAKEUP_ON_EDGE_BOTH, /* bluetooth host wake up */
151}; 152};
152 153
154#ifdef CONFIG_MACH_TREO680
155static unsigned long treo680_pin_config[] __initdata = {
156 GPIO33_GPIO, /* SD read only */
157
158 /* MATRIX KEYPAD - different wake up source */
159 GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
160 GPIO99_KP_MKIN_5,
161};
162#endif /* CONFIG_MACH_TREO680 */
163
164#ifdef CONFIG_MACH_CENTRO
165static unsigned long centro685_pin_config[] __initdata = {
166 /* Bluetooth attached to BT UART*/
167 MFP_CFG_OUT(GPIO80, AF0, DRIVE_LOW), /* power: LOW = off */
168 GPIO42_BTUART_RXD,
169 GPIO43_BTUART_TXD,
170 GPIO44_BTUART_CTS,
171 GPIO45_BTUART_RTS,
172
173 /* MATRIX KEYPAD - different wake up source */
174 GPIO100_KP_MKIN_0,
175 GPIO99_KP_MKIN_5 | WAKEUP_ON_LEVEL_HIGH,
176};
177#endif /* CONFIG_MACH_CENTRO */
178
153/****************************************************************************** 179/******************************************************************************
154 * SD/MMC card controller 180 * SD/MMC card controller
155 ******************************************************************************/ 181 ******************************************************************************/
182#ifdef CONFIG_MACH_TREO680
156static struct pxamci_platform_data treo680_mci_platform_data = { 183static struct pxamci_platform_data treo680_mci_platform_data = {
157 .ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34, 184 .ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34,
158 .gpio_card_detect = GPIO_NR_TREO680_SD_DETECT_N, 185 .gpio_card_detect = GPIO_NR_TREO_SD_DETECT_N,
159 .gpio_card_ro = GPIO_NR_TREO680_SD_READONLY, 186 .gpio_card_ro = GPIO_NR_TREO680_SD_READONLY,
160 .gpio_power = GPIO_NR_TREO680_SD_POWER, 187 .gpio_power = GPIO_NR_TREO680_SD_POWER,
161}; 188};
189#endif /* CONFIG_MACH_TREO680 */
190
191#ifdef CONFIG_MACH_CENTRO
192static struct pxamci_platform_data centro_mci_platform_data = {
193 .ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34,
194 .gpio_card_detect = GPIO_NR_TREO_SD_DETECT_N,
195 .gpio_card_ro = -1,
196 .gpio_power = GPIO_NR_CENTRO_SD_POWER,
197 .gpio_power_invert = 1,
198};
199#endif /* CONFIG_MACH_CENTRO */
162 200
163/****************************************************************************** 201/******************************************************************************
164 * GPIO keyboard 202 * GPIO keyboard
165 ******************************************************************************/ 203 ******************************************************************************/
204#ifdef CONFIG_MACH_TREO680
166static unsigned int treo680_matrix_keys[] = { 205static unsigned int treo680_matrix_keys[] = {
167 KEY(0, 0, KEY_F8), /* Red/Off/Power */ 206 KEY(0, 0, KEY_F8), /* Red/Off/Power */
168 KEY(0, 1, KEY_LEFT), 207 KEY(0, 1, KEY_LEFT),
@@ -232,92 +271,167 @@ static struct pxa27x_keypad_platform_data treo680_keypad_platform_data = {
232 271
233 .debounce_interval = 30, 272 .debounce_interval = 30,
234}; 273};
274#endif /* CONFIG_MACH_TREO680 */
275
276#ifdef CONFIG_MACH_CENTRO
277static unsigned int centro_matrix_keys[] = {
278 KEY(0, 0, KEY_F9), /* Home */
279 KEY(0, 1, KEY_LEFT),
280 KEY(0, 2, KEY_LEFTCTRL), /* Alternate */
281 KEY(0, 3, KEY_L),
282 KEY(0, 4, KEY_A),
283 KEY(0, 5, KEY_Q),
284 KEY(0, 6, KEY_P),
285
286 KEY(1, 0, KEY_RIGHTCTRL), /* Menu */
287 KEY(1, 1, KEY_RIGHT),
288 KEY(1, 2, KEY_LEFTSHIFT), /* Left shift */
289 KEY(1, 3, KEY_Z),
290 KEY(1, 4, KEY_S),
291 KEY(1, 5, KEY_W),
292
293 KEY(2, 0, KEY_F1), /* Phone */
294 KEY(2, 1, KEY_UP),
295 KEY(2, 2, KEY_0),
296 KEY(2, 3, KEY_X),
297 KEY(2, 4, KEY_D),
298 KEY(2, 5, KEY_E),
299
300 KEY(3, 0, KEY_F10), /* Calendar */
301 KEY(3, 1, KEY_DOWN),
302 KEY(3, 2, KEY_SPACE),
303 KEY(3, 3, KEY_C),
304 KEY(3, 4, KEY_F),
305 KEY(3, 5, KEY_R),
306
307 KEY(4, 0, KEY_F12), /* Mail */
308 KEY(4, 1, KEY_KPENTER),
309 KEY(4, 2, KEY_RIGHTALT), /* Alt */
310 KEY(4, 3, KEY_V),
311 KEY(4, 4, KEY_G),
312 KEY(4, 5, KEY_T),
313
314 KEY(5, 0, KEY_F8), /* Red/Off/Power */
315 KEY(5, 1, KEY_PAGEUP), /* Side up */
316 KEY(5, 2, KEY_DOT),
317 KEY(5, 3, KEY_B),
318 KEY(5, 4, KEY_H),
319 KEY(5, 5, KEY_Y),
320
321 KEY(6, 0, KEY_TAB), /* Side Activate */
322 KEY(6, 1, KEY_PAGEDOWN), /* Side down */
323 KEY(6, 2, KEY_ENTER),
324 KEY(6, 3, KEY_N),
325 KEY(6, 4, KEY_J),
326 KEY(6, 5, KEY_U),
327
328 KEY(7, 0, KEY_F6), /* Green/Call */
329 KEY(7, 1, KEY_O),
330 KEY(7, 2, KEY_BACKSPACE),
331 KEY(7, 3, KEY_M),
332 KEY(7, 4, KEY_K),
333 KEY(7, 5, KEY_I),
334};
335
336static struct pxa27x_keypad_platform_data centro_keypad_platform_data = {
337 .matrix_key_rows = 8,
338 .matrix_key_cols = 7,
339 .matrix_key_map = centro_matrix_keys,
340 .matrix_key_map_size = ARRAY_SIZE(centro_matrix_keys),
341 .direct_key_map = { KEY_CONNECT },
342 .direct_key_num = 1,
343
344 .debounce_interval = 30,
345};
346#endif /* CONFIG_MACH_CENTRO */
235 347
236/****************************************************************************** 348/******************************************************************************
237 * aSoC audio 349 * aSoC audio
238 ******************************************************************************/ 350 ******************************************************************************/
239 351
240static pxa2xx_audio_ops_t treo680_ac97_pdata = { 352static pxa2xx_audio_ops_t treo_ac97_pdata = {
241 .reset_gpio = 95, 353 .reset_gpio = 95,
242}; 354};
243 355
244/****************************************************************************** 356/******************************************************************************
245 * Backlight 357 * Backlight
246 ******************************************************************************/ 358 ******************************************************************************/
247static int treo680_backlight_init(struct device *dev) 359static int treo_backlight_init(struct device *dev)
248{ 360{
249 int ret; 361 int ret;
250 362
251 ret = gpio_request(GPIO_NR_TREO680_BL_POWER, "BL POWER"); 363 ret = gpio_request(GPIO_NR_TREO_BL_POWER, "BL POWER");
252 if (ret) 364 if (ret)
253 goto err; 365 goto err;
254 ret = gpio_direction_output(GPIO_NR_TREO680_BL_POWER, 0); 366 ret = gpio_direction_output(GPIO_NR_TREO_BL_POWER, 0);
255 if (ret) 367 if (ret)
256 goto err2; 368 goto err2;
257 369
258 return 0; 370 return 0;
259 371
260err2: 372err2:
261 gpio_free(GPIO_NR_TREO680_BL_POWER); 373 gpio_free(GPIO_NR_TREO_BL_POWER);
262err: 374err:
263 return ret; 375 return ret;
264} 376}
265 377
266static int treo680_backlight_notify(int brightness) 378static int treo_backlight_notify(int brightness)
267{ 379{
268 gpio_set_value(GPIO_NR_TREO680_BL_POWER, brightness); 380 gpio_set_value(GPIO_NR_TREO_BL_POWER, brightness);
269 return TREO680_MAX_INTENSITY - brightness; 381 return TREO_MAX_INTENSITY - brightness;
270}; 382};
271 383
272static void treo680_backlight_exit(struct device *dev) 384static void treo_backlight_exit(struct device *dev)
273{ 385{
274 gpio_free(GPIO_NR_TREO680_BL_POWER); 386 gpio_free(GPIO_NR_TREO_BL_POWER);
275} 387}
276 388
277static struct platform_pwm_backlight_data treo680_backlight_data = { 389static struct platform_pwm_backlight_data treo_backlight_data = {
278 .pwm_id = 0, 390 .pwm_id = 0,
279 .max_brightness = TREO680_MAX_INTENSITY, 391 .max_brightness = TREO_MAX_INTENSITY,
280 .dft_brightness = TREO680_DEFAULT_INTENSITY, 392 .dft_brightness = TREO_DEFAULT_INTENSITY,
281 .pwm_period_ns = TREO680_PERIOD_NS, 393 .pwm_period_ns = TREO_PERIOD_NS,
282 .init = treo680_backlight_init, 394 .init = treo_backlight_init,
283 .notify = treo680_backlight_notify, 395 .notify = treo_backlight_notify,
284 .exit = treo680_backlight_exit, 396 .exit = treo_backlight_exit,
285}; 397};
286 398
287static struct platform_device treo680_backlight = { 399static struct platform_device treo_backlight = {
288 .name = "pwm-backlight", 400 .name = "pwm-backlight",
289 .dev = { 401 .dev = {
290 .parent = &pxa27x_device_pwm0.dev, 402 .parent = &pxa27x_device_pwm0.dev,
291 .platform_data = &treo680_backlight_data, 403 .platform_data = &treo_backlight_data,
292 }, 404 },
293}; 405};
294 406
295/****************************************************************************** 407/******************************************************************************
296 * IrDA 408 * IrDA
297 ******************************************************************************/ 409 ******************************************************************************/
298static struct pxaficp_platform_data treo680_ficp_info = { 410static struct pxaficp_platform_data treo_ficp_info = {
299 .gpio_pwdown = GPIO_NR_TREO680_IR_EN, 411 .gpio_pwdown = GPIO_NR_TREO_IR_EN,
300 .transceiver_cap = IR_SIRMODE | IR_OFF, 412 .transceiver_cap = IR_SIRMODE | IR_OFF,
301}; 413};
302 414
303/****************************************************************************** 415/******************************************************************************
304 * UDC 416 * UDC
305 ******************************************************************************/ 417 ******************************************************************************/
306static struct pxa2xx_udc_mach_info treo680_udc_info __initdata = { 418static struct pxa2xx_udc_mach_info treo_udc_info __initdata = {
307 .gpio_vbus = GPIO_NR_TREO680_USB_DETECT, 419 .gpio_vbus = GPIO_NR_TREO_USB_DETECT,
308 .gpio_vbus_inverted = 1, 420 .gpio_vbus_inverted = 1,
309 .gpio_pullup = GPIO_NR_TREO680_USB_PULLUP, 421 .gpio_pullup = GPIO_NR_TREO_USB_PULLUP,
310}; 422};
311 423
312 424
313/****************************************************************************** 425/******************************************************************************
314 * USB host 426 * USB host
315 ******************************************************************************/ 427 ******************************************************************************/
428#ifdef CONFIG_MACH_TREO680
316static struct pxaohci_platform_data treo680_ohci_info = { 429static struct pxaohci_platform_data treo680_ohci_info = {
317 .port_mode = PMM_PERPORT_MODE, 430 .port_mode = PMM_PERPORT_MODE,
318 .flags = ENABLE_PORT1 | ENABLE_PORT3, 431 .flags = ENABLE_PORT1 | ENABLE_PORT3,
319 .power_budget = 0, 432 .power_budget = 0,
320}; 433};
434#endif /* CONFIG_MACH_TREO680 */
321 435
322/****************************************************************************** 436/******************************************************************************
323 * Power supply 437 * Power supply
@@ -326,41 +440,41 @@ static int power_supply_init(struct device *dev)
326{ 440{
327 int ret; 441 int ret;
328 442
329 ret = gpio_request(GPIO_NR_TREO680_POWER_DETECT, "CABLE_STATE_AC"); 443 ret = gpio_request(GPIO_NR_TREO_POWER_DETECT, "CABLE_STATE_AC");
330 if (ret) 444 if (ret)
331 goto err1; 445 goto err1;
332 ret = gpio_direction_input(GPIO_NR_TREO680_POWER_DETECT); 446 ret = gpio_direction_input(GPIO_NR_TREO_POWER_DETECT);
333 if (ret) 447 if (ret)
334 goto err2; 448 goto err2;
335 449
336 return 0; 450 return 0;
337 451
338err2: 452err2:
339 gpio_free(GPIO_NR_TREO680_POWER_DETECT); 453 gpio_free(GPIO_NR_TREO_POWER_DETECT);
340err1: 454err1:
341 return ret; 455 return ret;
342} 456}
343 457
344static int treo680_is_ac_online(void) 458static int treo_is_ac_online(void)
345{ 459{
346 return gpio_get_value(GPIO_NR_TREO680_POWER_DETECT); 460 return gpio_get_value(GPIO_NR_TREO_POWER_DETECT);
347} 461}
348 462
349static void power_supply_exit(struct device *dev) 463static void power_supply_exit(struct device *dev)
350{ 464{
351 gpio_free(GPIO_NR_TREO680_POWER_DETECT); 465 gpio_free(GPIO_NR_TREO_POWER_DETECT);
352} 466}
353 467
354static char *treo680_supplicants[] = { 468static char *treo_supplicants[] = {
355 "main-battery", 469 "main-battery",
356}; 470};
357 471
358static struct pda_power_pdata power_supply_info = { 472static struct pda_power_pdata power_supply_info = {
359 .init = power_supply_init, 473 .init = power_supply_init,
360 .is_ac_online = treo680_is_ac_online, 474 .is_ac_online = treo_is_ac_online,
361 .exit = power_supply_exit, 475 .exit = power_supply_exit,
362 .supplied_to = treo680_supplicants, 476 .supplied_to = treo_supplicants,
363 .num_supplicants = ARRAY_SIZE(treo680_supplicants), 477 .num_supplicants = ARRAY_SIZE(treo_supplicants),
364}; 478};
365 479
366static struct platform_device power_supply = { 480static struct platform_device power_supply = {
@@ -374,7 +488,8 @@ static struct platform_device power_supply = {
374/****************************************************************************** 488/******************************************************************************
375 * Vibra and LEDs 489 * Vibra and LEDs
376 ******************************************************************************/ 490 ******************************************************************************/
377static struct gpio_led gpio_leds[] = { 491#ifdef CONFIG_MACH_TREO680
492static struct gpio_led treo680_gpio_leds[] = {
378 { 493 {
379 .name = "treo680:vibra:vibra", 494 .name = "treo680:vibra:vibra",
380 .default_trigger = "none", 495 .default_trigger = "none",
@@ -383,34 +498,68 @@ static struct gpio_led gpio_leds[] = {
383 { 498 {
384 .name = "treo680:green:led", 499 .name = "treo680:green:led",
385 .default_trigger = "mmc0", 500 .default_trigger = "mmc0",
386 .gpio = GPIO_NR_TREO680_GREEN_LED, 501 .gpio = GPIO_NR_TREO_GREEN_LED,
387 }, 502 },
388 { 503 {
389 .name = "treo680:keybbl:keybbl", 504 .name = "treo680:white:keybbl",
390 .default_trigger = "none", 505 .default_trigger = "none",
391 .gpio = GPIO_NR_TREO680_KEYB_BL, 506 .gpio = GPIO_NR_TREO680_KEYB_BL,
392 }, 507 },
393}; 508};
394 509
395static struct gpio_led_platform_data gpio_led_info = { 510static struct gpio_led_platform_data treo680_gpio_led_info = {
396 .leds = gpio_leds, 511 .leds = treo680_gpio_leds,
397 .num_leds = ARRAY_SIZE(gpio_leds), 512 .num_leds = ARRAY_SIZE(treo680_gpio_leds),
398}; 513};
399 514
400static struct platform_device treo680_leds = { 515static struct platform_device treo680_leds = {
401 .name = "leds-gpio", 516 .name = "leds-gpio",
402 .id = -1, 517 .id = -1,
403 .dev = { 518 .dev = {
404 .platform_data = &gpio_led_info, 519 .platform_data = &treo680_gpio_led_info,
405 } 520 }
406}; 521};
522#endif /* CONFIG_MACH_TREO680 */
407 523
524#ifdef CONFIG_MACH_CENTRO
525static struct gpio_led centro_gpio_leds[] = {
526 {
527 .name = "centro:vibra:vibra",
528 .default_trigger = "none",
529 .gpio = GPIO_NR_CENTRO_VIBRATE_EN,
530 },
531 {
532 .name = "centro:green:led",
533 .default_trigger = "mmc0",
534 .gpio = GPIO_NR_TREO_GREEN_LED,
535 },
536 {
537 .name = "centro:white:keybbl",
538 .default_trigger = "none",
539 .active_low = 1,
540 .gpio = GPIO_NR_CENTRO_KEYB_BL,
541 },
542};
543
544static struct gpio_led_platform_data centro_gpio_led_info = {
545 .leds = centro_gpio_leds,
546 .num_leds = ARRAY_SIZE(centro_gpio_leds),
547};
548
549static struct platform_device centro_leds = {
550 .name = "leds-gpio",
551 .id = -1,
552 .dev = {
553 .platform_data = &centro_gpio_led_info,
554 }
555};
556#endif /* CONFIG_MACH_CENTRO */
408 557
409/****************************************************************************** 558/******************************************************************************
410 * Framebuffer 559 * Framebuffer
411 ******************************************************************************/ 560 ******************************************************************************/
412/* TODO: add support for 324x324 */ 561/* TODO: add support for 324x324 */
413static struct pxafb_mode_info treo680_lcd_modes[] = { 562static struct pxafb_mode_info treo_lcd_modes[] = {
414{ 563{
415 .pixclock = 86538, 564 .pixclock = 86538,
416 .xres = 320, 565 .xres = 320,
@@ -427,21 +576,21 @@ static struct pxafb_mode_info treo680_lcd_modes[] = {
427}, 576},
428}; 577};
429 578
430static void treo680_lcd_power(int on, struct fb_var_screeninfo *info) 579static void treo_lcd_power(int on, struct fb_var_screeninfo *info)
431{ 580{
432 gpio_set_value(GPIO_NR_TREO680_BL_POWER, on); 581 gpio_set_value(GPIO_NR_TREO_BL_POWER, on);
433} 582}
434 583
435static struct pxafb_mach_info treo680_lcd_screen = { 584static struct pxafb_mach_info treo_lcd_screen = {
436 .modes = treo680_lcd_modes, 585 .modes = treo_lcd_modes,
437 .num_modes = ARRAY_SIZE(treo680_lcd_modes), 586 .num_modes = ARRAY_SIZE(treo_lcd_modes),
438 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL, 587 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
439}; 588};
440 589
441/****************************************************************************** 590/******************************************************************************
442 * Power management - standby 591 * Power management - standby
443 ******************************************************************************/ 592 ******************************************************************************/
444static void __init treo680_pm_init(void) 593static void __init treo_pm_init(void)
445{ 594{
446 static u32 resume[] = { 595 static u32 resume[] = {
447 0xe3a00101, /* mov r0, #0x40000000 */ 596 0xe3a00101, /* mov r0, #0x40000000 */
@@ -450,70 +599,118 @@ static void __init treo680_pm_init(void)
450 }; 599 };
451 600
452 /* this is where the bootloader jumps */ 601 /* this is where the bootloader jumps */
453 memcpy(phys_to_virt(TREO680_STR_BASE), resume, sizeof(resume)); 602 memcpy(phys_to_virt(TREO_STR_BASE), resume, sizeof(resume));
454} 603}
455 604
456/****************************************************************************** 605/******************************************************************************
457 * Machine init 606 * Machine init
458 ******************************************************************************/ 607 ******************************************************************************/
459static struct platform_device *devices[] __initdata = { 608static struct platform_device *treo_devices[] __initdata = {
460 &treo680_backlight, 609 &treo_backlight,
461 &treo680_leds,
462 &power_supply, 610 &power_supply,
463}; 611};
464 612
613#ifdef CONFIG_MACH_TREO680
614static struct platform_device *treo680_devices[] __initdata = {
615 &treo680_leds,
616};
617#endif /* CONFIG_MACH_TREO680 */
618
619#ifdef CONFIG_MACH_CENTRO
620static struct platform_device *centro_devices[] __initdata = {
621 &centro_leds,
622};
623#endif /* CONFIG_MACH_CENTRO */
624
465/* setup udc GPIOs initial state */ 625/* setup udc GPIOs initial state */
466static void __init treo680_udc_init(void) 626static void __init treo_udc_init(void)
467{ 627{
468 if (!gpio_request(GPIO_NR_TREO680_USB_PULLUP, "UDC Vbus")) { 628 if (!gpio_request(GPIO_NR_TREO_USB_PULLUP, "UDC Vbus")) {
469 gpio_direction_output(GPIO_NR_TREO680_USB_PULLUP, 1); 629 gpio_direction_output(GPIO_NR_TREO_USB_PULLUP, 1);
470 gpio_free(GPIO_NR_TREO680_USB_PULLUP); 630 gpio_free(GPIO_NR_TREO_USB_PULLUP);
471 } 631 }
472} 632}
473 633
474static void __init treo680_lcd_power_init(void) 634static void __init treo_lcd_power_init(void)
475{ 635{
476 int ret; 636 int ret;
477 637
478 ret = gpio_request(GPIO_NR_TREO680_LCD_POWER, "LCD POWER"); 638 ret = gpio_request(GPIO_NR_TREO_LCD_POWER, "LCD POWER");
479 if (ret) { 639 if (ret) {
480 pr_err("Treo680: LCD power GPIO request failed!\n"); 640 pr_err("Treo680: LCD power GPIO request failed!\n");
481 return; 641 return;
482 } 642 }
483 643
484 ret = gpio_direction_output(GPIO_NR_TREO680_LCD_POWER, 0); 644 ret = gpio_direction_output(GPIO_NR_TREO_LCD_POWER, 0);
485 if (ret) { 645 if (ret) {
486 pr_err("Treo680: setting LCD power GPIO direction failed!\n"); 646 pr_err("Treo680: setting LCD power GPIO direction failed!\n");
487 gpio_free(GPIO_NR_TREO680_LCD_POWER); 647 gpio_free(GPIO_NR_TREO_LCD_POWER);
488 return; 648 return;
489 } 649 }
490 650
491 treo680_lcd_screen.pxafb_lcd_power = treo680_lcd_power; 651 treo_lcd_screen.pxafb_lcd_power = treo_lcd_power;
492} 652}
493 653
654static void __init treo_init(void)
655{
656 pxa_set_ffuart_info(NULL);
657 pxa_set_btuart_info(NULL);
658 pxa_set_stuart_info(NULL);
659
660 treo_pm_init();
661 pxa2xx_mfp_config(ARRAY_AND_SIZE(treo_pin_config));
662 treo_lcd_power_init();
663 set_pxa_fb_info(&treo_lcd_screen);
664 treo_udc_init();
665 pxa_set_udc_info(&treo_udc_info);
666 pxa_set_ac97_info(&treo_ac97_pdata);
667 pxa_set_ficp_info(&treo_ficp_info);
668
669 platform_add_devices(ARRAY_AND_SIZE(treo_devices));
670}
671
672#ifdef CONFIG_MACH_TREO680
494static void __init treo680_init(void) 673static void __init treo680_init(void)
495{ 674{
496 treo680_pm_init(); 675 treo_init();
497 pxa2xx_mfp_config(ARRAY_AND_SIZE(treo680_pin_config)); 676 pxa2xx_mfp_config(ARRAY_AND_SIZE(treo680_pin_config));
498 pxa_set_keypad_info(&treo680_keypad_platform_data);
499 treo680_lcd_power_init();
500 set_pxa_fb_info(&treo680_lcd_screen);
501 pxa_set_mci_info(&treo680_mci_platform_data); 677 pxa_set_mci_info(&treo680_mci_platform_data);
502 treo680_udc_init(); 678 pxa_set_keypad_info(&treo680_keypad_platform_data);
503 pxa_set_udc_info(&treo680_udc_info);
504 pxa_set_ac97_info(&treo680_ac97_pdata);
505 pxa_set_ficp_info(&treo680_ficp_info);
506 pxa_set_ohci_info(&treo680_ohci_info); 679 pxa_set_ohci_info(&treo680_ohci_info);
507 680
508 platform_add_devices(devices, ARRAY_SIZE(devices)); 681 platform_add_devices(ARRAY_AND_SIZE(treo680_devices));
509} 682}
510 683
511MACHINE_START(TREO680, "Palm Treo 680") 684MACHINE_START(TREO680, "Palm Treo 680")
512 .phys_io = TREO680_PHYS_IO_START, 685 .phys_io = TREO_PHYS_IO_START,
513 .io_pg_offst = io_p2v(0x40000000), 686 .io_pg_offst = io_p2v(0x40000000),
514 .boot_params = 0xa0000100, 687 .boot_params = 0xa0000100,
515 .map_io = pxa_map_io, 688 .map_io = pxa_map_io,
516 .init_irq = pxa27x_init_irq, 689 .init_irq = pxa27x_init_irq,
517 .timer = &pxa_timer, 690 .timer = &pxa_timer,
518 .init_machine = treo680_init, 691 .init_machine = treo680_init,
692MACHINE_END
693#endif /* CONFIG_MACH_TREO680 */
694
695#ifdef CONFIG_MACH_CENTRO
696static void __init centro_init(void)
697{
698 treo_init();
699 pxa2xx_mfp_config(ARRAY_AND_SIZE(centro685_pin_config));
700 pxa_set_mci_info(&centro_mci_platform_data);
701
702 pxa_set_keypad_info(&centro_keypad_platform_data);
703
704 platform_add_devices(ARRAY_AND_SIZE(centro_devices));
705}
706
707MACHINE_START(CENTRO, "Palm Centro 685")
708 .phys_io = TREO_PHYS_IO_START,
709 .io_pg_offst = io_p2v(0x40000000),
710 .boot_params = 0xa0000100,
711 .map_io = pxa_map_io,
712 .init_irq = pxa27x_init_irq,
713 .timer = &pxa_timer,
714 .init_machine = centro_init,
519MACHINE_END 715MACHINE_END
716#endif /* CONFIG_MACH_CENTRO */
diff --git a/arch/arm/mach-pxa/palmtx.c b/arch/arm/mach-pxa/palmtx.c
index 76a2b37eaf30..7bf18c2f002f 100644
--- a/arch/arm/mach-pxa/palmtx.c
+++ b/arch/arm/mach-pxa/palmtx.c
@@ -570,6 +570,10 @@ static void __init palmtx_init(void)
570{ 570{
571 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmtx_pin_config)); 571 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmtx_pin_config));
572 572
573 pxa_set_ffuart_info(NULL);
574 pxa_set_btuart_info(NULL);
575 pxa_set_stuart_info(NULL);
576
573 palmtx_pm_init(); 577 palmtx_pm_init();
574 set_pxa_fb_info(&palmtx_lcd_screen); 578 set_pxa_fb_info(&palmtx_lcd_screen);
575 pxa_set_mci_info(&palmtx_mci_platform_data); 579 pxa_set_mci_info(&palmtx_mci_platform_data);
diff --git a/arch/arm/mach-pxa/palmz72.c b/arch/arm/mach-pxa/palmz72.c
index c2bf493c5f53..d787ac7cfdd8 100644
--- a/arch/arm/mach-pxa/palmz72.c
+++ b/arch/arm/mach-pxa/palmz72.c
@@ -491,6 +491,10 @@ static void __init palmz72_init(void)
491{ 491{
492 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmz72_pin_config)); 492 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmz72_pin_config));
493 493
494 pxa_set_ffuart_info(NULL);
495 pxa_set_btuart_info(NULL);
496 pxa_set_stuart_info(NULL);
497
494 set_pxa_fb_info(&palmz72_lcd_screen); 498 set_pxa_fb_info(&palmz72_lcd_screen);
495 pxa_set_mci_info(&palmz72_mci_platform_data); 499 pxa_set_mci_info(&palmz72_mci_platform_data);
496 palmz72_udc_init(); 500 palmz72_udc_init();
diff --git a/arch/arm/mach-pxa/pcm027.c b/arch/arm/mach-pxa/pcm027.c
index 6abfa2979c61..2190af066470 100644
--- a/arch/arm/mach-pxa/pcm027.c
+++ b/arch/arm/mach-pxa/pcm027.c
@@ -227,6 +227,10 @@ static void __init pcm027_init(void)
227 227
228 pxa2xx_mfp_config(pcm027_pin_config, ARRAY_SIZE(pcm027_pin_config)); 228 pxa2xx_mfp_config(pcm027_pin_config, ARRAY_SIZE(pcm027_pin_config));
229 229
230 pxa_set_ffuart_info(NULL);
231 pxa_set_btuart_info(NULL);
232 pxa_set_stuart_info(NULL);
233
230 platform_add_devices(devices, ARRAY_SIZE(devices)); 234 platform_add_devices(devices, ARRAY_SIZE(devices));
231 235
232 /* at last call the baseboard to initialize itself */ 236 /* at last call the baseboard to initialize itself */
diff --git a/arch/arm/mach-pxa/pcm990-baseboard.c b/arch/arm/mach-pxa/pcm990-baseboard.c
index bbda57078e0f..d5255ae74fe3 100644
--- a/arch/arm/mach-pxa/pcm990-baseboard.c
+++ b/arch/arm/mach-pxa/pcm990-baseboard.c
@@ -359,19 +359,12 @@ static unsigned long pcm990_camera_pin_config[] = {
359 GPIO44_CIF_LV, 359 GPIO44_CIF_LV,
360}; 360};
361 361
362static int pcm990_pxacamera_init(struct device *dev)
363{
364 pxa2xx_mfp_config(ARRAY_AND_SIZE(pcm990_camera_pin_config));
365 return 0;
366}
367
368/* 362/*
369 * CICR4: PCLK_EN: Pixel clock is supplied by the sensor 363 * CICR4: PCLK_EN: Pixel clock is supplied by the sensor
370 * MCLK_EN: Master clock is generated by PXA 364 * MCLK_EN: Master clock is generated by PXA
371 * PCP: Data sampled on the falling edge of pixel clock 365 * PCP: Data sampled on the falling edge of pixel clock
372 */ 366 */
373struct pxacamera_platform_data pcm990_pxacamera_platform_data = { 367struct pxacamera_platform_data pcm990_pxacamera_platform_data = {
374 .init = pcm990_pxacamera_init,
375 .flags = PXA_CAMERA_MASTER | PXA_CAMERA_DATAWIDTH_8 | PXA_CAMERA_DATAWIDTH_10 | 368 .flags = PXA_CAMERA_MASTER | PXA_CAMERA_DATAWIDTH_8 | PXA_CAMERA_DATAWIDTH_10 |
376 PXA_CAMERA_PCLK_EN | PXA_CAMERA_MCLK_EN/* | PXA_CAMERA_PCP*/, 369 PXA_CAMERA_PCLK_EN | PXA_CAMERA_MCLK_EN/* | PXA_CAMERA_PCP*/,
377 .mclk_10khz = 1000, 370 .mclk_10khz = 1000,
@@ -532,6 +525,7 @@ void __init pcm990_baseboard_init(void)
532 pxa_set_ac97_info(NULL); 525 pxa_set_ac97_info(NULL);
533 526
534#if defined(CONFIG_VIDEO_PXA27x) || defined(CONFIG_VIDEO_PXA27x_MODULE) 527#if defined(CONFIG_VIDEO_PXA27x) || defined(CONFIG_VIDEO_PXA27x_MODULE)
528 pxa2xx_mfp_config(ARRAY_AND_SIZE(pcm990_camera_pin_config));
535 pxa_set_camera_info(&pcm990_pxacamera_platform_data); 529 pxa_set_camera_info(&pcm990_pxacamera_platform_data);
536 530
537 i2c_register_board_info(0, ARRAY_AND_SIZE(pcm990_i2c_devices)); 531 i2c_register_board_info(0, ARRAY_AND_SIZE(pcm990_i2c_devices));
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c
index a186994f77fb..e5eeb3a62d01 100644
--- a/arch/arm/mach-pxa/poodle.c
+++ b/arch/arm/mach-pxa/poodle.c
@@ -449,6 +449,10 @@ static void __init poodle_init(void)
449 449
450 pxa2xx_mfp_config(ARRAY_AND_SIZE(poodle_pin_config)); 450 pxa2xx_mfp_config(ARRAY_AND_SIZE(poodle_pin_config));
451 451
452 pxa_set_ffuart_info(NULL);
453 pxa_set_btuart_info(NULL);
454 pxa_set_stuart_info(NULL);
455
452 platform_scoop_config = &poodle_pcmcia_config; 456 platform_scoop_config = &poodle_pcmcia_config;
453 457
454 ret = platform_add_devices(devices, ARRAY_SIZE(devices)); 458 ret = platform_add_devices(devices, ARRAY_SIZE(devices));
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
index 77c2693cfeef..2c1b0b70d01d 100644
--- a/arch/arm/mach-pxa/pxa25x.c
+++ b/arch/arm/mach-pxa/pxa25x.c
@@ -322,9 +322,6 @@ void __init pxa26x_init_irq(void)
322 322
323static struct platform_device *pxa25x_devices[] __initdata = { 323static struct platform_device *pxa25x_devices[] __initdata = {
324 &pxa25x_device_udc, 324 &pxa25x_device_udc,
325 &pxa_device_ffuart,
326 &pxa_device_btuart,
327 &pxa_device_stuart,
328 &pxa_device_i2s, 325 &pxa_device_i2s,
329 &sa1100_device_rtc, 326 &sa1100_device_rtc,
330 &pxa25x_device_ssp, 327 &pxa25x_device_ssp,
@@ -372,10 +369,8 @@ static int __init pxa25x_init(void)
372 } 369 }
373 370
374 /* Only add HWUART for PXA255/26x; PXA210/250 do not have it. */ 371 /* Only add HWUART for PXA255/26x; PXA210/250 do not have it. */
375 if (cpu_is_pxa255()) { 372 if (cpu_is_pxa255())
376 clks_register(&pxa25x_hwuart_clkreg, 1); 373 clks_register(&pxa25x_hwuart_clkreg, 1);
377 ret = platform_device_register(&pxa_device_hwuart);
378 }
379 374
380 return ret; 375 return ret;
381} 376}
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
index ec68cc16b4e3..6a0b73167e03 100644
--- a/arch/arm/mach-pxa/pxa27x.c
+++ b/arch/arm/mach-pxa/pxa27x.c
@@ -364,9 +364,6 @@ void __init pxa27x_set_i2c_power_info(struct i2c_pxa_platform_data *info)
364 364
365static struct platform_device *devices[] __initdata = { 365static struct platform_device *devices[] __initdata = {
366 &pxa27x_device_udc, 366 &pxa27x_device_udc,
367 &pxa_device_ffuart,
368 &pxa_device_btuart,
369 &pxa_device_stuart,
370 &pxa_device_i2s, 367 &pxa_device_i2s,
371 &sa1100_device_rtc, 368 &sa1100_device_rtc,
372 &pxa_device_rtc, 369 &pxa_device_rtc,
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
index 09b7b1a10cad..fcb0721f4669 100644
--- a/arch/arm/mach-pxa/pxa3xx.c
+++ b/arch/arm/mach-pxa/pxa3xx.c
@@ -30,6 +30,7 @@
30#include <mach/pm.h> 30#include <mach/pm.h>
31#include <mach/dma.h> 31#include <mach/dma.h>
32#include <mach/ssp.h> 32#include <mach/ssp.h>
33#include <mach/regs-intc.h>
33#include <plat/i2c.h> 34#include <plat/i2c.h>
34 35
35#include "generic.h" 36#include "generic.h"
@@ -45,6 +46,9 @@
45#define ACCR_D0CS (1 << 26) 46#define ACCR_D0CS (1 << 26)
46#define ACCR_PCCE (1 << 11) 47#define ACCR_PCCE (1 << 11)
47 48
49#define PECR_IE(n) ((1 << ((n) * 2)) << 28)
50#define PECR_IS(n) ((1 << ((n) * 2)) << 29)
51
48/* crystal frequency to static memory controller multiplier (SMCFS) */ 52/* crystal frequency to static memory controller multiplier (SMCFS) */
49static unsigned char smcfs_mult[8] = { 6, 0, 8, 0, 0, 16, }; 53static unsigned char smcfs_mult[8] = { 6, 0, 8, 0, 0, 16, };
50 54
@@ -237,6 +241,7 @@ static DEFINE_PXA3_CKEN(pxa3xx_stuart, STUART, 14857000, 1);
237static DEFINE_PXA3_CKEN(pxa3xx_i2c, I2C, 32842000, 0); 241static DEFINE_PXA3_CKEN(pxa3xx_i2c, I2C, 32842000, 0);
238static DEFINE_PXA3_CKEN(pxa3xx_udc, UDC, 48000000, 5); 242static DEFINE_PXA3_CKEN(pxa3xx_udc, UDC, 48000000, 5);
239static DEFINE_PXA3_CKEN(pxa3xx_usbh, USBH, 48000000, 0); 243static DEFINE_PXA3_CKEN(pxa3xx_usbh, USBH, 48000000, 0);
244static DEFINE_PXA3_CKEN(pxa3xx_u2d, USB2, 48000000, 0);
240static DEFINE_PXA3_CKEN(pxa3xx_keypad, KEYPAD, 32768, 0); 245static DEFINE_PXA3_CKEN(pxa3xx_keypad, KEYPAD, 32768, 0);
241static DEFINE_PXA3_CKEN(pxa3xx_ssp1, SSP1, 13000000, 0); 246static DEFINE_PXA3_CKEN(pxa3xx_ssp1, SSP1, 13000000, 0);
242static DEFINE_PXA3_CKEN(pxa3xx_ssp2, SSP2, 13000000, 0); 247static DEFINE_PXA3_CKEN(pxa3xx_ssp2, SSP2, 13000000, 0);
@@ -261,6 +266,7 @@ static struct clk_lookup pxa3xx_clkregs[] = {
261 INIT_CLKREG(&clk_pxa3xx_i2c, "pxa2xx-i2c.0", NULL), 266 INIT_CLKREG(&clk_pxa3xx_i2c, "pxa2xx-i2c.0", NULL),
262 INIT_CLKREG(&clk_pxa3xx_udc, "pxa27x-udc", NULL), 267 INIT_CLKREG(&clk_pxa3xx_udc, "pxa27x-udc", NULL),
263 INIT_CLKREG(&clk_pxa3xx_usbh, "pxa27x-ohci", NULL), 268 INIT_CLKREG(&clk_pxa3xx_usbh, "pxa27x-ohci", NULL),
269 INIT_CLKREG(&clk_pxa3xx_u2d, NULL, "U2DCLK"),
264 INIT_CLKREG(&clk_pxa3xx_keypad, "pxa27x-keypad", NULL), 270 INIT_CLKREG(&clk_pxa3xx_keypad, "pxa27x-keypad", NULL),
265 INIT_CLKREG(&clk_pxa3xx_ssp1, "pxa27x-ssp.0", NULL), 271 INIT_CLKREG(&clk_pxa3xx_ssp1, "pxa27x-ssp.0", NULL),
266 INIT_CLKREG(&clk_pxa3xx_ssp2, "pxa27x-ssp.1", NULL), 272 INIT_CLKREG(&clk_pxa3xx_ssp2, "pxa27x-ssp.1", NULL),
@@ -530,6 +536,43 @@ static inline void pxa3xx_init_pm(void) {}
530#define pxa3xx_set_wake NULL 536#define pxa3xx_set_wake NULL
531#endif 537#endif
532 538
539static void pxa_ack_ext_wakeup(unsigned int irq)
540{
541 PECR |= PECR_IS(irq - IRQ_WAKEUP0);
542}
543
544static void pxa_mask_ext_wakeup(unsigned int irq)
545{
546 ICMR2 &= ~(1 << ((irq - PXA_IRQ(0)) & 0x1f));
547 PECR &= ~PECR_IE(irq - IRQ_WAKEUP0);
548}
549
550static void pxa_unmask_ext_wakeup(unsigned int irq)
551{
552 ICMR2 |= 1 << ((irq - PXA_IRQ(0)) & 0x1f);
553 PECR |= PECR_IE(irq - IRQ_WAKEUP0);
554}
555
556static struct irq_chip pxa_ext_wakeup_chip = {
557 .name = "WAKEUP",
558 .ack = pxa_ack_ext_wakeup,
559 .mask = pxa_mask_ext_wakeup,
560 .unmask = pxa_unmask_ext_wakeup,
561};
562
563static void __init pxa_init_ext_wakeup_irq(set_wake_t fn)
564{
565 int irq;
566
567 for (irq = IRQ_WAKEUP0; irq <= IRQ_WAKEUP1; irq++) {
568 set_irq_chip(irq, &pxa_ext_wakeup_chip);
569 set_irq_handler(irq, handle_edge_irq);
570 set_irq_flags(irq, IRQF_VALID);
571 }
572
573 pxa_ext_wakeup_chip.set_wake = fn;
574}
575
533void __init pxa3xx_init_irq(void) 576void __init pxa3xx_init_irq(void)
534{ 577{
535 /* enable CP6 access */ 578 /* enable CP6 access */
@@ -539,6 +582,7 @@ void __init pxa3xx_init_irq(void)
539 __asm__ __volatile__("mcr p15, 0, %0, c15, c1, 0\n": :"r"(value)); 582 __asm__ __volatile__("mcr p15, 0, %0, c15, c1, 0\n": :"r"(value));
540 583
541 pxa_init_irq(56, pxa3xx_set_wake); 584 pxa_init_irq(56, pxa3xx_set_wake);
585 pxa_init_ext_wakeup_irq(pxa3xx_set_wake);
542 pxa_init_gpio(IRQ_GPIO_2_x, 2, 127, NULL); 586 pxa_init_gpio(IRQ_GPIO_2_x, 2, 127, NULL);
543} 587}
544 588
@@ -553,9 +597,6 @@ void __init pxa3xx_set_i2c_power_info(struct i2c_pxa_platform_data *info)
553 597
554static struct platform_device *devices[] __initdata = { 598static struct platform_device *devices[] __initdata = {
555 &pxa27x_device_udc, 599 &pxa27x_device_udc,
556 &pxa_device_ffuart,
557 &pxa_device_btuart,
558 &pxa_device_stuart,
559 &pxa_device_i2s, 600 &pxa_device_i2s,
560 &sa1100_device_rtc, 601 &sa1100_device_rtc,
561 &pxa_device_rtc, 602 &pxa_device_rtc,
diff --git a/arch/arm/mach-pxa/saar.c b/arch/arm/mach-pxa/saar.c
index 8241a63ea589..115b6f234bdd 100644
--- a/arch/arm/mach-pxa/saar.c
+++ b/arch/arm/mach-pxa/saar.c
@@ -22,9 +22,13 @@
22#include <linux/i2c.h> 22#include <linux/i2c.h>
23#include <linux/smc91x.h> 23#include <linux/smc91x.h>
24#include <linux/mfd/da903x.h> 24#include <linux/mfd/da903x.h>
25#include <linux/mtd/mtd.h>
26#include <linux/mtd/partitions.h>
27#include <linux/mtd/onenand.h>
25 28
26#include <asm/mach-types.h> 29#include <asm/mach-types.h>
27#include <asm/mach/arch.h> 30#include <asm/mach/arch.h>
31#include <asm/mach/flash.h>
28 32
29#include <mach/pxa930.h> 33#include <mach/pxa930.h>
30#include <plat/i2c.h> 34#include <plat/i2c.h>
@@ -33,7 +37,7 @@
33#include "devices.h" 37#include "devices.h"
34#include "generic.h" 38#include "generic.h"
35 39
36#define GPIO_LCD_RESET (16) 40#define GPIO_LCD_RESET (16)
37 41
38/* SAAR MFP configurations */ 42/* SAAR MFP configurations */
39static mfp_cfg_t saar_mfp_cfg[] __initdata = { 43static mfp_cfg_t saar_mfp_cfg[] __initdata = {
@@ -56,6 +60,31 @@ static mfp_cfg_t saar_mfp_cfg[] __initdata = {
56 /* Ethernet */ 60 /* Ethernet */
57 DF_nCS1_nCS3, 61 DF_nCS1_nCS3,
58 GPIO97_GPIO, 62 GPIO97_GPIO,
63
64 /* DFI */
65 DF_INT_RnB_ND_INT_RnB,
66 DF_nRE_nOE_ND_nRE,
67 DF_nWE_ND_nWE,
68 DF_CLE_nOE_ND_CLE,
69 DF_nADV1_ALE_ND_ALE,
70 DF_nADV2_ALE_nCS3,
71 DF_nCS0_ND_nCS0,
72 DF_IO0_ND_IO0,
73 DF_IO1_ND_IO1,
74 DF_IO2_ND_IO2,
75 DF_IO3_ND_IO3,
76 DF_IO4_ND_IO4,
77 DF_IO5_ND_IO5,
78 DF_IO6_ND_IO6,
79 DF_IO7_ND_IO7,
80 DF_IO8_ND_IO8,
81 DF_IO9_ND_IO9,
82 DF_IO10_ND_IO10,
83 DF_IO11_ND_IO11,
84 DF_IO12_ND_IO12,
85 DF_IO13_ND_IO13,
86 DF_IO14_ND_IO14,
87 DF_IO15_ND_IO15,
59}; 88};
60 89
61#define SAAR_ETH_PHYS (0x14000000) 90#define SAAR_ETH_PHYS (0x14000000)
@@ -451,10 +480,15 @@ static inline void saar_init_lcd(void) {}
451#endif 480#endif
452 481
453#if defined(CONFIG_I2C_PXA) || defined(CONFIG_I2C_PXA_MODULE) 482#if defined(CONFIG_I2C_PXA) || defined(CONFIG_I2C_PXA_MODULE)
483static struct da9034_backlight_pdata saar_da9034_backlight = {
484 .output_current = 4, /* 4mA */
485};
486
454static struct da903x_subdev_info saar_da9034_subdevs[] = { 487static struct da903x_subdev_info saar_da9034_subdevs[] = {
455 [0] = { 488 [0] = {
456 .name = "da903x-backlight", 489 .name = "da903x-backlight",
457 .id = DA9034_ID_WLED, 490 .id = DA9034_ID_WLED,
491 .platform_data = &saar_da9034_backlight,
458 }, 492 },
459}; 493};
460 494
@@ -480,12 +514,81 @@ static void __init saar_init_i2c(void)
480#else 514#else
481static inline void saar_init_i2c(void) {} 515static inline void saar_init_i2c(void) {}
482#endif 516#endif
517
518#if defined(CONFIG_MTD_ONENAND) || defined(CONFIG_MTD_ONENAND_MODULE)
519static struct mtd_partition saar_onenand_partitions[] = {
520 {
521 .name = "bootloader",
522 .offset = 0,
523 .size = SZ_1M,
524 .mask_flags = MTD_WRITEABLE,
525 }, {
526 .name = "reserved",
527 .offset = MTDPART_OFS_APPEND,
528 .size = SZ_128K,
529 .mask_flags = MTD_WRITEABLE,
530 }, {
531 .name = "reserved",
532 .offset = MTDPART_OFS_APPEND,
533 .size = SZ_8M,
534 .mask_flags = MTD_WRITEABLE,
535 }, {
536 .name = "kernel",
537 .offset = MTDPART_OFS_APPEND,
538 .size = (SZ_2M + SZ_1M),
539 .mask_flags = 0,
540 }, {
541 .name = "filesystem",
542 .offset = MTDPART_OFS_APPEND,
543 .size = SZ_48M,
544 .mask_flags = 0,
545 }
546};
547
548static struct onenand_platform_data saar_onenand_info = {
549 .parts = saar_onenand_partitions,
550 .nr_parts = ARRAY_SIZE(saar_onenand_partitions),
551};
552
553#define SMC_CS0_PHYS_BASE (0x10000000)
554
555static struct resource saar_resource_onenand[] = {
556 [0] = {
557 .start = SMC_CS0_PHYS_BASE,
558 .end = SMC_CS0_PHYS_BASE + SZ_1M,
559 .flags = IORESOURCE_MEM,
560 },
561};
562
563static struct platform_device saar_device_onenand = {
564 .name = "onenand-flash",
565 .id = -1,
566 .dev = {
567 .platform_data = &saar_onenand_info,
568 },
569 .resource = saar_resource_onenand,
570 .num_resources = ARRAY_SIZE(saar_resource_onenand),
571};
572
573static void __init saar_init_onenand(void)
574{
575 platform_device_register(&saar_device_onenand);
576}
577#else
578static void __init saar_init_onenand(void) {}
579#endif
580
483static void __init saar_init(void) 581static void __init saar_init(void)
484{ 582{
485 /* initialize MFP configurations */ 583 /* initialize MFP configurations */
486 pxa3xx_mfp_config(ARRAY_AND_SIZE(saar_mfp_cfg)); 584 pxa3xx_mfp_config(ARRAY_AND_SIZE(saar_mfp_cfg));
487 585
586 pxa_set_ffuart_info(NULL);
587 pxa_set_btuart_info(NULL);
588 pxa_set_stuart_info(NULL);
589
488 platform_device_register(&smc91x_device); 590 platform_device_register(&smc91x_device);
591 saar_init_onenand();
489 592
490 saar_init_i2c(); 593 saar_init_i2c();
491 saar_init_lcd(); 594 saar_init_lcd();
diff --git a/arch/arm/mach-pxa/sharpsl.h b/arch/arm/mach-pxa/sharpsl.h
index 55259f4756c8..1439785d3979 100644
--- a/arch/arm/mach-pxa/sharpsl.h
+++ b/arch/arm/mach-pxa/sharpsl.h
@@ -42,8 +42,8 @@ void corgi_lcdtg_hw_init(int mode);
42#define MAX1111_BATT_TEMP 2u 42#define MAX1111_BATT_TEMP 2u
43#define MAX1111_ACIN_VOLT 6u 43#define MAX1111_ACIN_VOLT 6u
44 44
45extern struct battery_thresh spitz_battery_levels_acin[]; 45extern struct battery_thresh sharpsl_battery_levels_acin[];
46extern struct battery_thresh spitz_battery_levels_noac[]; 46extern struct battery_thresh sharpsl_battery_levels_noac[];
47int sharpsl_pm_pxa_read_max1111(int channel); 47int sharpsl_pm_pxa_read_max1111(int channel);
48 48
49 49
diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c
index 629e05d1196e..67229a1ef55c 100644
--- a/arch/arm/mach-pxa/sharpsl_pm.c
+++ b/arch/arm/mach-pxa/sharpsl_pm.c
@@ -78,7 +78,7 @@ DEFINE_LED_TRIGGER(sharpsl_charge_led_trigger);
78 78
79 79
80 80
81struct battery_thresh spitz_battery_levels_acin[] = { 81struct battery_thresh sharpsl_battery_levels_acin[] = {
82 { 213, 100}, 82 { 213, 100},
83 { 212, 98}, 83 { 212, 98},
84 { 211, 95}, 84 { 211, 95},
@@ -121,7 +121,7 @@ struct battery_thresh spitz_battery_levels_acin[] = {
121 { 0, 0}, 121 { 0, 0},
122}; 122};
123 123
124struct battery_thresh spitz_battery_levels_noac[] = { 124struct battery_thresh sharpsl_battery_levels_noac[] = {
125 { 213, 100}, 125 { 213, 100},
126 { 212, 98}, 126 { 212, 98},
127 { 211, 95}, 127 { 211, 95},
@@ -165,19 +165,20 @@ struct battery_thresh spitz_battery_levels_noac[] = {
165}; 165};
166 166
167/* MAX1111 Commands */ 167/* MAX1111 Commands */
168#define MAXCTRL_PD0 1u << 0 168#define MAXCTRL_PD0 (1u << 0)
169#define MAXCTRL_PD1 1u << 1 169#define MAXCTRL_PD1 (1u << 1)
170#define MAXCTRL_SGL 1u << 2 170#define MAXCTRL_SGL (1u << 2)
171#define MAXCTRL_UNI 1u << 3 171#define MAXCTRL_UNI (1u << 3)
172#define MAXCTRL_SEL_SH 4 172#define MAXCTRL_SEL_SH 4
173#define MAXCTRL_STR 1u << 7 173#define MAXCTRL_STR (1u << 7)
174 174
175/* 175/*
176 * Read MAX1111 ADC 176 * Read MAX1111 ADC
177 */ 177 */
178int sharpsl_pm_pxa_read_max1111(int channel) 178int sharpsl_pm_pxa_read_max1111(int channel)
179{ 179{
180 if (machine_is_tosa()) // Ugly, better move this function into another module 180 /* Ugly, better move this function into another module */
181 if (machine_is_tosa())
181 return 0; 182 return 0;
182 183
183#ifdef CONFIG_CORGI_SSP_DEPRECATED 184#ifdef CONFIG_CORGI_SSP_DEPRECATED
@@ -238,7 +239,7 @@ EXPORT_SYMBOL(sharpsl_battery_kick);
238 239
239static void sharpsl_battery_thread(struct work_struct *private_) 240static void sharpsl_battery_thread(struct work_struct *private_)
240{ 241{
241 int voltage, percent, apm_status, i = 0; 242 int voltage, percent, apm_status, i;
242 243
243 if (!sharpsl_pm.machinfo) 244 if (!sharpsl_pm.machinfo)
244 return; 245 return;
@@ -250,15 +251,14 @@ static void sharpsl_battery_thread(struct work_struct *private_)
250 && time_after(jiffies, sharpsl_pm.charge_start_time + SHARPSL_CHARGE_ON_TIME_INTERVAL)) 251 && time_after(jiffies, sharpsl_pm.charge_start_time + SHARPSL_CHARGE_ON_TIME_INTERVAL))
251 schedule_delayed_work(&toggle_charger, 0); 252 schedule_delayed_work(&toggle_charger, 0);
252 253
253 while(1) { 254 for (i = 0; i < 5; i++) {
254 voltage = sharpsl_pm.machinfo->read_devdata(SHARPSL_BATT_VOLT); 255 voltage = sharpsl_pm.machinfo->read_devdata(SHARPSL_BATT_VOLT);
255 256 if (voltage > 0)
256 if (voltage > 0) break;
257 if (i++ > 5) {
258 voltage = sharpsl_pm.machinfo->bat_levels_noac[0].voltage;
259 dev_warn(sharpsl_pm.dev, "Warning: Cannot read main battery!\n");
260 break; 257 break;
261 } 258 }
259 if (voltage <= 0) {
260 voltage = sharpsl_pm.machinfo->bat_levels_noac[0].voltage;
261 dev_warn(sharpsl_pm.dev, "Warning: Cannot read main battery!\n");
262 } 262 }
263 263
264 voltage = sharpsl_average_value(voltage); 264 voltage = sharpsl_average_value(voltage);
@@ -266,8 +266,10 @@ static void sharpsl_battery_thread(struct work_struct *private_)
266 percent = get_percentage(voltage); 266 percent = get_percentage(voltage);
267 267
268 /* At low battery voltages, the voltage has a tendency to start 268 /* At low battery voltages, the voltage has a tendency to start
269 creeping back up so we try to avoid this here */ 269 creeping back up so we try to avoid this here */
270 if ((sharpsl_pm.battstat.ac_status == APM_AC_ONLINE) || (apm_status == APM_BATTERY_STATUS_HIGH) || percent <= sharpsl_pm.battstat.mainbat_percent) { 270 if ((sharpsl_pm.battstat.ac_status == APM_AC_ONLINE)
271 || (apm_status == APM_BATTERY_STATUS_HIGH)
272 || percent <= sharpsl_pm.battstat.mainbat_percent) {
271 sharpsl_pm.battstat.mainbat_voltage = voltage; 273 sharpsl_pm.battstat.mainbat_voltage = voltage;
272 sharpsl_pm.battstat.mainbat_status = apm_status; 274 sharpsl_pm.battstat.mainbat_status = apm_status;
273 sharpsl_pm.battstat.mainbat_percent = percent; 275 sharpsl_pm.battstat.mainbat_percent = percent;
@@ -279,8 +281,8 @@ static void sharpsl_battery_thread(struct work_struct *private_)
279#ifdef CONFIG_BACKLIGHT_CORGI 281#ifdef CONFIG_BACKLIGHT_CORGI
280 /* If battery is low. limit backlight intensity to save power. */ 282 /* If battery is low. limit backlight intensity to save power. */
281 if ((sharpsl_pm.battstat.ac_status != APM_AC_ONLINE) 283 if ((sharpsl_pm.battstat.ac_status != APM_AC_ONLINE)
282 && ((sharpsl_pm.battstat.mainbat_status == APM_BATTERY_STATUS_LOW) || 284 && ((sharpsl_pm.battstat.mainbat_status == APM_BATTERY_STATUS_LOW)
283 (sharpsl_pm.battstat.mainbat_status == APM_BATTERY_STATUS_CRITICAL))) { 285 || (sharpsl_pm.battstat.mainbat_status == APM_BATTERY_STATUS_CRITICAL))) {
284 if (!(sharpsl_pm.flags & SHARPSL_BL_LIMIT)) { 286 if (!(sharpsl_pm.flags & SHARPSL_BL_LIMIT)) {
285 sharpsl_pm.machinfo->backlight_limit(1); 287 sharpsl_pm.machinfo->backlight_limit(1);
286 sharpsl_pm.flags |= SHARPSL_BL_LIMIT; 288 sharpsl_pm.flags |= SHARPSL_BL_LIMIT;
@@ -293,8 +295,8 @@ static void sharpsl_battery_thread(struct work_struct *private_)
293 295
294 /* Suspend if critical battery level */ 296 /* Suspend if critical battery level */
295 if ((sharpsl_pm.battstat.ac_status != APM_AC_ONLINE) 297 if ((sharpsl_pm.battstat.ac_status != APM_AC_ONLINE)
296 && (sharpsl_pm.battstat.mainbat_status == APM_BATTERY_STATUS_CRITICAL) 298 && (sharpsl_pm.battstat.mainbat_status == APM_BATTERY_STATUS_CRITICAL)
297 && !(sharpsl_pm.flags & SHARPSL_APM_QUEUED)) { 299 && !(sharpsl_pm.flags & SHARPSL_APM_QUEUED)) {
298 sharpsl_pm.flags |= SHARPSL_APM_QUEUED; 300 sharpsl_pm.flags |= SHARPSL_APM_QUEUED;
299 dev_err(sharpsl_pm.dev, "Fatal Off\n"); 301 dev_err(sharpsl_pm.dev, "Fatal Off\n");
300 apm_queue_event(APM_CRITICAL_SUSPEND); 302 apm_queue_event(APM_CRITICAL_SUSPEND);
@@ -346,7 +348,7 @@ static void sharpsl_charge_error(void)
346 348
347static void sharpsl_charge_toggle(struct work_struct *private_) 349static void sharpsl_charge_toggle(struct work_struct *private_)
348{ 350{
349 dev_dbg(sharpsl_pm.dev, "Toogling Charger at time: %lx\n", jiffies); 351 dev_dbg(sharpsl_pm.dev, "Toggling Charger at time: %lx\n", jiffies);
350 352
351 if (!sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_ACIN)) { 353 if (!sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_ACIN)) {
352 sharpsl_charge_off(); 354 sharpsl_charge_off();
@@ -368,7 +370,7 @@ static void sharpsl_ac_timer(unsigned long data)
368{ 370{
369 int acin = sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_ACIN); 371 int acin = sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_ACIN);
370 372
371 dev_dbg(sharpsl_pm.dev, "AC Status: %d\n",acin); 373 dev_dbg(sharpsl_pm.dev, "AC Status: %d\n", acin);
372 374
373 sharpsl_average_clear(); 375 sharpsl_average_clear();
374 if (acin && (sharpsl_pm.charge_mode != CHRG_ON)) 376 if (acin && (sharpsl_pm.charge_mode != CHRG_ON))
@@ -472,14 +474,14 @@ static int sharpsl_average_value(int ad)
472 sharpsl_ad[sharpsl_ad_index] = ad; 474 sharpsl_ad[sharpsl_ad_index] = ad;
473 sharpsl_ad_index++; 475 sharpsl_ad_index++;
474 if (sharpsl_ad_index >= SHARPSL_CNV_VALUE_NUM) { 476 if (sharpsl_ad_index >= SHARPSL_CNV_VALUE_NUM) {
475 for (i=0; i < (SHARPSL_CNV_VALUE_NUM-1); i++) 477 for (i = 0; i < (SHARPSL_CNV_VALUE_NUM-1); i++)
476 sharpsl_ad[i] = sharpsl_ad[i+1]; 478 sharpsl_ad[i] = sharpsl_ad[i+1];
477 sharpsl_ad_index = SHARPSL_CNV_VALUE_NUM - 1; 479 sharpsl_ad_index = SHARPSL_CNV_VALUE_NUM - 1;
478 } 480 }
479 for (i=0; i < sharpsl_ad_index; i++) 481 for (i = 0; i < sharpsl_ad_index; i++)
480 ad_val += sharpsl_ad[i]; 482 ad_val += sharpsl_ad[i];
481 483
482 return (ad_val / sharpsl_ad_index); 484 return ad_val / sharpsl_ad_index;
483} 485}
484 486
485/* 487/*
@@ -492,8 +494,8 @@ static int get_select_val(int *val)
492 494
493 /* Find MAX val */ 495 /* Find MAX val */
494 temp = val[0]; 496 temp = val[0];
495 j=0; 497 j = 0;
496 for (i=1; i<5; i++) { 498 for (i = 1; i < 5; i++) {
497 if (temp < val[i]) { 499 if (temp < val[i]) {
498 temp = val[i]; 500 temp = val[i];
499 j = i; 501 j = i;
@@ -502,21 +504,21 @@ static int get_select_val(int *val)
502 504
503 /* Find MIN val */ 505 /* Find MIN val */
504 temp = val[4]; 506 temp = val[4];
505 k=4; 507 k = 4;
506 for (i=3; i>=0; i--) { 508 for (i = 3; i >= 0; i--) {
507 if (temp > val[i]) { 509 if (temp > val[i]) {
508 temp = val[i]; 510 temp = val[i];
509 k = i; 511 k = i;
510 } 512 }
511 } 513 }
512 514
513 for (i=0; i<5; i++) 515 for (i = 0; i < 5; i++)
514 if (i != j && i != k ) 516 if (i != j && i != k)
515 sum += val[i]; 517 sum += val[i];
516 518
517 dev_dbg(sharpsl_pm.dev, "Average: %d from values: %d, %d, %d, %d, %d\n", sum/3, val[0], val[1], val[2], val[3], val[4]); 519 dev_dbg(sharpsl_pm.dev, "Average: %d from values: %d, %d, %d, %d, %d\n", sum/3, val[0], val[1], val[2], val[3], val[4]);
518 520
519 return (sum/3); 521 return sum/3;
520} 522}
521 523
522static int sharpsl_check_battery_temp(void) 524static int sharpsl_check_battery_temp(void)
@@ -524,7 +526,7 @@ static int sharpsl_check_battery_temp(void)
524 int val, i, buff[5]; 526 int val, i, buff[5];
525 527
526 /* Check battery temperature */ 528 /* Check battery temperature */
527 for (i=0; i<5; i++) { 529 for (i = 0; i < 5; i++) {
528 mdelay(SHARPSL_CHECK_BATTERY_WAIT_TIME_TEMP); 530 mdelay(SHARPSL_CHECK_BATTERY_WAIT_TIME_TEMP);
529 sharpsl_pm.machinfo->measure_temp(1); 531 sharpsl_pm.machinfo->measure_temp(1);
530 mdelay(SHARPSL_CHECK_BATTERY_WAIT_TIME_TEMP); 532 mdelay(SHARPSL_CHECK_BATTERY_WAIT_TIME_TEMP);
@@ -557,7 +559,7 @@ static int sharpsl_check_battery_voltage(void)
557 sharpsl_pm.machinfo->discharge1(1); 559 sharpsl_pm.machinfo->discharge1(1);
558 560
559 /* Check battery voltage */ 561 /* Check battery voltage */
560 for (i=0; i<5; i++) { 562 for (i = 0; i < 5; i++) {
561 buff[i] = sharpsl_pm.machinfo->read_devdata(SHARPSL_BATT_VOLT); 563 buff[i] = sharpsl_pm.machinfo->read_devdata(SHARPSL_BATT_VOLT);
562 mdelay(SHARPSL_CHECK_BATTERY_WAIT_TIME_VOLT); 564 mdelay(SHARPSL_CHECK_BATTERY_WAIT_TIME_VOLT);
563 } 565 }
@@ -581,16 +583,16 @@ static int sharpsl_ac_check(void)
581{ 583{
582 int temp, i, buff[5]; 584 int temp, i, buff[5];
583 585
584 for (i=0; i<5; i++) { 586 for (i = 0; i < 5; i++) {
585 buff[i] = sharpsl_pm.machinfo->read_devdata(SHARPSL_ACIN_VOLT); 587 buff[i] = sharpsl_pm.machinfo->read_devdata(SHARPSL_ACIN_VOLT);
586 mdelay(SHARPSL_CHECK_BATTERY_WAIT_TIME_ACIN); 588 mdelay(SHARPSL_CHECK_BATTERY_WAIT_TIME_ACIN);
587 } 589 }
588 590
589 temp = get_select_val(buff); 591 temp = get_select_val(buff);
590 dev_dbg(sharpsl_pm.dev, "AC Voltage: %d\n",temp); 592 dev_dbg(sharpsl_pm.dev, "AC Voltage: %d\n", temp);
591 593
592 if ((temp > sharpsl_pm.machinfo->charge_acin_high) || (temp < sharpsl_pm.machinfo->charge_acin_low)) { 594 if ((temp > sharpsl_pm.machinfo->charge_acin_high) || (temp < sharpsl_pm.machinfo->charge_acin_low)) {
593 dev_err(sharpsl_pm.dev, "Error: AC check failed.\n"); 595 dev_err(sharpsl_pm.dev, "Error: AC check failed: voltage %d.\n", temp);
594 return -1; 596 return -1;
595 } 597 }
596 598
@@ -624,9 +626,9 @@ static int sharpsl_pm_resume(struct platform_device *pdev)
624 626
625static void corgi_goto_sleep(unsigned long alarm_time, unsigned int alarm_enable, suspend_state_t state) 627static void corgi_goto_sleep(unsigned long alarm_time, unsigned int alarm_enable, suspend_state_t state)
626{ 628{
627 dev_dbg(sharpsl_pm.dev, "Time is: %08x\n",RCNR); 629 dev_dbg(sharpsl_pm.dev, "Time is: %08x\n", RCNR);
628 630
629 dev_dbg(sharpsl_pm.dev, "Offline Charge Activate = %d\n",sharpsl_pm.flags & SHARPSL_DO_OFFLINE_CHRG); 631 dev_dbg(sharpsl_pm.dev, "Offline Charge Activate = %d\n", sharpsl_pm.flags & SHARPSL_DO_OFFLINE_CHRG);
630 /* not charging and AC-IN! */ 632 /* not charging and AC-IN! */
631 633
632 if ((sharpsl_pm.flags & SHARPSL_DO_OFFLINE_CHRG) && (sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_ACIN))) { 634 if ((sharpsl_pm.flags & SHARPSL_DO_OFFLINE_CHRG) && (sharpsl_pm.machinfo->read_devdata(SHARPSL_STATUS_ACIN))) {
@@ -644,12 +646,12 @@ static void corgi_goto_sleep(unsigned long alarm_time, unsigned int alarm_enable
644 if ((sharpsl_pm.charge_mode == CHRG_ON) && ((alarm_enable && ((alarm_time - RCNR) > (SHARPSL_BATCHK_TIME_SUSPEND + 30))) || !alarm_enable)) { 646 if ((sharpsl_pm.charge_mode == CHRG_ON) && ((alarm_enable && ((alarm_time - RCNR) > (SHARPSL_BATCHK_TIME_SUSPEND + 30))) || !alarm_enable)) {
645 RTSR &= RTSR_ALE; 647 RTSR &= RTSR_ALE;
646 RTAR = RCNR + SHARPSL_BATCHK_TIME_SUSPEND; 648 RTAR = RCNR + SHARPSL_BATCHK_TIME_SUSPEND;
647 dev_dbg(sharpsl_pm.dev, "Charging alarm at: %08x\n",RTAR); 649 dev_dbg(sharpsl_pm.dev, "Charging alarm at: %08x\n", RTAR);
648 sharpsl_pm.flags |= SHARPSL_ALARM_ACTIVE; 650 sharpsl_pm.flags |= SHARPSL_ALARM_ACTIVE;
649 } else if (alarm_enable) { 651 } else if (alarm_enable) {
650 RTSR &= RTSR_ALE; 652 RTSR &= RTSR_ALE;
651 RTAR = alarm_time; 653 RTAR = alarm_time;
652 dev_dbg(sharpsl_pm.dev, "User alarm at: %08x\n",RTAR); 654 dev_dbg(sharpsl_pm.dev, "User alarm at: %08x\n", RTAR);
653 } else { 655 } else {
654 dev_dbg(sharpsl_pm.dev, "No alarms set.\n"); 656 dev_dbg(sharpsl_pm.dev, "No alarms set.\n");
655 } 657 }
@@ -658,19 +660,18 @@ static void corgi_goto_sleep(unsigned long alarm_time, unsigned int alarm_enable
658 660
659 sharpsl_pm.machinfo->postsuspend(); 661 sharpsl_pm.machinfo->postsuspend();
660 662
661 dev_dbg(sharpsl_pm.dev, "Corgi woken up from suspend: %08x\n",PEDR); 663 dev_dbg(sharpsl_pm.dev, "Corgi woken up from suspend: %08x\n", PEDR);
662} 664}
663 665
664static int corgi_enter_suspend(unsigned long alarm_time, unsigned int alarm_enable, suspend_state_t state) 666static int corgi_enter_suspend(unsigned long alarm_time, unsigned int alarm_enable, suspend_state_t state)
665{ 667{
666 if (!sharpsl_pm.machinfo->should_wakeup(!(sharpsl_pm.flags & SHARPSL_ALARM_ACTIVE) && alarm_enable) ) 668 if (!sharpsl_pm.machinfo->should_wakeup(!(sharpsl_pm.flags & SHARPSL_ALARM_ACTIVE) && alarm_enable)) {
667 {
668 if (!(sharpsl_pm.flags & SHARPSL_ALARM_ACTIVE)) { 669 if (!(sharpsl_pm.flags & SHARPSL_ALARM_ACTIVE)) {
669 dev_dbg(sharpsl_pm.dev, "No user triggered wakeup events and not charging. Strange. Suspend.\n"); 670 dev_dbg(sharpsl_pm.dev, "No user triggered wakeup events and not charging. Strange. Suspend.\n");
670 corgi_goto_sleep(alarm_time, alarm_enable, state); 671 corgi_goto_sleep(alarm_time, alarm_enable, state);
671 return 1; 672 return 1;
672 } 673 }
673 if(sharpsl_off_charge_battery()) { 674 if (sharpsl_off_charge_battery()) {
674 dev_dbg(sharpsl_pm.dev, "Charging. Suspend...\n"); 675 dev_dbg(sharpsl_pm.dev, "Charging. Suspend...\n");
675 corgi_goto_sleep(alarm_time, alarm_enable, state); 676 corgi_goto_sleep(alarm_time, alarm_enable, state);
676 return 1; 677 return 1;
@@ -697,7 +698,7 @@ static int corgi_pxa_pm_enter(suspend_state_t state)
697 698
698 corgi_goto_sleep(alarm_time, alarm_status, state); 699 corgi_goto_sleep(alarm_time, alarm_status, state);
699 700
700 while (corgi_enter_suspend(alarm_time,alarm_status,state)) 701 while (corgi_enter_suspend(alarm_time, alarm_status, state))
701 {} 702 {}
702 703
703 if (sharpsl_pm.machinfo->earlyresume) 704 if (sharpsl_pm.machinfo->earlyresume)
@@ -732,7 +733,7 @@ static int sharpsl_fatal_check(void)
732 sharpsl_pm.machinfo->discharge1(1); 733 sharpsl_pm.machinfo->discharge1(1);
733 734
734 /* Check battery : check inserting battery ? */ 735 /* Check battery : check inserting battery ? */
735 for (i=0; i<5; i++) { 736 for (i = 0; i < 5; i++) {
736 buff[i] = sharpsl_pm.machinfo->read_devdata(SHARPSL_BATT_VOLT); 737 buff[i] = sharpsl_pm.machinfo->read_devdata(SHARPSL_BATT_VOLT);
737 mdelay(SHARPSL_CHECK_BATTERY_WAIT_TIME_VOLT); 738 mdelay(SHARPSL_CHECK_BATTERY_WAIT_TIME_VOLT);
738 } 739 }
@@ -812,7 +813,7 @@ static int sharpsl_off_charge_battery(void)
812 mdelay(SHARPSL_CHARGE_CO_CHECK_TIME); 813 mdelay(SHARPSL_CHARGE_CO_CHECK_TIME);
813 814
814 time = RCNR; 815 time = RCNR;
815 while(1) { 816 while (1) {
816 /* Check if any wakeup event had occurred */ 817 /* Check if any wakeup event had occurred */
817 if (sharpsl_pm.machinfo->charger_wakeup() != 0) 818 if (sharpsl_pm.machinfo->charger_wakeup() != 0)
818 return 0; 819 return 0;
@@ -835,9 +836,9 @@ static int sharpsl_off_charge_battery(void)
835 mdelay(SHARPSL_CHARGE_CO_CHECK_TIME); 836 mdelay(SHARPSL_CHARGE_CO_CHECK_TIME);
836 837
837 time = RCNR; 838 time = RCNR;
838 while(1) { 839 while (1) {
839 /* Check if any wakeup event had occurred */ 840 /* Check if any wakeup event had occurred */
840 if (sharpsl_pm.machinfo->charger_wakeup() != 0) 841 if (sharpsl_pm.machinfo->charger_wakeup())
841 return 0; 842 return 0;
842 /* Check for timeout */ 843 /* Check for timeout */
843 if ((RCNR-time) > SHARPSL_WAIT_CO_TIME) { 844 if ((RCNR-time) > SHARPSL_WAIT_CO_TIME) {
@@ -864,12 +865,12 @@ static int sharpsl_off_charge_battery(void)
864 865
865static ssize_t battery_percentage_show(struct device *dev, struct device_attribute *attr, char *buf) 866static ssize_t battery_percentage_show(struct device *dev, struct device_attribute *attr, char *buf)
866{ 867{
867 return sprintf(buf, "%d\n",sharpsl_pm.battstat.mainbat_percent); 868 return sprintf(buf, "%d\n", sharpsl_pm.battstat.mainbat_percent);
868} 869}
869 870
870static ssize_t battery_voltage_show(struct device *dev, struct device_attribute *attr, char *buf) 871static ssize_t battery_voltage_show(struct device *dev, struct device_attribute *attr, char *buf)
871{ 872{
872 return sprintf(buf, "%d\n",sharpsl_pm.battstat.mainbat_voltage); 873 return sprintf(buf, "%d\n", sharpsl_pm.battstat.mainbat_voltage);
873} 874}
874 875
875static DEVICE_ATTR(battery_percentage, 0444, battery_percentage_show, NULL); 876static DEVICE_ATTR(battery_percentage, 0444, battery_percentage_show, NULL);
@@ -943,8 +944,7 @@ static int __init sharpsl_pm_probe(struct platform_device *pdev)
943 } 944 }
944 } 945 }
945 946
946 if (sharpsl_pm.machinfo->batfull_irq) 947 if (sharpsl_pm.machinfo->batfull_irq) {
947 {
948 /* Register interrupt handler. */ 948 /* Register interrupt handler. */
949 if (request_irq(IRQ_GPIO(sharpsl_pm.machinfo->gpio_batfull), sharpsl_chrg_full_isr, IRQF_DISABLED | IRQF_TRIGGER_RISING, "CO", sharpsl_chrg_full_isr)) { 949 if (request_irq(IRQ_GPIO(sharpsl_pm.machinfo->gpio_batfull), sharpsl_chrg_full_isr, IRQF_DISABLED | IRQF_TRIGGER_RISING, "CO", sharpsl_chrg_full_isr)) {
950 dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", IRQ_GPIO(sharpsl_pm.machinfo->gpio_batfull)); 950 dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", IRQ_GPIO(sharpsl_pm.machinfo->gpio_batfull));
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index 3da45d051743..bbd7a855ae2d 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -768,6 +768,10 @@ static void __init common_init(void)
768 768
769 pxa2xx_mfp_config(ARRAY_AND_SIZE(spitz_pin_config)); 769 pxa2xx_mfp_config(ARRAY_AND_SIZE(spitz_pin_config));
770 770
771 pxa_set_ffuart_info(NULL);
772 pxa_set_btuart_info(NULL);
773 pxa_set_stuart_info(NULL);
774
771 spitz_init_spi(); 775 spitz_init_spi();
772 776
773 platform_add_devices(devices, ARRAY_SIZE(devices)); 777 platform_add_devices(devices, ARRAY_SIZE(devices));
diff --git a/arch/arm/mach-pxa/spitz_pm.c b/arch/arm/mach-pxa/spitz_pm.c
index 724ffb030317..fc5a70c40358 100644
--- a/arch/arm/mach-pxa/spitz_pm.c
+++ b/arch/arm/mach-pxa/spitz_pm.c
@@ -103,7 +103,7 @@ static void spitz_presuspend(void)
103 PFER = GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(SPITZ_GPIO_RESET); 103 PFER = GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(SPITZ_GPIO_RESET);
104 PWER = GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(SPITZ_GPIO_RESET) | PWER_RTC; 104 PWER = GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(SPITZ_GPIO_RESET) | PWER_RTC;
105 PKWR = GPIO_bit(SPITZ_GPIO_SYNC) | GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(SPITZ_GPIO_RESET); 105 PKWR = GPIO_bit(SPITZ_GPIO_SYNC) | GPIO_bit(SPITZ_GPIO_KEY_INT) | GPIO_bit(SPITZ_GPIO_RESET);
106 PKSR = 0xffffffff; // clear 106 PKSR = 0xffffffff; /* clear */
107 107
108 /* nRESET_OUT Disable */ 108 /* nRESET_OUT Disable */
109 PSLR |= PSLR_SL_ROD; 109 PSLR |= PSLR_SL_ROD;
@@ -149,7 +149,7 @@ static int spitz_should_wakeup(unsigned int resume_on_alarm)
149 if (resume_on_alarm && (PEDR & PWER_RTC)) 149 if (resume_on_alarm && (PEDR & PWER_RTC))
150 is_resume |= PWER_RTC; 150 is_resume |= PWER_RTC;
151 151
152 dev_dbg(sharpsl_pm.dev, "is_resume: %x\n",is_resume); 152 dev_dbg(sharpsl_pm.dev, "is_resume: %x\n", is_resume);
153 return is_resume; 153 return is_resume;
154} 154}
155 155
@@ -160,7 +160,7 @@ static unsigned long spitz_charger_wakeup(void)
160 160
161unsigned long spitzpm_read_devdata(int type) 161unsigned long spitzpm_read_devdata(int type)
162{ 162{
163 switch(type) { 163 switch (type) {
164 case SHARPSL_STATUS_ACIN: 164 case SHARPSL_STATUS_ACIN:
165 return (((~GPLR(SPITZ_GPIO_AC_IN)) & GPIO_bit(SPITZ_GPIO_AC_IN)) != 0); 165 return (((~GPLR(SPITZ_GPIO_AC_IN)) & GPIO_bit(SPITZ_GPIO_AC_IN)) != 0);
166 case SHARPSL_STATUS_LOCK: 166 case SHARPSL_STATUS_LOCK:
@@ -199,7 +199,7 @@ struct sharpsl_charger_machinfo spitz_pm_machinfo = {
199#if defined(CONFIG_LCD_CORGI) 199#if defined(CONFIG_LCD_CORGI)
200 .backlight_limit = corgi_lcd_limit_intensity, 200 .backlight_limit = corgi_lcd_limit_intensity,
201#elif defined(CONFIG_BACKLIGHT_CORGI) 201#elif defined(CONFIG_BACKLIGHT_CORGI)
202 .backlight_limit = corgibl_limit_intensity, 202 .backlight_limit = corgibl_limit_intensity,
203#endif 203#endif
204 .charge_on_volt = SHARPSL_CHARGE_ON_VOLT, 204 .charge_on_volt = SHARPSL_CHARGE_ON_VOLT,
205 .charge_on_temp = SHARPSL_CHARGE_ON_TEMP, 205 .charge_on_temp = SHARPSL_CHARGE_ON_TEMP,
@@ -208,8 +208,8 @@ struct sharpsl_charger_machinfo spitz_pm_machinfo = {
208 .fatal_acin_volt = SHARPSL_FATAL_ACIN_VOLT, 208 .fatal_acin_volt = SHARPSL_FATAL_ACIN_VOLT,
209 .fatal_noacin_volt= SHARPSL_FATAL_NOACIN_VOLT, 209 .fatal_noacin_volt= SHARPSL_FATAL_NOACIN_VOLT,
210 .bat_levels = 40, 210 .bat_levels = 40,
211 .bat_levels_noac = spitz_battery_levels_noac, 211 .bat_levels_noac = sharpsl_battery_levels_noac,
212 .bat_levels_acin = spitz_battery_levels_acin, 212 .bat_levels_acin = sharpsl_battery_levels_acin,
213 .status_high_acin = 188, 213 .status_high_acin = 188,
214 .status_low_acin = 178, 214 .status_low_acin = 178,
215 .status_high_noac = 185, 215 .status_high_noac = 185,
@@ -241,7 +241,7 @@ static int __devinit spitzpm_init(void)
241 241
242static void spitzpm_exit(void) 242static void spitzpm_exit(void)
243{ 243{
244 platform_device_unregister(spitzpm_device); 244 platform_device_unregister(spitzpm_device);
245} 245}
246 246
247module_init(spitzpm_init); 247module_init(spitzpm_init);
diff --git a/arch/arm/mach-pxa/ssp.c b/arch/arm/mach-pxa/ssp.c
index 965e38c6bafe..9ebe658590fa 100644
--- a/arch/arm/mach-pxa/ssp.c
+++ b/arch/arm/mach-pxa/ssp.c
@@ -342,8 +342,9 @@ void ssp_free(struct ssp_device *ssp)
342} 342}
343EXPORT_SYMBOL(ssp_free); 343EXPORT_SYMBOL(ssp_free);
344 344
345static int __devinit ssp_probe(struct platform_device *pdev, int type) 345static int __devinit ssp_probe(struct platform_device *pdev)
346{ 346{
347 const struct platform_device_id *id = platform_get_device_id(pdev);
347 struct resource *res; 348 struct resource *res;
348 struct ssp_device *ssp; 349 struct ssp_device *ssp;
349 int ret = 0; 350 int ret = 0;
@@ -413,7 +414,7 @@ static int __devinit ssp_probe(struct platform_device *pdev, int type)
413 */ 414 */
414 ssp->port_id = pdev->id + 1; 415 ssp->port_id = pdev->id + 1;
415 ssp->use_count = 0; 416 ssp->use_count = 0;
416 ssp->type = type; 417 ssp->type = (int)id->driver_data;
417 418
418 mutex_lock(&ssp_lock); 419 mutex_lock(&ssp_lock);
419 list_add(&ssp->node, &ssp_list); 420 list_add(&ssp->node, &ssp_list);
@@ -457,75 +458,31 @@ static int __devexit ssp_remove(struct platform_device *pdev)
457 return 0; 458 return 0;
458} 459}
459 460
460static int __devinit pxa25x_ssp_probe(struct platform_device *pdev) 461static const struct platform_device_id ssp_id_table[] = {
461{ 462 { "pxa25x-ssp", PXA25x_SSP },
462 return ssp_probe(pdev, PXA25x_SSP); 463 { "pxa25x-nssp", PXA25x_NSSP },
463} 464 { "pxa27x-ssp", PXA27x_SSP },
464 465 { },
465static int __devinit pxa25x_nssp_probe(struct platform_device *pdev)
466{
467 return ssp_probe(pdev, PXA25x_NSSP);
468}
469
470static int __devinit pxa27x_ssp_probe(struct platform_device *pdev)
471{
472 return ssp_probe(pdev, PXA27x_SSP);
473}
474
475static struct platform_driver pxa25x_ssp_driver = {
476 .driver = {
477 .name = "pxa25x-ssp",
478 },
479 .probe = pxa25x_ssp_probe,
480 .remove = __devexit_p(ssp_remove),
481}; 466};
482 467
483static struct platform_driver pxa25x_nssp_driver = { 468static struct platform_driver ssp_driver = {
484 .driver = { 469 .probe = ssp_probe,
485 .name = "pxa25x-nssp",
486 },
487 .probe = pxa25x_nssp_probe,
488 .remove = __devexit_p(ssp_remove), 470 .remove = __devexit_p(ssp_remove),
489};
490
491static struct platform_driver pxa27x_ssp_driver = {
492 .driver = { 471 .driver = {
493 .name = "pxa27x-ssp", 472 .owner = THIS_MODULE,
473 .name = "pxa2xx-ssp",
494 }, 474 },
495 .probe = pxa27x_ssp_probe, 475 .id_table = ssp_id_table,
496 .remove = __devexit_p(ssp_remove),
497}; 476};
498 477
499static int __init pxa_ssp_init(void) 478static int __init pxa_ssp_init(void)
500{ 479{
501 int ret = 0; 480 return platform_driver_register(&ssp_driver);
502
503 ret = platform_driver_register(&pxa25x_ssp_driver);
504 if (ret) {
505 printk(KERN_ERR "failed to register pxa25x_ssp_driver");
506 return ret;
507 }
508
509 ret = platform_driver_register(&pxa25x_nssp_driver);
510 if (ret) {
511 printk(KERN_ERR "failed to register pxa25x_nssp_driver");
512 return ret;
513 }
514
515 ret = platform_driver_register(&pxa27x_ssp_driver);
516 if (ret) {
517 printk(KERN_ERR "failed to register pxa27x_ssp_driver");
518 return ret;
519 }
520
521 return ret;
522} 481}
523 482
524static void __exit pxa_ssp_exit(void) 483static void __exit pxa_ssp_exit(void)
525{ 484{
526 platform_driver_unregister(&pxa25x_ssp_driver); 485 platform_driver_unregister(&ssp_driver);
527 platform_driver_unregister(&pxa25x_nssp_driver);
528 platform_driver_unregister(&pxa27x_ssp_driver);
529} 486}
530 487
531arch_initcall(pxa_ssp_init); 488arch_initcall(pxa_ssp_init);
diff --git a/arch/arm/mach-pxa/stargate2.c b/arch/arm/mach-pxa/stargate2.c
index 3b205b69f3fb..a98a434f0111 100644
--- a/arch/arm/mach-pxa/stargate2.c
+++ b/arch/arm/mach-pxa/stargate2.c
@@ -760,6 +760,10 @@ static void __init stargate2_init(void)
760 760
761 pxa2xx_mfp_config(ARRAY_AND_SIZE(stargate2_pin_config)); 761 pxa2xx_mfp_config(ARRAY_AND_SIZE(stargate2_pin_config));
762 762
763 pxa_set_ffuart_info(NULL);
764 pxa_set_btuart_info(NULL);
765 pxa_set_stuart_info(NULL);
766
763 /* spi chip selects */ 767 /* spi chip selects */
764 gpio_direction_output(37, 0); 768 gpio_direction_output(37, 0);
765 gpio_direction_output(24, 0); 769 gpio_direction_output(24, 0);
diff --git a/arch/arm/mach-pxa/tavorevb.c b/arch/arm/mach-pxa/tavorevb.c
index b75353a2ec75..f02dcb5b4e97 100644
--- a/arch/arm/mach-pxa/tavorevb.c
+++ b/arch/arm/mach-pxa/tavorevb.c
@@ -477,6 +477,10 @@ static void __init tavorevb_init(void)
477 /* initialize MFP configurations */ 477 /* initialize MFP configurations */
478 pxa3xx_mfp_config(ARRAY_AND_SIZE(tavorevb_mfp_cfg)); 478 pxa3xx_mfp_config(ARRAY_AND_SIZE(tavorevb_mfp_cfg));
479 479
480 pxa_set_ffuart_info(NULL);
481 pxa_set_btuart_info(NULL);
482 pxa_set_stuart_info(NULL);
483
480 platform_device_register(&smc91x_device); 484 platform_device_register(&smc91x_device);
481 485
482 tavorevb_init_lcd(); 486 tavorevb_init_lcd();
diff --git a/arch/arm/mach-pxa/tosa.c b/arch/arm/mach-pxa/tosa.c
index e81a52673d49..c854c168a451 100644
--- a/arch/arm/mach-pxa/tosa.c
+++ b/arch/arm/mach-pxa/tosa.c
@@ -825,6 +825,11 @@ static void __init tosa_init(void)
825 int dummy; 825 int dummy;
826 826
827 pxa2xx_mfp_config(ARRAY_AND_SIZE(tosa_pin_config)); 827 pxa2xx_mfp_config(ARRAY_AND_SIZE(tosa_pin_config));
828
829 pxa_set_ffuart_info(NULL);
830 pxa_set_btuart_info(NULL);
831 pxa_set_stuart_info(NULL);
832
828 gpio_set_wake(MFP_PIN_GPIO1, 1); 833 gpio_set_wake(MFP_PIN_GPIO1, 1);
829 /* We can't pass to gpio-keys since it will drop the Reset altfunc */ 834 /* We can't pass to gpio-keys since it will drop the Reset altfunc */
830 835
diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c
index 3981e0356d12..0aa858ebc573 100644
--- a/arch/arm/mach-pxa/trizeps4.c
+++ b/arch/arm/mach-pxa/trizeps4.c
@@ -524,6 +524,10 @@ static void __init trizeps4_init(void)
524 ARRAY_SIZE(trizeps4_devices)); 524 ARRAY_SIZE(trizeps4_devices));
525 } 525 }
526 526
527 pxa_set_ffuart_info(NULL);
528 pxa_set_btuart_info(NULL);
529 pxa_set_stuart_info(NULL);
530
527 if (0) /* dont know how to determine LCD */ 531 if (0) /* dont know how to determine LCD */
528 set_pxa_fb_info(&sharp_lcd); 532 set_pxa_fb_info(&sharp_lcd);
529 else 533 else
diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c
index d33c232b686c..cf0d71b7797e 100644
--- a/arch/arm/mach-pxa/viper.c
+++ b/arch/arm/mach-pxa/viper.c
@@ -301,15 +301,6 @@ static void __init viper_init_irq(void)
301 set_irq_chained_handler(gpio_to_irq(VIPER_CPLD_GPIO), 301 set_irq_chained_handler(gpio_to_irq(VIPER_CPLD_GPIO),
302 viper_irq_handler); 302 viper_irq_handler);
303 set_irq_type(gpio_to_irq(VIPER_CPLD_GPIO), IRQ_TYPE_EDGE_BOTH); 303 set_irq_type(gpio_to_irq(VIPER_CPLD_GPIO), IRQ_TYPE_EDGE_BOTH);
304
305#ifndef CONFIG_SERIAL_PXA
306 /*
307 * 8250 doesn't support IRQ_TYPE being passed as part
308 * of the plat_serial8250_port structure...
309 */
310 set_irq_type(gpio_to_irq(VIPER_UARTA_GPIO), IRQ_TYPE_EDGE_RISING);
311 set_irq_type(gpio_to_irq(VIPER_UARTB_GPIO), IRQ_TYPE_EDGE_RISING);
312#endif
313} 304}
314 305
315/* Flat Panel */ 306/* Flat Panel */
@@ -539,6 +530,7 @@ static struct plat_serial8250_port serial_platform_data[] = {
539 { 530 {
540 .mapbase = VIPER_UARTA_PHYS, 531 .mapbase = VIPER_UARTA_PHYS,
541 .irq = gpio_to_irq(VIPER_UARTA_GPIO), 532 .irq = gpio_to_irq(VIPER_UARTA_GPIO),
533 .irqflags = IRQF_TRIGGER_RISING,
542 .uartclk = 1843200, 534 .uartclk = 1843200,
543 .regshift = 1, 535 .regshift = 1,
544 .iotype = UPIO_MEM, 536 .iotype = UPIO_MEM,
@@ -548,6 +540,7 @@ static struct plat_serial8250_port serial_platform_data[] = {
548 { 540 {
549 .mapbase = VIPER_UARTB_PHYS, 541 .mapbase = VIPER_UARTB_PHYS,
550 .irq = gpio_to_irq(VIPER_UARTB_GPIO), 542 .irq = gpio_to_irq(VIPER_UARTB_GPIO),
543 .irqflags = IRQF_TRIGGER_RISING,
551 .uartclk = 1843200, 544 .uartclk = 1843200,
552 .regshift = 1, 545 .regshift = 1,
553 .iotype = UPIO_MEM, 546 .iotype = UPIO_MEM,
@@ -908,6 +901,10 @@ static void __init viper_init(void)
908 901
909 pxa2xx_mfp_config(ARRAY_AND_SIZE(viper_pin_config)); 902 pxa2xx_mfp_config(ARRAY_AND_SIZE(viper_pin_config));
910 903
904 pxa_set_ffuart_info(NULL);
905 pxa_set_btuart_info(NULL);
906 pxa_set_stuart_info(NULL);
907
911 /* Wake-up serial console */ 908 /* Wake-up serial console */
912 viper_init_serial_gpio(); 909 viper_init_serial_gpio();
913 910
diff --git a/arch/arm/mach-pxa/xcep.c b/arch/arm/mach-pxa/xcep.c
index 3fd79cbb36c8..d3b4e3f2e033 100644
--- a/arch/arm/mach-pxa/xcep.c
+++ b/arch/arm/mach-pxa/xcep.c
@@ -165,6 +165,11 @@ static void __init xcep_init(void)
165{ 165{
166 pxa2xx_mfp_config(ARRAY_AND_SIZE(xcep_pin_config)); 166 pxa2xx_mfp_config(ARRAY_AND_SIZE(xcep_pin_config));
167 167
168 pxa_set_ffuart_info(NULL);
169 pxa_set_btuart_info(NULL);
170 pxa_set_stuart_info(NULL);
171 pxa_set_hwuart_info(NULL);
172
168 /* See Intel XScale Developer's Guide for details */ 173 /* See Intel XScale Developer's Guide for details */
169 /* Set RDF and RDN to appropriate values (chip select 3 (smc91x)) */ 174 /* Set RDF and RDN to appropriate values (chip select 3 (smc91x)) */
170 MSC1 = (MSC1 & 0xffff) | 0xD5540000; 175 MSC1 = (MSC1 & 0xffff) | 0xD5540000;
diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c
index 09784d3954e4..b66e9e2d06e7 100644
--- a/arch/arm/mach-pxa/zylonite.c
+++ b/arch/arm/mach-pxa/zylonite.c
@@ -31,7 +31,7 @@
31#include <mach/mmc.h> 31#include <mach/mmc.h>
32#include <mach/ohci.h> 32#include <mach/ohci.h>
33#include <mach/pxa27x_keypad.h> 33#include <mach/pxa27x_keypad.h>
34#include <mach/pxa3xx_nand.h> 34#include <plat/pxa3xx_nand.h>
35 35
36#include "devices.h" 36#include "devices.h"
37#include "generic.h" 37#include "generic.h"
@@ -444,6 +444,10 @@ static inline void zylonite_init_ohci(void) {}
444 444
445static void __init zylonite_init(void) 445static void __init zylonite_init(void)
446{ 446{
447 pxa_set_ffuart_info(NULL);
448 pxa_set_btuart_info(NULL);
449 pxa_set_stuart_info(NULL);
450
447 /* board-processor specific initialization */ 451 /* board-processor specific initialization */
448 zylonite_pxa300_init(); 452 zylonite_pxa300_init();
449 zylonite_pxa320_init(); 453 zylonite_pxa320_init();
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index ea67be0223ac..3e8556b16a9f 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -881,7 +881,7 @@ void __init reserve_node_zero(pg_data_t *pgdat)
881 BOOTMEM_EXCLUSIVE); 881 BOOTMEM_EXCLUSIVE);
882 } 882 }
883 883
884 if (machine_is_treo680()) { 884 if (machine_is_treo680() || machine_is_centro()) {
885 reserve_bootmem_node(pgdat, 0xa0000000, 0x1000, 885 reserve_bootmem_node(pgdat, 0xa0000000, 0x1000,
886 BOOTMEM_EXCLUSIVE); 886 BOOTMEM_EXCLUSIVE);
887 reserve_bootmem_node(pgdat, 0xa2000000, 0x1000, 887 reserve_bootmem_node(pgdat, 0xa2000000, 0x1000,
diff --git a/arch/arm/mach-pxa/include/mach/pxa3xx_nand.h b/arch/arm/plat-pxa/include/plat/pxa3xx_nand.h
index 3478eae32d8a..3478eae32d8a 100644
--- a/arch/arm/mach-pxa/include/mach/pxa3xx_nand.h
+++ b/arch/arm/plat-pxa/include/plat/pxa3xx_nand.h
diff --git a/drivers/mmc/host/pxamci.c b/drivers/mmc/host/pxamci.c
index b00d67319058..c85f6166056e 100644
--- a/drivers/mmc/host/pxamci.c
+++ b/drivers/mmc/host/pxamci.c
@@ -43,6 +43,9 @@
43#define NR_SG 1 43#define NR_SG 1
44#define CLKRT_OFF (~0) 44#define CLKRT_OFF (~0)
45 45
46#define mmc_has_26MHz() (cpu_is_pxa300() || cpu_is_pxa310() \
47 || cpu_is_pxa935())
48
46struct pxamci_host { 49struct pxamci_host {
47 struct mmc_host *mmc; 50 struct mmc_host *mmc;
48 spinlock_t lock; 51 spinlock_t lock;
@@ -457,7 +460,7 @@ static void pxamci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
457 clk_enable(host->clk); 460 clk_enable(host->clk);
458 461
459 if (ios->clock == 26000000) { 462 if (ios->clock == 26000000) {
460 /* to support 26MHz on pxa300/pxa310 */ 463 /* to support 26MHz */
461 host->clkrt = 7; 464 host->clkrt = 7;
462 } else { 465 } else {
463 /* to handle (19.5MHz, 26MHz) */ 466 /* to handle (19.5MHz, 26MHz) */
@@ -608,8 +611,7 @@ static int pxamci_probe(struct platform_device *pdev)
608 * Calculate minimum clock rate, rounding up. 611 * Calculate minimum clock rate, rounding up.
609 */ 612 */
610 mmc->f_min = (host->clkrate + 63) / 64; 613 mmc->f_min = (host->clkrate + 63) / 64;
611 mmc->f_max = (cpu_is_pxa300() || cpu_is_pxa310()) ? 26000000 614 mmc->f_max = (mmc_has_26MHz()) ? 26000000 : host->clkrate;
612 : host->clkrate;
613 615
614 pxamci_init_ocr(host); 616 pxamci_init_ocr(host);
615 617
@@ -618,7 +620,7 @@ static int pxamci_probe(struct platform_device *pdev)
618 if (!cpu_is_pxa25x()) { 620 if (!cpu_is_pxa25x()) {
619 mmc->caps |= MMC_CAP_4_BIT_DATA | MMC_CAP_SDIO_IRQ; 621 mmc->caps |= MMC_CAP_4_BIT_DATA | MMC_CAP_SDIO_IRQ;
620 host->cmdat |= CMDAT_SDIO_INT_EN; 622 host->cmdat |= CMDAT_SDIO_INT_EN;
621 if (cpu_is_pxa300() || cpu_is_pxa310()) 623 if (mmc_has_26MHz())
622 mmc->caps |= MMC_CAP_MMC_HIGHSPEED | 624 mmc->caps |= MMC_CAP_MMC_HIGHSPEED |
623 MMC_CAP_SD_HIGHSPEED; 625 MMC_CAP_SD_HIGHSPEED;
624 } 626 }
diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig
index 2fda0b615246..8f8e87b7ed64 100644
--- a/drivers/mtd/nand/Kconfig
+++ b/drivers/mtd/nand/Kconfig
@@ -358,7 +358,7 @@ endchoice
358 358
359config MTD_NAND_PXA3xx 359config MTD_NAND_PXA3xx
360 tristate "Support for NAND flash devices on PXA3xx" 360 tristate "Support for NAND flash devices on PXA3xx"
361 depends on MTD_NAND && PXA3xx 361 depends on MTD_NAND && (PXA3xx || ARCH_MMP)
362 help 362 help
363 This enables the driver for the NAND flash device found on 363 This enables the driver for the NAND flash device found on
364 PXA3xx processors 364 PXA3xx processors
diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c
index 6ea520ae2410..1a5a0365c983 100644
--- a/drivers/mtd/nand/pxa3xx_nand.c
+++ b/drivers/mtd/nand/pxa3xx_nand.c
@@ -9,6 +9,7 @@
9 * published by the Free Software Foundation. 9 * published by the Free Software Foundation.
10 */ 10 */
11 11
12#include <linux/kernel.h>
12#include <linux/module.h> 13#include <linux/module.h>
13#include <linux/interrupt.h> 14#include <linux/interrupt.h>
14#include <linux/platform_device.h> 15#include <linux/platform_device.h>
@@ -22,7 +23,7 @@
22#include <linux/irq.h> 23#include <linux/irq.h>
23 24
24#include <mach/dma.h> 25#include <mach/dma.h>
25#include <mach/pxa3xx_nand.h> 26#include <plat/pxa3xx_nand.h>
26 27
27#define CHIP_DELAY_TIMEOUT (2 * HZ/10) 28#define CHIP_DELAY_TIMEOUT (2 * HZ/10)
28 29
@@ -84,10 +85,6 @@
84#define NDCB0_CMD1_MASK (0xff) 85#define NDCB0_CMD1_MASK (0xff)
85#define NDCB0_ADDR_CYC_SHIFT (16) 86#define NDCB0_ADDR_CYC_SHIFT (16)
86 87
87/* dma-able I/O address for the NAND data and commands */
88#define NDCB0_DMA_ADDR (0x43100048)
89#define NDDB_DMA_ADDR (0x43100040)
90
91/* macros for registers read/write */ 88/* macros for registers read/write */
92#define nand_writel(info, off, val) \ 89#define nand_writel(info, off, val) \
93 __raw_writel((val), (info)->mmio_base + (off)) 90 __raw_writel((val), (info)->mmio_base + (off))
@@ -123,6 +120,7 @@ struct pxa3xx_nand_info {
123 120
124 struct clk *clk; 121 struct clk *clk;
125 void __iomem *mmio_base; 122 void __iomem *mmio_base;
123 unsigned long mmio_phys;
126 124
127 unsigned int buf_start; 125 unsigned int buf_start;
128 unsigned int buf_count; 126 unsigned int buf_count;
@@ -228,13 +226,35 @@ static struct pxa3xx_nand_flash samsung512MbX16 = {
228 .chip_id = 0x46ec, 226 .chip_id = 0x46ec,
229}; 227};
230 228
229static struct pxa3xx_nand_flash samsung2GbX8 = {
230 .timing = &samsung512MbX16_timing,
231 .cmdset = &smallpage_cmdset,
232 .page_per_block = 64,
233 .page_size = 2048,
234 .flash_width = 8,
235 .dfc_width = 8,
236 .num_blocks = 2048,
237 .chip_id = 0xdaec,
238};
239
240static struct pxa3xx_nand_flash samsung32GbX8 = {
241 .timing = &samsung512MbX16_timing,
242 .cmdset = &smallpage_cmdset,
243 .page_per_block = 128,
244 .page_size = 4096,
245 .flash_width = 8,
246 .dfc_width = 8,
247 .num_blocks = 8192,
248 .chip_id = 0xd7ec,
249};
250
231static struct pxa3xx_nand_timing micron_timing = { 251static struct pxa3xx_nand_timing micron_timing = {
232 .tCH = 10, 252 .tCH = 10,
233 .tCS = 25, 253 .tCS = 25,
234 .tWH = 15, 254 .tWH = 15,
235 .tWP = 25, 255 .tWP = 25,
236 .tRH = 15, 256 .tRH = 15,
237 .tRP = 25, 257 .tRP = 30,
238 .tR = 25000, 258 .tR = 25000,
239 .tWHR = 60, 259 .tWHR = 60,
240 .tAR = 10, 260 .tAR = 10,
@@ -262,6 +282,28 @@ static struct pxa3xx_nand_flash micron1GbX16 = {
262 .chip_id = 0xb12c, 282 .chip_id = 0xb12c,
263}; 283};
264 284
285static struct pxa3xx_nand_flash micron4GbX8 = {
286 .timing = &micron_timing,
287 .cmdset = &largepage_cmdset,
288 .page_per_block = 64,
289 .page_size = 2048,
290 .flash_width = 8,
291 .dfc_width = 8,
292 .num_blocks = 4096,
293 .chip_id = 0xdc2c,
294};
295
296static struct pxa3xx_nand_flash micron4GbX16 = {
297 .timing = &micron_timing,
298 .cmdset = &largepage_cmdset,
299 .page_per_block = 64,
300 .page_size = 2048,
301 .flash_width = 16,
302 .dfc_width = 16,
303 .num_blocks = 4096,
304 .chip_id = 0xcc2c,
305};
306
265static struct pxa3xx_nand_timing stm2GbX16_timing = { 307static struct pxa3xx_nand_timing stm2GbX16_timing = {
266 .tCH = 10, 308 .tCH = 10,
267 .tCS = 35, 309 .tCS = 35,
@@ -287,8 +329,12 @@ static struct pxa3xx_nand_flash stm2GbX16 = {
287 329
288static struct pxa3xx_nand_flash *builtin_flash_types[] = { 330static struct pxa3xx_nand_flash *builtin_flash_types[] = {
289 &samsung512MbX16, 331 &samsung512MbX16,
332 &samsung2GbX8,
333 &samsung32GbX8,
290 &micron1GbX8, 334 &micron1GbX8,
291 &micron1GbX16, 335 &micron1GbX16,
336 &micron4GbX8,
337 &micron4GbX16,
292 &stm2GbX16, 338 &stm2GbX16,
293}; 339};
294#endif /* CONFIG_MTD_NAND_PXA3xx_BUILTIN */ 340#endif /* CONFIG_MTD_NAND_PXA3xx_BUILTIN */
@@ -489,7 +535,7 @@ static int handle_data_pio(struct pxa3xx_nand_info *info)
489 switch (info->state) { 535 switch (info->state) {
490 case STATE_PIO_WRITING: 536 case STATE_PIO_WRITING:
491 __raw_writesl(info->mmio_base + NDDB, info->data_buff, 537 __raw_writesl(info->mmio_base + NDDB, info->data_buff,
492 info->data_size << 2); 538 DIV_ROUND_UP(info->data_size, 4));
493 539
494 enable_int(info, NDSR_CS0_BBD | NDSR_CS0_CMDD); 540 enable_int(info, NDSR_CS0_BBD | NDSR_CS0_CMDD);
495 541
@@ -501,7 +547,7 @@ static int handle_data_pio(struct pxa3xx_nand_info *info)
501 break; 547 break;
502 case STATE_PIO_READING: 548 case STATE_PIO_READING:
503 __raw_readsl(info->mmio_base + NDDB, info->data_buff, 549 __raw_readsl(info->mmio_base + NDDB, info->data_buff,
504 info->data_size << 2); 550 DIV_ROUND_UP(info->data_size, 4));
505 break; 551 break;
506 default: 552 default:
507 printk(KERN_ERR "%s: invalid state %d\n", __func__, 553 printk(KERN_ERR "%s: invalid state %d\n", __func__,
@@ -523,11 +569,11 @@ static void start_data_dma(struct pxa3xx_nand_info *info, int dir_out)
523 569
524 if (dir_out) { 570 if (dir_out) {
525 desc->dsadr = info->data_buff_phys; 571 desc->dsadr = info->data_buff_phys;
526 desc->dtadr = NDDB_DMA_ADDR; 572 desc->dtadr = info->mmio_phys + NDDB;
527 desc->dcmd |= DCMD_INCSRCADDR | DCMD_FLOWTRG; 573 desc->dcmd |= DCMD_INCSRCADDR | DCMD_FLOWTRG;
528 } else { 574 } else {
529 desc->dtadr = info->data_buff_phys; 575 desc->dtadr = info->data_buff_phys;
530 desc->dsadr = NDDB_DMA_ADDR; 576 desc->dsadr = info->mmio_phys + NDDB;
531 desc->dcmd |= DCMD_INCTRGADDR | DCMD_FLOWSRC; 577 desc->dcmd |= DCMD_INCTRGADDR | DCMD_FLOWSRC;
532 } 578 }
533 579
@@ -669,6 +715,7 @@ static void pxa3xx_nand_cmdfunc(struct mtd_info *mtd, unsigned command,
669 /* disable HW ECC to get all the OOB data */ 715 /* disable HW ECC to get all the OOB data */
670 info->buf_count = mtd->writesize + mtd->oobsize; 716 info->buf_count = mtd->writesize + mtd->oobsize;
671 info->buf_start = mtd->writesize + column; 717 info->buf_start = mtd->writesize + column;
718 memset(info->data_buff, 0xFF, info->buf_count);
672 719
673 if (prepare_read_prog_cmd(info, cmdset->read1, column, page_addr)) 720 if (prepare_read_prog_cmd(info, cmdset->read1, column, page_addr))
674 break; 721 break;
@@ -1239,13 +1286,17 @@ static int pxa3xx_nand_probe(struct platform_device *pdev)
1239 ret = -ENODEV; 1286 ret = -ENODEV;
1240 goto fail_free_res; 1287 goto fail_free_res;
1241 } 1288 }
1289 info->mmio_phys = r->start;
1242 1290
1243 ret = pxa3xx_nand_init_buff(info); 1291 ret = pxa3xx_nand_init_buff(info);
1244 if (ret) 1292 if (ret)
1245 goto fail_free_io; 1293 goto fail_free_io;
1246 1294
1247 ret = request_irq(IRQ_NAND, pxa3xx_nand_irq, IRQF_DISABLED, 1295 /* initialize all interrupts to be disabled */
1248 pdev->name, info); 1296 disable_int(info, NDSR_MASK);
1297
1298 ret = request_irq(irq, pxa3xx_nand_irq, IRQF_DISABLED,
1299 pdev->name, info);
1249 if (ret < 0) { 1300 if (ret < 0) {
1250 dev_err(&pdev->dev, "failed to request IRQ\n"); 1301 dev_err(&pdev->dev, "failed to request IRQ\n");
1251 goto fail_free_buf; 1302 goto fail_free_buf;
@@ -1271,7 +1322,7 @@ static int pxa3xx_nand_probe(struct platform_device *pdev)
1271 return add_mtd_partitions(mtd, pdata->parts, pdata->nr_parts); 1322 return add_mtd_partitions(mtd, pdata->parts, pdata->nr_parts);
1272 1323
1273fail_free_irq: 1324fail_free_irq:
1274 free_irq(IRQ_NAND, info); 1325 free_irq(irq, info);
1275fail_free_buf: 1326fail_free_buf:
1276 if (use_dma) { 1327 if (use_dma) {
1277 pxa_free_dma(info->data_dma_ch); 1328 pxa_free_dma(info->data_dma_ch);
@@ -1296,12 +1347,15 @@ static int pxa3xx_nand_remove(struct platform_device *pdev)
1296 struct mtd_info *mtd = platform_get_drvdata(pdev); 1347 struct mtd_info *mtd = platform_get_drvdata(pdev);
1297 struct pxa3xx_nand_info *info = mtd->priv; 1348 struct pxa3xx_nand_info *info = mtd->priv;
1298 struct resource *r; 1349 struct resource *r;
1350 int irq;
1299 1351
1300 platform_set_drvdata(pdev, NULL); 1352 platform_set_drvdata(pdev, NULL);
1301 1353
1302 del_mtd_device(mtd); 1354 del_mtd_device(mtd);
1303 del_mtd_partitions(mtd); 1355 del_mtd_partitions(mtd);
1304 free_irq(IRQ_NAND, info); 1356 irq = platform_get_irq(pdev, 0);
1357 if (irq >= 0)
1358 free_irq(irq, info);
1305 if (use_dma) { 1359 if (use_dma) {
1306 pxa_free_dma(info->data_dma_ch); 1360 pxa_free_dma(info->data_dma_ch);
1307 dma_free_writecombine(&pdev->dev, info->data_buff_size, 1361 dma_free_writecombine(&pdev->dev, info->data_buff_size,
diff --git a/drivers/video/backlight/da903x_bl.c b/drivers/video/backlight/da903x_bl.c
index 701a1081e199..7fcb0eb54c60 100644
--- a/drivers/video/backlight/da903x_bl.c
+++ b/drivers/video/backlight/da903x_bl.c
@@ -25,6 +25,7 @@
25 25
26#define DA9034_WLED_CONTROL1 0x3C 26#define DA9034_WLED_CONTROL1 0x3C
27#define DA9034_WLED_CONTROL2 0x3D 27#define DA9034_WLED_CONTROL2 0x3D
28#define DA9034_WLED_ISET(x) ((x) & 0x1f)
28 29
29#define DA9034_WLED_BOOST_EN (1 << 5) 30#define DA9034_WLED_BOOST_EN (1 << 5)
30 31
@@ -101,6 +102,7 @@ static struct backlight_ops da903x_backlight_ops = {
101 102
102static int da903x_backlight_probe(struct platform_device *pdev) 103static int da903x_backlight_probe(struct platform_device *pdev)
103{ 104{
105 struct da9034_backlight_pdata *pdata = pdev->dev.platform_data;
104 struct da903x_backlight_data *data; 106 struct da903x_backlight_data *data;
105 struct backlight_device *bl; 107 struct backlight_device *bl;
106 int max_brightness; 108 int max_brightness;
@@ -127,6 +129,11 @@ static int da903x_backlight_probe(struct platform_device *pdev)
127 data->da903x_dev = pdev->dev.parent; 129 data->da903x_dev = pdev->dev.parent;
128 data->current_brightness = 0; 130 data->current_brightness = 0;
129 131
132 /* adjust the WLED output current */
133 if (pdata)
134 da903x_write(data->da903x_dev, DA9034_WLED_CONTROL2,
135 DA9034_WLED_ISET(pdata->output_current));
136
130 bl = backlight_device_register(pdev->name, data->da903x_dev, 137 bl = backlight_device_register(pdev->name, data->da903x_dev,
131 data, &da903x_backlight_ops); 138 data, &da903x_backlight_ops);
132 if (IS_ERR(bl)) { 139 if (IS_ERR(bl)) {
diff --git a/drivers/video/backlight/tdo24m.c b/drivers/video/backlight/tdo24m.c
index bbfb502add67..4a3d46e08016 100644
--- a/drivers/video/backlight/tdo24m.c
+++ b/drivers/video/backlight/tdo24m.c
@@ -367,6 +367,7 @@ static int __devinit tdo24m_probe(struct spi_device *spi)
367 367
368 spi_message_init(m); 368 spi_message_init(m);
369 369
370 x->cs_change = 1;
370 x->tx_buf = &lcd->buf[0]; 371 x->tx_buf = &lcd->buf[0];
371 spi_message_add_tail(x, m); 372 spi_message_add_tail(x, m);
372 373
diff --git a/drivers/video/pxa168fb.c b/drivers/video/pxa168fb.c
index 84d8327e47db..75285d3f393c 100644
--- a/drivers/video/pxa168fb.c
+++ b/drivers/video/pxa168fb.c
@@ -687,6 +687,7 @@ static int __init pxa168fb_probe(struct platform_device *pdev)
687 } 687 }
688 688
689 info->fix.smem_start = (unsigned long)fbi->fb_start_dma; 689 info->fix.smem_start = (unsigned long)fbi->fb_start_dma;
690 set_graphics_start(info, 0, 0);
690 691
691 /* 692 /*
692 * Set video mode according to platform data. 693 * Set video mode according to platform data.
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c
index 1820c4a24434..f58a3aae6ea6 100644
--- a/drivers/video/pxafb.c
+++ b/drivers/video/pxafb.c
@@ -80,7 +80,8 @@
80static int pxafb_activate_var(struct fb_var_screeninfo *var, 80static int pxafb_activate_var(struct fb_var_screeninfo *var,
81 struct pxafb_info *); 81 struct pxafb_info *);
82static void set_ctrlr_state(struct pxafb_info *fbi, u_int state); 82static void set_ctrlr_state(struct pxafb_info *fbi, u_int state);
83static void setup_base_frame(struct pxafb_info *fbi, int branch); 83static void setup_base_frame(struct pxafb_info *fbi,
84 struct fb_var_screeninfo *var, int branch);
84static int setup_frame_dma(struct pxafb_info *fbi, int dma, int pal, 85static int setup_frame_dma(struct pxafb_info *fbi, int dma, int pal,
85 unsigned long offset, size_t size); 86 unsigned long offset, size_t size);
86 87
@@ -397,6 +398,7 @@ static void pxafb_setmode(struct fb_var_screeninfo *var,
397 var->lower_margin = mode->lower_margin; 398 var->lower_margin = mode->lower_margin;
398 var->sync = mode->sync; 399 var->sync = mode->sync;
399 var->grayscale = mode->cmap_greyscale; 400 var->grayscale = mode->cmap_greyscale;
401 var->transp.length = mode->transparency;
400 402
401 /* set the initial RGBA bitfields */ 403 /* set the initial RGBA bitfields */
402 pxafb_set_pixfmt(var, mode->depth); 404 pxafb_set_pixfmt(var, mode->depth);
@@ -531,12 +533,22 @@ static int pxafb_pan_display(struct fb_var_screeninfo *var,
531 struct fb_info *info) 533 struct fb_info *info)
532{ 534{
533 struct pxafb_info *fbi = (struct pxafb_info *)info; 535 struct pxafb_info *fbi = (struct pxafb_info *)info;
536 struct fb_var_screeninfo newvar;
534 int dma = DMA_MAX + DMA_BASE; 537 int dma = DMA_MAX + DMA_BASE;
535 538
536 if (fbi->state != C_ENABLE) 539 if (fbi->state != C_ENABLE)
537 return 0; 540 return 0;
538 541
539 setup_base_frame(fbi, 1); 542 /* Only take .xoffset, .yoffset and .vmode & FB_VMODE_YWRAP from what
543 * was passed in and copy the rest from the old screeninfo.
544 */
545 memcpy(&newvar, &fbi->fb.var, sizeof(newvar));
546 newvar.xoffset = var->xoffset;
547 newvar.yoffset = var->yoffset;
548 newvar.vmode &= ~FB_VMODE_YWRAP;
549 newvar.vmode |= var->vmode & FB_VMODE_YWRAP;
550
551 setup_base_frame(fbi, &newvar, 1);
540 552
541 if (fbi->lccr0 & LCCR0_SDS) 553 if (fbi->lccr0 & LCCR0_SDS)
542 lcd_writel(fbi, FBR1, fbi->fdadr[dma + 1] | 0x1); 554 lcd_writel(fbi, FBR1, fbi->fdadr[dma + 1] | 0x1);
@@ -1052,9 +1064,10 @@ static int setup_frame_dma(struct pxafb_info *fbi, int dma, int pal,
1052 return 0; 1064 return 0;
1053} 1065}
1054 1066
1055static void setup_base_frame(struct pxafb_info *fbi, int branch) 1067static void setup_base_frame(struct pxafb_info *fbi,
1068 struct fb_var_screeninfo *var,
1069 int branch)
1056{ 1070{
1057 struct fb_var_screeninfo *var = &fbi->fb.var;
1058 struct fb_fix_screeninfo *fix = &fbi->fb.fix; 1071 struct fb_fix_screeninfo *fix = &fbi->fb.fix;
1059 int nbytes, dma, pal, bpp = var->bits_per_pixel; 1072 int nbytes, dma, pal, bpp = var->bits_per_pixel;
1060 unsigned long offset; 1073 unsigned long offset;
@@ -1332,7 +1345,7 @@ static int pxafb_activate_var(struct fb_var_screeninfo *var,
1332#endif 1345#endif
1333 setup_parallel_timing(fbi, var); 1346 setup_parallel_timing(fbi, var);
1334 1347
1335 setup_base_frame(fbi, 0); 1348 setup_base_frame(fbi, var, 0);
1336 1349
1337 fbi->reg_lccr0 = fbi->lccr0 | 1350 fbi->reg_lccr0 = fbi->lccr0 |
1338 (LCCR0_LDM | LCCR0_SFM | LCCR0_IUM | LCCR0_EFM | 1351 (LCCR0_LDM | LCCR0_SFM | LCCR0_IUM | LCCR0_EFM |
diff --git a/include/linux/mfd/da903x.h b/include/linux/mfd/da903x.h
index c63b65c94429..0aa3a1a49ee3 100644
--- a/include/linux/mfd/da903x.h
+++ b/include/linux/mfd/da903x.h
@@ -96,6 +96,10 @@ struct da9034_touch_pdata {
96 int y_inverted; 96 int y_inverted;
97}; 97};
98 98
99struct da9034_backlight_pdata {
100 int output_current; /* output current of WLED, from 0-31 (in mA) */
101};
102
99/* DA9030 battery charger data */ 103/* DA9030 battery charger data */
100struct power_supply_info; 104struct power_supply_info;
101 105
diff --git a/include/video/pxa168fb.h b/include/video/pxa168fb.h
index b5cc72fe0461..8c2f385a90ea 100644
--- a/include/video/pxa168fb.h
+++ b/include/video/pxa168fb.h
@@ -117,8 +117,6 @@ struct pxa168fb_mach_info {
117 unsigned invert_composite_blank:1; 117 unsigned invert_composite_blank:1;
118 unsigned invert_pix_val_ena:1; 118 unsigned invert_pix_val_ena:1;
119 unsigned invert_pixclock:1; 119 unsigned invert_pixclock:1;
120 unsigned invert_vsync:1;
121 unsigned invert_hsync:1;
122 unsigned panel_rbswap:1; 120 unsigned panel_rbswap:1;
123 unsigned active:1; 121 unsigned active:1;
124 unsigned enable_lcd:1; 122 unsigned enable_lcd:1;