summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch
diff options
context:
space:
mode:
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