summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:14:24 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:29:45 +0100
commit29d6678fd546377459ef75cf54abeef5b969b5cf (patch)
tree8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch
parentda49de6885ee1bc424e70bc02f21f6ab920efb55 (diff)
downloadpoky-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch')
-rw-r--r--meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch2851
1 files changed, 2851 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch b/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch
new file mode 100644
index 0000000000..dc68ce9d43
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch
@@ -0,0 +1,2851 @@
1From 299199b0cf17d0247a58af6ccd6cf6b859c60e9a Mon Sep 17 00:00:00 2001
2From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
3Date: Fri, 20 Jul 2007 18:55:59 -0400
4Subject: [PATCH] cm-x270-base2
5
6---
7 arch/arm/Kconfig | 8 +-
8 arch/arm/configs/cm_x270_defconfig | 1567 +++++++++++++++++++++++++++++++++++
9 arch/arm/mach-pxa/Kconfig | 6 +
10 arch/arm/mach-pxa/Makefile | 7 +
11 arch/arm/mach-pxa/cm-x270.c | 821 ++++++++++++++++++
12 drivers/leds/Kconfig | 6 +
13 drivers/leds/Makefile | 1 +
14 drivers/leds/leds-cm-x270.c | 126 +++
15 drivers/net/Kconfig | 8 +
16 drivers/net/dm9000.c | 6 +
17 include/asm-arm/arch-pxa/cm-x270.h | 71 ++
18 include/asm-arm/arch-pxa/hardware.h | 11 +
19 include/asm-arm/arch-pxa/irqs.h | 20 +
20 include/asm-arm/memory.h | 10 +
21 14 files changed, 2667 insertions(+), 1 deletions(-)
22 create mode 100644 arch/arm/configs/cm_x270_defconfig
23 create mode 100644 arch/arm/mach-pxa/cm-x270.c
24 create mode 100644 drivers/leds/leds-cm-x270.c
25 create mode 100644 include/asm-arm/arch-pxa/cm-x270.h
26
27diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
28index 691aae3..b9a2b11 100644
29--- a/arch/arm/Kconfig
30+++ b/arch/arm/Kconfig
31@@ -534,7 +534,7 @@ config ISA_DMA_API
32 bool
33
34 config PCI
35- bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695
36+ bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE
37 help
38 Find out whether you have a PCI motherboard. PCI is the name of a
39 bus system, i.e. the way the CPU talks to the other stuff inside
40@@ -555,6 +555,12 @@ config PCI_HOST_VIA82C505
41 depends on PCI && ARCH_SHARK
42 default y
43
44+config PCI_HOST_ITE8152
45+ bool
46+ depends on PCI && MACH_ARMCORE
47+ default y
48+ select DMABOUNCE
49+
50 source "drivers/pci/Kconfig"
51
52 source "drivers/pcmcia/Kconfig"
53diff --git a/arch/arm/configs/cm_x270_defconfig b/arch/arm/configs/cm_x270_defconfig
54new file mode 100644
55index 0000000..f728363
56--- /dev/null
57+++ b/arch/arm/configs/cm_x270_defconfig
58@@ -0,0 +1,1567 @@
59+#
60+# Automatically generated make config: don't edit
61+# Linux kernel version: 2.6.21-rc4
62+# Wed Apr 4 16:42:03 2007
63+#
64+CONFIG_ARM=y
65+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
66+CONFIG_GENERIC_GPIO=y
67+CONFIG_GENERIC_TIME=y
68+CONFIG_MMU=y
69+# CONFIG_NO_IOPORT is not set
70+CONFIG_GENERIC_HARDIRQS=y
71+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
72+CONFIG_HARDIRQS_SW_RESEND=y
73+CONFIG_GENERIC_IRQ_PROBE=y
74+CONFIG_RWSEM_GENERIC_SPINLOCK=y
75+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
76+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
77+CONFIG_GENERIC_HWEIGHT=y
78+CONFIG_GENERIC_CALIBRATE_DELAY=y
79+CONFIG_ZONE_DMA=y
80+CONFIG_ARCH_MTD_XIP=y
81+CONFIG_VECTORS_BASE=0xffff0000
82+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
83+
84+#
85+# Code maturity level options
86+#
87+CONFIG_EXPERIMENTAL=y
88+CONFIG_BROKEN_ON_SMP=y
89+CONFIG_INIT_ENV_ARG_LIMIT=32
90+
91+#
92+# General setup
93+#
94+CONFIG_LOCALVERSION=""
95+# CONFIG_LOCALVERSION_AUTO is not set
96+CONFIG_SWAP=y
97+CONFIG_SYSVIPC=y
98+# CONFIG_IPC_NS is not set
99+CONFIG_SYSVIPC_SYSCTL=y
100+# CONFIG_POSIX_MQUEUE is not set
101+# CONFIG_BSD_PROCESS_ACCT is not set
102+# CONFIG_TASKSTATS is not set
103+# CONFIG_UTS_NS is not set
104+# CONFIG_AUDIT is not set
105+CONFIG_IKCONFIG=y
106+CONFIG_IKCONFIG_PROC=y
107+CONFIG_SYSFS_DEPRECATED=y
108+# CONFIG_RELAY is not set
109+CONFIG_BLK_DEV_INITRD=y
110+CONFIG_INITRAMFS_SOURCE=""
111+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
112+CONFIG_SYSCTL=y
113+CONFIG_EMBEDDED=y
114+CONFIG_UID16=y
115+CONFIG_SYSCTL_SYSCALL=y
116+CONFIG_KALLSYMS=y
117+# CONFIG_KALLSYMS_ALL is not set
118+# CONFIG_KALLSYMS_EXTRA_PASS is not set
119+CONFIG_HOTPLUG=y
120+CONFIG_PRINTK=y
121+CONFIG_BUG=y
122+CONFIG_ELF_CORE=y
123+CONFIG_BASE_FULL=y
124+CONFIG_FUTEX=y
125+CONFIG_EPOLL=y
126+CONFIG_SHMEM=y
127+CONFIG_SLAB=y
128+CONFIG_VM_EVENT_COUNTERS=y
129+CONFIG_RT_MUTEXES=y
130+# CONFIG_TINY_SHMEM is not set
131+CONFIG_BASE_SMALL=0
132+# CONFIG_SLOB is not set
133+
134+#
135+# Loadable module support
136+#
137+CONFIG_MODULES=y
138+CONFIG_MODULE_UNLOAD=y
139+CONFIG_MODULE_FORCE_UNLOAD=y
140+# CONFIG_MODVERSIONS is not set
141+# CONFIG_MODULE_SRCVERSION_ALL is not set
142+CONFIG_KMOD=y
143+
144+#
145+# Block layer
146+#
147+CONFIG_BLOCK=y
148+# CONFIG_LBD is not set
149+# CONFIG_BLK_DEV_IO_TRACE is not set
150+# CONFIG_LSF is not set
151+
152+#
153+# IO Schedulers
154+#
155+CONFIG_IOSCHED_NOOP=y
156+CONFIG_IOSCHED_AS=y
157+CONFIG_IOSCHED_DEADLINE=y
158+CONFIG_IOSCHED_CFQ=y
159+CONFIG_DEFAULT_AS=y
160+# CONFIG_DEFAULT_DEADLINE is not set
161+# CONFIG_DEFAULT_CFQ is not set
162+# CONFIG_DEFAULT_NOOP is not set
163+CONFIG_DEFAULT_IOSCHED="anticipatory"
164+
165+#
166+# System Type
167+#
168+# CONFIG_ARCH_AAEC2000 is not set
169+# CONFIG_ARCH_INTEGRATOR is not set
170+# CONFIG_ARCH_REALVIEW is not set
171+# CONFIG_ARCH_VERSATILE is not set
172+# CONFIG_ARCH_AT91 is not set
173+# CONFIG_ARCH_CLPS7500 is not set
174+# CONFIG_ARCH_CLPS711X is not set
175+# CONFIG_ARCH_CO285 is not set
176+# CONFIG_ARCH_EBSA110 is not set
177+# CONFIG_ARCH_EP93XX is not set
178+# CONFIG_ARCH_FOOTBRIDGE is not set
179+# CONFIG_ARCH_NETX is not set
180+# CONFIG_ARCH_H720X is not set
181+# CONFIG_ARCH_IMX is not set
182+# CONFIG_ARCH_IOP32X is not set
183+# CONFIG_ARCH_IOP33X is not set
184+# CONFIG_ARCH_IOP13XX is not set
185+# CONFIG_ARCH_IXP4XX is not set
186+# CONFIG_ARCH_IXP2000 is not set
187+# CONFIG_ARCH_IXP23XX is not set
188+# CONFIG_ARCH_L7200 is not set
189+# CONFIG_ARCH_NS9XXX is not set
190+# CONFIG_ARCH_PNX4008 is not set
191+CONFIG_ARCH_PXA=y
192+# CONFIG_ARCH_RPC is not set
193+# CONFIG_ARCH_SA1100 is not set
194+# CONFIG_ARCH_S3C2410 is not set
195+# CONFIG_ARCH_SHARK is not set
196+# CONFIG_ARCH_LH7A40X is not set
197+# CONFIG_ARCH_OMAP is not set
198+CONFIG_DMABOUNCE=y
199+
200+#
201+# Intel PXA2xx Implementations
202+#
203+# CONFIG_ARCH_LUBBOCK is not set
204+# CONFIG_MACH_LOGICPD_PXA270 is not set
205+# CONFIG_MACH_MAINSTONE is not set
206+# CONFIG_ARCH_PXA_IDP is not set
207+# CONFIG_PXA_SHARPSL is not set
208+# CONFIG_MACH_TRIZEPS4 is not set
209+CONFIG_MACH_ARMCORE=y
210+CONFIG_PXA27x=y
211+
212+#
213+# Processor Type
214+#
215+CONFIG_CPU_32=y
216+CONFIG_CPU_XSCALE=y
217+CONFIG_CPU_32v5=y
218+CONFIG_CPU_ABRT_EV5T=y
219+CONFIG_CPU_CACHE_VIVT=y
220+CONFIG_CPU_TLB_V4WBI=y
221+CONFIG_CPU_CP15=y
222+CONFIG_CPU_CP15_MMU=y
223+
224+#
225+# Processor Features
226+#
227+CONFIG_ARM_THUMB=y
228+# CONFIG_CPU_DCACHE_DISABLE is not set
229+# CONFIG_OUTER_CACHE is not set
230+CONFIG_IWMMXT=y
231+CONFIG_XSCALE_PMU=y
232+
233+#
234+# Bus support
235+#
236+CONFIG_PCI=y
237+CONFIG_PCI_HOST_ITE8152=y
238+# CONFIG_PCI_DEBUG is not set
239+
240+#
241+# PCCARD (PCMCIA/CardBus) support
242+#
243+CONFIG_PCCARD=y
244+# CONFIG_PCMCIA_DEBUG is not set
245+CONFIG_PCMCIA=m
246+# CONFIG_PCMCIA_LOAD_CIS is not set
247+CONFIG_PCMCIA_IOCTL=y
248+CONFIG_CARDBUS=y
249+
250+#
251+# PC-card bridges
252+#
253+# CONFIG_YENTA is not set
254+# CONFIG_PD6729 is not set
255+# CONFIG_I82092 is not set
256+CONFIG_PCMCIA_PXA2XX=m
257+
258+#
259+# Kernel Features
260+#
261+# CONFIG_PREEMPT is not set
262+# CONFIG_NO_IDLE_HZ is not set
263+CONFIG_HZ=100
264+# CONFIG_AEABI is not set
265+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
266+CONFIG_SELECT_MEMORY_MODEL=y
267+CONFIG_FLATMEM_MANUAL=y
268+# CONFIG_DISCONTIGMEM_MANUAL is not set
269+# CONFIG_SPARSEMEM_MANUAL is not set
270+CONFIG_FLATMEM=y
271+CONFIG_FLAT_NODE_MEM_MAP=y
272+# CONFIG_SPARSEMEM_STATIC is not set
273+CONFIG_SPLIT_PTLOCK_CPUS=4096
274+# CONFIG_RESOURCES_64BIT is not set
275+CONFIG_ZONE_DMA_FLAG=1
276+CONFIG_ALIGNMENT_TRAP=y
277+
278+#
279+# Boot options
280+#
281+CONFIG_ZBOOT_ROM_TEXT=0x0
282+CONFIG_ZBOOT_ROM_BSS=0x0
283+CONFIG_CMDLINE=""
284+# CONFIG_XIP_KERNEL is not set
285+# CONFIG_KEXEC is not set
286+
287+#
288+# Floating point emulation
289+#
290+
291+#
292+# At least one emulation must be selected
293+#
294+CONFIG_FPE_NWFPE=y
295+# CONFIG_FPE_NWFPE_XP is not set
296+# CONFIG_FPE_FASTFPE is not set
297+
298+#
299+# Userspace binary formats
300+#
301+CONFIG_BINFMT_ELF=y
302+# CONFIG_BINFMT_AOUT is not set
303+# CONFIG_BINFMT_MISC is not set
304+# CONFIG_ARTHUR is not set
305+
306+#
307+# Power management options
308+#
309+CONFIG_PM=y
310+# CONFIG_PM_LEGACY is not set
311+# CONFIG_PM_DEBUG is not set
312+# CONFIG_PM_SYSFS_DEPRECATED is not set
313+# CONFIG_APM_EMULATION is not set
314+
315+#
316+# Networking
317+#
318+CONFIG_NET=y
319+
320+#
321+# Networking options
322+#
323+# CONFIG_NETDEBUG is not set
324+CONFIG_PACKET=y
325+# CONFIG_PACKET_MMAP is not set
326+CONFIG_UNIX=y
327+CONFIG_XFRM=y
328+# CONFIG_XFRM_USER is not set
329+# CONFIG_XFRM_SUB_POLICY is not set
330+# CONFIG_XFRM_MIGRATE is not set
331+# CONFIG_NET_KEY is not set
332+CONFIG_INET=y
333+# CONFIG_IP_MULTICAST is not set
334+# CONFIG_IP_ADVANCED_ROUTER is not set
335+CONFIG_IP_FIB_HASH=y
336+CONFIG_IP_PNP=y
337+CONFIG_IP_PNP_DHCP=y
338+CONFIG_IP_PNP_BOOTP=y
339+# CONFIG_IP_PNP_RARP is not set
340+# CONFIG_NET_IPIP is not set
341+# CONFIG_NET_IPGRE is not set
342+# CONFIG_ARPD is not set
343+# CONFIG_SYN_COOKIES is not set
344+# CONFIG_INET_AH is not set
345+# CONFIG_INET_ESP is not set
346+# CONFIG_INET_IPCOMP is not set
347+# CONFIG_INET_XFRM_TUNNEL is not set
348+# CONFIG_INET_TUNNEL is not set
349+CONFIG_INET_XFRM_MODE_TRANSPORT=y
350+CONFIG_INET_XFRM_MODE_TUNNEL=y
351+CONFIG_INET_XFRM_MODE_BEET=y
352+CONFIG_INET_DIAG=y
353+CONFIG_INET_TCP_DIAG=y
354+# CONFIG_TCP_CONG_ADVANCED is not set
355+CONFIG_TCP_CONG_CUBIC=y
356+CONFIG_DEFAULT_TCP_CONG="cubic"
357+# CONFIG_TCP_MD5SIG is not set
358+# CONFIG_IPV6 is not set
359+# CONFIG_INET6_XFRM_TUNNEL is not set
360+# CONFIG_INET6_TUNNEL is not set
361+# CONFIG_NETWORK_SECMARK is not set
362+# CONFIG_NETFILTER is not set
363+
364+#
365+# DCCP Configuration (EXPERIMENTAL)
366+#
367+# CONFIG_IP_DCCP is not set
368+
369+#
370+# SCTP Configuration (EXPERIMENTAL)
371+#
372+# CONFIG_IP_SCTP is not set
373+
374+#
375+# TIPC Configuration (EXPERIMENTAL)
376+#
377+# CONFIG_TIPC is not set
378+# CONFIG_ATM is not set
379+# CONFIG_BRIDGE is not set
380+# CONFIG_VLAN_8021Q is not set
381+# CONFIG_DECNET is not set
382+# CONFIG_LLC2 is not set
383+# CONFIG_IPX is not set
384+# CONFIG_ATALK is not set
385+# CONFIG_X25 is not set
386+# CONFIG_LAPB is not set
387+# CONFIG_ECONET is not set
388+# CONFIG_WAN_ROUTER is not set
389+
390+#
391+# QoS and/or fair queueing
392+#
393+# CONFIG_NET_SCHED is not set
394+
395+#
396+# Network testing
397+#
398+# CONFIG_NET_PKTGEN is not set
399+# CONFIG_HAMRADIO is not set
400+# CONFIG_IRDA is not set
401+# CONFIG_BT is not set
402+CONFIG_IEEE80211=m
403+# CONFIG_IEEE80211_DEBUG is not set
404+CONFIG_IEEE80211_CRYPT_WEP=m
405+CONFIG_IEEE80211_CRYPT_CCMP=m
406+# CONFIG_IEEE80211_CRYPT_TKIP is not set
407+# CONFIG_IEEE80211_SOFTMAC is not set
408+CONFIG_WIRELESS_EXT=y
409+
410+#
411+# Device Drivers
412+#
413+
414+#
415+# Generic Driver Options
416+#
417+CONFIG_STANDALONE=y
418+CONFIG_PREVENT_FIRMWARE_BUILD=y
419+CONFIG_FW_LOADER=y
420+# CONFIG_DEBUG_DRIVER is not set
421+# CONFIG_DEBUG_DEVRES is not set
422+# CONFIG_SYS_HYPERVISOR is not set
423+
424+#
425+# Connector - unified userspace <-> kernelspace linker
426+#
427+# CONFIG_CONNECTOR is not set
428+
429+#
430+# Memory Technology Devices (MTD)
431+#
432+CONFIG_MTD=m
433+# CONFIG_MTD_DEBUG is not set
434+# CONFIG_MTD_CONCAT is not set
435+CONFIG_MTD_PARTITIONS=y
436+# CONFIG_MTD_REDBOOT_PARTS is not set
437+# CONFIG_MTD_AFS_PARTS is not set
438+
439+#
440+# User Modules And Translation Layers
441+#
442+CONFIG_MTD_CHAR=m
443+CONFIG_MTD_BLKDEVS=m
444+CONFIG_MTD_BLOCK=m
445+# CONFIG_MTD_BLOCK_RO is not set
446+# CONFIG_FTL is not set
447+# CONFIG_NFTL is not set
448+# CONFIG_INFTL is not set
449+# CONFIG_RFD_FTL is not set
450+# CONFIG_SSFDC is not set
451+
452+#
453+# RAM/ROM/Flash chip drivers
454+#
455+# CONFIG_MTD_CFI is not set
456+# CONFIG_MTD_JEDECPROBE is not set
457+CONFIG_MTD_MAP_BANK_WIDTH_1=y
458+CONFIG_MTD_MAP_BANK_WIDTH_2=y
459+CONFIG_MTD_MAP_BANK_WIDTH_4=y
460+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
461+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
462+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
463+CONFIG_MTD_CFI_I1=y
464+CONFIG_MTD_CFI_I2=y
465+# CONFIG_MTD_CFI_I4 is not set
466+# CONFIG_MTD_CFI_I8 is not set
467+# CONFIG_MTD_RAM is not set
468+# CONFIG_MTD_ROM is not set
469+# CONFIG_MTD_ABSENT is not set
470+# CONFIG_MTD_OBSOLETE_CHIPS is not set
471+
472+#
473+# Mapping drivers for chip access
474+#
475+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
476+# CONFIG_MTD_SHARP_SL is not set
477+# CONFIG_MTD_PLATRAM is not set
478+
479+#
480+# Self-contained MTD device drivers
481+#
482+# CONFIG_MTD_PMC551 is not set
483+# CONFIG_MTD_SLRAM is not set
484+# CONFIG_MTD_PHRAM is not set
485+# CONFIG_MTD_MTDRAM is not set
486+# CONFIG_MTD_BLOCK2MTD is not set
487+
488+#
489+# Disk-On-Chip Device Drivers
490+#
491+# CONFIG_MTD_DOC2000 is not set
492+# CONFIG_MTD_DOC2001 is not set
493+# CONFIG_MTD_DOC2001PLUS is not set
494+
495+#
496+# NAND Flash Device Drivers
497+#
498+CONFIG_MTD_NAND=m
499+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
500+# CONFIG_MTD_NAND_ECC_SMC is not set
501+# CONFIG_MTD_NAND_H1900 is not set
502+CONFIG_MTD_NAND_IDS=m
503+# CONFIG_MTD_NAND_DISKONCHIP is not set
504+# CONFIG_MTD_NAND_SHARPSL is not set
505+# CONFIG_MTD_NAND_CAFE is not set
506+CONFIG_MTD_NAND_CM_X270=m
507+# CONFIG_MTD_NAND_NANDSIM is not set
508+
509+#
510+# OneNAND Flash Device Drivers
511+#
512+# CONFIG_MTD_ONENAND is not set
513+
514+#
515+# Parallel port support
516+#
517+# CONFIG_PARPORT is not set
518+
519+#
520+# Plug and Play support
521+#
522+# CONFIG_PNPACPI is not set
523+
524+#
525+# Block devices
526+#
527+# CONFIG_BLK_CPQ_DA is not set
528+# CONFIG_BLK_CPQ_CISS_DA is not set
529+# CONFIG_BLK_DEV_DAC960 is not set
530+# CONFIG_BLK_DEV_UMEM is not set
531+# CONFIG_BLK_DEV_COW_COMMON is not set
532+CONFIG_BLK_DEV_LOOP=y
533+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
534+# CONFIG_BLK_DEV_NBD is not set
535+# CONFIG_BLK_DEV_SX8 is not set
536+# CONFIG_BLK_DEV_UB is not set
537+CONFIG_BLK_DEV_RAM=y
538+CONFIG_BLK_DEV_RAM_COUNT=16
539+CONFIG_BLK_DEV_RAM_SIZE=12000
540+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
541+# CONFIG_CDROM_PKTCDVD is not set
542+# CONFIG_ATA_OVER_ETH is not set
543+
544+#
545+# ATA/ATAPI/MFM/RLL support
546+#
547+CONFIG_IDE=m
548+CONFIG_IDE_MAX_HWIFS=4
549+CONFIG_BLK_DEV_IDE=m
550+
551+#
552+# Please see Documentation/ide.txt for help/info on IDE drives
553+#
554+# CONFIG_BLK_DEV_IDE_SATA is not set
555+CONFIG_BLK_DEV_IDEDISK=m
556+# CONFIG_IDEDISK_MULTI_MODE is not set
557+CONFIG_BLK_DEV_IDECS=m
558+# CONFIG_BLK_DEV_DELKIN is not set
559+CONFIG_BLK_DEV_IDECD=m
560+# CONFIG_BLK_DEV_IDETAPE is not set
561+# CONFIG_BLK_DEV_IDEFLOPPY is not set
562+# CONFIG_BLK_DEV_IDESCSI is not set
563+# CONFIG_IDE_TASK_IOCTL is not set
564+
565+#
566+# IDE chipset support/bugfixes
567+#
568+# CONFIG_IDE_GENERIC is not set
569+# CONFIG_BLK_DEV_IDEPCI is not set
570+# CONFIG_IDE_ARM is not set
571+CONFIG_BLK_DEV_IDE_CM_X270=m
572+# CONFIG_BLK_DEV_IDEDMA is not set
573+# CONFIG_BLK_DEV_HD is not set
574+
575+#
576+# SCSI device support
577+#
578+# CONFIG_RAID_ATTRS is not set
579+CONFIG_SCSI=y
580+# CONFIG_SCSI_TGT is not set
581+# CONFIG_SCSI_NETLINK is not set
582+# CONFIG_SCSI_PROC_FS is not set
583+
584+#
585+# SCSI support type (disk, tape, CD-ROM)
586+#
587+CONFIG_BLK_DEV_SD=y
588+# CONFIG_CHR_DEV_ST is not set
589+# CONFIG_CHR_DEV_OSST is not set
590+# CONFIG_BLK_DEV_SR is not set
591+# CONFIG_CHR_DEV_SG is not set
592+# CONFIG_CHR_DEV_SCH is not set
593+
594+#
595+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
596+#
597+# CONFIG_SCSI_MULTI_LUN is not set
598+# CONFIG_SCSI_CONSTANTS is not set
599+# CONFIG_SCSI_LOGGING is not set
600+# CONFIG_SCSI_SCAN_ASYNC is not set
601+
602+#
603+# SCSI Transports
604+#
605+# CONFIG_SCSI_SPI_ATTRS is not set
606+# CONFIG_SCSI_FC_ATTRS is not set
607+# CONFIG_SCSI_ISCSI_ATTRS is not set
608+# CONFIG_SCSI_SAS_ATTRS is not set
609+# CONFIG_SCSI_SAS_LIBSAS is not set
610+
611+#
612+# SCSI low-level drivers
613+#
614+# CONFIG_ISCSI_TCP is not set
615+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
616+# CONFIG_SCSI_3W_9XXX is not set
617+# CONFIG_SCSI_ACARD is not set
618+# CONFIG_SCSI_AACRAID is not set
619+# CONFIG_SCSI_AIC7XXX is not set
620+# CONFIG_SCSI_AIC7XXX_OLD is not set
621+# CONFIG_SCSI_AIC79XX is not set
622+# CONFIG_SCSI_AIC94XX is not set
623+# CONFIG_SCSI_DPT_I2O is not set
624+# CONFIG_SCSI_ARCMSR is not set
625+# CONFIG_MEGARAID_NEWGEN is not set
626+# CONFIG_MEGARAID_LEGACY is not set
627+# CONFIG_MEGARAID_SAS is not set
628+# CONFIG_SCSI_HPTIOP is not set
629+# CONFIG_SCSI_DMX3191D is not set
630+# CONFIG_SCSI_FUTURE_DOMAIN is not set
631+# CONFIG_SCSI_IPS is not set
632+# CONFIG_SCSI_INITIO is not set
633+# CONFIG_SCSI_INIA100 is not set
634+# CONFIG_SCSI_STEX is not set
635+# CONFIG_SCSI_SYM53C8XX_2 is not set
636+# CONFIG_SCSI_QLOGIC_1280 is not set
637+# CONFIG_SCSI_QLA_FC is not set
638+# CONFIG_SCSI_QLA_ISCSI is not set
639+# CONFIG_SCSI_LPFC is not set
640+# CONFIG_SCSI_DC395x is not set
641+# CONFIG_SCSI_DC390T is not set
642+# CONFIG_SCSI_NSP32 is not set
643+# CONFIG_SCSI_DEBUG is not set
644+# CONFIG_SCSI_SRP is not set
645+
646+#
647+# PCMCIA SCSI adapter support
648+#
649+# CONFIG_PCMCIA_AHA152X is not set
650+# CONFIG_PCMCIA_FDOMAIN is not set
651+# CONFIG_PCMCIA_NINJA_SCSI is not set
652+# CONFIG_PCMCIA_QLOGIC is not set
653+# CONFIG_PCMCIA_SYM53C500 is not set
654+
655+#
656+# Serial ATA (prod) and Parallel ATA (experimental) drivers
657+#
658+# CONFIG_ATA is not set
659+
660+#
661+# Multi-device support (RAID and LVM)
662+#
663+# CONFIG_MD is not set
664+
665+#
666+# Fusion MPT device support
667+#
668+# CONFIG_FUSION is not set
669+# CONFIG_FUSION_SPI is not set
670+# CONFIG_FUSION_FC is not set
671+# CONFIG_FUSION_SAS is not set
672+
673+#
674+# IEEE 1394 (FireWire) support
675+#
676+# CONFIG_IEEE1394 is not set
677+
678+#
679+# I2O device support
680+#
681+# CONFIG_I2O is not set
682+
683+#
684+# Network device support
685+#
686+CONFIG_NETDEVICES=y
687+# CONFIG_DUMMY is not set
688+# CONFIG_BONDING is not set
689+# CONFIG_EQUALIZER is not set
690+# CONFIG_TUN is not set
691+
692+#
693+# ARCnet devices
694+#
695+# CONFIG_ARCNET is not set
696+
697+#
698+# PHY device support
699+#
700+# CONFIG_PHYLIB is not set
701+
702+#
703+# Ethernet (10 or 100Mbit)
704+#
705+CONFIG_NET_ETHERNET=y
706+CONFIG_MII=y
707+# CONFIG_HAPPYMEAL is not set
708+# CONFIG_SUNGEM is not set
709+# CONFIG_CASSINI is not set
710+# CONFIG_NET_VENDOR_3COM is not set
711+# CONFIG_SMC91X is not set
712+CONFIG_DM9000=y
713+CONFIG_DM9000_NOEPROM=y
714+# CONFIG_SMC911X is not set
715+
716+#
717+# Tulip family network device support
718+#
719+# CONFIG_NET_TULIP is not set
720+# CONFIG_HP100 is not set
721+CONFIG_NET_PCI=y
722+# CONFIG_PCNET32 is not set
723+# CONFIG_AMD8111_ETH is not set
724+# CONFIG_ADAPTEC_STARFIRE is not set
725+# CONFIG_B44 is not set
726+# CONFIG_FORCEDETH is not set
727+# CONFIG_DGRS is not set
728+# CONFIG_EEPRO100 is not set
729+# CONFIG_E100 is not set
730+# CONFIG_FEALNX is not set
731+# CONFIG_NATSEMI is not set
732+# CONFIG_NE2K_PCI is not set
733+# CONFIG_8139CP is not set
734+CONFIG_8139TOO=m
735+# CONFIG_8139TOO_PIO is not set
736+# CONFIG_8139TOO_TUNE_TWISTER is not set
737+# CONFIG_8139TOO_8129 is not set
738+# CONFIG_8139_OLD_RX_RESET is not set
739+# CONFIG_SIS900 is not set
740+# CONFIG_EPIC100 is not set
741+# CONFIG_SUNDANCE is not set
742+# CONFIG_TLAN is not set
743+# CONFIG_VIA_RHINE is not set
744+# CONFIG_SC92031 is not set
745+
746+#
747+# Ethernet (1000 Mbit)
748+#
749+# CONFIG_ACENIC is not set
750+# CONFIG_DL2K is not set
751+# CONFIG_E1000 is not set
752+# CONFIG_NS83820 is not set
753+# CONFIG_HAMACHI is not set
754+# CONFIG_YELLOWFIN is not set
755+# CONFIG_R8169 is not set
756+# CONFIG_SIS190 is not set
757+# CONFIG_SKGE is not set
758+# CONFIG_SKY2 is not set
759+# CONFIG_SK98LIN is not set
760+# CONFIG_VIA_VELOCITY is not set
761+# CONFIG_TIGON3 is not set
762+# CONFIG_BNX2 is not set
763+# CONFIG_QLA3XXX is not set
764+# CONFIG_ATL1 is not set
765+
766+#
767+# Ethernet (10000 Mbit)
768+#
769+# CONFIG_CHELSIO_T1 is not set
770+# CONFIG_CHELSIO_T3 is not set
771+# CONFIG_IXGB is not set
772+# CONFIG_S2IO is not set
773+# CONFIG_MYRI10GE is not set
774+# CONFIG_NETXEN_NIC is not set
775+
776+#
777+# Token Ring devices
778+#
779+# CONFIG_TR is not set
780+
781+#
782+# Wireless LAN (non-hamradio)
783+#
784+CONFIG_NET_RADIO=y
785+# CONFIG_NET_WIRELESS_RTNETLINK is not set
786+
787+#
788+# Obsolete Wireless cards support (pre-802.11)
789+#
790+# CONFIG_STRIP is not set
791+# CONFIG_PCMCIA_WAVELAN is not set
792+# CONFIG_PCMCIA_NETWAVE is not set
793+
794+#
795+# Wireless 802.11 Frequency Hopping cards support
796+#
797+# CONFIG_PCMCIA_RAYCS is not set
798+
799+#
800+# Wireless 802.11b ISA/PCI cards support
801+#
802+# CONFIG_IPW2100 is not set
803+# CONFIG_IPW2200 is not set
804+# CONFIG_HERMES is not set
805+# CONFIG_ATMEL is not set
806+
807+#
808+# Wireless 802.11b Pcmcia/Cardbus cards support
809+#
810+# CONFIG_AIRO_CS is not set
811+# CONFIG_PCMCIA_WL3501 is not set
812+
813+#
814+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
815+#
816+# CONFIG_PRISM54 is not set
817+# CONFIG_USB_ZD1201 is not set
818+# CONFIG_HOSTAP is not set
819+CONFIG_NET_WIRELESS=y
820+
821+#
822+# PCMCIA network device support
823+#
824+CONFIG_NET_PCMCIA=y
825+# CONFIG_PCMCIA_3C589 is not set
826+# CONFIG_PCMCIA_3C574 is not set
827+# CONFIG_PCMCIA_FMVJ18X is not set
828+CONFIG_PCMCIA_PCNET=m
829+# CONFIG_PCMCIA_NMCLAN is not set
830+# CONFIG_PCMCIA_SMC91C92 is not set
831+# CONFIG_PCMCIA_XIRC2PS is not set
832+# CONFIG_PCMCIA_AXNET is not set
833+
834+#
835+# Wan interfaces
836+#
837+# CONFIG_WAN is not set
838+# CONFIG_FDDI is not set
839+# CONFIG_HIPPI is not set
840+# CONFIG_PPP is not set
841+# CONFIG_SLIP is not set
842+# CONFIG_NET_FC is not set
843+# CONFIG_SHAPER is not set
844+# CONFIG_NETCONSOLE is not set
845+# CONFIG_NETPOLL is not set
846+# CONFIG_NET_POLL_CONTROLLER is not set
847+
848+#
849+# ISDN subsystem
850+#
851+# CONFIG_ISDN is not set
852+
853+#
854+# Input device support
855+#
856+CONFIG_INPUT=y
857+# CONFIG_INPUT_FF_MEMLESS is not set
858+
859+#
860+# Userland interfaces
861+#
862+# CONFIG_INPUT_MOUSEDEV is not set
863+# CONFIG_INPUT_JOYDEV is not set
864+# CONFIG_INPUT_TSDEV is not set
865+CONFIG_INPUT_EVDEV=y
866+# CONFIG_INPUT_EVBUG is not set
867+
868+#
869+# Input Device Drivers
870+#
871+# CONFIG_INPUT_KEYBOARD is not set
872+# CONFIG_INPUT_MOUSE is not set
873+# CONFIG_INPUT_JOYSTICK is not set
874+CONFIG_INPUT_TOUCHSCREEN=y
875+# CONFIG_TOUCHSCREEN_GUNZE is not set
876+# CONFIG_TOUCHSCREEN_ELO is not set
877+# CONFIG_TOUCHSCREEN_MTOUCH is not set
878+# CONFIG_TOUCHSCREEN_MK712 is not set
879+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
880+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
881+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
882+CONFIG_TOUCHSCREEN_UCB1400=m
883+# CONFIG_INPUT_MISC is not set
884+
885+#
886+# Hardware I/O ports
887+#
888+# CONFIG_SERIO is not set
889+# CONFIG_GAMEPORT is not set
890+
891+#
892+# Character devices
893+#
894+CONFIG_VT=y
895+CONFIG_VT_CONSOLE=y
896+CONFIG_HW_CONSOLE=y
897+# CONFIG_VT_HW_CONSOLE_BINDING is not set
898+# CONFIG_SERIAL_NONSTANDARD is not set
899+
900+#
901+# Serial drivers
902+#
903+# CONFIG_SERIAL_8250 is not set
904+
905+#
906+# Non-8250 serial port support
907+#
908+CONFIG_SERIAL_PXA=y
909+CONFIG_SERIAL_PXA_CONSOLE=y
910+CONFIG_SERIAL_CORE=y
911+CONFIG_SERIAL_CORE_CONSOLE=y
912+# CONFIG_SERIAL_JSM is not set
913+CONFIG_UNIX98_PTYS=y
914+CONFIG_LEGACY_PTYS=y
915+CONFIG_LEGACY_PTY_COUNT=256
916+
917+#
918+# IPMI
919+#
920+# CONFIG_IPMI_HANDLER is not set
921+
922+#
923+# Watchdog Cards
924+#
925+# CONFIG_WATCHDOG is not set
926+CONFIG_HW_RANDOM=m
927+# CONFIG_NVRAM is not set
928+# CONFIG_DTLK is not set
929+# CONFIG_R3964 is not set
930+# CONFIG_APPLICOM is not set
931+# CONFIG_DRM is not set
932+
933+#
934+# PCMCIA character devices
935+#
936+# CONFIG_SYNCLINK_CS is not set
937+# CONFIG_CARDMAN_4000 is not set
938+# CONFIG_CARDMAN_4040 is not set
939+# CONFIG_RAW_DRIVER is not set
940+
941+#
942+# TPM devices
943+#
944+# CONFIG_TCG_TPM is not set
945+
946+#
947+# I2C support
948+#
949+# CONFIG_I2C is not set
950+
951+#
952+# SPI support
953+#
954+# CONFIG_SPI is not set
955+# CONFIG_SPI_MASTER is not set
956+
957+#
958+# Dallas's 1-wire bus
959+#
960+# CONFIG_W1 is not set
961+
962+#
963+# Hardware Monitoring support
964+#
965+# CONFIG_HWMON is not set
966+# CONFIG_HWMON_VID is not set
967+
968+#
969+# Misc devices
970+#
971+# CONFIG_SGI_IOC4 is not set
972+# CONFIG_TIFM_CORE is not set
973+
974+#
975+# Multifunction device drivers
976+#
977+# CONFIG_MFD_SM501 is not set
978+
979+#
980+# LED devices
981+#
982+CONFIG_NEW_LEDS=y
983+CONFIG_LEDS_CLASS=y
984+
985+#
986+# LED drivers
987+#
988+CONFIG_LEDS_CM_X270=y
989+
990+#
991+# LED Triggers
992+#
993+CONFIG_LEDS_TRIGGERS=y
994+# CONFIG_LEDS_TRIGGER_TIMER is not set
995+# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
996+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
997+
998+#
999+# Multimedia devices
1000+#
1001+# CONFIG_VIDEO_DEV is not set
1002+
1003+#
1004+# Digital Video Broadcasting Devices
1005+#
1006+# CONFIG_DVB is not set
1007+# CONFIG_USB_DABUSB is not set
1008+
1009+#
1010+# Graphics support
1011+#
1012+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1013+CONFIG_FB=y
1014+# CONFIG_FIRMWARE_EDID is not set
1015+# CONFIG_FB_DDC is not set
1016+CONFIG_FB_CFB_FILLRECT=y
1017+CONFIG_FB_CFB_COPYAREA=y
1018+CONFIG_FB_CFB_IMAGEBLIT=y
1019+# CONFIG_FB_SVGALIB is not set
1020+# CONFIG_FB_MACMODES is not set
1021+# CONFIG_FB_BACKLIGHT is not set
1022+# CONFIG_FB_MODE_HELPERS is not set
1023+# CONFIG_FB_TILEBLITTING is not set
1024+
1025+#
1026+# Frambuffer hardware drivers
1027+#
1028+# CONFIG_FB_CIRRUS is not set
1029+# CONFIG_FB_PM2 is not set
1030+# CONFIG_FB_CYBER2000 is not set
1031+# CONFIG_FB_ASILIANT is not set
1032+# CONFIG_FB_IMSTT is not set
1033+# CONFIG_FB_S1D13XXX is not set
1034+# CONFIG_FB_NVIDIA is not set
1035+# CONFIG_FB_RIVA is not set
1036+# CONFIG_FB_MATROX is not set
1037+# CONFIG_FB_RADEON is not set
1038+# CONFIG_FB_ATY128 is not set
1039+# CONFIG_FB_ATY is not set
1040+# CONFIG_FB_S3 is not set
1041+# CONFIG_FB_SAVAGE is not set
1042+# CONFIG_FB_SIS is not set
1043+# CONFIG_FB_NEOMAGIC is not set
1044+# CONFIG_FB_KYRO is not set
1045+# CONFIG_FB_3DFX is not set
1046+# CONFIG_FB_VOODOO1 is not set
1047+# CONFIG_FB_TRIDENT is not set
1048+CONFIG_FB_PXA=y
1049+# CONFIG_FB_PXA_PARAMETERS is not set
1050+CONFIG_FB_MBX=m
1051+# CONFIG_FB_VIRTUAL is not set
1052+
1053+#
1054+# Console display driver support
1055+#
1056+# CONFIG_VGA_CONSOLE is not set
1057+CONFIG_DUMMY_CONSOLE=y
1058+CONFIG_FRAMEBUFFER_CONSOLE=y
1059+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
1060+# CONFIG_FONTS is not set
1061+CONFIG_FONT_8x8=y
1062+CONFIG_FONT_8x16=y
1063+
1064+#
1065+# Logo configuration
1066+#
1067+CONFIG_LOGO=y
1068+CONFIG_LOGO_LINUX_MONO=y
1069+CONFIG_LOGO_LINUX_VGA16=y
1070+CONFIG_LOGO_LINUX_CLUT224=y
1071+
1072+#
1073+# Sound
1074+#
1075+CONFIG_SOUND=m
1076+
1077+#
1078+# Advanced Linux Sound Architecture
1079+#
1080+CONFIG_SND=m
1081+CONFIG_SND_TIMER=m
1082+CONFIG_SND_PCM=m
1083+# CONFIG_SND_SEQUENCER is not set
1084+CONFIG_SND_OSSEMUL=y
1085+CONFIG_SND_MIXER_OSS=m
1086+CONFIG_SND_PCM_OSS=m
1087+CONFIG_SND_PCM_OSS_PLUGINS=y
1088+# CONFIG_SND_DYNAMIC_MINORS is not set
1089+CONFIG_SND_SUPPORT_OLD_API=y
1090+CONFIG_SND_VERBOSE_PROCFS=y
1091+# CONFIG_SND_VERBOSE_PRINTK is not set
1092+# CONFIG_SND_DEBUG is not set
1093+
1094+#
1095+# Generic devices
1096+#
1097+CONFIG_SND_AC97_CODEC=m
1098+# CONFIG_SND_DUMMY is not set
1099+# CONFIG_SND_MTPAV is not set
1100+# CONFIG_SND_SERIAL_U16550 is not set
1101+# CONFIG_SND_MPU401 is not set
1102+
1103+#
1104+# PCI devices
1105+#
1106+# CONFIG_SND_AD1889 is not set
1107+# CONFIG_SND_ALS300 is not set
1108+# CONFIG_SND_ALI5451 is not set
1109+# CONFIG_SND_ATIIXP is not set
1110+# CONFIG_SND_ATIIXP_MODEM is not set
1111+# CONFIG_SND_AU8810 is not set
1112+# CONFIG_SND_AU8820 is not set
1113+# CONFIG_SND_AU8830 is not set
1114+# CONFIG_SND_AZT3328 is not set
1115+# CONFIG_SND_BT87X is not set
1116+# CONFIG_SND_CA0106 is not set
1117+# CONFIG_SND_CMIPCI is not set
1118+# CONFIG_SND_CS4281 is not set
1119+# CONFIG_SND_CS46XX is not set
1120+# CONFIG_SND_DARLA20 is not set
1121+# CONFIG_SND_GINA20 is not set
1122+# CONFIG_SND_LAYLA20 is not set
1123+# CONFIG_SND_DARLA24 is not set
1124+# CONFIG_SND_GINA24 is not set
1125+# CONFIG_SND_LAYLA24 is not set
1126+# CONFIG_SND_MONA is not set
1127+# CONFIG_SND_MIA is not set
1128+# CONFIG_SND_ECHO3G is not set
1129+# CONFIG_SND_INDIGO is not set
1130+# CONFIG_SND_INDIGOIO is not set
1131+# CONFIG_SND_INDIGODJ is not set
1132+# CONFIG_SND_EMU10K1 is not set
1133+# CONFIG_SND_EMU10K1X is not set
1134+# CONFIG_SND_ENS1370 is not set
1135+# CONFIG_SND_ENS1371 is not set
1136+# CONFIG_SND_ES1938 is not set
1137+# CONFIG_SND_ES1968 is not set
1138+# CONFIG_SND_FM801 is not set
1139+# CONFIG_SND_HDA_INTEL is not set
1140+# CONFIG_SND_HDSP is not set
1141+# CONFIG_SND_HDSPM is not set
1142+# CONFIG_SND_ICE1712 is not set
1143+# CONFIG_SND_ICE1724 is not set
1144+# CONFIG_SND_INTEL8X0 is not set
1145+# CONFIG_SND_INTEL8X0M is not set
1146+# CONFIG_SND_KORG1212 is not set
1147+# CONFIG_SND_MAESTRO3 is not set
1148+# CONFIG_SND_MIXART is not set
1149+# CONFIG_SND_NM256 is not set
1150+# CONFIG_SND_PCXHR is not set
1151+# CONFIG_SND_RIPTIDE is not set
1152+# CONFIG_SND_RME32 is not set
1153+# CONFIG_SND_RME96 is not set
1154+# CONFIG_SND_RME9652 is not set
1155+# CONFIG_SND_SONICVIBES is not set
1156+# CONFIG_SND_TRIDENT is not set
1157+# CONFIG_SND_VIA82XX is not set
1158+# CONFIG_SND_VIA82XX_MODEM is not set
1159+# CONFIG_SND_VX222 is not set
1160+# CONFIG_SND_YMFPCI is not set
1161+# CONFIG_SND_AC97_POWER_SAVE is not set
1162+
1163+#
1164+# ALSA ARM devices
1165+#
1166+CONFIG_SND_PXA2XX_PCM=m
1167+CONFIG_SND_PXA2XX_AC97=m
1168+
1169+#
1170+# USB devices
1171+#
1172+# CONFIG_SND_USB_AUDIO is not set
1173+
1174+#
1175+# PCMCIA devices
1176+#
1177+# CONFIG_SND_VXPOCKET is not set
1178+# CONFIG_SND_PDAUDIOCF is not set
1179+
1180+#
1181+# SoC audio support
1182+#
1183+# CONFIG_SND_SOC is not set
1184+
1185+#
1186+# Open Sound System
1187+#
1188+# CONFIG_SOUND_PRIME is not set
1189+CONFIG_AC97_BUS=m
1190+
1191+#
1192+# HID Devices
1193+#
1194+CONFIG_HID=y
1195+# CONFIG_HID_DEBUG is not set
1196+
1197+#
1198+# USB support
1199+#
1200+CONFIG_USB_ARCH_HAS_HCD=y
1201+CONFIG_USB_ARCH_HAS_OHCI=y
1202+CONFIG_USB_ARCH_HAS_EHCI=y
1203+CONFIG_USB=y
1204+# CONFIG_USB_DEBUG is not set
1205+
1206+#
1207+# Miscellaneous USB options
1208+#
1209+CONFIG_USB_DEVICEFS=y
1210+# CONFIG_USB_DYNAMIC_MINORS is not set
1211+# CONFIG_USB_SUSPEND is not set
1212+# CONFIG_USB_OTG is not set
1213+
1214+#
1215+# USB Host Controller Drivers
1216+#
1217+# CONFIG_USB_EHCI_HCD is not set
1218+# CONFIG_USB_ISP116X_HCD is not set
1219+CONFIG_USB_OHCI_HCD=y
1220+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1221+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1222+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1223+# CONFIG_USB_UHCI_HCD is not set
1224+# CONFIG_USB_SL811_HCD is not set
1225+
1226+#
1227+# USB Device Class drivers
1228+#
1229+# CONFIG_USB_ACM is not set
1230+# CONFIG_USB_PRINTER is not set
1231+
1232+#
1233+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1234+#
1235+
1236+#
1237+# may also be needed; see USB_STORAGE Help for more information
1238+#
1239+CONFIG_USB_STORAGE=y
1240+# CONFIG_USB_STORAGE_DEBUG is not set
1241+# CONFIG_USB_STORAGE_DATAFAB is not set
1242+# CONFIG_USB_STORAGE_FREECOM is not set
1243+# CONFIG_USB_STORAGE_DPCM is not set
1244+# CONFIG_USB_STORAGE_USBAT is not set
1245+# CONFIG_USB_STORAGE_SDDR09 is not set
1246+# CONFIG_USB_STORAGE_SDDR55 is not set
1247+# CONFIG_USB_STORAGE_JUMPSHOT is not set
1248+# CONFIG_USB_STORAGE_ALAUDA is not set
1249+# CONFIG_USB_STORAGE_KARMA is not set
1250+# CONFIG_USB_LIBUSUAL is not set
1251+
1252+#
1253+# USB Input Devices
1254+#
1255+CONFIG_USB_HID=y
1256+# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1257+# CONFIG_HID_FF is not set
1258+# CONFIG_USB_HIDDEV is not set
1259+# CONFIG_USB_AIPTEK is not set
1260+# CONFIG_USB_WACOM is not set
1261+# CONFIG_USB_ACECAD is not set
1262+# CONFIG_USB_KBTAB is not set
1263+# CONFIG_USB_POWERMATE is not set
1264+# CONFIG_USB_TOUCHSCREEN is not set
1265+# CONFIG_USB_YEALINK is not set
1266+# CONFIG_USB_XPAD is not set
1267+# CONFIG_USB_ATI_REMOTE is not set
1268+# CONFIG_USB_ATI_REMOTE2 is not set
1269+# CONFIG_USB_KEYSPAN_REMOTE is not set
1270+# CONFIG_USB_APPLETOUCH is not set
1271+# CONFIG_USB_GTCO is not set
1272+
1273+#
1274+# USB Imaging devices
1275+#
1276+# CONFIG_USB_MDC800 is not set
1277+# CONFIG_USB_MICROTEK is not set
1278+
1279+#
1280+# USB Network Adapters
1281+#
1282+# CONFIG_USB_CATC is not set
1283+# CONFIG_USB_KAWETH is not set
1284+# CONFIG_USB_PEGASUS is not set
1285+# CONFIG_USB_RTL8150 is not set
1286+# CONFIG_USB_USBNET_MII is not set
1287+# CONFIG_USB_USBNET is not set
1288+CONFIG_USB_MON=y
1289+
1290+#
1291+# USB port drivers
1292+#
1293+
1294+#
1295+# USB Serial Converter support
1296+#
1297+# CONFIG_USB_SERIAL is not set
1298+
1299+#
1300+# USB Miscellaneous drivers
1301+#
1302+# CONFIG_USB_EMI62 is not set
1303+# CONFIG_USB_EMI26 is not set
1304+# CONFIG_USB_ADUTUX is not set
1305+# CONFIG_USB_AUERSWALD is not set
1306+# CONFIG_USB_RIO500 is not set
1307+# CONFIG_USB_LEGOTOWER is not set
1308+# CONFIG_USB_LCD is not set
1309+# CONFIG_USB_BERRY_CHARGE is not set
1310+# CONFIG_USB_LED is not set
1311+# CONFIG_USB_CYPRESS_CY7C63 is not set
1312+# CONFIG_USB_CYTHERM is not set
1313+# CONFIG_USB_PHIDGET is not set
1314+# CONFIG_USB_IDMOUSE is not set
1315+# CONFIG_USB_FTDI_ELAN is not set
1316+# CONFIG_USB_APPLEDISPLAY is not set
1317+# CONFIG_USB_LD is not set
1318+# CONFIG_USB_TRANCEVIBRATOR is not set
1319+# CONFIG_USB_IOWARRIOR is not set
1320+# CONFIG_USB_TEST is not set
1321+
1322+#
1323+# USB DSL modem support
1324+#
1325+
1326+#
1327+# USB Gadget Support
1328+#
1329+# CONFIG_USB_GADGET is not set
1330+
1331+#
1332+# MMC/SD Card support
1333+#
1334+CONFIG_MMC=m
1335+# CONFIG_MMC_DEBUG is not set
1336+CONFIG_MMC_BLOCK=m
1337+CONFIG_MMC_PXA=m
1338+# CONFIG_MMC_SDHCI is not set
1339+# CONFIG_MMC_TIFM_SD is not set
1340+
1341+#
1342+# Real Time Clock
1343+#
1344+CONFIG_RTC_LIB=y
1345+CONFIG_RTC_CLASS=y
1346+CONFIG_RTC_HCTOSYS=y
1347+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1348+# CONFIG_RTC_DEBUG is not set
1349+
1350+#
1351+# RTC interfaces
1352+#
1353+CONFIG_RTC_INTF_SYSFS=y
1354+CONFIG_RTC_INTF_PROC=y
1355+CONFIG_RTC_INTF_DEV=y
1356+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1357+
1358+#
1359+# RTC drivers
1360+#
1361+# CONFIG_RTC_DRV_CMOS is not set
1362+# CONFIG_RTC_DRV_DS1553 is not set
1363+# CONFIG_RTC_DRV_DS1742 is not set
1364+# CONFIG_RTC_DRV_M48T86 is not set
1365+CONFIG_RTC_DRV_SA1100=y
1366+# CONFIG_RTC_DRV_TEST is not set
1367+CONFIG_RTC_DRV_V3020=y
1368+
1369+#
1370+# File systems
1371+#
1372+CONFIG_EXT2_FS=y
1373+# CONFIG_EXT2_FS_XATTR is not set
1374+# CONFIG_EXT2_FS_XIP is not set
1375+CONFIG_EXT3_FS=y
1376+CONFIG_EXT3_FS_XATTR=y
1377+# CONFIG_EXT3_FS_POSIX_ACL is not set
1378+# CONFIG_EXT3_FS_SECURITY is not set
1379+# CONFIG_EXT4DEV_FS is not set
1380+CONFIG_JBD=y
1381+# CONFIG_JBD_DEBUG is not set
1382+CONFIG_FS_MBCACHE=y
1383+# CONFIG_REISERFS_FS is not set
1384+# CONFIG_JFS_FS is not set
1385+# CONFIG_FS_POSIX_ACL is not set
1386+# CONFIG_XFS_FS is not set
1387+# CONFIG_GFS2_FS is not set
1388+# CONFIG_OCFS2_FS is not set
1389+# CONFIG_MINIX_FS is not set
1390+# CONFIG_ROMFS_FS is not set
1391+CONFIG_INOTIFY=y
1392+CONFIG_INOTIFY_USER=y
1393+# CONFIG_QUOTA is not set
1394+CONFIG_DNOTIFY=y
1395+# CONFIG_AUTOFS_FS is not set
1396+# CONFIG_AUTOFS4_FS is not set
1397+# CONFIG_FUSE_FS is not set
1398+
1399+#
1400+# CD-ROM/DVD Filesystems
1401+#
1402+# CONFIG_ISO9660_FS is not set
1403+# CONFIG_UDF_FS is not set
1404+
1405+#
1406+# DOS/FAT/NT Filesystems
1407+#
1408+CONFIG_FAT_FS=y
1409+CONFIG_MSDOS_FS=y
1410+CONFIG_VFAT_FS=y
1411+CONFIG_FAT_DEFAULT_CODEPAGE=437
1412+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1413+# CONFIG_NTFS_FS is not set
1414+
1415+#
1416+# Pseudo filesystems
1417+#
1418+CONFIG_PROC_FS=y
1419+CONFIG_PROC_SYSCTL=y
1420+CONFIG_SYSFS=y
1421+CONFIG_TMPFS=y
1422+# CONFIG_TMPFS_POSIX_ACL is not set
1423+# CONFIG_HUGETLB_PAGE is not set
1424+CONFIG_RAMFS=y
1425+# CONFIG_CONFIGFS_FS is not set
1426+
1427+#
1428+# Miscellaneous filesystems
1429+#
1430+# CONFIG_ADFS_FS is not set
1431+# CONFIG_AFFS_FS is not set
1432+# CONFIG_HFS_FS is not set
1433+# CONFIG_HFSPLUS_FS is not set
1434+# CONFIG_BEFS_FS is not set
1435+# CONFIG_BFS_FS is not set
1436+# CONFIG_EFS_FS is not set
1437+# CONFIG_JFFS2_FS is not set
1438+# CONFIG_CRAMFS is not set
1439+# CONFIG_VXFS_FS is not set
1440+# CONFIG_HPFS_FS is not set
1441+# CONFIG_QNX4FS_FS is not set
1442+# CONFIG_SYSV_FS is not set
1443+# CONFIG_UFS_FS is not set
1444+
1445+#
1446+# Network File Systems
1447+#
1448+CONFIG_NFS_FS=y
1449+CONFIG_NFS_V3=y
1450+# CONFIG_NFS_V3_ACL is not set
1451+# CONFIG_NFS_V4 is not set
1452+# CONFIG_NFS_DIRECTIO is not set
1453+# CONFIG_NFSD is not set
1454+CONFIG_ROOT_NFS=y
1455+CONFIG_LOCKD=y
1456+CONFIG_LOCKD_V4=y
1457+CONFIG_NFS_COMMON=y
1458+CONFIG_SUNRPC=y
1459+# CONFIG_RPCSEC_GSS_KRB5 is not set
1460+# CONFIG_RPCSEC_GSS_SPKM3 is not set
1461+CONFIG_SMB_FS=y
1462+# CONFIG_SMB_NLS_DEFAULT is not set
1463+# CONFIG_CIFS is not set
1464+# CONFIG_NCP_FS is not set
1465+# CONFIG_CODA_FS is not set
1466+# CONFIG_AFS_FS is not set
1467+# CONFIG_9P_FS is not set
1468+
1469+#
1470+# Partition Types
1471+#
1472+# CONFIG_PARTITION_ADVANCED is not set
1473+CONFIG_MSDOS_PARTITION=y
1474+
1475+#
1476+# Native Language Support
1477+#
1478+CONFIG_NLS=y
1479+CONFIG_NLS_DEFAULT="iso8859-1"
1480+CONFIG_NLS_CODEPAGE_437=y
1481+# CONFIG_NLS_CODEPAGE_737 is not set
1482+# CONFIG_NLS_CODEPAGE_775 is not set
1483+# CONFIG_NLS_CODEPAGE_850 is not set
1484+# CONFIG_NLS_CODEPAGE_852 is not set
1485+# CONFIG_NLS_CODEPAGE_855 is not set
1486+# CONFIG_NLS_CODEPAGE_857 is not set
1487+# CONFIG_NLS_CODEPAGE_860 is not set
1488+# CONFIG_NLS_CODEPAGE_861 is not set
1489+# CONFIG_NLS_CODEPAGE_862 is not set
1490+# CONFIG_NLS_CODEPAGE_863 is not set
1491+# CONFIG_NLS_CODEPAGE_864 is not set
1492+# CONFIG_NLS_CODEPAGE_865 is not set
1493+# CONFIG_NLS_CODEPAGE_866 is not set
1494+# CONFIG_NLS_CODEPAGE_869 is not set
1495+# CONFIG_NLS_CODEPAGE_936 is not set
1496+# CONFIG_NLS_CODEPAGE_950 is not set
1497+# CONFIG_NLS_CODEPAGE_932 is not set
1498+# CONFIG_NLS_CODEPAGE_949 is not set
1499+# CONFIG_NLS_CODEPAGE_874 is not set
1500+# CONFIG_NLS_ISO8859_8 is not set
1501+# CONFIG_NLS_CODEPAGE_1250 is not set
1502+# CONFIG_NLS_CODEPAGE_1251 is not set
1503+# CONFIG_NLS_ASCII is not set
1504+CONFIG_NLS_ISO8859_1=y
1505+# CONFIG_NLS_ISO8859_2 is not set
1506+# CONFIG_NLS_ISO8859_3 is not set
1507+# CONFIG_NLS_ISO8859_4 is not set
1508+# CONFIG_NLS_ISO8859_5 is not set
1509+# CONFIG_NLS_ISO8859_6 is not set
1510+# CONFIG_NLS_ISO8859_7 is not set
1511+# CONFIG_NLS_ISO8859_9 is not set
1512+# CONFIG_NLS_ISO8859_13 is not set
1513+# CONFIG_NLS_ISO8859_14 is not set
1514+# CONFIG_NLS_ISO8859_15 is not set
1515+# CONFIG_NLS_KOI8_R is not set
1516+# CONFIG_NLS_KOI8_U is not set
1517+# CONFIG_NLS_UTF8 is not set
1518+
1519+#
1520+# Distributed Lock Manager
1521+#
1522+# CONFIG_DLM is not set
1523+
1524+#
1525+# Profiling support
1526+#
1527+# CONFIG_PROFILING is not set
1528+
1529+#
1530+# Kernel hacking
1531+#
1532+# CONFIG_PRINTK_TIME is not set
1533+CONFIG_ENABLE_MUST_CHECK=y
1534+CONFIG_MAGIC_SYSRQ=y
1535+# CONFIG_UNUSED_SYMBOLS is not set
1536+# CONFIG_DEBUG_FS is not set
1537+# CONFIG_HEADERS_CHECK is not set
1538+CONFIG_DEBUG_KERNEL=y
1539+# CONFIG_DEBUG_SHIRQ is not set
1540+CONFIG_LOG_BUF_SHIFT=17
1541+# CONFIG_DETECT_SOFTLOCKUP is not set
1542+# CONFIG_SCHEDSTATS is not set
1543+# CONFIG_TIMER_STATS is not set
1544+# CONFIG_DEBUG_SLAB is not set
1545+# CONFIG_DEBUG_RT_MUTEXES is not set
1546+# CONFIG_RT_MUTEX_TESTER is not set
1547+# CONFIG_DEBUG_SPINLOCK is not set
1548+# CONFIG_DEBUG_MUTEXES is not set
1549+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1550+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1551+# CONFIG_DEBUG_KOBJECT is not set
1552+# CONFIG_DEBUG_BUGVERBOSE is not set
1553+CONFIG_DEBUG_INFO=y
1554+# CONFIG_DEBUG_VM is not set
1555+# CONFIG_DEBUG_LIST is not set
1556+CONFIG_FRAME_POINTER=y
1557+CONFIG_FORCED_INLINING=y
1558+# CONFIG_RCU_TORTURE_TEST is not set
1559+# CONFIG_FAULT_INJECTION is not set
1560+CONFIG_DEBUG_USER=y
1561+CONFIG_DEBUG_ERRORS=y
1562+CONFIG_DEBUG_LL=y
1563+# CONFIG_DEBUG_ICEDCC is not set
1564+
1565+#
1566+# Security options
1567+#
1568+# CONFIG_KEYS is not set
1569+# CONFIG_SECURITY is not set
1570+
1571+#
1572+# Cryptographic options
1573+#
1574+CONFIG_CRYPTO=y
1575+CONFIG_CRYPTO_ALGAPI=m
1576+CONFIG_CRYPTO_BLKCIPHER=m
1577+CONFIG_CRYPTO_MANAGER=m
1578+# CONFIG_CRYPTO_HMAC is not set
1579+# CONFIG_CRYPTO_XCBC is not set
1580+# CONFIG_CRYPTO_NULL is not set
1581+# CONFIG_CRYPTO_MD4 is not set
1582+# CONFIG_CRYPTO_MD5 is not set
1583+# CONFIG_CRYPTO_SHA1 is not set
1584+# CONFIG_CRYPTO_SHA256 is not set
1585+# CONFIG_CRYPTO_SHA512 is not set
1586+# CONFIG_CRYPTO_WP512 is not set
1587+# CONFIG_CRYPTO_TGR192 is not set
1588+# CONFIG_CRYPTO_GF128MUL is not set
1589+CONFIG_CRYPTO_ECB=m
1590+CONFIG_CRYPTO_CBC=m
1591+CONFIG_CRYPTO_PCBC=m
1592+# CONFIG_CRYPTO_LRW is not set
1593+# CONFIG_CRYPTO_DES is not set
1594+# CONFIG_CRYPTO_FCRYPT is not set
1595+# CONFIG_CRYPTO_BLOWFISH is not set
1596+# CONFIG_CRYPTO_TWOFISH is not set
1597+# CONFIG_CRYPTO_SERPENT is not set
1598+CONFIG_CRYPTO_AES=m
1599+# CONFIG_CRYPTO_CAST5 is not set
1600+# CONFIG_CRYPTO_CAST6 is not set
1601+# CONFIG_CRYPTO_TEA is not set
1602+CONFIG_CRYPTO_ARC4=m
1603+# CONFIG_CRYPTO_KHAZAD is not set
1604+# CONFIG_CRYPTO_ANUBIS is not set
1605+# CONFIG_CRYPTO_DEFLATE is not set
1606+# CONFIG_CRYPTO_MICHAEL_MIC is not set
1607+# CONFIG_CRYPTO_CRC32C is not set
1608+# CONFIG_CRYPTO_CAMELLIA is not set
1609+# CONFIG_CRYPTO_TEST is not set
1610+
1611+#
1612+# Hardware crypto devices
1613+#
1614+
1615+#
1616+# Library routines
1617+#
1618+CONFIG_BITREVERSE=y
1619+# CONFIG_CRC_CCITT is not set
1620+# CONFIG_CRC16 is not set
1621+CONFIG_CRC32=y
1622+# CONFIG_LIBCRC32C is not set
1623+CONFIG_PLIST=y
1624+CONFIG_HAS_IOMEM=y
1625+CONFIG_HAS_IOPORT=y
1626diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
1627index 5ebec6d..e126926 100644
1628--- a/arch/arm/mach-pxa/Kconfig
1629+++ b/arch/arm/mach-pxa/Kconfig
1630@@ -40,6 +40,12 @@ config MACH_TRIZEPS4
1631 config MACH_EM_X270
1632 bool "CompuLab EM-x270 platform"
1633 select PXA27x
1634+ select IWMMXT
1635+
1636+config MACH_ARMCORE
1637+ bool "CompuLab CM-X270 modules"
1638+ select PXA27x
1639+ select IWMMXT
1640
1641 endchoice
1642
1643diff --git a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile
1644index 7d6ab5c..b369289 100644
1645--- a/arch/arm/mach-pxa/Makefile
1646+++ b/arch/arm/mach-pxa/Makefile
1647@@ -19,6 +19,7 @@ obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o
1648 obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o
1649 obj-$(CONFIG_MACH_TOSA) += tosa.o
1650 obj-$(CONFIG_MACH_EM_X270) += em-x270.o
1651+obj-$(CONFIG_MACH_ARMCORE) += cm-x270.o
1652
1653 # Support for blinky lights
1654 led-y := leds.o
1655@@ -26,6 +27,8 @@ led-$(CONFIG_ARCH_LUBBOCK) += leds-lubbock.o
1656 led-$(CONFIG_MACH_MAINSTONE) += leds-mainstone.o
1657 led-$(CONFIG_ARCH_PXA_IDP) += leds-idp.o
1658 led-$(CONFIG_MACH_TRIZEPS4) += leds-trizeps4.o
1659+# FIXME: use driver/leds instead
1660+led-$(CONFIG_MACH_ARMCORE) += leds-cm-x270.o
1661
1662 obj-$(CONFIG_LEDS) += $(led-y)
1663
1664@@ -36,3 +39,7 @@ obj-$(CONFIG_PXA_SSP) += ssp.o
1665 ifeq ($(CONFIG_PXA27x),y)
1666 obj-$(CONFIG_PM) += standby.o
1667 endif
1668+
1669+ifeq ($(CONFIG_PCI),y)
1670+obj-$(CONFIG_MACH_ARMCORE) += cm-x270-pci.o
1671+endif
1672diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c
1673new file mode 100644
1674index 0000000..7b4e288
1675--- /dev/null
1676+++ b/arch/arm/mach-pxa/cm-x270.c
1677@@ -0,0 +1,821 @@
1678+/*
1679+ * linux/arch/arm/mach-pxa/cm-x270.c
1680+ *
1681+ * Copyright (C) 2007 CompuLab, Ltd.
1682+ * Mike Rapoport <mike@compulab.co.il>
1683+ *
1684+ * This program is free software; you can redistribute it and/or modify
1685+ * it under the terms of the GNU General Public License version 2 as
1686+ * published by the Free Software Foundation.
1687+ */
1688+
1689+#include <linux/pm.h>
1690+#include <linux/fb.h>
1691+#include <linux/platform_device.h>
1692+#include <linux/sysdev.h>
1693+#include <linux/dm9000.h>
1694+#include <linux/rtc-v3020.h>
1695+#include <linux/serial_8250.h>
1696+#include <video/mbxfb.h>
1697+
1698+#include <asm/types.h>
1699+#include <asm/setup.h>
1700+#include <asm/memory.h>
1701+#include <asm/mach-types.h>
1702+#include <asm/hardware.h>
1703+#include <asm/irq.h>
1704+#include <asm/io.h>
1705+#include <asm/delay.h>
1706+
1707+#include <asm/mach/arch.h>
1708+#include <asm/mach/map.h>
1709+#include <asm/mach/irq.h>
1710+
1711+#include <asm/arch/pxa-regs.h>
1712+#include <asm/arch/pxafb.h>
1713+#include <asm/arch/ohci.h>
1714+#include <asm/arch/mmc.h>
1715+#include <asm/arch/bitfield.h>
1716+#include <asm/arch/cm-x270.h>
1717+
1718+#include <asm/hardware/it8152.h>
1719+
1720+#include "generic.h"
1721+
1722+#define RTC_PHYS_BASE (PXA_CS1_PHYS + (5 << 22))
1723+#define DM9000_PHYS_BASE (PXA_CS1_PHYS + (6 << 22))
1724+
1725+static struct resource cmx270_dm9k_resource[] = {
1726+ [0] = {
1727+ .start = DM9000_PHYS_BASE,
1728+ .end = DM9000_PHYS_BASE + 4,
1729+ .flags = IORESOURCE_MEM,
1730+ },
1731+ [1] = {
1732+ .start = DM9000_PHYS_BASE + 8,
1733+ .end = DM9000_PHYS_BASE + 8 + 500,
1734+ .flags = IORESOURCE_MEM,
1735+ },
1736+ [2] = {
1737+ .start = CMX270_ETHIRQ,
1738+ .end = CMX270_ETHIRQ,
1739+ .flags = IORESOURCE_IRQ,
1740+ }
1741+};
1742+
1743+/* for the moment we limit ourselves to 32bit IO until some
1744+ * better IO routines can be written and tested
1745+ */
1746+static struct dm9000_plat_data cmx270_dm9k_platdata = {
1747+ .flags = DM9000_PLATF_32BITONLY,
1748+};
1749+
1750+/* Ethernet device */
1751+static struct platform_device cmx270_device_dm9k = {
1752+ .name = "dm9000",
1753+ .id = 0,
1754+ .num_resources = ARRAY_SIZE(cmx270_dm9k_resource),
1755+ .resource = cmx270_dm9k_resource,
1756+ .dev = {
1757+ .platform_data = &cmx270_dm9k_platdata,
1758+ }
1759+};
1760+
1761+/* audio device */
1762+static struct platform_device cmx270_audio_device = {
1763+ .name = "pxa2xx-ac97",
1764+ .id = -1,
1765+};
1766+
1767+/* touchscreen controller */
1768+static struct platform_device cmx270_ts_device = {
1769+ .name = "ucb1x00-ts",
1770+ .id = -1,
1771+};
1772+
1773+/* RTC */
1774+static struct resource cmx270_v3020_resource[] = {
1775+ [0] = {
1776+ .start = RTC_PHYS_BASE,
1777+ .end = RTC_PHYS_BASE + 4,
1778+ .flags = IORESOURCE_MEM,
1779+ },
1780+};
1781+
1782+struct v3020_platform_data cmx270_v3020_pdata = {
1783+ .leftshift = 16,
1784+};
1785+
1786+static struct platform_device cmx270_rtc_device = {
1787+ .name = "v3020",
1788+ .num_resources = ARRAY_SIZE(cmx270_v3020_resource),
1789+ .resource = cmx270_v3020_resource,
1790+ .id = -1,
1791+ .dev = {
1792+ .platform_data = &cmx270_v3020_pdata,
1793+ }
1794+};
1795+
1796+/*
1797+ * CM-X270 LEDs
1798+ */
1799+static struct platform_device cmx270led_device = {
1800+ .name = "cm-x270-led",
1801+ .id = -1,
1802+};
1803+
1804+/* 2700G graphics */
1805+static u64 fb_dma_mask = ~(u64)0;
1806+
1807+static struct resource cmx270_2700G_resource[] = {
1808+ /* frame buffer memory including ODFB and External SDRAM */
1809+ [0] = {
1810+ .start = MARATHON_PHYS,
1811+ .end = MARATHON_PHYS + 0x02000000,
1812+ .flags = IORESOURCE_MEM,
1813+ },
1814+ /* Marathon registers */
1815+ [1] = {
1816+ .start = MARATHON_PHYS + 0x03fe0000,
1817+ .end = MARATHON_PHYS + 0x03ffffff,
1818+ .flags = IORESOURCE_MEM,
1819+ },
1820+};
1821+
1822+static unsigned long save_lcd_regs[10];
1823+
1824+static int cmx270_marathon_probe(struct fb_info *fb)
1825+{
1826+ /* save PXA-270 pin settings before enabling 2700G */
1827+ save_lcd_regs[0] = GPDR1;
1828+ save_lcd_regs[1] = GPDR2;
1829+ save_lcd_regs[2] = GAFR1_U;
1830+ save_lcd_regs[3] = GAFR2_L;
1831+ save_lcd_regs[4] = GAFR2_U;
1832+
1833+ /* Disable PXA-270 on-chip controller driving pins */
1834+ GPDR1 &= ~(0xfc000000);
1835+ GPDR2 &= ~(0x00c03fff);
1836+ GAFR1_U &= ~(0xfff00000);
1837+ GAFR2_L &= ~(0x0fffffff);
1838+ GAFR2_U &= ~(0x0000f000);
1839+ return 0;
1840+}
1841+
1842+static int cmx270_marathon_remove(struct fb_info *fb)
1843+{
1844+ GPDR1 = save_lcd_regs[0];
1845+ GPDR2 = save_lcd_regs[1];
1846+ GAFR1_U = save_lcd_regs[2];
1847+ GAFR2_L = save_lcd_regs[3];
1848+ GAFR2_U = save_lcd_regs[4];
1849+ return 0;
1850+}
1851+
1852+static struct mbxfb_platform_data cmx270_2700G_data = {
1853+ .xres = {
1854+ .min = 240,
1855+ .max = 1200,
1856+ .defval = 640,
1857+ },
1858+ .yres = {
1859+ .min = 240,
1860+ .max = 1200,
1861+ .defval = 480,
1862+ },
1863+ .bpp = {
1864+ .min = 16,
1865+ .max = 32,
1866+ .defval = 16,
1867+ },
1868+ .memsize = 8*1024*1024,
1869+ .probe = cmx270_marathon_probe,
1870+ .remove = cmx270_marathon_remove,
1871+};
1872+
1873+static struct platform_device cmx270_2700G = {
1874+ .name = "mbx-fb",
1875+ .dev = {
1876+ .platform_data = &cmx270_2700G_data,
1877+ .dma_mask = &fb_dma_mask,
1878+ .coherent_dma_mask = 0xffffffff,
1879+ },
1880+ .num_resources = ARRAY_SIZE(cmx270_2700G_resource),
1881+ .resource = cmx270_2700G_resource,
1882+ .id = -1,
1883+};
1884+
1885+/* platform devices */
1886+static struct platform_device *platform_devices[] __initdata = {
1887+ &cmx270_device_dm9k,
1888+ &cmx270_audio_device,
1889+ &cmx270_rtc_device,
1890+ &cmx270_2700G,
1891+ &cmx270led_device,
1892+};
1893+
1894+#ifdef CONFIG_PCI
1895+/*
1896+ * Install handler for IT8152 IRQ. Yes, yes... we are way down the IRQ
1897+ * cascade which is not good for IRQ latency, but the hardware has been
1898+ * designed that way...
1899+ */
1900+static inline void cmx270_irq(int irq, struct pt_regs *regs)
1901+{
1902+ struct irq_desc *desc;
1903+ desc = irq_desc + irq;
1904+ desc_handle_irq(irq, desc);
1905+}
1906+
1907+static void cmx270_irq_demux(unsigned int irq, struct irqdesc *desc,
1908+ struct pt_regs *regs)
1909+{
1910+ unsigned long pdcnimr, ldcnimr;
1911+ int pdcnirr, ldcnir;
1912+
1913+ /* clear our parent irq */
1914+ GEDR(GPIO_IT8152_IRQ) = GPIO_bit(GPIO_IT8152_IRQ);
1915+
1916+ /* read pending IRQs in the chip registers and clear them */
1917+ pdcnirr = IT8152_INTC_PDCNIRR;
1918+ ldcnir = IT8152_INTC_LDCNIRR;
1919+ IT8152_INTC_PDCNIRR = ~pdcnirr;
1920+ IT8152_INTC_LDCNIRR = ~ldcnir;
1921+
1922+ /* mask ITE irqs */
1923+ pdcnimr = IT8152_INTC_PDCNIMR;
1924+ ldcnimr = IT8152_INTC_LDCNIMR;
1925+ IT8152_INTC_PDCNIMR = 0xffff;
1926+ IT8152_INTC_LDCNIMR = 0xffff;
1927+
1928+ pdcnirr &= (PCISERR_BIT | H2PTADR_BIT | H2PMAR_BIT |
1929+ PCI_INTD_BIT | PCI_INTC_BIT | PCI_INTB_BIT | PCI_INTA_BIT |
1930+ USB_INT_BIT | CDMA_INT_BIT);
1931+
1932+ ldcnir &= ITESER_BIT;
1933+
1934+ IT8152_INTC_PDCNIRR = ~pdcnirr;
1935+ IT8152_INTC_LDCNIRR = ~ldcnir;
1936+
1937+ /* are there interrupts pending ? */
1938+ if( (pdcnirr | ldcnir) ) {
1939+ if (pdcnirr) {
1940+ if( pdcnirr & PCISERR_BIT )
1941+ cmx270_irq(PCISERR, regs);
1942+ if( pdcnirr & H2PTADR_BIT )
1943+ cmx270_irq(H2PTADR, regs);
1944+ if( pdcnirr & H2PMAR_BIT )
1945+ cmx270_irq(H2PMAR, regs);
1946+ if( pdcnirr & PCI_INTA_BIT )
1947+ cmx270_irq(PCI_INTA, regs);
1948+ if( pdcnirr & PCI_INTB_BIT )
1949+ cmx270_irq(PCI_INTB, regs);
1950+ if( pdcnirr & PCI_INTC_BIT )
1951+ cmx270_irq(PCI_INTC, regs);
1952+ if( pdcnirr & PCI_INTD_BIT )
1953+ cmx270_irq(PCI_INTD, regs);
1954+ if( pdcnirr & USB_INT_BIT )
1955+ cmx270_irq(USB_INT, regs);
1956+ if( pdcnirr & CDMA_INT_BIT )
1957+ cmx270_irq(CDMA_INT, regs);
1958+ }
1959+ if(ldcnir) {
1960+ if( ldcnir & ITESER_BIT )
1961+ cmx270_irq(IRQ_ITESER, regs);
1962+ }
1963+ }
1964+
1965+ /* re-enable ITE interrupts */
1966+ IT8152_INTC_PDCNIMR = pdcnimr;
1967+ IT8152_INTC_LDCNIMR = ldcnimr;
1968+}
1969+#else
1970+unsigned long it8152_base_address = CMX270_IT8152_VIRT;
1971+#endif
1972+
1973+/* #define CMX270_FLASH_VIRT (CMX270_IDE104_VIRT + PXA_CS_SIZE - (8<<20)) */
1974+/* Map PCI companion and IDE/General Purpose CS statically */
1975+static struct map_desc cmx270_io_desc[] __initdata = {
1976+ [0] = { /* IDE/general purpose space */
1977+ .virtual = CMX270_IDE104_VIRT,
1978+ .pfn = __phys_to_pfn(CMX270_IDE104_PHYS),
1979+ .length = PXA_CS_SIZE - (8<<20),
1980+ .type = MT_DEVICE
1981+ },
1982+ [1] = { /* PCI bridge */
1983+ .virtual = CMX270_IT8152_VIRT,
1984+ .pfn = __phys_to_pfn(CMX270_IT8152_PHYS),
1985+ .length = PXA_CS_SIZE,
1986+ .type = MT_DEVICE
1987+ },
1988+};
1989+
1990+/*
1991+ Display definitions
1992+ keep these for backwards compatibility, although symbolic names (as
1993+ e.g. in lpd270.c) looks better
1994+ */
1995+#define MTYPE_STN320x240 0
1996+#define MTYPE_TFT640x480 1
1997+#define MTYPE_CRT640x480 2
1998+#define MTYPE_CRT800x600 3
1999+#define MTYPE_TFT320x240 6
2000+#define MTYPE_STN640x480 7
2001+
2002+static struct pxafb_mode_info generic_stn_320x240_mode = {
2003+ .pixclock = 76923,
2004+ .bpp = 8,
2005+ .xres = 320,
2006+ .yres = 240,
2007+ .hsync_len = 3,
2008+ .vsync_len = 2,
2009+ .left_margin = 3,
2010+ .upper_margin = 0,
2011+ .right_margin = 3,
2012+ .lower_margin = 0,
2013+ .sync = (FB_SYNC_HOR_HIGH_ACT |
2014+ FB_SYNC_VERT_HIGH_ACT),
2015+ .cmap_greyscale = 0,
2016+};
2017+
2018+static struct pxafb_mach_info generic_stn_320x240 = {
2019+ .modes = &generic_stn_320x240_mode,
2020+ .num_modes = 1,
2021+ .lccr0 = 0,
2022+ .lccr3 = (LCCR3_PixClkDiv(0x03) |
2023+ LCCR3_Acb(0xff) |
2024+ LCCR3_PCP),
2025+ .cmap_inverse = 0,
2026+ .cmap_static = 0,
2027+};
2028+
2029+static struct pxafb_mode_info generic_tft_640x480_mode = {
2030+ .pixclock = 38461,
2031+ .bpp = 8,
2032+ .xres = 640,
2033+ .yres = 480,
2034+ .hsync_len = 60,
2035+ .vsync_len = 2,
2036+ .left_margin = 70,
2037+ .upper_margin = 10,
2038+ .right_margin = 70,
2039+ .lower_margin = 5,
2040+ .sync = 0,
2041+ .cmap_greyscale = 0,
2042+};
2043+
2044+static struct pxafb_mach_info generic_tft_640x480 = {
2045+ .modes = &generic_tft_640x480_mode,
2046+ .num_modes = 1,
2047+ .lccr0 = (LCCR0_PAS),
2048+ .lccr3 = (LCCR3_PixClkDiv(0x01) |
2049+ LCCR3_Acb(0xff) |
2050+ LCCR3_PCP),
2051+ .cmap_inverse = 0,
2052+ .cmap_static = 0,
2053+};
2054+
2055+static struct pxafb_mode_info generic_crt_640x480_mode = {
2056+ .pixclock = 38461,
2057+ .bpp = 8,
2058+ .xres = 640,
2059+ .yres = 480,
2060+ .hsync_len = 63,
2061+ .vsync_len = 2,
2062+ .left_margin = 81,
2063+ .upper_margin = 33,
2064+ .right_margin = 16,
2065+ .lower_margin = 10,
2066+ .sync = (FB_SYNC_HOR_HIGH_ACT |
2067+ FB_SYNC_VERT_HIGH_ACT),
2068+ .cmap_greyscale = 0,
2069+};
2070+
2071+static struct pxafb_mach_info generic_crt_640x480 = {
2072+ .modes = &generic_crt_640x480_mode,
2073+ .num_modes = 1,
2074+ .lccr0 = (LCCR0_PAS),
2075+ .lccr3 = (LCCR3_PixClkDiv(0x01) |
2076+ LCCR3_Acb(0xff)),
2077+ .cmap_inverse = 0,
2078+ .cmap_static = 0,
2079+};
2080+
2081+static struct pxafb_mode_info generic_crt_800x600_mode = {
2082+ .pixclock = 28846,
2083+ .bpp = 8,
2084+ .xres = 800,
2085+ .yres = 600,
2086+ .hsync_len = 63,
2087+ .vsync_len = 2,
2088+ .left_margin = 26,
2089+ .upper_margin = 21,
2090+ .right_margin = 26,
2091+ .lower_margin = 11,
2092+ .sync = (FB_SYNC_HOR_HIGH_ACT |
2093+ FB_SYNC_VERT_HIGH_ACT),
2094+ .cmap_greyscale = 0,
2095+};
2096+
2097+static struct pxafb_mach_info generic_crt_800x600 = {
2098+ .modes = &generic_crt_800x600_mode,
2099+ .num_modes = 1,
2100+ .lccr0 = (LCCR0_PAS),
2101+ .lccr3 = (LCCR3_PixClkDiv(0x02) |
2102+ LCCR3_Acb(0xff)),
2103+ .cmap_inverse = 0,
2104+ .cmap_static = 0,
2105+};
2106+
2107+static struct pxafb_mode_info generic_tft_320x240_mode = {
2108+ .pixclock = 134615,
2109+ .bpp = 16,
2110+ .xres = 320,
2111+ .yres = 240,
2112+ .hsync_len = 63,
2113+ .vsync_len = 7,
2114+ .left_margin = 75,
2115+ .upper_margin = 0,
2116+ .right_margin = 15,
2117+ .lower_margin = 15,
2118+ .sync = 0,
2119+ .cmap_greyscale = 0,
2120+};
2121+
2122+static struct pxafb_mach_info generic_tft_320x240 = {
2123+ .modes = &generic_tft_320x240_mode,
2124+ .num_modes = 1,
2125+ .lccr0 = (LCCR0_PAS),
2126+ .lccr3 = (LCCR3_PixClkDiv(0x06) |
2127+ LCCR3_Acb(0xff) |
2128+ LCCR3_PCP),
2129+ .cmap_inverse = 0,
2130+ .cmap_static = 0,
2131+};
2132+
2133+static struct pxafb_mode_info generic_stn_640x480_mode = {
2134+ .pixclock = 57692,
2135+ .bpp = 8,
2136+ .xres = 640,
2137+ .yres = 480,
2138+ .hsync_len = 4,
2139+ .vsync_len = 2,
2140+ .left_margin = 10,
2141+ .upper_margin = 5,
2142+ .right_margin = 10,
2143+ .lower_margin = 5,
2144+ .sync = (FB_SYNC_HOR_HIGH_ACT |
2145+ FB_SYNC_VERT_HIGH_ACT),
2146+ .cmap_greyscale = 0,
2147+};
2148+
2149+static struct pxafb_mach_info generic_stn_640x480 = {
2150+ .modes = &generic_stn_640x480_mode,
2151+ .num_modes = 1,
2152+ .lccr0 = 0,
2153+ .lccr3 = (LCCR3_PixClkDiv(0x02) |
2154+ LCCR3_Acb(0xff)),
2155+ .cmap_inverse = 0,
2156+ .cmap_static = 0,
2157+};
2158+
2159+static struct pxafb_mach_info *cmx270_display = &generic_crt_640x480;
2160+
2161+static int __init cmx270_set_display(char *str)
2162+{
2163+ int disp_type = simple_strtol(str, NULL, 0);
2164+ switch (disp_type) {
2165+ case MTYPE_STN320x240:
2166+ cmx270_display = &generic_stn_320x240;
2167+ break;
2168+ case MTYPE_TFT640x480:
2169+ cmx270_display = &generic_tft_640x480;
2170+ break;
2171+ case MTYPE_CRT640x480:
2172+ cmx270_display = &generic_crt_640x480;
2173+ break;
2174+ case MTYPE_CRT800x600:
2175+ cmx270_display = &generic_crt_800x600;
2176+ break;
2177+ case MTYPE_TFT320x240:
2178+ cmx270_display = &generic_tft_320x240;
2179+ break;
2180+ case MTYPE_STN640x480:
2181+ cmx270_display = &generic_stn_640x480;
2182+ break;
2183+ default: /* fallback to CRT 640x480 */
2184+ cmx270_display = &generic_crt_640x480;
2185+ break;
2186+ }
2187+ return 1;
2188+}
2189+
2190+__setup("monitor=", cmx270_set_display);
2191+
2192+/* PXA27x OHCI controller setup */
2193+static int cmx270_ohci_init(struct device *dev)
2194+{
2195+ /* Set the Power Control Polarity Low */
2196+ UHCHR = (UHCHR | UHCHR_PCPL) &
2197+ ~(UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSE);
2198+
2199+ return 0;
2200+}
2201+
2202+static struct pxaohci_platform_data cmx270_ohci_platform_data = {
2203+ .port_mode = PMM_PERPORT_MODE,
2204+ .init = cmx270_ohci_init,
2205+};
2206+
2207+
2208+static int cmx270_mci_init(struct device *dev, irq_handler_t cmx270_detect_int, void *data)
2209+{
2210+ int err;
2211+
2212+ /*
2213+ * setup GPIO for PXA27x MMC controller
2214+ */
2215+ pxa_gpio_mode(GPIO32_MMCCLK_MD);
2216+ pxa_gpio_mode(GPIO112_MMCCMD_MD);
2217+ pxa_gpio_mode(GPIO92_MMCDAT0_MD);
2218+ pxa_gpio_mode(GPIO109_MMCDAT1_MD);
2219+ pxa_gpio_mode(GPIO110_MMCDAT2_MD);
2220+ pxa_gpio_mode(GPIO111_MMCDAT3_MD);
2221+
2222+ /* SB-X270 uses GPIO105 as SD power enable */
2223+ pxa_gpio_mode(105 | GPIO_OUT);
2224+
2225+ /* card detect IRQ on GPIO 83 */
2226+ pxa_gpio_mode(IRQ_TO_GPIO(CMX270_MMC_IRQ));
2227+ set_irq_type(CMX270_MMC_IRQ, IRQT_FALLING);
2228+
2229+ err = request_irq(CMX270_MMC_IRQ, cmx270_detect_int, SA_INTERRUPT,
2230+ "MMC card detect", data);
2231+ if (err) {
2232+ printk(KERN_ERR "cmx270_mci_init: MMC/SD: can't request MMC card detect IRQ\n");
2233+ return -1;
2234+ }
2235+
2236+ return 0;
2237+}
2238+
2239+static void cmx270_mci_setpower(struct device *dev, unsigned int vdd)
2240+{
2241+ struct pxamci_platform_data* p_d = dev->platform_data;
2242+
2243+ if (( 1 << vdd) & p_d->ocr_mask) {
2244+ printk(KERN_DEBUG "%s: on\n", __FUNCTION__);
2245+ GPCR(105) = GPIO_bit(105);
2246+ } else {
2247+ GPSR(105) = GPIO_bit(105);
2248+ printk(KERN_DEBUG "%s: off\n", __FUNCTION__);
2249+ }
2250+}
2251+
2252+static void cmx270_mci_exit(struct device *dev, void *data)
2253+{
2254+ free_irq(CMX270_MMC_IRQ, data);
2255+}
2256+
2257+static struct pxamci_platform_data cmx270_mci_platform_data = {
2258+ .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
2259+ .init = cmx270_mci_init,
2260+ .setpower = cmx270_mci_setpower,
2261+ .exit = cmx270_mci_exit,
2262+};
2263+
2264+#ifdef CONFIG_PM
2265+/* extern struct subsystem power_subsys; */
2266+static unsigned long sleep_save_ite[10];
2267+static unsigned long sleep_save_msc[10];
2268+
2269+static int cmx270_suspend(struct sys_device *dev, pm_message_t state)
2270+{
2271+#ifdef CONFIG_PCI
2272+ /* save ITE state */
2273+ sleep_save_ite[0] = IT8152_INTC_PDCNIMR;
2274+ sleep_save_ite[1] = IT8152_INTC_LPCNIMR;
2275+ sleep_save_ite[2] = IT8152_INTC_LPNIAR;
2276+
2277+ /* Clear ITE IRQ's */
2278+ IT8152_INTC_PDCNIRR = 0;
2279+ IT8152_INTC_LPCNIRR = 0;
2280+#endif
2281+
2282+ /* save MSC registers */
2283+ sleep_save_msc[0] = MSC0;
2284+ sleep_save_msc[1] = MSC1;
2285+ sleep_save_msc[2] = MSC2;
2286+
2287+ /* setup power saving mode registers */
2288+ PCFR = 0x0;
2289+ PSLR = 0xff400000;
2290+ PMCR = 0x00000005;
2291+ PWER = 0x80000000;
2292+ PFER = 0x00000000;
2293+ PRER = 0x00000000;
2294+ PGSR0 = 0xC0018800;
2295+ PGSR1 = 0x004F0002;
2296+ PGSR2 = 0x6021C000;
2297+ PGSR3 = 0x00020000;
2298+
2299+ return 0;
2300+}
2301+
2302+static int cmx270_resume(struct sys_device *dev)
2303+{
2304+#ifdef CONFIG_PCI
2305+ /* restore IT8152 state */
2306+ IT8152_INTC_PDCNIMR = sleep_save_ite[0];
2307+ IT8152_INTC_LPCNIMR = sleep_save_ite[1];
2308+ IT8152_INTC_LPNIAR = sleep_save_ite[2];
2309+#endif
2310+
2311+ /* restore MSC registers */
2312+ MSC0 = sleep_save_msc[0];
2313+ MSC1 = sleep_save_msc[1];
2314+ MSC2 = sleep_save_msc[2];
2315+
2316+ return 0;
2317+}
2318+
2319+static struct sysdev_class cmx270_pm_sysclass = {
2320+ set_kset_name("pm"),
2321+ .resume = cmx270_resume,
2322+ .suspend = cmx270_suspend,
2323+};
2324+
2325+static struct sys_device cmx270_pm_device = {
2326+ .cls = &cmx270_pm_sysclass,
2327+};
2328+
2329+static int __init cmx270_pm_init(void)
2330+{
2331+ int error;
2332+ error = sysdev_class_register(&cmx270_pm_sysclass);
2333+ if (error == 0)
2334+ error = sysdev_register(&cmx270_pm_device);
2335+ return error;
2336+}
2337+#else
2338+static int __init cmx270_pm_init(void) { return 0; }
2339+#endif
2340+
2341+static void __init cmx270_init(void)
2342+{
2343+ cmx270_pm_init();
2344+
2345+ set_pxa_fb_info(cmx270_display);
2346+
2347+ /* register CM-X270 platform devices */
2348+ platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
2349+
2350+ /* set MCI and OHCI platform parameters */
2351+ pxa_set_mci_info(&cmx270_mci_platform_data);
2352+ pxa_set_ohci_info(&cmx270_ohci_platform_data);
2353+
2354+ /* This enables the STUART */
2355+ pxa_gpio_mode(GPIO46_STRXD_MD);
2356+ pxa_gpio_mode(GPIO47_STTXD_MD);
2357+
2358+ /* This enables the BTUART */
2359+ pxa_gpio_mode(GPIO42_BTRXD_MD);
2360+ pxa_gpio_mode(GPIO43_BTTXD_MD);
2361+ pxa_gpio_mode(GPIO44_BTCTS_MD);
2362+ pxa_gpio_mode(GPIO45_BTRTS_MD);
2363+}
2364+
2365+#ifdef CONFIG_PCI
2366+static void cmx270_mask_irq(unsigned int irq)
2367+{
2368+ switch(irq) {
2369+ case IT8152_IRQ(0):
2370+ IT8152_INTC_PDCNIMR |= PCISERR_BIT;
2371+ break;
2372+ case IT8152_IRQ(1):
2373+ IT8152_INTC_PDCNIMR |= H2PTADR_BIT;
2374+ break;
2375+ case IT8152_IRQ(2):
2376+ IT8152_INTC_PDCNIMR |= H2PMAR_BIT;
2377+ break;
2378+ case IT8152_IRQ(3):
2379+ IT8152_INTC_PDCNIMR |= PCI_INTA_BIT;
2380+ break;
2381+ case IT8152_IRQ(4):
2382+ IT8152_INTC_PDCNIMR |= PCI_INTB_BIT;
2383+ break;
2384+ case IT8152_IRQ(5):
2385+ IT8152_INTC_PDCNIMR |= PCI_INTC_BIT;
2386+ break;
2387+ case IT8152_IRQ(6):
2388+ IT8152_INTC_PDCNIMR |= PCI_INTD_BIT;
2389+ break;
2390+ case IT8152_IRQ(7):
2391+ IT8152_INTC_PDCNIMR |= USB_INT_BIT;
2392+ break;
2393+ case IT8152_IRQ(9):
2394+ IT8152_INTC_PDCNIMR |= CDMA_INT_BIT;
2395+ break;
2396+ case IT8152_IRQ(10):
2397+ IT8152_INTC_LDCNIMR |= ITESER_BIT;
2398+ break;
2399+ }
2400+}
2401+
2402+static void cmx270_unmask_irq(unsigned int irq)
2403+{
2404+ switch(irq) {
2405+ case IT8152_IRQ(0):
2406+ IT8152_INTC_PDCNIMR &= (~PCISERR_BIT);
2407+ break;
2408+ case IT8152_IRQ(1):
2409+ IT8152_INTC_PDCNIMR &= (~H2PTADR_BIT);
2410+ break;
2411+ case IT8152_IRQ(2):
2412+ IT8152_INTC_PDCNIMR &= (~H2PMAR_BIT);
2413+ break;
2414+ case IT8152_IRQ(3):
2415+ IT8152_INTC_PDCNIMR &= (~PCI_INTA_BIT);
2416+ break;
2417+ case IT8152_IRQ(4):
2418+ IT8152_INTC_PDCNIMR &= (~PCI_INTB_BIT);
2419+ break;
2420+ case IT8152_IRQ(5):
2421+ IT8152_INTC_PDCNIMR &= (~PCI_INTC_BIT);
2422+ break;
2423+ case IT8152_IRQ(6):
2424+ IT8152_INTC_PDCNIMR &= (~PCI_INTD_BIT);
2425+ break;
2426+ case IT8152_IRQ(7):
2427+ IT8152_INTC_PDCNIMR &= (~USB_INT_BIT);
2428+ break;
2429+ case IT8152_IRQ(9):
2430+ IT8152_INTC_PDCNIMR &= (~CDMA_INT_BIT);
2431+ break;
2432+ case IT8152_IRQ(10):
2433+ IT8152_INTC_LDCNIMR &= (~ITESER_BIT);
2434+ break;
2435+ }
2436+}
2437+
2438+static struct irq_chip cmx270_irq_chip = {
2439+ .ack = cmx270_mask_irq,
2440+ .mask = cmx270_mask_irq,
2441+ .unmask = cmx270_unmask_irq,
2442+};
2443+#endif
2444+
2445+static void __init cmx270_init_irq(void)
2446+{
2447+ int irq;
2448+
2449+ pxa27x_init_irq();
2450+
2451+ IT8152_INTC_PDCNIMR = 0xffff;
2452+
2453+#ifdef CONFIG_PCI
2454+ /* Disable and clear IRQ's for ITE8152 */
2455+ IT8152_INTC_PDCNIMR = 0xffff;
2456+ IT8152_INTC_PDCNIRR = 0;
2457+ IT8152_INTC_LPCNIMR = 0xffff;
2458+ IT8152_INTC_LPCNIRR = 0;
2459+ IT8152_INTC_LDCNIMR = 0xffff;
2460+ IT8152_INTC_LDCNIRR = 0;
2461+
2462+ for(irq = IT8152_IRQ(0); irq <= IT8152_IRQ_MAX; irq++) {
2463+ set_irq_chip(irq, &cmx270_irq_chip);
2464+ set_irq_handler(irq, handle_level_irq);
2465+ set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
2466+ }
2467+
2468+ /* INTC signal from IT8152 is connected to GPIO0 */
2469+ pxa_gpio_mode(IRQ_GPIO_IT8152_IRQ);
2470+ set_irq_chained_handler(IRQ_GPIO_IT8152_IRQ, cmx270_irq_demux);
2471+ set_irq_type(IRQ_GPIO_IT8152_IRQ, IRQT_RISING);
2472+#endif
2473+
2474+ /* Setup interrupt for dm9000 */
2475+ pxa_gpio_mode(IRQ_TO_GPIO(CMX270_ETHIRQ));
2476+ set_irq_type(CMX270_ETHIRQ, IRQT_RISING);
2477+
2478+ /* Setup interrupt for 2700G */
2479+ pxa_gpio_mode(IRQ_TO_GPIO(CMX270_GFXIRQ));
2480+ set_irq_type(CMX270_GFXIRQ, IRQT_FALLING);
2481+}
2482+
2483+static void __init cmx270_map_io(void)
2484+{
2485+ pxa_map_io();
2486+ iotable_init(cmx270_io_desc, ARRAY_SIZE(cmx270_io_desc));
2487+}
2488+
2489+
2490+MACHINE_START(ARMCORE, "Compulab CM-x270")
2491+ .boot_params = 0xa0000100,
2492+ .phys_io = 0x40000000,
2493+ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
2494+ .map_io = cmx270_map_io,
2495+ .init_irq = cmx270_init_irq,
2496+ .timer = &pxa_timer,
2497+ .init_machine = cmx270_init,
2498+MACHINE_END
2499diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
2500index 4468cb3..02b04e2 100644
2501--- a/drivers/leds/Kconfig
2502+++ b/drivers/leds/Kconfig
2503@@ -87,6 +87,12 @@ config LEDS_H1940
2504 help
2505 This option enables support for the LEDs on the h1940.
2506
2507+config LEDS_CM_X270
2508+ tristate "LED Support for the CM-X270 LEDs"
2509+ depends on LEDS_CLASS && MACH_ARMCORE
2510+ help
2511+ This option enables support for the CM-X270 LEDs.
2512+
2513 config LEDS_COBALT
2514 tristate "LED Support for Cobalt Server front LED"
2515 depends on LEDS_CLASS && MIPS_COBALT
2516diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
2517index f8995c9..12a860c 100644
2518--- a/drivers/leds/Makefile
2519+++ b/drivers/leds/Makefile
2520@@ -17,6 +17,7 @@ obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
2521 obj-$(CONFIG_LEDS_H1940) += leds-h1940.o
2522 obj-$(CONFIG_LEDS_COBALT) += leds-cobalt.o
2523 obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o
2524+obj-$(CONFIG_LEDS_CM_X270) += leds-cm-x270.o
2525
2526 # LED Triggers
2527 obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
2528diff --git a/drivers/leds/leds-cm-x270.c b/drivers/leds/leds-cm-x270.c
2529new file mode 100644
2530index 0000000..63b7e9e
2531--- /dev/null
2532+++ b/drivers/leds/leds-cm-x270.c
2533@@ -0,0 +1,126 @@
2534+/*
2535+ * drivers/leds/leds-cm-x270.c
2536+ *
2537+ * Copyright 2007 CompuLab Ltd.
2538+ * Author: Mike Rapoport <mike@compulab.co.il>
2539+ *
2540+ * Based on leds-corgi.c
2541+ * Author: Richard Purdie <rpurdie@openedhand.com>
2542+ *
2543+ * This program is free software; you can redistribute it and/or modify
2544+ * it under the terms of the GNU General Public License version 2 as
2545+ * published by the Free Software Foundation.
2546+ *
2547+ */
2548+
2549+#include <linux/kernel.h>
2550+#include <linux/init.h>
2551+#include <linux/platform_device.h>
2552+#include <linux/leds.h>
2553+
2554+#include <asm/arch/hardware.h>
2555+#include <asm/arch/pxa-regs.h>
2556+
2557+#define GPIO_RED_LED (93)
2558+#define GPIO_GREEN_LED (94)
2559+
2560+#define CMX270_RED_ON() GPCR(GPIO_RED_LED) = GPIO_bit(GPIO_RED_LED)
2561+#define CMX270_RED_OFF() GPSR(GPIO_RED_LED) = GPIO_bit(GPIO_RED_LED)
2562+#define CMX270_GREEN_ON() GPCR(GPIO_GREEN_LED) = GPIO_bit(GPIO_GREEN_LED)
2563+#define CMX270_GREEN_OFF() GPSR(GPIO_GREEN_LED) = GPIO_bit(GPIO_GREEN_LED)
2564+
2565+
2566+static void cmx270_red_set(struct led_classdev *led_cdev, enum led_brightness value)
2567+{
2568+ if (value)
2569+ CMX270_RED_ON();
2570+ else
2571+ CMX270_RED_OFF();
2572+}
2573+
2574+static void cmx270_green_set(struct led_classdev *led_cdev, enum led_brightness value)
2575+{
2576+ if (value)
2577+ CMX270_GREEN_ON();
2578+ else
2579+ CMX270_GREEN_OFF();
2580+}
2581+
2582+static struct led_classdev cmx270_red_led = {
2583+ .name = "cm-x270:red",
2584+ .default_trigger = "nand-disk",
2585+ .brightness_set = cmx270_red_set,
2586+};
2587+
2588+static struct led_classdev cmx270_green_led = {
2589+ .name = "cm-x270:green",
2590+ .default_trigger = "heartbeat",
2591+ .brightness_set = cmx270_green_set,
2592+};
2593+
2594+#ifdef CONFIG_PM
2595+static int cmx270led_suspend(struct platform_device *dev, pm_message_t state)
2596+{
2597+ led_classdev_suspend(&cmx270_red_led);
2598+ led_classdev_suspend(&cmx270_green_led);
2599+ return 0;
2600+}
2601+
2602+static int cmx270led_resume(struct platform_device *dev)
2603+{
2604+ led_classdev_resume(&cmx270_red_led);
2605+ led_classdev_resume(&cmx270_green_led);
2606+ return 0;
2607+}
2608+#endif
2609+
2610+static int cmx270led_probe(struct platform_device *pdev)
2611+{
2612+ int ret;
2613+
2614+ ret = led_classdev_register(&pdev->dev, &cmx270_red_led);
2615+ if (ret < 0)
2616+ return ret;
2617+
2618+ ret = led_classdev_register(&pdev->dev, &cmx270_green_led);
2619+ if (ret < 0)
2620+ led_classdev_unregister(&cmx270_red_led);
2621+
2622+ return ret;
2623+}
2624+
2625+static int cmx270led_remove(struct platform_device *pdev)
2626+{
2627+ led_classdev_unregister(&cmx270_red_led);
2628+ led_classdev_unregister(&cmx270_green_led);
2629+ return 0;
2630+}
2631+
2632+static struct platform_driver cmx270led_driver = {
2633+ .probe = cmx270led_probe,
2634+ .remove = cmx270led_remove,
2635+#ifdef CONFIG_PM
2636+ .suspend = cmx270led_suspend,
2637+ .resume = cmx270led_resume,
2638+#endif
2639+ .driver = {
2640+ .name = "cm-x270-led",
2641+ },
2642+};
2643+
2644+static int __init cmx270led_init(void)
2645+{
2646+ return platform_driver_register(&cmx270led_driver);
2647+}
2648+
2649+static void __exit cmx270led_exit(void)
2650+{
2651+ platform_driver_unregister(&cmx270led_driver);
2652+}
2653+
2654+module_init(cmx270led_init);
2655+module_exit(cmx270led_exit);
2656+
2657+MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>");
2658+MODULE_DESCRIPTION("Corgi LED driver");
2659+MODULE_LICENSE("GPL");
2660diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
2661index c551925..b34f875 100644
2662--- a/drivers/net/Kconfig
2663+++ b/drivers/net/Kconfig
2664@@ -940,6 +940,14 @@ config DM9000
2665 <file:Documentation/networking/net-modules.txt>. The module will be
2666 called dm9000.
2667
2668+config DM9000_NOEPROM
2669+ bool "DM9000 without EEPROM attached"
2670+ depends on DM9000
2671+ ---help---
2672+ Select this option if you have DM9000 chipset without EEPROM
2673+ containing the MAC address. In this case MAC address should
2674+ be set either by the bootloader or using ifconfig
2675+
2676 config SMC911X
2677 tristate "SMSC LAN911[5678] support"
2678 select CRC32
2679diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
2680index 738aa59..2371c6b 100644
2681--- a/drivers/net/dm9000.c
2682+++ b/drivers/net/dm9000.c
2683@@ -577,6 +577,7 @@ dm9000_probe(struct platform_device *pdev)
2684 db->mii.mdio_read = dm9000_phy_read;
2685 db->mii.mdio_write = dm9000_phy_write;
2686
2687+#ifndef CONFIG_DM9000_NOEPROM
2688 /* Read SROM content */
2689 for (i = 0; i < 64; i++)
2690 ((u16 *) db->srom)[i] = read_srom_word(db, i);
2691@@ -584,6 +585,11 @@ dm9000_probe(struct platform_device *pdev)
2692 /* Set Node Address */
2693 for (i = 0; i < 6; i++)
2694 ndev->dev_addr[i] = db->srom[i];
2695+#else
2696+ /* The Node Address was set by bootloader */
2697+ for (i=0; i<6; i++)
2698+ ndev->dev_addr[i] = ior(db, 0x10+i);
2699+#endif
2700
2701 if (!is_valid_ether_addr(ndev->dev_addr)) {
2702 /* try reading from mac */
2703diff --git a/include/asm-arm/arch-pxa/cm-x270.h b/include/asm-arm/arch-pxa/cm-x270.h
2704new file mode 100644
2705index 0000000..24613a5
2706--- /dev/null
2707+++ b/include/asm-arm/arch-pxa/cm-x270.h
2708@@ -0,0 +1,71 @@
2709+/*
2710+ * linux/include/asm/arch-pxa/armcore.h
2711+ *
2712+ * Compulab Ltd., 2003
2713+ *
2714+ * ARMCore registers
2715+ */
2716+
2717+
2718+#define CMX270_CS1_PHYS (PXA_CS1_PHYS)
2719+#define MARATHON_PHYS (PXA_CS2_PHYS)
2720+#define CMX270_IDE104_PHYS (PXA_CS3_PHYS)
2721+#define CMX270_IT8152_PHYS (PXA_CS4_PHYS)
2722+
2723+#define PXA_CS_SIZE (64*1024*1024)
2724+
2725+/* Virtual map */
2726+
2727+#define CMX270_VIRT_BASE (0xe8000000)
2728+
2729+#define CMX270_IT8152_VIRT (CMX270_VIRT_BASE)
2730+#define CMX270_IDE104_VIRT (CMX270_IT8152_VIRT + PXA_CS_SIZE)
2731+
2732+
2733+/* GPIO related definitions */
2734+#define GPIO_IT8152_IRQ (22)
2735+#define GPIO_RED_LED (93)
2736+#define GPIO_GREEN_LED (94)
2737+
2738+
2739+#define IRQ_GPIO_IT8152_IRQ IRQ_GPIO(GPIO_IT8152_IRQ)
2740+#define PME_IRQ IRQ_GPIO(0)
2741+#define CMX270_IDE_IRQ IRQ_GPIO(100)
2742+#define CMX270_GPIRQ1 IRQ_GPIO(101)
2743+#define CMX270_TOUCHIRQ IRQ_GPIO(96)
2744+#define CMX270_ETHIRQ IRQ_GPIO(10)
2745+#define CMX270_GFXIRQ IRQ_GPIO(95)
2746+#define CMX270_NANDIRQ IRQ_GPIO(89)
2747+#define CMX270_MMC_IRQ IRQ_GPIO(83)
2748+
2749+/* LED macros */
2750+#define CMX270_RED_ON() GPCR(GPIO_RED_LED) = GPIO_bit(GPIO_RED_LED)
2751+#define CMX270_RED_OFF() GPSR(GPIO_RED_LED) = GPIO_bit(GPIO_RED_LED)
2752+#define CMX270_GREEN_ON() GPCR(GPIO_GREEN_LED) = GPIO_bit(GPIO_GREEN_LED)
2753+#define CMX270_GREEN_OFF() GPSR(GPIO_GREEN_LED) = GPIO_bit(GPIO_GREEN_LED)
2754+
2755+/* PCMCIA related definitions */
2756+#define PCC_DETECT(x) (GPLR(84 - (x)) & GPIO_bit(84 - (x)))
2757+#define PCC_READY(x) (GPLR(82 - (x)) & GPIO_bit(81 - (x)))
2758+
2759+#define PCMCIA_S0_CD_VALID IRQ_GPIO(84)
2760+#define PCMCIA_S0_CD_VALID_EDGE GPIO_BOTH_EDGES
2761+
2762+#define PCMCIA_S1_CD_VALID IRQ_GPIO(83)
2763+#define PCMCIA_S1_CD_VALID_EDGE GPIO_BOTH_EDGES
2764+
2765+#define PCMCIA_S0_RDYINT IRQ_GPIO(82)
2766+#define PCMCIA_S1_RDYINT IRQ_GPIO(81)
2767+
2768+#define PCMCIA_RESET_GPIO 53
2769+
2770+
2771+
2772+
2773+
2774+
2775+
2776+
2777+
2778+
2779+
2780diff --git a/include/asm-arm/arch-pxa/hardware.h b/include/asm-arm/arch-pxa/hardware.h
2781index 3861217..beb240e 100644
2782--- a/include/asm-arm/arch-pxa/hardware.h
2783+++ b/include/asm-arm/arch-pxa/hardware.h
2784@@ -126,4 +126,15 @@ extern unsigned int get_lcdclk_frequency_10khz(void);
2785
2786 #endif
2787
2788+#if defined(CONFIG_MACH_ARMCORE) && defined(CONFIG_PCI)
2789+#define HAVE_ARCH_PCI_SET_DMA_MASK
2790+#ifndef __ASSEMBLY__
2791+extern unsigned long armcore_pcibios_min_io;
2792+extern unsigned long armcore_pcibios_min_mem;
2793+#endif
2794+#define PCIBIOS_MIN_IO (armcore_pcibios_min_io)
2795+#define PCIBIOS_MIN_MEM (armcore_pcibios_min_mem)
2796+#define pcibios_assign_all_busses() 1
2797+#endif
2798+
2799 #endif /* _ASM_ARCH_HARDWARE_H */
2800diff --git a/include/asm-arm/arch-pxa/irqs.h b/include/asm-arm/arch-pxa/irqs.h
2801index a07fe0f..efb3d42 100644
2802--- a/include/asm-arm/arch-pxa/irqs.h
2803+++ b/include/asm-arm/arch-pxa/irqs.h
2804@@ -216,3 +216,23 @@
2805 #define IRQ_LOCOMO_GPIO_BASE (IRQ_BOARD_START + 1)
2806 #define IRQ_LOCOMO_LT_BASE (IRQ_BOARD_START + 2)
2807 #define IRQ_LOCOMO_SPI_BASE (IRQ_BOARD_START + 3)
2808+
2809+/* ITE8152 irqs on CM-x2xx */
2810+#ifdef CONFIG_MACH_ARMCORE
2811+#define IT8152_IRQ(x) (IRQ_BOARD_START + (x))
2812+#define PCISERR IT8152_IRQ(0)
2813+#define H2PTADR IT8152_IRQ(1)
2814+#define H2PMAR IT8152_IRQ(2)
2815+#define PCI_INTA IT8152_IRQ(3)
2816+#define PCI_INTB IT8152_IRQ(4)
2817+#define PCI_INTC IT8152_IRQ(5)
2818+#define PCI_INTD IT8152_IRQ(6)
2819+#define USB_INT IT8152_IRQ(7)
2820+#define AUDIO_INT IT8152_IRQ(8)
2821+#define CDMA_INT IT8152_IRQ(9)
2822+#define IRQ_ITESER IT8152_IRQ(10)
2823+#define IT8152_IRQ_MAX IT8152_IRQ(10)
2824+
2825+#undef NR_IRQS
2826+#define NR_IRQS IT8152_IRQ_MAX+1
2827+#endif
2828diff --git a/include/asm-arm/memory.h b/include/asm-arm/memory.h
2829index d9bfb39..83db3cb 100644
2830--- a/include/asm-arm/memory.h
2831+++ b/include/asm-arm/memory.h
2832@@ -141,6 +141,16 @@
2833 * allocations. This must be the smallest DMA mask in the system,
2834 * so a successful GFP_DMA allocation will always satisfy this.
2835 */
2836+
2837+#ifdef CONFIG_PCI_HOST_ITE8152
2838+void it8152_adjust_zones(int node, unsigned long *size, unsigned long *holes);
2839+
2840+#define arch_adjust_zones(node, size, holes) \
2841+ it8152_adjust_zones(node, size, holes)
2842+
2843+#define ISA_DMA_THRESHOLD (PHYS_OFFSET + SZ_64M - 1)
2844+#endif
2845+
2846 #ifndef ISA_DMA_THRESHOLD
2847 #define ISA_DMA_THRESHOLD (0xffffffffULL)
2848 #endif
2849--
28501.5.2.5
2851