aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Kconfig61
-rw-r--r--arch/arm/Makefile2
-rw-r--r--arch/arm/configs/at91sam9rlek_defconfig957
-rw-r--r--arch/arm/configs/ks8695_defconfig880
-rw-r--r--arch/arm/configs/trizeps4_defconfig532
-rw-r--r--arch/arm/kernel/ecard.c35
-rw-r--r--arch/arm/kernel/time.c2
-rw-r--r--arch/arm/mach-at91/Kconfig17
-rw-r--r--arch/arm/mach-at91/Makefile4
-rw-r--r--arch/arm/mach-at91/at91rm9200_devices.c3
-rw-r--r--arch/arm/mach-at91/at91sam9260_devices.c3
-rw-r--r--arch/arm/mach-at91/at91sam9261_devices.c3
-rw-r--r--arch/arm/mach-at91/at91sam9263_devices.c3
-rw-r--r--arch/arm/mach-at91/at91sam9rl.c341
-rw-r--r--arch/arm/mach-at91/at91sam9rl_devices.c630
-rw-r--r--arch/arm/mach-at91/board-sam9rlek.c204
-rw-r--r--arch/arm/mach-at91/generic.h2
-rw-r--r--arch/arm/mach-davinci/Kconfig23
-rw-r--r--arch/arm/mach-davinci/Makefile10
-rw-r--r--arch/arm/mach-davinci/Makefile.boot3
-rw-r--r--arch/arm/mach-davinci/board-evm.c131
-rw-r--r--arch/arm/mach-davinci/id.c94
-rw-r--r--arch/arm/mach-davinci/io.c51
-rw-r--r--arch/arm/mach-davinci/irq.c226
-rw-r--r--arch/arm/mach-davinci/psc.c113
-rw-r--r--arch/arm/mach-davinci/serial.c96
-rw-r--r--arch/arm/mach-davinci/time.c372
-rw-r--r--arch/arm/mach-iop13xx/Makefile1
-rw-r--r--arch/arm/mach-iop13xx/irq.c5
-rw-r--r--arch/arm/mach-iop13xx/msi.c194
-rw-r--r--arch/arm/mach-iop13xx/pci.c16
-rw-r--r--arch/arm/mach-ks8695/Kconfig13
-rw-r--r--arch/arm/mach-ks8695/Makefile15
-rw-r--r--arch/arm/mach-ks8695/Makefile.boot8
-rw-r--r--arch/arm/mach-ks8695/board-micrel.c60
-rw-r--r--arch/arm/mach-ks8695/cpu.c73
-rw-r--r--arch/arm/mach-ks8695/devices.c191
-rw-r--r--arch/arm/mach-ks8695/generic.h15
-rw-r--r--arch/arm/mach-ks8695/irq.c175
-rw-r--r--arch/arm/mach-ks8695/time.c114
-rw-r--r--arch/arm/mach-omap2/gpmc.c2
-rw-r--r--arch/arm/mach-pnx4008/dma.c4
-rw-r--r--arch/arm/mach-pxa/trizeps4.c62
-rw-r--r--arch/arm/mach-s3c2410/Makefile2
-rw-r--r--arch/arm/mach-s3c2410/h1940-bluetooth.c142
-rw-r--r--arch/arm/mach-s3c2410/mach-h1940.c6
-rw-r--r--arch/arm/mach-s3c2443/clock.c4
-rw-r--r--arch/arm/mm/Kconfig10
-rw-r--r--arch/arm/tools/mach-types34
49 files changed, 5680 insertions, 264 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 0d8fac3b0371..e55bbd32dcac 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -114,9 +114,6 @@ config GENERIC_CALIBRATE_DELAY
114 bool 114 bool
115 default y 115 default y
116 116
117config GENERIC_BUST_SPINLOCK
118 bool
119
120config ARCH_MAY_HAVE_PC_FDC 117config ARCH_MAY_HAVE_PC_FDC
121 bool 118 bool
122 119
@@ -247,6 +244,15 @@ config ARCH_IMX
247 help 244 help
248 Support for Motorola's i.MX family of processors (MX1, MXL). 245 Support for Motorola's i.MX family of processors (MX1, MXL).
249 246
247config ARCH_IOP13XX
248 bool "IOP13xx-based"
249 depends on MMU
250 select PLAT_IOP
251 select PCI
252 select ARCH_SUPPORTS_MSI
253 help
254 Support for Intel's IOP13XX (XScale) family of processors.
255
250config ARCH_IOP32X 256config ARCH_IOP32X
251 bool "IOP32x-based" 257 bool "IOP32x-based"
252 depends on MMU 258 depends on MMU
@@ -264,22 +270,12 @@ config ARCH_IOP33X
264 help 270 help
265 Support for Intel's IOP33X (XScale) family of processors. 271 Support for Intel's IOP33X (XScale) family of processors.
266 272
267config ARCH_IOP13XX 273config ARCH_IXP23XX
268 bool "IOP13xx-based" 274 bool "IXP23XX-based"
269 depends on MMU
270 select PLAT_IOP
271 select PCI
272 select ARCH_SUPPORTS_MSI
273 help
274 Support for Intel's IOP13XX (XScale) family of processors.
275
276config ARCH_IXP4XX
277 bool "IXP4xx-based"
278 depends on MMU 275 depends on MMU
279 select GENERIC_TIME 276 select PCI
280 select GENERIC_CLOCKEVENTS
281 help 277 help
282 Support for Intel's IXP4XX (XScale) family of processors. 278 Support for Intel's IXP23xx (XScale) family of processors.
283 279
284config ARCH_IXP2000 280config ARCH_IXP2000
285 bool "IXP2400/2800-based" 281 bool "IXP2400/2800-based"
@@ -288,12 +284,13 @@ config ARCH_IXP2000
288 help 284 help
289 Support for Intel's IXP2400/2800 (XScale) family of processors. 285 Support for Intel's IXP2400/2800 (XScale) family of processors.
290 286
291config ARCH_IXP23XX 287config ARCH_IXP4XX
292 bool "IXP23XX-based" 288 bool "IXP4xx-based"
293 depends on MMU 289 depends on MMU
294 select PCI 290 select GENERIC_TIME
291 select GENERIC_CLOCKEVENTS
295 help 292 help
296 Support for Intel's IXP23xx (XScale) family of processors. 293 Support for Intel's IXP4XX (XScale) family of processors.
297 294
298config ARCH_L7200 295config ARCH_L7200
299 bool "LinkUp-L7200" 296 bool "LinkUp-L7200"
@@ -308,6 +305,12 @@ config ARCH_L7200
308 If you have any questions or comments about the Linux kernel port 305 If you have any questions or comments about the Linux kernel port
309 to this board, send e-mail to <sjhill@cotw.com>. 306 to this board, send e-mail to <sjhill@cotw.com>.
310 307
308config ARCH_KS8695
309 bool "Micrel/Kendin KS8695"
310 help
311 Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
312 System-on-Chip devices.
313
311config ARCH_NS9XXX 314config ARCH_NS9XXX
312 bool "NetSilicon NS9xxx" 315 bool "NetSilicon NS9xxx"
313 help 316 help
@@ -376,6 +379,13 @@ config ARCH_LH7A40X
376 core with a wide array of integrated devices for 379 core with a wide array of integrated devices for
377 hand-held and low-power applications. 380 hand-held and low-power applications.
378 381
382config ARCH_DAVINCI
383 bool "TI DaVinci"
384 select GENERIC_TIME
385 select GENERIC_CLOCKEVENTS
386 help
387 Support for TI's DaVinci platform.
388
379config ARCH_OMAP 389config ARCH_OMAP
380 bool "TI OMAP" 390 bool "TI OMAP"
381 select GENERIC_GPIO 391 select GENERIC_GPIO
@@ -444,6 +454,10 @@ source "arch/arm/mach-netx/Kconfig"
444 454
445source "arch/arm/mach-ns9xxx/Kconfig" 455source "arch/arm/mach-ns9xxx/Kconfig"
446 456
457source "arch/arm/mach-davinci/Kconfig"
458
459source "arch/arm/mach-ks8695/Kconfig"
460
447# Definitions to make life easier 461# Definitions to make life easier
448config ARCH_ACORN 462config ARCH_ACORN
449 bool 463 bool
@@ -504,7 +518,7 @@ config ISA_DMA_API
504 bool 518 bool
505 519
506config PCI 520config PCI
507 bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX 521 bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695
508 help 522 help
509 Find out whether you have a PCI motherboard. PCI is the name of a 523 Find out whether you have a PCI motherboard. PCI is the name of a
510 bus system, i.e. the way the CPU talks to the other stuff inside 524 bus system, i.e. the way the CPU talks to the other stuff inside
@@ -673,7 +687,8 @@ config LEDS
673 ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \ 687 ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \
674 ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \ 688 ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
675 ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \ 689 ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
676 ARCH_AT91 || MACH_TRIZEPS4 690 ARCH_AT91 || MACH_TRIZEPS4 || ARCH_DAVINCI || \
691 ARCH_KS8695
677 help 692 help
678 If you say Y here, the LEDs on your machine will be used 693 If you say Y here, the LEDs on your machine will be used
679 to provide useful information about your current system status. 694 to provide useful information about your current system status.
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 00ea4305ad5d..cbd5010d3bc3 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -135,6 +135,8 @@ endif
135 machine-$(CONFIG_ARCH_NETX) := netx 135 machine-$(CONFIG_ARCH_NETX) := netx
136 machine-$(CONFIG_ARCH_NS9XXX) := ns9xxx 136 machine-$(CONFIG_ARCH_NS9XXX) := ns9xxx
137 textofs-$(CONFIG_ARCH_NS9XXX) := 0x00108000 137 textofs-$(CONFIG_ARCH_NS9XXX) := 0x00108000
138 machine-$(CONFIG_ARCH_DAVINCI) := davinci
139 machine-$(CONFIG_ARCH_KS8695) := ks8695
138 140
139ifeq ($(CONFIG_ARCH_EBSA110),y) 141ifeq ($(CONFIG_ARCH_EBSA110),y)
140# This is what happens if you forget the IOCS16 line. 142# This is what happens if you forget the IOCS16 line.
diff --git a/arch/arm/configs/at91sam9rlek_defconfig b/arch/arm/configs/at91sam9rlek_defconfig
new file mode 100644
index 000000000000..fbe8b3049343
--- /dev/null
+++ b/arch/arm/configs/at91sam9rlek_defconfig
@@ -0,0 +1,957 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.21
4# Mon May 7 16:30:40 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9# CONFIG_GENERIC_TIME is not set
10CONFIG_MMU=y
11# CONFIG_NO_IOPORT is not set
12CONFIG_GENERIC_HARDIRQS=y
13CONFIG_TRACE_IRQFLAGS_SUPPORT=y
14CONFIG_HARDIRQS_SW_RESEND=y
15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_RWSEM_GENERIC_SPINLOCK=y
17# CONFIG_ARCH_HAS_ILOG2_U32 is not set
18# CONFIG_ARCH_HAS_ILOG2_U64 is not set
19CONFIG_GENERIC_HWEIGHT=y
20CONFIG_GENERIC_CALIBRATE_DELAY=y
21CONFIG_ZONE_DMA=y
22CONFIG_VECTORS_BASE=0xffff0000
23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
24
25#
26# Code maturity level options
27#
28CONFIG_EXPERIMENTAL=y
29CONFIG_BROKEN_ON_SMP=y
30CONFIG_INIT_ENV_ARG_LIMIT=32
31
32#
33# General setup
34#
35CONFIG_LOCALVERSION=""
36# CONFIG_LOCALVERSION_AUTO is not set
37# CONFIG_SWAP is not set
38CONFIG_SYSVIPC=y
39# CONFIG_IPC_NS is not set
40CONFIG_SYSVIPC_SYSCTL=y
41# CONFIG_POSIX_MQUEUE is not set
42# CONFIG_BSD_PROCESS_ACCT is not set
43# CONFIG_TASKSTATS is not set
44# CONFIG_UTS_NS is not set
45# CONFIG_AUDIT is not set
46# CONFIG_IKCONFIG is not set
47CONFIG_SYSFS_DEPRECATED=y
48# CONFIG_RELAY is not set
49CONFIG_BLK_DEV_INITRD=y
50CONFIG_INITRAMFS_SOURCE=""
51CONFIG_CC_OPTIMIZE_FOR_SIZE=y
52CONFIG_SYSCTL=y
53# CONFIG_EMBEDDED is not set
54CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_ALL is not set
58# CONFIG_KALLSYMS_EXTRA_PASS is not set
59CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y
61CONFIG_BUG=y
62CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y
65CONFIG_EPOLL=y
66CONFIG_SHMEM=y
67CONFIG_SLAB=y
68CONFIG_VM_EVENT_COUNTERS=y
69CONFIG_RT_MUTEXES=y
70# CONFIG_TINY_SHMEM is not set
71CONFIG_BASE_SMALL=0
72# CONFIG_SLOB is not set
73
74#
75# Loadable module support
76#
77CONFIG_MODULES=y
78CONFIG_MODULE_UNLOAD=y
79# CONFIG_MODULE_FORCE_UNLOAD is not set
80# CONFIG_MODVERSIONS is not set
81# CONFIG_MODULE_SRCVERSION_ALL is not set
82CONFIG_KMOD=y
83
84#
85# Block layer
86#
87CONFIG_BLOCK=y
88# CONFIG_LBD is not set
89# CONFIG_BLK_DEV_IO_TRACE is not set
90# CONFIG_LSF is not set
91
92#
93# IO Schedulers
94#
95CONFIG_IOSCHED_NOOP=y
96CONFIG_IOSCHED_AS=y
97# CONFIG_IOSCHED_DEADLINE is not set
98# CONFIG_IOSCHED_CFQ is not set
99CONFIG_DEFAULT_AS=y
100# CONFIG_DEFAULT_DEADLINE is not set
101# CONFIG_DEFAULT_CFQ is not set
102# CONFIG_DEFAULT_NOOP is not set
103CONFIG_DEFAULT_IOSCHED="anticipatory"
104
105#
106# System Type
107#
108# CONFIG_ARCH_AAEC2000 is not set
109# CONFIG_ARCH_INTEGRATOR is not set
110# CONFIG_ARCH_REALVIEW is not set
111# CONFIG_ARCH_VERSATILE is not set
112CONFIG_ARCH_AT91=y
113# CONFIG_ARCH_CLPS7500 is not set
114# CONFIG_ARCH_CLPS711X is not set
115# CONFIG_ARCH_CO285 is not set
116# CONFIG_ARCH_EBSA110 is not set
117# CONFIG_ARCH_EP93XX is not set
118# CONFIG_ARCH_FOOTBRIDGE is not set
119# CONFIG_ARCH_NETX is not set
120# CONFIG_ARCH_H720X is not set
121# CONFIG_ARCH_IMX is not set
122# CONFIG_ARCH_IOP32X is not set
123# CONFIG_ARCH_IOP33X is not set
124# CONFIG_ARCH_IOP13XX is not set
125# CONFIG_ARCH_IXP4XX is not set
126# CONFIG_ARCH_IXP2000 is not set
127# CONFIG_ARCH_IXP23XX is not set
128# CONFIG_ARCH_L7200 is not set
129# CONFIG_ARCH_NS9XXX is not set
130# CONFIG_ARCH_PNX4008 is not set
131# CONFIG_ARCH_PXA is not set
132# CONFIG_ARCH_RPC is not set
133# CONFIG_ARCH_SA1100 is not set
134# CONFIG_ARCH_S3C2410 is not set
135# CONFIG_ARCH_SHARK is not set
136# CONFIG_ARCH_LH7A40X is not set
137# CONFIG_ARCH_OMAP is not set
138
139#
140# Atmel AT91 System-on-Chip
141#
142# CONFIG_ARCH_AT91RM9200 is not set
143# CONFIG_ARCH_AT91SAM9260 is not set
144# CONFIG_ARCH_AT91SAM9261 is not set
145# CONFIG_ARCH_AT91SAM9263 is not set
146CONFIG_ARCH_AT91SAM9RL=y
147
148#
149# AT91SAM9RL Board Type
150#
151CONFIG_MACH_AT91SAM9RLEK=y
152
153#
154# AT91 Board Options
155#
156
157#
158# AT91 Feature Selections
159#
160# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set
161
162#
163# Processor Type
164#
165CONFIG_CPU_32=y
166CONFIG_CPU_ARM926T=y
167CONFIG_CPU_32v5=y
168CONFIG_CPU_ABRT_EV5TJ=y
169CONFIG_CPU_CACHE_VIVT=y
170CONFIG_CPU_COPY_V4WB=y
171CONFIG_CPU_TLB_V4WBI=y
172CONFIG_CPU_CP15=y
173CONFIG_CPU_CP15_MMU=y
174
175#
176# Processor Features
177#
178# CONFIG_ARM_THUMB is not set
179# CONFIG_CPU_ICACHE_DISABLE is not set
180# CONFIG_CPU_DCACHE_DISABLE is not set
181# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
182# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
183# CONFIG_OUTER_CACHE is not set
184
185#
186# Bus support
187#
188
189#
190# PCCARD (PCMCIA/CardBus) support
191#
192# CONFIG_PCCARD is not set
193
194#
195# Kernel Features
196#
197# CONFIG_PREEMPT is not set
198# CONFIG_NO_IDLE_HZ is not set
199CONFIG_HZ=100
200# CONFIG_AEABI is not set
201# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
202CONFIG_SELECT_MEMORY_MODEL=y
203CONFIG_FLATMEM_MANUAL=y
204# CONFIG_DISCONTIGMEM_MANUAL is not set
205# CONFIG_SPARSEMEM_MANUAL is not set
206CONFIG_FLATMEM=y
207CONFIG_FLAT_NODE_MEM_MAP=y
208# CONFIG_SPARSEMEM_STATIC is not set
209CONFIG_SPLIT_PTLOCK_CPUS=4096
210# CONFIG_RESOURCES_64BIT is not set
211CONFIG_ZONE_DMA_FLAG=1
212# CONFIG_LEDS is not set
213CONFIG_ALIGNMENT_TRAP=y
214
215#
216# Boot options
217#
218CONFIG_ZBOOT_ROM_TEXT=0x0
219CONFIG_ZBOOT_ROM_BSS=0x0
220CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,17105363 root=/dev/ram0 rw"
221# CONFIG_XIP_KERNEL is not set
222# CONFIG_KEXEC is not set
223
224#
225# Floating point emulation
226#
227
228#
229# At least one emulation must be selected
230#
231CONFIG_FPE_NWFPE=y
232# CONFIG_FPE_NWFPE_XP is not set
233# CONFIG_FPE_FASTFPE is not set
234# CONFIG_VFP is not set
235
236#
237# Userspace binary formats
238#
239CONFIG_BINFMT_ELF=y
240# CONFIG_BINFMT_AOUT is not set
241# CONFIG_BINFMT_MISC is not set
242# CONFIG_ARTHUR is not set
243
244#
245# Power management options
246#
247# CONFIG_PM is not set
248
249#
250# Networking
251#
252CONFIG_NET=y
253
254#
255# Networking options
256#
257# CONFIG_NETDEBUG is not set
258# CONFIG_PACKET is not set
259CONFIG_UNIX=y
260# CONFIG_NET_KEY is not set
261# CONFIG_INET is not set
262# CONFIG_NETWORK_SECMARK is not set
263# CONFIG_NETFILTER is not set
264# CONFIG_ATM is not set
265# CONFIG_BRIDGE is not set
266# CONFIG_VLAN_8021Q is not set
267# CONFIG_DECNET is not set
268# CONFIG_LLC2 is not set
269# CONFIG_IPX is not set
270# CONFIG_ATALK is not set
271# CONFIG_X25 is not set
272# CONFIG_LAPB is not set
273# CONFIG_WAN_ROUTER is not set
274
275#
276# QoS and/or fair queueing
277#
278# CONFIG_NET_SCHED is not set
279
280#
281# Network testing
282#
283# CONFIG_NET_PKTGEN is not set
284# CONFIG_HAMRADIO is not set
285# CONFIG_IRDA is not set
286# CONFIG_BT is not set
287# CONFIG_IEEE80211 is not set
288
289#
290# Device Drivers
291#
292
293#
294# Generic Driver Options
295#
296CONFIG_STANDALONE=y
297CONFIG_PREVENT_FIRMWARE_BUILD=y
298# CONFIG_FW_LOADER is not set
299# CONFIG_DEBUG_DRIVER is not set
300# CONFIG_DEBUG_DEVRES is not set
301# CONFIG_SYS_HYPERVISOR is not set
302
303#
304# Connector - unified userspace <-> kernelspace linker
305#
306# CONFIG_CONNECTOR is not set
307
308#
309# Memory Technology Devices (MTD)
310#
311CONFIG_MTD=y
312# CONFIG_MTD_DEBUG is not set
313CONFIG_MTD_CONCAT=y
314CONFIG_MTD_PARTITIONS=y
315# CONFIG_MTD_REDBOOT_PARTS is not set
316CONFIG_MTD_CMDLINE_PARTS=y
317# CONFIG_MTD_AFS_PARTS is not set
318
319#
320# User Modules And Translation Layers
321#
322CONFIG_MTD_CHAR=y
323CONFIG_MTD_BLKDEVS=y
324CONFIG_MTD_BLOCK=y
325# CONFIG_FTL is not set
326# CONFIG_NFTL is not set
327# CONFIG_INFTL is not set
328# CONFIG_RFD_FTL is not set
329# CONFIG_SSFDC is not set
330
331#
332# RAM/ROM/Flash chip drivers
333#
334# CONFIG_MTD_CFI is not set
335# CONFIG_MTD_JEDECPROBE is not set
336CONFIG_MTD_MAP_BANK_WIDTH_1=y
337CONFIG_MTD_MAP_BANK_WIDTH_2=y
338CONFIG_MTD_MAP_BANK_WIDTH_4=y
339# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
340# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
341# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
342CONFIG_MTD_CFI_I1=y
343CONFIG_MTD_CFI_I2=y
344# CONFIG_MTD_CFI_I4 is not set
345# CONFIG_MTD_CFI_I8 is not set
346# CONFIG_MTD_RAM is not set
347# CONFIG_MTD_ROM is not set
348# CONFIG_MTD_ABSENT is not set
349# CONFIG_MTD_OBSOLETE_CHIPS is not set
350
351#
352# Mapping drivers for chip access
353#
354# CONFIG_MTD_COMPLEX_MAPPINGS is not set
355# CONFIG_MTD_PLATRAM is not set
356
357#
358# Self-contained MTD device drivers
359#
360CONFIG_MTD_DATAFLASH=y
361# CONFIG_MTD_M25P80 is not set
362# CONFIG_MTD_SLRAM is not set
363# CONFIG_MTD_PHRAM is not set
364# CONFIG_MTD_MTDRAM is not set
365# CONFIG_MTD_BLOCK2MTD is not set
366
367#
368# Disk-On-Chip Device Drivers
369#
370# CONFIG_MTD_DOC2000 is not set
371# CONFIG_MTD_DOC2001 is not set
372# CONFIG_MTD_DOC2001PLUS is not set
373
374#
375# NAND Flash Device Drivers
376#
377CONFIG_MTD_NAND=y
378# CONFIG_MTD_NAND_VERIFY_WRITE is not set
379# CONFIG_MTD_NAND_ECC_SMC is not set
380CONFIG_MTD_NAND_IDS=y
381# CONFIG_MTD_NAND_DISKONCHIP is not set
382CONFIG_MTD_NAND_AT91=y
383# CONFIG_MTD_NAND_NANDSIM is not set
384
385#
386# OneNAND Flash Device Drivers
387#
388# CONFIG_MTD_ONENAND is not set
389
390#
391# Parallel port support
392#
393# CONFIG_PARPORT is not set
394
395#
396# Plug and Play support
397#
398# CONFIG_PNPACPI is not set
399
400#
401# Block devices
402#
403# CONFIG_BLK_DEV_COW_COMMON is not set
404CONFIG_BLK_DEV_LOOP=y
405# CONFIG_BLK_DEV_CRYPTOLOOP is not set
406# CONFIG_BLK_DEV_NBD is not set
407CONFIG_BLK_DEV_RAM=y
408CONFIG_BLK_DEV_RAM_COUNT=4
409CONFIG_BLK_DEV_RAM_SIZE=24576
410CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
411# CONFIG_CDROM_PKTCDVD is not set
412# CONFIG_ATA_OVER_ETH is not set
413
414#
415# SCSI device support
416#
417# CONFIG_RAID_ATTRS is not set
418CONFIG_SCSI=y
419# CONFIG_SCSI_TGT is not set
420# CONFIG_SCSI_NETLINK is not set
421CONFIG_SCSI_PROC_FS=y
422
423#
424# SCSI support type (disk, tape, CD-ROM)
425#
426CONFIG_BLK_DEV_SD=y
427# CONFIG_CHR_DEV_ST is not set
428# CONFIG_CHR_DEV_OSST is not set
429# CONFIG_BLK_DEV_SR is not set
430# CONFIG_CHR_DEV_SG is not set
431# CONFIG_CHR_DEV_SCH is not set
432
433#
434# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
435#
436CONFIG_SCSI_MULTI_LUN=y
437# CONFIG_SCSI_CONSTANTS is not set
438# CONFIG_SCSI_LOGGING is not set
439# CONFIG_SCSI_SCAN_ASYNC is not set
440
441#
442# SCSI Transports
443#
444# CONFIG_SCSI_SPI_ATTRS is not set
445# CONFIG_SCSI_FC_ATTRS is not set
446# CONFIG_SCSI_ISCSI_ATTRS is not set
447# CONFIG_SCSI_SAS_ATTRS is not set
448# CONFIG_SCSI_SAS_LIBSAS is not set
449
450#
451# SCSI low-level drivers
452#
453# CONFIG_SCSI_DEBUG is not set
454
455#
456# Serial ATA (prod) and Parallel ATA (experimental) drivers
457#
458# CONFIG_ATA is not set
459
460#
461# Multi-device support (RAID and LVM)
462#
463# CONFIG_MD is not set
464
465#
466# Fusion MPT device support
467#
468# CONFIG_FUSION is not set
469
470#
471# IEEE 1394 (FireWire) support
472#
473
474#
475# I2O device support
476#
477
478#
479# Network device support
480#
481# CONFIG_NETDEVICES is not set
482# CONFIG_NETPOLL is not set
483# CONFIG_NET_POLL_CONTROLLER is not set
484
485#
486# ISDN subsystem
487#
488# CONFIG_ISDN is not set
489
490#
491# Input device support
492#
493CONFIG_INPUT=y
494# CONFIG_INPUT_FF_MEMLESS is not set
495
496#
497# Userland interfaces
498#
499CONFIG_INPUT_MOUSEDEV=y
500# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
501CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
502CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
503# CONFIG_INPUT_JOYDEV is not set
504# CONFIG_INPUT_TSDEV is not set
505CONFIG_INPUT_EVDEV=y
506# CONFIG_INPUT_EVBUG is not set
507
508#
509# Input Device Drivers
510#
511# CONFIG_INPUT_KEYBOARD is not set
512# CONFIG_INPUT_MOUSE is not set
513# CONFIG_INPUT_JOYSTICK is not set
514CONFIG_INPUT_TOUCHSCREEN=y
515# CONFIG_TOUCHSCREEN_ADS7846 is not set
516# CONFIG_TOUCHSCREEN_GUNZE is not set
517# CONFIG_TOUCHSCREEN_ELO is not set
518# CONFIG_TOUCHSCREEN_MTOUCH is not set
519# CONFIG_TOUCHSCREEN_MK712 is not set
520# CONFIG_TOUCHSCREEN_PENMOUNT is not set
521# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
522# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
523# CONFIG_TOUCHSCREEN_UCB1400 is not set
524# CONFIG_INPUT_MISC is not set
525
526#
527# Hardware I/O ports
528#
529# CONFIG_SERIO is not set
530# CONFIG_GAMEPORT is not set
531
532#
533# Character devices
534#
535CONFIG_VT=y
536CONFIG_VT_CONSOLE=y
537CONFIG_HW_CONSOLE=y
538# CONFIG_VT_HW_CONSOLE_BINDING is not set
539# CONFIG_SERIAL_NONSTANDARD is not set
540
541#
542# Serial drivers
543#
544# CONFIG_SERIAL_8250 is not set
545
546#
547# Non-8250 serial port support
548#
549CONFIG_SERIAL_ATMEL=y
550CONFIG_SERIAL_ATMEL_CONSOLE=y
551# CONFIG_SERIAL_ATMEL_TTYAT is not set
552CONFIG_SERIAL_CORE=y
553CONFIG_SERIAL_CORE_CONSOLE=y
554CONFIG_UNIX98_PTYS=y
555CONFIG_LEGACY_PTYS=y
556CONFIG_LEGACY_PTY_COUNT=256
557
558#
559# IPMI
560#
561# CONFIG_IPMI_HANDLER is not set
562
563#
564# Watchdog Cards
565#
566CONFIG_WATCHDOG=y
567CONFIG_WATCHDOG_NOWAYOUT=y
568
569#
570# Watchdog Device Drivers
571#
572# CONFIG_SOFT_WATCHDOG is not set
573CONFIG_HW_RANDOM=y
574# CONFIG_NVRAM is not set
575# CONFIG_DTLK is not set
576# CONFIG_R3964 is not set
577# CONFIG_RAW_DRIVER is not set
578
579#
580# TPM devices
581#
582# CONFIG_TCG_TPM is not set
583
584#
585# I2C support
586#
587# CONFIG_I2C is not set
588
589#
590# SPI support
591#
592CONFIG_SPI=y
593# CONFIG_SPI_DEBUG is not set
594CONFIG_SPI_MASTER=y
595
596#
597# SPI Master Controller Drivers
598#
599CONFIG_SPI_ATMEL=y
600# CONFIG_SPI_BITBANG is not set
601
602#
603# SPI Protocol Masters
604#
605# CONFIG_SPI_AT25 is not set
606
607#
608# Dallas's 1-wire bus
609#
610# CONFIG_W1 is not set
611
612#
613# Hardware Monitoring support
614#
615# CONFIG_HWMON is not set
616# CONFIG_HWMON_VID is not set
617
618#
619# Misc devices
620#
621
622#
623# Multifunction device drivers
624#
625# CONFIG_MFD_SM501 is not set
626
627#
628# LED devices
629#
630# CONFIG_NEW_LEDS is not set
631
632#
633# LED drivers
634#
635
636#
637# LED Triggers
638#
639
640#
641# Multimedia devices
642#
643# CONFIG_VIDEO_DEV is not set
644
645#
646# Digital Video Broadcasting Devices
647#
648
649#
650# Graphics support
651#
652# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
653CONFIG_FB=y
654# CONFIG_FIRMWARE_EDID is not set
655# CONFIG_FB_DDC is not set
656CONFIG_FB_CFB_FILLRECT=y
657CONFIG_FB_CFB_COPYAREA=y
658CONFIG_FB_CFB_IMAGEBLIT=y
659# CONFIG_FB_SVGALIB is not set
660# CONFIG_FB_MACMODES is not set
661# CONFIG_FB_BACKLIGHT is not set
662# CONFIG_FB_MODE_HELPERS is not set
663# CONFIG_FB_TILEBLITTING is not set
664
665#
666# Frame buffer hardware drivers
667#
668# CONFIG_FB_S1D13XXX is not set
669CONFIG_FB_ATMEL=y
670# CONFIG_FB_VIRTUAL is not set
671
672#
673# Console display driver support
674#
675# CONFIG_VGA_CONSOLE is not set
676CONFIG_DUMMY_CONSOLE=y
677# CONFIG_FRAMEBUFFER_CONSOLE is not set
678
679#
680# Logo configuration
681#
682# CONFIG_LOGO is not set
683
684#
685# Sound
686#
687CONFIG_SOUND=y
688
689#
690# Advanced Linux Sound Architecture
691#
692CONFIG_SND=y
693CONFIG_SND_TIMER=y
694CONFIG_SND_PCM=y
695CONFIG_SND_SEQUENCER=y
696CONFIG_SND_SEQ_DUMMY=y
697CONFIG_SND_OSSEMUL=y
698CONFIG_SND_MIXER_OSS=y
699CONFIG_SND_PCM_OSS=y
700CONFIG_SND_PCM_OSS_PLUGINS=y
701CONFIG_SND_SEQUENCER_OSS=y
702# CONFIG_SND_DYNAMIC_MINORS is not set
703CONFIG_SND_SUPPORT_OLD_API=y
704CONFIG_SND_VERBOSE_PROCFS=y
705CONFIG_SND_VERBOSE_PRINTK=y
706CONFIG_SND_DEBUG=y
707CONFIG_SND_DEBUG_DETECT=y
708# CONFIG_SND_PCM_XRUN_DEBUG is not set
709
710#
711# Generic devices
712#
713# CONFIG_SND_DUMMY is not set
714# CONFIG_SND_VIRMIDI is not set
715# CONFIG_SND_MTPAV is not set
716# CONFIG_SND_SERIAL_U16550 is not set
717# CONFIG_SND_MPU401 is not set
718
719#
720# ALSA ARM devices
721#
722
723#
724# SoC audio support
725#
726# CONFIG_SND_SOC is not set
727
728#
729# Open Sound System
730#
731# CONFIG_SOUND_PRIME is not set
732
733#
734# HID Devices
735#
736CONFIG_HID=y
737# CONFIG_HID_DEBUG is not set
738
739#
740# USB support
741#
742CONFIG_USB_ARCH_HAS_HCD=y
743CONFIG_USB_ARCH_HAS_OHCI=y
744# CONFIG_USB_ARCH_HAS_EHCI is not set
745# CONFIG_USB is not set
746
747#
748# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
749#
750
751#
752# USB Gadget Support
753#
754# CONFIG_USB_GADGET is not set
755
756#
757# MMC/SD Card support
758#
759CONFIG_MMC=y
760# CONFIG_MMC_DEBUG is not set
761CONFIG_MMC_BLOCK=y
762CONFIG_MMC_AT91=y
763
764#
765# Real Time Clock
766#
767CONFIG_RTC_LIB=y
768# CONFIG_RTC_CLASS is not set
769
770#
771# File systems
772#
773CONFIG_EXT2_FS=y
774# CONFIG_EXT2_FS_XATTR is not set
775# CONFIG_EXT2_FS_XIP is not set
776# CONFIG_EXT3_FS is not set
777# CONFIG_EXT4DEV_FS is not set
778# CONFIG_REISERFS_FS is not set
779# CONFIG_JFS_FS is not set
780# CONFIG_FS_POSIX_ACL is not set
781# CONFIG_XFS_FS is not set
782# CONFIG_GFS2_FS is not set
783# CONFIG_OCFS2_FS is not set
784# CONFIG_MINIX_FS is not set
785# CONFIG_ROMFS_FS is not set
786CONFIG_INOTIFY=y
787CONFIG_INOTIFY_USER=y
788# CONFIG_QUOTA is not set
789CONFIG_DNOTIFY=y
790# CONFIG_AUTOFS_FS is not set
791# CONFIG_AUTOFS4_FS is not set
792# CONFIG_FUSE_FS is not set
793
794#
795# CD-ROM/DVD Filesystems
796#
797# CONFIG_ISO9660_FS is not set
798# CONFIG_UDF_FS is not set
799
800#
801# DOS/FAT/NT Filesystems
802#
803CONFIG_FAT_FS=y
804CONFIG_MSDOS_FS=y
805CONFIG_VFAT_FS=y
806CONFIG_FAT_DEFAULT_CODEPAGE=437
807CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
808# CONFIG_NTFS_FS is not set
809
810#
811# Pseudo filesystems
812#
813CONFIG_PROC_FS=y
814CONFIG_PROC_SYSCTL=y
815CONFIG_SYSFS=y
816CONFIG_TMPFS=y
817# CONFIG_TMPFS_POSIX_ACL is not set
818# CONFIG_HUGETLB_PAGE is not set
819CONFIG_RAMFS=y
820# CONFIG_CONFIGFS_FS is not set
821
822#
823# Miscellaneous filesystems
824#
825# CONFIG_ADFS_FS is not set
826# CONFIG_AFFS_FS is not set
827# CONFIG_HFS_FS is not set
828# CONFIG_HFSPLUS_FS is not set
829# CONFIG_BEFS_FS is not set
830# CONFIG_BFS_FS is not set
831# CONFIG_EFS_FS is not set
832# CONFIG_JFFS2_FS is not set
833CONFIG_CRAMFS=y
834# CONFIG_VXFS_FS is not set
835# CONFIG_HPFS_FS is not set
836# CONFIG_QNX4FS_FS is not set
837# CONFIG_SYSV_FS is not set
838# CONFIG_UFS_FS is not set
839
840#
841# Network File Systems
842#
843
844#
845# Partition Types
846#
847# CONFIG_PARTITION_ADVANCED is not set
848CONFIG_MSDOS_PARTITION=y
849
850#
851# Native Language Support
852#
853CONFIG_NLS=y
854CONFIG_NLS_DEFAULT="iso8859-1"
855CONFIG_NLS_CODEPAGE_437=y
856# CONFIG_NLS_CODEPAGE_737 is not set
857# CONFIG_NLS_CODEPAGE_775 is not set
858CONFIG_NLS_CODEPAGE_850=y
859# CONFIG_NLS_CODEPAGE_852 is not set
860# CONFIG_NLS_CODEPAGE_855 is not set
861# CONFIG_NLS_CODEPAGE_857 is not set
862# CONFIG_NLS_CODEPAGE_860 is not set
863# CONFIG_NLS_CODEPAGE_861 is not set
864# CONFIG_NLS_CODEPAGE_862 is not set
865# CONFIG_NLS_CODEPAGE_863 is not set
866# CONFIG_NLS_CODEPAGE_864 is not set
867# CONFIG_NLS_CODEPAGE_865 is not set
868# CONFIG_NLS_CODEPAGE_866 is not set
869# CONFIG_NLS_CODEPAGE_869 is not set
870# CONFIG_NLS_CODEPAGE_936 is not set
871# CONFIG_NLS_CODEPAGE_950 is not set
872# CONFIG_NLS_CODEPAGE_932 is not set
873# CONFIG_NLS_CODEPAGE_949 is not set
874# CONFIG_NLS_CODEPAGE_874 is not set
875# CONFIG_NLS_ISO8859_8 is not set
876# CONFIG_NLS_CODEPAGE_1250 is not set
877# CONFIG_NLS_CODEPAGE_1251 is not set
878# CONFIG_NLS_ASCII is not set
879CONFIG_NLS_ISO8859_1=y
880# CONFIG_NLS_ISO8859_2 is not set
881# CONFIG_NLS_ISO8859_3 is not set
882# CONFIG_NLS_ISO8859_4 is not set
883# CONFIG_NLS_ISO8859_5 is not set
884# CONFIG_NLS_ISO8859_6 is not set
885# CONFIG_NLS_ISO8859_7 is not set
886# CONFIG_NLS_ISO8859_9 is not set
887# CONFIG_NLS_ISO8859_13 is not set
888# CONFIG_NLS_ISO8859_14 is not set
889CONFIG_NLS_ISO8859_15=y
890# CONFIG_NLS_KOI8_R is not set
891# CONFIG_NLS_KOI8_U is not set
892CONFIG_NLS_UTF8=y
893
894#
895# Profiling support
896#
897# CONFIG_PROFILING is not set
898
899#
900# Kernel hacking
901#
902# CONFIG_PRINTK_TIME is not set
903CONFIG_ENABLE_MUST_CHECK=y
904# CONFIG_MAGIC_SYSRQ is not set
905# CONFIG_UNUSED_SYMBOLS is not set
906# CONFIG_DEBUG_FS is not set
907# CONFIG_HEADERS_CHECK is not set
908CONFIG_DEBUG_KERNEL=y
909# CONFIG_DEBUG_SHIRQ is not set
910CONFIG_LOG_BUF_SHIFT=14
911CONFIG_DETECT_SOFTLOCKUP=y
912# CONFIG_SCHEDSTATS is not set
913# CONFIG_TIMER_STATS is not set
914# CONFIG_DEBUG_SLAB is not set
915# CONFIG_DEBUG_RT_MUTEXES is not set
916# CONFIG_RT_MUTEX_TESTER is not set
917# CONFIG_DEBUG_SPINLOCK is not set
918# CONFIG_DEBUG_MUTEXES is not set
919# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
920# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
921# CONFIG_DEBUG_KOBJECT is not set
922CONFIG_DEBUG_BUGVERBOSE=y
923CONFIG_DEBUG_INFO=y
924# CONFIG_DEBUG_VM is not set
925# CONFIG_DEBUG_LIST is not set
926CONFIG_FRAME_POINTER=y
927CONFIG_FORCED_INLINING=y
928# CONFIG_RCU_TORTURE_TEST is not set
929# CONFIG_FAULT_INJECTION is not set
930CONFIG_DEBUG_USER=y
931# CONFIG_DEBUG_ERRORS is not set
932CONFIG_DEBUG_LL=y
933# CONFIG_DEBUG_ICEDCC is not set
934
935#
936# Security options
937#
938# CONFIG_KEYS is not set
939# CONFIG_SECURITY is not set
940
941#
942# Cryptographic options
943#
944# CONFIG_CRYPTO is not set
945
946#
947# Library routines
948#
949CONFIG_BITREVERSE=y
950# CONFIG_CRC_CCITT is not set
951# CONFIG_CRC16 is not set
952CONFIG_CRC32=y
953# CONFIG_LIBCRC32C is not set
954CONFIG_ZLIB_INFLATE=y
955CONFIG_PLIST=y
956CONFIG_HAS_IOMEM=y
957CONFIG_HAS_IOPORT=y
diff --git a/arch/arm/configs/ks8695_defconfig b/arch/arm/configs/ks8695_defconfig
new file mode 100644
index 000000000000..8ab21a0719e9
--- /dev/null
+++ b/arch/arm/configs/ks8695_defconfig
@@ -0,0 +1,880 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17-rc4
4# Thu May 25 15:42:51 2006
5#
6CONFIG_ARM=y
7CONFIG_MMU=y
8CONFIG_RWSEM_GENERIC_SPINLOCK=y
9CONFIG_GENERIC_HWEIGHT=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y
11CONFIG_VECTORS_BASE=0xffff0000
12
13#
14# Code maturity level options
15#
16CONFIG_EXPERIMENTAL=y
17CONFIG_BROKEN_ON_SMP=y
18CONFIG_INIT_ENV_ARG_LIMIT=32
19
20#
21# General setup
22#
23CONFIG_LOCALVERSION=""
24CONFIG_LOCALVERSION_AUTO=y
25# CONFIG_SWAP is not set
26CONFIG_SYSVIPC=y
27# CONFIG_POSIX_MQUEUE is not set
28# CONFIG_BSD_PROCESS_ACCT is not set
29CONFIG_SYSCTL=y
30# CONFIG_AUDIT is not set
31# CONFIG_IKCONFIG is not set
32# CONFIG_RELAY is not set
33CONFIG_INITRAMFS_SOURCE=""
34CONFIG_UID16=y
35CONFIG_CC_OPTIMIZE_FOR_SIZE=y
36# CONFIG_EMBEDDED is not set
37CONFIG_KALLSYMS=y
38# CONFIG_KALLSYMS_ALL is not set
39# CONFIG_KALLSYMS_EXTRA_PASS is not set
40CONFIG_HOTPLUG=y
41CONFIG_PRINTK=y
42CONFIG_BUG=y
43CONFIG_ELF_CORE=y
44CONFIG_BASE_FULL=y
45CONFIG_FUTEX=y
46CONFIG_EPOLL=y
47CONFIG_SHMEM=y
48CONFIG_SLAB=y
49# CONFIG_TINY_SHMEM is not set
50CONFIG_BASE_SMALL=0
51# CONFIG_SLOB is not set
52CONFIG_OBSOLETE_INTERMODULE=y
53
54#
55# Loadable module support
56#
57CONFIG_MODULES=y
58CONFIG_MODULE_UNLOAD=y
59# CONFIG_MODULE_FORCE_UNLOAD is not set
60# CONFIG_MODVERSIONS is not set
61# CONFIG_MODULE_SRCVERSION_ALL is not set
62CONFIG_KMOD=y
63
64#
65# Block layer
66#
67# CONFIG_BLK_DEV_IO_TRACE is not set
68
69#
70# IO Schedulers
71#
72CONFIG_IOSCHED_NOOP=y
73CONFIG_IOSCHED_AS=y
74# CONFIG_IOSCHED_DEADLINE is not set
75# CONFIG_IOSCHED_CFQ is not set
76CONFIG_DEFAULT_AS=y
77# CONFIG_DEFAULT_DEADLINE is not set
78# CONFIG_DEFAULT_CFQ is not set
79# CONFIG_DEFAULT_NOOP is not set
80CONFIG_DEFAULT_IOSCHED="anticipatory"
81
82#
83# System Type
84#
85# CONFIG_ARCH_CLPS7500 is not set
86# CONFIG_ARCH_CLPS711X is not set
87# CONFIG_ARCH_CO285 is not set
88# CONFIG_ARCH_EBSA110 is not set
89# CONFIG_ARCH_EP93XX is not set
90# CONFIG_ARCH_FOOTBRIDGE is not set
91# CONFIG_ARCH_INTEGRATOR is not set
92# CONFIG_ARCH_IOP3XX is not set
93# CONFIG_ARCH_IXP4XX is not set
94# CONFIG_ARCH_IXP2000 is not set
95# CONFIG_ARCH_IXP23XX is not set
96# CONFIG_ARCH_L7200 is not set
97# CONFIG_ARCH_PXA is not set
98# CONFIG_ARCH_RPC is not set
99# CONFIG_ARCH_SA1100 is not set
100# CONFIG_ARCH_S3C2410 is not set
101# CONFIG_ARCH_SHARK is not set
102# CONFIG_ARCH_LH7A40X is not set
103# CONFIG_ARCH_OMAP is not set
104# CONFIG_ARCH_VERSATILE is not set
105# CONFIG_ARCH_REALVIEW is not set
106# CONFIG_ARCH_IMX is not set
107# CONFIG_ARCH_H720X is not set
108# CONFIG_ARCH_AAEC2000 is not set
109# CONFIG_ARCH_AT91 is not set
110CONFIG_ARCH_KS8695=y
111
112#
113# Kendin/Micrel KS8695 Implementations
114#
115CONFIG_MACH_KS8695=y
116# CONFIG_MACH_DSM320 is not set
117# CONFIG_MACH_CM4002 is not set
118# CONFIG_MACH_CM4008 is not set
119# CONFIG_MACH_CM40xx is not set
120# CONFIG_MACH_LITE300 is not set
121# CONFIG_MACH_SE4200 is not set
122# CONFIG_MACH_MANGA_KS8695 is not set
123
124#
125# Processor Type
126#
127CONFIG_CPU_32=y
128CONFIG_CPU_ARM922T=y
129CONFIG_CPU_32v4=y
130CONFIG_CPU_ABRT_EV4T=y
131CONFIG_CPU_CACHE_V4WT=y
132CONFIG_CPU_CACHE_VIVT=y
133CONFIG_CPU_COPY_V4WB=y
134CONFIG_CPU_TLB_V4WBI=y
135
136#
137# Processor Features
138#
139# CONFIG_ARM_THUMB is not set
140# CONFIG_CPU_ICACHE_DISABLE is not set
141# CONFIG_CPU_DCACHE_DISABLE is not set
142# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
143
144#
145# Bus support
146#
147CONFIG_PCI=y
148CONFIG_PCI_DEBUG=y
149
150#
151# PCCARD (PCMCIA/CardBus) support
152#
153CONFIG_PCCARD=y
154# CONFIG_PCMCIA_DEBUG is not set
155CONFIG_PCMCIA=y
156CONFIG_PCMCIA_LOAD_CIS=y
157CONFIG_PCMCIA_IOCTL=y
158CONFIG_CARDBUS=y
159
160#
161# PC-card bridges
162#
163CONFIG_YENTA=y
164CONFIG_YENTA_O2=y
165CONFIG_YENTA_RICOH=y
166CONFIG_YENTA_TI=y
167CONFIG_YENTA_ENE_TUNE=y
168CONFIG_YENTA_TOSHIBA=y
169# CONFIG_PD6729 is not set
170# CONFIG_I82092 is not set
171CONFIG_PCCARD_NONSTATIC=y
172
173#
174# Kernel Features
175#
176# CONFIG_PREEMPT is not set
177# CONFIG_NO_IDLE_HZ is not set
178CONFIG_HZ=100
179# CONFIG_AEABI is not set
180# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
181CONFIG_SELECT_MEMORY_MODEL=y
182CONFIG_FLATMEM_MANUAL=y
183# CONFIG_DISCONTIGMEM_MANUAL is not set
184# CONFIG_SPARSEMEM_MANUAL is not set
185CONFIG_FLATMEM=y
186CONFIG_FLAT_NODE_MEM_MAP=y
187# CONFIG_SPARSEMEM_STATIC is not set
188CONFIG_SPLIT_PTLOCK_CPUS=4096
189CONFIG_ALIGNMENT_TRAP=y
190
191#
192# Boot options
193#
194CONFIG_ZBOOT_ROM_TEXT=0x0
195CONFIG_ZBOOT_ROM_BSS=0x0
196CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x20410000,3145728 root=/dev/ram0 rw"
197# CONFIG_XIP_KERNEL is not set
198
199#
200# Floating point emulation
201#
202
203#
204# At least one emulation must be selected
205#
206CONFIG_FPE_NWFPE=y
207# CONFIG_FPE_NWFPE_XP is not set
208# CONFIG_FPE_FASTFPE is not set
209
210#
211# Userspace binary formats
212#
213CONFIG_BINFMT_ELF=y
214# CONFIG_BINFMT_AOUT is not set
215# CONFIG_BINFMT_MISC is not set
216# CONFIG_ARTHUR is not set
217
218#
219# Power management options
220#
221# CONFIG_PM is not set
222# CONFIG_APM is not set
223
224#
225# Networking
226#
227CONFIG_NET=y
228
229#
230# Networking options
231#
232# CONFIG_NETDEBUG is not set
233CONFIG_PACKET=y
234# CONFIG_PACKET_MMAP is not set
235CONFIG_UNIX=y
236# CONFIG_NET_KEY is not set
237CONFIG_INET=y
238# CONFIG_IP_MULTICAST is not set
239# CONFIG_IP_ADVANCED_ROUTER is not set
240CONFIG_IP_FIB_HASH=y
241CONFIG_IP_PNP=y
242# CONFIG_IP_PNP_DHCP is not set
243CONFIG_IP_PNP_BOOTP=y
244# CONFIG_IP_PNP_RARP is not set
245# CONFIG_NET_IPIP is not set
246# CONFIG_NET_IPGRE is not set
247# CONFIG_ARPD is not set
248# CONFIG_SYN_COOKIES is not set
249# CONFIG_INET_AH is not set
250# CONFIG_INET_ESP is not set
251# CONFIG_INET_IPCOMP is not set
252# CONFIG_INET_XFRM_TUNNEL is not set
253# CONFIG_INET_TUNNEL is not set
254CONFIG_INET_DIAG=y
255CONFIG_INET_TCP_DIAG=y
256# CONFIG_TCP_CONG_ADVANCED is not set
257CONFIG_TCP_CONG_BIC=y
258# CONFIG_IPV6 is not set
259# CONFIG_INET6_XFRM_TUNNEL is not set
260# CONFIG_INET6_TUNNEL is not set
261# CONFIG_NETFILTER is not set
262
263#
264# DCCP Configuration (EXPERIMENTAL)
265#
266# CONFIG_IP_DCCP is not set
267
268#
269# SCTP Configuration (EXPERIMENTAL)
270#
271# CONFIG_IP_SCTP is not set
272
273#
274# TIPC Configuration (EXPERIMENTAL)
275#
276# CONFIG_TIPC is not set
277# CONFIG_ATM is not set
278# CONFIG_BRIDGE is not set
279# CONFIG_VLAN_8021Q is not set
280# CONFIG_DECNET is not set
281# CONFIG_LLC2 is not set
282# CONFIG_IPX is not set
283# CONFIG_ATALK is not set
284# CONFIG_X25 is not set
285# CONFIG_LAPB is not set
286# CONFIG_NET_DIVERT is not set
287# CONFIG_ECONET is not set
288# CONFIG_WAN_ROUTER is not set
289
290#
291# QoS and/or fair queueing
292#
293# CONFIG_NET_SCHED is not set
294
295#
296# Network testing
297#
298# CONFIG_NET_PKTGEN is not set
299# CONFIG_HAMRADIO is not set
300# CONFIG_IRDA is not set
301# CONFIG_BT is not set
302# CONFIG_IEEE80211 is not set
303
304#
305# Device Drivers
306#
307
308#
309# Generic Driver Options
310#
311CONFIG_STANDALONE=y
312CONFIG_PREVENT_FIRMWARE_BUILD=y
313CONFIG_FW_LOADER=y
314# CONFIG_DEBUG_DRIVER is not set
315
316#
317# Connector - unified userspace <-> kernelspace linker
318#
319# CONFIG_CONNECTOR is not set
320
321#
322# Memory Technology Devices (MTD)
323#
324CONFIG_MTD=y
325# CONFIG_MTD_DEBUG is not set
326# CONFIG_MTD_CONCAT is not set
327CONFIG_MTD_PARTITIONS=y
328# CONFIG_MTD_REDBOOT_PARTS is not set
329CONFIG_MTD_CMDLINE_PARTS=y
330# CONFIG_MTD_AFS_PARTS is not set
331
332#
333# User Modules And Translation Layers
334#
335CONFIG_MTD_CHAR=y
336CONFIG_MTD_BLOCK=y
337# CONFIG_FTL is not set
338# CONFIG_NFTL is not set
339# CONFIG_INFTL is not set
340# CONFIG_RFD_FTL is not set
341
342#
343# RAM/ROM/Flash chip drivers
344#
345CONFIG_MTD_CFI=y
346CONFIG_MTD_JEDECPROBE=y
347CONFIG_MTD_GEN_PROBE=y
348# CONFIG_MTD_CFI_ADV_OPTIONS is not set
349CONFIG_MTD_MAP_BANK_WIDTH_1=y
350CONFIG_MTD_MAP_BANK_WIDTH_2=y
351CONFIG_MTD_MAP_BANK_WIDTH_4=y
352# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
353# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
354# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
355CONFIG_MTD_CFI_I1=y
356CONFIG_MTD_CFI_I2=y
357# CONFIG_MTD_CFI_I4 is not set
358# CONFIG_MTD_CFI_I8 is not set
359# CONFIG_MTD_CFI_INTELEXT is not set
360CONFIG_MTD_CFI_AMDSTD=y
361# CONFIG_MTD_CFI_STAA is not set
362CONFIG_MTD_CFI_UTIL=y
363# CONFIG_MTD_RAM is not set
364# CONFIG_MTD_ROM is not set
365# CONFIG_MTD_ABSENT is not set
366# CONFIG_MTD_OBSOLETE_CHIPS is not set
367
368#
369# Mapping drivers for chip access
370#
371# CONFIG_MTD_COMPLEX_MAPPINGS is not set
372# CONFIG_MTD_PHYSMAP is not set
373# CONFIG_MTD_ARM_INTEGRATOR is not set
374# CONFIG_MTD_IMPA7 is not set
375# CONFIG_MTD_PLATRAM is not set
376
377#
378# Self-contained MTD device drivers
379#
380# CONFIG_MTD_PMC551 is not set
381# CONFIG_MTD_SLRAM is not set
382# CONFIG_MTD_PHRAM is not set
383# CONFIG_MTD_MTDRAM is not set
384# CONFIG_MTD_BLOCK2MTD is not set
385
386#
387# Disk-On-Chip Device Drivers
388#
389# CONFIG_MTD_DOC2000 is not set
390# CONFIG_MTD_DOC2001 is not set
391# CONFIG_MTD_DOC2001PLUS is not set
392
393#
394# NAND Flash Device Drivers
395#
396# CONFIG_MTD_NAND is not set
397
398#
399# OneNAND Flash Device Drivers
400#
401# CONFIG_MTD_ONENAND is not set
402
403#
404# Parallel port support
405#
406# CONFIG_PARPORT is not set
407
408#
409# Plug and Play support
410#
411
412#
413# Block devices
414#
415# CONFIG_BLK_CPQ_DA is not set
416# CONFIG_BLK_CPQ_CISS_DA is not set
417# CONFIG_BLK_DEV_DAC960 is not set
418# CONFIG_BLK_DEV_UMEM is not set
419# CONFIG_BLK_DEV_COW_COMMON is not set
420# CONFIG_BLK_DEV_LOOP is not set
421# CONFIG_BLK_DEV_NBD is not set
422# CONFIG_BLK_DEV_SX8 is not set
423CONFIG_BLK_DEV_RAM=y
424CONFIG_BLK_DEV_RAM_COUNT=16
425CONFIG_BLK_DEV_RAM_SIZE=8192
426CONFIG_BLK_DEV_INITRD=y
427# CONFIG_CDROM_PKTCDVD is not set
428# CONFIG_ATA_OVER_ETH is not set
429
430#
431# ATA/ATAPI/MFM/RLL support
432#
433# CONFIG_IDE is not set
434
435#
436# SCSI device support
437#
438# CONFIG_RAID_ATTRS is not set
439# CONFIG_SCSI is not set
440
441#
442# Multi-device support (RAID and LVM)
443#
444# CONFIG_MD is not set
445
446#
447# Fusion MPT device support
448#
449# CONFIG_FUSION is not set
450
451#
452# IEEE 1394 (FireWire) support
453#
454# CONFIG_IEEE1394 is not set
455
456#
457# I2O device support
458#
459# CONFIG_I2O is not set
460
461#
462# Network device support
463#
464CONFIG_NETDEVICES=y
465# CONFIG_DUMMY is not set
466# CONFIG_BONDING is not set
467# CONFIG_EQUALIZER is not set
468# CONFIG_TUN is not set
469
470#
471# ARCnet devices
472#
473# CONFIG_ARCNET is not set
474
475#
476# PHY device support
477#
478# CONFIG_PHYLIB is not set
479
480#
481# Ethernet (10 or 100Mbit)
482#
483CONFIG_NET_ETHERNET=y
484# CONFIG_MII is not set
485CONFIG_ARM_KS8695_ETHER=y
486# CONFIG_HAPPYMEAL is not set
487# CONFIG_SUNGEM is not set
488# CONFIG_CASSINI is not set
489# CONFIG_NET_VENDOR_3COM is not set
490# CONFIG_SMC91X is not set
491# CONFIG_DM9000 is not set
492
493#
494# Tulip family network device support
495#
496# CONFIG_NET_TULIP is not set
497# CONFIG_HP100 is not set
498# CONFIG_NET_PCI is not set
499
500#
501# Ethernet (1000 Mbit)
502#
503# CONFIG_ACENIC is not set
504# CONFIG_DL2K is not set
505# CONFIG_E1000 is not set
506# CONFIG_NS83820 is not set
507# CONFIG_HAMACHI is not set
508# CONFIG_YELLOWFIN is not set
509# CONFIG_R8169 is not set
510# CONFIG_SIS190 is not set
511# CONFIG_SKGE is not set
512# CONFIG_SKY2 is not set
513# CONFIG_SK98LIN is not set
514# CONFIG_TIGON3 is not set
515# CONFIG_BNX2 is not set
516
517#
518# Ethernet (10000 Mbit)
519#
520# CONFIG_CHELSIO_T1 is not set
521# CONFIG_IXGB is not set
522# CONFIG_S2IO is not set
523
524#
525# Token Ring devices
526#
527# CONFIG_TR is not set
528
529#
530# Wireless LAN (non-hamradio)
531#
532# CONFIG_NET_RADIO is not set
533
534#
535# PCMCIA network device support
536#
537# CONFIG_NET_PCMCIA is not set
538
539#
540# Wan interfaces
541#
542# CONFIG_WAN is not set
543# CONFIG_FDDI is not set
544# CONFIG_HIPPI is not set
545# CONFIG_PPP is not set
546# CONFIG_SLIP is not set
547# CONFIG_SHAPER is not set
548# CONFIG_NETCONSOLE is not set
549# CONFIG_NETPOLL is not set
550# CONFIG_NET_POLL_CONTROLLER is not set
551
552#
553# ISDN subsystem
554#
555# CONFIG_ISDN is not set
556
557#
558# Input device support
559#
560CONFIG_INPUT=y
561
562#
563# Userland interfaces
564#
565CONFIG_INPUT_MOUSEDEV=y
566# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
567CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
568CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
569# CONFIG_INPUT_JOYDEV is not set
570# CONFIG_INPUT_TSDEV is not set
571# CONFIG_INPUT_EVDEV is not set
572# CONFIG_INPUT_EVBUG is not set
573
574#
575# Input Device Drivers
576#
577# CONFIG_INPUT_KEYBOARD is not set
578# CONFIG_INPUT_MOUSE is not set
579# CONFIG_INPUT_JOYSTICK is not set
580# CONFIG_INPUT_TOUCHSCREEN is not set
581# CONFIG_INPUT_MISC is not set
582
583#
584# Hardware I/O ports
585#
586# CONFIG_SERIO is not set
587# CONFIG_GAMEPORT is not set
588
589#
590# Character devices
591#
592CONFIG_VT=y
593CONFIG_VT_CONSOLE=y
594CONFIG_HW_CONSOLE=y
595# CONFIG_SERIAL_NONSTANDARD is not set
596
597#
598# Serial drivers
599#
600# CONFIG_SERIAL_8250 is not set
601
602#
603# Non-8250 serial port support
604#
605CONFIG_SERIAL_KS8695=y
606CONFIG_SERIAL_KS8695_CONSOLE=y
607CONFIG_SERIAL_CORE=y
608CONFIG_SERIAL_CORE_CONSOLE=y
609# CONFIG_SERIAL_JSM is not set
610CONFIG_UNIX98_PTYS=y
611CONFIG_LEGACY_PTYS=y
612CONFIG_LEGACY_PTY_COUNT=256
613
614#
615# IPMI
616#
617# CONFIG_IPMI_HANDLER is not set
618
619#
620# Watchdog Cards
621#
622# CONFIG_WATCHDOG is not set
623# CONFIG_NVRAM is not set
624# CONFIG_DTLK is not set
625# CONFIG_R3964 is not set
626# CONFIG_APPLICOM is not set
627
628#
629# Ftape, the floppy tape device driver
630#
631# CONFIG_DRM is not set
632
633#
634# PCMCIA character devices
635#
636# CONFIG_SYNCLINK_CS is not set
637# CONFIG_CARDMAN_4000 is not set
638# CONFIG_CARDMAN_4040 is not set
639# CONFIG_RAW_DRIVER is not set
640
641#
642# TPM devices
643#
644# CONFIG_TCG_TPM is not set
645# CONFIG_TELCLOCK is not set
646
647#
648# I2C support
649#
650# CONFIG_I2C is not set
651
652#
653# SPI support
654#
655# CONFIG_SPI is not set
656# CONFIG_SPI_MASTER is not set
657
658#
659# Dallas's 1-wire bus
660#
661# CONFIG_W1 is not set
662
663#
664# Hardware Monitoring support
665#
666# CONFIG_HWMON is not set
667# CONFIG_HWMON_VID is not set
668
669#
670# Misc devices
671#
672
673#
674# LED devices
675#
676# CONFIG_NEW_LEDS is not set
677
678#
679# LED drivers
680#
681
682#
683# LED Triggers
684#
685
686#
687# Multimedia devices
688#
689# CONFIG_VIDEO_DEV is not set
690
691#
692# Digital Video Broadcasting Devices
693#
694# CONFIG_DVB is not set
695
696#
697# Graphics support
698#
699# CONFIG_FB is not set
700
701#
702# Console display driver support
703#
704# CONFIG_VGA_CONSOLE is not set
705CONFIG_DUMMY_CONSOLE=y
706
707#
708# Sound
709#
710# CONFIG_SOUND is not set
711
712#
713# USB support
714#
715CONFIG_USB_ARCH_HAS_HCD=y
716CONFIG_USB_ARCH_HAS_OHCI=y
717CONFIG_USB_ARCH_HAS_EHCI=y
718# CONFIG_USB is not set
719
720#
721# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
722#
723
724#
725# USB Gadget Support
726#
727# CONFIG_USB_GADGET is not set
728
729#
730# MMC/SD Card support
731#
732# CONFIG_MMC is not set
733
734#
735# Real Time Clock
736#
737CONFIG_RTC_LIB=y
738# CONFIG_RTC_CLASS is not set
739
740#
741# File systems
742#
743CONFIG_EXT2_FS=y
744# CONFIG_EXT2_FS_XATTR is not set
745# CONFIG_EXT2_FS_XIP is not set
746# CONFIG_EXT3_FS is not set
747# CONFIG_REISERFS_FS is not set
748# CONFIG_JFS_FS is not set
749# CONFIG_FS_POSIX_ACL is not set
750# CONFIG_XFS_FS is not set
751# CONFIG_OCFS2_FS is not set
752# CONFIG_MINIX_FS is not set
753# CONFIG_ROMFS_FS is not set
754CONFIG_INOTIFY=y
755# CONFIG_QUOTA is not set
756CONFIG_DNOTIFY=y
757# CONFIG_AUTOFS_FS is not set
758# CONFIG_AUTOFS4_FS is not set
759# CONFIG_FUSE_FS is not set
760
761#
762# CD-ROM/DVD Filesystems
763#
764# CONFIG_ISO9660_FS is not set
765# CONFIG_UDF_FS is not set
766
767#
768# DOS/FAT/NT Filesystems
769#
770# CONFIG_MSDOS_FS is not set
771# CONFIG_VFAT_FS is not set
772# CONFIG_NTFS_FS is not set
773
774#
775# Pseudo filesystems
776#
777CONFIG_PROC_FS=y
778CONFIG_SYSFS=y
779CONFIG_TMPFS=y
780# CONFIG_HUGETLB_PAGE is not set
781CONFIG_RAMFS=y
782# CONFIG_CONFIGFS_FS is not set
783
784#
785# Miscellaneous filesystems
786#
787# CONFIG_ADFS_FS is not set
788# CONFIG_AFFS_FS is not set
789# CONFIG_HFS_FS is not set
790# CONFIG_HFSPLUS_FS is not set
791# CONFIG_BEFS_FS is not set
792# CONFIG_BFS_FS is not set
793# CONFIG_EFS_FS is not set
794# CONFIG_JFFS_FS is not set
795# CONFIG_JFFS2_FS is not set
796CONFIG_CRAMFS=y
797# CONFIG_VXFS_FS is not set
798# CONFIG_HPFS_FS is not set
799# CONFIG_QNX4FS_FS is not set
800# CONFIG_SYSV_FS is not set
801# CONFIG_UFS_FS is not set
802
803#
804# Network File Systems
805#
806# CONFIG_NFS_FS is not set
807# CONFIG_NFSD is not set
808# CONFIG_SMB_FS is not set
809# CONFIG_CIFS is not set
810# CONFIG_NCP_FS is not set
811# CONFIG_CODA_FS is not set
812# CONFIG_AFS_FS is not set
813# CONFIG_9P_FS is not set
814
815#
816# Partition Types
817#
818# CONFIG_PARTITION_ADVANCED is not set
819CONFIG_MSDOS_PARTITION=y
820
821#
822# Native Language Support
823#
824# CONFIG_NLS is not set
825
826#
827# Profiling support
828#
829# CONFIG_PROFILING is not set
830
831#
832# Kernel hacking
833#
834# CONFIG_PRINTK_TIME is not set
835# CONFIG_MAGIC_SYSRQ is not set
836CONFIG_DEBUG_KERNEL=y
837CONFIG_LOG_BUF_SHIFT=14
838CONFIG_DETECT_SOFTLOCKUP=y
839# CONFIG_SCHEDSTATS is not set
840# CONFIG_DEBUG_SLAB is not set
841CONFIG_DEBUG_MUTEXES=y
842# CONFIG_DEBUG_SPINLOCK is not set
843# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
844# CONFIG_DEBUG_KOBJECT is not set
845CONFIG_DEBUG_BUGVERBOSE=y
846# CONFIG_DEBUG_INFO is not set
847# CONFIG_DEBUG_FS is not set
848# CONFIG_DEBUG_VM is not set
849CONFIG_FRAME_POINTER=y
850# CONFIG_UNWIND_INFO is not set
851CONFIG_FORCED_INLINING=y
852# CONFIG_RCU_TORTURE_TEST is not set
853CONFIG_DEBUG_USER=y
854# CONFIG_DEBUG_ERRORS is not set
855CONFIG_DEBUG_LL=y
856# CONFIG_DEBUG_ICEDCC is not set
857
858#
859# Security options
860#
861# CONFIG_KEYS is not set
862# CONFIG_SECURITY is not set
863
864#
865# Cryptographic options
866#
867# CONFIG_CRYPTO is not set
868
869#
870# Hardware crypto devices
871#
872
873#
874# Library routines
875#
876# CONFIG_CRC_CCITT is not set
877# CONFIG_CRC16 is not set
878CONFIG_CRC32=y
879# CONFIG_LIBCRC32C is not set
880CONFIG_ZLIB_INFLATE=y
diff --git a/arch/arm/configs/trizeps4_defconfig b/arch/arm/configs/trizeps4_defconfig
index a6698dc4f6b9..6db6392806f9 100644
--- a/arch/arm/configs/trizeps4_defconfig
+++ b/arch/arm/configs/trizeps4_defconfig
@@ -1,15 +1,27 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17 3# Linux kernel version: 2.6.21
4# Sat Jun 24 22:45:14 2006 4# Mon Apr 30 21:23:20 2007
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
7CONFIG_MMU=y 10CONFIG_MMU=y
11# CONFIG_NO_IOPORT is not set
12CONFIG_GENERIC_HARDIRQS=y
13CONFIG_TRACE_IRQFLAGS_SUPPORT=y
14CONFIG_HARDIRQS_SW_RESEND=y
15CONFIG_GENERIC_IRQ_PROBE=y
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 16CONFIG_RWSEM_GENERIC_SPINLOCK=y
17# CONFIG_ARCH_HAS_ILOG2_U32 is not set
18# CONFIG_ARCH_HAS_ILOG2_U64 is not set
9CONFIG_GENERIC_HWEIGHT=y 19CONFIG_GENERIC_HWEIGHT=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 20CONFIG_GENERIC_CALIBRATE_DELAY=y
21CONFIG_ZONE_DMA=y
11CONFIG_ARCH_MTD_XIP=y 22CONFIG_ARCH_MTD_XIP=y
12CONFIG_VECTORS_BASE=0xffff0000 23CONFIG_VECTORS_BASE=0xffff0000
24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
13 25
14# 26#
15# Code maturity level options 27# Code maturity level options
@@ -26,18 +38,25 @@ CONFIG_LOCALVERSION=""
26CONFIG_LOCALVERSION_AUTO=y 38CONFIG_LOCALVERSION_AUTO=y
27CONFIG_SWAP=y 39CONFIG_SWAP=y
28CONFIG_SYSVIPC=y 40CONFIG_SYSVIPC=y
41# CONFIG_IPC_NS is not set
42CONFIG_SYSVIPC_SYSCTL=y
29CONFIG_POSIX_MQUEUE=y 43CONFIG_POSIX_MQUEUE=y
30CONFIG_BSD_PROCESS_ACCT=y 44CONFIG_BSD_PROCESS_ACCT=y
31CONFIG_BSD_PROCESS_ACCT_V3=y 45CONFIG_BSD_PROCESS_ACCT_V3=y
32CONFIG_SYSCTL=y 46# CONFIG_TASKSTATS is not set
33CONFIG_AUDIT=y 47# CONFIG_UTS_NS is not set
48# CONFIG_AUDIT is not set
34CONFIG_IKCONFIG=y 49CONFIG_IKCONFIG=y
35CONFIG_IKCONFIG_PROC=y 50CONFIG_IKCONFIG_PROC=y
51CONFIG_SYSFS_DEPRECATED=y
36# CONFIG_RELAY is not set 52# CONFIG_RELAY is not set
53CONFIG_BLK_DEV_INITRD=y
37CONFIG_INITRAMFS_SOURCE="" 54CONFIG_INITRAMFS_SOURCE=""
38CONFIG_UID16=y
39CONFIG_CC_OPTIMIZE_FOR_SIZE=y 55CONFIG_CC_OPTIMIZE_FOR_SIZE=y
56CONFIG_SYSCTL=y
40CONFIG_EMBEDDED=y 57CONFIG_EMBEDDED=y
58CONFIG_UID16=y
59CONFIG_SYSCTL_SYSCALL=y
41CONFIG_KALLSYMS=y 60CONFIG_KALLSYMS=y
42CONFIG_KALLSYMS_EXTRA_PASS=y 61CONFIG_KALLSYMS_EXTRA_PASS=y
43CONFIG_HOTPLUG=y 62CONFIG_HOTPLUG=y
@@ -49,10 +68,11 @@ CONFIG_FUTEX=y
49CONFIG_EPOLL=y 68CONFIG_EPOLL=y
50CONFIG_SHMEM=y 69CONFIG_SHMEM=y
51CONFIG_SLAB=y 70CONFIG_SLAB=y
71CONFIG_VM_EVENT_COUNTERS=y
72CONFIG_RT_MUTEXES=y
52# CONFIG_TINY_SHMEM is not set 73# CONFIG_TINY_SHMEM is not set
53CONFIG_BASE_SMALL=0 74CONFIG_BASE_SMALL=0
54# CONFIG_SLOB is not set 75# CONFIG_SLOB is not set
55CONFIG_OBSOLETE_INTERMODULE=y
56 76
57# 77#
58# Loadable module support 78# Loadable module support
@@ -60,14 +80,17 @@ CONFIG_OBSOLETE_INTERMODULE=y
60CONFIG_MODULES=y 80CONFIG_MODULES=y
61CONFIG_MODULE_UNLOAD=y 81CONFIG_MODULE_UNLOAD=y
62CONFIG_MODULE_FORCE_UNLOAD=y 82CONFIG_MODULE_FORCE_UNLOAD=y
63# CONFIG_MODVERSIONS is not set 83CONFIG_MODVERSIONS=y
64CONFIG_MODULE_SRCVERSION_ALL=y 84CONFIG_MODULE_SRCVERSION_ALL=y
65CONFIG_KMOD=y 85CONFIG_KMOD=y
66 86
67# 87#
68# Block layer 88# Block layer
69# 89#
90CONFIG_BLOCK=y
91CONFIG_LBD=y
70# CONFIG_BLK_DEV_IO_TRACE is not set 92# CONFIG_BLK_DEV_IO_TRACE is not set
93CONFIG_LSF=y
71 94
72# 95#
73# IO Schedulers 96# IO Schedulers
@@ -85,18 +108,29 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
85# 108#
86# System Type 109# System Type
87# 110#
111# CONFIG_ARCH_AAEC2000 is not set
112# CONFIG_ARCH_INTEGRATOR is not set
113# CONFIG_ARCH_REALVIEW is not set
114# CONFIG_ARCH_VERSATILE is not set
115# CONFIG_ARCH_AT91 is not set
88# CONFIG_ARCH_CLPS7500 is not set 116# CONFIG_ARCH_CLPS7500 is not set
89# CONFIG_ARCH_CLPS711X is not set 117# CONFIG_ARCH_CLPS711X is not set
90# CONFIG_ARCH_CO285 is not set 118# CONFIG_ARCH_CO285 is not set
91# CONFIG_ARCH_EBSA110 is not set 119# CONFIG_ARCH_EBSA110 is not set
92# CONFIG_ARCH_EP93XX is not set 120# CONFIG_ARCH_EP93XX is not set
93# CONFIG_ARCH_FOOTBRIDGE is not set 121# CONFIG_ARCH_FOOTBRIDGE is not set
94# CONFIG_ARCH_INTEGRATOR is not set 122# CONFIG_ARCH_NETX is not set
95# CONFIG_ARCH_IOP3XX is not set 123# CONFIG_ARCH_H720X is not set
124# CONFIG_ARCH_IMX is not set
125# CONFIG_ARCH_IOP32X is not set
126# CONFIG_ARCH_IOP33X is not set
127# CONFIG_ARCH_IOP13XX is not set
96# CONFIG_ARCH_IXP4XX is not set 128# CONFIG_ARCH_IXP4XX is not set
97# CONFIG_ARCH_IXP2000 is not set 129# CONFIG_ARCH_IXP2000 is not set
98# CONFIG_ARCH_IXP23XX is not set 130# CONFIG_ARCH_IXP23XX is not set
99# CONFIG_ARCH_L7200 is not set 131# CONFIG_ARCH_L7200 is not set
132# CONFIG_ARCH_NS9XXX is not set
133# CONFIG_ARCH_PNX4008 is not set
100CONFIG_ARCH_PXA=y 134CONFIG_ARCH_PXA=y
101# CONFIG_ARCH_RPC is not set 135# CONFIG_ARCH_RPC is not set
102# CONFIG_ARCH_SA1100 is not set 136# CONFIG_ARCH_SA1100 is not set
@@ -104,12 +138,6 @@ CONFIG_ARCH_PXA=y
104# CONFIG_ARCH_SHARK is not set 138# CONFIG_ARCH_SHARK is not set
105# CONFIG_ARCH_LH7A40X is not set 139# CONFIG_ARCH_LH7A40X is not set
106# CONFIG_ARCH_OMAP is not set 140# CONFIG_ARCH_OMAP is not set
107# CONFIG_ARCH_VERSATILE is not set
108# CONFIG_ARCH_REALVIEW is not set
109# CONFIG_ARCH_IMX is not set
110# CONFIG_ARCH_H720X is not set
111# CONFIG_ARCH_AAEC2000 is not set
112# CONFIG_ARCH_AT91RM9200 is not set
113 141
114# 142#
115# Intel PXA2xx Implementations 143# Intel PXA2xx Implementations
@@ -133,11 +161,16 @@ CONFIG_CPU_32v5=y
133CONFIG_CPU_ABRT_EV5T=y 161CONFIG_CPU_ABRT_EV5T=y
134CONFIG_CPU_CACHE_VIVT=y 162CONFIG_CPU_CACHE_VIVT=y
135CONFIG_CPU_TLB_V4WBI=y 163CONFIG_CPU_TLB_V4WBI=y
164CONFIG_CPU_CP15=y
165CONFIG_CPU_CP15_MMU=y
136 166
137# 167#
138# Processor Features 168# Processor Features
139# 169#
140CONFIG_ARM_THUMB=y 170CONFIG_ARM_THUMB=y
171# CONFIG_CPU_DCACHE_DISABLE is not set
172# CONFIG_OUTER_CACHE is not set
173CONFIG_IWMMXT=y
141CONFIG_XSCALE_PMU=y 174CONFIG_XSCALE_PMU=y
142 175
143# 176#
@@ -147,16 +180,16 @@ CONFIG_XSCALE_PMU=y
147# 180#
148# PCCARD (PCMCIA/CardBus) support 181# PCCARD (PCMCIA/CardBus) support
149# 182#
150CONFIG_PCCARD=m 183CONFIG_PCCARD=y
151# CONFIG_PCMCIA_DEBUG is not set 184# CONFIG_PCMCIA_DEBUG is not set
152CONFIG_PCMCIA=m 185CONFIG_PCMCIA=y
153CONFIG_PCMCIA_LOAD_CIS=y 186# CONFIG_PCMCIA_LOAD_CIS is not set
154CONFIG_PCMCIA_IOCTL=y 187CONFIG_PCMCIA_IOCTL=y
155 188
156# 189#
157# PC-card bridges 190# PC-card bridges
158# 191#
159CONFIG_PCMCIA_PXA2XX=m 192CONFIG_PCMCIA_PXA2XX=y
160 193
161# 194#
162# Kernel Features 195# Kernel Features
@@ -164,7 +197,8 @@ CONFIG_PCMCIA_PXA2XX=m
164CONFIG_PREEMPT=y 197CONFIG_PREEMPT=y
165# CONFIG_NO_IDLE_HZ is not set 198# CONFIG_NO_IDLE_HZ is not set
166CONFIG_HZ=100 199CONFIG_HZ=100
167# CONFIG_AEABI is not set 200CONFIG_AEABI=y
201CONFIG_OABI_COMPAT=y
168# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 202# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
169CONFIG_SELECT_MEMORY_MODEL=y 203CONFIG_SELECT_MEMORY_MODEL=y
170CONFIG_FLATMEM_MANUAL=y 204CONFIG_FLATMEM_MANUAL=y
@@ -174,6 +208,8 @@ CONFIG_FLATMEM=y
174CONFIG_FLAT_NODE_MEM_MAP=y 208CONFIG_FLAT_NODE_MEM_MAP=y
175# CONFIG_SPARSEMEM_STATIC is not set 209# CONFIG_SPARSEMEM_STATIC is not set
176CONFIG_SPLIT_PTLOCK_CPUS=4096 210CONFIG_SPLIT_PTLOCK_CPUS=4096
211# CONFIG_RESOURCES_64BIT is not set
212CONFIG_ZONE_DMA_FLAG=1
177CONFIG_LEDS=y 213CONFIG_LEDS=y
178CONFIG_LEDS_TIMER=y 214CONFIG_LEDS_TIMER=y
179CONFIG_LEDS_CPU=y 215CONFIG_LEDS_CPU=y
@@ -184,8 +220,9 @@ CONFIG_ALIGNMENT_TRAP=y
184# 220#
185CONFIG_ZBOOT_ROM_TEXT=0 221CONFIG_ZBOOT_ROM_TEXT=0
186CONFIG_ZBOOT_ROM_BSS=0 222CONFIG_ZBOOT_ROM_BSS=0
187CONFIG_CMDLINE="root=/dev/nfs ip=bootp console=ttyS0,115200n8" 223CONFIG_CMDLINE="root=fe01 console=ttyS0,38400n8 loglevel=5"
188# CONFIG_XIP_KERNEL is not set 224# CONFIG_XIP_KERNEL is not set
225# CONFIG_KEXEC is not set
189 226
190# 227#
191# Floating point emulation 228# Floating point emulation
@@ -203,16 +240,16 @@ CONFIG_FPE_NWFPE_XP=y
203# 240#
204CONFIG_BINFMT_ELF=y 241CONFIG_BINFMT_ELF=y
205# CONFIG_BINFMT_AOUT is not set 242# CONFIG_BINFMT_AOUT is not set
206CONFIG_BINFMT_MISC=m 243# CONFIG_BINFMT_MISC is not set
207# CONFIG_ARTHUR is not set
208 244
209# 245#
210# Power management options 246# Power management options
211# 247#
212CONFIG_PM=y 248CONFIG_PM=y
213CONFIG_PM_LEGACY=y 249# CONFIG_PM_LEGACY is not set
214# CONFIG_PM_DEBUG is not set 250# CONFIG_PM_DEBUG is not set
215CONFIG_APM=y 251# CONFIG_PM_SYSFS_DEPRECATED is not set
252# CONFIG_APM_EMULATION is not set
216 253
217# 254#
218# Networking 255# Networking
@@ -222,13 +259,15 @@ CONFIG_NET=y
222# 259#
223# Networking options 260# Networking options
224# 261#
225# CONFIG_NETDEBUG is not set
226CONFIG_PACKET=y 262CONFIG_PACKET=y
227CONFIG_PACKET_MMAP=y 263CONFIG_PACKET_MMAP=y
228CONFIG_UNIX=y 264CONFIG_UNIX=y
229CONFIG_XFRM=y 265CONFIG_XFRM=y
230CONFIG_XFRM_USER=m 266CONFIG_XFRM_USER=m
267# CONFIG_XFRM_SUB_POLICY is not set
268# CONFIG_XFRM_MIGRATE is not set
231CONFIG_NET_KEY=y 269CONFIG_NET_KEY=y
270# CONFIG_NET_KEY_MIGRATE is not set
232CONFIG_INET=y 271CONFIG_INET=y
233# CONFIG_IP_MULTICAST is not set 272# CONFIG_IP_MULTICAST is not set
234# CONFIG_IP_ADVANCED_ROUTER is not set 273# CONFIG_IP_ADVANCED_ROUTER is not set
@@ -246,24 +285,25 @@ CONFIG_IP_PNP_BOOTP=y
246# CONFIG_INET_IPCOMP is not set 285# CONFIG_INET_IPCOMP is not set
247# CONFIG_INET_XFRM_TUNNEL is not set 286# CONFIG_INET_XFRM_TUNNEL is not set
248# CONFIG_INET_TUNNEL is not set 287# CONFIG_INET_TUNNEL is not set
288CONFIG_INET_XFRM_MODE_TRANSPORT=y
289CONFIG_INET_XFRM_MODE_TUNNEL=y
290CONFIG_INET_XFRM_MODE_BEET=y
249CONFIG_INET_DIAG=y 291CONFIG_INET_DIAG=y
250CONFIG_INET_TCP_DIAG=y 292CONFIG_INET_TCP_DIAG=y
251# CONFIG_TCP_CONG_ADVANCED is not set 293# CONFIG_TCP_CONG_ADVANCED is not set
252CONFIG_TCP_CONG_BIC=y 294CONFIG_TCP_CONG_CUBIC=y
295CONFIG_DEFAULT_TCP_CONG="cubic"
296# CONFIG_TCP_MD5SIG is not set
253 297
254# 298#
255# IP: Virtual Server Configuration 299# IP: Virtual Server Configuration
256# 300#
257# CONFIG_IP_VS is not set 301# CONFIG_IP_VS is not set
258CONFIG_IPV6=m 302# CONFIG_IPV6 is not set
259# CONFIG_IPV6_PRIVACY is not set
260# CONFIG_IPV6_ROUTER_PREF is not set
261# CONFIG_INET6_AH is not set
262# CONFIG_INET6_ESP is not set
263# CONFIG_INET6_IPCOMP is not set
264# CONFIG_INET6_XFRM_TUNNEL is not set 303# CONFIG_INET6_XFRM_TUNNEL is not set
265# CONFIG_INET6_TUNNEL is not set 304# CONFIG_INET6_TUNNEL is not set
266# CONFIG_IPV6_TUNNEL is not set 305# CONFIG_NETLABEL is not set
306# CONFIG_NETWORK_SECMARK is not set
267CONFIG_NETFILTER=y 307CONFIG_NETFILTER=y
268# CONFIG_NETFILTER_DEBUG is not set 308# CONFIG_NETFILTER_DEBUG is not set
269 309
@@ -271,29 +311,16 @@ CONFIG_NETFILTER=y
271# Core Netfilter Configuration 311# Core Netfilter Configuration
272# 312#
273# CONFIG_NETFILTER_NETLINK is not set 313# CONFIG_NETFILTER_NETLINK is not set
314# CONFIG_NF_CONNTRACK_ENABLED is not set
315# CONFIG_NF_CONNTRACK is not set
274# CONFIG_NETFILTER_XTABLES is not set 316# CONFIG_NETFILTER_XTABLES is not set
275 317
276# 318#
277# IP: Netfilter Configuration 319# IP: Netfilter Configuration
278# 320#
279CONFIG_IP_NF_CONNTRACK=m
280CONFIG_IP_NF_CT_ACCT=y
281CONFIG_IP_NF_CONNTRACK_MARK=y
282# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
283# CONFIG_IP_NF_CT_PROTO_SCTP is not set
284CONFIG_IP_NF_FTP=m
285CONFIG_IP_NF_IRC=m
286# CONFIG_IP_NF_NETBIOS_NS is not set
287CONFIG_IP_NF_TFTP=m
288CONFIG_IP_NF_AMANDA=m
289# CONFIG_IP_NF_PPTP is not set
290# CONFIG_IP_NF_H323 is not set
291CONFIG_IP_NF_QUEUE=m 321CONFIG_IP_NF_QUEUE=m
292 322# CONFIG_IP_NF_IPTABLES is not set
293# 323# CONFIG_IP_NF_ARPTABLES is not set
294# IPv6: Netfilter Configuration (EXPERIMENTAL)
295#
296# CONFIG_IP6_NF_QUEUE is not set
297 324
298# 325#
299# DCCP Configuration (EXPERIMENTAL) 326# DCCP Configuration (EXPERIMENTAL)
@@ -318,7 +345,6 @@ CONFIG_VLAN_8021Q=m
318# CONFIG_ATALK is not set 345# CONFIG_ATALK is not set
319# CONFIG_X25 is not set 346# CONFIG_X25 is not set
320# CONFIG_LAPB is not set 347# CONFIG_LAPB is not set
321# CONFIG_NET_DIVERT is not set
322# CONFIG_ECONET is not set 348# CONFIG_ECONET is not set
323# CONFIG_WAN_ROUTER is not set 349# CONFIG_WAN_ROUTER is not set
324 350
@@ -378,6 +404,7 @@ CONFIG_IRTTY_SIR=m
378# CONFIG_USB_IRDA is not set 404# CONFIG_USB_IRDA is not set
379# CONFIG_SIGMATEL_FIR is not set 405# CONFIG_SIGMATEL_FIR is not set
380# CONFIG_PXA_FICP is not set 406# CONFIG_PXA_FICP is not set
407# CONFIG_MCS_FIR is not set
381CONFIG_BT=m 408CONFIG_BT=m
382CONFIG_BT_L2CAP=m 409CONFIG_BT_L2CAP=m
383CONFIG_BT_SCO=m 410CONFIG_BT_SCO=m
@@ -401,14 +428,20 @@ CONFIG_BT_HIDP=m
401# CONFIG_BT_HCIBLUECARD is not set 428# CONFIG_BT_HCIBLUECARD is not set
402# CONFIG_BT_HCIBTUART is not set 429# CONFIG_BT_HCIBTUART is not set
403# CONFIG_BT_HCIVHCI is not set 430# CONFIG_BT_HCIVHCI is not set
404CONFIG_IEEE80211=m 431# CONFIG_AF_RXRPC is not set
432
433#
434# Wireless
435#
436CONFIG_CFG80211=y
437CONFIG_WIRELESS_EXT=y
438CONFIG_IEEE80211=y
405# CONFIG_IEEE80211_DEBUG is not set 439# CONFIG_IEEE80211_DEBUG is not set
406CONFIG_IEEE80211_CRYPT_WEP=m 440CONFIG_IEEE80211_CRYPT_WEP=y
407CONFIG_IEEE80211_CRYPT_CCMP=m 441CONFIG_IEEE80211_CRYPT_CCMP=m
408CONFIG_IEEE80211_CRYPT_TKIP=m 442CONFIG_IEEE80211_CRYPT_TKIP=m
409CONFIG_IEEE80211_SOFTMAC=m 443CONFIG_IEEE80211_SOFTMAC=m
410# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set 444# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
411CONFIG_WIRELESS_EXT=y
412 445
413# 446#
414# Device Drivers 447# Device Drivers
@@ -420,16 +453,13 @@ CONFIG_WIRELESS_EXT=y
420CONFIG_STANDALONE=y 453CONFIG_STANDALONE=y
421CONFIG_PREVENT_FIRMWARE_BUILD=y 454CONFIG_PREVENT_FIRMWARE_BUILD=y
422CONFIG_FW_LOADER=y 455CONFIG_FW_LOADER=y
456# CONFIG_SYS_HYPERVISOR is not set
423 457
424# 458#
425# Connector - unified userspace <-> kernelspace linker 459# Connector - unified userspace <-> kernelspace linker
426# 460#
427CONFIG_CONNECTOR=y 461CONFIG_CONNECTOR=y
428CONFIG_PROC_EVENTS=y 462CONFIG_PROC_EVENTS=y
429
430#
431# Memory Technology Devices (MTD)
432#
433CONFIG_MTD=y 463CONFIG_MTD=y
434# CONFIG_MTD_DEBUG is not set 464# CONFIG_MTD_DEBUG is not set
435CONFIG_MTD_CONCAT=y 465CONFIG_MTD_CONCAT=y
@@ -445,12 +475,13 @@ CONFIG_MTD_REDBOOT_PARTS_READONLY=y
445# User Modules And Translation Layers 475# User Modules And Translation Layers
446# 476#
447CONFIG_MTD_CHAR=y 477CONFIG_MTD_CHAR=y
478CONFIG_MTD_BLKDEVS=y
448CONFIG_MTD_BLOCK=y 479CONFIG_MTD_BLOCK=y
449# CONFIG_FTL is not set 480# CONFIG_FTL is not set
450CONFIG_NFTL=y 481# CONFIG_NFTL is not set
451CONFIG_NFTL_RW=y 482# CONFIG_INFTL is not set
452CONFIG_INFTL=y
453# CONFIG_RFD_FTL is not set 483# CONFIG_RFD_FTL is not set
484# CONFIG_SSFDC is not set
454 485
455# 486#
456# RAM/ROM/Flash chip drivers 487# RAM/ROM/Flash chip drivers
@@ -490,9 +521,8 @@ CONFIG_MTD_CFI_UTIL=y
490CONFIG_MTD_COMPLEX_MAPPINGS=y 521CONFIG_MTD_COMPLEX_MAPPINGS=y
491CONFIG_MTD_PHYSMAP=y 522CONFIG_MTD_PHYSMAP=y
492CONFIG_MTD_PHYSMAP_START=0x0 523CONFIG_MTD_PHYSMAP_START=0x0
493CONFIG_MTD_PHYSMAP_LEN=0x4000000 524CONFIG_MTD_PHYSMAP_LEN=0x0
494CONFIG_MTD_PHYSMAP_BANKWIDTH=2 525CONFIG_MTD_PHYSMAP_BANKWIDTH=2
495# CONFIG_MTD_TRIZEPS4 is not set
496# CONFIG_MTD_ARM_INTEGRATOR is not set 526# CONFIG_MTD_ARM_INTEGRATOR is not set
497# CONFIG_MTD_IMPA7 is not set 527# CONFIG_MTD_IMPA7 is not set
498# CONFIG_MTD_SHARP_SL is not set 528# CONFIG_MTD_SHARP_SL is not set
@@ -501,42 +531,45 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
501# 531#
502# Self-contained MTD device drivers 532# Self-contained MTD device drivers
503# 533#
504# CONFIG_MTD_DATAFLASH is not set
505# CONFIG_MTD_M25P80 is not set
506# CONFIG_MTD_SLRAM is not set 534# CONFIG_MTD_SLRAM is not set
507# CONFIG_MTD_PHRAM is not set 535# CONFIG_MTD_PHRAM is not set
508# CONFIG_MTD_MTDRAM is not set 536# CONFIG_MTD_MTDRAM is not set
509# CONFIG_MTD_BLOCK2MTD is not set 537CONFIG_MTD_BLOCK2MTD=y
510 538
511# 539#
512# Disk-On-Chip Device Drivers 540# Disk-On-Chip Device Drivers
513# 541#
514# CONFIG_MTD_DOC2000 is not set 542CONFIG_MTD_DOC2000=y
515# CONFIG_MTD_DOC2001 is not set 543CONFIG_MTD_DOC2001=y
516CONFIG_MTD_DOC2001PLUS=y 544CONFIG_MTD_DOC2001PLUS=y
517CONFIG_MTD_DOCPROBE=y 545CONFIG_MTD_DOCPROBE=y
518CONFIG_MTD_DOCECC=y 546CONFIG_MTD_DOCECC=y
519# CONFIG_MTD_DOCPROBE_ADVANCED is not set 547CONFIG_MTD_DOCPROBE_ADVANCED=y
520CONFIG_MTD_DOCPROBE_ADDRESS=0 548CONFIG_MTD_DOCPROBE_ADDRESS=0x4000000
521 549CONFIG_MTD_DOCPROBE_HIGH=y
522# 550# CONFIG_MTD_DOCPROBE_55AA is not set
523# NAND Flash Device Drivers
524#
525CONFIG_MTD_NAND=y 551CONFIG_MTD_NAND=y
526# CONFIG_MTD_NAND_VERIFY_WRITE is not set 552# CONFIG_MTD_NAND_VERIFY_WRITE is not set
553# CONFIG_MTD_NAND_ECC_SMC is not set
554# CONFIG_MTD_NAND_MUSEUM_IDS is not set
527# CONFIG_MTD_NAND_H1900 is not set 555# CONFIG_MTD_NAND_H1900 is not set
528CONFIG_MTD_NAND_IDS=y 556CONFIG_MTD_NAND_IDS=y
529CONFIG_MTD_NAND_DISKONCHIP=y 557CONFIG_MTD_NAND_DISKONCHIP=y
530# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set 558CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED=y
531CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 559CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0x4000000
532# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set 560CONFIG_MTD_NAND_DISKONCHIP_PROBE_HIGH=y
561CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE=y
533# CONFIG_MTD_NAND_SHARPSL is not set 562# CONFIG_MTD_NAND_SHARPSL is not set
534# CONFIG_MTD_NAND_NANDSIM is not set 563# CONFIG_MTD_NAND_NANDSIM is not set
564CONFIG_MTD_ONENAND=y
565# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
566# CONFIG_MTD_ONENAND_GENERIC is not set
567# CONFIG_MTD_ONENAND_OTP is not set
535 568
536# 569#
537# OneNAND Flash Device Drivers 570# UBI - Unsorted block images
538# 571#
539# CONFIG_MTD_ONENAND is not set 572# CONFIG_MTD_UBI is not set
540 573
541# 574#
542# Parallel port support 575# Parallel port support
@@ -546,6 +579,7 @@ CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
546# 579#
547# Plug and Play support 580# Plug and Play support
548# 581#
582# CONFIG_PNPACPI is not set
549 583
550# 584#
551# Block devices 585# Block devices
@@ -556,9 +590,9 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m
556CONFIG_BLK_DEV_NBD=y 590CONFIG_BLK_DEV_NBD=y
557# CONFIG_BLK_DEV_UB is not set 591# CONFIG_BLK_DEV_UB is not set
558CONFIG_BLK_DEV_RAM=y 592CONFIG_BLK_DEV_RAM=y
559CONFIG_BLK_DEV_RAM_COUNT=4 593CONFIG_BLK_DEV_RAM_COUNT=8
560CONFIG_BLK_DEV_RAM_SIZE=4096 594CONFIG_BLK_DEV_RAM_SIZE=4096
561CONFIG_BLK_DEV_INITRD=y 595CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
562# CONFIG_CDROM_PKTCDVD is not set 596# CONFIG_CDROM_PKTCDVD is not set
563# CONFIG_ATA_OVER_ETH is not set 597# CONFIG_ATA_OVER_ETH is not set
564 598
@@ -566,6 +600,7 @@ CONFIG_BLK_DEV_INITRD=y
566# ATA/ATAPI/MFM/RLL support 600# ATA/ATAPI/MFM/RLL support
567# 601#
568CONFIG_IDE=y 602CONFIG_IDE=y
603CONFIG_IDE_MAX_HWIFS=4
569CONFIG_BLK_DEV_IDE=y 604CONFIG_BLK_DEV_IDE=y
570 605
571# 606#
@@ -585,27 +620,27 @@ CONFIG_BLK_DEV_IDECS=m
585# IDE chipset support/bugfixes 620# IDE chipset support/bugfixes
586# 621#
587CONFIG_IDE_GENERIC=y 622CONFIG_IDE_GENERIC=y
588CONFIG_IDE_PXA_CF=y 623# CONFIG_IDE_ARM is not set
589CONFIG_IDE_ARM=y
590# CONFIG_BLK_DEV_IDEDMA is not set 624# CONFIG_BLK_DEV_IDEDMA is not set
591# CONFIG_IDEDMA_AUTO is not set
592# CONFIG_BLK_DEV_HD is not set 625# CONFIG_BLK_DEV_HD is not set
593 626
594# 627#
595# SCSI device support 628# SCSI device support
596# 629#
597# CONFIG_RAID_ATTRS is not set 630# CONFIG_RAID_ATTRS is not set
598CONFIG_SCSI=m 631CONFIG_SCSI=y
632# CONFIG_SCSI_TGT is not set
633# CONFIG_SCSI_NETLINK is not set
599CONFIG_SCSI_PROC_FS=y 634CONFIG_SCSI_PROC_FS=y
600 635
601# 636#
602# SCSI support type (disk, tape, CD-ROM) 637# SCSI support type (disk, tape, CD-ROM)
603# 638#
604CONFIG_BLK_DEV_SD=m 639CONFIG_BLK_DEV_SD=y
605# CONFIG_CHR_DEV_ST is not set 640# CONFIG_CHR_DEV_ST is not set
606# CONFIG_CHR_DEV_OSST is not set 641# CONFIG_CHR_DEV_OSST is not set
607# CONFIG_BLK_DEV_SR is not set 642# CONFIG_BLK_DEV_SR is not set
608CONFIG_CHR_DEV_SG=m 643CONFIG_CHR_DEV_SG=y
609# CONFIG_CHR_DEV_SCH is not set 644# CONFIG_CHR_DEV_SCH is not set
610 645
611# 646#
@@ -614,21 +649,23 @@ CONFIG_CHR_DEV_SG=m
614CONFIG_SCSI_MULTI_LUN=y 649CONFIG_SCSI_MULTI_LUN=y
615# CONFIG_SCSI_CONSTANTS is not set 650# CONFIG_SCSI_CONSTANTS is not set
616# CONFIG_SCSI_LOGGING is not set 651# CONFIG_SCSI_LOGGING is not set
652# CONFIG_SCSI_SCAN_ASYNC is not set
617 653
618# 654#
619# SCSI Transport Attributes 655# SCSI Transports
620# 656#
621# CONFIG_SCSI_SPI_ATTRS is not set 657# CONFIG_SCSI_SPI_ATTRS is not set
622# CONFIG_SCSI_FC_ATTRS is not set 658# CONFIG_SCSI_FC_ATTRS is not set
623# CONFIG_SCSI_ISCSI_ATTRS is not set 659# CONFIG_SCSI_ISCSI_ATTRS is not set
624# CONFIG_SCSI_SAS_ATTRS is not set 660# CONFIG_SCSI_SAS_ATTRS is not set
661# CONFIG_SCSI_SAS_LIBSAS is not set
625 662
626# 663#
627# SCSI low-level drivers 664# SCSI low-level drivers
628# 665#
629# CONFIG_ISCSI_TCP is not set 666# CONFIG_ISCSI_TCP is not set
630# CONFIG_SCSI_SATA is not set
631# CONFIG_SCSI_DEBUG is not set 667# CONFIG_SCSI_DEBUG is not set
668# CONFIG_SCSI_ESP_CORE is not set
632 669
633# 670#
634# PCMCIA SCSI adapter support 671# PCMCIA SCSI adapter support
@@ -640,6 +677,14 @@ CONFIG_SCSI_MULTI_LUN=y
640# CONFIG_PCMCIA_SYM53C500 is not set 677# CONFIG_PCMCIA_SYM53C500 is not set
641 678
642# 679#
680# Serial ATA (prod) and Parallel ATA (experimental) drivers
681#
682CONFIG_ATA=m
683# CONFIG_ATA_NONSTANDARD is not set
684CONFIG_PATA_PCMCIA=m
685CONFIG_PATA_PLATFORM=m
686
687#
643# Multi-device support (RAID and LVM) 688# Multi-device support (RAID and LVM)
644# 689#
645# CONFIG_MD is not set 690# CONFIG_MD is not set
@@ -675,10 +720,14 @@ CONFIG_PHYLIB=y
675# MII PHY device drivers 720# MII PHY device drivers
676# 721#
677# CONFIG_MARVELL_PHY is not set 722# CONFIG_MARVELL_PHY is not set
678CONFIG_DAVICOM_PHY=y 723# CONFIG_DAVICOM_PHY is not set
679# CONFIG_QSEMI_PHY is not set 724# CONFIG_QSEMI_PHY is not set
680# CONFIG_LXT_PHY is not set 725# CONFIG_LXT_PHY is not set
681# CONFIG_CICADA_PHY is not set 726# CONFIG_CICADA_PHY is not set
727# CONFIG_VITESSE_PHY is not set
728# CONFIG_SMSC_PHY is not set
729# CONFIG_BROADCOM_PHY is not set
730# CONFIG_FIXED_PHY is not set
682 731
683# 732#
684# Ethernet (10 or 100Mbit) 733# Ethernet (10 or 100Mbit)
@@ -687,6 +736,7 @@ CONFIG_NET_ETHERNET=y
687CONFIG_MII=y 736CONFIG_MII=y
688# CONFIG_SMC91X is not set 737# CONFIG_SMC91X is not set
689CONFIG_DM9000=y 738CONFIG_DM9000=y
739# CONFIG_SMC911X is not set
690 740
691# 741#
692# Ethernet (1000 Mbit) 742# Ethernet (1000 Mbit)
@@ -701,41 +751,23 @@ CONFIG_DM9000=y
701# 751#
702 752
703# 753#
704# Wireless LAN (non-hamradio) 754# Wireless LAN
705#
706CONFIG_NET_RADIO=y
707# CONFIG_NET_WIRELESS_RTNETLINK is not set
708
709#
710# Obsolete Wireless cards support (pre-802.11)
711#
712# CONFIG_STRIP is not set
713# CONFIG_PCMCIA_WAVELAN is not set
714# CONFIG_PCMCIA_NETWAVE is not set
715
716#
717# Wireless 802.11 Frequency Hopping cards support
718# 755#
756# CONFIG_WLAN_PRE80211 is not set
757CONFIG_WLAN_80211=y
719# CONFIG_PCMCIA_RAYCS is not set 758# CONFIG_PCMCIA_RAYCS is not set
720 759CONFIG_HERMES=y
721#
722# Wireless 802.11b ISA/PCI cards support
723#
724CONFIG_HERMES=m
725# CONFIG_ATMEL is not set 760# CONFIG_ATMEL is not set
726 761CONFIG_PCMCIA_HERMES=y
727# 762CONFIG_PCMCIA_SPECTRUM=y
728# Wireless 802.11b Pcmcia/Cardbus cards support 763# CONFIG_AIRO_CS is not set
729#
730CONFIG_PCMCIA_HERMES=m
731# CONFIG_PCMCIA_SPECTRUM is not set
732CONFIG_AIRO_CS=m
733# CONFIG_PCMCIA_WL3501 is not set 764# CONFIG_PCMCIA_WL3501 is not set
734CONFIG_HOSTAP=m 765# CONFIG_USB_ZD1201 is not set
766CONFIG_HOSTAP=y
735CONFIG_HOSTAP_FIRMWARE=y 767CONFIG_HOSTAP_FIRMWARE=y
736CONFIG_HOSTAP_FIRMWARE_NVRAM=y 768CONFIG_HOSTAP_FIRMWARE_NVRAM=y
737CONFIG_HOSTAP_CS=m 769CONFIG_HOSTAP_CS=y
738CONFIG_NET_WIRELESS=y 770# CONFIG_ZD1211RW is not set
739 771
740# 772#
741# PCMCIA network device support 773# PCMCIA network device support
@@ -756,6 +788,7 @@ CONFIG_PPP_BSDCOMP=m
756CONFIG_PPP_MPPE=m 788CONFIG_PPP_MPPE=m
757# CONFIG_PPPOE is not set 789# CONFIG_PPPOE is not set
758# CONFIG_SLIP is not set 790# CONFIG_SLIP is not set
791CONFIG_SLHC=m
759# CONFIG_SHAPER is not set 792# CONFIG_SHAPER is not set
760# CONFIG_NETCONSOLE is not set 793# CONFIG_NETCONSOLE is not set
761# CONFIG_NETPOLL is not set 794# CONFIG_NETPOLL is not set
@@ -770,6 +803,7 @@ CONFIG_PPP_MPPE=m
770# Input device support 803# Input device support
771# 804#
772CONFIG_INPUT=y 805CONFIG_INPUT=y
806# CONFIG_INPUT_FF_MEMLESS is not set
773 807
774# 808#
775# Userland interfaces 809# Userland interfaces
@@ -789,22 +823,27 @@ CONFIG_INPUT_EVDEV=y
789# Input Device Drivers 823# Input Device Drivers
790# 824#
791CONFIG_INPUT_KEYBOARD=y 825CONFIG_INPUT_KEYBOARD=y
792CONFIG_KEYBOARD_ATKBD=y 826CONFIG_KEYBOARD_ATKBD=m
793# CONFIG_KEYBOARD_SUNKBD is not set 827# CONFIG_KEYBOARD_SUNKBD is not set
794# CONFIG_KEYBOARD_LKKBD is not set 828# CONFIG_KEYBOARD_LKKBD is not set
795# CONFIG_KEYBOARD_XTKBD is not set 829# CONFIG_KEYBOARD_XTKBD is not set
796# CONFIG_KEYBOARD_NEWTON is not set 830# CONFIG_KEYBOARD_NEWTON is not set
831# CONFIG_KEYBOARD_STOWAWAY is not set
832# CONFIG_KEYBOARD_GPIO is not set
797CONFIG_INPUT_MOUSE=y 833CONFIG_INPUT_MOUSE=y
798# CONFIG_MOUSE_PS2 is not set 834# CONFIG_MOUSE_PS2 is not set
799CONFIG_MOUSE_SERIAL=y 835CONFIG_MOUSE_SERIAL=m
800# CONFIG_MOUSE_VSXXXAA is not set 836# CONFIG_MOUSE_VSXXXAA is not set
801# CONFIG_INPUT_JOYSTICK is not set 837# CONFIG_INPUT_JOYSTICK is not set
802CONFIG_INPUT_TOUCHSCREEN=y 838CONFIG_INPUT_TOUCHSCREEN=y
803# CONFIG_TOUCHSCREEN_ADS7846 is not set
804# CONFIG_TOUCHSCREEN_GUNZE is not set 839# CONFIG_TOUCHSCREEN_GUNZE is not set
805# CONFIG_TOUCHSCREEN_ELO is not set 840# CONFIG_TOUCHSCREEN_ELO is not set
806# CONFIG_TOUCHSCREEN_MTOUCH is not set 841# CONFIG_TOUCHSCREEN_MTOUCH is not set
807# CONFIG_TOUCHSCREEN_MK712 is not set 842# CONFIG_TOUCHSCREEN_MK712 is not set
843# CONFIG_TOUCHSCREEN_PENMOUNT is not set
844# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
845# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
846CONFIG_TOUCHSCREEN_UCB1400=y
808CONFIG_INPUT_MISC=y 847CONFIG_INPUT_MISC=y
809CONFIG_INPUT_UINPUT=m 848CONFIG_INPUT_UINPUT=m
810 849
@@ -823,6 +862,7 @@ CONFIG_SERIO_LIBPS2=y
823CONFIG_VT=y 862CONFIG_VT=y
824CONFIG_VT_CONSOLE=y 863CONFIG_VT_CONSOLE=y
825CONFIG_HW_CONSOLE=y 864CONFIG_HW_CONSOLE=y
865# CONFIG_VT_HW_CONSOLE_BINDING is not set
826# CONFIG_SERIAL_NONSTANDARD is not set 866# CONFIG_SERIAL_NONSTANDARD is not set
827 867
828# 868#
@@ -862,15 +902,12 @@ CONFIG_SA1100_WATCHDOG=y
862# USB-based Watchdog Cards 902# USB-based Watchdog Cards
863# 903#
864# CONFIG_USBPCWATCHDOG is not set 904# CONFIG_USBPCWATCHDOG is not set
905CONFIG_HW_RANDOM=y
865# CONFIG_NVRAM is not set 906# CONFIG_NVRAM is not set
866# CONFIG_DTLK is not set 907# CONFIG_DTLK is not set
867# CONFIG_R3964 is not set 908# CONFIG_R3964 is not set
868 909
869# 910#
870# Ftape, the floppy tape device driver
871#
872
873#
874# PCMCIA character devices 911# PCMCIA character devices
875# 912#
876# CONFIG_SYNCLINK_CS is not set 913# CONFIG_SYNCLINK_CS is not set
@@ -882,7 +919,6 @@ CONFIG_SA1100_WATCHDOG=y
882# TPM devices 919# TPM devices
883# 920#
884# CONFIG_TCG_TPM is not set 921# CONFIG_TCG_TPM is not set
885# CONFIG_TELCLOCK is not set
886 922
887# 923#
888# I2C support 924# I2C support
@@ -902,6 +938,7 @@ CONFIG_I2C_CHARDEV=y
902# 938#
903CONFIG_I2C_PXA=y 939CONFIG_I2C_PXA=y
904CONFIG_I2C_PXA_SLAVE=y 940CONFIG_I2C_PXA_SLAVE=y
941# CONFIG_I2C_OCORES is not set
905# CONFIG_I2C_PARPORT_LIGHT is not set 942# CONFIG_I2C_PARPORT_LIGHT is not set
906# CONFIG_I2C_STUB is not set 943# CONFIG_I2C_STUB is not set
907# CONFIG_I2C_PCA_ISA is not set 944# CONFIG_I2C_PCA_ISA is not set
@@ -911,7 +948,7 @@ CONFIG_I2C_PXA_SLAVE=y
911# 948#
912# CONFIG_SENSORS_DS1337 is not set 949# CONFIG_SENSORS_DS1337 is not set
913# CONFIG_SENSORS_DS1374 is not set 950# CONFIG_SENSORS_DS1374 is not set
914CONFIG_SENSORS_EEPROM=m 951# CONFIG_SENSORS_EEPROM is not set
915# CONFIG_SENSORS_PCF8574 is not set 952# CONFIG_SENSORS_PCF8574 is not set
916# CONFIG_SENSORS_PCA9539 is not set 953# CONFIG_SENSORS_PCA9539 is not set
917# CONFIG_SENSORS_PCF8591 is not set 954# CONFIG_SENSORS_PCF8591 is not set
@@ -924,18 +961,8 @@ CONFIG_SENSORS_EEPROM=m
924# 961#
925# SPI support 962# SPI support
926# 963#
927CONFIG_SPI=y 964# CONFIG_SPI is not set
928CONFIG_SPI_MASTER=y 965# CONFIG_SPI_MASTER is not set
929
930#
931# SPI Master Controller Drivers
932#
933# CONFIG_SPI_BITBANG is not set
934CONFIG_SPI_PXA2XX=m
935
936#
937# SPI Protocol Masters
938#
939 966
940# 967#
941# Dallas's 1-wire bus 968# Dallas's 1-wire bus
@@ -947,9 +974,11 @@ CONFIG_SPI_PXA2XX=m
947# 974#
948CONFIG_HWMON=y 975CONFIG_HWMON=y
949# CONFIG_HWMON_VID is not set 976# CONFIG_HWMON_VID is not set
977# CONFIG_SENSORS_ABITUGURU is not set
950# CONFIG_SENSORS_ADM1021 is not set 978# CONFIG_SENSORS_ADM1021 is not set
951# CONFIG_SENSORS_ADM1025 is not set 979# CONFIG_SENSORS_ADM1025 is not set
952# CONFIG_SENSORS_ADM1026 is not set 980# CONFIG_SENSORS_ADM1026 is not set
981# CONFIG_SENSORS_ADM1029 is not set
953# CONFIG_SENSORS_ADM1031 is not set 982# CONFIG_SENSORS_ADM1031 is not set
954# CONFIG_SENSORS_ADM9240 is not set 983# CONFIG_SENSORS_ADM9240 is not set
955# CONFIG_SENSORS_ASB100 is not set 984# CONFIG_SENSORS_ASB100 is not set
@@ -973,10 +1002,15 @@ CONFIG_HWMON=y
973# CONFIG_SENSORS_LM92 is not set 1002# CONFIG_SENSORS_LM92 is not set
974# CONFIG_SENSORS_MAX1619 is not set 1003# CONFIG_SENSORS_MAX1619 is not set
975# CONFIG_SENSORS_PC87360 is not set 1004# CONFIG_SENSORS_PC87360 is not set
1005# CONFIG_SENSORS_PC87427 is not set
976# CONFIG_SENSORS_SMSC47M1 is not set 1006# CONFIG_SENSORS_SMSC47M1 is not set
1007# CONFIG_SENSORS_SMSC47M192 is not set
977# CONFIG_SENSORS_SMSC47B397 is not set 1008# CONFIG_SENSORS_SMSC47B397 is not set
1009# CONFIG_SENSORS_VT1211 is not set
978# CONFIG_SENSORS_W83781D is not set 1010# CONFIG_SENSORS_W83781D is not set
1011# CONFIG_SENSORS_W83791D is not set
979# CONFIG_SENSORS_W83792D is not set 1012# CONFIG_SENSORS_W83792D is not set
1013# CONFIG_SENSORS_W83793 is not set
980# CONFIG_SENSORS_W83L785TS is not set 1014# CONFIG_SENSORS_W83L785TS is not set
981# CONFIG_SENSORS_W83627HF is not set 1015# CONFIG_SENSORS_W83627HF is not set
982# CONFIG_SENSORS_W83627EHF is not set 1016# CONFIG_SENSORS_W83627EHF is not set
@@ -987,16 +1021,15 @@ CONFIG_HWMON=y
987# 1021#
988 1022
989# 1023#
990# Multimedia Capabilities Port drivers 1024# Multifunction device drivers
991# 1025#
992CONFIG_UCB1400=y 1026# CONFIG_MFD_SM501 is not set
993CONFIG_UCB1400_TS=y
994 1027
995# 1028#
996# LED devices 1029# LED devices
997# 1030#
998CONFIG_NEW_LEDS=y 1031CONFIG_NEW_LEDS=y
999CONFIG_LEDS_CLASS=y 1032# CONFIG_LEDS_CLASS is not set
1000 1033
1001# 1034#
1002# LED drivers 1035# LED drivers
@@ -1007,13 +1040,13 @@ CONFIG_LEDS_CLASS=y
1007# 1040#
1008CONFIG_LEDS_TRIGGERS=y 1041CONFIG_LEDS_TRIGGERS=y
1009CONFIG_LEDS_TRIGGER_TIMER=y 1042CONFIG_LEDS_TRIGGER_TIMER=y
1010CONFIG_LEDS_TRIGGER_IDE_DISK=y 1043# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
1044CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1011 1045
1012# 1046#
1013# Multimedia devices 1047# Multimedia devices
1014# 1048#
1015# CONFIG_VIDEO_DEV is not set 1049# CONFIG_VIDEO_DEV is not set
1016CONFIG_VIDEO_V4L2=y
1017 1050
1018# 1051#
1019# Digital Video Broadcasting Devices 1052# Digital Video Broadcasting Devices
@@ -1024,17 +1057,28 @@ CONFIG_VIDEO_V4L2=y
1024# 1057#
1025# Graphics support 1058# Graphics support
1026# 1059#
1060CONFIG_BACKLIGHT_LCD_SUPPORT=y
1061CONFIG_BACKLIGHT_CLASS_DEVICE=y
1062CONFIG_LCD_CLASS_DEVICE=y
1027CONFIG_FB=y 1063CONFIG_FB=y
1064CONFIG_FIRMWARE_EDID=y
1065# CONFIG_FB_DDC is not set
1028CONFIG_FB_CFB_FILLRECT=y 1066CONFIG_FB_CFB_FILLRECT=y
1029CONFIG_FB_CFB_COPYAREA=y 1067CONFIG_FB_CFB_COPYAREA=y
1030CONFIG_FB_CFB_IMAGEBLIT=y 1068CONFIG_FB_CFB_IMAGEBLIT=y
1069# CONFIG_FB_SVGALIB is not set
1031# CONFIG_FB_MACMODES is not set 1070# CONFIG_FB_MACMODES is not set
1032CONFIG_FB_FIRMWARE_EDID=y 1071# CONFIG_FB_BACKLIGHT is not set
1033# CONFIG_FB_MODE_HELPERS is not set 1072# CONFIG_FB_MODE_HELPERS is not set
1034# CONFIG_FB_TILEBLITTING is not set 1073# CONFIG_FB_TILEBLITTING is not set
1074
1075#
1076# Frame buffer hardware drivers
1077#
1035# CONFIG_FB_S1D13XXX is not set 1078# CONFIG_FB_S1D13XXX is not set
1036CONFIG_FB_PXA=y 1079CONFIG_FB_PXA=y
1037# CONFIG_FB_PXA_PARAMETERS is not set 1080# CONFIG_FB_PXA_PARAMETERS is not set
1081# CONFIG_FB_MBX is not set
1038# CONFIG_FB_VIRTUAL is not set 1082# CONFIG_FB_VIRTUAL is not set
1039 1083
1040# 1084#
@@ -1063,11 +1107,6 @@ CONFIG_LOGO=y
1063CONFIG_LOGO_LINUX_MONO=y 1107CONFIG_LOGO_LINUX_MONO=y
1064CONFIG_LOGO_LINUX_VGA16=y 1108CONFIG_LOGO_LINUX_VGA16=y
1065CONFIG_LOGO_LINUX_CLUT224=y 1109CONFIG_LOGO_LINUX_CLUT224=y
1066CONFIG_BACKLIGHT_LCD_SUPPORT=y
1067CONFIG_BACKLIGHT_CLASS_DEVICE=y
1068CONFIG_BACKLIGHT_DEVICE=y
1069CONFIG_LCD_CLASS_DEVICE=y
1070CONFIG_LCD_DEVICE=y
1071 1110
1072# 1111#
1073# Sound 1112# Sound
@@ -1082,7 +1121,7 @@ CONFIG_SND_TIMER=y
1082CONFIG_SND_PCM=y 1121CONFIG_SND_PCM=y
1083CONFIG_SND_HWDEP=m 1122CONFIG_SND_HWDEP=m
1084CONFIG_SND_RAWMIDI=m 1123CONFIG_SND_RAWMIDI=m
1085CONFIG_SND_SEQUENCER=m 1124CONFIG_SND_SEQUENCER=y
1086# CONFIG_SND_SEQ_DUMMY is not set 1125# CONFIG_SND_SEQ_DUMMY is not set
1087CONFIG_SND_OSSEMUL=y 1126CONFIG_SND_OSSEMUL=y
1088CONFIG_SND_MIXER_OSS=y 1127CONFIG_SND_MIXER_OSS=y
@@ -1093,13 +1132,14 @@ CONFIG_SND_PCM_OSS_PLUGINS=y
1093CONFIG_SND_SUPPORT_OLD_API=y 1132CONFIG_SND_SUPPORT_OLD_API=y
1094CONFIG_SND_VERBOSE_PROCFS=y 1133CONFIG_SND_VERBOSE_PROCFS=y
1095CONFIG_SND_VERBOSE_PRINTK=y 1134CONFIG_SND_VERBOSE_PRINTK=y
1096# CONFIG_SND_DEBUG is not set 1135CONFIG_SND_DEBUG=y
1136CONFIG_SND_DEBUG_DETECT=y
1137# CONFIG_SND_PCM_XRUN_DEBUG is not set
1097 1138
1098# 1139#
1099# Generic devices 1140# Generic devices
1100# 1141#
1101CONFIG_SND_AC97_CODEC=y 1142CONFIG_SND_AC97_CODEC=y
1102CONFIG_SND_AC97_BUS=y
1103# CONFIG_SND_DUMMY is not set 1143# CONFIG_SND_DUMMY is not set
1104# CONFIG_SND_VIRMIDI is not set 1144# CONFIG_SND_VIRMIDI is not set
1105# CONFIG_SND_MTPAV is not set 1145# CONFIG_SND_MTPAV is not set
@@ -1124,9 +1164,32 @@ CONFIG_SND_USB_AUDIO=m
1124# CONFIG_SND_PDAUDIOCF is not set 1164# CONFIG_SND_PDAUDIOCF is not set
1125 1165
1126# 1166#
1167# SoC audio support
1168#
1169# CONFIG_SND_SOC is not set
1170
1171#
1127# Open Sound System 1172# Open Sound System
1128# 1173#
1129# CONFIG_SOUND_PRIME is not set 1174# CONFIG_SOUND_PRIME is not set
1175CONFIG_AC97_BUS=y
1176
1177#
1178# HID Devices
1179#
1180CONFIG_HID=y
1181# CONFIG_HID_DEBUG is not set
1182
1183#
1184# USB Input Devices
1185#
1186# CONFIG_USB_HID is not set
1187
1188#
1189# USB HID Boot Protocol drivers
1190#
1191# CONFIG_USB_KBD is not set
1192# CONFIG_USB_MOUSE is not set
1130 1193
1131# 1194#
1132# USB support 1195# USB support
@@ -1141,7 +1204,7 @@ CONFIG_USB=y
1141# Miscellaneous USB options 1204# Miscellaneous USB options
1142# 1205#
1143CONFIG_USB_DEVICEFS=y 1206CONFIG_USB_DEVICEFS=y
1144# CONFIG_USB_BANDWIDTH is not set 1207# CONFIG_USB_DEVICE_CLASS is not set
1145# CONFIG_USB_DYNAMIC_MINORS is not set 1208# CONFIG_USB_DYNAMIC_MINORS is not set
1146# CONFIG_USB_SUSPEND is not set 1209# CONFIG_USB_SUSPEND is not set
1147# CONFIG_USB_OTG is not set 1210# CONFIG_USB_OTG is not set
@@ -1151,7 +1214,8 @@ CONFIG_USB_DEVICEFS=y
1151# 1214#
1152# CONFIG_USB_ISP116X_HCD is not set 1215# CONFIG_USB_ISP116X_HCD is not set
1153CONFIG_USB_OHCI_HCD=y 1216CONFIG_USB_OHCI_HCD=y
1154# CONFIG_USB_OHCI_BIG_ENDIAN is not set 1217# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1218# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1155CONFIG_USB_OHCI_LITTLE_ENDIAN=y 1219CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1156# CONFIG_USB_SL811_HCD is not set 1220# CONFIG_USB_SL811_HCD is not set
1157 1221
@@ -1179,38 +1243,25 @@ CONFIG_USB_STORAGE=m
1179# CONFIG_USB_STORAGE_SDDR55 is not set 1243# CONFIG_USB_STORAGE_SDDR55 is not set
1180# CONFIG_USB_STORAGE_JUMPSHOT is not set 1244# CONFIG_USB_STORAGE_JUMPSHOT is not set
1181# CONFIG_USB_STORAGE_ALAUDA is not set 1245# CONFIG_USB_STORAGE_ALAUDA is not set
1246# CONFIG_USB_STORAGE_KARMA is not set
1182# CONFIG_USB_LIBUSUAL is not set 1247# CONFIG_USB_LIBUSUAL is not set
1183 1248
1184# 1249#
1185# USB Input Devices 1250# USB Input Devices
1186# 1251#
1187CONFIG_USB_HID=m
1188CONFIG_USB_HIDINPUT=y
1189# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1190# CONFIG_HID_FF is not set
1191# CONFIG_USB_HIDDEV is not set
1192
1193#
1194# USB HID Boot Protocol drivers
1195#
1196# CONFIG_USB_KBD is not set
1197# CONFIG_USB_MOUSE is not set
1198# CONFIG_USB_AIPTEK is not set 1252# CONFIG_USB_AIPTEK is not set
1199# CONFIG_USB_WACOM is not set 1253# CONFIG_USB_WACOM is not set
1200# CONFIG_USB_ACECAD is not set 1254# CONFIG_USB_ACECAD is not set
1201# CONFIG_USB_KBTAB is not set 1255# CONFIG_USB_KBTAB is not set
1202# CONFIG_USB_POWERMATE is not set 1256# CONFIG_USB_POWERMATE is not set
1203CONFIG_USB_TOUCHSCREEN=m 1257# CONFIG_USB_TOUCHSCREEN is not set
1204# CONFIG_USB_TOUCHSCREEN_EGALAX is not set
1205# CONFIG_USB_TOUCHSCREEN_PANJIT is not set
1206# CONFIG_USB_TOUCHSCREEN_3M is not set
1207# CONFIG_USB_TOUCHSCREEN_ITM is not set
1208# CONFIG_USB_YEALINK is not set 1258# CONFIG_USB_YEALINK is not set
1209# CONFIG_USB_XPAD is not set 1259# CONFIG_USB_XPAD is not set
1210# CONFIG_USB_ATI_REMOTE is not set 1260# CONFIG_USB_ATI_REMOTE is not set
1211# CONFIG_USB_ATI_REMOTE2 is not set 1261# CONFIG_USB_ATI_REMOTE2 is not set
1212# CONFIG_USB_KEYSPAN_REMOTE is not set 1262# CONFIG_USB_KEYSPAN_REMOTE is not set
1213# CONFIG_USB_APPLETOUCH is not set 1263# CONFIG_USB_APPLETOUCH is not set
1264# CONFIG_USB_GTCO is not set
1214 1265
1215# 1266#
1216# USB Imaging devices 1267# USB Imaging devices
@@ -1225,9 +1276,9 @@ CONFIG_USB_TOUCHSCREEN=m
1225# CONFIG_USB_KAWETH is not set 1276# CONFIG_USB_KAWETH is not set
1226# CONFIG_USB_PEGASUS is not set 1277# CONFIG_USB_PEGASUS is not set
1227# CONFIG_USB_RTL8150 is not set 1278# CONFIG_USB_RTL8150 is not set
1279# CONFIG_USB_USBNET_MII is not set
1228# CONFIG_USB_USBNET is not set 1280# CONFIG_USB_USBNET is not set
1229# CONFIG_USB_ZD1201 is not set 1281# CONFIG_USB_MON is not set
1230CONFIG_USB_MON=y
1231 1282
1232# 1283#
1233# USB port drivers 1284# USB port drivers
@@ -1236,23 +1287,66 @@ CONFIG_USB_MON=y
1236# 1287#
1237# USB Serial Converter support 1288# USB Serial Converter support
1238# 1289#
1239# CONFIG_USB_SERIAL is not set 1290CONFIG_USB_SERIAL=m
1291# CONFIG_USB_SERIAL_GENERIC is not set
1292# CONFIG_USB_SERIAL_AIRCABLE is not set
1293# CONFIG_USB_SERIAL_AIRPRIME is not set
1294# CONFIG_USB_SERIAL_ARK3116 is not set
1295# CONFIG_USB_SERIAL_BELKIN is not set
1296# CONFIG_USB_SERIAL_WHITEHEAT is not set
1297# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
1298# CONFIG_USB_SERIAL_CP2101 is not set
1299# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
1300# CONFIG_USB_SERIAL_EMPEG is not set
1301# CONFIG_USB_SERIAL_FTDI_SIO is not set
1302# CONFIG_USB_SERIAL_FUNSOFT is not set
1303# CONFIG_USB_SERIAL_VISOR is not set
1304# CONFIG_USB_SERIAL_IPAQ is not set
1305# CONFIG_USB_SERIAL_IR is not set
1306# CONFIG_USB_SERIAL_EDGEPORT is not set
1307# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
1308# CONFIG_USB_SERIAL_GARMIN is not set
1309# CONFIG_USB_SERIAL_IPW is not set
1310# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
1311# CONFIG_USB_SERIAL_KEYSPAN is not set
1312# CONFIG_USB_SERIAL_KLSI is not set
1313# CONFIG_USB_SERIAL_KOBIL_SCT is not set
1314# CONFIG_USB_SERIAL_MCT_U232 is not set
1315# CONFIG_USB_SERIAL_MOS7720 is not set
1316# CONFIG_USB_SERIAL_MOS7840 is not set
1317# CONFIG_USB_SERIAL_NAVMAN is not set
1318# CONFIG_USB_SERIAL_PL2303 is not set
1319# CONFIG_USB_SERIAL_HP4X is not set
1320# CONFIG_USB_SERIAL_SAFE is not set
1321# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1322# CONFIG_USB_SERIAL_TI is not set
1323# CONFIG_USB_SERIAL_CYBERJACK is not set
1324# CONFIG_USB_SERIAL_XIRCOM is not set
1325# CONFIG_USB_SERIAL_OPTION is not set
1326# CONFIG_USB_SERIAL_OMNINET is not set
1327# CONFIG_USB_SERIAL_DEBUG is not set
1240 1328
1241# 1329#
1242# USB Miscellaneous drivers 1330# USB Miscellaneous drivers
1243# 1331#
1244# CONFIG_USB_EMI62 is not set 1332# CONFIG_USB_EMI62 is not set
1245# CONFIG_USB_EMI26 is not set 1333# CONFIG_USB_EMI26 is not set
1334# CONFIG_USB_ADUTUX is not set
1246# CONFIG_USB_AUERSWALD is not set 1335# CONFIG_USB_AUERSWALD is not set
1247# CONFIG_USB_RIO500 is not set 1336# CONFIG_USB_RIO500 is not set
1248# CONFIG_USB_LEGOTOWER is not set 1337# CONFIG_USB_LEGOTOWER is not set
1249# CONFIG_USB_LCD is not set 1338# CONFIG_USB_LCD is not set
1339# CONFIG_USB_BERRY_CHARGE is not set
1250# CONFIG_USB_LED is not set 1340# CONFIG_USB_LED is not set
1341# CONFIG_USB_CYPRESS_CY7C63 is not set
1251# CONFIG_USB_CYTHERM is not set 1342# CONFIG_USB_CYTHERM is not set
1252# CONFIG_USB_PHIDGETKIT is not set 1343# CONFIG_USB_PHIDGET is not set
1253# CONFIG_USB_PHIDGETSERVO is not set
1254# CONFIG_USB_IDMOUSE is not set 1344# CONFIG_USB_IDMOUSE is not set
1345# CONFIG_USB_FTDI_ELAN is not set
1346# CONFIG_USB_APPLEDISPLAY is not set
1255# CONFIG_USB_LD is not set 1347# CONFIG_USB_LD is not set
1348# CONFIG_USB_TRANCEVIBRATOR is not set
1349# CONFIG_USB_IOWARRIOR is not set
1256# CONFIG_USB_TEST is not set 1350# CONFIG_USB_TEST is not set
1257 1351
1258# 1352#
@@ -1262,9 +1356,10 @@ CONFIG_USB_MON=y
1262# 1356#
1263# USB Gadget Support 1357# USB Gadget Support
1264# 1358#
1265CONFIG_USB_GADGET=y 1359CONFIG_USB_GADGET=m
1266# CONFIG_USB_GADGET_DEBUG_FILES is not set 1360# CONFIG_USB_GADGET_DEBUG_FILES is not set
1267CONFIG_USB_GADGET_SELECTED=y 1361CONFIG_USB_GADGET_SELECTED=y
1362# CONFIG_USB_GADGET_FSL_USB2 is not set
1268# CONFIG_USB_GADGET_NET2280 is not set 1363# CONFIG_USB_GADGET_NET2280 is not set
1269# CONFIG_USB_GADGET_PXA2XX is not set 1364# CONFIG_USB_GADGET_PXA2XX is not set
1270# CONFIG_USB_GADGET_GOKU is not set 1365# CONFIG_USB_GADGET_GOKU is not set
@@ -1272,15 +1367,14 @@ CONFIG_USB_GADGET_SELECTED=y
1272# CONFIG_USB_GADGET_OMAP is not set 1367# CONFIG_USB_GADGET_OMAP is not set
1273# CONFIG_USB_GADGET_AT91 is not set 1368# CONFIG_USB_GADGET_AT91 is not set
1274CONFIG_USB_GADGET_DUMMY_HCD=y 1369CONFIG_USB_GADGET_DUMMY_HCD=y
1275CONFIG_USB_DUMMY_HCD=y 1370CONFIG_USB_DUMMY_HCD=m
1276CONFIG_USB_GADGET_DUALSPEED=y 1371CONFIG_USB_GADGET_DUALSPEED=y
1277# CONFIG_USB_ZERO is not set 1372# CONFIG_USB_ZERO is not set
1278CONFIG_USB_ETH=m 1373# CONFIG_USB_ETH is not set
1279CONFIG_USB_ETH_RNDIS=y 1374# CONFIG_USB_GADGETFS is not set
1280CONFIG_USB_GADGETFS=m 1375# CONFIG_USB_FILE_STORAGE is not set
1281CONFIG_USB_FILE_STORAGE=m 1376# CONFIG_USB_G_SERIAL is not set
1282# CONFIG_USB_FILE_STORAGE_TEST is not set 1377# CONFIG_USB_MIDI_GADGET is not set
1283CONFIG_USB_G_SERIAL=m
1284 1378
1285# 1379#
1286# MMC/SD Card support 1380# MMC/SD Card support
@@ -1295,8 +1389,8 @@ CONFIG_MMC_PXA=y
1295# 1389#
1296CONFIG_RTC_LIB=y 1390CONFIG_RTC_LIB=y
1297CONFIG_RTC_CLASS=y 1391CONFIG_RTC_CLASS=y
1298CONFIG_RTC_HCTOSYS=y 1392# CONFIG_RTC_HCTOSYS is not set
1299CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 1393# CONFIG_RTC_DEBUG is not set
1300 1394
1301# 1395#
1302# RTC interfaces 1396# RTC interfaces
@@ -1304,17 +1398,25 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1304CONFIG_RTC_INTF_SYSFS=y 1398CONFIG_RTC_INTF_SYSFS=y
1305CONFIG_RTC_INTF_PROC=y 1399CONFIG_RTC_INTF_PROC=y
1306CONFIG_RTC_INTF_DEV=y 1400CONFIG_RTC_INTF_DEV=y
1401# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1307 1402
1308# 1403#
1309# RTC drivers 1404# RTC drivers
1310# 1405#
1406# CONFIG_RTC_DRV_CMOS is not set
1311# CONFIG_RTC_DRV_X1205 is not set 1407# CONFIG_RTC_DRV_X1205 is not set
1408# CONFIG_RTC_DRV_DS1307 is not set
1409# CONFIG_RTC_DRV_DS1553 is not set
1410# CONFIG_RTC_DRV_ISL1208 is not set
1312# CONFIG_RTC_DRV_DS1672 is not set 1411# CONFIG_RTC_DRV_DS1672 is not set
1412# CONFIG_RTC_DRV_DS1742 is not set
1313# CONFIG_RTC_DRV_PCF8563 is not set 1413# CONFIG_RTC_DRV_PCF8563 is not set
1414CONFIG_RTC_DRV_PCF8583=m
1314# CONFIG_RTC_DRV_RS5C372 is not set 1415# CONFIG_RTC_DRV_RS5C372 is not set
1315# CONFIG_RTC_DRV_M48T86 is not set 1416# CONFIG_RTC_DRV_M48T86 is not set
1316CONFIG_RTC_DRV_SA1100=y 1417CONFIG_RTC_DRV_SA1100=y
1317# CONFIG_RTC_DRV_TEST is not set 1418# CONFIG_RTC_DRV_TEST is not set
1419# CONFIG_RTC_DRV_V3020 is not set
1318 1420
1319# 1421#
1320# File systems 1422# File systems
@@ -1328,6 +1430,7 @@ CONFIG_EXT3_FS=y
1328CONFIG_EXT3_FS_XATTR=y 1430CONFIG_EXT3_FS_XATTR=y
1329CONFIG_EXT3_FS_POSIX_ACL=y 1431CONFIG_EXT3_FS_POSIX_ACL=y
1330CONFIG_EXT3_FS_SECURITY=y 1432CONFIG_EXT3_FS_SECURITY=y
1433# CONFIG_EXT4DEV_FS is not set
1331CONFIG_JBD=y 1434CONFIG_JBD=y
1332# CONFIG_JBD_DEBUG is not set 1435# CONFIG_JBD_DEBUG is not set
1333CONFIG_FS_MBCACHE=y 1436CONFIG_FS_MBCACHE=y
@@ -1335,10 +1438,12 @@ CONFIG_FS_MBCACHE=y
1335# CONFIG_JFS_FS is not set 1438# CONFIG_JFS_FS is not set
1336CONFIG_FS_POSIX_ACL=y 1439CONFIG_FS_POSIX_ACL=y
1337# CONFIG_XFS_FS is not set 1440# CONFIG_XFS_FS is not set
1441# CONFIG_GFS2_FS is not set
1338# CONFIG_OCFS2_FS is not set 1442# CONFIG_OCFS2_FS is not set
1339# CONFIG_MINIX_FS is not set 1443# CONFIG_MINIX_FS is not set
1340# CONFIG_ROMFS_FS is not set 1444# CONFIG_ROMFS_FS is not set
1341CONFIG_INOTIFY=y 1445CONFIG_INOTIFY=y
1446CONFIG_INOTIFY_USER=y
1342# CONFIG_QUOTA is not set 1447# CONFIG_QUOTA is not set
1343CONFIG_DNOTIFY=y 1448CONFIG_DNOTIFY=y
1344# CONFIG_AUTOFS_FS is not set 1449# CONFIG_AUTOFS_FS is not set
@@ -1365,8 +1470,10 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-15"
1365# Pseudo filesystems 1470# Pseudo filesystems
1366# 1471#
1367CONFIG_PROC_FS=y 1472CONFIG_PROC_FS=y
1473CONFIG_PROC_SYSCTL=y
1368CONFIG_SYSFS=y 1474CONFIG_SYSFS=y
1369CONFIG_TMPFS=y 1475CONFIG_TMPFS=y
1476# CONFIG_TMPFS_POSIX_ACL is not set
1370# CONFIG_HUGETLB_PAGE is not set 1477# CONFIG_HUGETLB_PAGE is not set
1371CONFIG_RAMFS=y 1478CONFIG_RAMFS=y
1372# CONFIG_CONFIGFS_FS is not set 1479# CONFIG_CONFIGFS_FS is not set
@@ -1376,18 +1483,17 @@ CONFIG_RAMFS=y
1376# 1483#
1377# CONFIG_ADFS_FS is not set 1484# CONFIG_ADFS_FS is not set
1378# CONFIG_AFFS_FS is not set 1485# CONFIG_AFFS_FS is not set
1486# CONFIG_ECRYPT_FS is not set
1379# CONFIG_HFS_FS is not set 1487# CONFIG_HFS_FS is not set
1380# CONFIG_HFSPLUS_FS is not set 1488# CONFIG_HFSPLUS_FS is not set
1381# CONFIG_BEFS_FS is not set 1489# CONFIG_BEFS_FS is not set
1382# CONFIG_BFS_FS is not set 1490# CONFIG_BFS_FS is not set
1383# CONFIG_EFS_FS is not set 1491# CONFIG_EFS_FS is not set
1384CONFIG_JFFS_FS=y
1385CONFIG_JFFS_FS_VERBOSE=0
1386CONFIG_JFFS_PROC_FS=y
1387CONFIG_JFFS2_FS=y 1492CONFIG_JFFS2_FS=y
1388CONFIG_JFFS2_FS_DEBUG=0 1493CONFIG_JFFS2_FS_DEBUG=0
1389CONFIG_JFFS2_FS_WRITEBUFFER=y 1494CONFIG_JFFS2_FS_WRITEBUFFER=y
1390# CONFIG_JFFS2_SUMMARY is not set 1495# CONFIG_JFFS2_SUMMARY is not set
1496# CONFIG_JFFS2_FS_XATTR is not set
1391CONFIG_JFFS2_COMPRESSION_OPTIONS=y 1497CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1392CONFIG_JFFS2_ZLIB=y 1498CONFIG_JFFS2_ZLIB=y
1393CONFIG_JFFS2_RTIME=y 1499CONFIG_JFFS2_RTIME=y
@@ -1407,20 +1513,18 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
1407# 1513#
1408CONFIG_NFS_FS=y 1514CONFIG_NFS_FS=y
1409CONFIG_NFS_V3=y 1515CONFIG_NFS_V3=y
1410CONFIG_NFS_V3_ACL=y 1516# CONFIG_NFS_V3_ACL is not set
1411CONFIG_NFS_V4=y 1517CONFIG_NFS_V4=y
1412# CONFIG_NFS_DIRECTIO is not set 1518# CONFIG_NFS_DIRECTIO is not set
1413CONFIG_NFSD=y 1519CONFIG_NFSD=y
1414CONFIG_NFSD_V2_ACL=y
1415CONFIG_NFSD_V3=y 1520CONFIG_NFSD_V3=y
1416CONFIG_NFSD_V3_ACL=y 1521# CONFIG_NFSD_V3_ACL is not set
1417CONFIG_NFSD_V4=y 1522CONFIG_NFSD_V4=y
1418CONFIG_NFSD_TCP=y 1523CONFIG_NFSD_TCP=y
1419CONFIG_ROOT_NFS=y 1524CONFIG_ROOT_NFS=y
1420CONFIG_LOCKD=y 1525CONFIG_LOCKD=y
1421CONFIG_LOCKD_V4=y 1526CONFIG_LOCKD_V4=y
1422CONFIG_EXPORTFS=y 1527CONFIG_EXPORTFS=y
1423CONFIG_NFS_ACL_SUPPORT=y
1424CONFIG_NFS_COMMON=y 1528CONFIG_NFS_COMMON=y
1425CONFIG_SUNRPC=y 1529CONFIG_SUNRPC=y
1426CONFIG_SUNRPC_GSS=y 1530CONFIG_SUNRPC_GSS=y
@@ -1430,7 +1534,9 @@ CONFIG_SMB_FS=m
1430# CONFIG_SMB_NLS_DEFAULT is not set 1534# CONFIG_SMB_NLS_DEFAULT is not set
1431CONFIG_CIFS=m 1535CONFIG_CIFS=m
1432# CONFIG_CIFS_STATS is not set 1536# CONFIG_CIFS_STATS is not set
1537# CONFIG_CIFS_WEAK_PW_HASH is not set
1433# CONFIG_CIFS_XATTR is not set 1538# CONFIG_CIFS_XATTR is not set
1539# CONFIG_CIFS_DEBUG2 is not set
1434# CONFIG_CIFS_EXPERIMENTAL is not set 1540# CONFIG_CIFS_EXPERIMENTAL is not set
1435# CONFIG_NCP_FS is not set 1541# CONFIG_NCP_FS is not set
1436# CONFIG_CODA_FS is not set 1542# CONFIG_CODA_FS is not set
@@ -1504,22 +1610,28 @@ CONFIG_NLS_ISO8859_15=m
1504CONFIG_NLS_UTF8=m 1610CONFIG_NLS_UTF8=m
1505 1611
1506# 1612#
1613# Distributed Lock Manager
1614#
1615# CONFIG_DLM is not set
1616
1617#
1507# Profiling support 1618# Profiling support
1508# 1619#
1509CONFIG_PROFILING=y 1620# CONFIG_PROFILING is not set
1510CONFIG_OPROFILE=y
1511 1621
1512# 1622#
1513# Kernel hacking 1623# Kernel hacking
1514# 1624#
1515# CONFIG_PRINTK_TIME is not set 1625# CONFIG_PRINTK_TIME is not set
1626CONFIG_ENABLE_MUST_CHECK=y
1516CONFIG_MAGIC_SYSRQ=y 1627CONFIG_MAGIC_SYSRQ=y
1628# CONFIG_UNUSED_SYMBOLS is not set
1629CONFIG_DEBUG_FS=y
1630# CONFIG_HEADERS_CHECK is not set
1517# CONFIG_DEBUG_KERNEL is not set 1631# CONFIG_DEBUG_KERNEL is not set
1518CONFIG_LOG_BUF_SHIFT=14 1632CONFIG_LOG_BUF_SHIFT=14
1519# CONFIG_DEBUG_BUGVERBOSE is not set 1633# CONFIG_DEBUG_BUGVERBOSE is not set
1520# CONFIG_DEBUG_FS is not set
1521CONFIG_FRAME_POINTER=y 1634CONFIG_FRAME_POINTER=y
1522# CONFIG_UNWIND_INFO is not set
1523CONFIG_DEBUG_USER=y 1635CONFIG_DEBUG_USER=y
1524 1636
1525# 1637#
@@ -1531,22 +1643,31 @@ CONFIG_SECURITY=y
1531# CONFIG_SECURITY_NETWORK is not set 1643# CONFIG_SECURITY_NETWORK is not set
1532CONFIG_SECURITY_CAPABILITIES=y 1644CONFIG_SECURITY_CAPABILITIES=y
1533# CONFIG_SECURITY_ROOTPLUG is not set 1645# CONFIG_SECURITY_ROOTPLUG is not set
1534# CONFIG_SECURITY_SECLVL is not set
1535 1646
1536# 1647#
1537# Cryptographic options 1648# Cryptographic options
1538# 1649#
1539CONFIG_CRYPTO=y 1650CONFIG_CRYPTO=y
1651CONFIG_CRYPTO_ALGAPI=y
1652CONFIG_CRYPTO_BLKCIPHER=y
1653CONFIG_CRYPTO_MANAGER=y
1540# CONFIG_CRYPTO_HMAC is not set 1654# CONFIG_CRYPTO_HMAC is not set
1655# CONFIG_CRYPTO_XCBC is not set
1541# CONFIG_CRYPTO_NULL is not set 1656# CONFIG_CRYPTO_NULL is not set
1542CONFIG_CRYPTO_MD4=y 1657# CONFIG_CRYPTO_MD4 is not set
1543CONFIG_CRYPTO_MD5=y 1658CONFIG_CRYPTO_MD5=y
1544CONFIG_CRYPTO_SHA1=m 1659CONFIG_CRYPTO_SHA1=m
1545CONFIG_CRYPTO_SHA256=m 1660CONFIG_CRYPTO_SHA256=m
1546CONFIG_CRYPTO_SHA512=m 1661CONFIG_CRYPTO_SHA512=m
1547# CONFIG_CRYPTO_WP512 is not set 1662# CONFIG_CRYPTO_WP512 is not set
1548# CONFIG_CRYPTO_TGR192 is not set 1663# CONFIG_CRYPTO_TGR192 is not set
1664# CONFIG_CRYPTO_GF128MUL is not set
1665CONFIG_CRYPTO_ECB=y
1666CONFIG_CRYPTO_CBC=y
1667CONFIG_CRYPTO_PCBC=m
1668# CONFIG_CRYPTO_LRW is not set
1549CONFIG_CRYPTO_DES=y 1669CONFIG_CRYPTO_DES=y
1670# CONFIG_CRYPTO_FCRYPT is not set
1550# CONFIG_CRYPTO_BLOWFISH is not set 1671# CONFIG_CRYPTO_BLOWFISH is not set
1551# CONFIG_CRYPTO_TWOFISH is not set 1672# CONFIG_CRYPTO_TWOFISH is not set
1552# CONFIG_CRYPTO_SERPENT is not set 1673# CONFIG_CRYPTO_SERPENT is not set
@@ -1554,12 +1675,13 @@ CONFIG_CRYPTO_AES=m
1554# CONFIG_CRYPTO_CAST5 is not set 1675# CONFIG_CRYPTO_CAST5 is not set
1555# CONFIG_CRYPTO_CAST6 is not set 1676# CONFIG_CRYPTO_CAST6 is not set
1556# CONFIG_CRYPTO_TEA is not set 1677# CONFIG_CRYPTO_TEA is not set
1557CONFIG_CRYPTO_ARC4=m 1678CONFIG_CRYPTO_ARC4=y
1558# CONFIG_CRYPTO_KHAZAD is not set 1679# CONFIG_CRYPTO_KHAZAD is not set
1559# CONFIG_CRYPTO_ANUBIS is not set 1680# CONFIG_CRYPTO_ANUBIS is not set
1560CONFIG_CRYPTO_DEFLATE=m 1681CONFIG_CRYPTO_DEFLATE=m
1561CONFIG_CRYPTO_MICHAEL_MIC=m 1682CONFIG_CRYPTO_MICHAEL_MIC=m
1562CONFIG_CRYPTO_CRC32C=y 1683CONFIG_CRYPTO_CRC32C=y
1684# CONFIG_CRYPTO_CAMELLIA is not set
1563# CONFIG_CRYPTO_TEST is not set 1685# CONFIG_CRYPTO_TEST is not set
1564 1686
1565# 1687#
@@ -1569,6 +1691,7 @@ CONFIG_CRYPTO_CRC32C=y
1569# 1691#
1570# Library routines 1692# Library routines
1571# 1693#
1694CONFIG_BITREVERSE=y
1572CONFIG_CRC_CCITT=y 1695CONFIG_CRC_CCITT=y
1573CONFIG_CRC16=y 1696CONFIG_CRC16=y
1574CONFIG_CRC32=y 1697CONFIG_CRC32=y
@@ -1577,3 +1700,6 @@ CONFIG_ZLIB_INFLATE=y
1577CONFIG_ZLIB_DEFLATE=y 1700CONFIG_ZLIB_DEFLATE=y
1578CONFIG_REED_SOLOMON=y 1701CONFIG_REED_SOLOMON=y
1579CONFIG_REED_SOLOMON_DEC16=y 1702CONFIG_REED_SOLOMON_DEC16=y
1703CONFIG_PLIST=y
1704CONFIG_HAS_IOMEM=y
1705CONFIG_HAS_IOPORT=y
diff --git a/arch/arm/kernel/ecard.c b/arch/arm/kernel/ecard.c
index bdbd7da99286..f56d48c451ea 100644
--- a/arch/arm/kernel/ecard.c
+++ b/arch/arm/kernel/ecard.c
@@ -41,11 +41,11 @@
41#include <linux/init.h> 41#include <linux/init.h>
42#include <linux/mutex.h> 42#include <linux/mutex.h>
43#include <linux/kthread.h> 43#include <linux/kthread.h>
44#include <linux/io.h>
44 45
45#include <asm/dma.h> 46#include <asm/dma.h>
46#include <asm/ecard.h> 47#include <asm/ecard.h>
47#include <asm/hardware.h> 48#include <asm/hardware.h>
48#include <asm/io.h>
49#include <asm/irq.h> 49#include <asm/irq.h>
50#include <asm/mmu_context.h> 50#include <asm/mmu_context.h>
51#include <asm/mach/irq.h> 51#include <asm/mach/irq.h>
@@ -958,6 +958,31 @@ void ecard_release_resources(struct expansion_card *ec)
958} 958}
959EXPORT_SYMBOL(ecard_release_resources); 959EXPORT_SYMBOL(ecard_release_resources);
960 960
961void ecard_setirq(struct expansion_card *ec, const struct expansion_card_ops *ops, void *irq_data)
962{
963 ec->irq_data = irq_data;
964 barrier();
965 ec->ops = ops;
966}
967EXPORT_SYMBOL(ecard_setirq);
968
969void __iomem *ecardm_iomap(struct expansion_card *ec, unsigned int res,
970 unsigned long offset, unsigned long maxsize)
971{
972 unsigned long start = ecard_resource_start(ec, res);
973 unsigned long end = ecard_resource_end(ec, res);
974
975 if (offset > (end - start))
976 return NULL;
977
978 start += offset;
979 if (maxsize && end - start > maxsize)
980 end = start + maxsize;
981
982 return devm_ioremap(&ec->dev, start, end - start);
983}
984EXPORT_SYMBOL(ecardm_iomap);
985
961/* 986/*
962 * Probe for an expansion card. 987 * Probe for an expansion card.
963 * 988 *
@@ -1133,6 +1158,14 @@ static int ecard_drv_remove(struct device *dev)
1133 drv->remove(ec); 1158 drv->remove(ec);
1134 ecard_release(ec); 1159 ecard_release(ec);
1135 1160
1161 /*
1162 * Restore the default operations. We ensure that the
1163 * ops are set before we change the data.
1164 */
1165 ec->ops = &ecard_default_ops;
1166 barrier();
1167 ec->irq_data = NULL;
1168
1136 return 0; 1169 return 0;
1137} 1170}
1138 1171
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c
index d0540e4eaf5b..1533d3ecd7a0 100644
--- a/arch/arm/kernel/time.c
+++ b/arch/arm/kernel/time.c
@@ -512,7 +512,7 @@ void __init time_init(void)
512 512
513#ifdef CONFIG_NO_IDLE_HZ 513#ifdef CONFIG_NO_IDLE_HZ
514 if (system_timer->dyn_tick) 514 if (system_timer->dyn_tick)
515 system_timer->dyn_tick->lock = SPIN_LOCK_UNLOCKED; 515 spin_lock_init(&system_timer->dyn_tick->lock);
516#endif 516#endif
517} 517}
518 518
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index 018d637f87fc..a31157f1655a 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -17,6 +17,9 @@ config ARCH_AT91SAM9261
17config ARCH_AT91SAM9263 17config ARCH_AT91SAM9263
18 bool "AT91SAM9263" 18 bool "AT91SAM9263"
19 19
20config ARCH_AT91SAM9RL
21 bool "AT91SAM9RL"
22
20endchoice 23endchoice
21 24
22# ---------------------------------------------------------- 25# ----------------------------------------------------------
@@ -152,6 +155,20 @@ endif
152 155
153# ---------------------------------------------------------- 156# ----------------------------------------------------------
154 157
158if ARCH_AT91SAM9RL
159
160comment "AT91SAM9RL Board Type"
161
162config MACH_AT91SAM9RLEK
163 bool "Atmel AT91SAM9RL-EK Evaluation Kit"
164 depends on ARCH_AT91SAM9RL
165 help
166 Select this if you are using Atmel's AT91SAM9RL-EK Evaluation Kit.
167
168endif
169
170# ----------------------------------------------------------
171
155comment "AT91 Board Options" 172comment "AT91 Board Options"
156 173
157config MTD_AT91_DATAFLASH_CARD 174config MTD_AT91_DATAFLASH_CARD
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
index cd1bc541f28e..a4d80eb056ee 100644
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
@@ -14,6 +14,7 @@ obj-$(CONFIG_ARCH_AT91RM9200) += at91rm9200.o at91rm9200_time.o at91rm9200_devic
14obj-$(CONFIG_ARCH_AT91SAM9260) += at91sam9260.o at91sam926x_time.o at91sam9260_devices.o 14obj-$(CONFIG_ARCH_AT91SAM9260) += at91sam9260.o at91sam926x_time.o at91sam9260_devices.o
15obj-$(CONFIG_ARCH_AT91SAM9261) += at91sam9261.o at91sam926x_time.o at91sam9261_devices.o 15obj-$(CONFIG_ARCH_AT91SAM9261) += at91sam9261.o at91sam926x_time.o at91sam9261_devices.o
16obj-$(CONFIG_ARCH_AT91SAM9263) += at91sam9263.o at91sam926x_time.o at91sam9263_devices.o 16obj-$(CONFIG_ARCH_AT91SAM9263) += at91sam9263.o at91sam926x_time.o at91sam9263_devices.o
17obj-$(CONFIG_ARCH_AT91SAM9RL) += at91sam9rl.o at91sam926x_time.o at91sam9rl_devices.o
17 18
18# AT91RM9200 board-specific support 19# AT91RM9200 board-specific support
19obj-$(CONFIG_MACH_ONEARM) += board-1arm.o 20obj-$(CONFIG_MACH_ONEARM) += board-1arm.o
@@ -36,6 +37,9 @@ obj-$(CONFIG_MACH_AT91SAM9261EK) += board-sam9261ek.o
36# AT91SAM9263 board-specific support 37# AT91SAM9263 board-specific support
37obj-$(CONFIG_MACH_AT91SAM9263EK) += board-sam9263ek.o 38obj-$(CONFIG_MACH_AT91SAM9263EK) += board-sam9263ek.o
38 39
40# AT91SAM9RL board-specific support
41obj-$(CONFIG_MACH_AT91SAM9RLEK) += board-sam9rlek.o
42
39# LEDs support 43# LEDs support
40led-$(CONFIG_ARCH_AT91RM9200DK) += leds.o 44led-$(CONFIG_ARCH_AT91RM9200DK) += leds.o
41led-$(CONFIG_MACH_AT91RM9200EK) += leds.o 45led-$(CONFIG_MACH_AT91RM9200EK) += leds.o
diff --git a/arch/arm/mach-at91/at91rm9200_devices.c b/arch/arm/mach-at91/at91rm9200_devices.c
index 2624a4f22d61..70599bcf451c 100644
--- a/arch/arm/mach-at91/at91rm9200_devices.c
+++ b/arch/arm/mach-at91/at91rm9200_devices.c
@@ -22,9 +22,6 @@
22 22
23#include "generic.h" 23#include "generic.h"
24 24
25#define SZ_512 0x00000200
26#define SZ_256 0x00000100
27#define SZ_16 0x00000010
28 25
29/* -------------------------------------------------------------------- 26/* --------------------------------------------------------------------
30 * USB Host 27 * USB Host
diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c
index 40586e22cd38..ffd3154c1e54 100644
--- a/arch/arm/mach-at91/at91sam9260_devices.c
+++ b/arch/arm/mach-at91/at91sam9260_devices.c
@@ -22,9 +22,6 @@
22 22
23#include "generic.h" 23#include "generic.h"
24 24
25#define SZ_512 0x00000200
26#define SZ_256 0x00000100
27#define SZ_16 0x00000010
28 25
29/* -------------------------------------------------------------------- 26/* --------------------------------------------------------------------
30 * USB Host 27 * USB Host
diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c
index 8e781997716a..9db58da04754 100644
--- a/arch/arm/mach-at91/at91sam9261_devices.c
+++ b/arch/arm/mach-at91/at91sam9261_devices.c
@@ -23,9 +23,6 @@
23 23
24#include "generic.h" 24#include "generic.h"
25 25
26#define SZ_512 0x00000200
27#define SZ_256 0x00000100
28#define SZ_16 0x00000010
29 26
30/* -------------------------------------------------------------------- 27/* --------------------------------------------------------------------
31 * USB Host 28 * USB Host
diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c
index 2b2e18a67128..635695787f91 100644
--- a/arch/arm/mach-at91/at91sam9263_devices.c
+++ b/arch/arm/mach-at91/at91sam9263_devices.c
@@ -22,9 +22,6 @@
22 22
23#include "generic.h" 23#include "generic.h"
24 24
25#define SZ_512 0x00000200
26#define SZ_256 0x00000100
27#define SZ_16 0x00000010
28 25
29/* -------------------------------------------------------------------- 26/* --------------------------------------------------------------------
30 * USB Host 27 * USB Host
diff --git a/arch/arm/mach-at91/at91sam9rl.c b/arch/arm/mach-at91/at91sam9rl.c
new file mode 100644
index 000000000000..4813a35f6cf5
--- /dev/null
+++ b/arch/arm/mach-at91/at91sam9rl.c
@@ -0,0 +1,341 @@
1/*
2 * arch/arm/mach-at91/at91sam9rl.c
3 *
4 * Copyright (C) 2005 SAN People
5 * Copyright (C) 2007 Atmel Corporation
6 *
7 * This file is subject to the terms and conditions of the GNU General Public
8 * License. See the file COPYING in the main directory of this archive for
9 * more details.
10 */
11
12#include <linux/module.h>
13
14#include <asm/mach/arch.h>
15#include <asm/mach/map.h>
16#include <asm/arch/cpu.h>
17#include <asm/arch/at91sam9rl.h>
18#include <asm/arch/at91_pmc.h>
19#include <asm/arch/at91_rstc.h>
20
21#include "generic.h"
22#include "clock.h"
23
24static struct map_desc at91sam9rl_io_desc[] __initdata = {
25 {
26 .virtual = AT91_VA_BASE_SYS,
27 .pfn = __phys_to_pfn(AT91_BASE_SYS),
28 .length = SZ_16K,
29 .type = MT_DEVICE,
30 },
31};
32
33static struct map_desc at91sam9rl_sram_desc[] __initdata = {
34 {
35 .pfn = __phys_to_pfn(AT91SAM9RL_SRAM_BASE),
36 .type = MT_DEVICE,
37 }
38};
39
40/* --------------------------------------------------------------------
41 * Clocks
42 * -------------------------------------------------------------------- */
43
44/*
45 * The peripheral clocks.
46 */
47static struct clk pioA_clk = {
48 .name = "pioA_clk",
49 .pmc_mask = 1 << AT91SAM9RL_ID_PIOA,
50 .type = CLK_TYPE_PERIPHERAL,
51};
52static struct clk pioB_clk = {
53 .name = "pioB_clk",
54 .pmc_mask = 1 << AT91SAM9RL_ID_PIOB,
55 .type = CLK_TYPE_PERIPHERAL,
56};
57static struct clk pioC_clk = {
58 .name = "pioC_clk",
59 .pmc_mask = 1 << AT91SAM9RL_ID_PIOC,
60 .type = CLK_TYPE_PERIPHERAL,
61};
62static struct clk pioD_clk = {
63 .name = "pioD_clk",
64 .pmc_mask = 1 << AT91SAM9RL_ID_PIOD,
65 .type = CLK_TYPE_PERIPHERAL,
66};
67static struct clk usart0_clk = {
68 .name = "usart0_clk",
69 .pmc_mask = 1 << AT91SAM9RL_ID_US0,
70 .type = CLK_TYPE_PERIPHERAL,
71};
72static struct clk usart1_clk = {
73 .name = "usart1_clk",
74 .pmc_mask = 1 << AT91SAM9RL_ID_US1,
75 .type = CLK_TYPE_PERIPHERAL,
76};
77static struct clk usart2_clk = {
78 .name = "usart2_clk",
79 .pmc_mask = 1 << AT91SAM9RL_ID_US2,
80 .type = CLK_TYPE_PERIPHERAL,
81};
82static struct clk usart3_clk = {
83 .name = "usart3_clk",
84 .pmc_mask = 1 << AT91SAM9RL_ID_US3,
85 .type = CLK_TYPE_PERIPHERAL,
86};
87static struct clk mmc_clk = {
88 .name = "mci_clk",
89 .pmc_mask = 1 << AT91SAM9RL_ID_MCI,
90 .type = CLK_TYPE_PERIPHERAL,
91};
92static struct clk twi0_clk = {
93 .name = "twi0_clk",
94 .pmc_mask = 1 << AT91SAM9RL_ID_TWI0,
95 .type = CLK_TYPE_PERIPHERAL,
96};
97static struct clk twi1_clk = {
98 .name = "twi1_clk",
99 .pmc_mask = 1 << AT91SAM9RL_ID_TWI1,
100 .type = CLK_TYPE_PERIPHERAL,
101};
102static struct clk spi_clk = {
103 .name = "spi_clk",
104 .pmc_mask = 1 << AT91SAM9RL_ID_SPI,
105 .type = CLK_TYPE_PERIPHERAL,
106};
107static struct clk ssc0_clk = {
108 .name = "ssc0_clk",
109 .pmc_mask = 1 << AT91SAM9RL_ID_SSC0,
110 .type = CLK_TYPE_PERIPHERAL,
111};
112static struct clk ssc1_clk = {
113 .name = "ssc1_clk",
114 .pmc_mask = 1 << AT91SAM9RL_ID_SSC1,
115 .type = CLK_TYPE_PERIPHERAL,
116};
117static struct clk tc0_clk = {
118 .name = "tc0_clk",
119 .pmc_mask = 1 << AT91SAM9RL_ID_TC0,
120 .type = CLK_TYPE_PERIPHERAL,
121};
122static struct clk tc1_clk = {
123 .name = "tc1_clk",
124 .pmc_mask = 1 << AT91SAM9RL_ID_TC1,
125 .type = CLK_TYPE_PERIPHERAL,
126};
127static struct clk tc2_clk = {
128 .name = "tc2_clk",
129 .pmc_mask = 1 << AT91SAM9RL_ID_TC2,
130 .type = CLK_TYPE_PERIPHERAL,
131};
132static struct clk pwmc_clk = {
133 .name = "pwmc_clk",
134 .pmc_mask = 1 << AT91SAM9RL_ID_PWMC,
135 .type = CLK_TYPE_PERIPHERAL,
136};
137static struct clk tsc_clk = {
138 .name = "tsc_clk",
139 .pmc_mask = 1 << AT91SAM9RL_ID_TSC,
140 .type = CLK_TYPE_PERIPHERAL,
141};
142static struct clk dma_clk = {
143 .name = "dma_clk",
144 .pmc_mask = 1 << AT91SAM9RL_ID_DMA,
145 .type = CLK_TYPE_PERIPHERAL,
146};
147static struct clk udphs_clk = {
148 .name = "udphs_clk",
149 .pmc_mask = 1 << AT91SAM9RL_ID_UDPHS,
150 .type = CLK_TYPE_PERIPHERAL,
151};
152static struct clk lcdc_clk = {
153 .name = "lcdc_clk",
154 .pmc_mask = 1 << AT91SAM9RL_ID_LCDC,
155 .type = CLK_TYPE_PERIPHERAL,
156};
157static struct clk ac97_clk = {
158 .name = "ac97_clk",
159 .pmc_mask = 1 << AT91SAM9RL_ID_AC97C,
160 .type = CLK_TYPE_PERIPHERAL,
161};
162
163static struct clk *periph_clocks[] __initdata = {
164 &pioA_clk,
165 &pioB_clk,
166 &pioC_clk,
167 &pioD_clk,
168 &usart0_clk,
169 &usart1_clk,
170 &usart2_clk,
171 &usart3_clk,
172 &mmc_clk,
173 &twi0_clk,
174 &twi1_clk,
175 &spi_clk,
176 &ssc0_clk,
177 &ssc1_clk,
178 &tc0_clk,
179 &tc1_clk,
180 &tc2_clk,
181 &pwmc_clk,
182 &tsc_clk,
183 &dma_clk,
184 &udphs_clk,
185 &lcdc_clk,
186 &ac97_clk,
187 // irq0
188};
189
190/*
191 * The two programmable clocks.
192 * You must configure pin multiplexing to bring these signals out.
193 */
194static struct clk pck0 = {
195 .name = "pck0",
196 .pmc_mask = AT91_PMC_PCK0,
197 .type = CLK_TYPE_PROGRAMMABLE,
198 .id = 0,
199};
200static struct clk pck1 = {
201 .name = "pck1",
202 .pmc_mask = AT91_PMC_PCK1,
203 .type = CLK_TYPE_PROGRAMMABLE,
204 .id = 1,
205};
206
207static void __init at91sam9rl_register_clocks(void)
208{
209 int i;
210
211 for (i = 0; i < ARRAY_SIZE(periph_clocks); i++)
212 clk_register(periph_clocks[i]);
213
214 clk_register(&pck0);
215 clk_register(&pck1);
216}
217
218/* --------------------------------------------------------------------
219 * GPIO
220 * -------------------------------------------------------------------- */
221
222static struct at91_gpio_bank at91sam9rl_gpio[] = {
223 {
224 .id = AT91SAM9RL_ID_PIOA,
225 .offset = AT91_PIOA,
226 .clock = &pioA_clk,
227 }, {
228 .id = AT91SAM9RL_ID_PIOB,
229 .offset = AT91_PIOB,
230 .clock = &pioB_clk,
231 }, {
232 .id = AT91SAM9RL_ID_PIOC,
233 .offset = AT91_PIOC,
234 .clock = &pioC_clk,
235 }, {
236 .id = AT91SAM9RL_ID_PIOD,
237 .offset = AT91_PIOD,
238 .clock = &pioD_clk,
239 }
240};
241
242static void at91sam9rl_reset(void)
243{
244 at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
245}
246
247
248/* --------------------------------------------------------------------
249 * AT91SAM9RL processor initialization
250 * -------------------------------------------------------------------- */
251
252void __init at91sam9rl_initialize(unsigned long main_clock)
253{
254 unsigned long cidr, sram_size;
255
256 /* Map peripherals */
257 iotable_init(at91sam9rl_io_desc, ARRAY_SIZE(at91sam9rl_io_desc));
258
259 cidr = at91_sys_read(AT91_DBGU_CIDR);
260
261 switch (cidr & AT91_CIDR_SRAMSIZ) {
262 case AT91_CIDR_SRAMSIZ_32K:
263 sram_size = 2 * SZ_16K;
264 break;
265 case AT91_CIDR_SRAMSIZ_16K:
266 default:
267 sram_size = SZ_16K;
268 }
269
270 at91sam9rl_sram_desc->virtual = AT91_IO_VIRT_BASE - sram_size;
271 at91sam9rl_sram_desc->length = sram_size;
272
273 /* Map SRAM */
274 iotable_init(at91sam9rl_sram_desc, ARRAY_SIZE(at91sam9rl_sram_desc));
275
276 at91_arch_reset = at91sam9rl_reset;
277 at91_extern_irq = (1 << AT91SAM9RL_ID_IRQ0);
278
279 /* Init clock subsystem */
280 at91_clock_init(main_clock);
281
282 /* Register the processor-specific clocks */
283 at91sam9rl_register_clocks();
284
285 /* Register GPIO subsystem */
286 at91_gpio_init(at91sam9rl_gpio, 4);
287}
288
289/* --------------------------------------------------------------------
290 * Interrupt initialization
291 * -------------------------------------------------------------------- */
292
293/*
294 * The default interrupt priority levels (0 = lowest, 7 = highest).
295 */
296static unsigned int at91sam9rl_default_irq_priority[NR_AIC_IRQS] __initdata = {
297 7, /* Advanced Interrupt Controller */
298 7, /* System Peripherals */
299 1, /* Parallel IO Controller A */
300 1, /* Parallel IO Controller B */
301 1, /* Parallel IO Controller C */
302 1, /* Parallel IO Controller D */
303 5, /* USART 0 */
304 5, /* USART 1 */
305 5, /* USART 2 */
306 5, /* USART 3 */
307 0, /* Multimedia Card Interface */
308 6, /* Two-Wire Interface 0 */
309 6, /* Two-Wire Interface 1 */
310 5, /* Serial Peripheral Interface */
311 4, /* Serial Synchronous Controller 0 */
312 4, /* Serial Synchronous Controller 1 */
313 0, /* Timer Counter 0 */
314 0, /* Timer Counter 1 */
315 0, /* Timer Counter 2 */
316 0,
317 0, /* Touch Screen Controller */
318 0, /* DMA Controller */
319 2, /* USB Device High speed port */
320 2, /* LCD Controller */
321 6, /* AC97 Controller */
322 0,
323 0,
324 0,
325 0,
326 0,
327 0,
328 0, /* Advanced Interrupt Controller */
329};
330
331void __init at91sam9rl_init_interrupts(unsigned int priority[NR_AIC_IRQS])
332{
333 if (!priority)
334 priority = at91sam9rl_default_irq_priority;
335
336 /* Initialize the AIC interrupt controller */
337 at91_aic_init(priority);
338
339 /* Enable GPIO interrupts */
340 at91_gpio_irq_setup();
341}
diff --git a/arch/arm/mach-at91/at91sam9rl_devices.c b/arch/arm/mach-at91/at91sam9rl_devices.c
new file mode 100644
index 000000000000..cd7532bcd4e5
--- /dev/null
+++ b/arch/arm/mach-at91/at91sam9rl_devices.c
@@ -0,0 +1,630 @@
1/*
2 * Copyright (C) 2007 Atmel Corporation
3 *
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file COPYING in the main directory of this archive for
6 * more details.
7 */
8
9#include <asm/mach/arch.h>
10#include <asm/mach/map.h>
11
12#include <linux/platform_device.h>
13#include <linux/fb.h>
14
15#include <video/atmel_lcdc.h>
16
17#include <asm/arch/board.h>
18#include <asm/arch/gpio.h>
19#include <asm/arch/at91sam9rl.h>
20#include <asm/arch/at91sam9rl_matrix.h>
21#include <asm/arch/at91sam926x_mc.h>
22
23#include "generic.h"
24
25
26/* --------------------------------------------------------------------
27 * MMC / SD
28 * -------------------------------------------------------------------- */
29
30#if defined(CONFIG_MMC_AT91) || defined(CONFIG_MMC_AT91_MODULE)
31static u64 mmc_dmamask = 0xffffffffUL;
32static struct at91_mmc_data mmc_data;
33
34static struct resource mmc_resources[] = {
35 [0] = {
36 .start = AT91SAM9RL_BASE_MCI,
37 .end = AT91SAM9RL_BASE_MCI + SZ_16K - 1,
38 .flags = IORESOURCE_MEM,
39 },
40 [1] = {
41 .start = AT91SAM9RL_ID_MCI,
42 .end = AT91SAM9RL_ID_MCI,
43 .flags = IORESOURCE_IRQ,
44 },
45};
46
47static struct platform_device at91sam9rl_mmc_device = {
48 .name = "at91_mci",
49 .id = -1,
50 .dev = {
51 .dma_mask = &mmc_dmamask,
52 .coherent_dma_mask = 0xffffffff,
53 .platform_data = &mmc_data,
54 },
55 .resource = mmc_resources,
56 .num_resources = ARRAY_SIZE(mmc_resources),
57};
58
59void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data)
60{
61 if (!data)
62 return;
63
64 /* input/irq */
65 if (data->det_pin) {
66 at91_set_gpio_input(data->det_pin, 1);
67 at91_set_deglitch(data->det_pin, 1);
68 }
69 if (data->wp_pin)
70 at91_set_gpio_input(data->wp_pin, 1);
71 if (data->vcc_pin)
72 at91_set_gpio_output(data->vcc_pin, 0);
73
74 /* CLK */
75 at91_set_A_periph(AT91_PIN_PA2, 0);
76
77 /* CMD */
78 at91_set_A_periph(AT91_PIN_PA1, 1);
79
80 /* DAT0, maybe DAT1..DAT3 */
81 at91_set_A_periph(AT91_PIN_PA0, 1);
82 if (data->wire4) {
83 at91_set_A_periph(AT91_PIN_PA3, 1);
84 at91_set_A_periph(AT91_PIN_PA4, 1);
85 at91_set_A_periph(AT91_PIN_PA5, 1);
86 }
87
88 mmc_data = *data;
89 platform_device_register(&at91sam9rl_mmc_device);
90}
91#else
92void __init at91_add_device_mmc(short mmc_id, struct at91_mmc_data *data) {}
93#endif
94
95
96/* --------------------------------------------------------------------
97 * NAND / SmartMedia
98 * -------------------------------------------------------------------- */
99
100#if defined(CONFIG_MTD_NAND_AT91) || defined(CONFIG_MTD_NAND_AT91_MODULE)
101static struct at91_nand_data nand_data;
102
103#define NAND_BASE AT91_CHIPSELECT_3
104
105static struct resource nand_resources[] = {
106 {
107 .start = NAND_BASE,
108 .end = NAND_BASE + SZ_256M - 1,
109 .flags = IORESOURCE_MEM,
110 }
111};
112
113static struct platform_device at91_nand_device = {
114 .name = "at91_nand",
115 .id = -1,
116 .dev = {
117 .platform_data = &nand_data,
118 },
119 .resource = nand_resources,
120 .num_resources = ARRAY_SIZE(nand_resources),
121};
122
123void __init at91_add_device_nand(struct at91_nand_data *data)
124{
125 unsigned long csa;
126
127 if (!data)
128 return;
129
130 csa = at91_sys_read(AT91_MATRIX_EBICSA);
131 at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_CS3A_SMC_SMARTMEDIA);
132
133 /* set the bus interface characteristics */
134 at91_sys_write(AT91_SMC_SETUP(3), AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0)
135 | AT91_SMC_NRDSETUP_(0) | AT91_SMC_NCS_RDSETUP_(0));
136
137 at91_sys_write(AT91_SMC_PULSE(3), AT91_SMC_NWEPULSE_(2) | AT91_SMC_NCS_WRPULSE_(5)
138 | AT91_SMC_NRDPULSE_(2) | AT91_SMC_NCS_RDPULSE_(5));
139
140 at91_sys_write(AT91_SMC_CYCLE(3), AT91_SMC_NWECYCLE_(7) | AT91_SMC_NRDCYCLE_(7));
141
142 at91_sys_write(AT91_SMC_MODE(3), AT91_SMC_DBW_8 | AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE | AT91_SMC_TDF_(1));
143
144 /* enable pin */
145 if (data->enable_pin)
146 at91_set_gpio_output(data->enable_pin, 1);
147
148 /* ready/busy pin */
149 if (data->rdy_pin)
150 at91_set_gpio_input(data->rdy_pin, 1);
151
152 /* card detect pin */
153 if (data->det_pin)
154 at91_set_gpio_input(data->det_pin, 1);
155
156 at91_set_A_periph(AT91_PIN_PB4, 0); /* NANDOE */
157 at91_set_A_periph(AT91_PIN_PB5, 0); /* NANDWE */
158
159 nand_data = *data;
160 platform_device_register(&at91_nand_device);
161}
162
163#else
164void __init at91_add_device_nand(struct at91_nand_data *data) {}
165#endif
166
167
168/* --------------------------------------------------------------------
169 * TWI (i2c)
170 * -------------------------------------------------------------------- */
171
172#if defined(CONFIG_I2C_AT91) || defined(CONFIG_I2C_AT91_MODULE)
173
174static struct resource twi_resources[] = {
175 [0] = {
176 .start = AT91SAM9RL_BASE_TWI0,
177 .end = AT91SAM9RL_BASE_TWI0 + SZ_16K - 1,
178 .flags = IORESOURCE_MEM,
179 },
180 [1] = {
181 .start = AT91SAM9RL_ID_TWI0,
182 .end = AT91SAM9RL_ID_TWI0,
183 .flags = IORESOURCE_IRQ,
184 },
185};
186
187static struct platform_device at91sam9rl_twi_device = {
188 .name = "at91_i2c",
189 .id = -1,
190 .resource = twi_resources,
191 .num_resources = ARRAY_SIZE(twi_resources),
192};
193
194void __init at91_add_device_i2c(void)
195{
196 /* pins used for TWI interface */
197 at91_set_A_periph(AT91_PIN_PA23, 0); /* TWD */
198 at91_set_multi_drive(AT91_PIN_PA23, 1);
199
200 at91_set_A_periph(AT91_PIN_PA24, 0); /* TWCK */
201 at91_set_multi_drive(AT91_PIN_PA24, 1);
202
203 platform_device_register(&at91sam9rl_twi_device);
204}
205#else
206void __init at91_add_device_i2c(void) {}
207#endif
208
209
210/* --------------------------------------------------------------------
211 * SPI
212 * -------------------------------------------------------------------- */
213
214#if defined(CONFIG_SPI_ATMEL) || defined(CONFIG_SPI_ATMEL_MODULE)
215static u64 spi_dmamask = 0xffffffffUL;
216
217static struct resource spi_resources[] = {
218 [0] = {
219 .start = AT91SAM9RL_BASE_SPI,
220 .end = AT91SAM9RL_BASE_SPI + SZ_16K - 1,
221 .flags = IORESOURCE_MEM,
222 },
223 [1] = {
224 .start = AT91SAM9RL_ID_SPI,
225 .end = AT91SAM9RL_ID_SPI,
226 .flags = IORESOURCE_IRQ,
227 },
228};
229
230static struct platform_device at91sam9rl_spi_device = {
231 .name = "atmel_spi",
232 .id = 0,
233 .dev = {
234 .dma_mask = &spi_dmamask,
235 .coherent_dma_mask = 0xffffffff,
236 },
237 .resource = spi_resources,
238 .num_resources = ARRAY_SIZE(spi_resources),
239};
240
241static const unsigned spi_standard_cs[4] = { AT91_PIN_PA28, AT91_PIN_PB7, AT91_PIN_PD8, AT91_PIN_PD9 };
242
243
244void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
245{
246 int i;
247 unsigned long cs_pin;
248
249 at91_set_A_periph(AT91_PIN_PA25, 0); /* MISO */
250 at91_set_A_periph(AT91_PIN_PA26, 0); /* MOSI */
251 at91_set_A_periph(AT91_PIN_PA27, 0); /* SPCK */
252
253 /* Enable SPI chip-selects */
254 for (i = 0; i < nr_devices; i++) {
255 if (devices[i].controller_data)
256 cs_pin = (unsigned long) devices[i].controller_data;
257 else
258 cs_pin = spi_standard_cs[devices[i].chip_select];
259
260 /* enable chip-select pin */
261 at91_set_gpio_output(cs_pin, 1);
262
263 /* pass chip-select pin to driver */
264 devices[i].controller_data = (void *) cs_pin;
265 }
266
267 spi_register_board_info(devices, nr_devices);
268 platform_device_register(&at91sam9rl_spi_device);
269}
270#else
271void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices) {}
272#endif
273
274
275/* --------------------------------------------------------------------
276 * LCD Controller
277 * -------------------------------------------------------------------- */
278
279#if defined(CONFIG_FB_ATMEL) || defined(CONFIG_FB_ATMEL_MODULE)
280static u64 lcdc_dmamask = 0xffffffffUL;
281static struct atmel_lcdfb_info lcdc_data;
282
283static struct resource lcdc_resources[] = {
284 [0] = {
285 .start = AT91SAM9RL_LCDC_BASE,
286 .end = AT91SAM9RL_LCDC_BASE + SZ_4K - 1,
287 .flags = IORESOURCE_MEM,
288 },
289 [1] = {
290 .start = AT91SAM9RL_ID_LCDC,
291 .end = AT91SAM9RL_ID_LCDC,
292 .flags = IORESOURCE_IRQ,
293 },
294#if defined(CONFIG_FB_INTSRAM)
295 [2] = {
296 .start = AT91SAM9RL_SRAM_BASE,
297 .end = AT91SAM9RL_SRAM_BASE + AT91SAM9RL_SRAM_SIZE - 1,
298 .flags = IORESOURCE_MEM,
299 },
300#endif
301};
302
303static struct platform_device at91_lcdc_device = {
304 .name = "atmel_lcdfb",
305 .id = 0,
306 .dev = {
307 .dma_mask = &lcdc_dmamask,
308 .coherent_dma_mask = 0xffffffff,
309 .platform_data = &lcdc_data,
310 },
311 .resource = lcdc_resources,
312 .num_resources = ARRAY_SIZE(lcdc_resources),
313};
314
315void __init at91_add_device_lcdc(struct atmel_lcdfb_info *data)
316{
317 if (!data) {
318 return;
319 }
320
321 at91_set_B_periph(AT91_PIN_PC1, 0); /* LCDPWR */
322 at91_set_A_periph(AT91_PIN_PC5, 0); /* LCDHSYNC */
323 at91_set_A_periph(AT91_PIN_PC6, 0); /* LCDDOTCK */
324 at91_set_A_periph(AT91_PIN_PC7, 0); /* LCDDEN */
325 at91_set_A_periph(AT91_PIN_PC3, 0); /* LCDCC */
326 at91_set_B_periph(AT91_PIN_PC9, 0); /* LCDD3 */
327 at91_set_B_periph(AT91_PIN_PC10, 0); /* LCDD4 */
328 at91_set_B_periph(AT91_PIN_PC11, 0); /* LCDD5 */
329 at91_set_B_periph(AT91_PIN_PC12, 0); /* LCDD6 */
330 at91_set_B_periph(AT91_PIN_PC13, 0); /* LCDD7 */
331 at91_set_B_periph(AT91_PIN_PC15, 0); /* LCDD11 */
332 at91_set_B_periph(AT91_PIN_PC16, 0); /* LCDD12 */
333 at91_set_B_periph(AT91_PIN_PC17, 0); /* LCDD13 */
334 at91_set_B_periph(AT91_PIN_PC18, 0); /* LCDD14 */
335 at91_set_B_periph(AT91_PIN_PC19, 0); /* LCDD15 */
336 at91_set_B_periph(AT91_PIN_PC20, 0); /* LCDD18 */
337 at91_set_B_periph(AT91_PIN_PC21, 0); /* LCDD19 */
338 at91_set_B_periph(AT91_PIN_PC22, 0); /* LCDD20 */
339 at91_set_B_periph(AT91_PIN_PC23, 0); /* LCDD21 */
340 at91_set_B_periph(AT91_PIN_PC24, 0); /* LCDD22 */
341 at91_set_B_periph(AT91_PIN_PC25, 0); /* LCDD23 */
342
343 lcdc_data = *data;
344 platform_device_register(&at91_lcdc_device);
345}
346#else
347void __init at91_add_device_lcdc(struct atmel_lcdfb_info *data) {}
348#endif
349
350
351/* --------------------------------------------------------------------
352 * LEDs
353 * -------------------------------------------------------------------- */
354
355#if defined(CONFIG_LEDS)
356u8 at91_leds_cpu;
357u8 at91_leds_timer;
358
359void __init at91_init_leds(u8 cpu_led, u8 timer_led)
360{
361 /* Enable GPIO to access the LEDs */
362 at91_set_gpio_output(cpu_led, 1);
363 at91_set_gpio_output(timer_led, 1);
364
365 at91_leds_cpu = cpu_led;
366 at91_leds_timer = timer_led;
367}
368#else
369void __init at91_init_leds(u8 cpu_led, u8 timer_led) {}
370#endif
371
372
373/* --------------------------------------------------------------------
374 * UART
375 * -------------------------------------------------------------------- */
376
377#if defined(CONFIG_SERIAL_ATMEL)
378static struct resource dbgu_resources[] = {
379 [0] = {
380 .start = AT91_VA_BASE_SYS + AT91_DBGU,
381 .end = AT91_VA_BASE_SYS + AT91_DBGU + SZ_512 - 1,
382 .flags = IORESOURCE_MEM,
383 },
384 [1] = {
385 .start = AT91_ID_SYS,
386 .end = AT91_ID_SYS,
387 .flags = IORESOURCE_IRQ,
388 },
389};
390
391static struct atmel_uart_data dbgu_data = {
392 .use_dma_tx = 0,
393 .use_dma_rx = 0, /* DBGU not capable of receive DMA */
394 .regs = (void __iomem *)(AT91_VA_BASE_SYS + AT91_DBGU),
395};
396
397static struct platform_device at91sam9rl_dbgu_device = {
398 .name = "atmel_usart",
399 .id = 0,
400 .dev = {
401 .platform_data = &dbgu_data,
402 .coherent_dma_mask = 0xffffffff,
403 },
404 .resource = dbgu_resources,
405 .num_resources = ARRAY_SIZE(dbgu_resources),
406};
407
408static inline void configure_dbgu_pins(void)
409{
410 at91_set_A_periph(AT91_PIN_PA21, 0); /* DRXD */
411 at91_set_A_periph(AT91_PIN_PA22, 1); /* DTXD */
412}
413
414static struct resource uart0_resources[] = {
415 [0] = {
416 .start = AT91SAM9RL_BASE_US0,
417 .end = AT91SAM9RL_BASE_US0 + SZ_16K - 1,
418 .flags = IORESOURCE_MEM,
419 },
420 [1] = {
421 .start = AT91SAM9RL_ID_US0,
422 .end = AT91SAM9RL_ID_US0,
423 .flags = IORESOURCE_IRQ,
424 },
425};
426
427static struct atmel_uart_data uart0_data = {
428 .use_dma_tx = 1,
429 .use_dma_rx = 1,
430};
431
432static struct platform_device at91sam9rl_uart0_device = {
433 .name = "atmel_usart",
434 .id = 1,
435 .dev = {
436 .platform_data = &uart0_data,
437 .coherent_dma_mask = 0xffffffff,
438 },
439 .resource = uart0_resources,
440 .num_resources = ARRAY_SIZE(uart0_resources),
441};
442
443static inline void configure_usart0_pins(void)
444{
445 at91_set_A_periph(AT91_PIN_PA6, 1); /* TXD0 */
446 at91_set_A_periph(AT91_PIN_PA7, 0); /* RXD0 */
447 at91_set_A_periph(AT91_PIN_PA9, 0); /* RTS0 */
448 at91_set_A_periph(AT91_PIN_PA10, 0); /* CTS0 */
449}
450
451static struct resource uart1_resources[] = {
452 [0] = {
453 .start = AT91SAM9RL_BASE_US1,
454 .end = AT91SAM9RL_BASE_US1 + SZ_16K - 1,
455 .flags = IORESOURCE_MEM,
456 },
457 [1] = {
458 .start = AT91SAM9RL_ID_US1,
459 .end = AT91SAM9RL_ID_US1,
460 .flags = IORESOURCE_IRQ,
461 },
462};
463
464static struct atmel_uart_data uart1_data = {
465 .use_dma_tx = 1,
466 .use_dma_rx = 1,
467};
468
469static struct platform_device at91sam9rl_uart1_device = {
470 .name = "atmel_usart",
471 .id = 2,
472 .dev = {
473 .platform_data = &uart1_data,
474 .coherent_dma_mask = 0xffffffff,
475 },
476 .resource = uart1_resources,
477 .num_resources = ARRAY_SIZE(uart1_resources),
478};
479
480static inline void configure_usart1_pins(void)
481{
482 at91_set_A_periph(AT91_PIN_PA11, 1); /* TXD1 */
483 at91_set_A_periph(AT91_PIN_PA12, 0); /* RXD1 */
484}
485
486static struct resource uart2_resources[] = {
487 [0] = {
488 .start = AT91SAM9RL_BASE_US2,
489 .end = AT91SAM9RL_BASE_US2 + SZ_16K - 1,
490 .flags = IORESOURCE_MEM,
491 },
492 [1] = {
493 .start = AT91SAM9RL_ID_US2,
494 .end = AT91SAM9RL_ID_US2,
495 .flags = IORESOURCE_IRQ,
496 },
497};
498
499static struct atmel_uart_data uart2_data = {
500 .use_dma_tx = 1,
501 .use_dma_rx = 1,
502};
503
504static struct platform_device at91sam9rl_uart2_device = {
505 .name = "atmel_usart",
506 .id = 3,
507 .dev = {
508 .platform_data = &uart2_data,
509 .coherent_dma_mask = 0xffffffff,
510 },
511 .resource = uart2_resources,
512 .num_resources = ARRAY_SIZE(uart2_resources),
513};
514
515static inline void configure_usart2_pins(void)
516{
517 at91_set_A_periph(AT91_PIN_PA13, 1); /* TXD2 */
518 at91_set_A_periph(AT91_PIN_PA14, 0); /* RXD2 */
519}
520
521static struct resource uart3_resources[] = {
522 [0] = {
523 .start = AT91SAM9RL_BASE_US3,
524 .end = AT91SAM9RL_BASE_US3 + SZ_16K - 1,
525 .flags = IORESOURCE_MEM,
526 },
527 [1] = {
528 .start = AT91SAM9RL_ID_US3,
529 .end = AT91SAM9RL_ID_US3,
530 .flags = IORESOURCE_IRQ,
531 },
532};
533
534static struct atmel_uart_data uart3_data = {
535 .use_dma_tx = 1,
536 .use_dma_rx = 1,
537};
538
539static struct platform_device at91sam9rl_uart3_device = {
540 .name = "atmel_usart",
541 .id = 4,
542 .dev = {
543 .platform_data = &uart3_data,
544 .coherent_dma_mask = 0xffffffff,
545 },
546 .resource = uart3_resources,
547 .num_resources = ARRAY_SIZE(uart3_resources),
548};
549
550static inline void configure_usart3_pins(void)
551{
552 at91_set_A_periph(AT91_PIN_PB0, 1); /* TXD3 */
553 at91_set_A_periph(AT91_PIN_PB1, 0); /* RXD3 */
554}
555
556struct platform_device *at91_uarts[ATMEL_MAX_UART]; /* the UARTs to use */
557struct platform_device *atmel_default_console_device; /* the serial console device */
558
559void __init at91_init_serial(struct at91_uart_config *config)
560{
561 int i;
562
563 /* Fill in list of supported UARTs */
564 for (i = 0; i < config->nr_tty; i++) {
565 switch (config->tty_map[i]) {
566 case 0:
567 configure_usart0_pins();
568 at91_uarts[i] = &at91sam9rl_uart0_device;
569 at91_clock_associate("usart0_clk", &at91sam9rl_uart0_device.dev, "usart");
570 break;
571 case 1:
572 configure_usart1_pins();
573 at91_uarts[i] = &at91sam9rl_uart1_device;
574 at91_clock_associate("usart1_clk", &at91sam9rl_uart1_device.dev, "usart");
575 break;
576 case 2:
577 configure_usart2_pins();
578 at91_uarts[i] = &at91sam9rl_uart2_device;
579 at91_clock_associate("usart2_clk", &at91sam9rl_uart2_device.dev, "usart");
580 break;
581 case 3:
582 configure_usart3_pins();
583 at91_uarts[i] = &at91sam9rl_uart3_device;
584 at91_clock_associate("usart3_clk", &at91sam9rl_uart3_device.dev, "usart");
585 break;
586 case 4:
587 configure_dbgu_pins();
588 at91_uarts[i] = &at91sam9rl_dbgu_device;
589 at91_clock_associate("mck", &at91sam9rl_dbgu_device.dev, "usart");
590 break;
591 default:
592 continue;
593 }
594 at91_uarts[i]->id = i; /* update ID number to mapped ID */
595 }
596
597 /* Set serial console device */
598 if (config->console_tty < ATMEL_MAX_UART)
599 atmel_default_console_device = at91_uarts[config->console_tty];
600 if (!atmel_default_console_device)
601 printk(KERN_INFO "AT91: No default serial console defined.\n");
602}
603
604void __init at91_add_device_serial(void)
605{
606 int i;
607
608 for (i = 0; i < ATMEL_MAX_UART; i++) {
609 if (at91_uarts[i])
610 platform_device_register(at91_uarts[i]);
611 }
612}
613#else
614void __init at91_init_serial(struct at91_uart_config *config) {}
615void __init at91_add_device_serial(void) {}
616#endif
617
618
619/* -------------------------------------------------------------------- */
620
621/*
622 * These devices are always present and don't need any board-specific
623 * setup.
624 */
625static int __init at91_add_standard_devices(void)
626{
627 return 0;
628}
629
630arch_initcall(at91_add_standard_devices);
diff --git a/arch/arm/mach-at91/board-sam9rlek.c b/arch/arm/mach-at91/board-sam9rlek.c
new file mode 100644
index 000000000000..30c79aca84d4
--- /dev/null
+++ b/arch/arm/mach-at91/board-sam9rlek.c
@@ -0,0 +1,204 @@
1/*
2 * Copyright (C) 2005 SAN People
3 * Copyright (C) 2007 Atmel Corporation
4 *
5 * This file is subject to the terms and conditions of the GNU General Public
6 * License. See the file COPYING in the main directory of this archive for
7 * more details.
8 */
9
10#include <linux/types.h>
11#include <linux/init.h>
12#include <linux/mm.h>
13#include <linux/module.h>
14#include <linux/platform_device.h>
15#include <linux/spi/spi.h>
16#include <linux/fb.h>
17#include <linux/clk.h>
18
19#include <video/atmel_lcdc.h>
20
21#include <asm/hardware.h>
22#include <asm/setup.h>
23#include <asm/mach-types.h>
24#include <asm/irq.h>
25
26#include <asm/mach/arch.h>
27#include <asm/mach/map.h>
28#include <asm/mach/irq.h>
29
30#include <asm/arch/board.h>
31#include <asm/arch/gpio.h>
32#include <asm/arch/at91sam926x_mc.h>
33
34#include "generic.h"
35
36
37/*
38 * Serial port configuration.
39 * 0 .. 3 = USART0 .. USART3
40 * 4 = DBGU
41 */
42static struct at91_uart_config __initdata ek_uart_config = {
43 .console_tty = 0, /* ttyS0 */
44 .nr_tty = 2,
45 .tty_map = { 4, 0, -1, -1, -1 } /* ttyS0, ..., ttyS4 */
46};
47
48static void __init ek_map_io(void)
49{
50 /* Initialize processor: 12.000 MHz crystal */
51 at91sam9rl_initialize(12000000);
52
53 /* Setup the serial ports and console */
54 at91_init_serial(&ek_uart_config);
55}
56
57static void __init ek_init_irq(void)
58{
59 at91sam9rl_init_interrupts(NULL);
60}
61
62
63/*
64 * MCI (SD/MMC)
65 */
66static struct at91_mmc_data __initdata ek_mmc_data = {
67 .wire4 = 1,
68 .det_pin = AT91_PIN_PA15,
69// .wp_pin = ... not connected
70// .vcc_pin = ... not connected
71};
72
73
74/*
75 * NAND flash
76 */
77static struct mtd_partition __initdata ek_nand_partition[] = {
78 {
79 .name = "Partition 1",
80 .offset = 0,
81 .size = 256 * 1024,
82 },
83 {
84 .name = "Partition 2",
85 .offset = 256 * 1024 ,
86 .size = MTDPART_SIZ_FULL,
87 },
88};
89
90static struct mtd_partition *nand_partitions(int size, int *num_partitions)
91{
92 *num_partitions = ARRAY_SIZE(ek_nand_partition);
93 return ek_nand_partition;
94}
95
96static struct at91_nand_data __initdata ek_nand_data = {
97 .ale = 21,
98 .cle = 22,
99// .det_pin = ... not connected
100 .rdy_pin = AT91_PIN_PD17,
101 .enable_pin = AT91_PIN_PB6,
102 .partition_info = nand_partitions,
103 .bus_width_16 = 0,
104};
105
106
107/*
108 * SPI devices
109 */
110static struct spi_board_info ek_spi_devices[] = {
111 { /* DataFlash chip */
112 .modalias = "mtd_dataflash",
113 .chip_select = 0,
114 .max_speed_hz = 15 * 1000 * 1000,
115 .bus_num = 0,
116 },
117};
118
119
120/*
121 * LCD Controller
122 */
123#if defined(CONFIG_FB_ATMEL) || defined(CONFIG_FB_ATMEL_MODULE)
124static struct fb_videomode at91_tft_vga_modes[] = {
125 {
126 .name = "TX09D50VM1CCA @ 60",
127 .refresh = 60,
128 .xres = 240, .yres = 320,
129 .pixclock = KHZ2PICOS(4965),
130
131 .left_margin = 1, .right_margin = 33,
132 .upper_margin = 1, .lower_margin = 0,
133 .hsync_len = 5, .vsync_len = 1,
134
135 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
136 .vmode = FB_VMODE_NONINTERLACED,
137 },
138};
139
140static struct fb_monspecs at91fb_default_monspecs = {
141 .manufacturer = "HIT",
142 .monitor = "TX09D50VM1CCA",
143
144 .modedb = at91_tft_vga_modes,
145 .modedb_len = ARRAY_SIZE(at91_tft_vga_modes),
146 .hfmin = 15000,
147 .hfmax = 64000,
148 .vfmin = 50,
149 .vfmax = 150,
150};
151
152#define AT91SAM9RL_DEFAULT_LCDCON2 (ATMEL_LCDC_MEMOR_LITTLE \
153 | ATMEL_LCDC_DISTYPE_TFT \
154 | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE)
155
156static void at91_lcdc_power_control(int on)
157{
158 if (on)
159 at91_set_gpio_value(AT91_PIN_PA30, 0); /* power up */
160 else
161 at91_set_gpio_value(AT91_PIN_PA30, 1); /* power down */
162}
163
164/* Driver datas */
165static struct atmel_lcdfb_info __initdata ek_lcdc_data = {
166 .default_bpp = 16,
167 .default_dmacon = ATMEL_LCDC_DMAEN,
168 .default_lcdcon2 = AT91SAM9RL_DEFAULT_LCDCON2,
169 .default_monspecs = &at91fb_default_monspecs,
170 .atmel_lcdfb_power_control = at91_lcdc_power_control,
171 .guard_time = 1,
172};
173
174#else
175static struct atmel_lcdfb_info __initdata ek_lcdc_data;
176#endif
177
178
179static void __init ek_board_init(void)
180{
181 /* Serial */
182 at91_add_device_serial();
183 /* I2C */
184 at91_add_device_i2c();
185 /* NAND */
186 at91_add_device_nand(&ek_nand_data);
187 /* SPI */
188 at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices));
189 /* MMC */
190 at91_add_device_mmc(0, &ek_mmc_data);
191 /* LCD Controller */
192 at91_add_device_lcdc(&ek_lcdc_data);
193}
194
195MACHINE_START(AT91SAM9RLEK, "Atmel AT91SAM9RL-EK")
196 /* Maintainer: Atmel */
197 .phys_io = AT91_BASE_SYS,
198 .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc,
199 .boot_params = AT91_SDRAM_BASE + 0x100,
200 .timer = &at91sam926x_timer,
201 .map_io = ek_map_io,
202 .init_irq = ek_init_irq,
203 .init_machine = ek_board_init,
204MACHINE_END
diff --git a/arch/arm/mach-at91/generic.h b/arch/arm/mach-at91/generic.h
index bda26221c522..68ed71a3e6c6 100644
--- a/arch/arm/mach-at91/generic.h
+++ b/arch/arm/mach-at91/generic.h
@@ -13,12 +13,14 @@ extern void __init at91rm9200_initialize(unsigned long main_clock, unsigned shor
13extern void __init at91sam9260_initialize(unsigned long main_clock); 13extern void __init at91sam9260_initialize(unsigned long main_clock);
14extern void __init at91sam9261_initialize(unsigned long main_clock); 14extern void __init at91sam9261_initialize(unsigned long main_clock);
15extern void __init at91sam9263_initialize(unsigned long main_clock); 15extern void __init at91sam9263_initialize(unsigned long main_clock);
16extern void __init at91sam9rl_initialize(unsigned long main_clock);
16 17
17 /* Interrupts */ 18 /* Interrupts */
18extern void __init at91rm9200_init_interrupts(unsigned int priority[]); 19extern void __init at91rm9200_init_interrupts(unsigned int priority[]);
19extern void __init at91sam9260_init_interrupts(unsigned int priority[]); 20extern void __init at91sam9260_init_interrupts(unsigned int priority[]);
20extern void __init at91sam9261_init_interrupts(unsigned int priority[]); 21extern void __init at91sam9261_init_interrupts(unsigned int priority[]);
21extern void __init at91sam9263_init_interrupts(unsigned int priority[]); 22extern void __init at91sam9263_init_interrupts(unsigned int priority[]);
23extern void __init at91sam9rl_init_interrupts(unsigned int priority[]);
22extern void __init at91_aic_init(unsigned int priority[]); 24extern void __init at91_aic_init(unsigned int priority[]);
23 25
24 /* Timer */ 26 /* Timer */
diff --git a/arch/arm/mach-davinci/Kconfig b/arch/arm/mach-davinci/Kconfig
new file mode 100644
index 000000000000..bac988e7a4c3
--- /dev/null
+++ b/arch/arm/mach-davinci/Kconfig
@@ -0,0 +1,23 @@
1if ARCH_DAVINCI
2
3menu "TI DaVinci Implementations"
4
5comment "DaVinci Core Type"
6
7config ARCH_DAVINCI644x
8 default y
9 bool "DaVinci 644x based system"
10
11comment "DaVinci Board Type"
12
13config MACH_DAVINCI_EVM
14 bool "TI DaVinci EVM"
15 default y
16 depends on ARCH_DAVINCI644x
17 help
18 Configure this option to specify the whether the board used
19 for development is a DaVinci EVM
20
21endmenu
22
23endif
diff --git a/arch/arm/mach-davinci/Makefile b/arch/arm/mach-davinci/Makefile
new file mode 100644
index 000000000000..a8f88cd29905
--- /dev/null
+++ b/arch/arm/mach-davinci/Makefile
@@ -0,0 +1,10 @@
1#
2# Makefile for the linux kernel.
3#
4#
5
6# Common objects
7obj-y := time.o irq.o serial.o io.o id.o psc.o
8
9# Board specific
10obj-$(CONFIG_MACH_DAVINCI_EVM) += board-evm.o
diff --git a/arch/arm/mach-davinci/Makefile.boot b/arch/arm/mach-davinci/Makefile.boot
new file mode 100644
index 000000000000..e1dd366f836b
--- /dev/null
+++ b/arch/arm/mach-davinci/Makefile.boot
@@ -0,0 +1,3 @@
1 zreladdr-y := 0x80008000
2params_phys-y := 0x80000100
3initrd_phys-y := 0x80800000
diff --git a/arch/arm/mach-davinci/board-evm.c b/arch/arm/mach-davinci/board-evm.c
new file mode 100644
index 000000000000..633c12e43044
--- /dev/null
+++ b/arch/arm/mach-davinci/board-evm.c
@@ -0,0 +1,131 @@
1/*
2 * TI DaVinci EVM board support
3 *
4 * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com>
5 *
6 * 2007 (c) MontaVista Software, Inc. This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied.
10 */
11#include <linux/kernel.h>
12#include <linux/module.h>
13#include <linux/init.h>
14#include <linux/dma-mapping.h>
15#include <linux/platform_device.h>
16#include <linux/mtd/mtd.h>
17#include <linux/mtd/partitions.h>
18#include <linux/mtd/physmap.h>
19
20#include <asm/setup.h>
21#include <asm/io.h>
22#include <asm/mach-types.h>
23#include <asm/hardware.h>
24
25#include <asm/mach/arch.h>
26#include <asm/mach/map.h>
27#include <asm/mach/flash.h>
28
29#include <asm/arch/common.h>
30
31/* other misc. init functions */
32void __init davinci_psc_init(void);
33void __init davinci_irq_init(void);
34void __init davinci_map_common_io(void);
35
36/* NOR Flash base address set to CS0 by default */
37#define NOR_FLASH_PHYS 0x02000000
38
39static struct mtd_partition davinci_evm_partitions[] = {
40 /* bootloader (U-Boot, etc) in first 4 sectors */
41 {
42 .name = "bootloader",
43 .offset = 0,
44 .size = 4 * SZ_64K,
45 .mask_flags = MTD_WRITEABLE, /* force read-only */
46 },
47 /* bootloader params in the next 1 sectors */
48 {
49 .name = "params",
50 .offset = MTDPART_OFS_APPEND,
51 .size = SZ_64K,
52 .mask_flags = 0,
53 },
54 /* kernel */
55 {
56 .name = "kernel",
57 .offset = MTDPART_OFS_APPEND,
58 .size = SZ_2M,
59 .mask_flags = 0
60 },
61 /* file system */
62 {
63 .name = "filesystem",
64 .offset = MTDPART_OFS_APPEND,
65 .size = MTDPART_SIZ_FULL,
66 .mask_flags = 0
67 }
68};
69
70static struct physmap_flash_data davinci_evm_flash_data = {
71 .width = 2,
72 .parts = davinci_evm_partitions,
73 .nr_parts = ARRAY_SIZE(davinci_evm_partitions),
74};
75
76/* NOTE: CFI probe will correctly detect flash part as 32M, but EMIF
77 * limits addresses to 16M, so using addresses past 16M will wrap */
78static struct resource davinci_evm_flash_resource = {
79 .start = NOR_FLASH_PHYS,
80 .end = NOR_FLASH_PHYS + SZ_16M - 1,
81 .flags = IORESOURCE_MEM,
82};
83
84static struct platform_device davinci_evm_flash_device = {
85 .name = "physmap-flash",
86 .id = 0,
87 .dev = {
88 .platform_data = &davinci_evm_flash_data,
89 },
90 .num_resources = 1,
91 .resource = &davinci_evm_flash_resource,
92};
93
94static struct platform_device *davinci_evm_devices[] __initdata = {
95 &davinci_evm_flash_device,
96};
97
98static void __init
99davinci_evm_map_io(void)
100{
101 davinci_map_common_io();
102}
103
104static __init void davinci_evm_init(void)
105{
106 davinci_psc_init();
107
108#if defined(CONFIG_BLK_DEV_DAVINCI) || defined(CONFIG_BLK_DEV_DAVINCI_MODULE)
109 printk(KERN_WARNING "WARNING: both IDE and NOR flash are enabled, "
110 "but share pins.\n\t Disable IDE for NOR support.\n");
111#endif
112
113 platform_add_devices(davinci_evm_devices,
114 ARRAY_SIZE(davinci_evm_devices));
115}
116
117static __init void davinci_evm_irq_init(void)
118{
119 davinci_irq_init();
120}
121
122MACHINE_START(DAVINCI_EVM, "DaVinci EVM")
123 /* Maintainer: MontaVista Software <source@mvista.com> */
124 .phys_io = IO_PHYS,
125 .io_pg_offst = (io_p2v(IO_PHYS) >> 18) & 0xfffc,
126 .boot_params = (DAVINCI_DDR_BASE + 0x100),
127 .map_io = davinci_evm_map_io,
128 .init_irq = davinci_evm_irq_init,
129 .timer = &davinci_timer,
130 .init_machine = davinci_evm_init,
131MACHINE_END
diff --git a/arch/arm/mach-davinci/id.c b/arch/arm/mach-davinci/id.c
new file mode 100644
index 000000000000..70608f76aed8
--- /dev/null
+++ b/arch/arm/mach-davinci/id.c
@@ -0,0 +1,94 @@
1/*
2 * Davinci CPU identification code
3 *
4 * Copyright (C) 2006 Komal Shah <komal_shah802003@yahoo.com>
5 *
6 * Derived from OMAP1 CPU identification code.
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 */
12
13#include <linux/module.h>
14#include <linux/kernel.h>
15#include <linux/init.h>
16
17#include <asm/io.h>
18
19#define JTAG_ID_BASE 0x01c40028
20
21struct davinci_id {
22 u8 variant; /* JTAG ID bits 31:28 */
23 u16 part_no; /* JTAG ID bits 27:12 */
24 u32 manufacturer; /* JTAG ID bits 11:1 */
25 u32 type; /* Cpu id bits [31:8], cpu class bits [7:0] */
26};
27
28/* Register values to detect the DaVinci version */
29static struct davinci_id davinci_ids[] __initdata = {
30 {
31 /* DM6446 */
32 .part_no = 0xb700,
33 .variant = 0x0,
34 .manufacturer = 0x017,
35 .type = 0x64460000,
36 },
37};
38
39/*
40 * Get Device Part No. from JTAG ID register
41 */
42static u16 __init davinci_get_part_no(void)
43{
44 u32 dev_id, part_no;
45
46 dev_id = davinci_readl(JTAG_ID_BASE);
47
48 part_no = ((dev_id >> 12) & 0xffff);
49
50 return part_no;
51}
52
53/*
54 * Get Device Revision from JTAG ID register
55 */
56static u8 __init davinci_get_variant(void)
57{
58 u32 variant;
59
60 variant = davinci_readl(JTAG_ID_BASE);
61
62 variant = (variant >> 28) & 0xf;
63
64 return variant;
65}
66
67void __init davinci_check_revision(void)
68{
69 int i;
70 u16 part_no;
71 u8 variant;
72
73 part_no = davinci_get_part_no();
74 variant = davinci_get_variant();
75
76 /* First check only the major version in a safe way */
77 for (i = 0; i < ARRAY_SIZE(davinci_ids); i++) {
78 if (part_no == (davinci_ids[i].part_no)) {
79 system_rev = davinci_ids[i].type;
80 break;
81 }
82 }
83
84 /* Check if we can find the dev revision */
85 for (i = 0; i < ARRAY_SIZE(davinci_ids); i++) {
86 if (part_no == davinci_ids[i].part_no &&
87 variant == davinci_ids[i].variant) {
88 system_rev = davinci_ids[i].type;
89 break;
90 }
91 }
92
93 printk("DaVinci DM%04x variant 0x%x\n", system_rev >> 16, variant);
94}
diff --git a/arch/arm/mach-davinci/io.c b/arch/arm/mach-davinci/io.c
new file mode 100644
index 000000000000..87fae6fb6ecf
--- /dev/null
+++ b/arch/arm/mach-davinci/io.c
@@ -0,0 +1,51 @@
1/*
2 * DaVinci I/O mapping code
3 *
4 * Copyright (C) 2005-2006 Texas Instruments
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10
11#include <linux/module.h>
12#include <linux/kernel.h>
13#include <linux/init.h>
14
15#include <asm/tlb.h>
16#include <asm/io.h>
17#include <asm/memory.h>
18
19#include <asm/mach/map.h>
20
21extern void davinci_check_revision(void);
22
23/*
24 * The machine specific code may provide the extra mapping besides the
25 * default mapping provided here.
26 */
27static struct map_desc davinci_io_desc[] __initdata = {
28 {
29 .virtual = IO_VIRT,
30 .pfn = __phys_to_pfn(IO_PHYS),
31 .length = IO_SIZE,
32 .type = MT_DEVICE
33 },
34};
35
36void __init davinci_map_common_io(void)
37{
38 iotable_init(davinci_io_desc, ARRAY_SIZE(davinci_io_desc));
39
40 /* Normally devicemaps_init() would flush caches and tlb after
41 * mdesc->map_io(), but we must also do it here because of the CPU
42 * revision check below.
43 */
44 local_flush_tlb_all();
45 flush_cache_all();
46
47 /* We want to check CPU revision early for cpu_is_xxxx() macros.
48 * IO space mapping must be initialized before we can do that.
49 */
50 davinci_check_revision();
51}
diff --git a/arch/arm/mach-davinci/irq.c b/arch/arm/mach-davinci/irq.c
new file mode 100644
index 000000000000..1333d84d2e45
--- /dev/null
+++ b/arch/arm/mach-davinci/irq.c
@@ -0,0 +1,226 @@
1/*
2 * Interrupt handler for DaVinci boards.
3 *
4 * Copyright (C) 2006 Texas Instruments.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 *
20 */
21#include <linux/kernel.h>
22#include <linux/init.h>
23#include <linux/interrupt.h>
24#include <linux/irq.h>
25
26#include <asm/hardware.h>
27#include <asm/io.h>
28#include <asm/mach/irq.h>
29
30#define IRQ_BIT(irq) ((irq) & 0x1f)
31
32#define FIQ_REG0_OFFSET 0x0000
33#define FIQ_REG1_OFFSET 0x0004
34#define IRQ_REG0_OFFSET 0x0008
35#define IRQ_REG1_OFFSET 0x000C
36#define IRQ_ENT_REG0_OFFSET 0x0018
37#define IRQ_ENT_REG1_OFFSET 0x001C
38#define IRQ_INCTL_REG_OFFSET 0x0020
39#define IRQ_EABASE_REG_OFFSET 0x0024
40#define IRQ_INTPRI0_REG_OFFSET 0x0030
41#define IRQ_INTPRI7_REG_OFFSET 0x004C
42
43static inline unsigned int davinci_irq_readl(int offset)
44{
45 return davinci_readl(DAVINCI_ARM_INTC_BASE + offset);
46}
47
48static inline void davinci_irq_writel(unsigned long value, int offset)
49{
50 davinci_writel(value, DAVINCI_ARM_INTC_BASE + offset);
51}
52
53/* Disable interrupt */
54static void davinci_mask_irq(unsigned int irq)
55{
56 unsigned int mask;
57 u32 l;
58
59 mask = 1 << IRQ_BIT(irq);
60
61 if (irq > 31) {
62 l = davinci_irq_readl(IRQ_ENT_REG1_OFFSET);
63 l &= ~mask;
64 davinci_irq_writel(l, IRQ_ENT_REG1_OFFSET);
65 } else {
66 l = davinci_irq_readl(IRQ_ENT_REG0_OFFSET);
67 l &= ~mask;
68 davinci_irq_writel(l, IRQ_ENT_REG0_OFFSET);
69 }
70}
71
72/* Enable interrupt */
73static void davinci_unmask_irq(unsigned int irq)
74{
75 unsigned int mask;
76 u32 l;
77
78 mask = 1 << IRQ_BIT(irq);
79
80 if (irq > 31) {
81 l = davinci_irq_readl(IRQ_ENT_REG1_OFFSET);
82 l |= mask;
83 davinci_irq_writel(l, IRQ_ENT_REG1_OFFSET);
84 } else {
85 l = davinci_irq_readl(IRQ_ENT_REG0_OFFSET);
86 l |= mask;
87 davinci_irq_writel(l, IRQ_ENT_REG0_OFFSET);
88 }
89}
90
91/* EOI interrupt */
92static void davinci_ack_irq(unsigned int irq)
93{
94 unsigned int mask;
95
96 mask = 1 << IRQ_BIT(irq);
97
98 if (irq > 31)
99 davinci_irq_writel(mask, IRQ_REG1_OFFSET);
100 else
101 davinci_irq_writel(mask, IRQ_REG0_OFFSET);
102}
103
104static struct irq_chip davinci_irq_chip_0 = {
105 .name = "AINTC",
106 .ack = davinci_ack_irq,
107 .mask = davinci_mask_irq,
108 .unmask = davinci_unmask_irq,
109};
110
111
112/* FIQ are pri 0-1; otherwise 2-7, with 7 lowest priority */
113static const u8 default_priorities[DAVINCI_N_AINTC_IRQ] __initdata = {
114 [IRQ_VDINT0] = 2,
115 [IRQ_VDINT1] = 6,
116 [IRQ_VDINT2] = 6,
117 [IRQ_HISTINT] = 6,
118 [IRQ_H3AINT] = 6,
119 [IRQ_PRVUINT] = 6,
120 [IRQ_RSZINT] = 6,
121 [7] = 7,
122 [IRQ_VENCINT] = 6,
123 [IRQ_ASQINT] = 6,
124 [IRQ_IMXINT] = 6,
125 [IRQ_VLCDINT] = 6,
126 [IRQ_USBINT] = 4,
127 [IRQ_EMACINT] = 4,
128 [14] = 7,
129 [15] = 7,
130 [IRQ_CCINT0] = 5, /* dma */
131 [IRQ_CCERRINT] = 5, /* dma */
132 [IRQ_TCERRINT0] = 5, /* dma */
133 [IRQ_TCERRINT] = 5, /* dma */
134 [IRQ_PSCIN] = 7,
135 [21] = 7,
136 [IRQ_IDE] = 4,
137 [23] = 7,
138 [IRQ_MBXINT] = 7,
139 [IRQ_MBRINT] = 7,
140 [IRQ_MMCINT] = 7,
141 [IRQ_SDIOINT] = 7,
142 [28] = 7,
143 [IRQ_DDRINT] = 7,
144 [IRQ_AEMIFINT] = 7,
145 [IRQ_VLQINT] = 4,
146 [IRQ_TINT0_TINT12] = 2, /* clockevent */
147 [IRQ_TINT0_TINT34] = 2, /* clocksource */
148 [IRQ_TINT1_TINT12] = 7, /* DSP timer */
149 [IRQ_TINT1_TINT34] = 7, /* system tick */
150 [IRQ_PWMINT0] = 7,
151 [IRQ_PWMINT1] = 7,
152 [IRQ_PWMINT2] = 7,
153 [IRQ_I2C] = 3,
154 [IRQ_UARTINT0] = 3,
155 [IRQ_UARTINT1] = 3,
156 [IRQ_UARTINT2] = 3,
157 [IRQ_SPINT0] = 3,
158 [IRQ_SPINT1] = 3,
159 [45] = 7,
160 [IRQ_DSP2ARM0] = 4,
161 [IRQ_DSP2ARM1] = 4,
162 [IRQ_GPIO0] = 7,
163 [IRQ_GPIO1] = 7,
164 [IRQ_GPIO2] = 7,
165 [IRQ_GPIO3] = 7,
166 [IRQ_GPIO4] = 7,
167 [IRQ_GPIO5] = 7,
168 [IRQ_GPIO6] = 7,
169 [IRQ_GPIO7] = 7,
170 [IRQ_GPIOBNK0] = 7,
171 [IRQ_GPIOBNK1] = 7,
172 [IRQ_GPIOBNK2] = 7,
173 [IRQ_GPIOBNK3] = 7,
174 [IRQ_GPIOBNK4] = 7,
175 [IRQ_COMMTX] = 7,
176 [IRQ_COMMRX] = 7,
177 [IRQ_EMUINT] = 7,
178};
179
180/* ARM Interrupt Controller Initialization */
181void __init davinci_irq_init(void)
182{
183 unsigned i;
184 const u8 *priority = default_priorities;
185
186 /* Clear all interrupt requests */
187 davinci_irq_writel(~0x0, FIQ_REG0_OFFSET);
188 davinci_irq_writel(~0x0, FIQ_REG1_OFFSET);
189 davinci_irq_writel(~0x0, IRQ_REG0_OFFSET);
190 davinci_irq_writel(~0x0, IRQ_REG1_OFFSET);
191
192 /* Disable all interrupts */
193 davinci_irq_writel(0x0, IRQ_ENT_REG0_OFFSET);
194 davinci_irq_writel(0x0, IRQ_ENT_REG1_OFFSET);
195
196 /* Interrupts disabled immediately, IRQ entry reflects all */
197 davinci_irq_writel(0x0, IRQ_INCTL_REG_OFFSET);
198
199 /* we don't use the hardware vector table, just its entry addresses */
200 davinci_irq_writel(0, IRQ_EABASE_REG_OFFSET);
201
202 /* Clear all interrupt requests */
203 davinci_irq_writel(~0x0, FIQ_REG0_OFFSET);
204 davinci_irq_writel(~0x0, FIQ_REG1_OFFSET);
205 davinci_irq_writel(~0x0, IRQ_REG0_OFFSET);
206 davinci_irq_writel(~0x0, IRQ_REG1_OFFSET);
207
208 for (i = IRQ_INTPRI0_REG_OFFSET; i <= IRQ_INTPRI7_REG_OFFSET; i += 4) {
209 unsigned j;
210 u32 pri;
211
212 for (j = 0, pri = 0; j < 32; j += 4, priority++)
213 pri |= (*priority & 0x07) << j;
214 davinci_irq_writel(pri, i);
215 }
216
217 /* set up genirq dispatch for ARM INTC */
218 for (i = 0; i < DAVINCI_N_AINTC_IRQ; i++) {
219 set_irq_chip(i, &davinci_irq_chip_0);
220 set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
221 if (i != IRQ_TINT1_TINT34)
222 set_irq_handler(i, handle_edge_irq);
223 else
224 set_irq_handler(i, handle_level_irq);
225 }
226}
diff --git a/arch/arm/mach-davinci/psc.c b/arch/arm/mach-davinci/psc.c
new file mode 100644
index 000000000000..e1b0050283a6
--- /dev/null
+++ b/arch/arm/mach-davinci/psc.c
@@ -0,0 +1,113 @@
1/*
2 * TI DaVinci Power and Sleep Controller (PSC)
3 *
4 * Copyright (C) 2006 Texas Instruments.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 *
20 */
21#include <linux/kernel.h>
22#include <linux/module.h>
23#include <linux/init.h>
24
25#include <asm/io.h>
26#include <asm/hardware.h>
27#include <asm/arch/psc.h>
28
29#define PTCMD __REG(0x01C41120)
30#define PDSTAT __REG(0x01C41200)
31#define PDCTL1 __REG(0x01C41304)
32#define EPCPR __REG(0x01C41070)
33#define PTSTAT __REG(0x01C41128)
34
35#define MDSTAT IO_ADDRESS(0x01C41800)
36#define MDCTL IO_ADDRESS(0x01C41A00)
37
38#define PINMUX0 __REG(0x01c40000)
39#define PINMUX1 __REG(0x01c40004)
40#define VDD3P3V_PWDN __REG(0x01C40048)
41
42static void davinci_psc_mux(unsigned int id)
43{
44 switch (id) {
45 case DAVINCI_LPSC_ATA:
46 PINMUX0 |= (1 << 17) | (1 << 16);
47 break;
48 case DAVINCI_LPSC_MMC_SD:
49 /* VDD power manupulations are done in U-Boot for CPMAC
50 * so applies to MMC as well
51 */
52 /*Set up the pull regiter for MMC */
53 VDD3P3V_PWDN = 0x0;
54 PINMUX1 &= (~(1 << 9));
55 break;
56 case DAVINCI_LPSC_I2C:
57 PINMUX1 |= (1 << 7);
58 break;
59 case DAVINCI_LPSC_McBSP:
60 PINMUX1 |= (1 << 10);
61 break;
62 default:
63 break;
64 }
65}
66
67/* Enable or disable a PSC domain */
68void davinci_psc_config(unsigned int domain, unsigned int id, char enable)
69{
70 volatile unsigned int *mdstat = (unsigned int *)((int)MDSTAT + 4 * id);
71 volatile unsigned int *mdctl = (unsigned int *)((int)MDCTL + 4 * id);
72
73 if (id < 0)
74 return;
75
76 if (enable)
77 *mdctl |= 0x00000003; /* Enable Module */
78 else
79 *mdctl &= 0xFFFFFFF2; /* Disable Module */
80
81 if ((PDSTAT & 0x00000001) == 0) {
82 PDCTL1 |= 0x1;
83 PTCMD = (1 << domain);
84 while ((((EPCPR >> domain) & 1) == 0));
85
86 PDCTL1 |= 0x100;
87 while (!(((PTSTAT >> domain) & 1) == 0));
88 } else {
89 PTCMD = (1 << domain);
90 while (!(((PTSTAT >> domain) & 1) == 0));
91 }
92
93 if (enable)
94 while (!((*mdstat & 0x0000001F) == 0x3));
95 else
96 while (!((*mdstat & 0x0000001F) == 0x2));
97
98 if (enable)
99 davinci_psc_mux(id);
100}
101
102void __init davinci_psc_init(void)
103{
104 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_VPSSMSTR, 1);
105 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_VPSSSLV, 1);
106 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_TPCC, 1);
107 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_TPTC0, 1);
108 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_TPTC1, 1);
109 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_GPIO, 1);
110
111 /* Turn on WatchDog timer LPSC. Needed for RESET to work */
112 davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_TIMER2, 1);
113}
diff --git a/arch/arm/mach-davinci/serial.c b/arch/arm/mach-davinci/serial.c
new file mode 100644
index 000000000000..8368c93c788d
--- /dev/null
+++ b/arch/arm/mach-davinci/serial.c
@@ -0,0 +1,96 @@
1/*
2 * TI DaVinci serial driver
3 *
4 * Copyright (C) 2006 Texas Instruments.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 *
20 */
21
22#include <linux/kernel.h>
23#include <linux/init.h>
24#include <linux/serial_8250.h>
25#include <linux/serial_reg.h>
26#include <linux/platform_device.h>
27#include <linux/delay.h>
28#include <linux/clk.h>
29
30#include <asm/io.h>
31#include <asm/irq.h>
32#include <asm/hardware.h>
33#include <asm/arch/serial.h>
34#include <asm/arch/irqs.h>
35
36#define UART_DAVINCI_PWREMU 0x0c
37
38static inline unsigned int davinci_serial_in(struct plat_serial8250_port *up,
39 int offset)
40{
41 offset <<= up->regshift;
42 return (unsigned int)__raw_readb(up->membase + offset);
43}
44
45static inline void davinci_serial_outp(struct plat_serial8250_port *p,
46 int offset, int value)
47{
48 offset <<= p->regshift;
49 __raw_writeb(value, p->membase + offset);
50}
51
52static struct plat_serial8250_port serial_platform_data[] = {
53 {
54 .membase = (char *)IO_ADDRESS(DAVINCI_UART0_BASE),
55 .mapbase = (unsigned long)DAVINCI_UART0_BASE,
56 .irq = IRQ_UARTINT0,
57 .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
58 .iotype = UPIO_MEM,
59 .regshift = 2,
60 .uartclk = 27000000,
61 },
62 {
63 .flags = 0
64 },
65};
66
67static struct platform_device serial_device = {
68 .name = "serial8250",
69 .id = PLAT8250_DEV_PLATFORM,
70 .dev = {
71 .platform_data = serial_platform_data,
72 },
73};
74
75static void __init davinci_serial_reset(struct plat_serial8250_port *p)
76{
77 /* reset both transmitter and receiver: bits 14,13 = UTRST, URRST */
78 unsigned int pwremu = 0;
79
80 davinci_serial_outp(p, UART_IER, 0); /* disable all interrupts */
81
82 davinci_serial_outp(p, UART_DAVINCI_PWREMU, pwremu);
83 mdelay(10);
84
85 pwremu |= (0x3 << 13);
86 pwremu |= 0x1;
87 davinci_serial_outp(p, UART_DAVINCI_PWREMU, pwremu);
88}
89
90static int __init davinci_init(void)
91{
92 davinci_serial_reset(&serial_platform_data[0]);
93 return platform_device_register(&serial_device);
94}
95
96arch_initcall(davinci_init);
diff --git a/arch/arm/mach-davinci/time.c b/arch/arm/mach-davinci/time.c
new file mode 100644
index 000000000000..4d8425de6922
--- /dev/null
+++ b/arch/arm/mach-davinci/time.c
@@ -0,0 +1,372 @@
1/*
2 * DaVinci timer subsystem
3 *
4 * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com>
5 *
6 * 2007 (c) MontaVista Software, Inc. This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied.
10 */
11#include <linux/kernel.h>
12#include <linux/init.h>
13#include <linux/types.h>
14#include <linux/interrupt.h>
15#include <linux/clocksource.h>
16#include <linux/clockchips.h>
17#include <linux/spinlock.h>
18
19#include <asm/io.h>
20#include <asm/hardware.h>
21#include <asm/system.h>
22#include <asm/irq.h>
23#include <asm/mach/irq.h>
24#include <asm/mach/time.h>
25#include <asm/errno.h>
26#include <asm/arch/io.h>
27
28static struct clock_event_device clockevent_davinci;
29
30#define DAVINCI_TIMER0_BASE (IO_PHYS + 0x21400)
31#define DAVINCI_TIMER1_BASE (IO_PHYS + 0x21800)
32#define DAVINCI_WDOG_BASE (IO_PHYS + 0x21C00)
33
34enum {
35 T0_BOT = 0, T0_TOP, T1_BOT, T1_TOP, NUM_TIMERS,
36};
37
38#define IS_TIMER1(id) (id & 0x2)
39#define IS_TIMER0(id) (!IS_TIMER1(id))
40#define IS_TIMER_TOP(id) ((id & 0x1))
41#define IS_TIMER_BOT(id) (!IS_TIMER_TOP(id))
42
43static int timer_irqs[NUM_TIMERS] = {
44 IRQ_TINT0_TINT12,
45 IRQ_TINT0_TINT34,
46 IRQ_TINT1_TINT12,
47 IRQ_TINT1_TINT34,
48};
49
50/*
51 * This driver configures the 2 64-bit count-up timers as 4 independent
52 * 32-bit count-up timers used as follows:
53 *
54 * T0_BOT: Timer 0, bottom: clockevent source for hrtimers
55 * T0_TOP: Timer 0, top : clocksource for generic timekeeping
56 * T1_BOT: Timer 1, bottom: (used by DSP in TI DSPLink code)
57 * T1_TOP: Timer 1, top : <unused>
58 */
59#define TID_CLOCKEVENT T0_BOT
60#define TID_CLOCKSOURCE T0_TOP
61
62/* Timer register offsets */
63#define PID12 0x0
64#define TIM12 0x10
65#define TIM34 0x14
66#define PRD12 0x18
67#define PRD34 0x1c
68#define TCR 0x20
69#define TGCR 0x24
70#define WDTCR 0x28
71
72/* Timer register bitfields */
73#define TCR_ENAMODE_DISABLE 0x0
74#define TCR_ENAMODE_ONESHOT 0x1
75#define TCR_ENAMODE_PERIODIC 0x2
76#define TCR_ENAMODE_MASK 0x3
77
78#define TGCR_TIMMODE_SHIFT 2
79#define TGCR_TIMMODE_64BIT_GP 0x0
80#define TGCR_TIMMODE_32BIT_UNCHAINED 0x1
81#define TGCR_TIMMODE_64BIT_WDOG 0x2
82#define TGCR_TIMMODE_32BIT_CHAINED 0x3
83
84#define TGCR_TIM12RS_SHIFT 0
85#define TGCR_TIM34RS_SHIFT 1
86#define TGCR_RESET 0x0
87#define TGCR_UNRESET 0x1
88#define TGCR_RESET_MASK 0x3
89
90#define WDTCR_WDEN_SHIFT 14
91#define WDTCR_WDEN_DISABLE 0x0
92#define WDTCR_WDEN_ENABLE 0x1
93#define WDTCR_WDKEY_SHIFT 16
94#define WDTCR_WDKEY_SEQ0 0xa5c6
95#define WDTCR_WDKEY_SEQ1 0xda7e
96
97struct timer_s {
98 char *name;
99 unsigned int id;
100 unsigned long period;
101 unsigned long opts;
102 unsigned long reg_base;
103 unsigned long tim_reg;
104 unsigned long prd_reg;
105 unsigned long enamode_shift;
106 struct irqaction irqaction;
107};
108static struct timer_s timers[];
109
110/* values for 'opts' field of struct timer_s */
111#define TIMER_OPTS_DISABLED 0x00
112#define TIMER_OPTS_ONESHOT 0x01
113#define TIMER_OPTS_PERIODIC 0x02
114
115static int timer32_config(struct timer_s *t)
116{
117 u32 tcr = davinci_readl(t->reg_base + TCR);
118
119 /* disable timer */
120 tcr &= ~(TCR_ENAMODE_MASK << t->enamode_shift);
121 davinci_writel(tcr, t->reg_base + TCR);
122
123 /* reset counter to zero, set new period */
124 davinci_writel(0, t->tim_reg);
125 davinci_writel(t->period, t->prd_reg);
126
127 /* Set enable mode */
128 if (t->opts & TIMER_OPTS_ONESHOT) {
129 tcr |= TCR_ENAMODE_ONESHOT << t->enamode_shift;
130 } else if (t->opts & TIMER_OPTS_PERIODIC) {
131 tcr |= TCR_ENAMODE_PERIODIC << t->enamode_shift;
132 }
133
134 davinci_writel(tcr, t->reg_base + TCR);
135 return 0;
136}
137
138static inline u32 timer32_read(struct timer_s *t)
139{
140 return davinci_readl(t->tim_reg);
141}
142
143static irqreturn_t timer_interrupt(int irq, void *dev_id)
144{
145 struct clock_event_device *evt = &clockevent_davinci;
146
147 evt->event_handler(evt);
148 return IRQ_HANDLED;
149}
150
151/* called when 32-bit counter wraps */
152static irqreturn_t freerun_interrupt(int irq, void *dev_id)
153{
154 return IRQ_HANDLED;
155}
156
157static struct timer_s timers[] = {
158 [TID_CLOCKEVENT] = {
159 .name = "clockevent",
160 .opts = TIMER_OPTS_DISABLED,
161 .irqaction = {
162 .flags = IRQF_DISABLED | IRQF_TIMER,
163 .handler = timer_interrupt,
164 }
165 },
166 [TID_CLOCKSOURCE] = {
167 .name = "free-run counter",
168 .period = ~0,
169 .opts = TIMER_OPTS_PERIODIC,
170 .irqaction = {
171 .flags = IRQF_DISABLED | IRQF_TIMER,
172 .handler = freerun_interrupt,
173 }
174 },
175};
176
177static void __init timer_init(void)
178{
179 u32 bases[] = {DAVINCI_TIMER0_BASE, DAVINCI_TIMER1_BASE};
180 int i;
181
182 /* Global init of each 64-bit timer as a whole */
183 for(i=0; i<2; i++) {
184 u32 tgcr, base = bases[i];
185
186 /* Disabled, Internal clock source */
187 davinci_writel(0, base + TCR);
188
189 /* reset both timers, no pre-scaler for timer34 */
190 tgcr = 0;
191 davinci_writel(tgcr, base + TGCR);
192
193 /* Set both timers to unchained 32-bit */
194 tgcr = TGCR_TIMMODE_32BIT_UNCHAINED << TGCR_TIMMODE_SHIFT;
195 davinci_writel(tgcr, base + TGCR);
196
197 /* Unreset timers */
198 tgcr |= (TGCR_UNRESET << TGCR_TIM12RS_SHIFT) |
199 (TGCR_UNRESET << TGCR_TIM34RS_SHIFT);
200 davinci_writel(tgcr, base + TGCR);
201
202 /* Init both counters to zero */
203 davinci_writel(0, base + TIM12);
204 davinci_writel(0, base + TIM34);
205 }
206
207 /* Init of each timer as a 32-bit timer */
208 for (i=0; i< ARRAY_SIZE(timers); i++) {
209 struct timer_s *t = &timers[i];
210
211 if (t->name) {
212 t->id = i;
213 t->reg_base = (IS_TIMER1(t->id) ?
214 DAVINCI_TIMER1_BASE : DAVINCI_TIMER0_BASE);
215
216 if (IS_TIMER_BOT(t->id)) {
217 t->enamode_shift = 6;
218 t->tim_reg = t->reg_base + TIM12;
219 t->prd_reg = t->reg_base + PRD12;
220 } else {
221 t->enamode_shift = 22;
222 t->tim_reg = t->reg_base + TIM34;
223 t->prd_reg = t->reg_base + PRD34;
224 }
225
226 /* Register interrupt */
227 t->irqaction.name = t->name;
228 t->irqaction.dev_id = (void *)t;
229 if (t->irqaction.handler != NULL) {
230 setup_irq(timer_irqs[t->id], &t->irqaction);
231 }
232
233 timer32_config(&timers[i]);
234 }
235 }
236}
237
238/*
239 * clocksource
240 */
241static cycle_t read_cycles(void)
242{
243 struct timer_s *t = &timers[TID_CLOCKSOURCE];
244
245 return (cycles_t)timer32_read(t);
246}
247
248static struct clocksource clocksource_davinci = {
249 .name = "timer0_1",
250 .rating = 300,
251 .read = read_cycles,
252 .mask = CLOCKSOURCE_MASK(32),
253 .shift = 24,
254 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
255};
256
257/*
258 * clockevent
259 */
260static int davinci_set_next_event(unsigned long cycles,
261 struct clock_event_device *evt)
262{
263 struct timer_s *t = &timers[TID_CLOCKEVENT];
264
265 t->period = cycles;
266 timer32_config(t);
267 return 0;
268}
269
270static void davinci_set_mode(enum clock_event_mode mode,
271 struct clock_event_device *evt)
272{
273 struct timer_s *t = &timers[TID_CLOCKEVENT];
274
275 switch (mode) {
276 case CLOCK_EVT_MODE_PERIODIC:
277 t->period = CLOCK_TICK_RATE / (HZ);
278 t->opts = TIMER_OPTS_PERIODIC;
279 timer32_config(t);
280 break;
281 case CLOCK_EVT_MODE_ONESHOT:
282 t->opts = TIMER_OPTS_ONESHOT;
283 break;
284 case CLOCK_EVT_MODE_UNUSED:
285 case CLOCK_EVT_MODE_SHUTDOWN:
286 t->opts = TIMER_OPTS_DISABLED;
287 break;
288 }
289}
290
291static struct clock_event_device clockevent_davinci = {
292 .name = "timer0_0",
293 .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
294 .shift = 32,
295 .set_next_event = davinci_set_next_event,
296 .set_mode = davinci_set_mode,
297};
298
299
300static void __init davinci_timer_init(void)
301{
302 static char err[] __initdata = KERN_ERR
303 "%s: can't register clocksource!\n";
304
305 /* init timer hw */
306 timer_init();
307
308 /* setup clocksource */
309 clocksource_davinci.mult =
310 clocksource_khz2mult(CLOCK_TICK_RATE/1000,
311 clocksource_davinci.shift);
312 if (clocksource_register(&clocksource_davinci))
313 printk(err, clocksource_davinci.name);
314
315 /* setup clockevent */
316 clockevent_davinci.mult = div_sc(CLOCK_TICK_RATE, NSEC_PER_SEC,
317 clockevent_davinci.shift);
318 clockevent_davinci.max_delta_ns =
319 clockevent_delta2ns(0xfffffffe, &clockevent_davinci);
320 clockevent_davinci.min_delta_ns =
321 clockevent_delta2ns(1, &clockevent_davinci);
322
323 clockevent_davinci.cpumask = cpumask_of_cpu(0);
324 clockevents_register_device(&clockevent_davinci);
325}
326
327struct sys_timer davinci_timer = {
328 .init = davinci_timer_init,
329};
330
331
332/* reset board using watchdog timer */
333void davinci_watchdog_reset(void) {
334 u32 tgcr, wdtcr, base = DAVINCI_WDOG_BASE;
335
336 /* disable, internal clock source */
337 davinci_writel(0, base + TCR);
338
339 /* reset timer, set mode to 64-bit watchdog, and unreset */
340 tgcr = 0;
341 davinci_writel(tgcr, base + TCR);
342 tgcr = TGCR_TIMMODE_64BIT_WDOG << TGCR_TIMMODE_SHIFT;
343 tgcr |= (TGCR_UNRESET << TGCR_TIM12RS_SHIFT) |
344 (TGCR_UNRESET << TGCR_TIM34RS_SHIFT);
345 davinci_writel(tgcr, base + TCR);
346
347 /* clear counter and period regs */
348 davinci_writel(0, base + TIM12);
349 davinci_writel(0, base + TIM34);
350 davinci_writel(0, base + PRD12);
351 davinci_writel(0, base + PRD34);
352
353 /* enable */
354 wdtcr = davinci_readl(base + WDTCR);
355 wdtcr |= WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT;
356 davinci_writel(wdtcr, base + WDTCR);
357
358 /* put watchdog in pre-active state */
359 wdtcr = (WDTCR_WDKEY_SEQ0 << WDTCR_WDKEY_SHIFT) |
360 (WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT);
361 davinci_writel(wdtcr, base + WDTCR);
362
363 /* put watchdog in active state */
364 wdtcr = (WDTCR_WDKEY_SEQ1 << WDTCR_WDKEY_SHIFT) |
365 (WDTCR_WDEN_ENABLE << WDTCR_WDEN_SHIFT);
366 davinci_writel(wdtcr, base + WDTCR);
367
368 /* write an invalid value to the WDKEY field to trigger
369 * a watchdog reset */
370 wdtcr = 0x00004000;
371 davinci_writel(wdtcr, base + WDTCR);
372}
diff --git a/arch/arm/mach-iop13xx/Makefile b/arch/arm/mach-iop13xx/Makefile
index da1609dc0dee..cad015fee12f 100644
--- a/arch/arm/mach-iop13xx/Makefile
+++ b/arch/arm/mach-iop13xx/Makefile
@@ -10,3 +10,4 @@ obj-$(CONFIG_ARCH_IOP13XX) += io.o
10obj-$(CONFIG_ARCH_IOP13XX) += tpmi.o 10obj-$(CONFIG_ARCH_IOP13XX) += tpmi.o
11obj-$(CONFIG_MACH_IQ81340SC) += iq81340sc.o 11obj-$(CONFIG_MACH_IQ81340SC) += iq81340sc.o
12obj-$(CONFIG_MACH_IQ81340MC) += iq81340mc.o 12obj-$(CONFIG_MACH_IQ81340MC) += iq81340mc.o
13obj-$(CONFIG_PCI_MSI) += msi.o
diff --git a/arch/arm/mach-iop13xx/irq.c b/arch/arm/mach-iop13xx/irq.c
index b2eb0b961031..5791addd436b 100644
--- a/arch/arm/mach-iop13xx/irq.c
+++ b/arch/arm/mach-iop13xx/irq.c
@@ -26,6 +26,7 @@
26#include <asm/hardware.h> 26#include <asm/hardware.h>
27#include <asm/mach-types.h> 27#include <asm/mach-types.h>
28#include <asm/arch/irqs.h> 28#include <asm/arch/irqs.h>
29#include <asm/arch/msi.h>
29 30
30/* INTCTL0 CP6 R0 Page 4 31/* INTCTL0 CP6 R0 Page 4
31 */ 32 */
@@ -258,7 +259,7 @@ void __init iop13xx_init_irq(void)
258 write_intbase(INTBASE); 259 write_intbase(INTBASE);
259 write_intsize(INTSIZE_4); 260 write_intsize(INTSIZE_4);
260 261
261 for(i = 0; i < NR_IOP13XX_IRQS; i++) { 262 for(i = 0; i <= IRQ_IOP13XX_HPI; i++) {
262 if (i < 32) 263 if (i < 32)
263 set_irq_chip(i, &iop13xx_irqchip1); 264 set_irq_chip(i, &iop13xx_irqchip1);
264 else if (i < 64) 265 else if (i < 64)
@@ -271,4 +272,6 @@ void __init iop13xx_init_irq(void)
271 set_irq_handler(i, handle_level_irq); 272 set_irq_handler(i, handle_level_irq);
272 set_irq_flags(i, IRQF_VALID | IRQF_PROBE); 273 set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
273 } 274 }
275
276 iop13xx_msi_init();
274} 277}
diff --git a/arch/arm/mach-iop13xx/msi.c b/arch/arm/mach-iop13xx/msi.c
new file mode 100644
index 000000000000..2d2369302220
--- /dev/null
+++ b/arch/arm/mach-iop13xx/msi.c
@@ -0,0 +1,194 @@
1/*
2 * arch/arm/mach-iop13xx/msi.c
3 *
4 * PCI MSI support for the iop13xx processor
5 *
6 * Copyright (c) 2006, Intel Corporation.
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms and conditions of the GNU General Public License,
10 * version 2, as published by the Free Software Foundation.
11 *
12 * This program is distributed in the hope it will be useful, but WITHOUT
13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15 * more details.
16 *
17 * You should have received a copy of the GNU General Public License along with
18 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
19 * Place - Suite 330, Boston, MA 02111-1307 USA.
20 *
21 */
22#include <linux/pci.h>
23#include <linux/msi.h>
24#include <asm/mach/irq.h>
25#include <asm/irq.h>
26
27
28#define IOP13XX_NUM_MSI_IRQS 128
29static DECLARE_BITMAP(msi_irq_in_use, IOP13XX_NUM_MSI_IRQS);
30
31/* IMIPR0 CP6 R8 Page 1
32 */
33static inline u32 read_imipr_0(void)
34{
35 u32 val;
36 asm volatile("mrc p6, 0, %0, c8, c1, 0":"=r" (val));
37 return val;
38}
39static inline void write_imipr_0(u32 val)
40{
41 asm volatile("mcr p6, 0, %0, c8, c1, 0"::"r" (val));
42}
43
44/* IMIPR1 CP6 R9 Page 1
45 */
46static inline u32 read_imipr_1(void)
47{
48 u32 val;
49 asm volatile("mrc p6, 0, %0, c9, c1, 0":"=r" (val));
50 return val;
51}
52static inline void write_imipr_1(u32 val)
53{
54 asm volatile("mcr p6, 0, %0, c9, c1, 0"::"r" (val));
55}
56
57/* IMIPR2 CP6 R10 Page 1
58 */
59static inline u32 read_imipr_2(void)
60{
61 u32 val;
62 asm volatile("mrc p6, 0, %0, c10, c1, 0":"=r" (val));
63 return val;
64}
65static inline void write_imipr_2(u32 val)
66{
67 asm volatile("mcr p6, 0, %0, c10, c1, 0"::"r" (val));
68}
69
70/* IMIPR3 CP6 R11 Page 1
71 */
72static inline u32 read_imipr_3(void)
73{
74 u32 val;
75 asm volatile("mrc p6, 0, %0, c11, c1, 0":"=r" (val));
76 return val;
77}
78static inline void write_imipr_3(u32 val)
79{
80 asm volatile("mcr p6, 0, %0, c11, c1, 0"::"r" (val));
81}
82
83static u32 (*read_imipr[])(void) = {
84 read_imipr_0,
85 read_imipr_1,
86 read_imipr_2,
87 read_imipr_3,
88};
89
90static void (*write_imipr[])(u32) = {
91 write_imipr_0,
92 write_imipr_1,
93 write_imipr_2,
94 write_imipr_3,
95};
96
97static void iop13xx_msi_handler(unsigned int irq, struct irq_desc *desc)
98{
99 int i, j;
100 unsigned long status;
101
102 /* read IMIPR registers and find any active interrupts,
103 * then call ISR for each active interrupt
104 */
105 for (i = 0; i < ARRAY_SIZE(read_imipr); i++) {
106 status = (read_imipr[i])();
107 if (!status)
108 continue;
109
110 do {
111 j = find_first_bit(&status, 32);
112 (write_imipr[i])(1 << j); /* write back to clear bit */
113 desc = irq_desc + IRQ_IOP13XX_MSI_0 + j + (32*i);
114 desc_handle_irq(IRQ_IOP13XX_MSI_0 + j + (32*i), desc);
115 status = (read_imipr[i])();
116 } while (status);
117 }
118}
119
120void __init iop13xx_msi_init(void)
121{
122 set_irq_chained_handler(IRQ_IOP13XX_INBD_MSI, iop13xx_msi_handler);
123}
124
125/*
126 * Dynamic irq allocate and deallocation
127 */
128int create_irq(void)
129{
130 int irq, pos;
131
132again:
133 pos = find_first_zero_bit(msi_irq_in_use, IOP13XX_NUM_MSI_IRQS);
134 irq = IRQ_IOP13XX_MSI_0 + pos;
135 if (irq > NR_IRQS)
136 return -ENOSPC;
137 /* test_and_set_bit operates on 32-bits at a time */
138 if (test_and_set_bit(pos, msi_irq_in_use))
139 goto again;
140
141 dynamic_irq_init(irq);
142
143 return irq;
144}
145
146void destroy_irq(unsigned int irq)
147{
148 int pos = irq - IRQ_IOP13XX_MSI_0;
149
150 dynamic_irq_cleanup(irq);
151
152 clear_bit(pos, msi_irq_in_use);
153}
154
155void arch_teardown_msi_irq(unsigned int irq)
156{
157 destroy_irq(irq);
158}
159
160static void iop13xx_msi_nop(unsigned int irq)
161{
162 return;
163}
164
165static struct irq_chip iop13xx_msi_chip = {
166 .name = "PCI-MSI",
167 .ack = iop13xx_msi_nop,
168 .enable = unmask_msi_irq,
169 .disable = mask_msi_irq,
170 .mask = mask_msi_irq,
171 .unmask = unmask_msi_irq,
172};
173
174int arch_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc)
175{
176 int id, irq = create_irq();
177 struct msi_msg msg;
178
179 if (irq < 0)
180 return irq;
181
182 set_irq_msi(irq, desc);
183
184 msg.address_hi = 0x0;
185 msg.address_lo = IOP13XX_MU_MIMR_PCI;
186
187 id = iop13xx_cpu_id();
188 msg.data = (id << IOP13XX_MU_MIMR_CORE_SELECT) | (irq & 0x7f);
189
190 write_msi_msg(irq, &msg);
191 set_irq_chip_and_handler(irq, &iop13xx_msi_chip, handle_simple_irq);
192
193 return irq;
194}
diff --git a/arch/arm/mach-iop13xx/pci.c b/arch/arm/mach-iop13xx/pci.c
index d1d0d32ca77c..1c9e94c38b7e 100644
--- a/arch/arm/mach-iop13xx/pci.c
+++ b/arch/arm/mach-iop13xx/pci.c
@@ -559,6 +559,14 @@ void __init iop13xx_atue_setup(void)
559 int func = iop13xx_atu_function(IOP13XX_INIT_ATU_ATUE); 559 int func = iop13xx_atu_function(IOP13XX_INIT_ATU_ATUE);
560 u32 reg_val; 560 u32 reg_val;
561 561
562#ifdef CONFIG_PCI_MSI
563 /* BAR 0 (inbound msi window) */
564 __raw_writel(IOP13XX_MU_BASE_PHYS, IOP13XX_MU_MUBAR);
565 __raw_writel(~(IOP13XX_MU_WINDOW_SIZE - 1), IOP13XX_ATUE_IALR0);
566 __raw_writel(IOP13XX_MU_BASE_PHYS, IOP13XX_ATUE_IATVR0);
567 __raw_writel(IOP13XX_MU_BASE_PCI, IOP13XX_ATUE_IABAR0);
568#endif
569
562 /* BAR 1 (1:1 mapping with Physical RAM) */ 570 /* BAR 1 (1:1 mapping with Physical RAM) */
563 /* Set limit and enable */ 571 /* Set limit and enable */
564 __raw_writel(~(IOP13XX_MAX_RAM_SIZE - PHYS_OFFSET - 1) & ~0x1, 572 __raw_writel(~(IOP13XX_MAX_RAM_SIZE - PHYS_OFFSET - 1) & ~0x1,
@@ -720,6 +728,14 @@ void __init iop13xx_atux_setup(void)
720 else 728 else
721 atux_trhfa_timeout = jiffies; 729 atux_trhfa_timeout = jiffies;
722 730
731#ifdef CONFIG_PCI_MSI
732 /* BAR 0 (inbound msi window) */
733 __raw_writel(IOP13XX_MU_BASE_PHYS, IOP13XX_MU_MUBAR);
734 __raw_writel(~(IOP13XX_MU_WINDOW_SIZE - 1), IOP13XX_ATUX_IALR0);
735 __raw_writel(IOP13XX_MU_BASE_PHYS, IOP13XX_ATUX_IATVR0);
736 __raw_writel(IOP13XX_MU_BASE_PCI, IOP13XX_ATUX_IABAR0);
737#endif
738
723 /* BAR 1 (1:1 mapping with Physical RAM) */ 739 /* BAR 1 (1:1 mapping with Physical RAM) */
724 /* Set limit and enable */ 740 /* Set limit and enable */
725 __raw_writel(~(IOP13XX_MAX_RAM_SIZE - PHYS_OFFSET - 1) & ~0x1, 741 __raw_writel(~(IOP13XX_MAX_RAM_SIZE - PHYS_OFFSET - 1) & ~0x1,
diff --git a/arch/arm/mach-ks8695/Kconfig b/arch/arm/mach-ks8695/Kconfig
new file mode 100644
index 000000000000..ce1cf8de2b4d
--- /dev/null
+++ b/arch/arm/mach-ks8695/Kconfig
@@ -0,0 +1,13 @@
1if ARCH_KS8695
2
3menu "Kendin/Micrel KS8695 Implementations"
4
5config MACH_KS8695
6 bool "KS8695 development board"
7 help
8 Say 'Y' here if you want your kernel to run on the original
9 Kendin-Micrel KS8695 development board.
10
11endmenu
12
13endif
diff --git a/arch/arm/mach-ks8695/Makefile b/arch/arm/mach-ks8695/Makefile
new file mode 100644
index 000000000000..56b7d337333a
--- /dev/null
+++ b/arch/arm/mach-ks8695/Makefile
@@ -0,0 +1,15 @@
1# arch/arm/mach-ks8695/Makefile
2#
3# Makefile for KS8695 architecture support
4#
5
6obj-y := cpu.o irq.o time.o devices.o
7obj-m :=
8obj-n :=
9obj- :=
10
11# PCI support is optional
12#obj-$(CONFIG_PCI) += pci.o
13
14# Board-specific support
15obj-$(CONFIG_MACH_KS8695) += board-micrel.o
diff --git a/arch/arm/mach-ks8695/Makefile.boot b/arch/arm/mach-ks8695/Makefile.boot
new file mode 100644
index 000000000000..48eb2cb3ac77
--- /dev/null
+++ b/arch/arm/mach-ks8695/Makefile.boot
@@ -0,0 +1,8 @@
1# Note: the following conditions must always be true:
2# ZRELADDR == virt_to_phys(TEXTADDR)
3# PARAMS_PHYS must be within 4MB of ZRELADDR
4# INITRD_PHYS must be in RAM
5
6 zreladdr-y := 0x00008000
7params_phys-y := 0x00000100
8initrd_phys-y := 0x00800000
diff --git a/arch/arm/mach-ks8695/board-micrel.c b/arch/arm/mach-ks8695/board-micrel.c
new file mode 100644
index 000000000000..8fc0edb5211e
--- /dev/null
+++ b/arch/arm/mach-ks8695/board-micrel.c
@@ -0,0 +1,60 @@
1/*
2 * arch/arm/mach-ks8695/board-micrel.c
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#include <linux/kernel.h>
10#include <linux/types.h>
11#include <linux/interrupt.h>
12#include <linux/init.h>
13#include <linux/platform_device.h>
14
15#include <asm/mach-types.h>
16
17#include <asm/mach/arch.h>
18#include <asm/mach/map.h>
19#include <asm/mach/irq.h>
20
21#include <asm/arch/devices.h>
22
23#include "generic.h"
24
25#ifdef CONFIG_PCI
26static int __init micrel_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
27{
28 return KS8695_IRQ_EXTERN0;
29}
30
31static struct ks8695_pci_cfg micrel_pci = {
32 .mode = KS8695_MODE_MINIPCI,
33 .map_irq = micrel_pci_map_irq,
34};
35#endif
36
37
38static void micrel_init(void)
39{
40 printk(KERN_INFO "Micrel KS8695 Development Board initializing\n");
41
42#ifdef CONFIG_PCI
43 ks8695_init_pci(&micrel_pci);
44#endif
45
46 /* Add devices */
47 ks8695_add_device_wan(); /* eth0 = WAN */
48 ks8695_add_device_lan(); /* eth1 = LAN */
49}
50
51MACHINE_START(KS8695, "KS8695 Centaur Development Board")
52 /* Maintainer: Micrel Semiconductor Inc. */
53 .phys_io = KS8695_IO_PA,
54 .io_pg_offst = (KS8695_IO_VA >> 18) & 0xfffc,
55 .boot_params = KS8695_SDRAM_PA + 0x100,
56 .map_io = ks8695_map_io,
57 .init_irq = ks8695_init_irq,
58 .init_machine = micrel_init,
59 .timer = &ks8695_timer,
60MACHINE_END
diff --git a/arch/arm/mach-ks8695/cpu.c b/arch/arm/mach-ks8695/cpu.c
new file mode 100644
index 000000000000..407d255e42bf
--- /dev/null
+++ b/arch/arm/mach-ks8695/cpu.c
@@ -0,0 +1,73 @@
1/*
2 * arch/arm/mach-ks8695/cpu.c
3 *
4 * Copyright (C) 2006 Ben Dooks <ben@simtec.co.uk>
5 * Copyright (C) 2006 Simtec Electronics
6 *
7 * KS8695 CPU support
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */
23
24#include <linux/kernel.h>
25#include <linux/module.h>
26#include <linux/init.h>
27
28#include <asm/hardware.h>
29#include <asm/io.h>
30#include <asm/mach/arch.h>
31#include <asm/mach/map.h>
32
33#include <asm/arch/regs-sys.h>
34#include <asm/arch/regs-misc.h>
35
36
37static struct __initdata map_desc ks8695_io_desc[] = {
38 {
39 .virtual = KS8695_IO_VA,
40 .pfn = __phys_to_pfn(KS8695_IO_PA),
41 .length = KS8695_IO_SIZE,
42 .type = MT_DEVICE,
43 }
44};
45
46static void __init ks8695_processor_info(void)
47{
48 unsigned long id, rev;
49
50 id = __raw_readl(KS8695_MISC_VA + KS8695_DID);
51 rev = __raw_readl(KS8695_MISC_VA + KS8695_RID);
52
53 printk("KS8695 ID=%04lx SubID=%02lx Revision=%02lx\n", (id & DID_ID), (rev & RID_SUBID), (rev & RID_REVISION));
54}
55
56static unsigned int sysclk[8] = { 125000000, 100000000, 62500000, 50000000, 41700000, 33300000, 31300000, 25000000 };
57static unsigned int cpuclk[8] = { 166000000, 166000000, 83000000, 83000000, 55300000, 55300000, 41500000, 41500000 };
58
59static void __init ks8695_clock_info(void)
60{
61 unsigned int scdc = __raw_readl(KS8695_SYS_VA + KS8695_CLKCON) & CLKCON_SCDC;
62
63 printk("Clocks: System %u MHz, CPU %u MHz\n",
64 sysclk[scdc] / 1000000, cpuclk[scdc] / 1000000);
65}
66
67void __init ks8695_map_io(void)
68{
69 iotable_init(ks8695_io_desc, ARRAY_SIZE(ks8695_io_desc));
70
71 ks8695_processor_info();
72 ks8695_clock_info();
73}
diff --git a/arch/arm/mach-ks8695/devices.c b/arch/arm/mach-ks8695/devices.c
new file mode 100644
index 000000000000..386593f8ac65
--- /dev/null
+++ b/arch/arm/mach-ks8695/devices.c
@@ -0,0 +1,191 @@
1/*
2 * arch/arm/mach-ks8695/devices.c
3 *
4 * Copyright (C) 2006 Andrew Victor
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19
20#include <asm/mach/arch.h>
21#include <asm/mach/map.h>
22
23#include <linux/platform_device.h>
24
25#include <asm/arch/regs-wan.h>
26#include <asm/arch/regs-lan.h>
27#include <asm/arch/regs-hpna.h>
28
29
30/* --------------------------------------------------------------------
31 * Ethernet
32 * -------------------------------------------------------------------- */
33
34#if defined(CONFIG_ARM_KS8695_ETHER) || defined(CONFIG_ARM_KS8695_ETHER_MODULE)
35static u64 eth_dmamask = 0xffffffffUL;
36
37static struct resource ks8695_wan_resources[] = {
38 [0] = {
39 .start = KS8695_WAN_VA,
40 .end = KS8695_WAN_VA + 0x00ff,
41 .flags = IORESOURCE_MEM,
42 },
43 [1] = {
44 .name = "WAN RX",
45 .start = KS8695_IRQ_WAN_RX_STATUS,
46 .end = KS8695_IRQ_WAN_RX_STATUS,
47 .flags = IORESOURCE_IRQ,
48 },
49 [2] = {
50 .name = "WAN TX",
51 .start = KS8695_IRQ_WAN_TX_STATUS,
52 .end = KS8695_IRQ_WAN_TX_STATUS,
53 .flags = IORESOURCE_IRQ,
54 },
55 [3] = {
56 .name = "WAN Link",
57 .start = KS8695_IRQ_WAN_LINK,
58 .end = KS8695_IRQ_WAN_LINK,
59 .flags = IORESOURCE_IRQ,
60 },
61};
62
63static struct platform_device ks8695_wan_device = {
64 .name = "ks8695_ether",
65 .id = 0,
66 .dev = {
67 .dma_mask = &eth_dmamask,
68 .coherent_dma_mask = 0xffffffff,
69 },
70 .resource = ks8695_wan_resources,
71 .num_resources = ARRAY_SIZE(ks8695_wan_resources),
72};
73
74
75static struct resource ks8695_lan_resources[] = {
76 [0] = {
77 .start = KS8695_LAN_VA,
78 .end = KS8695_LAN_VA + 0x00ff,
79 .flags = IORESOURCE_MEM,
80 },
81 [1] = {
82 .name = "LAN RX",
83 .start = KS8695_IRQ_LAN_RX_STATUS,
84 .end = KS8695_IRQ_LAN_RX_STATUS,
85 .flags = IORESOURCE_IRQ,
86 },
87 [2] = {
88 .name = "LAN TX",
89 .start = KS8695_IRQ_LAN_TX_STATUS,
90 .end = KS8695_IRQ_LAN_TX_STATUS,
91 .flags = IORESOURCE_IRQ,
92 },
93};
94
95static struct platform_device ks8695_lan_device = {
96 .name = "ks8695_ether",
97 .id = 1,
98 .dev = {
99 .dma_mask = &eth_dmamask,
100 .coherent_dma_mask = 0xffffffff,
101 },
102 .resource = ks8695_lan_resources,
103 .num_resources = ARRAY_SIZE(ks8695_lan_resources),
104};
105
106
107static struct resource ks8695_hpna_resources[] = {
108 [0] = {
109 .start = KS8695_HPNA_VA,
110 .end = KS8695_HPNA_VA + 0x00ff,
111 .flags = IORESOURCE_MEM,
112 },
113 [1] = {
114 .name = "HPNA RX",
115 .start = KS8695_IRQ_HPNA_RX_STATUS,
116 .end = KS8695_IRQ_HPNA_RX_STATUS,
117 .flags = IORESOURCE_IRQ,
118 },
119 [2] = {
120 .name = "HPNA TX",
121 .start = KS8695_IRQ_HPNA_TX_STATUS,
122 .end = KS8695_IRQ_HPNA_TX_STATUS,
123 .flags = IORESOURCE_IRQ,
124 },
125};
126
127static struct platform_device ks8695_hpna_device = {
128 .name = "ks8695_ether",
129 .id = 2,
130 .dev = {
131 .dma_mask = &eth_dmamask,
132 .coherent_dma_mask = 0xffffffff,
133 },
134 .resource = ks8695_hpna_resources,
135 .num_resources = ARRAY_SIZE(ks8695_hpna_resources),
136};
137
138void __init ks8695_add_device_wan(void)
139{
140 platform_device_register(&ks8695_wan_device);
141}
142
143void __init ks8695_add_device_lan(void)
144{
145 platform_device_register(&ks8695_lan_device);
146}
147
148void __init ks8696_add_device_hpna(void)
149{
150 platform_device_register(&ks8695_hpna_device);
151}
152#else
153void __init ks8695_add_device_wan(void) {}
154void __init ks8695_add_device_lan(void) {}
155void __init ks8696_add_device_hpna(void) {}
156#endif
157
158
159/* --------------------------------------------------------------------
160 * Watchdog
161 * -------------------------------------------------------------------- */
162
163#if defined(CONFIG_KS8695_WATCHDOG) || defined(CONFIG_KS8695_WATCHDOG_MODULE)
164static struct platform_device ks8695_wdt_device = {
165 .name = "ks8695_wdt",
166 .id = -1,
167 .num_resources = 0,
168};
169
170static void __init ks8695_add_device_watchdog(void)
171{
172 platform_device_register(&ks8695_wdt_device);
173}
174#else
175static void __init ks8695_add_device_watchdog(void) {}
176#endif
177
178
179/* -------------------------------------------------------------------- */
180
181/*
182 * These devices are always present and don't need any board-specific
183 * setup.
184 */
185static int __init ks8695_add_standard_devices(void)
186{
187 ks8695_add_device_watchdog();
188 return 0;
189}
190
191arch_initcall(ks8695_add_standard_devices);
diff --git a/arch/arm/mach-ks8695/generic.h b/arch/arm/mach-ks8695/generic.h
new file mode 100644
index 000000000000..2fbfab8d5fae
--- /dev/null
+++ b/arch/arm/mach-ks8695/generic.h
@@ -0,0 +1,15 @@
1/*
2 * arch/arm/mach-ks8695/generic.h
3 *
4 * Copyright (C) 2006 Ben Dooks <ben@simtec.co.uk>
5 * Copyright (C) 2006 Simtec Electronics
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11*/
12
13extern __init void ks8695_map_io(void);
14extern __init void ks8695_init_irq(void);
15extern struct sys_timer ks8695_timer;
diff --git a/arch/arm/mach-ks8695/irq.c b/arch/arm/mach-ks8695/irq.c
new file mode 100644
index 000000000000..2407bba00547
--- /dev/null
+++ b/arch/arm/mach-ks8695/irq.c
@@ -0,0 +1,175 @@
1/*
2 * arch/arm/mach-ks8695/irq.c
3 *
4 * Copyright (C) 2006 Ben Dooks <ben@simtec.co.uk>
5 * Copyright (C) 2006 Simtec Electronics
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
22#include <linux/init.h>
23#include <linux/module.h>
24#include <linux/interrupt.h>
25#include <linux/ioport.h>
26#include <linux/ptrace.h>
27#include <linux/sysdev.h>
28
29#include <asm/hardware.h>
30#include <asm/irq.h>
31#include <asm/io.h>
32
33#include <asm/mach/irq.h>
34
35#include <asm/arch/regs-irq.h>
36#include <asm/arch/regs-gpio.h>
37
38static void ks8695_irq_mask(unsigned int irqno)
39{
40 unsigned long inten;
41
42 inten = __raw_readl(KS8695_IRQ_VA + KS8695_INTEN);
43 inten &= ~(1 << irqno);
44
45 __raw_writel(inten, KS8695_IRQ_VA + KS8695_INTEN);
46}
47
48static void ks8695_irq_unmask(unsigned int irqno)
49{
50 unsigned long inten;
51
52 inten = __raw_readl(KS8695_IRQ_VA + KS8695_INTEN);
53 inten |= (1 << irqno);
54
55 __raw_writel(inten, KS8695_IRQ_VA + KS8695_INTEN);
56}
57
58static void ks8695_irq_ack(unsigned int irqno)
59{
60 __raw_writel((1 << irqno), KS8695_IRQ_VA + KS8695_INTST);
61}
62
63
64static struct irq_chip ks8695_irq_level_chip;
65static struct irq_chip ks8695_irq_edge_chip;
66
67
68static int ks8695_irq_set_type(unsigned int irqno, unsigned int type)
69{
70 unsigned long ctrl, mode;
71 unsigned short level_triggered = 0;
72
73 ctrl = __raw_readl(KS8695_GPIO_VA + KS8695_IOPC);
74
75 switch (type) {
76 case IRQT_HIGH:
77 mode = IOPC_TM_HIGH;
78 level_triggered = 1;
79 break;
80 case IRQT_LOW:
81 mode = IOPC_TM_LOW;
82 level_triggered = 1;
83 break;
84 case IRQT_RISING:
85 mode = IOPC_TM_RISING;
86 break;
87 case IRQT_FALLING:
88 mode = IOPC_TM_FALLING;
89 break;
90 case IRQT_BOTHEDGE:
91 mode = IOPC_TM_EDGE;
92 break;
93 default:
94 return -EINVAL;
95 }
96
97 switch (irqno) {
98 case KS8695_IRQ_EXTERN0:
99 ctrl &= ~IOPC_IOEINT0TM;
100 ctrl |= IOPC_IOEINT0_MODE(mode);
101 break;
102 case KS8695_IRQ_EXTERN1:
103 ctrl &= ~IOPC_IOEINT1TM;
104 ctrl |= IOPC_IOEINT1_MODE(mode);
105 break;
106 case KS8695_IRQ_EXTERN2:
107 ctrl &= ~IOPC_IOEINT2TM;
108 ctrl |= IOPC_IOEINT2_MODE(mode);
109 break;
110 case KS8695_IRQ_EXTERN3:
111 ctrl &= ~IOPC_IOEINT3TM;
112 ctrl |= IOPC_IOEINT3_MODE(mode);
113 break;
114 default:
115 return -EINVAL;
116 }
117
118 if (level_triggered) {
119 set_irq_chip(irqno, &ks8695_irq_level_chip);
120 set_irq_handler(irqno, handle_level_irq);
121 }
122 else {
123 set_irq_chip(irqno, &ks8695_irq_edge_chip);
124 set_irq_handler(irqno, handle_edge_irq);
125 }
126
127 __raw_writel(ctrl, KS8695_GPIO_VA + KS8695_IOPC);
128 return 0;
129}
130
131static struct irq_chip ks8695_irq_level_chip = {
132 .ack = ks8695_irq_mask,
133 .mask = ks8695_irq_mask,
134 .unmask = ks8695_irq_unmask,
135 .set_type = ks8695_irq_set_type,
136};
137
138static struct irq_chip ks8695_irq_edge_chip = {
139 .ack = ks8695_irq_ack,
140 .mask = ks8695_irq_mask,
141 .unmask = ks8695_irq_unmask,
142 .set_type = ks8695_irq_set_type,
143};
144
145void __init ks8695_init_irq(void)
146{
147 unsigned int irq;
148
149 /* Disable all interrupts initially */
150 __raw_writel(0, KS8695_IRQ_VA + KS8695_INTMC);
151 __raw_writel(0, KS8695_IRQ_VA + KS8695_INTEN);
152
153 for (irq = 0; irq < NR_IRQS; irq++) {
154 switch (irq) {
155 /* Level-triggered interrupts */
156 case KS8695_IRQ_BUS_ERROR:
157 case KS8695_IRQ_UART_MODEM_STATUS:
158 case KS8695_IRQ_UART_LINE_STATUS:
159 case KS8695_IRQ_UART_RX:
160 case KS8695_IRQ_COMM_TX:
161 case KS8695_IRQ_COMM_RX:
162 set_irq_chip(irq, &ks8695_irq_level_chip);
163 set_irq_handler(irq, handle_level_irq);
164 break;
165
166 /* Edge-triggered interrupts */
167 default:
168 ks8695_irq_ack(irq); /* clear pending bit */
169 set_irq_chip(irq, &ks8695_irq_edge_chip);
170 set_irq_handler(irq, handle_edge_irq);
171 }
172
173 set_irq_flags(irq, IRQF_VALID);
174 }
175}
diff --git a/arch/arm/mach-ks8695/time.c b/arch/arm/mach-ks8695/time.c
new file mode 100644
index 000000000000..d2c86e4a72eb
--- /dev/null
+++ b/arch/arm/mach-ks8695/time.c
@@ -0,0 +1,114 @@
1/*
2 * arch/arm/mach-ks8695/time.c
3 *
4 * Copyright (C) 2006 Ben Dooks <ben@simtec.co.uk>
5 * Copyright (C) 2006 Simtec Electronics
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
22#include <linux/init.h>
23#include <linux/interrupt.h>
24#include <linux/irq.h>
25#include <linux/kernel.h>
26#include <linux/sched.h>
27
28#include <asm/io.h>
29#include <asm/mach/time.h>
30
31#include <asm/arch/regs-timer.h>
32#include <asm/arch/regs-irq.h>
33
34#include "generic.h"
35
36/*
37 * Returns number of ms since last clock interrupt. Note that interrupts
38 * will have been disabled by do_gettimeoffset()
39 */
40static unsigned long ks8695_gettimeoffset (void)
41{
42 unsigned long elapsed, tick2, intpending;
43
44 /*
45 * Get the current number of ticks. Note that there is a race
46 * condition between us reading the timer and checking for an
47 * interrupt. We solve this by ensuring that the counter has not
48 * reloaded between our two reads.
49 */
50 elapsed = __raw_readl(KS8695_TMR_VA + KS8695_T1TC) + __raw_readl(KS8695_TMR_VA + KS8695_T1PD);
51 do {
52 tick2 = elapsed;
53 intpending = __raw_readl(KS8695_IRQ_VA + KS8695_INTST) & (1 << KS8695_IRQ_TIMER1);
54 elapsed = __raw_readl(KS8695_TMR_VA + KS8695_T1TC) + __raw_readl(KS8695_TMR_VA + KS8695_T1PD);
55 } while (elapsed > tick2);
56
57 /* Convert to number of ticks expired (not remaining) */
58 elapsed = (CLOCK_TICK_RATE / HZ) - elapsed;
59
60 /* Is interrupt pending? If so, then timer has been reloaded already. */
61 if (intpending)
62 elapsed += (CLOCK_TICK_RATE / HZ);
63
64 /* Convert ticks to usecs */
65 return (unsigned long)(elapsed * (tick_nsec / 1000)) / LATCH;
66}
67
68/*
69 * IRQ handler for the timer.
70 */
71static irqreturn_t ks8695_timer_interrupt(int irq, void *dev_id)
72{
73 write_seqlock(&xtime_lock);
74 timer_tick();
75 write_sequnlock(&xtime_lock);
76
77 return IRQ_HANDLED;
78}
79
80static struct irqaction ks8695_timer_irq = {
81 .name = "ks8695_tick",
82 .flags = IRQF_DISABLED | IRQF_TIMER,
83 .handler = ks8695_timer_interrupt,
84};
85
86static void ks8695_timer_setup(void)
87{
88 unsigned long tmout = CLOCK_TICK_RATE / HZ;
89 unsigned long tmcon;
90
91 /* disable timer1 */
92 tmcon = __raw_readl(KS8695_TMR_VA + KS8695_TMCON);
93 __raw_writel(tmcon & ~TMCON_T1EN, KS8695_TMR_VA + KS8695_TMCON);
94
95 __raw_writel(tmout / 2, KS8695_TMR_VA + KS8695_T1TC);
96 __raw_writel(tmout / 2, KS8695_TMR_VA + KS8695_T1PD);
97
98 /* re-enable timer1 */
99 __raw_writel(tmcon | TMCON_T1EN, KS8695_TMR_VA + KS8695_TMCON);
100}
101
102static void __init ks8695_timer_init (void)
103{
104 ks8695_timer_setup();
105
106 /* Enable timer interrupts */
107 setup_irq(KS8695_IRQ_TIMER1, &ks8695_timer_irq);
108}
109
110struct sys_timer ks8695_timer = {
111 .init = ks8695_timer_init,
112 .offset = ks8695_gettimeoffset,
113 .resume = ks8695_timer_setup,
114};
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index 54c836a98456..e290b989aa94 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -54,7 +54,7 @@
54 54
55static struct resource gpmc_mem_root; 55static struct resource gpmc_mem_root;
56static struct resource gpmc_cs_mem[GPMC_CS_NUM]; 56static struct resource gpmc_cs_mem[GPMC_CS_NUM];
57static spinlock_t gpmc_mem_lock = SPIN_LOCK_UNLOCKED; 57static DEFINE_SPINLOCK(gpmc_mem_lock);
58static unsigned gpmc_cs_map; 58static unsigned gpmc_cs_map;
59 59
60static void __iomem *gpmc_base = 60static void __iomem *gpmc_base =
diff --git a/arch/arm/mach-pnx4008/dma.c b/arch/arm/mach-pnx4008/dma.c
index d6a279e4b524..f7009d845be8 100644
--- a/arch/arm/mach-pnx4008/dma.c
+++ b/arch/arm/mach-pnx4008/dma.c
@@ -47,7 +47,7 @@ static struct ll_pool {
47 int count; 47 int count;
48} ll_pool; 48} ll_pool;
49 49
50static spinlock_t ll_lock = SPIN_LOCK_UNLOCKED; 50static DEFINE_SPINLOCK(ll_lock);
51 51
52struct pnx4008_dma_ll *pnx4008_alloc_ll_entry(dma_addr_t * ll_dma) 52struct pnx4008_dma_ll *pnx4008_alloc_ll_entry(dma_addr_t * ll_dma)
53{ 53{
@@ -135,7 +135,7 @@ static inline void dma_decrement_usage(void)
135 } 135 }
136} 136}
137 137
138static spinlock_t dma_lock = SPIN_LOCK_UNLOCKED; 138static DEFINE_SPINLOCK(dma_lock);
139 139
140static inline void pnx4008_dma_lock(void) 140static inline void pnx4008_dma_lock(void)
141{ 141{
diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c
index 119c64b7223f..28c79bd0a3a0 100644
--- a/arch/arm/mach-pxa/trizeps4.c
+++ b/arch/arm/mach-pxa/trizeps4.c
@@ -24,6 +24,7 @@
24#include <linux/delay.h> 24#include <linux/delay.h>
25#include <linux/serial_8250.h> 25#include <linux/serial_8250.h>
26#include <linux/mtd/mtd.h> 26#include <linux/mtd/mtd.h>
27#include <linux/mtd/physmap.h>
27#include <linux/mtd/partitions.h> 28#include <linux/mtd/partitions.h>
28 29
29#include <asm/types.h> 30#include <asm/types.h>
@@ -55,23 +56,31 @@
55static struct mtd_partition trizeps4_partitions[] = { 56static struct mtd_partition trizeps4_partitions[] = {
56 { 57 {
57 .name = "Bootloader", 58 .name = "Bootloader",
59 .offset = 0x00000000,
58 .size = 0x00040000, 60 .size = 0x00040000,
59 .offset = 0,
60 .mask_flags = MTD_WRITEABLE /* force read-only */ 61 .mask_flags = MTD_WRITEABLE /* force read-only */
61 },{ 62 },{
62 .name = "Kernel", 63 .name = "Backup",
63 .size = 0x00400000, 64 .offset = 0x00040000,
64 .offset = 0x00040000 65 .size = 0x00040000,
66 },{
67 .name = "Image",
68 .offset = 0x00080000,
69 .size = 0x01080000,
70 },{
71 .name = "IPSM",
72 .offset = 0x01100000,
73 .size = 0x00e00000,
65 },{ 74 },{
66 .name = "Filesystem", 75 .name = "Registry",
76 .offset = 0x01f00000,
67 .size = MTDPART_SIZ_FULL, 77 .size = MTDPART_SIZ_FULL,
68 .offset = 0x00440000
69 } 78 }
70}; 79};
71 80
72static struct flash_platform_data trizeps4_flash_data[] = { 81static struct physmap_flash_data trizeps4_flash_data[] = {
73 { 82 {
74 .map_name = "cfi_probe", 83 .width = 4, /* bankwidth in bytes */
75 .parts = trizeps4_partitions, 84 .parts = trizeps4_partitions,
76 .nr_parts = ARRAY_SIZE(trizeps4_partitions) 85 .nr_parts = ARRAY_SIZE(trizeps4_partitions)
77 } 86 }
@@ -79,15 +88,15 @@ static struct flash_platform_data trizeps4_flash_data[] = {
79 88
80static struct resource flash_resource = { 89static struct resource flash_resource = {
81 .start = PXA_CS0_PHYS, 90 .start = PXA_CS0_PHYS,
82 .end = PXA_CS0_PHYS + SZ_64M - 1, 91 .end = PXA_CS0_PHYS + SZ_32M - 1,
83 .flags = IORESOURCE_MEM, 92 .flags = IORESOURCE_MEM,
84}; 93};
85 94
86static struct platform_device flash_device = { 95static struct platform_device flash_device = {
87 .name = "pxa2xx-flash", 96 .name = "physmap-flash",
88 .id = 0, 97 .id = 0,
89 .dev = { 98 .dev = {
90 .platform_data = &trizeps4_flash_data, 99 .platform_data = trizeps4_flash_data,
91 }, 100 },
92 .resource = &flash_resource, 101 .resource = &flash_resource,
93 .num_resources = 1, 102 .num_resources = 1,
@@ -393,11 +402,37 @@ static struct pxafb_mach_info sharp_lcd = {
393 .pxafb_backlight_power = board_backlight_power, 402 .pxafb_backlight_power = board_backlight_power,
394}; 403};
395 404
405static struct pxafb_mode_info toshiba_lcd_mode = {
406 .pixclock = 39720,
407 .xres = 640,
408 .yres = 480,
409 .bpp = 8,
410 .hsync_len = 63,
411 .left_margin = 12,
412 .right_margin = 12,
413 .vsync_len = 4,
414 .upper_margin = 32,
415 .lower_margin = 10,
416 .sync = 0,
417 .cmap_greyscale = 0,
418};
419
420static struct pxafb_mach_info toshiba_lcd = {
421 .modes = &toshiba_lcd_mode,
422 .num_modes = 1,
423 .cmap_inverse = 0,
424 .cmap_static = 0,
425 .lccr0 = LCCR0_Color | LCCR0_Act,
426 .lccr3 = 0x03400002,
427 .pxafb_backlight_power = board_backlight_power,
428};
429
396static void __init trizeps4_init(void) 430static void __init trizeps4_init(void)
397{ 431{
398 platform_add_devices(trizeps4_devices, ARRAY_SIZE(trizeps4_devices)); 432 platform_add_devices(trizeps4_devices, ARRAY_SIZE(trizeps4_devices));
399 433
400 set_pxa_fb_info(&sharp_lcd); 434/* set_pxa_fb_info(&sharp_lcd); */
435 set_pxa_fb_info(&toshiba_lcd);
401 436
402 pxa_set_mci_info(&trizeps4_mci_platform_data); 437 pxa_set_mci_info(&trizeps4_mci_platform_data);
403 pxa_set_ficp_info(&trizeps4_ficp_platform_data); 438 pxa_set_ficp_info(&trizeps4_ficp_platform_data);
@@ -436,9 +471,10 @@ static void __init trizeps4_map_io(void)
436 /* whats that for ??? */ 471 /* whats that for ??? */
437 pxa_gpio_mode(GPIO79_nCS_3_MD); 472 pxa_gpio_mode(GPIO79_nCS_3_MD);
438 473
474#ifdef CONFIG_LEDS
439 pxa_gpio_mode( GPIO_SYS_BUSY_LED | GPIO_OUT); /* LED1 */ 475 pxa_gpio_mode( GPIO_SYS_BUSY_LED | GPIO_OUT); /* LED1 */
440 pxa_gpio_mode( GPIO_HEARTBEAT_LED | GPIO_OUT); /* LED2 */ 476 pxa_gpio_mode( GPIO_HEARTBEAT_LED | GPIO_OUT); /* LED2 */
441 477#endif
442#ifdef CONFIG_MACH_TRIZEPS4_CONXS 478#ifdef CONFIG_MACH_TRIZEPS4_CONXS
443#ifdef CONFIG_IDE_PXA_CF 479#ifdef CONFIG_IDE_PXA_CF
444 /* if boot direct from compact flash dont disable power */ 480 /* if boot direct from compact flash dont disable power */
diff --git a/arch/arm/mach-s3c2410/Makefile b/arch/arm/mach-s3c2410/Makefile
index 9a3d3d24c084..3e7a85594d9c 100644
--- a/arch/arm/mach-s3c2410/Makefile
+++ b/arch/arm/mach-s3c2410/Makefile
@@ -20,7 +20,7 @@ obj-$(CONFIG_S3C2410_CLOCK) += clock.o
20# Machine support 20# Machine support
21 21
22obj-$(CONFIG_ARCH_SMDK2410) += mach-smdk2410.o 22obj-$(CONFIG_ARCH_SMDK2410) += mach-smdk2410.o
23obj-$(CONFIG_ARCH_H1940) += mach-h1940.o 23obj-$(CONFIG_ARCH_H1940) += mach-h1940.o h1940-bluetooth.o
24obj-$(CONFIG_PM_H1940) += pm-h1940.o 24obj-$(CONFIG_PM_H1940) += pm-h1940.o
25obj-$(CONFIG_MACH_N30) += mach-n30.o 25obj-$(CONFIG_MACH_N30) += mach-n30.o
26obj-$(CONFIG_ARCH_BAST) += mach-bast.o usb-simtec.o 26obj-$(CONFIG_ARCH_BAST) += mach-bast.o usb-simtec.o
diff --git a/arch/arm/mach-s3c2410/h1940-bluetooth.c b/arch/arm/mach-s3c2410/h1940-bluetooth.c
new file mode 100644
index 000000000000..3c48886521e7
--- /dev/null
+++ b/arch/arm/mach-s3c2410/h1940-bluetooth.c
@@ -0,0 +1,142 @@
1/*
2 * arch/arm/mach-s3c2410/h1940-bluetooth.c
3 * Copyright (c) Arnaud Patard <arnaud.patard@rtp-net.org>
4 *
5 * This file is subject to the terms and conditions of the GNU General Public
6 * License. See the file COPYING in the main directory of this archive for
7 * more details.
8 *
9 * S3C2410 bluetooth "driver"
10 *
11 */
12
13#include <linux/module.h>
14#include <linux/platform_device.h>
15#include <linux/delay.h>
16#include <linux/string.h>
17#include <linux/ctype.h>
18#include <linux/leds.h>
19#include <asm/arch/regs-gpio.h>
20#include <asm/hardware.h>
21#include <asm/arch/h1940-latch.h>
22
23#define DRV_NAME "h1940-bt"
24
25#ifdef CONFIG_LEDS_H1940
26DEFINE_LED_TRIGGER(bt_led_trigger);
27#endif
28
29static int state;
30
31/* Bluetooth control */
32static void h1940bt_enable(int on)
33{
34 if (on) {
35#ifdef CONFIG_LEDS_H1940
36 /* flashing Blue */
37 led_trigger_event(bt_led_trigger, LED_HALF);
38#endif
39
40 /* Power on the chip */
41 h1940_latch_control(0, H1940_LATCH_BLUETOOTH_POWER);
42 /* Reset the chip */
43 mdelay(10);
44 s3c2410_gpio_setpin(S3C2410_GPH1, 1);
45 mdelay(10);
46 s3c2410_gpio_setpin(S3C2410_GPH1, 0);
47
48 state = 1;
49 }
50 else {
51#ifdef CONFIG_LEDS_H1940
52 led_trigger_event(bt_led_trigger, 0);
53#endif
54
55 s3c2410_gpio_setpin(S3C2410_GPH1, 1);
56 mdelay(10);
57 s3c2410_gpio_setpin(S3C2410_GPH1, 0);
58 mdelay(10);
59 h1940_latch_control(H1940_LATCH_BLUETOOTH_POWER, 0);
60
61 state = 0;
62 }
63}
64
65static ssize_t h1940bt_show(struct device *dev, struct device_attribute *attr, char *buf)
66{
67 return snprintf(buf, PAGE_SIZE, "%d\n", state);
68}
69
70static ssize_t h1940bt_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
71{
72 int new_state;
73 char *endp;
74
75 new_state = simple_strtoul(buf, &endp, 0);
76 if (*endp && !isspace(*endp))
77 return -EINVAL;
78
79 h1940bt_enable(new_state);
80
81 return count;
82}
83static DEVICE_ATTR(enable, 0644,
84 h1940bt_show,
85 h1940bt_store);
86
87static int __init h1940bt_probe(struct platform_device *pdev)
88{
89 /* Configures BT serial port GPIOs */
90 s3c2410_gpio_cfgpin(S3C2410_GPH0, S3C2410_GPH0_nCTS0);
91 s3c2410_gpio_pullup(S3C2410_GPH0, 1);
92 s3c2410_gpio_cfgpin(S3C2410_GPH1, S3C2410_GPH1_OUTP);
93 s3c2410_gpio_pullup(S3C2410_GPH1, 1);
94 s3c2410_gpio_cfgpin(S3C2410_GPH2, S3C2410_GPH2_TXD0);
95 s3c2410_gpio_pullup(S3C2410_GPH2, 1);
96 s3c2410_gpio_cfgpin(S3C2410_GPH3, S3C2410_GPH3_RXD0);
97 s3c2410_gpio_pullup(S3C2410_GPH3, 1);
98
99#ifdef CONFIG_LEDS_H1940
100 led_trigger_register_simple("h1940-bluetooth", &bt_led_trigger);
101#endif
102
103 /* disable BT by default */
104 h1940bt_enable(0);
105
106 return device_create_file(&pdev->dev, &dev_attr_enable);
107}
108
109static int h1940bt_remove(struct platform_device *pdev)
110{
111#ifdef CONFIG_LEDS_H1940
112 led_trigger_unregister_simple(bt_led_trigger);
113#endif
114 return 0;
115}
116
117
118static struct platform_driver h1940bt_driver = {
119 .driver = {
120 .name = DRV_NAME,
121 },
122 .probe = h1940bt_probe,
123 .remove = h1940bt_remove,
124};
125
126
127static int __init h1940bt_init(void)
128{
129 return platform_driver_register(&h1940bt_driver);
130}
131
132static void __exit h1940bt_exit(void)
133{
134 platform_driver_unregister(&h1940bt_driver);
135}
136
137module_init(h1940bt_init);
138module_exit(h1940bt_exit);
139
140MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>");
141MODULE_DESCRIPTION("Driver for the iPAQ H1940 bluetooth chip");
142MODULE_LICENSE("GPL");
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c
index 5d5f00e9c462..5ccd0be23a33 100644
--- a/arch/arm/mach-s3c2410/mach-h1940.c
+++ b/arch/arm/mach-s3c2410/mach-h1940.c
@@ -177,6 +177,11 @@ static struct platform_device s3c_device_leds = {
177 .id = -1, 177 .id = -1,
178}; 178};
179 179
180static struct platform_device s3c_device_bluetooth = {
181 .name = "h1940-bt",
182 .id = -1,
183};
184
180static struct platform_device *h1940_devices[] __initdata = { 185static struct platform_device *h1940_devices[] __initdata = {
181 &s3c_device_usb, 186 &s3c_device_usb,
182 &s3c_device_lcd, 187 &s3c_device_lcd,
@@ -185,6 +190,7 @@ static struct platform_device *h1940_devices[] __initdata = {
185 &s3c_device_iis, 190 &s3c_device_iis,
186 &s3c_device_usbgadget, 191 &s3c_device_usbgadget,
187 &s3c_device_leds, 192 &s3c_device_leds,
193 &s3c_device_bluetooth,
188}; 194};
189 195
190static void __init h1940_map_io(void) 196static void __init h1940_map_io(void)
diff --git a/arch/arm/mach-s3c2443/clock.c b/arch/arm/mach-s3c2443/clock.c
index dd2272fb1131..0b6e360aeae7 100644
--- a/arch/arm/mach-s3c2443/clock.c
+++ b/arch/arm/mach-s3c2443/clock.c
@@ -791,6 +791,10 @@ static struct clk init_clocks[] = {
791 .name = "usb-bus-host", 791 .name = "usb-bus-host",
792 .id = -1, 792 .id = -1,
793 .parent = &clk_usb_bus_host, 793 .parent = &clk_usb_bus_host,
794 }, { .name = "ac97",
795 .id = -1,
796 .parent = &clk_p,
797 .ctrlbit = S3C2443_PCLKCON_AC97,
794 } 798 }
795}; 799};
796 800
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index b81391a4e374..15f0284010ca 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -131,8 +131,8 @@ config CPU_ARM920T
131# ARM922T 131# ARM922T
132config CPU_ARM922T 132config CPU_ARM922T
133 bool "Support ARM922T processor" if ARCH_INTEGRATOR 133 bool "Support ARM922T processor" if ARCH_INTEGRATOR
134 depends on ARCH_LH7A40X || ARCH_INTEGRATOR 134 depends on ARCH_LH7A40X || ARCH_INTEGRATOR || ARCH_KS8695
135 default y if ARCH_LH7A40X 135 default y if ARCH_LH7A40X || ARCH_KS8695
136 select CPU_32v4T 136 select CPU_32v4T
137 select CPU_ABRT_EV4T 137 select CPU_ABRT_EV4T
138 select CPU_CACHE_V4WT 138 select CPU_CACHE_V4WT
@@ -143,7 +143,7 @@ config CPU_ARM922T
143 help 143 help
144 The ARM922T is a version of the ARM920T, but with smaller 144 The ARM922T is a version of the ARM920T, but with smaller
145 instruction and data caches. It is used in Altera's 145 instruction and data caches. It is used in Altera's
146 Excalibur XA device family. 146 Excalibur XA device family and Micrel's KS8695 Centaur.
147 147
148 Say Y if you want support for the ARM922T processor. 148 Say Y if you want support for the ARM922T processor.
149 Otherwise, say N. 149 Otherwise, say N.
@@ -171,8 +171,8 @@ config CPU_ARM925T
171# ARM926T 171# ARM926T
172config CPU_ARM926T 172config CPU_ARM926T
173 bool "Support ARM926T processor" 173 bool "Support ARM926T processor"
174 depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || MACH_REALVIEW_EB || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261 || ARCH_AT91SAM9263 || ARCH_NS9XXX 174 depends on ARCH_INTEGRATOR || ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || MACH_REALVIEW_EB || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_NS9XXX || ARCH_DAVINCI
175 default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261 || ARCH_AT91SAM9263 || ARCH_NS9XXX 175 default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || ARCH_OMAP730 || ARCH_OMAP16XX || ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || ARCH_AT91SAM9260 || ARCH_AT91SAM9261 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_NS9XXX || ARCH_DAVINCI
176 select CPU_32v5 176 select CPU_32v5
177 select CPU_ABRT_EV5TJ 177 select CPU_ABRT_EV5TJ
178 select CPU_CACHE_VIVT 178 select CPU_CACHE_VIVT
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
index b1142ce4ac47..0a9a5e7f62e5 100644
--- a/arch/arm/tools/mach-types
+++ b/arch/arm/tools/mach-types
@@ -12,7 +12,7 @@
12# 12#
13# http://www.arm.linux.org.uk/developer/machines/?action=new 13# http://www.arm.linux.org.uk/developer/machines/?action=new
14# 14#
15# Last update: Mon Apr 16 21:01:04 2007 15# Last update: Fri May 11 19:53:41 2007
16# 16#
17# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number 17# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
18# 18#
@@ -1335,3 +1335,35 @@ at91sam9rlek MACH_AT91SAM9RLEK AT91SAM9RLEK 1326
1335comtech_router MACH_COMTECH_ROUTER COMTECH_ROUTER 1327 1335comtech_router MACH_COMTECH_ROUTER COMTECH_ROUTER 1327
1336sbc2410x MACH_SBC2410X SBC2410X 1328 1336sbc2410x MACH_SBC2410X SBC2410X 1328
1337at4x0bd MACH_AT4X0BD AT4X0BD 1329 1337at4x0bd MACH_AT4X0BD AT4X0BD 1329
1338cbifr MACH_CBIFR CBIFR 1330
1339arcom_quantum MACH_ARCOM_QUANTUM ARCOM_QUANTUM 1331
1340matrix520 MACH_MATRIX520 MATRIX520 1332
1341matrix510 MACH_MATRIX510 MATRIX510 1333
1342matrix500 MACH_MATRIX500 MATRIX500 1334
1343m501 MACH_M501 M501 1335
1344aaeon1270 MACH_AAEON1270 AAEON1270 1336
1345matrix500ev MACH_MATRIX500EV MATRIX500EV 1337
1346pac500 MACH_PAC500 PAC500 1338
1347pnx8181 MACH_PNX8181 PNX8181 1339
1348colibri320 MACH_COLIBRI320 COLIBRI320 1340
1349aztoolbb MACH_AZTOOLBB AZTOOLBB 1341
1350aztoolg2 MACH_AZTOOLG2 AZTOOLG2 1342
1351dvlhost MACH_DVLHOST DVLHOST 1343
1352zir9200 MACH_ZIR9200 ZIR9200 1344
1353zir9260 MACH_ZIR9260 ZIR9260 1345
1354cocopah MACH_COCOPAH COCOPAH 1346
1355nds MACH_NDS NDS 1347
1356rosencrantz MACH_ROSENCRANTZ ROSENCRANTZ 1348
1357fttx_odsc MACH_FTTX_ODSC FTTX_ODSC 1349
1358classe_r6904 MACH_CLASSE_R6904 CLASSE_R6904 1350
1359cam60 MACH_CAM60 CAM60 1351
1360mxc30031ads MACH_MXC30031ADS MXC30031ADS 1352
1361datacall MACH_DATACALL DATACALL 1353
1362at91eb01 MACH_AT91EB01 AT91EB01 1354
1363rty MACH_RTY RTY 1355
1364dwl2100 MACH_DWL2100 DWL2100 1356
1365vinsi MACH_VINSI VINSI 1357
1366db88f5281 MACH_DB88F5281 DB88F5281 1358
1367csb726 MACH_CSB726 CSB726 1359
1368tik27 MACH_TIK27 TIK27 1360
1369mx_uc7420 MACH_MX_UC7420 MX_UC7420 1361