aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Kconfig23
-rw-r--r--arch/arm/Makefile4
-rw-r--r--arch/arm/boot/Makefile8
-rw-r--r--arch/arm/common/scoop.c183
-rw-r--r--arch/arm/configs/am200epdkit_defconfig1149
-rw-r--r--arch/arm/configs/at91rm9200dk_defconfig4
-rw-r--r--arch/arm/configs/at91rm9200ek_defconfig4
-rw-r--r--arch/arm/configs/at91sam9260ek_defconfig520
-rw-r--r--arch/arm/configs/at91sam9261ek_defconfig573
-rw-r--r--arch/arm/configs/at91sam9263ek_defconfig557
-rw-r--r--arch/arm/configs/at91sam9rlek_defconfig430
-rw-r--r--arch/arm/configs/ateb9200_defconfig2
-rw-r--r--arch/arm/configs/cam60_defconfig1228
-rw-r--r--arch/arm/configs/csb337_defconfig732
-rw-r--r--arch/arm/configs/csb637_defconfig728
-rw-r--r--arch/arm/configs/ecbat91_defconfig1315
-rw-r--r--arch/arm/configs/kafa_defconfig4
-rw-r--r--arch/arm/configs/magician_defconfig1182
-rw-r--r--arch/arm/configs/ns9xxx_defconfig652
-rw-r--r--arch/arm/configs/orion5x_defconfig (renamed from arch/arm/configs/orion_defconfig)2
-rw-r--r--arch/arm/configs/picotux200_defconfig4
-rw-r--r--arch/arm/configs/sam9_l9260_defconfig1098
-rw-r--r--arch/arm/configs/tct_hammer_defconfig886
-rw-r--r--arch/arm/configs/yl9200_defconfig1216
-rw-r--r--arch/arm/kernel/calls.S4
-rw-r--r--arch/arm/kernel/entry-armv.S24
-rw-r--r--arch/arm/kernel/head-common.S7
-rw-r--r--arch/arm/mach-at91/Kconfig33
-rw-r--r--arch/arm/mach-at91/Makefile3
-rw-r--r--arch/arm/mach-at91/at91cap9.c9
-rw-r--r--arch/arm/mach-at91/at91cap9_devices.c70
-rw-r--r--arch/arm/mach-at91/at91rm9200_devices.c92
-rw-r--r--arch/arm/mach-at91/at91sam9260.c8
-rw-r--r--arch/arm/mach-at91/at91sam9260_devices.c159
-rw-r--r--arch/arm/mach-at91/at91sam9261.c8
-rw-r--r--arch/arm/mach-at91/at91sam9261_devices.c102
-rw-r--r--arch/arm/mach-at91/at91sam9263.c8
-rw-r--r--arch/arm/mach-at91/at91sam9263_devices.c98
-rw-r--r--arch/arm/mach-at91/at91sam926x_time.c171
-rw-r--r--arch/arm/mach-at91/at91sam9rl.c8
-rw-r--r--arch/arm/mach-at91/at91sam9rl_devices.c117
-rw-r--r--arch/arm/mach-at91/board-cam60.c180
-rw-r--r--arch/arm/mach-at91/board-cap9adk.c2
-rw-r--r--arch/arm/mach-at91/board-csb337.c18
-rw-r--r--arch/arm/mach-at91/board-csb637.c30
-rw-r--r--arch/arm/mach-at91/board-ecbat91.c178
-rw-r--r--arch/arm/mach-at91/board-sam9-l9260.c199
-rw-r--r--arch/arm/mach-at91/board-sam9260ek.c83
-rw-r--r--arch/arm/mach-at91/board-sam9261ek.c83
-rw-r--r--arch/arm/mach-at91/board-sam9263ek.c25
-rw-r--r--arch/arm/mach-at91/board-sam9rlek.c23
-rwxr-xr-xarch/arm/mach-at91/board-yl-9200.c683
-rw-r--r--arch/arm/mach-at91/pm.c165
-rw-r--r--arch/arm/mach-clps711x/Kconfig2
-rw-r--r--arch/arm/mach-ep93xx/Makefile2
-rw-r--r--arch/arm/mach-ep93xx/core.c109
-rw-r--r--arch/arm/mach-ep93xx/gpio.c158
-rw-r--r--arch/arm/mach-iop32x/Kconfig8
-rw-r--r--arch/arm/mach-iop32x/iq31244.c11
-rw-r--r--arch/arm/mach-iop32x/iq80321.c2
-rw-r--r--arch/arm/mach-iop33x/Kconfig8
-rw-r--r--arch/arm/mach-iop33x/iq80331.c2
-rw-r--r--arch/arm/mach-iop33x/iq80332.c2
-rw-r--r--arch/arm/mach-ks8695/Makefile3
-rw-r--r--arch/arm/mach-ks8695/devices.c21
-rw-r--r--arch/arm/mach-ks8695/leds.c94
-rw-r--r--arch/arm/mach-ns9xxx/Kconfig30
-rw-r--r--arch/arm/mach-ns9xxx/Makefile7
-rw-r--r--arch/arm/mach-ns9xxx/Makefile.boot2
-rw-r--r--arch/arm/mach-ns9xxx/board-a9m9750dev.c69
-rw-r--r--arch/arm/mach-ns9xxx/clock.c215
-rw-r--r--arch/arm/mach-ns9xxx/clock.h35
-rw-r--r--arch/arm/mach-ns9xxx/generic.c27
-rw-r--r--arch/arm/mach-ns9xxx/generic.h5
-rw-r--r--arch/arm/mach-ns9xxx/gpio-ns9360.c118
-rw-r--r--arch/arm/mach-ns9xxx/gpio-ns9360.h13
-rw-r--r--arch/arm/mach-ns9xxx/gpio.c141
-rw-r--r--arch/arm/mach-ns9xxx/irq.c74
-rw-r--r--arch/arm/mach-ns9xxx/mach-cc9p9360dev.c8
-rw-r--r--arch/arm/mach-ns9xxx/mach-cc9p9360js.c8
-rw-r--r--arch/arm/mach-ns9xxx/plat-serial8250.c69
-rw-r--r--arch/arm/mach-ns9xxx/processor-ns9360.c54
-rw-r--r--arch/arm/mach-ns9xxx/time-ns9360.c (renamed from arch/arm/mach-ns9xxx/time.c)75
-rw-r--r--arch/arm/mach-orion/addr-map.c490
-rw-r--r--arch/arm/mach-orion/common.h92
-rw-r--r--arch/arm/mach-orion/pci.c557
-rw-r--r--arch/arm/mach-orion/time.c181
-rw-r--r--arch/arm/mach-orion5x/Kconfig (renamed from arch/arm/mach-orion/Kconfig)10
-rw-r--r--arch/arm/mach-orion5x/Makefile (renamed from arch/arm/mach-orion/Makefile)3
-rw-r--r--arch/arm/mach-orion5x/Makefile.boot (renamed from arch/arm/mach-orion/Makefile.boot)0
-rw-r--r--arch/arm/mach-orion5x/addr-map.c240
-rw-r--r--arch/arm/mach-orion5x/common.c (renamed from arch/arm/mach-orion/common.c)220
-rw-r--r--arch/arm/mach-orion5x/common.h72
-rw-r--r--arch/arm/mach-orion5x/db88f5281-setup.c (renamed from arch/arm/mach-orion/db88f5281-setup.c)55
-rw-r--r--arch/arm/mach-orion5x/dns323-setup.c (renamed from arch/arm/mach-orion/dns323-setup.c)45
-rw-r--r--arch/arm/mach-orion5x/gpio.c (renamed from arch/arm/mach-orion/gpio.c)77
-rw-r--r--arch/arm/mach-orion5x/irq.c (renamed from arch/arm/mach-orion/irq.c)132
-rw-r--r--arch/arm/mach-orion5x/kurobox_pro-setup.c (renamed from arch/arm/mach-orion/kurobox_pro-setup.c)80
-rw-r--r--arch/arm/mach-orion5x/pci.c559
-rw-r--r--arch/arm/mach-orion5x/rd88f5182-setup.c (renamed from arch/arm/mach-orion/rd88f5182-setup.c)53
-rw-r--r--arch/arm/mach-orion5x/ts209-setup.c (renamed from arch/arm/mach-orion/ts209-setup.c)145
-rw-r--r--arch/arm/mach-pxa/Kconfig20
-rw-r--r--arch/arm/mach-pxa/Makefile7
-rw-r--r--arch/arm/mach-pxa/clock.c1
-rw-r--r--arch/arm/mach-pxa/cm-x270-pci.c1
-rw-r--r--arch/arm/mach-pxa/cm-x270.c1
-rw-r--r--arch/arm/mach-pxa/colibri.c1
-rw-r--r--arch/arm/mach-pxa/corgi.c1
-rw-r--r--arch/arm/mach-pxa/corgi_pm.c1
-rw-r--r--arch/arm/mach-pxa/corgi_ssp.c1
-rw-r--r--arch/arm/mach-pxa/devices.c58
-rw-r--r--arch/arm/mach-pxa/devices.h1
-rw-r--r--arch/arm/mach-pxa/em-x270.c1
-rw-r--r--arch/arm/mach-pxa/generic.c62
-rw-r--r--arch/arm/mach-pxa/generic.h12
-rw-r--r--arch/arm/mach-pxa/gpio.c325
-rw-r--r--arch/arm/mach-pxa/gumstix.c147
-rw-r--r--arch/arm/mach-pxa/idp.c1
-rw-r--r--arch/arm/mach-pxa/irq.c336
-rw-r--r--arch/arm/mach-pxa/leds-trizeps4.c1
-rw-r--r--arch/arm/mach-pxa/littleton.c67
-rw-r--r--arch/arm/mach-pxa/lpd270.c1
-rw-r--r--arch/arm/mach-pxa/lubbock.c121
-rw-r--r--arch/arm/mach-pxa/magician.c486
-rw-r--r--arch/arm/mach-pxa/mainstone.c219
-rw-r--r--arch/arm/mach-pxa/mfp-pxa2xx.c245
-rw-r--r--arch/arm/mach-pxa/mfp-pxa3xx.c (renamed from arch/arm/mach-pxa/mfp.c)20
-rw-r--r--arch/arm/mach-pxa/pcm027.c1
-rw-r--r--arch/arm/mach-pxa/pcm990-baseboard.c87
-rw-r--r--arch/arm/mach-pxa/poodle.c1
-rw-r--r--arch/arm/mach-pxa/pxa25x.c32
-rw-r--r--arch/arm/mach-pxa/pxa27x.c48
-rw-r--r--arch/arm/mach-pxa/pxa3xx.c77
-rw-r--r--arch/arm/mach-pxa/sharpsl_pm.c1
-rw-r--r--arch/arm/mach-pxa/spitz.c1
-rw-r--r--arch/arm/mach-pxa/spitz_pm.c1
-rw-r--r--arch/arm/mach-pxa/tosa.c297
-rw-r--r--arch/arm/mach-pxa/trizeps4.c1
-rw-r--r--arch/arm/mach-pxa/zylonite.c69
-rw-r--r--arch/arm/mach-pxa/zylonite_pxa300.c8
-rw-r--r--arch/arm/mach-pxa/zylonite_pxa320.c8
-rw-r--r--arch/arm/mach-s3c2410/Kconfig7
-rw-r--r--arch/arm/mach-s3c2410/Makefile1
-rw-r--r--arch/arm/mach-s3c2410/mach-bast.c38
-rw-r--r--arch/arm/mach-s3c2410/mach-tct_hammer.c160
-rw-r--r--arch/arm/mach-s3c2410/mach-vr1000.c2
-rw-r--r--arch/arm/mach-s3c2412/s3c2412.c2
-rw-r--r--arch/arm/mach-s3c2440/mach-anubis.c4
-rw-r--r--arch/arm/mach-s3c2440/mach-osiris.c5
-rw-r--r--arch/arm/mach-sa1100/Makefile2
-rw-r--r--arch/arm/mach-sa1100/generic.c31
-rw-r--r--arch/arm/mach-sa1100/generic.h1
-rw-r--r--arch/arm/mach-sa1100/gpio.c65
-rw-r--r--arch/arm/mach-sa1100/irq.c2
-rw-r--r--arch/arm/mach-sa1100/time.c159
-rw-r--r--arch/arm/mm/Kconfig2
-rw-r--r--arch/arm/mm/init.c2
-rw-r--r--arch/arm/plat-iop/pci.c79
-rw-r--r--arch/arm/plat-mxc/Kconfig2
-rw-r--r--arch/arm/plat-mxc/Makefile4
-rw-r--r--arch/arm/plat-mxc/irq.c14
-rw-r--r--arch/arm/plat-orion/Makefile8
-rw-r--r--arch/arm/plat-orion/irq.c64
-rw-r--r--arch/arm/plat-orion/pcie.c245
-rw-r--r--arch/arm/plat-orion/time.c203
-rw-r--r--arch/arm/plat-s3c24xx/clock.c56
-rw-r--r--arch/arm/plat-s3c24xx/cpu.c27
-rw-r--r--arch/arm/tools/mach-types117
168 files changed, 17936 insertions, 5612 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index bbae45a1e13b..ac1bef1797e6 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -255,6 +255,7 @@ config ARCH_EP93XX
255 select ARM_AMBA 255 select ARM_AMBA
256 select ARM_VIC 256 select ARM_VIC
257 select GENERIC_GPIO 257 select GENERIC_GPIO
258 select HAVE_GPIO_LIB
258 help 259 help
259 This enables support for the Cirrus EP93xx series of CPUs. 260 This enables support for the Cirrus EP93xx series of CPUs.
260 261
@@ -377,15 +378,17 @@ config ARCH_MXC
377 help 378 help
378 Support for Freescale MXC/iMX-based family of processors 379 Support for Freescale MXC/iMX-based family of processors
379 380
380config ARCH_ORION 381config ARCH_ORION5X
381 bool "Marvell Orion" 382 bool "Marvell Orion"
382 depends on MMU 383 depends on MMU
383 select PCI 384 select PCI
384 select GENERIC_GPIO 385 select GENERIC_GPIO
385 select GENERIC_TIME 386 select GENERIC_TIME
386 select GENERIC_CLOCKEVENTS 387 select GENERIC_CLOCKEVENTS
388 select PLAT_ORION
387 help 389 help
388 Support for Marvell Orion System on Chip family. 390 Support for the following Marvell Orion 5x series SoCs:
391 Orion-1 (5181), Orion-NAS (5182), Orion-2 (5281.)
389 392
390config ARCH_PNX4008 393config ARCH_PNX4008
391 bool "Philips Nexperia PNX4008 Mobile" 394 bool "Philips Nexperia PNX4008 Mobile"
@@ -422,10 +425,15 @@ config ARCH_SA1100
422 bool "SA1100-based" 425 bool "SA1100-based"
423 select ISA 426 select ISA
424 select ARCH_DISCONTIGMEM_ENABLE 427 select ARCH_DISCONTIGMEM_ENABLE
428 select ARCH_SPARSEMEM_ENABLE
429 select ARCH_SELECT_MEMORY_MODEL
425 select ARCH_MTD_XIP 430 select ARCH_MTD_XIP
426 select GENERIC_GPIO 431 select GENERIC_GPIO
427 select GENERIC_TIME 432 select GENERIC_TIME
433 select GENERIC_CLOCKEVENTS
434 select TICK_ONESHOT
428 select HAVE_IDE 435 select HAVE_IDE
436 select HAVE_GPIO_LIB
429 help 437 help
430 Support for StrongARM 11x0 based boards. 438 Support for StrongARM 11x0 based boards.
431 439
@@ -516,7 +524,7 @@ source "arch/arm/mach-omap1/Kconfig"
516 524
517source "arch/arm/mach-omap2/Kconfig" 525source "arch/arm/mach-omap2/Kconfig"
518 526
519source "arch/arm/mach-orion/Kconfig" 527source "arch/arm/mach-orion5x/Kconfig"
520 528
521source "arch/arm/plat-s3c24xx/Kconfig" 529source "arch/arm/plat-s3c24xx/Kconfig"
522source "arch/arm/plat-s3c/Kconfig" 530source "arch/arm/plat-s3c/Kconfig"
@@ -563,6 +571,9 @@ config ARCH_ACORN
563config PLAT_IOP 571config PLAT_IOP
564 bool 572 bool
565 573
574config PLAT_ORION
575 bool
576
566source arch/arm/mm/Kconfig 577source arch/arm/mm/Kconfig
567 578
568config IWMMXT 579config IWMMXT
@@ -774,6 +785,12 @@ config ARCH_DISCONTIGMEM_ENABLE
774 or have huge holes in the physical address space for other reasons. 785 or have huge holes in the physical address space for other reasons.
775 See <file:Documentation/vm/numa> for more. 786 See <file:Documentation/vm/numa> for more.
776 787
788config ARCH_SPARSEMEM_ENABLE
789 bool
790
791config ARCH_SELECT_MEMORY_MODEL
792 bool
793
777config NODES_SHIFT 794config NODES_SHIFT
778 int 795 int
779 default "4" if ARCH_LH7A40X 796 default "4" if ARCH_LH7A40X
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 1a4649667ec8..e72db27e0ba0 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -134,12 +134,11 @@ endif
134 machine-$(CONFIG_ARCH_PNX4008) := pnx4008 134 machine-$(CONFIG_ARCH_PNX4008) := pnx4008
135 machine-$(CONFIG_ARCH_NETX) := netx 135 machine-$(CONFIG_ARCH_NETX) := netx
136 machine-$(CONFIG_ARCH_NS9XXX) := ns9xxx 136 machine-$(CONFIG_ARCH_NS9XXX) := ns9xxx
137 textofs-$(CONFIG_ARCH_NS9XXX) := 0x00108000
138 machine-$(CONFIG_ARCH_DAVINCI) := davinci 137 machine-$(CONFIG_ARCH_DAVINCI) := davinci
139 machine-$(CONFIG_ARCH_KS8695) := ks8695 138 machine-$(CONFIG_ARCH_KS8695) := ks8695
140 incdir-$(CONFIG_ARCH_MXC) := mxc 139 incdir-$(CONFIG_ARCH_MXC) := mxc
141 machine-$(CONFIG_ARCH_MX3) := mx3 140 machine-$(CONFIG_ARCH_MX3) := mx3
142 machine-$(CONFIG_ARCH_ORION) := orion 141 machine-$(CONFIG_ARCH_ORION5X) := orion5x
143 machine-$(CONFIG_ARCH_MSM7X00A) := msm 142 machine-$(CONFIG_ARCH_MSM7X00A) := msm
144 143
145ifeq ($(CONFIG_ARCH_EBSA110),y) 144ifeq ($(CONFIG_ARCH_EBSA110),y)
@@ -185,6 +184,7 @@ core-$(CONFIG_VFP) += arch/arm/vfp/
185 184
186# If we have a common platform directory, then include it in the build. 185# If we have a common platform directory, then include it in the build.
187core-$(CONFIG_PLAT_IOP) += arch/arm/plat-iop/ 186core-$(CONFIG_PLAT_IOP) += arch/arm/plat-iop/
187core-$(CONFIG_PLAT_ORION) += arch/arm/plat-orion/
188core-$(CONFIG_ARCH_OMAP) += arch/arm/plat-omap/ 188core-$(CONFIG_ARCH_OMAP) += arch/arm/plat-omap/
189core-$(CONFIG_PLAT_S3C24XX) += arch/arm/plat-s3c24xx/ 189core-$(CONFIG_PLAT_S3C24XX) += arch/arm/plat-s3c24xx/
190core-$(CONFIG_ARCH_MXC) += arch/arm/plat-mxc/ 190core-$(CONFIG_ARCH_MXC) += arch/arm/plat-mxc/
diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile
index 25f12303b106..da226abce2d0 100644
--- a/arch/arm/boot/Makefile
+++ b/arch/arm/boot/Makefile
@@ -61,9 +61,15 @@ endif
61 61
62quiet_cmd_uimage = UIMAGE $@ 62quiet_cmd_uimage = UIMAGE $@
63 cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \ 63 cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A arm -O linux -T kernel \
64 -C none -a $(ZRELADDR) -e $(ZRELADDR) \ 64 -C none -a $(LOADADDR) -e $(LOADADDR) \
65 -n 'Linux-$(KERNELRELEASE)' -d $< $@ 65 -n 'Linux-$(KERNELRELEASE)' -d $< $@
66 66
67ifeq ($(CONFIG_ZBOOT_ROM),y)
68$(obj)/uImage: LOADADDR=$(CONFIG_ZBOOT_ROM_TEXT)
69else
70$(obj)/uImage: LOADADDR=$(ZRELADDR)
71endif
72
67$(obj)/uImage: $(obj)/zImage FORCE 73$(obj)/uImage: $(obj)/zImage FORCE
68 $(call if_changed,uimage) 74 $(call if_changed,uimage)
69 @echo ' Image $@ is ready' 75 @echo ' Image $@ is ready'
diff --git a/arch/arm/common/scoop.c b/arch/arm/common/scoop.c
index 314ebd3a1d71..bc299b07a6fa 100644
--- a/arch/arm/common/scoop.c
+++ b/arch/arm/common/scoop.c
@@ -16,6 +16,7 @@
16#include <linux/slab.h> 16#include <linux/slab.h>
17#include <linux/platform_device.h> 17#include <linux/platform_device.h>
18#include <asm/io.h> 18#include <asm/io.h>
19#include <asm/gpio.h>
19#include <asm/hardware/scoop.h> 20#include <asm/hardware/scoop.h>
20 21
21/* PCMCIA to Scoop linkage 22/* PCMCIA to Scoop linkage
@@ -30,10 +31,9 @@
30struct scoop_pcmcia_config *platform_scoop_config; 31struct scoop_pcmcia_config *platform_scoop_config;
31EXPORT_SYMBOL(platform_scoop_config); 32EXPORT_SYMBOL(platform_scoop_config);
32 33
33#define SCOOP_REG(d,adr) (*(volatile unsigned short*)(d +(adr)))
34
35struct scoop_dev { 34struct scoop_dev {
36 void *base; 35 void __iomem *base;
36 struct gpio_chip gpio;
37 spinlock_t scoop_lock; 37 spinlock_t scoop_lock;
38 unsigned short suspend_clr; 38 unsigned short suspend_clr;
39 unsigned short suspend_set; 39 unsigned short suspend_set;
@@ -44,13 +44,84 @@ void reset_scoop(struct device *dev)
44{ 44{
45 struct scoop_dev *sdev = dev_get_drvdata(dev); 45 struct scoop_dev *sdev = dev_get_drvdata(dev);
46 46
47 SCOOP_REG(sdev->base,SCOOP_MCR) = 0x0100; // 00 47 iowrite16(0x0100, sdev->base + SCOOP_MCR); // 00
48 SCOOP_REG(sdev->base,SCOOP_CDR) = 0x0000; // 04 48 iowrite16(0x0000, sdev->base + SCOOP_CDR); // 04
49 SCOOP_REG(sdev->base,SCOOP_CCR) = 0x0000; // 10 49 iowrite16(0x0000, sdev->base + SCOOP_CCR); // 10
50 SCOOP_REG(sdev->base,SCOOP_IMR) = 0x0000; // 18 50 iowrite16(0x0000, sdev->base + SCOOP_IMR); // 18
51 SCOOP_REG(sdev->base,SCOOP_IRM) = 0x00FF; // 14 51 iowrite16(0x00FF, sdev->base + SCOOP_IRM); // 14
52 SCOOP_REG(sdev->base,SCOOP_ISR) = 0x0000; // 1C 52 iowrite16(0x0000, sdev->base + SCOOP_ISR); // 1C
53 SCOOP_REG(sdev->base,SCOOP_IRM) = 0x0000; 53 iowrite16(0x0000, sdev->base + SCOOP_IRM);
54}
55
56static void __scoop_gpio_set(struct scoop_dev *sdev,
57 unsigned offset, int value)
58{
59 unsigned short gpwr;
60
61 gpwr = ioread16(sdev->base + SCOOP_GPWR);
62 if (value)
63 gpwr |= 1 << (offset + 1);
64 else
65 gpwr &= ~(1 << (offset + 1));
66 iowrite16(gpwr, sdev->base + SCOOP_GPWR);
67}
68
69static void scoop_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
70{
71 struct scoop_dev *sdev = container_of(chip, struct scoop_dev, gpio);
72 unsigned long flags;
73
74 spin_lock_irqsave(&sdev->scoop_lock, flags);
75
76 __scoop_gpio_set(sdev, offset, value);
77
78 spin_unlock_irqrestore(&sdev->scoop_lock, flags);
79}
80
81static int scoop_gpio_get(struct gpio_chip *chip, unsigned offset)
82{
83 struct scoop_dev *sdev = container_of(chip, struct scoop_dev, gpio);
84
85 /* XXX: I'm usure, but it seems so */
86 return ioread16(sdev->base + SCOOP_GPRR) & (1 << (offset + 1));
87}
88
89static int scoop_gpio_direction_input(struct gpio_chip *chip,
90 unsigned offset)
91{
92 struct scoop_dev *sdev = container_of(chip, struct scoop_dev, gpio);
93 unsigned long flags;
94 unsigned short gpcr;
95
96 spin_lock_irqsave(&sdev->scoop_lock, flags);
97
98 gpcr = ioread16(sdev->base + SCOOP_GPCR);
99 gpcr &= ~(1 << (offset + 1));
100 iowrite16(gpcr, sdev->base + SCOOP_GPCR);
101
102 spin_unlock_irqrestore(&sdev->scoop_lock, flags);
103
104 return 0;
105}
106
107static int scoop_gpio_direction_output(struct gpio_chip *chip,
108 unsigned offset, int value)
109{
110 struct scoop_dev *sdev = container_of(chip, struct scoop_dev, gpio);
111 unsigned long flags;
112 unsigned short gpcr;
113
114 spin_lock_irqsave(&sdev->scoop_lock, flags);
115
116 __scoop_gpio_set(sdev, offset, value);
117
118 gpcr = ioread16(sdev->base + SCOOP_GPCR);
119 gpcr |= 1 << (offset + 1);
120 iowrite16(gpcr, sdev->base + SCOOP_GPCR);
121
122 spin_unlock_irqrestore(&sdev->scoop_lock, flags);
123
124 return 0;
54} 125}
55 126
56unsigned short set_scoop_gpio(struct device *dev, unsigned short bit) 127unsigned short set_scoop_gpio(struct device *dev, unsigned short bit)
@@ -60,8 +131,8 @@ unsigned short set_scoop_gpio(struct device *dev, unsigned short bit)
60 struct scoop_dev *sdev = dev_get_drvdata(dev); 131 struct scoop_dev *sdev = dev_get_drvdata(dev);
61 132
62 spin_lock_irqsave(&sdev->scoop_lock, flag); 133 spin_lock_irqsave(&sdev->scoop_lock, flag);
63 gpio_bit = SCOOP_REG(sdev->base, SCOOP_GPWR) | bit; 134 gpio_bit = ioread16(sdev->base + SCOOP_GPWR) | bit;
64 SCOOP_REG(sdev->base, SCOOP_GPWR) = gpio_bit; 135 iowrite16(gpio_bit, sdev->base + SCOOP_GPWR);
65 spin_unlock_irqrestore(&sdev->scoop_lock, flag); 136 spin_unlock_irqrestore(&sdev->scoop_lock, flag);
66 137
67 return gpio_bit; 138 return gpio_bit;
@@ -74,8 +145,8 @@ unsigned short reset_scoop_gpio(struct device *dev, unsigned short bit)
74 struct scoop_dev *sdev = dev_get_drvdata(dev); 145 struct scoop_dev *sdev = dev_get_drvdata(dev);
75 146
76 spin_lock_irqsave(&sdev->scoop_lock, flag); 147 spin_lock_irqsave(&sdev->scoop_lock, flag);
77 gpio_bit = SCOOP_REG(sdev->base, SCOOP_GPWR) & ~bit; 148 gpio_bit = ioread16(sdev->base + SCOOP_GPWR) & ~bit;
78 SCOOP_REG(sdev->base,SCOOP_GPWR) = gpio_bit; 149 iowrite16(gpio_bit, sdev->base + SCOOP_GPWR);
79 spin_unlock_irqrestore(&sdev->scoop_lock, flag); 150 spin_unlock_irqrestore(&sdev->scoop_lock, flag);
80 151
81 return gpio_bit; 152 return gpio_bit;
@@ -87,13 +158,13 @@ EXPORT_SYMBOL(reset_scoop_gpio);
87unsigned short read_scoop_reg(struct device *dev, unsigned short reg) 158unsigned short read_scoop_reg(struct device *dev, unsigned short reg)
88{ 159{
89 struct scoop_dev *sdev = dev_get_drvdata(dev); 160 struct scoop_dev *sdev = dev_get_drvdata(dev);
90 return SCOOP_REG(sdev->base,reg); 161 return ioread16(sdev->base + reg);
91} 162}
92 163
93void write_scoop_reg(struct device *dev, unsigned short reg, unsigned short data) 164void write_scoop_reg(struct device *dev, unsigned short reg, unsigned short data)
94{ 165{
95 struct scoop_dev *sdev = dev_get_drvdata(dev); 166 struct scoop_dev *sdev = dev_get_drvdata(dev);
96 SCOOP_REG(sdev->base,reg)=data; 167 iowrite16(data, sdev->base + reg);
97} 168}
98 169
99EXPORT_SYMBOL(reset_scoop); 170EXPORT_SYMBOL(reset_scoop);
@@ -104,9 +175,9 @@ static void check_scoop_reg(struct scoop_dev *sdev)
104{ 175{
105 unsigned short mcr; 176 unsigned short mcr;
106 177
107 mcr = SCOOP_REG(sdev->base, SCOOP_MCR); 178 mcr = ioread16(sdev->base + SCOOP_MCR);
108 if ((mcr & 0x100) == 0) 179 if ((mcr & 0x100) == 0)
109 SCOOP_REG(sdev->base, SCOOP_MCR) = 0x0101; 180 iowrite16(0x0101, sdev->base + SCOOP_MCR);
110} 181}
111 182
112#ifdef CONFIG_PM 183#ifdef CONFIG_PM
@@ -115,8 +186,8 @@ static int scoop_suspend(struct platform_device *dev, pm_message_t state)
115 struct scoop_dev *sdev = platform_get_drvdata(dev); 186 struct scoop_dev *sdev = platform_get_drvdata(dev);
116 187
117 check_scoop_reg(sdev); 188 check_scoop_reg(sdev);
118 sdev->scoop_gpwr = SCOOP_REG(sdev->base, SCOOP_GPWR); 189 sdev->scoop_gpwr = ioread16(sdev->base + SCOOP_GPWR);
119 SCOOP_REG(sdev->base, SCOOP_GPWR) = (sdev->scoop_gpwr & ~sdev->suspend_clr) | sdev->suspend_set; 190 iowrite16((sdev->scoop_gpwr & ~sdev->suspend_clr) | sdev->suspend_set, sdev->base + SCOOP_GPWR);
120 191
121 return 0; 192 return 0;
122} 193}
@@ -126,7 +197,7 @@ static int scoop_resume(struct platform_device *dev)
126 struct scoop_dev *sdev = platform_get_drvdata(dev); 197 struct scoop_dev *sdev = platform_get_drvdata(dev);
127 198
128 check_scoop_reg(sdev); 199 check_scoop_reg(sdev);
129 SCOOP_REG(sdev->base,SCOOP_GPWR) = sdev->scoop_gpwr; 200 iowrite16(sdev->scoop_gpwr, sdev->base + SCOOP_GPWR);
130 201
131 return 0; 202 return 0;
132} 203}
@@ -135,11 +206,13 @@ static int scoop_resume(struct platform_device *dev)
135#define scoop_resume NULL 206#define scoop_resume NULL
136#endif 207#endif
137 208
138int __init scoop_probe(struct platform_device *pdev) 209static int __devinit scoop_probe(struct platform_device *pdev)
139{ 210{
140 struct scoop_dev *devptr; 211 struct scoop_dev *devptr;
141 struct scoop_config *inf; 212 struct scoop_config *inf;
142 struct resource *mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 213 struct resource *mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
214 int ret;
215 int temp;
143 216
144 if (!mem) 217 if (!mem)
145 return -EINVAL; 218 return -EINVAL;
@@ -154,40 +227,78 @@ int __init scoop_probe(struct platform_device *pdev)
154 devptr->base = ioremap(mem->start, mem->end - mem->start + 1); 227 devptr->base = ioremap(mem->start, mem->end - mem->start + 1);
155 228
156 if (!devptr->base) { 229 if (!devptr->base) {
157 kfree(devptr); 230 ret = -ENOMEM;
158 return -ENOMEM; 231 goto err_ioremap;
159 } 232 }
160 233
161 platform_set_drvdata(pdev, devptr); 234 platform_set_drvdata(pdev, devptr);
162 235
163 printk("Sharp Scoop Device found at 0x%08x -> 0x%08x\n",(unsigned int)mem->start,(unsigned int)devptr->base); 236 printk("Sharp Scoop Device found at 0x%08x -> 0x%8p\n",(unsigned int)mem->start, devptr->base);
164 237
165 SCOOP_REG(devptr->base, SCOOP_MCR) = 0x0140; 238 iowrite16(0x0140, devptr->base + SCOOP_MCR);
166 reset_scoop(&pdev->dev); 239 reset_scoop(&pdev->dev);
167 SCOOP_REG(devptr->base, SCOOP_CPR) = 0x0000; 240 iowrite16(0x0000, devptr->base + SCOOP_CPR);
168 SCOOP_REG(devptr->base, SCOOP_GPCR) = inf->io_dir & 0xffff; 241 iowrite16(inf->io_dir & 0xffff, devptr->base + SCOOP_GPCR);
169 SCOOP_REG(devptr->base, SCOOP_GPWR) = inf->io_out & 0xffff; 242 iowrite16(inf->io_out & 0xffff, devptr->base + SCOOP_GPWR);
170 243
171 devptr->suspend_clr = inf->suspend_clr; 244 devptr->suspend_clr = inf->suspend_clr;
172 devptr->suspend_set = inf->suspend_set; 245 devptr->suspend_set = inf->suspend_set;
173 246
247 devptr->gpio.base = -1;
248
249 if (inf->gpio_base != 0) {
250 devptr->gpio.label = pdev->dev.bus_id;
251 devptr->gpio.base = inf->gpio_base;
252 devptr->gpio.ngpio = 12; /* PA11 = 0, PA12 = 1, etc. up to PA22 = 11 */
253 devptr->gpio.set = scoop_gpio_set;
254 devptr->gpio.get = scoop_gpio_get;
255 devptr->gpio.direction_input = scoop_gpio_direction_input;
256 devptr->gpio.direction_output = scoop_gpio_direction_output;
257
258 ret = gpiochip_add(&devptr->gpio);
259 if (ret)
260 goto err_gpio;
261 }
262
174 return 0; 263 return 0;
264
265 if (devptr->gpio.base != -1)
266 temp = gpiochip_remove(&devptr->gpio);
267err_gpio:
268 platform_set_drvdata(pdev, NULL);
269err_ioremap:
270 iounmap(devptr->base);
271 kfree(devptr);
272
273 return ret;
175} 274}
176 275
177static int scoop_remove(struct platform_device *pdev) 276static int __devexit scoop_remove(struct platform_device *pdev)
178{ 277{
179 struct scoop_dev *sdev = platform_get_drvdata(pdev); 278 struct scoop_dev *sdev = platform_get_drvdata(pdev);
180 if (sdev) { 279 int ret;
181 iounmap(sdev->base); 280
182 kfree(sdev); 281 if (!sdev)
183 platform_set_drvdata(pdev, NULL); 282 return -EINVAL;
283
284 if (sdev->gpio.base != -1) {
285 ret = gpiochip_remove(&sdev->gpio);
286 if (ret) {
287 dev_err(&pdev->dev, "Can't remove gpio chip: %d\n", ret);
288 return ret;
289 }
184 } 290 }
291
292 platform_set_drvdata(pdev, NULL);
293 iounmap(sdev->base);
294 kfree(sdev);
295
185 return 0; 296 return 0;
186} 297}
187 298
188static struct platform_driver scoop_driver = { 299static struct platform_driver scoop_driver = {
189 .probe = scoop_probe, 300 .probe = scoop_probe,
190 .remove = scoop_remove, 301 .remove = __devexit_p(scoop_remove),
191 .suspend = scoop_suspend, 302 .suspend = scoop_suspend,
192 .resume = scoop_resume, 303 .resume = scoop_resume,
193 .driver = { 304 .driver = {
@@ -195,7 +306,7 @@ static struct platform_driver scoop_driver = {
195 }, 306 },
196}; 307};
197 308
198int __init scoop_init(void) 309static int __init scoop_init(void)
199{ 310{
200 return platform_driver_register(&scoop_driver); 311 return platform_driver_register(&scoop_driver);
201} 312}
diff --git a/arch/arm/configs/am200epdkit_defconfig b/arch/arm/configs/am200epdkit_defconfig
new file mode 100644
index 000000000000..dc030cfe5009
--- /dev/null
+++ b/arch/arm/configs/am200epdkit_defconfig
@@ -0,0 +1,1149 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.25-rc3
4# Sun Mar 9 06:33:33 2008
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
25CONFIG_ZONE_DMA=y
26CONFIG_ARCH_MTD_XIP=y
27CONFIG_VECTORS_BASE=0xffff0000
28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
29
30#
31# General setup
32#
33CONFIG_EXPERIMENTAL=y
34CONFIG_BROKEN_ON_SMP=y
35CONFIG_LOCK_KERNEL=y
36CONFIG_INIT_ENV_ARG_LIMIT=32
37CONFIG_LOCALVERSION="gum"
38CONFIG_LOCALVERSION_AUTO=y
39# CONFIG_SWAP is not set
40CONFIG_SYSVIPC=y
41CONFIG_SYSVIPC_SYSCTL=y
42# CONFIG_POSIX_MQUEUE is not set
43# CONFIG_BSD_PROCESS_ACCT is not set
44# CONFIG_TASKSTATS is not set
45# CONFIG_AUDIT is not set
46# CONFIG_IKCONFIG is not set
47CONFIG_LOG_BUF_SHIFT=17
48# CONFIG_CGROUPS is not set
49CONFIG_GROUP_SCHED=y
50CONFIG_FAIR_GROUP_SCHED=y
51# CONFIG_RT_GROUP_SCHED is not set
52CONFIG_USER_SCHED=y
53# CONFIG_CGROUP_SCHED is not set
54# CONFIG_SYSFS_DEPRECATED is not set
55# CONFIG_RELAY is not set
56# CONFIG_NAMESPACES is not set
57# CONFIG_BLK_DEV_INITRD is not set
58CONFIG_CC_OPTIMIZE_FOR_SIZE=y
59CONFIG_SYSCTL=y
60CONFIG_EMBEDDED=y
61CONFIG_UID16=y
62# CONFIG_SYSCTL_SYSCALL is not set
63CONFIG_KALLSYMS=y
64# CONFIG_KALLSYMS_ALL is not set
65# CONFIG_KALLSYMS_EXTRA_PASS is not set
66CONFIG_HOTPLUG=y
67CONFIG_PRINTK=y
68CONFIG_BUG=y
69CONFIG_ELF_CORE=y
70CONFIG_COMPAT_BRK=y
71CONFIG_BASE_FULL=y
72CONFIG_FUTEX=y
73CONFIG_ANON_INODES=y
74# CONFIG_EPOLL is not set
75CONFIG_SIGNALFD=y
76CONFIG_TIMERFD=y
77CONFIG_EVENTFD=y
78# CONFIG_SHMEM is not set
79# CONFIG_VM_EVENT_COUNTERS is not set
80CONFIG_SLAB=y
81# CONFIG_SLUB is not set
82# CONFIG_SLOB is not set
83# CONFIG_PROFILING is not set
84# CONFIG_MARKERS is not set
85CONFIG_HAVE_OPROFILE=y
86# CONFIG_KPROBES is not set
87CONFIG_HAVE_KPROBES=y
88CONFIG_PROC_PAGE_MONITOR=y
89CONFIG_SLABINFO=y
90CONFIG_RT_MUTEXES=y
91CONFIG_TINY_SHMEM=y
92CONFIG_BASE_SMALL=0
93CONFIG_MODULES=y
94CONFIG_MODULE_UNLOAD=y
95# CONFIG_MODULE_FORCE_UNLOAD is not set
96# CONFIG_MODVERSIONS is not set
97# CONFIG_MODULE_SRCVERSION_ALL is not set
98CONFIG_KMOD=y
99CONFIG_BLOCK=y
100# CONFIG_LBD is not set
101# CONFIG_BLK_DEV_IO_TRACE is not set
102# CONFIG_LSF is not set
103# CONFIG_BLK_DEV_BSG is not set
104
105#
106# IO Schedulers
107#
108CONFIG_IOSCHED_NOOP=y
109# CONFIG_IOSCHED_AS is not set
110# CONFIG_IOSCHED_DEADLINE is not set
111# CONFIG_IOSCHED_CFQ is not set
112# CONFIG_DEFAULT_AS is not set
113# CONFIG_DEFAULT_DEADLINE is not set
114# CONFIG_DEFAULT_CFQ is not set
115CONFIG_DEFAULT_NOOP=y
116CONFIG_DEFAULT_IOSCHED="noop"
117CONFIG_CLASSIC_RCU=y
118# CONFIG_PREEMPT_RCU is not set
119
120#
121# System Type
122#
123# CONFIG_ARCH_AAEC2000 is not set
124# CONFIG_ARCH_INTEGRATOR is not set
125# CONFIG_ARCH_REALVIEW is not set
126# CONFIG_ARCH_VERSATILE is not set
127# CONFIG_ARCH_AT91 is not set
128# CONFIG_ARCH_CLPS7500 is not set
129# CONFIG_ARCH_CLPS711X is not set
130# CONFIG_ARCH_CO285 is not set
131# CONFIG_ARCH_EBSA110 is not set
132# CONFIG_ARCH_EP93XX is not set
133# CONFIG_ARCH_FOOTBRIDGE is not set
134# CONFIG_ARCH_NETX is not set
135# CONFIG_ARCH_H720X is not set
136# CONFIG_ARCH_IMX is not set
137# CONFIG_ARCH_IOP13XX is not set
138# CONFIG_ARCH_IOP32X is not set
139# CONFIG_ARCH_IOP33X is not set
140# CONFIG_ARCH_IXP23XX is not set
141# CONFIG_ARCH_IXP2000 is not set
142# CONFIG_ARCH_IXP4XX is not set
143# CONFIG_ARCH_L7200 is not set
144# CONFIG_ARCH_KS8695 is not set
145# CONFIG_ARCH_NS9XXX is not set
146# CONFIG_ARCH_MXC is not set
147# CONFIG_ARCH_ORION is not set
148# CONFIG_ARCH_PNX4008 is not set
149CONFIG_ARCH_PXA=y
150# CONFIG_ARCH_RPC is not set
151# CONFIG_ARCH_SA1100 is not set
152# CONFIG_ARCH_S3C2410 is not set
153# CONFIG_ARCH_SHARK is not set
154# CONFIG_ARCH_LH7A40X is not set
155# CONFIG_ARCH_DAVINCI is not set
156# CONFIG_ARCH_OMAP is not set
157# CONFIG_ARCH_MSM7X00A is not set
158
159#
160# Intel PXA2xx/PXA3xx Implementations
161#
162CONFIG_ARCH_GUMSTIX=y
163# CONFIG_ARCH_LUBBOCK is not set
164# CONFIG_MACH_LOGICPD_PXA270 is not set
165# CONFIG_MACH_MAINSTONE is not set
166# CONFIG_ARCH_PXA_IDP is not set
167# CONFIG_PXA_SHARPSL is not set
168# CONFIG_ARCH_PXA_ESERIES is not set
169# CONFIG_MACH_TRIZEPS4 is not set
170# CONFIG_MACH_EM_X270 is not set
171# CONFIG_MACH_COLIBRI is not set
172# CONFIG_MACH_ZYLONITE is not set
173# CONFIG_MACH_LITTLETON is not set
174# CONFIG_MACH_ARMCORE is not set
175# CONFIG_MACH_MAGICIAN is not set
176# CONFIG_MACH_PCM027 is not set
177CONFIG_MACH_GUMSTIX_F=y
178CONFIG_PXA25x=y
179
180#
181# Boot options
182#
183
184#
185# Power management
186#
187
188#
189# Processor Type
190#
191CONFIG_CPU_32=y
192CONFIG_CPU_XSCALE=y
193CONFIG_CPU_32v5=y
194CONFIG_CPU_ABRT_EV5T=y
195CONFIG_CPU_CACHE_VIVT=y
196CONFIG_CPU_TLB_V4WBI=y
197CONFIG_CPU_CP15=y
198CONFIG_CPU_CP15_MMU=y
199
200#
201# Processor Features
202#
203CONFIG_ARM_THUMB=y
204# CONFIG_CPU_DCACHE_DISABLE is not set
205# CONFIG_OUTER_CACHE is not set
206# CONFIG_IWMMXT is not set
207CONFIG_XSCALE_PMU=y
208
209#
210# Bus support
211#
212# CONFIG_PCI_SYSCALL is not set
213# CONFIG_ARCH_SUPPORTS_MSI is not set
214CONFIG_PCCARD=y
215# CONFIG_PCMCIA_DEBUG is not set
216CONFIG_PCMCIA=y
217CONFIG_PCMCIA_LOAD_CIS=y
218# CONFIG_PCMCIA_IOCTL is not set
219
220#
221# PC-card bridges
222#
223CONFIG_PCMCIA_PXA2XX=y
224
225#
226# Kernel Features
227#
228CONFIG_TICK_ONESHOT=y
229# CONFIG_NO_HZ is not set
230# CONFIG_HIGH_RES_TIMERS is not set
231CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
232CONFIG_PREEMPT=y
233CONFIG_HZ=100
234CONFIG_AEABI=y
235# CONFIG_OABI_COMPAT is not set
236# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
237CONFIG_SELECT_MEMORY_MODEL=y
238CONFIG_FLATMEM_MANUAL=y
239# CONFIG_DISCONTIGMEM_MANUAL is not set
240# CONFIG_SPARSEMEM_MANUAL is not set
241CONFIG_FLATMEM=y
242CONFIG_FLAT_NODE_MEM_MAP=y
243# CONFIG_SPARSEMEM_STATIC is not set
244# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
245CONFIG_SPLIT_PTLOCK_CPUS=4096
246# CONFIG_RESOURCES_64BIT is not set
247CONFIG_ZONE_DMA_FLAG=1
248CONFIG_BOUNCE=y
249CONFIG_VIRT_TO_BUS=y
250CONFIG_ALIGNMENT_TRAP=y
251
252#
253# Boot options
254#
255CONFIG_ZBOOT_ROM_TEXT=0x0
256CONFIG_ZBOOT_ROM_BSS=0x0
257CONFIG_CMDLINE="console=ttyS0,115200n8 root=1f01 rootfstype=jffs2"
258# CONFIG_XIP_KERNEL is not set
259# CONFIG_KEXEC is not set
260
261#
262# CPU Frequency scaling
263#
264# CONFIG_CPU_FREQ is not set
265
266#
267# Floating point emulation
268#
269
270#
271# At least one emulation must be selected
272#
273
274#
275# Userspace binary formats
276#
277CONFIG_BINFMT_ELF=y
278# CONFIG_BINFMT_AOUT is not set
279# CONFIG_BINFMT_MISC is not set
280
281#
282# Power management options
283#
284# CONFIG_PM is not set
285CONFIG_ARCH_SUSPEND_POSSIBLE=y
286
287#
288# Networking
289#
290CONFIG_NET=y
291
292#
293# Networking options
294#
295CONFIG_PACKET=m
296CONFIG_PACKET_MMAP=y
297CONFIG_UNIX=y
298# CONFIG_NET_KEY is not set
299CONFIG_INET=y
300# CONFIG_IP_MULTICAST is not set
301# CONFIG_IP_ADVANCED_ROUTER is not set
302CONFIG_IP_FIB_HASH=y
303# CONFIG_IP_PNP is not set
304# CONFIG_NET_IPIP is not set
305# CONFIG_NET_IPGRE is not set
306# CONFIG_ARPD is not set
307# CONFIG_SYN_COOKIES is not set
308# CONFIG_INET_AH is not set
309# CONFIG_INET_ESP is not set
310# CONFIG_INET_IPCOMP is not set
311# CONFIG_INET_XFRM_TUNNEL is not set
312# CONFIG_INET_TUNNEL is not set
313# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
314# CONFIG_INET_XFRM_MODE_TUNNEL is not set
315# CONFIG_INET_XFRM_MODE_BEET is not set
316# CONFIG_INET_LRO is not set
317# CONFIG_INET_DIAG is not set
318# CONFIG_TCP_CONG_ADVANCED is not set
319CONFIG_TCP_CONG_CUBIC=y
320CONFIG_DEFAULT_TCP_CONG="cubic"
321# CONFIG_TCP_MD5SIG is not set
322# CONFIG_IPV6 is not set
323# CONFIG_INET6_XFRM_TUNNEL is not set
324# CONFIG_INET6_TUNNEL is not set
325# CONFIG_NETWORK_SECMARK is not set
326# CONFIG_NETFILTER is not set
327# CONFIG_IP_DCCP is not set
328# CONFIG_IP_SCTP is not set
329# CONFIG_TIPC is not set
330# CONFIG_ATM is not set
331# CONFIG_BRIDGE is not set
332# CONFIG_VLAN_8021Q is not set
333# CONFIG_DECNET is not set
334# CONFIG_LLC2 is not set
335# CONFIG_IPX is not set
336# CONFIG_ATALK is not set
337# CONFIG_X25 is not set
338# CONFIG_LAPB is not set
339# CONFIG_ECONET is not set
340# CONFIG_WAN_ROUTER is not set
341# CONFIG_NET_SCHED is not set
342
343#
344# Network testing
345#
346# CONFIG_NET_PKTGEN is not set
347# CONFIG_HAMRADIO is not set
348# CONFIG_CAN is not set
349# CONFIG_IRDA is not set
350CONFIG_BT=m
351CONFIG_BT_L2CAP=m
352CONFIG_BT_SCO=m
353CONFIG_BT_RFCOMM=m
354CONFIG_BT_RFCOMM_TTY=y
355CONFIG_BT_BNEP=m
356# CONFIG_BT_BNEP_MC_FILTER is not set
357# CONFIG_BT_BNEP_PROTO_FILTER is not set
358# CONFIG_BT_HIDP is not set
359
360#
361# Bluetooth device drivers
362#
363# CONFIG_BT_HCIBTSDIO is not set
364CONFIG_BT_HCIUART=m
365CONFIG_BT_HCIUART_H4=y
366# CONFIG_BT_HCIUART_BCSP is not set
367# CONFIG_BT_HCIUART_LL is not set
368# CONFIG_BT_HCIDTL1 is not set
369# CONFIG_BT_HCIBT3C is not set
370# CONFIG_BT_HCIBLUECARD is not set
371# CONFIG_BT_HCIBTUART is not set
372# CONFIG_BT_HCIVHCI is not set
373# CONFIG_AF_RXRPC is not set
374
375#
376# Wireless
377#
378# CONFIG_CFG80211 is not set
379CONFIG_WIRELESS_EXT=y
380# CONFIG_MAC80211 is not set
381CONFIG_IEEE80211=m
382# CONFIG_IEEE80211_DEBUG is not set
383CONFIG_IEEE80211_CRYPT_WEP=m
384# CONFIG_IEEE80211_CRYPT_CCMP is not set
385# CONFIG_IEEE80211_CRYPT_TKIP is not set
386# CONFIG_IEEE80211_SOFTMAC is not set
387# CONFIG_RFKILL is not set
388# CONFIG_NET_9P is not set
389
390#
391# Device Drivers
392#
393
394#
395# Generic Driver Options
396#
397CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
398CONFIG_STANDALONE=y
399CONFIG_PREVENT_FIRMWARE_BUILD=y
400CONFIG_FW_LOADER=y
401# CONFIG_DEBUG_DRIVER is not set
402# CONFIG_DEBUG_DEVRES is not set
403# CONFIG_SYS_HYPERVISOR is not set
404# CONFIG_CONNECTOR is not set
405CONFIG_MTD=y
406# CONFIG_MTD_DEBUG is not set
407# CONFIG_MTD_CONCAT is not set
408CONFIG_MTD_PARTITIONS=y
409# CONFIG_MTD_REDBOOT_PARTS is not set
410# CONFIG_MTD_CMDLINE_PARTS is not set
411# CONFIG_MTD_AFS_PARTS is not set
412
413#
414# User Modules And Translation Layers
415#
416CONFIG_MTD_CHAR=y
417CONFIG_MTD_BLKDEVS=y
418CONFIG_MTD_BLOCK=y
419# CONFIG_FTL is not set
420# CONFIG_NFTL is not set
421# CONFIG_INFTL is not set
422# CONFIG_RFD_FTL is not set
423# CONFIG_SSFDC is not set
424# CONFIG_MTD_OOPS is not set
425
426#
427# RAM/ROM/Flash chip drivers
428#
429CONFIG_MTD_CFI=y
430# CONFIG_MTD_JEDECPROBE is not set
431CONFIG_MTD_GEN_PROBE=y
432CONFIG_MTD_CFI_ADV_OPTIONS=y
433CONFIG_MTD_CFI_NOSWAP=y
434# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
435# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
436CONFIG_MTD_CFI_GEOMETRY=y
437# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
438CONFIG_MTD_MAP_BANK_WIDTH_2=y
439# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
440# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
441# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
442# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
443CONFIG_MTD_CFI_I1=y
444# CONFIG_MTD_CFI_I2 is not set
445# CONFIG_MTD_CFI_I4 is not set
446# CONFIG_MTD_CFI_I8 is not set
447# CONFIG_MTD_OTP is not set
448CONFIG_MTD_CFI_INTELEXT=y
449# CONFIG_MTD_CFI_AMDSTD is not set
450# CONFIG_MTD_CFI_STAA is not set
451CONFIG_MTD_CFI_UTIL=y
452# CONFIG_MTD_RAM is not set
453# CONFIG_MTD_ROM is not set
454# CONFIG_MTD_ABSENT is not set
455# CONFIG_MTD_XIP is not set
456
457#
458# Mapping drivers for chip access
459#
460CONFIG_MTD_COMPLEX_MAPPINGS=y
461# CONFIG_MTD_PHYSMAP is not set
462CONFIG_MTD_PXA2XX=y
463# CONFIG_MTD_ARM_INTEGRATOR is not set
464# CONFIG_MTD_SHARP_SL is not set
465# CONFIG_MTD_PLATRAM is not set
466
467#
468# Self-contained MTD device drivers
469#
470# CONFIG_MTD_SLRAM is not set
471# CONFIG_MTD_PHRAM is not set
472# CONFIG_MTD_MTDRAM is not set
473# CONFIG_MTD_BLOCK2MTD is not set
474
475#
476# Disk-On-Chip Device Drivers
477#
478# CONFIG_MTD_DOC2000 is not set
479# CONFIG_MTD_DOC2001 is not set
480# CONFIG_MTD_DOC2001PLUS is not set
481# CONFIG_MTD_NAND is not set
482# CONFIG_MTD_ONENAND is not set
483
484#
485# UBI - Unsorted block images
486#
487# CONFIG_MTD_UBI is not set
488# CONFIG_PARPORT is not set
489CONFIG_BLK_DEV=y
490# CONFIG_BLK_DEV_COW_COMMON is not set
491CONFIG_BLK_DEV_LOOP=m
492# CONFIG_BLK_DEV_CRYPTOLOOP is not set
493# CONFIG_BLK_DEV_NBD is not set
494# CONFIG_BLK_DEV_RAM is not set
495# CONFIG_CDROM_PKTCDVD is not set
496# CONFIG_ATA_OVER_ETH is not set
497CONFIG_MISC_DEVICES=y
498# CONFIG_EEPROM_93CX6 is not set
499# CONFIG_ENCLOSURE_SERVICES is not set
500CONFIG_HAVE_IDE=y
501CONFIG_IDE=m
502CONFIG_IDE_MAX_HWIFS=2
503CONFIG_BLK_DEV_IDE=m
504
505#
506# Please see Documentation/ide.txt for help/info on IDE drives
507#
508# CONFIG_BLK_DEV_IDE_SATA is not set
509CONFIG_BLK_DEV_IDEDISK=m
510# CONFIG_IDEDISK_MULTI_MODE is not set
511CONFIG_BLK_DEV_IDECS=m
512# CONFIG_BLK_DEV_IDECD is not set
513# CONFIG_BLK_DEV_IDETAPE is not set
514# CONFIG_BLK_DEV_IDEFLOPPY is not set
515# CONFIG_IDE_TASK_IOCTL is not set
516CONFIG_IDE_PROC_FS=y
517
518#
519# IDE chipset support/bugfixes
520#
521CONFIG_IDE_GENERIC=m
522# CONFIG_BLK_DEV_PLATFORM is not set
523# CONFIG_BLK_DEV_IDEDMA is not set
524CONFIG_IDE_ARCH_OBSOLETE_INIT=y
525# CONFIG_BLK_DEV_HD is not set
526
527#
528# SCSI device support
529#
530# CONFIG_RAID_ATTRS is not set
531# CONFIG_SCSI is not set
532# CONFIG_SCSI_DMA is not set
533# CONFIG_SCSI_NETLINK is not set
534# CONFIG_ATA is not set
535# CONFIG_MD is not set
536CONFIG_NETDEVICES=y
537# CONFIG_NETDEVICES_MULTIQUEUE is not set
538# CONFIG_DUMMY is not set
539# CONFIG_BONDING is not set
540# CONFIG_MACVLAN is not set
541# CONFIG_EQUALIZER is not set
542# CONFIG_TUN is not set
543# CONFIG_VETH is not set
544# CONFIG_PHYLIB is not set
545CONFIG_NET_ETHERNET=y
546CONFIG_MII=m
547# CONFIG_AX88796 is not set
548CONFIG_SMC91X=m
549# CONFIG_DM9000 is not set
550# CONFIG_SMC911X is not set
551# CONFIG_IBM_NEW_EMAC_ZMII is not set
552# CONFIG_IBM_NEW_EMAC_RGMII is not set
553# CONFIG_IBM_NEW_EMAC_TAH is not set
554# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
555# CONFIG_B44 is not set
556CONFIG_NETDEV_1000=y
557# CONFIG_E1000E_ENABLED is not set
558CONFIG_NETDEV_10000=y
559
560#
561# Wireless LAN
562#
563# CONFIG_WLAN_PRE80211 is not set
564# CONFIG_WLAN_80211 is not set
565# CONFIG_NET_PCMCIA is not set
566# CONFIG_WAN is not set
567# CONFIG_PPP is not set
568# CONFIG_SLIP is not set
569# CONFIG_NETCONSOLE is not set
570# CONFIG_NETPOLL is not set
571# CONFIG_NET_POLL_CONTROLLER is not set
572# CONFIG_ISDN is not set
573
574#
575# Input device support
576#
577CONFIG_INPUT=y
578# CONFIG_INPUT_FF_MEMLESS is not set
579# CONFIG_INPUT_POLLDEV is not set
580
581#
582# Userland interfaces
583#
584CONFIG_INPUT_MOUSEDEV=y
585CONFIG_INPUT_MOUSEDEV_PSAUX=y
586CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
587CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
588# CONFIG_INPUT_JOYDEV is not set
589# CONFIG_INPUT_EVDEV is not set
590# CONFIG_INPUT_EVBUG is not set
591
592#
593# Input Device Drivers
594#
595CONFIG_INPUT_KEYBOARD=y
596CONFIG_KEYBOARD_ATKBD=y
597# CONFIG_KEYBOARD_SUNKBD is not set
598# CONFIG_KEYBOARD_LKKBD is not set
599# CONFIG_KEYBOARD_XTKBD is not set
600# CONFIG_KEYBOARD_NEWTON is not set
601# CONFIG_KEYBOARD_STOWAWAY is not set
602# CONFIG_KEYBOARD_GPIO is not set
603CONFIG_INPUT_MOUSE=y
604CONFIG_MOUSE_PS2=y
605CONFIG_MOUSE_PS2_ALPS=y
606CONFIG_MOUSE_PS2_LOGIPS2PP=y
607CONFIG_MOUSE_PS2_SYNAPTICS=y
608CONFIG_MOUSE_PS2_LIFEBOOK=y
609CONFIG_MOUSE_PS2_TRACKPOINT=y
610# CONFIG_MOUSE_PS2_TOUCHKIT is not set
611# CONFIG_MOUSE_SERIAL is not set
612# CONFIG_MOUSE_APPLETOUCH is not set
613# CONFIG_MOUSE_VSXXXAA is not set
614# CONFIG_MOUSE_GPIO is not set
615# CONFIG_INPUT_JOYSTICK is not set
616# CONFIG_INPUT_TABLET is not set
617# CONFIG_INPUT_TOUCHSCREEN is not set
618# CONFIG_INPUT_MISC is not set
619
620#
621# Hardware I/O ports
622#
623CONFIG_SERIO=y
624CONFIG_SERIO_SERPORT=y
625CONFIG_SERIO_LIBPS2=y
626# CONFIG_SERIO_RAW is not set
627# CONFIG_GAMEPORT is not set
628
629#
630# Character devices
631#
632CONFIG_VT=y
633CONFIG_VT_CONSOLE=y
634CONFIG_HW_CONSOLE=y
635# CONFIG_VT_HW_CONSOLE_BINDING is not set
636# CONFIG_SERIAL_NONSTANDARD is not set
637
638#
639# Serial drivers
640#
641# CONFIG_SERIAL_8250 is not set
642
643#
644# Non-8250 serial port support
645#
646CONFIG_SERIAL_PXA=y
647CONFIG_SERIAL_PXA_CONSOLE=y
648CONFIG_SERIAL_CORE=y
649CONFIG_SERIAL_CORE_CONSOLE=y
650CONFIG_UNIX98_PTYS=y
651# CONFIG_LEGACY_PTYS is not set
652# CONFIG_IPMI_HANDLER is not set
653# CONFIG_HW_RANDOM is not set
654# CONFIG_NVRAM is not set
655# CONFIG_R3964 is not set
656
657#
658# PCMCIA character devices
659#
660# CONFIG_SYNCLINK_CS is not set
661# CONFIG_CARDMAN_4000 is not set
662# CONFIG_CARDMAN_4040 is not set
663# CONFIG_IPWIRELESS is not set
664# CONFIG_RAW_DRIVER is not set
665# CONFIG_TCG_TPM is not set
666# CONFIG_I2C is not set
667
668#
669# SPI support
670#
671# CONFIG_SPI is not set
672# CONFIG_SPI_MASTER is not set
673CONFIG_HAVE_GPIO_LIB=y
674
675#
676# GPIO Support
677#
678# CONFIG_DEBUG_GPIO is not set
679
680#
681# I2C GPIO expanders:
682#
683
684#
685# SPI GPIO expanders:
686#
687# CONFIG_W1 is not set
688# CONFIG_POWER_SUPPLY is not set
689# CONFIG_HWMON is not set
690CONFIG_WATCHDOG=y
691# CONFIG_WATCHDOG_NOWAYOUT is not set
692
693#
694# Watchdog Device Drivers
695#
696# CONFIG_SOFT_WATCHDOG is not set
697CONFIG_SA1100_WATCHDOG=m
698
699#
700# Sonics Silicon Backplane
701#
702CONFIG_SSB_POSSIBLE=y
703# CONFIG_SSB is not set
704
705#
706# Multifunction device drivers
707#
708# CONFIG_MFD_SM501 is not set
709# CONFIG_MFD_ASIC3 is not set
710
711#
712# Multimedia devices
713#
714# CONFIG_VIDEO_DEV is not set
715# CONFIG_DVB_CORE is not set
716CONFIG_DAB=y
717
718#
719# Graphics support
720#
721# CONFIG_VGASTATE is not set
722# CONFIG_VIDEO_OUTPUT_CONTROL is not set
723CONFIG_FB=y
724# CONFIG_FIRMWARE_EDID is not set
725# CONFIG_FB_DDC is not set
726CONFIG_FB_CFB_FILLRECT=y
727CONFIG_FB_CFB_COPYAREA=y
728CONFIG_FB_CFB_IMAGEBLIT=y
729# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
730CONFIG_FB_SYS_FILLRECT=m
731CONFIG_FB_SYS_COPYAREA=m
732CONFIG_FB_SYS_IMAGEBLIT=m
733CONFIG_FB_SYS_FOPS=m
734CONFIG_FB_DEFERRED_IO=y
735# CONFIG_FB_SVGALIB is not set
736# CONFIG_FB_MACMODES is not set
737# CONFIG_FB_BACKLIGHT is not set
738CONFIG_FB_MODE_HELPERS=y
739CONFIG_FB_TILEBLITTING=y
740
741#
742# Frame buffer hardware drivers
743#
744# CONFIG_FB_S1D13XXX is not set
745CONFIG_FB_PXA=y
746CONFIG_FB_PXA_PARAMETERS=y
747CONFIG_FB_MBX=m
748CONFIG_FB_VIRTUAL=m
749# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
750
751#
752# Display device support
753#
754# CONFIG_DISPLAY_SUPPORT is not set
755
756#
757# Console display driver support
758#
759# CONFIG_VGA_CONSOLE is not set
760CONFIG_DUMMY_CONSOLE=y
761# CONFIG_FRAMEBUFFER_CONSOLE is not set
762# CONFIG_LOGO is not set
763
764#
765# Sound
766#
767CONFIG_SOUND=m
768
769#
770# Advanced Linux Sound Architecture
771#
772CONFIG_SND=m
773CONFIG_SND_TIMER=m
774CONFIG_SND_PCM=m
775# CONFIG_SND_SEQUENCER is not set
776CONFIG_SND_OSSEMUL=y
777CONFIG_SND_MIXER_OSS=m
778CONFIG_SND_PCM_OSS=m
779CONFIG_SND_PCM_OSS_PLUGINS=y
780# CONFIG_SND_DYNAMIC_MINORS is not set
781# CONFIG_SND_SUPPORT_OLD_API is not set
782# CONFIG_SND_VERBOSE_PROCFS is not set
783# CONFIG_SND_VERBOSE_PRINTK is not set
784# CONFIG_SND_DEBUG is not set
785
786#
787# Generic devices
788#
789CONFIG_SND_AC97_CODEC=m
790# CONFIG_SND_DUMMY is not set
791# CONFIG_SND_MTPAV is not set
792# CONFIG_SND_SERIAL_U16550 is not set
793# CONFIG_SND_MPU401 is not set
794
795#
796# ALSA ARM devices
797#
798CONFIG_SND_PXA2XX_PCM=m
799CONFIG_SND_PXA2XX_AC97=m
800
801#
802# PCMCIA devices
803#
804# CONFIG_SND_VXPOCKET is not set
805# CONFIG_SND_PDAUDIOCF is not set
806
807#
808# System on Chip audio support
809#
810# CONFIG_SND_SOC is not set
811
812#
813# SoC Audio support for SuperH
814#
815
816#
817# ALSA SoC audio for Freescale SOCs
818#
819
820#
821# Open Sound System
822#
823# CONFIG_SOUND_PRIME is not set
824CONFIG_AC97_BUS=m
825CONFIG_HID_SUPPORT=y
826CONFIG_HID=y
827# CONFIG_HID_DEBUG is not set
828# CONFIG_HIDRAW is not set
829CONFIG_USB_SUPPORT=y
830CONFIG_USB_ARCH_HAS_HCD=y
831# CONFIG_USB_ARCH_HAS_OHCI is not set
832# CONFIG_USB_ARCH_HAS_EHCI is not set
833# CONFIG_USB is not set
834
835#
836# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
837#
838CONFIG_USB_GADGET=y
839# CONFIG_USB_GADGET_DEBUG is not set
840# CONFIG_USB_GADGET_DEBUG_FILES is not set
841CONFIG_USB_GADGET_SELECTED=y
842# CONFIG_USB_GADGET_AMD5536UDC is not set
843# CONFIG_USB_GADGET_ATMEL_USBA is not set
844# CONFIG_USB_GADGET_FSL_USB2 is not set
845# CONFIG_USB_GADGET_NET2280 is not set
846CONFIG_USB_GADGET_PXA2XX=y
847CONFIG_USB_PXA2XX=y
848# CONFIG_USB_PXA2XX_SMALL is not set
849# CONFIG_USB_GADGET_M66592 is not set
850# CONFIG_USB_GADGET_GOKU is not set
851# CONFIG_USB_GADGET_LH7A40X is not set
852# CONFIG_USB_GADGET_OMAP is not set
853# CONFIG_USB_GADGET_S3C2410 is not set
854# CONFIG_USB_GADGET_AT91 is not set
855# CONFIG_USB_GADGET_DUMMY_HCD is not set
856# CONFIG_USB_GADGET_DUALSPEED is not set
857# CONFIG_USB_ZERO is not set
858CONFIG_USB_ETH=y
859CONFIG_USB_ETH_RNDIS=y
860# CONFIG_USB_GADGETFS is not set
861# CONFIG_USB_FILE_STORAGE is not set
862# CONFIG_USB_G_SERIAL is not set
863# CONFIG_USB_MIDI_GADGET is not set
864# CONFIG_USB_G_PRINTER is not set
865CONFIG_MMC=y
866# CONFIG_MMC_DEBUG is not set
867# CONFIG_MMC_UNSAFE_RESUME is not set
868
869#
870# MMC/SD Card Drivers
871#
872CONFIG_MMC_BLOCK=y
873CONFIG_MMC_BLOCK_BOUNCE=y
874# CONFIG_SDIO_UART is not set
875
876#
877# MMC/SD Host Controller Drivers
878#
879CONFIG_MMC_PXA=y
880# CONFIG_NEW_LEDS is not set
881CONFIG_RTC_LIB=y
882# CONFIG_RTC_CLASS is not set
883
884#
885# File systems
886#
887# CONFIG_EXT2_FS is not set
888# CONFIG_EXT3_FS is not set
889# CONFIG_EXT4DEV_FS is not set
890# CONFIG_REISERFS_FS is not set
891# CONFIG_JFS_FS is not set
892# CONFIG_FS_POSIX_ACL is not set
893# CONFIG_XFS_FS is not set
894# CONFIG_GFS2_FS is not set
895# CONFIG_OCFS2_FS is not set
896# CONFIG_DNOTIFY is not set
897CONFIG_INOTIFY=y
898CONFIG_INOTIFY_USER=y
899# CONFIG_QUOTA is not set
900# CONFIG_AUTOFS_FS is not set
901# CONFIG_AUTOFS4_FS is not set
902# CONFIG_FUSE_FS is not set
903
904#
905# CD-ROM/DVD Filesystems
906#
907# CONFIG_ISO9660_FS is not set
908# CONFIG_UDF_FS is not set
909
910#
911# DOS/FAT/NT Filesystems
912#
913CONFIG_FAT_FS=y
914# CONFIG_MSDOS_FS is not set
915CONFIG_VFAT_FS=y
916CONFIG_FAT_DEFAULT_CODEPAGE=437
917CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
918# CONFIG_NTFS_FS is not set
919
920#
921# Pseudo filesystems
922#
923CONFIG_PROC_FS=y
924CONFIG_PROC_SYSCTL=y
925CONFIG_SYSFS=y
926CONFIG_TMPFS=y
927# CONFIG_TMPFS_POSIX_ACL is not set
928# CONFIG_HUGETLB_PAGE is not set
929# CONFIG_CONFIGFS_FS is not set
930
931#
932# Miscellaneous filesystems
933#
934# CONFIG_ADFS_FS is not set
935# CONFIG_AFFS_FS is not set
936# CONFIG_HFS_FS is not set
937# CONFIG_HFSPLUS_FS is not set
938# CONFIG_BEFS_FS is not set
939# CONFIG_BFS_FS is not set
940# CONFIG_EFS_FS is not set
941CONFIG_JFFS2_FS=y
942CONFIG_JFFS2_FS_DEBUG=0
943CONFIG_JFFS2_FS_WRITEBUFFER=y
944# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
945# CONFIG_JFFS2_SUMMARY is not set
946# CONFIG_JFFS2_FS_XATTR is not set
947CONFIG_JFFS2_COMPRESSION_OPTIONS=y
948CONFIG_JFFS2_ZLIB=y
949# CONFIG_JFFS2_LZO is not set
950CONFIG_JFFS2_RTIME=y
951CONFIG_JFFS2_RUBIN=y
952# CONFIG_JFFS2_CMODE_NONE is not set
953CONFIG_JFFS2_CMODE_PRIORITY=y
954# CONFIG_JFFS2_CMODE_SIZE is not set
955# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
956# CONFIG_CRAMFS is not set
957# CONFIG_VXFS_FS is not set
958# CONFIG_MINIX_FS is not set
959# CONFIG_HPFS_FS is not set
960# CONFIG_QNX4FS_FS is not set
961# CONFIG_ROMFS_FS is not set
962# CONFIG_SYSV_FS is not set
963# CONFIG_UFS_FS is not set
964CONFIG_NETWORK_FILESYSTEMS=y
965# CONFIG_NFS_FS is not set
966# CONFIG_NFSD is not set
967# CONFIG_SMB_FS is not set
968# CONFIG_CIFS is not set
969# CONFIG_NCP_FS is not set
970# CONFIG_CODA_FS is not set
971# CONFIG_AFS_FS is not set
972
973#
974# Partition Types
975#
976CONFIG_PARTITION_ADVANCED=y
977# CONFIG_ACORN_PARTITION is not set
978# CONFIG_OSF_PARTITION is not set
979# CONFIG_AMIGA_PARTITION is not set
980# CONFIG_ATARI_PARTITION is not set
981# CONFIG_MAC_PARTITION is not set
982CONFIG_MSDOS_PARTITION=y
983# CONFIG_BSD_DISKLABEL is not set
984# CONFIG_MINIX_SUBPARTITION is not set
985# CONFIG_SOLARIS_X86_PARTITION is not set
986# CONFIG_UNIXWARE_DISKLABEL is not set
987# CONFIG_LDM_PARTITION is not set
988# CONFIG_SGI_PARTITION is not set
989# CONFIG_ULTRIX_PARTITION is not set
990# CONFIG_SUN_PARTITION is not set
991# CONFIG_KARMA_PARTITION is not set
992# CONFIG_EFI_PARTITION is not set
993# CONFIG_SYSV68_PARTITION is not set
994CONFIG_NLS=y
995CONFIG_NLS_DEFAULT="iso8859-1"
996CONFIG_NLS_CODEPAGE_437=y
997# CONFIG_NLS_CODEPAGE_737 is not set
998# CONFIG_NLS_CODEPAGE_775 is not set
999# CONFIG_NLS_CODEPAGE_850 is not set
1000# CONFIG_NLS_CODEPAGE_852 is not set
1001# CONFIG_NLS_CODEPAGE_855 is not set
1002# CONFIG_NLS_CODEPAGE_857 is not set
1003# CONFIG_NLS_CODEPAGE_860 is not set
1004# CONFIG_NLS_CODEPAGE_861 is not set
1005# CONFIG_NLS_CODEPAGE_862 is not set
1006# CONFIG_NLS_CODEPAGE_863 is not set
1007# CONFIG_NLS_CODEPAGE_864 is not set
1008# CONFIG_NLS_CODEPAGE_865 is not set
1009# CONFIG_NLS_CODEPAGE_866 is not set
1010# CONFIG_NLS_CODEPAGE_869 is not set
1011# CONFIG_NLS_CODEPAGE_936 is not set
1012# CONFIG_NLS_CODEPAGE_950 is not set
1013# CONFIG_NLS_CODEPAGE_932 is not set
1014# CONFIG_NLS_CODEPAGE_949 is not set
1015# CONFIG_NLS_CODEPAGE_874 is not set
1016# CONFIG_NLS_ISO8859_8 is not set
1017# CONFIG_NLS_CODEPAGE_1250 is not set
1018# CONFIG_NLS_CODEPAGE_1251 is not set
1019# CONFIG_NLS_ASCII is not set
1020CONFIG_NLS_ISO8859_1=y
1021# CONFIG_NLS_ISO8859_2 is not set
1022# CONFIG_NLS_ISO8859_3 is not set
1023# CONFIG_NLS_ISO8859_4 is not set
1024# CONFIG_NLS_ISO8859_5 is not set
1025# CONFIG_NLS_ISO8859_6 is not set
1026# CONFIG_NLS_ISO8859_7 is not set
1027# CONFIG_NLS_ISO8859_9 is not set
1028# CONFIG_NLS_ISO8859_13 is not set
1029# CONFIG_NLS_ISO8859_14 is not set
1030# CONFIG_NLS_ISO8859_15 is not set
1031# CONFIG_NLS_KOI8_R is not set
1032# CONFIG_NLS_KOI8_U is not set
1033# CONFIG_NLS_UTF8 is not set
1034# CONFIG_DLM is not set
1035
1036#
1037# Kernel hacking
1038#
1039# CONFIG_PRINTK_TIME is not set
1040CONFIG_ENABLE_WARN_DEPRECATED=y
1041CONFIG_ENABLE_MUST_CHECK=y
1042# CONFIG_MAGIC_SYSRQ is not set
1043# CONFIG_UNUSED_SYMBOLS is not set
1044# CONFIG_DEBUG_FS is not set
1045# CONFIG_HEADERS_CHECK is not set
1046CONFIG_DEBUG_KERNEL=y
1047# CONFIG_DEBUG_SHIRQ is not set
1048# CONFIG_DETECT_SOFTLOCKUP is not set
1049CONFIG_SCHED_DEBUG=y
1050# CONFIG_SCHEDSTATS is not set
1051# CONFIG_TIMER_STATS is not set
1052# CONFIG_DEBUG_SLAB is not set
1053# CONFIG_DEBUG_PREEMPT is not set
1054# CONFIG_DEBUG_RT_MUTEXES is not set
1055# CONFIG_RT_MUTEX_TESTER is not set
1056# CONFIG_DEBUG_SPINLOCK is not set
1057# CONFIG_DEBUG_MUTEXES is not set
1058# CONFIG_DEBUG_LOCK_ALLOC is not set
1059# CONFIG_PROVE_LOCKING is not set
1060# CONFIG_LOCK_STAT is not set
1061# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1062# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1063# CONFIG_DEBUG_KOBJECT is not set
1064# CONFIG_DEBUG_BUGVERBOSE is not set
1065# CONFIG_DEBUG_INFO is not set
1066# CONFIG_DEBUG_VM is not set
1067# CONFIG_DEBUG_LIST is not set
1068# CONFIG_DEBUG_SG is not set
1069CONFIG_FRAME_POINTER=y
1070# CONFIG_BOOT_PRINTK_DELAY is not set
1071# CONFIG_RCU_TORTURE_TEST is not set
1072# CONFIG_BACKTRACE_SELF_TEST is not set
1073# CONFIG_FAULT_INJECTION is not set
1074# CONFIG_SAMPLES is not set
1075CONFIG_DEBUG_USER=y
1076CONFIG_DEBUG_ERRORS=y
1077# CONFIG_DEBUG_STACK_USAGE is not set
1078# CONFIG_DEBUG_LL is not set
1079
1080#
1081# Security options
1082#
1083# CONFIG_KEYS is not set
1084# CONFIG_SECURITY is not set
1085# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1086CONFIG_CRYPTO=y
1087CONFIG_CRYPTO_ALGAPI=m
1088CONFIG_CRYPTO_BLKCIPHER=m
1089# CONFIG_CRYPTO_SEQIV is not set
1090CONFIG_CRYPTO_MANAGER=m
1091# CONFIG_CRYPTO_HMAC is not set
1092# CONFIG_CRYPTO_XCBC is not set
1093# CONFIG_CRYPTO_NULL is not set
1094# CONFIG_CRYPTO_MD4 is not set
1095# CONFIG_CRYPTO_MD5 is not set
1096# CONFIG_CRYPTO_SHA1 is not set
1097# CONFIG_CRYPTO_SHA256 is not set
1098# CONFIG_CRYPTO_SHA512 is not set
1099# CONFIG_CRYPTO_WP512 is not set
1100# CONFIG_CRYPTO_TGR192 is not set
1101# CONFIG_CRYPTO_GF128MUL is not set
1102CONFIG_CRYPTO_ECB=m
1103CONFIG_CRYPTO_CBC=m
1104CONFIG_CRYPTO_PCBC=m
1105# CONFIG_CRYPTO_LRW is not set
1106# CONFIG_CRYPTO_XTS is not set
1107# CONFIG_CRYPTO_CTR is not set
1108# CONFIG_CRYPTO_GCM is not set
1109# CONFIG_CRYPTO_CCM is not set
1110# CONFIG_CRYPTO_CRYPTD is not set
1111# CONFIG_CRYPTO_DES is not set
1112# CONFIG_CRYPTO_FCRYPT is not set
1113# CONFIG_CRYPTO_BLOWFISH is not set
1114# CONFIG_CRYPTO_TWOFISH is not set
1115# CONFIG_CRYPTO_SERPENT is not set
1116# CONFIG_CRYPTO_AES is not set
1117# CONFIG_CRYPTO_CAST5 is not set
1118# CONFIG_CRYPTO_CAST6 is not set
1119# CONFIG_CRYPTO_TEA is not set
1120CONFIG_CRYPTO_ARC4=m
1121# CONFIG_CRYPTO_KHAZAD is not set
1122# CONFIG_CRYPTO_ANUBIS is not set
1123# CONFIG_CRYPTO_SEED is not set
1124# CONFIG_CRYPTO_SALSA20 is not set
1125# CONFIG_CRYPTO_DEFLATE is not set
1126# CONFIG_CRYPTO_MICHAEL_MIC is not set
1127# CONFIG_CRYPTO_CRC32C is not set
1128# CONFIG_CRYPTO_CAMELLIA is not set
1129# CONFIG_CRYPTO_TEST is not set
1130# CONFIG_CRYPTO_AUTHENC is not set
1131# CONFIG_CRYPTO_LZO is not set
1132CONFIG_CRYPTO_HW=y
1133
1134#
1135# Library routines
1136#
1137CONFIG_BITREVERSE=y
1138# CONFIG_CRC_CCITT is not set
1139# CONFIG_CRC16 is not set
1140# CONFIG_CRC_ITU_T is not set
1141CONFIG_CRC32=y
1142# CONFIG_CRC7 is not set
1143# CONFIG_LIBCRC32C is not set
1144CONFIG_ZLIB_INFLATE=y
1145CONFIG_ZLIB_DEFLATE=y
1146CONFIG_PLIST=y
1147CONFIG_HAS_IOMEM=y
1148CONFIG_HAS_IOPORT=y
1149CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/at91rm9200dk_defconfig b/arch/arm/configs/at91rm9200dk_defconfig
index e10d003566d6..2dbbbc3d4ac3 100644
--- a/arch/arm/configs/at91rm9200dk_defconfig
+++ b/arch/arm/configs/at91rm9200dk_defconfig
@@ -620,14 +620,14 @@ CONFIG_I2C_CHARDEV=y
620# 620#
621# I2C Algorithms 621# I2C Algorithms
622# 622#
623# CONFIG_I2C_ALGOBIT is not set 623CONFIG_I2C_ALGOBIT=y
624# CONFIG_I2C_ALGOPCF is not set 624# CONFIG_I2C_ALGOPCF is not set
625# CONFIG_I2C_ALGOPCA is not set 625# CONFIG_I2C_ALGOPCA is not set
626 626
627# 627#
628# I2C Hardware Bus support 628# I2C Hardware Bus support
629# 629#
630CONFIG_I2C_AT91=y 630CONFIG_I2C_GPIO=y
631# CONFIG_I2C_PARPORT_LIGHT is not set 631# CONFIG_I2C_PARPORT_LIGHT is not set
632# CONFIG_I2C_STUB is not set 632# CONFIG_I2C_STUB is not set
633# CONFIG_I2C_PCA_ISA is not set 633# CONFIG_I2C_PCA_ISA is not set
diff --git a/arch/arm/configs/at91rm9200ek_defconfig b/arch/arm/configs/at91rm9200ek_defconfig
index 834dddb51314..6e994f7820c6 100644
--- a/arch/arm/configs/at91rm9200ek_defconfig
+++ b/arch/arm/configs/at91rm9200ek_defconfig
@@ -594,14 +594,14 @@ CONFIG_I2C_CHARDEV=y
594# 594#
595# I2C Algorithms 595# I2C Algorithms
596# 596#
597# CONFIG_I2C_ALGOBIT is not set 597CONFIG_I2C_ALGOBIT=y
598# CONFIG_I2C_ALGOPCF is not set 598# CONFIG_I2C_ALGOPCF is not set
599# CONFIG_I2C_ALGOPCA is not set 599# CONFIG_I2C_ALGOPCA is not set
600 600
601# 601#
602# I2C Hardware Bus support 602# I2C Hardware Bus support
603# 603#
604CONFIG_I2C_AT91=y 604CONFIG_I2C_GPIO=y
605# CONFIG_I2C_PARPORT_LIGHT is not set 605# CONFIG_I2C_PARPORT_LIGHT is not set
606# CONFIG_I2C_STUB is not set 606# CONFIG_I2C_STUB is not set
607# CONFIG_I2C_PCA_ISA is not set 607# CONFIG_I2C_PCA_ISA is not set
diff --git a/arch/arm/configs/at91sam9260ek_defconfig b/arch/arm/configs/at91sam9260ek_defconfig
index 46b0c734aeb9..f659c938473f 100644
--- a/arch/arm/configs/at91sam9260ek_defconfig
+++ b/arch/arm/configs/at91sam9260ek_defconfig
@@ -1,43 +1,56 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.19-rc6 3# Linux kernel version: 2.6.24-rc7
4# Fri Nov 17 18:42:21 2006 4# Tue Jan 8 22:20:50 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
7# CONFIG_GENERIC_TIME is not set 9# CONFIG_GENERIC_TIME is not set
10# CONFIG_GENERIC_CLOCKEVENTS is not set
8CONFIG_MMU=y 11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
9CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
10CONFIG_TRACE_IRQFLAGS_SUPPORT=y 16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
11CONFIG_HARDIRQS_SW_RESEND=y 17CONFIG_HARDIRQS_SW_RESEND=y
12CONFIG_GENERIC_IRQ_PROBE=y 18CONFIG_GENERIC_IRQ_PROBE=y
13CONFIG_RWSEM_GENERIC_SPINLOCK=y 19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
14CONFIG_GENERIC_HWEIGHT=y 22CONFIG_GENERIC_HWEIGHT=y
15CONFIG_GENERIC_CALIBRATE_DELAY=y 23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
16CONFIG_VECTORS_BASE=0xffff0000 25CONFIG_VECTORS_BASE=0xffff0000
17CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
18 27
19# 28#
20# Code maturity level options 29# General setup
21# 30#
22CONFIG_EXPERIMENTAL=y 31CONFIG_EXPERIMENTAL=y
23CONFIG_BROKEN_ON_SMP=y 32CONFIG_BROKEN_ON_SMP=y
24CONFIG_INIT_ENV_ARG_LIMIT=32 33CONFIG_INIT_ENV_ARG_LIMIT=32
25
26#
27# General setup
28#
29CONFIG_LOCALVERSION="" 34CONFIG_LOCALVERSION=""
30# CONFIG_LOCALVERSION_AUTO is not set 35# CONFIG_LOCALVERSION_AUTO is not set
31# CONFIG_SWAP is not set 36# CONFIG_SWAP is not set
32CONFIG_SYSVIPC=y 37CONFIG_SYSVIPC=y
33# CONFIG_IPC_NS is not set 38CONFIG_SYSVIPC_SYSCTL=y
34# CONFIG_POSIX_MQUEUE is not set 39# CONFIG_POSIX_MQUEUE is not set
35# CONFIG_BSD_PROCESS_ACCT is not set 40# CONFIG_BSD_PROCESS_ACCT is not set
36# CONFIG_TASKSTATS is not set 41# CONFIG_TASKSTATS is not set
37# CONFIG_UTS_NS is not set 42# CONFIG_USER_NS is not set
43# CONFIG_PID_NS is not set
38# CONFIG_AUDIT is not set 44# CONFIG_AUDIT is not set
39# CONFIG_IKCONFIG is not set 45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47# CONFIG_CGROUPS is not set
48CONFIG_FAIR_GROUP_SCHED=y
49CONFIG_FAIR_USER_SCHED=y
50# CONFIG_FAIR_CGROUP_SCHED is not set
51CONFIG_SYSFS_DEPRECATED=y
40# CONFIG_RELAY is not set 52# CONFIG_RELAY is not set
53CONFIG_BLK_DEV_INITRD=y
41CONFIG_INITRAMFS_SOURCE="" 54CONFIG_INITRAMFS_SOURCE=""
42CONFIG_CC_OPTIMIZE_FOR_SIZE=y 55CONFIG_CC_OPTIMIZE_FOR_SIZE=y
43CONFIG_SYSCTL=y 56CONFIG_SYSCTL=y
@@ -53,30 +66,30 @@ CONFIG_BUG=y
53CONFIG_ELF_CORE=y 66CONFIG_ELF_CORE=y
54CONFIG_BASE_FULL=y 67CONFIG_BASE_FULL=y
55CONFIG_FUTEX=y 68CONFIG_FUTEX=y
69CONFIG_ANON_INODES=y
56CONFIG_EPOLL=y 70CONFIG_EPOLL=y
71CONFIG_SIGNALFD=y
72CONFIG_EVENTFD=y
57CONFIG_SHMEM=y 73CONFIG_SHMEM=y
58CONFIG_SLAB=y
59CONFIG_VM_EVENT_COUNTERS=y 74CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_SLAB=y
76# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set
78CONFIG_SLABINFO=y
60CONFIG_RT_MUTEXES=y 79CONFIG_RT_MUTEXES=y
61# CONFIG_TINY_SHMEM is not set 80# CONFIG_TINY_SHMEM is not set
62CONFIG_BASE_SMALL=0 81CONFIG_BASE_SMALL=0
63# CONFIG_SLOB is not set
64
65#
66# Loadable module support
67#
68CONFIG_MODULES=y 82CONFIG_MODULES=y
69CONFIG_MODULE_UNLOAD=y 83CONFIG_MODULE_UNLOAD=y
70# CONFIG_MODULE_FORCE_UNLOAD is not set 84# CONFIG_MODULE_FORCE_UNLOAD is not set
71# CONFIG_MODVERSIONS is not set 85# CONFIG_MODVERSIONS is not set
72# CONFIG_MODULE_SRCVERSION_ALL is not set 86# CONFIG_MODULE_SRCVERSION_ALL is not set
73CONFIG_KMOD=y 87CONFIG_KMOD=y
74
75#
76# Block layer
77#
78CONFIG_BLOCK=y 88CONFIG_BLOCK=y
89# CONFIG_LBD is not set
79# CONFIG_BLK_DEV_IO_TRACE is not set 90# CONFIG_BLK_DEV_IO_TRACE is not set
91# CONFIG_LSF is not set
92# CONFIG_BLK_DEV_BSG is not set
80 93
81# 94#
82# IO Schedulers 95# IO Schedulers
@@ -108,12 +121,16 @@ CONFIG_ARCH_AT91=y
108# CONFIG_ARCH_NETX is not set 121# CONFIG_ARCH_NETX is not set
109# CONFIG_ARCH_H720X is not set 122# CONFIG_ARCH_H720X is not set
110# CONFIG_ARCH_IMX is not set 123# CONFIG_ARCH_IMX is not set
124# CONFIG_ARCH_IOP13XX is not set
111# CONFIG_ARCH_IOP32X is not set 125# CONFIG_ARCH_IOP32X is not set
112# CONFIG_ARCH_IOP33X is not set 126# CONFIG_ARCH_IOP33X is not set
113# CONFIG_ARCH_IXP4XX is not set
114# CONFIG_ARCH_IXP2000 is not set
115# CONFIG_ARCH_IXP23XX is not set 127# CONFIG_ARCH_IXP23XX is not set
128# CONFIG_ARCH_IXP2000 is not set
129# CONFIG_ARCH_IXP4XX is not set
116# CONFIG_ARCH_L7200 is not set 130# CONFIG_ARCH_L7200 is not set
131# CONFIG_ARCH_KS8695 is not set
132# CONFIG_ARCH_NS9XXX is not set
133# CONFIG_ARCH_MXC is not set
117# CONFIG_ARCH_PNX4008 is not set 134# CONFIG_ARCH_PNX4008 is not set
118# CONFIG_ARCH_PXA is not set 135# CONFIG_ARCH_PXA is not set
119# CONFIG_ARCH_RPC is not set 136# CONFIG_ARCH_RPC is not set
@@ -121,29 +138,52 @@ CONFIG_ARCH_AT91=y
121# CONFIG_ARCH_S3C2410 is not set 138# CONFIG_ARCH_S3C2410 is not set
122# CONFIG_ARCH_SHARK is not set 139# CONFIG_ARCH_SHARK is not set
123# CONFIG_ARCH_LH7A40X is not set 140# CONFIG_ARCH_LH7A40X is not set
141# CONFIG_ARCH_DAVINCI is not set
124# CONFIG_ARCH_OMAP is not set 142# CONFIG_ARCH_OMAP is not set
125 143
126# 144#
145# Boot options
146#
147
148#
149# Power management
150#
151
152#
127# Atmel AT91 System-on-Chip 153# Atmel AT91 System-on-Chip
128# 154#
129# CONFIG_ARCH_AT91RM9200 is not set 155# CONFIG_ARCH_AT91RM9200 is not set
130CONFIG_ARCH_AT91SAM9260=y 156CONFIG_ARCH_AT91SAM9260=y
131# CONFIG_ARCH_AT91SAM9261 is not set 157# CONFIG_ARCH_AT91SAM9261 is not set
158# CONFIG_ARCH_AT91SAM9263 is not set
159# CONFIG_ARCH_AT91SAM9RL is not set
160# CONFIG_ARCH_AT91X40 is not set
161CONFIG_AT91_PMC_UNIT=y
162
163#
164# AT91SAM9260 Variants
165#
166# CONFIG_ARCH_AT91SAM9260_SAM9XE is not set
132 167
133# 168#
134# AT91SAM9260 Board Type 169# AT91SAM9260 / AT91SAM9XE Board Type
135# 170#
136CONFIG_MACH_AT91SAM9260EK=y 171CONFIG_MACH_AT91SAM9260EK=y
172# CONFIG_MACH_CAM60 is not set
173# CONFIG_MACH_SAM9_L9260 is not set
137 174
138# 175#
139# AT91 Board Options 176# AT91 Board Options
140# 177#
178# CONFIG_MTD_AT91_DATAFLASH_CARD is not set
141# CONFIG_MTD_NAND_AT91_BUSWIDTH_16 is not set 179# CONFIG_MTD_NAND_AT91_BUSWIDTH_16 is not set
142 180
143# 181#
144# AT91 Feature Selections 182# AT91 Feature Selections
145# 183#
146# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set 184CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
185# CONFIG_ATMEL_TCLIB is not set
186CONFIG_AT91_TIMER_HZ=100
147 187
148# 188#
149# Processor Type 189# Processor Type
@@ -166,19 +206,19 @@ CONFIG_CPU_CP15_MMU=y
166# CONFIG_CPU_DCACHE_DISABLE is not set 206# CONFIG_CPU_DCACHE_DISABLE is not set
167# CONFIG_CPU_DCACHE_WRITETHROUGH is not set 207# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
168# CONFIG_CPU_CACHE_ROUND_ROBIN is not set 208# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
209# CONFIG_OUTER_CACHE is not set
169 210
170# 211#
171# Bus support 212# Bus support
172# 213#
173 214# CONFIG_PCI_SYSCALL is not set
174# 215# CONFIG_ARCH_SUPPORTS_MSI is not set
175# PCCARD (PCMCIA/CardBus) support
176#
177# CONFIG_PCCARD is not set 216# CONFIG_PCCARD is not set
178 217
179# 218#
180# Kernel Features 219# Kernel Features
181# 220#
221# CONFIG_TICK_ONESHOT is not set
182# CONFIG_PREEMPT is not set 222# CONFIG_PREEMPT is not set
183# CONFIG_NO_IDLE_HZ is not set 223# CONFIG_NO_IDLE_HZ is not set
184CONFIG_HZ=100 224CONFIG_HZ=100
@@ -191,8 +231,12 @@ CONFIG_FLATMEM_MANUAL=y
191CONFIG_FLATMEM=y 231CONFIG_FLATMEM=y
192CONFIG_FLAT_NODE_MEM_MAP=y 232CONFIG_FLAT_NODE_MEM_MAP=y
193# CONFIG_SPARSEMEM_STATIC is not set 233# CONFIG_SPARSEMEM_STATIC is not set
234# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
194CONFIG_SPLIT_PTLOCK_CPUS=4096 235CONFIG_SPLIT_PTLOCK_CPUS=4096
195# CONFIG_RESOURCES_64BIT is not set 236# CONFIG_RESOURCES_64BIT is not set
237CONFIG_ZONE_DMA_FLAG=1
238CONFIG_BOUNCE=y
239CONFIG_VIRT_TO_BUS=y
196# CONFIG_LEDS is not set 240# CONFIG_LEDS is not set
197CONFIG_ALIGNMENT_TRAP=y 241CONFIG_ALIGNMENT_TRAP=y
198 242
@@ -203,6 +247,7 @@ CONFIG_ZBOOT_ROM_TEXT=0x0
203CONFIG_ZBOOT_ROM_BSS=0x0 247CONFIG_ZBOOT_ROM_BSS=0x0
204CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw" 248CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw"
205# CONFIG_XIP_KERNEL is not set 249# CONFIG_XIP_KERNEL is not set
250# CONFIG_KEXEC is not set
206 251
207# 252#
208# Floating point emulation 253# Floating point emulation
@@ -228,7 +273,7 @@ CONFIG_BINFMT_ELF=y
228# Power management options 273# Power management options
229# 274#
230# CONFIG_PM is not set 275# CONFIG_PM is not set
231# CONFIG_APM is not set 276CONFIG_SUSPEND_UP_POSSIBLE=y
232 277
233# 278#
234# Networking 279# Networking
@@ -238,13 +283,9 @@ CONFIG_NET=y
238# 283#
239# Networking options 284# Networking options
240# 285#
241# CONFIG_NETDEBUG is not set
242CONFIG_PACKET=y 286CONFIG_PACKET=y
243# CONFIG_PACKET_MMAP is not set 287# CONFIG_PACKET_MMAP is not set
244CONFIG_UNIX=y 288CONFIG_UNIX=y
245CONFIG_XFRM=y
246# CONFIG_XFRM_USER is not set
247# CONFIG_XFRM_SUB_POLICY is not set
248# CONFIG_NET_KEY is not set 289# CONFIG_NET_KEY is not set
249CONFIG_INET=y 290CONFIG_INET=y
250# CONFIG_IP_MULTICAST is not set 291# CONFIG_IP_MULTICAST is not set
@@ -263,33 +304,23 @@ CONFIG_IP_PNP_BOOTP=y
263# CONFIG_INET_IPCOMP is not set 304# CONFIG_INET_IPCOMP is not set
264# CONFIG_INET_XFRM_TUNNEL is not set 305# CONFIG_INET_XFRM_TUNNEL is not set
265# CONFIG_INET_TUNNEL is not set 306# CONFIG_INET_TUNNEL is not set
266CONFIG_INET_XFRM_MODE_TRANSPORT=y 307# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
267CONFIG_INET_XFRM_MODE_TUNNEL=y 308# CONFIG_INET_XFRM_MODE_TUNNEL is not set
268CONFIG_INET_XFRM_MODE_BEET=y 309# CONFIG_INET_XFRM_MODE_BEET is not set
310# CONFIG_INET_LRO is not set
269CONFIG_INET_DIAG=y 311CONFIG_INET_DIAG=y
270CONFIG_INET_TCP_DIAG=y 312CONFIG_INET_TCP_DIAG=y
271# CONFIG_TCP_CONG_ADVANCED is not set 313# CONFIG_TCP_CONG_ADVANCED is not set
272CONFIG_TCP_CONG_CUBIC=y 314CONFIG_TCP_CONG_CUBIC=y
273CONFIG_DEFAULT_TCP_CONG="cubic" 315CONFIG_DEFAULT_TCP_CONG="cubic"
316# CONFIG_TCP_MD5SIG is not set
274# CONFIG_IPV6 is not set 317# CONFIG_IPV6 is not set
275# CONFIG_INET6_XFRM_TUNNEL is not set 318# CONFIG_INET6_XFRM_TUNNEL is not set
276# CONFIG_INET6_TUNNEL is not set 319# CONFIG_INET6_TUNNEL is not set
277# CONFIG_NETWORK_SECMARK is not set 320# CONFIG_NETWORK_SECMARK is not set
278# CONFIG_NETFILTER is not set 321# CONFIG_NETFILTER is not set
279
280#
281# DCCP Configuration (EXPERIMENTAL)
282#
283# CONFIG_IP_DCCP is not set 322# CONFIG_IP_DCCP is not set
284
285#
286# SCTP Configuration (EXPERIMENTAL)
287#
288# CONFIG_IP_SCTP is not set 323# CONFIG_IP_SCTP is not set
289
290#
291# TIPC Configuration (EXPERIMENTAL)
292#
293# CONFIG_TIPC is not set 324# CONFIG_TIPC is not set
294# CONFIG_ATM is not set 325# CONFIG_ATM is not set
295# CONFIG_BRIDGE is not set 326# CONFIG_BRIDGE is not set
@@ -302,10 +333,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
302# CONFIG_LAPB is not set 333# CONFIG_LAPB is not set
303# CONFIG_ECONET is not set 334# CONFIG_ECONET is not set
304# CONFIG_WAN_ROUTER is not set 335# CONFIG_WAN_ROUTER is not set
305
306#
307# QoS and/or fair queueing
308#
309# CONFIG_NET_SCHED is not set 336# CONFIG_NET_SCHED is not set
310 337
311# 338#
@@ -315,7 +342,17 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
315# CONFIG_HAMRADIO is not set 342# CONFIG_HAMRADIO is not set
316# CONFIG_IRDA is not set 343# CONFIG_IRDA is not set
317# CONFIG_BT is not set 344# CONFIG_BT is not set
345# CONFIG_AF_RXRPC is not set
346
347#
348# Wireless
349#
350# CONFIG_CFG80211 is not set
351# CONFIG_WIRELESS_EXT is not set
352# CONFIG_MAC80211 is not set
318# CONFIG_IEEE80211 is not set 353# CONFIG_IEEE80211 is not set
354# CONFIG_RFKILL is not set
355# CONFIG_NET_9P is not set
319 356
320# 357#
321# Device Drivers 358# Device Drivers
@@ -324,34 +361,17 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
324# 361#
325# Generic Driver Options 362# Generic Driver Options
326# 363#
364CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
327CONFIG_STANDALONE=y 365CONFIG_STANDALONE=y
328CONFIG_PREVENT_FIRMWARE_BUILD=y 366CONFIG_PREVENT_FIRMWARE_BUILD=y
329# CONFIG_FW_LOADER is not set 367# CONFIG_FW_LOADER is not set
330# CONFIG_DEBUG_DRIVER is not set 368# CONFIG_DEBUG_DRIVER is not set
369# CONFIG_DEBUG_DEVRES is not set
331# CONFIG_SYS_HYPERVISOR is not set 370# CONFIG_SYS_HYPERVISOR is not set
332
333#
334# Connector - unified userspace <-> kernelspace linker
335#
336# CONFIG_CONNECTOR is not set 371# CONFIG_CONNECTOR is not set
337
338#
339# Memory Technology Devices (MTD)
340#
341# CONFIG_MTD is not set 372# CONFIG_MTD is not set
342
343#
344# Parallel port support
345#
346# CONFIG_PARPORT is not set 373# CONFIG_PARPORT is not set
347 374CONFIG_BLK_DEV=y
348#
349# Plug and Play support
350#
351
352#
353# Block devices
354#
355# CONFIG_BLK_DEV_COW_COMMON is not set 375# CONFIG_BLK_DEV_COW_COMMON is not set
356# CONFIG_BLK_DEV_LOOP is not set 376# CONFIG_BLK_DEV_LOOP is not set
357# CONFIG_BLK_DEV_NBD is not set 377# CONFIG_BLK_DEV_NBD is not set
@@ -360,15 +380,19 @@ CONFIG_BLK_DEV_RAM=y
360CONFIG_BLK_DEV_RAM_COUNT=16 380CONFIG_BLK_DEV_RAM_COUNT=16
361CONFIG_BLK_DEV_RAM_SIZE=8192 381CONFIG_BLK_DEV_RAM_SIZE=8192
362CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 382CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
363CONFIG_BLK_DEV_INITRD=y
364# CONFIG_CDROM_PKTCDVD is not set 383# CONFIG_CDROM_PKTCDVD is not set
365# CONFIG_ATA_OVER_ETH is not set 384# CONFIG_ATA_OVER_ETH is not set
385CONFIG_MISC_DEVICES=y
386# CONFIG_EEPROM_93CX6 is not set
387CONFIG_ATMEL_SSC=y
366 388
367# 389#
368# SCSI device support 390# SCSI device support
369# 391#
370# CONFIG_RAID_ATTRS is not set 392# CONFIG_RAID_ATTRS is not set
371CONFIG_SCSI=y 393CONFIG_SCSI=y
394CONFIG_SCSI_DMA=y
395# CONFIG_SCSI_TGT is not set
372# CONFIG_SCSI_NETLINK is not set 396# CONFIG_SCSI_NETLINK is not set
373CONFIG_SCSI_PROC_FS=y 397CONFIG_SCSI_PROC_FS=y
374 398
@@ -388,6 +412,8 @@ CONFIG_BLK_DEV_SD=y
388CONFIG_SCSI_MULTI_LUN=y 412CONFIG_SCSI_MULTI_LUN=y
389# CONFIG_SCSI_CONSTANTS is not set 413# CONFIG_SCSI_CONSTANTS is not set
390# CONFIG_SCSI_LOGGING is not set 414# CONFIG_SCSI_LOGGING is not set
415# CONFIG_SCSI_SCAN_ASYNC is not set
416CONFIG_SCSI_WAIT_SCAN=m
391 417
392# 418#
393# SCSI Transports 419# SCSI Transports
@@ -395,43 +421,72 @@ CONFIG_SCSI_MULTI_LUN=y
395# CONFIG_SCSI_SPI_ATTRS is not set 421# CONFIG_SCSI_SPI_ATTRS is not set
396# CONFIG_SCSI_FC_ATTRS is not set 422# CONFIG_SCSI_FC_ATTRS is not set
397# CONFIG_SCSI_ISCSI_ATTRS is not set 423# CONFIG_SCSI_ISCSI_ATTRS is not set
398# CONFIG_SCSI_SAS_ATTRS is not set
399# CONFIG_SCSI_SAS_LIBSAS is not set 424# CONFIG_SCSI_SAS_LIBSAS is not set
400 425# CONFIG_SCSI_SRP_ATTRS is not set
401# 426CONFIG_SCSI_LOWLEVEL=y
402# SCSI low-level drivers
403#
404# CONFIG_ISCSI_TCP is not set 427# CONFIG_ISCSI_TCP is not set
405# CONFIG_SCSI_DEBUG is not set 428# CONFIG_SCSI_DEBUG is not set
406 429# CONFIG_ATA is not set
407#
408# Multi-device support (RAID and LVM)
409#
410# CONFIG_MD is not set 430# CONFIG_MD is not set
431CONFIG_NETDEVICES=y
432# CONFIG_NETDEVICES_MULTIQUEUE is not set
433# CONFIG_DUMMY is not set
434# CONFIG_BONDING is not set
435# CONFIG_MACVLAN is not set
436# CONFIG_EQUALIZER is not set
437# CONFIG_TUN is not set
438# CONFIG_VETH is not set
439CONFIG_PHYLIB=y
440
441#
442# MII PHY device drivers
443#
444# CONFIG_MARVELL_PHY is not set
445# CONFIG_DAVICOM_PHY is not set
446# CONFIG_QSEMI_PHY is not set
447# CONFIG_LXT_PHY is not set
448# CONFIG_CICADA_PHY is not set
449# CONFIG_VITESSE_PHY is not set
450# CONFIG_SMSC_PHY is not set
451# CONFIG_BROADCOM_PHY is not set
452# CONFIG_ICPLUS_PHY is not set
453# CONFIG_FIXED_PHY is not set
454# CONFIG_MDIO_BITBANG is not set
455CONFIG_NET_ETHERNET=y
456CONFIG_MII=y
457CONFIG_MACB=y
458# CONFIG_AX88796 is not set
459# CONFIG_SMC91X is not set
460# CONFIG_DM9000 is not set
461# CONFIG_IBM_NEW_EMAC_ZMII is not set
462# CONFIG_IBM_NEW_EMAC_RGMII is not set
463# CONFIG_IBM_NEW_EMAC_TAH is not set
464# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
465# CONFIG_B44 is not set
466CONFIG_NETDEV_1000=y
467CONFIG_NETDEV_10000=y
468
469#
470# Wireless LAN
471#
472# CONFIG_WLAN_PRE80211 is not set
473# CONFIG_WLAN_80211 is not set
411 474
412# 475#
413# Fusion MPT device support 476# USB Network Adapters
414#
415# CONFIG_FUSION is not set
416
417#
418# IEEE 1394 (FireWire) support
419#
420
421#
422# I2O device support
423#
424
425#
426# Network device support
427# 477#
428# CONFIG_NETDEVICES is not set 478# CONFIG_USB_CATC is not set
479# CONFIG_USB_KAWETH is not set
480# CONFIG_USB_PEGASUS is not set
481# CONFIG_USB_RTL8150 is not set
482# CONFIG_USB_USBNET is not set
483# CONFIG_WAN is not set
484# CONFIG_PPP is not set
485# CONFIG_SLIP is not set
486# CONFIG_SHAPER is not set
487# CONFIG_NETCONSOLE is not set
429# CONFIG_NETPOLL is not set 488# CONFIG_NETPOLL is not set
430# CONFIG_NET_POLL_CONTROLLER is not set 489# CONFIG_NET_POLL_CONTROLLER is not set
431
432#
433# ISDN subsystem
434#
435# CONFIG_ISDN is not set 490# CONFIG_ISDN is not set
436 491
437# 492#
@@ -439,6 +494,7 @@ CONFIG_SCSI_MULTI_LUN=y
439# 494#
440CONFIG_INPUT=y 495CONFIG_INPUT=y
441# CONFIG_INPUT_FF_MEMLESS is not set 496# CONFIG_INPUT_FF_MEMLESS is not set
497# CONFIG_INPUT_POLLDEV is not set
442 498
443# 499#
444# Userland interfaces 500# Userland interfaces
@@ -448,7 +504,6 @@ CONFIG_INPUT_MOUSEDEV=y
448CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 504CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
449CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 505CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
450# CONFIG_INPUT_JOYDEV is not set 506# CONFIG_INPUT_JOYDEV is not set
451# CONFIG_INPUT_TSDEV is not set
452# CONFIG_INPUT_EVDEV is not set 507# CONFIG_INPUT_EVDEV is not set
453# CONFIG_INPUT_EVBUG is not set 508# CONFIG_INPUT_EVBUG is not set
454 509
@@ -458,6 +513,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
458# CONFIG_INPUT_KEYBOARD is not set 513# CONFIG_INPUT_KEYBOARD is not set
459# CONFIG_INPUT_MOUSE is not set 514# CONFIG_INPUT_MOUSE is not set
460# CONFIG_INPUT_JOYSTICK is not set 515# CONFIG_INPUT_JOYSTICK is not set
516# CONFIG_INPUT_TABLET is not set
461# CONFIG_INPUT_TOUCHSCREEN is not set 517# CONFIG_INPUT_TOUCHSCREEN is not set
462# CONFIG_INPUT_MISC is not set 518# CONFIG_INPUT_MISC is not set
463 519
@@ -492,114 +548,131 @@ CONFIG_SERIAL_CORE_CONSOLE=y
492CONFIG_UNIX98_PTYS=y 548CONFIG_UNIX98_PTYS=y
493CONFIG_LEGACY_PTYS=y 549CONFIG_LEGACY_PTYS=y
494CONFIG_LEGACY_PTY_COUNT=256 550CONFIG_LEGACY_PTY_COUNT=256
495
496#
497# IPMI
498#
499# CONFIG_IPMI_HANDLER is not set 551# CONFIG_IPMI_HANDLER is not set
500 552# CONFIG_HW_RANDOM is not set
501#
502# Watchdog Cards
503#
504CONFIG_WATCHDOG=y
505CONFIG_WATCHDOG_NOWAYOUT=y
506
507#
508# Watchdog Device Drivers
509#
510# CONFIG_SOFT_WATCHDOG is not set
511
512#
513# USB-based Watchdog Cards
514#
515# CONFIG_USBPCWATCHDOG is not set
516CONFIG_HW_RANDOM=y
517# CONFIG_NVRAM is not set 553# CONFIG_NVRAM is not set
518# CONFIG_DTLK is not set
519# CONFIG_R3964 is not set 554# CONFIG_R3964 is not set
555# CONFIG_RAW_DRIVER is not set
556# CONFIG_TCG_TPM is not set
557CONFIG_I2C=y
558CONFIG_I2C_BOARDINFO=y
559CONFIG_I2C_CHARDEV=y
520 560
521# 561#
522# Ftape, the floppy tape device driver 562# I2C Algorithms
523# 563#
524# CONFIG_RAW_DRIVER is not set 564CONFIG_I2C_ALGOBIT=y
565# CONFIG_I2C_ALGOPCF is not set
566# CONFIG_I2C_ALGOPCA is not set
525 567
526# 568#
527# TPM devices 569# I2C Hardware Bus support
528# 570#
529# CONFIG_TCG_TPM is not set 571CONFIG_I2C_GPIO=y
572# CONFIG_I2C_OCORES is not set
573# CONFIG_I2C_PARPORT_LIGHT is not set
574# CONFIG_I2C_SIMTEC is not set
575# CONFIG_I2C_TAOS_EVM is not set
576# CONFIG_I2C_STUB is not set
577# CONFIG_I2C_TINY_USB is not set
578# CONFIG_I2C_PCA is not set
530 579
531# 580#
532# I2C support 581# Miscellaneous I2C Chip support
533# 582#
534# CONFIG_I2C is not set 583# CONFIG_SENSORS_DS1337 is not set
584# CONFIG_SENSORS_DS1374 is not set
585# CONFIG_DS1682 is not set
586# CONFIG_SENSORS_EEPROM is not set
587# CONFIG_SENSORS_PCF8574 is not set
588# CONFIG_SENSORS_PCA9539 is not set
589# CONFIG_SENSORS_PCF8591 is not set
590# CONFIG_SENSORS_MAX6875 is not set
591# CONFIG_SENSORS_TSL2550 is not set
592# CONFIG_I2C_DEBUG_CORE is not set
593# CONFIG_I2C_DEBUG_ALGO is not set
594# CONFIG_I2C_DEBUG_BUS is not set
595# CONFIG_I2C_DEBUG_CHIP is not set
535 596
536# 597#
537# SPI support 598# SPI support
538# 599#
539# CONFIG_SPI is not set 600# CONFIG_SPI is not set
540# CONFIG_SPI_MASTER is not set 601# CONFIG_SPI_MASTER is not set
541
542#
543# Dallas's 1-wire bus
544#
545# CONFIG_W1 is not set 602# CONFIG_W1 is not set
546 603# CONFIG_POWER_SUPPLY is not set
547#
548# Hardware Monitoring support
549#
550# CONFIG_HWMON is not set 604# CONFIG_HWMON is not set
551# CONFIG_HWMON_VID is not set 605CONFIG_WATCHDOG=y
606CONFIG_WATCHDOG_NOWAYOUT=y
552 607
553# 608#
554# Misc devices 609# Watchdog Device Drivers
555# 610#
556# CONFIG_TIFM_CORE is not set 611# CONFIG_SOFT_WATCHDOG is not set
612CONFIG_AT91SAM9_WATCHDOG=y
557 613
558# 614#
559# LED devices 615# USB-based Watchdog Cards
560# 616#
561# CONFIG_NEW_LEDS is not set 617# CONFIG_USBPCWATCHDOG is not set
562 618
563# 619#
564# LED drivers 620# Sonics Silicon Backplane
565# 621#
622CONFIG_SSB_POSSIBLE=y
623# CONFIG_SSB is not set
566 624
567# 625#
568# LED Triggers 626# Multifunction device drivers
569# 627#
628# CONFIG_MFD_SM501 is not set
570 629
571# 630#
572# Multimedia devices 631# Multimedia devices
573# 632#
574# CONFIG_VIDEO_DEV is not set 633# CONFIG_VIDEO_DEV is not set
634# CONFIG_DVB_CORE is not set
635# CONFIG_DAB is not set
575 636
576# 637#
577# Digital Video Broadcasting Devices 638# Graphics support
578# 639#
579# CONFIG_DVB is not set 640# CONFIG_VGASTATE is not set
580# CONFIG_USB_DABUSB is not set 641# CONFIG_VIDEO_OUTPUT_CONTROL is not set
642# CONFIG_FB is not set
643# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
581 644
582# 645#
583# Graphics support 646# Display device support
584# 647#
585# CONFIG_FIRMWARE_EDID is not set 648# CONFIG_DISPLAY_SUPPORT is not set
586# CONFIG_FB is not set
587 649
588# 650#
589# Console display driver support 651# Console display driver support
590# 652#
591# CONFIG_VGA_CONSOLE is not set 653# CONFIG_VGA_CONSOLE is not set
592CONFIG_DUMMY_CONSOLE=y 654CONFIG_DUMMY_CONSOLE=y
593# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
594 655
595# 656#
596# Sound 657# Sound
597# 658#
598# CONFIG_SOUND is not set 659# CONFIG_SOUND is not set
660CONFIG_HID_SUPPORT=y
661CONFIG_HID=y
662# CONFIG_HID_DEBUG is not set
663# CONFIG_HIDRAW is not set
599 664
600# 665#
601# USB support 666# USB Input Devices
602# 667#
668# CONFIG_USB_HID is not set
669
670#
671# USB HID Boot Protocol drivers
672#
673# CONFIG_USB_KBD is not set
674# CONFIG_USB_MOUSE is not set
675CONFIG_USB_SUPPORT=y
603CONFIG_USB_ARCH_HAS_HCD=y 676CONFIG_USB_ARCH_HAS_HCD=y
604CONFIG_USB_ARCH_HAS_OHCI=y 677CONFIG_USB_ARCH_HAS_OHCI=y
605# CONFIG_USB_ARCH_HAS_EHCI is not set 678# CONFIG_USB_ARCH_HAS_EHCI is not set
@@ -610,7 +683,7 @@ CONFIG_USB=y
610# Miscellaneous USB options 683# Miscellaneous USB options
611# 684#
612CONFIG_USB_DEVICEFS=y 685CONFIG_USB_DEVICEFS=y
613# CONFIG_USB_BANDWIDTH is not set 686CONFIG_USB_DEVICE_CLASS=y
614# CONFIG_USB_DYNAMIC_MINORS is not set 687# CONFIG_USB_DYNAMIC_MINORS is not set
615# CONFIG_USB_OTG is not set 688# CONFIG_USB_OTG is not set
616 689
@@ -619,9 +692,11 @@ CONFIG_USB_DEVICEFS=y
619# 692#
620# CONFIG_USB_ISP116X_HCD is not set 693# CONFIG_USB_ISP116X_HCD is not set
621CONFIG_USB_OHCI_HCD=y 694CONFIG_USB_OHCI_HCD=y
622# CONFIG_USB_OHCI_BIG_ENDIAN is not set 695# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
696# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
623CONFIG_USB_OHCI_LITTLE_ENDIAN=y 697CONFIG_USB_OHCI_LITTLE_ENDIAN=y
624# CONFIG_USB_SL811_HCD is not set 698# CONFIG_USB_SL811_HCD is not set
699# CONFIG_USB_R8A66597_HCD is not set
625 700
626# 701#
627# USB Device Class drivers 702# USB Device Class drivers
@@ -640,6 +715,7 @@ CONFIG_USB_STORAGE=y
640CONFIG_USB_STORAGE_DEBUG=y 715CONFIG_USB_STORAGE_DEBUG=y
641# CONFIG_USB_STORAGE_DATAFAB is not set 716# CONFIG_USB_STORAGE_DATAFAB is not set
642# CONFIG_USB_STORAGE_FREECOM is not set 717# CONFIG_USB_STORAGE_FREECOM is not set
718# CONFIG_USB_STORAGE_ISD200 is not set
643# CONFIG_USB_STORAGE_DPCM is not set 719# CONFIG_USB_STORAGE_DPCM is not set
644# CONFIG_USB_STORAGE_USBAT is not set 720# CONFIG_USB_STORAGE_USBAT is not set
645# CONFIG_USB_STORAGE_SDDR09 is not set 721# CONFIG_USB_STORAGE_SDDR09 is not set
@@ -650,43 +726,10 @@ CONFIG_USB_STORAGE_DEBUG=y
650# CONFIG_USB_LIBUSUAL is not set 726# CONFIG_USB_LIBUSUAL is not set
651 727
652# 728#
653# USB Input Devices
654#
655# CONFIG_USB_HID is not set
656
657#
658# USB HID Boot Protocol drivers
659#
660# CONFIG_USB_KBD is not set
661# CONFIG_USB_MOUSE is not set
662# CONFIG_USB_AIPTEK is not set
663# CONFIG_USB_WACOM is not set
664# CONFIG_USB_ACECAD is not set
665# CONFIG_USB_KBTAB is not set
666# CONFIG_USB_POWERMATE is not set
667# CONFIG_USB_TOUCHSCREEN is not set
668# CONFIG_USB_YEALINK is not set
669# CONFIG_USB_XPAD is not set
670# CONFIG_USB_ATI_REMOTE is not set
671# CONFIG_USB_ATI_REMOTE2 is not set
672# CONFIG_USB_KEYSPAN_REMOTE is not set
673# CONFIG_USB_APPLETOUCH is not set
674
675#
676# USB Imaging devices 729# USB Imaging devices
677# 730#
678# CONFIG_USB_MDC800 is not set 731# CONFIG_USB_MDC800 is not set
679# CONFIG_USB_MICROTEK is not set 732# CONFIG_USB_MICROTEK is not set
680
681#
682# USB Network Adapters
683#
684# CONFIG_USB_CATC is not set
685# CONFIG_USB_KAWETH is not set
686# CONFIG_USB_PEGASUS is not set
687# CONFIG_USB_RTL8150 is not set
688# CONFIG_USB_USBNET_MII is not set
689# CONFIG_USB_USBNET is not set
690CONFIG_USB_MON=y 733CONFIG_USB_MON=y
691 734
692# 735#
@@ -708,6 +751,7 @@ CONFIG_USB_MON=y
708# CONFIG_USB_RIO500 is not set 751# CONFIG_USB_RIO500 is not set
709# CONFIG_USB_LEGOTOWER is not set 752# CONFIG_USB_LEGOTOWER is not set
710# CONFIG_USB_LCD is not set 753# CONFIG_USB_LCD is not set
754# CONFIG_USB_BERRY_CHARGE is not set
711# CONFIG_USB_LED is not set 755# CONFIG_USB_LED is not set
712# CONFIG_USB_CYPRESS_CY7C63 is not set 756# CONFIG_USB_CYPRESS_CY7C63 is not set
713# CONFIG_USB_CYTHERM is not set 757# CONFIG_USB_CYTHERM is not set
@@ -717,6 +761,7 @@ CONFIG_USB_MON=y
717# CONFIG_USB_APPLEDISPLAY is not set 761# CONFIG_USB_APPLEDISPLAY is not set
718# CONFIG_USB_LD is not set 762# CONFIG_USB_LD is not set
719# CONFIG_USB_TRANCEVIBRATOR is not set 763# CONFIG_USB_TRANCEVIBRATOR is not set
764# CONFIG_USB_IOWARRIOR is not set
720# CONFIG_USB_TEST is not set 765# CONFIG_USB_TEST is not set
721 766
722# 767#
@@ -727,13 +772,19 @@ CONFIG_USB_MON=y
727# USB Gadget Support 772# USB Gadget Support
728# 773#
729CONFIG_USB_GADGET=y 774CONFIG_USB_GADGET=y
775# CONFIG_USB_GADGET_DEBUG is not set
730# CONFIG_USB_GADGET_DEBUG_FILES is not set 776# CONFIG_USB_GADGET_DEBUG_FILES is not set
731CONFIG_USB_GADGET_SELECTED=y 777CONFIG_USB_GADGET_SELECTED=y
778# CONFIG_USB_GADGET_AMD5536UDC is not set
779# CONFIG_USB_GADGET_ATMEL_USBA is not set
780# CONFIG_USB_GADGET_FSL_USB2 is not set
732# CONFIG_USB_GADGET_NET2280 is not set 781# CONFIG_USB_GADGET_NET2280 is not set
733# CONFIG_USB_GADGET_PXA2XX is not set 782# CONFIG_USB_GADGET_PXA2XX is not set
783# CONFIG_USB_GADGET_M66592 is not set
734# CONFIG_USB_GADGET_GOKU is not set 784# CONFIG_USB_GADGET_GOKU is not set
735# CONFIG_USB_GADGET_LH7A40X is not set 785# CONFIG_USB_GADGET_LH7A40X is not set
736# CONFIG_USB_GADGET_OMAP is not set 786# CONFIG_USB_GADGET_OMAP is not set
787# CONFIG_USB_GADGET_S3C2410 is not set
737CONFIG_USB_GADGET_AT91=y 788CONFIG_USB_GADGET_AT91=y
738CONFIG_USB_AT91=y 789CONFIG_USB_AT91=y
739# CONFIG_USB_GADGET_DUMMY_HCD is not set 790# CONFIG_USB_GADGET_DUMMY_HCD is not set
@@ -745,17 +796,56 @@ CONFIG_USB_FILE_STORAGE=m
745# CONFIG_USB_FILE_STORAGE_TEST is not set 796# CONFIG_USB_FILE_STORAGE_TEST is not set
746CONFIG_USB_G_SERIAL=m 797CONFIG_USB_G_SERIAL=m
747# CONFIG_USB_MIDI_GADGET is not set 798# CONFIG_USB_MIDI_GADGET is not set
799# CONFIG_MMC is not set
800# CONFIG_NEW_LEDS is not set
801CONFIG_RTC_LIB=y
802CONFIG_RTC_CLASS=y
803CONFIG_RTC_HCTOSYS=y
804CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
805# CONFIG_RTC_DEBUG is not set
748 806
749# 807#
750# MMC/SD Card support 808# RTC interfaces
751# 809#
752# CONFIG_MMC is not set 810CONFIG_RTC_INTF_SYSFS=y
811CONFIG_RTC_INTF_PROC=y
812CONFIG_RTC_INTF_DEV=y
813# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
814# CONFIG_RTC_DRV_TEST is not set
753 815
754# 816#
755# Real Time Clock 817# I2C RTC drivers
818#
819# CONFIG_RTC_DRV_DS1307 is not set
820# CONFIG_RTC_DRV_DS1374 is not set
821# CONFIG_RTC_DRV_DS1672 is not set
822# CONFIG_RTC_DRV_MAX6900 is not set
823# CONFIG_RTC_DRV_RS5C372 is not set
824# CONFIG_RTC_DRV_ISL1208 is not set
825# CONFIG_RTC_DRV_X1205 is not set
826# CONFIG_RTC_DRV_PCF8563 is not set
827# CONFIG_RTC_DRV_PCF8583 is not set
828# CONFIG_RTC_DRV_M41T80 is not set
829
830#
831# SPI RTC drivers
756# 832#
757CONFIG_RTC_LIB=y 833
758# CONFIG_RTC_CLASS is not set 834#
835# Platform RTC drivers
836#
837# CONFIG_RTC_DRV_CMOS is not set
838# CONFIG_RTC_DRV_DS1553 is not set
839# CONFIG_RTC_DRV_STK17TA8 is not set
840# CONFIG_RTC_DRV_DS1742 is not set
841# CONFIG_RTC_DRV_M48T86 is not set
842# CONFIG_RTC_DRV_M48T59 is not set
843# CONFIG_RTC_DRV_V3020 is not set
844
845#
846# on-CPU RTC drivers
847#
848CONFIG_RTC_DRV_AT91SAM9=y
759 849
760# 850#
761# File systems 851# File systems
@@ -806,7 +896,6 @@ CONFIG_SYSFS=y
806CONFIG_TMPFS=y 896CONFIG_TMPFS=y
807# CONFIG_TMPFS_POSIX_ACL is not set 897# CONFIG_TMPFS_POSIX_ACL is not set
808# CONFIG_HUGETLB_PAGE is not set 898# CONFIG_HUGETLB_PAGE is not set
809CONFIG_RAMFS=y
810# CONFIG_CONFIGFS_FS is not set 899# CONFIG_CONFIGFS_FS is not set
811 900
812# 901#
@@ -825,10 +914,7 @@ CONFIG_CRAMFS=y
825# CONFIG_QNX4FS_FS is not set 914# CONFIG_QNX4FS_FS is not set
826# CONFIG_SYSV_FS is not set 915# CONFIG_SYSV_FS is not set
827# CONFIG_UFS_FS is not set 916# CONFIG_UFS_FS is not set
828 917CONFIG_NETWORK_FILESYSTEMS=y
829#
830# Network File Systems
831#
832# CONFIG_NFS_FS is not set 918# CONFIG_NFS_FS is not set
833# CONFIG_NFSD is not set 919# CONFIG_NFSD is not set
834# CONFIG_SMB_FS is not set 920# CONFIG_SMB_FS is not set
@@ -836,17 +922,12 @@ CONFIG_CRAMFS=y
836# CONFIG_NCP_FS is not set 922# CONFIG_NCP_FS is not set
837# CONFIG_CODA_FS is not set 923# CONFIG_CODA_FS is not set
838# CONFIG_AFS_FS is not set 924# CONFIG_AFS_FS is not set
839# CONFIG_9P_FS is not set
840 925
841# 926#
842# Partition Types 927# Partition Types
843# 928#
844# CONFIG_PARTITION_ADVANCED is not set 929# CONFIG_PARTITION_ADVANCED is not set
845CONFIG_MSDOS_PARTITION=y 930CONFIG_MSDOS_PARTITION=y
846
847#
848# Native Language Support
849#
850CONFIG_NLS=y 931CONFIG_NLS=y
851CONFIG_NLS_DEFAULT="iso8859-1" 932CONFIG_NLS_DEFAULT="iso8859-1"
852CONFIG_NLS_CODEPAGE_437=y 933CONFIG_NLS_CODEPAGE_437=y
@@ -887,41 +968,49 @@ CONFIG_NLS_ISO8859_1=y
887# CONFIG_NLS_KOI8_R is not set 968# CONFIG_NLS_KOI8_R is not set
888# CONFIG_NLS_KOI8_U is not set 969# CONFIG_NLS_KOI8_U is not set
889# CONFIG_NLS_UTF8 is not set 970# CONFIG_NLS_UTF8 is not set
890 971# CONFIG_DLM is not set
891# 972CONFIG_INSTRUMENTATION=y
892# Profiling support
893#
894# CONFIG_PROFILING is not set 973# CONFIG_PROFILING is not set
974# CONFIG_MARKERS is not set
895 975
896# 976#
897# Kernel hacking 977# Kernel hacking
898# 978#
899# CONFIG_PRINTK_TIME is not set 979# CONFIG_PRINTK_TIME is not set
980CONFIG_ENABLE_WARN_DEPRECATED=y
900CONFIG_ENABLE_MUST_CHECK=y 981CONFIG_ENABLE_MUST_CHECK=y
901# CONFIG_MAGIC_SYSRQ is not set 982# CONFIG_MAGIC_SYSRQ is not set
902# CONFIG_UNUSED_SYMBOLS is not set 983# CONFIG_UNUSED_SYMBOLS is not set
984# CONFIG_DEBUG_FS is not set
985# CONFIG_HEADERS_CHECK is not set
903CONFIG_DEBUG_KERNEL=y 986CONFIG_DEBUG_KERNEL=y
904CONFIG_LOG_BUF_SHIFT=14 987# CONFIG_DEBUG_SHIRQ is not set
905CONFIG_DETECT_SOFTLOCKUP=y 988CONFIG_DETECT_SOFTLOCKUP=y
989CONFIG_SCHED_DEBUG=y
906# CONFIG_SCHEDSTATS is not set 990# CONFIG_SCHEDSTATS is not set
991# CONFIG_TIMER_STATS is not set
907# CONFIG_DEBUG_SLAB is not set 992# CONFIG_DEBUG_SLAB is not set
908# CONFIG_DEBUG_RT_MUTEXES is not set 993# CONFIG_DEBUG_RT_MUTEXES is not set
909# CONFIG_RT_MUTEX_TESTER is not set 994# CONFIG_RT_MUTEX_TESTER is not set
910# CONFIG_DEBUG_SPINLOCK is not set 995# CONFIG_DEBUG_SPINLOCK is not set
911# CONFIG_DEBUG_MUTEXES is not set 996# CONFIG_DEBUG_MUTEXES is not set
912# CONFIG_DEBUG_RWSEMS is not set 997# CONFIG_DEBUG_LOCK_ALLOC is not set
998# CONFIG_PROVE_LOCKING is not set
999# CONFIG_LOCK_STAT is not set
913# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1000# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
914# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1001# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
915# CONFIG_DEBUG_KOBJECT is not set 1002# CONFIG_DEBUG_KOBJECT is not set
916CONFIG_DEBUG_BUGVERBOSE=y 1003CONFIG_DEBUG_BUGVERBOSE=y
917# CONFIG_DEBUG_INFO is not set 1004# CONFIG_DEBUG_INFO is not set
918# CONFIG_DEBUG_FS is not set
919# CONFIG_DEBUG_VM is not set 1005# CONFIG_DEBUG_VM is not set
920# CONFIG_DEBUG_LIST is not set 1006# CONFIG_DEBUG_LIST is not set
1007# CONFIG_DEBUG_SG is not set
921CONFIG_FRAME_POINTER=y 1008CONFIG_FRAME_POINTER=y
922CONFIG_FORCED_INLINING=y 1009CONFIG_FORCED_INLINING=y
923# CONFIG_HEADERS_CHECK is not set 1010# CONFIG_BOOT_PRINTK_DELAY is not set
924# CONFIG_RCU_TORTURE_TEST is not set 1011# CONFIG_RCU_TORTURE_TEST is not set
1012# CONFIG_FAULT_INJECTION is not set
1013# CONFIG_SAMPLES is not set
925CONFIG_DEBUG_USER=y 1014CONFIG_DEBUG_USER=y
926# CONFIG_DEBUG_ERRORS is not set 1015# CONFIG_DEBUG_ERRORS is not set
927CONFIG_DEBUG_LL=y 1016CONFIG_DEBUG_LL=y
@@ -932,18 +1021,21 @@ CONFIG_DEBUG_LL=y
932# 1021#
933# CONFIG_KEYS is not set 1022# CONFIG_KEYS is not set
934# CONFIG_SECURITY is not set 1023# CONFIG_SECURITY is not set
935 1024# CONFIG_SECURITY_FILE_CAPABILITIES is not set
936#
937# Cryptographic options
938#
939# CONFIG_CRYPTO is not set 1025# CONFIG_CRYPTO is not set
940 1026
941# 1027#
942# Library routines 1028# Library routines
943# 1029#
1030CONFIG_BITREVERSE=y
944# CONFIG_CRC_CCITT is not set 1031# CONFIG_CRC_CCITT is not set
945# CONFIG_CRC16 is not set 1032# CONFIG_CRC16 is not set
1033# CONFIG_CRC_ITU_T is not set
946CONFIG_CRC32=y 1034CONFIG_CRC32=y
1035# CONFIG_CRC7 is not set
947# CONFIG_LIBCRC32C is not set 1036# CONFIG_LIBCRC32C is not set
948CONFIG_ZLIB_INFLATE=y 1037CONFIG_ZLIB_INFLATE=y
949CONFIG_PLIST=y 1038CONFIG_PLIST=y
1039CONFIG_HAS_IOMEM=y
1040CONFIG_HAS_IOPORT=y
1041CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/at91sam9261ek_defconfig b/arch/arm/configs/at91sam9261ek_defconfig
index fcd8fa091e9d..3802e85f7483 100644
--- a/arch/arm/configs/at91sam9261ek_defconfig
+++ b/arch/arm/configs/at91sam9261ek_defconfig
@@ -1,43 +1,56 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.19-rc6 3# Linux kernel version: 2.6.24-rc7
4# Fri Nov 17 18:00:38 2006 4# Tue Jan 8 22:21:49 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
7# CONFIG_GENERIC_TIME is not set 9# CONFIG_GENERIC_TIME is not set
10# CONFIG_GENERIC_CLOCKEVENTS is not set
8CONFIG_MMU=y 11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
9CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
10CONFIG_TRACE_IRQFLAGS_SUPPORT=y 16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
11CONFIG_HARDIRQS_SW_RESEND=y 17CONFIG_HARDIRQS_SW_RESEND=y
12CONFIG_GENERIC_IRQ_PROBE=y 18CONFIG_GENERIC_IRQ_PROBE=y
13CONFIG_RWSEM_GENERIC_SPINLOCK=y 19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
14CONFIG_GENERIC_HWEIGHT=y 22CONFIG_GENERIC_HWEIGHT=y
15CONFIG_GENERIC_CALIBRATE_DELAY=y 23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
16CONFIG_VECTORS_BASE=0xffff0000 25CONFIG_VECTORS_BASE=0xffff0000
17CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
18 27
19# 28#
20# Code maturity level options 29# General setup
21# 30#
22CONFIG_EXPERIMENTAL=y 31CONFIG_EXPERIMENTAL=y
23CONFIG_BROKEN_ON_SMP=y 32CONFIG_BROKEN_ON_SMP=y
24CONFIG_INIT_ENV_ARG_LIMIT=32 33CONFIG_INIT_ENV_ARG_LIMIT=32
25
26#
27# General setup
28#
29CONFIG_LOCALVERSION="" 34CONFIG_LOCALVERSION=""
30# CONFIG_LOCALVERSION_AUTO is not set 35# CONFIG_LOCALVERSION_AUTO is not set
31# CONFIG_SWAP is not set 36# CONFIG_SWAP is not set
32CONFIG_SYSVIPC=y 37CONFIG_SYSVIPC=y
33# CONFIG_IPC_NS is not set 38CONFIG_SYSVIPC_SYSCTL=y
34# CONFIG_POSIX_MQUEUE is not set 39# CONFIG_POSIX_MQUEUE is not set
35# CONFIG_BSD_PROCESS_ACCT is not set 40# CONFIG_BSD_PROCESS_ACCT is not set
36# CONFIG_TASKSTATS is not set 41# CONFIG_TASKSTATS is not set
37# CONFIG_UTS_NS is not set 42# CONFIG_USER_NS is not set
43# CONFIG_PID_NS is not set
38# CONFIG_AUDIT is not set 44# CONFIG_AUDIT is not set
39# CONFIG_IKCONFIG is not set 45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47# CONFIG_CGROUPS is not set
48CONFIG_FAIR_GROUP_SCHED=y
49CONFIG_FAIR_USER_SCHED=y
50# CONFIG_FAIR_CGROUP_SCHED is not set
51CONFIG_SYSFS_DEPRECATED=y
40# CONFIG_RELAY is not set 52# CONFIG_RELAY is not set
53CONFIG_BLK_DEV_INITRD=y
41CONFIG_INITRAMFS_SOURCE="" 54CONFIG_INITRAMFS_SOURCE=""
42CONFIG_CC_OPTIMIZE_FOR_SIZE=y 55CONFIG_CC_OPTIMIZE_FOR_SIZE=y
43CONFIG_SYSCTL=y 56CONFIG_SYSCTL=y
@@ -53,30 +66,30 @@ CONFIG_BUG=y
53CONFIG_ELF_CORE=y 66CONFIG_ELF_CORE=y
54CONFIG_BASE_FULL=y 67CONFIG_BASE_FULL=y
55CONFIG_FUTEX=y 68CONFIG_FUTEX=y
69CONFIG_ANON_INODES=y
56CONFIG_EPOLL=y 70CONFIG_EPOLL=y
71CONFIG_SIGNALFD=y
72CONFIG_EVENTFD=y
57CONFIG_SHMEM=y 73CONFIG_SHMEM=y
58CONFIG_SLAB=y
59CONFIG_VM_EVENT_COUNTERS=y 74CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_SLAB=y
76# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set
78CONFIG_SLABINFO=y
60CONFIG_RT_MUTEXES=y 79CONFIG_RT_MUTEXES=y
61# CONFIG_TINY_SHMEM is not set 80# CONFIG_TINY_SHMEM is not set
62CONFIG_BASE_SMALL=0 81CONFIG_BASE_SMALL=0
63# CONFIG_SLOB is not set
64
65#
66# Loadable module support
67#
68CONFIG_MODULES=y 82CONFIG_MODULES=y
69CONFIG_MODULE_UNLOAD=y 83CONFIG_MODULE_UNLOAD=y
70# CONFIG_MODULE_FORCE_UNLOAD is not set 84# CONFIG_MODULE_FORCE_UNLOAD is not set
71# CONFIG_MODVERSIONS is not set 85# CONFIG_MODVERSIONS is not set
72# CONFIG_MODULE_SRCVERSION_ALL is not set 86# CONFIG_MODULE_SRCVERSION_ALL is not set
73CONFIG_KMOD=y 87CONFIG_KMOD=y
74
75#
76# Block layer
77#
78CONFIG_BLOCK=y 88CONFIG_BLOCK=y
89# CONFIG_LBD is not set
79# CONFIG_BLK_DEV_IO_TRACE is not set 90# CONFIG_BLK_DEV_IO_TRACE is not set
91# CONFIG_LSF is not set
92# CONFIG_BLK_DEV_BSG is not set
80 93
81# 94#
82# IO Schedulers 95# IO Schedulers
@@ -108,12 +121,16 @@ CONFIG_ARCH_AT91=y
108# CONFIG_ARCH_NETX is not set 121# CONFIG_ARCH_NETX is not set
109# CONFIG_ARCH_H720X is not set 122# CONFIG_ARCH_H720X is not set
110# CONFIG_ARCH_IMX is not set 123# CONFIG_ARCH_IMX is not set
124# CONFIG_ARCH_IOP13XX is not set
111# CONFIG_ARCH_IOP32X is not set 125# CONFIG_ARCH_IOP32X is not set
112# CONFIG_ARCH_IOP33X is not set 126# CONFIG_ARCH_IOP33X is not set
113# CONFIG_ARCH_IXP4XX is not set
114# CONFIG_ARCH_IXP2000 is not set
115# CONFIG_ARCH_IXP23XX is not set 127# CONFIG_ARCH_IXP23XX is not set
128# CONFIG_ARCH_IXP2000 is not set
129# CONFIG_ARCH_IXP4XX is not set
116# CONFIG_ARCH_L7200 is not set 130# CONFIG_ARCH_L7200 is not set
131# CONFIG_ARCH_KS8695 is not set
132# CONFIG_ARCH_NS9XXX is not set
133# CONFIG_ARCH_MXC is not set
117# CONFIG_ARCH_PNX4008 is not set 134# CONFIG_ARCH_PNX4008 is not set
118# CONFIG_ARCH_PXA is not set 135# CONFIG_ARCH_PXA is not set
119# CONFIG_ARCH_RPC is not set 136# CONFIG_ARCH_RPC is not set
@@ -121,14 +138,27 @@ CONFIG_ARCH_AT91=y
121# CONFIG_ARCH_S3C2410 is not set 138# CONFIG_ARCH_S3C2410 is not set
122# CONFIG_ARCH_SHARK is not set 139# CONFIG_ARCH_SHARK is not set
123# CONFIG_ARCH_LH7A40X is not set 140# CONFIG_ARCH_LH7A40X is not set
141# CONFIG_ARCH_DAVINCI is not set
124# CONFIG_ARCH_OMAP is not set 142# CONFIG_ARCH_OMAP is not set
125 143
126# 144#
145# Boot options
146#
147
148#
149# Power management
150#
151
152#
127# Atmel AT91 System-on-Chip 153# Atmel AT91 System-on-Chip
128# 154#
129# CONFIG_ARCH_AT91RM9200 is not set 155# CONFIG_ARCH_AT91RM9200 is not set
130# CONFIG_ARCH_AT91SAM9260 is not set 156# CONFIG_ARCH_AT91SAM9260 is not set
131CONFIG_ARCH_AT91SAM9261=y 157CONFIG_ARCH_AT91SAM9261=y
158# CONFIG_ARCH_AT91SAM9263 is not set
159# CONFIG_ARCH_AT91SAM9RL is not set
160# CONFIG_ARCH_AT91X40 is not set
161CONFIG_AT91_PMC_UNIT=y
132 162
133# 163#
134# AT91SAM9261 Board Type 164# AT91SAM9261 Board Type
@@ -138,12 +168,15 @@ CONFIG_MACH_AT91SAM9261EK=y
138# 168#
139# AT91 Board Options 169# AT91 Board Options
140# 170#
171# CONFIG_MTD_AT91_DATAFLASH_CARD is not set
141# CONFIG_MTD_NAND_AT91_BUSWIDTH_16 is not set 172# CONFIG_MTD_NAND_AT91_BUSWIDTH_16 is not set
142 173
143# 174#
144# AT91 Feature Selections 175# AT91 Feature Selections
145# 176#
146# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set 177CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
178# CONFIG_ATMEL_TCLIB is not set
179CONFIG_AT91_TIMER_HZ=100
147 180
148# 181#
149# Processor Type 182# Processor Type
@@ -166,19 +199,19 @@ CONFIG_CPU_CP15_MMU=y
166# CONFIG_CPU_DCACHE_DISABLE is not set 199# CONFIG_CPU_DCACHE_DISABLE is not set
167# CONFIG_CPU_DCACHE_WRITETHROUGH is not set 200# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
168# CONFIG_CPU_CACHE_ROUND_ROBIN is not set 201# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
202# CONFIG_OUTER_CACHE is not set
169 203
170# 204#
171# Bus support 205# Bus support
172# 206#
173 207# CONFIG_PCI_SYSCALL is not set
174# 208# CONFIG_ARCH_SUPPORTS_MSI is not set
175# PCCARD (PCMCIA/CardBus) support
176#
177# CONFIG_PCCARD is not set 209# CONFIG_PCCARD is not set
178 210
179# 211#
180# Kernel Features 212# Kernel Features
181# 213#
214# CONFIG_TICK_ONESHOT is not set
182# CONFIG_PREEMPT is not set 215# CONFIG_PREEMPT is not set
183# CONFIG_NO_IDLE_HZ is not set 216# CONFIG_NO_IDLE_HZ is not set
184CONFIG_HZ=100 217CONFIG_HZ=100
@@ -191,8 +224,12 @@ CONFIG_FLATMEM_MANUAL=y
191CONFIG_FLATMEM=y 224CONFIG_FLATMEM=y
192CONFIG_FLAT_NODE_MEM_MAP=y 225CONFIG_FLAT_NODE_MEM_MAP=y
193# CONFIG_SPARSEMEM_STATIC is not set 226# CONFIG_SPARSEMEM_STATIC is not set
227# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
194CONFIG_SPLIT_PTLOCK_CPUS=4096 228CONFIG_SPLIT_PTLOCK_CPUS=4096
195# CONFIG_RESOURCES_64BIT is not set 229# CONFIG_RESOURCES_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y
196# CONFIG_LEDS is not set 233# CONFIG_LEDS is not set
197CONFIG_ALIGNMENT_TRAP=y 234CONFIG_ALIGNMENT_TRAP=y
198 235
@@ -203,6 +240,7 @@ CONFIG_ZBOOT_ROM_TEXT=0x0
203CONFIG_ZBOOT_ROM_BSS=0x0 240CONFIG_ZBOOT_ROM_BSS=0x0
204CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw" 241CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw"
205# CONFIG_XIP_KERNEL is not set 242# CONFIG_XIP_KERNEL is not set
243# CONFIG_KEXEC is not set
206 244
207# 245#
208# Floating point emulation 246# Floating point emulation
@@ -228,7 +266,7 @@ CONFIG_BINFMT_ELF=y
228# Power management options 266# Power management options
229# 267#
230# CONFIG_PM is not set 268# CONFIG_PM is not set
231# CONFIG_APM is not set 269CONFIG_SUSPEND_UP_POSSIBLE=y
232 270
233# 271#
234# Networking 272# Networking
@@ -238,13 +276,13 @@ CONFIG_NET=y
238# 276#
239# Networking options 277# Networking options
240# 278#
241# CONFIG_NETDEBUG is not set
242CONFIG_PACKET=y 279CONFIG_PACKET=y
243# CONFIG_PACKET_MMAP is not set 280# CONFIG_PACKET_MMAP is not set
244CONFIG_UNIX=y 281CONFIG_UNIX=y
245CONFIG_XFRM=y 282CONFIG_XFRM=y
246# CONFIG_XFRM_USER is not set 283# CONFIG_XFRM_USER is not set
247# CONFIG_XFRM_SUB_POLICY is not set 284# CONFIG_XFRM_SUB_POLICY is not set
285# CONFIG_XFRM_MIGRATE is not set
248# CONFIG_NET_KEY is not set 286# CONFIG_NET_KEY is not set
249CONFIG_INET=y 287CONFIG_INET=y
250# CONFIG_IP_MULTICAST is not set 288# CONFIG_IP_MULTICAST is not set
@@ -266,30 +304,20 @@ CONFIG_IP_PNP_BOOTP=y
266CONFIG_INET_XFRM_MODE_TRANSPORT=y 304CONFIG_INET_XFRM_MODE_TRANSPORT=y
267CONFIG_INET_XFRM_MODE_TUNNEL=y 305CONFIG_INET_XFRM_MODE_TUNNEL=y
268CONFIG_INET_XFRM_MODE_BEET=y 306CONFIG_INET_XFRM_MODE_BEET=y
307# CONFIG_INET_LRO is not set
269CONFIG_INET_DIAG=y 308CONFIG_INET_DIAG=y
270CONFIG_INET_TCP_DIAG=y 309CONFIG_INET_TCP_DIAG=y
271# CONFIG_TCP_CONG_ADVANCED is not set 310# CONFIG_TCP_CONG_ADVANCED is not set
272CONFIG_TCP_CONG_CUBIC=y 311CONFIG_TCP_CONG_CUBIC=y
273CONFIG_DEFAULT_TCP_CONG="cubic" 312CONFIG_DEFAULT_TCP_CONG="cubic"
313# CONFIG_TCP_MD5SIG is not set
274# CONFIG_IPV6 is not set 314# CONFIG_IPV6 is not set
275# CONFIG_INET6_XFRM_TUNNEL is not set 315# CONFIG_INET6_XFRM_TUNNEL is not set
276# CONFIG_INET6_TUNNEL is not set 316# CONFIG_INET6_TUNNEL is not set
277# CONFIG_NETWORK_SECMARK is not set 317# CONFIG_NETWORK_SECMARK is not set
278# CONFIG_NETFILTER is not set 318# CONFIG_NETFILTER is not set
279
280#
281# DCCP Configuration (EXPERIMENTAL)
282#
283# CONFIG_IP_DCCP is not set 319# CONFIG_IP_DCCP is not set
284
285#
286# SCTP Configuration (EXPERIMENTAL)
287#
288# CONFIG_IP_SCTP is not set 320# CONFIG_IP_SCTP is not set
289
290#
291# TIPC Configuration (EXPERIMENTAL)
292#
293# CONFIG_TIPC is not set 321# CONFIG_TIPC is not set
294# CONFIG_ATM is not set 322# CONFIG_ATM is not set
295# CONFIG_BRIDGE is not set 323# CONFIG_BRIDGE is not set
@@ -302,10 +330,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
302# CONFIG_LAPB is not set 330# CONFIG_LAPB is not set
303# CONFIG_ECONET is not set 331# CONFIG_ECONET is not set
304# CONFIG_WAN_ROUTER is not set 332# CONFIG_WAN_ROUTER is not set
305
306#
307# QoS and/or fair queueing
308#
309# CONFIG_NET_SCHED is not set 333# CONFIG_NET_SCHED is not set
310 334
311# 335#
@@ -315,7 +339,17 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
315# CONFIG_HAMRADIO is not set 339# CONFIG_HAMRADIO is not set
316# CONFIG_IRDA is not set 340# CONFIG_IRDA is not set
317# CONFIG_BT is not set 341# CONFIG_BT is not set
342# CONFIG_AF_RXRPC is not set
343
344#
345# Wireless
346#
347# CONFIG_CFG80211 is not set
348# CONFIG_WIRELESS_EXT is not set
349# CONFIG_MAC80211 is not set
318# CONFIG_IEEE80211 is not set 350# CONFIG_IEEE80211 is not set
351# CONFIG_RFKILL is not set
352# CONFIG_NET_9P is not set
319 353
320# 354#
321# Device Drivers 355# Device Drivers
@@ -324,20 +358,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
324# 358#
325# Generic Driver Options 359# Generic Driver Options
326# 360#
361CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
327CONFIG_STANDALONE=y 362CONFIG_STANDALONE=y
328CONFIG_PREVENT_FIRMWARE_BUILD=y 363CONFIG_PREVENT_FIRMWARE_BUILD=y
329# CONFIG_FW_LOADER is not set 364# CONFIG_FW_LOADER is not set
330# CONFIG_DEBUG_DRIVER is not set 365# CONFIG_DEBUG_DRIVER is not set
366# CONFIG_DEBUG_DEVRES is not set
331# CONFIG_SYS_HYPERVISOR is not set 367# CONFIG_SYS_HYPERVISOR is not set
332
333#
334# Connector - unified userspace <-> kernelspace linker
335#
336# CONFIG_CONNECTOR is not set 368# CONFIG_CONNECTOR is not set
337
338#
339# Memory Technology Devices (MTD)
340#
341CONFIG_MTD=y 369CONFIG_MTD=y
342# CONFIG_MTD_DEBUG is not set 370# CONFIG_MTD_DEBUG is not set
343# CONFIG_MTD_CONCAT is not set 371# CONFIG_MTD_CONCAT is not set
@@ -350,12 +378,14 @@ CONFIG_MTD_CMDLINE_PARTS=y
350# User Modules And Translation Layers 378# User Modules And Translation Layers
351# 379#
352# CONFIG_MTD_CHAR is not set 380# CONFIG_MTD_CHAR is not set
381CONFIG_MTD_BLKDEVS=y
353CONFIG_MTD_BLOCK=y 382CONFIG_MTD_BLOCK=y
354# CONFIG_FTL is not set 383# CONFIG_FTL is not set
355# CONFIG_NFTL is not set 384# CONFIG_NFTL is not set
356# CONFIG_INFTL is not set 385# CONFIG_INFTL is not set
357# CONFIG_RFD_FTL is not set 386# CONFIG_RFD_FTL is not set
358# CONFIG_SSFDC is not set 387# CONFIG_SSFDC is not set
388# CONFIG_MTD_OOPS is not set
359 389
360# 390#
361# RAM/ROM/Flash chip drivers 391# RAM/ROM/Flash chip drivers
@@ -375,7 +405,6 @@ CONFIG_MTD_CFI_I2=y
375# CONFIG_MTD_RAM is not set 405# CONFIG_MTD_RAM is not set
376# CONFIG_MTD_ROM is not set 406# CONFIG_MTD_ROM is not set
377# CONFIG_MTD_ABSENT is not set 407# CONFIG_MTD_ABSENT is not set
378# CONFIG_MTD_OBSOLETE_CHIPS is not set
379 408
380# 409#
381# Mapping drivers for chip access 410# Mapping drivers for chip access
@@ -386,6 +415,8 @@ CONFIG_MTD_CFI_I2=y
386# 415#
387# Self-contained MTD device drivers 416# Self-contained MTD device drivers
388# 417#
418# CONFIG_MTD_DATAFLASH is not set
419# CONFIG_MTD_M25P80 is not set
389# CONFIG_MTD_SLRAM is not set 420# CONFIG_MTD_SLRAM is not set
390# CONFIG_MTD_PHRAM is not set 421# CONFIG_MTD_PHRAM is not set
391# CONFIG_MTD_MTDRAM is not set 422# CONFIG_MTD_MTDRAM is not set
@@ -397,35 +428,24 @@ CONFIG_MTD_CFI_I2=y
397# CONFIG_MTD_DOC2000 is not set 428# CONFIG_MTD_DOC2000 is not set
398# CONFIG_MTD_DOC2001 is not set 429# CONFIG_MTD_DOC2001 is not set
399# CONFIG_MTD_DOC2001PLUS is not set 430# CONFIG_MTD_DOC2001PLUS is not set
400
401#
402# NAND Flash Device Drivers
403#
404CONFIG_MTD_NAND=y 431CONFIG_MTD_NAND=y
405# CONFIG_MTD_NAND_VERIFY_WRITE is not set 432# CONFIG_MTD_NAND_VERIFY_WRITE is not set
406# CONFIG_MTD_NAND_ECC_SMC is not set 433# CONFIG_MTD_NAND_ECC_SMC is not set
434# CONFIG_MTD_NAND_MUSEUM_IDS is not set
407CONFIG_MTD_NAND_IDS=y 435CONFIG_MTD_NAND_IDS=y
408# CONFIG_MTD_NAND_DISKONCHIP is not set 436# CONFIG_MTD_NAND_DISKONCHIP is not set
409CONFIG_MTD_NAND_AT91=y 437CONFIG_MTD_NAND_AT91=y
410# CONFIG_MTD_NAND_NANDSIM is not set 438# CONFIG_MTD_NAND_NANDSIM is not set
411 439# CONFIG_MTD_NAND_PLATFORM is not set
412# 440# CONFIG_MTD_ALAUDA is not set
413# OneNAND Flash Device Drivers
414#
415# CONFIG_MTD_ONENAND is not set 441# CONFIG_MTD_ONENAND is not set
416 442
417# 443#
418# Parallel port support 444# UBI - Unsorted block images
419# 445#
446# CONFIG_MTD_UBI is not set
420# CONFIG_PARPORT is not set 447# CONFIG_PARPORT is not set
421 448CONFIG_BLK_DEV=y
422#
423# Plug and Play support
424#
425
426#
427# Block devices
428#
429# CONFIG_BLK_DEV_COW_COMMON is not set 449# CONFIG_BLK_DEV_COW_COMMON is not set
430# CONFIG_BLK_DEV_LOOP is not set 450# CONFIG_BLK_DEV_LOOP is not set
431# CONFIG_BLK_DEV_NBD is not set 451# CONFIG_BLK_DEV_NBD is not set
@@ -434,15 +454,19 @@ CONFIG_BLK_DEV_RAM=y
434CONFIG_BLK_DEV_RAM_COUNT=16 454CONFIG_BLK_DEV_RAM_COUNT=16
435CONFIG_BLK_DEV_RAM_SIZE=8192 455CONFIG_BLK_DEV_RAM_SIZE=8192
436CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 456CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
437CONFIG_BLK_DEV_INITRD=y
438# CONFIG_CDROM_PKTCDVD is not set 457# CONFIG_CDROM_PKTCDVD is not set
439# CONFIG_ATA_OVER_ETH is not set 458# CONFIG_ATA_OVER_ETH is not set
459CONFIG_MISC_DEVICES=y
460# CONFIG_EEPROM_93CX6 is not set
461CONFIG_ATMEL_SSC=y
440 462
441# 463#
442# SCSI device support 464# SCSI device support
443# 465#
444# CONFIG_RAID_ATTRS is not set 466# CONFIG_RAID_ATTRS is not set
445CONFIG_SCSI=y 467CONFIG_SCSI=y
468CONFIG_SCSI_DMA=y
469# CONFIG_SCSI_TGT is not set
446# CONFIG_SCSI_NETLINK is not set 470# CONFIG_SCSI_NETLINK is not set
447CONFIG_SCSI_PROC_FS=y 471CONFIG_SCSI_PROC_FS=y
448 472
@@ -462,6 +486,8 @@ CONFIG_BLK_DEV_SD=y
462CONFIG_SCSI_MULTI_LUN=y 486CONFIG_SCSI_MULTI_LUN=y
463# CONFIG_SCSI_CONSTANTS is not set 487# CONFIG_SCSI_CONSTANTS is not set
464# CONFIG_SCSI_LOGGING is not set 488# CONFIG_SCSI_LOGGING is not set
489# CONFIG_SCSI_SCAN_ASYNC is not set
490CONFIG_SCSI_WAIT_SCAN=m
465 491
466# 492#
467# SCSI Transports 493# SCSI Transports
@@ -469,75 +495,49 @@ CONFIG_SCSI_MULTI_LUN=y
469# CONFIG_SCSI_SPI_ATTRS is not set 495# CONFIG_SCSI_SPI_ATTRS is not set
470# CONFIG_SCSI_FC_ATTRS is not set 496# CONFIG_SCSI_FC_ATTRS is not set
471# CONFIG_SCSI_ISCSI_ATTRS is not set 497# CONFIG_SCSI_ISCSI_ATTRS is not set
472# CONFIG_SCSI_SAS_ATTRS is not set
473# CONFIG_SCSI_SAS_LIBSAS is not set 498# CONFIG_SCSI_SAS_LIBSAS is not set
474 499# CONFIG_SCSI_SRP_ATTRS is not set
475# 500CONFIG_SCSI_LOWLEVEL=y
476# SCSI low-level drivers
477#
478# CONFIG_ISCSI_TCP is not set 501# CONFIG_ISCSI_TCP is not set
479# CONFIG_SCSI_DEBUG is not set 502# CONFIG_SCSI_DEBUG is not set
480 503# CONFIG_ATA is not set
481#
482# Multi-device support (RAID and LVM)
483#
484# CONFIG_MD is not set 504# CONFIG_MD is not set
485
486#
487# Fusion MPT device support
488#
489# CONFIG_FUSION is not set
490
491#
492# IEEE 1394 (FireWire) support
493#
494
495#
496# I2O device support
497#
498
499#
500# Network device support
501#
502CONFIG_NETDEVICES=y 505CONFIG_NETDEVICES=y
506# CONFIG_NETDEVICES_MULTIQUEUE is not set
503# CONFIG_DUMMY is not set 507# CONFIG_DUMMY is not set
504# CONFIG_BONDING is not set 508# CONFIG_BONDING is not set
509# CONFIG_MACVLAN is not set
505# CONFIG_EQUALIZER is not set 510# CONFIG_EQUALIZER is not set
506# CONFIG_TUN is not set 511# CONFIG_TUN is not set
507 512# CONFIG_VETH is not set
508#
509# PHY device support
510#
511# CONFIG_PHYLIB is not set 513# CONFIG_PHYLIB is not set
512
513#
514# Ethernet (10 or 100Mbit)
515#
516CONFIG_NET_ETHERNET=y 514CONFIG_NET_ETHERNET=y
517CONFIG_MII=y 515CONFIG_MII=y
516# CONFIG_AX88796 is not set
518# CONFIG_SMC91X is not set 517# CONFIG_SMC91X is not set
519CONFIG_DM9000=y 518CONFIG_DM9000=y
519# CONFIG_IBM_NEW_EMAC_ZMII is not set
520# CONFIG_IBM_NEW_EMAC_RGMII is not set
521# CONFIG_IBM_NEW_EMAC_TAH is not set
522# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
523# CONFIG_B44 is not set
524# CONFIG_NETDEV_1000 is not set
525# CONFIG_NETDEV_10000 is not set
520 526
521# 527#
522# Ethernet (1000 Mbit) 528# Wireless LAN
523#
524
525#
526# Ethernet (10000 Mbit)
527#
528
529#
530# Token Ring devices
531# 529#
530# CONFIG_WLAN_PRE80211 is not set
531# CONFIG_WLAN_80211 is not set
532 532
533# 533#
534# Wireless LAN (non-hamradio) 534# USB Network Adapters
535#
536# CONFIG_NET_RADIO is not set
537
538#
539# Wan interfaces
540# 535#
536# CONFIG_USB_CATC is not set
537# CONFIG_USB_KAWETH is not set
538# CONFIG_USB_PEGASUS is not set
539# CONFIG_USB_RTL8150 is not set
540# CONFIG_USB_USBNET is not set
541# CONFIG_WAN is not set 541# CONFIG_WAN is not set
542# CONFIG_PPP is not set 542# CONFIG_PPP is not set
543# CONFIG_SLIP is not set 543# CONFIG_SLIP is not set
@@ -545,10 +545,6 @@ CONFIG_DM9000=y
545# CONFIG_NETCONSOLE is not set 545# CONFIG_NETCONSOLE is not set
546# CONFIG_NETPOLL is not set 546# CONFIG_NETPOLL is not set
547# CONFIG_NET_POLL_CONTROLLER is not set 547# CONFIG_NET_POLL_CONTROLLER is not set
548
549#
550# ISDN subsystem
551#
552# CONFIG_ISDN is not set 548# CONFIG_ISDN is not set
553 549
554# 550#
@@ -556,6 +552,7 @@ CONFIG_DM9000=y
556# 552#
557CONFIG_INPUT=y 553CONFIG_INPUT=y
558# CONFIG_INPUT_FF_MEMLESS is not set 554# CONFIG_INPUT_FF_MEMLESS is not set
555# CONFIG_INPUT_POLLDEV is not set
559 556
560# 557#
561# Userland interfaces 558# Userland interfaces
@@ -565,23 +562,43 @@ CONFIG_INPUT_MOUSEDEV=y
565CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 562CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
566CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 563CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
567# CONFIG_INPUT_JOYDEV is not set 564# CONFIG_INPUT_JOYDEV is not set
568# CONFIG_INPUT_TSDEV is not set
569# CONFIG_INPUT_EVDEV is not set 565# CONFIG_INPUT_EVDEV is not set
570# CONFIG_INPUT_EVBUG is not set 566# CONFIG_INPUT_EVBUG is not set
571 567
572# 568#
573# Input Device Drivers 569# Input Device Drivers
574# 570#
575# CONFIG_INPUT_KEYBOARD is not set 571CONFIG_INPUT_KEYBOARD=y
572# CONFIG_KEYBOARD_ATKBD is not set
573# CONFIG_KEYBOARD_SUNKBD is not set
574# CONFIG_KEYBOARD_LKKBD is not set
575# CONFIG_KEYBOARD_XTKBD is not set
576# CONFIG_KEYBOARD_NEWTON is not set
577# CONFIG_KEYBOARD_STOWAWAY is not set
578CONFIG_KEYBOARD_GPIO=y
576# CONFIG_INPUT_MOUSE is not set 579# CONFIG_INPUT_MOUSE is not set
577# CONFIG_INPUT_JOYSTICK is not set 580# CONFIG_INPUT_JOYSTICK is not set
578# CONFIG_INPUT_TOUCHSCREEN is not set 581# CONFIG_INPUT_TABLET is not set
582CONFIG_INPUT_TOUCHSCREEN=y
583CONFIG_TOUCHSCREEN_ADS7846=y
584# CONFIG_TOUCHSCREEN_FUJITSU is not set
585# CONFIG_TOUCHSCREEN_GUNZE is not set
586# CONFIG_TOUCHSCREEN_ELO is not set
587# CONFIG_TOUCHSCREEN_MTOUCH is not set
588# CONFIG_TOUCHSCREEN_MK712 is not set
589# CONFIG_TOUCHSCREEN_PENMOUNT is not set
590# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
591# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
592# CONFIG_TOUCHSCREEN_UCB1400 is not set
593# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
579# CONFIG_INPUT_MISC is not set 594# CONFIG_INPUT_MISC is not set
580 595
581# 596#
582# Hardware I/O ports 597# Hardware I/O ports
583# 598#
584# CONFIG_SERIO is not set 599CONFIG_SERIO=y
600CONFIG_SERIO_SERPORT=y
601# CONFIG_SERIO_RAW is not set
585# CONFIG_GAMEPORT is not set 602# CONFIG_GAMEPORT is not set
586 603
587# 604#
@@ -609,75 +626,47 @@ CONFIG_SERIAL_CORE_CONSOLE=y
609CONFIG_UNIX98_PTYS=y 626CONFIG_UNIX98_PTYS=y
610CONFIG_LEGACY_PTYS=y 627CONFIG_LEGACY_PTYS=y
611CONFIG_LEGACY_PTY_COUNT=256 628CONFIG_LEGACY_PTY_COUNT=256
612
613#
614# IPMI
615#
616# CONFIG_IPMI_HANDLER is not set 629# CONFIG_IPMI_HANDLER is not set
617
618#
619# Watchdog Cards
620#
621CONFIG_WATCHDOG=y
622CONFIG_WATCHDOG_NOWAYOUT=y
623
624#
625# Watchdog Device Drivers
626#
627# CONFIG_SOFT_WATCHDOG is not set
628
629#
630# USB-based Watchdog Cards
631#
632# CONFIG_USBPCWATCHDOG is not set
633CONFIG_HW_RANDOM=y 630CONFIG_HW_RANDOM=y
634# CONFIG_NVRAM is not set 631# CONFIG_NVRAM is not set
635# CONFIG_DTLK is not set
636# CONFIG_R3964 is not set 632# CONFIG_R3964 is not set
637
638#
639# Ftape, the floppy tape device driver
640#
641# CONFIG_RAW_DRIVER is not set 633# CONFIG_RAW_DRIVER is not set
642
643#
644# TPM devices
645#
646# CONFIG_TCG_TPM is not set 634# CONFIG_TCG_TPM is not set
647
648#
649# I2C support
650#
651CONFIG_I2C=y 635CONFIG_I2C=y
636CONFIG_I2C_BOARDINFO=y
652CONFIG_I2C_CHARDEV=y 637CONFIG_I2C_CHARDEV=y
653 638
654# 639#
655# I2C Algorithms 640# I2C Algorithms
656# 641#
657# CONFIG_I2C_ALGOBIT is not set 642CONFIG_I2C_ALGOBIT=y
658# CONFIG_I2C_ALGOPCF is not set 643# CONFIG_I2C_ALGOPCF is not set
659# CONFIG_I2C_ALGOPCA is not set 644# CONFIG_I2C_ALGOPCA is not set
660 645
661# 646#
662# I2C Hardware Bus support 647# I2C Hardware Bus support
663# 648#
664CONFIG_I2C_AT91=y 649CONFIG_I2C_GPIO=y
665# CONFIG_I2C_OCORES is not set 650# CONFIG_I2C_OCORES is not set
666# CONFIG_I2C_PARPORT_LIGHT is not set 651# CONFIG_I2C_PARPORT_LIGHT is not set
652# CONFIG_I2C_SIMTEC is not set
653# CONFIG_I2C_TAOS_EVM is not set
667# CONFIG_I2C_STUB is not set 654# CONFIG_I2C_STUB is not set
655# CONFIG_I2C_TINY_USB is not set
668# CONFIG_I2C_PCA is not set 656# CONFIG_I2C_PCA is not set
669# CONFIG_I2C_PCA_ISA is not set
670 657
671# 658#
672# Miscellaneous I2C Chip support 659# Miscellaneous I2C Chip support
673# 660#
674# CONFIG_SENSORS_DS1337 is not set 661# CONFIG_SENSORS_DS1337 is not set
675# CONFIG_SENSORS_DS1374 is not set 662# CONFIG_SENSORS_DS1374 is not set
663# CONFIG_DS1682 is not set
676# CONFIG_SENSORS_EEPROM is not set 664# CONFIG_SENSORS_EEPROM is not set
677# CONFIG_SENSORS_PCF8574 is not set 665# CONFIG_SENSORS_PCF8574 is not set
678# CONFIG_SENSORS_PCA9539 is not set 666# CONFIG_SENSORS_PCA9539 is not set
679# CONFIG_SENSORS_PCF8591 is not set 667# CONFIG_SENSORS_PCF8591 is not set
680# CONFIG_SENSORS_MAX6875 is not set 668# CONFIG_SENSORS_MAX6875 is not set
669# CONFIG_SENSORS_TSL2550 is not set
681# CONFIG_I2C_DEBUG_CORE is not set 670# CONFIG_I2C_DEBUG_CORE is not set
682# CONFIG_I2C_DEBUG_ALGO is not set 671# CONFIG_I2C_DEBUG_ALGO is not set
683# CONFIG_I2C_DEBUG_BUS is not set 672# CONFIG_I2C_DEBUG_BUS is not set
@@ -686,70 +675,125 @@ CONFIG_I2C_AT91=y
686# 675#
687# SPI support 676# SPI support
688# 677#
689# CONFIG_SPI is not set 678CONFIG_SPI=y
690# CONFIG_SPI_MASTER is not set 679# CONFIG_SPI_DEBUG is not set
680CONFIG_SPI_MASTER=y
691 681
692# 682#
693# Dallas's 1-wire bus 683# SPI Master Controller Drivers
694# 684#
695# CONFIG_W1 is not set 685CONFIG_SPI_ATMEL=y
686# CONFIG_SPI_BITBANG is not set
696 687
697# 688#
698# Hardware Monitoring support 689# SPI Protocol Masters
699# 690#
691# CONFIG_SPI_AT25 is not set
692# CONFIG_SPI_SPIDEV is not set
693# CONFIG_SPI_TLE62X0 is not set
694# CONFIG_W1 is not set
695# CONFIG_POWER_SUPPLY is not set
700# CONFIG_HWMON is not set 696# CONFIG_HWMON is not set
701# CONFIG_HWMON_VID is not set 697CONFIG_WATCHDOG=y
698CONFIG_WATCHDOG_NOWAYOUT=y
702 699
703# 700#
704# Misc devices 701# Watchdog Device Drivers
705# 702#
706# CONFIG_TIFM_CORE is not set 703# CONFIG_SOFT_WATCHDOG is not set
704CONFIG_AT91SAM9_WATCHDOG=y
707 705
708# 706#
709# LED devices 707# USB-based Watchdog Cards
710# 708#
711# CONFIG_NEW_LEDS is not set 709# CONFIG_USBPCWATCHDOG is not set
712 710
713# 711#
714# LED drivers 712# Sonics Silicon Backplane
715# 713#
714CONFIG_SSB_POSSIBLE=y
715# CONFIG_SSB is not set
716 716
717# 717#
718# LED Triggers 718# Multifunction device drivers
719# 719#
720# CONFIG_MFD_SM501 is not set
720 721
721# 722#
722# Multimedia devices 723# Multimedia devices
723# 724#
724# CONFIG_VIDEO_DEV is not set 725# CONFIG_VIDEO_DEV is not set
725 726# CONFIG_DVB_CORE is not set
726# 727CONFIG_DAB=y
727# Digital Video Broadcasting Devices
728#
729# CONFIG_DVB is not set
730# CONFIG_USB_DABUSB is not set 728# CONFIG_USB_DABUSB is not set
731 729
732# 730#
733# Graphics support 731# Graphics support
734# 732#
733# CONFIG_VGASTATE is not set
734# CONFIG_VIDEO_OUTPUT_CONTROL is not set
735CONFIG_FB=y
735# CONFIG_FIRMWARE_EDID is not set 736# CONFIG_FIRMWARE_EDID is not set
736# CONFIG_FB is not set 737# CONFIG_FB_DDC is not set
738CONFIG_FB_CFB_FILLRECT=y
739CONFIG_FB_CFB_COPYAREA=y
740CONFIG_FB_CFB_IMAGEBLIT=y
741# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
742# CONFIG_FB_SYS_FILLRECT is not set
743# CONFIG_FB_SYS_COPYAREA is not set
744# CONFIG_FB_SYS_IMAGEBLIT is not set
745# CONFIG_FB_SYS_FOPS is not set
746CONFIG_FB_DEFERRED_IO=y
747# CONFIG_FB_SVGALIB is not set
748# CONFIG_FB_MACMODES is not set
749# CONFIG_FB_BACKLIGHT is not set
750# CONFIG_FB_MODE_HELPERS is not set
751# CONFIG_FB_TILEBLITTING is not set
752
753#
754# Frame buffer hardware drivers
755#
756# CONFIG_FB_S1D15605 is not set
757# CONFIG_FB_S1D13XXX is not set
758CONFIG_FB_ATMEL=y
759# CONFIG_FB_INTSRAM is not set
760# CONFIG_FB_ATMEL_STN is not set
761# CONFIG_FB_VIRTUAL is not set
762# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
763
764#
765# Display device support
766#
767# CONFIG_DISPLAY_SUPPORT is not set
737 768
738# 769#
739# Console display driver support 770# Console display driver support
740# 771#
741# CONFIG_VGA_CONSOLE is not set 772# CONFIG_VGA_CONSOLE is not set
742CONFIG_DUMMY_CONSOLE=y 773CONFIG_DUMMY_CONSOLE=y
743# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 774# CONFIG_FRAMEBUFFER_CONSOLE is not set
775# CONFIG_LOGO is not set
744 776
745# 777#
746# Sound 778# Sound
747# 779#
748# CONFIG_SOUND is not set 780# CONFIG_SOUND is not set
781CONFIG_HID_SUPPORT=y
782CONFIG_HID=y
783# CONFIG_HID_DEBUG is not set
784# CONFIG_HIDRAW is not set
749 785
750# 786#
751# USB support 787# USB Input Devices
752# 788#
789# CONFIG_USB_HID is not set
790
791#
792# USB HID Boot Protocol drivers
793#
794# CONFIG_USB_KBD is not set
795# CONFIG_USB_MOUSE is not set
796CONFIG_USB_SUPPORT=y
753CONFIG_USB_ARCH_HAS_HCD=y 797CONFIG_USB_ARCH_HAS_HCD=y
754CONFIG_USB_ARCH_HAS_OHCI=y 798CONFIG_USB_ARCH_HAS_OHCI=y
755# CONFIG_USB_ARCH_HAS_EHCI is not set 799# CONFIG_USB_ARCH_HAS_EHCI is not set
@@ -760,7 +804,7 @@ CONFIG_USB=y
760# Miscellaneous USB options 804# Miscellaneous USB options
761# 805#
762CONFIG_USB_DEVICEFS=y 806CONFIG_USB_DEVICEFS=y
763# CONFIG_USB_BANDWIDTH is not set 807CONFIG_USB_DEVICE_CLASS=y
764# CONFIG_USB_DYNAMIC_MINORS is not set 808# CONFIG_USB_DYNAMIC_MINORS is not set
765# CONFIG_USB_OTG is not set 809# CONFIG_USB_OTG is not set
766 810
@@ -769,9 +813,11 @@ CONFIG_USB_DEVICEFS=y
769# 813#
770# CONFIG_USB_ISP116X_HCD is not set 814# CONFIG_USB_ISP116X_HCD is not set
771CONFIG_USB_OHCI_HCD=y 815CONFIG_USB_OHCI_HCD=y
772# CONFIG_USB_OHCI_BIG_ENDIAN is not set 816# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
817# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
773CONFIG_USB_OHCI_LITTLE_ENDIAN=y 818CONFIG_USB_OHCI_LITTLE_ENDIAN=y
774# CONFIG_USB_SL811_HCD is not set 819# CONFIG_USB_SL811_HCD is not set
820# CONFIG_USB_R8A66597_HCD is not set
775 821
776# 822#
777# USB Device Class drivers 823# USB Device Class drivers
@@ -790,6 +836,7 @@ CONFIG_USB_STORAGE=y
790CONFIG_USB_STORAGE_DEBUG=y 836CONFIG_USB_STORAGE_DEBUG=y
791# CONFIG_USB_STORAGE_DATAFAB is not set 837# CONFIG_USB_STORAGE_DATAFAB is not set
792# CONFIG_USB_STORAGE_FREECOM is not set 838# CONFIG_USB_STORAGE_FREECOM is not set
839# CONFIG_USB_STORAGE_ISD200 is not set
793# CONFIG_USB_STORAGE_DPCM is not set 840# CONFIG_USB_STORAGE_DPCM is not set
794# CONFIG_USB_STORAGE_USBAT is not set 841# CONFIG_USB_STORAGE_USBAT is not set
795# CONFIG_USB_STORAGE_SDDR09 is not set 842# CONFIG_USB_STORAGE_SDDR09 is not set
@@ -800,43 +847,10 @@ CONFIG_USB_STORAGE_DEBUG=y
800# CONFIG_USB_LIBUSUAL is not set 847# CONFIG_USB_LIBUSUAL is not set
801 848
802# 849#
803# USB Input Devices
804#
805# CONFIG_USB_HID is not set
806
807#
808# USB HID Boot Protocol drivers
809#
810# CONFIG_USB_KBD is not set
811# CONFIG_USB_MOUSE is not set
812# CONFIG_USB_AIPTEK is not set
813# CONFIG_USB_WACOM is not set
814# CONFIG_USB_ACECAD is not set
815# CONFIG_USB_KBTAB is not set
816# CONFIG_USB_POWERMATE is not set
817# CONFIG_USB_TOUCHSCREEN is not set
818# CONFIG_USB_YEALINK is not set
819# CONFIG_USB_XPAD is not set
820# CONFIG_USB_ATI_REMOTE is not set
821# CONFIG_USB_ATI_REMOTE2 is not set
822# CONFIG_USB_KEYSPAN_REMOTE is not set
823# CONFIG_USB_APPLETOUCH is not set
824
825#
826# USB Imaging devices 850# USB Imaging devices
827# 851#
828# CONFIG_USB_MDC800 is not set 852# CONFIG_USB_MDC800 is not set
829# CONFIG_USB_MICROTEK is not set 853# CONFIG_USB_MICROTEK is not set
830
831#
832# USB Network Adapters
833#
834# CONFIG_USB_CATC is not set
835# CONFIG_USB_KAWETH is not set
836# CONFIG_USB_PEGASUS is not set
837# CONFIG_USB_RTL8150 is not set
838# CONFIG_USB_USBNET_MII is not set
839# CONFIG_USB_USBNET is not set
840CONFIG_USB_MON=y 854CONFIG_USB_MON=y
841 855
842# 856#
@@ -858,6 +872,7 @@ CONFIG_USB_MON=y
858# CONFIG_USB_RIO500 is not set 872# CONFIG_USB_RIO500 is not set
859# CONFIG_USB_LEGOTOWER is not set 873# CONFIG_USB_LEGOTOWER is not set
860# CONFIG_USB_LCD is not set 874# CONFIG_USB_LCD is not set
875# CONFIG_USB_BERRY_CHARGE is not set
861# CONFIG_USB_LED is not set 876# CONFIG_USB_LED is not set
862# CONFIG_USB_CYPRESS_CY7C63 is not set 877# CONFIG_USB_CYPRESS_CY7C63 is not set
863# CONFIG_USB_CYTHERM is not set 878# CONFIG_USB_CYTHERM is not set
@@ -867,6 +882,7 @@ CONFIG_USB_MON=y
867# CONFIG_USB_APPLEDISPLAY is not set 882# CONFIG_USB_APPLEDISPLAY is not set
868# CONFIG_USB_LD is not set 883# CONFIG_USB_LD is not set
869# CONFIG_USB_TRANCEVIBRATOR is not set 884# CONFIG_USB_TRANCEVIBRATOR is not set
885# CONFIG_USB_IOWARRIOR is not set
870# CONFIG_USB_TEST is not set 886# CONFIG_USB_TEST is not set
871 887
872# 888#
@@ -877,13 +893,19 @@ CONFIG_USB_MON=y
877# USB Gadget Support 893# USB Gadget Support
878# 894#
879CONFIG_USB_GADGET=y 895CONFIG_USB_GADGET=y
896# CONFIG_USB_GADGET_DEBUG is not set
880# CONFIG_USB_GADGET_DEBUG_FILES is not set 897# CONFIG_USB_GADGET_DEBUG_FILES is not set
881CONFIG_USB_GADGET_SELECTED=y 898CONFIG_USB_GADGET_SELECTED=y
899# CONFIG_USB_GADGET_AMD5536UDC is not set
900# CONFIG_USB_GADGET_ATMEL_USBA is not set
901# CONFIG_USB_GADGET_FSL_USB2 is not set
882# CONFIG_USB_GADGET_NET2280 is not set 902# CONFIG_USB_GADGET_NET2280 is not set
883# CONFIG_USB_GADGET_PXA2XX is not set 903# CONFIG_USB_GADGET_PXA2XX is not set
904# CONFIG_USB_GADGET_M66592 is not set
884# CONFIG_USB_GADGET_GOKU is not set 905# CONFIG_USB_GADGET_GOKU is not set
885# CONFIG_USB_GADGET_LH7A40X is not set 906# CONFIG_USB_GADGET_LH7A40X is not set
886# CONFIG_USB_GADGET_OMAP is not set 907# CONFIG_USB_GADGET_OMAP is not set
908# CONFIG_USB_GADGET_S3C2410 is not set
887CONFIG_USB_GADGET_AT91=y 909CONFIG_USB_GADGET_AT91=y
888CONFIG_USB_AT91=y 910CONFIG_USB_AT91=y
889# CONFIG_USB_GADGET_DUMMY_HCD is not set 911# CONFIG_USB_GADGET_DUMMY_HCD is not set
@@ -895,21 +917,73 @@ CONFIG_USB_FILE_STORAGE=m
895# CONFIG_USB_FILE_STORAGE_TEST is not set 917# CONFIG_USB_FILE_STORAGE_TEST is not set
896CONFIG_USB_G_SERIAL=m 918CONFIG_USB_G_SERIAL=m
897# CONFIG_USB_MIDI_GADGET is not set 919# CONFIG_USB_MIDI_GADGET is not set
920CONFIG_MMC=y
921# CONFIG_MMC_DEBUG is not set
922# CONFIG_MMC_UNSAFE_RESUME is not set
898 923
899# 924#
900# MMC/SD Card support 925# MMC/SD Card Drivers
901# 926#
902CONFIG_MMC=y
903# CONFIG_MMC_DEBUG is not set
904CONFIG_MMC_BLOCK=y 927CONFIG_MMC_BLOCK=y
905CONFIG_MMC_AT91=m 928CONFIG_MMC_BLOCK_BOUNCE=y
906# CONFIG_MMC_TIFM_SD is not set 929# CONFIG_SDIO_UART is not set
907 930
908# 931#
909# Real Time Clock 932# MMC/SD Host Controller Drivers
910# 933#
934CONFIG_MMC_AT91=y
935# CONFIG_MMC_SPI is not set
936# CONFIG_NEW_LEDS is not set
911CONFIG_RTC_LIB=y 937CONFIG_RTC_LIB=y
912# CONFIG_RTC_CLASS is not set 938CONFIG_RTC_CLASS=y
939CONFIG_RTC_HCTOSYS=y
940CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
941# CONFIG_RTC_DEBUG is not set
942
943#
944# RTC interfaces
945#
946CONFIG_RTC_INTF_SYSFS=y
947CONFIG_RTC_INTF_PROC=y
948CONFIG_RTC_INTF_DEV=y
949# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
950# CONFIG_RTC_DRV_TEST is not set
951
952#
953# I2C RTC drivers
954#
955# CONFIG_RTC_DRV_DS1307 is not set
956# CONFIG_RTC_DRV_DS1374 is not set
957# CONFIG_RTC_DRV_DS1672 is not set
958# CONFIG_RTC_DRV_MAX6900 is not set
959# CONFIG_RTC_DRV_RS5C372 is not set
960# CONFIG_RTC_DRV_ISL1208 is not set
961# CONFIG_RTC_DRV_X1205 is not set
962# CONFIG_RTC_DRV_PCF8563 is not set
963# CONFIG_RTC_DRV_PCF8583 is not set
964# CONFIG_RTC_DRV_M41T80 is not set
965
966#
967# SPI RTC drivers
968#
969# CONFIG_RTC_DRV_RS5C348 is not set
970# CONFIG_RTC_DRV_MAX6902 is not set
971
972#
973# Platform RTC drivers
974#
975# CONFIG_RTC_DRV_CMOS is not set
976# CONFIG_RTC_DRV_DS1553 is not set
977# CONFIG_RTC_DRV_STK17TA8 is not set
978# CONFIG_RTC_DRV_DS1742 is not set
979# CONFIG_RTC_DRV_M48T86 is not set
980# CONFIG_RTC_DRV_M48T59 is not set
981# CONFIG_RTC_DRV_V3020 is not set
982
983#
984# on-CPU RTC drivers
985#
986CONFIG_RTC_DRV_AT91SAM9=y
913 987
914# 988#
915# File systems 989# File systems
@@ -960,7 +1034,6 @@ CONFIG_SYSFS=y
960CONFIG_TMPFS=y 1034CONFIG_TMPFS=y
961# CONFIG_TMPFS_POSIX_ACL is not set 1035# CONFIG_TMPFS_POSIX_ACL is not set
962# CONFIG_HUGETLB_PAGE is not set 1036# CONFIG_HUGETLB_PAGE is not set
963CONFIG_RAMFS=y
964# CONFIG_CONFIGFS_FS is not set 1037# CONFIG_CONFIGFS_FS is not set
965 1038
966# 1039#
@@ -973,7 +1046,6 @@ CONFIG_RAMFS=y
973# CONFIG_BEFS_FS is not set 1046# CONFIG_BEFS_FS is not set
974# CONFIG_BFS_FS is not set 1047# CONFIG_BFS_FS is not set
975# CONFIG_EFS_FS is not set 1048# CONFIG_EFS_FS is not set
976# CONFIG_JFFS_FS is not set
977# CONFIG_JFFS2_FS is not set 1049# CONFIG_JFFS2_FS is not set
978CONFIG_CRAMFS=y 1050CONFIG_CRAMFS=y
979# CONFIG_VXFS_FS is not set 1051# CONFIG_VXFS_FS is not set
@@ -981,10 +1053,7 @@ CONFIG_CRAMFS=y
981# CONFIG_QNX4FS_FS is not set 1053# CONFIG_QNX4FS_FS is not set
982# CONFIG_SYSV_FS is not set 1054# CONFIG_SYSV_FS is not set
983# CONFIG_UFS_FS is not set 1055# CONFIG_UFS_FS is not set
984 1056CONFIG_NETWORK_FILESYSTEMS=y
985#
986# Network File Systems
987#
988# CONFIG_NFS_FS is not set 1057# CONFIG_NFS_FS is not set
989# CONFIG_NFSD is not set 1058# CONFIG_NFSD is not set
990# CONFIG_SMB_FS is not set 1059# CONFIG_SMB_FS is not set
@@ -992,17 +1061,12 @@ CONFIG_CRAMFS=y
992# CONFIG_NCP_FS is not set 1061# CONFIG_NCP_FS is not set
993# CONFIG_CODA_FS is not set 1062# CONFIG_CODA_FS is not set
994# CONFIG_AFS_FS is not set 1063# CONFIG_AFS_FS is not set
995# CONFIG_9P_FS is not set
996 1064
997# 1065#
998# Partition Types 1066# Partition Types
999# 1067#
1000# CONFIG_PARTITION_ADVANCED is not set 1068# CONFIG_PARTITION_ADVANCED is not set
1001CONFIG_MSDOS_PARTITION=y 1069CONFIG_MSDOS_PARTITION=y
1002
1003#
1004# Native Language Support
1005#
1006CONFIG_NLS=y 1070CONFIG_NLS=y
1007CONFIG_NLS_DEFAULT="iso8859-1" 1071CONFIG_NLS_DEFAULT="iso8859-1"
1008CONFIG_NLS_CODEPAGE_437=y 1072CONFIG_NLS_CODEPAGE_437=y
@@ -1043,41 +1107,49 @@ CONFIG_NLS_ISO8859_1=y
1043# CONFIG_NLS_KOI8_R is not set 1107# CONFIG_NLS_KOI8_R is not set
1044# CONFIG_NLS_KOI8_U is not set 1108# CONFIG_NLS_KOI8_U is not set
1045# CONFIG_NLS_UTF8 is not set 1109# CONFIG_NLS_UTF8 is not set
1046 1110# CONFIG_DLM is not set
1047# 1111CONFIG_INSTRUMENTATION=y
1048# Profiling support
1049#
1050# CONFIG_PROFILING is not set 1112# CONFIG_PROFILING is not set
1113# CONFIG_MARKERS is not set
1051 1114
1052# 1115#
1053# Kernel hacking 1116# Kernel hacking
1054# 1117#
1055# CONFIG_PRINTK_TIME is not set 1118# CONFIG_PRINTK_TIME is not set
1119CONFIG_ENABLE_WARN_DEPRECATED=y
1056CONFIG_ENABLE_MUST_CHECK=y 1120CONFIG_ENABLE_MUST_CHECK=y
1057# CONFIG_MAGIC_SYSRQ is not set 1121# CONFIG_MAGIC_SYSRQ is not set
1058# CONFIG_UNUSED_SYMBOLS is not set 1122# CONFIG_UNUSED_SYMBOLS is not set
1123# CONFIG_DEBUG_FS is not set
1124# CONFIG_HEADERS_CHECK is not set
1059CONFIG_DEBUG_KERNEL=y 1125CONFIG_DEBUG_KERNEL=y
1060CONFIG_LOG_BUF_SHIFT=14 1126# CONFIG_DEBUG_SHIRQ is not set
1061CONFIG_DETECT_SOFTLOCKUP=y 1127CONFIG_DETECT_SOFTLOCKUP=y
1128CONFIG_SCHED_DEBUG=y
1062# CONFIG_SCHEDSTATS is not set 1129# CONFIG_SCHEDSTATS is not set
1130# CONFIG_TIMER_STATS is not set
1063# CONFIG_DEBUG_SLAB is not set 1131# CONFIG_DEBUG_SLAB is not set
1064# CONFIG_DEBUG_RT_MUTEXES is not set 1132# CONFIG_DEBUG_RT_MUTEXES is not set
1065# CONFIG_RT_MUTEX_TESTER is not set 1133# CONFIG_RT_MUTEX_TESTER is not set
1066# CONFIG_DEBUG_SPINLOCK is not set 1134# CONFIG_DEBUG_SPINLOCK is not set
1067# CONFIG_DEBUG_MUTEXES is not set 1135# CONFIG_DEBUG_MUTEXES is not set
1068# CONFIG_DEBUG_RWSEMS is not set 1136# CONFIG_DEBUG_LOCK_ALLOC is not set
1137# CONFIG_PROVE_LOCKING is not set
1138# CONFIG_LOCK_STAT is not set
1069# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1139# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1070# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1140# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1071# CONFIG_DEBUG_KOBJECT is not set 1141# CONFIG_DEBUG_KOBJECT is not set
1072CONFIG_DEBUG_BUGVERBOSE=y 1142CONFIG_DEBUG_BUGVERBOSE=y
1073# CONFIG_DEBUG_INFO is not set 1143# CONFIG_DEBUG_INFO is not set
1074# CONFIG_DEBUG_FS is not set
1075# CONFIG_DEBUG_VM is not set 1144# CONFIG_DEBUG_VM is not set
1076# CONFIG_DEBUG_LIST is not set 1145# CONFIG_DEBUG_LIST is not set
1146# CONFIG_DEBUG_SG is not set
1077CONFIG_FRAME_POINTER=y 1147CONFIG_FRAME_POINTER=y
1078CONFIG_FORCED_INLINING=y 1148CONFIG_FORCED_INLINING=y
1079# CONFIG_HEADERS_CHECK is not set 1149# CONFIG_BOOT_PRINTK_DELAY is not set
1080# CONFIG_RCU_TORTURE_TEST is not set 1150# CONFIG_RCU_TORTURE_TEST is not set
1151# CONFIG_FAULT_INJECTION is not set
1152# CONFIG_SAMPLES is not set
1081CONFIG_DEBUG_USER=y 1153CONFIG_DEBUG_USER=y
1082# CONFIG_DEBUG_ERRORS is not set 1154# CONFIG_DEBUG_ERRORS is not set
1083CONFIG_DEBUG_LL=y 1155CONFIG_DEBUG_LL=y
@@ -1088,18 +1160,21 @@ CONFIG_DEBUG_LL=y
1088# 1160#
1089# CONFIG_KEYS is not set 1161# CONFIG_KEYS is not set
1090# CONFIG_SECURITY is not set 1162# CONFIG_SECURITY is not set
1091 1163# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1092#
1093# Cryptographic options
1094#
1095# CONFIG_CRYPTO is not set 1164# CONFIG_CRYPTO is not set
1096 1165
1097# 1166#
1098# Library routines 1167# Library routines
1099# 1168#
1169CONFIG_BITREVERSE=y
1100# CONFIG_CRC_CCITT is not set 1170# CONFIG_CRC_CCITT is not set
1101# CONFIG_CRC16 is not set 1171# CONFIG_CRC16 is not set
1172# CONFIG_CRC_ITU_T is not set
1102CONFIG_CRC32=y 1173CONFIG_CRC32=y
1174# CONFIG_CRC7 is not set
1103# CONFIG_LIBCRC32C is not set 1175# CONFIG_LIBCRC32C is not set
1104CONFIG_ZLIB_INFLATE=y 1176CONFIG_ZLIB_INFLATE=y
1105CONFIG_PLIST=y 1177CONFIG_PLIST=y
1178CONFIG_HAS_IOMEM=y
1179CONFIG_HAS_IOPORT=y
1180CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/at91sam9263ek_defconfig b/arch/arm/configs/at91sam9263ek_defconfig
index c72ab82873d5..32a0d74e0c89 100644
--- a/arch/arm/configs/at91sam9263ek_defconfig
+++ b/arch/arm/configs/at91sam9263ek_defconfig
@@ -1,12 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20-rc1 3# Linux kernel version: 2.6.24-rc7
4# Mon Jan 8 16:06:54 2007 4# Tue Jan 8 22:12:20 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
7# CONFIG_GENERIC_TIME is not set 9# CONFIG_GENERIC_TIME is not set
10# CONFIG_GENERIC_CLOCKEVENTS is not set
8CONFIG_MMU=y 11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
9CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
10CONFIG_TRACE_IRQFLAGS_SUPPORT=y 16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
11CONFIG_HARDIRQS_SW_RESEND=y 17CONFIG_HARDIRQS_SW_RESEND=y
12CONFIG_GENERIC_IRQ_PROBE=y 18CONFIG_GENERIC_IRQ_PROBE=y
@@ -15,32 +21,36 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
15# CONFIG_ARCH_HAS_ILOG2_U64 is not set 21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
16CONFIG_GENERIC_HWEIGHT=y 22CONFIG_GENERIC_HWEIGHT=y
17CONFIG_GENERIC_CALIBRATE_DELAY=y 23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
18CONFIG_VECTORS_BASE=0xffff0000 25CONFIG_VECTORS_BASE=0xffff0000
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20 27
21# 28#
22# Code maturity level options 29# General setup
23# 30#
24CONFIG_EXPERIMENTAL=y 31CONFIG_EXPERIMENTAL=y
25CONFIG_BROKEN_ON_SMP=y 32CONFIG_BROKEN_ON_SMP=y
26CONFIG_INIT_ENV_ARG_LIMIT=32 33CONFIG_INIT_ENV_ARG_LIMIT=32
27
28#
29# General setup
30#
31CONFIG_LOCALVERSION="" 34CONFIG_LOCALVERSION=""
32# CONFIG_LOCALVERSION_AUTO is not set 35# CONFIG_LOCALVERSION_AUTO is not set
33# CONFIG_SWAP is not set 36# CONFIG_SWAP is not set
34CONFIG_SYSVIPC=y 37CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set 38CONFIG_SYSVIPC_SYSCTL=y
36# CONFIG_POSIX_MQUEUE is not set 39# CONFIG_POSIX_MQUEUE is not set
37# CONFIG_BSD_PROCESS_ACCT is not set 40# CONFIG_BSD_PROCESS_ACCT is not set
38# CONFIG_TASKSTATS is not set 41# CONFIG_TASKSTATS is not set
39# CONFIG_UTS_NS is not set 42# CONFIG_USER_NS is not set
43# CONFIG_PID_NS is not set
40# CONFIG_AUDIT is not set 44# CONFIG_AUDIT is not set
41# CONFIG_IKCONFIG is not set 45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47# CONFIG_CGROUPS is not set
48CONFIG_FAIR_GROUP_SCHED=y
49CONFIG_FAIR_USER_SCHED=y
50# CONFIG_FAIR_CGROUP_SCHED is not set
42CONFIG_SYSFS_DEPRECATED=y 51CONFIG_SYSFS_DEPRECATED=y
43# CONFIG_RELAY is not set 52# CONFIG_RELAY is not set
53CONFIG_BLK_DEV_INITRD=y
44CONFIG_INITRAMFS_SOURCE="" 54CONFIG_INITRAMFS_SOURCE=""
45CONFIG_CC_OPTIMIZE_FOR_SIZE=y 55CONFIG_CC_OPTIMIZE_FOR_SIZE=y
46CONFIG_SYSCTL=y 56CONFIG_SYSCTL=y
@@ -56,32 +66,30 @@ CONFIG_BUG=y
56CONFIG_ELF_CORE=y 66CONFIG_ELF_CORE=y
57CONFIG_BASE_FULL=y 67CONFIG_BASE_FULL=y
58CONFIG_FUTEX=y 68CONFIG_FUTEX=y
69CONFIG_ANON_INODES=y
59CONFIG_EPOLL=y 70CONFIG_EPOLL=y
71CONFIG_SIGNALFD=y
72CONFIG_EVENTFD=y
60CONFIG_SHMEM=y 73CONFIG_SHMEM=y
61CONFIG_SLAB=y
62CONFIG_VM_EVENT_COUNTERS=y 74CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_SLAB=y
76# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set
78CONFIG_SLABINFO=y
63CONFIG_RT_MUTEXES=y 79CONFIG_RT_MUTEXES=y
64# CONFIG_TINY_SHMEM is not set 80# CONFIG_TINY_SHMEM is not set
65CONFIG_BASE_SMALL=0 81CONFIG_BASE_SMALL=0
66# CONFIG_SLOB is not set
67
68#
69# Loadable module support
70#
71CONFIG_MODULES=y 82CONFIG_MODULES=y
72CONFIG_MODULE_UNLOAD=y 83CONFIG_MODULE_UNLOAD=y
73# CONFIG_MODULE_FORCE_UNLOAD is not set 84# CONFIG_MODULE_FORCE_UNLOAD is not set
74# CONFIG_MODVERSIONS is not set 85# CONFIG_MODVERSIONS is not set
75# CONFIG_MODULE_SRCVERSION_ALL is not set 86# CONFIG_MODULE_SRCVERSION_ALL is not set
76CONFIG_KMOD=y 87CONFIG_KMOD=y
77
78#
79# Block layer
80#
81CONFIG_BLOCK=y 88CONFIG_BLOCK=y
82# CONFIG_LBD is not set 89# CONFIG_LBD is not set
83# CONFIG_BLK_DEV_IO_TRACE is not set 90# CONFIG_BLK_DEV_IO_TRACE is not set
84# CONFIG_LSF is not set 91# CONFIG_LSF is not set
92# CONFIG_BLK_DEV_BSG is not set
85 93
86# 94#
87# IO Schedulers 95# IO Schedulers
@@ -113,13 +121,16 @@ CONFIG_ARCH_AT91=y
113# CONFIG_ARCH_NETX is not set 121# CONFIG_ARCH_NETX is not set
114# CONFIG_ARCH_H720X is not set 122# CONFIG_ARCH_H720X is not set
115# CONFIG_ARCH_IMX is not set 123# CONFIG_ARCH_IMX is not set
124# CONFIG_ARCH_IOP13XX is not set
116# CONFIG_ARCH_IOP32X is not set 125# CONFIG_ARCH_IOP32X is not set
117# CONFIG_ARCH_IOP33X is not set 126# CONFIG_ARCH_IOP33X is not set
118# CONFIG_ARCH_IOP13XX is not set
119# CONFIG_ARCH_IXP4XX is not set
120# CONFIG_ARCH_IXP2000 is not set
121# CONFIG_ARCH_IXP23XX is not set 127# CONFIG_ARCH_IXP23XX is not set
128# CONFIG_ARCH_IXP2000 is not set
129# CONFIG_ARCH_IXP4XX is not set
122# CONFIG_ARCH_L7200 is not set 130# CONFIG_ARCH_L7200 is not set
131# CONFIG_ARCH_KS8695 is not set
132# CONFIG_ARCH_NS9XXX is not set
133# CONFIG_ARCH_MXC is not set
123# CONFIG_ARCH_PNX4008 is not set 134# CONFIG_ARCH_PNX4008 is not set
124# CONFIG_ARCH_PXA is not set 135# CONFIG_ARCH_PXA is not set
125# CONFIG_ARCH_RPC is not set 136# CONFIG_ARCH_RPC is not set
@@ -127,15 +138,27 @@ CONFIG_ARCH_AT91=y
127# CONFIG_ARCH_S3C2410 is not set 138# CONFIG_ARCH_S3C2410 is not set
128# CONFIG_ARCH_SHARK is not set 139# CONFIG_ARCH_SHARK is not set
129# CONFIG_ARCH_LH7A40X is not set 140# CONFIG_ARCH_LH7A40X is not set
141# CONFIG_ARCH_DAVINCI is not set
130# CONFIG_ARCH_OMAP is not set 142# CONFIG_ARCH_OMAP is not set
131 143
132# 144#
145# Boot options
146#
147
148#
149# Power management
150#
151
152#
133# Atmel AT91 System-on-Chip 153# Atmel AT91 System-on-Chip
134# 154#
135# CONFIG_ARCH_AT91RM9200 is not set 155# CONFIG_ARCH_AT91RM9200 is not set
136# CONFIG_ARCH_AT91SAM9260 is not set 156# CONFIG_ARCH_AT91SAM9260 is not set
137# CONFIG_ARCH_AT91SAM9261 is not set 157# CONFIG_ARCH_AT91SAM9261 is not set
138CONFIG_ARCH_AT91SAM9263=y 158CONFIG_ARCH_AT91SAM9263=y
159# CONFIG_ARCH_AT91SAM9RL is not set
160# CONFIG_ARCH_AT91X40 is not set
161CONFIG_AT91_PMC_UNIT=y
139 162
140# 163#
141# AT91SAM9263 Board Type 164# AT91SAM9263 Board Type
@@ -152,6 +175,8 @@ CONFIG_MTD_AT91_DATAFLASH_CARD=y
152# AT91 Feature Selections 175# AT91 Feature Selections
153# 176#
154# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set 177# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set
178# CONFIG_ATMEL_TCLIB is not set
179CONFIG_AT91_TIMER_HZ=100
155 180
156# 181#
157# Processor Type 182# Processor Type
@@ -174,19 +199,19 @@ CONFIG_CPU_CP15_MMU=y
174# CONFIG_CPU_DCACHE_DISABLE is not set 199# CONFIG_CPU_DCACHE_DISABLE is not set
175# CONFIG_CPU_DCACHE_WRITETHROUGH is not set 200# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
176# CONFIG_CPU_CACHE_ROUND_ROBIN is not set 201# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
202# CONFIG_OUTER_CACHE is not set
177 203
178# 204#
179# Bus support 205# Bus support
180# 206#
181 207# CONFIG_PCI_SYSCALL is not set
182# 208# CONFIG_ARCH_SUPPORTS_MSI is not set
183# PCCARD (PCMCIA/CardBus) support
184#
185# CONFIG_PCCARD is not set 209# CONFIG_PCCARD is not set
186 210
187# 211#
188# Kernel Features 212# Kernel Features
189# 213#
214# CONFIG_TICK_ONESHOT is not set
190# CONFIG_PREEMPT is not set 215# CONFIG_PREEMPT is not set
191# CONFIG_NO_IDLE_HZ is not set 216# CONFIG_NO_IDLE_HZ is not set
192CONFIG_HZ=100 217CONFIG_HZ=100
@@ -199,8 +224,12 @@ CONFIG_FLATMEM_MANUAL=y
199CONFIG_FLATMEM=y 224CONFIG_FLATMEM=y
200CONFIG_FLAT_NODE_MEM_MAP=y 225CONFIG_FLAT_NODE_MEM_MAP=y
201# CONFIG_SPARSEMEM_STATIC is not set 226# CONFIG_SPARSEMEM_STATIC is not set
227# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
202CONFIG_SPLIT_PTLOCK_CPUS=4096 228CONFIG_SPLIT_PTLOCK_CPUS=4096
203# CONFIG_RESOURCES_64BIT is not set 229# CONFIG_RESOURCES_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y
232CONFIG_VIRT_TO_BUS=y
204# CONFIG_LEDS is not set 233# CONFIG_LEDS is not set
205CONFIG_ALIGNMENT_TRAP=y 234CONFIG_ALIGNMENT_TRAP=y
206 235
@@ -211,6 +240,7 @@ CONFIG_ZBOOT_ROM_TEXT=0x0
211CONFIG_ZBOOT_ROM_BSS=0x0 240CONFIG_ZBOOT_ROM_BSS=0x0
212CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw" 241CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw"
213# CONFIG_XIP_KERNEL is not set 242# CONFIG_XIP_KERNEL is not set
243# CONFIG_KEXEC is not set
214 244
215# 245#
216# Floating point emulation 246# Floating point emulation
@@ -236,7 +266,7 @@ CONFIG_BINFMT_ELF=y
236# Power management options 266# Power management options
237# 267#
238# CONFIG_PM is not set 268# CONFIG_PM is not set
239# CONFIG_APM is not set 269CONFIG_SUSPEND_UP_POSSIBLE=y
240 270
241# 271#
242# Networking 272# Networking
@@ -246,7 +276,6 @@ CONFIG_NET=y
246# 276#
247# Networking options 277# Networking options
248# 278#
249# CONFIG_NETDEBUG is not set
250CONFIG_PACKET=y 279CONFIG_PACKET=y
251# CONFIG_PACKET_MMAP is not set 280# CONFIG_PACKET_MMAP is not set
252CONFIG_UNIX=y 281CONFIG_UNIX=y
@@ -271,6 +300,7 @@ CONFIG_IP_PNP_RARP=y
271# CONFIG_INET_XFRM_MODE_TRANSPORT is not set 300# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
272# CONFIG_INET_XFRM_MODE_TUNNEL is not set 301# CONFIG_INET_XFRM_MODE_TUNNEL is not set
273# CONFIG_INET_XFRM_MODE_BEET is not set 302# CONFIG_INET_XFRM_MODE_BEET is not set
303# CONFIG_INET_LRO is not set
274# CONFIG_INET_DIAG is not set 304# CONFIG_INET_DIAG is not set
275# CONFIG_TCP_CONG_ADVANCED is not set 305# CONFIG_TCP_CONG_ADVANCED is not set
276CONFIG_TCP_CONG_CUBIC=y 306CONFIG_TCP_CONG_CUBIC=y
@@ -281,20 +311,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
281# CONFIG_INET6_TUNNEL is not set 311# CONFIG_INET6_TUNNEL is not set
282# CONFIG_NETWORK_SECMARK is not set 312# CONFIG_NETWORK_SECMARK is not set
283# CONFIG_NETFILTER is not set 313# CONFIG_NETFILTER is not set
284
285#
286# DCCP Configuration (EXPERIMENTAL)
287#
288# CONFIG_IP_DCCP is not set 314# CONFIG_IP_DCCP is not set
289
290#
291# SCTP Configuration (EXPERIMENTAL)
292#
293# CONFIG_IP_SCTP is not set 315# CONFIG_IP_SCTP is not set
294
295#
296# TIPC Configuration (EXPERIMENTAL)
297#
298# CONFIG_TIPC is not set 316# CONFIG_TIPC is not set
299# CONFIG_ATM is not set 317# CONFIG_ATM is not set
300# CONFIG_BRIDGE is not set 318# CONFIG_BRIDGE is not set
@@ -307,10 +325,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
307# CONFIG_LAPB is not set 325# CONFIG_LAPB is not set
308# CONFIG_ECONET is not set 326# CONFIG_ECONET is not set
309# CONFIG_WAN_ROUTER is not set 327# CONFIG_WAN_ROUTER is not set
310
311#
312# QoS and/or fair queueing
313#
314# CONFIG_NET_SCHED is not set 328# CONFIG_NET_SCHED is not set
315 329
316# 330#
@@ -320,7 +334,17 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
320# CONFIG_HAMRADIO is not set 334# CONFIG_HAMRADIO is not set
321# CONFIG_IRDA is not set 335# CONFIG_IRDA is not set
322# CONFIG_BT is not set 336# CONFIG_BT is not set
337# CONFIG_AF_RXRPC is not set
338
339#
340# Wireless
341#
342# CONFIG_CFG80211 is not set
343# CONFIG_WIRELESS_EXT is not set
344# CONFIG_MAC80211 is not set
323# CONFIG_IEEE80211 is not set 345# CONFIG_IEEE80211 is not set
346# CONFIG_RFKILL is not set
347# CONFIG_NET_9P is not set
324 348
325# 349#
326# Device Drivers 350# Device Drivers
@@ -329,20 +353,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
329# 353#
330# Generic Driver Options 354# Generic Driver Options
331# 355#
356CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
332CONFIG_STANDALONE=y 357CONFIG_STANDALONE=y
333CONFIG_PREVENT_FIRMWARE_BUILD=y 358CONFIG_PREVENT_FIRMWARE_BUILD=y
334# CONFIG_FW_LOADER is not set 359# CONFIG_FW_LOADER is not set
335# CONFIG_DEBUG_DRIVER is not set 360# CONFIG_DEBUG_DRIVER is not set
361# CONFIG_DEBUG_DEVRES is not set
336# CONFIG_SYS_HYPERVISOR is not set 362# CONFIG_SYS_HYPERVISOR is not set
337
338#
339# Connector - unified userspace <-> kernelspace linker
340#
341# CONFIG_CONNECTOR is not set 363# CONFIG_CONNECTOR is not set
342
343#
344# Memory Technology Devices (MTD)
345#
346CONFIG_MTD=y 364CONFIG_MTD=y
347# CONFIG_MTD_DEBUG is not set 365# CONFIG_MTD_DEBUG is not set
348# CONFIG_MTD_CONCAT is not set 366# CONFIG_MTD_CONCAT is not set
@@ -362,6 +380,7 @@ CONFIG_MTD_BLOCK=y
362# CONFIG_INFTL is not set 380# CONFIG_INFTL is not set
363# CONFIG_RFD_FTL is not set 381# CONFIG_RFD_FTL is not set
364# CONFIG_SSFDC is not set 382# CONFIG_SSFDC is not set
383# CONFIG_MTD_OOPS is not set
365 384
366# 385#
367# RAM/ROM/Flash chip drivers 386# RAM/ROM/Flash chip drivers
@@ -381,7 +400,6 @@ CONFIG_MTD_CFI_I2=y
381# CONFIG_MTD_RAM is not set 400# CONFIG_MTD_RAM is not set
382# CONFIG_MTD_ROM is not set 401# CONFIG_MTD_ROM is not set
383# CONFIG_MTD_ABSENT is not set 402# CONFIG_MTD_ABSENT is not set
384# CONFIG_MTD_OBSOLETE_CHIPS is not set
385 403
386# 404#
387# Mapping drivers for chip access 405# Mapping drivers for chip access
@@ -405,35 +423,24 @@ CONFIG_MTD_DATAFLASH=y
405# CONFIG_MTD_DOC2000 is not set 423# CONFIG_MTD_DOC2000 is not set
406# CONFIG_MTD_DOC2001 is not set 424# CONFIG_MTD_DOC2001 is not set
407# CONFIG_MTD_DOC2001PLUS is not set 425# CONFIG_MTD_DOC2001PLUS is not set
408
409#
410# NAND Flash Device Drivers
411#
412CONFIG_MTD_NAND=y 426CONFIG_MTD_NAND=y
413# CONFIG_MTD_NAND_VERIFY_WRITE is not set 427# CONFIG_MTD_NAND_VERIFY_WRITE is not set
414# CONFIG_MTD_NAND_ECC_SMC is not set 428# CONFIG_MTD_NAND_ECC_SMC is not set
429# CONFIG_MTD_NAND_MUSEUM_IDS is not set
415CONFIG_MTD_NAND_IDS=y 430CONFIG_MTD_NAND_IDS=y
416# CONFIG_MTD_NAND_DISKONCHIP is not set 431# CONFIG_MTD_NAND_DISKONCHIP is not set
417CONFIG_MTD_NAND_AT91=y 432CONFIG_MTD_NAND_AT91=y
418# CONFIG_MTD_NAND_NANDSIM is not set 433# CONFIG_MTD_NAND_NANDSIM is not set
419 434# CONFIG_MTD_NAND_PLATFORM is not set
420# 435# CONFIG_MTD_ALAUDA is not set
421# OneNAND Flash Device Drivers
422#
423# CONFIG_MTD_ONENAND is not set 436# CONFIG_MTD_ONENAND is not set
424 437
425# 438#
426# Parallel port support 439# UBI - Unsorted block images
427# 440#
441# CONFIG_MTD_UBI is not set
428# CONFIG_PARPORT is not set 442# CONFIG_PARPORT is not set
429 443CONFIG_BLK_DEV=y
430#
431# Plug and Play support
432#
433
434#
435# Block devices
436#
437# CONFIG_BLK_DEV_COW_COMMON is not set 444# CONFIG_BLK_DEV_COW_COMMON is not set
438CONFIG_BLK_DEV_LOOP=y 445CONFIG_BLK_DEV_LOOP=y
439# CONFIG_BLK_DEV_CRYPTOLOOP is not set 446# CONFIG_BLK_DEV_CRYPTOLOOP is not set
@@ -443,15 +450,18 @@ CONFIG_BLK_DEV_RAM=y
443CONFIG_BLK_DEV_RAM_COUNT=16 450CONFIG_BLK_DEV_RAM_COUNT=16
444CONFIG_BLK_DEV_RAM_SIZE=8192 451CONFIG_BLK_DEV_RAM_SIZE=8192
445CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 452CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
446CONFIG_BLK_DEV_INITRD=y
447# CONFIG_CDROM_PKTCDVD is not set 453# CONFIG_CDROM_PKTCDVD is not set
448# CONFIG_ATA_OVER_ETH is not set 454# CONFIG_ATA_OVER_ETH is not set
455CONFIG_MISC_DEVICES=y
456# CONFIG_EEPROM_93CX6 is not set
457CONFIG_ATMEL_SSC=y
449 458
450# 459#
451# SCSI device support 460# SCSI device support
452# 461#
453# CONFIG_RAID_ATTRS is not set 462# CONFIG_RAID_ATTRS is not set
454CONFIG_SCSI=y 463CONFIG_SCSI=y
464CONFIG_SCSI_DMA=y
455# CONFIG_SCSI_TGT is not set 465# CONFIG_SCSI_TGT is not set
456# CONFIG_SCSI_NETLINK is not set 466# CONFIG_SCSI_NETLINK is not set
457CONFIG_SCSI_PROC_FS=y 467CONFIG_SCSI_PROC_FS=y
@@ -473,6 +483,7 @@ CONFIG_SCSI_MULTI_LUN=y
473# CONFIG_SCSI_CONSTANTS is not set 483# CONFIG_SCSI_CONSTANTS is not set
474# CONFIG_SCSI_LOGGING is not set 484# CONFIG_SCSI_LOGGING is not set
475# CONFIG_SCSI_SCAN_ASYNC is not set 485# CONFIG_SCSI_SCAN_ASYNC is not set
486CONFIG_SCSI_WAIT_SCAN=m
476 487
477# 488#
478# SCSI Transports 489# SCSI Transports
@@ -480,80 +491,65 @@ CONFIG_SCSI_MULTI_LUN=y
480# CONFIG_SCSI_SPI_ATTRS is not set 491# CONFIG_SCSI_SPI_ATTRS is not set
481# CONFIG_SCSI_FC_ATTRS is not set 492# CONFIG_SCSI_FC_ATTRS is not set
482# CONFIG_SCSI_ISCSI_ATTRS is not set 493# CONFIG_SCSI_ISCSI_ATTRS is not set
483# CONFIG_SCSI_SAS_ATTRS is not set
484# CONFIG_SCSI_SAS_LIBSAS is not set 494# CONFIG_SCSI_SAS_LIBSAS is not set
485 495# CONFIG_SCSI_SRP_ATTRS is not set
486# 496CONFIG_SCSI_LOWLEVEL=y
487# SCSI low-level drivers
488#
489# CONFIG_ISCSI_TCP is not set 497# CONFIG_ISCSI_TCP is not set
490# CONFIG_SCSI_DEBUG is not set 498# CONFIG_SCSI_DEBUG is not set
491
492#
493# Serial ATA (prod) and Parallel ATA (experimental) drivers
494#
495# CONFIG_ATA is not set 499# CONFIG_ATA is not set
496
497#
498# Multi-device support (RAID and LVM)
499#
500# CONFIG_MD is not set 500# CONFIG_MD is not set
501
502#
503# Fusion MPT device support
504#
505# CONFIG_FUSION is not set
506
507#
508# IEEE 1394 (FireWire) support
509#
510
511#
512# I2O device support
513#
514
515#
516# Network device support
517#
518CONFIG_NETDEVICES=y 501CONFIG_NETDEVICES=y
502# CONFIG_NETDEVICES_MULTIQUEUE is not set
519# CONFIG_DUMMY is not set 503# CONFIG_DUMMY is not set
520# CONFIG_BONDING is not set 504# CONFIG_BONDING is not set
505# CONFIG_MACVLAN is not set
521# CONFIG_EQUALIZER is not set 506# CONFIG_EQUALIZER is not set
522# CONFIG_TUN is not set 507# CONFIG_TUN is not set
523 508# CONFIG_VETH is not set
524# 509CONFIG_PHYLIB=y
525# PHY device support 510
526# 511#
527# CONFIG_PHYLIB is not set 512# MII PHY device drivers
528 513#
529# 514# CONFIG_MARVELL_PHY is not set
530# Ethernet (10 or 100Mbit) 515# CONFIG_DAVICOM_PHY is not set
531# 516# CONFIG_QSEMI_PHY is not set
517# CONFIG_LXT_PHY is not set
518# CONFIG_CICADA_PHY is not set
519# CONFIG_VITESSE_PHY is not set
520# CONFIG_SMSC_PHY is not set
521# CONFIG_BROADCOM_PHY is not set
522# CONFIG_ICPLUS_PHY is not set
523# CONFIG_FIXED_PHY is not set
524# CONFIG_MDIO_BITBANG is not set
532CONFIG_NET_ETHERNET=y 525CONFIG_NET_ETHERNET=y
533CONFIG_MII=y 526CONFIG_MII=y
527CONFIG_MACB=y
528# CONFIG_AX88796 is not set
534# CONFIG_SMC91X is not set 529# CONFIG_SMC91X is not set
535# CONFIG_DM9000 is not set 530# CONFIG_DM9000 is not set
531# CONFIG_IBM_NEW_EMAC_ZMII is not set
532# CONFIG_IBM_NEW_EMAC_RGMII is not set
533# CONFIG_IBM_NEW_EMAC_TAH is not set
534# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
535# CONFIG_B44 is not set
536CONFIG_NETDEV_1000=y
537CONFIG_NETDEV_10000=y
536 538
537# 539#
538# Ethernet (1000 Mbit) 540# Wireless LAN
539#
540
541#
542# Ethernet (10000 Mbit)
543#
544
545#
546# Token Ring devices
547#
548
549#
550# Wireless LAN (non-hamradio)
551# 541#
552# CONFIG_NET_RADIO is not set 542# CONFIG_WLAN_PRE80211 is not set
543# CONFIG_WLAN_80211 is not set
553 544
554# 545#
555# Wan interfaces 546# USB Network Adapters
556# 547#
548# CONFIG_USB_CATC is not set
549# CONFIG_USB_KAWETH is not set
550# CONFIG_USB_PEGASUS is not set
551# CONFIG_USB_RTL8150 is not set
552# CONFIG_USB_USBNET is not set
557# CONFIG_WAN is not set 553# CONFIG_WAN is not set
558# CONFIG_PPP is not set 554# CONFIG_PPP is not set
559# CONFIG_SLIP is not set 555# CONFIG_SLIP is not set
@@ -561,10 +557,6 @@ CONFIG_MII=y
561# CONFIG_NETCONSOLE is not set 557# CONFIG_NETCONSOLE is not set
562# CONFIG_NETPOLL is not set 558# CONFIG_NETPOLL is not set
563# CONFIG_NET_POLL_CONTROLLER is not set 559# CONFIG_NET_POLL_CONTROLLER is not set
564
565#
566# ISDN subsystem
567#
568# CONFIG_ISDN is not set 560# CONFIG_ISDN is not set
569 561
570# 562#
@@ -572,6 +564,7 @@ CONFIG_MII=y
572# 564#
573CONFIG_INPUT=y 565CONFIG_INPUT=y
574# CONFIG_INPUT_FF_MEMLESS is not set 566# CONFIG_INPUT_FF_MEMLESS is not set
567# CONFIG_INPUT_POLLDEV is not set
575 568
576# 569#
577# Userland interfaces 570# Userland interfaces
@@ -581,20 +574,26 @@ CONFIG_INPUT_MOUSEDEV=y
581CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 574CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
582CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 575CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
583# CONFIG_INPUT_JOYDEV is not set 576# CONFIG_INPUT_JOYDEV is not set
584CONFIG_INPUT_TSDEV=y
585CONFIG_INPUT_TSDEV_SCREEN_X=240
586CONFIG_INPUT_TSDEV_SCREEN_Y=320
587CONFIG_INPUT_EVDEV=y 577CONFIG_INPUT_EVDEV=y
588# CONFIG_INPUT_EVBUG is not set 578# CONFIG_INPUT_EVBUG is not set
589 579
590# 580#
591# Input Device Drivers 581# Input Device Drivers
592# 582#
593# CONFIG_INPUT_KEYBOARD is not set 583CONFIG_INPUT_KEYBOARD=y
584# CONFIG_KEYBOARD_ATKBD is not set
585# CONFIG_KEYBOARD_SUNKBD is not set
586# CONFIG_KEYBOARD_LKKBD is not set
587# CONFIG_KEYBOARD_XTKBD is not set
588# CONFIG_KEYBOARD_NEWTON is not set
589# CONFIG_KEYBOARD_STOWAWAY is not set
590CONFIG_KEYBOARD_GPIO=y
594# CONFIG_INPUT_MOUSE is not set 591# CONFIG_INPUT_MOUSE is not set
595# CONFIG_INPUT_JOYSTICK is not set 592# CONFIG_INPUT_JOYSTICK is not set
593# CONFIG_INPUT_TABLET is not set
596CONFIG_INPUT_TOUCHSCREEN=y 594CONFIG_INPUT_TOUCHSCREEN=y
597CONFIG_TOUCHSCREEN_ADS7846=y 595CONFIG_TOUCHSCREEN_ADS7846=y
596# CONFIG_TOUCHSCREEN_FUJITSU is not set
598# CONFIG_TOUCHSCREEN_GUNZE is not set 597# CONFIG_TOUCHSCREEN_GUNZE is not set
599# CONFIG_TOUCHSCREEN_ELO is not set 598# CONFIG_TOUCHSCREEN_ELO is not set
600# CONFIG_TOUCHSCREEN_MTOUCH is not set 599# CONFIG_TOUCHSCREEN_MTOUCH is not set
@@ -603,6 +602,7 @@ CONFIG_TOUCHSCREEN_ADS7846=y
603# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 602# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
604# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 603# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
605# CONFIG_TOUCHSCREEN_UCB1400 is not set 604# CONFIG_TOUCHSCREEN_UCB1400 is not set
605# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
606# CONFIG_INPUT_MISC is not set 606# CONFIG_INPUT_MISC is not set
607 607
608# 608#
@@ -636,71 +636,47 @@ CONFIG_SERIAL_CORE_CONSOLE=y
636CONFIG_UNIX98_PTYS=y 636CONFIG_UNIX98_PTYS=y
637CONFIG_LEGACY_PTYS=y 637CONFIG_LEGACY_PTYS=y
638CONFIG_LEGACY_PTY_COUNT=256 638CONFIG_LEGACY_PTY_COUNT=256
639
640#
641# IPMI
642#
643# CONFIG_IPMI_HANDLER is not set 639# CONFIG_IPMI_HANDLER is not set
644
645#
646# Watchdog Cards
647#
648CONFIG_WATCHDOG=y
649CONFIG_WATCHDOG_NOWAYOUT=y
650
651#
652# Watchdog Device Drivers
653#
654# CONFIG_SOFT_WATCHDOG is not set
655
656#
657# USB-based Watchdog Cards
658#
659# CONFIG_USBPCWATCHDOG is not set
660CONFIG_HW_RANDOM=y 640CONFIG_HW_RANDOM=y
661# CONFIG_NVRAM is not set 641# CONFIG_NVRAM is not set
662# CONFIG_DTLK is not set
663# CONFIG_R3964 is not set 642# CONFIG_R3964 is not set
664# CONFIG_RAW_DRIVER is not set 643# CONFIG_RAW_DRIVER is not set
665
666#
667# TPM devices
668#
669# CONFIG_TCG_TPM is not set 644# CONFIG_TCG_TPM is not set
670
671#
672# I2C support
673#
674CONFIG_I2C=y 645CONFIG_I2C=y
646CONFIG_I2C_BOARDINFO=y
675CONFIG_I2C_CHARDEV=y 647CONFIG_I2C_CHARDEV=y
676 648
677# 649#
678# I2C Algorithms 650# I2C Algorithms
679# 651#
680# CONFIG_I2C_ALGOBIT is not set 652CONFIG_I2C_ALGOBIT=y
681# CONFIG_I2C_ALGOPCF is not set 653# CONFIG_I2C_ALGOPCF is not set
682# CONFIG_I2C_ALGOPCA is not set 654# CONFIG_I2C_ALGOPCA is not set
683 655
684# 656#
685# I2C Hardware Bus support 657# I2C Hardware Bus support
686# 658#
687CONFIG_I2C_AT91=y 659CONFIG_I2C_GPIO=y
688# CONFIG_I2C_OCORES is not set 660# CONFIG_I2C_OCORES is not set
689# CONFIG_I2C_PARPORT_LIGHT is not set 661# CONFIG_I2C_PARPORT_LIGHT is not set
662# CONFIG_I2C_SIMTEC is not set
663# CONFIG_I2C_TAOS_EVM is not set
690# CONFIG_I2C_STUB is not set 664# CONFIG_I2C_STUB is not set
665# CONFIG_I2C_TINY_USB is not set
691# CONFIG_I2C_PCA is not set 666# CONFIG_I2C_PCA is not set
692# CONFIG_I2C_PCA_ISA is not set
693 667
694# 668#
695# Miscellaneous I2C Chip support 669# Miscellaneous I2C Chip support
696# 670#
697# CONFIG_SENSORS_DS1337 is not set 671# CONFIG_SENSORS_DS1337 is not set
698# CONFIG_SENSORS_DS1374 is not set 672# CONFIG_SENSORS_DS1374 is not set
673# CONFIG_DS1682 is not set
699# CONFIG_SENSORS_EEPROM is not set 674# CONFIG_SENSORS_EEPROM is not set
700# CONFIG_SENSORS_PCF8574 is not set 675# CONFIG_SENSORS_PCF8574 is not set
701# CONFIG_SENSORS_PCA9539 is not set 676# CONFIG_SENSORS_PCA9539 is not set
702# CONFIG_SENSORS_PCF8591 is not set 677# CONFIG_SENSORS_PCF8591 is not set
703# CONFIG_SENSORS_MAX6875 is not set 678# CONFIG_SENSORS_MAX6875 is not set
679# CONFIG_SENSORS_TSL2550 is not set
704# CONFIG_I2C_DEBUG_CORE is not set 680# CONFIG_I2C_DEBUG_CORE is not set
705# CONFIG_I2C_DEBUG_ALGO is not set 681# CONFIG_I2C_DEBUG_ALGO is not set
706# CONFIG_I2C_DEBUG_BUS is not set 682# CONFIG_I2C_DEBUG_BUS is not set
@@ -722,61 +698,80 @@ CONFIG_SPI_ATMEL=y
722# 698#
723# SPI Protocol Masters 699# SPI Protocol Masters
724# 700#
725 701# CONFIG_SPI_AT25 is not set
726# 702# CONFIG_SPI_SPIDEV is not set
727# Dallas's 1-wire bus 703# CONFIG_SPI_TLE62X0 is not set
728#
729# CONFIG_W1 is not set 704# CONFIG_W1 is not set
730 705# CONFIG_POWER_SUPPLY is not set
731#
732# Hardware Monitoring support
733#
734# CONFIG_HWMON is not set 706# CONFIG_HWMON is not set
735# CONFIG_HWMON_VID is not set 707CONFIG_WATCHDOG=y
708CONFIG_WATCHDOG_NOWAYOUT=y
736 709
737# 710#
738# Misc devices 711# Watchdog Device Drivers
739# 712#
740# CONFIG_TIFM_CORE is not set 713# CONFIG_SOFT_WATCHDOG is not set
714CONFIG_AT91SAM9_WATCHDOG=y
741 715
742# 716#
743# LED devices 717# USB-based Watchdog Cards
744# 718#
745# CONFIG_NEW_LEDS is not set 719# CONFIG_USBPCWATCHDOG is not set
746 720
747# 721#
748# LED drivers 722# Sonics Silicon Backplane
749# 723#
724CONFIG_SSB_POSSIBLE=y
725# CONFIG_SSB is not set
750 726
751# 727#
752# LED Triggers 728# Multifunction device drivers
753# 729#
730# CONFIG_MFD_SM501 is not set
754 731
755# 732#
756# Multimedia devices 733# Multimedia devices
757# 734#
758# CONFIG_VIDEO_DEV is not set 735# CONFIG_VIDEO_DEV is not set
759 736# CONFIG_DVB_CORE is not set
760# 737# CONFIG_DAB is not set
761# Digital Video Broadcasting Devices
762#
763# CONFIG_DVB is not set
764# CONFIG_USB_DABUSB is not set
765 738
766# 739#
767# Graphics support 740# Graphics support
768# 741#
769# CONFIG_FIRMWARE_EDID is not set 742# CONFIG_VGASTATE is not set
743# CONFIG_VIDEO_OUTPUT_CONTROL is not set
770CONFIG_FB=y 744CONFIG_FB=y
771# CONFIG_FB_CFB_FILLRECT is not set 745# CONFIG_FIRMWARE_EDID is not set
772# CONFIG_FB_CFB_COPYAREA is not set 746# CONFIG_FB_DDC is not set
773# CONFIG_FB_CFB_IMAGEBLIT is not set 747CONFIG_FB_CFB_FILLRECT=y
748CONFIG_FB_CFB_COPYAREA=y
749CONFIG_FB_CFB_IMAGEBLIT=y
750# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
751# CONFIG_FB_SYS_FILLRECT is not set
752# CONFIG_FB_SYS_COPYAREA is not set
753# CONFIG_FB_SYS_IMAGEBLIT is not set
754# CONFIG_FB_SYS_FOPS is not set
755CONFIG_FB_DEFERRED_IO=y
756# CONFIG_FB_SVGALIB is not set
774# CONFIG_FB_MACMODES is not set 757# CONFIG_FB_MACMODES is not set
775# CONFIG_FB_BACKLIGHT is not set 758# CONFIG_FB_BACKLIGHT is not set
776# CONFIG_FB_MODE_HELPERS is not set 759# CONFIG_FB_MODE_HELPERS is not set
777# CONFIG_FB_TILEBLITTING is not set 760# CONFIG_FB_TILEBLITTING is not set
761
762#
763# Frame buffer hardware drivers
764#
765# CONFIG_FB_S1D15605 is not set
778# CONFIG_FB_S1D13XXX is not set 766# CONFIG_FB_S1D13XXX is not set
767CONFIG_FB_ATMEL=y
779# CONFIG_FB_VIRTUAL is not set 768# CONFIG_FB_VIRTUAL is not set
769# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
770
771#
772# Display device support
773#
774# CONFIG_DISPLAY_SUPPORT is not set
780 775
781# 776#
782# Console display driver support 777# Console display driver support
@@ -784,26 +779,28 @@ CONFIG_FB=y
784# CONFIG_VGA_CONSOLE is not set 779# CONFIG_VGA_CONSOLE is not set
785CONFIG_DUMMY_CONSOLE=y 780CONFIG_DUMMY_CONSOLE=y
786# CONFIG_FRAMEBUFFER_CONSOLE is not set 781# CONFIG_FRAMEBUFFER_CONSOLE is not set
787
788#
789# Logo configuration
790#
791# CONFIG_LOGO is not set 782# CONFIG_LOGO is not set
792# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
793 783
794# 784#
795# Sound 785# Sound
796# 786#
797# CONFIG_SOUND is not set 787# CONFIG_SOUND is not set
788CONFIG_HID_SUPPORT=y
789CONFIG_HID=y
790# CONFIG_HID_DEBUG is not set
791# CONFIG_HIDRAW is not set
798 792
799# 793#
800# HID Devices 794# USB Input Devices
801# 795#
802CONFIG_HID=y 796# CONFIG_USB_HID is not set
803 797
804# 798#
805# USB support 799# USB HID Boot Protocol drivers
806# 800#
801# CONFIG_USB_KBD is not set
802# CONFIG_USB_MOUSE is not set
803CONFIG_USB_SUPPORT=y
807CONFIG_USB_ARCH_HAS_HCD=y 804CONFIG_USB_ARCH_HAS_HCD=y
808CONFIG_USB_ARCH_HAS_OHCI=y 805CONFIG_USB_ARCH_HAS_OHCI=y
809# CONFIG_USB_ARCH_HAS_EHCI is not set 806# CONFIG_USB_ARCH_HAS_EHCI is not set
@@ -814,9 +811,8 @@ CONFIG_USB=y
814# Miscellaneous USB options 811# Miscellaneous USB options
815# 812#
816CONFIG_USB_DEVICEFS=y 813CONFIG_USB_DEVICEFS=y
817# CONFIG_USB_BANDWIDTH is not set 814CONFIG_USB_DEVICE_CLASS=y
818# CONFIG_USB_DYNAMIC_MINORS is not set 815# CONFIG_USB_DYNAMIC_MINORS is not set
819# CONFIG_USB_MULTITHREAD_PROBE is not set
820# CONFIG_USB_OTG is not set 816# CONFIG_USB_OTG is not set
821 817
822# 818#
@@ -824,9 +820,11 @@ CONFIG_USB_DEVICEFS=y
824# 820#
825# CONFIG_USB_ISP116X_HCD is not set 821# CONFIG_USB_ISP116X_HCD is not set
826CONFIG_USB_OHCI_HCD=y 822CONFIG_USB_OHCI_HCD=y
827# CONFIG_USB_OHCI_BIG_ENDIAN is not set 823# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
824# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
828CONFIG_USB_OHCI_LITTLE_ENDIAN=y 825CONFIG_USB_OHCI_LITTLE_ENDIAN=y
829# CONFIG_USB_SL811_HCD is not set 826# CONFIG_USB_SL811_HCD is not set
827# CONFIG_USB_R8A66597_HCD is not set
830 828
831# 829#
832# USB Device Class drivers 830# USB Device Class drivers
@@ -845,6 +843,7 @@ CONFIG_USB_STORAGE=y
845# CONFIG_USB_STORAGE_DEBUG is not set 843# CONFIG_USB_STORAGE_DEBUG is not set
846# CONFIG_USB_STORAGE_DATAFAB is not set 844# CONFIG_USB_STORAGE_DATAFAB is not set
847# CONFIG_USB_STORAGE_FREECOM is not set 845# CONFIG_USB_STORAGE_FREECOM is not set
846# CONFIG_USB_STORAGE_ISD200 is not set
848# CONFIG_USB_STORAGE_DPCM is not set 847# CONFIG_USB_STORAGE_DPCM is not set
849# CONFIG_USB_STORAGE_USBAT is not set 848# CONFIG_USB_STORAGE_USBAT is not set
850# CONFIG_USB_STORAGE_SDDR09 is not set 849# CONFIG_USB_STORAGE_SDDR09 is not set
@@ -856,43 +855,10 @@ CONFIG_USB_STORAGE=y
856# CONFIG_USB_LIBUSUAL is not set 855# CONFIG_USB_LIBUSUAL is not set
857 856
858# 857#
859# USB Input Devices
860#
861# CONFIG_USB_HID is not set
862
863#
864# USB HID Boot Protocol drivers
865#
866# CONFIG_USB_KBD is not set
867# CONFIG_USB_MOUSE is not set
868# CONFIG_USB_AIPTEK is not set
869# CONFIG_USB_WACOM is not set
870# CONFIG_USB_ACECAD is not set
871# CONFIG_USB_KBTAB is not set
872# CONFIG_USB_POWERMATE is not set
873# CONFIG_USB_TOUCHSCREEN is not set
874# CONFIG_USB_YEALINK is not set
875# CONFIG_USB_XPAD is not set
876# CONFIG_USB_ATI_REMOTE is not set
877# CONFIG_USB_ATI_REMOTE2 is not set
878# CONFIG_USB_KEYSPAN_REMOTE is not set
879# CONFIG_USB_APPLETOUCH is not set
880
881#
882# USB Imaging devices 858# USB Imaging devices
883# 859#
884# CONFIG_USB_MDC800 is not set 860# CONFIG_USB_MDC800 is not set
885# CONFIG_USB_MICROTEK is not set 861# CONFIG_USB_MICROTEK is not set
886
887#
888# USB Network Adapters
889#
890# CONFIG_USB_CATC is not set
891# CONFIG_USB_KAWETH is not set
892# CONFIG_USB_PEGASUS is not set
893# CONFIG_USB_RTL8150 is not set
894# CONFIG_USB_USBNET_MII is not set
895# CONFIG_USB_USBNET is not set
896CONFIG_USB_MON=y 862CONFIG_USB_MON=y
897 863
898# 864#
@@ -914,6 +880,7 @@ CONFIG_USB_MON=y
914# CONFIG_USB_RIO500 is not set 880# CONFIG_USB_RIO500 is not set
915# CONFIG_USB_LEGOTOWER is not set 881# CONFIG_USB_LEGOTOWER is not set
916# CONFIG_USB_LCD is not set 882# CONFIG_USB_LCD is not set
883# CONFIG_USB_BERRY_CHARGE is not set
917# CONFIG_USB_LED is not set 884# CONFIG_USB_LED is not set
918# CONFIG_USB_CYPRESS_CY7C63 is not set 885# CONFIG_USB_CYPRESS_CY7C63 is not set
919# CONFIG_USB_CYTHERM is not set 886# CONFIG_USB_CYTHERM is not set
@@ -923,6 +890,7 @@ CONFIG_USB_MON=y
923# CONFIG_USB_APPLEDISPLAY is not set 890# CONFIG_USB_APPLEDISPLAY is not set
924# CONFIG_USB_LD is not set 891# CONFIG_USB_LD is not set
925# CONFIG_USB_TRANCEVIBRATOR is not set 892# CONFIG_USB_TRANCEVIBRATOR is not set
893# CONFIG_USB_IOWARRIOR is not set
926# CONFIG_USB_TEST is not set 894# CONFIG_USB_TEST is not set
927 895
928# 896#
@@ -933,13 +901,19 @@ CONFIG_USB_MON=y
933# USB Gadget Support 901# USB Gadget Support
934# 902#
935CONFIG_USB_GADGET=y 903CONFIG_USB_GADGET=y
904# CONFIG_USB_GADGET_DEBUG is not set
936# CONFIG_USB_GADGET_DEBUG_FILES is not set 905# CONFIG_USB_GADGET_DEBUG_FILES is not set
937CONFIG_USB_GADGET_SELECTED=y 906CONFIG_USB_GADGET_SELECTED=y
907# CONFIG_USB_GADGET_AMD5536UDC is not set
908# CONFIG_USB_GADGET_ATMEL_USBA is not set
909# CONFIG_USB_GADGET_FSL_USB2 is not set
938# CONFIG_USB_GADGET_NET2280 is not set 910# CONFIG_USB_GADGET_NET2280 is not set
939# CONFIG_USB_GADGET_PXA2XX is not set 911# CONFIG_USB_GADGET_PXA2XX is not set
912# CONFIG_USB_GADGET_M66592 is not set
940# CONFIG_USB_GADGET_GOKU is not set 913# CONFIG_USB_GADGET_GOKU is not set
941# CONFIG_USB_GADGET_LH7A40X is not set 914# CONFIG_USB_GADGET_LH7A40X is not set
942# CONFIG_USB_GADGET_OMAP is not set 915# CONFIG_USB_GADGET_OMAP is not set
916# CONFIG_USB_GADGET_S3C2410 is not set
943CONFIG_USB_GADGET_AT91=y 917CONFIG_USB_GADGET_AT91=y
944CONFIG_USB_AT91=y 918CONFIG_USB_AT91=y
945# CONFIG_USB_GADGET_DUMMY_HCD is not set 919# CONFIG_USB_GADGET_DUMMY_HCD is not set
@@ -951,21 +925,73 @@ CONFIG_USB_FILE_STORAGE=m
951# CONFIG_USB_FILE_STORAGE_TEST is not set 925# CONFIG_USB_FILE_STORAGE_TEST is not set
952CONFIG_USB_G_SERIAL=m 926CONFIG_USB_G_SERIAL=m
953# CONFIG_USB_MIDI_GADGET is not set 927# CONFIG_USB_MIDI_GADGET is not set
928CONFIG_MMC=y
929# CONFIG_MMC_DEBUG is not set
930# CONFIG_MMC_UNSAFE_RESUME is not set
954 931
955# 932#
956# MMC/SD Card support 933# MMC/SD Card Drivers
957# 934#
958CONFIG_MMC=y
959# CONFIG_MMC_DEBUG is not set
960CONFIG_MMC_BLOCK=y 935CONFIG_MMC_BLOCK=y
961CONFIG_MMC_AT91=m 936CONFIG_MMC_BLOCK_BOUNCE=y
962# CONFIG_MMC_TIFM_SD is not set 937# CONFIG_SDIO_UART is not set
963 938
964# 939#
965# Real Time Clock 940# MMC/SD Host Controller Drivers
966# 941#
942CONFIG_MMC_AT91=m
943# CONFIG_MMC_SPI is not set
944# CONFIG_NEW_LEDS is not set
967CONFIG_RTC_LIB=y 945CONFIG_RTC_LIB=y
968# CONFIG_RTC_CLASS is not set 946CONFIG_RTC_CLASS=y
947CONFIG_RTC_HCTOSYS=y
948CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
949# CONFIG_RTC_DEBUG is not set
950
951#
952# RTC interfaces
953#
954CONFIG_RTC_INTF_SYSFS=y
955CONFIG_RTC_INTF_PROC=y
956CONFIG_RTC_INTF_DEV=y
957# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
958# CONFIG_RTC_DRV_TEST is not set
959
960#
961# I2C RTC drivers
962#
963# CONFIG_RTC_DRV_DS1307 is not set
964# CONFIG_RTC_DRV_DS1374 is not set
965# CONFIG_RTC_DRV_DS1672 is not set
966# CONFIG_RTC_DRV_MAX6900 is not set
967# CONFIG_RTC_DRV_RS5C372 is not set
968# CONFIG_RTC_DRV_ISL1208 is not set
969# CONFIG_RTC_DRV_X1205 is not set
970# CONFIG_RTC_DRV_PCF8563 is not set
971# CONFIG_RTC_DRV_PCF8583 is not set
972# CONFIG_RTC_DRV_M41T80 is not set
973
974#
975# SPI RTC drivers
976#
977# CONFIG_RTC_DRV_RS5C348 is not set
978# CONFIG_RTC_DRV_MAX6902 is not set
979
980#
981# Platform RTC drivers
982#
983# CONFIG_RTC_DRV_CMOS is not set
984# CONFIG_RTC_DRV_DS1553 is not set
985# CONFIG_RTC_DRV_STK17TA8 is not set
986# CONFIG_RTC_DRV_DS1742 is not set
987# CONFIG_RTC_DRV_M48T86 is not set
988# CONFIG_RTC_DRV_M48T59 is not set
989# CONFIG_RTC_DRV_V3020 is not set
990
991#
992# on-CPU RTC drivers
993#
994CONFIG_RTC_DRV_AT91SAM9=y
969 995
970# 996#
971# File systems 997# File systems
@@ -1016,7 +1042,6 @@ CONFIG_SYSFS=y
1016CONFIG_TMPFS=y 1042CONFIG_TMPFS=y
1017# CONFIG_TMPFS_POSIX_ACL is not set 1043# CONFIG_TMPFS_POSIX_ACL is not set
1018# CONFIG_HUGETLB_PAGE is not set 1044# CONFIG_HUGETLB_PAGE is not set
1019CONFIG_RAMFS=y
1020# CONFIG_CONFIGFS_FS is not set 1045# CONFIG_CONFIGFS_FS is not set
1021 1046
1022# 1047#
@@ -1032,10 +1057,12 @@ CONFIG_RAMFS=y
1032CONFIG_JFFS2_FS=y 1057CONFIG_JFFS2_FS=y
1033CONFIG_JFFS2_FS_DEBUG=0 1058CONFIG_JFFS2_FS_DEBUG=0
1034CONFIG_JFFS2_FS_WRITEBUFFER=y 1059CONFIG_JFFS2_FS_WRITEBUFFER=y
1060# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1035# CONFIG_JFFS2_SUMMARY is not set 1061# CONFIG_JFFS2_SUMMARY is not set
1036# CONFIG_JFFS2_FS_XATTR is not set 1062# CONFIG_JFFS2_FS_XATTR is not set
1037# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 1063# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1038CONFIG_JFFS2_ZLIB=y 1064CONFIG_JFFS2_ZLIB=y
1065# CONFIG_JFFS2_LZO is not set
1039CONFIG_JFFS2_RTIME=y 1066CONFIG_JFFS2_RTIME=y
1040# CONFIG_JFFS2_RUBIN is not set 1067# CONFIG_JFFS2_RUBIN is not set
1041CONFIG_CRAMFS=y 1068CONFIG_CRAMFS=y
@@ -1044,10 +1071,7 @@ CONFIG_CRAMFS=y
1044# CONFIG_QNX4FS_FS is not set 1071# CONFIG_QNX4FS_FS is not set
1045# CONFIG_SYSV_FS is not set 1072# CONFIG_SYSV_FS is not set
1046# CONFIG_UFS_FS is not set 1073# CONFIG_UFS_FS is not set
1047 1074CONFIG_NETWORK_FILESYSTEMS=y
1048#
1049# Network File Systems
1050#
1051CONFIG_NFS_FS=y 1075CONFIG_NFS_FS=y
1052# CONFIG_NFS_V3 is not set 1076# CONFIG_NFS_V3 is not set
1053# CONFIG_NFS_V4 is not set 1077# CONFIG_NFS_V4 is not set
@@ -1057,6 +1081,7 @@ CONFIG_ROOT_NFS=y
1057CONFIG_LOCKD=y 1081CONFIG_LOCKD=y
1058CONFIG_NFS_COMMON=y 1082CONFIG_NFS_COMMON=y
1059CONFIG_SUNRPC=y 1083CONFIG_SUNRPC=y
1084# CONFIG_SUNRPC_BIND34 is not set
1060# CONFIG_RPCSEC_GSS_KRB5 is not set 1085# CONFIG_RPCSEC_GSS_KRB5 is not set
1061# CONFIG_RPCSEC_GSS_SPKM3 is not set 1086# CONFIG_RPCSEC_GSS_SPKM3 is not set
1062# CONFIG_SMB_FS is not set 1087# CONFIG_SMB_FS is not set
@@ -1064,17 +1089,12 @@ CONFIG_SUNRPC=y
1064# CONFIG_NCP_FS is not set 1089# CONFIG_NCP_FS is not set
1065# CONFIG_CODA_FS is not set 1090# CONFIG_CODA_FS is not set
1066# CONFIG_AFS_FS is not set 1091# CONFIG_AFS_FS is not set
1067# CONFIG_9P_FS is not set
1068 1092
1069# 1093#
1070# Partition Types 1094# Partition Types
1071# 1095#
1072# CONFIG_PARTITION_ADVANCED is not set 1096# CONFIG_PARTITION_ADVANCED is not set
1073CONFIG_MSDOS_PARTITION=y 1097CONFIG_MSDOS_PARTITION=y
1074
1075#
1076# Native Language Support
1077#
1078CONFIG_NLS=y 1098CONFIG_NLS=y
1079CONFIG_NLS_DEFAULT="iso8859-1" 1099CONFIG_NLS_DEFAULT="iso8859-1"
1080CONFIG_NLS_CODEPAGE_437=y 1100CONFIG_NLS_CODEPAGE_437=y
@@ -1115,36 +1135,35 @@ CONFIG_NLS_ISO8859_1=y
1115# CONFIG_NLS_KOI8_R is not set 1135# CONFIG_NLS_KOI8_R is not set
1116# CONFIG_NLS_KOI8_U is not set 1136# CONFIG_NLS_KOI8_U is not set
1117# CONFIG_NLS_UTF8 is not set 1137# CONFIG_NLS_UTF8 is not set
1118
1119#
1120# Distributed Lock Manager
1121#
1122# CONFIG_DLM is not set 1138# CONFIG_DLM is not set
1123 1139CONFIG_INSTRUMENTATION=y
1124#
1125# Profiling support
1126#
1127# CONFIG_PROFILING is not set 1140# CONFIG_PROFILING is not set
1141# CONFIG_MARKERS is not set
1128 1142
1129# 1143#
1130# Kernel hacking 1144# Kernel hacking
1131# 1145#
1132# CONFIG_PRINTK_TIME is not set 1146# CONFIG_PRINTK_TIME is not set
1147CONFIG_ENABLE_WARN_DEPRECATED=y
1133CONFIG_ENABLE_MUST_CHECK=y 1148CONFIG_ENABLE_MUST_CHECK=y
1134# CONFIG_MAGIC_SYSRQ is not set 1149# CONFIG_MAGIC_SYSRQ is not set
1135# CONFIG_UNUSED_SYMBOLS is not set 1150# CONFIG_UNUSED_SYMBOLS is not set
1136# CONFIG_DEBUG_FS is not set 1151# CONFIG_DEBUG_FS is not set
1137# CONFIG_HEADERS_CHECK is not set 1152# CONFIG_HEADERS_CHECK is not set
1138CONFIG_DEBUG_KERNEL=y 1153CONFIG_DEBUG_KERNEL=y
1139CONFIG_LOG_BUF_SHIFT=14 1154# CONFIG_DEBUG_SHIRQ is not set
1140CONFIG_DETECT_SOFTLOCKUP=y 1155CONFIG_DETECT_SOFTLOCKUP=y
1156CONFIG_SCHED_DEBUG=y
1141# CONFIG_SCHEDSTATS is not set 1157# CONFIG_SCHEDSTATS is not set
1158# CONFIG_TIMER_STATS is not set
1142# CONFIG_DEBUG_SLAB is not set 1159# CONFIG_DEBUG_SLAB is not set
1143# CONFIG_DEBUG_RT_MUTEXES is not set 1160# CONFIG_DEBUG_RT_MUTEXES is not set
1144# CONFIG_RT_MUTEX_TESTER is not set 1161# CONFIG_RT_MUTEX_TESTER is not set
1145# CONFIG_DEBUG_SPINLOCK is not set 1162# CONFIG_DEBUG_SPINLOCK is not set
1146# CONFIG_DEBUG_MUTEXES is not set 1163# CONFIG_DEBUG_MUTEXES is not set
1147# CONFIG_DEBUG_RWSEMS is not set 1164# CONFIG_DEBUG_LOCK_ALLOC is not set
1165# CONFIG_PROVE_LOCKING is not set
1166# CONFIG_LOCK_STAT is not set
1148# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1167# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1149# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1168# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1150# CONFIG_DEBUG_KOBJECT is not set 1169# CONFIG_DEBUG_KOBJECT is not set
@@ -1152,9 +1171,13 @@ CONFIG_DEBUG_BUGVERBOSE=y
1152# CONFIG_DEBUG_INFO is not set 1171# CONFIG_DEBUG_INFO is not set
1153# CONFIG_DEBUG_VM is not set 1172# CONFIG_DEBUG_VM is not set
1154# CONFIG_DEBUG_LIST is not set 1173# CONFIG_DEBUG_LIST is not set
1174# CONFIG_DEBUG_SG is not set
1155CONFIG_FRAME_POINTER=y 1175CONFIG_FRAME_POINTER=y
1156CONFIG_FORCED_INLINING=y 1176CONFIG_FORCED_INLINING=y
1177# CONFIG_BOOT_PRINTK_DELAY is not set
1157# CONFIG_RCU_TORTURE_TEST is not set 1178# CONFIG_RCU_TORTURE_TEST is not set
1179# CONFIG_FAULT_INJECTION is not set
1180# CONFIG_SAMPLES is not set
1158CONFIG_DEBUG_USER=y 1181CONFIG_DEBUG_USER=y
1159# CONFIG_DEBUG_ERRORS is not set 1182# CONFIG_DEBUG_ERRORS is not set
1160CONFIG_DEBUG_LL=y 1183CONFIG_DEBUG_LL=y
@@ -1165,10 +1188,7 @@ CONFIG_DEBUG_LL=y
1165# 1188#
1166# CONFIG_KEYS is not set 1189# CONFIG_KEYS is not set
1167# CONFIG_SECURITY is not set 1190# CONFIG_SECURITY is not set
1168 1191# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1169#
1170# Cryptographic options
1171#
1172# CONFIG_CRYPTO is not set 1192# CONFIG_CRYPTO is not set
1173 1193
1174# 1194#
@@ -1177,8 +1197,13 @@ CONFIG_DEBUG_LL=y
1177CONFIG_BITREVERSE=y 1197CONFIG_BITREVERSE=y
1178# CONFIG_CRC_CCITT is not set 1198# CONFIG_CRC_CCITT is not set
1179# CONFIG_CRC16 is not set 1199# CONFIG_CRC16 is not set
1200# CONFIG_CRC_ITU_T is not set
1180CONFIG_CRC32=y 1201CONFIG_CRC32=y
1202# CONFIG_CRC7 is not set
1181# CONFIG_LIBCRC32C is not set 1203# CONFIG_LIBCRC32C is not set
1182CONFIG_ZLIB_INFLATE=y 1204CONFIG_ZLIB_INFLATE=y
1205CONFIG_ZLIB_DEFLATE=y
1183CONFIG_PLIST=y 1206CONFIG_PLIST=y
1184CONFIG_IOMAP_COPY=y 1207CONFIG_HAS_IOMEM=y
1208CONFIG_HAS_IOPORT=y
1209CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/at91sam9rlek_defconfig b/arch/arm/configs/at91sam9rlek_defconfig
index fbe8b3049343..98e6746d02be 100644
--- a/arch/arm/configs/at91sam9rlek_defconfig
+++ b/arch/arm/configs/at91sam9rlek_defconfig
@@ -1,15 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.21 3# Linux kernel version: 2.6.24-rc7
4# Mon May 7 16:30:40 2007 4# Tue Jan 8 22:24:14 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y 8CONFIG_GENERIC_GPIO=y
9# CONFIG_GENERIC_TIME is not set 9# CONFIG_GENERIC_TIME is not set
10# CONFIG_GENERIC_CLOCKEVENTS is not set
10CONFIG_MMU=y 11CONFIG_MMU=y
11# CONFIG_NO_IOPORT is not set 12# CONFIG_NO_IOPORT is not set
12CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
13CONFIG_TRACE_IRQFLAGS_SUPPORT=y 16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
14CONFIG_HARDIRQS_SW_RESEND=y 17CONFIG_HARDIRQS_SW_RESEND=y
15CONFIG_GENERIC_IRQ_PROBE=y 18CONFIG_GENERIC_IRQ_PROBE=y
@@ -23,27 +26,28 @@ CONFIG_VECTORS_BASE=0xffff0000
23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
24 27
25# 28#
26# Code maturity level options 29# General setup
27# 30#
28CONFIG_EXPERIMENTAL=y 31CONFIG_EXPERIMENTAL=y
29CONFIG_BROKEN_ON_SMP=y 32CONFIG_BROKEN_ON_SMP=y
30CONFIG_INIT_ENV_ARG_LIMIT=32 33CONFIG_INIT_ENV_ARG_LIMIT=32
31
32#
33# General setup
34#
35CONFIG_LOCALVERSION="" 34CONFIG_LOCALVERSION=""
36# CONFIG_LOCALVERSION_AUTO is not set 35# CONFIG_LOCALVERSION_AUTO is not set
37# CONFIG_SWAP is not set 36# CONFIG_SWAP is not set
38CONFIG_SYSVIPC=y 37CONFIG_SYSVIPC=y
39# CONFIG_IPC_NS is not set
40CONFIG_SYSVIPC_SYSCTL=y 38CONFIG_SYSVIPC_SYSCTL=y
41# CONFIG_POSIX_MQUEUE is not set 39# CONFIG_POSIX_MQUEUE is not set
42# CONFIG_BSD_PROCESS_ACCT is not set 40# CONFIG_BSD_PROCESS_ACCT is not set
43# CONFIG_TASKSTATS is not set 41# CONFIG_TASKSTATS is not set
44# CONFIG_UTS_NS is not set 42# CONFIG_USER_NS is not set
43# CONFIG_PID_NS is not set
45# CONFIG_AUDIT is not set 44# CONFIG_AUDIT is not set
46# CONFIG_IKCONFIG is not set 45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47# CONFIG_CGROUPS is not set
48CONFIG_FAIR_GROUP_SCHED=y
49CONFIG_FAIR_USER_SCHED=y
50# CONFIG_FAIR_CGROUP_SCHED is not set
47CONFIG_SYSFS_DEPRECATED=y 51CONFIG_SYSFS_DEPRECATED=y
48# CONFIG_RELAY is not set 52# CONFIG_RELAY is not set
49CONFIG_BLK_DEV_INITRD=y 53CONFIG_BLK_DEV_INITRD=y
@@ -62,32 +66,30 @@ CONFIG_BUG=y
62CONFIG_ELF_CORE=y 66CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y 67CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y 68CONFIG_FUTEX=y
69CONFIG_ANON_INODES=y
65CONFIG_EPOLL=y 70CONFIG_EPOLL=y
71CONFIG_SIGNALFD=y
72CONFIG_EVENTFD=y
66CONFIG_SHMEM=y 73CONFIG_SHMEM=y
67CONFIG_SLAB=y
68CONFIG_VM_EVENT_COUNTERS=y 74CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_SLAB=y
76# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set
78CONFIG_SLABINFO=y
69CONFIG_RT_MUTEXES=y 79CONFIG_RT_MUTEXES=y
70# CONFIG_TINY_SHMEM is not set 80# CONFIG_TINY_SHMEM is not set
71CONFIG_BASE_SMALL=0 81CONFIG_BASE_SMALL=0
72# CONFIG_SLOB is not set
73
74#
75# Loadable module support
76#
77CONFIG_MODULES=y 82CONFIG_MODULES=y
78CONFIG_MODULE_UNLOAD=y 83CONFIG_MODULE_UNLOAD=y
79# CONFIG_MODULE_FORCE_UNLOAD is not set 84# CONFIG_MODULE_FORCE_UNLOAD is not set
80# CONFIG_MODVERSIONS is not set 85# CONFIG_MODVERSIONS is not set
81# CONFIG_MODULE_SRCVERSION_ALL is not set 86# CONFIG_MODULE_SRCVERSION_ALL is not set
82CONFIG_KMOD=y 87CONFIG_KMOD=y
83
84#
85# Block layer
86#
87CONFIG_BLOCK=y 88CONFIG_BLOCK=y
88# CONFIG_LBD is not set 89# CONFIG_LBD is not set
89# CONFIG_BLK_DEV_IO_TRACE is not set 90# CONFIG_BLK_DEV_IO_TRACE is not set
90# CONFIG_LSF is not set 91# CONFIG_LSF is not set
92# CONFIG_BLK_DEV_BSG is not set
91 93
92# 94#
93# IO Schedulers 95# IO Schedulers
@@ -119,14 +121,16 @@ CONFIG_ARCH_AT91=y
119# CONFIG_ARCH_NETX is not set 121# CONFIG_ARCH_NETX is not set
120# CONFIG_ARCH_H720X is not set 122# CONFIG_ARCH_H720X is not set
121# CONFIG_ARCH_IMX is not set 123# CONFIG_ARCH_IMX is not set
124# CONFIG_ARCH_IOP13XX is not set
122# CONFIG_ARCH_IOP32X is not set 125# CONFIG_ARCH_IOP32X is not set
123# CONFIG_ARCH_IOP33X is not set 126# CONFIG_ARCH_IOP33X is not set
124# CONFIG_ARCH_IOP13XX is not set
125# CONFIG_ARCH_IXP4XX is not set
126# CONFIG_ARCH_IXP2000 is not set
127# CONFIG_ARCH_IXP23XX is not set 127# CONFIG_ARCH_IXP23XX is not set
128# CONFIG_ARCH_IXP2000 is not set
129# CONFIG_ARCH_IXP4XX is not set
128# CONFIG_ARCH_L7200 is not set 130# CONFIG_ARCH_L7200 is not set
131# CONFIG_ARCH_KS8695 is not set
129# CONFIG_ARCH_NS9XXX is not set 132# CONFIG_ARCH_NS9XXX is not set
133# CONFIG_ARCH_MXC is not set
130# CONFIG_ARCH_PNX4008 is not set 134# CONFIG_ARCH_PNX4008 is not set
131# CONFIG_ARCH_PXA is not set 135# CONFIG_ARCH_PXA is not set
132# CONFIG_ARCH_RPC is not set 136# CONFIG_ARCH_RPC is not set
@@ -134,9 +138,18 @@ CONFIG_ARCH_AT91=y
134# CONFIG_ARCH_S3C2410 is not set 138# CONFIG_ARCH_S3C2410 is not set
135# CONFIG_ARCH_SHARK is not set 139# CONFIG_ARCH_SHARK is not set
136# CONFIG_ARCH_LH7A40X is not set 140# CONFIG_ARCH_LH7A40X is not set
141# CONFIG_ARCH_DAVINCI is not set
137# CONFIG_ARCH_OMAP is not set 142# CONFIG_ARCH_OMAP is not set
138 143
139# 144#
145# Boot options
146#
147
148#
149# Power management
150#
151
152#
140# Atmel AT91 System-on-Chip 153# Atmel AT91 System-on-Chip
141# 154#
142# CONFIG_ARCH_AT91RM9200 is not set 155# CONFIG_ARCH_AT91RM9200 is not set
@@ -144,6 +157,8 @@ CONFIG_ARCH_AT91=y
144# CONFIG_ARCH_AT91SAM9261 is not set 157# CONFIG_ARCH_AT91SAM9261 is not set
145# CONFIG_ARCH_AT91SAM9263 is not set 158# CONFIG_ARCH_AT91SAM9263 is not set
146CONFIG_ARCH_AT91SAM9RL=y 159CONFIG_ARCH_AT91SAM9RL=y
160# CONFIG_ARCH_AT91X40 is not set
161CONFIG_AT91_PMC_UNIT=y
147 162
148# 163#
149# AT91SAM9RL Board Type 164# AT91SAM9RL Board Type
@@ -157,7 +172,9 @@ CONFIG_MACH_AT91SAM9RLEK=y
157# 172#
158# AT91 Feature Selections 173# AT91 Feature Selections
159# 174#
160# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set 175CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
176# CONFIG_ATMEL_TCLIB is not set
177CONFIG_AT91_TIMER_HZ=100
161 178
162# 179#
163# Processor Type 180# Processor Type
@@ -185,15 +202,14 @@ CONFIG_CPU_CP15_MMU=y
185# 202#
186# Bus support 203# Bus support
187# 204#
188 205# CONFIG_PCI_SYSCALL is not set
189# 206# CONFIG_ARCH_SUPPORTS_MSI is not set
190# PCCARD (PCMCIA/CardBus) support
191#
192# CONFIG_PCCARD is not set 207# CONFIG_PCCARD is not set
193 208
194# 209#
195# Kernel Features 210# Kernel Features
196# 211#
212# CONFIG_TICK_ONESHOT is not set
197# CONFIG_PREEMPT is not set 213# CONFIG_PREEMPT is not set
198# CONFIG_NO_IDLE_HZ is not set 214# CONFIG_NO_IDLE_HZ is not set
199CONFIG_HZ=100 215CONFIG_HZ=100
@@ -206,9 +222,12 @@ CONFIG_FLATMEM_MANUAL=y
206CONFIG_FLATMEM=y 222CONFIG_FLATMEM=y
207CONFIG_FLAT_NODE_MEM_MAP=y 223CONFIG_FLAT_NODE_MEM_MAP=y
208# CONFIG_SPARSEMEM_STATIC is not set 224# CONFIG_SPARSEMEM_STATIC is not set
225# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
209CONFIG_SPLIT_PTLOCK_CPUS=4096 226CONFIG_SPLIT_PTLOCK_CPUS=4096
210# CONFIG_RESOURCES_64BIT is not set 227# CONFIG_RESOURCES_64BIT is not set
211CONFIG_ZONE_DMA_FLAG=1 228CONFIG_ZONE_DMA_FLAG=1
229CONFIG_BOUNCE=y
230CONFIG_VIRT_TO_BUS=y
212# CONFIG_LEDS is not set 231# CONFIG_LEDS is not set
213CONFIG_ALIGNMENT_TRAP=y 232CONFIG_ALIGNMENT_TRAP=y
214 233
@@ -245,6 +264,7 @@ CONFIG_BINFMT_ELF=y
245# Power management options 264# Power management options
246# 265#
247# CONFIG_PM is not set 266# CONFIG_PM is not set
267CONFIG_SUSPEND_UP_POSSIBLE=y
248 268
249# 269#
250# Networking 270# Networking
@@ -254,7 +274,6 @@ CONFIG_NET=y
254# 274#
255# Networking options 275# Networking options
256# 276#
257# CONFIG_NETDEBUG is not set
258# CONFIG_PACKET is not set 277# CONFIG_PACKET is not set
259CONFIG_UNIX=y 278CONFIG_UNIX=y
260# CONFIG_NET_KEY is not set 279# CONFIG_NET_KEY is not set
@@ -271,10 +290,6 @@ CONFIG_UNIX=y
271# CONFIG_X25 is not set 290# CONFIG_X25 is not set
272# CONFIG_LAPB is not set 291# CONFIG_LAPB is not set
273# CONFIG_WAN_ROUTER is not set 292# CONFIG_WAN_ROUTER is not set
274
275#
276# QoS and/or fair queueing
277#
278# CONFIG_NET_SCHED is not set 293# CONFIG_NET_SCHED is not set
279 294
280# 295#
@@ -284,7 +299,16 @@ CONFIG_UNIX=y
284# CONFIG_HAMRADIO is not set 299# CONFIG_HAMRADIO is not set
285# CONFIG_IRDA is not set 300# CONFIG_IRDA is not set
286# CONFIG_BT is not set 301# CONFIG_BT is not set
302
303#
304# Wireless
305#
306# CONFIG_CFG80211 is not set
307# CONFIG_WIRELESS_EXT is not set
308# CONFIG_MAC80211 is not set
287# CONFIG_IEEE80211 is not set 309# CONFIG_IEEE80211 is not set
310# CONFIG_RFKILL is not set
311# CONFIG_NET_9P is not set
288 312
289# 313#
290# Device Drivers 314# Device Drivers
@@ -293,21 +317,14 @@ CONFIG_UNIX=y
293# 317#
294# Generic Driver Options 318# Generic Driver Options
295# 319#
320CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
296CONFIG_STANDALONE=y 321CONFIG_STANDALONE=y
297CONFIG_PREVENT_FIRMWARE_BUILD=y 322CONFIG_PREVENT_FIRMWARE_BUILD=y
298# CONFIG_FW_LOADER is not set 323# CONFIG_FW_LOADER is not set
299# CONFIG_DEBUG_DRIVER is not set 324# CONFIG_DEBUG_DRIVER is not set
300# CONFIG_DEBUG_DEVRES is not set 325# CONFIG_DEBUG_DEVRES is not set
301# CONFIG_SYS_HYPERVISOR is not set 326# CONFIG_SYS_HYPERVISOR is not set
302
303#
304# Connector - unified userspace <-> kernelspace linker
305#
306# CONFIG_CONNECTOR is not set 327# CONFIG_CONNECTOR is not set
307
308#
309# Memory Technology Devices (MTD)
310#
311CONFIG_MTD=y 328CONFIG_MTD=y
312# CONFIG_MTD_DEBUG is not set 329# CONFIG_MTD_DEBUG is not set
313CONFIG_MTD_CONCAT=y 330CONFIG_MTD_CONCAT=y
@@ -327,6 +344,7 @@ CONFIG_MTD_BLOCK=y
327# CONFIG_INFTL is not set 344# CONFIG_INFTL is not set
328# CONFIG_RFD_FTL is not set 345# CONFIG_RFD_FTL is not set
329# CONFIG_SSFDC is not set 346# CONFIG_SSFDC is not set
347# CONFIG_MTD_OOPS is not set
330 348
331# 349#
332# RAM/ROM/Flash chip drivers 350# RAM/ROM/Flash chip drivers
@@ -346,7 +364,6 @@ CONFIG_MTD_CFI_I2=y
346# CONFIG_MTD_RAM is not set 364# CONFIG_MTD_RAM is not set
347# CONFIG_MTD_ROM is not set 365# CONFIG_MTD_ROM is not set
348# CONFIG_MTD_ABSENT is not set 366# CONFIG_MTD_ABSENT is not set
349# CONFIG_MTD_OBSOLETE_CHIPS is not set
350 367
351# 368#
352# Mapping drivers for chip access 369# Mapping drivers for chip access
@@ -370,36 +387,23 @@ CONFIG_MTD_DATAFLASH=y
370# CONFIG_MTD_DOC2000 is not set 387# CONFIG_MTD_DOC2000 is not set
371# CONFIG_MTD_DOC2001 is not set 388# CONFIG_MTD_DOC2001 is not set
372# CONFIG_MTD_DOC2001PLUS is not set 389# CONFIG_MTD_DOC2001PLUS is not set
373
374#
375# NAND Flash Device Drivers
376#
377CONFIG_MTD_NAND=y 390CONFIG_MTD_NAND=y
378# CONFIG_MTD_NAND_VERIFY_WRITE is not set 391# CONFIG_MTD_NAND_VERIFY_WRITE is not set
379# CONFIG_MTD_NAND_ECC_SMC is not set 392# CONFIG_MTD_NAND_ECC_SMC is not set
393# CONFIG_MTD_NAND_MUSEUM_IDS is not set
380CONFIG_MTD_NAND_IDS=y 394CONFIG_MTD_NAND_IDS=y
381# CONFIG_MTD_NAND_DISKONCHIP is not set 395# CONFIG_MTD_NAND_DISKONCHIP is not set
382CONFIG_MTD_NAND_AT91=y 396CONFIG_MTD_NAND_AT91=y
383# CONFIG_MTD_NAND_NANDSIM is not set 397# CONFIG_MTD_NAND_NANDSIM is not set
384 398# CONFIG_MTD_NAND_PLATFORM is not set
385#
386# OneNAND Flash Device Drivers
387#
388# CONFIG_MTD_ONENAND is not set 399# CONFIG_MTD_ONENAND is not set
389 400
390# 401#
391# Parallel port support 402# UBI - Unsorted block images
392# 403#
404# CONFIG_MTD_UBI is not set
393# CONFIG_PARPORT is not set 405# CONFIG_PARPORT is not set
394 406CONFIG_BLK_DEV=y
395#
396# Plug and Play support
397#
398# CONFIG_PNPACPI is not set
399
400#
401# Block devices
402#
403# CONFIG_BLK_DEV_COW_COMMON is not set 407# CONFIG_BLK_DEV_COW_COMMON is not set
404CONFIG_BLK_DEV_LOOP=y 408CONFIG_BLK_DEV_LOOP=y
405# CONFIG_BLK_DEV_CRYPTOLOOP is not set 409# CONFIG_BLK_DEV_CRYPTOLOOP is not set
@@ -410,12 +414,16 @@ CONFIG_BLK_DEV_RAM_SIZE=24576
410CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 414CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
411# CONFIG_CDROM_PKTCDVD is not set 415# CONFIG_CDROM_PKTCDVD is not set
412# CONFIG_ATA_OVER_ETH is not set 416# CONFIG_ATA_OVER_ETH is not set
417CONFIG_MISC_DEVICES=y
418# CONFIG_EEPROM_93CX6 is not set
419CONFIG_ATMEL_SSC=y
413 420
414# 421#
415# SCSI device support 422# SCSI device support
416# 423#
417# CONFIG_RAID_ATTRS is not set 424# CONFIG_RAID_ATTRS is not set
418CONFIG_SCSI=y 425CONFIG_SCSI=y
426CONFIG_SCSI_DMA=y
419# CONFIG_SCSI_TGT is not set 427# CONFIG_SCSI_TGT is not set
420# CONFIG_SCSI_NETLINK is not set 428# CONFIG_SCSI_NETLINK is not set
421CONFIG_SCSI_PROC_FS=y 429CONFIG_SCSI_PROC_FS=y
@@ -437,6 +445,7 @@ CONFIG_SCSI_MULTI_LUN=y
437# CONFIG_SCSI_CONSTANTS is not set 445# CONFIG_SCSI_CONSTANTS is not set
438# CONFIG_SCSI_LOGGING is not set 446# CONFIG_SCSI_LOGGING is not set
439# CONFIG_SCSI_SCAN_ASYNC is not set 447# CONFIG_SCSI_SCAN_ASYNC is not set
448CONFIG_SCSI_WAIT_SCAN=m
440 449
441# 450#
442# SCSI Transports 451# SCSI Transports
@@ -444,47 +453,13 @@ CONFIG_SCSI_MULTI_LUN=y
444# CONFIG_SCSI_SPI_ATTRS is not set 453# CONFIG_SCSI_SPI_ATTRS is not set
445# CONFIG_SCSI_FC_ATTRS is not set 454# CONFIG_SCSI_FC_ATTRS is not set
446# CONFIG_SCSI_ISCSI_ATTRS is not set 455# CONFIG_SCSI_ISCSI_ATTRS is not set
447# CONFIG_SCSI_SAS_ATTRS is not set
448# CONFIG_SCSI_SAS_LIBSAS is not set 456# CONFIG_SCSI_SAS_LIBSAS is not set
449 457# CONFIG_SCSI_SRP_ATTRS is not set
450# 458CONFIG_SCSI_LOWLEVEL=y
451# SCSI low-level drivers
452#
453# CONFIG_SCSI_DEBUG is not set 459# CONFIG_SCSI_DEBUG is not set
454
455#
456# Serial ATA (prod) and Parallel ATA (experimental) drivers
457#
458# CONFIG_ATA is not set 460# CONFIG_ATA is not set
459
460#
461# Multi-device support (RAID and LVM)
462#
463# CONFIG_MD is not set 461# CONFIG_MD is not set
464
465#
466# Fusion MPT device support
467#
468# CONFIG_FUSION is not set
469
470#
471# IEEE 1394 (FireWire) support
472#
473
474#
475# I2O device support
476#
477
478#
479# Network device support
480#
481# CONFIG_NETDEVICES is not set 462# CONFIG_NETDEVICES is not set
482# CONFIG_NETPOLL is not set
483# CONFIG_NET_POLL_CONTROLLER is not set
484
485#
486# ISDN subsystem
487#
488# CONFIG_ISDN is not set 463# CONFIG_ISDN is not set
489 464
490# 465#
@@ -492,6 +467,7 @@ CONFIG_SCSI_MULTI_LUN=y
492# 467#
493CONFIG_INPUT=y 468CONFIG_INPUT=y
494# CONFIG_INPUT_FF_MEMLESS is not set 469# CONFIG_INPUT_FF_MEMLESS is not set
470# CONFIG_INPUT_POLLDEV is not set
495 471
496# 472#
497# Userland interfaces 473# Userland interfaces
@@ -501,7 +477,6 @@ CONFIG_INPUT_MOUSEDEV=y
501CONFIG_INPUT_MOUSEDEV_SCREEN_X=320 477CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
502CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240 478CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
503# CONFIG_INPUT_JOYDEV is not set 479# CONFIG_INPUT_JOYDEV is not set
504# CONFIG_INPUT_TSDEV is not set
505CONFIG_INPUT_EVDEV=y 480CONFIG_INPUT_EVDEV=y
506# CONFIG_INPUT_EVBUG is not set 481# CONFIG_INPUT_EVBUG is not set
507 482
@@ -511,8 +486,10 @@ CONFIG_INPUT_EVDEV=y
511# CONFIG_INPUT_KEYBOARD is not set 486# CONFIG_INPUT_KEYBOARD is not set
512# CONFIG_INPUT_MOUSE is not set 487# CONFIG_INPUT_MOUSE is not set
513# CONFIG_INPUT_JOYSTICK is not set 488# CONFIG_INPUT_JOYSTICK is not set
489# CONFIG_INPUT_TABLET is not set
514CONFIG_INPUT_TOUCHSCREEN=y 490CONFIG_INPUT_TOUCHSCREEN=y
515# CONFIG_TOUCHSCREEN_ADS7846 is not set 491# CONFIG_TOUCHSCREEN_ADS7846 is not set
492# CONFIG_TOUCHSCREEN_FUJITSU is not set
516# CONFIG_TOUCHSCREEN_GUNZE is not set 493# CONFIG_TOUCHSCREEN_GUNZE is not set
517# CONFIG_TOUCHSCREEN_ELO is not set 494# CONFIG_TOUCHSCREEN_ELO is not set
518# CONFIG_TOUCHSCREEN_MTOUCH is not set 495# CONFIG_TOUCHSCREEN_MTOUCH is not set
@@ -521,6 +498,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
521# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 498# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
522# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 499# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
523# CONFIG_TOUCHSCREEN_UCB1400 is not set 500# CONFIG_TOUCHSCREEN_UCB1400 is not set
501# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
524# CONFIG_INPUT_MISC is not set 502# CONFIG_INPUT_MISC is not set
525 503
526# 504#
@@ -554,37 +532,50 @@ CONFIG_SERIAL_CORE_CONSOLE=y
554CONFIG_UNIX98_PTYS=y 532CONFIG_UNIX98_PTYS=y
555CONFIG_LEGACY_PTYS=y 533CONFIG_LEGACY_PTYS=y
556CONFIG_LEGACY_PTY_COUNT=256 534CONFIG_LEGACY_PTY_COUNT=256
557
558#
559# IPMI
560#
561# CONFIG_IPMI_HANDLER is not set 535# CONFIG_IPMI_HANDLER is not set
562 536# CONFIG_HW_RANDOM is not set
563#
564# Watchdog Cards
565#
566CONFIG_WATCHDOG=y
567CONFIG_WATCHDOG_NOWAYOUT=y
568
569#
570# Watchdog Device Drivers
571#
572# CONFIG_SOFT_WATCHDOG is not set
573CONFIG_HW_RANDOM=y
574# CONFIG_NVRAM is not set 537# CONFIG_NVRAM is not set
575# CONFIG_DTLK is not set
576# CONFIG_R3964 is not set 538# CONFIG_R3964 is not set
577# CONFIG_RAW_DRIVER is not set 539# CONFIG_RAW_DRIVER is not set
540# CONFIG_TCG_TPM is not set
541CONFIG_I2C=y
542CONFIG_I2C_BOARDINFO=y
543CONFIG_I2C_CHARDEV=y
578 544
579# 545#
580# TPM devices 546# I2C Algorithms
581# 547#
582# CONFIG_TCG_TPM is not set 548CONFIG_I2C_ALGOBIT=y
549# CONFIG_I2C_ALGOPCF is not set
550# CONFIG_I2C_ALGOPCA is not set
583 551
584# 552#
585# I2C support 553# I2C Hardware Bus support
586# 554#
587# CONFIG_I2C is not set 555CONFIG_I2C_GPIO=y
556# CONFIG_I2C_OCORES is not set
557# CONFIG_I2C_PARPORT_LIGHT is not set
558# CONFIG_I2C_SIMTEC is not set
559# CONFIG_I2C_TAOS_EVM is not set
560# CONFIG_I2C_STUB is not set
561# CONFIG_I2C_PCA is not set
562
563#
564# Miscellaneous I2C Chip support
565#
566# CONFIG_SENSORS_DS1337 is not set
567# CONFIG_SENSORS_DS1374 is not set
568# CONFIG_DS1682 is not set
569# CONFIG_SENSORS_EEPROM is not set
570# CONFIG_SENSORS_PCF8574 is not set
571# CONFIG_SENSORS_PCA9539 is not set
572# CONFIG_SENSORS_PCF8591 is not set
573# CONFIG_SENSORS_MAX6875 is not set
574# CONFIG_SENSORS_TSL2550 is not set
575# CONFIG_I2C_DEBUG_CORE is not set
576# CONFIG_I2C_DEBUG_ALGO is not set
577# CONFIG_I2C_DEBUG_BUS is not set
578# CONFIG_I2C_DEBUG_CHIP is not set
588 579
589# 580#
590# SPI support 581# SPI support
@@ -603,21 +594,25 @@ CONFIG_SPI_ATMEL=y
603# SPI Protocol Masters 594# SPI Protocol Masters
604# 595#
605# CONFIG_SPI_AT25 is not set 596# CONFIG_SPI_AT25 is not set
606 597# CONFIG_SPI_SPIDEV is not set
607# 598# CONFIG_SPI_TLE62X0 is not set
608# Dallas's 1-wire bus
609#
610# CONFIG_W1 is not set 599# CONFIG_W1 is not set
600# CONFIG_POWER_SUPPLY is not set
601# CONFIG_HWMON is not set
602CONFIG_WATCHDOG=y
603CONFIG_WATCHDOG_NOWAYOUT=y
611 604
612# 605#
613# Hardware Monitoring support 606# Watchdog Device Drivers
614# 607#
615# CONFIG_HWMON is not set 608# CONFIG_SOFT_WATCHDOG is not set
616# CONFIG_HWMON_VID is not set 609CONFIG_AT91SAM9_WATCHDOG=y
617 610
618# 611#
619# Misc devices 612# Sonics Silicon Backplane
620# 613#
614CONFIG_SSB_POSSIBLE=y
615# CONFIG_SSB is not set
621 616
622# 617#
623# Multifunction device drivers 618# Multifunction device drivers
@@ -625,37 +620,28 @@ CONFIG_SPI_ATMEL=y
625# CONFIG_MFD_SM501 is not set 620# CONFIG_MFD_SM501 is not set
626 621
627# 622#
628# LED devices
629#
630# CONFIG_NEW_LEDS is not set
631
632#
633# LED drivers
634#
635
636#
637# LED Triggers
638#
639
640#
641# Multimedia devices 623# Multimedia devices
642# 624#
643# CONFIG_VIDEO_DEV is not set 625# CONFIG_VIDEO_DEV is not set
644 626# CONFIG_DAB is not set
645#
646# Digital Video Broadcasting Devices
647#
648 627
649# 628#
650# Graphics support 629# Graphics support
651# 630#
652# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 631# CONFIG_VGASTATE is not set
632# CONFIG_VIDEO_OUTPUT_CONTROL is not set
653CONFIG_FB=y 633CONFIG_FB=y
654# CONFIG_FIRMWARE_EDID is not set 634# CONFIG_FIRMWARE_EDID is not set
655# CONFIG_FB_DDC is not set 635# CONFIG_FB_DDC is not set
656CONFIG_FB_CFB_FILLRECT=y 636CONFIG_FB_CFB_FILLRECT=y
657CONFIG_FB_CFB_COPYAREA=y 637CONFIG_FB_CFB_COPYAREA=y
658CONFIG_FB_CFB_IMAGEBLIT=y 638CONFIG_FB_CFB_IMAGEBLIT=y
639# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
640# CONFIG_FB_SYS_FILLRECT is not set
641# CONFIG_FB_SYS_COPYAREA is not set
642# CONFIG_FB_SYS_IMAGEBLIT is not set
643# CONFIG_FB_SYS_FOPS is not set
644CONFIG_FB_DEFERRED_IO=y
659# CONFIG_FB_SVGALIB is not set 645# CONFIG_FB_SVGALIB is not set
660# CONFIG_FB_MACMODES is not set 646# CONFIG_FB_MACMODES is not set
661# CONFIG_FB_BACKLIGHT is not set 647# CONFIG_FB_BACKLIGHT is not set
@@ -665,9 +651,16 @@ CONFIG_FB_CFB_IMAGEBLIT=y
665# 651#
666# Frame buffer hardware drivers 652# Frame buffer hardware drivers
667# 653#
654# CONFIG_FB_S1D15605 is not set
668# CONFIG_FB_S1D13XXX is not set 655# CONFIG_FB_S1D13XXX is not set
669CONFIG_FB_ATMEL=y 656CONFIG_FB_ATMEL=y
670# CONFIG_FB_VIRTUAL is not set 657# CONFIG_FB_VIRTUAL is not set
658# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
659
660#
661# Display device support
662#
663# CONFIG_DISPLAY_SUPPORT is not set
671 664
672# 665#
673# Console display driver support 666# Console display driver support
@@ -675,97 +668,97 @@ CONFIG_FB_ATMEL=y
675# CONFIG_VGA_CONSOLE is not set 668# CONFIG_VGA_CONSOLE is not set
676CONFIG_DUMMY_CONSOLE=y 669CONFIG_DUMMY_CONSOLE=y
677# CONFIG_FRAMEBUFFER_CONSOLE is not set 670# CONFIG_FRAMEBUFFER_CONSOLE is not set
678
679#
680# Logo configuration
681#
682# CONFIG_LOGO is not set 671# CONFIG_LOGO is not set
683 672
684# 673#
685# Sound 674# Sound
686# 675#
687CONFIG_SOUND=y 676# CONFIG_SOUND is not set
688 677CONFIG_HID_SUPPORT=y
689# 678CONFIG_HID=y
690# Advanced Linux Sound Architecture 679# CONFIG_HID_DEBUG is not set
691# 680# CONFIG_HIDRAW is not set
692CONFIG_SND=y 681CONFIG_USB_SUPPORT=y
693CONFIG_SND_TIMER=y 682CONFIG_USB_ARCH_HAS_HCD=y
694CONFIG_SND_PCM=y 683CONFIG_USB_ARCH_HAS_OHCI=y
695CONFIG_SND_SEQUENCER=y 684# CONFIG_USB_ARCH_HAS_EHCI is not set
696CONFIG_SND_SEQ_DUMMY=y 685# CONFIG_USB is not set
697CONFIG_SND_OSSEMUL=y
698CONFIG_SND_MIXER_OSS=y
699CONFIG_SND_PCM_OSS=y
700CONFIG_SND_PCM_OSS_PLUGINS=y
701CONFIG_SND_SEQUENCER_OSS=y
702# CONFIG_SND_DYNAMIC_MINORS is not set
703CONFIG_SND_SUPPORT_OLD_API=y
704CONFIG_SND_VERBOSE_PROCFS=y
705CONFIG_SND_VERBOSE_PRINTK=y
706CONFIG_SND_DEBUG=y
707CONFIG_SND_DEBUG_DETECT=y
708# CONFIG_SND_PCM_XRUN_DEBUG is not set
709
710#
711# Generic devices
712#
713# CONFIG_SND_DUMMY is not set
714# CONFIG_SND_VIRMIDI is not set
715# CONFIG_SND_MTPAV is not set
716# CONFIG_SND_SERIAL_U16550 is not set
717# CONFIG_SND_MPU401 is not set
718 686
719# 687#
720# ALSA ARM devices 688# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
721# 689#
722 690
723# 691#
724# SoC audio support 692# USB Gadget Support
725# 693#
726# CONFIG_SND_SOC is not set 694# CONFIG_USB_GADGET is not set
695CONFIG_MMC=y
696# CONFIG_MMC_DEBUG is not set
697# CONFIG_MMC_UNSAFE_RESUME is not set
727 698
728# 699#
729# Open Sound System 700# MMC/SD Card Drivers
730# 701#
731# CONFIG_SOUND_PRIME is not set 702CONFIG_MMC_BLOCK=y
703CONFIG_MMC_BLOCK_BOUNCE=y
704# CONFIG_SDIO_UART is not set
732 705
733# 706#
734# HID Devices 707# MMC/SD Host Controller Drivers
735# 708#
736CONFIG_HID=y 709CONFIG_MMC_AT91=y
737# CONFIG_HID_DEBUG is not set 710# CONFIG_MMC_SPI is not set
711# CONFIG_NEW_LEDS is not set
712CONFIG_RTC_LIB=y
713CONFIG_RTC_CLASS=y
714CONFIG_RTC_HCTOSYS=y
715CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
716# CONFIG_RTC_DEBUG is not set
738 717
739# 718#
740# USB support 719# RTC interfaces
741# 720#
742CONFIG_USB_ARCH_HAS_HCD=y 721CONFIG_RTC_INTF_SYSFS=y
743CONFIG_USB_ARCH_HAS_OHCI=y 722CONFIG_RTC_INTF_PROC=y
744# CONFIG_USB_ARCH_HAS_EHCI is not set 723CONFIG_RTC_INTF_DEV=y
745# CONFIG_USB is not set 724# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
725# CONFIG_RTC_DRV_TEST is not set
746 726
747# 727#
748# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 728# I2C RTC drivers
749# 729#
730# CONFIG_RTC_DRV_DS1307 is not set
731# CONFIG_RTC_DRV_DS1374 is not set
732# CONFIG_RTC_DRV_DS1672 is not set
733# CONFIG_RTC_DRV_MAX6900 is not set
734# CONFIG_RTC_DRV_RS5C372 is not set
735# CONFIG_RTC_DRV_ISL1208 is not set
736# CONFIG_RTC_DRV_X1205 is not set
737# CONFIG_RTC_DRV_PCF8563 is not set
738# CONFIG_RTC_DRV_PCF8583 is not set
739# CONFIG_RTC_DRV_M41T80 is not set
750 740
751# 741#
752# USB Gadget Support 742# SPI RTC drivers
753# 743#
754# CONFIG_USB_GADGET is not set 744# CONFIG_RTC_DRV_RS5C348 is not set
745# CONFIG_RTC_DRV_MAX6902 is not set
755 746
756# 747#
757# MMC/SD Card support 748# Platform RTC drivers
758# 749#
759CONFIG_MMC=y 750# CONFIG_RTC_DRV_CMOS is not set
760# CONFIG_MMC_DEBUG is not set 751# CONFIG_RTC_DRV_DS1553 is not set
761CONFIG_MMC_BLOCK=y 752# CONFIG_RTC_DRV_STK17TA8 is not set
762CONFIG_MMC_AT91=y 753# CONFIG_RTC_DRV_DS1742 is not set
754# CONFIG_RTC_DRV_M48T86 is not set
755# CONFIG_RTC_DRV_M48T59 is not set
756# CONFIG_RTC_DRV_V3020 is not set
763 757
764# 758#
765# Real Time Clock 759# on-CPU RTC drivers
766# 760#
767CONFIG_RTC_LIB=y 761CONFIG_RTC_DRV_AT91SAM9=y
768# CONFIG_RTC_CLASS is not set
769 762
770# 763#
771# File systems 764# File systems
@@ -816,7 +809,6 @@ CONFIG_SYSFS=y
816CONFIG_TMPFS=y 809CONFIG_TMPFS=y
817# CONFIG_TMPFS_POSIX_ACL is not set 810# CONFIG_TMPFS_POSIX_ACL is not set
818# CONFIG_HUGETLB_PAGE is not set 811# CONFIG_HUGETLB_PAGE is not set
819CONFIG_RAMFS=y
820# CONFIG_CONFIGFS_FS is not set 812# CONFIG_CONFIGFS_FS is not set
821 813
822# 814#
@@ -836,20 +828,13 @@ CONFIG_CRAMFS=y
836# CONFIG_QNX4FS_FS is not set 828# CONFIG_QNX4FS_FS is not set
837# CONFIG_SYSV_FS is not set 829# CONFIG_SYSV_FS is not set
838# CONFIG_UFS_FS is not set 830# CONFIG_UFS_FS is not set
839 831CONFIG_NETWORK_FILESYSTEMS=y
840#
841# Network File Systems
842#
843 832
844# 833#
845# Partition Types 834# Partition Types
846# 835#
847# CONFIG_PARTITION_ADVANCED is not set 836# CONFIG_PARTITION_ADVANCED is not set
848CONFIG_MSDOS_PARTITION=y 837CONFIG_MSDOS_PARTITION=y
849
850#
851# Native Language Support
852#
853CONFIG_NLS=y 838CONFIG_NLS=y
854CONFIG_NLS_DEFAULT="iso8859-1" 839CONFIG_NLS_DEFAULT="iso8859-1"
855CONFIG_NLS_CODEPAGE_437=y 840CONFIG_NLS_CODEPAGE_437=y
@@ -890,16 +875,15 @@ CONFIG_NLS_ISO8859_15=y
890# CONFIG_NLS_KOI8_R is not set 875# CONFIG_NLS_KOI8_R is not set
891# CONFIG_NLS_KOI8_U is not set 876# CONFIG_NLS_KOI8_U is not set
892CONFIG_NLS_UTF8=y 877CONFIG_NLS_UTF8=y
893 878CONFIG_INSTRUMENTATION=y
894#
895# Profiling support
896#
897# CONFIG_PROFILING is not set 879# CONFIG_PROFILING is not set
880# CONFIG_MARKERS is not set
898 881
899# 882#
900# Kernel hacking 883# Kernel hacking
901# 884#
902# CONFIG_PRINTK_TIME is not set 885# CONFIG_PRINTK_TIME is not set
886CONFIG_ENABLE_WARN_DEPRECATED=y
903CONFIG_ENABLE_MUST_CHECK=y 887CONFIG_ENABLE_MUST_CHECK=y
904# CONFIG_MAGIC_SYSRQ is not set 888# CONFIG_MAGIC_SYSRQ is not set
905# CONFIG_UNUSED_SYMBOLS is not set 889# CONFIG_UNUSED_SYMBOLS is not set
@@ -907,8 +891,8 @@ CONFIG_ENABLE_MUST_CHECK=y
907# CONFIG_HEADERS_CHECK is not set 891# CONFIG_HEADERS_CHECK is not set
908CONFIG_DEBUG_KERNEL=y 892CONFIG_DEBUG_KERNEL=y
909# CONFIG_DEBUG_SHIRQ is not set 893# CONFIG_DEBUG_SHIRQ is not set
910CONFIG_LOG_BUF_SHIFT=14
911CONFIG_DETECT_SOFTLOCKUP=y 894CONFIG_DETECT_SOFTLOCKUP=y
895CONFIG_SCHED_DEBUG=y
912# CONFIG_SCHEDSTATS is not set 896# CONFIG_SCHEDSTATS is not set
913# CONFIG_TIMER_STATS is not set 897# CONFIG_TIMER_STATS is not set
914# CONFIG_DEBUG_SLAB is not set 898# CONFIG_DEBUG_SLAB is not set
@@ -916,6 +900,9 @@ CONFIG_DETECT_SOFTLOCKUP=y
916# CONFIG_RT_MUTEX_TESTER is not set 900# CONFIG_RT_MUTEX_TESTER is not set
917# CONFIG_DEBUG_SPINLOCK is not set 901# CONFIG_DEBUG_SPINLOCK is not set
918# CONFIG_DEBUG_MUTEXES is not set 902# CONFIG_DEBUG_MUTEXES is not set
903# CONFIG_DEBUG_LOCK_ALLOC is not set
904# CONFIG_PROVE_LOCKING is not set
905# CONFIG_LOCK_STAT is not set
919# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 906# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
920# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 907# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
921# CONFIG_DEBUG_KOBJECT is not set 908# CONFIG_DEBUG_KOBJECT is not set
@@ -923,10 +910,13 @@ CONFIG_DEBUG_BUGVERBOSE=y
923CONFIG_DEBUG_INFO=y 910CONFIG_DEBUG_INFO=y
924# CONFIG_DEBUG_VM is not set 911# CONFIG_DEBUG_VM is not set
925# CONFIG_DEBUG_LIST is not set 912# CONFIG_DEBUG_LIST is not set
913# CONFIG_DEBUG_SG is not set
926CONFIG_FRAME_POINTER=y 914CONFIG_FRAME_POINTER=y
927CONFIG_FORCED_INLINING=y 915CONFIG_FORCED_INLINING=y
916# CONFIG_BOOT_PRINTK_DELAY is not set
928# CONFIG_RCU_TORTURE_TEST is not set 917# CONFIG_RCU_TORTURE_TEST is not set
929# CONFIG_FAULT_INJECTION is not set 918# CONFIG_FAULT_INJECTION is not set
919# CONFIG_SAMPLES is not set
930CONFIG_DEBUG_USER=y 920CONFIG_DEBUG_USER=y
931# CONFIG_DEBUG_ERRORS is not set 921# CONFIG_DEBUG_ERRORS is not set
932CONFIG_DEBUG_LL=y 922CONFIG_DEBUG_LL=y
@@ -937,10 +927,7 @@ CONFIG_DEBUG_LL=y
937# 927#
938# CONFIG_KEYS is not set 928# CONFIG_KEYS is not set
939# CONFIG_SECURITY is not set 929# CONFIG_SECURITY is not set
940 930# CONFIG_SECURITY_FILE_CAPABILITIES is not set
941#
942# Cryptographic options
943#
944# CONFIG_CRYPTO is not set 931# CONFIG_CRYPTO is not set
945 932
946# 933#
@@ -949,9 +936,12 @@ CONFIG_DEBUG_LL=y
949CONFIG_BITREVERSE=y 936CONFIG_BITREVERSE=y
950# CONFIG_CRC_CCITT is not set 937# CONFIG_CRC_CCITT is not set
951# CONFIG_CRC16 is not set 938# CONFIG_CRC16 is not set
939# CONFIG_CRC_ITU_T is not set
952CONFIG_CRC32=y 940CONFIG_CRC32=y
941# CONFIG_CRC7 is not set
953# CONFIG_LIBCRC32C is not set 942# CONFIG_LIBCRC32C is not set
954CONFIG_ZLIB_INFLATE=y 943CONFIG_ZLIB_INFLATE=y
955CONFIG_PLIST=y 944CONFIG_PLIST=y
956CONFIG_HAS_IOMEM=y 945CONFIG_HAS_IOMEM=y
957CONFIG_HAS_IOPORT=y 946CONFIG_HAS_IOPORT=y
947CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/ateb9200_defconfig b/arch/arm/configs/ateb9200_defconfig
index baa97698c744..d846a492e5ce 100644
--- a/arch/arm/configs/ateb9200_defconfig
+++ b/arch/arm/configs/ateb9200_defconfig
@@ -714,7 +714,7 @@ CONFIG_I2C_ALGOPCA=m
714# 714#
715# I2C Hardware Bus support 715# I2C Hardware Bus support
716# 716#
717CONFIG_I2C_AT91=m 717CONFIG_I2C_GPIO=m
718# CONFIG_I2C_PARPORT_LIGHT is not set 718# CONFIG_I2C_PARPORT_LIGHT is not set
719# CONFIG_I2C_STUB is not set 719# CONFIG_I2C_STUB is not set
720# CONFIG_I2C_PCA_ISA is not set 720# CONFIG_I2C_PCA_ISA is not set
diff --git a/arch/arm/configs/cam60_defconfig b/arch/arm/configs/cam60_defconfig
new file mode 100644
index 000000000000..f3cd4a95373a
--- /dev/null
+++ b/arch/arm/configs/cam60_defconfig
@@ -0,0 +1,1228 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24
4# Thu Mar 6 10:07:26 2008
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34CONFIG_LOCALVERSION=""
35# CONFIG_LOCALVERSION_AUTO is not set
36CONFIG_SWAP=y
37CONFIG_SYSVIPC=y
38CONFIG_SYSVIPC_SYSCTL=y
39CONFIG_POSIX_MQUEUE=y
40CONFIG_BSD_PROCESS_ACCT=y
41CONFIG_BSD_PROCESS_ACCT_V3=y
42# CONFIG_TASKSTATS is not set
43# CONFIG_USER_NS is not set
44# CONFIG_PID_NS is not set
45CONFIG_AUDIT=y
46CONFIG_IKCONFIG=y
47CONFIG_IKCONFIG_PROC=y
48CONFIG_LOG_BUF_SHIFT=17
49# CONFIG_CGROUPS is not set
50CONFIG_FAIR_GROUP_SCHED=y
51CONFIG_FAIR_USER_SCHED=y
52# CONFIG_FAIR_CGROUP_SCHED is not set
53CONFIG_SYSFS_DEPRECATED=y
54CONFIG_RELAY=y
55CONFIG_BLK_DEV_INITRD=y
56CONFIG_INITRAMFS_SOURCE=""
57# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
58CONFIG_SYSCTL=y
59# CONFIG_EMBEDDED is not set
60CONFIG_UID16=y
61CONFIG_SYSCTL_SYSCALL=y
62CONFIG_KALLSYMS=y
63CONFIG_KALLSYMS_ALL=y
64# CONFIG_KALLSYMS_EXTRA_PASS is not set
65CONFIG_HOTPLUG=y
66CONFIG_PRINTK=y
67CONFIG_BUG=y
68CONFIG_ELF_CORE=y
69CONFIG_BASE_FULL=y
70CONFIG_FUTEX=y
71CONFIG_ANON_INODES=y
72CONFIG_EPOLL=y
73CONFIG_SIGNALFD=y
74CONFIG_EVENTFD=y
75CONFIG_SHMEM=y
76CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_SLUB_DEBUG=y
78# CONFIG_SLAB is not set
79CONFIG_SLUB=y
80# CONFIG_SLOB is not set
81CONFIG_SLABINFO=y
82CONFIG_RT_MUTEXES=y
83# CONFIG_TINY_SHMEM is not set
84CONFIG_BASE_SMALL=0
85CONFIG_MODULES=y
86CONFIG_MODULE_UNLOAD=y
87# CONFIG_MODULE_FORCE_UNLOAD is not set
88CONFIG_MODVERSIONS=y
89# CONFIG_MODULE_SRCVERSION_ALL is not set
90# CONFIG_KMOD is not set
91CONFIG_BLOCK=y
92CONFIG_LBD=y
93CONFIG_BLK_DEV_IO_TRACE=y
94# CONFIG_LSF is not set
95# CONFIG_BLK_DEV_BSG is not set
96
97#
98# IO Schedulers
99#
100CONFIG_IOSCHED_NOOP=y
101CONFIG_IOSCHED_AS=y
102CONFIG_IOSCHED_DEADLINE=y
103CONFIG_IOSCHED_CFQ=y
104# CONFIG_DEFAULT_AS is not set
105# CONFIG_DEFAULT_DEADLINE is not set
106CONFIG_DEFAULT_CFQ=y
107# CONFIG_DEFAULT_NOOP is not set
108CONFIG_DEFAULT_IOSCHED="cfq"
109
110#
111# System Type
112#
113# CONFIG_ARCH_AAEC2000 is not set
114# CONFIG_ARCH_INTEGRATOR is not set
115# CONFIG_ARCH_REALVIEW is not set
116# CONFIG_ARCH_VERSATILE is not set
117CONFIG_ARCH_AT91=y
118# CONFIG_ARCH_CLPS7500 is not set
119# CONFIG_ARCH_CLPS711X is not set
120# CONFIG_ARCH_CO285 is not set
121# CONFIG_ARCH_EBSA110 is not set
122# CONFIG_ARCH_EP93XX is not set
123# CONFIG_ARCH_FOOTBRIDGE is not set
124# CONFIG_ARCH_NETX is not set
125# CONFIG_ARCH_H720X is not set
126# CONFIG_ARCH_IMX is not set
127# CONFIG_ARCH_IOP13XX is not set
128# CONFIG_ARCH_IOP32X is not set
129# CONFIG_ARCH_IOP33X is not set
130# CONFIG_ARCH_IXP23XX is not set
131# CONFIG_ARCH_IXP2000 is not set
132# CONFIG_ARCH_IXP4XX is not set
133# CONFIG_ARCH_L7200 is not set
134# CONFIG_ARCH_KS8695 is not set
135# CONFIG_ARCH_NS9XXX is not set
136# CONFIG_ARCH_MXC is not set
137# CONFIG_ARCH_PNX4008 is not set
138# CONFIG_ARCH_PXA is not set
139# CONFIG_ARCH_RPC is not set
140# CONFIG_ARCH_SA1100 is not set
141# CONFIG_ARCH_S3C2410 is not set
142# CONFIG_ARCH_SHARK is not set
143# CONFIG_ARCH_LH7A40X is not set
144# CONFIG_ARCH_DAVINCI is not set
145# CONFIG_ARCH_OMAP is not set
146
147#
148# Boot options
149#
150
151#
152# Power management
153#
154
155#
156# Atmel AT91 System-on-Chip
157#
158# CONFIG_ARCH_AT91RM9200 is not set
159CONFIG_ARCH_AT91SAM9260=y
160# CONFIG_ARCH_AT91SAM9261 is not set
161# CONFIG_ARCH_AT91SAM9263 is not set
162# CONFIG_ARCH_AT91SAM9RL is not set
163# CONFIG_ARCH_AT91CAP9 is not set
164# CONFIG_ARCH_AT91X40 is not set
165CONFIG_AT91_PMC_UNIT=y
166
167#
168# AT91SAM9260 Variants
169#
170# CONFIG_ARCH_AT91SAM9260_SAM9XE is not set
171
172#
173# AT91SAM9260 / AT91SAM9XE Board Type
174#
175# CONFIG_MACH_AT91SAM9260EK is not set
176CONFIG_MACH_CAM60=y
177# CONFIG_MACH_SAM9_L9260 is not set
178
179#
180# AT91 Board Options
181#
182
183#
184# AT91 Feature Selections
185#
186# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set
187CONFIG_AT91_TIMER_HZ=100
188CONFIG_AT91_EARLY_DBGU=y
189# CONFIG_AT91_EARLY_USART0 is not set
190# CONFIG_AT91_EARLY_USART1 is not set
191# CONFIG_AT91_EARLY_USART2 is not set
192# CONFIG_AT91_EARLY_USART3 is not set
193# CONFIG_AT91_EARLY_USART4 is not set
194# CONFIG_AT91_EARLY_USART5 is not set
195
196#
197# Processor Type
198#
199CONFIG_CPU_32=y
200CONFIG_CPU_ARM926T=y
201CONFIG_CPU_32v5=y
202CONFIG_CPU_ABRT_EV5TJ=y
203CONFIG_CPU_CACHE_VIVT=y
204CONFIG_CPU_COPY_V4WB=y
205CONFIG_CPU_TLB_V4WBI=y
206CONFIG_CPU_CP15=y
207CONFIG_CPU_CP15_MMU=y
208
209#
210# Processor Features
211#
212CONFIG_ARM_THUMB=y
213# CONFIG_CPU_ICACHE_DISABLE is not set
214# CONFIG_CPU_DCACHE_DISABLE is not set
215# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
216# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
217# CONFIG_OUTER_CACHE is not set
218
219#
220# Bus support
221#
222# CONFIG_PCI_SYSCALL is not set
223# CONFIG_ARCH_SUPPORTS_MSI is not set
224# CONFIG_PCCARD is not set
225
226#
227# Kernel Features
228#
229# CONFIG_TICK_ONESHOT is not set
230# CONFIG_NO_HZ is not set
231# CONFIG_HIGH_RES_TIMERS is not set
232CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
233# CONFIG_PREEMPT is not set
234CONFIG_HZ=100
235# CONFIG_AEABI is not set
236# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
237CONFIG_SELECT_MEMORY_MODEL=y
238CONFIG_FLATMEM_MANUAL=y
239# CONFIG_DISCONTIGMEM_MANUAL is not set
240# CONFIG_SPARSEMEM_MANUAL is not set
241CONFIG_FLATMEM=y
242CONFIG_FLAT_NODE_MEM_MAP=y
243# CONFIG_SPARSEMEM_STATIC is not set
244# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
245CONFIG_SPLIT_PTLOCK_CPUS=4096
246# CONFIG_RESOURCES_64BIT is not set
247CONFIG_ZONE_DMA_FLAG=1
248CONFIG_BOUNCE=y
249CONFIG_VIRT_TO_BUS=y
250# CONFIG_LEDS is not set
251CONFIG_ALIGNMENT_TRAP=y
252
253#
254# Boot options
255#
256CONFIG_ZBOOT_ROM_TEXT=0
257CONFIG_ZBOOT_ROM_BSS=0x20004000
258# CONFIG_ZBOOT_ROM is not set
259CONFIG_CMDLINE="console=ttyS0,115200 noinitrd root=/dev/mtdblock0 rootfstype=jffs2 mem=64M"
260# CONFIG_XIP_KERNEL is not set
261# CONFIG_KEXEC is not set
262
263#
264# Floating point emulation
265#
266
267#
268# At least one emulation must be selected
269#
270CONFIG_FPE_NWFPE=y
271# CONFIG_FPE_NWFPE_XP is not set
272# CONFIG_FPE_FASTFPE is not set
273# CONFIG_VFP is not set
274
275#
276# Userspace binary formats
277#
278CONFIG_BINFMT_ELF=y
279CONFIG_BINFMT_AOUT=y
280CONFIG_BINFMT_MISC=y
281# CONFIG_ARTHUR is not set
282
283#
284# Power management options
285#
286# CONFIG_PM is not set
287CONFIG_SUSPEND_UP_POSSIBLE=y
288
289#
290# Networking
291#
292CONFIG_NET=y
293
294#
295# Networking options
296#
297CONFIG_PACKET=y
298# CONFIG_PACKET_MMAP is not set
299CONFIG_UNIX=y
300# CONFIG_NET_KEY is not set
301CONFIG_INET=y
302CONFIG_IP_MULTICAST=y
303# CONFIG_IP_ADVANCED_ROUTER is not set
304CONFIG_IP_FIB_HASH=y
305CONFIG_IP_PNP=y
306CONFIG_IP_PNP_DHCP=y
307# CONFIG_IP_PNP_BOOTP is not set
308# CONFIG_IP_PNP_RARP is not set
309# CONFIG_NET_IPIP is not set
310# CONFIG_NET_IPGRE is not set
311# CONFIG_IP_MROUTE is not set
312# CONFIG_ARPD is not set
313# CONFIG_SYN_COOKIES is not set
314# CONFIG_INET_AH is not set
315# CONFIG_INET_ESP is not set
316# CONFIG_INET_IPCOMP is not set
317# CONFIG_INET_XFRM_TUNNEL is not set
318# CONFIG_INET_TUNNEL is not set
319# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
320# CONFIG_INET_XFRM_MODE_TUNNEL is not set
321# CONFIG_INET_XFRM_MODE_BEET is not set
322# CONFIG_INET_LRO is not set
323# CONFIG_INET_DIAG is not set
324# CONFIG_TCP_CONG_ADVANCED is not set
325CONFIG_TCP_CONG_CUBIC=y
326CONFIG_DEFAULT_TCP_CONG="cubic"
327# CONFIG_TCP_MD5SIG is not set
328# CONFIG_IPV6 is not set
329# CONFIG_INET6_XFRM_TUNNEL is not set
330# CONFIG_INET6_TUNNEL is not set
331CONFIG_NETWORK_SECMARK=y
332# CONFIG_NETFILTER is not set
333# CONFIG_IP_DCCP is not set
334# CONFIG_IP_SCTP is not set
335# CONFIG_TIPC is not set
336# CONFIG_ATM is not set
337# CONFIG_BRIDGE is not set
338# CONFIG_VLAN_8021Q is not set
339# CONFIG_DECNET is not set
340# CONFIG_LLC2 is not set
341# CONFIG_IPX is not set
342# CONFIG_ATALK is not set
343# CONFIG_X25 is not set
344# CONFIG_LAPB is not set
345# CONFIG_ECONET is not set
346# CONFIG_WAN_ROUTER is not set
347# CONFIG_NET_SCHED is not set
348CONFIG_NET_SCH_FIFO=y
349
350#
351# Network testing
352#
353# CONFIG_NET_PKTGEN is not set
354# CONFIG_HAMRADIO is not set
355# CONFIG_IRDA is not set
356# CONFIG_BT is not set
357# CONFIG_AF_RXRPC is not set
358
359#
360# Wireless
361#
362CONFIG_CFG80211=m
363CONFIG_NL80211=y
364CONFIG_WIRELESS_EXT=y
365CONFIG_MAC80211=m
366CONFIG_MAC80211_RCSIMPLE=y
367# CONFIG_MAC80211_DEBUGFS is not set
368# CONFIG_MAC80211_DEBUG is not set
369CONFIG_IEEE80211=m
370# CONFIG_IEEE80211_DEBUG is not set
371CONFIG_IEEE80211_CRYPT_WEP=m
372CONFIG_IEEE80211_CRYPT_CCMP=m
373CONFIG_IEEE80211_CRYPT_TKIP=m
374CONFIG_IEEE80211_SOFTMAC=m
375# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
376# CONFIG_RFKILL is not set
377# CONFIG_NET_9P is not set
378
379#
380# Device Drivers
381#
382
383#
384# Generic Driver Options
385#
386CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
387CONFIG_STANDALONE=y
388CONFIG_PREVENT_FIRMWARE_BUILD=y
389# CONFIG_FW_LOADER is not set
390# CONFIG_DEBUG_DRIVER is not set
391# CONFIG_DEBUG_DEVRES is not set
392# CONFIG_SYS_HYPERVISOR is not set
393# CONFIG_CONNECTOR is not set
394CONFIG_MTD=y
395# CONFIG_MTD_DEBUG is not set
396CONFIG_MTD_CONCAT=y
397CONFIG_MTD_PARTITIONS=y
398# CONFIG_MTD_REDBOOT_PARTS is not set
399CONFIG_MTD_CMDLINE_PARTS=y
400# CONFIG_MTD_AFS_PARTS is not set
401
402#
403# User Modules And Translation Layers
404#
405CONFIG_MTD_CHAR=y
406CONFIG_MTD_BLKDEVS=y
407CONFIG_MTD_BLOCK=y
408# CONFIG_FTL is not set
409# CONFIG_NFTL is not set
410# CONFIG_INFTL is not set
411# CONFIG_RFD_FTL is not set
412# CONFIG_SSFDC is not set
413# CONFIG_MTD_OOPS is not set
414
415#
416# RAM/ROM/Flash chip drivers
417#
418CONFIG_MTD_CFI=y
419# CONFIG_MTD_JEDECPROBE is not set
420CONFIG_MTD_GEN_PROBE=y
421# CONFIG_MTD_CFI_ADV_OPTIONS is not set
422CONFIG_MTD_MAP_BANK_WIDTH_1=y
423CONFIG_MTD_MAP_BANK_WIDTH_2=y
424CONFIG_MTD_MAP_BANK_WIDTH_4=y
425# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
426# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
427# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
428CONFIG_MTD_CFI_I1=y
429CONFIG_MTD_CFI_I2=y
430# CONFIG_MTD_CFI_I4 is not set
431# CONFIG_MTD_CFI_I8 is not set
432# CONFIG_MTD_CFI_INTELEXT is not set
433# CONFIG_MTD_CFI_AMDSTD is not set
434# CONFIG_MTD_CFI_STAA is not set
435CONFIG_MTD_RAM=m
436# CONFIG_MTD_ROM is not set
437# CONFIG_MTD_ABSENT is not set
438
439#
440# Mapping drivers for chip access
441#
442CONFIG_MTD_COMPLEX_MAPPINGS=y
443# CONFIG_MTD_PHYSMAP is not set
444# CONFIG_MTD_ARM_INTEGRATOR is not set
445CONFIG_MTD_PLATRAM=m
446
447#
448# Self-contained MTD device drivers
449#
450CONFIG_MTD_DATAFLASH=y
451# CONFIG_MTD_M25P80 is not set
452# CONFIG_MTD_SLRAM is not set
453# CONFIG_MTD_PHRAM is not set
454# CONFIG_MTD_MTDRAM is not set
455# CONFIG_MTD_BLOCK2MTD is not set
456
457#
458# Disk-On-Chip Device Drivers
459#
460# CONFIG_MTD_DOC2000 is not set
461# CONFIG_MTD_DOC2001 is not set
462# CONFIG_MTD_DOC2001PLUS is not set
463CONFIG_MTD_NAND=y
464CONFIG_MTD_NAND_VERIFY_WRITE=y
465# CONFIG_MTD_NAND_ECC_SMC is not set
466# CONFIG_MTD_NAND_MUSEUM_IDS is not set
467CONFIG_MTD_NAND_IDS=y
468# CONFIG_MTD_NAND_DISKONCHIP is not set
469CONFIG_MTD_NAND_AT91=y
470# CONFIG_MTD_NAND_AT91_ECC_SOFT is not set
471CONFIG_MTD_NAND_AT91_ECC_HW=y
472# CONFIG_MTD_NAND_AT91_ECC_NONE is not set
473# CONFIG_MTD_NAND_NANDSIM is not set
474# CONFIG_MTD_NAND_PLATFORM is not set
475# CONFIG_MTD_ALAUDA is not set
476# CONFIG_MTD_ONENAND is not set
477
478#
479# UBI - Unsorted block images
480#
481# CONFIG_MTD_UBI is not set
482# CONFIG_PARPORT is not set
483CONFIG_BLK_DEV=y
484# CONFIG_BLK_DEV_COW_COMMON is not set
485CONFIG_BLK_DEV_LOOP=y
486# CONFIG_BLK_DEV_CRYPTOLOOP is not set
487# CONFIG_BLK_DEV_NBD is not set
488# CONFIG_BLK_DEV_UB is not set
489CONFIG_BLK_DEV_RAM=y
490CONFIG_BLK_DEV_RAM_COUNT=16
491CONFIG_BLK_DEV_RAM_SIZE=4096
492CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
493# CONFIG_CDROM_PKTCDVD is not set
494# CONFIG_ATA_OVER_ETH is not set
495# CONFIG_MISC_DEVICES is not set
496
497#
498# SCSI device support
499#
500# CONFIG_RAID_ATTRS is not set
501CONFIG_SCSI=y
502CONFIG_SCSI_DMA=y
503CONFIG_SCSI_TGT=y
504CONFIG_SCSI_NETLINK=y
505CONFIG_SCSI_PROC_FS=y
506
507#
508# SCSI support type (disk, tape, CD-ROM)
509#
510CONFIG_BLK_DEV_SD=y
511# CONFIG_CHR_DEV_ST is not set
512# CONFIG_CHR_DEV_OSST is not set
513# CONFIG_BLK_DEV_SR is not set
514CONFIG_CHR_DEV_SG=y
515CONFIG_CHR_DEV_SCH=y
516
517#
518# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
519#
520CONFIG_SCSI_MULTI_LUN=y
521# CONFIG_SCSI_CONSTANTS is not set
522CONFIG_SCSI_LOGGING=y
523CONFIG_SCSI_SCAN_ASYNC=y
524CONFIG_SCSI_WAIT_SCAN=m
525
526#
527# SCSI Transports
528#
529CONFIG_SCSI_SPI_ATTRS=m
530CONFIG_SCSI_FC_ATTRS=m
531# CONFIG_SCSI_FC_TGT_ATTRS is not set
532CONFIG_SCSI_ISCSI_ATTRS=m
533CONFIG_SCSI_SAS_ATTRS=m
534CONFIG_SCSI_SAS_LIBSAS=m
535# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
536# CONFIG_SCSI_SRP_ATTRS is not set
537# CONFIG_SCSI_LOWLEVEL is not set
538# CONFIG_ATA is not set
539# CONFIG_MD is not set
540CONFIG_NETDEVICES=y
541# CONFIG_NETDEVICES_MULTIQUEUE is not set
542# CONFIG_DUMMY is not set
543# CONFIG_BONDING is not set
544# CONFIG_MACVLAN is not set
545# CONFIG_EQUALIZER is not set
546# CONFIG_TUN is not set
547# CONFIG_VETH is not set
548CONFIG_PHYLIB=y
549
550#
551# MII PHY device drivers
552#
553CONFIG_MARVELL_PHY=m
554CONFIG_DAVICOM_PHY=m
555CONFIG_QSEMI_PHY=m
556CONFIG_LXT_PHY=m
557CONFIG_CICADA_PHY=m
558CONFIG_VITESSE_PHY=m
559CONFIG_SMSC_PHY=m
560CONFIG_BROADCOM_PHY=m
561# CONFIG_ICPLUS_PHY is not set
562CONFIG_FIXED_PHY=m
563# CONFIG_FIXED_MII_10_FDX is not set
564# CONFIG_FIXED_MII_100_FDX is not set
565# CONFIG_FIXED_MII_1000_FDX is not set
566CONFIG_FIXED_MII_AMNT=1
567# CONFIG_MDIO_BITBANG is not set
568CONFIG_NET_ETHERNET=y
569CONFIG_MII=y
570CONFIG_MACB=y
571# CONFIG_AX88796 is not set
572# CONFIG_SMC91X is not set
573# CONFIG_DM9000 is not set
574# CONFIG_IBM_NEW_EMAC_ZMII is not set
575# CONFIG_IBM_NEW_EMAC_RGMII is not set
576# CONFIG_IBM_NEW_EMAC_TAH is not set
577# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
578# CONFIG_B44 is not set
579# CONFIG_NETDEV_1000 is not set
580# CONFIG_NETDEV_10000 is not set
581
582#
583# Wireless LAN
584#
585# CONFIG_WLAN_PRE80211 is not set
586# CONFIG_WLAN_80211 is not set
587
588#
589# USB Network Adapters
590#
591# CONFIG_USB_CATC is not set
592# CONFIG_USB_KAWETH is not set
593# CONFIG_USB_PEGASUS is not set
594# CONFIG_USB_RTL8150 is not set
595# CONFIG_USB_USBNET is not set
596# CONFIG_WAN is not set
597# CONFIG_PPP is not set
598# CONFIG_SLIP is not set
599# CONFIG_SHAPER is not set
600# CONFIG_NETCONSOLE is not set
601# CONFIG_NETPOLL is not set
602# CONFIG_NET_POLL_CONTROLLER is not set
603# CONFIG_ISDN is not set
604
605#
606# Input device support
607#
608CONFIG_INPUT=y
609# CONFIG_INPUT_FF_MEMLESS is not set
610# CONFIG_INPUT_POLLDEV is not set
611
612#
613# Userland interfaces
614#
615CONFIG_INPUT_MOUSEDEV=y
616CONFIG_INPUT_MOUSEDEV_PSAUX=y
617CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
618CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
619# CONFIG_INPUT_JOYDEV is not set
620CONFIG_INPUT_EVDEV=y
621# CONFIG_INPUT_EVBUG is not set
622
623#
624# Input Device Drivers
625#
626CONFIG_INPUT_KEYBOARD=y
627CONFIG_KEYBOARD_ATKBD=y
628CONFIG_KEYBOARD_SUNKBD=m
629CONFIG_KEYBOARD_LKKBD=m
630CONFIG_KEYBOARD_XTKBD=m
631CONFIG_KEYBOARD_NEWTON=m
632CONFIG_KEYBOARD_STOWAWAY=m
633# CONFIG_KEYBOARD_GPIO is not set
634CONFIG_INPUT_MOUSE=y
635CONFIG_MOUSE_PS2=y
636CONFIG_MOUSE_PS2_ALPS=y
637CONFIG_MOUSE_PS2_LOGIPS2PP=y
638CONFIG_MOUSE_PS2_SYNAPTICS=y
639CONFIG_MOUSE_PS2_LIFEBOOK=y
640CONFIG_MOUSE_PS2_TRACKPOINT=y
641# CONFIG_MOUSE_PS2_TOUCHKIT is not set
642CONFIG_MOUSE_SERIAL=m
643CONFIG_MOUSE_APPLETOUCH=m
644CONFIG_MOUSE_VSXXXAA=m
645# CONFIG_MOUSE_GPIO is not set
646# CONFIG_INPUT_JOYSTICK is not set
647# CONFIG_INPUT_TABLET is not set
648# CONFIG_INPUT_TOUCHSCREEN is not set
649# CONFIG_INPUT_MISC is not set
650
651#
652# Hardware I/O ports
653#
654CONFIG_SERIO=y
655# CONFIG_SERIO_SERPORT is not set
656CONFIG_SERIO_LIBPS2=y
657# CONFIG_SERIO_RAW is not set
658# CONFIG_GAMEPORT is not set
659
660#
661# Character devices
662#
663CONFIG_VT=y
664CONFIG_VT_CONSOLE=y
665CONFIG_HW_CONSOLE=y
666CONFIG_VT_HW_CONSOLE_BINDING=y
667CONFIG_SERIAL_NONSTANDARD=y
668# CONFIG_MOXA_SMARTIO is not set
669# CONFIG_N_HDLC is not set
670# CONFIG_RISCOM8 is not set
671# CONFIG_SPECIALIX is not set
672# CONFIG_RIO is not set
673# CONFIG_STALDRV is not set
674
675#
676# Serial drivers
677#
678# CONFIG_SERIAL_8250 is not set
679
680#
681# Non-8250 serial port support
682#
683CONFIG_SERIAL_ATMEL=y
684CONFIG_SERIAL_ATMEL_CONSOLE=y
685# CONFIG_SERIAL_ATMEL_TTYAT is not set
686CONFIG_SERIAL_CORE=y
687CONFIG_SERIAL_CORE_CONSOLE=y
688CONFIG_UNIX98_PTYS=y
689# CONFIG_LEGACY_PTYS is not set
690# CONFIG_IPMI_HANDLER is not set
691CONFIG_HW_RANDOM=y
692# CONFIG_NVRAM is not set
693# CONFIG_R3964 is not set
694# CONFIG_RAW_DRIVER is not set
695# CONFIG_TCG_TPM is not set
696CONFIG_I2C=y
697CONFIG_I2C_BOARDINFO=y
698CONFIG_I2C_CHARDEV=y
699
700#
701# I2C Algorithms
702#
703CONFIG_I2C_ALGOBIT=y
704# CONFIG_I2C_ALGOPCF is not set
705# CONFIG_I2C_ALGOPCA is not set
706
707#
708# I2C Hardware Bus support
709#
710# CONFIG_I2C_GPIO is not set
711# CONFIG_I2C_OCORES is not set
712# CONFIG_I2C_PARPORT_LIGHT is not set
713# CONFIG_I2C_SIMTEC is not set
714# CONFIG_I2C_TAOS_EVM is not set
715# CONFIG_I2C_STUB is not set
716# CONFIG_I2C_TINY_USB is not set
717# CONFIG_I2C_PCA is not set
718
719#
720# Miscellaneous I2C Chip support
721#
722# CONFIG_SENSORS_DS1337 is not set
723# CONFIG_SENSORS_DS1374 is not set
724# CONFIG_DS1682 is not set
725# CONFIG_SENSORS_EEPROM is not set
726# CONFIG_SENSORS_PCF8574 is not set
727# CONFIG_SENSORS_PCA9539 is not set
728# CONFIG_SENSORS_PCF8591 is not set
729# CONFIG_SENSORS_MAX6875 is not set
730# CONFIG_SENSORS_TSL2550 is not set
731# CONFIG_I2C_DEBUG_CORE is not set
732# CONFIG_I2C_DEBUG_ALGO is not set
733# CONFIG_I2C_DEBUG_BUS is not set
734# CONFIG_I2C_DEBUG_CHIP is not set
735
736#
737# SPI support
738#
739CONFIG_SPI=y
740# CONFIG_SPI_DEBUG is not set
741CONFIG_SPI_MASTER=y
742
743#
744# SPI Master Controller Drivers
745#
746CONFIG_SPI_ATMEL=y
747# CONFIG_SPI_BITBANG is not set
748
749#
750# SPI Protocol Masters
751#
752# CONFIG_SPI_AT25 is not set
753# CONFIG_SPI_SPIDEV is not set
754# CONFIG_SPI_TLE62X0 is not set
755# CONFIG_W1 is not set
756# CONFIG_POWER_SUPPLY is not set
757# CONFIG_HWMON is not set
758# CONFIG_WATCHDOG is not set
759
760#
761# Sonics Silicon Backplane
762#
763CONFIG_SSB_POSSIBLE=y
764# CONFIG_SSB is not set
765
766#
767# Multifunction device drivers
768#
769# CONFIG_MFD_SM501 is not set
770
771#
772# Multimedia devices
773#
774# CONFIG_VIDEO_DEV is not set
775# CONFIG_DVB_CORE is not set
776# CONFIG_DAB is not set
777
778#
779# Graphics support
780#
781# CONFIG_VGASTATE is not set
782# CONFIG_VIDEO_OUTPUT_CONTROL is not set
783# CONFIG_FB is not set
784# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
785
786#
787# Display device support
788#
789# CONFIG_DISPLAY_SUPPORT is not set
790
791#
792# Console display driver support
793#
794# CONFIG_VGA_CONSOLE is not set
795CONFIG_DUMMY_CONSOLE=y
796
797#
798# Sound
799#
800# CONFIG_SOUND is not set
801# CONFIG_HID_SUPPORT is not set
802CONFIG_USB_SUPPORT=y
803CONFIG_USB_ARCH_HAS_HCD=y
804CONFIG_USB_ARCH_HAS_OHCI=y
805# CONFIG_USB_ARCH_HAS_EHCI is not set
806CONFIG_USB=y
807# CONFIG_USB_DEBUG is not set
808
809#
810# Miscellaneous USB options
811#
812CONFIG_USB_DEVICEFS=y
813CONFIG_USB_DEVICE_CLASS=y
814# CONFIG_USB_DYNAMIC_MINORS is not set
815# CONFIG_USB_OTG is not set
816
817#
818# USB Host Controller Drivers
819#
820# CONFIG_USB_ISP116X_HCD is not set
821CONFIG_USB_OHCI_HCD=y
822# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
823# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
824CONFIG_USB_OHCI_LITTLE_ENDIAN=y
825# CONFIG_USB_SL811_HCD is not set
826# CONFIG_USB_R8A66597_HCD is not set
827
828#
829# USB Device Class drivers
830#
831# CONFIG_USB_ACM is not set
832# CONFIG_USB_PRINTER is not set
833
834#
835# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
836#
837
838#
839# may also be needed; see USB_STORAGE Help for more information
840#
841CONFIG_USB_STORAGE=y
842# CONFIG_USB_STORAGE_DEBUG is not set
843# CONFIG_USB_STORAGE_DATAFAB is not set
844# CONFIG_USB_STORAGE_FREECOM is not set
845# CONFIG_USB_STORAGE_ISD200 is not set
846# CONFIG_USB_STORAGE_DPCM is not set
847# CONFIG_USB_STORAGE_USBAT is not set
848# CONFIG_USB_STORAGE_SDDR09 is not set
849# CONFIG_USB_STORAGE_SDDR55 is not set
850# CONFIG_USB_STORAGE_JUMPSHOT is not set
851# CONFIG_USB_STORAGE_ALAUDA is not set
852# CONFIG_USB_STORAGE_ONETOUCH is not set
853# CONFIG_USB_STORAGE_KARMA is not set
854CONFIG_USB_LIBUSUAL=y
855
856#
857# USB Imaging devices
858#
859# CONFIG_USB_MDC800 is not set
860# CONFIG_USB_MICROTEK is not set
861# CONFIG_USB_MON is not set
862
863#
864# USB port drivers
865#
866
867#
868# USB Serial Converter support
869#
870# CONFIG_USB_SERIAL is not set
871
872#
873# USB Miscellaneous drivers
874#
875# CONFIG_USB_EMI62 is not set
876# CONFIG_USB_EMI26 is not set
877# CONFIG_USB_ADUTUX is not set
878# CONFIG_USB_AUERSWALD is not set
879# CONFIG_USB_RIO500 is not set
880# CONFIG_USB_LEGOTOWER is not set
881# CONFIG_USB_LCD is not set
882# CONFIG_USB_BERRY_CHARGE is not set
883# CONFIG_USB_LED is not set
884# CONFIG_USB_CYPRESS_CY7C63 is not set
885# CONFIG_USB_CYTHERM is not set
886# CONFIG_USB_PHIDGET is not set
887# CONFIG_USB_IDMOUSE is not set
888# CONFIG_USB_FTDI_ELAN is not set
889# CONFIG_USB_APPLEDISPLAY is not set
890# CONFIG_USB_LD is not set
891# CONFIG_USB_TRANCEVIBRATOR is not set
892# CONFIG_USB_IOWARRIOR is not set
893# CONFIG_USB_TEST is not set
894
895#
896# USB DSL modem support
897#
898
899#
900# USB Gadget Support
901#
902# CONFIG_USB_GADGET is not set
903# CONFIG_MMC is not set
904# CONFIG_NEW_LEDS is not set
905CONFIG_RTC_LIB=y
906CONFIG_RTC_CLASS=y
907CONFIG_RTC_HCTOSYS=y
908CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
909# CONFIG_RTC_DEBUG is not set
910
911#
912# RTC interfaces
913#
914CONFIG_RTC_INTF_SYSFS=y
915CONFIG_RTC_INTF_PROC=y
916CONFIG_RTC_INTF_DEV=y
917CONFIG_RTC_INTF_DEV_UIE_EMUL=y
918CONFIG_RTC_DRV_TEST=m
919
920#
921# I2C RTC drivers
922#
923# CONFIG_RTC_DRV_DS1307 is not set
924# CONFIG_RTC_DRV_DS1374 is not set
925# CONFIG_RTC_DRV_DS1672 is not set
926# CONFIG_RTC_DRV_MAX6900 is not set
927# CONFIG_RTC_DRV_RS5C372 is not set
928# CONFIG_RTC_DRV_ISL1208 is not set
929# CONFIG_RTC_DRV_X1205 is not set
930# CONFIG_RTC_DRV_PCF8563 is not set
931# CONFIG_RTC_DRV_PCF8583 is not set
932# CONFIG_RTC_DRV_M41T80 is not set
933
934#
935# SPI RTC drivers
936#
937# CONFIG_RTC_DRV_RS5C348 is not set
938# CONFIG_RTC_DRV_MAX6902 is not set
939
940#
941# Platform RTC drivers
942#
943# CONFIG_RTC_DRV_CMOS is not set
944# CONFIG_RTC_DRV_DS1553 is not set
945# CONFIG_RTC_DRV_STK17TA8 is not set
946# CONFIG_RTC_DRV_DS1742 is not set
947# CONFIG_RTC_DRV_M48T86 is not set
948# CONFIG_RTC_DRV_M48T59 is not set
949# CONFIG_RTC_DRV_V3020 is not set
950
951#
952# on-CPU RTC drivers
953#
954CONFIG_RTC_DRV_AT91SAM9=y
955CONFIG_RTC_DRV_AT91SAM9_RTT=0
956CONFIG_RTC_DRV_AT91SAM9_GPBR=0
957
958#
959# File systems
960#
961CONFIG_EXT2_FS=y
962CONFIG_EXT2_FS_XATTR=y
963CONFIG_EXT2_FS_POSIX_ACL=y
964# CONFIG_EXT2_FS_SECURITY is not set
965# CONFIG_EXT2_FS_XIP is not set
966CONFIG_EXT3_FS=y
967CONFIG_EXT3_FS_XATTR=y
968# CONFIG_EXT3_FS_POSIX_ACL is not set
969# CONFIG_EXT3_FS_SECURITY is not set
970# CONFIG_EXT4DEV_FS is not set
971CONFIG_JBD=y
972# CONFIG_JBD_DEBUG is not set
973CONFIG_FS_MBCACHE=y
974# CONFIG_REISERFS_FS is not set
975# CONFIG_JFS_FS is not set
976CONFIG_FS_POSIX_ACL=y
977# CONFIG_XFS_FS is not set
978# CONFIG_GFS2_FS is not set
979# CONFIG_OCFS2_FS is not set
980# CONFIG_MINIX_FS is not set
981# CONFIG_ROMFS_FS is not set
982CONFIG_INOTIFY=y
983CONFIG_INOTIFY_USER=y
984CONFIG_QUOTA=y
985# CONFIG_QUOTA_NETLINK_INTERFACE is not set
986CONFIG_PRINT_QUOTA_WARNING=y
987# CONFIG_QFMT_V1 is not set
988# CONFIG_QFMT_V2 is not set
989CONFIG_QUOTACTL=y
990CONFIG_DNOTIFY=y
991CONFIG_AUTOFS_FS=y
992CONFIG_AUTOFS4_FS=y
993# CONFIG_FUSE_FS is not set
994
995#
996# CD-ROM/DVD Filesystems
997#
998# CONFIG_ISO9660_FS is not set
999# CONFIG_UDF_FS is not set
1000
1001#
1002# DOS/FAT/NT Filesystems
1003#
1004CONFIG_FAT_FS=y
1005CONFIG_MSDOS_FS=y
1006CONFIG_VFAT_FS=y
1007CONFIG_FAT_DEFAULT_CODEPAGE=437
1008CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1009# CONFIG_NTFS_FS is not set
1010
1011#
1012# Pseudo filesystems
1013#
1014CONFIG_PROC_FS=y
1015CONFIG_PROC_SYSCTL=y
1016CONFIG_SYSFS=y
1017CONFIG_TMPFS=y
1018# CONFIG_TMPFS_POSIX_ACL is not set
1019# CONFIG_HUGETLB_PAGE is not set
1020CONFIG_CONFIGFS_FS=y
1021
1022#
1023# Miscellaneous filesystems
1024#
1025# CONFIG_ADFS_FS is not set
1026# CONFIG_AFFS_FS is not set
1027# CONFIG_HFS_FS is not set
1028# CONFIG_HFSPLUS_FS is not set
1029# CONFIG_BEFS_FS is not set
1030# CONFIG_BFS_FS is not set
1031# CONFIG_EFS_FS is not set
1032CONFIG_YAFFS_FS=y
1033CONFIG_YAFFS_YAFFS1=y
1034# CONFIG_YAFFS_9BYTE_TAGS is not set
1035# CONFIG_YAFFS_DOES_ECC is not set
1036CONFIG_YAFFS_YAFFS2=y
1037CONFIG_YAFFS_AUTO_YAFFS2=y
1038# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
1039# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
1040# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
1041CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
1042# CONFIG_JFFS2_FS is not set
1043# CONFIG_CRAMFS is not set
1044# CONFIG_VXFS_FS is not set
1045# CONFIG_HPFS_FS is not set
1046# CONFIG_QNX4FS_FS is not set
1047# CONFIG_SYSV_FS is not set
1048# CONFIG_UFS_FS is not set
1049CONFIG_NETWORK_FILESYSTEMS=y
1050CONFIG_NFS_FS=y
1051CONFIG_NFS_V3=y
1052# CONFIG_NFS_V3_ACL is not set
1053# CONFIG_NFS_V4 is not set
1054# CONFIG_NFS_DIRECTIO is not set
1055# CONFIG_NFSD is not set
1056CONFIG_ROOT_NFS=y
1057CONFIG_LOCKD=y
1058CONFIG_LOCKD_V4=y
1059CONFIG_NFS_COMMON=y
1060CONFIG_SUNRPC=y
1061# CONFIG_SUNRPC_BIND34 is not set
1062# CONFIG_RPCSEC_GSS_KRB5 is not set
1063# CONFIG_RPCSEC_GSS_SPKM3 is not set
1064# CONFIG_SMB_FS is not set
1065# CONFIG_CIFS is not set
1066# CONFIG_NCP_FS is not set
1067# CONFIG_CODA_FS is not set
1068# CONFIG_AFS_FS is not set
1069
1070#
1071# Partition Types
1072#
1073# CONFIG_PARTITION_ADVANCED is not set
1074CONFIG_MSDOS_PARTITION=y
1075CONFIG_NLS=y
1076CONFIG_NLS_DEFAULT="cp437"
1077CONFIG_NLS_CODEPAGE_437=y
1078# CONFIG_NLS_CODEPAGE_737 is not set
1079# CONFIG_NLS_CODEPAGE_775 is not set
1080# CONFIG_NLS_CODEPAGE_850 is not set
1081# CONFIG_NLS_CODEPAGE_852 is not set
1082# CONFIG_NLS_CODEPAGE_855 is not set
1083# CONFIG_NLS_CODEPAGE_857 is not set
1084# CONFIG_NLS_CODEPAGE_860 is not set
1085# CONFIG_NLS_CODEPAGE_861 is not set
1086# CONFIG_NLS_CODEPAGE_862 is not set
1087# CONFIG_NLS_CODEPAGE_863 is not set
1088# CONFIG_NLS_CODEPAGE_864 is not set
1089# CONFIG_NLS_CODEPAGE_865 is not set
1090# CONFIG_NLS_CODEPAGE_866 is not set
1091# CONFIG_NLS_CODEPAGE_869 is not set
1092# CONFIG_NLS_CODEPAGE_936 is not set
1093# CONFIG_NLS_CODEPAGE_950 is not set
1094# CONFIG_NLS_CODEPAGE_932 is not set
1095# CONFIG_NLS_CODEPAGE_949 is not set
1096# CONFIG_NLS_CODEPAGE_874 is not set
1097# CONFIG_NLS_ISO8859_8 is not set
1098# CONFIG_NLS_CODEPAGE_1250 is not set
1099# CONFIG_NLS_CODEPAGE_1251 is not set
1100CONFIG_NLS_ASCII=y
1101CONFIG_NLS_ISO8859_1=y
1102# CONFIG_NLS_ISO8859_2 is not set
1103# CONFIG_NLS_ISO8859_3 is not set
1104# CONFIG_NLS_ISO8859_4 is not set
1105# CONFIG_NLS_ISO8859_5 is not set
1106# CONFIG_NLS_ISO8859_6 is not set
1107# CONFIG_NLS_ISO8859_7 is not set
1108# CONFIG_NLS_ISO8859_9 is not set
1109# CONFIG_NLS_ISO8859_13 is not set
1110# CONFIG_NLS_ISO8859_14 is not set
1111# CONFIG_NLS_ISO8859_15 is not set
1112# CONFIG_NLS_KOI8_R is not set
1113# CONFIG_NLS_KOI8_U is not set
1114CONFIG_NLS_UTF8=y
1115# CONFIG_DLM is not set
1116# CONFIG_INSTRUMENTATION is not set
1117
1118#
1119# Kernel hacking
1120#
1121CONFIG_PRINTK_TIME=y
1122CONFIG_ENABLE_WARN_DEPRECATED=y
1123# CONFIG_ENABLE_MUST_CHECK is not set
1124CONFIG_MAGIC_SYSRQ=y
1125CONFIG_UNUSED_SYMBOLS=y
1126CONFIG_DEBUG_FS=y
1127# CONFIG_HEADERS_CHECK is not set
1128CONFIG_DEBUG_KERNEL=y
1129# CONFIG_DEBUG_SHIRQ is not set
1130CONFIG_DETECT_SOFTLOCKUP=y
1131CONFIG_SCHED_DEBUG=y
1132# CONFIG_SCHEDSTATS is not set
1133# CONFIG_TIMER_STATS is not set
1134# CONFIG_SLUB_DEBUG_ON is not set
1135# CONFIG_DEBUG_RT_MUTEXES is not set
1136# CONFIG_RT_MUTEX_TESTER is not set
1137# CONFIG_DEBUG_SPINLOCK is not set
1138# CONFIG_DEBUG_MUTEXES is not set
1139# CONFIG_DEBUG_LOCK_ALLOC is not set
1140# CONFIG_PROVE_LOCKING is not set
1141# CONFIG_LOCK_STAT is not set
1142# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1143# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1144# CONFIG_DEBUG_KOBJECT is not set
1145CONFIG_DEBUG_BUGVERBOSE=y
1146# CONFIG_DEBUG_INFO is not set
1147# CONFIG_DEBUG_VM is not set
1148# CONFIG_DEBUG_LIST is not set
1149# CONFIG_DEBUG_SG is not set
1150CONFIG_FRAME_POINTER=y
1151# CONFIG_FORCED_INLINING is not set
1152# CONFIG_BOOT_PRINTK_DELAY is not set
1153# CONFIG_RCU_TORTURE_TEST is not set
1154# CONFIG_FAULT_INJECTION is not set
1155# CONFIG_SAMPLES is not set
1156# CONFIG_DEBUG_USER is not set
1157# CONFIG_DEBUG_ERRORS is not set
1158CONFIG_DEBUG_LL=y
1159# CONFIG_DEBUG_ICEDCC is not set
1160
1161#
1162# Security options
1163#
1164# CONFIG_KEYS is not set
1165# CONFIG_SECURITY is not set
1166# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1167CONFIG_CRYPTO=y
1168CONFIG_CRYPTO_ALGAPI=y
1169CONFIG_CRYPTO_ABLKCIPHER=m
1170CONFIG_CRYPTO_BLKCIPHER=m
1171CONFIG_CRYPTO_HASH=y
1172CONFIG_CRYPTO_MANAGER=y
1173CONFIG_CRYPTO_HMAC=y
1174CONFIG_CRYPTO_XCBC=m
1175CONFIG_CRYPTO_NULL=m
1176# CONFIG_CRYPTO_MD4 is not set
1177CONFIG_CRYPTO_MD5=y
1178CONFIG_CRYPTO_SHA1=y
1179CONFIG_CRYPTO_SHA256=y
1180CONFIG_CRYPTO_SHA512=y
1181CONFIG_CRYPTO_WP512=m
1182CONFIG_CRYPTO_TGR192=m
1183CONFIG_CRYPTO_GF128MUL=m
1184CONFIG_CRYPTO_ECB=m
1185CONFIG_CRYPTO_CBC=m
1186CONFIG_CRYPTO_PCBC=m
1187CONFIG_CRYPTO_LRW=m
1188# CONFIG_CRYPTO_XTS is not set
1189CONFIG_CRYPTO_CRYPTD=m
1190CONFIG_CRYPTO_DES=y
1191CONFIG_CRYPTO_FCRYPT=m
1192CONFIG_CRYPTO_BLOWFISH=m
1193CONFIG_CRYPTO_TWOFISH=m
1194CONFIG_CRYPTO_TWOFISH_COMMON=m
1195CONFIG_CRYPTO_SERPENT=m
1196CONFIG_CRYPTO_AES=m
1197CONFIG_CRYPTO_CAST5=m
1198CONFIG_CRYPTO_CAST6=m
1199CONFIG_CRYPTO_TEA=m
1200CONFIG_CRYPTO_ARC4=m
1201CONFIG_CRYPTO_KHAZAD=m
1202CONFIG_CRYPTO_ANUBIS=m
1203# CONFIG_CRYPTO_SEED is not set
1204CONFIG_CRYPTO_DEFLATE=m
1205CONFIG_CRYPTO_MICHAEL_MIC=m
1206CONFIG_CRYPTO_CRC32C=m
1207CONFIG_CRYPTO_CAMELLIA=m
1208CONFIG_CRYPTO_TEST=m
1209# CONFIG_CRYPTO_AUTHENC is not set
1210# CONFIG_CRYPTO_HW is not set
1211
1212#
1213# Library routines
1214#
1215CONFIG_BITREVERSE=m
1216# CONFIG_CRC_CCITT is not set
1217# CONFIG_CRC16 is not set
1218# CONFIG_CRC_ITU_T is not set
1219CONFIG_CRC32=m
1220# CONFIG_CRC7 is not set
1221CONFIG_LIBCRC32C=m
1222CONFIG_AUDIT_GENERIC=y
1223CONFIG_ZLIB_INFLATE=m
1224CONFIG_ZLIB_DEFLATE=m
1225CONFIG_PLIST=y
1226CONFIG_HAS_IOMEM=y
1227CONFIG_HAS_IOPORT=y
1228CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/csb337_defconfig b/arch/arm/configs/csb337_defconfig
index 88e5d28aeec7..67e65e4f0cdc 100644
--- a/arch/arm/configs/csb337_defconfig
+++ b/arch/arm/configs/csb337_defconfig
@@ -1,69 +1,96 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.15 3# Linux kernel version: 2.6.24-rc7
4# Mon Jan 9 21:51:31 2006 4# Wed Jan 9 22:19:24 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
7CONFIG_MMU=y 11CONFIG_MMU=y
8CONFIG_UID16=y 12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
9CONFIG_RWSEM_GENERIC_SPINLOCK=y 19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
11 27
12# 28#
13# Code maturity level options 29# General setup
14# 30#
15CONFIG_EXPERIMENTAL=y 31CONFIG_EXPERIMENTAL=y
16CONFIG_CLEAN_COMPILE=y
17CONFIG_BROKEN_ON_SMP=y 32CONFIG_BROKEN_ON_SMP=y
18CONFIG_INIT_ENV_ARG_LIMIT=32 33CONFIG_INIT_ENV_ARG_LIMIT=32
19
20#
21# General setup
22#
23CONFIG_LOCALVERSION="" 34CONFIG_LOCALVERSION=""
24CONFIG_LOCALVERSION_AUTO=y 35CONFIG_LOCALVERSION_AUTO=y
25# CONFIG_SWAP is not set 36# CONFIG_SWAP is not set
26CONFIG_SYSVIPC=y 37CONFIG_SYSVIPC=y
38CONFIG_SYSVIPC_SYSCTL=y
27# CONFIG_POSIX_MQUEUE is not set 39# CONFIG_POSIX_MQUEUE is not set
28# CONFIG_BSD_PROCESS_ACCT is not set 40# CONFIG_BSD_PROCESS_ACCT is not set
29CONFIG_SYSCTL=y 41# CONFIG_TASKSTATS is not set
42# CONFIG_USER_NS is not set
43# CONFIG_PID_NS is not set
30# CONFIG_AUDIT is not set 44# CONFIG_AUDIT is not set
31CONFIG_HOTPLUG=y
32CONFIG_KOBJECT_UEVENT=y
33# CONFIG_IKCONFIG is not set 45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47# CONFIG_CGROUPS is not set
48CONFIG_FAIR_GROUP_SCHED=y
49CONFIG_FAIR_USER_SCHED=y
50# CONFIG_FAIR_CGROUP_SCHED is not set
51CONFIG_SYSFS_DEPRECATED=y
52# CONFIG_RELAY is not set
53CONFIG_BLK_DEV_INITRD=y
34CONFIG_INITRAMFS_SOURCE="" 54CONFIG_INITRAMFS_SOURCE=""
35CONFIG_CC_OPTIMIZE_FOR_SIZE=y 55CONFIG_CC_OPTIMIZE_FOR_SIZE=y
56CONFIG_SYSCTL=y
36# CONFIG_EMBEDDED is not set 57# CONFIG_EMBEDDED is not set
58CONFIG_UID16=y
59CONFIG_SYSCTL_SYSCALL=y
37CONFIG_KALLSYMS=y 60CONFIG_KALLSYMS=y
38# CONFIG_KALLSYMS_ALL is not set 61# CONFIG_KALLSYMS_ALL is not set
39# CONFIG_KALLSYMS_EXTRA_PASS is not set 62# CONFIG_KALLSYMS_EXTRA_PASS is not set
63CONFIG_HOTPLUG=y
40CONFIG_PRINTK=y 64CONFIG_PRINTK=y
41CONFIG_BUG=y 65CONFIG_BUG=y
66CONFIG_ELF_CORE=y
42CONFIG_BASE_FULL=y 67CONFIG_BASE_FULL=y
43CONFIG_FUTEX=y 68CONFIG_FUTEX=y
69CONFIG_ANON_INODES=y
44CONFIG_EPOLL=y 70CONFIG_EPOLL=y
71CONFIG_SIGNALFD=y
72CONFIG_EVENTFD=y
45CONFIG_SHMEM=y 73CONFIG_SHMEM=y
46CONFIG_CC_ALIGN_FUNCTIONS=0 74CONFIG_VM_EVENT_COUNTERS=y
47CONFIG_CC_ALIGN_LABELS=0 75CONFIG_SLUB_DEBUG=y
48CONFIG_CC_ALIGN_LOOPS=0 76# CONFIG_SLAB is not set
49CONFIG_CC_ALIGN_JUMPS=0 77CONFIG_SLUB=y
78# CONFIG_SLOB is not set
79CONFIG_SLABINFO=y
80CONFIG_RT_MUTEXES=y
50# CONFIG_TINY_SHMEM is not set 81# CONFIG_TINY_SHMEM is not set
51CONFIG_BASE_SMALL=0 82CONFIG_BASE_SMALL=0
52
53#
54# Loadable module support
55#
56CONFIG_MODULES=y 83CONFIG_MODULES=y
57CONFIG_MODULE_UNLOAD=y 84CONFIG_MODULE_UNLOAD=y
58# CONFIG_MODULE_FORCE_UNLOAD is not set 85# CONFIG_MODULE_FORCE_UNLOAD is not set
59CONFIG_OBSOLETE_MODPARM=y
60# CONFIG_MODVERSIONS is not set 86# CONFIG_MODVERSIONS is not set
61# CONFIG_MODULE_SRCVERSION_ALL is not set 87# CONFIG_MODULE_SRCVERSION_ALL is not set
62CONFIG_KMOD=y 88CONFIG_KMOD=y
63 89CONFIG_BLOCK=y
64# 90# CONFIG_LBD is not set
65# Block layer 91# CONFIG_BLK_DEV_IO_TRACE is not set
66# 92# CONFIG_LSF is not set
93# CONFIG_BLK_DEV_BSG is not set
67 94
68# 95#
69# IO Schedulers 96# IO Schedulers
@@ -81,62 +108,101 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
81# 108#
82# System Type 109# System Type
83# 110#
111# CONFIG_ARCH_AAEC2000 is not set
112# CONFIG_ARCH_INTEGRATOR is not set
113# CONFIG_ARCH_REALVIEW is not set
114# CONFIG_ARCH_VERSATILE is not set
115CONFIG_ARCH_AT91=y
84# CONFIG_ARCH_CLPS7500 is not set 116# CONFIG_ARCH_CLPS7500 is not set
85# CONFIG_ARCH_CLPS711X is not set 117# CONFIG_ARCH_CLPS711X is not set
86# CONFIG_ARCH_CO285 is not set 118# CONFIG_ARCH_CO285 is not set
87# CONFIG_ARCH_EBSA110 is not set 119# CONFIG_ARCH_EBSA110 is not set
120# CONFIG_ARCH_EP93XX is not set
88# CONFIG_ARCH_FOOTBRIDGE is not set 121# CONFIG_ARCH_FOOTBRIDGE is not set
89# CONFIG_ARCH_INTEGRATOR is not set 122# CONFIG_ARCH_NETX is not set
90# CONFIG_ARCH_IOP3XX is not set 123# CONFIG_ARCH_H720X is not set
91# CONFIG_ARCH_IXP4XX is not set 124# CONFIG_ARCH_IMX is not set
125# CONFIG_ARCH_IOP13XX is not set
126# CONFIG_ARCH_IOP32X is not set
127# CONFIG_ARCH_IOP33X is not set
128# CONFIG_ARCH_IXP23XX is not set
92# CONFIG_ARCH_IXP2000 is not set 129# CONFIG_ARCH_IXP2000 is not set
130# CONFIG_ARCH_IXP4XX is not set
93# CONFIG_ARCH_L7200 is not set 131# CONFIG_ARCH_L7200 is not set
132# CONFIG_ARCH_KS8695 is not set
133# CONFIG_ARCH_NS9XXX is not set
134# CONFIG_ARCH_MXC is not set
135# CONFIG_ARCH_PNX4008 is not set
94# CONFIG_ARCH_PXA is not set 136# CONFIG_ARCH_PXA is not set
95# CONFIG_ARCH_RPC is not set 137# CONFIG_ARCH_RPC is not set
96# CONFIG_ARCH_SA1100 is not set 138# CONFIG_ARCH_SA1100 is not set
97# CONFIG_ARCH_S3C2410 is not set 139# CONFIG_ARCH_S3C2410 is not set
98# CONFIG_ARCH_SHARK is not set 140# CONFIG_ARCH_SHARK is not set
99# CONFIG_ARCH_LH7A40X is not set 141# CONFIG_ARCH_LH7A40X is not set
142# CONFIG_ARCH_DAVINCI is not set
100# CONFIG_ARCH_OMAP is not set 143# CONFIG_ARCH_OMAP is not set
101# CONFIG_ARCH_VERSATILE is not set
102# CONFIG_ARCH_REALVIEW is not set
103# CONFIG_ARCH_IMX is not set
104# CONFIG_ARCH_H720X is not set
105# CONFIG_ARCH_AAEC2000 is not set
106CONFIG_ARCH_AT91=y
107CONFIG_ARCH_AT91RM9200=y
108 144
109# 145#
110# AT91RM9200 Implementations 146# Boot options
111# 147#
112 148
113# 149#
150# Power management
151#
152
153#
154# Atmel AT91 System-on-Chip
155#
156CONFIG_ARCH_AT91RM9200=y
157# CONFIG_ARCH_AT91SAM9260 is not set
158# CONFIG_ARCH_AT91SAM9261 is not set
159# CONFIG_ARCH_AT91SAM9263 is not set
160# CONFIG_ARCH_AT91SAM9RL is not set
161# CONFIG_ARCH_AT91X40 is not set
162CONFIG_AT91_PMC_UNIT=y
163
164#
114# AT91RM9200 Board Type 165# AT91RM9200 Board Type
115# 166#
167# CONFIG_MACH_ONEARM is not set
116# CONFIG_ARCH_AT91RM9200DK is not set 168# CONFIG_ARCH_AT91RM9200DK is not set
117# CONFIG_MACH_AT91RM9200EK is not set 169# CONFIG_MACH_AT91RM9200EK is not set
118CONFIG_MACH_CSB337=y 170CONFIG_MACH_CSB337=y
119# CONFIG_MACH_CSB637 is not set 171# CONFIG_MACH_CSB637 is not set
120# CONFIG_MACH_CARMEVA is not set 172# CONFIG_MACH_CARMEVA is not set
121# CONFIG_MACH_KB9200 is not set
122# CONFIG_MACH_ATEB9200 is not set 173# CONFIG_MACH_ATEB9200 is not set
174# CONFIG_MACH_KB9200 is not set
175# CONFIG_MACH_PICOTUX2XX is not set
176# CONFIG_MACH_KAFA is not set
177# CONFIG_MACH_CHUB is not set
178# CONFIG_MACH_HOMEMATIC is not set
179# CONFIG_MACH_ECBAT91 is not set
180# CONFIG_MACH_SWEDATMS is not set
181
182#
183# AT91 Board Options
184#
123 185
124# 186#
125# AT91RM9200 Feature Selections 187# AT91 Feature Selections
126# 188#
127CONFIG_AT91_PROGRAMMABLE_CLOCKS=y 189CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
190# CONFIG_ATMEL_TCLIB is not set
191CONFIG_AT91_TIMER_HZ=128
128 192
129# 193#
130# Processor Type 194# Processor Type
131# 195#
132CONFIG_CPU_32=y 196CONFIG_CPU_32=y
133CONFIG_CPU_ARM920T=y 197CONFIG_CPU_ARM920T=y
134CONFIG_CPU_32v4=y 198CONFIG_CPU_32v4T=y
135CONFIG_CPU_ABRT_EV4T=y 199CONFIG_CPU_ABRT_EV4T=y
136CONFIG_CPU_CACHE_V4WT=y 200CONFIG_CPU_CACHE_V4WT=y
137CONFIG_CPU_CACHE_VIVT=y 201CONFIG_CPU_CACHE_VIVT=y
138CONFIG_CPU_COPY_V4WB=y 202CONFIG_CPU_COPY_V4WB=y
139CONFIG_CPU_TLB_V4WBI=y 203CONFIG_CPU_TLB_V4WBI=y
204CONFIG_CPU_CP15=y
205CONFIG_CPU_CP15_MMU=y
140 206
141# 207#
142# Processor Features 208# Processor Features
@@ -145,15 +211,13 @@ CONFIG_CPU_TLB_V4WBI=y
145# CONFIG_CPU_ICACHE_DISABLE is not set 211# CONFIG_CPU_ICACHE_DISABLE is not set
146# CONFIG_CPU_DCACHE_DISABLE is not set 212# CONFIG_CPU_DCACHE_DISABLE is not set
147# CONFIG_CPU_DCACHE_WRITETHROUGH is not set 213# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
214# CONFIG_OUTER_CACHE is not set
148 215
149# 216#
150# Bus support 217# Bus support
151# 218#
152CONFIG_ISA_DMA_API=y 219# CONFIG_PCI_SYSCALL is not set
153 220# CONFIG_ARCH_SUPPORTS_MSI is not set
154#
155# PCCARD (PCMCIA/CardBus) support
156#
157CONFIG_PCCARD=y 221CONFIG_PCCARD=y
158# CONFIG_PCMCIA_DEBUG is not set 222# CONFIG_PCMCIA_DEBUG is not set
159CONFIG_PCMCIA=y 223CONFIG_PCMCIA=y
@@ -168,8 +232,13 @@ CONFIG_AT91_CF=y
168# 232#
169# Kernel Features 233# Kernel Features
170# 234#
235# CONFIG_TICK_ONESHOT is not set
236# CONFIG_NO_HZ is not set
237# CONFIG_HIGH_RES_TIMERS is not set
238CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
171# CONFIG_PREEMPT is not set 239# CONFIG_PREEMPT is not set
172# CONFIG_NO_IDLE_HZ is not set 240CONFIG_HZ=128
241# CONFIG_AEABI is not set
173# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 242# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
174CONFIG_SELECT_MEMORY_MODEL=y 243CONFIG_SELECT_MEMORY_MODEL=y
175CONFIG_FLATMEM_MANUAL=y 244CONFIG_FLATMEM_MANUAL=y
@@ -178,9 +247,13 @@ CONFIG_FLATMEM_MANUAL=y
178CONFIG_FLATMEM=y 247CONFIG_FLATMEM=y
179CONFIG_FLAT_NODE_MEM_MAP=y 248CONFIG_FLAT_NODE_MEM_MAP=y
180# CONFIG_SPARSEMEM_STATIC is not set 249# CONFIG_SPARSEMEM_STATIC is not set
250# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
181CONFIG_SPLIT_PTLOCK_CPUS=4096 251CONFIG_SPLIT_PTLOCK_CPUS=4096
252# CONFIG_RESOURCES_64BIT is not set
253CONFIG_ZONE_DMA_FLAG=1
254CONFIG_BOUNCE=y
255CONFIG_VIRT_TO_BUS=y
182CONFIG_LEDS=y 256CONFIG_LEDS=y
183CONFIG_LEDS_TIMER=y
184CONFIG_LEDS_CPU=y 257CONFIG_LEDS_CPU=y
185CONFIG_ALIGNMENT_TRAP=y 258CONFIG_ALIGNMENT_TRAP=y
186 259
@@ -191,6 +264,7 @@ CONFIG_ZBOOT_ROM_TEXT=0x0
191CONFIG_ZBOOT_ROM_BSS=0x0 264CONFIG_ZBOOT_ROM_BSS=0x0
192CONFIG_CMDLINE="mem=32M console=ttyS0,38400 initrd=0x20410000,3145728 root=/dev/ram0 rw" 265CONFIG_CMDLINE="mem=32M console=ttyS0,38400 initrd=0x20410000,3145728 root=/dev/ram0 rw"
193# CONFIG_XIP_KERNEL is not set 266# CONFIG_XIP_KERNEL is not set
267# CONFIG_KEXEC is not set
194 268
195# 269#
196# Floating point emulation 270# Floating point emulation
@@ -215,6 +289,7 @@ CONFIG_BINFMT_ELF=y
215# Power management options 289# Power management options
216# 290#
217# CONFIG_PM is not set 291# CONFIG_PM is not set
292CONFIG_SUSPEND_UP_POSSIBLE=y
218 293
219# 294#
220# Networking 295# Networking
@@ -227,6 +302,10 @@ CONFIG_NET=y
227CONFIG_PACKET=y 302CONFIG_PACKET=y
228# CONFIG_PACKET_MMAP is not set 303# CONFIG_PACKET_MMAP is not set
229CONFIG_UNIX=y 304CONFIG_UNIX=y
305CONFIG_XFRM=y
306# CONFIG_XFRM_USER is not set
307# CONFIG_XFRM_SUB_POLICY is not set
308# CONFIG_XFRM_MIGRATE is not set
230# CONFIG_NET_KEY is not set 309# CONFIG_NET_KEY is not set
231CONFIG_INET=y 310CONFIG_INET=y
232# CONFIG_IP_MULTICAST is not set 311# CONFIG_IP_MULTICAST is not set
@@ -243,23 +322,26 @@ CONFIG_IP_PNP_BOOTP=y
243# CONFIG_INET_AH is not set 322# CONFIG_INET_AH is not set
244# CONFIG_INET_ESP is not set 323# CONFIG_INET_ESP is not set
245# CONFIG_INET_IPCOMP is not set 324# CONFIG_INET_IPCOMP is not set
325# CONFIG_INET_XFRM_TUNNEL is not set
246# CONFIG_INET_TUNNEL is not set 326# CONFIG_INET_TUNNEL is not set
327CONFIG_INET_XFRM_MODE_TRANSPORT=y
328CONFIG_INET_XFRM_MODE_TUNNEL=y
329CONFIG_INET_XFRM_MODE_BEET=y
330# CONFIG_INET_LRO is not set
247CONFIG_INET_DIAG=y 331CONFIG_INET_DIAG=y
248CONFIG_INET_TCP_DIAG=y 332CONFIG_INET_TCP_DIAG=y
249# CONFIG_TCP_CONG_ADVANCED is not set 333# CONFIG_TCP_CONG_ADVANCED is not set
250CONFIG_TCP_CONG_BIC=y 334CONFIG_TCP_CONG_CUBIC=y
335CONFIG_DEFAULT_TCP_CONG="cubic"
336# CONFIG_TCP_MD5SIG is not set
251# CONFIG_IPV6 is not set 337# CONFIG_IPV6 is not set
338# CONFIG_INET6_XFRM_TUNNEL is not set
339# CONFIG_INET6_TUNNEL is not set
340# CONFIG_NETWORK_SECMARK is not set
252# CONFIG_NETFILTER is not set 341# CONFIG_NETFILTER is not set
253
254#
255# DCCP Configuration (EXPERIMENTAL)
256#
257# CONFIG_IP_DCCP is not set 342# CONFIG_IP_DCCP is not set
258
259#
260# SCTP Configuration (EXPERIMENTAL)
261#
262# CONFIG_IP_SCTP is not set 343# CONFIG_IP_SCTP is not set
344# CONFIG_TIPC is not set
263# CONFIG_ATM is not set 345# CONFIG_ATM is not set
264# CONFIG_BRIDGE is not set 346# CONFIG_BRIDGE is not set
265# CONFIG_VLAN_8021Q is not set 347# CONFIG_VLAN_8021Q is not set
@@ -269,13 +351,8 @@ CONFIG_TCP_CONG_BIC=y
269# CONFIG_ATALK is not set 351# CONFIG_ATALK is not set
270# CONFIG_X25 is not set 352# CONFIG_X25 is not set
271# CONFIG_LAPB is not set 353# CONFIG_LAPB is not set
272# CONFIG_NET_DIVERT is not set
273# CONFIG_ECONET is not set 354# CONFIG_ECONET is not set
274# CONFIG_WAN_ROUTER is not set 355# CONFIG_WAN_ROUTER is not set
275
276#
277# QoS and/or fair queueing
278#
279# CONFIG_NET_SCHED is not set 356# CONFIG_NET_SCHED is not set
280 357
281# 358#
@@ -285,7 +362,17 @@ CONFIG_TCP_CONG_BIC=y
285# CONFIG_HAMRADIO is not set 362# CONFIG_HAMRADIO is not set
286# CONFIG_IRDA is not set 363# CONFIG_IRDA is not set
287# CONFIG_BT is not set 364# CONFIG_BT is not set
365# CONFIG_AF_RXRPC is not set
366
367#
368# Wireless
369#
370# CONFIG_CFG80211 is not set
371# CONFIG_WIRELESS_EXT is not set
372# CONFIG_MAC80211 is not set
288# CONFIG_IEEE80211 is not set 373# CONFIG_IEEE80211 is not set
374# CONFIG_RFKILL is not set
375# CONFIG_NET_9P is not set
289 376
290# 377#
291# Device Drivers 378# Device Drivers
@@ -294,19 +381,14 @@ CONFIG_TCP_CONG_BIC=y
294# 381#
295# Generic Driver Options 382# Generic Driver Options
296# 383#
384CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
297CONFIG_STANDALONE=y 385CONFIG_STANDALONE=y
298CONFIG_PREVENT_FIRMWARE_BUILD=y 386CONFIG_PREVENT_FIRMWARE_BUILD=y
299CONFIG_FW_LOADER=y 387CONFIG_FW_LOADER=y
300# CONFIG_DEBUG_DRIVER is not set 388# CONFIG_DEBUG_DRIVER is not set
301 389# CONFIG_DEBUG_DEVRES is not set
302# 390# CONFIG_SYS_HYPERVISOR is not set
303# Connector - unified userspace <-> kernelspace linker
304#
305# CONFIG_CONNECTOR is not set 391# CONFIG_CONNECTOR is not set
306
307#
308# Memory Technology Devices (MTD)
309#
310CONFIG_MTD=y 392CONFIG_MTD=y
311# CONFIG_MTD_DEBUG is not set 393# CONFIG_MTD_DEBUG is not set
312# CONFIG_MTD_CONCAT is not set 394# CONFIG_MTD_CONCAT is not set
@@ -319,11 +401,14 @@ CONFIG_MTD_CMDLINE_PARTS=y
319# User Modules And Translation Layers 401# User Modules And Translation Layers
320# 402#
321CONFIG_MTD_CHAR=y 403CONFIG_MTD_CHAR=y
404CONFIG_MTD_BLKDEVS=y
322CONFIG_MTD_BLOCK=y 405CONFIG_MTD_BLOCK=y
323# CONFIG_FTL is not set 406# CONFIG_FTL is not set
324# CONFIG_NFTL is not set 407# CONFIG_NFTL is not set
325# CONFIG_INFTL is not set 408# CONFIG_INFTL is not set
326# CONFIG_RFD_FTL is not set 409# CONFIG_RFD_FTL is not set
410# CONFIG_SSFDC is not set
411# CONFIG_MTD_OOPS is not set
327 412
328# 413#
329# RAM/ROM/Flash chip drivers 414# RAM/ROM/Flash chip drivers
@@ -349,15 +434,14 @@ CONFIG_MTD_CFI_UTIL=y
349# CONFIG_MTD_RAM is not set 434# CONFIG_MTD_RAM is not set
350# CONFIG_MTD_ROM is not set 435# CONFIG_MTD_ROM is not set
351# CONFIG_MTD_ABSENT is not set 436# CONFIG_MTD_ABSENT is not set
352# CONFIG_MTD_XIP is not set
353 437
354# 438#
355# Mapping drivers for chip access 439# Mapping drivers for chip access
356# 440#
357# CONFIG_MTD_COMPLEX_MAPPINGS is not set 441# CONFIG_MTD_COMPLEX_MAPPINGS is not set
358CONFIG_MTD_PHYSMAP=y 442CONFIG_MTD_PHYSMAP=y
359CONFIG_MTD_PHYSMAP_START=0 443CONFIG_MTD_PHYSMAP_START=0x0
360CONFIG_MTD_PHYSMAP_LEN=0 444CONFIG_MTD_PHYSMAP_LEN=0x0
361CONFIG_MTD_PHYSMAP_BANKWIDTH=0 445CONFIG_MTD_PHYSMAP_BANKWIDTH=0
362# CONFIG_MTD_ARM_INTEGRATOR is not set 446# CONFIG_MTD_ARM_INTEGRATOR is not set
363# CONFIG_MTD_PLATRAM is not set 447# CONFIG_MTD_PLATRAM is not set
@@ -368,7 +452,6 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=0
368# CONFIG_MTD_SLRAM is not set 452# CONFIG_MTD_SLRAM is not set
369# CONFIG_MTD_PHRAM is not set 453# CONFIG_MTD_PHRAM is not set
370# CONFIG_MTD_MTDRAM is not set 454# CONFIG_MTD_MTDRAM is not set
371# CONFIG_MTD_BLKMTD is not set
372# CONFIG_MTD_BLOCK2MTD is not set 455# CONFIG_MTD_BLOCK2MTD is not set
373 456
374# 457#
@@ -378,29 +461,15 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=0
378# CONFIG_MTD_DOC2001 is not set 461# CONFIG_MTD_DOC2001 is not set
379# CONFIG_MTD_DOC2001PLUS is not set 462# CONFIG_MTD_DOC2001PLUS is not set
380# CONFIG_MTD_AT91_DATAFLASH is not set 463# CONFIG_MTD_AT91_DATAFLASH is not set
381
382#
383# NAND Flash Device Drivers
384#
385# CONFIG_MTD_NAND is not set 464# CONFIG_MTD_NAND is not set
386
387#
388# OneNAND Flash Device Drivers
389#
390# CONFIG_MTD_ONENAND is not set 465# CONFIG_MTD_ONENAND is not set
391 466
392# 467#
393# Parallel port support 468# UBI - Unsorted block images
394# 469#
470# CONFIG_MTD_UBI is not set
395# CONFIG_PARPORT is not set 471# CONFIG_PARPORT is not set
396 472CONFIG_BLK_DEV=y
397#
398# Plug and Play support
399#
400
401#
402# Block devices
403#
404# CONFIG_BLK_DEV_COW_COMMON is not set 473# CONFIG_BLK_DEV_COW_COMMON is not set
405CONFIG_BLK_DEV_LOOP=y 474CONFIG_BLK_DEV_LOOP=y
406# CONFIG_BLK_DEV_CRYPTOLOOP is not set 475# CONFIG_BLK_DEV_CRYPTOLOOP is not set
@@ -409,13 +478,12 @@ CONFIG_BLK_DEV_LOOP=y
409CONFIG_BLK_DEV_RAM=y 478CONFIG_BLK_DEV_RAM=y
410CONFIG_BLK_DEV_RAM_COUNT=16 479CONFIG_BLK_DEV_RAM_COUNT=16
411CONFIG_BLK_DEV_RAM_SIZE=8192 480CONFIG_BLK_DEV_RAM_SIZE=8192
412CONFIG_BLK_DEV_INITRD=y 481CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
413# CONFIG_CDROM_PKTCDVD is not set 482# CONFIG_CDROM_PKTCDVD is not set
414# CONFIG_ATA_OVER_ETH is not set 483# CONFIG_ATA_OVER_ETH is not set
415 484CONFIG_MISC_DEVICES=y
416# 485# CONFIG_EEPROM_93CX6 is not set
417# ATA/ATAPI/MFM/RLL support 486CONFIG_ATMEL_SSC=y
418#
419# CONFIG_IDE is not set 487# CONFIG_IDE is not set
420 488
421# 489#
@@ -423,6 +491,9 @@ CONFIG_BLK_DEV_INITRD=y
423# 491#
424# CONFIG_RAID_ATTRS is not set 492# CONFIG_RAID_ATTRS is not set
425CONFIG_SCSI=y 493CONFIG_SCSI=y
494CONFIG_SCSI_DMA=y
495# CONFIG_SCSI_TGT is not set
496# CONFIG_SCSI_NETLINK is not set
426CONFIG_SCSI_PROC_FS=y 497CONFIG_SCSI_PROC_FS=y
427 498
428# 499#
@@ -441,97 +512,61 @@ CONFIG_SCSI_PROC_FS=y
441# CONFIG_SCSI_MULTI_LUN is not set 512# CONFIG_SCSI_MULTI_LUN is not set
442# CONFIG_SCSI_CONSTANTS is not set 513# CONFIG_SCSI_CONSTANTS is not set
443# CONFIG_SCSI_LOGGING is not set 514# CONFIG_SCSI_LOGGING is not set
515# CONFIG_SCSI_SCAN_ASYNC is not set
516CONFIG_SCSI_WAIT_SCAN=m
444 517
445# 518#
446# SCSI Transport Attributes 519# SCSI Transports
447# 520#
448# CONFIG_SCSI_SPI_ATTRS is not set 521# CONFIG_SCSI_SPI_ATTRS is not set
449# CONFIG_SCSI_FC_ATTRS is not set 522# CONFIG_SCSI_FC_ATTRS is not set
450# CONFIG_SCSI_ISCSI_ATTRS is not set 523# CONFIG_SCSI_ISCSI_ATTRS is not set
451# CONFIG_SCSI_SAS_ATTRS is not set 524# CONFIG_SCSI_SAS_LIBSAS is not set
452 525# CONFIG_SCSI_SRP_ATTRS is not set
453# 526CONFIG_SCSI_LOWLEVEL=y
454# SCSI low-level drivers
455#
456# CONFIG_ISCSI_TCP is not set 527# CONFIG_ISCSI_TCP is not set
457# CONFIG_SCSI_SATA is not set
458# CONFIG_SCSI_DEBUG is not set 528# CONFIG_SCSI_DEBUG is not set
459 529# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
460# 530# CONFIG_ATA is not set
461# PCMCIA SCSI adapter support
462#
463# CONFIG_PCMCIA_AHA152X is not set
464# CONFIG_PCMCIA_FDOMAIN is not set
465# CONFIG_PCMCIA_NINJA_SCSI is not set
466# CONFIG_PCMCIA_QLOGIC is not set
467# CONFIG_PCMCIA_SYM53C500 is not set
468
469#
470# Multi-device support (RAID and LVM)
471#
472# CONFIG_MD is not set 531# CONFIG_MD is not set
473
474#
475# Fusion MPT device support
476#
477# CONFIG_FUSION is not set
478
479#
480# IEEE 1394 (FireWire) support
481#
482
483#
484# I2O device support
485#
486
487#
488# Network device support
489#
490CONFIG_NETDEVICES=y 532CONFIG_NETDEVICES=y
533# CONFIG_NETDEVICES_MULTIQUEUE is not set
491# CONFIG_DUMMY is not set 534# CONFIG_DUMMY is not set
492# CONFIG_BONDING is not set 535# CONFIG_BONDING is not set
536# CONFIG_MACVLAN is not set
493# CONFIG_EQUALIZER is not set 537# CONFIG_EQUALIZER is not set
494# CONFIG_TUN is not set 538# CONFIG_TUN is not set
495 539# CONFIG_VETH is not set
496#
497# PHY device support
498#
499# CONFIG_PHYLIB is not set 540# CONFIG_PHYLIB is not set
500
501#
502# Ethernet (10 or 100Mbit)
503#
504CONFIG_NET_ETHERNET=y 541CONFIG_NET_ETHERNET=y
505CONFIG_MII=y 542CONFIG_MII=y
506CONFIG_ARM_AT91_ETHER=y 543CONFIG_ARM_AT91_ETHER=y
544# CONFIG_AX88796 is not set
507# CONFIG_SMC91X is not set 545# CONFIG_SMC91X is not set
508# CONFIG_DM9000 is not set 546# CONFIG_DM9000 is not set
547# CONFIG_IBM_NEW_EMAC_ZMII is not set
548# CONFIG_IBM_NEW_EMAC_RGMII is not set
549# CONFIG_IBM_NEW_EMAC_TAH is not set
550# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
551# CONFIG_B44 is not set
552CONFIG_NETDEV_1000=y
553CONFIG_NETDEV_10000=y
509 554
510# 555#
511# Ethernet (1000 Mbit) 556# Wireless LAN
512#
513
514#
515# Ethernet (10000 Mbit)
516# 557#
558# CONFIG_WLAN_PRE80211 is not set
559# CONFIG_WLAN_80211 is not set
517 560
518# 561#
519# Token Ring devices 562# USB Network Adapters
520#
521
522#
523# Wireless LAN (non-hamradio)
524#
525# CONFIG_NET_RADIO is not set
526
527#
528# PCMCIA network device support
529# 563#
564# CONFIG_USB_CATC is not set
565# CONFIG_USB_KAWETH is not set
566# CONFIG_USB_PEGASUS is not set
567# CONFIG_USB_RTL8150 is not set
568# CONFIG_USB_USBNET is not set
530# CONFIG_NET_PCMCIA is not set 569# CONFIG_NET_PCMCIA is not set
531
532#
533# Wan interfaces
534#
535# CONFIG_WAN is not set 570# CONFIG_WAN is not set
536# CONFIG_PPP is not set 571# CONFIG_PPP is not set
537# CONFIG_SLIP is not set 572# CONFIG_SLIP is not set
@@ -539,26 +574,23 @@ CONFIG_ARM_AT91_ETHER=y
539# CONFIG_NETCONSOLE is not set 574# CONFIG_NETCONSOLE is not set
540# CONFIG_NETPOLL is not set 575# CONFIG_NETPOLL is not set
541# CONFIG_NET_POLL_CONTROLLER is not set 576# CONFIG_NET_POLL_CONTROLLER is not set
542
543#
544# ISDN subsystem
545#
546# CONFIG_ISDN is not set 577# CONFIG_ISDN is not set
547 578
548# 579#
549# Input device support 580# Input device support
550# 581#
551CONFIG_INPUT=y 582CONFIG_INPUT=y
583# CONFIG_INPUT_FF_MEMLESS is not set
584# CONFIG_INPUT_POLLDEV is not set
552 585
553# 586#
554# Userland interfaces 587# Userland interfaces
555# 588#
556CONFIG_INPUT_MOUSEDEV=y 589CONFIG_INPUT_MOUSEDEV=y
557CONFIG_INPUT_MOUSEDEV_PSAUX=y 590# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
558CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 591CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
559CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 592CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
560# CONFIG_INPUT_JOYDEV is not set 593# CONFIG_INPUT_JOYDEV is not set
561# CONFIG_INPUT_TSDEV is not set
562# CONFIG_INPUT_EVDEV is not set 594# CONFIG_INPUT_EVDEV is not set
563# CONFIG_INPUT_EVBUG is not set 595# CONFIG_INPUT_EVBUG is not set
564 596
@@ -568,6 +600,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
568# CONFIG_INPUT_KEYBOARD is not set 600# CONFIG_INPUT_KEYBOARD is not set
569# CONFIG_INPUT_MOUSE is not set 601# CONFIG_INPUT_MOUSE is not set
570# CONFIG_INPUT_JOYSTICK is not set 602# CONFIG_INPUT_JOYSTICK is not set
603# CONFIG_INPUT_TABLET is not set
571# CONFIG_INPUT_TOUCHSCREEN is not set 604# CONFIG_INPUT_TOUCHSCREEN is not set
572# CONFIG_INPUT_MISC is not set 605# CONFIG_INPUT_MISC is not set
573 606
@@ -583,6 +616,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
583CONFIG_VT=y 616CONFIG_VT=y
584CONFIG_VT_CONSOLE=y 617CONFIG_VT_CONSOLE=y
585CONFIG_HW_CONSOLE=y 618CONFIG_HW_CONSOLE=y
619# CONFIG_VT_HW_CONSOLE_BINDING is not set
586# CONFIG_SERIAL_NONSTANDARD is not set 620# CONFIG_SERIAL_NONSTANDARD is not set
587 621
588# 622#
@@ -601,152 +635,114 @@ CONFIG_SERIAL_CORE_CONSOLE=y
601CONFIG_UNIX98_PTYS=y 635CONFIG_UNIX98_PTYS=y
602CONFIG_LEGACY_PTYS=y 636CONFIG_LEGACY_PTYS=y
603CONFIG_LEGACY_PTY_COUNT=256 637CONFIG_LEGACY_PTY_COUNT=256
604
605#
606# IPMI
607#
608# CONFIG_IPMI_HANDLER is not set 638# CONFIG_IPMI_HANDLER is not set
609
610#
611# Watchdog Cards
612#
613CONFIG_WATCHDOG=y
614CONFIG_WATCHDOG_NOWAYOUT=y
615
616#
617# Watchdog Device Drivers
618#
619# CONFIG_SOFT_WATCHDOG is not set
620CONFIG_AT91RM9200_WATCHDOG=y
621
622#
623# USB-based Watchdog Cards
624#
625# CONFIG_USBPCWATCHDOG is not set
626# CONFIG_HW_RANDOM is not set 639# CONFIG_HW_RANDOM is not set
627# CONFIG_NVRAM is not set 640# CONFIG_NVRAM is not set
628# CONFIG_DTLK is not set
629# CONFIG_R3964 is not set 641# CONFIG_R3964 is not set
630 642
631# 643#
632# Ftape, the floppy tape device driver
633#
634
635#
636# PCMCIA character devices 644# PCMCIA character devices
637# 645#
638# CONFIG_SYNCLINK_CS is not set 646# CONFIG_SYNCLINK_CS is not set
639# CONFIG_CARDMAN_4000 is not set 647# CONFIG_CARDMAN_4000 is not set
640# CONFIG_CARDMAN_4040 is not set 648# CONFIG_CARDMAN_4040 is not set
641# CONFIG_RAW_DRIVER is not set 649# CONFIG_RAW_DRIVER is not set
642
643#
644# TPM devices
645#
646# CONFIG_TCG_TPM is not set 650# CONFIG_TCG_TPM is not set
647# CONFIG_TELCLOCK is not set
648CONFIG_AT91_SPI=y 651CONFIG_AT91_SPI=y
649CONFIG_AT91_SPIDEV=y 652CONFIG_AT91_SPIDEV=y
650
651#
652# I2C support
653#
654CONFIG_I2C=y 653CONFIG_I2C=y
654CONFIG_I2C_BOARDINFO=y
655CONFIG_I2C_CHARDEV=y 655CONFIG_I2C_CHARDEV=y
656 656
657# 657#
658# I2C Algorithms 658# I2C Algorithms
659# 659#
660# CONFIG_I2C_ALGOBIT is not set 660CONFIG_I2C_ALGOBIT=y
661# CONFIG_I2C_ALGOPCF is not set 661# CONFIG_I2C_ALGOPCF is not set
662# CONFIG_I2C_ALGOPCA is not set 662# CONFIG_I2C_ALGOPCA is not set
663 663
664# 664#
665# I2C Hardware Bus support 665# I2C Hardware Bus support
666# 666#
667CONFIG_I2C_AT91=y 667CONFIG_I2C_GPIO=y
668# CONFIG_I2C_OCORES is not set
668# CONFIG_I2C_PARPORT_LIGHT is not set 669# CONFIG_I2C_PARPORT_LIGHT is not set
670# CONFIG_I2C_SIMTEC is not set
671# CONFIG_I2C_TAOS_EVM is not set
669# CONFIG_I2C_STUB is not set 672# CONFIG_I2C_STUB is not set
670# CONFIG_I2C_PCA_ISA is not set 673# CONFIG_I2C_TINY_USB is not set
674# CONFIG_I2C_PCA is not set
671 675
672# 676#
673# Miscellaneous I2C Chip support 677# Miscellaneous I2C Chip support
674# 678#
675# CONFIG_SENSORS_DS1337 is not set 679# CONFIG_SENSORS_DS1337 is not set
676# CONFIG_SENSORS_DS1374 is not set 680# CONFIG_SENSORS_DS1374 is not set
681# CONFIG_DS1682 is not set
677# CONFIG_SENSORS_EEPROM is not set 682# CONFIG_SENSORS_EEPROM is not set
678# CONFIG_SENSORS_PCF8574 is not set 683# CONFIG_SENSORS_PCF8574 is not set
679# CONFIG_SENSORS_PCA9539 is not set 684# CONFIG_SENSORS_PCA9539 is not set
680# CONFIG_SENSORS_PCF8591 is not set 685# CONFIG_SENSORS_PCF8591 is not set
681# CONFIG_SENSORS_RTC8564 is not set
682# CONFIG_SENSORS_MAX6875 is not set 686# CONFIG_SENSORS_MAX6875 is not set
683# CONFIG_RTC_X1205_I2C is not set 687# CONFIG_SENSORS_TSL2550 is not set
684# CONFIG_I2C_DEBUG_CORE is not set 688# CONFIG_I2C_DEBUG_CORE is not set
685# CONFIG_I2C_DEBUG_ALGO is not set 689# CONFIG_I2C_DEBUG_ALGO is not set
686# CONFIG_I2C_DEBUG_BUS is not set 690# CONFIG_I2C_DEBUG_BUS is not set
687# CONFIG_I2C_DEBUG_CHIP is not set 691# CONFIG_I2C_DEBUG_CHIP is not set
688 692
689# 693#
690# Hardware Monitoring support 694# SPI support
691#
692CONFIG_HWMON=y
693# CONFIG_HWMON_VID is not set
694# CONFIG_SENSORS_ADM1021 is not set
695# CONFIG_SENSORS_ADM1025 is not set
696# CONFIG_SENSORS_ADM1026 is not set
697# CONFIG_SENSORS_ADM1031 is not set
698# CONFIG_SENSORS_ADM9240 is not set
699# CONFIG_SENSORS_ASB100 is not set
700# CONFIG_SENSORS_ATXP1 is not set
701# CONFIG_SENSORS_DS1621 is not set
702# CONFIG_SENSORS_FSCHER is not set
703# CONFIG_SENSORS_FSCPOS is not set
704# CONFIG_SENSORS_GL518SM is not set
705# CONFIG_SENSORS_GL520SM is not set
706# CONFIG_SENSORS_IT87 is not set
707# CONFIG_SENSORS_LM63 is not set
708# CONFIG_SENSORS_LM75 is not set
709# CONFIG_SENSORS_LM77 is not set
710# CONFIG_SENSORS_LM78 is not set
711# CONFIG_SENSORS_LM80 is not set
712# CONFIG_SENSORS_LM83 is not set
713# CONFIG_SENSORS_LM85 is not set
714# CONFIG_SENSORS_LM87 is not set
715# CONFIG_SENSORS_LM90 is not set
716# CONFIG_SENSORS_LM92 is not set
717# CONFIG_SENSORS_MAX1619 is not set
718# CONFIG_SENSORS_PC87360 is not set
719# CONFIG_SENSORS_SMSC47M1 is not set
720# CONFIG_SENSORS_SMSC47B397 is not set
721# CONFIG_SENSORS_W83781D is not set
722# CONFIG_SENSORS_W83792D is not set
723# CONFIG_SENSORS_W83L785TS is not set
724# CONFIG_SENSORS_W83627HF is not set
725# CONFIG_SENSORS_W83627EHF is not set
726# CONFIG_HWMON_DEBUG_CHIP is not set
727
728#
729# Misc devices
730#
731
732#
733# Multimedia Capabilities Port drivers
734# 695#
696# CONFIG_SPI is not set
697# CONFIG_SPI_MASTER is not set
698# CONFIG_W1 is not set
699# CONFIG_POWER_SUPPLY is not set
700# CONFIG_HWMON is not set
701CONFIG_WATCHDOG=y
702CONFIG_WATCHDOG_NOWAYOUT=y
735 703
736# 704#
737# Multimedia devices 705# Watchdog Device Drivers
738# 706#
739# CONFIG_VIDEO_DEV is not set 707# CONFIG_SOFT_WATCHDOG is not set
708CONFIG_AT91RM9200_WATCHDOG=y
709
710#
711# USB-based Watchdog Cards
712#
713# CONFIG_USBPCWATCHDOG is not set
714
715#
716# Sonics Silicon Backplane
717#
718CONFIG_SSB_POSSIBLE=y
719# CONFIG_SSB is not set
740 720
741# 721#
742# Digital Video Broadcasting Devices 722# Multifunction device drivers
743# 723#
744# CONFIG_DVB is not set 724# CONFIG_MFD_SM501 is not set
725
726#
727# Multimedia devices
728#
729# CONFIG_VIDEO_DEV is not set
730# CONFIG_DVB_CORE is not set
731CONFIG_DAB=y
732# CONFIG_USB_DABUSB is not set
745 733
746# 734#
747# Graphics support 735# Graphics support
748# 736#
737# CONFIG_VGASTATE is not set
738# CONFIG_VIDEO_OUTPUT_CONTROL is not set
749# CONFIG_FB is not set 739# CONFIG_FB is not set
740# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
741
742#
743# Display device support
744#
745# CONFIG_DISPLAY_SUPPORT is not set
750 746
751# 747#
752# Console display driver support 748# Console display driver support
@@ -758,12 +754,25 @@ CONFIG_DUMMY_CONSOLE=y
758# Sound 754# Sound
759# 755#
760# CONFIG_SOUND is not set 756# CONFIG_SOUND is not set
757CONFIG_HID_SUPPORT=y
758CONFIG_HID=y
759CONFIG_HID_DEBUG=y
760# CONFIG_HIDRAW is not set
761
762#
763# USB Input Devices
764#
765# CONFIG_USB_HID is not set
761 766
762# 767#
763# USB support 768# USB HID Boot Protocol drivers
764# 769#
770# CONFIG_USB_KBD is not set
771# CONFIG_USB_MOUSE is not set
772CONFIG_USB_SUPPORT=y
765CONFIG_USB_ARCH_HAS_HCD=y 773CONFIG_USB_ARCH_HAS_HCD=y
766CONFIG_USB_ARCH_HAS_OHCI=y 774CONFIG_USB_ARCH_HAS_OHCI=y
775# CONFIG_USB_ARCH_HAS_EHCI is not set
767CONFIG_USB=y 776CONFIG_USB=y
768CONFIG_USB_DEBUG=y 777CONFIG_USB_DEBUG=y
769 778
@@ -771,7 +780,7 @@ CONFIG_USB_DEBUG=y
771# Miscellaneous USB options 780# Miscellaneous USB options
772# 781#
773CONFIG_USB_DEVICEFS=y 782CONFIG_USB_DEVICEFS=y
774# CONFIG_USB_BANDWIDTH is not set 783CONFIG_USB_DEVICE_CLASS=y
775# CONFIG_USB_DYNAMIC_MINORS is not set 784# CONFIG_USB_DYNAMIC_MINORS is not set
776# CONFIG_USB_OTG is not set 785# CONFIG_USB_OTG is not set
777 786
@@ -780,9 +789,11 @@ CONFIG_USB_DEVICEFS=y
780# 789#
781# CONFIG_USB_ISP116X_HCD is not set 790# CONFIG_USB_ISP116X_HCD is not set
782CONFIG_USB_OHCI_HCD=y 791CONFIG_USB_OHCI_HCD=y
783# CONFIG_USB_OHCI_BIG_ENDIAN is not set 792# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
793# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
784CONFIG_USB_OHCI_LITTLE_ENDIAN=y 794CONFIG_USB_OHCI_LITTLE_ENDIAN=y
785# CONFIG_USB_SL811_HCD is not set 795# CONFIG_USB_SL811_HCD is not set
796# CONFIG_USB_R8A66597_HCD is not set
786 797
787# 798#
788# USB Device Class drivers 799# USB Device Class drivers
@@ -801,59 +812,21 @@ CONFIG_USB_STORAGE=y
801# CONFIG_USB_STORAGE_DEBUG is not set 812# CONFIG_USB_STORAGE_DEBUG is not set
802# CONFIG_USB_STORAGE_DATAFAB is not set 813# CONFIG_USB_STORAGE_DATAFAB is not set
803# CONFIG_USB_STORAGE_FREECOM is not set 814# CONFIG_USB_STORAGE_FREECOM is not set
815# CONFIG_USB_STORAGE_ISD200 is not set
804# CONFIG_USB_STORAGE_DPCM is not set 816# CONFIG_USB_STORAGE_DPCM is not set
805# CONFIG_USB_STORAGE_USBAT is not set 817# CONFIG_USB_STORAGE_USBAT is not set
806# CONFIG_USB_STORAGE_SDDR09 is not set 818# CONFIG_USB_STORAGE_SDDR09 is not set
807# CONFIG_USB_STORAGE_SDDR55 is not set 819# CONFIG_USB_STORAGE_SDDR55 is not set
808# CONFIG_USB_STORAGE_JUMPSHOT is not set 820# CONFIG_USB_STORAGE_JUMPSHOT is not set
809 821# CONFIG_USB_STORAGE_ALAUDA is not set
810# 822# CONFIG_USB_STORAGE_KARMA is not set
811# USB Input Devices 823# CONFIG_USB_LIBUSUAL is not set
812#
813# CONFIG_USB_HID is not set
814
815#
816# USB HID Boot Protocol drivers
817#
818# CONFIG_USB_KBD is not set
819# CONFIG_USB_MOUSE is not set
820# CONFIG_USB_AIPTEK is not set
821# CONFIG_USB_WACOM is not set
822# CONFIG_USB_ACECAD is not set
823# CONFIG_USB_KBTAB is not set
824# CONFIG_USB_POWERMATE is not set
825# CONFIG_USB_MTOUCH is not set
826# CONFIG_USB_ITMTOUCH is not set
827# CONFIG_USB_EGALAX is not set
828# CONFIG_USB_YEALINK is not set
829# CONFIG_USB_XPAD is not set
830# CONFIG_USB_ATI_REMOTE is not set
831# CONFIG_USB_KEYSPAN_REMOTE is not set
832# CONFIG_USB_APPLETOUCH is not set
833 824
834# 825#
835# USB Imaging devices 826# USB Imaging devices
836# 827#
837# CONFIG_USB_MDC800 is not set 828# CONFIG_USB_MDC800 is not set
838# CONFIG_USB_MICROTEK is not set 829# CONFIG_USB_MICROTEK is not set
839
840#
841# USB Multimedia devices
842#
843# CONFIG_USB_DABUSB is not set
844
845#
846# Video4Linux support is needed for USB Multimedia device support
847#
848
849#
850# USB Network Adapters
851#
852# CONFIG_USB_CATC is not set
853# CONFIG_USB_KAWETH is not set
854# CONFIG_USB_PEGASUS is not set
855# CONFIG_USB_RTL8150 is not set
856# CONFIG_USB_USBNET is not set
857CONFIG_USB_MON=y 830CONFIG_USB_MON=y
858 831
859# 832#
@@ -866,15 +839,18 @@ CONFIG_USB_MON=y
866CONFIG_USB_SERIAL=y 839CONFIG_USB_SERIAL=y
867CONFIG_USB_SERIAL_CONSOLE=y 840CONFIG_USB_SERIAL_CONSOLE=y
868CONFIG_USB_SERIAL_GENERIC=y 841CONFIG_USB_SERIAL_GENERIC=y
842# CONFIG_USB_SERIAL_AIRCABLE is not set
869# CONFIG_USB_SERIAL_AIRPRIME is not set 843# CONFIG_USB_SERIAL_AIRPRIME is not set
870# CONFIG_USB_SERIAL_ANYDATA is not set 844# CONFIG_USB_SERIAL_ARK3116 is not set
871# CONFIG_USB_SERIAL_BELKIN is not set 845# CONFIG_USB_SERIAL_BELKIN is not set
846# CONFIG_USB_SERIAL_CH341 is not set
872# CONFIG_USB_SERIAL_WHITEHEAT is not set 847# CONFIG_USB_SERIAL_WHITEHEAT is not set
873# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set 848# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
874# CONFIG_USB_SERIAL_CP2101 is not set 849# CONFIG_USB_SERIAL_CP2101 is not set
875# CONFIG_USB_SERIAL_CYPRESS_M8 is not set 850# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
876# CONFIG_USB_SERIAL_EMPEG is not set 851# CONFIG_USB_SERIAL_EMPEG is not set
877CONFIG_USB_SERIAL_FTDI_SIO=y 852CONFIG_USB_SERIAL_FTDI_SIO=y
853# CONFIG_USB_SERIAL_FUNSOFT is not set
878# CONFIG_USB_SERIAL_VISOR is not set 854# CONFIG_USB_SERIAL_VISOR is not set
879# CONFIG_USB_SERIAL_IPAQ is not set 855# CONFIG_USB_SERIAL_IPAQ is not set
880# CONFIG_USB_SERIAL_IR is not set 856# CONFIG_USB_SERIAL_IR is not set
@@ -899,14 +875,20 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
899# CONFIG_USB_SERIAL_KLSI is not set 875# CONFIG_USB_SERIAL_KLSI is not set
900# CONFIG_USB_SERIAL_KOBIL_SCT is not set 876# CONFIG_USB_SERIAL_KOBIL_SCT is not set
901CONFIG_USB_SERIAL_MCT_U232=y 877CONFIG_USB_SERIAL_MCT_U232=y
878# CONFIG_USB_SERIAL_MOS7720 is not set
879# CONFIG_USB_SERIAL_MOS7840 is not set
880# CONFIG_USB_SERIAL_NAVMAN is not set
902# CONFIG_USB_SERIAL_PL2303 is not set 881# CONFIG_USB_SERIAL_PL2303 is not set
882# CONFIG_USB_SERIAL_OTI6858 is not set
903# CONFIG_USB_SERIAL_HP4X is not set 883# CONFIG_USB_SERIAL_HP4X is not set
904# CONFIG_USB_SERIAL_SAFE is not set 884# CONFIG_USB_SERIAL_SAFE is not set
885# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
905# CONFIG_USB_SERIAL_TI is not set 886# CONFIG_USB_SERIAL_TI is not set
906# CONFIG_USB_SERIAL_CYBERJACK is not set 887# CONFIG_USB_SERIAL_CYBERJACK is not set
907# CONFIG_USB_SERIAL_XIRCOM is not set 888# CONFIG_USB_SERIAL_XIRCOM is not set
908# CONFIG_USB_SERIAL_OPTION is not set 889# CONFIG_USB_SERIAL_OPTION is not set
909# CONFIG_USB_SERIAL_OMNINET is not set 890# CONFIG_USB_SERIAL_OMNINET is not set
891# CONFIG_USB_SERIAL_DEBUG is not set
910CONFIG_USB_EZUSB=y 892CONFIG_USB_EZUSB=y
911 893
912# 894#
@@ -914,16 +896,22 @@ CONFIG_USB_EZUSB=y
914# 896#
915# CONFIG_USB_EMI62 is not set 897# CONFIG_USB_EMI62 is not set
916# CONFIG_USB_EMI26 is not set 898# CONFIG_USB_EMI26 is not set
899# CONFIG_USB_ADUTUX is not set
917# CONFIG_USB_AUERSWALD is not set 900# CONFIG_USB_AUERSWALD is not set
918# CONFIG_USB_RIO500 is not set 901# CONFIG_USB_RIO500 is not set
919# CONFIG_USB_LEGOTOWER is not set 902# CONFIG_USB_LEGOTOWER is not set
920# CONFIG_USB_LCD is not set 903# CONFIG_USB_LCD is not set
904# CONFIG_USB_BERRY_CHARGE is not set
921# CONFIG_USB_LED is not set 905# CONFIG_USB_LED is not set
906# CONFIG_USB_CYPRESS_CY7C63 is not set
922# CONFIG_USB_CYTHERM is not set 907# CONFIG_USB_CYTHERM is not set
923# CONFIG_USB_PHIDGETKIT is not set 908# CONFIG_USB_PHIDGET is not set
924# CONFIG_USB_PHIDGETSERVO is not set
925# CONFIG_USB_IDMOUSE is not set 909# CONFIG_USB_IDMOUSE is not set
910# CONFIG_USB_FTDI_ELAN is not set
911# CONFIG_USB_APPLEDISPLAY is not set
926# CONFIG_USB_LD is not set 912# CONFIG_USB_LD is not set
913# CONFIG_USB_TRANCEVIBRATOR is not set
914# CONFIG_USB_IOWARRIOR is not set
927# CONFIG_USB_TEST is not set 915# CONFIG_USB_TEST is not set
928 916
929# 917#
@@ -934,13 +922,19 @@ CONFIG_USB_EZUSB=y
934# USB Gadget Support 922# USB Gadget Support
935# 923#
936CONFIG_USB_GADGET=y 924CONFIG_USB_GADGET=y
925# CONFIG_USB_GADGET_DEBUG is not set
937# CONFIG_USB_GADGET_DEBUG_FILES is not set 926# CONFIG_USB_GADGET_DEBUG_FILES is not set
938CONFIG_USB_GADGET_SELECTED=y 927CONFIG_USB_GADGET_SELECTED=y
928# CONFIG_USB_GADGET_AMD5536UDC is not set
929# CONFIG_USB_GADGET_ATMEL_USBA is not set
930# CONFIG_USB_GADGET_FSL_USB2 is not set
939# CONFIG_USB_GADGET_NET2280 is not set 931# CONFIG_USB_GADGET_NET2280 is not set
940# CONFIG_USB_GADGET_PXA2XX is not set 932# CONFIG_USB_GADGET_PXA2XX is not set
933# CONFIG_USB_GADGET_M66592 is not set
941# CONFIG_USB_GADGET_GOKU is not set 934# CONFIG_USB_GADGET_GOKU is not set
942# CONFIG_USB_GADGET_LH7A40X is not set 935# CONFIG_USB_GADGET_LH7A40X is not set
943# CONFIG_USB_GADGET_OMAP is not set 936# CONFIG_USB_GADGET_OMAP is not set
937# CONFIG_USB_GADGET_S3C2410 is not set
944CONFIG_USB_GADGET_AT91=y 938CONFIG_USB_GADGET_AT91=y
945CONFIG_USB_AT91=y 939CONFIG_USB_AT91=y
946# CONFIG_USB_GADGET_DUMMY_HCD is not set 940# CONFIG_USB_GADGET_DUMMY_HCD is not set
@@ -950,22 +944,28 @@ CONFIG_USB_AT91=y
950# CONFIG_USB_GADGETFS is not set 944# CONFIG_USB_GADGETFS is not set
951# CONFIG_USB_FILE_STORAGE is not set 945# CONFIG_USB_FILE_STORAGE is not set
952# CONFIG_USB_G_SERIAL is not set 946# CONFIG_USB_G_SERIAL is not set
947# CONFIG_USB_MIDI_GADGET is not set
948CONFIG_MMC=y
949# CONFIG_MMC_DEBUG is not set
950# CONFIG_MMC_UNSAFE_RESUME is not set
953 951
954# 952#
955# MMC/SD Card support 953# MMC/SD Card Drivers
956# 954#
957CONFIG_MMC=y
958# CONFIG_MMC_DEBUG is not set
959CONFIG_MMC_BLOCK=y 955CONFIG_MMC_BLOCK=y
960CONFIG_MMC_AT91RM9200=y 956CONFIG_MMC_BLOCK_BOUNCE=y
957# CONFIG_SDIO_UART is not set
961 958
962# 959#
963# Real Time Clock 960# MMC/SD Host Controller Drivers
964# 961#
962# CONFIG_MMC_AT91 is not set
963# CONFIG_NEW_LEDS is not set
965CONFIG_RTC_LIB=y 964CONFIG_RTC_LIB=y
966CONFIG_RTC_CLASS=y 965CONFIG_RTC_CLASS=y
967CONFIG_RTC_HCTOSYS=y 966CONFIG_RTC_HCTOSYS=y
968CONFIG_RTC_HCTOSYS_DEVICE="rtc1" 967CONFIG_RTC_HCTOSYS_DEVICE="rtc1"
968# CONFIG_RTC_DEBUG is not set
969 969
970# 970#
971# RTC interfaces 971# RTC interfaces
@@ -974,39 +974,60 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc1"
974CONFIG_RTC_INTF_PROC=y 974CONFIG_RTC_INTF_PROC=y
975CONFIG_RTC_INTF_DEV=y 975CONFIG_RTC_INTF_DEV=y
976# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set 976# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
977# CONFIG_RTC_DRV_TEST is not set
977 978
978# 979#
979# RTC drivers 980# I2C RTC drivers
980# 981#
981# CONFIG_RTC_DRV_X1205 is not set
982CONFIG_RTC_DRV_DS1307=y 982CONFIG_RTC_DRV_DS1307=y
983# CONFIG_RTC_DRV_DS1553 is not set 983# CONFIG_RTC_DRV_DS1374 is not set
984# CONFIG_RTC_DRV_ISL1208 is not set
985# CONFIG_RTC_DRV_DS1672 is not set 984# CONFIG_RTC_DRV_DS1672 is not set
986# CONFIG_RTC_DRV_DS1742 is not set 985# CONFIG_RTC_DRV_MAX6900 is not set
986# CONFIG_RTC_DRV_RS5C372 is not set
987# CONFIG_RTC_DRV_ISL1208 is not set
988# CONFIG_RTC_DRV_X1205 is not set
987# CONFIG_RTC_DRV_PCF8563 is not set 989# CONFIG_RTC_DRV_PCF8563 is not set
988# CONFIG_RTC_DRV_PCF8583 is not set 990# CONFIG_RTC_DRV_PCF8583 is not set
989# CONFIG_RTC_DRV_RS5C372 is not set 991# CONFIG_RTC_DRV_M41T80 is not set
992
993#
994# SPI RTC drivers
995#
996
997#
998# Platform RTC drivers
999#
1000# CONFIG_RTC_DRV_CMOS is not set
1001# CONFIG_RTC_DRV_DS1553 is not set
1002# CONFIG_RTC_DRV_STK17TA8 is not set
1003# CONFIG_RTC_DRV_DS1742 is not set
990# CONFIG_RTC_DRV_M48T86 is not set 1004# CONFIG_RTC_DRV_M48T86 is not set
991CONFIG_RTC_DRV_AT91RM9200=y 1005# CONFIG_RTC_DRV_M48T59 is not set
992# CONFIG_RTC_DRV_TEST is not set
993# CONFIG_RTC_DRV_V3020 is not set 1006# CONFIG_RTC_DRV_V3020 is not set
994 1007
995# 1008#
1009# on-CPU RTC drivers
1010#
1011CONFIG_RTC_DRV_AT91RM9200=y
1012
1013#
996# File systems 1014# File systems
997# 1015#
998CONFIG_EXT2_FS=y 1016CONFIG_EXT2_FS=y
999# CONFIG_EXT2_FS_XATTR is not set 1017# CONFIG_EXT2_FS_XATTR is not set
1000# CONFIG_EXT2_FS_XIP is not set 1018# CONFIG_EXT2_FS_XIP is not set
1001# CONFIG_EXT3_FS is not set 1019# CONFIG_EXT3_FS is not set
1002# CONFIG_JBD is not set 1020# CONFIG_EXT4DEV_FS is not set
1003# CONFIG_REISERFS_FS is not set 1021# CONFIG_REISERFS_FS is not set
1004# CONFIG_JFS_FS is not set 1022# CONFIG_JFS_FS is not set
1005# CONFIG_FS_POSIX_ACL is not set 1023# CONFIG_FS_POSIX_ACL is not set
1006# CONFIG_XFS_FS is not set 1024# CONFIG_XFS_FS is not set
1025# CONFIG_GFS2_FS is not set
1026# CONFIG_OCFS2_FS is not set
1007# CONFIG_MINIX_FS is not set 1027# CONFIG_MINIX_FS is not set
1008# CONFIG_ROMFS_FS is not set 1028# CONFIG_ROMFS_FS is not set
1009CONFIG_INOTIFY=y 1029CONFIG_INOTIFY=y
1030CONFIG_INOTIFY_USER=y
1010# CONFIG_QUOTA is not set 1031# CONFIG_QUOTA is not set
1011CONFIG_DNOTIFY=y 1032CONFIG_DNOTIFY=y
1012# CONFIG_AUTOFS_FS is not set 1033# CONFIG_AUTOFS_FS is not set
@@ -1030,11 +1051,12 @@ CONFIG_DNOTIFY=y
1030# Pseudo filesystems 1051# Pseudo filesystems
1031# 1052#
1032CONFIG_PROC_FS=y 1053CONFIG_PROC_FS=y
1054CONFIG_PROC_SYSCTL=y
1033CONFIG_SYSFS=y 1055CONFIG_SYSFS=y
1034CONFIG_TMPFS=y 1056CONFIG_TMPFS=y
1057# CONFIG_TMPFS_POSIX_ACL is not set
1035# CONFIG_HUGETLB_PAGE is not set 1058# CONFIG_HUGETLB_PAGE is not set
1036CONFIG_RAMFS=y 1059# CONFIG_CONFIGFS_FS is not set
1037# CONFIG_RELAYFS_FS is not set
1038 1060
1039# 1061#
1040# Miscellaneous filesystems 1062# Miscellaneous filesystems
@@ -1046,7 +1068,6 @@ CONFIG_RAMFS=y
1046# CONFIG_BEFS_FS is not set 1068# CONFIG_BEFS_FS is not set
1047# CONFIG_BFS_FS is not set 1069# CONFIG_BFS_FS is not set
1048# CONFIG_EFS_FS is not set 1070# CONFIG_EFS_FS is not set
1049# CONFIG_JFFS_FS is not set
1050# CONFIG_JFFS2_FS is not set 1071# CONFIG_JFFS2_FS is not set
1051CONFIG_CRAMFS=y 1072CONFIG_CRAMFS=y
1052# CONFIG_VXFS_FS is not set 1073# CONFIG_VXFS_FS is not set
@@ -1054,10 +1075,7 @@ CONFIG_CRAMFS=y
1054# CONFIG_QNX4FS_FS is not set 1075# CONFIG_QNX4FS_FS is not set
1055# CONFIG_SYSV_FS is not set 1076# CONFIG_SYSV_FS is not set
1056# CONFIG_UFS_FS is not set 1077# CONFIG_UFS_FS is not set
1057 1078CONFIG_NETWORK_FILESYSTEMS=y
1058#
1059# Network File Systems
1060#
1061CONFIG_NFS_FS=y 1079CONFIG_NFS_FS=y
1062CONFIG_NFS_V3=y 1080CONFIG_NFS_V3=y
1063# CONFIG_NFS_V3_ACL is not set 1081# CONFIG_NFS_V3_ACL is not set
@@ -1070,6 +1088,7 @@ CONFIG_LOCKD_V4=y
1070CONFIG_NFS_COMMON=y 1088CONFIG_NFS_COMMON=y
1071CONFIG_SUNRPC=y 1089CONFIG_SUNRPC=y
1072CONFIG_SUNRPC_GSS=y 1090CONFIG_SUNRPC_GSS=y
1091# CONFIG_SUNRPC_BIND34 is not set
1073CONFIG_RPCSEC_GSS_KRB5=y 1092CONFIG_RPCSEC_GSS_KRB5=y
1074# CONFIG_RPCSEC_GSS_SPKM3 is not set 1093# CONFIG_RPCSEC_GSS_SPKM3 is not set
1075# CONFIG_SMB_FS is not set 1094# CONFIG_SMB_FS is not set
@@ -1077,43 +1096,56 @@ CONFIG_RPCSEC_GSS_KRB5=y
1077# CONFIG_NCP_FS is not set 1096# CONFIG_NCP_FS is not set
1078# CONFIG_CODA_FS is not set 1097# CONFIG_CODA_FS is not set
1079# CONFIG_AFS_FS is not set 1098# CONFIG_AFS_FS is not set
1080# CONFIG_9P_FS is not set
1081 1099
1082# 1100#
1083# Partition Types 1101# Partition Types
1084# 1102#
1085# CONFIG_PARTITION_ADVANCED is not set 1103# CONFIG_PARTITION_ADVANCED is not set
1086CONFIG_MSDOS_PARTITION=y 1104CONFIG_MSDOS_PARTITION=y
1087
1088#
1089# Native Language Support
1090#
1091# CONFIG_NLS is not set 1105# CONFIG_NLS is not set
1092 1106# CONFIG_DLM is not set
1093# 1107CONFIG_INSTRUMENTATION=y
1094# Profiling support
1095#
1096# CONFIG_PROFILING is not set 1108# CONFIG_PROFILING is not set
1109# CONFIG_MARKERS is not set
1097 1110
1098# 1111#
1099# Kernel hacking 1112# Kernel hacking
1100# 1113#
1101# CONFIG_PRINTK_TIME is not set 1114# CONFIG_PRINTK_TIME is not set
1102CONFIG_DEBUG_KERNEL=y 1115CONFIG_ENABLE_WARN_DEPRECATED=y
1116CONFIG_ENABLE_MUST_CHECK=y
1103# CONFIG_MAGIC_SYSRQ is not set 1117# CONFIG_MAGIC_SYSRQ is not set
1104CONFIG_LOG_BUF_SHIFT=14 1118# CONFIG_UNUSED_SYMBOLS is not set
1119# CONFIG_DEBUG_FS is not set
1120# CONFIG_HEADERS_CHECK is not set
1121CONFIG_DEBUG_KERNEL=y
1122# CONFIG_DEBUG_SHIRQ is not set
1105CONFIG_DETECT_SOFTLOCKUP=y 1123CONFIG_DETECT_SOFTLOCKUP=y
1124CONFIG_SCHED_DEBUG=y
1106# CONFIG_SCHEDSTATS is not set 1125# CONFIG_SCHEDSTATS is not set
1107# CONFIG_DEBUG_SLAB is not set 1126# CONFIG_TIMER_STATS is not set
1127# CONFIG_SLUB_DEBUG_ON is not set
1128# CONFIG_DEBUG_RT_MUTEXES is not set
1129# CONFIG_RT_MUTEX_TESTER is not set
1108# CONFIG_DEBUG_SPINLOCK is not set 1130# CONFIG_DEBUG_SPINLOCK is not set
1131# CONFIG_DEBUG_MUTEXES is not set
1132# CONFIG_DEBUG_LOCK_ALLOC is not set
1133# CONFIG_PROVE_LOCKING is not set
1134# CONFIG_LOCK_STAT is not set
1109# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1135# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1136# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1110# CONFIG_DEBUG_KOBJECT is not set 1137# CONFIG_DEBUG_KOBJECT is not set
1111CONFIG_DEBUG_BUGVERBOSE=y 1138CONFIG_DEBUG_BUGVERBOSE=y
1112# CONFIG_DEBUG_INFO is not set 1139# CONFIG_DEBUG_INFO is not set
1113# CONFIG_DEBUG_FS is not set
1114# CONFIG_DEBUG_VM is not set 1140# CONFIG_DEBUG_VM is not set
1141# CONFIG_DEBUG_LIST is not set
1142# CONFIG_DEBUG_SG is not set
1115CONFIG_FRAME_POINTER=y 1143CONFIG_FRAME_POINTER=y
1144CONFIG_FORCED_INLINING=y
1145# CONFIG_BOOT_PRINTK_DELAY is not set
1116# CONFIG_RCU_TORTURE_TEST is not set 1146# CONFIG_RCU_TORTURE_TEST is not set
1147# CONFIG_FAULT_INJECTION is not set
1148# CONFIG_SAMPLES is not set
1117CONFIG_DEBUG_USER=y 1149CONFIG_DEBUG_USER=y
1118# CONFIG_DEBUG_ERRORS is not set 1150# CONFIG_DEBUG_ERRORS is not set
1119CONFIG_DEBUG_LL=y 1151CONFIG_DEBUG_LL=y
@@ -1124,12 +1156,13 @@ CONFIG_DEBUG_LL=y
1124# 1156#
1125# CONFIG_KEYS is not set 1157# CONFIG_KEYS is not set
1126# CONFIG_SECURITY is not set 1158# CONFIG_SECURITY is not set
1127 1159# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1128#
1129# Cryptographic options
1130#
1131CONFIG_CRYPTO=y 1160CONFIG_CRYPTO=y
1161CONFIG_CRYPTO_ALGAPI=y
1162CONFIG_CRYPTO_BLKCIPHER=y
1163CONFIG_CRYPTO_MANAGER=y
1132# CONFIG_CRYPTO_HMAC is not set 1164# CONFIG_CRYPTO_HMAC is not set
1165# CONFIG_CRYPTO_XCBC is not set
1133# CONFIG_CRYPTO_NULL is not set 1166# CONFIG_CRYPTO_NULL is not set
1134# CONFIG_CRYPTO_MD4 is not set 1167# CONFIG_CRYPTO_MD4 is not set
1135CONFIG_CRYPTO_MD5=y 1168CONFIG_CRYPTO_MD5=y
@@ -1138,7 +1171,15 @@ CONFIG_CRYPTO_MD5=y
1138# CONFIG_CRYPTO_SHA512 is not set 1171# CONFIG_CRYPTO_SHA512 is not set
1139# CONFIG_CRYPTO_WP512 is not set 1172# CONFIG_CRYPTO_WP512 is not set
1140# CONFIG_CRYPTO_TGR192 is not set 1173# CONFIG_CRYPTO_TGR192 is not set
1174# CONFIG_CRYPTO_GF128MUL is not set
1175# CONFIG_CRYPTO_ECB is not set
1176CONFIG_CRYPTO_CBC=y
1177# CONFIG_CRYPTO_PCBC is not set
1178# CONFIG_CRYPTO_LRW is not set
1179# CONFIG_CRYPTO_XTS is not set
1180# CONFIG_CRYPTO_CRYPTD is not set
1141CONFIG_CRYPTO_DES=y 1181CONFIG_CRYPTO_DES=y
1182# CONFIG_CRYPTO_FCRYPT is not set
1142# CONFIG_CRYPTO_BLOWFISH is not set 1183# CONFIG_CRYPTO_BLOWFISH is not set
1143# CONFIG_CRYPTO_TWOFISH is not set 1184# CONFIG_CRYPTO_TWOFISH is not set
1144# CONFIG_CRYPTO_SERPENT is not set 1185# CONFIG_CRYPTO_SERPENT is not set
@@ -1149,20 +1190,27 @@ CONFIG_CRYPTO_DES=y
1149# CONFIG_CRYPTO_ARC4 is not set 1190# CONFIG_CRYPTO_ARC4 is not set
1150# CONFIG_CRYPTO_KHAZAD is not set 1191# CONFIG_CRYPTO_KHAZAD is not set
1151# CONFIG_CRYPTO_ANUBIS is not set 1192# CONFIG_CRYPTO_ANUBIS is not set
1193# CONFIG_CRYPTO_SEED is not set
1152# CONFIG_CRYPTO_DEFLATE is not set 1194# CONFIG_CRYPTO_DEFLATE is not set
1153# CONFIG_CRYPTO_MICHAEL_MIC is not set 1195# CONFIG_CRYPTO_MICHAEL_MIC is not set
1154# CONFIG_CRYPTO_CRC32C is not set 1196# CONFIG_CRYPTO_CRC32C is not set
1197# CONFIG_CRYPTO_CAMELLIA is not set
1155# CONFIG_CRYPTO_TEST is not set 1198# CONFIG_CRYPTO_TEST is not set
1156 1199# CONFIG_CRYPTO_AUTHENC is not set
1157# 1200CONFIG_CRYPTO_HW=y
1158# Hardware crypto devices
1159#
1160 1201
1161# 1202#
1162# Library routines 1203# Library routines
1163# 1204#
1205CONFIG_BITREVERSE=y
1164# CONFIG_CRC_CCITT is not set 1206# CONFIG_CRC_CCITT is not set
1165# CONFIG_CRC16 is not set 1207# CONFIG_CRC16 is not set
1208# CONFIG_CRC_ITU_T is not set
1166CONFIG_CRC32=y 1209CONFIG_CRC32=y
1210# CONFIG_CRC7 is not set
1167# CONFIG_LIBCRC32C is not set 1211# CONFIG_LIBCRC32C is not set
1168CONFIG_ZLIB_INFLATE=y 1212CONFIG_ZLIB_INFLATE=y
1213CONFIG_PLIST=y
1214CONFIG_HAS_IOMEM=y
1215CONFIG_HAS_IOPORT=y
1216CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/csb637_defconfig b/arch/arm/configs/csb637_defconfig
index 669f035896f9..99702146c9fc 100644
--- a/arch/arm/configs/csb637_defconfig
+++ b/arch/arm/configs/csb637_defconfig
@@ -1,69 +1,112 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.15 3# Linux kernel version: 2.6.25-rc8
4# Mon Jan 9 21:52:00 2006 4# Fri Apr 4 22:06:15 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
7CONFIG_MMU=y 11CONFIG_MMU=y
8CONFIG_UID16=y 12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
9CONFIG_RWSEM_GENERIC_SPINLOCK=y 19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
25CONFIG_ZONE_DMA=y
26CONFIG_VECTORS_BASE=0xffff0000
27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
11 28
12# 29#
13# Code maturity level options 30# General setup
14# 31#
15CONFIG_EXPERIMENTAL=y 32CONFIG_EXPERIMENTAL=y
16CONFIG_CLEAN_COMPILE=y
17CONFIG_BROKEN_ON_SMP=y 33CONFIG_BROKEN_ON_SMP=y
18CONFIG_INIT_ENV_ARG_LIMIT=32 34CONFIG_INIT_ENV_ARG_LIMIT=32
19
20#
21# General setup
22#
23CONFIG_LOCALVERSION="" 35CONFIG_LOCALVERSION=""
24CONFIG_LOCALVERSION_AUTO=y 36CONFIG_LOCALVERSION_AUTO=y
25# CONFIG_SWAP is not set 37# CONFIG_SWAP is not set
26CONFIG_SYSVIPC=y 38CONFIG_SYSVIPC=y
39CONFIG_SYSVIPC_SYSCTL=y
27# CONFIG_POSIX_MQUEUE is not set 40# CONFIG_POSIX_MQUEUE is not set
28# CONFIG_BSD_PROCESS_ACCT is not set 41# CONFIG_BSD_PROCESS_ACCT is not set
29CONFIG_SYSCTL=y 42# CONFIG_TASKSTATS is not set
30# CONFIG_AUDIT is not set 43# CONFIG_AUDIT is not set
31CONFIG_HOTPLUG=y
32CONFIG_KOBJECT_UEVENT=y
33# CONFIG_IKCONFIG is not set 44# CONFIG_IKCONFIG is not set
45CONFIG_LOG_BUF_SHIFT=14
46# CONFIG_CGROUPS is not set
47CONFIG_GROUP_SCHED=y
48CONFIG_FAIR_GROUP_SCHED=y
49# CONFIG_RT_GROUP_SCHED is not set
50CONFIG_USER_SCHED=y
51# CONFIG_CGROUP_SCHED is not set
52CONFIG_SYSFS_DEPRECATED=y
53CONFIG_SYSFS_DEPRECATED_V2=y
54# CONFIG_RELAY is not set
55CONFIG_NAMESPACES=y
56# CONFIG_UTS_NS is not set
57# CONFIG_IPC_NS is not set
58# CONFIG_USER_NS is not set
59# CONFIG_PID_NS is not set
60CONFIG_BLK_DEV_INITRD=y
34CONFIG_INITRAMFS_SOURCE="" 61CONFIG_INITRAMFS_SOURCE=""
35CONFIG_CC_OPTIMIZE_FOR_SIZE=y 62CONFIG_CC_OPTIMIZE_FOR_SIZE=y
63CONFIG_SYSCTL=y
36# CONFIG_EMBEDDED is not set 64# CONFIG_EMBEDDED is not set
65CONFIG_UID16=y
66CONFIG_SYSCTL_SYSCALL=y
37CONFIG_KALLSYMS=y 67CONFIG_KALLSYMS=y
38# CONFIG_KALLSYMS_ALL is not set 68# CONFIG_KALLSYMS_ALL is not set
39# CONFIG_KALLSYMS_EXTRA_PASS is not set 69# CONFIG_KALLSYMS_EXTRA_PASS is not set
70CONFIG_HOTPLUG=y
40CONFIG_PRINTK=y 71CONFIG_PRINTK=y
41CONFIG_BUG=y 72CONFIG_BUG=y
73CONFIG_ELF_CORE=y
74CONFIG_COMPAT_BRK=y
42CONFIG_BASE_FULL=y 75CONFIG_BASE_FULL=y
43CONFIG_FUTEX=y 76CONFIG_FUTEX=y
77CONFIG_ANON_INODES=y
44CONFIG_EPOLL=y 78CONFIG_EPOLL=y
79CONFIG_SIGNALFD=y
80CONFIG_TIMERFD=y
81CONFIG_EVENTFD=y
45CONFIG_SHMEM=y 82CONFIG_SHMEM=y
46CONFIG_CC_ALIGN_FUNCTIONS=0 83CONFIG_VM_EVENT_COUNTERS=y
47CONFIG_CC_ALIGN_LABELS=0 84CONFIG_SLUB_DEBUG=y
48CONFIG_CC_ALIGN_LOOPS=0 85# CONFIG_SLAB is not set
49CONFIG_CC_ALIGN_JUMPS=0 86CONFIG_SLUB=y
87# CONFIG_SLOB is not set
88# CONFIG_PROFILING is not set
89# CONFIG_MARKERS is not set
90CONFIG_HAVE_OPROFILE=y
91# CONFIG_KPROBES is not set
92CONFIG_HAVE_KPROBES=y
93CONFIG_HAVE_KRETPROBES=y
94CONFIG_PROC_PAGE_MONITOR=y
95CONFIG_SLABINFO=y
96CONFIG_RT_MUTEXES=y
50# CONFIG_TINY_SHMEM is not set 97# CONFIG_TINY_SHMEM is not set
51CONFIG_BASE_SMALL=0 98CONFIG_BASE_SMALL=0
52
53#
54# Loadable module support
55#
56CONFIG_MODULES=y 99CONFIG_MODULES=y
57CONFIG_MODULE_UNLOAD=y 100CONFIG_MODULE_UNLOAD=y
58# CONFIG_MODULE_FORCE_UNLOAD is not set 101# CONFIG_MODULE_FORCE_UNLOAD is not set
59CONFIG_OBSOLETE_MODPARM=y
60# CONFIG_MODVERSIONS is not set 102# CONFIG_MODVERSIONS is not set
61# CONFIG_MODULE_SRCVERSION_ALL is not set 103# CONFIG_MODULE_SRCVERSION_ALL is not set
62CONFIG_KMOD=y 104CONFIG_KMOD=y
63 105CONFIG_BLOCK=y
64# 106# CONFIG_LBD is not set
65# Block layer 107# CONFIG_BLK_DEV_IO_TRACE is not set
66# 108# CONFIG_LSF is not set
109# CONFIG_BLK_DEV_BSG is not set
67 110
68# 111#
69# IO Schedulers 112# IO Schedulers
@@ -77,66 +120,111 @@ CONFIG_DEFAULT_AS=y
77# CONFIG_DEFAULT_CFQ is not set 120# CONFIG_DEFAULT_CFQ is not set
78# CONFIG_DEFAULT_NOOP is not set 121# CONFIG_DEFAULT_NOOP is not set
79CONFIG_DEFAULT_IOSCHED="anticipatory" 122CONFIG_DEFAULT_IOSCHED="anticipatory"
123CONFIG_CLASSIC_RCU=y
80 124
81# 125#
82# System Type 126# System Type
83# 127#
128# CONFIG_ARCH_AAEC2000 is not set
129# CONFIG_ARCH_INTEGRATOR is not set
130# CONFIG_ARCH_REALVIEW is not set
131# CONFIG_ARCH_VERSATILE is not set
132CONFIG_ARCH_AT91=y
84# CONFIG_ARCH_CLPS7500 is not set 133# CONFIG_ARCH_CLPS7500 is not set
85# CONFIG_ARCH_CLPS711X is not set 134# CONFIG_ARCH_CLPS711X is not set
86# CONFIG_ARCH_CO285 is not set 135# CONFIG_ARCH_CO285 is not set
87# CONFIG_ARCH_EBSA110 is not set 136# CONFIG_ARCH_EBSA110 is not set
137# CONFIG_ARCH_EP93XX is not set
88# CONFIG_ARCH_FOOTBRIDGE is not set 138# CONFIG_ARCH_FOOTBRIDGE is not set
89# CONFIG_ARCH_INTEGRATOR is not set 139# CONFIG_ARCH_NETX is not set
90# CONFIG_ARCH_IOP3XX is not set 140# CONFIG_ARCH_H720X is not set
91# CONFIG_ARCH_IXP4XX is not set 141# CONFIG_ARCH_IMX is not set
142# CONFIG_ARCH_IOP13XX is not set
143# CONFIG_ARCH_IOP32X is not set
144# CONFIG_ARCH_IOP33X is not set
145# CONFIG_ARCH_IXP23XX is not set
92# CONFIG_ARCH_IXP2000 is not set 146# CONFIG_ARCH_IXP2000 is not set
147# CONFIG_ARCH_IXP4XX is not set
93# CONFIG_ARCH_L7200 is not set 148# CONFIG_ARCH_L7200 is not set
149# CONFIG_ARCH_KS8695 is not set
150# CONFIG_ARCH_NS9XXX is not set
151# CONFIG_ARCH_MXC is not set
152# CONFIG_ARCH_ORION is not set
153# CONFIG_ARCH_PNX4008 is not set
94# CONFIG_ARCH_PXA is not set 154# CONFIG_ARCH_PXA is not set
95# CONFIG_ARCH_RPC is not set 155# CONFIG_ARCH_RPC is not set
96# CONFIG_ARCH_SA1100 is not set 156# CONFIG_ARCH_SA1100 is not set
97# CONFIG_ARCH_S3C2410 is not set 157# CONFIG_ARCH_S3C2410 is not set
98# CONFIG_ARCH_SHARK is not set 158# CONFIG_ARCH_SHARK is not set
99# CONFIG_ARCH_LH7A40X is not set 159# CONFIG_ARCH_LH7A40X is not set
160# CONFIG_ARCH_DAVINCI is not set
100# CONFIG_ARCH_OMAP is not set 161# CONFIG_ARCH_OMAP is not set
101# CONFIG_ARCH_VERSATILE is not set 162# CONFIG_ARCH_MSM7X00A is not set
102# CONFIG_ARCH_REALVIEW is not set 163
103# CONFIG_ARCH_IMX is not set 164#
104# CONFIG_ARCH_H720X is not set 165# Boot options
105# CONFIG_ARCH_AAEC2000 is not set 166#
106CONFIG_ARCH_AT91=y 167
107CONFIG_ARCH_AT91RM9200=y 168#
169# Power management
170#
108 171
109# 172#
110# AT91RM9200 Implementations 173# Atmel AT91 System-on-Chip
111# 174#
175CONFIG_ARCH_AT91RM9200=y
176# CONFIG_ARCH_AT91SAM9260 is not set
177# CONFIG_ARCH_AT91SAM9261 is not set
178# CONFIG_ARCH_AT91SAM9263 is not set
179# CONFIG_ARCH_AT91SAM9RL is not set
180# CONFIG_ARCH_AT91CAP9 is not set
181# CONFIG_ARCH_AT91X40 is not set
182CONFIG_AT91_PMC_UNIT=y
112 183
113# 184#
114# AT91RM9200 Board Type 185# AT91RM9200 Board Type
115# 186#
187# CONFIG_MACH_ONEARM is not set
116# CONFIG_ARCH_AT91RM9200DK is not set 188# CONFIG_ARCH_AT91RM9200DK is not set
117# CONFIG_MACH_AT91RM9200EK is not set 189# CONFIG_MACH_AT91RM9200EK is not set
118# CONFIG_MACH_CSB337 is not set 190# CONFIG_MACH_CSB337 is not set
119CONFIG_MACH_CSB637=y 191CONFIG_MACH_CSB637=y
120# CONFIG_MACH_CARMEVA is not set 192# CONFIG_MACH_CARMEVA is not set
121# CONFIG_MACH_KB9200 is not set
122# CONFIG_MACH_ATEB9200 is not set 193# CONFIG_MACH_ATEB9200 is not set
194# CONFIG_MACH_KB9200 is not set
195# CONFIG_MACH_PICOTUX2XX is not set
196# CONFIG_MACH_KAFA is not set
123 197
124# 198#
125# AT91RM9200 Feature Selections 199# AT91 Board Options
200#
201
202#
203# AT91 Feature Selections
126# 204#
127CONFIG_AT91_PROGRAMMABLE_CLOCKS=y 205CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
206CONFIG_AT91_TIMER_HZ=128
207CONFIG_AT91_EARLY_DBGU=y
208# CONFIG_AT91_EARLY_USART0 is not set
209# CONFIG_AT91_EARLY_USART1 is not set
210# CONFIG_AT91_EARLY_USART2 is not set
211# CONFIG_AT91_EARLY_USART3 is not set
212# CONFIG_AT91_EARLY_USART4 is not set
213# CONFIG_AT91_EARLY_USART5 is not set
128 214
129# 215#
130# Processor Type 216# Processor Type
131# 217#
132CONFIG_CPU_32=y 218CONFIG_CPU_32=y
133CONFIG_CPU_ARM920T=y 219CONFIG_CPU_ARM920T=y
134CONFIG_CPU_32v4=y 220CONFIG_CPU_32v4T=y
135CONFIG_CPU_ABRT_EV4T=y 221CONFIG_CPU_ABRT_EV4T=y
136CONFIG_CPU_CACHE_V4WT=y 222CONFIG_CPU_CACHE_V4WT=y
137CONFIG_CPU_CACHE_VIVT=y 223CONFIG_CPU_CACHE_VIVT=y
138CONFIG_CPU_COPY_V4WB=y 224CONFIG_CPU_COPY_V4WB=y
139CONFIG_CPU_TLB_V4WBI=y 225CONFIG_CPU_TLB_V4WBI=y
226CONFIG_CPU_CP15=y
227CONFIG_CPU_CP15_MMU=y
140 228
141# 229#
142# Processor Features 230# Processor Features
@@ -145,15 +233,13 @@ CONFIG_CPU_TLB_V4WBI=y
145# CONFIG_CPU_ICACHE_DISABLE is not set 233# CONFIG_CPU_ICACHE_DISABLE is not set
146# CONFIG_CPU_DCACHE_DISABLE is not set 234# CONFIG_CPU_DCACHE_DISABLE is not set
147# CONFIG_CPU_DCACHE_WRITETHROUGH is not set 235# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
236# CONFIG_OUTER_CACHE is not set
148 237
149# 238#
150# Bus support 239# Bus support
151# 240#
152CONFIG_ISA_DMA_API=y 241# CONFIG_PCI_SYSCALL is not set
153 242# CONFIG_ARCH_SUPPORTS_MSI is not set
154#
155# PCCARD (PCMCIA/CardBus) support
156#
157CONFIG_PCCARD=y 243CONFIG_PCCARD=y
158# CONFIG_PCMCIA_DEBUG is not set 244# CONFIG_PCMCIA_DEBUG is not set
159CONFIG_PCMCIA=y 245CONFIG_PCMCIA=y
@@ -168,8 +254,13 @@ CONFIG_AT91_CF=y
168# 254#
169# Kernel Features 255# Kernel Features
170# 256#
257# CONFIG_TICK_ONESHOT is not set
258# CONFIG_NO_HZ is not set
259# CONFIG_HIGH_RES_TIMERS is not set
260CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
171# CONFIG_PREEMPT is not set 261# CONFIG_PREEMPT is not set
172# CONFIG_NO_IDLE_HZ is not set 262CONFIG_HZ=128
263# CONFIG_AEABI is not set
173# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 264# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
174CONFIG_SELECT_MEMORY_MODEL=y 265CONFIG_SELECT_MEMORY_MODEL=y
175CONFIG_FLATMEM_MANUAL=y 266CONFIG_FLATMEM_MANUAL=y
@@ -178,9 +269,13 @@ CONFIG_FLATMEM_MANUAL=y
178CONFIG_FLATMEM=y 269CONFIG_FLATMEM=y
179CONFIG_FLAT_NODE_MEM_MAP=y 270CONFIG_FLAT_NODE_MEM_MAP=y
180# CONFIG_SPARSEMEM_STATIC is not set 271# CONFIG_SPARSEMEM_STATIC is not set
272# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
181CONFIG_SPLIT_PTLOCK_CPUS=4096 273CONFIG_SPLIT_PTLOCK_CPUS=4096
274# CONFIG_RESOURCES_64BIT is not set
275CONFIG_ZONE_DMA_FLAG=1
276CONFIG_BOUNCE=y
277CONFIG_VIRT_TO_BUS=y
182CONFIG_LEDS=y 278CONFIG_LEDS=y
183CONFIG_LEDS_TIMER=y
184CONFIG_LEDS_CPU=y 279CONFIG_LEDS_CPU=y
185CONFIG_ALIGNMENT_TRAP=y 280CONFIG_ALIGNMENT_TRAP=y
186 281
@@ -191,6 +286,7 @@ CONFIG_ZBOOT_ROM_TEXT=0x0
191CONFIG_ZBOOT_ROM_BSS=0x0 286CONFIG_ZBOOT_ROM_BSS=0x0
192CONFIG_CMDLINE="mem=32M console=ttyS0,38400 initrd=0x20410000,3145728 root=/dev/ram0 rw" 287CONFIG_CMDLINE="mem=32M console=ttyS0,38400 initrd=0x20410000,3145728 root=/dev/ram0 rw"
193# CONFIG_XIP_KERNEL is not set 288# CONFIG_XIP_KERNEL is not set
289# CONFIG_KEXEC is not set
194 290
195# 291#
196# Floating point emulation 292# Floating point emulation
@@ -215,6 +311,7 @@ CONFIG_BINFMT_ELF=y
215# Power management options 311# Power management options
216# 312#
217# CONFIG_PM is not set 313# CONFIG_PM is not set
314CONFIG_ARCH_SUSPEND_POSSIBLE=y
218 315
219# 316#
220# Networking 317# Networking
@@ -227,6 +324,11 @@ CONFIG_NET=y
227CONFIG_PACKET=y 324CONFIG_PACKET=y
228# CONFIG_PACKET_MMAP is not set 325# CONFIG_PACKET_MMAP is not set
229CONFIG_UNIX=y 326CONFIG_UNIX=y
327CONFIG_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_XFRM_STATISTICS is not set
230# CONFIG_NET_KEY is not set 332# CONFIG_NET_KEY is not set
231CONFIG_INET=y 333CONFIG_INET=y
232# CONFIG_IP_MULTICAST is not set 334# CONFIG_IP_MULTICAST is not set
@@ -243,23 +345,26 @@ CONFIG_IP_PNP_BOOTP=y
243# CONFIG_INET_AH is not set 345# CONFIG_INET_AH is not set
244# CONFIG_INET_ESP is not set 346# CONFIG_INET_ESP is not set
245# CONFIG_INET_IPCOMP is not set 347# CONFIG_INET_IPCOMP is not set
348# CONFIG_INET_XFRM_TUNNEL is not set
246# CONFIG_INET_TUNNEL is not set 349# CONFIG_INET_TUNNEL is not set
350CONFIG_INET_XFRM_MODE_TRANSPORT=y
351CONFIG_INET_XFRM_MODE_TUNNEL=y
352CONFIG_INET_XFRM_MODE_BEET=y
353# CONFIG_INET_LRO is not set
247CONFIG_INET_DIAG=y 354CONFIG_INET_DIAG=y
248CONFIG_INET_TCP_DIAG=y 355CONFIG_INET_TCP_DIAG=y
249# CONFIG_TCP_CONG_ADVANCED is not set 356# CONFIG_TCP_CONG_ADVANCED is not set
250CONFIG_TCP_CONG_BIC=y 357CONFIG_TCP_CONG_CUBIC=y
358CONFIG_DEFAULT_TCP_CONG="cubic"
359# CONFIG_TCP_MD5SIG is not set
251# CONFIG_IPV6 is not set 360# CONFIG_IPV6 is not set
361# CONFIG_INET6_XFRM_TUNNEL is not set
362# CONFIG_INET6_TUNNEL is not set
363# CONFIG_NETWORK_SECMARK is not set
252# CONFIG_NETFILTER is not set 364# CONFIG_NETFILTER is not set
253
254#
255# DCCP Configuration (EXPERIMENTAL)
256#
257# CONFIG_IP_DCCP is not set 365# CONFIG_IP_DCCP is not set
258
259#
260# SCTP Configuration (EXPERIMENTAL)
261#
262# CONFIG_IP_SCTP is not set 366# CONFIG_IP_SCTP is not set
367# CONFIG_TIPC is not set
263# CONFIG_ATM is not set 368# CONFIG_ATM is not set
264# CONFIG_BRIDGE is not set 369# CONFIG_BRIDGE is not set
265# CONFIG_VLAN_8021Q is not set 370# CONFIG_VLAN_8021Q is not set
@@ -269,13 +374,8 @@ CONFIG_TCP_CONG_BIC=y
269# CONFIG_ATALK is not set 374# CONFIG_ATALK is not set
270# CONFIG_X25 is not set 375# CONFIG_X25 is not set
271# CONFIG_LAPB is not set 376# CONFIG_LAPB is not set
272# CONFIG_NET_DIVERT is not set
273# CONFIG_ECONET is not set 377# CONFIG_ECONET is not set
274# CONFIG_WAN_ROUTER is not set 378# CONFIG_WAN_ROUTER is not set
275
276#
277# QoS and/or fair queueing
278#
279# CONFIG_NET_SCHED is not set 379# CONFIG_NET_SCHED is not set
280 380
281# 381#
@@ -283,9 +383,20 @@ CONFIG_TCP_CONG_BIC=y
283# 383#
284# CONFIG_NET_PKTGEN is not set 384# CONFIG_NET_PKTGEN is not set
285# CONFIG_HAMRADIO is not set 385# CONFIG_HAMRADIO is not set
386# CONFIG_CAN is not set
286# CONFIG_IRDA is not set 387# CONFIG_IRDA is not set
287# CONFIG_BT is not set 388# CONFIG_BT is not set
389# CONFIG_AF_RXRPC is not set
390
391#
392# Wireless
393#
394# CONFIG_CFG80211 is not set
395# CONFIG_WIRELESS_EXT is not set
396# CONFIG_MAC80211 is not set
288# CONFIG_IEEE80211 is not set 397# CONFIG_IEEE80211 is not set
398# CONFIG_RFKILL is not set
399# CONFIG_NET_9P is not set
289 400
290# 401#
291# Device Drivers 402# Device Drivers
@@ -294,19 +405,14 @@ CONFIG_TCP_CONG_BIC=y
294# 405#
295# Generic Driver Options 406# Generic Driver Options
296# 407#
408CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
297CONFIG_STANDALONE=y 409CONFIG_STANDALONE=y
298CONFIG_PREVENT_FIRMWARE_BUILD=y 410CONFIG_PREVENT_FIRMWARE_BUILD=y
299CONFIG_FW_LOADER=y 411CONFIG_FW_LOADER=y
300# CONFIG_DEBUG_DRIVER is not set 412# CONFIG_DEBUG_DRIVER is not set
301 413# CONFIG_DEBUG_DEVRES is not set
302# 414# CONFIG_SYS_HYPERVISOR is not set
303# Connector - unified userspace <-> kernelspace linker
304#
305# CONFIG_CONNECTOR is not set 415# CONFIG_CONNECTOR is not set
306
307#
308# Memory Technology Devices (MTD)
309#
310CONFIG_MTD=y 416CONFIG_MTD=y
311# CONFIG_MTD_DEBUG is not set 417# CONFIG_MTD_DEBUG is not set
312# CONFIG_MTD_CONCAT is not set 418# CONFIG_MTD_CONCAT is not set
@@ -319,11 +425,14 @@ CONFIG_MTD_CMDLINE_PARTS=y
319# User Modules And Translation Layers 425# User Modules And Translation Layers
320# 426#
321CONFIG_MTD_CHAR=y 427CONFIG_MTD_CHAR=y
428CONFIG_MTD_BLKDEVS=y
322CONFIG_MTD_BLOCK=y 429CONFIG_MTD_BLOCK=y
323# CONFIG_FTL is not set 430# CONFIG_FTL is not set
324# CONFIG_NFTL is not set 431# CONFIG_NFTL is not set
325# CONFIG_INFTL is not set 432# CONFIG_INFTL is not set
326# CONFIG_RFD_FTL is not set 433# CONFIG_RFD_FTL is not set
434# CONFIG_SSFDC is not set
435# CONFIG_MTD_OOPS is not set
327 436
328# 437#
329# RAM/ROM/Flash chip drivers 438# RAM/ROM/Flash chip drivers
@@ -349,15 +458,14 @@ CONFIG_MTD_CFI_UTIL=y
349# CONFIG_MTD_RAM is not set 458# CONFIG_MTD_RAM is not set
350# CONFIG_MTD_ROM is not set 459# CONFIG_MTD_ROM is not set
351# CONFIG_MTD_ABSENT is not set 460# CONFIG_MTD_ABSENT is not set
352# CONFIG_MTD_XIP is not set
353 461
354# 462#
355# Mapping drivers for chip access 463# Mapping drivers for chip access
356# 464#
357# CONFIG_MTD_COMPLEX_MAPPINGS is not set 465# CONFIG_MTD_COMPLEX_MAPPINGS is not set
358CONFIG_MTD_PHYSMAP=y 466CONFIG_MTD_PHYSMAP=y
359CONFIG_MTD_PHYSMAP_START=0 467CONFIG_MTD_PHYSMAP_START=0x0
360CONFIG_MTD_PHYSMAP_LEN=0 468CONFIG_MTD_PHYSMAP_LEN=0x0
361CONFIG_MTD_PHYSMAP_BANKWIDTH=0 469CONFIG_MTD_PHYSMAP_BANKWIDTH=0
362# CONFIG_MTD_ARM_INTEGRATOR is not set 470# CONFIG_MTD_ARM_INTEGRATOR is not set
363# CONFIG_MTD_PLATRAM is not set 471# CONFIG_MTD_PLATRAM is not set
@@ -368,7 +476,6 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=0
368# CONFIG_MTD_SLRAM is not set 476# CONFIG_MTD_SLRAM is not set
369# CONFIG_MTD_PHRAM is not set 477# CONFIG_MTD_PHRAM is not set
370# CONFIG_MTD_MTDRAM is not set 478# CONFIG_MTD_MTDRAM is not set
371# CONFIG_MTD_BLKMTD is not set
372# CONFIG_MTD_BLOCK2MTD is not set 479# CONFIG_MTD_BLOCK2MTD is not set
373 480
374# 481#
@@ -377,30 +484,15 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=0
377# CONFIG_MTD_DOC2000 is not set 484# CONFIG_MTD_DOC2000 is not set
378# CONFIG_MTD_DOC2001 is not set 485# CONFIG_MTD_DOC2001 is not set
379# CONFIG_MTD_DOC2001PLUS is not set 486# CONFIG_MTD_DOC2001PLUS is not set
380# CONFIG_MTD_AT91_DATAFLASH is not set
381
382#
383# NAND Flash Device Drivers
384#
385# CONFIG_MTD_NAND is not set 487# CONFIG_MTD_NAND is not set
386
387#
388# OneNAND Flash Device Drivers
389#
390# CONFIG_MTD_ONENAND is not set 488# CONFIG_MTD_ONENAND is not set
391 489
392# 490#
393# Parallel port support 491# UBI - Unsorted block images
394# 492#
493# CONFIG_MTD_UBI is not set
395# CONFIG_PARPORT is not set 494# CONFIG_PARPORT is not set
396 495CONFIG_BLK_DEV=y
397#
398# Plug and Play support
399#
400
401#
402# Block devices
403#
404# CONFIG_BLK_DEV_COW_COMMON is not set 496# CONFIG_BLK_DEV_COW_COMMON is not set
405CONFIG_BLK_DEV_LOOP=y 497CONFIG_BLK_DEV_LOOP=y
406# CONFIG_BLK_DEV_CRYPTOLOOP is not set 498# CONFIG_BLK_DEV_CRYPTOLOOP is not set
@@ -409,13 +501,15 @@ CONFIG_BLK_DEV_LOOP=y
409CONFIG_BLK_DEV_RAM=y 501CONFIG_BLK_DEV_RAM=y
410CONFIG_BLK_DEV_RAM_COUNT=16 502CONFIG_BLK_DEV_RAM_COUNT=16
411CONFIG_BLK_DEV_RAM_SIZE=8192 503CONFIG_BLK_DEV_RAM_SIZE=8192
412CONFIG_BLK_DEV_INITRD=y 504# CONFIG_BLK_DEV_XIP is not set
413# CONFIG_CDROM_PKTCDVD is not set 505# CONFIG_CDROM_PKTCDVD is not set
414# CONFIG_ATA_OVER_ETH is not set 506# CONFIG_ATA_OVER_ETH is not set
415 507CONFIG_MISC_DEVICES=y
416# 508# CONFIG_ATMEL_PWM is not set
417# ATA/ATAPI/MFM/RLL support 509# CONFIG_EEPROM_93CX6 is not set
418# 510# CONFIG_ATMEL_SSC is not set
511# CONFIG_ENCLOSURE_SERVICES is not set
512CONFIG_HAVE_IDE=y
419# CONFIG_IDE is not set 513# CONFIG_IDE is not set
420 514
421# 515#
@@ -423,6 +517,9 @@ CONFIG_BLK_DEV_INITRD=y
423# 517#
424# CONFIG_RAID_ATTRS is not set 518# CONFIG_RAID_ATTRS is not set
425CONFIG_SCSI=y 519CONFIG_SCSI=y
520CONFIG_SCSI_DMA=y
521# CONFIG_SCSI_TGT is not set
522# CONFIG_SCSI_NETLINK is not set
426CONFIG_SCSI_PROC_FS=y 523CONFIG_SCSI_PROC_FS=y
427 524
428# 525#
@@ -441,114 +538,78 @@ CONFIG_SCSI_PROC_FS=y
441# CONFIG_SCSI_MULTI_LUN is not set 538# CONFIG_SCSI_MULTI_LUN is not set
442# CONFIG_SCSI_CONSTANTS is not set 539# CONFIG_SCSI_CONSTANTS is not set
443# CONFIG_SCSI_LOGGING is not set 540# CONFIG_SCSI_LOGGING is not set
541# CONFIG_SCSI_SCAN_ASYNC is not set
542CONFIG_SCSI_WAIT_SCAN=m
444 543
445# 544#
446# SCSI Transport Attributes 545# SCSI Transports
447# 546#
448# CONFIG_SCSI_SPI_ATTRS is not set 547# CONFIG_SCSI_SPI_ATTRS is not set
449# CONFIG_SCSI_FC_ATTRS is not set 548# CONFIG_SCSI_FC_ATTRS is not set
450# CONFIG_SCSI_ISCSI_ATTRS is not set 549# CONFIG_SCSI_ISCSI_ATTRS is not set
451# CONFIG_SCSI_SAS_ATTRS is not set 550# CONFIG_SCSI_SAS_LIBSAS is not set
452 551# CONFIG_SCSI_SRP_ATTRS is not set
453# 552CONFIG_SCSI_LOWLEVEL=y
454# SCSI low-level drivers
455#
456# CONFIG_ISCSI_TCP is not set 553# CONFIG_ISCSI_TCP is not set
457# CONFIG_SCSI_SATA is not set
458# CONFIG_SCSI_DEBUG is not set 554# CONFIG_SCSI_DEBUG is not set
459 555# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
460# 556# CONFIG_ATA is not set
461# PCMCIA SCSI adapter support
462#
463# CONFIG_PCMCIA_AHA152X is not set
464# CONFIG_PCMCIA_FDOMAIN is not set
465# CONFIG_PCMCIA_NINJA_SCSI is not set
466# CONFIG_PCMCIA_QLOGIC is not set
467# CONFIG_PCMCIA_SYM53C500 is not set
468
469#
470# Multi-device support (RAID and LVM)
471#
472# CONFIG_MD is not set 557# CONFIG_MD is not set
473
474#
475# Fusion MPT device support
476#
477# CONFIG_FUSION is not set
478
479#
480# IEEE 1394 (FireWire) support
481#
482
483#
484# I2O device support
485#
486
487#
488# Network device support
489#
490CONFIG_NETDEVICES=y 558CONFIG_NETDEVICES=y
559# CONFIG_NETDEVICES_MULTIQUEUE is not set
491# CONFIG_DUMMY is not set 560# CONFIG_DUMMY is not set
492# CONFIG_BONDING is not set 561# CONFIG_BONDING is not set
562# CONFIG_MACVLAN is not set
493# CONFIG_EQUALIZER is not set 563# CONFIG_EQUALIZER is not set
494# CONFIG_TUN is not set 564# CONFIG_TUN is not set
495 565# CONFIG_VETH is not set
496#
497# PHY device support
498#
499# CONFIG_PHYLIB is not set 566# CONFIG_PHYLIB is not set
500
501#
502# Ethernet (10 or 100Mbit)
503#
504CONFIG_NET_ETHERNET=y 567CONFIG_NET_ETHERNET=y
505CONFIG_MII=y 568CONFIG_MII=y
506CONFIG_ARM_AT91_ETHER=y 569CONFIG_ARM_AT91_ETHER=y
570# CONFIG_AX88796 is not set
507# CONFIG_SMC91X is not set 571# CONFIG_SMC91X is not set
572# CONFIG_SMSC911X is not set
508# CONFIG_DM9000 is not set 573# CONFIG_DM9000 is not set
574# CONFIG_IBM_NEW_EMAC_ZMII is not set
575# CONFIG_IBM_NEW_EMAC_RGMII is not set
576# CONFIG_IBM_NEW_EMAC_TAH is not set
577# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
578# CONFIG_B44 is not set
579# CONFIG_CS89x0 is not set
580CONFIG_NETDEV_1000=y
581# CONFIG_E1000E_ENABLED is not set
582CONFIG_NETDEV_10000=y
509 583
510# 584#
511# Ethernet (1000 Mbit) 585# Wireless LAN
512# 586#
587# CONFIG_WLAN_PRE80211 is not set
588# CONFIG_WLAN_80211 is not set
513 589
514# 590#
515# Ethernet (10000 Mbit) 591# USB Network Adapters
516#
517
518#
519# Token Ring devices
520#
521
522#
523# Wireless LAN (non-hamradio)
524#
525# CONFIG_NET_RADIO is not set
526
527#
528# PCMCIA network device support
529# 592#
593# CONFIG_USB_CATC is not set
594# CONFIG_USB_KAWETH is not set
595# CONFIG_USB_PEGASUS is not set
596# CONFIG_USB_RTL8150 is not set
597# CONFIG_USB_USBNET is not set
530# CONFIG_NET_PCMCIA is not set 598# CONFIG_NET_PCMCIA is not set
531
532#
533# Wan interfaces
534#
535# CONFIG_WAN is not set 599# CONFIG_WAN is not set
536# CONFIG_PPP is not set 600# CONFIG_PPP is not set
537# CONFIG_SLIP is not set 601# CONFIG_SLIP is not set
538# CONFIG_SHAPER is not set
539# CONFIG_NETCONSOLE is not set 602# CONFIG_NETCONSOLE is not set
540# CONFIG_NETPOLL is not set 603# CONFIG_NETPOLL is not set
541# CONFIG_NET_POLL_CONTROLLER is not set 604# CONFIG_NET_POLL_CONTROLLER is not set
542
543#
544# ISDN subsystem
545#
546# CONFIG_ISDN is not set 605# CONFIG_ISDN is not set
547 606
548# 607#
549# Input device support 608# Input device support
550# 609#
551CONFIG_INPUT=y 610CONFIG_INPUT=y
611# CONFIG_INPUT_FF_MEMLESS is not set
612# CONFIG_INPUT_POLLDEV is not set
552 613
553# 614#
554# Userland interfaces 615# Userland interfaces
@@ -558,7 +619,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
558CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 619CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
559CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 620CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
560# CONFIG_INPUT_JOYDEV is not set 621# CONFIG_INPUT_JOYDEV is not set
561# CONFIG_INPUT_TSDEV is not set
562# CONFIG_INPUT_EVDEV is not set 622# CONFIG_INPUT_EVDEV is not set
563# CONFIG_INPUT_EVBUG is not set 623# CONFIG_INPUT_EVBUG is not set
564 624
@@ -568,6 +628,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
568# CONFIG_INPUT_KEYBOARD is not set 628# CONFIG_INPUT_KEYBOARD is not set
569# CONFIG_INPUT_MOUSE is not set 629# CONFIG_INPUT_MOUSE is not set
570# CONFIG_INPUT_JOYSTICK is not set 630# CONFIG_INPUT_JOYSTICK is not set
631# CONFIG_INPUT_TABLET is not set
571# CONFIG_INPUT_TOUCHSCREEN is not set 632# CONFIG_INPUT_TOUCHSCREEN is not set
572# CONFIG_INPUT_MISC is not set 633# CONFIG_INPUT_MISC is not set
573 634
@@ -583,6 +644,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
583CONFIG_VT=y 644CONFIG_VT=y
584CONFIG_VT_CONSOLE=y 645CONFIG_VT_CONSOLE=y
585CONFIG_HW_CONSOLE=y 646CONFIG_HW_CONSOLE=y
647# CONFIG_VT_HW_CONSOLE_BINDING is not set
586# CONFIG_SERIAL_NONSTANDARD is not set 648# CONFIG_SERIAL_NONSTANDARD is not set
587 649
588# 650#
@@ -595,64 +657,29 @@ CONFIG_HW_CONSOLE=y
595# 657#
596CONFIG_SERIAL_ATMEL=y 658CONFIG_SERIAL_ATMEL=y
597CONFIG_SERIAL_ATMEL_CONSOLE=y 659CONFIG_SERIAL_ATMEL_CONSOLE=y
660CONFIG_SERIAL_ATMEL_PDC=y
598# CONFIG_SERIAL_ATMEL_TTYAT is not set 661# CONFIG_SERIAL_ATMEL_TTYAT is not set
599CONFIG_SERIAL_CORE=y 662CONFIG_SERIAL_CORE=y
600CONFIG_SERIAL_CORE_CONSOLE=y 663CONFIG_SERIAL_CORE_CONSOLE=y
601CONFIG_UNIX98_PTYS=y 664CONFIG_UNIX98_PTYS=y
602CONFIG_LEGACY_PTYS=y 665CONFIG_LEGACY_PTYS=y
603CONFIG_LEGACY_PTY_COUNT=256 666CONFIG_LEGACY_PTY_COUNT=256
604
605#
606# IPMI
607#
608# CONFIG_IPMI_HANDLER is not set 667# CONFIG_IPMI_HANDLER is not set
609 668CONFIG_HW_RANDOM=m
610#
611# Watchdog Cards
612#
613CONFIG_WATCHDOG=y
614CONFIG_WATCHDOG_NOWAYOUT=y
615
616#
617# Watchdog Device Drivers
618#
619# CONFIG_SOFT_WATCHDOG is not set
620CONFIG_AT91RM9200_WATCHDOG=y
621
622#
623# USB-based Watchdog Cards
624#
625# CONFIG_USBPCWATCHDOG is not set
626# CONFIG_NVRAM is not set 669# CONFIG_NVRAM is not set
627CONFIG_RTC=y
628# CONFIG_AT91RM9200_RTC is not set
629# CONFIG_DTLK is not set
630# CONFIG_R3964 is not set 670# CONFIG_R3964 is not set
631 671
632# 672#
633# Ftape, the floppy tape device driver
634#
635
636#
637# PCMCIA character devices 673# PCMCIA character devices
638# 674#
639# CONFIG_SYNCLINK_CS is not set 675# CONFIG_SYNCLINK_CS is not set
640# CONFIG_CARDMAN_4000 is not set 676# CONFIG_CARDMAN_4000 is not set
641# CONFIG_CARDMAN_4040 is not set 677# CONFIG_CARDMAN_4040 is not set
678# CONFIG_IPWIRELESS is not set
642# CONFIG_RAW_DRIVER is not set 679# CONFIG_RAW_DRIVER is not set
643
644#
645# TPM devices
646#
647# CONFIG_TCG_TPM is not set 680# CONFIG_TCG_TPM is not set
648# CONFIG_TELCLOCK is not set
649CONFIG_AT91_SPI=y
650CONFIG_AT91_SPIDEV=y
651
652#
653# I2C support
654#
655CONFIG_I2C=y 681CONFIG_I2C=y
682CONFIG_I2C_BOARDINFO=y
656CONFIG_I2C_CHARDEV=y 683CONFIG_I2C_CHARDEV=y
657 684
658# 685#
@@ -665,43 +692,53 @@ CONFIG_I2C_CHARDEV=y
665# 692#
666# I2C Hardware Bus support 693# I2C Hardware Bus support
667# 694#
668CONFIG_I2C_AT91=y 695# CONFIG_I2C_GPIO is not set
696# CONFIG_I2C_OCORES is not set
669# CONFIG_I2C_PARPORT_LIGHT is not set 697# CONFIG_I2C_PARPORT_LIGHT is not set
698# CONFIG_I2C_SIMTEC is not set
699# CONFIG_I2C_TAOS_EVM is not set
670# CONFIG_I2C_STUB is not set 700# CONFIG_I2C_STUB is not set
671# CONFIG_I2C_PCA_ISA is not set 701# CONFIG_I2C_TINY_USB is not set
672 702
673# 703#
674# Miscellaneous I2C Chip support 704# Miscellaneous I2C Chip support
675# 705#
676# CONFIG_SENSORS_DS1337 is not set 706# CONFIG_DS1682 is not set
677# CONFIG_SENSORS_DS1374 is not set
678# CONFIG_SENSORS_EEPROM is not set 707# CONFIG_SENSORS_EEPROM is not set
679# CONFIG_SENSORS_PCF8574 is not set 708# CONFIG_SENSORS_PCF8574 is not set
680# CONFIG_SENSORS_PCA9539 is not set 709# CONFIG_PCF8575 is not set
681# CONFIG_SENSORS_PCF8591 is not set 710# CONFIG_SENSORS_PCF8591 is not set
682# CONFIG_SENSORS_RTC8564 is not set 711# CONFIG_TPS65010 is not set
683# CONFIG_SENSORS_MAX6875 is not set 712# CONFIG_SENSORS_MAX6875 is not set
684# CONFIG_RTC_X1205_I2C is not set 713# CONFIG_SENSORS_TSL2550 is not set
685# CONFIG_I2C_DEBUG_CORE is not set 714# CONFIG_I2C_DEBUG_CORE is not set
686# CONFIG_I2C_DEBUG_ALGO is not set 715# CONFIG_I2C_DEBUG_ALGO is not set
687# CONFIG_I2C_DEBUG_BUS is not set 716# CONFIG_I2C_DEBUG_BUS is not set
688# CONFIG_I2C_DEBUG_CHIP is not set 717# CONFIG_I2C_DEBUG_CHIP is not set
689 718
690# 719#
691# Hardware Monitoring support 720# SPI support
692# 721#
722# CONFIG_SPI is not set
723# CONFIG_SPI_MASTER is not set
724# CONFIG_W1 is not set
725# CONFIG_POWER_SUPPLY is not set
693CONFIG_HWMON=y 726CONFIG_HWMON=y
694# CONFIG_HWMON_VID is not set 727# CONFIG_HWMON_VID is not set
728# CONFIG_SENSORS_AD7418 is not set
695# CONFIG_SENSORS_ADM1021 is not set 729# CONFIG_SENSORS_ADM1021 is not set
696# CONFIG_SENSORS_ADM1025 is not set 730# CONFIG_SENSORS_ADM1025 is not set
697# CONFIG_SENSORS_ADM1026 is not set 731# CONFIG_SENSORS_ADM1026 is not set
732# CONFIG_SENSORS_ADM1029 is not set
698# CONFIG_SENSORS_ADM1031 is not set 733# CONFIG_SENSORS_ADM1031 is not set
699# CONFIG_SENSORS_ADM9240 is not set 734# CONFIG_SENSORS_ADM9240 is not set
700# CONFIG_SENSORS_ASB100 is not set 735# CONFIG_SENSORS_ADT7470 is not set
736# CONFIG_SENSORS_ADT7473 is not set
701# CONFIG_SENSORS_ATXP1 is not set 737# CONFIG_SENSORS_ATXP1 is not set
702# CONFIG_SENSORS_DS1621 is not set 738# CONFIG_SENSORS_DS1621 is not set
703# CONFIG_SENSORS_FSCHER is not set 739# CONFIG_SENSORS_F71805F is not set
704# CONFIG_SENSORS_FSCPOS is not set 740# CONFIG_SENSORS_F71882FG is not set
741# CONFIG_SENSORS_F75375S is not set
705# CONFIG_SENSORS_GL518SM is not set 742# CONFIG_SENSORS_GL518SM is not set
706# CONFIG_SENSORS_GL520SM is not set 743# CONFIG_SENSORS_GL520SM is not set
707# CONFIG_SENSORS_IT87 is not set 744# CONFIG_SENSORS_IT87 is not set
@@ -715,39 +752,72 @@ CONFIG_HWMON=y
715# CONFIG_SENSORS_LM87 is not set 752# CONFIG_SENSORS_LM87 is not set
716# CONFIG_SENSORS_LM90 is not set 753# CONFIG_SENSORS_LM90 is not set
717# CONFIG_SENSORS_LM92 is not set 754# CONFIG_SENSORS_LM92 is not set
755# CONFIG_SENSORS_LM93 is not set
718# CONFIG_SENSORS_MAX1619 is not set 756# CONFIG_SENSORS_MAX1619 is not set
757# CONFIG_SENSORS_MAX6650 is not set
719# CONFIG_SENSORS_PC87360 is not set 758# CONFIG_SENSORS_PC87360 is not set
759# CONFIG_SENSORS_PC87427 is not set
760# CONFIG_SENSORS_DME1737 is not set
720# CONFIG_SENSORS_SMSC47M1 is not set 761# CONFIG_SENSORS_SMSC47M1 is not set
762# CONFIG_SENSORS_SMSC47M192 is not set
721# CONFIG_SENSORS_SMSC47B397 is not set 763# CONFIG_SENSORS_SMSC47B397 is not set
764# CONFIG_SENSORS_ADS7828 is not set
765# CONFIG_SENSORS_THMC50 is not set
766# CONFIG_SENSORS_VT1211 is not set
722# CONFIG_SENSORS_W83781D is not set 767# CONFIG_SENSORS_W83781D is not set
768# CONFIG_SENSORS_W83791D is not set
723# CONFIG_SENSORS_W83792D is not set 769# CONFIG_SENSORS_W83792D is not set
770# CONFIG_SENSORS_W83793 is not set
724# CONFIG_SENSORS_W83L785TS is not set 771# CONFIG_SENSORS_W83L785TS is not set
772# CONFIG_SENSORS_W83L786NG is not set
725# CONFIG_SENSORS_W83627HF is not set 773# CONFIG_SENSORS_W83627HF is not set
726# CONFIG_SENSORS_W83627EHF is not set 774# CONFIG_SENSORS_W83627EHF is not set
727# CONFIG_HWMON_DEBUG_CHIP is not set 775# CONFIG_HWMON_DEBUG_CHIP is not set
776CONFIG_WATCHDOG=y
777CONFIG_WATCHDOG_NOWAYOUT=y
728 778
729# 779#
730# Misc devices 780# Watchdog Device Drivers
731# 781#
782# CONFIG_SOFT_WATCHDOG is not set
783CONFIG_AT91RM9200_WATCHDOG=y
732 784
733# 785#
734# Multimedia Capabilities Port drivers 786# USB-based Watchdog Cards
735# 787#
788# CONFIG_USBPCWATCHDOG is not set
736 789
737# 790#
738# Multimedia devices 791# Sonics Silicon Backplane
739# 792#
740# CONFIG_VIDEO_DEV is not set 793CONFIG_SSB_POSSIBLE=y
794# CONFIG_SSB is not set
741 795
742# 796#
743# Digital Video Broadcasting Devices 797# Multifunction device drivers
744# 798#
745# CONFIG_DVB is not set 799# CONFIG_MFD_SM501 is not set
800# CONFIG_MFD_ASIC3 is not set
801
802#
803# Multimedia devices
804#
805# CONFIG_VIDEO_DEV is not set
806# CONFIG_DVB_CORE is not set
807# CONFIG_DAB is not set
746 808
747# 809#
748# Graphics support 810# Graphics support
749# 811#
812# CONFIG_VGASTATE is not set
813# CONFIG_VIDEO_OUTPUT_CONTROL is not set
750# CONFIG_FB is not set 814# CONFIG_FB is not set
815# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
816
817#
818# Display device support
819#
820# CONFIG_DISPLAY_SUPPORT is not set
751 821
752# 822#
753# Console display driver support 823# Console display driver support
@@ -759,20 +829,34 @@ CONFIG_DUMMY_CONSOLE=y
759# Sound 829# Sound
760# 830#
761# CONFIG_SOUND is not set 831# CONFIG_SOUND is not set
832CONFIG_HID_SUPPORT=y
833CONFIG_HID=y
834CONFIG_HID_DEBUG=y
835# CONFIG_HIDRAW is not set
762 836
763# 837#
764# USB support 838# USB Input Devices
765# 839#
840# CONFIG_USB_HID is not set
841
842#
843# USB HID Boot Protocol drivers
844#
845# CONFIG_USB_KBD is not set
846# CONFIG_USB_MOUSE is not set
847CONFIG_USB_SUPPORT=y
766CONFIG_USB_ARCH_HAS_HCD=y 848CONFIG_USB_ARCH_HAS_HCD=y
767CONFIG_USB_ARCH_HAS_OHCI=y 849CONFIG_USB_ARCH_HAS_OHCI=y
850# CONFIG_USB_ARCH_HAS_EHCI is not set
768CONFIG_USB=y 851CONFIG_USB=y
769CONFIG_USB_DEBUG=y 852CONFIG_USB_DEBUG=y
853# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
770 854
771# 855#
772# Miscellaneous USB options 856# Miscellaneous USB options
773# 857#
774CONFIG_USB_DEVICEFS=y 858CONFIG_USB_DEVICEFS=y
775# CONFIG_USB_BANDWIDTH is not set 859CONFIG_USB_DEVICE_CLASS=y
776# CONFIG_USB_DYNAMIC_MINORS is not set 860# CONFIG_USB_DYNAMIC_MINORS is not set
777# CONFIG_USB_OTG is not set 861# CONFIG_USB_OTG is not set
778 862
@@ -781,9 +865,11 @@ CONFIG_USB_DEVICEFS=y
781# 865#
782# CONFIG_USB_ISP116X_HCD is not set 866# CONFIG_USB_ISP116X_HCD is not set
783CONFIG_USB_OHCI_HCD=y 867CONFIG_USB_OHCI_HCD=y
784# CONFIG_USB_OHCI_BIG_ENDIAN is not set 868# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
869# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
785CONFIG_USB_OHCI_LITTLE_ENDIAN=y 870CONFIG_USB_OHCI_LITTLE_ENDIAN=y
786# CONFIG_USB_SL811_HCD is not set 871# CONFIG_USB_SL811_HCD is not set
872# CONFIG_USB_R8A66597_HCD is not set
787 873
788# 874#
789# USB Device Class drivers 875# USB Device Class drivers
@@ -802,80 +888,42 @@ CONFIG_USB_STORAGE=y
802# CONFIG_USB_STORAGE_DEBUG is not set 888# CONFIG_USB_STORAGE_DEBUG is not set
803# CONFIG_USB_STORAGE_DATAFAB is not set 889# CONFIG_USB_STORAGE_DATAFAB is not set
804# CONFIG_USB_STORAGE_FREECOM is not set 890# CONFIG_USB_STORAGE_FREECOM is not set
891# CONFIG_USB_STORAGE_ISD200 is not set
805# CONFIG_USB_STORAGE_DPCM is not set 892# CONFIG_USB_STORAGE_DPCM is not set
806# CONFIG_USB_STORAGE_USBAT is not set 893# CONFIG_USB_STORAGE_USBAT is not set
807# CONFIG_USB_STORAGE_SDDR09 is not set 894# CONFIG_USB_STORAGE_SDDR09 is not set
808# CONFIG_USB_STORAGE_SDDR55 is not set 895# CONFIG_USB_STORAGE_SDDR55 is not set
809# CONFIG_USB_STORAGE_JUMPSHOT is not set 896# CONFIG_USB_STORAGE_JUMPSHOT is not set
810 897# CONFIG_USB_STORAGE_ALAUDA is not set
811# 898# CONFIG_USB_STORAGE_KARMA is not set
812# USB Input Devices 899# CONFIG_USB_LIBUSUAL is not set
813#
814# CONFIG_USB_HID is not set
815
816#
817# USB HID Boot Protocol drivers
818#
819# CONFIG_USB_KBD is not set
820# CONFIG_USB_MOUSE is not set
821# CONFIG_USB_AIPTEK is not set
822# CONFIG_USB_WACOM is not set
823# CONFIG_USB_ACECAD is not set
824# CONFIG_USB_KBTAB is not set
825# CONFIG_USB_POWERMATE is not set
826# CONFIG_USB_MTOUCH is not set
827# CONFIG_USB_ITMTOUCH is not set
828# CONFIG_USB_EGALAX is not set
829# CONFIG_USB_YEALINK is not set
830# CONFIG_USB_XPAD is not set
831# CONFIG_USB_ATI_REMOTE is not set
832# CONFIG_USB_KEYSPAN_REMOTE is not set
833# CONFIG_USB_APPLETOUCH is not set
834 900
835# 901#
836# USB Imaging devices 902# USB Imaging devices
837# 903#
838# CONFIG_USB_MDC800 is not set 904# CONFIG_USB_MDC800 is not set
839# CONFIG_USB_MICROTEK is not set 905# CONFIG_USB_MICROTEK is not set
840
841#
842# USB Multimedia devices
843#
844# CONFIG_USB_DABUSB is not set
845
846#
847# Video4Linux support is needed for USB Multimedia device support
848#
849
850#
851# USB Network Adapters
852#
853# CONFIG_USB_CATC is not set
854# CONFIG_USB_KAWETH is not set
855# CONFIG_USB_PEGASUS is not set
856# CONFIG_USB_RTL8150 is not set
857# CONFIG_USB_USBNET is not set
858CONFIG_USB_MON=y 906CONFIG_USB_MON=y
859 907
860# 908#
861# USB port drivers 909# USB port drivers
862# 910#
863
864#
865# USB Serial Converter support
866#
867CONFIG_USB_SERIAL=y 911CONFIG_USB_SERIAL=y
868CONFIG_USB_SERIAL_CONSOLE=y 912CONFIG_USB_SERIAL_CONSOLE=y
913CONFIG_USB_EZUSB=y
869CONFIG_USB_SERIAL_GENERIC=y 914CONFIG_USB_SERIAL_GENERIC=y
915# CONFIG_USB_SERIAL_AIRCABLE is not set
870# CONFIG_USB_SERIAL_AIRPRIME is not set 916# CONFIG_USB_SERIAL_AIRPRIME is not set
871# CONFIG_USB_SERIAL_ANYDATA is not set 917# CONFIG_USB_SERIAL_ARK3116 is not set
872# CONFIG_USB_SERIAL_BELKIN is not set 918# CONFIG_USB_SERIAL_BELKIN is not set
919# CONFIG_USB_SERIAL_CH341 is not set
873# CONFIG_USB_SERIAL_WHITEHEAT is not set 920# CONFIG_USB_SERIAL_WHITEHEAT is not set
874# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set 921# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
875# CONFIG_USB_SERIAL_CP2101 is not set 922# CONFIG_USB_SERIAL_CP2101 is not set
876# CONFIG_USB_SERIAL_CYPRESS_M8 is not set 923# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
877# CONFIG_USB_SERIAL_EMPEG is not set 924# CONFIG_USB_SERIAL_EMPEG is not set
878CONFIG_USB_SERIAL_FTDI_SIO=y 925CONFIG_USB_SERIAL_FTDI_SIO=y
926# CONFIG_USB_SERIAL_FUNSOFT is not set
879# CONFIG_USB_SERIAL_VISOR is not set 927# CONFIG_USB_SERIAL_VISOR is not set
880# CONFIG_USB_SERIAL_IPAQ is not set 928# CONFIG_USB_SERIAL_IPAQ is not set
881# CONFIG_USB_SERIAL_IR is not set 929# CONFIG_USB_SERIAL_IR is not set
@@ -883,6 +931,7 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
883# CONFIG_USB_SERIAL_EDGEPORT_TI is not set 931# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
884# CONFIG_USB_SERIAL_GARMIN is not set 932# CONFIG_USB_SERIAL_GARMIN is not set
885# CONFIG_USB_SERIAL_IPW is not set 933# CONFIG_USB_SERIAL_IPW is not set
934# CONFIG_USB_SERIAL_IUU is not set
886# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set 935# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
887CONFIG_USB_SERIAL_KEYSPAN=y 936CONFIG_USB_SERIAL_KEYSPAN=y
888CONFIG_USB_SERIAL_KEYSPAN_MPR=y 937CONFIG_USB_SERIAL_KEYSPAN_MPR=y
@@ -900,46 +949,66 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
900# CONFIG_USB_SERIAL_KLSI is not set 949# CONFIG_USB_SERIAL_KLSI is not set
901# CONFIG_USB_SERIAL_KOBIL_SCT is not set 950# CONFIG_USB_SERIAL_KOBIL_SCT is not set
902CONFIG_USB_SERIAL_MCT_U232=y 951CONFIG_USB_SERIAL_MCT_U232=y
952# CONFIG_USB_SERIAL_MOS7720 is not set
953# CONFIG_USB_SERIAL_MOS7840 is not set
954# CONFIG_USB_SERIAL_NAVMAN is not set
903# CONFIG_USB_SERIAL_PL2303 is not set 955# CONFIG_USB_SERIAL_PL2303 is not set
956# CONFIG_USB_SERIAL_OTI6858 is not set
904# CONFIG_USB_SERIAL_HP4X is not set 957# CONFIG_USB_SERIAL_HP4X is not set
905# CONFIG_USB_SERIAL_SAFE is not set 958# CONFIG_USB_SERIAL_SAFE is not set
959# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
906# CONFIG_USB_SERIAL_TI is not set 960# CONFIG_USB_SERIAL_TI is not set
907# CONFIG_USB_SERIAL_CYBERJACK is not set 961# CONFIG_USB_SERIAL_CYBERJACK is not set
908# CONFIG_USB_SERIAL_XIRCOM is not set 962# CONFIG_USB_SERIAL_XIRCOM is not set
909# CONFIG_USB_SERIAL_OPTION is not set 963# CONFIG_USB_SERIAL_OPTION is not set
910# CONFIG_USB_SERIAL_OMNINET is not set 964# CONFIG_USB_SERIAL_OMNINET is not set
911CONFIG_USB_EZUSB=y 965# CONFIG_USB_SERIAL_DEBUG is not set
912 966
913# 967#
914# USB Miscellaneous drivers 968# USB Miscellaneous drivers
915# 969#
916# CONFIG_USB_EMI62 is not set 970# CONFIG_USB_EMI62 is not set
917# CONFIG_USB_EMI26 is not set 971# CONFIG_USB_EMI26 is not set
972# CONFIG_USB_ADUTUX is not set
918# CONFIG_USB_AUERSWALD is not set 973# CONFIG_USB_AUERSWALD is not set
919# CONFIG_USB_RIO500 is not set 974# CONFIG_USB_RIO500 is not set
920# CONFIG_USB_LEGOTOWER is not set 975# CONFIG_USB_LEGOTOWER is not set
921# CONFIG_USB_LCD is not set 976# CONFIG_USB_LCD is not set
977# CONFIG_USB_BERRY_CHARGE is not set
922# CONFIG_USB_LED is not set 978# CONFIG_USB_LED is not set
979# CONFIG_USB_CYPRESS_CY7C63 is not set
923# CONFIG_USB_CYTHERM is not set 980# CONFIG_USB_CYTHERM is not set
924# CONFIG_USB_PHIDGETKIT is not set 981# CONFIG_USB_PHIDGET is not set
925# CONFIG_USB_PHIDGETSERVO is not set
926# CONFIG_USB_IDMOUSE is not set 982# CONFIG_USB_IDMOUSE is not set
983# CONFIG_USB_FTDI_ELAN is not set
984# CONFIG_USB_APPLEDISPLAY is not set
927# CONFIG_USB_LD is not set 985# CONFIG_USB_LD is not set
986# CONFIG_USB_TRANCEVIBRATOR is not set
987# CONFIG_USB_IOWARRIOR is not set
928# CONFIG_USB_TEST is not set 988# CONFIG_USB_TEST is not set
989# CONFIG_USB_GADGET is not set
990# CONFIG_MMC is not set
991CONFIG_NEW_LEDS=y
992CONFIG_LEDS_CLASS=y
929 993
930# 994#
931# USB DSL modem support 995# LED drivers
932# 996#
997CONFIG_LEDS_GPIO=y
933 998
934# 999#
935# USB Gadget Support 1000# LED Triggers
936# 1001#
937# CONFIG_USB_GADGET is not set 1002CONFIG_LEDS_TRIGGERS=y
1003# CONFIG_LEDS_TRIGGER_TIMER is not set
1004CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1005CONFIG_RTC_LIB=y
1006# CONFIG_RTC_CLASS is not set
938 1007
939# 1008#
940# MMC/SD Card support 1009# Userspace I/O
941# 1010#
942# CONFIG_MMC is not set 1011# CONFIG_UIO is not set
943 1012
944# 1013#
945# File systems 1014# File systems
@@ -948,16 +1017,17 @@ CONFIG_EXT2_FS=y
948# CONFIG_EXT2_FS_XATTR is not set 1017# CONFIG_EXT2_FS_XATTR is not set
949# CONFIG_EXT2_FS_XIP is not set 1018# CONFIG_EXT2_FS_XIP is not set
950# CONFIG_EXT3_FS is not set 1019# CONFIG_EXT3_FS is not set
951# CONFIG_JBD is not set 1020# CONFIG_EXT4DEV_FS is not set
952# CONFIG_REISERFS_FS is not set 1021# CONFIG_REISERFS_FS is not set
953# CONFIG_JFS_FS is not set 1022# CONFIG_JFS_FS is not set
954# CONFIG_FS_POSIX_ACL is not set 1023# CONFIG_FS_POSIX_ACL is not set
955# CONFIG_XFS_FS is not set 1024# CONFIG_XFS_FS is not set
956# CONFIG_MINIX_FS is not set 1025# CONFIG_GFS2_FS is not set
957# CONFIG_ROMFS_FS is not set 1026# CONFIG_OCFS2_FS is not set
1027CONFIG_DNOTIFY=y
958CONFIG_INOTIFY=y 1028CONFIG_INOTIFY=y
1029CONFIG_INOTIFY_USER=y
959# CONFIG_QUOTA is not set 1030# CONFIG_QUOTA is not set
960CONFIG_DNOTIFY=y
961# CONFIG_AUTOFS_FS is not set 1031# CONFIG_AUTOFS_FS is not set
962# CONFIG_AUTOFS4_FS is not set 1032# CONFIG_AUTOFS4_FS is not set
963# CONFIG_FUSE_FS is not set 1033# CONFIG_FUSE_FS is not set
@@ -979,11 +1049,12 @@ CONFIG_DNOTIFY=y
979# Pseudo filesystems 1049# Pseudo filesystems
980# 1050#
981CONFIG_PROC_FS=y 1051CONFIG_PROC_FS=y
1052CONFIG_PROC_SYSCTL=y
982CONFIG_SYSFS=y 1053CONFIG_SYSFS=y
983CONFIG_TMPFS=y 1054CONFIG_TMPFS=y
1055# CONFIG_TMPFS_POSIX_ACL is not set
984# CONFIG_HUGETLB_PAGE is not set 1056# CONFIG_HUGETLB_PAGE is not set
985CONFIG_RAMFS=y 1057# CONFIG_CONFIGFS_FS is not set
986# CONFIG_RELAYFS_FS is not set
987 1058
988# 1059#
989# Miscellaneous filesystems 1060# Miscellaneous filesystems
@@ -995,18 +1066,16 @@ CONFIG_RAMFS=y
995# CONFIG_BEFS_FS is not set 1066# CONFIG_BEFS_FS is not set
996# CONFIG_BFS_FS is not set 1067# CONFIG_BFS_FS is not set
997# CONFIG_EFS_FS is not set 1068# CONFIG_EFS_FS is not set
998# CONFIG_JFFS_FS is not set
999# CONFIG_JFFS2_FS is not set 1069# CONFIG_JFFS2_FS is not set
1000CONFIG_CRAMFS=y 1070CONFIG_CRAMFS=y
1001# CONFIG_VXFS_FS is not set 1071# CONFIG_VXFS_FS is not set
1072# CONFIG_MINIX_FS is not set
1002# CONFIG_HPFS_FS is not set 1073# CONFIG_HPFS_FS is not set
1003# CONFIG_QNX4FS_FS is not set 1074# CONFIG_QNX4FS_FS is not set
1075# CONFIG_ROMFS_FS is not set
1004# CONFIG_SYSV_FS is not set 1076# CONFIG_SYSV_FS is not set
1005# CONFIG_UFS_FS is not set 1077# CONFIG_UFS_FS is not set
1006 1078CONFIG_NETWORK_FILESYSTEMS=y
1007#
1008# Network File Systems
1009#
1010CONFIG_NFS_FS=y 1079CONFIG_NFS_FS=y
1011CONFIG_NFS_V3=y 1080CONFIG_NFS_V3=y
1012# CONFIG_NFS_V3_ACL is not set 1081# CONFIG_NFS_V3_ACL is not set
@@ -1019,6 +1088,7 @@ CONFIG_LOCKD_V4=y
1019CONFIG_NFS_COMMON=y 1088CONFIG_NFS_COMMON=y
1020CONFIG_SUNRPC=y 1089CONFIG_SUNRPC=y
1021CONFIG_SUNRPC_GSS=y 1090CONFIG_SUNRPC_GSS=y
1091# CONFIG_SUNRPC_BIND34 is not set
1022CONFIG_RPCSEC_GSS_KRB5=y 1092CONFIG_RPCSEC_GSS_KRB5=y
1023# CONFIG_RPCSEC_GSS_SPKM3 is not set 1093# CONFIG_RPCSEC_GSS_SPKM3 is not set
1024# CONFIG_SMB_FS is not set 1094# CONFIG_SMB_FS is not set
@@ -1026,45 +1096,57 @@ CONFIG_RPCSEC_GSS_KRB5=y
1026# CONFIG_NCP_FS is not set 1096# CONFIG_NCP_FS is not set
1027# CONFIG_CODA_FS is not set 1097# CONFIG_CODA_FS is not set
1028# CONFIG_AFS_FS is not set 1098# CONFIG_AFS_FS is not set
1029# CONFIG_9P_FS is not set
1030 1099
1031# 1100#
1032# Partition Types 1101# Partition Types
1033# 1102#
1034# CONFIG_PARTITION_ADVANCED is not set 1103# CONFIG_PARTITION_ADVANCED is not set
1035CONFIG_MSDOS_PARTITION=y 1104CONFIG_MSDOS_PARTITION=y
1036
1037#
1038# Native Language Support
1039#
1040# CONFIG_NLS is not set 1105# CONFIG_NLS is not set
1041 1106# CONFIG_DLM is not set
1042#
1043# Profiling support
1044#
1045# CONFIG_PROFILING is not set
1046 1107
1047# 1108#
1048# Kernel hacking 1109# Kernel hacking
1049# 1110#
1050# CONFIG_PRINTK_TIME is not set 1111# CONFIG_PRINTK_TIME is not set
1051CONFIG_DEBUG_KERNEL=y 1112CONFIG_ENABLE_WARN_DEPRECATED=y
1113CONFIG_ENABLE_MUST_CHECK=y
1052# CONFIG_MAGIC_SYSRQ is not set 1114# CONFIG_MAGIC_SYSRQ is not set
1053CONFIG_LOG_BUF_SHIFT=14 1115# CONFIG_UNUSED_SYMBOLS is not set
1116# CONFIG_DEBUG_FS is not set
1117# CONFIG_HEADERS_CHECK is not set
1118CONFIG_DEBUG_KERNEL=y
1119# CONFIG_DEBUG_SHIRQ is not set
1054CONFIG_DETECT_SOFTLOCKUP=y 1120CONFIG_DETECT_SOFTLOCKUP=y
1121CONFIG_SCHED_DEBUG=y
1055# CONFIG_SCHEDSTATS is not set 1122# CONFIG_SCHEDSTATS is not set
1056# CONFIG_DEBUG_SLAB is not set 1123# CONFIG_TIMER_STATS is not set
1124# CONFIG_SLUB_DEBUG_ON is not set
1125# CONFIG_SLUB_STATS is not set
1126# CONFIG_DEBUG_RT_MUTEXES is not set
1127# CONFIG_RT_MUTEX_TESTER is not set
1057# CONFIG_DEBUG_SPINLOCK is not set 1128# CONFIG_DEBUG_SPINLOCK is not set
1129# CONFIG_DEBUG_MUTEXES is not set
1130# CONFIG_DEBUG_LOCK_ALLOC is not set
1131# CONFIG_PROVE_LOCKING is not set
1132# CONFIG_LOCK_STAT is not set
1058# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1133# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1134# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1059# CONFIG_DEBUG_KOBJECT is not set 1135# CONFIG_DEBUG_KOBJECT is not set
1060CONFIG_DEBUG_BUGVERBOSE=y 1136CONFIG_DEBUG_BUGVERBOSE=y
1061# CONFIG_DEBUG_INFO is not set 1137# CONFIG_DEBUG_INFO is not set
1062# CONFIG_DEBUG_FS is not set
1063# CONFIG_DEBUG_VM is not set 1138# CONFIG_DEBUG_VM is not set
1139# CONFIG_DEBUG_LIST is not set
1140# CONFIG_DEBUG_SG is not set
1064CONFIG_FRAME_POINTER=y 1141CONFIG_FRAME_POINTER=y
1142# CONFIG_BOOT_PRINTK_DELAY is not set
1065# CONFIG_RCU_TORTURE_TEST is not set 1143# CONFIG_RCU_TORTURE_TEST is not set
1144# CONFIG_BACKTRACE_SELF_TEST is not set
1145# CONFIG_FAULT_INJECTION is not set
1146# CONFIG_SAMPLES is not set
1066CONFIG_DEBUG_USER=y 1147CONFIG_DEBUG_USER=y
1067# CONFIG_DEBUG_ERRORS is not set 1148# CONFIG_DEBUG_ERRORS is not set
1149# CONFIG_DEBUG_STACK_USAGE is not set
1068CONFIG_DEBUG_LL=y 1150CONFIG_DEBUG_LL=y
1069# CONFIG_DEBUG_ICEDCC is not set 1151# CONFIG_DEBUG_ICEDCC is not set
1070 1152
@@ -1073,12 +1155,14 @@ CONFIG_DEBUG_LL=y
1073# 1155#
1074# CONFIG_KEYS is not set 1156# CONFIG_KEYS is not set
1075# CONFIG_SECURITY is not set 1157# CONFIG_SECURITY is not set
1076 1158# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1077#
1078# Cryptographic options
1079#
1080CONFIG_CRYPTO=y 1159CONFIG_CRYPTO=y
1160CONFIG_CRYPTO_ALGAPI=y
1161CONFIG_CRYPTO_BLKCIPHER=y
1162# CONFIG_CRYPTO_SEQIV is not set
1163CONFIG_CRYPTO_MANAGER=y
1081# CONFIG_CRYPTO_HMAC is not set 1164# CONFIG_CRYPTO_HMAC is not set
1165# CONFIG_CRYPTO_XCBC is not set
1082# CONFIG_CRYPTO_NULL is not set 1166# CONFIG_CRYPTO_NULL is not set
1083# CONFIG_CRYPTO_MD4 is not set 1167# CONFIG_CRYPTO_MD4 is not set
1084CONFIG_CRYPTO_MD5=y 1168CONFIG_CRYPTO_MD5=y
@@ -1087,7 +1171,18 @@ CONFIG_CRYPTO_MD5=y
1087# CONFIG_CRYPTO_SHA512 is not set 1171# CONFIG_CRYPTO_SHA512 is not set
1088# CONFIG_CRYPTO_WP512 is not set 1172# CONFIG_CRYPTO_WP512 is not set
1089# CONFIG_CRYPTO_TGR192 is not set 1173# CONFIG_CRYPTO_TGR192 is not set
1174# CONFIG_CRYPTO_GF128MUL is not set
1175# CONFIG_CRYPTO_ECB is not set
1176CONFIG_CRYPTO_CBC=y
1177# CONFIG_CRYPTO_PCBC is not set
1178# CONFIG_CRYPTO_LRW is not set
1179# CONFIG_CRYPTO_XTS is not set
1180# CONFIG_CRYPTO_CTR is not set
1181# CONFIG_CRYPTO_GCM is not set
1182# CONFIG_CRYPTO_CCM is not set
1183# CONFIG_CRYPTO_CRYPTD is not set
1090CONFIG_CRYPTO_DES=y 1184CONFIG_CRYPTO_DES=y
1185# CONFIG_CRYPTO_FCRYPT is not set
1091# CONFIG_CRYPTO_BLOWFISH is not set 1186# CONFIG_CRYPTO_BLOWFISH is not set
1092# CONFIG_CRYPTO_TWOFISH is not set 1187# CONFIG_CRYPTO_TWOFISH is not set
1093# CONFIG_CRYPTO_SERPENT is not set 1188# CONFIG_CRYPTO_SERPENT is not set
@@ -1098,20 +1193,29 @@ CONFIG_CRYPTO_DES=y
1098# CONFIG_CRYPTO_ARC4 is not set 1193# CONFIG_CRYPTO_ARC4 is not set
1099# CONFIG_CRYPTO_KHAZAD is not set 1194# CONFIG_CRYPTO_KHAZAD is not set
1100# CONFIG_CRYPTO_ANUBIS is not set 1195# CONFIG_CRYPTO_ANUBIS is not set
1196# CONFIG_CRYPTO_SEED is not set
1197# CONFIG_CRYPTO_SALSA20 is not set
1101# CONFIG_CRYPTO_DEFLATE is not set 1198# CONFIG_CRYPTO_DEFLATE is not set
1102# CONFIG_CRYPTO_MICHAEL_MIC is not set 1199# CONFIG_CRYPTO_MICHAEL_MIC is not set
1103# CONFIG_CRYPTO_CRC32C is not set 1200# CONFIG_CRYPTO_CRC32C is not set
1201# CONFIG_CRYPTO_CAMELLIA is not set
1104# CONFIG_CRYPTO_TEST is not set 1202# CONFIG_CRYPTO_TEST is not set
1105 1203# CONFIG_CRYPTO_AUTHENC is not set
1106# 1204# CONFIG_CRYPTO_LZO is not set
1107# Hardware crypto devices 1205CONFIG_CRYPTO_HW=y
1108#
1109 1206
1110# 1207#
1111# Library routines 1208# Library routines
1112# 1209#
1210CONFIG_BITREVERSE=y
1113# CONFIG_CRC_CCITT is not set 1211# CONFIG_CRC_CCITT is not set
1114# CONFIG_CRC16 is not set 1212# CONFIG_CRC16 is not set
1213# CONFIG_CRC_ITU_T is not set
1115CONFIG_CRC32=y 1214CONFIG_CRC32=y
1215# CONFIG_CRC7 is not set
1116# CONFIG_LIBCRC32C is not set 1216# CONFIG_LIBCRC32C is not set
1117CONFIG_ZLIB_INFLATE=y 1217CONFIG_ZLIB_INFLATE=y
1218CONFIG_PLIST=y
1219CONFIG_HAS_IOMEM=y
1220CONFIG_HAS_IOPORT=y
1221CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/ecbat91_defconfig b/arch/arm/configs/ecbat91_defconfig
new file mode 100644
index 000000000000..90ed214e3673
--- /dev/null
+++ b/arch/arm/configs/ecbat91_defconfig
@@ -0,0 +1,1315 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22-rc4
4# Sat Jun 9 01:30:18 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9# CONFIG_GENERIC_TIME is not set
10# CONFIG_GENERIC_CLOCKEVENTS is not set
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# Code maturity level options
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35
36#
37# General setup
38#
39CONFIG_LOCALVERSION=""
40CONFIG_LOCALVERSION_AUTO=y
41CONFIG_SWAP=y
42CONFIG_SYSVIPC=y
43# CONFIG_IPC_NS is not set
44CONFIG_SYSVIPC_SYSCTL=y
45# CONFIG_POSIX_MQUEUE is not set
46# CONFIG_BSD_PROCESS_ACCT is not set
47# CONFIG_TASKSTATS is not set
48# CONFIG_UTS_NS is not set
49# CONFIG_AUDIT is not set
50CONFIG_IKCONFIG=y
51CONFIG_IKCONFIG_PROC=y
52CONFIG_LOG_BUF_SHIFT=14
53CONFIG_SYSFS_DEPRECATED=y
54# CONFIG_RELAY is not set
55# CONFIG_BLK_DEV_INITRD is not set
56CONFIG_CC_OPTIMIZE_FOR_SIZE=y
57CONFIG_SYSCTL=y
58# CONFIG_EMBEDDED is not set
59CONFIG_UID16=y
60CONFIG_SYSCTL_SYSCALL=y
61CONFIG_KALLSYMS=y
62# CONFIG_KALLSYMS_EXTRA_PASS is not set
63CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y
65CONFIG_BUG=y
66CONFIG_ELF_CORE=y
67CONFIG_BASE_FULL=y
68CONFIG_FUTEX=y
69CONFIG_ANON_INODES=y
70CONFIG_EPOLL=y
71CONFIG_SIGNALFD=y
72CONFIG_TIMERFD=y
73CONFIG_EVENTFD=y
74CONFIG_SHMEM=y
75CONFIG_VM_EVENT_COUNTERS=y
76CONFIG_SLAB=y
77# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set
79CONFIG_RT_MUTEXES=y
80# CONFIG_TINY_SHMEM is not set
81CONFIG_BASE_SMALL=0
82
83#
84# Loadable module support
85#
86CONFIG_MODULES=y
87CONFIG_MODULE_UNLOAD=y
88# CONFIG_MODULE_FORCE_UNLOAD is not set
89# CONFIG_MODVERSIONS is not set
90# CONFIG_MODULE_SRCVERSION_ALL is not set
91CONFIG_KMOD=y
92
93#
94# Block layer
95#
96CONFIG_BLOCK=y
97# CONFIG_LBD is not set
98# CONFIG_BLK_DEV_IO_TRACE is not set
99# CONFIG_LSF is not set
100
101#
102# IO Schedulers
103#
104CONFIG_IOSCHED_NOOP=y
105CONFIG_IOSCHED_AS=y
106# CONFIG_IOSCHED_DEADLINE is not set
107# CONFIG_IOSCHED_CFQ is not set
108CONFIG_DEFAULT_AS=y
109# CONFIG_DEFAULT_DEADLINE is not set
110# CONFIG_DEFAULT_CFQ is not set
111# CONFIG_DEFAULT_NOOP is not set
112CONFIG_DEFAULT_IOSCHED="anticipatory"
113
114#
115# System Type
116#
117# CONFIG_ARCH_AAEC2000 is not set
118# CONFIG_ARCH_INTEGRATOR is not set
119# CONFIG_ARCH_REALVIEW is not set
120# CONFIG_ARCH_VERSATILE is not set
121CONFIG_ARCH_AT91=y
122# CONFIG_ARCH_CLPS7500 is not set
123# CONFIG_ARCH_CLPS711X is not set
124# CONFIG_ARCH_CO285 is not set
125# CONFIG_ARCH_EBSA110 is not set
126# CONFIG_ARCH_EP93XX is not set
127# CONFIG_ARCH_FOOTBRIDGE is not set
128# CONFIG_ARCH_NETX is not set
129# CONFIG_ARCH_H720X is not set
130# CONFIG_ARCH_IMX is not set
131# CONFIG_ARCH_IOP13XX is not set
132# CONFIG_ARCH_IOP32X is not set
133# CONFIG_ARCH_IOP33X is not set
134# CONFIG_ARCH_IXP23XX is not set
135# CONFIG_ARCH_IXP2000 is not set
136# CONFIG_ARCH_IXP4XX is not set
137# CONFIG_ARCH_L7200 is not set
138# CONFIG_ARCH_KS8695 is not set
139# CONFIG_ARCH_NS9XXX is not set
140# CONFIG_ARCH_PNX4008 is not set
141# CONFIG_ARCH_PXA is not set
142# CONFIG_ARCH_RPC is not set
143# CONFIG_ARCH_SA1100 is not set
144# CONFIG_ARCH_S3C2410 is not set
145# CONFIG_ARCH_SHARK is not set
146# CONFIG_ARCH_LH7A40X is not set
147# CONFIG_ARCH_DAVINCI is not set
148# CONFIG_ARCH_OMAP is not set
149
150#
151# Atmel AT91 System-on-Chip
152#
153CONFIG_ARCH_AT91RM9200=y
154# CONFIG_ARCH_AT91SAM9260 is not set
155# CONFIG_ARCH_AT91SAM9261 is not set
156# CONFIG_ARCH_AT91SAM9263 is not set
157# CONFIG_ARCH_AT91SAM9RL is not set
158
159#
160# AT91RM9200 Board Type
161#
162# CONFIG_MACH_ONEARM is not set
163# CONFIG_ARCH_AT91RM9200DK is not set
164# CONFIG_MACH_AT91RM9200EK is not set
165# CONFIG_MACH_CSB337 is not set
166# CONFIG_MACH_CSB637 is not set
167# CONFIG_MACH_CARMEVA is not set
168# CONFIG_MACH_ATEB9200 is not set
169# CONFIG_MACH_KB9200 is not set
170# CONFIG_MACH_PICOTUX2XX is not set
171# CONFIG_MACH_KAFA is not set
172# CONFIG_MACH_CHUB is not set
173CONFIG_MACH_ECBAT91=y
174
175#
176# AT91 Board Options
177#
178# CONFIG_MTD_AT91_DATAFLASH_CARD is not set
179
180#
181# AT91 Feature Selections
182#
183CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
184# CONFIG_ATMEL_TCLIB is not set
185
186#
187# Processor Type
188#
189CONFIG_CPU_32=y
190CONFIG_CPU_ARM920T=y
191CONFIG_CPU_32v4T=y
192CONFIG_CPU_ABRT_EV4T=y
193CONFIG_CPU_CACHE_V4WT=y
194CONFIG_CPU_CACHE_VIVT=y
195CONFIG_CPU_COPY_V4WB=y
196CONFIG_CPU_TLB_V4WBI=y
197CONFIG_CPU_CP15=y
198CONFIG_CPU_CP15_MMU=y
199
200#
201# Processor Features
202#
203CONFIG_ARM_THUMB=y
204# CONFIG_CPU_ICACHE_DISABLE is not set
205# CONFIG_CPU_DCACHE_DISABLE is not set
206# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
207# CONFIG_OUTER_CACHE is not set
208
209#
210# Bus support
211#
212# CONFIG_ARCH_SUPPORTS_MSI is not set
213
214#
215# PCCARD (PCMCIA/CardBus) support
216#
217CONFIG_PCCARD=y
218# CONFIG_PCMCIA_DEBUG is not set
219CONFIG_PCMCIA=y
220CONFIG_PCMCIA_LOAD_CIS=y
221CONFIG_PCMCIA_IOCTL=y
222
223#
224# PC-card bridges
225#
226CONFIG_AT91_CF=y
227
228#
229# Kernel Features
230#
231# CONFIG_TICK_ONESHOT is not set
232CONFIG_PREEMPT=y
233# CONFIG_NO_IDLE_HZ is not set
234CONFIG_HZ=100
235# CONFIG_AEABI is not set
236# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
237CONFIG_SELECT_MEMORY_MODEL=y
238CONFIG_FLATMEM_MANUAL=y
239# CONFIG_DISCONTIGMEM_MANUAL is not set
240# CONFIG_SPARSEMEM_MANUAL is not set
241CONFIG_FLATMEM=y
242CONFIG_FLAT_NODE_MEM_MAP=y
243# CONFIG_SPARSEMEM_STATIC is not set
244CONFIG_SPLIT_PTLOCK_CPUS=4096
245# CONFIG_RESOURCES_64BIT is not set
246CONFIG_ZONE_DMA_FLAG=1
247CONFIG_LEDS=y
248CONFIG_LEDS_TIMER=y
249CONFIG_LEDS_CPU=y
250CONFIG_ALIGNMENT_TRAP=y
251
252#
253# Boot options
254#
255CONFIG_ZBOOT_ROM_TEXT=0x0
256CONFIG_ZBOOT_ROM_BSS=0x0
257CONFIG_CMDLINE="rootfstype=reiserfs root=/dev/mmcblk0p1 console=ttyS0,115200n8 rootdelay=1"
258# CONFIG_XIP_KERNEL is not set
259# CONFIG_KEXEC is not set
260
261#
262# Floating point emulation
263#
264
265#
266# At least one emulation must be selected
267#
268CONFIG_FPE_NWFPE=y
269# CONFIG_FPE_NWFPE_XP is not set
270# CONFIG_FPE_FASTFPE is not set
271
272#
273# Userspace binary formats
274#
275CONFIG_BINFMT_ELF=y
276# CONFIG_BINFMT_AOUT is not set
277# CONFIG_BINFMT_MISC is not set
278# CONFIG_ARTHUR is not set
279
280#
281# Power management options
282#
283# CONFIG_PM is not set
284
285#
286# Networking
287#
288CONFIG_NET=y
289
290#
291# Networking options
292#
293CONFIG_PACKET=y
294# CONFIG_PACKET_MMAP is not set
295CONFIG_UNIX=y
296CONFIG_XFRM=y
297# CONFIG_XFRM_USER is not set
298# CONFIG_XFRM_SUB_POLICY is not set
299# CONFIG_XFRM_MIGRATE is not set
300# CONFIG_NET_KEY is not set
301CONFIG_INET=y
302# CONFIG_IP_MULTICAST is not set
303# CONFIG_IP_ADVANCED_ROUTER is not set
304CONFIG_IP_FIB_HASH=y
305CONFIG_IP_PNP=y
306CONFIG_IP_PNP_DHCP=y
307# CONFIG_IP_PNP_BOOTP is not set
308# CONFIG_IP_PNP_RARP is not set
309# CONFIG_NET_IPIP is not set
310# CONFIG_NET_IPGRE is not set
311# CONFIG_ARPD is not set
312# CONFIG_SYN_COOKIES is not set
313# CONFIG_INET_AH is not set
314# CONFIG_INET_ESP is not set
315# CONFIG_INET_IPCOMP is not set
316# CONFIG_INET_XFRM_TUNNEL is not set
317# CONFIG_INET_TUNNEL is not set
318CONFIG_INET_XFRM_MODE_TRANSPORT=y
319CONFIG_INET_XFRM_MODE_TUNNEL=y
320CONFIG_INET_XFRM_MODE_BEET=y
321CONFIG_INET_DIAG=y
322CONFIG_INET_TCP_DIAG=y
323# CONFIG_TCP_CONG_ADVANCED is not set
324CONFIG_TCP_CONG_CUBIC=y
325CONFIG_DEFAULT_TCP_CONG="cubic"
326# CONFIG_TCP_MD5SIG is not set
327# CONFIG_IPV6 is not set
328# CONFIG_INET6_XFRM_TUNNEL is not set
329# CONFIG_INET6_TUNNEL is not set
330# CONFIG_NETWORK_SECMARK is not set
331# CONFIG_NETFILTER is not set
332# CONFIG_IP_DCCP is not set
333# CONFIG_IP_SCTP is not set
334# CONFIG_TIPC is not set
335# CONFIG_ATM is not set
336# CONFIG_BRIDGE is not set
337# CONFIG_VLAN_8021Q is not set
338# CONFIG_DECNET is not set
339# CONFIG_LLC2 is not set
340# CONFIG_IPX is not set
341# CONFIG_ATALK is not set
342# CONFIG_X25 is not set
343# CONFIG_LAPB is not set
344# CONFIG_ECONET is not set
345# CONFIG_WAN_ROUTER is not set
346
347#
348# QoS and/or fair queueing
349#
350# CONFIG_NET_SCHED is not set
351CONFIG_NET_SCH_FIFO=y
352
353#
354# Network testing
355#
356# CONFIG_NET_PKTGEN is not set
357# CONFIG_HAMRADIO is not set
358# CONFIG_IRDA is not set
359# CONFIG_BT is not set
360# CONFIG_AF_RXRPC is not set
361
362#
363# Wireless
364#
365CONFIG_CFG80211=y
366CONFIG_WIRELESS_EXT=y
367CONFIG_MAC80211=y
368# CONFIG_MAC80211_DEBUG is not set
369CONFIG_IEEE80211=y
370# CONFIG_IEEE80211_DEBUG is not set
371CONFIG_IEEE80211_CRYPT_WEP=y
372# CONFIG_IEEE80211_CRYPT_CCMP is not set
373# CONFIG_IEEE80211_CRYPT_TKIP is not set
374CONFIG_IEEE80211_SOFTMAC=y
375CONFIG_IEEE80211_SOFTMAC_DEBUG=y
376# CONFIG_RFKILL is not set
377
378#
379# Device Drivers
380#
381
382#
383# Generic Driver Options
384#
385# CONFIG_STANDALONE is not set
386# CONFIG_PREVENT_FIRMWARE_BUILD is not set
387CONFIG_FW_LOADER=y
388# CONFIG_SYS_HYPERVISOR is not set
389
390#
391# Connector - unified userspace <-> kernelspace linker
392#
393# CONFIG_CONNECTOR is not set
394CONFIG_MTD=y
395# CONFIG_MTD_DEBUG is not set
396# CONFIG_MTD_CONCAT is not set
397CONFIG_MTD_PARTITIONS=y
398# CONFIG_MTD_REDBOOT_PARTS is not set
399CONFIG_MTD_CMDLINE_PARTS=y
400CONFIG_MTD_AFS_PARTS=y
401
402#
403# User Modules And Translation Layers
404#
405CONFIG_MTD_CHAR=y
406CONFIG_MTD_BLKDEVS=y
407CONFIG_MTD_BLOCK=y
408# CONFIG_FTL is not set
409# CONFIG_NFTL is not set
410# CONFIG_INFTL is not set
411# CONFIG_RFD_FTL is not set
412# CONFIG_SSFDC is not set
413
414#
415# RAM/ROM/Flash chip drivers
416#
417# CONFIG_MTD_CFI is not set
418# CONFIG_MTD_JEDECPROBE is not set
419CONFIG_MTD_MAP_BANK_WIDTH_1=y
420CONFIG_MTD_MAP_BANK_WIDTH_2=y
421CONFIG_MTD_MAP_BANK_WIDTH_4=y
422# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
423# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
424# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
425CONFIG_MTD_CFI_I1=y
426CONFIG_MTD_CFI_I2=y
427# CONFIG_MTD_CFI_I4 is not set
428# CONFIG_MTD_CFI_I8 is not set
429# CONFIG_MTD_RAM is not set
430# CONFIG_MTD_ROM is not set
431# CONFIG_MTD_ABSENT is not set
432
433#
434# Mapping drivers for chip access
435#
436# CONFIG_MTD_COMPLEX_MAPPINGS is not set
437# CONFIG_MTD_PLATRAM is not set
438
439#
440# Self-contained MTD device drivers
441#
442CONFIG_MTD_DATAFLASH=y
443# CONFIG_MTD_M25P80 is not set
444# CONFIG_MTD_SLRAM is not set
445# CONFIG_MTD_PHRAM is not set
446# CONFIG_MTD_MTDRAM is not set
447# CONFIG_MTD_BLOCK2MTD is not set
448
449#
450# Disk-On-Chip Device Drivers
451#
452# CONFIG_MTD_DOC2000 is not set
453# CONFIG_MTD_DOC2001 is not set
454# CONFIG_MTD_DOC2001PLUS is not set
455# CONFIG_MTD_NAND is not set
456# CONFIG_MTD_ONENAND is not set
457
458#
459# UBI - Unsorted block images
460#
461# CONFIG_MTD_UBI is not set
462
463#
464# Parallel port support
465#
466# CONFIG_PARPORT is not set
467
468#
469# Plug and Play support
470#
471# CONFIG_PNPACPI is not set
472
473#
474# Block devices
475#
476# CONFIG_BLK_DEV_COW_COMMON is not set
477CONFIG_BLK_DEV_LOOP=y
478# CONFIG_BLK_DEV_CRYPTOLOOP is not set
479# CONFIG_BLK_DEV_NBD is not set
480# CONFIG_BLK_DEV_UB is not set
481# CONFIG_BLK_DEV_RAM is not set
482# CONFIG_CDROM_PKTCDVD is not set
483# CONFIG_ATA_OVER_ETH is not set
484# CONFIG_IDE is not set
485
486#
487# SCSI device support
488#
489# CONFIG_RAID_ATTRS is not set
490CONFIG_SCSI=y
491# CONFIG_SCSI_TGT is not set
492# CONFIG_SCSI_NETLINK is not set
493CONFIG_SCSI_PROC_FS=y
494
495#
496# SCSI support type (disk, tape, CD-ROM)
497#
498CONFIG_BLK_DEV_SD=y
499# CONFIG_CHR_DEV_ST is not set
500# CONFIG_CHR_DEV_OSST is not set
501# CONFIG_BLK_DEV_SR is not set
502CONFIG_CHR_DEV_SG=y
503# CONFIG_CHR_DEV_SCH is not set
504
505#
506# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
507#
508# CONFIG_SCSI_MULTI_LUN is not set
509# CONFIG_SCSI_CONSTANTS is not set
510# CONFIG_SCSI_LOGGING is not set
511# CONFIG_SCSI_SCAN_ASYNC is not set
512CONFIG_SCSI_WAIT_SCAN=m
513
514#
515# SCSI Transports
516#
517# CONFIG_SCSI_SPI_ATTRS is not set
518# CONFIG_SCSI_FC_ATTRS is not set
519# CONFIG_SCSI_ISCSI_ATTRS is not set
520# CONFIG_SCSI_SAS_ATTRS is not set
521# CONFIG_SCSI_SAS_LIBSAS is not set
522
523#
524# SCSI low-level drivers
525#
526# CONFIG_ISCSI_TCP is not set
527# CONFIG_SCSI_DEBUG is not set
528
529#
530# PCMCIA SCSI adapter support
531#
532# CONFIG_PCMCIA_AHA152X is not set
533# CONFIG_PCMCIA_FDOMAIN is not set
534# CONFIG_PCMCIA_NINJA_SCSI is not set
535# CONFIG_PCMCIA_QLOGIC is not set
536# CONFIG_PCMCIA_SYM53C500 is not set
537# CONFIG_ATA is not set
538
539#
540# Multi-device support (RAID and LVM)
541#
542# CONFIG_MD is not set
543
544#
545# Network device support
546#
547CONFIG_NETDEVICES=y
548# CONFIG_DUMMY is not set
549# CONFIG_BONDING is not set
550# CONFIG_EQUALIZER is not set
551# CONFIG_TUN is not set
552# CONFIG_PHYLIB is not set
553
554#
555# Ethernet (10 or 100Mbit)
556#
557CONFIG_NET_ETHERNET=y
558CONFIG_MII=y
559CONFIG_ARM_AT91_ETHER=y
560# CONFIG_SMC91X is not set
561# CONFIG_DM9000 is not set
562# CONFIG_NETDEV_1000 is not set
563# CONFIG_NETDEV_10000 is not set
564
565#
566# Wireless LAN
567#
568# CONFIG_WLAN_PRE80211 is not set
569# CONFIG_WLAN_80211 is not set
570
571#
572# USB Network Adapters
573#
574# CONFIG_USB_CATC is not set
575# CONFIG_USB_KAWETH is not set
576# CONFIG_USB_PEGASUS is not set
577# CONFIG_USB_RTL8150 is not set
578# CONFIG_USB_USBNET_MII is not set
579# CONFIG_USB_USBNET is not set
580# CONFIG_NET_PCMCIA is not set
581# CONFIG_WAN is not set
582CONFIG_PPP=y
583CONFIG_PPP_MULTILINK=y
584CONFIG_PPP_FILTER=y
585CONFIG_PPP_ASYNC=y
586# CONFIG_PPP_SYNC_TTY is not set
587# CONFIG_PPP_DEFLATE is not set
588# CONFIG_PPP_BSDCOMP is not set
589# CONFIG_PPP_MPPE is not set
590# CONFIG_PPPOE is not set
591# CONFIG_SLIP is not set
592CONFIG_SLHC=y
593# CONFIG_SHAPER is not set
594# CONFIG_NETCONSOLE is not set
595# CONFIG_NETPOLL is not set
596# CONFIG_NET_POLL_CONTROLLER is not set
597
598#
599# ISDN subsystem
600#
601# CONFIG_ISDN is not set
602
603#
604# Input device support
605#
606CONFIG_INPUT=y
607# CONFIG_INPUT_FF_MEMLESS is not set
608
609#
610# Userland interfaces
611#
612CONFIG_INPUT_MOUSEDEV=y
613# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
614CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
615CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
616# CONFIG_INPUT_JOYDEV is not set
617# CONFIG_INPUT_TSDEV is not set
618# CONFIG_INPUT_EVDEV is not set
619# CONFIG_INPUT_EVBUG is not set
620
621#
622# Input Device Drivers
623#
624# CONFIG_INPUT_KEYBOARD is not set
625# CONFIG_INPUT_MOUSE is not set
626# CONFIG_INPUT_JOYSTICK is not set
627# CONFIG_INPUT_TABLET is not set
628# CONFIG_INPUT_TOUCHSCREEN is not set
629# CONFIG_INPUT_MISC is not set
630
631#
632# Hardware I/O ports
633#
634# CONFIG_SERIO is not set
635# CONFIG_GAMEPORT is not set
636
637#
638# Character devices
639#
640CONFIG_VT=y
641CONFIG_VT_CONSOLE=y
642CONFIG_HW_CONSOLE=y
643# CONFIG_VT_HW_CONSOLE_BINDING is not set
644# CONFIG_SERIAL_NONSTANDARD is not set
645
646#
647# Serial drivers
648#
649# CONFIG_SERIAL_8250 is not set
650
651#
652# Non-8250 serial port support
653#
654CONFIG_SERIAL_ATMEL=y
655CONFIG_SERIAL_ATMEL_CONSOLE=y
656# CONFIG_SERIAL_ATMEL_TTYAT is not set
657CONFIG_SERIAL_CORE=y
658CONFIG_SERIAL_CORE_CONSOLE=y
659CONFIG_UNIX98_PTYS=y
660CONFIG_LEGACY_PTYS=y
661CONFIG_LEGACY_PTY_COUNT=256
662
663#
664# IPMI
665#
666# CONFIG_IPMI_HANDLER is not set
667CONFIG_WATCHDOG=y
668CONFIG_WATCHDOG_NOWAYOUT=y
669
670#
671# Watchdog Device Drivers
672#
673# CONFIG_SOFT_WATCHDOG is not set
674# CONFIG_AT91RM9200_WATCHDOG is not set
675
676#
677# USB-based Watchdog Cards
678#
679# CONFIG_USBPCWATCHDOG is not set
680CONFIG_HW_RANDOM=y
681# CONFIG_NVRAM is not set
682# CONFIG_R3964 is not set
683
684#
685# PCMCIA character devices
686#
687# CONFIG_SYNCLINK_CS is not set
688# CONFIG_CARDMAN_4000 is not set
689# CONFIG_CARDMAN_4040 is not set
690# CONFIG_RAW_DRIVER is not set
691
692#
693# TPM devices
694#
695# CONFIG_TCG_TPM is not set
696# CONFIG_AT91_SPI is not set
697CONFIG_I2C=y
698CONFIG_I2C_BOARDINFO=y
699CONFIG_I2C_CHARDEV=y
700
701#
702# I2C Algorithms
703#
704CONFIG_I2C_ALGOBIT=y
705# CONFIG_I2C_ALGOPCF is not set
706# CONFIG_I2C_ALGOPCA is not set
707
708#
709# I2C Hardware Bus support
710#
711CONFIG_I2C_GPIO=y
712# CONFIG_I2C_GPIO is not set
713# CONFIG_I2C_OCORES is not set
714# CONFIG_I2C_PARPORT_LIGHT is not set
715# CONFIG_I2C_SIMTEC is not set
716# CONFIG_I2C_STUB is not set
717# CONFIG_I2C_TINY_USB is not set
718# CONFIG_I2C_PCA is not set
719
720#
721# Miscellaneous I2C Chip support
722#
723# CONFIG_SENSORS_DS1337 is not set
724# CONFIG_SENSORS_DS1374 is not set
725# CONFIG_SENSORS_EEPROM is not set
726# CONFIG_SENSORS_PCF8574 is not set
727# CONFIG_SENSORS_PCA9539 is not set
728# CONFIG_SENSORS_PCF8591 is not set
729# CONFIG_SENSORS_MAX6875 is not set
730# CONFIG_I2C_DEBUG_CORE is not set
731# CONFIG_I2C_DEBUG_ALGO is not set
732# CONFIG_I2C_DEBUG_BUS is not set
733# CONFIG_I2C_DEBUG_CHIP is not set
734
735#
736# SPI support
737#
738CONFIG_SPI=y
739CONFIG_SPI_MASTER=y
740
741#
742# SPI Master Controller Drivers
743#
744# CONFIG_SPI_ATMEL is not set
745CONFIG_SPI_BITBANG=y
746CONFIG_SPI_AT91=y
747
748#
749# SPI Protocol Masters
750#
751# CONFIG_SPI_AT25 is not set
752# CONFIG_SPI_SPIDEV is not set
753
754#
755# Dallas's 1-wire bus
756#
757# CONFIG_W1 is not set
758CONFIG_HWMON=y
759# CONFIG_HWMON_VID is not set
760# CONFIG_SENSORS_ABITUGURU is not set
761# CONFIG_SENSORS_AD7418 is not set
762# CONFIG_SENSORS_ADM1021 is not set
763# CONFIG_SENSORS_ADM1025 is not set
764# CONFIG_SENSORS_ADM1026 is not set
765# CONFIG_SENSORS_ADM1029 is not set
766# CONFIG_SENSORS_ADM1031 is not set
767# CONFIG_SENSORS_ADM9240 is not set
768# CONFIG_SENSORS_ASB100 is not set
769# CONFIG_SENSORS_ATXP1 is not set
770# CONFIG_SENSORS_DS1621 is not set
771# CONFIG_SENSORS_F71805F is not set
772# CONFIG_SENSORS_FSCHER is not set
773# CONFIG_SENSORS_FSCPOS is not set
774# CONFIG_SENSORS_GL518SM is not set
775# CONFIG_SENSORS_GL520SM is not set
776# CONFIG_SENSORS_IT87 is not set
777# CONFIG_SENSORS_LM63 is not set
778# CONFIG_SENSORS_LM70 is not set
779# CONFIG_SENSORS_LM75 is not set
780# CONFIG_SENSORS_LM77 is not set
781# CONFIG_SENSORS_LM78 is not set
782# CONFIG_SENSORS_LM80 is not set
783# CONFIG_SENSORS_LM83 is not set
784# CONFIG_SENSORS_LM85 is not set
785# CONFIG_SENSORS_LM87 is not set
786# CONFIG_SENSORS_LM90 is not set
787# CONFIG_SENSORS_LM92 is not set
788# CONFIG_SENSORS_MAX1619 is not set
789# CONFIG_SENSORS_MAX6650 is not set
790# CONFIG_SENSORS_PC87360 is not set
791# CONFIG_SENSORS_PC87427 is not set
792# CONFIG_SENSORS_SMSC47M1 is not set
793# CONFIG_SENSORS_SMSC47M192 is not set
794# CONFIG_SENSORS_SMSC47B397 is not set
795# CONFIG_SENSORS_VT1211 is not set
796# CONFIG_SENSORS_W83781D is not set
797# CONFIG_SENSORS_W83791D is not set
798# CONFIG_SENSORS_W83792D is not set
799# CONFIG_SENSORS_W83793 is not set
800# CONFIG_SENSORS_W83L785TS is not set
801# CONFIG_SENSORS_W83627HF is not set
802# CONFIG_SENSORS_W83627EHF is not set
803# CONFIG_HWMON_DEBUG_CHIP is not set
804
805#
806# Misc devices
807#
808# CONFIG_BLINK is not set
809
810#
811# Multifunction device drivers
812#
813# CONFIG_MFD_SM501 is not set
814
815#
816# LED devices
817#
818CONFIG_NEW_LEDS=y
819CONFIG_LEDS_CLASS=y
820
821#
822# LED drivers
823#
824
825#
826# LED Triggers
827#
828# CONFIG_LEDS_TRIGGERS is not set
829
830#
831# Multimedia devices
832#
833# CONFIG_VIDEO_DEV is not set
834# CONFIG_DVB_CORE is not set
835CONFIG_DAB=y
836# CONFIG_USB_DABUSB is not set
837
838#
839# Graphics support
840#
841# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
842
843#
844# Display device support
845#
846# CONFIG_DISPLAY_SUPPORT is not set
847# CONFIG_VGASTATE is not set
848# CONFIG_FB is not set
849
850#
851# Console display driver support
852#
853# CONFIG_VGA_CONSOLE is not set
854CONFIG_DUMMY_CONSOLE=y
855
856#
857# Sound
858#
859# CONFIG_SOUND is not set
860
861#
862# HID Devices
863#
864CONFIG_HID=y
865# CONFIG_HID_DEBUG is not set
866
867#
868# USB Input Devices
869#
870# CONFIG_USB_HID is not set
871
872#
873# USB HID Boot Protocol drivers
874#
875# CONFIG_USB_KBD is not set
876# CONFIG_USB_MOUSE is not set
877
878#
879# USB support
880#
881CONFIG_USB_ARCH_HAS_HCD=y
882CONFIG_USB_ARCH_HAS_OHCI=y
883# CONFIG_USB_ARCH_HAS_EHCI is not set
884CONFIG_USB=y
885# CONFIG_USB_DEBUG is not set
886
887#
888# Miscellaneous USB options
889#
890CONFIG_USB_DEVICEFS=y
891# CONFIG_USB_DEVICE_CLASS is not set
892# CONFIG_USB_DYNAMIC_MINORS is not set
893# CONFIG_USB_OTG is not set
894
895#
896# USB Host Controller Drivers
897#
898# CONFIG_USB_ISP116X_HCD is not set
899CONFIG_USB_OHCI_HCD=y
900# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
901# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
902CONFIG_USB_OHCI_LITTLE_ENDIAN=y
903# CONFIG_USB_SL811_HCD is not set
904
905#
906# USB Device Class drivers
907#
908# CONFIG_USB_ACM is not set
909CONFIG_USB_PRINTER=y
910
911#
912# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
913#
914
915#
916# may also be needed; see USB_STORAGE Help for more information
917#
918CONFIG_USB_STORAGE=y
919# CONFIG_USB_STORAGE_DEBUG is not set
920# CONFIG_USB_STORAGE_DATAFAB is not set
921# CONFIG_USB_STORAGE_FREECOM is not set
922# CONFIG_USB_STORAGE_DPCM is not set
923# CONFIG_USB_STORAGE_USBAT is not set
924# CONFIG_USB_STORAGE_SDDR09 is not set
925# CONFIG_USB_STORAGE_SDDR55 is not set
926# CONFIG_USB_STORAGE_JUMPSHOT is not set
927# CONFIG_USB_STORAGE_ALAUDA is not set
928# CONFIG_USB_STORAGE_KARMA is not set
929# CONFIG_USB_LIBUSUAL is not set
930
931#
932# USB Imaging devices
933#
934# CONFIG_USB_MDC800 is not set
935# CONFIG_USB_MICROTEK is not set
936# CONFIG_USB_MON is not set
937
938#
939# USB port drivers
940#
941
942#
943# USB Serial Converter support
944#
945# CONFIG_USB_SERIAL is not set
946
947#
948# USB Miscellaneous drivers
949#
950# CONFIG_USB_EMI62 is not set
951# CONFIG_USB_EMI26 is not set
952# CONFIG_USB_ADUTUX is not set
953# CONFIG_USB_AUERSWALD is not set
954# CONFIG_USB_RIO500 is not set
955# CONFIG_USB_LEGOTOWER is not set
956# CONFIG_USB_LCD is not set
957# CONFIG_USB_BERRY_CHARGE is not set
958# CONFIG_USB_LED is not set
959# CONFIG_USB_CYPRESS_CY7C63 is not set
960# CONFIG_USB_CYTHERM is not set
961# CONFIG_USB_PHIDGET is not set
962# CONFIG_USB_IDMOUSE is not set
963# CONFIG_USB_FTDI_ELAN is not set
964# CONFIG_USB_APPLEDISPLAY is not set
965# CONFIG_USB_LD is not set
966# CONFIG_USB_TRANCEVIBRATOR is not set
967# CONFIG_USB_IOWARRIOR is not set
968# CONFIG_USB_TEST is not set
969
970#
971# USB DSL modem support
972#
973
974#
975# USB Gadget Support
976#
977CONFIG_USB_GADGET=y
978# CONFIG_USB_GADGET_DEBUG_FILES is not set
979CONFIG_USB_GADGET_SELECTED=y
980# CONFIG_USB_GADGET_FSL_USB2 is not set
981# CONFIG_USB_GADGET_NET2280 is not set
982# CONFIG_USB_GADGET_PXA2XX is not set
983# CONFIG_USB_GADGET_GOKU is not set
984# CONFIG_USB_GADGET_LH7A40X is not set
985# CONFIG_USB_GADGET_OMAP is not set
986CONFIG_USB_GADGET_AT91=y
987CONFIG_USB_AT91=y
988# CONFIG_USB_GADGET_DUMMY_HCD is not set
989# CONFIG_USB_GADGET_DUALSPEED is not set
990# CONFIG_USB_ZERO is not set
991# CONFIG_USB_ETH is not set
992# CONFIG_USB_GADGETFS is not set
993# CONFIG_USB_FILE_STORAGE is not set
994# CONFIG_USB_G_SERIAL is not set
995# CONFIG_USB_MIDI_GADGET is not set
996CONFIG_MMC=y
997CONFIG_MMC_DEBUG=y
998# CONFIG_MMC_UNSAFE_RESUME is not set
999
1000#
1001# MMC/SD Card Drivers
1002#
1003CONFIG_MMC_BLOCK=y
1004
1005#
1006# MMC/SD Host Controller Drivers
1007#
1008CONFIG_MMC_AT91=y
1009
1010#
1011# Real Time Clock
1012#
1013CONFIG_RTC_LIB=y
1014CONFIG_RTC_CLASS=y
1015# CONFIG_RTC_HCTOSYS is not set
1016# CONFIG_RTC_DEBUG is not set
1017
1018#
1019# RTC interfaces
1020#
1021CONFIG_RTC_INTF_SYSFS=y
1022CONFIG_RTC_INTF_PROC=y
1023CONFIG_RTC_INTF_DEV=y
1024# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1025# CONFIG_RTC_DRV_TEST is not set
1026
1027#
1028# I2C RTC drivers
1029#
1030# CONFIG_RTC_DRV_DS1307 is not set
1031# CONFIG_RTC_DRV_DS1672 is not set
1032# CONFIG_RTC_DRV_MAX6900 is not set
1033# CONFIG_RTC_DRV_RS5C372 is not set
1034# CONFIG_RTC_DRV_ISL1208 is not set
1035# CONFIG_RTC_DRV_X1205 is not set
1036# CONFIG_RTC_DRV_PCF8563 is not set
1037# CONFIG_RTC_DRV_PCF8583 is not set
1038
1039#
1040# SPI RTC drivers
1041#
1042# CONFIG_RTC_DRV_RS5C348 is not set
1043# CONFIG_RTC_DRV_MAX6902 is not set
1044
1045#
1046# Platform RTC drivers
1047#
1048# CONFIG_RTC_DRV_CMOS is not set
1049# CONFIG_RTC_DRV_DS1553 is not set
1050# CONFIG_RTC_DRV_DS1742 is not set
1051# CONFIG_RTC_DRV_M48T86 is not set
1052# CONFIG_RTC_DRV_V3020 is not set
1053
1054#
1055# on-CPU RTC drivers
1056#
1057CONFIG_RTC_DRV_AT91RM9200=y
1058
1059#
1060# File systems
1061#
1062CONFIG_EXT2_FS=y
1063# CONFIG_EXT2_FS_XATTR is not set
1064# CONFIG_EXT2_FS_XIP is not set
1065CONFIG_EXT3_FS=y
1066CONFIG_EXT3_FS_XATTR=y
1067# CONFIG_EXT3_FS_POSIX_ACL is not set
1068# CONFIG_EXT3_FS_SECURITY is not set
1069# CONFIG_EXT4DEV_FS is not set
1070CONFIG_JBD=y
1071# CONFIG_JBD_DEBUG is not set
1072CONFIG_FS_MBCACHE=y
1073CONFIG_REISERFS_FS=y
1074# CONFIG_REISERFS_CHECK is not set
1075# CONFIG_REISERFS_PROC_INFO is not set
1076# CONFIG_REISERFS_FS_XATTR is not set
1077# CONFIG_JFS_FS is not set
1078CONFIG_FS_POSIX_ACL=y
1079# CONFIG_XFS_FS is not set
1080# CONFIG_GFS2_FS is not set
1081# CONFIG_OCFS2_FS is not set
1082# CONFIG_MINIX_FS is not set
1083# CONFIG_ROMFS_FS is not set
1084CONFIG_INOTIFY=y
1085CONFIG_INOTIFY_USER=y
1086# CONFIG_QUOTA is not set
1087CONFIG_DNOTIFY=y
1088# CONFIG_AUTOFS_FS is not set
1089# CONFIG_AUTOFS4_FS is not set
1090# CONFIG_FUSE_FS is not set
1091
1092#
1093# CD-ROM/DVD Filesystems
1094#
1095# CONFIG_ISO9660_FS is not set
1096# CONFIG_UDF_FS is not set
1097
1098#
1099# DOS/FAT/NT Filesystems
1100#
1101# CONFIG_MSDOS_FS is not set
1102# CONFIG_VFAT_FS is not set
1103# CONFIG_NTFS_FS is not set
1104
1105#
1106# Pseudo filesystems
1107#
1108CONFIG_PROC_FS=y
1109CONFIG_PROC_SYSCTL=y
1110CONFIG_SYSFS=y
1111CONFIG_TMPFS=y
1112# CONFIG_TMPFS_POSIX_ACL is not set
1113# CONFIG_HUGETLB_PAGE is not set
1114CONFIG_RAMFS=y
1115CONFIG_CONFIGFS_FS=y
1116
1117#
1118# Miscellaneous filesystems
1119#
1120# CONFIG_ADFS_FS is not set
1121# CONFIG_AFFS_FS is not set
1122# CONFIG_HFS_FS is not set
1123# CONFIG_HFSPLUS_FS is not set
1124# CONFIG_BEFS_FS is not set
1125# CONFIG_BFS_FS is not set
1126# CONFIG_EFS_FS is not set
1127# CONFIG_JFFS2_FS is not set
1128CONFIG_CRAMFS=y
1129# CONFIG_VXFS_FS is not set
1130# CONFIG_HPFS_FS is not set
1131# CONFIG_QNX4FS_FS is not set
1132# CONFIG_SYSV_FS is not set
1133# CONFIG_UFS_FS is not set
1134
1135#
1136# Network File Systems
1137#
1138CONFIG_NFS_FS=y
1139CONFIG_NFS_V3=y
1140CONFIG_NFS_V3_ACL=y
1141CONFIG_NFS_V4=y
1142# CONFIG_NFS_DIRECTIO is not set
1143# CONFIG_NFSD is not set
1144CONFIG_ROOT_NFS=y
1145CONFIG_LOCKD=y
1146CONFIG_LOCKD_V4=y
1147CONFIG_NFS_ACL_SUPPORT=y
1148CONFIG_NFS_COMMON=y
1149CONFIG_SUNRPC=y
1150CONFIG_SUNRPC_GSS=y
1151# CONFIG_SUNRPC_BIND34 is not set
1152CONFIG_RPCSEC_GSS_KRB5=y
1153# CONFIG_RPCSEC_GSS_SPKM3 is not set
1154# CONFIG_SMB_FS is not set
1155# CONFIG_CIFS is not set
1156# CONFIG_NCP_FS is not set
1157# CONFIG_CODA_FS is not set
1158# CONFIG_AFS_FS is not set
1159# CONFIG_9P_FS is not set
1160
1161#
1162# Partition Types
1163#
1164CONFIG_PARTITION_ADVANCED=y
1165# CONFIG_ACORN_PARTITION is not set
1166# CONFIG_OSF_PARTITION is not set
1167# CONFIG_AMIGA_PARTITION is not set
1168# CONFIG_ATARI_PARTITION is not set
1169# CONFIG_MAC_PARTITION is not set
1170CONFIG_MSDOS_PARTITION=y
1171# CONFIG_BSD_DISKLABEL is not set
1172# CONFIG_MINIX_SUBPARTITION is not set
1173# CONFIG_SOLARIS_X86_PARTITION is not set
1174# CONFIG_UNIXWARE_DISKLABEL is not set
1175# CONFIG_LDM_PARTITION is not set
1176# CONFIG_SGI_PARTITION is not set
1177# CONFIG_ULTRIX_PARTITION is not set
1178# CONFIG_SUN_PARTITION is not set
1179# CONFIG_KARMA_PARTITION is not set
1180# CONFIG_EFI_PARTITION is not set
1181# CONFIG_SYSV68_PARTITION is not set
1182
1183#
1184# Native Language Support
1185#
1186CONFIG_NLS=y
1187CONFIG_NLS_DEFAULT="iso8859-1"
1188# CONFIG_NLS_CODEPAGE_437 is not set
1189# CONFIG_NLS_CODEPAGE_737 is not set
1190# CONFIG_NLS_CODEPAGE_775 is not set
1191# CONFIG_NLS_CODEPAGE_850 is not set
1192# CONFIG_NLS_CODEPAGE_852 is not set
1193# CONFIG_NLS_CODEPAGE_855 is not set
1194# CONFIG_NLS_CODEPAGE_857 is not set
1195# CONFIG_NLS_CODEPAGE_860 is not set
1196# CONFIG_NLS_CODEPAGE_861 is not set
1197# CONFIG_NLS_CODEPAGE_862 is not set
1198# CONFIG_NLS_CODEPAGE_863 is not set
1199# CONFIG_NLS_CODEPAGE_864 is not set
1200# CONFIG_NLS_CODEPAGE_865 is not set
1201# CONFIG_NLS_CODEPAGE_866 is not set
1202# CONFIG_NLS_CODEPAGE_869 is not set
1203# CONFIG_NLS_CODEPAGE_936 is not set
1204# CONFIG_NLS_CODEPAGE_950 is not set
1205# CONFIG_NLS_CODEPAGE_932 is not set
1206# CONFIG_NLS_CODEPAGE_949 is not set
1207# CONFIG_NLS_CODEPAGE_874 is not set
1208# CONFIG_NLS_ISO8859_8 is not set
1209# CONFIG_NLS_CODEPAGE_1250 is not set
1210# CONFIG_NLS_CODEPAGE_1251 is not set
1211# CONFIG_NLS_ASCII is not set
1212# CONFIG_NLS_ISO8859_1 is not set
1213# CONFIG_NLS_ISO8859_2 is not set
1214# CONFIG_NLS_ISO8859_3 is not set
1215# CONFIG_NLS_ISO8859_4 is not set
1216# CONFIG_NLS_ISO8859_5 is not set
1217# CONFIG_NLS_ISO8859_6 is not set
1218# CONFIG_NLS_ISO8859_7 is not set
1219# CONFIG_NLS_ISO8859_9 is not set
1220# CONFIG_NLS_ISO8859_13 is not set
1221# CONFIG_NLS_ISO8859_14 is not set
1222# CONFIG_NLS_ISO8859_15 is not set
1223# CONFIG_NLS_KOI8_R is not set
1224# CONFIG_NLS_KOI8_U is not set
1225# CONFIG_NLS_UTF8 is not set
1226
1227#
1228# Distributed Lock Manager
1229#
1230# CONFIG_DLM is not set
1231
1232#
1233# Profiling support
1234#
1235# CONFIG_PROFILING is not set
1236
1237#
1238# Kernel hacking
1239#
1240# CONFIG_PRINTK_TIME is not set
1241CONFIG_ENABLE_MUST_CHECK=y
1242# CONFIG_MAGIC_SYSRQ is not set
1243# CONFIG_UNUSED_SYMBOLS is not set
1244# CONFIG_DEBUG_FS is not set
1245# CONFIG_HEADERS_CHECK is not set
1246# CONFIG_DEBUG_KERNEL is not set
1247CONFIG_DEBUG_BUGVERBOSE=y
1248CONFIG_FRAME_POINTER=y
1249CONFIG_DEBUG_USER=y
1250
1251#
1252# Security options
1253#
1254# CONFIG_KEYS is not set
1255# CONFIG_SECURITY is not set
1256
1257#
1258# Cryptographic options
1259#
1260CONFIG_CRYPTO=y
1261CONFIG_CRYPTO_ALGAPI=y
1262CONFIG_CRYPTO_BLKCIPHER=y
1263CONFIG_CRYPTO_MANAGER=y
1264# CONFIG_CRYPTO_HMAC is not set
1265# CONFIG_CRYPTO_XCBC is not set
1266# CONFIG_CRYPTO_NULL is not set
1267# CONFIG_CRYPTO_MD4 is not set
1268CONFIG_CRYPTO_MD5=y
1269CONFIG_CRYPTO_SHA1=y
1270# CONFIG_CRYPTO_SHA256 is not set
1271# CONFIG_CRYPTO_SHA512 is not set
1272# CONFIG_CRYPTO_WP512 is not set
1273# CONFIG_CRYPTO_TGR192 is not set
1274# CONFIG_CRYPTO_GF128MUL is not set
1275CONFIG_CRYPTO_ECB=y
1276CONFIG_CRYPTO_CBC=y
1277CONFIG_CRYPTO_PCBC=y
1278# CONFIG_CRYPTO_LRW is not set
1279# CONFIG_CRYPTO_CRYPTD is not set
1280CONFIG_CRYPTO_DES=y
1281# CONFIG_CRYPTO_FCRYPT is not set
1282# CONFIG_CRYPTO_BLOWFISH is not set
1283# CONFIG_CRYPTO_TWOFISH is not set
1284# CONFIG_CRYPTO_SERPENT is not set
1285CONFIG_CRYPTO_AES=y
1286# CONFIG_CRYPTO_CAST5 is not set
1287# CONFIG_CRYPTO_CAST6 is not set
1288# CONFIG_CRYPTO_TEA is not set
1289CONFIG_CRYPTO_ARC4=y
1290# CONFIG_CRYPTO_KHAZAD is not set
1291# CONFIG_CRYPTO_ANUBIS is not set
1292# CONFIG_CRYPTO_DEFLATE is not set
1293# CONFIG_CRYPTO_MICHAEL_MIC is not set
1294# CONFIG_CRYPTO_CRC32C is not set
1295# CONFIG_CRYPTO_CAMELLIA is not set
1296# CONFIG_CRYPTO_TEST is not set
1297
1298#
1299# Hardware crypto devices
1300#
1301
1302#
1303# Library routines
1304#
1305CONFIG_BITREVERSE=y
1306CONFIG_CRC_CCITT=y
1307# CONFIG_CRC16 is not set
1308# CONFIG_CRC_ITU_T is not set
1309CONFIG_CRC32=y
1310# CONFIG_LIBCRC32C is not set
1311CONFIG_ZLIB_INFLATE=y
1312CONFIG_PLIST=y
1313CONFIG_HAS_IOMEM=y
1314CONFIG_HAS_IOPORT=y
1315CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/kafa_defconfig b/arch/arm/configs/kafa_defconfig
index a0f48d54fbcc..ae51a40db6f9 100644
--- a/arch/arm/configs/kafa_defconfig
+++ b/arch/arm/configs/kafa_defconfig
@@ -587,14 +587,14 @@ CONFIG_I2C_CHARDEV=y
587# 587#
588# I2C Algorithms 588# I2C Algorithms
589# 589#
590# CONFIG_I2C_ALGOBIT is not set 590CONFIG_I2C_ALGOBIT=y
591# CONFIG_I2C_ALGOPCF is not set 591# CONFIG_I2C_ALGOPCF is not set
592# CONFIG_I2C_ALGOPCA is not set 592# CONFIG_I2C_ALGOPCA is not set
593 593
594# 594#
595# I2C Hardware Bus support 595# I2C Hardware Bus support
596# 596#
597CONFIG_I2C_AT91=y 597CONFIG_I2C_GPIO=y
598# CONFIG_I2C_PARPORT_LIGHT is not set 598# CONFIG_I2C_PARPORT_LIGHT is not set
599# CONFIG_I2C_STUB is not set 599# CONFIG_I2C_STUB is not set
600# CONFIG_I2C_PCA_ISA is not set 600# CONFIG_I2C_PCA_ISA is not set
diff --git a/arch/arm/configs/magician_defconfig b/arch/arm/configs/magician_defconfig
new file mode 100644
index 000000000000..4d11678584db
--- /dev/null
+++ b/arch/arm/configs/magician_defconfig
@@ -0,0 +1,1182 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6
4# Sun Dec 30 13:02:54 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_ARCH_MTD_XIP=y
26CONFIG_VECTORS_BASE=0xffff0000
27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
28
29#
30# General setup
31#
32CONFIG_EXPERIMENTAL=y
33CONFIG_BROKEN_ON_SMP=y
34CONFIG_LOCK_KERNEL=y
35CONFIG_INIT_ENV_ARG_LIMIT=32
36CONFIG_LOCALVERSION=""
37CONFIG_LOCALVERSION_AUTO=y
38CONFIG_SWAP=y
39CONFIG_SYSVIPC=y
40CONFIG_SYSVIPC_SYSCTL=y
41# CONFIG_POSIX_MQUEUE is not set
42# CONFIG_BSD_PROCESS_ACCT is not set
43# CONFIG_TASKSTATS is not set
44# CONFIG_USER_NS is not set
45# CONFIG_PID_NS is not set
46# CONFIG_AUDIT is not set
47CONFIG_IKCONFIG=y
48CONFIG_IKCONFIG_PROC=y
49CONFIG_LOG_BUF_SHIFT=16
50# CONFIG_CGROUPS is not set
51# CONFIG_FAIR_GROUP_SCHED is not set
52# CONFIG_SYSFS_DEPRECATED is not set
53# CONFIG_RELAY is not set
54CONFIG_BLK_DEV_INITRD=y
55CONFIG_INITRAMFS_SOURCE=""
56CONFIG_CC_OPTIMIZE_FOR_SIZE=y
57CONFIG_SYSCTL=y
58CONFIG_EMBEDDED=y
59# CONFIG_UID16 is not set
60CONFIG_SYSCTL_SYSCALL=y
61CONFIG_KALLSYMS=y
62# CONFIG_KALLSYMS_ALL is not set
63# CONFIG_KALLSYMS_EXTRA_PASS is not set
64CONFIG_HOTPLUG=y
65CONFIG_PRINTK=y
66CONFIG_BUG=y
67CONFIG_ELF_CORE=y
68CONFIG_BASE_FULL=y
69CONFIG_FUTEX=y
70CONFIG_ANON_INODES=y
71CONFIG_EPOLL=y
72CONFIG_SIGNALFD=y
73CONFIG_EVENTFD=y
74CONFIG_SHMEM=y
75CONFIG_VM_EVENT_COUNTERS=y
76CONFIG_SLAB=y
77# CONFIG_SLUB is not set
78# CONFIG_SLOB is not set
79CONFIG_RT_MUTEXES=y
80# CONFIG_TINY_SHMEM is not set
81CONFIG_BASE_SMALL=0
82CONFIG_MODULES=y
83CONFIG_MODULE_UNLOAD=y
84CONFIG_MODULE_FORCE_UNLOAD=y
85# CONFIG_MODVERSIONS is not set
86# CONFIG_MODULE_SRCVERSION_ALL is not set
87CONFIG_KMOD=y
88CONFIG_BLOCK=y
89# CONFIG_LBD is not set
90# CONFIG_BLK_DEV_IO_TRACE is not set
91# CONFIG_LSF is not set
92# CONFIG_BLK_DEV_BSG is not set
93
94#
95# IO Schedulers
96#
97CONFIG_IOSCHED_NOOP=y
98# CONFIG_IOSCHED_AS is not set
99# CONFIG_IOSCHED_DEADLINE is not set
100# CONFIG_IOSCHED_CFQ is not set
101# CONFIG_DEFAULT_AS is not set
102# CONFIG_DEFAULT_DEADLINE is not set
103# CONFIG_DEFAULT_CFQ is not set
104CONFIG_DEFAULT_NOOP=y
105CONFIG_DEFAULT_IOSCHED="noop"
106CONFIG_CLASSIC_RCU=y
107# CONFIG_PREEMPT_RCU is not set
108
109#
110# System Type
111#
112# CONFIG_ARCH_AAEC2000 is not set
113# CONFIG_ARCH_INTEGRATOR is not set
114# CONFIG_ARCH_REALVIEW is not set
115# CONFIG_ARCH_VERSATILE is not set
116# CONFIG_ARCH_AT91 is not set
117# CONFIG_ARCH_CLPS7500 is not set
118# CONFIG_ARCH_CLPS711X is not set
119# CONFIG_ARCH_CO285 is not set
120# CONFIG_ARCH_EBSA110 is not set
121# CONFIG_ARCH_EP93XX is not set
122# CONFIG_ARCH_FOOTBRIDGE is not set
123# CONFIG_ARCH_NETX is not set
124# CONFIG_ARCH_H720X is not set
125# CONFIG_ARCH_IMX is not set
126# CONFIG_ARCH_IOP13XX is not set
127# CONFIG_ARCH_IOP32X is not set
128# CONFIG_ARCH_IOP33X is not set
129# CONFIG_ARCH_IXP23XX is not set
130# CONFIG_ARCH_IXP2000 is not set
131# CONFIG_ARCH_IXP4XX is not set
132# CONFIG_ARCH_L7200 is not set
133# CONFIG_ARCH_KS8695 is not set
134# CONFIG_ARCH_NS9XXX is not set
135# CONFIG_ARCH_MXC is not set
136# CONFIG_ARCH_PNX4008 is not set
137CONFIG_ARCH_PXA=y
138# CONFIG_ARCH_RPC is not set
139# CONFIG_ARCH_SA1100 is not set
140# CONFIG_ARCH_S3C2410 is not set
141# CONFIG_ARCH_SHARK is not set
142# CONFIG_ARCH_LH7A40X is not set
143# CONFIG_ARCH_DAVINCI is not set
144# CONFIG_ARCH_OMAP is not set
145
146#
147# Intel PXA2xx/PXA3xx Implementations
148#
149# CONFIG_ARCH_LUBBOCK is not set
150# CONFIG_MACH_LOGICPD_PXA270 is not set
151# CONFIG_MACH_MAINSTONE is not set
152# CONFIG_ARCH_PXA_IDP is not set
153# CONFIG_PXA_SHARPSL is not set
154# CONFIG_MACH_TRIZEPS4 is not set
155# CONFIG_MACH_EM_X270 is not set
156# CONFIG_MACH_ZYLONITE is not set
157# CONFIG_MACH_ARMCORE is not set
158CONFIG_MACH_MAGICIAN=y
159CONFIG_PXA27x=y
160
161#
162# Boot options
163#
164
165#
166# Power management
167#
168
169#
170# Processor Type
171#
172CONFIG_CPU_32=y
173CONFIG_CPU_XSCALE=y
174CONFIG_CPU_32v5=y
175CONFIG_CPU_ABRT_EV5T=y
176CONFIG_CPU_CACHE_VIVT=y
177CONFIG_CPU_TLB_V4WBI=y
178CONFIG_CPU_CP15=y
179CONFIG_CPU_CP15_MMU=y
180
181#
182# Processor Features
183#
184CONFIG_ARM_THUMB=y
185# CONFIG_CPU_DCACHE_DISABLE is not set
186# CONFIG_OUTER_CACHE is not set
187CONFIG_IWMMXT=y
188CONFIG_XSCALE_PMU=y
189
190#
191# Bus support
192#
193# CONFIG_PCI_SYSCALL is not set
194# CONFIG_ARCH_SUPPORTS_MSI is not set
195# CONFIG_PCCARD is not set
196
197#
198# Kernel Features
199#
200# CONFIG_TICK_ONESHOT is not set
201# CONFIG_NO_HZ is not set
202# CONFIG_HIGH_RES_TIMERS is not set
203CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
204CONFIG_PREEMPT=y
205CONFIG_HZ=100
206CONFIG_AEABI=y
207CONFIG_OABI_COMPAT=y
208# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
209CONFIG_SELECT_MEMORY_MODEL=y
210CONFIG_FLATMEM_MANUAL=y
211# CONFIG_DISCONTIGMEM_MANUAL is not set
212# CONFIG_SPARSEMEM_MANUAL is not set
213CONFIG_FLATMEM=y
214CONFIG_FLAT_NODE_MEM_MAP=y
215# CONFIG_SPARSEMEM_STATIC is not set
216# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
217CONFIG_SPLIT_PTLOCK_CPUS=4096
218# CONFIG_RESOURCES_64BIT is not set
219CONFIG_ZONE_DMA_FLAG=1
220CONFIG_BOUNCE=y
221CONFIG_VIRT_TO_BUS=y
222CONFIG_ALIGNMENT_TRAP=y
223
224#
225# Boot options
226#
227CONFIG_ZBOOT_ROM_TEXT=0x0
228CONFIG_ZBOOT_ROM_BSS=0x0
229CONFIG_CMDLINE="keepinitrd"
230# CONFIG_XIP_KERNEL is not set
231CONFIG_KEXEC=y
232
233#
234# CPU Frequency scaling
235#
236CONFIG_CPU_FREQ=y
237CONFIG_CPU_FREQ_TABLE=y
238# CONFIG_CPU_FREQ_DEBUG is not set
239CONFIG_CPU_FREQ_STAT=y
240# CONFIG_CPU_FREQ_STAT_DETAILS is not set
241CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
242# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
243# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
244# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
245CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
246# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
247# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
248CONFIG_CPU_FREQ_GOV_ONDEMAND=y
249# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
250
251#
252# Floating point emulation
253#
254
255#
256# At least one emulation must be selected
257#
258CONFIG_FPE_NWFPE=y
259# CONFIG_FPE_NWFPE_XP is not set
260# CONFIG_FPE_FASTFPE is not set
261
262#
263# Userspace binary formats
264#
265CONFIG_BINFMT_ELF=y
266# CONFIG_BINFMT_AOUT is not set
267# CONFIG_BINFMT_MISC is not set
268
269#
270# Power management options
271#
272CONFIG_PM=y
273# CONFIG_PM_LEGACY is not set
274# CONFIG_PM_DEBUG is not set
275CONFIG_PM_SLEEP=y
276CONFIG_SUSPEND_UP_POSSIBLE=y
277CONFIG_SUSPEND=y
278CONFIG_APM_EMULATION=y
279
280#
281# Networking
282#
283CONFIG_NET=y
284
285#
286# Networking options
287#
288CONFIG_PACKET=y
289CONFIG_PACKET_MMAP=y
290CONFIG_UNIX=y
291# CONFIG_NET_KEY is not set
292CONFIG_INET=y
293CONFIG_IP_MULTICAST=y
294# CONFIG_IP_ADVANCED_ROUTER is not set
295CONFIG_IP_FIB_HASH=y
296CONFIG_IP_PNP=y
297# CONFIG_IP_PNP_DHCP is not set
298# CONFIG_IP_PNP_BOOTP is not set
299# CONFIG_IP_PNP_RARP is not set
300# CONFIG_NET_IPIP is not set
301# CONFIG_NET_IPGRE is not set
302# CONFIG_IP_MROUTE is not set
303# CONFIG_ARPD is not set
304# CONFIG_SYN_COOKIES is not set
305# CONFIG_INET_AH is not set
306# CONFIG_INET_ESP is not set
307# CONFIG_INET_IPCOMP is not set
308# CONFIG_INET_XFRM_TUNNEL is not set
309# CONFIG_INET_TUNNEL is not set
310# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
311# CONFIG_INET_XFRM_MODE_TUNNEL is not set
312# CONFIG_INET_XFRM_MODE_BEET is not set
313# CONFIG_INET_LRO is not set
314# CONFIG_INET_DIAG is not set
315# CONFIG_TCP_CONG_ADVANCED is not set
316CONFIG_TCP_CONG_CUBIC=y
317CONFIG_DEFAULT_TCP_CONG="cubic"
318# CONFIG_TCP_MD5SIG is not set
319# CONFIG_IP_VS is not set
320# CONFIG_IPV6 is not set
321# CONFIG_INET6_XFRM_TUNNEL is not set
322# CONFIG_INET6_TUNNEL is not set
323# CONFIG_NETWORK_SECMARK is not set
324CONFIG_NETFILTER=y
325# CONFIG_NETFILTER_DEBUG is not set
326
327#
328# Core Netfilter Configuration
329#
330# CONFIG_NETFILTER_NETLINK is not set
331# CONFIG_NF_CONNTRACK_ENABLED is not set
332# CONFIG_NF_CONNTRACK is not set
333# CONFIG_NETFILTER_XTABLES is not set
334
335#
336# IP: Netfilter Configuration
337#
338# CONFIG_IP_NF_QUEUE is not set
339# CONFIG_IP_NF_IPTABLES is not set
340# CONFIG_IP_NF_ARPTABLES is not set
341# CONFIG_IP_DCCP is not set
342# CONFIG_IP_SCTP is not set
343# CONFIG_TIPC is not set
344# CONFIG_ATM is not set
345# CONFIG_BRIDGE is not set
346# CONFIG_VLAN_8021Q is not set
347# CONFIG_DECNET is not set
348# CONFIG_LLC2 is not set
349# CONFIG_IPX is not set
350# CONFIG_ATALK is not set
351# CONFIG_X25 is not set
352# CONFIG_LAPB is not set
353# CONFIG_ECONET is not set
354# CONFIG_WAN_ROUTER is not set
355# CONFIG_NET_SCHED is not set
356
357#
358# Network testing
359#
360# CONFIG_NET_PKTGEN is not set
361# CONFIG_HAMRADIO is not set
362# CONFIG_CAN is not set
363CONFIG_IRDA=m
364
365#
366# IrDA protocols
367#
368CONFIG_IRLAN=m
369# CONFIG_IRNET is not set
370CONFIG_IRCOMM=m
371CONFIG_IRDA_ULTRA=y
372
373#
374# IrDA options
375#
376CONFIG_IRDA_CACHE_LAST_LSAP=y
377CONFIG_IRDA_FAST_RR=y
378CONFIG_IRDA_DEBUG=y
379
380#
381# Infrared-port device drivers
382#
383
384#
385# SIR device drivers
386#
387CONFIG_IRTTY_SIR=m
388
389#
390# Dongle support
391#
392# CONFIG_DONGLE is not set
393
394#
395# Old SIR device drivers
396#
397# CONFIG_IRPORT_SIR is not set
398
399#
400# Old Serial dongle support
401#
402
403#
404# FIR device drivers
405#
406CONFIG_PXA_FICP=m
407CONFIG_BT=m
408CONFIG_BT_L2CAP=m
409CONFIG_BT_SCO=m
410CONFIG_BT_RFCOMM=m
411CONFIG_BT_RFCOMM_TTY=y
412CONFIG_BT_BNEP=m
413CONFIG_BT_BNEP_MC_FILTER=y
414CONFIG_BT_BNEP_PROTO_FILTER=y
415CONFIG_BT_HIDP=m
416
417#
418# Bluetooth device drivers
419#
420# CONFIG_BT_HCIUART is not set
421# CONFIG_BT_HCIVHCI is not set
422# CONFIG_AF_RXRPC is not set
423
424#
425# Wireless
426#
427# CONFIG_CFG80211 is not set
428# CONFIG_WIRELESS_EXT is not set
429# CONFIG_MAC80211 is not set
430# CONFIG_IEEE80211 is not set
431# CONFIG_RFKILL is not set
432# CONFIG_NET_9P is not set
433
434#
435# Device Drivers
436#
437
438#
439# Generic Driver Options
440#
441CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
442CONFIG_STANDALONE=y
443CONFIG_PREVENT_FIRMWARE_BUILD=y
444CONFIG_FW_LOADER=y
445# CONFIG_DEBUG_DRIVER is not set
446# CONFIG_DEBUG_DEVRES is not set
447# CONFIG_SYS_HYPERVISOR is not set
448# CONFIG_CONNECTOR is not set
449CONFIG_MTD=y
450CONFIG_MTD_DEBUG=y
451CONFIG_MTD_DEBUG_VERBOSE=0
452# CONFIG_MTD_CONCAT is not set
453CONFIG_MTD_PARTITIONS=y
454# CONFIG_MTD_REDBOOT_PARTS is not set
455CONFIG_MTD_CMDLINE_PARTS=y
456# CONFIG_MTD_AFS_PARTS is not set
457
458#
459# User Modules And Translation Layers
460#
461CONFIG_MTD_CHAR=m
462CONFIG_MTD_BLKDEVS=m
463CONFIG_MTD_BLOCK=m
464# CONFIG_FTL is not set
465# CONFIG_NFTL is not set
466# CONFIG_INFTL is not set
467# CONFIG_RFD_FTL is not set
468# CONFIG_SSFDC is not set
469# CONFIG_MTD_OOPS is not set
470
471#
472# RAM/ROM/Flash chip drivers
473#
474CONFIG_MTD_CFI=y
475# CONFIG_MTD_JEDECPROBE is not set
476# CONFIG_MTD_CFI_ADV_OPTIONS is not set
477CONFIG_MTD_MAP_BANK_WIDTH_1=y
478CONFIG_MTD_MAP_BANK_WIDTH_2=y
479CONFIG_MTD_MAP_BANK_WIDTH_4=y
480# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
481# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
482# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
483CONFIG_MTD_CFI_I1=y
484CONFIG_MTD_CFI_I2=y
485# CONFIG_MTD_CFI_I4 is not set
486# CONFIG_MTD_CFI_I8 is not set
487CONFIG_MTD_CFI_INTELEXT=y
488# CONFIG_MTD_CFI_AMDSTD is not set
489# CONFIG_MTD_CFI_STAA is not set
490# CONFIG_MTD_RAM is not set
491# CONFIG_MTD_ROM is not set
492# CONFIG_MTD_ABSENT is not set
493# CONFIG_MTD_XIP is not set
494
495#
496# Mapping drivers for chip access
497#
498# CONFIG_MTD_COMPLEX_MAPPINGS is not set
499CONFIG_MTD_PHYSMAP=y
500CONFIG_MTD_PHYSMAP_START=0x00000000
501CONFIG_MTD_PHYSMAP_LEN=0x04000000
502CONFIG_MTD_PHYSMAP_BANKWIDTH=4
503# CONFIG_MTD_PXA2XX is not set
504# CONFIG_MTD_ARM_INTEGRATOR is not set
505# CONFIG_MTD_SHARP_SL is not set
506# CONFIG_MTD_PLATRAM is not set
507
508#
509# Self-contained MTD device drivers
510#
511# CONFIG_MTD_SLRAM is not set
512# CONFIG_MTD_PHRAM is not set
513# CONFIG_MTD_MTDRAM is not set
514# CONFIG_MTD_BLOCK2MTD is not set
515
516#
517# Disk-On-Chip Device Drivers
518#
519# CONFIG_MTD_DOC2000 is not set
520# CONFIG_MTD_DOC2001 is not set
521# CONFIG_MTD_DOC2001PLUS is not set
522# CONFIG_MTD_NAND is not set
523# CONFIG_MTD_ONENAND is not set
524
525#
526# UBI - Unsorted block images
527#
528# CONFIG_MTD_UBI is not set
529# CONFIG_PARPORT is not set
530CONFIG_BLK_DEV=y
531# CONFIG_BLK_DEV_COW_COMMON is not set
532# CONFIG_BLK_DEV_LOOP is not set
533# CONFIG_BLK_DEV_NBD is not set
534# CONFIG_BLK_DEV_RAM is not set
535# CONFIG_CDROM_PKTCDVD is not set
536# CONFIG_ATA_OVER_ETH is not set
537# CONFIG_MISC_DEVICES is not set
538# CONFIG_IDE is not set
539
540#
541# SCSI device support
542#
543# CONFIG_RAID_ATTRS is not set
544# CONFIG_SCSI is not set
545# CONFIG_SCSI_DMA is not set
546# CONFIG_SCSI_NETLINK is not set
547# CONFIG_ATA is not set
548# CONFIG_MD is not set
549CONFIG_NETDEVICES=y
550# CONFIG_NETDEVICES_MULTIQUEUE is not set
551# CONFIG_DUMMY is not set
552# CONFIG_BONDING is not set
553# CONFIG_MACVLAN is not set
554# CONFIG_EQUALIZER is not set
555# CONFIG_TUN is not set
556# CONFIG_VETH is not set
557# CONFIG_NET_ETHERNET is not set
558# CONFIG_NETDEV_1000 is not set
559# CONFIG_NETDEV_10000 is not set
560
561#
562# Wireless LAN
563#
564# CONFIG_WLAN_PRE80211 is not set
565# CONFIG_WLAN_80211 is not set
566# CONFIG_WAN is not set
567CONFIG_PPP=m
568# CONFIG_PPP_MULTILINK is not set
569# CONFIG_PPP_FILTER is not set
570CONFIG_PPP_ASYNC=m
571# CONFIG_PPP_SYNC_TTY is not set
572CONFIG_PPP_DEFLATE=m
573CONFIG_PPP_BSDCOMP=m
574CONFIG_PPP_MPPE=m
575# CONFIG_PPPOE is not set
576# CONFIG_PPPOL2TP is not set
577# CONFIG_SLIP is not set
578CONFIG_SLHC=m
579# CONFIG_NETCONSOLE is not set
580# CONFIG_NETPOLL is not set
581# CONFIG_NET_POLL_CONTROLLER is not set
582# CONFIG_ISDN is not set
583
584#
585# Input device support
586#
587CONFIG_INPUT=y
588# CONFIG_INPUT_FF_MEMLESS is not set
589# CONFIG_INPUT_POLLDEV is not set
590
591#
592# Userland interfaces
593#
594# CONFIG_INPUT_MOUSEDEV is not set
595# CONFIG_INPUT_JOYDEV is not set
596CONFIG_INPUT_EVDEV=y
597# CONFIG_INPUT_EVBUG is not set
598
599#
600# Input Device Drivers
601#
602CONFIG_INPUT_KEYBOARD=y
603# CONFIG_KEYBOARD_ATKBD is not set
604# CONFIG_KEYBOARD_SUNKBD is not set
605# CONFIG_KEYBOARD_LKKBD is not set
606# CONFIG_KEYBOARD_XTKBD is not set
607# CONFIG_KEYBOARD_NEWTON is not set
608# CONFIG_KEYBOARD_STOWAWAY is not set
609# CONFIG_KEYBOARD_PXA27x is not set
610CONFIG_KEYBOARD_GPIO=y
611# CONFIG_INPUT_MOUSE is not set
612# CONFIG_INPUT_JOYSTICK is not set
613# CONFIG_INPUT_TABLET is not set
614CONFIG_INPUT_TOUCHSCREEN=y
615CONFIG_INPUT_MISC=y
616CONFIG_INPUT_UINPUT=m
617
618#
619# Hardware I/O ports
620#
621# CONFIG_SERIO is not set
622# CONFIG_GAMEPORT is not set
623
624#
625# Character devices
626#
627CONFIG_VT=y
628CONFIG_VT_CONSOLE=y
629CONFIG_HW_CONSOLE=y
630# CONFIG_VT_HW_CONSOLE_BINDING is not set
631# CONFIG_SERIAL_NONSTANDARD is not set
632
633#
634# Serial drivers
635#
636# CONFIG_SERIAL_8250 is not set
637
638#
639# Non-8250 serial port support
640#
641CONFIG_SERIAL_PXA=y
642# CONFIG_SERIAL_PXA_CONSOLE is not set
643CONFIG_SERIAL_CORE=y
644CONFIG_UNIX98_PTYS=y
645# CONFIG_LEGACY_PTYS is not set
646# CONFIG_IPMI_HANDLER is not set
647# CONFIG_HW_RANDOM is not set
648# CONFIG_NVRAM is not set
649# CONFIG_R3964 is not set
650# CONFIG_RAW_DRIVER is not set
651# CONFIG_TCG_TPM is not set
652CONFIG_I2C=m
653CONFIG_I2C_BOARDINFO=y
654CONFIG_I2C_CHARDEV=m
655
656#
657# I2C Algorithms
658#
659# CONFIG_I2C_ALGOBIT is not set
660# CONFIG_I2C_ALGOPCF is not set
661# CONFIG_I2C_ALGOPCA is not set
662
663#
664# I2C Hardware Bus support
665#
666# CONFIG_I2C_GPIO is not set
667CONFIG_I2C_PXA=m
668# CONFIG_I2C_PXA_SLAVE is not set
669# CONFIG_I2C_OCORES is not set
670# CONFIG_I2C_PARPORT_LIGHT is not set
671# CONFIG_I2C_SIMTEC is not set
672# CONFIG_I2C_TAOS_EVM is not set
673# CONFIG_I2C_STUB is not set
674
675#
676# Miscellaneous I2C Chip support
677#
678# CONFIG_SENSORS_DS1337 is not set
679# CONFIG_SENSORS_DS1374 is not set
680# CONFIG_DS1682 is not set
681# CONFIG_SENSORS_EEPROM is not set
682# CONFIG_SENSORS_PCF8574 is not set
683# CONFIG_SENSORS_PCA9539 is not set
684# CONFIG_SENSORS_PCF8591 is not set
685# CONFIG_SENSORS_MAX6875 is not set
686# CONFIG_SENSORS_TSL2550 is not set
687# CONFIG_I2C_DEBUG_CORE is not set
688# CONFIG_I2C_DEBUG_ALGO is not set
689# CONFIG_I2C_DEBUG_BUS is not set
690# CONFIG_I2C_DEBUG_CHIP is not set
691
692#
693# SPI support
694#
695# CONFIG_SPI is not set
696# CONFIG_SPI_MASTER is not set
697CONFIG_W1=y
698
699#
700# 1-wire Bus Masters
701#
702# CONFIG_W1_MASTER_DS2482 is not set
703CONFIG_W1_MASTER_DS1WM=y
704
705#
706# 1-wire Slaves
707#
708# CONFIG_W1_SLAVE_THERM is not set
709# CONFIG_W1_SLAVE_SMEM is not set
710# CONFIG_W1_SLAVE_DS2433 is not set
711CONFIG_W1_SLAVE_DS2760=y
712CONFIG_POWER_SUPPLY=y
713# CONFIG_POWER_SUPPLY_DEBUG is not set
714CONFIG_PDA_POWER=y
715# CONFIG_APM_POWER is not set
716CONFIG_BATTERY_DS2760=y
717# CONFIG_HWMON is not set
718# CONFIG_WATCHDOG is not set
719
720#
721# Sonics Silicon Backplane
722#
723CONFIG_SSB_POSSIBLE=y
724# CONFIG_SSB is not set
725
726#
727# Multifunction device drivers
728#
729# CONFIG_MFD_SM501 is not set
730CONFIG_HTC_EGPIO=y
731CONFIG_HTC_PASIC3=y
732
733#
734# Multimedia devices
735#
736# CONFIG_VIDEO_DEV is not set
737# CONFIG_DVB_CORE is not set
738# CONFIG_DAB is not set
739
740#
741# Graphics support
742#
743# CONFIG_VGASTATE is not set
744# CONFIG_VIDEO_OUTPUT_CONTROL is not set
745CONFIG_FB=y
746# CONFIG_FIRMWARE_EDID is not set
747# CONFIG_FB_DDC is not set
748CONFIG_FB_CFB_FILLRECT=y
749CONFIG_FB_CFB_COPYAREA=y
750CONFIG_FB_CFB_IMAGEBLIT=y
751# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
752# CONFIG_FB_SYS_FILLRECT is not set
753# CONFIG_FB_SYS_COPYAREA is not set
754# CONFIG_FB_SYS_IMAGEBLIT is not set
755# CONFIG_FB_SYS_FOPS is not set
756CONFIG_FB_DEFERRED_IO=y
757# CONFIG_FB_SVGALIB is not set
758# CONFIG_FB_MACMODES is not set
759# CONFIG_FB_BACKLIGHT is not set
760# CONFIG_FB_MODE_HELPERS is not set
761# CONFIG_FB_TILEBLITTING is not set
762
763#
764# Frame buffer hardware drivers
765#
766# CONFIG_FB_S1D13XXX is not set
767CONFIG_FB_PXA=y
768# CONFIG_FB_PXA_PARAMETERS is not set
769# CONFIG_FB_MBX is not set
770# CONFIG_FB_VIRTUAL is not set
771CONFIG_BACKLIGHT_LCD_SUPPORT=y
772CONFIG_LCD_CLASS_DEVICE=y
773CONFIG_BACKLIGHT_CLASS_DEVICE=y
774CONFIG_BACKLIGHT_CORGI=y
775
776#
777# Display device support
778#
779CONFIG_DISPLAY_SUPPORT=y
780
781#
782# Display hardware drivers
783#
784
785#
786# Console display driver support
787#
788# CONFIG_VGA_CONSOLE is not set
789CONFIG_DUMMY_CONSOLE=y
790CONFIG_FRAMEBUFFER_CONSOLE=y
791# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
792CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
793CONFIG_FONTS=y
794# CONFIG_FONT_8x8 is not set
795# CONFIG_FONT_8x16 is not set
796# CONFIG_FONT_6x11 is not set
797# CONFIG_FONT_7x14 is not set
798# CONFIG_FONT_PEARL_8x8 is not set
799# CONFIG_FONT_ACORN_8x8 is not set
800CONFIG_FONT_MINI_4x6=y
801# CONFIG_FONT_SUN8x16 is not set
802# CONFIG_FONT_SUN12x22 is not set
803# CONFIG_FONT_10x18 is not set
804# CONFIG_LOGO is not set
805
806#
807# Sound
808#
809CONFIG_SOUND=y
810
811#
812# Advanced Linux Sound Architecture
813#
814CONFIG_SND=m
815CONFIG_SND_TIMER=m
816CONFIG_SND_PCM=m
817# CONFIG_SND_SEQUENCER is not set
818CONFIG_SND_OSSEMUL=y
819CONFIG_SND_MIXER_OSS=m
820CONFIG_SND_PCM_OSS=m
821CONFIG_SND_PCM_OSS_PLUGINS=y
822# CONFIG_SND_DYNAMIC_MINORS is not set
823CONFIG_SND_SUPPORT_OLD_API=y
824CONFIG_SND_VERBOSE_PROCFS=y
825# CONFIG_SND_VERBOSE_PRINTK is not set
826# CONFIG_SND_DEBUG is not set
827
828#
829# Generic devices
830#
831# CONFIG_SND_DUMMY is not set
832# CONFIG_SND_MTPAV is not set
833# CONFIG_SND_SERIAL_U16550 is not set
834# CONFIG_SND_MPU401 is not set
835
836#
837# ALSA ARM devices
838#
839# CONFIG_SND_PXA2XX_AC97 is not set
840
841#
842# System on Chip audio support
843#
844CONFIG_SND_SOC=m
845CONFIG_SND_PXA2XX_SOC=m
846
847#
848# SoC Audio support for SuperH
849#
850
851#
852# Open Sound System
853#
854# CONFIG_SOUND_PRIME is not set
855# CONFIG_HID_SUPPORT is not set
856CONFIG_HID=m
857# CONFIG_USB_SUPPORT is not set
858CONFIG_MMC=y
859# CONFIG_MMC_DEBUG is not set
860# CONFIG_MMC_UNSAFE_RESUME is not set
861
862#
863# MMC/SD Card Drivers
864#
865CONFIG_MMC_BLOCK=y
866CONFIG_MMC_BLOCK_BOUNCE=y
867CONFIG_SDIO_UART=m
868
869#
870# MMC/SD Host Controller Drivers
871#
872CONFIG_MMC_PXA=y
873CONFIG_NEW_LEDS=y
874CONFIG_RTC_LIB=y
875CONFIG_RTC_CLASS=y
876CONFIG_RTC_HCTOSYS=y
877CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
878CONFIG_RTC_DEBUG=y
879
880#
881# RTC interfaces
882#
883CONFIG_RTC_INTF_SYSFS=y
884CONFIG_RTC_INTF_PROC=y
885CONFIG_RTC_INTF_DEV=y
886# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
887# CONFIG_RTC_DRV_TEST is not set
888
889#
890# I2C RTC drivers
891#
892# CONFIG_RTC_DRV_DS1307 is not set
893# CONFIG_RTC_DRV_DS1374 is not set
894# CONFIG_RTC_DRV_DS1672 is not set
895# CONFIG_RTC_DRV_MAX6900 is not set
896# CONFIG_RTC_DRV_RS5C372 is not set
897# CONFIG_RTC_DRV_ISL1208 is not set
898# CONFIG_RTC_DRV_X1205 is not set
899# CONFIG_RTC_DRV_PCF8563 is not set
900# CONFIG_RTC_DRV_PCF8583 is not set
901# CONFIG_RTC_DRV_M41T80 is not set
902
903#
904# SPI RTC drivers
905#
906
907#
908# Platform RTC drivers
909#
910# CONFIG_RTC_DRV_CMOS is not set
911# CONFIG_RTC_DRV_DS1553 is not set
912# CONFIG_RTC_DRV_STK17TA8 is not set
913# CONFIG_RTC_DRV_DS1742 is not set
914# CONFIG_RTC_DRV_M48T86 is not set
915# CONFIG_RTC_DRV_M48T59 is not set
916# CONFIG_RTC_DRV_V3020 is not set
917
918#
919# on-CPU RTC drivers
920#
921CONFIG_RTC_DRV_SA1100=y
922
923#
924# File systems
925#
926CONFIG_EXT2_FS=y
927# CONFIG_EXT2_FS_XATTR is not set
928# CONFIG_EXT2_FS_XIP is not set
929# CONFIG_EXT3_FS is not set
930# CONFIG_EXT4DEV_FS is not set
931# CONFIG_REISERFS_FS is not set
932# CONFIG_JFS_FS is not set
933# CONFIG_FS_POSIX_ACL is not set
934# CONFIG_XFS_FS is not set
935# CONFIG_GFS2_FS is not set
936# CONFIG_OCFS2_FS is not set
937# CONFIG_MINIX_FS is not set
938# CONFIG_ROMFS_FS is not set
939CONFIG_INOTIFY=y
940CONFIG_INOTIFY_USER=y
941# CONFIG_QUOTA is not set
942CONFIG_DNOTIFY=y
943# CONFIG_AUTOFS_FS is not set
944# CONFIG_AUTOFS4_FS is not set
945# CONFIG_FUSE_FS is not set
946
947#
948# CD-ROM/DVD Filesystems
949#
950# CONFIG_ISO9660_FS is not set
951# CONFIG_UDF_FS is not set
952
953#
954# DOS/FAT/NT Filesystems
955#
956CONFIG_FAT_FS=m
957CONFIG_MSDOS_FS=m
958CONFIG_VFAT_FS=m
959CONFIG_FAT_DEFAULT_CODEPAGE=437
960CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
961# CONFIG_NTFS_FS is not set
962
963#
964# Pseudo filesystems
965#
966CONFIG_PROC_FS=y
967CONFIG_PROC_SYSCTL=y
968CONFIG_SYSFS=y
969CONFIG_TMPFS=y
970# CONFIG_TMPFS_POSIX_ACL is not set
971# CONFIG_HUGETLB_PAGE is not set
972# CONFIG_CONFIGFS_FS is not set
973
974#
975# Miscellaneous filesystems
976#
977# CONFIG_ADFS_FS is not set
978# CONFIG_AFFS_FS is not set
979# CONFIG_HFS_FS is not set
980# CONFIG_HFSPLUS_FS is not set
981# CONFIG_BEFS_FS is not set
982# CONFIG_BFS_FS is not set
983# CONFIG_EFS_FS is not set
984CONFIG_JFFS2_FS=y
985CONFIG_JFFS2_FS_DEBUG=0
986CONFIG_JFFS2_FS_WRITEBUFFER=y
987# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
988# CONFIG_JFFS2_SUMMARY is not set
989# CONFIG_JFFS2_FS_XATTR is not set
990CONFIG_JFFS2_COMPRESSION_OPTIONS=y
991CONFIG_JFFS2_ZLIB=y
992CONFIG_JFFS2_LZO=y
993CONFIG_JFFS2_RTIME=y
994# CONFIG_JFFS2_RUBIN is not set
995# CONFIG_JFFS2_CMODE_NONE is not set
996CONFIG_JFFS2_CMODE_PRIORITY=y
997# CONFIG_JFFS2_CMODE_SIZE is not set
998# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
999# CONFIG_CRAMFS is not set
1000# CONFIG_VXFS_FS is not set
1001# CONFIG_HPFS_FS is not set
1002# CONFIG_QNX4FS_FS is not set
1003# CONFIG_SYSV_FS is not set
1004# CONFIG_UFS_FS is not set
1005CONFIG_NETWORK_FILESYSTEMS=y
1006CONFIG_NFS_FS=y
1007CONFIG_NFS_V3=y
1008# CONFIG_NFS_V3_ACL is not set
1009# CONFIG_NFS_V4 is not set
1010# CONFIG_NFS_DIRECTIO is not set
1011# CONFIG_NFSD is not set
1012CONFIG_ROOT_NFS=y
1013CONFIG_LOCKD=y
1014CONFIG_LOCKD_V4=y
1015CONFIG_NFS_COMMON=y
1016CONFIG_SUNRPC=y
1017# CONFIG_SUNRPC_BIND34 is not set
1018# CONFIG_RPCSEC_GSS_KRB5 is not set
1019# CONFIG_RPCSEC_GSS_SPKM3 is not set
1020# CONFIG_SMB_FS is not set
1021# CONFIG_CIFS is not set
1022# CONFIG_NCP_FS is not set
1023# CONFIG_CODA_FS is not set
1024# CONFIG_AFS_FS is not set
1025
1026#
1027# Partition Types
1028#
1029# CONFIG_PARTITION_ADVANCED is not set
1030CONFIG_MSDOS_PARTITION=y
1031CONFIG_NLS=y
1032CONFIG_NLS_DEFAULT="utf8"
1033CONFIG_NLS_CODEPAGE_437=y
1034# CONFIG_NLS_CODEPAGE_737 is not set
1035# CONFIG_NLS_CODEPAGE_775 is not set
1036# CONFIG_NLS_CODEPAGE_850 is not set
1037# CONFIG_NLS_CODEPAGE_852 is not set
1038# CONFIG_NLS_CODEPAGE_855 is not set
1039# CONFIG_NLS_CODEPAGE_857 is not set
1040# CONFIG_NLS_CODEPAGE_860 is not set
1041# CONFIG_NLS_CODEPAGE_861 is not set
1042# CONFIG_NLS_CODEPAGE_862 is not set
1043# CONFIG_NLS_CODEPAGE_863 is not set
1044# CONFIG_NLS_CODEPAGE_864 is not set
1045# CONFIG_NLS_CODEPAGE_865 is not set
1046# CONFIG_NLS_CODEPAGE_866 is not set
1047# CONFIG_NLS_CODEPAGE_869 is not set
1048# CONFIG_NLS_CODEPAGE_936 is not set
1049# CONFIG_NLS_CODEPAGE_950 is not set
1050# CONFIG_NLS_CODEPAGE_932 is not set
1051# CONFIG_NLS_CODEPAGE_949 is not set
1052# CONFIG_NLS_CODEPAGE_874 is not set
1053# CONFIG_NLS_ISO8859_8 is not set
1054# CONFIG_NLS_CODEPAGE_1250 is not set
1055CONFIG_NLS_CODEPAGE_1251=m
1056# CONFIG_NLS_ASCII is not set
1057CONFIG_NLS_ISO8859_1=y
1058# CONFIG_NLS_ISO8859_2 is not set
1059# CONFIG_NLS_ISO8859_3 is not set
1060# CONFIG_NLS_ISO8859_4 is not set
1061# CONFIG_NLS_ISO8859_5 is not set
1062# CONFIG_NLS_ISO8859_6 is not set
1063# CONFIG_NLS_ISO8859_7 is not set
1064# CONFIG_NLS_ISO8859_9 is not set
1065# CONFIG_NLS_ISO8859_13 is not set
1066# CONFIG_NLS_ISO8859_14 is not set
1067# CONFIG_NLS_ISO8859_15 is not set
1068# CONFIG_NLS_KOI8_R is not set
1069# CONFIG_NLS_KOI8_U is not set
1070CONFIG_NLS_UTF8=y
1071# CONFIG_DLM is not set
1072
1073#
1074# Kernel hacking
1075#
1076CONFIG_PRINTK_TIME=y
1077CONFIG_ENABLE_WARN_DEPRECATED=y
1078CONFIG_ENABLE_MUST_CHECK=y
1079# CONFIG_MAGIC_SYSRQ is not set
1080# CONFIG_UNUSED_SYMBOLS is not set
1081# CONFIG_DEBUG_FS is not set
1082# CONFIG_HEADERS_CHECK is not set
1083CONFIG_DEBUG_KERNEL=y
1084# CONFIG_DEBUG_SHIRQ is not set
1085CONFIG_DETECT_SOFTLOCKUP=y
1086# CONFIG_SCHED_DEBUG is not set
1087# CONFIG_SCHEDSTATS is not set
1088CONFIG_TIMER_STATS=y
1089# CONFIG_DEBUG_SLAB is not set
1090CONFIG_DEBUG_PREEMPT=y
1091# CONFIG_DEBUG_RT_MUTEXES is not set
1092# CONFIG_RT_MUTEX_TESTER is not set
1093# CONFIG_DEBUG_SPINLOCK is not set
1094CONFIG_DEBUG_MUTEXES=y
1095# CONFIG_DEBUG_LOCK_ALLOC is not set
1096# CONFIG_PROVE_LOCKING is not set
1097# CONFIG_LOCK_STAT is not set
1098# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1099# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1100# CONFIG_DEBUG_KOBJECT is not set
1101CONFIG_DEBUG_BUGVERBOSE=y
1102# CONFIG_DEBUG_INFO is not set
1103CONFIG_DEBUG_VM=y
1104# CONFIG_DEBUG_LIST is not set
1105# CONFIG_DEBUG_SG is not set
1106CONFIG_FRAME_POINTER=y
1107CONFIG_FORCED_INLINING=y
1108# CONFIG_BOOT_PRINTK_DELAY is not set
1109# CONFIG_RCU_TORTURE_TEST is not set
1110# CONFIG_FAULT_INJECTION is not set
1111# CONFIG_SAMPLES is not set
1112CONFIG_DEBUG_USER=y
1113CONFIG_DEBUG_ERRORS=y
1114CONFIG_DEBUG_LL=y
1115# CONFIG_DEBUG_ICEDCC is not set
1116
1117#
1118# Security options
1119#
1120# CONFIG_KEYS is not set
1121# CONFIG_SECURITY is not set
1122# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1123CONFIG_CRYPTO=y
1124CONFIG_CRYPTO_ALGAPI=m
1125CONFIG_CRYPTO_BLKCIPHER=m
1126CONFIG_CRYPTO_MANAGER=m
1127# CONFIG_CRYPTO_HMAC is not set
1128# CONFIG_CRYPTO_XCBC is not set
1129# CONFIG_CRYPTO_NULL is not set
1130# CONFIG_CRYPTO_MD4 is not set
1131# CONFIG_CRYPTO_MD5 is not set
1132CONFIG_CRYPTO_SHA1=m
1133# CONFIG_CRYPTO_SHA256 is not set
1134# CONFIG_CRYPTO_SHA512 is not set
1135# CONFIG_CRYPTO_WP512 is not set
1136# CONFIG_CRYPTO_TGR192 is not set
1137# CONFIG_CRYPTO_GF128MUL is not set
1138CONFIG_CRYPTO_ECB=m
1139# CONFIG_CRYPTO_CBC is not set
1140CONFIG_CRYPTO_PCBC=m
1141# CONFIG_CRYPTO_LRW is not set
1142# CONFIG_CRYPTO_XTS is not set
1143# CONFIG_CRYPTO_CRYPTD is not set
1144# CONFIG_CRYPTO_DES is not set
1145# CONFIG_CRYPTO_FCRYPT is not set
1146# CONFIG_CRYPTO_BLOWFISH is not set
1147# CONFIG_CRYPTO_TWOFISH is not set
1148# CONFIG_CRYPTO_SERPENT is not set
1149# CONFIG_CRYPTO_AES is not set
1150# CONFIG_CRYPTO_CAST5 is not set
1151# CONFIG_CRYPTO_CAST6 is not set
1152# CONFIG_CRYPTO_TEA is not set
1153CONFIG_CRYPTO_ARC4=m
1154# CONFIG_CRYPTO_KHAZAD is not set
1155# CONFIG_CRYPTO_ANUBIS is not set
1156# CONFIG_CRYPTO_SEED is not set
1157# CONFIG_CRYPTO_DEFLATE is not set
1158# CONFIG_CRYPTO_MICHAEL_MIC is not set
1159# CONFIG_CRYPTO_CRC32C is not set
1160# CONFIG_CRYPTO_CAMELLIA is not set
1161# CONFIG_CRYPTO_TEST is not set
1162# CONFIG_CRYPTO_AUTHENC is not set
1163# CONFIG_CRYPTO_HW is not set
1164
1165#
1166# Library routines
1167#
1168CONFIG_BITREVERSE=y
1169CONFIG_CRC_CCITT=y
1170# CONFIG_CRC16 is not set
1171# CONFIG_CRC_ITU_T is not set
1172CONFIG_CRC32=y
1173# CONFIG_CRC7 is not set
1174# CONFIG_LIBCRC32C is not set
1175CONFIG_ZLIB_INFLATE=y
1176CONFIG_ZLIB_DEFLATE=y
1177CONFIG_LZO_COMPRESS=y
1178CONFIG_LZO_DECOMPRESS=y
1179CONFIG_PLIST=y
1180CONFIG_HAS_IOMEM=y
1181CONFIG_HAS_IOPORT=y
1182CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/ns9xxx_defconfig b/arch/arm/configs/ns9xxx_defconfig
index 0e5794c6a48e..7dc1580e4d99 100644
--- a/arch/arm/configs/ns9xxx_defconfig
+++ b/arch/arm/configs/ns9xxx_defconfig
@@ -1,621 +1,79 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20
4# Thu Feb 15 20:51:47 2007
5#
6CONFIG_ARM=y
7# CONFIG_GENERIC_TIME is not set
8CONFIG_MMU=y
9CONFIG_GENERIC_HARDIRQS=y
10CONFIG_TRACE_IRQFLAGS_SUPPORT=y
11CONFIG_HARDIRQS_SW_RESEND=y
12CONFIG_GENERIC_IRQ_PROBE=y
13CONFIG_RWSEM_GENERIC_SPINLOCK=y
14# CONFIG_ARCH_HAS_ILOG2_U32 is not set
15# CONFIG_ARCH_HAS_ILOG2_U64 is not set
16CONFIG_GENERIC_HWEIGHT=y
17CONFIG_GENERIC_CALIBRATE_DELAY=y
18CONFIG_VECTORS_BASE=0xffff0000
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20
21#
22# Code maturity level options
23#
24CONFIG_EXPERIMENTAL=y
25CONFIG_BROKEN_ON_SMP=y
26CONFIG_INIT_ENV_ARG_LIMIT=32
27
28#
29# General setup
30#
31CONFIG_LOCALVERSION=""
32CONFIG_LOCALVERSION_AUTO=y
33CONFIG_SWAP=y
34CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
36# CONFIG_BSD_PROCESS_ACCT is not set
37# CONFIG_UTS_NS is not set
38CONFIG_IKCONFIG=y 1CONFIG_IKCONFIG=y
39CONFIG_IKCONFIG_PROC=y 2CONFIG_IKCONFIG_PROC=y
40CONFIG_SYSFS_DEPRECATED=y 3CONFIG_BLK_DEV_INITRD=y
41# CONFIG_RELAY is not set
42CONFIG_INITRAMFS_SOURCE=""
43# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
44CONFIG_SYSCTL=y
45CONFIG_EMBEDDED=y
46CONFIG_UID16=y
47# CONFIG_SYSCTL_SYSCALL is not set
48CONFIG_KALLSYMS=y
49# CONFIG_KALLSYMS_ALL is not set
50# CONFIG_KALLSYMS_EXTRA_PASS is not set
51CONFIG_HOTPLUG=y
52CONFIG_PRINTK=y
53CONFIG_BUG=y
54CONFIG_ELF_CORE=y
55CONFIG_BASE_FULL=y
56CONFIG_FUTEX=y
57CONFIG_EPOLL=y
58CONFIG_SHMEM=y
59CONFIG_SLAB=y
60# CONFIG_VM_EVENT_COUNTERS is not set
61CONFIG_RT_MUTEXES=y
62# CONFIG_TINY_SHMEM is not set
63CONFIG_BASE_SMALL=0
64# CONFIG_SLOB is not set
65
66#
67# Loadable module support
68#
69CONFIG_MODULES=y 4CONFIG_MODULES=y
70CONFIG_MODULE_UNLOAD=y 5CONFIG_MODULE_UNLOAD=y
71CONFIG_MODULE_FORCE_UNLOAD=y
72CONFIG_MODVERSIONS=y
73CONFIG_MODULE_SRCVERSION_ALL=y
74CONFIG_KMOD=y
75
76#
77# Block layer
78#
79CONFIG_BLOCK=y
80# CONFIG_LBD is not set
81# CONFIG_BLK_DEV_IO_TRACE is not set
82# CONFIG_LSF is not set
83
84#
85# IO Schedulers
86#
87CONFIG_IOSCHED_NOOP=y
88# CONFIG_IOSCHED_AS is not set 6# CONFIG_IOSCHED_AS is not set
89# CONFIG_IOSCHED_DEADLINE is not set 7# CONFIG_IOSCHED_DEADLINE is not set
90# CONFIG_IOSCHED_CFQ is not set 8# CONFIG_IOSCHED_CFQ is not set
91# CONFIG_DEFAULT_AS is not set
92# CONFIG_DEFAULT_DEADLINE is not set
93# CONFIG_DEFAULT_CFQ is not set
94CONFIG_DEFAULT_NOOP=y
95CONFIG_DEFAULT_IOSCHED="noop"
96
97#
98# System Type
99#
100# CONFIG_ARCH_AAEC2000 is not set
101# CONFIG_ARCH_INTEGRATOR is not set
102# CONFIG_ARCH_REALVIEW is not set
103# CONFIG_ARCH_VERSATILE is not set
104# CONFIG_ARCH_AT91 is not set
105# CONFIG_ARCH_CLPS7500 is not set
106# CONFIG_ARCH_CLPS711X is not set
107# CONFIG_ARCH_CO285 is not set
108# CONFIG_ARCH_EBSA110 is not set
109# CONFIG_ARCH_EP93XX is not set
110# CONFIG_ARCH_FOOTBRIDGE is not set
111# CONFIG_ARCH_NETX is not set
112# CONFIG_ARCH_H720X is not set
113# CONFIG_ARCH_IMX is not set
114# CONFIG_ARCH_IOP32X is not set
115# CONFIG_ARCH_IOP33X is not set
116# CONFIG_ARCH_IOP13XX is not set
117# CONFIG_ARCH_IXP4XX is not set
118# CONFIG_ARCH_IXP2000 is not set
119# CONFIG_ARCH_IXP23XX is not set
120# CONFIG_ARCH_L7200 is not set
121CONFIG_ARCH_NS9XXX=y 9CONFIG_ARCH_NS9XXX=y
122# CONFIG_ARCH_PNX4008 is not set 10CONFIG_MACH_A9M9360=y
123# CONFIG_ARCH_PXA is not set 11CONFIG_MACH_A9M9750=y
124# CONFIG_ARCH_RPC is not set 12CONFIG_MACH_CC7UCAMRY=y
125# CONFIG_ARCH_SA1100 is not set 13CONFIG_MACH_CC9C=y
126# CONFIG_ARCH_S3C2410 is not set 14CONFIG_MACH_CC9P9210=y
127# CONFIG_ARCH_SHARK is not set 15CONFIG_MACH_CC9P9210JS=y
128# CONFIG_ARCH_LH7A40X is not set 16CONFIG_MACH_CC9P9215=y
129# CONFIG_ARCH_OMAP is not set 17CONFIG_MACH_CC9P9215JS=y
130
131#
132# NS9xxx Implementations
133#
134CONFIG_MACH_CC9P9360DEV=y 18CONFIG_MACH_CC9P9360DEV=y
135CONFIG_PROCESSOR_NS9360=y 19CONFIG_MACH_CC9P9360JS=y
136CONFIG_BOARD_A9M9750DEV=y 20CONFIG_MACH_CC9P9360VAL=y
137 21CONFIG_MACH_CC9P9750DEV=y
138# 22CONFIG_MACH_CC9P9750VAL=y
139# Processor Type 23CONFIG_MACH_CCW9C=y
140# 24CONFIG_MACH_INC20OTTER=y
141CONFIG_CPU_32=y 25CONFIG_MACH_OTTER=y
142CONFIG_CPU_ARM926T=y 26CONFIG_NO_HZ=y
143CONFIG_CPU_32v5=y 27CONFIG_HIGH_RES_TIMERS=y
144CONFIG_CPU_ABRT_EV5TJ=y
145CONFIG_CPU_CACHE_VIVT=y
146CONFIG_CPU_COPY_V4WB=y
147CONFIG_CPU_TLB_V4WBI=y
148CONFIG_CPU_CP15=y
149CONFIG_CPU_CP15_MMU=y
150
151#
152# Processor Features
153#
154# CONFIG_ARM_THUMB is not set
155# CONFIG_CPU_ICACHE_DISABLE is not set
156# CONFIG_CPU_DCACHE_DISABLE is not set
157# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
158# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
159
160#
161# Bus support
162#
163
164#
165# PCCARD (PCMCIA/CardBus) support
166#
167# CONFIG_PCCARD is not set
168
169#
170# Kernel Features
171#
172# CONFIG_PREEMPT is not set
173# CONFIG_NO_IDLE_HZ is not set
174CONFIG_HZ=100
175# CONFIG_AEABI is not set
176# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
177CONFIG_SELECT_MEMORY_MODEL=y
178CONFIG_FLATMEM_MANUAL=y
179# CONFIG_DISCONTIGMEM_MANUAL is not set
180# CONFIG_SPARSEMEM_MANUAL is not set
181CONFIG_FLATMEM=y
182CONFIG_FLAT_NODE_MEM_MAP=y
183# CONFIG_SPARSEMEM_STATIC is not set
184CONFIG_SPLIT_PTLOCK_CPUS=4096
185# CONFIG_RESOURCES_64BIT is not set
186CONFIG_ALIGNMENT_TRAP=y
187
188#
189# Boot options
190#
191CONFIG_ZBOOT_ROM_TEXT=0x0
192CONFIG_ZBOOT_ROM_BSS=0x0
193CONFIG_CMDLINE=""
194# CONFIG_XIP_KERNEL is not set
195
196#
197# Floating point emulation
198#
199
200#
201# At least one emulation must be selected
202#
203CONFIG_FPE_NWFPE=y 28CONFIG_FPE_NWFPE=y
204# CONFIG_FPE_NWFPE_XP is not set 29CONFIG_NET=y
205# CONFIG_FPE_FASTFPE is not set 30CONFIG_PACKET=m
206# CONFIG_VFP is not set 31CONFIG_INET=y
207 32CONFIG_IP_PNP=y
208# 33CONFIG_SYN_COOKIES=y
209# Userspace binary formats 34CONFIG_MTD=m
210# 35CONFIG_MTD_CONCAT=m
211CONFIG_BINFMT_ELF=y 36CONFIG_MTD_CHAR=m
212# CONFIG_BINFMT_AOUT is not set 37CONFIG_MTD_BLOCK=m
213# CONFIG_BINFMT_MISC is not set 38CONFIG_MTD_CFI=m
214# CONFIG_ARTHUR is not set 39CONFIG_MTD_JEDECPROBE=m
215 40CONFIG_MTD_CFI_AMDSTD=m
216# 41CONFIG_MTD_PHYSMAP=m
217# Power management options 42CONFIG_MTD_PHYSMAP_START=0x0
218# 43CONFIG_BLK_DEV_LOOP=m
219# CONFIG_PM is not set 44CONFIG_NETDEVICES=y
220# CONFIG_APM is not set 45CONFIG_NET_ETHERNET=y
221 46CONFIG_NS9XXX_ETH=y
222#
223# Networking
224#
225# CONFIG_NET is not set
226
227#
228# Device Drivers
229#
230
231#
232# Generic Driver Options
233#
234CONFIG_STANDALONE=y
235CONFIG_PREVENT_FIRMWARE_BUILD=y
236# CONFIG_FW_LOADER is not set
237# CONFIG_DEBUG_DRIVER is not set
238# CONFIG_SYS_HYPERVISOR is not set
239
240#
241# Connector - unified userspace <-> kernelspace linker
242#
243
244#
245# Memory Technology Devices (MTD)
246#
247# CONFIG_MTD is not set
248
249#
250# Parallel port support
251#
252# CONFIG_PARPORT is not set
253
254#
255# Plug and Play support
256#
257
258#
259# Block devices
260#
261# CONFIG_BLK_DEV_COW_COMMON is not set
262# CONFIG_BLK_DEV_LOOP is not set
263CONFIG_BLK_DEV_RAM=y
264CONFIG_BLK_DEV_RAM_COUNT=16
265CONFIG_BLK_DEV_RAM_SIZE=4096
266CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
267CONFIG_BLK_DEV_INITRD=y
268# CONFIG_CDROM_PKTCDVD is not set
269
270#
271# SCSI device support
272#
273# CONFIG_RAID_ATTRS is not set
274# CONFIG_SCSI is not set
275# CONFIG_SCSI_NETLINK is not set
276
277#
278# Serial ATA (prod) and Parallel ATA (experimental) drivers
279#
280# CONFIG_ATA is not set
281
282#
283# Multi-device support (RAID and LVM)
284#
285# CONFIG_MD is not set
286
287#
288# Fusion MPT device support
289#
290# CONFIG_FUSION is not set
291
292#
293# IEEE 1394 (FireWire) support
294#
295
296#
297# I2O device support
298#
299
300#
301# ISDN subsystem
302#
303
304#
305# Input device support
306#
307CONFIG_INPUT=y
308# CONFIG_INPUT_FF_MEMLESS is not set
309
310#
311# Userland interfaces
312#
313# CONFIG_INPUT_MOUSEDEV is not set
314# CONFIG_INPUT_JOYDEV is not set
315# CONFIG_INPUT_TSDEV is not set
316# CONFIG_INPUT_EVDEV is not set
317# CONFIG_INPUT_EVBUG is not set
318
319#
320# Input Device Drivers
321#
322# CONFIG_INPUT_KEYBOARD is not set
323# CONFIG_INPUT_MOUSE is not set
324# CONFIG_INPUT_JOYSTICK is not set
325# CONFIG_INPUT_TOUCHSCREEN is not set
326# CONFIG_INPUT_MISC is not set
327
328#
329# Hardware I/O ports
330#
331CONFIG_SERIO=y
332# CONFIG_SERIO_SERPORT is not set 47# CONFIG_SERIO_SERPORT is not set
333CONFIG_SERIO_LIBPS2=y
334# CONFIG_SERIO_RAW is not set
335# CONFIG_GAMEPORT is not set
336
337#
338# Character devices
339#
340CONFIG_VT=y
341CONFIG_VT_CONSOLE=y
342CONFIG_HW_CONSOLE=y
343# CONFIG_VT_HW_CONSOLE_BINDING is not set
344# CONFIG_SERIAL_NONSTANDARD is not set
345
346#
347# Serial drivers
348#
349CONFIG_SERIAL_8250=y 48CONFIG_SERIAL_8250=y
350CONFIG_SERIAL_8250_CONSOLE=y 49CONFIG_SERIAL_8250_CONSOLE=y
351CONFIG_SERIAL_8250_NR_UARTS=4 50CONFIG_SERIAL_NS921X=y
352CONFIG_SERIAL_8250_RUNTIME_UARTS=4 51CONFIG_SERIAL_NS921X_CONSOLE=y
353CONFIG_SERIAL_8250_EXTENDED=y
354# CONFIG_SERIAL_8250_MANY_PORTS is not set
355# CONFIG_SERIAL_8250_SHARE_IRQ is not set
356# CONFIG_SERIAL_8250_DETECT_IRQ is not set
357# CONFIG_SERIAL_8250_RSA is not set
358
359#
360# Non-8250 serial port support
361#
362CONFIG_SERIAL_CORE=y
363CONFIG_SERIAL_CORE_CONSOLE=y
364CONFIG_UNIX98_PTYS=y
365# CONFIG_LEGACY_PTYS is not set 52# CONFIG_LEGACY_PTYS is not set
366
367#
368# IPMI
369#
370# CONFIG_IPMI_HANDLER is not set
371
372#
373# Watchdog Cards
374#
375# CONFIG_WATCHDOG is not set
376# CONFIG_HW_RANDOM is not set 53# CONFIG_HW_RANDOM is not set
377# CONFIG_NVRAM is not set 54CONFIG_ADC_NS9215=m
378# CONFIG_DTLK is not set 55CONFIG_I2C=m
379# CONFIG_R3964 is not set 56CONFIG_I2C_GPIO=m
380# CONFIG_RAW_DRIVER is not set
381
382#
383# TPM devices
384#
385# CONFIG_TCG_TPM is not set
386
387#
388# I2C support
389#
390# CONFIG_I2C is not set
391
392#
393# SPI support
394#
395# CONFIG_SPI is not set
396# CONFIG_SPI_MASTER is not set
397
398#
399# Dallas's 1-wire bus
400#
401# CONFIG_W1 is not set
402
403#
404# Hardware Monitoring support
405#
406# CONFIG_HWMON is not set 57# CONFIG_HWMON is not set
407# CONFIG_HWMON_VID is not set
408
409#
410# Misc devices
411#
412# CONFIG_TIFM_CORE is not set
413
414#
415# LED devices
416#
417# CONFIG_NEW_LEDS is not set
418
419#
420# LED drivers
421#
422
423#
424# LED Triggers
425#
426
427#
428# Multimedia devices
429#
430# CONFIG_VIDEO_DEV is not set
431
432#
433# Digital Video Broadcasting Devices
434#
435
436#
437# Graphics support
438#
439# CONFIG_FIRMWARE_EDID is not set
440# CONFIG_FB is not set
441
442#
443# Console display driver support
444#
445# CONFIG_VGA_CONSOLE is not set 58# CONFIG_VGA_CONSOLE is not set
446CONFIG_DUMMY_CONSOLE=y 59# CONFIG_HID_DEBUG is not set
447# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 60# CONFIG_USB_SUPPORT is not set
448 61CONFIG_NEW_LEDS=y
449# 62CONFIG_LEDS_CLASS=m
450# Sound 63CONFIG_LEDS_GPIO=m
451# 64CONFIG_LEDS_TRIGGERS=y
452# CONFIG_SOUND is not set 65CONFIG_LEDS_TRIGGER_TIMER=m
453 66CONFIG_LEDS_TRIGGER_HEARTBEAT=m
454# 67CONFIG_RTC_CLASS=m
455# HID Devices 68CONFIG_RTC_DRV_NS9215=m
456# 69CONFIG_EXT2_FS=m
457CONFIG_HID=y
458
459#
460# USB support
461#
462CONFIG_USB_ARCH_HAS_HCD=y
463# CONFIG_USB_ARCH_HAS_OHCI is not set
464# CONFIG_USB_ARCH_HAS_EHCI is not set
465# CONFIG_USB is not set
466
467#
468# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
469#
470
471#
472# USB Gadget Support
473#
474# CONFIG_USB_GADGET is not set
475
476#
477# MMC/SD Card support
478#
479# CONFIG_MMC is not set
480
481#
482# Real Time Clock
483#
484CONFIG_RTC_LIB=y
485# CONFIG_RTC_CLASS is not set
486
487#
488# File systems
489#
490CONFIG_EXT2_FS=y
491# CONFIG_EXT2_FS_XATTR is not set
492# CONFIG_EXT2_FS_XIP is not set
493# CONFIG_EXT3_FS is not set
494# CONFIG_EXT4DEV_FS is not set
495# CONFIG_REISERFS_FS is not set
496# CONFIG_JFS_FS is not set
497# CONFIG_FS_POSIX_ACL is not set
498# CONFIG_XFS_FS is not set
499# CONFIG_GFS2_FS is not set
500# CONFIG_MINIX_FS is not set
501# CONFIG_ROMFS_FS is not set
502CONFIG_INOTIFY=y
503CONFIG_INOTIFY_USER=y
504# CONFIG_QUOTA is not set
505# CONFIG_DNOTIFY is not set
506# CONFIG_AUTOFS_FS is not set
507# CONFIG_AUTOFS4_FS is not set
508# CONFIG_FUSE_FS is not set
509
510#
511# CD-ROM/DVD Filesystems
512#
513# CONFIG_ISO9660_FS is not set
514# CONFIG_UDF_FS is not set
515
516#
517# DOS/FAT/NT Filesystems
518#
519# CONFIG_MSDOS_FS is not set
520# CONFIG_VFAT_FS is not set
521# CONFIG_NTFS_FS is not set
522
523#
524# Pseudo filesystems
525#
526CONFIG_PROC_FS=y
527CONFIG_PROC_SYSCTL=y
528CONFIG_SYSFS=y
529CONFIG_TMPFS=y 70CONFIG_TMPFS=y
530# CONFIG_TMPFS_POSIX_ACL is not set 71CONFIG_JFFS2_FS=m
531# CONFIG_HUGETLB_PAGE is not set 72CONFIG_NFS_FS=y
532CONFIG_RAMFS=y 73CONFIG_ROOT_NFS=y
533# CONFIG_CONFIGFS_FS is not set
534
535#
536# Miscellaneous filesystems
537#
538# CONFIG_ADFS_FS is not set
539# CONFIG_AFFS_FS is not set
540# CONFIG_HFS_FS is not set
541# CONFIG_HFSPLUS_FS is not set
542# CONFIG_BEFS_FS is not set
543# CONFIG_BFS_FS is not set
544# CONFIG_EFS_FS is not set
545# CONFIG_CRAMFS is not set
546# CONFIG_VXFS_FS is not set
547# CONFIG_HPFS_FS is not set
548# CONFIG_QNX4FS_FS is not set
549# CONFIG_SYSV_FS is not set
550# CONFIG_UFS_FS is not set
551
552#
553# Partition Types
554#
555# CONFIG_PARTITION_ADVANCED is not set
556CONFIG_MSDOS_PARTITION=y
557
558#
559# Native Language Support
560#
561# CONFIG_NLS is not set
562
563#
564# Profiling support
565#
566# CONFIG_PROFILING is not set
567
568#
569# Kernel hacking
570#
571# CONFIG_PRINTK_TIME is not set
572# CONFIG_ENABLE_MUST_CHECK is not set 74# CONFIG_ENABLE_MUST_CHECK is not set
573# CONFIG_MAGIC_SYSRQ is not set
574# CONFIG_UNUSED_SYMBOLS is not set
575# CONFIG_DEBUG_FS is not set
576# CONFIG_HEADERS_CHECK is not set
577CONFIG_DEBUG_KERNEL=y 75CONFIG_DEBUG_KERNEL=y
578CONFIG_LOG_BUF_SHIFT=14
579# CONFIG_DETECT_SOFTLOCKUP is not set
580# CONFIG_SCHEDSTATS is not set
581# CONFIG_DEBUG_SLAB is not set
582# CONFIG_DEBUG_RT_MUTEXES is not set
583# CONFIG_RT_MUTEX_TESTER is not set
584# CONFIG_DEBUG_SPINLOCK is not set
585# CONFIG_DEBUG_MUTEXES is not set
586# CONFIG_DEBUG_RWSEMS is not set
587# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
588# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
589# CONFIG_DEBUG_KOBJECT is not set
590CONFIG_DEBUG_BUGVERBOSE=y 76CONFIG_DEBUG_BUGVERBOSE=y
591CONFIG_DEBUG_INFO=y 77CONFIG_DEBUG_INFO=y
592# CONFIG_DEBUG_VM is not set
593# CONFIG_DEBUG_LIST is not set
594CONFIG_FRAME_POINTER=y
595CONFIG_FORCED_INLINING=y
596# CONFIG_RCU_TORTURE_TEST is not set
597CONFIG_DEBUG_USER=y 78CONFIG_DEBUG_USER=y
598CONFIG_DEBUG_ERRORS=y 79CONFIG_DEBUG_ERRORS=y
599CONFIG_DEBUG_LL=y
600CONFIG_DEBUG_ICEDCC=y
601
602#
603# Security options
604#
605# CONFIG_KEYS is not set
606# CONFIG_SECURITY is not set
607
608#
609# Cryptographic options
610#
611# CONFIG_CRYPTO is not set
612
613#
614# Library routines
615#
616# CONFIG_CRC_CCITT is not set
617# CONFIG_CRC16 is not set
618# CONFIG_CRC32 is not set
619# CONFIG_LIBCRC32C is not set
620CONFIG_PLIST=y
621CONFIG_IOMAP_COPY=y
diff --git a/arch/arm/configs/orion_defconfig b/arch/arm/configs/orion5x_defconfig
index 1e5aaa645fcd..52cd99bd52fb 100644
--- a/arch/arm/configs/orion_defconfig
+++ b/arch/arm/configs/orion5x_defconfig
@@ -140,7 +140,7 @@ CONFIG_CLASSIC_RCU=y
140# CONFIG_ARCH_KS8695 is not set 140# CONFIG_ARCH_KS8695 is not set
141# CONFIG_ARCH_NS9XXX is not set 141# CONFIG_ARCH_NS9XXX is not set
142# CONFIG_ARCH_MXC is not set 142# CONFIG_ARCH_MXC is not set
143CONFIG_ARCH_ORION=y 143CONFIG_ARCH_ORION5X=y
144# CONFIG_ARCH_PNX4008 is not set 144# CONFIG_ARCH_PNX4008 is not set
145# CONFIG_ARCH_PXA is not set 145# CONFIG_ARCH_PXA is not set
146# CONFIG_ARCH_RPC is not set 146# CONFIG_ARCH_RPC is not set
diff --git a/arch/arm/configs/picotux200_defconfig b/arch/arm/configs/picotux200_defconfig
index 3c0c4f192dc1..95a22f512805 100644
--- a/arch/arm/configs/picotux200_defconfig
+++ b/arch/arm/configs/picotux200_defconfig
@@ -727,14 +727,14 @@ CONFIG_I2C_CHARDEV=m
727# 727#
728# I2C Algorithms 728# I2C Algorithms
729# 729#
730# CONFIG_I2C_ALGOBIT is not set 730CONFIG_I2C_ALGOBIT=m
731# CONFIG_I2C_ALGOPCF is not set 731# CONFIG_I2C_ALGOPCF is not set
732# CONFIG_I2C_ALGOPCA is not set 732# CONFIG_I2C_ALGOPCA is not set
733 733
734# 734#
735# I2C Hardware Bus support 735# I2C Hardware Bus support
736# 736#
737CONFIG_I2C_AT91=m 737CONFIG_I2C_GPIO=m
738# CONFIG_I2C_OCORES is not set 738# CONFIG_I2C_OCORES is not set
739# CONFIG_I2C_PARPORT_LIGHT is not set 739# CONFIG_I2C_PARPORT_LIGHT is not set
740# CONFIG_I2C_STUB is not set 740# CONFIG_I2C_STUB is not set
diff --git a/arch/arm/configs/sam9_l9260_defconfig b/arch/arm/configs/sam9_l9260_defconfig
new file mode 100644
index 000000000000..484dc9739dfc
--- /dev/null
+++ b/arch/arm/configs/sam9_l9260_defconfig
@@ -0,0 +1,1098 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23
4# Sun Oct 14 02:01:07 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9# CONFIG_GENERIC_TIME is not set
10# CONFIG_GENERIC_CLOCKEVENTS is not set
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35CONFIG_LOCALVERSION=""
36# CONFIG_LOCALVERSION_AUTO is not set
37CONFIG_SWAP=y
38CONFIG_SYSVIPC=y
39CONFIG_SYSVIPC_SYSCTL=y
40CONFIG_POSIX_MQUEUE=y
41CONFIG_BSD_PROCESS_ACCT=y
42CONFIG_BSD_PROCESS_ACCT_V3=y
43# CONFIG_TASKSTATS is not set
44# CONFIG_USER_NS is not set
45CONFIG_AUDIT=y
46# CONFIG_IKCONFIG is not set
47CONFIG_LOG_BUF_SHIFT=15
48CONFIG_SYSFS_DEPRECATED=y
49# CONFIG_RELAY is not set
50CONFIG_BLK_DEV_INITRD=y
51CONFIG_INITRAMFS_SOURCE=""
52CONFIG_CC_OPTIMIZE_FOR_SIZE=y
53CONFIG_SYSCTL=y
54# CONFIG_EMBEDDED is not set
55CONFIG_UID16=y
56CONFIG_SYSCTL_SYSCALL=y
57CONFIG_KALLSYMS=y
58# CONFIG_KALLSYMS_ALL is not set
59# CONFIG_KALLSYMS_EXTRA_PASS is not set
60CONFIG_HOTPLUG=y
61CONFIG_PRINTK=y
62CONFIG_BUG=y
63CONFIG_ELF_CORE=y
64CONFIG_BASE_FULL=y
65CONFIG_FUTEX=y
66CONFIG_ANON_INODES=y
67CONFIG_EPOLL=y
68CONFIG_SIGNALFD=y
69CONFIG_EVENTFD=y
70CONFIG_SHMEM=y
71CONFIG_VM_EVENT_COUNTERS=y
72CONFIG_SLAB=y
73# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set
75CONFIG_RT_MUTEXES=y
76# CONFIG_TINY_SHMEM is not set
77CONFIG_BASE_SMALL=0
78# CONFIG_MODULES is not set
79CONFIG_BLOCK=y
80CONFIG_LBD=y
81# CONFIG_BLK_DEV_IO_TRACE is not set
82CONFIG_LSF=y
83# CONFIG_BLK_DEV_BSG is not set
84
85#
86# IO Schedulers
87#
88CONFIG_IOSCHED_NOOP=y
89CONFIG_IOSCHED_AS=y
90CONFIG_IOSCHED_DEADLINE=y
91CONFIG_IOSCHED_CFQ=y
92# CONFIG_DEFAULT_AS is not set
93# CONFIG_DEFAULT_DEADLINE is not set
94CONFIG_DEFAULT_CFQ=y
95# CONFIG_DEFAULT_NOOP is not set
96CONFIG_DEFAULT_IOSCHED="cfq"
97
98#
99# System Type
100#
101# CONFIG_ARCH_AAEC2000 is not set
102# CONFIG_ARCH_INTEGRATOR is not set
103# CONFIG_ARCH_REALVIEW is not set
104# CONFIG_ARCH_VERSATILE is not set
105CONFIG_ARCH_AT91=y
106# CONFIG_ARCH_CLPS7500 is not set
107# CONFIG_ARCH_CLPS711X is not set
108# CONFIG_ARCH_CO285 is not set
109# CONFIG_ARCH_EBSA110 is not set
110# CONFIG_ARCH_EP93XX is not set
111# CONFIG_ARCH_FOOTBRIDGE is not set
112# CONFIG_ARCH_NETX is not set
113# CONFIG_ARCH_H720X is not set
114# CONFIG_ARCH_IMX is not set
115# CONFIG_ARCH_IOP13XX is not set
116# CONFIG_ARCH_IOP32X is not set
117# CONFIG_ARCH_IOP33X is not set
118# CONFIG_ARCH_IXP23XX is not set
119# CONFIG_ARCH_IXP2000 is not set
120# CONFIG_ARCH_IXP4XX is not set
121# CONFIG_ARCH_L7200 is not set
122# CONFIG_ARCH_KS8695 is not set
123# CONFIG_ARCH_NS9XXX is not set
124# CONFIG_ARCH_MXC is not set
125# CONFIG_ARCH_PNX4008 is not set
126# CONFIG_ARCH_PXA is not set
127# CONFIG_ARCH_RPC is not set
128# CONFIG_ARCH_SA1100 is not set
129# CONFIG_ARCH_S3C2410 is not set
130# CONFIG_ARCH_SHARK is not set
131# CONFIG_ARCH_LH7A40X is not set
132# CONFIG_ARCH_DAVINCI is not set
133# CONFIG_ARCH_OMAP is not set
134
135#
136# Boot options
137#
138
139#
140# Power management
141#
142
143#
144# Atmel AT91 System-on-Chip
145#
146# CONFIG_ARCH_AT91RM9200 is not set
147CONFIG_ARCH_AT91SAM9260=y
148# CONFIG_ARCH_AT91SAM9261 is not set
149# CONFIG_ARCH_AT91SAM9263 is not set
150# CONFIG_ARCH_AT91SAM9RL is not set
151
152#
153# AT91SAM9260 Variants
154#
155# CONFIG_ARCH_AT91SAM9260_SAM9XE is not set
156
157#
158# AT91SAM9260 / AT91SAM9XE Board Type
159#
160# CONFIG_MACH_AT91SAM9260EK is not set
161# CONFIG_MACH_CAM60 is not set
162CONFIG_MACH_SAM9_L9260=y
163
164#
165# AT91 Board Options
166#
167CONFIG_MTD_AT91_DATAFLASH_CARD=y
168
169#
170# AT91 Feature Selections
171#
172# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set
173# CONFIG_ATMEL_TCLIB is not set
174
175#
176# Processor Type
177#
178CONFIG_CPU_32=y
179CONFIG_CPU_ARM926T=y
180CONFIG_CPU_32v5=y
181CONFIG_CPU_ABRT_EV5TJ=y
182CONFIG_CPU_CACHE_VIVT=y
183CONFIG_CPU_COPY_V4WB=y
184CONFIG_CPU_TLB_V4WBI=y
185CONFIG_CPU_CP15=y
186CONFIG_CPU_CP15_MMU=y
187
188#
189# Processor Features
190#
191CONFIG_ARM_THUMB=y
192# CONFIG_CPU_ICACHE_DISABLE is not set
193# CONFIG_CPU_DCACHE_DISABLE is not set
194# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
195# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
196# CONFIG_OUTER_CACHE is not set
197
198#
199# Bus support
200#
201# CONFIG_PCI_SYSCALL is not set
202# CONFIG_ARCH_SUPPORTS_MSI is not set
203
204#
205# PCCARD (PCMCIA/CardBus) support
206#
207# CONFIG_PCCARD is not set
208
209#
210# Kernel Features
211#
212# CONFIG_TICK_ONESHOT is not set
213CONFIG_PREEMPT=y
214# CONFIG_NO_IDLE_HZ is not set
215CONFIG_HZ=100
216# CONFIG_AEABI is not set
217# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
218CONFIG_SELECT_MEMORY_MODEL=y
219CONFIG_FLATMEM_MANUAL=y
220# CONFIG_DISCONTIGMEM_MANUAL is not set
221# CONFIG_SPARSEMEM_MANUAL is not set
222CONFIG_FLATMEM=y
223CONFIG_FLAT_NODE_MEM_MAP=y
224# CONFIG_SPARSEMEM_STATIC is not set
225CONFIG_SPLIT_PTLOCK_CPUS=4096
226# CONFIG_RESOURCES_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y
229CONFIG_VIRT_TO_BUS=y
230CONFIG_LEDS=y
231CONFIG_LEDS_TIMER=y
232CONFIG_LEDS_CPU=y
233CONFIG_ALIGNMENT_TRAP=y
234
235#
236# Boot options
237#
238CONFIG_ZBOOT_ROM_TEXT=0x0
239CONFIG_ZBOOT_ROM_BSS=0x0
240CONFIG_CMDLINE="console=ttyS0,115200 mem=64M initrd=0x21100000,4194304 root=/dev/ram0 rw"
241# CONFIG_XIP_KERNEL is not set
242# CONFIG_KEXEC is not set
243
244#
245# Floating point emulation
246#
247
248#
249# At least one emulation must be selected
250#
251CONFIG_FPE_NWFPE=y
252# CONFIG_FPE_NWFPE_XP is not set
253# CONFIG_FPE_FASTFPE is not set
254# CONFIG_VFP is not set
255
256#
257# Userspace binary formats
258#
259CONFIG_BINFMT_ELF=y
260# CONFIG_BINFMT_AOUT is not set
261# CONFIG_BINFMT_MISC is not set
262# CONFIG_ARTHUR is not set
263
264#
265# Power management options
266#
267# CONFIG_PM is not set
268CONFIG_SUSPEND_UP_POSSIBLE=y
269
270#
271# Networking
272#
273CONFIG_NET=y
274
275#
276# Networking options
277#
278CONFIG_PACKET=y
279CONFIG_PACKET_MMAP=y
280CONFIG_UNIX=y
281CONFIG_XFRM=y
282CONFIG_XFRM_USER=y
283# CONFIG_XFRM_SUB_POLICY is not set
284# CONFIG_XFRM_MIGRATE is not set
285CONFIG_NET_KEY=y
286# CONFIG_NET_KEY_MIGRATE is not set
287CONFIG_INET=y
288# CONFIG_IP_MULTICAST is not set
289# CONFIG_IP_ADVANCED_ROUTER is not set
290CONFIG_IP_FIB_HASH=y
291# CONFIG_IP_PNP is not set
292# CONFIG_NET_IPIP is not set
293# CONFIG_NET_IPGRE is not set
294# CONFIG_ARPD is not set
295# CONFIG_SYN_COOKIES is not set
296# CONFIG_INET_AH is not set
297# CONFIG_INET_ESP is not set
298# CONFIG_INET_IPCOMP is not set
299# CONFIG_INET_XFRM_TUNNEL is not set
300# CONFIG_INET_TUNNEL is not set
301# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
302# CONFIG_INET_XFRM_MODE_TUNNEL is not set
303# CONFIG_INET_XFRM_MODE_BEET is not set
304CONFIG_INET_DIAG=y
305CONFIG_INET_TCP_DIAG=y
306# CONFIG_TCP_CONG_ADVANCED is not set
307CONFIG_TCP_CONG_CUBIC=y
308CONFIG_DEFAULT_TCP_CONG="cubic"
309# CONFIG_TCP_MD5SIG is not set
310# CONFIG_IPV6 is not set
311# CONFIG_INET6_XFRM_TUNNEL is not set
312# CONFIG_INET6_TUNNEL is not set
313# CONFIG_NETWORK_SECMARK is not set
314# CONFIG_NETFILTER is not set
315# CONFIG_IP_DCCP is not set
316# CONFIG_IP_SCTP is not set
317# CONFIG_TIPC is not set
318# CONFIG_ATM is not set
319# CONFIG_BRIDGE is not set
320# CONFIG_VLAN_8021Q is not set
321# CONFIG_DECNET is not set
322# CONFIG_LLC2 is not set
323# CONFIG_IPX is not set
324# CONFIG_ATALK is not set
325# CONFIG_X25 is not set
326# CONFIG_LAPB is not set
327# CONFIG_ECONET is not set
328# CONFIG_WAN_ROUTER is not set
329
330#
331# QoS and/or fair queueing
332#
333# CONFIG_NET_SCHED is not set
334
335#
336# Network testing
337#
338# CONFIG_NET_PKTGEN is not set
339# CONFIG_HAMRADIO is not set
340# CONFIG_IRDA is not set
341# CONFIG_BT is not set
342# CONFIG_AF_RXRPC is not set
343
344#
345# Wireless
346#
347# CONFIG_CFG80211 is not set
348# CONFIG_WIRELESS_EXT is not set
349# CONFIG_MAC80211 is not set
350# CONFIG_IEEE80211 is not set
351# CONFIG_RFKILL is not set
352# CONFIG_NET_9P is not set
353
354#
355# Device Drivers
356#
357
358#
359# Generic Driver Options
360#
361CONFIG_STANDALONE=y
362CONFIG_PREVENT_FIRMWARE_BUILD=y
363CONFIG_FW_LOADER=y
364# CONFIG_DEBUG_DRIVER is not set
365# CONFIG_DEBUG_DEVRES is not set
366# CONFIG_SYS_HYPERVISOR is not set
367# CONFIG_CONNECTOR is not set
368CONFIG_MTD=y
369# CONFIG_MTD_DEBUG is not set
370# CONFIG_MTD_CONCAT is not set
371CONFIG_MTD_PARTITIONS=y
372# CONFIG_MTD_REDBOOT_PARTS is not set
373# CONFIG_MTD_CMDLINE_PARTS is not set
374# CONFIG_MTD_AFS_PARTS is not set
375
376#
377# User Modules And Translation Layers
378#
379CONFIG_MTD_CHAR=y
380CONFIG_MTD_BLKDEVS=y
381CONFIG_MTD_BLOCK=y
382# CONFIG_FTL is not set
383# CONFIG_NFTL is not set
384# CONFIG_INFTL is not set
385# CONFIG_RFD_FTL is not set
386# CONFIG_SSFDC is not set
387
388#
389# RAM/ROM/Flash chip drivers
390#
391# CONFIG_MTD_CFI is not set
392# CONFIG_MTD_JEDECPROBE is not set
393CONFIG_MTD_MAP_BANK_WIDTH_1=y
394CONFIG_MTD_MAP_BANK_WIDTH_2=y
395CONFIG_MTD_MAP_BANK_WIDTH_4=y
396# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
397# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
398# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
399CONFIG_MTD_CFI_I1=y
400CONFIG_MTD_CFI_I2=y
401# CONFIG_MTD_CFI_I4 is not set
402# CONFIG_MTD_CFI_I8 is not set
403# CONFIG_MTD_RAM is not set
404# CONFIG_MTD_ROM is not set
405# CONFIG_MTD_ABSENT is not set
406
407#
408# Mapping drivers for chip access
409#
410# CONFIG_MTD_COMPLEX_MAPPINGS is not set
411# CONFIG_MTD_PLATRAM is not set
412
413#
414# Self-contained MTD device drivers
415#
416# CONFIG_MTD_SLRAM is not set
417# CONFIG_MTD_PHRAM is not set
418# CONFIG_MTD_MTDRAM is not set
419CONFIG_MTD_BLOCK2MTD=y
420
421#
422# Disk-On-Chip Device Drivers
423#
424# CONFIG_MTD_DOC2000 is not set
425# CONFIG_MTD_DOC2001 is not set
426# CONFIG_MTD_DOC2001PLUS is not set
427CONFIG_MTD_NAND=y
428# CONFIG_MTD_NAND_VERIFY_WRITE is not set
429# CONFIG_MTD_NAND_ECC_SMC is not set
430# CONFIG_MTD_NAND_MUSEUM_IDS is not set
431CONFIG_MTD_NAND_IDS=y
432# CONFIG_MTD_NAND_DISKONCHIP is not set
433CONFIG_MTD_NAND_AT91=y
434# CONFIG_MTD_NAND_NANDSIM is not set
435CONFIG_MTD_NAND_PLATFORM=y
436# CONFIG_MTD_ONENAND is not set
437
438#
439# UBI - Unsorted block images
440#
441CONFIG_MTD_UBI=y
442CONFIG_MTD_UBI_WL_THRESHOLD=4096
443CONFIG_MTD_UBI_BEB_RESERVE=3
444CONFIG_MTD_UBI_GLUEBI=y
445
446#
447# UBI debugging options
448#
449# CONFIG_MTD_UBI_DEBUG is not set
450# CONFIG_PARPORT is not set
451CONFIG_BLK_DEV=y
452# CONFIG_BLK_DEV_COW_COMMON is not set
453CONFIG_BLK_DEV_LOOP=y
454# CONFIG_BLK_DEV_CRYPTOLOOP is not set
455# CONFIG_BLK_DEV_NBD is not set
456# CONFIG_BLK_DEV_UB is not set
457CONFIG_BLK_DEV_RAM=y
458CONFIG_BLK_DEV_RAM_COUNT=16
459CONFIG_BLK_DEV_RAM_SIZE=8192
460CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
461# CONFIG_CDROM_PKTCDVD is not set
462# CONFIG_ATA_OVER_ETH is not set
463
464#
465# SCSI device support
466#
467CONFIG_RAID_ATTRS=y
468CONFIG_SCSI=y
469CONFIG_SCSI_DMA=y
470# CONFIG_SCSI_TGT is not set
471# CONFIG_SCSI_NETLINK is not set
472CONFIG_SCSI_PROC_FS=y
473
474#
475# SCSI support type (disk, tape, CD-ROM)
476#
477CONFIG_BLK_DEV_SD=y
478# CONFIG_CHR_DEV_ST is not set
479# CONFIG_CHR_DEV_OSST is not set
480# CONFIG_BLK_DEV_SR is not set
481CONFIG_CHR_DEV_SG=y
482# CONFIG_CHR_DEV_SCH is not set
483
484#
485# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
486#
487CONFIG_SCSI_MULTI_LUN=y
488CONFIG_SCSI_CONSTANTS=y
489CONFIG_SCSI_LOGGING=y
490# CONFIG_SCSI_SCAN_ASYNC is not set
491
492#
493# SCSI Transports
494#
495# CONFIG_SCSI_SPI_ATTRS is not set
496# CONFIG_SCSI_FC_ATTRS is not set
497# CONFIG_SCSI_ISCSI_ATTRS is not set
498# CONFIG_SCSI_SAS_LIBSAS is not set
499# CONFIG_SCSI_LOWLEVEL is not set
500# CONFIG_ATA is not set
501# CONFIG_MD is not set
502CONFIG_NETDEVICES=y
503# CONFIG_NETDEVICES_MULTIQUEUE is not set
504# CONFIG_DUMMY is not set
505# CONFIG_BONDING is not set
506# CONFIG_MACVLAN is not set
507# CONFIG_EQUALIZER is not set
508# CONFIG_TUN is not set
509CONFIG_PHYLIB=y
510
511#
512# MII PHY device drivers
513#
514# CONFIG_MARVELL_PHY is not set
515# CONFIG_DAVICOM_PHY is not set
516# CONFIG_QSEMI_PHY is not set
517# CONFIG_LXT_PHY is not set
518# CONFIG_CICADA_PHY is not set
519# CONFIG_VITESSE_PHY is not set
520# CONFIG_SMSC_PHY is not set
521# CONFIG_BROADCOM_PHY is not set
522# CONFIG_ICPLUS_PHY is not set
523# CONFIG_FIXED_PHY is not set
524CONFIG_NET_ETHERNET=y
525CONFIG_MII=y
526CONFIG_MACB=y
527# CONFIG_AX88796 is not set
528# CONFIG_SMC91X is not set
529# CONFIG_DM9000 is not set
530# CONFIG_NETDEV_1000 is not set
531# CONFIG_NETDEV_10000 is not set
532
533#
534# Wireless LAN
535#
536# CONFIG_WLAN_PRE80211 is not set
537# CONFIG_WLAN_80211 is not set
538
539#
540# USB Network Adapters
541#
542# CONFIG_USB_CATC is not set
543# CONFIG_USB_KAWETH is not set
544# CONFIG_USB_PEGASUS is not set
545# CONFIG_USB_RTL8150 is not set
546# CONFIG_USB_USBNET_MII is not set
547# CONFIG_USB_USBNET is not set
548# CONFIG_WAN is not set
549# CONFIG_PPP is not set
550# CONFIG_SLIP is not set
551# CONFIG_SHAPER is not set
552# CONFIG_NETCONSOLE is not set
553# CONFIG_NETPOLL is not set
554# CONFIG_NET_POLL_CONTROLLER is not set
555# CONFIG_ISDN is not set
556
557#
558# Input device support
559#
560CONFIG_INPUT=y
561# CONFIG_INPUT_FF_MEMLESS is not set
562# CONFIG_INPUT_POLLDEV is not set
563
564#
565# Userland interfaces
566#
567CONFIG_INPUT_MOUSEDEV=y
568# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
569CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
570CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
571# CONFIG_INPUT_JOYDEV is not set
572# CONFIG_INPUT_TSDEV is not set
573# CONFIG_INPUT_EVDEV is not set
574# CONFIG_INPUT_EVBUG is not set
575
576#
577# Input Device Drivers
578#
579# CONFIG_INPUT_KEYBOARD is not set
580# CONFIG_INPUT_MOUSE is not set
581# CONFIG_INPUT_JOYSTICK is not set
582# CONFIG_INPUT_TABLET is not set
583# CONFIG_INPUT_TOUCHSCREEN is not set
584# CONFIG_INPUT_MISC is not set
585
586#
587# Hardware I/O ports
588#
589# CONFIG_SERIO is not set
590# CONFIG_GAMEPORT is not set
591
592#
593# Character devices
594#
595CONFIG_VT=y
596CONFIG_VT_CONSOLE=y
597CONFIG_HW_CONSOLE=y
598# CONFIG_VT_HW_CONSOLE_BINDING is not set
599# CONFIG_SERIAL_NONSTANDARD is not set
600
601#
602# Serial drivers
603#
604# CONFIG_SERIAL_8250 is not set
605
606#
607# Non-8250 serial port support
608#
609CONFIG_SERIAL_ATMEL=y
610CONFIG_SERIAL_ATMEL_CONSOLE=y
611# CONFIG_SERIAL_ATMEL_TTYAT is not set
612CONFIG_SERIAL_CORE=y
613CONFIG_SERIAL_CORE_CONSOLE=y
614CONFIG_UNIX98_PTYS=y
615CONFIG_LEGACY_PTYS=y
616CONFIG_LEGACY_PTY_COUNT=16
617# CONFIG_IPMI_HANDLER is not set
618# CONFIG_WATCHDOG is not set
619# CONFIG_HW_RANDOM is not set
620# CONFIG_NVRAM is not set
621# CONFIG_R3964 is not set
622# CONFIG_RAW_DRIVER is not set
623# CONFIG_TCG_TPM is not set
624# CONFIG_I2C is not set
625
626#
627# SPI support
628#
629# CONFIG_SPI is not set
630# CONFIG_SPI_MASTER is not set
631# CONFIG_W1 is not set
632# CONFIG_HWMON is not set
633# CONFIG_MISC_DEVICES is not set
634
635#
636# Multifunction device drivers
637#
638# CONFIG_MFD_SM501 is not set
639CONFIG_NEW_LEDS=y
640CONFIG_LEDS_CLASS=y
641
642#
643# LED drivers
644#
645CONFIG_LEDS_GPIO=y
646
647#
648# LED Triggers
649#
650CONFIG_LEDS_TRIGGERS=y
651CONFIG_LEDS_TRIGGER_TIMER=y
652CONFIG_LEDS_TRIGGER_HEARTBEAT=y
653
654#
655# Multimedia devices
656#
657# CONFIG_VIDEO_DEV is not set
658# CONFIG_DVB_CORE is not set
659# CONFIG_DAB is not set
660
661#
662# Graphics support
663#
664# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
665
666#
667# Display device support
668#
669# CONFIG_DISPLAY_SUPPORT is not set
670# CONFIG_VGASTATE is not set
671# CONFIG_VIDEO_OUTPUT_CONTROL is not set
672# CONFIG_FB is not set
673
674#
675# Console display driver support
676#
677# CONFIG_VGA_CONSOLE is not set
678CONFIG_DUMMY_CONSOLE=y
679
680#
681# Sound
682#
683# CONFIG_SOUND is not set
684# CONFIG_HID_SUPPORT is not set
685CONFIG_USB_SUPPORT=y
686CONFIG_USB_ARCH_HAS_HCD=y
687CONFIG_USB_ARCH_HAS_OHCI=y
688# CONFIG_USB_ARCH_HAS_EHCI is not set
689CONFIG_USB=y
690# CONFIG_USB_DEBUG is not set
691
692#
693# Miscellaneous USB options
694#
695CONFIG_USB_DEVICEFS=y
696CONFIG_USB_DEVICE_CLASS=y
697# CONFIG_USB_DYNAMIC_MINORS is not set
698# CONFIG_USB_OTG is not set
699
700#
701# USB Host Controller Drivers
702#
703# CONFIG_USB_ISP116X_HCD is not set
704CONFIG_USB_OHCI_HCD=y
705# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
706# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
707CONFIG_USB_OHCI_LITTLE_ENDIAN=y
708# CONFIG_USB_SL811_HCD is not set
709# CONFIG_USB_R8A66597_HCD is not set
710
711#
712# USB Device Class drivers
713#
714# CONFIG_USB_ACM is not set
715# CONFIG_USB_PRINTER is not set
716
717#
718# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
719#
720
721#
722# may also be needed; see USB_STORAGE Help for more information
723#
724CONFIG_USB_STORAGE=y
725# CONFIG_USB_STORAGE_DEBUG is not set
726# CONFIG_USB_STORAGE_DATAFAB is not set
727# CONFIG_USB_STORAGE_FREECOM is not set
728# CONFIG_USB_STORAGE_DPCM is not set
729# CONFIG_USB_STORAGE_USBAT is not set
730# CONFIG_USB_STORAGE_SDDR09 is not set
731# CONFIG_USB_STORAGE_SDDR55 is not set
732# CONFIG_USB_STORAGE_JUMPSHOT is not set
733# CONFIG_USB_STORAGE_ALAUDA is not set
734# CONFIG_USB_STORAGE_KARMA is not set
735CONFIG_USB_LIBUSUAL=y
736
737#
738# USB Imaging devices
739#
740# CONFIG_USB_MDC800 is not set
741# CONFIG_USB_MICROTEK is not set
742# CONFIG_USB_MON is not set
743
744#
745# USB port drivers
746#
747
748#
749# USB Serial Converter support
750#
751# CONFIG_USB_SERIAL is not set
752
753#
754# USB Miscellaneous drivers
755#
756# CONFIG_USB_EMI62 is not set
757# CONFIG_USB_EMI26 is not set
758# CONFIG_USB_ADUTUX is not set
759# CONFIG_USB_AUERSWALD is not set
760# CONFIG_USB_RIO500 is not set
761# CONFIG_USB_LEGOTOWER is not set
762# CONFIG_USB_LCD is not set
763# CONFIG_USB_BERRY_CHARGE is not set
764# CONFIG_USB_LED is not set
765# CONFIG_USB_CYPRESS_CY7C63 is not set
766# CONFIG_USB_CYTHERM is not set
767# CONFIG_USB_PHIDGET is not set
768# CONFIG_USB_IDMOUSE is not set
769# CONFIG_USB_FTDI_ELAN is not set
770# CONFIG_USB_APPLEDISPLAY is not set
771# CONFIG_USB_LD is not set
772# CONFIG_USB_TRANCEVIBRATOR is not set
773# CONFIG_USB_IOWARRIOR is not set
774# CONFIG_USB_TEST is not set
775
776#
777# USB DSL modem support
778#
779
780#
781# USB Gadget Support
782#
783CONFIG_USB_GADGET=y
784# CONFIG_USB_GADGET_DEBUG is not set
785# CONFIG_USB_GADGET_DEBUG_FILES is not set
786CONFIG_USB_GADGET_SELECTED=y
787# CONFIG_USB_GADGET_AMD5536UDC is not set
788# CONFIG_USB_GADGET_FSL_USB2 is not set
789# CONFIG_USB_GADGET_NET2280 is not set
790# CONFIG_USB_GADGET_PXA2XX is not set
791# CONFIG_USB_GADGET_M66592 is not set
792# CONFIG_USB_GADGET_GOKU is not set
793# CONFIG_USB_GADGET_LH7A40X is not set
794# CONFIG_USB_GADGET_OMAP is not set
795# CONFIG_USB_GADGET_S3C2410 is not set
796CONFIG_USB_GADGET_AT91=y
797CONFIG_USB_AT91=y
798# CONFIG_USB_GADGET_DUMMY_HCD is not set
799# CONFIG_USB_GADGET_DUALSPEED is not set
800# CONFIG_USB_ZERO is not set
801CONFIG_USB_ETH=y
802CONFIG_USB_ETH_RNDIS=y
803# CONFIG_USB_GADGETFS is not set
804# CONFIG_USB_FILE_STORAGE is not set
805# CONFIG_USB_G_SERIAL is not set
806# CONFIG_USB_MIDI_GADGET is not set
807CONFIG_MMC=y
808CONFIG_MMC_DEBUG=y
809# CONFIG_MMC_UNSAFE_RESUME is not set
810
811#
812# MMC/SD Card Drivers
813#
814CONFIG_MMC_BLOCK=y
815CONFIG_MMC_BLOCK_BOUNCE=y
816
817#
818# MMC/SD Host Controller Drivers
819#
820CONFIG_MMC_AT91=y
821CONFIG_RTC_LIB=y
822CONFIG_RTC_CLASS=y
823CONFIG_RTC_HCTOSYS=y
824CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
825# CONFIG_RTC_DEBUG is not set
826
827#
828# RTC interfaces
829#
830CONFIG_RTC_INTF_SYSFS=y
831CONFIG_RTC_INTF_PROC=y
832CONFIG_RTC_INTF_DEV=y
833# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
834# CONFIG_RTC_DRV_TEST is not set
835
836#
837# SPI RTC drivers
838#
839
840#
841# Platform RTC drivers
842#
843# CONFIG_RTC_DRV_CMOS is not set
844CONFIG_RTC_DRV_DS1553=y
845# CONFIG_RTC_DRV_STK17TA8 is not set
846CONFIG_RTC_DRV_DS1742=y
847CONFIG_RTC_DRV_M48T86=y
848# CONFIG_RTC_DRV_M48T59 is not set
849CONFIG_RTC_DRV_V3020=y
850
851#
852# on-CPU RTC drivers
853#
854
855#
856# DMA Engine support
857#
858# CONFIG_DMA_ENGINE is not set
859
860#
861# DMA Clients
862#
863
864#
865# DMA Devices
866#
867
868#
869# File systems
870#
871CONFIG_EXT2_FS=y
872CONFIG_EXT2_FS_XATTR=y
873CONFIG_EXT2_FS_POSIX_ACL=y
874CONFIG_EXT2_FS_SECURITY=y
875# CONFIG_EXT2_FS_XIP is not set
876CONFIG_EXT3_FS=y
877CONFIG_EXT3_FS_XATTR=y
878CONFIG_EXT3_FS_POSIX_ACL=y
879CONFIG_EXT3_FS_SECURITY=y
880# CONFIG_EXT4DEV_FS is not set
881CONFIG_JBD=y
882# CONFIG_JBD_DEBUG is not set
883CONFIG_FS_MBCACHE=y
884# CONFIG_REISERFS_FS is not set
885# CONFIG_JFS_FS is not set
886CONFIG_FS_POSIX_ACL=y
887# CONFIG_XFS_FS is not set
888# CONFIG_GFS2_FS is not set
889# CONFIG_OCFS2_FS is not set
890# CONFIG_MINIX_FS is not set
891# CONFIG_ROMFS_FS is not set
892CONFIG_INOTIFY=y
893CONFIG_INOTIFY_USER=y
894# CONFIG_QUOTA is not set
895CONFIG_DNOTIFY=y
896# CONFIG_AUTOFS_FS is not set
897# CONFIG_AUTOFS4_FS is not set
898# CONFIG_FUSE_FS is not set
899
900#
901# CD-ROM/DVD Filesystems
902#
903# CONFIG_ISO9660_FS is not set
904# CONFIG_UDF_FS is not set
905
906#
907# DOS/FAT/NT Filesystems
908#
909CONFIG_FAT_FS=y
910CONFIG_MSDOS_FS=y
911CONFIG_VFAT_FS=y
912CONFIG_FAT_DEFAULT_CODEPAGE=437
913CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
914# CONFIG_NTFS_FS is not set
915
916#
917# Pseudo filesystems
918#
919CONFIG_PROC_FS=y
920CONFIG_PROC_SYSCTL=y
921CONFIG_SYSFS=y
922CONFIG_TMPFS=y
923# CONFIG_TMPFS_POSIX_ACL is not set
924# CONFIG_HUGETLB_PAGE is not set
925CONFIG_RAMFS=y
926# CONFIG_CONFIGFS_FS is not set
927
928#
929# Miscellaneous filesystems
930#
931# CONFIG_ADFS_FS is not set
932# CONFIG_AFFS_FS is not set
933# CONFIG_HFS_FS is not set
934# CONFIG_HFSPLUS_FS is not set
935# CONFIG_BEFS_FS is not set
936# CONFIG_BFS_FS is not set
937# CONFIG_EFS_FS is not set
938CONFIG_JFFS2_FS=y
939CONFIG_JFFS2_FS_DEBUG=0
940CONFIG_JFFS2_FS_WRITEBUFFER=y
941# CONFIG_JFFS2_SUMMARY is not set
942# CONFIG_JFFS2_FS_XATTR is not set
943# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
944CONFIG_JFFS2_ZLIB=y
945CONFIG_JFFS2_RTIME=y
946# CONFIG_JFFS2_RUBIN is not set
947# CONFIG_CRAMFS is not set
948# CONFIG_VXFS_FS is not set
949# CONFIG_HPFS_FS is not set
950# CONFIG_QNX4FS_FS is not set
951# CONFIG_SYSV_FS is not set
952# CONFIG_UFS_FS is not set
953
954#
955# Network File Systems
956#
957CONFIG_NFS_FS=y
958CONFIG_NFS_V3=y
959# CONFIG_NFS_V3_ACL is not set
960# CONFIG_NFS_V4 is not set
961CONFIG_NFS_DIRECTIO=y
962# CONFIG_NFSD is not set
963CONFIG_LOCKD=y
964CONFIG_LOCKD_V4=y
965CONFIG_NFS_COMMON=y
966CONFIG_SUNRPC=y
967# CONFIG_SUNRPC_BIND34 is not set
968# CONFIG_RPCSEC_GSS_KRB5 is not set
969# CONFIG_RPCSEC_GSS_SPKM3 is not set
970# CONFIG_SMB_FS is not set
971# CONFIG_CIFS is not set
972# CONFIG_NCP_FS is not set
973# CONFIG_CODA_FS is not set
974# CONFIG_AFS_FS is not set
975
976#
977# Partition Types
978#
979# CONFIG_PARTITION_ADVANCED is not set
980CONFIG_MSDOS_PARTITION=y
981
982#
983# Native Language Support
984#
985CONFIG_NLS=y
986CONFIG_NLS_DEFAULT="iso8859-1"
987CONFIG_NLS_CODEPAGE_437=y
988CONFIG_NLS_CODEPAGE_737=y
989CONFIG_NLS_CODEPAGE_775=y
990CONFIG_NLS_CODEPAGE_850=y
991CONFIG_NLS_CODEPAGE_852=y
992CONFIG_NLS_CODEPAGE_855=y
993CONFIG_NLS_CODEPAGE_857=y
994CONFIG_NLS_CODEPAGE_860=y
995CONFIG_NLS_CODEPAGE_861=y
996CONFIG_NLS_CODEPAGE_862=y
997CONFIG_NLS_CODEPAGE_863=y
998CONFIG_NLS_CODEPAGE_864=y
999CONFIG_NLS_CODEPAGE_865=y
1000CONFIG_NLS_CODEPAGE_866=y
1001CONFIG_NLS_CODEPAGE_869=y
1002CONFIG_NLS_CODEPAGE_936=y
1003CONFIG_NLS_CODEPAGE_950=y
1004CONFIG_NLS_CODEPAGE_932=y
1005CONFIG_NLS_CODEPAGE_949=y
1006CONFIG_NLS_CODEPAGE_874=y
1007CONFIG_NLS_ISO8859_8=y
1008CONFIG_NLS_CODEPAGE_1250=y
1009CONFIG_NLS_CODEPAGE_1251=y
1010CONFIG_NLS_ASCII=y
1011CONFIG_NLS_ISO8859_1=y
1012CONFIG_NLS_ISO8859_2=y
1013CONFIG_NLS_ISO8859_3=y
1014CONFIG_NLS_ISO8859_4=y
1015CONFIG_NLS_ISO8859_5=y
1016CONFIG_NLS_ISO8859_6=y
1017CONFIG_NLS_ISO8859_7=y
1018CONFIG_NLS_ISO8859_9=y
1019CONFIG_NLS_ISO8859_13=y
1020CONFIG_NLS_ISO8859_14=y
1021CONFIG_NLS_ISO8859_15=y
1022CONFIG_NLS_KOI8_R=y
1023CONFIG_NLS_KOI8_U=y
1024CONFIG_NLS_UTF8=y
1025
1026#
1027# Distributed Lock Manager
1028#
1029# CONFIG_DLM is not set
1030
1031#
1032# Profiling support
1033#
1034# CONFIG_PROFILING is not set
1035
1036#
1037# Kernel hacking
1038#
1039# CONFIG_PRINTK_TIME is not set
1040CONFIG_ENABLE_MUST_CHECK=y
1041CONFIG_MAGIC_SYSRQ=y
1042CONFIG_UNUSED_SYMBOLS=y
1043CONFIG_DEBUG_FS=y
1044# CONFIG_HEADERS_CHECK is not set
1045CONFIG_DEBUG_KERNEL=y
1046# CONFIG_DEBUG_SHIRQ is not set
1047CONFIG_DETECT_SOFTLOCKUP=y
1048CONFIG_SCHED_DEBUG=y
1049# CONFIG_SCHEDSTATS is not set
1050# CONFIG_TIMER_STATS is not set
1051# CONFIG_DEBUG_SLAB is not set
1052CONFIG_DEBUG_PREEMPT=y
1053# CONFIG_DEBUG_RT_MUTEXES is not set
1054# CONFIG_RT_MUTEX_TESTER is not set
1055# CONFIG_DEBUG_SPINLOCK is not set
1056# CONFIG_DEBUG_MUTEXES is not set
1057# CONFIG_DEBUG_LOCK_ALLOC is not set
1058# CONFIG_PROVE_LOCKING is not set
1059# CONFIG_LOCK_STAT is not set
1060# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1061# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1062# CONFIG_DEBUG_KOBJECT is not set
1063CONFIG_DEBUG_BUGVERBOSE=y
1064# CONFIG_DEBUG_INFO is not set
1065# CONFIG_DEBUG_VM is not set
1066# CONFIG_DEBUG_LIST is not set
1067CONFIG_FRAME_POINTER=y
1068CONFIG_FORCED_INLINING=y
1069# CONFIG_FAULT_INJECTION is not set
1070# CONFIG_DEBUG_USER is not set
1071# CONFIG_DEBUG_ERRORS is not set
1072CONFIG_DEBUG_LL=y
1073# CONFIG_DEBUG_ICEDCC is not set
1074
1075#
1076# Security options
1077#
1078# CONFIG_KEYS is not set
1079# CONFIG_SECURITY is not set
1080# CONFIG_CRYPTO is not set
1081
1082#
1083# Library routines
1084#
1085CONFIG_BITREVERSE=y
1086# CONFIG_CRC_CCITT is not set
1087# CONFIG_CRC16 is not set
1088# CONFIG_CRC_ITU_T is not set
1089CONFIG_CRC32=y
1090# CONFIG_CRC7 is not set
1091# CONFIG_LIBCRC32C is not set
1092CONFIG_AUDIT_GENERIC=y
1093CONFIG_ZLIB_INFLATE=y
1094CONFIG_ZLIB_DEFLATE=y
1095CONFIG_PLIST=y
1096CONFIG_HAS_IOMEM=y
1097CONFIG_HAS_IOPORT=y
1098CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/tct_hammer_defconfig b/arch/arm/configs/tct_hammer_defconfig
new file mode 100644
index 000000000000..576b8339f0d6
--- /dev/null
+++ b/arch/arm/configs/tct_hammer_defconfig
@@ -0,0 +1,886 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.25-rc7-hammer
4# Thu Mar 27 16:39:48 2008
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9# CONFIG_GENERIC_TIME is not set
10# CONFIG_GENERIC_CLOCKEVENTS is not set
11CONFIG_MMU=y
12CONFIG_NO_IOPORT=y
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
25CONFIG_ZONE_DMA=y
26CONFIG_VECTORS_BASE=0xffff0000
27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
28
29#
30# General setup
31#
32CONFIG_EXPERIMENTAL=y
33CONFIG_BROKEN_ON_SMP=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35CONFIG_LOCALVERSION=""
36# CONFIG_LOCALVERSION_AUTO is not set
37# CONFIG_SWAP is not set
38CONFIG_SYSVIPC=y
39CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set
41# CONFIG_BSD_PROCESS_ACCT is not set
42# CONFIG_TASKSTATS is not set
43# CONFIG_AUDIT is not set
44# CONFIG_IKCONFIG is not set
45CONFIG_LOG_BUF_SHIFT=14
46# CONFIG_CGROUPS is not set
47CONFIG_GROUP_SCHED=y
48CONFIG_FAIR_GROUP_SCHED=y
49# CONFIG_RT_GROUP_SCHED is not set
50CONFIG_USER_SCHED=y
51# CONFIG_CGROUP_SCHED is not set
52CONFIG_SYSFS_DEPRECATED=y
53CONFIG_SYSFS_DEPRECATED_V2=y
54# CONFIG_RELAY is not set
55# CONFIG_NAMESPACES is not set
56CONFIG_BLK_DEV_INITRD=y
57CONFIG_INITRAMFS_SOURCE=""
58CONFIG_CC_OPTIMIZE_FOR_SIZE=y
59CONFIG_SYSCTL=y
60CONFIG_EMBEDDED=y
61CONFIG_UID16=y
62CONFIG_SYSCTL_SYSCALL=y
63# CONFIG_KALLSYMS is not set
64CONFIG_HOTPLUG=y
65CONFIG_PRINTK=y
66# CONFIG_BUG is not set
67# CONFIG_ELF_CORE is not set
68CONFIG_COMPAT_BRK=y
69CONFIG_BASE_FULL=y
70CONFIG_FUTEX=y
71CONFIG_ANON_INODES=y
72CONFIG_EPOLL=y
73CONFIG_SIGNALFD=y
74CONFIG_TIMERFD=y
75CONFIG_EVENTFD=y
76# CONFIG_SHMEM is not set
77CONFIG_VM_EVENT_COUNTERS=y
78# CONFIG_SLAB is not set
79# CONFIG_SLUB is not set
80CONFIG_SLOB=y
81# CONFIG_PROFILING is not set
82# CONFIG_MARKERS is not set
83CONFIG_HAVE_OPROFILE=y
84CONFIG_HAVE_KPROBES=y
85CONFIG_HAVE_KRETPROBES=y
86CONFIG_PROC_PAGE_MONITOR=y
87CONFIG_RT_MUTEXES=y
88CONFIG_TINY_SHMEM=y
89CONFIG_BASE_SMALL=0
90CONFIG_MODULES=y
91CONFIG_MODULE_UNLOAD=y
92# CONFIG_MODULE_FORCE_UNLOAD is not set
93# CONFIG_MODVERSIONS is not set
94# CONFIG_MODULE_SRCVERSION_ALL is not set
95# CONFIG_KMOD is not set
96CONFIG_BLOCK=y
97# CONFIG_LBD is not set
98# CONFIG_BLK_DEV_IO_TRACE is not set
99# CONFIG_LSF is not set
100# CONFIG_BLK_DEV_BSG is not set
101
102#
103# IO Schedulers
104#
105CONFIG_IOSCHED_NOOP=y
106CONFIG_IOSCHED_AS=y
107CONFIG_IOSCHED_DEADLINE=y
108CONFIG_IOSCHED_CFQ=y
109CONFIG_DEFAULT_AS=y
110# CONFIG_DEFAULT_DEADLINE is not set
111# CONFIG_DEFAULT_CFQ is not set
112# CONFIG_DEFAULT_NOOP is not set
113CONFIG_DEFAULT_IOSCHED="anticipatory"
114CONFIG_CLASSIC_RCU=y
115
116#
117# System Type
118#
119# CONFIG_ARCH_AAEC2000 is not set
120# CONFIG_ARCH_INTEGRATOR is not set
121# CONFIG_ARCH_REALVIEW is not set
122# CONFIG_ARCH_VERSATILE is not set
123# CONFIG_ARCH_AT91 is not set
124# CONFIG_ARCH_CLPS7500 is not set
125# CONFIG_ARCH_CLPS711X is not set
126# CONFIG_ARCH_CO285 is not set
127# CONFIG_ARCH_EBSA110 is not set
128# CONFIG_ARCH_EP93XX is not set
129# CONFIG_ARCH_FOOTBRIDGE is not set
130# CONFIG_ARCH_NETX is not set
131# CONFIG_ARCH_H720X is not set
132# CONFIG_ARCH_IMX is not set
133# CONFIG_ARCH_IOP13XX is not set
134# CONFIG_ARCH_IOP32X is not set
135# CONFIG_ARCH_IOP33X is not set
136# CONFIG_ARCH_IXP23XX is not set
137# CONFIG_ARCH_IXP2000 is not set
138# CONFIG_ARCH_IXP4XX is not set
139# CONFIG_ARCH_L7200 is not set
140# CONFIG_ARCH_KS8695 is not set
141# CONFIG_ARCH_NS9XXX is not set
142# CONFIG_ARCH_MXC is not set
143# CONFIG_ARCH_ORION is not set
144# CONFIG_ARCH_PNX4008 is not set
145# CONFIG_ARCH_PXA is not set
146# CONFIG_ARCH_RPC is not set
147# CONFIG_ARCH_SA1100 is not set
148CONFIG_ARCH_S3C2410=y
149# CONFIG_ARCH_SHARK is not set
150# CONFIG_ARCH_LH7A40X is not set
151# CONFIG_ARCH_DAVINCI is not set
152# CONFIG_ARCH_OMAP is not set
153# CONFIG_ARCH_MSM7X00A is not set
154CONFIG_PLAT_S3C24XX=y
155# CONFIG_S3C2410_DMA is not set
156CONFIG_PLAT_S3C=y
157CONFIG_CPU_LLSERIAL_S3C2410_ONLY=y
158CONFIG_CPU_LLSERIAL_S3C2410=y
159
160#
161# Boot options
162#
163# CONFIG_S3C_BOOT_ERROR_RESET is not set
164
165#
166# Power management
167#
168CONFIG_S3C_LOWLEVEL_UART_PORT=0
169
170#
171# S3C2400 Machines
172#
173CONFIG_CPU_S3C2410=y
174CONFIG_S3C2410_GPIO=y
175CONFIG_S3C2410_CLOCK=y
176
177#
178# S3C2410 Machines
179#
180# CONFIG_ARCH_SMDK2410 is not set
181# CONFIG_ARCH_H1940 is not set
182# CONFIG_MACH_N30 is not set
183# CONFIG_ARCH_BAST is not set
184# CONFIG_MACH_OTOM is not set
185# CONFIG_MACH_AML_M5900 is not set
186CONFIG_MACH_TCT_HAMMER=y
187# CONFIG_MACH_VR1000 is not set
188# CONFIG_MACH_QT2410 is not set
189
190#
191# S3C2412 Machines
192#
193# CONFIG_MACH_SMDK2413 is not set
194# CONFIG_MACH_SMDK2412 is not set
195# CONFIG_MACH_VSTMS is not set
196
197#
198# S3C2440 Machines
199#
200# CONFIG_MACH_ANUBIS is not set
201# CONFIG_MACH_OSIRIS is not set
202# CONFIG_MACH_RX3715 is not set
203# CONFIG_ARCH_S3C2440 is not set
204# CONFIG_MACH_NEXCODER_2440 is not set
205
206#
207# S3C2442 Machines
208#
209
210#
211# S3C2443 Machines
212#
213# CONFIG_MACH_SMDK2443 is not set
214
215#
216# Processor Type
217#
218CONFIG_CPU_32=y
219CONFIG_CPU_ARM920T=y
220CONFIG_CPU_32v4T=y
221CONFIG_CPU_ABRT_EV4T=y
222CONFIG_CPU_CACHE_V4WT=y
223CONFIG_CPU_CACHE_VIVT=y
224CONFIG_CPU_COPY_V4WB=y
225CONFIG_CPU_TLB_V4WBI=y
226CONFIG_CPU_CP15=y
227CONFIG_CPU_CP15_MMU=y
228
229#
230# Processor Features
231#
232CONFIG_ARM_THUMB=y
233# CONFIG_CPU_ICACHE_DISABLE is not set
234# CONFIG_CPU_DCACHE_DISABLE is not set
235# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
236# CONFIG_OUTER_CACHE is not set
237
238#
239# Bus support
240#
241# CONFIG_PCI_SYSCALL is not set
242# CONFIG_ARCH_SUPPORTS_MSI is not set
243# CONFIG_PCCARD is not set
244
245#
246# Kernel Features
247#
248# CONFIG_TICK_ONESHOT is not set
249# CONFIG_PREEMPT is not set
250# CONFIG_NO_IDLE_HZ is not set
251CONFIG_HZ=200
252# CONFIG_AEABI is not set
253# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
254CONFIG_SELECT_MEMORY_MODEL=y
255CONFIG_FLATMEM_MANUAL=y
256# CONFIG_DISCONTIGMEM_MANUAL is not set
257# CONFIG_SPARSEMEM_MANUAL is not set
258CONFIG_FLATMEM=y
259CONFIG_FLAT_NODE_MEM_MAP=y
260# CONFIG_SPARSEMEM_STATIC is not set
261# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
262CONFIG_SPLIT_PTLOCK_CPUS=4096
263# CONFIG_RESOURCES_64BIT is not set
264CONFIG_ZONE_DMA_FLAG=1
265CONFIG_BOUNCE=y
266CONFIG_VIRT_TO_BUS=y
267CONFIG_ALIGNMENT_TRAP=y
268
269#
270# Boot options
271#
272CONFIG_ZBOOT_ROM_TEXT=0x0
273CONFIG_ZBOOT_ROM_BSS=0x0
274CONFIG_CMDLINE="mem=64M root=/dev/ram0 init=/linuxrc rw"
275# CONFIG_XIP_KERNEL is not set
276# CONFIG_KEXEC is not set
277
278#
279# Floating point emulation
280#
281
282#
283# At least one emulation must be selected
284#
285CONFIG_FPE_NWFPE=y
286# CONFIG_FPE_NWFPE_XP is not set
287# CONFIG_FPE_FASTFPE is not set
288
289#
290# Userspace binary formats
291#
292CONFIG_BINFMT_ELF=y
293# CONFIG_BINFMT_AOUT is not set
294# CONFIG_BINFMT_MISC is not set
295# CONFIG_ARTHUR is not set
296
297#
298# Power management options
299#
300# CONFIG_PM is not set
301CONFIG_ARCH_SUSPEND_POSSIBLE=y
302
303#
304# Networking
305#
306CONFIG_NET=y
307
308#
309# Networking options
310#
311CONFIG_PACKET=y
312# CONFIG_PACKET_MMAP is not set
313CONFIG_UNIX=y
314# CONFIG_NET_KEY is not set
315# CONFIG_INET is not set
316# CONFIG_NETWORK_SECMARK is not set
317# CONFIG_NETFILTER is not set
318# CONFIG_ATM is not set
319# CONFIG_BRIDGE is not set
320# CONFIG_VLAN_8021Q is not set
321# CONFIG_DECNET is not set
322# CONFIG_LLC2 is not set
323# CONFIG_IPX is not set
324# CONFIG_ATALK is not set
325# CONFIG_X25 is not set
326# CONFIG_LAPB is not set
327# CONFIG_WAN_ROUTER is not set
328# CONFIG_NET_SCHED is not set
329
330#
331# Network testing
332#
333# CONFIG_NET_PKTGEN is not set
334# CONFIG_HAMRADIO is not set
335# CONFIG_CAN is not set
336# CONFIG_IRDA is not set
337# CONFIG_BT is not set
338
339#
340# Wireless
341#
342# CONFIG_CFG80211 is not set
343# CONFIG_WIRELESS_EXT is not set
344# CONFIG_MAC80211 is not set
345# CONFIG_IEEE80211 is not set
346# CONFIG_RFKILL is not set
347# CONFIG_NET_9P is not set
348
349#
350# Device Drivers
351#
352
353#
354# Generic Driver Options
355#
356CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
357CONFIG_STANDALONE=y
358# CONFIG_PREVENT_FIRMWARE_BUILD is not set
359CONFIG_FW_LOADER=y
360# CONFIG_DEBUG_DRIVER is not set
361# CONFIG_DEBUG_DEVRES is not set
362# CONFIG_SYS_HYPERVISOR is not set
363# CONFIG_CONNECTOR is not set
364CONFIG_MTD=y
365# CONFIG_MTD_DEBUG is not set
366# CONFIG_MTD_CONCAT is not set
367CONFIG_MTD_PARTITIONS=y
368# CONFIG_MTD_REDBOOT_PARTS is not set
369# CONFIG_MTD_CMDLINE_PARTS is not set
370# CONFIG_MTD_AFS_PARTS is not set
371
372#
373# User Modules And Translation Layers
374#
375CONFIG_MTD_CHAR=y
376CONFIG_MTD_BLKDEVS=y
377CONFIG_MTD_BLOCK=y
378# CONFIG_FTL is not set
379# CONFIG_NFTL is not set
380# CONFIG_INFTL is not set
381# CONFIG_RFD_FTL is not set
382# CONFIG_SSFDC is not set
383# CONFIG_MTD_OOPS is not set
384
385#
386# RAM/ROM/Flash chip drivers
387#
388CONFIG_MTD_CFI=y
389# CONFIG_MTD_JEDECPROBE is not set
390CONFIG_MTD_GEN_PROBE=y
391CONFIG_MTD_CFI_ADV_OPTIONS=y
392CONFIG_MTD_CFI_NOSWAP=y
393# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
394# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
395CONFIG_MTD_CFI_GEOMETRY=y
396CONFIG_MTD_MAP_BANK_WIDTH_1=y
397CONFIG_MTD_MAP_BANK_WIDTH_2=y
398CONFIG_MTD_MAP_BANK_WIDTH_4=y
399# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
400# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
401# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
402CONFIG_MTD_CFI_I1=y
403CONFIG_MTD_CFI_I2=y
404# CONFIG_MTD_CFI_I4 is not set
405# CONFIG_MTD_CFI_I8 is not set
406# CONFIG_MTD_OTP is not set
407CONFIG_MTD_CFI_INTELEXT=y
408# CONFIG_MTD_CFI_AMDSTD is not set
409# CONFIG_MTD_CFI_STAA is not set
410CONFIG_MTD_CFI_UTIL=y
411# CONFIG_MTD_RAM is not set
412# CONFIG_MTD_ROM is not set
413# CONFIG_MTD_ABSENT is not set
414
415#
416# Mapping drivers for chip access
417#
418# CONFIG_MTD_COMPLEX_MAPPINGS is not set
419CONFIG_MTD_PHYSMAP=y
420CONFIG_MTD_PHYSMAP_START=0x00000000
421CONFIG_MTD_PHYSMAP_LEN=0x0
422CONFIG_MTD_PHYSMAP_BANKWIDTH=2
423# CONFIG_MTD_ARM_INTEGRATOR is not set
424# CONFIG_MTD_PLATRAM is not set
425
426#
427# Self-contained MTD device drivers
428#
429# CONFIG_MTD_SLRAM is not set
430# CONFIG_MTD_PHRAM is not set
431# CONFIG_MTD_MTDRAM is not set
432# CONFIG_MTD_BLOCK2MTD is not set
433
434#
435# Disk-On-Chip Device Drivers
436#
437# CONFIG_MTD_DOC2000 is not set
438# CONFIG_MTD_DOC2001 is not set
439# CONFIG_MTD_DOC2001PLUS is not set
440# CONFIG_MTD_NAND is not set
441# CONFIG_MTD_ONENAND is not set
442
443#
444# UBI - Unsorted block images
445#
446# CONFIG_MTD_UBI is not set
447# CONFIG_PARPORT is not set
448CONFIG_BLK_DEV=y
449# CONFIG_BLK_DEV_COW_COMMON is not set
450# CONFIG_BLK_DEV_LOOP is not set
451# CONFIG_BLK_DEV_NBD is not set
452# CONFIG_BLK_DEV_UB is not set
453CONFIG_BLK_DEV_RAM=y
454CONFIG_BLK_DEV_RAM_COUNT=16
455CONFIG_BLK_DEV_RAM_SIZE=10240
456# CONFIG_BLK_DEV_XIP is not set
457# CONFIG_CDROM_PKTCDVD is not set
458# CONFIG_ATA_OVER_ETH is not set
459# CONFIG_MISC_DEVICES is not set
460CONFIG_HAVE_IDE=y
461# CONFIG_IDE is not set
462
463#
464# SCSI device support
465#
466# CONFIG_RAID_ATTRS is not set
467# CONFIG_SCSI is not set
468# CONFIG_SCSI_DMA is not set
469# CONFIG_SCSI_NETLINK is not set
470# CONFIG_ATA is not set
471# CONFIG_MD is not set
472# CONFIG_NETDEVICES is not set
473# CONFIG_ISDN is not set
474
475#
476# Input device support
477#
478CONFIG_INPUT=y
479# CONFIG_INPUT_FF_MEMLESS is not set
480# CONFIG_INPUT_POLLDEV is not set
481
482#
483# Userland interfaces
484#
485# CONFIG_INPUT_MOUSEDEV is not set
486# CONFIG_INPUT_JOYDEV is not set
487# CONFIG_INPUT_EVDEV is not set
488# CONFIG_INPUT_EVBUG is not set
489
490#
491# Input Device Drivers
492#
493# CONFIG_INPUT_KEYBOARD is not set
494# CONFIG_INPUT_MOUSE is not set
495# CONFIG_INPUT_JOYSTICK is not set
496# CONFIG_INPUT_TABLET is not set
497# CONFIG_INPUT_TOUCHSCREEN is not set
498# CONFIG_INPUT_MISC is not set
499
500#
501# Hardware I/O ports
502#
503# CONFIG_SERIO is not set
504# CONFIG_GAMEPORT is not set
505
506#
507# Character devices
508#
509CONFIG_VT=y
510# CONFIG_VT_CONSOLE is not set
511CONFIG_HW_CONSOLE=y
512# CONFIG_VT_HW_CONSOLE_BINDING is not set
513# CONFIG_SERIAL_NONSTANDARD is not set
514
515#
516# Serial drivers
517#
518# CONFIG_SERIAL_8250 is not set
519
520#
521# Non-8250 serial port support
522#
523CONFIG_SERIAL_S3C2410=y
524CONFIG_SERIAL_S3C2410_CONSOLE=y
525CONFIG_SERIAL_CORE=y
526CONFIG_SERIAL_CORE_CONSOLE=y
527CONFIG_UNIX98_PTYS=y
528CONFIG_LEGACY_PTYS=y
529CONFIG_LEGACY_PTY_COUNT=256
530# CONFIG_IPMI_HANDLER is not set
531# CONFIG_HW_RANDOM is not set
532# CONFIG_NVRAM is not set
533# CONFIG_R3964 is not set
534# CONFIG_RAW_DRIVER is not set
535# CONFIG_TCG_TPM is not set
536# CONFIG_I2C is not set
537
538#
539# SPI support
540#
541# CONFIG_SPI is not set
542# CONFIG_SPI_MASTER is not set
543# CONFIG_W1 is not set
544# CONFIG_POWER_SUPPLY is not set
545# CONFIG_HWMON is not set
546# CONFIG_WATCHDOG is not set
547
548#
549# Sonics Silicon Backplane
550#
551CONFIG_SSB_POSSIBLE=y
552# CONFIG_SSB is not set
553
554#
555# Multifunction device drivers
556#
557# CONFIG_MFD_SM501 is not set
558# CONFIG_MFD_ASIC3 is not set
559
560#
561# Multimedia devices
562#
563# CONFIG_VIDEO_DEV is not set
564# CONFIG_DAB is not set
565
566#
567# Graphics support
568#
569# CONFIG_VGASTATE is not set
570# CONFIG_VIDEO_OUTPUT_CONTROL is not set
571# CONFIG_FB is not set
572# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
573
574#
575# Display device support
576#
577# CONFIG_DISPLAY_SUPPORT is not set
578
579#
580# Console display driver support
581#
582# CONFIG_VGA_CONSOLE is not set
583CONFIG_DUMMY_CONSOLE=y
584
585#
586# Sound
587#
588# CONFIG_SOUND is not set
589# CONFIG_HID_SUPPORT is not set
590CONFIG_USB_SUPPORT=y
591CONFIG_USB_ARCH_HAS_HCD=y
592CONFIG_USB_ARCH_HAS_OHCI=y
593# CONFIG_USB_ARCH_HAS_EHCI is not set
594CONFIG_USB=y
595CONFIG_USB_DEBUG=y
596# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
597
598#
599# Miscellaneous USB options
600#
601# CONFIG_USB_DEVICEFS is not set
602# CONFIG_USB_DEVICE_CLASS is not set
603# CONFIG_USB_DYNAMIC_MINORS is not set
604# CONFIG_USB_OTG is not set
605
606#
607# USB Host Controller Drivers
608#
609# CONFIG_USB_ISP116X_HCD is not set
610CONFIG_USB_OHCI_HCD=y
611# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
612# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
613CONFIG_USB_OHCI_LITTLE_ENDIAN=y
614# CONFIG_USB_SL811_HCD is not set
615# CONFIG_USB_R8A66597_HCD is not set
616
617#
618# USB Device Class drivers
619#
620# CONFIG_USB_ACM is not set
621# CONFIG_USB_PRINTER is not set
622
623#
624# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
625#
626
627#
628# may also be needed; see USB_STORAGE Help for more information
629#
630# CONFIG_USB_LIBUSUAL is not set
631
632#
633# USB Imaging devices
634#
635# CONFIG_USB_MDC800 is not set
636CONFIG_USB_MON=y
637
638#
639# USB port drivers
640#
641# CONFIG_USB_SERIAL is not set
642
643#
644# USB Miscellaneous drivers
645#
646# CONFIG_USB_EMI62 is not set
647# CONFIG_USB_EMI26 is not set
648# CONFIG_USB_ADUTUX is not set
649# CONFIG_USB_AUERSWALD is not set
650# CONFIG_USB_RIO500 is not set
651# CONFIG_USB_LEGOTOWER is not set
652# CONFIG_USB_LCD is not set
653# CONFIG_USB_BERRY_CHARGE is not set
654# CONFIG_USB_LED is not set
655# CONFIG_USB_CYPRESS_CY7C63 is not set
656# CONFIG_USB_CYTHERM is not set
657# CONFIG_USB_PHIDGET is not set
658# CONFIG_USB_IDMOUSE is not set
659# CONFIG_USB_FTDI_ELAN is not set
660# CONFIG_USB_APPLEDISPLAY is not set
661# CONFIG_USB_LD is not set
662# CONFIG_USB_TRANCEVIBRATOR is not set
663# CONFIG_USB_IOWARRIOR is not set
664CONFIG_USB_GADGET=y
665# CONFIG_USB_GADGET_DEBUG is not set
666# CONFIG_USB_GADGET_DEBUG_FILES is not set
667CONFIG_USB_GADGET_SELECTED=y
668# CONFIG_USB_GADGET_AMD5536UDC is not set
669# CONFIG_USB_GADGET_ATMEL_USBA is not set
670# CONFIG_USB_GADGET_FSL_USB2 is not set
671# CONFIG_USB_GADGET_NET2280 is not set
672# CONFIG_USB_GADGET_PXA2XX is not set
673# CONFIG_USB_GADGET_M66592 is not set
674# CONFIG_USB_GADGET_GOKU is not set
675# CONFIG_USB_GADGET_LH7A40X is not set
676# CONFIG_USB_GADGET_OMAP is not set
677CONFIG_USB_GADGET_S3C2410=y
678CONFIG_USB_S3C2410=y
679# CONFIG_USB_S3C2410_DEBUG is not set
680# CONFIG_USB_GADGET_AT91 is not set
681# CONFIG_USB_GADGET_DUMMY_HCD is not set
682# CONFIG_USB_GADGET_DUALSPEED is not set
683# CONFIG_USB_ZERO is not set
684CONFIG_USB_ETH=y
685CONFIG_USB_ETH_RNDIS=y
686# CONFIG_USB_GADGETFS is not set
687# CONFIG_USB_FILE_STORAGE is not set
688# CONFIG_USB_G_SERIAL is not set
689# CONFIG_USB_MIDI_GADGET is not set
690# CONFIG_USB_G_PRINTER is not set
691# CONFIG_MMC is not set
692# CONFIG_NEW_LEDS is not set
693CONFIG_RTC_LIB=y
694# CONFIG_RTC_CLASS is not set
695
696#
697# File systems
698#
699CONFIG_EXT2_FS=y
700# CONFIG_EXT2_FS_XATTR is not set
701# CONFIG_EXT2_FS_XIP is not set
702# CONFIG_EXT3_FS is not set
703# CONFIG_EXT4DEV_FS is not set
704# CONFIG_REISERFS_FS is not set
705# CONFIG_JFS_FS is not set
706# CONFIG_FS_POSIX_ACL is not set
707# CONFIG_XFS_FS is not set
708# CONFIG_GFS2_FS is not set
709# CONFIG_OCFS2_FS is not set
710# CONFIG_DNOTIFY is not set
711# CONFIG_INOTIFY is not set
712# CONFIG_QUOTA is not set
713# CONFIG_AUTOFS_FS is not set
714# CONFIG_AUTOFS4_FS is not set
715# CONFIG_FUSE_FS is not set
716
717#
718# CD-ROM/DVD Filesystems
719#
720# CONFIG_ISO9660_FS is not set
721# CONFIG_UDF_FS is not set
722
723#
724# DOS/FAT/NT Filesystems
725#
726CONFIG_FAT_FS=y
727CONFIG_MSDOS_FS=y
728CONFIG_VFAT_FS=y
729CONFIG_FAT_DEFAULT_CODEPAGE=437
730CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
731# CONFIG_NTFS_FS is not set
732
733#
734# Pseudo filesystems
735#
736CONFIG_PROC_FS=y
737# CONFIG_PROC_SYSCTL is not set
738CONFIG_SYSFS=y
739# CONFIG_TMPFS is not set
740# CONFIG_HUGETLB_PAGE is not set
741# CONFIG_CONFIGFS_FS is not set
742
743#
744# Miscellaneous filesystems
745#
746# CONFIG_ADFS_FS is not set
747# CONFIG_AFFS_FS is not set
748# CONFIG_HFS_FS is not set
749# CONFIG_HFSPLUS_FS is not set
750# CONFIG_BEFS_FS is not set
751# CONFIG_BFS_FS is not set
752# CONFIG_EFS_FS is not set
753CONFIG_JFFS2_FS=y
754CONFIG_JFFS2_FS_DEBUG=0
755CONFIG_JFFS2_FS_WRITEBUFFER=y
756# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
757# CONFIG_JFFS2_SUMMARY is not set
758# CONFIG_JFFS2_FS_XATTR is not set
759# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
760CONFIG_JFFS2_ZLIB=y
761# CONFIG_JFFS2_LZO is not set
762CONFIG_JFFS2_RTIME=y
763# CONFIG_JFFS2_RUBIN is not set
764# CONFIG_CRAMFS is not set
765# CONFIG_VXFS_FS is not set
766# CONFIG_MINIX_FS is not set
767# CONFIG_HPFS_FS is not set
768# CONFIG_QNX4FS_FS is not set
769# CONFIG_ROMFS_FS is not set
770# CONFIG_SYSV_FS is not set
771# CONFIG_UFS_FS is not set
772CONFIG_NETWORK_FILESYSTEMS=y
773
774#
775# Partition Types
776#
777# CONFIG_PARTITION_ADVANCED is not set
778CONFIG_MSDOS_PARTITION=y
779CONFIG_NLS=y
780CONFIG_NLS_DEFAULT="iso8859-1"
781CONFIG_NLS_CODEPAGE_437=y
782# CONFIG_NLS_CODEPAGE_737 is not set
783# CONFIG_NLS_CODEPAGE_775 is not set
784# CONFIG_NLS_CODEPAGE_850 is not set
785# CONFIG_NLS_CODEPAGE_852 is not set
786# CONFIG_NLS_CODEPAGE_855 is not set
787# CONFIG_NLS_CODEPAGE_857 is not set
788# CONFIG_NLS_CODEPAGE_860 is not set
789# CONFIG_NLS_CODEPAGE_861 is not set
790# CONFIG_NLS_CODEPAGE_862 is not set
791# CONFIG_NLS_CODEPAGE_863 is not set
792# CONFIG_NLS_CODEPAGE_864 is not set
793# CONFIG_NLS_CODEPAGE_865 is not set
794# CONFIG_NLS_CODEPAGE_866 is not set
795# CONFIG_NLS_CODEPAGE_869 is not set
796# CONFIG_NLS_CODEPAGE_936 is not set
797# CONFIG_NLS_CODEPAGE_950 is not set
798# CONFIG_NLS_CODEPAGE_932 is not set
799# CONFIG_NLS_CODEPAGE_949 is not set
800# CONFIG_NLS_CODEPAGE_874 is not set
801# CONFIG_NLS_ISO8859_8 is not set
802# CONFIG_NLS_CODEPAGE_1250 is not set
803# CONFIG_NLS_CODEPAGE_1251 is not set
804# CONFIG_NLS_ASCII is not set
805CONFIG_NLS_ISO8859_1=y
806# CONFIG_NLS_ISO8859_2 is not set
807# CONFIG_NLS_ISO8859_3 is not set
808# CONFIG_NLS_ISO8859_4 is not set
809# CONFIG_NLS_ISO8859_5 is not set
810# CONFIG_NLS_ISO8859_6 is not set
811# CONFIG_NLS_ISO8859_7 is not set
812# CONFIG_NLS_ISO8859_9 is not set
813# CONFIG_NLS_ISO8859_13 is not set
814# CONFIG_NLS_ISO8859_14 is not set
815# CONFIG_NLS_ISO8859_15 is not set
816# CONFIG_NLS_KOI8_R is not set
817# CONFIG_NLS_KOI8_U is not set
818# CONFIG_NLS_UTF8 is not set
819
820#
821# Kernel hacking
822#
823# CONFIG_PRINTK_TIME is not set
824CONFIG_ENABLE_WARN_DEPRECATED=y
825# CONFIG_ENABLE_MUST_CHECK is not set
826# CONFIG_MAGIC_SYSRQ is not set
827# CONFIG_UNUSED_SYMBOLS is not set
828# CONFIG_DEBUG_FS is not set
829# CONFIG_HEADERS_CHECK is not set
830CONFIG_DEBUG_KERNEL=y
831# CONFIG_DEBUG_SHIRQ is not set
832# CONFIG_DETECT_SOFTLOCKUP is not set
833CONFIG_SCHED_DEBUG=y
834# CONFIG_SCHEDSTATS is not set
835# CONFIG_TIMER_STATS is not set
836# CONFIG_DEBUG_RT_MUTEXES is not set
837# CONFIG_RT_MUTEX_TESTER is not set
838# CONFIG_DEBUG_SPINLOCK is not set
839# CONFIG_DEBUG_MUTEXES is not set
840# CONFIG_DEBUG_LOCK_ALLOC is not set
841# CONFIG_PROVE_LOCKING is not set
842# CONFIG_LOCK_STAT is not set
843# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
844# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
845# CONFIG_DEBUG_KOBJECT is not set
846# CONFIG_DEBUG_INFO is not set
847# CONFIG_DEBUG_VM is not set
848# CONFIG_DEBUG_LIST is not set
849# CONFIG_DEBUG_SG is not set
850CONFIG_FRAME_POINTER=y
851# CONFIG_BOOT_PRINTK_DELAY is not set
852# CONFIG_RCU_TORTURE_TEST is not set
853# CONFIG_BACKTRACE_SELF_TEST is not set
854# CONFIG_FAULT_INJECTION is not set
855# CONFIG_SAMPLES is not set
856# CONFIG_DEBUG_USER is not set
857CONFIG_DEBUG_ERRORS=y
858# CONFIG_DEBUG_STACK_USAGE is not set
859CONFIG_DEBUG_LL=y
860# CONFIG_DEBUG_ICEDCC is not set
861# CONFIG_DEBUG_S3C_PORT is not set
862CONFIG_DEBUG_S3C_UART=0
863
864#
865# Security options
866#
867# CONFIG_KEYS is not set
868# CONFIG_SECURITY is not set
869# CONFIG_SECURITY_FILE_CAPABILITIES is not set
870# CONFIG_CRYPTO is not set
871
872#
873# Library routines
874#
875CONFIG_BITREVERSE=y
876CONFIG_CRC_CCITT=y
877# CONFIG_CRC16 is not set
878# CONFIG_CRC_ITU_T is not set
879CONFIG_CRC32=y
880# CONFIG_CRC7 is not set
881# CONFIG_LIBCRC32C is not set
882CONFIG_ZLIB_INFLATE=y
883CONFIG_ZLIB_DEFLATE=y
884CONFIG_PLIST=y
885CONFIG_HAS_IOMEM=y
886CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/yl9200_defconfig b/arch/arm/configs/yl9200_defconfig
new file mode 100644
index 000000000000..26de37f74686
--- /dev/null
+++ b/arch/arm/configs/yl9200_defconfig
@@ -0,0 +1,1216 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc6
4# Fri Jan 11 09:53:59 2008
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31# CONFIG_EXPERIMENTAL is not set
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34CONFIG_LOCALVERSION=""
35CONFIG_LOCALVERSION_AUTO=y
36# CONFIG_SWAP is not set
37CONFIG_SYSVIPC=y
38CONFIG_SYSVIPC_SYSCTL=y
39# CONFIG_BSD_PROCESS_ACCT is not set
40# CONFIG_TASKSTATS is not set
41# CONFIG_AUDIT is not set
42# CONFIG_IKCONFIG is not set
43CONFIG_LOG_BUF_SHIFT=14
44# CONFIG_CGROUPS is not set
45CONFIG_FAIR_GROUP_SCHED=y
46CONFIG_FAIR_USER_SCHED=y
47# CONFIG_FAIR_CGROUP_SCHED is not set
48# CONFIG_SYSFS_DEPRECATED is not set
49# CONFIG_RELAY is not set
50CONFIG_BLK_DEV_INITRD=y
51CONFIG_INITRAMFS_SOURCE=""
52# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
53CONFIG_SYSCTL=y
54# CONFIG_EMBEDDED is not set
55CONFIG_UID16=y
56CONFIG_SYSCTL_SYSCALL=y
57CONFIG_KALLSYMS=y
58# CONFIG_KALLSYMS_ALL is not set
59# CONFIG_KALLSYMS_EXTRA_PASS is not set
60CONFIG_HOTPLUG=y
61CONFIG_PRINTK=y
62CONFIG_BUG=y
63CONFIG_ELF_CORE=y
64CONFIG_BASE_FULL=y
65CONFIG_FUTEX=y
66CONFIG_ANON_INODES=y
67CONFIG_EPOLL=y
68CONFIG_SIGNALFD=y
69CONFIG_EVENTFD=y
70CONFIG_SHMEM=y
71CONFIG_VM_EVENT_COUNTERS=y
72CONFIG_SLUB_DEBUG=y
73# CONFIG_SLAB is not set
74CONFIG_SLUB=y
75# CONFIG_SLOB is not set
76CONFIG_RT_MUTEXES=y
77# CONFIG_TINY_SHMEM is not set
78CONFIG_BASE_SMALL=0
79CONFIG_MODULES=y
80CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODVERSIONS is not set
82# CONFIG_MODULE_SRCVERSION_ALL is not set
83CONFIG_KMOD=y
84CONFIG_BLOCK=y
85# CONFIG_LBD is not set
86# CONFIG_BLK_DEV_IO_TRACE is not set
87# CONFIG_LSF is not set
88
89#
90# IO Schedulers
91#
92CONFIG_IOSCHED_NOOP=y
93# CONFIG_IOSCHED_AS is not set
94# CONFIG_IOSCHED_DEADLINE is not set
95# CONFIG_IOSCHED_CFQ is not set
96# CONFIG_DEFAULT_AS is not set
97# CONFIG_DEFAULT_DEADLINE is not set
98# CONFIG_DEFAULT_CFQ is not set
99CONFIG_DEFAULT_NOOP=y
100CONFIG_DEFAULT_IOSCHED="noop"
101
102#
103# System Type
104#
105# CONFIG_ARCH_AAEC2000 is not set
106# CONFIG_ARCH_INTEGRATOR is not set
107# CONFIG_ARCH_REALVIEW is not set
108# CONFIG_ARCH_VERSATILE is not set
109CONFIG_ARCH_AT91=y
110# CONFIG_ARCH_CLPS7500 is not set
111# CONFIG_ARCH_CLPS711X is not set
112# CONFIG_ARCH_CO285 is not set
113# CONFIG_ARCH_EBSA110 is not set
114# CONFIG_ARCH_EP93XX is not set
115# CONFIG_ARCH_FOOTBRIDGE is not set
116# CONFIG_ARCH_NETX is not set
117# CONFIG_ARCH_H720X is not set
118# CONFIG_ARCH_IMX is not set
119# CONFIG_ARCH_IOP13XX is not set
120# CONFIG_ARCH_IOP32X is not set
121# CONFIG_ARCH_IOP33X is not set
122# CONFIG_ARCH_IXP23XX is not set
123# CONFIG_ARCH_IXP2000 is not set
124# CONFIG_ARCH_IXP4XX is not set
125# CONFIG_ARCH_L7200 is not set
126# CONFIG_ARCH_KS8695 is not set
127# CONFIG_ARCH_NS9XXX is not set
128# CONFIG_ARCH_MXC is not set
129# CONFIG_ARCH_PNX4008 is not set
130# CONFIG_ARCH_PXA is not set
131# CONFIG_ARCH_RPC is not set
132# CONFIG_ARCH_SA1100 is not set
133# CONFIG_ARCH_S3C2410 is not set
134# CONFIG_ARCH_SHARK is not set
135# CONFIG_ARCH_LH7A40X is not set
136# CONFIG_ARCH_DAVINCI is not set
137# CONFIG_ARCH_OMAP is not set
138
139#
140# Boot options
141#
142
143#
144# Power management
145#
146
147#
148# Atmel AT91 System-on-Chip
149#
150CONFIG_ARCH_AT91RM9200=y
151# CONFIG_ARCH_AT91SAM9260 is not set
152# CONFIG_ARCH_AT91SAM9261 is not set
153# CONFIG_ARCH_AT91SAM9263 is not set
154# CONFIG_ARCH_AT91SAM9RL is not set
155# CONFIG_ARCH_AT91X40 is not set
156CONFIG_AT91_PMC_UNIT=y
157
158#
159# AT91RM9200 Board Type
160#
161# CONFIG_MACH_ONEARM is not set
162CONFIG_ARCH_AT91RM9200DK=y
163# CONFIG_MACH_AT91RM9200EK is not set
164# CONFIG_MACH_CSB337 is not set
165# CONFIG_MACH_CSB637 is not set
166# CONFIG_MACH_CARMEVA is not set
167# CONFIG_MACH_ATEB9200 is not set
168# CONFIG_MACH_KB9200 is not set
169# CONFIG_MACH_PICOTUX2XX is not set
170# CONFIG_MACH_KAFA is not set
171CONFIG_MACH_YL9200=y
172
173#
174# AT91 Board Options
175#
176# CONFIG_MTD_AT91_DATAFLASH_CARD is not set
177
178#
179# AT91 Feature Selections
180#
181# CONFIG_AT91_PROGRAMMABLE_CLOCKS is not set
182
183#
184# Processor Type
185#
186CONFIG_CPU_32=y
187CONFIG_CPU_ARM920T=y
188CONFIG_CPU_32v4T=y
189CONFIG_CPU_ABRT_EV4T=y
190CONFIG_CPU_CACHE_V4WT=y
191CONFIG_CPU_CACHE_VIVT=y
192CONFIG_CPU_COPY_V4WB=y
193CONFIG_CPU_TLB_V4WBI=y
194CONFIG_CPU_CP15=y
195CONFIG_CPU_CP15_MMU=y
196
197#
198# Processor Features
199#
200# CONFIG_ARM_THUMB is not set
201# CONFIG_CPU_ICACHE_DISABLE is not set
202# CONFIG_CPU_DCACHE_DISABLE is not set
203# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
204# CONFIG_OUTER_CACHE is not set
205
206#
207# Bus support
208#
209# CONFIG_PCI_SYSCALL is not set
210# CONFIG_ARCH_SUPPORTS_MSI is not set
211# CONFIG_PCCARD is not set
212
213#
214# Kernel Features
215#
216# CONFIG_TICK_ONESHOT is not set
217# CONFIG_NO_HZ is not set
218# CONFIG_HIGH_RES_TIMERS is not set
219CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
220CONFIG_HZ=100
221# CONFIG_AEABI is not set
222# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
223CONFIG_FLATMEM=y
224CONFIG_FLAT_NODE_MEM_MAP=y
225# CONFIG_SPARSEMEM_STATIC is not set
226# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
227CONFIG_SPLIT_PTLOCK_CPUS=4096
228# CONFIG_RESOURCES_64BIT is not set
229CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y
231CONFIG_VIRT_TO_BUS=y
232# CONFIG_LEDS is not set
233CONFIG_ALIGNMENT_TRAP=y
234
235#
236# Boot options
237#
238CONFIG_ZBOOT_ROM_TEXT=0x0
239CONFIG_ZBOOT_ROM_BSS=0x0
240CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x20410000,3145728 root=/dev/ram0 rw"
241# CONFIG_XIP_KERNEL is not set
242
243#
244# Floating point emulation
245#
246
247#
248# At least one emulation must be selected
249#
250CONFIG_FPE_NWFPE=y
251# CONFIG_FPE_NWFPE_XP is not set
252
253#
254# Userspace binary formats
255#
256CONFIG_BINFMT_ELF=y
257# CONFIG_BINFMT_AOUT is not set
258# CONFIG_BINFMT_MISC is not set
259# CONFIG_ARTHUR is not set
260
261#
262# Power management options
263#
264# CONFIG_PM is not set
265CONFIG_SUSPEND_UP_POSSIBLE=y
266
267#
268# Networking
269#
270CONFIG_NET=y
271
272#
273# Networking options
274#
275CONFIG_PACKET=y
276# CONFIG_PACKET_MMAP is not set
277CONFIG_UNIX=y
278# CONFIG_NET_KEY is not set
279CONFIG_INET=y
280# CONFIG_IP_MULTICAST is not set
281# CONFIG_IP_ADVANCED_ROUTER is not set
282CONFIG_IP_FIB_HASH=y
283CONFIG_IP_PNP=y
284CONFIG_IP_PNP_DHCP=y
285# CONFIG_IP_PNP_BOOTP is not set
286# CONFIG_IP_PNP_RARP is not set
287# CONFIG_NET_IPIP is not set
288# CONFIG_NET_IPGRE is not set
289# CONFIG_SYN_COOKIES is not set
290# CONFIG_INET_AH is not set
291# CONFIG_INET_ESP is not set
292# CONFIG_INET_IPCOMP is not set
293# CONFIG_INET_XFRM_TUNNEL is not set
294# CONFIG_INET_TUNNEL is not set
295# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
296# CONFIG_INET_XFRM_MODE_TUNNEL is not set
297# CONFIG_INET_XFRM_MODE_BEET is not set
298# CONFIG_INET_LRO is not set
299# CONFIG_INET_DIAG is not set
300# CONFIG_TCP_CONG_ADVANCED is not set
301CONFIG_TCP_CONG_CUBIC=y
302CONFIG_DEFAULT_TCP_CONG="cubic"
303# CONFIG_IPV6 is not set
304# CONFIG_INET6_XFRM_TUNNEL is not set
305# CONFIG_INET6_TUNNEL is not set
306# CONFIG_NETWORK_SECMARK is not set
307# CONFIG_NETFILTER is not set
308# CONFIG_BRIDGE is not set
309# CONFIG_VLAN_8021Q is not set
310# CONFIG_DECNET is not set
311# CONFIG_LLC2 is not set
312# CONFIG_IPX is not set
313# CONFIG_ATALK is not set
314# CONFIG_NET_SCHED is not set
315
316#
317# Network testing
318#
319# CONFIG_NET_PKTGEN is not set
320# CONFIG_HAMRADIO is not set
321# CONFIG_IRDA is not set
322# CONFIG_BT is not set
323
324#
325# Wireless
326#
327# CONFIG_CFG80211 is not set
328# CONFIG_WIRELESS_EXT is not set
329# CONFIG_IEEE80211 is not set
330# CONFIG_RFKILL is not set
331
332#
333# Device Drivers
334#
335
336#
337# Generic Driver Options
338#
339CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
340CONFIG_STANDALONE=y
341CONFIG_PREVENT_FIRMWARE_BUILD=y
342CONFIG_FW_LOADER=y
343# CONFIG_DEBUG_DRIVER is not set
344# CONFIG_DEBUG_DEVRES is not set
345# CONFIG_SYS_HYPERVISOR is not set
346# CONFIG_CONNECTOR is not set
347CONFIG_MTD=y
348# CONFIG_MTD_DEBUG is not set
349CONFIG_MTD_CONCAT=y
350CONFIG_MTD_PARTITIONS=y
351# CONFIG_MTD_REDBOOT_PARTS is not set
352CONFIG_MTD_CMDLINE_PARTS=y
353# CONFIG_MTD_AFS_PARTS is not set
354
355#
356# User Modules And Translation Layers
357#
358CONFIG_MTD_CHAR=y
359CONFIG_MTD_BLKDEVS=y
360CONFIG_MTD_BLOCK=y
361# CONFIG_FTL is not set
362# CONFIG_NFTL is not set
363# CONFIG_INFTL is not set
364# CONFIG_RFD_FTL is not set
365# CONFIG_SSFDC is not set
366# CONFIG_MTD_OOPS is not set
367
368#
369# RAM/ROM/Flash chip drivers
370#
371CONFIG_MTD_CFI=y
372CONFIG_MTD_JEDECPROBE=y
373CONFIG_MTD_GEN_PROBE=y
374# CONFIG_MTD_CFI_ADV_OPTIONS is not set
375CONFIG_MTD_MAP_BANK_WIDTH_1=y
376CONFIG_MTD_MAP_BANK_WIDTH_2=y
377CONFIG_MTD_MAP_BANK_WIDTH_4=y
378# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
379# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
380# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
381CONFIG_MTD_CFI_I1=y
382CONFIG_MTD_CFI_I2=y
383# CONFIG_MTD_CFI_I4 is not set
384# CONFIG_MTD_CFI_I8 is not set
385CONFIG_MTD_CFI_INTELEXT=y
386# CONFIG_MTD_CFI_AMDSTD is not set
387# CONFIG_MTD_CFI_STAA is not set
388CONFIG_MTD_CFI_UTIL=y
389CONFIG_MTD_RAM=y
390# CONFIG_MTD_ROM is not set
391# CONFIG_MTD_ABSENT is not set
392
393#
394# Mapping drivers for chip access
395#
396CONFIG_MTD_COMPLEX_MAPPINGS=y
397CONFIG_MTD_PHYSMAP=y
398CONFIG_MTD_PHYSMAP_START=0x0000000
399CONFIG_MTD_PHYSMAP_LEN=0
400CONFIG_MTD_PHYSMAP_BANKWIDTH=2
401# CONFIG_MTD_ARM_INTEGRATOR is not set
402# CONFIG_MTD_IMPA7 is not set
403CONFIG_MTD_PLATRAM=y
404
405#
406# Self-contained MTD device drivers
407#
408# CONFIG_MTD_SLRAM is not set
409# CONFIG_MTD_PHRAM is not set
410# CONFIG_MTD_MTDRAM is not set
411# CONFIG_MTD_BLOCK2MTD is not set
412
413#
414# Disk-On-Chip Device Drivers
415#
416# CONFIG_MTD_DOC2000 is not set
417# CONFIG_MTD_DOC2001 is not set
418# CONFIG_MTD_DOC2001PLUS is not set
419CONFIG_MTD_NAND=y
420# CONFIG_MTD_NAND_VERIFY_WRITE is not set
421# CONFIG_MTD_NAND_ECC_SMC is not set
422# CONFIG_MTD_NAND_MUSEUM_IDS is not set
423CONFIG_MTD_NAND_IDS=y
424CONFIG_MTD_NAND_AT91=y
425# CONFIG_MTD_NAND_NANDSIM is not set
426CONFIG_MTD_NAND_PLATFORM=y
427# CONFIG_MTD_ALAUDA is not set
428# CONFIG_MTD_ONENAND is not set
429
430#
431# UBI - Unsorted block images
432#
433# CONFIG_MTD_UBI is not set
434# CONFIG_PARPORT is not set
435CONFIG_BLK_DEV=y
436# CONFIG_BLK_DEV_COW_COMMON is not set
437CONFIG_BLK_DEV_LOOP=y
438# CONFIG_BLK_DEV_CRYPTOLOOP is not set
439# CONFIG_BLK_DEV_NBD is not set
440# CONFIG_BLK_DEV_UB is not set
441CONFIG_BLK_DEV_RAM=y
442CONFIG_BLK_DEV_RAM_COUNT=3
443CONFIG_BLK_DEV_RAM_SIZE=8192
444CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
445# CONFIG_CDROM_PKTCDVD is not set
446# CONFIG_ATA_OVER_ETH is not set
447# CONFIG_MISC_DEVICES is not set
448
449#
450# SCSI device support
451#
452# CONFIG_RAID_ATTRS is not set
453CONFIG_SCSI=y
454CONFIG_SCSI_DMA=y
455# CONFIG_SCSI_NETLINK is not set
456CONFIG_SCSI_PROC_FS=y
457
458#
459# SCSI support type (disk, tape, CD-ROM)
460#
461CONFIG_BLK_DEV_SD=y
462# CONFIG_CHR_DEV_ST is not set
463# CONFIG_CHR_DEV_OSST is not set
464# CONFIG_BLK_DEV_SR is not set
465# CONFIG_CHR_DEV_SG is not set
466# CONFIG_CHR_DEV_SCH is not set
467
468#
469# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
470#
471# CONFIG_SCSI_MULTI_LUN is not set
472# CONFIG_SCSI_CONSTANTS is not set
473# CONFIG_SCSI_LOGGING is not set
474# CONFIG_SCSI_SCAN_ASYNC is not set
475CONFIG_SCSI_WAIT_SCAN=m
476
477#
478# SCSI Transports
479#
480# CONFIG_SCSI_SPI_ATTRS is not set
481# CONFIG_SCSI_FC_ATTRS is not set
482# CONFIG_SCSI_ISCSI_ATTRS is not set
483# CONFIG_SCSI_SAS_LIBSAS is not set
484# CONFIG_SCSI_SRP_ATTRS is not set
485CONFIG_SCSI_LOWLEVEL=y
486# CONFIG_ISCSI_TCP is not set
487# CONFIG_SCSI_DEBUG is not set
488CONFIG_ATA=y
489# CONFIG_ATA_NONSTANDARD is not set
490# CONFIG_MD is not set
491CONFIG_NETDEVICES=y
492# CONFIG_NETDEVICES_MULTIQUEUE is not set
493# CONFIG_DUMMY is not set
494# CONFIG_BONDING is not set
495# CONFIG_EQUALIZER is not set
496# CONFIG_TUN is not set
497# CONFIG_VETH is not set
498CONFIG_PHYLIB=y
499
500#
501# MII PHY device drivers
502#
503# CONFIG_MARVELL_PHY is not set
504CONFIG_DAVICOM_PHY=y
505# CONFIG_QSEMI_PHY is not set
506# CONFIG_LXT_PHY is not set
507# CONFIG_CICADA_PHY is not set
508# CONFIG_VITESSE_PHY is not set
509# CONFIG_SMSC_PHY is not set
510# CONFIG_BROADCOM_PHY is not set
511# CONFIG_ICPLUS_PHY is not set
512# CONFIG_FIXED_PHY is not set
513# CONFIG_MDIO_BITBANG is not set
514CONFIG_NET_ETHERNET=y
515CONFIG_MII=y
516CONFIG_ARM_AT91_ETHER=y
517# CONFIG_AX88796 is not set
518# CONFIG_SMC91X is not set
519# CONFIG_DM9000 is not set
520# CONFIG_IBM_NEW_EMAC_ZMII is not set
521# CONFIG_IBM_NEW_EMAC_RGMII is not set
522# CONFIG_IBM_NEW_EMAC_TAH is not set
523# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
524# CONFIG_B44 is not set
525# CONFIG_NETDEV_1000 is not set
526# CONFIG_NETDEV_10000 is not set
527
528#
529# Wireless LAN
530#
531# CONFIG_WLAN_PRE80211 is not set
532# CONFIG_WLAN_80211 is not set
533
534#
535# USB Network Adapters
536#
537# CONFIG_USB_KAWETH is not set
538# CONFIG_USB_PEGASUS is not set
539# CONFIG_USB_USBNET is not set
540# CONFIG_WAN is not set
541# CONFIG_PPP is not set
542# CONFIG_SLIP is not set
543# CONFIG_NETPOLL is not set
544# CONFIG_NET_POLL_CONTROLLER is not set
545# CONFIG_ISDN is not set
546
547#
548# Input device support
549#
550CONFIG_INPUT=y
551# CONFIG_INPUT_FF_MEMLESS is not set
552# CONFIG_INPUT_POLLDEV is not set
553
554#
555# Userland interfaces
556#
557CONFIG_INPUT_MOUSEDEV=y
558# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
559CONFIG_INPUT_MOUSEDEV_SCREEN_X=640
560CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480
561# CONFIG_INPUT_JOYDEV is not set
562CONFIG_INPUT_EVDEV=y
563# CONFIG_INPUT_EVBUG is not set
564
565#
566# Input Device Drivers
567#
568CONFIG_INPUT_KEYBOARD=y
569# CONFIG_KEYBOARD_ATKBD is not set
570# CONFIG_KEYBOARD_SUNKBD is not set
571# CONFIG_KEYBOARD_LKKBD is not set
572# CONFIG_KEYBOARD_XTKBD is not set
573# CONFIG_KEYBOARD_NEWTON is not set
574# CONFIG_KEYBOARD_STOWAWAY is not set
575CONFIG_KEYBOARD_GPIO=y
576CONFIG_INPUT_MOUSE=y
577CONFIG_MOUSE_PS2=y
578CONFIG_MOUSE_PS2_ALPS=y
579CONFIG_MOUSE_PS2_LOGIPS2PP=y
580CONFIG_MOUSE_PS2_SYNAPTICS=y
581CONFIG_MOUSE_PS2_LIFEBOOK=y
582CONFIG_MOUSE_PS2_TRACKPOINT=y
583# CONFIG_MOUSE_PS2_TOUCHKIT is not set
584# CONFIG_MOUSE_SERIAL is not set
585# CONFIG_MOUSE_APPLETOUCH is not set
586# CONFIG_MOUSE_VSXXXAA is not set
587# CONFIG_MOUSE_GPIO is not set
588# CONFIG_INPUT_JOYSTICK is not set
589# CONFIG_INPUT_TABLET is not set
590CONFIG_INPUT_TOUCHSCREEN=y
591CONFIG_TOUCHSCREEN_ADS7846=y
592# CONFIG_TOUCHSCREEN_FUJITSU is not set
593# CONFIG_TOUCHSCREEN_GUNZE is not set
594# CONFIG_TOUCHSCREEN_ELO is not set
595# CONFIG_TOUCHSCREEN_MTOUCH is not set
596# CONFIG_TOUCHSCREEN_MK712 is not set
597# CONFIG_TOUCHSCREEN_PENMOUNT is not set
598# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
599# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
600# CONFIG_TOUCHSCREEN_UCB1400 is not set
601# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
602# CONFIG_INPUT_MISC is not set
603
604#
605# Hardware I/O ports
606#
607CONFIG_SERIO=y
608# CONFIG_SERIO_SERPORT is not set
609CONFIG_SERIO_LIBPS2=y
610# CONFIG_SERIO_RAW is not set
611# CONFIG_GAMEPORT is not set
612
613#
614# Character devices
615#
616CONFIG_VT=y
617CONFIG_VT_CONSOLE=y
618CONFIG_HW_CONSOLE=y
619# CONFIG_VT_HW_CONSOLE_BINDING is not set
620# CONFIG_SERIAL_NONSTANDARD is not set
621
622#
623# Serial drivers
624#
625# CONFIG_SERIAL_8250 is not set
626
627#
628# Non-8250 serial port support
629#
630CONFIG_SERIAL_ATMEL=y
631CONFIG_SERIAL_ATMEL_CONSOLE=y
632# CONFIG_SERIAL_ATMEL_TTYAT is not set
633CONFIG_SERIAL_CORE=y
634CONFIG_SERIAL_CORE_CONSOLE=y
635CONFIG_UNIX98_PTYS=y
636CONFIG_LEGACY_PTYS=y
637CONFIG_LEGACY_PTY_COUNT=256
638# CONFIG_IPMI_HANDLER is not set
639# CONFIG_HW_RANDOM is not set
640# CONFIG_NVRAM is not set
641# CONFIG_R3964 is not set
642# CONFIG_RAW_DRIVER is not set
643CONFIG_I2C=y
644CONFIG_I2C_BOARDINFO=y
645# CONFIG_I2C_CHARDEV is not set
646
647#
648# I2C Algorithms
649#
650# CONFIG_I2C_ALGOBIT is not set
651# CONFIG_I2C_ALGOPCF is not set
652# CONFIG_I2C_ALGOPCA is not set
653
654#
655# I2C Hardware Bus support
656#
657# CONFIG_I2C_GPIO is not set
658# CONFIG_I2C_PARPORT_LIGHT is not set
659# CONFIG_I2C_SIMTEC is not set
660# CONFIG_I2C_TINY_USB is not set
661
662#
663# Miscellaneous I2C Chip support
664#
665# CONFIG_I2C_DEBUG_CORE is not set
666# CONFIG_I2C_DEBUG_ALGO is not set
667# CONFIG_I2C_DEBUG_BUS is not set
668# CONFIG_I2C_DEBUG_CHIP is not set
669
670#
671# SPI support
672#
673CONFIG_SPI=y
674CONFIG_SPI_DEBUG=y
675CONFIG_SPI_MASTER=y
676
677#
678# SPI Master Controller Drivers
679#
680CONFIG_SPI_ATMEL=y
681
682#
683# SPI Protocol Masters
684#
685# CONFIG_SPI_AT25 is not set
686# CONFIG_SPI_TLE62X0 is not set
687# CONFIG_W1 is not set
688# CONFIG_POWER_SUPPLY is not set
689CONFIG_HWMON=y
690# CONFIG_HWMON_VID is not set
691# CONFIG_SENSORS_ADM1021 is not set
692# CONFIG_SENSORS_ADM1025 is not set
693# CONFIG_SENSORS_DS1621 is not set
694# CONFIG_SENSORS_GL518SM is not set
695# CONFIG_SENSORS_GL520SM is not set
696# CONFIG_SENSORS_IT87 is not set
697# CONFIG_SENSORS_LM63 is not set
698# CONFIG_SENSORS_LM75 is not set
699# CONFIG_SENSORS_LM77 is not set
700# CONFIG_SENSORS_LM78 is not set
701# CONFIG_SENSORS_LM83 is not set
702# CONFIG_SENSORS_LM87 is not set
703# CONFIG_SENSORS_LM90 is not set
704# CONFIG_SENSORS_LM92 is not set
705# CONFIG_SENSORS_LM93 is not set
706# CONFIG_SENSORS_MAX1619 is not set
707# CONFIG_SENSORS_PC87360 is not set
708# CONFIG_SENSORS_SMSC47M1 is not set
709# CONFIG_SENSORS_W83781D is not set
710# CONFIG_SENSORS_W83627HF is not set
711# CONFIG_SENSORS_W83627EHF is not set
712# CONFIG_HWMON_DEBUG_CHIP is not set
713# CONFIG_WATCHDOG is not set
714
715#
716# Sonics Silicon Backplane
717#
718CONFIG_SSB_POSSIBLE=y
719# CONFIG_SSB is not set
720
721#
722# Multifunction device drivers
723#
724# CONFIG_MFD_SM501 is not set
725
726#
727# Multimedia devices
728#
729# CONFIG_VIDEO_DEV is not set
730# CONFIG_DVB_CORE is not set
731# CONFIG_DAB is not set
732
733#
734# Graphics support
735#
736# CONFIG_VGASTATE is not set
737# CONFIG_VIDEO_OUTPUT_CONTROL is not set
738CONFIG_FB=y
739# CONFIG_FIRMWARE_EDID is not set
740# CONFIG_FB_DDC is not set
741CONFIG_FB_CFB_FILLRECT=y
742CONFIG_FB_CFB_COPYAREA=y
743CONFIG_FB_CFB_IMAGEBLIT=y
744# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
745# CONFIG_FB_SYS_FILLRECT is not set
746# CONFIG_FB_SYS_COPYAREA is not set
747# CONFIG_FB_SYS_IMAGEBLIT is not set
748# CONFIG_FB_SYS_FOPS is not set
749CONFIG_FB_DEFERRED_IO=y
750# CONFIG_FB_SVGALIB is not set
751# CONFIG_FB_MACMODES is not set
752# CONFIG_FB_BACKLIGHT is not set
753# CONFIG_FB_MODE_HELPERS is not set
754# CONFIG_FB_TILEBLITTING is not set
755
756#
757# Frame buffer hardware drivers
758#
759# CONFIG_FB_S1D13XXX is not set
760CONFIG_FB_S1D135XX=y
761# CONFIG_FB_VIRTUAL is not set
762CONFIG_BACKLIGHT_LCD_SUPPORT=y
763CONFIG_LCD_CLASS_DEVICE=y
764# CONFIG_LCD_LTV350QV is not set
765CONFIG_BACKLIGHT_CLASS_DEVICE=y
766# CONFIG_BACKLIGHT_CORGI is not set
767
768#
769# Display device support
770#
771CONFIG_DISPLAY_SUPPORT=y
772
773#
774# Display hardware drivers
775#
776
777#
778# Console display driver support
779#
780# CONFIG_VGA_CONSOLE is not set
781CONFIG_DUMMY_CONSOLE=y
782# CONFIG_FRAMEBUFFER_CONSOLE is not set
783CONFIG_LOGO=y
784# CONFIG_LOGO_LINUX_MONO is not set
785# CONFIG_LOGO_LINUX_VGA16 is not set
786CONFIG_LOGO_LINUX_CLUT224=y
787
788#
789# Sound
790#
791# CONFIG_SOUND is not set
792CONFIG_HID_SUPPORT=y
793CONFIG_HID=y
794CONFIG_HID_DEBUG=y
795# CONFIG_HIDRAW is not set
796
797#
798# USB Input Devices
799#
800CONFIG_USB_HID=y
801# CONFIG_USB_HIDINPUT_POWERBOOK is not set
802# CONFIG_USB_HIDDEV is not set
803CONFIG_USB_SUPPORT=y
804CONFIG_USB_ARCH_HAS_HCD=y
805CONFIG_USB_ARCH_HAS_OHCI=y
806# CONFIG_USB_ARCH_HAS_EHCI is not set
807CONFIG_USB=y
808CONFIG_USB_DEBUG=y
809
810#
811# Miscellaneous USB options
812#
813CONFIG_USB_DEVICEFS=y
814# CONFIG_USB_DEVICE_CLASS is not set
815
816#
817# USB Host Controller Drivers
818#
819# CONFIG_USB_ISP116X_HCD is not set
820CONFIG_USB_OHCI_HCD=y
821# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
822# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
823CONFIG_USB_OHCI_LITTLE_ENDIAN=y
824# CONFIG_USB_SL811_HCD is not set
825# CONFIG_USB_R8A66597_HCD is not set
826
827#
828# USB Device Class drivers
829#
830# CONFIG_USB_ACM is not set
831# CONFIG_USB_PRINTER is not set
832
833#
834# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
835#
836
837#
838# may also be needed; see USB_STORAGE Help for more information
839#
840CONFIG_USB_STORAGE=y
841# CONFIG_USB_STORAGE_DEBUG is not set
842# CONFIG_USB_STORAGE_FREECOM is not set
843# CONFIG_USB_STORAGE_ISD200 is not set
844# CONFIG_USB_STORAGE_DPCM is not set
845# CONFIG_USB_STORAGE_KARMA is not set
846# CONFIG_USB_LIBUSUAL is not set
847
848#
849# USB Imaging devices
850#
851# CONFIG_USB_MICROTEK is not set
852CONFIG_USB_MON=y
853
854#
855# USB port drivers
856#
857
858#
859# USB Serial Converter support
860#
861# CONFIG_USB_SERIAL is not set
862
863#
864# USB Miscellaneous drivers
865#
866# CONFIG_USB_EMI62 is not set
867# CONFIG_USB_EMI26 is not set
868# CONFIG_USB_LCD is not set
869# CONFIG_USB_BERRY_CHARGE is not set
870# CONFIG_USB_LED is not set
871# CONFIG_USB_CYPRESS_CY7C63 is not set
872# CONFIG_USB_CYTHERM is not set
873# CONFIG_USB_PHIDGET is not set
874# CONFIG_USB_IDMOUSE is not set
875# CONFIG_USB_FTDI_ELAN is not set
876# CONFIG_USB_APPLEDISPLAY is not set
877# CONFIG_USB_LD is not set
878# CONFIG_USB_TRANCEVIBRATOR is not set
879# CONFIG_USB_IOWARRIOR is not set
880
881#
882# USB DSL modem support
883#
884
885#
886# USB Gadget Support
887#
888CONFIG_USB_GADGET=y
889# CONFIG_USB_GADGET_DEBUG_FILES is not set
890# CONFIG_USB_GADGET_DEBUG_FS is not set
891CONFIG_USB_GADGET_SELECTED=y
892# CONFIG_USB_GADGET_AMD5536UDC is not set
893# CONFIG_USB_GADGET_ATMEL_USBA is not set
894# CONFIG_USB_GADGET_FSL_USB2 is not set
895# CONFIG_USB_GADGET_NET2280 is not set
896# CONFIG_USB_GADGET_PXA2XX is not set
897CONFIG_USB_GADGET_M66592=y
898CONFIG_USB_M66592=y
899# CONFIG_USB_GADGET_GOKU is not set
900# CONFIG_USB_GADGET_LH7A40X is not set
901# CONFIG_USB_GADGET_OMAP is not set
902# CONFIG_USB_GADGET_S3C2410 is not set
903# CONFIG_USB_GADGET_AT91 is not set
904# CONFIG_USB_GADGET_DUMMY_HCD is not set
905CONFIG_USB_GADGET_DUALSPEED=y
906# CONFIG_USB_ZERO is not set
907# CONFIG_USB_ETH is not set
908# CONFIG_USB_GADGETFS is not set
909CONFIG_USB_FILE_STORAGE=y
910# CONFIG_USB_FILE_STORAGE_TEST is not set
911# CONFIG_USB_G_SERIAL is not set
912# CONFIG_USB_MIDI_GADGET is not set
913CONFIG_MMC=y
914CONFIG_MMC_DEBUG=y
915# CONFIG_MMC_UNSAFE_RESUME is not set
916
917#
918# MMC/SD Card Drivers
919#
920CONFIG_MMC_BLOCK=y
921# CONFIG_MMC_BLOCK_BOUNCE is not set
922# CONFIG_SDIO_UART is not set
923
924#
925# MMC/SD Host Controller Drivers
926#
927CONFIG_MMC_AT91=y
928CONFIG_NEW_LEDS=y
929CONFIG_LEDS_CLASS=y
930
931#
932# LED drivers
933#
934CONFIG_LEDS_GPIO=y
935
936#
937# LED Triggers
938#
939CONFIG_LEDS_TRIGGERS=y
940CONFIG_LEDS_TRIGGER_TIMER=y
941CONFIG_LEDS_TRIGGER_HEARTBEAT=y
942CONFIG_RTC_LIB=y
943CONFIG_RTC_CLASS=y
944CONFIG_RTC_HCTOSYS=y
945CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
946# CONFIG_RTC_DEBUG is not set
947
948#
949# RTC interfaces
950#
951CONFIG_RTC_INTF_SYSFS=y
952CONFIG_RTC_INTF_PROC=y
953CONFIG_RTC_INTF_DEV=y
954# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
955# CONFIG_RTC_DRV_TEST is not set
956
957#
958# I2C RTC drivers
959#
960# CONFIG_RTC_DRV_DS1307 is not set
961# CONFIG_RTC_DRV_DS1374 is not set
962# CONFIG_RTC_DRV_DS1672 is not set
963# CONFIG_RTC_DRV_MAX6900 is not set
964# CONFIG_RTC_DRV_RS5C372 is not set
965# CONFIG_RTC_DRV_ISL1208 is not set
966# CONFIG_RTC_DRV_X1205 is not set
967# CONFIG_RTC_DRV_PCF8563 is not set
968# CONFIG_RTC_DRV_PCF8583 is not set
969# CONFIG_RTC_DRV_M41T80 is not set
970
971#
972# SPI RTC drivers
973#
974# CONFIG_RTC_DRV_RS5C348 is not set
975# CONFIG_RTC_DRV_MAX6902 is not set
976
977#
978# Platform RTC drivers
979#
980# CONFIG_RTC_DRV_CMOS is not set
981# CONFIG_RTC_DRV_DS1553 is not set
982# CONFIG_RTC_DRV_STK17TA8 is not set
983# CONFIG_RTC_DRV_DS1742 is not set
984# CONFIG_RTC_DRV_M48T86 is not set
985# CONFIG_RTC_DRV_M48T59 is not set
986# CONFIG_RTC_DRV_V3020 is not set
987
988#
989# on-CPU RTC drivers
990#
991CONFIG_RTC_DRV_AT91RM9200=y
992
993#
994# File systems
995#
996CONFIG_EXT2_FS=y
997CONFIG_EXT2_FS_XATTR=y
998# CONFIG_EXT2_FS_POSIX_ACL is not set
999# CONFIG_EXT2_FS_SECURITY is not set
1000# CONFIG_EXT2_FS_XIP is not set
1001CONFIG_EXT3_FS=y
1002CONFIG_EXT3_FS_XATTR=y
1003# CONFIG_EXT3_FS_POSIX_ACL is not set
1004# CONFIG_EXT3_FS_SECURITY is not set
1005CONFIG_JBD=y
1006# CONFIG_JBD_DEBUG is not set
1007CONFIG_FS_MBCACHE=y
1008CONFIG_REISERFS_FS=y
1009# CONFIG_REISERFS_CHECK is not set
1010# CONFIG_REISERFS_PROC_INFO is not set
1011# CONFIG_REISERFS_FS_XATTR is not set
1012# CONFIG_JFS_FS is not set
1013# CONFIG_FS_POSIX_ACL is not set
1014# CONFIG_XFS_FS is not set
1015# CONFIG_OCFS2_FS is not set
1016# CONFIG_MINIX_FS is not set
1017# CONFIG_ROMFS_FS is not set
1018CONFIG_INOTIFY=y
1019CONFIG_INOTIFY_USER=y
1020# CONFIG_QUOTA is not set
1021CONFIG_DNOTIFY=y
1022# CONFIG_AUTOFS_FS is not set
1023# CONFIG_AUTOFS4_FS is not set
1024# CONFIG_FUSE_FS is not set
1025
1026#
1027# CD-ROM/DVD Filesystems
1028#
1029CONFIG_ISO9660_FS=y
1030CONFIG_JOLIET=y
1031CONFIG_ZISOFS=y
1032CONFIG_UDF_FS=y
1033CONFIG_UDF_NLS=y
1034
1035#
1036# DOS/FAT/NT Filesystems
1037#
1038CONFIG_FAT_FS=y
1039CONFIG_MSDOS_FS=y
1040CONFIG_VFAT_FS=y
1041CONFIG_FAT_DEFAULT_CODEPAGE=437
1042CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1043# CONFIG_NTFS_FS is not set
1044
1045#
1046# Pseudo filesystems
1047#
1048CONFIG_PROC_FS=y
1049CONFIG_PROC_SYSCTL=y
1050CONFIG_SYSFS=y
1051CONFIG_TMPFS=y
1052# CONFIG_TMPFS_POSIX_ACL is not set
1053# CONFIG_HUGETLB_PAGE is not set
1054
1055#
1056# Miscellaneous filesystems
1057#
1058# CONFIG_HFSPLUS_FS is not set
1059CONFIG_JFFS2_FS=y
1060CONFIG_JFFS2_FS_DEBUG=1
1061CONFIG_JFFS2_FS_WRITEBUFFER=y
1062# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1063CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1064CONFIG_JFFS2_ZLIB=y
1065# CONFIG_JFFS2_LZO is not set
1066CONFIG_JFFS2_RTIME=y
1067CONFIG_JFFS2_RUBIN=y
1068# CONFIG_JFFS2_CMODE_NONE is not set
1069CONFIG_JFFS2_CMODE_PRIORITY=y
1070# CONFIG_JFFS2_CMODE_SIZE is not set
1071# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1072CONFIG_CRAMFS=y
1073# CONFIG_VXFS_FS is not set
1074# CONFIG_HPFS_FS is not set
1075# CONFIG_QNX4FS_FS is not set
1076# CONFIG_SYSV_FS is not set
1077# CONFIG_UFS_FS is not set
1078CONFIG_NETWORK_FILESYSTEMS=y
1079# CONFIG_NFS_FS is not set
1080# CONFIG_NFSD is not set
1081# CONFIG_SMB_FS is not set
1082# CONFIG_CIFS is not set
1083# CONFIG_NCP_FS is not set
1084# CONFIG_CODA_FS is not set
1085
1086#
1087# Partition Types
1088#
1089CONFIG_PARTITION_ADVANCED=y
1090# CONFIG_ACORN_PARTITION is not set
1091# CONFIG_OSF_PARTITION is not set
1092# CONFIG_AMIGA_PARTITION is not set
1093# CONFIG_ATARI_PARTITION is not set
1094CONFIG_MAC_PARTITION=y
1095CONFIG_MSDOS_PARTITION=y
1096# CONFIG_BSD_DISKLABEL is not set
1097# CONFIG_MINIX_SUBPARTITION is not set
1098# CONFIG_SOLARIS_X86_PARTITION is not set
1099# CONFIG_UNIXWARE_DISKLABEL is not set
1100# CONFIG_LDM_PARTITION is not set
1101# CONFIG_SGI_PARTITION is not set
1102# CONFIG_ULTRIX_PARTITION is not set
1103# CONFIG_SUN_PARTITION is not set
1104# CONFIG_KARMA_PARTITION is not set
1105# CONFIG_EFI_PARTITION is not set
1106# CONFIG_SYSV68_PARTITION is not set
1107CONFIG_NLS=y
1108CONFIG_NLS_DEFAULT="iso8859-1"
1109CONFIG_NLS_CODEPAGE_437=y
1110# CONFIG_NLS_CODEPAGE_737 is not set
1111# CONFIG_NLS_CODEPAGE_775 is not set
1112# CONFIG_NLS_CODEPAGE_850 is not set
1113# CONFIG_NLS_CODEPAGE_852 is not set
1114# CONFIG_NLS_CODEPAGE_855 is not set
1115# CONFIG_NLS_CODEPAGE_857 is not set
1116# CONFIG_NLS_CODEPAGE_860 is not set
1117# CONFIG_NLS_CODEPAGE_861 is not set
1118# CONFIG_NLS_CODEPAGE_862 is not set
1119# CONFIG_NLS_CODEPAGE_863 is not set
1120# CONFIG_NLS_CODEPAGE_864 is not set
1121# CONFIG_NLS_CODEPAGE_865 is not set
1122# CONFIG_NLS_CODEPAGE_866 is not set
1123# CONFIG_NLS_CODEPAGE_869 is not set
1124# CONFIG_NLS_CODEPAGE_936 is not set
1125# CONFIG_NLS_CODEPAGE_950 is not set
1126# CONFIG_NLS_CODEPAGE_932 is not set
1127# CONFIG_NLS_CODEPAGE_949 is not set
1128# CONFIG_NLS_CODEPAGE_874 is not set
1129# CONFIG_NLS_ISO8859_8 is not set
1130# CONFIG_NLS_CODEPAGE_1250 is not set
1131# CONFIG_NLS_CODEPAGE_1251 is not set
1132# CONFIG_NLS_ASCII is not set
1133CONFIG_NLS_ISO8859_1=y
1134# CONFIG_NLS_ISO8859_2 is not set
1135# CONFIG_NLS_ISO8859_3 is not set
1136# CONFIG_NLS_ISO8859_4 is not set
1137# CONFIG_NLS_ISO8859_5 is not set
1138# CONFIG_NLS_ISO8859_6 is not set
1139# CONFIG_NLS_ISO8859_7 is not set
1140# CONFIG_NLS_ISO8859_9 is not set
1141# CONFIG_NLS_ISO8859_13 is not set
1142# CONFIG_NLS_ISO8859_14 is not set
1143# CONFIG_NLS_ISO8859_15 is not set
1144# CONFIG_NLS_KOI8_R is not set
1145# CONFIG_NLS_KOI8_U is not set
1146# CONFIG_NLS_UTF8 is not set
1147CONFIG_INSTRUMENTATION=y
1148# CONFIG_PROFILING is not set
1149# CONFIG_MARKERS is not set
1150
1151#
1152# Kernel hacking
1153#
1154# CONFIG_PRINTK_TIME is not set
1155CONFIG_ENABLE_WARN_DEPRECATED=y
1156# CONFIG_ENABLE_MUST_CHECK is not set
1157# CONFIG_MAGIC_SYSRQ is not set
1158# CONFIG_UNUSED_SYMBOLS is not set
1159CONFIG_DEBUG_FS=y
1160# CONFIG_HEADERS_CHECK is not set
1161CONFIG_DEBUG_KERNEL=y
1162# CONFIG_DEBUG_SHIRQ is not set
1163CONFIG_DETECT_SOFTLOCKUP=y
1164CONFIG_SCHED_DEBUG=y
1165# CONFIG_SCHEDSTATS is not set
1166# CONFIG_TIMER_STATS is not set
1167CONFIG_SLUB_DEBUG_ON=y
1168# CONFIG_DEBUG_RT_MUTEXES is not set
1169# CONFIG_RT_MUTEX_TESTER is not set
1170# CONFIG_DEBUG_SPINLOCK is not set
1171# CONFIG_DEBUG_MUTEXES is not set
1172# CONFIG_DEBUG_LOCK_ALLOC is not set
1173# CONFIG_PROVE_LOCKING is not set
1174# CONFIG_LOCK_STAT is not set
1175# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1176# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1177CONFIG_DEBUG_KOBJECT=y
1178CONFIG_DEBUG_BUGVERBOSE=y
1179CONFIG_DEBUG_INFO=y
1180# CONFIG_DEBUG_VM is not set
1181CONFIG_DEBUG_LIST=y
1182# CONFIG_DEBUG_SG is not set
1183CONFIG_FRAME_POINTER=y
1184CONFIG_FORCED_INLINING=y
1185# CONFIG_BOOT_PRINTK_DELAY is not set
1186# CONFIG_RCU_TORTURE_TEST is not set
1187# CONFIG_FAULT_INJECTION is not set
1188# CONFIG_SAMPLES is not set
1189CONFIG_DEBUG_USER=y
1190CONFIG_DEBUG_ERRORS=y
1191CONFIG_DEBUG_LL=y
1192# CONFIG_DEBUG_ICEDCC is not set
1193
1194#
1195# Security options
1196#
1197# CONFIG_KEYS is not set
1198# CONFIG_SECURITY is not set
1199# CONFIG_CRYPTO is not set
1200
1201#
1202# Library routines
1203#
1204CONFIG_BITREVERSE=y
1205# CONFIG_CRC_CCITT is not set
1206# CONFIG_CRC16 is not set
1207# CONFIG_CRC_ITU_T is not set
1208CONFIG_CRC32=y
1209# CONFIG_CRC7 is not set
1210# CONFIG_LIBCRC32C is not set
1211CONFIG_ZLIB_INFLATE=y
1212CONFIG_ZLIB_DEFLATE=y
1213CONFIG_PLIST=y
1214CONFIG_HAS_IOMEM=y
1215CONFIG_HAS_IOPORT=y
1216CONFIG_HAS_DMA=y
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S
index 283e14fff993..95f1c121cb30 100644
--- a/arch/arm/kernel/calls.S
+++ b/arch/arm/kernel/calls.S
@@ -359,9 +359,11 @@
359 CALL(sys_kexec_load) 359 CALL(sys_kexec_load)
360 CALL(sys_utimensat) 360 CALL(sys_utimensat)
361 CALL(sys_signalfd) 361 CALL(sys_signalfd)
362/* 350 */ CALL(sys_ni_syscall) 362/* 350 */ CALL(sys_timerfd_create)
363 CALL(sys_eventfd) 363 CALL(sys_eventfd)
364 CALL(sys_fallocate) 364 CALL(sys_fallocate)
365 CALL(sys_timerfd_settime)
366 CALL(sys_timerfd_gettime)
365#ifndef syscalls_counted 367#ifndef syscalls_counted
366.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls 368.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls
367#define syscalls_counted 369#define syscalls_counted
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 6fd1460111ec..7dca225752c1 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -209,14 +209,12 @@ __irq_svc:
209 209
210 irq_handler 210 irq_handler
211#ifdef CONFIG_PREEMPT 211#ifdef CONFIG_PREEMPT
212 str r8, [tsk, #TI_PREEMPT] @ restore preempt count
212 ldr r0, [tsk, #TI_FLAGS] @ get flags 213 ldr r0, [tsk, #TI_FLAGS] @ get flags
214 teq r8, #0 @ if preempt count != 0
215 movne r0, #0 @ force flags to 0
213 tst r0, #_TIF_NEED_RESCHED 216 tst r0, #_TIF_NEED_RESCHED
214 blne svc_preempt 217 blne svc_preempt
215preempt_return:
216 ldr r0, [tsk, #TI_PREEMPT] @ read preempt value
217 str r8, [tsk, #TI_PREEMPT] @ restore preempt count
218 teq r0, r7
219 strne r0, [r0, -r0] @ bug()
220#endif 218#endif
221 ldr r0, [sp, #S_PSR] @ irqs are already disabled 219 ldr r0, [sp, #S_PSR] @ irqs are already disabled
222 msr spsr_cxsf, r0 220 msr spsr_cxsf, r0
@@ -230,19 +228,11 @@ preempt_return:
230 228
231#ifdef CONFIG_PREEMPT 229#ifdef CONFIG_PREEMPT
232svc_preempt: 230svc_preempt:
233 teq r8, #0 @ was preempt count = 0 231 mov r8, lr
234 ldreq r6, .LCirq_stat
235 movne pc, lr @ no
236 ldr r0, [r6, #4] @ local_irq_count
237 ldr r1, [r6, #8] @ local_bh_count
238 adds r0, r0, r1
239 movne pc, lr
240 mov r7, #0 @ preempt_schedule_irq
241 str r7, [tsk, #TI_PREEMPT] @ expects preempt_count == 0
2421: bl preempt_schedule_irq @ irq en/disable is done inside 2321: bl preempt_schedule_irq @ irq en/disable is done inside
243 ldr r0, [tsk, #TI_FLAGS] @ get new tasks TI_FLAGS 233 ldr r0, [tsk, #TI_FLAGS] @ get new tasks TI_FLAGS
244 tst r0, #_TIF_NEED_RESCHED 234 tst r0, #_TIF_NEED_RESCHED
245 beq preempt_return @ go again 235 moveq pc, r8 @ go again
246 b 1b 236 b 1b
247#endif 237#endif
248 238
@@ -333,10 +323,6 @@ __pabt_svc:
333#endif 323#endif
334.LCfp: 324.LCfp:
335 .word fp_enter 325 .word fp_enter
336#ifdef CONFIG_PREEMPT
337.LCirq_stat:
338 .word irq_stat
339#endif
340 326
341/* 327/*
342 * User mode handlers 328 * User mode handlers
diff --git a/arch/arm/kernel/head-common.S b/arch/arm/kernel/head-common.S
index 50f667febe29..7e9c00a8a412 100644
--- a/arch/arm/kernel/head-common.S
+++ b/arch/arm/kernel/head-common.S
@@ -75,8 +75,13 @@ __error_p:
75#ifdef CONFIG_DEBUG_LL 75#ifdef CONFIG_DEBUG_LL
76 adr r0, str_p1 76 adr r0, str_p1
77 bl printascii 77 bl printascii
78 mov r0, r9
79 bl printhex8
80 adr r0, str_p2
81 bl printascii
78 b __error 82 b __error
79str_p1: .asciz "\nError: unrecognized/unsupported processor variant.\n" 83str_p1: .asciz "\nError: unrecognized/unsupported processor variant (0x"
84str_p2: .asciz ").\n"
80 .align 85 .align
81#endif 86#endif
82 87
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index 074dcd5d9a7e..0fc07b6db749 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -12,18 +12,28 @@ config ARCH_AT91RM9200
12 12
13config ARCH_AT91SAM9260 13config ARCH_AT91SAM9260
14 bool "AT91SAM9260 or AT91SAM9XE" 14 bool "AT91SAM9260 or AT91SAM9XE"
15 select GENERIC_TIME
16 select GENERIC_CLOCKEVENTS
15 17
16config ARCH_AT91SAM9261 18config ARCH_AT91SAM9261
17 bool "AT91SAM9261" 19 bool "AT91SAM9261"
20 select GENERIC_TIME
21 select GENERIC_CLOCKEVENTS
18 22
19config ARCH_AT91SAM9263 23config ARCH_AT91SAM9263
20 bool "AT91SAM9263" 24 bool "AT91SAM9263"
25 select GENERIC_TIME
26 select GENERIC_CLOCKEVENTS
21 27
22config ARCH_AT91SAM9RL 28config ARCH_AT91SAM9RL
23 bool "AT91SAM9RL" 29 bool "AT91SAM9RL"
30 select GENERIC_TIME
31 select GENERIC_CLOCKEVENTS
24 32
25config ARCH_AT91CAP9 33config ARCH_AT91CAP9
26 bool "AT91CAP9" 34 bool "AT91CAP9"
35 select GENERIC_TIME
36 select GENERIC_CLOCKEVENTS
27 37
28config ARCH_AT91X40 38config ARCH_AT91X40
29 bool "AT91x40" 39 bool "AT91x40"
@@ -109,6 +119,13 @@ config MACH_KAFA
109 help 119 help
110 Select this if you are using Sperry-Sun's KAFA board. 120 Select this if you are using Sperry-Sun's KAFA board.
111 121
122config MACH_ECBAT91
123 bool "emQbit ECB_AT91 SBC"
124 depends on ARCH_AT91RM9200
125 help
126 Select this if you are using emQbit's ECB_AT91 board.
127 <http://wiki.emqbit.com/free-ecb-at91>
128
112endif 129endif
113 130
114# ---------------------------------------------------------- 131# ----------------------------------------------------------
@@ -133,6 +150,20 @@ config MACH_AT91SAM9260EK
133 Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit 150 Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit
134 <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933> 151 <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933>
135 152
153config MACH_CAM60
154 bool "KwikByte KB9260 (CAM60) board"
155 depends on ARCH_AT91SAM9260
156 help
157 Select this if you are using KwikByte's KB9260 (CAM60) board based on the Atmel AT91SAM9260.
158 <http://www.kwikbyte.com/KB9260.html>
159
160config MACH_SAM9_L9260
161 bool "Olimex SAM9-L9260 board"
162 depends on ARCH_AT91SAM9260
163 help
164 Select this if you are using Olimex's SAM9-L9260 board based on the Atmel AT91SAM9260.
165 <http://www.olimex.com/dev/sam9-L9260.html>
166
136endif 167endif
137 168
138# ---------------------------------------------------------- 169# ----------------------------------------------------------
@@ -216,7 +247,7 @@ comment "AT91 Board Options"
216 247
217config MTD_AT91_DATAFLASH_CARD 248config MTD_AT91_DATAFLASH_CARD
218 bool "Enable DataFlash Card support" 249 bool "Enable DataFlash Card support"
219 depends on (ARCH_AT91RM9200DK || MACH_AT91RM9200EK || MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9263EK || MACH_AT91CAP9ADK) 250 depends on (ARCH_AT91RM9200DK || MACH_AT91RM9200EK || MACH_AT91SAM9260EK || MACH_AT91SAM9261EK || MACH_AT91SAM9263EK || MACH_AT91CAP9ADK || MACH_SAM9_L9260 || MACH_ECBAT91)
220 help 251 help
221 Enable support for the DataFlash card. 252 Enable support for the DataFlash card.
222 253
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
index bf5f293dccf8..8d9bc0153b18 100644
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
@@ -29,9 +29,12 @@ obj-$(CONFIG_MACH_KB9200) += board-kb9202.o
29obj-$(CONFIG_MACH_ATEB9200) += board-eb9200.o 29obj-$(CONFIG_MACH_ATEB9200) += board-eb9200.o
30obj-$(CONFIG_MACH_KAFA) += board-kafa.o 30obj-$(CONFIG_MACH_KAFA) += board-kafa.o
31obj-$(CONFIG_MACH_PICOTUX2XX) += board-picotux200.o 31obj-$(CONFIG_MACH_PICOTUX2XX) += board-picotux200.o
32obj-$(CONFIG_MACH_ECBAT91) += board-ecbat91.o
32 33
33# AT91SAM9260 board-specific support 34# AT91SAM9260 board-specific support
34obj-$(CONFIG_MACH_AT91SAM9260EK) += board-sam9260ek.o 35obj-$(CONFIG_MACH_AT91SAM9260EK) += board-sam9260ek.o
36obj-$(CONFIG_MACH_CAM60) += board-cam60.o
37obj-$(CONFIG_MACH_SAM9_L9260) += board-sam9-l9260.o
35 38
36# AT91SAM9261 board-specific support 39# AT91SAM9261 board-specific support
37obj-$(CONFIG_MACH_AT91SAM9261EK) += board-sam9261ek.o 40obj-$(CONFIG_MACH_AT91SAM9261EK) += board-sam9261ek.o
diff --git a/arch/arm/mach-at91/at91cap9.c b/arch/arm/mach-at91/at91cap9.c
index 48d27d8000b0..933fa8f55cbc 100644
--- a/arch/arm/mach-at91/at91cap9.c
+++ b/arch/arm/mach-at91/at91cap9.c
@@ -13,12 +13,14 @@
13 */ 13 */
14 14
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/pm.h>
16 17
17#include <asm/mach/arch.h> 18#include <asm/mach/arch.h>
18#include <asm/mach/map.h> 19#include <asm/mach/map.h>
19#include <asm/arch/at91cap9.h> 20#include <asm/arch/at91cap9.h>
20#include <asm/arch/at91_pmc.h> 21#include <asm/arch/at91_pmc.h>
21#include <asm/arch/at91_rstc.h> 22#include <asm/arch/at91_rstc.h>
23#include <asm/arch/at91_shdwc.h>
22 24
23#include "generic.h" 25#include "generic.h"
24#include "clock.h" 26#include "clock.h"
@@ -288,6 +290,12 @@ static void at91cap9_reset(void)
288 at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST); 290 at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
289} 291}
290 292
293static void at91cap9_poweroff(void)
294{
295 at91_sys_write(AT91_SHDW_CR, AT91_SHDW_KEY | AT91_SHDW_SHDW);
296}
297
298
291/* -------------------------------------------------------------------- 299/* --------------------------------------------------------------------
292 * AT91CAP9 processor initialization 300 * AT91CAP9 processor initialization
293 * -------------------------------------------------------------------- */ 301 * -------------------------------------------------------------------- */
@@ -298,6 +306,7 @@ void __init at91cap9_initialize(unsigned long main_clock)
298 iotable_init(at91cap9_io_desc, ARRAY_SIZE(at91cap9_io_desc)); 306 iotable_init(at91cap9_io_desc, ARRAY_SIZE(at91cap9_io_desc));
299 307
300 at91_arch_reset = at91cap9_reset; 308 at91_arch_reset = at91cap9_reset;
309 pm_power_off = at91cap9_poweroff;
301 at91_extern_irq = (1 << AT91CAP9_ID_IRQ0) | (1 << AT91CAP9_ID_IRQ1); 310 at91_extern_irq = (1 << AT91CAP9_ID_IRQ0) | (1 << AT91CAP9_ID_IRQ1);
302 311
303 /* Init clock subsystem */ 312 /* Init clock subsystem */
diff --git a/arch/arm/mach-at91/at91cap9_devices.c b/arch/arm/mach-at91/at91cap9_devices.c
index c50fad9cd143..f1a80d74a4b6 100644
--- a/arch/arm/mach-at91/at91cap9_devices.c
+++ b/arch/arm/mach-at91/at91cap9_devices.c
@@ -16,15 +16,15 @@
16 16
17#include <linux/dma-mapping.h> 17#include <linux/dma-mapping.h>
18#include <linux/platform_device.h> 18#include <linux/platform_device.h>
19#include <linux/mtd/physmap.h> 19#include <linux/i2c-gpio.h>
20 20
21#include <video/atmel_lcdc.h> 21#include <video/atmel_lcdc.h>
22 22
23#include <asm/arch/board.h> 23#include <asm/arch/board.h>
24#include <asm/arch/gpio.h> 24#include <asm/arch/gpio.h>
25#include <asm/arch/at91cap9.h> 25#include <asm/arch/at91cap9.h>
26#include <asm/arch/at91sam926x_mc.h>
27#include <asm/arch/at91cap9_matrix.h> 26#include <asm/arch/at91cap9_matrix.h>
27#include <asm/arch/at91sam9_smc.h>
28 28
29#include "generic.h" 29#include "generic.h"
30 30
@@ -283,10 +283,15 @@ static struct at91_nand_data nand_data;
283#define NAND_BASE AT91_CHIPSELECT_3 283#define NAND_BASE AT91_CHIPSELECT_3
284 284
285static struct resource nand_resources[] = { 285static struct resource nand_resources[] = {
286 { 286 [0] = {
287 .start = NAND_BASE, 287 .start = NAND_BASE,
288 .end = NAND_BASE + SZ_256M - 1, 288 .end = NAND_BASE + SZ_256M - 1,
289 .flags = IORESOURCE_MEM, 289 .flags = IORESOURCE_MEM,
290 },
291 [1] = {
292 .start = AT91_BASE_SYS + AT91_ECC,
293 .end = AT91_BASE_SYS + AT91_ECC + SZ_512 - 1,
294 .flags = IORESOURCE_MEM,
290 } 295 }
291}; 296};
292 297
@@ -344,6 +349,7 @@ void __init at91_add_device_nand(struct at91_nand_data *data)
344void __init at91_add_device_nand(struct at91_nand_data *data) {} 349void __init at91_add_device_nand(struct at91_nand_data *data) {}
345#endif 350#endif
346 351
352
347/* -------------------------------------------------------------------- 353/* --------------------------------------------------------------------
348 * TWI (i2c) 354 * TWI (i2c)
349 * -------------------------------------------------------------------- */ 355 * -------------------------------------------------------------------- */
@@ -532,13 +538,59 @@ void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
532 538
533 539
534/* -------------------------------------------------------------------- 540/* --------------------------------------------------------------------
541 * Timer/Counter block
542 * -------------------------------------------------------------------- */
543
544#ifdef CONFIG_ATMEL_TCLIB
545
546static struct resource tcb_resources[] = {
547 [0] = {
548 .start = AT91CAP9_BASE_TCB0,
549 .end = AT91CAP9_BASE_TCB0 + SZ_16K - 1,
550 .flags = IORESOURCE_MEM,
551 },
552 [1] = {
553 .start = AT91CAP9_ID_TCB,
554 .end = AT91CAP9_ID_TCB,
555 .flags = IORESOURCE_IRQ,
556 },
557};
558
559static struct platform_device at91cap9_tcb_device = {
560 .name = "atmel_tcb",
561 .id = 0,
562 .resource = tcb_resources,
563 .num_resources = ARRAY_SIZE(tcb_resources),
564};
565
566static void __init at91_add_device_tc(void)
567{
568 /* this chip has one clock and irq for all three TC channels */
569 at91_clock_associate("tcb_clk", &at91cap9_tcb_device.dev, "t0_clk");
570 platform_device_register(&at91cap9_tcb_device);
571}
572#else
573static void __init at91_add_device_tc(void) { }
574#endif
575
576
577/* --------------------------------------------------------------------
535 * RTT 578 * RTT
536 * -------------------------------------------------------------------- */ 579 * -------------------------------------------------------------------- */
537 580
581static struct resource rtt_resources[] = {
582 {
583 .start = AT91_BASE_SYS + AT91_RTT,
584 .end = AT91_BASE_SYS + AT91_RTT + SZ_16 - 1,
585 .flags = IORESOURCE_MEM,
586 }
587};
588
538static struct platform_device at91cap9_rtt_device = { 589static struct platform_device at91cap9_rtt_device = {
539 .name = "at91_rtt", 590 .name = "at91_rtt",
540 .id = -1, 591 .id = 0,
541 .num_resources = 0, 592 .resource = rtt_resources,
593 .num_resources = ARRAY_SIZE(rtt_resources),
542}; 594};
543 595
544static void __init at91_add_device_rtt(void) 596static void __init at91_add_device_rtt(void)
@@ -990,7 +1042,7 @@ static inline void configure_usart2_pins(unsigned pins)
990 at91_set_B_periph(AT91_PIN_PD6, 0); /* CTS2 */ 1042 at91_set_B_periph(AT91_PIN_PD6, 0); /* CTS2 */
991} 1043}
992 1044
993static struct platform_device *at91_uarts[ATMEL_MAX_UART]; /* the UARTs to use */ 1045static struct platform_device *__initdata at91_uarts[ATMEL_MAX_UART]; /* the UARTs to use */
994struct platform_device *atmel_default_console_device; /* the serial console device */ 1046struct platform_device *atmel_default_console_device; /* the serial console device */
995 1047
996void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) 1048void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins)
@@ -1031,8 +1083,6 @@ void __init at91_set_serial_console(unsigned portnr)
1031{ 1083{
1032 if (portnr < ATMEL_MAX_UART) 1084 if (portnr < ATMEL_MAX_UART)
1033 atmel_default_console_device = at91_uarts[portnr]; 1085 atmel_default_console_device = at91_uarts[portnr];
1034 if (!atmel_default_console_device)
1035 printk(KERN_INFO "AT91: No default serial console defined.\n");
1036} 1086}
1037 1087
1038void __init at91_add_device_serial(void) 1088void __init at91_add_device_serial(void)
@@ -1043,6 +1093,9 @@ void __init at91_add_device_serial(void)
1043 if (at91_uarts[i]) 1093 if (at91_uarts[i])
1044 platform_device_register(at91_uarts[i]); 1094 platform_device_register(at91_uarts[i]);
1045 } 1095 }
1096
1097 if (!atmel_default_console_device)
1098 printk(KERN_INFO "AT91: No default serial console defined.\n");
1046} 1099}
1047#else 1100#else
1048void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {} 1101void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {}
@@ -1060,6 +1113,7 @@ static int __init at91_add_standard_devices(void)
1060{ 1113{
1061 at91_add_device_rtt(); 1114 at91_add_device_rtt();
1062 at91_add_device_watchdog(); 1115 at91_add_device_watchdog();
1116 at91_add_device_tc();
1063 return 0; 1117 return 0;
1064} 1118}
1065 1119
diff --git a/arch/arm/mach-at91/at91rm9200_devices.c b/arch/arm/mach-at91/at91rm9200_devices.c
index ef6aeb86e980..de19bee83f75 100644
--- a/arch/arm/mach-at91/at91rm9200_devices.c
+++ b/arch/arm/mach-at91/at91rm9200_devices.c
@@ -577,6 +577,90 @@ void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
577 577
578 578
579/* -------------------------------------------------------------------- 579/* --------------------------------------------------------------------
580 * Timer/Counter blocks
581 * -------------------------------------------------------------------- */
582
583#ifdef CONFIG_ATMEL_TCLIB
584
585static struct resource tcb0_resources[] = {
586 [0] = {
587 .start = AT91RM9200_BASE_TCB0,
588 .end = AT91RM9200_BASE_TCB0 + SZ_16K - 1,
589 .flags = IORESOURCE_MEM,
590 },
591 [1] = {
592 .start = AT91RM9200_ID_TC0,
593 .end = AT91RM9200_ID_TC0,
594 .flags = IORESOURCE_IRQ,
595 },
596 [2] = {
597 .start = AT91RM9200_ID_TC1,
598 .end = AT91RM9200_ID_TC1,
599 .flags = IORESOURCE_IRQ,
600 },
601 [3] = {
602 .start = AT91RM9200_ID_TC2,
603 .end = AT91RM9200_ID_TC2,
604 .flags = IORESOURCE_IRQ,
605 },
606};
607
608static struct platform_device at91rm9200_tcb0_device = {
609 .name = "atmel_tcb",
610 .id = 0,
611 .resource = tcb0_resources,
612 .num_resources = ARRAY_SIZE(tcb0_resources),
613};
614
615static struct resource tcb1_resources[] = {
616 [0] = {
617 .start = AT91RM9200_BASE_TCB1,
618 .end = AT91RM9200_BASE_TCB1 + SZ_16K - 1,
619 .flags = IORESOURCE_MEM,
620 },
621 [1] = {
622 .start = AT91RM9200_ID_TC3,
623 .end = AT91RM9200_ID_TC3,
624 .flags = IORESOURCE_IRQ,
625 },
626 [2] = {
627 .start = AT91RM9200_ID_TC4,
628 .end = AT91RM9200_ID_TC4,
629 .flags = IORESOURCE_IRQ,
630 },
631 [3] = {
632 .start = AT91RM9200_ID_TC5,
633 .end = AT91RM9200_ID_TC5,
634 .flags = IORESOURCE_IRQ,
635 },
636};
637
638static struct platform_device at91rm9200_tcb1_device = {
639 .name = "atmel_tcb",
640 .id = 1,
641 .resource = tcb1_resources,
642 .num_resources = ARRAY_SIZE(tcb1_resources),
643};
644
645static void __init at91_add_device_tc(void)
646{
647 /* this chip has a separate clock and irq for each TC channel */
648 at91_clock_associate("tc0_clk", &at91rm9200_tcb0_device.dev, "t0_clk");
649 at91_clock_associate("tc1_clk", &at91rm9200_tcb0_device.dev, "t1_clk");
650 at91_clock_associate("tc2_clk", &at91rm9200_tcb0_device.dev, "t2_clk");
651 platform_device_register(&at91rm9200_tcb0_device);
652
653 at91_clock_associate("tc3_clk", &at91rm9200_tcb1_device.dev, "t0_clk");
654 at91_clock_associate("tc4_clk", &at91rm9200_tcb1_device.dev, "t1_clk");
655 at91_clock_associate("tc5_clk", &at91rm9200_tcb1_device.dev, "t2_clk");
656 platform_device_register(&at91rm9200_tcb1_device);
657}
658#else
659static void __init at91_add_device_tc(void) { }
660#endif
661
662
663/* --------------------------------------------------------------------
580 * RTC 664 * RTC
581 * -------------------------------------------------------------------- */ 665 * -------------------------------------------------------------------- */
582 666
@@ -1019,7 +1103,7 @@ static inline void configure_usart3_pins(unsigned pins)
1019 at91_set_B_periph(AT91_PIN_PB0, 0); /* RTS3 */ 1103 at91_set_B_periph(AT91_PIN_PB0, 0); /* RTS3 */
1020} 1104}
1021 1105
1022static struct platform_device *at91_uarts[ATMEL_MAX_UART]; /* the UARTs to use */ 1106static struct platform_device *__initdata at91_uarts[ATMEL_MAX_UART]; /* the UARTs to use */
1023struct platform_device *atmel_default_console_device; /* the serial console device */ 1107struct platform_device *atmel_default_console_device; /* the serial console device */
1024 1108
1025void __init __deprecated at91_init_serial(struct at91_uart_config *config) 1109void __init __deprecated at91_init_serial(struct at91_uart_config *config)
@@ -1110,8 +1194,6 @@ void __init at91_set_serial_console(unsigned portnr)
1110{ 1194{
1111 if (portnr < ATMEL_MAX_UART) 1195 if (portnr < ATMEL_MAX_UART)
1112 atmel_default_console_device = at91_uarts[portnr]; 1196 atmel_default_console_device = at91_uarts[portnr];
1113 if (!atmel_default_console_device)
1114 printk(KERN_INFO "AT91: No default serial console defined.\n");
1115} 1197}
1116 1198
1117void __init at91_add_device_serial(void) 1199void __init at91_add_device_serial(void)
@@ -1122,6 +1204,9 @@ void __init at91_add_device_serial(void)
1122 if (at91_uarts[i]) 1204 if (at91_uarts[i])
1123 platform_device_register(at91_uarts[i]); 1205 platform_device_register(at91_uarts[i]);
1124 } 1206 }
1207
1208 if (!atmel_default_console_device)
1209 printk(KERN_INFO "AT91: No default serial console defined.\n");
1125} 1210}
1126#else 1211#else
1127void __init __deprecated at91_init_serial(struct at91_uart_config *config) {} 1212void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
@@ -1141,6 +1226,7 @@ static int __init at91_add_standard_devices(void)
1141{ 1226{
1142 at91_add_device_rtc(); 1227 at91_add_device_rtc();
1143 at91_add_device_watchdog(); 1228 at91_add_device_watchdog();
1229 at91_add_device_tc();
1144 return 0; 1230 return 0;
1145} 1231}
1146 1232
diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c
index 18d06612ce8a..ee26550cdc21 100644
--- a/arch/arm/mach-at91/at91sam9260.c
+++ b/arch/arm/mach-at91/at91sam9260.c
@@ -11,6 +11,7 @@
11 */ 11 */
12 12
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/pm.h>
14 15
15#include <asm/mach/arch.h> 16#include <asm/mach/arch.h>
16#include <asm/mach/map.h> 17#include <asm/mach/map.h>
@@ -18,6 +19,7 @@
18#include <asm/arch/at91sam9260.h> 19#include <asm/arch/at91sam9260.h>
19#include <asm/arch/at91_pmc.h> 20#include <asm/arch/at91_pmc.h>
20#include <asm/arch/at91_rstc.h> 21#include <asm/arch/at91_rstc.h>
22#include <asm/arch/at91_shdwc.h>
21 23
22#include "generic.h" 24#include "generic.h"
23#include "clock.h" 25#include "clock.h"
@@ -267,6 +269,11 @@ static void at91sam9260_reset(void)
267 at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST); 269 at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
268} 270}
269 271
272static void at91sam9260_poweroff(void)
273{
274 at91_sys_write(AT91_SHDW_CR, AT91_SHDW_KEY | AT91_SHDW_SHDW);
275}
276
270 277
271/* -------------------------------------------------------------------- 278/* --------------------------------------------------------------------
272 * AT91SAM9260 processor initialization 279 * AT91SAM9260 processor initialization
@@ -304,6 +311,7 @@ void __init at91sam9260_initialize(unsigned long main_clock)
304 iotable_init(at91sam9260_sram_desc, ARRAY_SIZE(at91sam9260_sram_desc)); 311 iotable_init(at91sam9260_sram_desc, ARRAY_SIZE(at91sam9260_sram_desc));
305 312
306 at91_arch_reset = at91sam9260_reset; 313 at91_arch_reset = at91sam9260_reset;
314 pm_power_off = at91sam9260_poweroff;
307 at91_extern_irq = (1 << AT91SAM9260_ID_IRQ0) | (1 << AT91SAM9260_ID_IRQ1) 315 at91_extern_irq = (1 << AT91SAM9260_ID_IRQ0) | (1 << AT91SAM9260_ID_IRQ1)
308 | (1 << AT91SAM9260_ID_IRQ2); 316 | (1 << AT91SAM9260_ID_IRQ2);
309 317
diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c
index 105f8403860b..393a32aefce5 100644
--- a/arch/arm/mach-at91/at91sam9260_devices.c
+++ b/arch/arm/mach-at91/at91sam9260_devices.c
@@ -19,8 +19,8 @@
19#include <asm/arch/board.h> 19#include <asm/arch/board.h>
20#include <asm/arch/gpio.h> 20#include <asm/arch/gpio.h>
21#include <asm/arch/at91sam9260.h> 21#include <asm/arch/at91sam9260.h>
22#include <asm/arch/at91sam926x_mc.h>
23#include <asm/arch/at91sam9260_matrix.h> 22#include <asm/arch/at91sam9260_matrix.h>
23#include <asm/arch/at91sam9_smc.h>
24 24
25#include "generic.h" 25#include "generic.h"
26 26
@@ -288,10 +288,15 @@ static struct at91_nand_data nand_data;
288#define NAND_BASE AT91_CHIPSELECT_3 288#define NAND_BASE AT91_CHIPSELECT_3
289 289
290static struct resource nand_resources[] = { 290static struct resource nand_resources[] = {
291 { 291 [0] = {
292 .start = NAND_BASE, 292 .start = NAND_BASE,
293 .end = NAND_BASE + SZ_256M - 1, 293 .end = NAND_BASE + SZ_256M - 1,
294 .flags = IORESOURCE_MEM, 294 .flags = IORESOURCE_MEM,
295 },
296 [1] = {
297 .start = AT91_BASE_SYS + AT91_ECC,
298 .end = AT91_BASE_SYS + AT91_ECC + SZ_512 - 1,
299 .flags = IORESOURCE_MEM,
295 } 300 }
296}; 301};
297 302
@@ -540,6 +545,90 @@ void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
540 545
541 546
542/* -------------------------------------------------------------------- 547/* --------------------------------------------------------------------
548 * Timer/Counter blocks
549 * -------------------------------------------------------------------- */
550
551#ifdef CONFIG_ATMEL_TCLIB
552
553static struct resource tcb0_resources[] = {
554 [0] = {
555 .start = AT91SAM9260_BASE_TCB0,
556 .end = AT91SAM9260_BASE_TCB0 + SZ_16K - 1,
557 .flags = IORESOURCE_MEM,
558 },
559 [1] = {
560 .start = AT91SAM9260_ID_TC0,
561 .end = AT91SAM9260_ID_TC0,
562 .flags = IORESOURCE_IRQ,
563 },
564 [2] = {
565 .start = AT91SAM9260_ID_TC1,
566 .end = AT91SAM9260_ID_TC1,
567 .flags = IORESOURCE_IRQ,
568 },
569 [3] = {
570 .start = AT91SAM9260_ID_TC2,
571 .end = AT91SAM9260_ID_TC2,
572 .flags = IORESOURCE_IRQ,
573 },
574};
575
576static struct platform_device at91sam9260_tcb0_device = {
577 .name = "atmel_tcb",
578 .id = 0,
579 .resource = tcb0_resources,
580 .num_resources = ARRAY_SIZE(tcb0_resources),
581};
582
583static struct resource tcb1_resources[] = {
584 [0] = {
585 .start = AT91SAM9260_BASE_TCB1,
586 .end = AT91SAM9260_BASE_TCB1 + SZ_16K - 1,
587 .flags = IORESOURCE_MEM,
588 },
589 [1] = {
590 .start = AT91SAM9260_ID_TC3,
591 .end = AT91SAM9260_ID_TC3,
592 .flags = IORESOURCE_IRQ,
593 },
594 [2] = {
595 .start = AT91SAM9260_ID_TC4,
596 .end = AT91SAM9260_ID_TC4,
597 .flags = IORESOURCE_IRQ,
598 },
599 [3] = {
600 .start = AT91SAM9260_ID_TC5,
601 .end = AT91SAM9260_ID_TC5,
602 .flags = IORESOURCE_IRQ,
603 },
604};
605
606static struct platform_device at91sam9260_tcb1_device = {
607 .name = "atmel_tcb",
608 .id = 1,
609 .resource = tcb1_resources,
610 .num_resources = ARRAY_SIZE(tcb1_resources),
611};
612
613static void __init at91_add_device_tc(void)
614{
615 /* this chip has a separate clock and irq for each TC channel */
616 at91_clock_associate("tc0_clk", &at91sam9260_tcb0_device.dev, "t0_clk");
617 at91_clock_associate("tc1_clk", &at91sam9260_tcb0_device.dev, "t1_clk");
618 at91_clock_associate("tc2_clk", &at91sam9260_tcb0_device.dev, "t2_clk");
619 platform_device_register(&at91sam9260_tcb0_device);
620
621 at91_clock_associate("tc3_clk", &at91sam9260_tcb1_device.dev, "t0_clk");
622 at91_clock_associate("tc4_clk", &at91sam9260_tcb1_device.dev, "t1_clk");
623 at91_clock_associate("tc5_clk", &at91sam9260_tcb1_device.dev, "t2_clk");
624 platform_device_register(&at91sam9260_tcb1_device);
625}
626#else
627static void __init at91_add_device_tc(void) { }
628#endif
629
630
631/* --------------------------------------------------------------------
543 * RTT 632 * RTT
544 * -------------------------------------------------------------------- */ 633 * -------------------------------------------------------------------- */
545 634
@@ -553,7 +642,7 @@ static struct resource rtt_resources[] = {
553 642
554static struct platform_device at91sam9260_rtt_device = { 643static struct platform_device at91sam9260_rtt_device = {
555 .name = "at91_rtt", 644 .name = "at91_rtt",
556 .id = -1, 645 .id = 0,
557 .resource = rtt_resources, 646 .resource = rtt_resources,
558 .num_resources = ARRAY_SIZE(rtt_resources), 647 .num_resources = ARRAY_SIZE(rtt_resources),
559}; 648};
@@ -962,64 +1051,9 @@ static inline void configure_usart5_pins(void)
962 at91_set_A_periph(AT91_PIN_PB13, 0); /* RXD5 */ 1051 at91_set_A_periph(AT91_PIN_PB13, 0); /* RXD5 */
963} 1052}
964 1053
965static struct platform_device *at91_uarts[ATMEL_MAX_UART]; /* the UARTs to use */ 1054static struct platform_device *__initdata at91_uarts[ATMEL_MAX_UART]; /* the UARTs to use */
966struct platform_device *atmel_default_console_device; /* the serial console device */ 1055struct platform_device *atmel_default_console_device; /* the serial console device */
967 1056
968void __init __deprecated at91_init_serial(struct at91_uart_config *config)
969{
970 int i;
971
972 /* Fill in list of supported UARTs */
973 for (i = 0; i < config->nr_tty; i++) {
974 switch (config->tty_map[i]) {
975 case 0:
976 configure_usart0_pins(ATMEL_UART_CTS | ATMEL_UART_RTS | ATMEL_UART_DSR | ATMEL_UART_DTR | ATMEL_UART_DCD | ATMEL_UART_RI);
977 at91_uarts[i] = &at91sam9260_uart0_device;
978 at91_clock_associate("usart0_clk", &at91sam9260_uart0_device.dev, "usart");
979 break;
980 case 1:
981 configure_usart1_pins(ATMEL_UART_CTS | ATMEL_UART_RTS);
982 at91_uarts[i] = &at91sam9260_uart1_device;
983 at91_clock_associate("usart1_clk", &at91sam9260_uart1_device.dev, "usart");
984 break;
985 case 2:
986 configure_usart2_pins(0);
987 at91_uarts[i] = &at91sam9260_uart2_device;
988 at91_clock_associate("usart2_clk", &at91sam9260_uart2_device.dev, "usart");
989 break;
990 case 3:
991 configure_usart3_pins(0);
992 at91_uarts[i] = &at91sam9260_uart3_device;
993 at91_clock_associate("usart3_clk", &at91sam9260_uart3_device.dev, "usart");
994 break;
995 case 4:
996 configure_usart4_pins();
997 at91_uarts[i] = &at91sam9260_uart4_device;
998 at91_clock_associate("usart4_clk", &at91sam9260_uart4_device.dev, "usart");
999 break;
1000 case 5:
1001 configure_usart5_pins();
1002 at91_uarts[i] = &at91sam9260_uart5_device;
1003 at91_clock_associate("usart5_clk", &at91sam9260_uart5_device.dev, "usart");
1004 break;
1005 case 6:
1006 configure_dbgu_pins();
1007 at91_uarts[i] = &at91sam9260_dbgu_device;
1008 at91_clock_associate("mck", &at91sam9260_dbgu_device.dev, "usart");
1009 break;
1010 default:
1011 continue;
1012 }
1013 at91_uarts[i]->id = i; /* update ID number to mapped ID */
1014 }
1015
1016 /* Set serial console device */
1017 if (config->console_tty < ATMEL_MAX_UART)
1018 atmel_default_console_device = at91_uarts[config->console_tty];
1019 if (!atmel_default_console_device)
1020 printk(KERN_INFO "AT91: No default serial console defined.\n");
1021}
1022
1023void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) 1057void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins)
1024{ 1058{
1025 struct platform_device *pdev; 1059 struct platform_device *pdev;
@@ -1073,8 +1107,6 @@ void __init at91_set_serial_console(unsigned portnr)
1073{ 1107{
1074 if (portnr < ATMEL_MAX_UART) 1108 if (portnr < ATMEL_MAX_UART)
1075 atmel_default_console_device = at91_uarts[portnr]; 1109 atmel_default_console_device = at91_uarts[portnr];
1076 if (!atmel_default_console_device)
1077 printk(KERN_INFO "AT91: No default serial console defined.\n");
1078} 1110}
1079 1111
1080void __init at91_add_device_serial(void) 1112void __init at91_add_device_serial(void)
@@ -1085,9 +1117,11 @@ void __init at91_add_device_serial(void)
1085 if (at91_uarts[i]) 1117 if (at91_uarts[i])
1086 platform_device_register(at91_uarts[i]); 1118 platform_device_register(at91_uarts[i]);
1087 } 1119 }
1120
1121 if (!atmel_default_console_device)
1122 printk(KERN_INFO "AT91: No default serial console defined.\n");
1088} 1123}
1089#else 1124#else
1090void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
1091void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {} 1125void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {}
1092void __init at91_set_serial_console(unsigned portnr) {} 1126void __init at91_set_serial_console(unsigned portnr) {}
1093void __init at91_add_device_serial(void) {} 1127void __init at91_add_device_serial(void) {}
@@ -1103,6 +1137,7 @@ static int __init at91_add_standard_devices(void)
1103{ 1137{
1104 at91_add_device_rtt(); 1138 at91_add_device_rtt();
1105 at91_add_device_watchdog(); 1139 at91_add_device_watchdog();
1140 at91_add_device_tc();
1106 return 0; 1141 return 0;
1107} 1142}
1108 1143
diff --git a/arch/arm/mach-at91/at91sam9261.c b/arch/arm/mach-at91/at91sam9261.c
index 90b87e1877d9..35bf6fd52516 100644
--- a/arch/arm/mach-at91/at91sam9261.c
+++ b/arch/arm/mach-at91/at91sam9261.c
@@ -11,12 +11,14 @@
11 */ 11 */
12 12
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/pm.h>
14 15
15#include <asm/mach/arch.h> 16#include <asm/mach/arch.h>
16#include <asm/mach/map.h> 17#include <asm/mach/map.h>
17#include <asm/arch/at91sam9261.h> 18#include <asm/arch/at91sam9261.h>
18#include <asm/arch/at91_pmc.h> 19#include <asm/arch/at91_pmc.h>
19#include <asm/arch/at91_rstc.h> 20#include <asm/arch/at91_rstc.h>
21#include <asm/arch/at91_shdwc.h>
20 22
21#include "generic.h" 23#include "generic.h"
22#include "clock.h" 24#include "clock.h"
@@ -245,6 +247,11 @@ static void at91sam9261_reset(void)
245 at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST); 247 at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
246} 248}
247 249
250static void at91sam9261_poweroff(void)
251{
252 at91_sys_write(AT91_SHDW_CR, AT91_SHDW_KEY | AT91_SHDW_SHDW);
253}
254
248 255
249/* -------------------------------------------------------------------- 256/* --------------------------------------------------------------------
250 * AT91SAM9261 processor initialization 257 * AT91SAM9261 processor initialization
@@ -256,6 +263,7 @@ void __init at91sam9261_initialize(unsigned long main_clock)
256 iotable_init(at91sam9261_io_desc, ARRAY_SIZE(at91sam9261_io_desc)); 263 iotable_init(at91sam9261_io_desc, ARRAY_SIZE(at91sam9261_io_desc));
257 264
258 at91_arch_reset = at91sam9261_reset; 265 at91_arch_reset = at91sam9261_reset;
266 pm_power_off = at91sam9261_poweroff;
259 at91_extern_irq = (1 << AT91SAM9261_ID_IRQ0) | (1 << AT91SAM9261_ID_IRQ1) 267 at91_extern_irq = (1 << AT91SAM9261_ID_IRQ0) | (1 << AT91SAM9261_ID_IRQ1)
260 | (1 << AT91SAM9261_ID_IRQ2); 268 | (1 << AT91SAM9261_ID_IRQ2);
261 269
diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c
index 245641263fce..37cd547855b1 100644
--- a/arch/arm/mach-at91/at91sam9261_devices.c
+++ b/arch/arm/mach-at91/at91sam9261_devices.c
@@ -24,7 +24,7 @@
24#include <asm/arch/gpio.h> 24#include <asm/arch/gpio.h>
25#include <asm/arch/at91sam9261.h> 25#include <asm/arch/at91sam9261.h>
26#include <asm/arch/at91sam9261_matrix.h> 26#include <asm/arch/at91sam9261_matrix.h>
27#include <asm/arch/at91sam926x_mc.h> 27#include <asm/arch/at91sam9_smc.h>
28 28
29#include "generic.h" 29#include "generic.h"
30 30
@@ -548,6 +548,55 @@ void __init at91_add_device_lcdc(struct atmel_lcdfb_info *data) {}
548 548
549 549
550/* -------------------------------------------------------------------- 550/* --------------------------------------------------------------------
551 * Timer/Counter block
552 * -------------------------------------------------------------------- */
553
554#ifdef CONFIG_ATMEL_TCLIB
555
556static struct resource tcb_resources[] = {
557 [0] = {
558 .start = AT91SAM9261_BASE_TCB0,
559 .end = AT91SAM9261_BASE_TCB0 + SZ_16K - 1,
560 .flags = IORESOURCE_MEM,
561 },
562 [1] = {
563 .start = AT91SAM9261_ID_TC0,
564 .end = AT91SAM9261_ID_TC0,
565 .flags = IORESOURCE_IRQ,
566 },
567 [2] = {
568 .start = AT91SAM9261_ID_TC1,
569 .end = AT91SAM9261_ID_TC1,
570 .flags = IORESOURCE_IRQ,
571 },
572 [3] = {
573 .start = AT91SAM9261_ID_TC2,
574 .end = AT91SAM9261_ID_TC2,
575 .flags = IORESOURCE_IRQ,
576 },
577};
578
579static struct platform_device at91sam9261_tcb_device = {
580 .name = "atmel_tcb",
581 .id = 0,
582 .resource = tcb_resources,
583 .num_resources = ARRAY_SIZE(tcb_resources),
584};
585
586static void __init at91_add_device_tc(void)
587{
588 /* this chip has a separate clock and irq for each TC channel */
589 at91_clock_associate("tc0_clk", &at91sam9261_tcb_device.dev, "t0_clk");
590 at91_clock_associate("tc1_clk", &at91sam9261_tcb_device.dev, "t1_clk");
591 at91_clock_associate("tc2_clk", &at91sam9261_tcb_device.dev, "t2_clk");
592 platform_device_register(&at91sam9261_tcb_device);
593}
594#else
595static void __init at91_add_device_tc(void) { }
596#endif
597
598
599/* --------------------------------------------------------------------
551 * RTT 600 * RTT
552 * -------------------------------------------------------------------- */ 601 * -------------------------------------------------------------------- */
553 602
@@ -561,7 +610,7 @@ static struct resource rtt_resources[] = {
561 610
562static struct platform_device at91sam9261_rtt_device = { 611static struct platform_device at91sam9261_rtt_device = {
563 .name = "at91_rtt", 612 .name = "at91_rtt",
564 .id = -1, 613 .id = 0,
565 .resource = rtt_resources, 614 .resource = rtt_resources,
566 .num_resources = ARRAY_SIZE(rtt_resources), 615 .num_resources = ARRAY_SIZE(rtt_resources),
567}; 616};
@@ -938,49 +987,9 @@ static inline void configure_usart2_pins(unsigned pins)
938 at91_set_B_periph(AT91_PIN_PA16, 0); /* CTS2 */ 987 at91_set_B_periph(AT91_PIN_PA16, 0); /* CTS2 */
939} 988}
940 989
941static struct platform_device *at91_uarts[ATMEL_MAX_UART]; /* the UARTs to use */ 990static struct platform_device *__initdata at91_uarts[ATMEL_MAX_UART]; /* the UARTs to use */
942struct platform_device *atmel_default_console_device; /* the serial console device */ 991struct platform_device *atmel_default_console_device; /* the serial console device */
943 992
944void __init __deprecated at91_init_serial(struct at91_uart_config *config)
945{
946 int i;
947
948 /* Fill in list of supported UARTs */
949 for (i = 0; i < config->nr_tty; i++) {
950 switch (config->tty_map[i]) {
951 case 0:
952 configure_usart0_pins(ATMEL_UART_CTS | ATMEL_UART_RTS);
953 at91_uarts[i] = &at91sam9261_uart0_device;
954 at91_clock_associate("usart0_clk", &at91sam9261_uart0_device.dev, "usart");
955 break;
956 case 1:
957 configure_usart1_pins(0);
958 at91_uarts[i] = &at91sam9261_uart1_device;
959 at91_clock_associate("usart1_clk", &at91sam9261_uart1_device.dev, "usart");
960 break;
961 case 2:
962 configure_usart2_pins(0);
963 at91_uarts[i] = &at91sam9261_uart2_device;
964 at91_clock_associate("usart2_clk", &at91sam9261_uart2_device.dev, "usart");
965 break;
966 case 3:
967 configure_dbgu_pins();
968 at91_uarts[i] = &at91sam9261_dbgu_device;
969 at91_clock_associate("mck", &at91sam9261_dbgu_device.dev, "usart");
970 break;
971 default:
972 continue;
973 }
974 at91_uarts[i]->id = i; /* update ID number to mapped ID */
975 }
976
977 /* Set serial console device */
978 if (config->console_tty < ATMEL_MAX_UART)
979 atmel_default_console_device = at91_uarts[config->console_tty];
980 if (!atmel_default_console_device)
981 printk(KERN_INFO "AT91: No default serial console defined.\n");
982}
983
984void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) 993void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins)
985{ 994{
986 struct platform_device *pdev; 995 struct platform_device *pdev;
@@ -1019,8 +1028,6 @@ void __init at91_set_serial_console(unsigned portnr)
1019{ 1028{
1020 if (portnr < ATMEL_MAX_UART) 1029 if (portnr < ATMEL_MAX_UART)
1021 atmel_default_console_device = at91_uarts[portnr]; 1030 atmel_default_console_device = at91_uarts[portnr];
1022 if (!atmel_default_console_device)
1023 printk(KERN_INFO "AT91: No default serial console defined.\n");
1024} 1031}
1025 1032
1026void __init at91_add_device_serial(void) 1033void __init at91_add_device_serial(void)
@@ -1031,9 +1038,11 @@ void __init at91_add_device_serial(void)
1031 if (at91_uarts[i]) 1038 if (at91_uarts[i])
1032 platform_device_register(at91_uarts[i]); 1039 platform_device_register(at91_uarts[i]);
1033 } 1040 }
1041
1042 if (!atmel_default_console_device)
1043 printk(KERN_INFO "AT91: No default serial console defined.\n");
1034} 1044}
1035#else 1045#else
1036void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
1037void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {} 1046void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {}
1038void __init at91_set_serial_console(unsigned portnr) {} 1047void __init at91_set_serial_console(unsigned portnr) {}
1039void __init at91_add_device_serial(void) {} 1048void __init at91_add_device_serial(void) {}
@@ -1050,6 +1059,7 @@ static int __init at91_add_standard_devices(void)
1050{ 1059{
1051 at91_add_device_rtt(); 1060 at91_add_device_rtt();
1052 at91_add_device_watchdog(); 1061 at91_add_device_watchdog();
1062 at91_add_device_tc();
1053 return 0; 1063 return 0;
1054} 1064}
1055 1065
diff --git a/arch/arm/mach-at91/at91sam9263.c b/arch/arm/mach-at91/at91sam9263.c
index a53ba0f74351..052074a9f2d3 100644
--- a/arch/arm/mach-at91/at91sam9263.c
+++ b/arch/arm/mach-at91/at91sam9263.c
@@ -11,12 +11,14 @@
11 */ 11 */
12 12
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/pm.h>
14 15
15#include <asm/mach/arch.h> 16#include <asm/mach/arch.h>
16#include <asm/mach/map.h> 17#include <asm/mach/map.h>
17#include <asm/arch/at91sam9263.h> 18#include <asm/arch/at91sam9263.h>
18#include <asm/arch/at91_pmc.h> 19#include <asm/arch/at91_pmc.h>
19#include <asm/arch/at91_rstc.h> 20#include <asm/arch/at91_rstc.h>
21#include <asm/arch/at91_shdwc.h>
20 22
21#include "generic.h" 23#include "generic.h"
22#include "clock.h" 24#include "clock.h"
@@ -271,6 +273,11 @@ static void at91sam9263_reset(void)
271 at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST); 273 at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
272} 274}
273 275
276static void at91sam9263_poweroff(void)
277{
278 at91_sys_write(AT91_SHDW_CR, AT91_SHDW_KEY | AT91_SHDW_SHDW);
279}
280
274 281
275/* -------------------------------------------------------------------- 282/* --------------------------------------------------------------------
276 * AT91SAM9263 processor initialization 283 * AT91SAM9263 processor initialization
@@ -282,6 +289,7 @@ void __init at91sam9263_initialize(unsigned long main_clock)
282 iotable_init(at91sam9263_io_desc, ARRAY_SIZE(at91sam9263_io_desc)); 289 iotable_init(at91sam9263_io_desc, ARRAY_SIZE(at91sam9263_io_desc));
283 290
284 at91_arch_reset = at91sam9263_reset; 291 at91_arch_reset = at91sam9263_reset;
292 pm_power_off = at91sam9263_poweroff;
285 at91_extern_irq = (1 << AT91SAM9263_ID_IRQ0) | (1 << AT91SAM9263_ID_IRQ1); 293 at91_extern_irq = (1 << AT91SAM9263_ID_IRQ0) | (1 << AT91SAM9263_ID_IRQ1);
286 294
287 /* Init clock subsystem */ 295 /* Init clock subsystem */
diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c
index 0b12e1adcc8e..b6454c525962 100644
--- a/arch/arm/mach-at91/at91sam9263_devices.c
+++ b/arch/arm/mach-at91/at91sam9263_devices.c
@@ -22,8 +22,8 @@
22#include <asm/arch/board.h> 22#include <asm/arch/board.h>
23#include <asm/arch/gpio.h> 23#include <asm/arch/gpio.h>
24#include <asm/arch/at91sam9263.h> 24#include <asm/arch/at91sam9263.h>
25#include <asm/arch/at91sam926x_mc.h>
26#include <asm/arch/at91sam9263_matrix.h> 25#include <asm/arch/at91sam9263_matrix.h>
26#include <asm/arch/at91sam9_smc.h>
27 27
28#include "generic.h" 28#include "generic.h"
29 29
@@ -358,10 +358,15 @@ static struct at91_nand_data nand_data;
358#define NAND_BASE AT91_CHIPSELECT_3 358#define NAND_BASE AT91_CHIPSELECT_3
359 359
360static struct resource nand_resources[] = { 360static struct resource nand_resources[] = {
361 { 361 [0] = {
362 .start = NAND_BASE, 362 .start = NAND_BASE,
363 .end = NAND_BASE + SZ_256M - 1, 363 .end = NAND_BASE + SZ_256M - 1,
364 .flags = IORESOURCE_MEM, 364 .flags = IORESOURCE_MEM,
365 },
366 [1] = {
367 .start = AT91_BASE_SYS + AT91_ECC0,
368 .end = AT91_BASE_SYS + AT91_ECC0 + SZ_512 - 1,
369 .flags = IORESOURCE_MEM,
365 } 370 }
366}; 371};
367 372
@@ -783,6 +788,43 @@ void __init at91_add_device_isi(void) {}
783 788
784 789
785/* -------------------------------------------------------------------- 790/* --------------------------------------------------------------------
791 * Timer/Counter block
792 * -------------------------------------------------------------------- */
793
794#ifdef CONFIG_ATMEL_TCLIB
795
796static struct resource tcb_resources[] = {
797 [0] = {
798 .start = AT91SAM9263_BASE_TCB0,
799 .end = AT91SAM9263_BASE_TCB0 + SZ_16K - 1,
800 .flags = IORESOURCE_MEM,
801 },
802 [1] = {
803 .start = AT91SAM9263_ID_TCB,
804 .end = AT91SAM9263_ID_TCB,
805 .flags = IORESOURCE_IRQ,
806 },
807};
808
809static struct platform_device at91sam9263_tcb_device = {
810 .name = "atmel_tcb",
811 .id = 0,
812 .resource = tcb_resources,
813 .num_resources = ARRAY_SIZE(tcb_resources),
814};
815
816static void __init at91_add_device_tc(void)
817{
818 /* this chip has one clock and irq for all three TC channels */
819 at91_clock_associate("tcb_clk", &at91sam9263_tcb_device.dev, "t0_clk");
820 platform_device_register(&at91sam9263_tcb_device);
821}
822#else
823static void __init at91_add_device_tc(void) { }
824#endif
825
826
827/* --------------------------------------------------------------------
786 * RTT 828 * RTT
787 * -------------------------------------------------------------------- */ 829 * -------------------------------------------------------------------- */
788 830
@@ -933,9 +975,6 @@ static inline void configure_ssc1_pins(unsigned pins)
933} 975}
934 976
935/* 977/*
936 * Return the device node so that board init code can use it as the
937 * parent for the device node reflecting how it's used on this board.
938 *
939 * SSC controllers are accessed through library code, instead of any 978 * SSC controllers are accessed through library code, instead of any
940 * kind of all-singing/all-dancing driver. For example one could be 979 * kind of all-singing/all-dancing driver. For example one could be
941 * used by a particular I2S audio codec's driver, while another one 980 * used by a particular I2S audio codec's driver, while another one
@@ -1146,49 +1185,9 @@ static inline void configure_usart2_pins(unsigned pins)
1146 at91_set_B_periph(AT91_PIN_PD6, 0); /* CTS2 */ 1185 at91_set_B_periph(AT91_PIN_PD6, 0); /* CTS2 */
1147} 1186}
1148 1187
1149static struct platform_device *at91_uarts[ATMEL_MAX_UART]; /* the UARTs to use */ 1188static struct platform_device *__initdata at91_uarts[ATMEL_MAX_UART]; /* the UARTs to use */
1150struct platform_device *atmel_default_console_device; /* the serial console device */ 1189struct platform_device *atmel_default_console_device; /* the serial console device */
1151 1190
1152void __init __deprecated at91_init_serial(struct at91_uart_config *config)
1153{
1154 int i;
1155
1156 /* Fill in list of supported UARTs */
1157 for (i = 0; i < config->nr_tty; i++) {
1158 switch (config->tty_map[i]) {
1159 case 0:
1160 configure_usart0_pins(ATMEL_UART_CTS | ATMEL_UART_RTS);
1161 at91_uarts[i] = &at91sam9263_uart0_device;
1162 at91_clock_associate("usart0_clk", &at91sam9263_uart0_device.dev, "usart");
1163 break;
1164 case 1:
1165 configure_usart1_pins(ATMEL_UART_CTS | ATMEL_UART_RTS);
1166 at91_uarts[i] = &at91sam9263_uart1_device;
1167 at91_clock_associate("usart1_clk", &at91sam9263_uart1_device.dev, "usart");
1168 break;
1169 case 2:
1170 configure_usart2_pins(ATMEL_UART_CTS | ATMEL_UART_RTS);
1171 at91_uarts[i] = &at91sam9263_uart2_device;
1172 at91_clock_associate("usart2_clk", &at91sam9263_uart2_device.dev, "usart");
1173 break;
1174 case 3:
1175 configure_dbgu_pins();
1176 at91_uarts[i] = &at91sam9263_dbgu_device;
1177 at91_clock_associate("mck", &at91sam9263_dbgu_device.dev, "usart");
1178 break;
1179 default:
1180 continue;
1181 }
1182 at91_uarts[i]->id = i; /* update ID number to mapped ID */
1183 }
1184
1185 /* Set serial console device */
1186 if (config->console_tty < ATMEL_MAX_UART)
1187 atmel_default_console_device = at91_uarts[config->console_tty];
1188 if (!atmel_default_console_device)
1189 printk(KERN_INFO "AT91: No default serial console defined.\n");
1190}
1191
1192void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) 1191void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins)
1193{ 1192{
1194 struct platform_device *pdev; 1193 struct platform_device *pdev;
@@ -1227,8 +1226,6 @@ void __init at91_set_serial_console(unsigned portnr)
1227{ 1226{
1228 if (portnr < ATMEL_MAX_UART) 1227 if (portnr < ATMEL_MAX_UART)
1229 atmel_default_console_device = at91_uarts[portnr]; 1228 atmel_default_console_device = at91_uarts[portnr];
1230 if (!atmel_default_console_device)
1231 printk(KERN_INFO "AT91: No default serial console defined.\n");
1232} 1229}
1233 1230
1234void __init at91_add_device_serial(void) 1231void __init at91_add_device_serial(void)
@@ -1239,9 +1236,11 @@ void __init at91_add_device_serial(void)
1239 if (at91_uarts[i]) 1236 if (at91_uarts[i])
1240 platform_device_register(at91_uarts[i]); 1237 platform_device_register(at91_uarts[i]);
1241 } 1238 }
1239
1240 if (!atmel_default_console_device)
1241 printk(KERN_INFO "AT91: No default serial console defined.\n");
1242} 1242}
1243#else 1243#else
1244void __init at91_init_serial(struct at91_uart_config *config) {}
1245void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {} 1244void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {}
1246void __init at91_set_serial_console(unsigned portnr) {} 1245void __init at91_set_serial_console(unsigned portnr) {}
1247void __init at91_add_device_serial(void) {} 1246void __init at91_add_device_serial(void) {}
@@ -1257,6 +1256,7 @@ static int __init at91_add_standard_devices(void)
1257{ 1256{
1258 at91_add_device_rtt(); 1257 at91_add_device_rtt();
1259 at91_add_device_watchdog(); 1258 at91_add_device_watchdog();
1259 at91_add_device_tc();
1260 return 0; 1260 return 0;
1261} 1261}
1262 1262
diff --git a/arch/arm/mach-at91/at91sam926x_time.c b/arch/arm/mach-at91/at91sam926x_time.c
index e38d23770992..5cecbd7de6a6 100644
--- a/arch/arm/mach-at91/at91sam926x_time.c
+++ b/arch/arm/mach-at91/at91sam926x_time.c
@@ -1,23 +1,20 @@
1/* 1/*
2 * linux/arch/arm/mach-at91/at91sam926x_time.c 2 * at91sam926x_time.c - Periodic Interval Timer (PIT) for at91sam926x
3 * 3 *
4 * Copyright (C) 2005-2006 M. Amine SAYA, ATMEL Rousset, France 4 * Copyright (C) 2005-2006 M. Amine SAYA, ATMEL Rousset, France
5 * Revision 2005 M. Nicolas Diremdjian, ATMEL Rousset, France 5 * Revision 2005 M. Nicolas Diremdjian, ATMEL Rousset, France
6 * Converted to ClockSource/ClockEvents by David Brownell.
6 * 7 *
7 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as 9 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation. 10 * published by the Free Software Foundation.
10 */ 11 */
11
12#include <linux/init.h>
13#include <linux/interrupt.h> 12#include <linux/interrupt.h>
14#include <linux/irq.h> 13#include <linux/irq.h>
15#include <linux/kernel.h> 14#include <linux/kernel.h>
16#include <linux/sched.h> 15#include <linux/clk.h>
17#include <linux/time.h> 16#include <linux/clockchips.h>
18 17
19#include <asm/hardware.h>
20#include <asm/io.h>
21#include <asm/mach/time.h> 18#include <asm/mach/time.h>
22 19
23#include <asm/arch/at91_pit.h> 20#include <asm/arch/at91_pit.h>
@@ -26,85 +23,167 @@
26#define PIT_CPIV(x) ((x) & AT91_PIT_CPIV) 23#define PIT_CPIV(x) ((x) & AT91_PIT_CPIV)
27#define PIT_PICNT(x) (((x) & AT91_PIT_PICNT) >> 20) 24#define PIT_PICNT(x) (((x) & AT91_PIT_PICNT) >> 20)
28 25
26static u32 pit_cycle; /* write-once */
27static u32 pit_cnt; /* access only w/system irq blocked */
28
29
29/* 30/*
30 * Returns number of microseconds since last timer interrupt. Note that interrupts 31 * Clocksource: just a monotonic counter of MCK/16 cycles.
31 * will have been disabled by do_gettimeofday() 32 * We don't care whether or not PIT irqs are enabled.
32 * 'LATCH' is hwclock ticks (see CLOCK_TICK_RATE in timex.h) per jiffy.
33 */ 33 */
34static unsigned long at91sam926x_gettimeoffset(void) 34static cycle_t read_pit_clk(void)
35{ 35{
36 unsigned long elapsed; 36 unsigned long flags;
37 unsigned long t = at91_sys_read(AT91_PIT_PIIR); 37 u32 elapsed;
38 u32 t;
39
40 raw_local_irq_save(flags);
41 elapsed = pit_cnt;
42 t = at91_sys_read(AT91_PIT_PIIR);
43 raw_local_irq_restore(flags);
44
45 elapsed += PIT_PICNT(t) * pit_cycle;
46 elapsed += PIT_CPIV(t);
47 return elapsed;
48}
49
50static struct clocksource pit_clk = {
51 .name = "pit",
52 .rating = 175,
53 .read = read_pit_clk,
54 .shift = 20,
55 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
56};
38 57
39 elapsed = (PIT_PICNT(t) * LATCH) + PIT_CPIV(t); /* hardware clock cycles */
40 58
41 return (unsigned long)(elapsed * jiffies_to_usecs(1)) / LATCH; 59/*
60 * Clockevent device: interrupts every 1/HZ (== pit_cycles * MCK/16)
61 */
62static void
63pit_clkevt_mode(enum clock_event_mode mode, struct clock_event_device *dev)
64{
65 unsigned long flags;
66
67 switch (mode) {
68 case CLOCK_EVT_MODE_PERIODIC:
69 /* update clocksource counter, then enable the IRQ */
70 raw_local_irq_save(flags);
71 pit_cnt += pit_cycle * PIT_PICNT(at91_sys_read(AT91_PIT_PIVR));
72 at91_sys_write(AT91_PIT_MR, (pit_cycle - 1) | AT91_PIT_PITEN
73 | AT91_PIT_PITIEN);
74 raw_local_irq_restore(flags);
75 break;
76 case CLOCK_EVT_MODE_ONESHOT:
77 BUG();
78 /* FALLTHROUGH */
79 case CLOCK_EVT_MODE_SHUTDOWN:
80 case CLOCK_EVT_MODE_UNUSED:
81 /* disable irq, leaving the clocksource active */
82 at91_sys_write(AT91_PIT_MR, (pit_cycle - 1) | AT91_PIT_PITEN);
83 break;
84 case CLOCK_EVT_MODE_RESUME:
85 break;
86 }
42} 87}
43 88
89static struct clock_event_device pit_clkevt = {
90 .name = "pit",
91 .features = CLOCK_EVT_FEAT_PERIODIC,
92 .shift = 32,
93 .rating = 100,
94 .cpumask = CPU_MASK_CPU0,
95 .set_mode = pit_clkevt_mode,
96};
97
98
44/* 99/*
45 * IRQ handler for the timer. 100 * IRQ handler for the timer.
46 */ 101 */
47static irqreturn_t at91sam926x_timer_interrupt(int irq, void *dev_id) 102static irqreturn_t at91sam926x_pit_interrupt(int irq, void *dev_id)
48{ 103{
49 volatile long nr_ticks;
50 104
51 if (at91_sys_read(AT91_PIT_SR) & AT91_PIT_PITS) { /* This is a shared interrupt */ 105 /* The PIT interrupt may be disabled, and is shared */
52 /* Get number to ticks performed before interrupt and clear PIT interrupt */ 106 if ((pit_clkevt.mode == CLOCK_EVT_MODE_PERIODIC)
107 && (at91_sys_read(AT91_PIT_SR) & AT91_PIT_PITS)) {
108 unsigned nr_ticks;
109
110 /* Get number of ticks performed before irq, and ack it */
53 nr_ticks = PIT_PICNT(at91_sys_read(AT91_PIT_PIVR)); 111 nr_ticks = PIT_PICNT(at91_sys_read(AT91_PIT_PIVR));
54 do { 112 do {
55 timer_tick(); 113 pit_cnt += pit_cycle;
114 pit_clkevt.event_handler(&pit_clkevt);
56 nr_ticks--; 115 nr_ticks--;
57 } while (nr_ticks); 116 } while (nr_ticks);
58 117
59 return IRQ_HANDLED; 118 return IRQ_HANDLED;
60 } else 119 }
61 return IRQ_NONE; /* not handled */ 120
121 return IRQ_NONE;
62} 122}
63 123
64static struct irqaction at91sam926x_timer_irq = { 124static struct irqaction at91sam926x_pit_irq = {
65 .name = "at91_tick", 125 .name = "at91_tick",
66 .flags = IRQF_SHARED | IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, 126 .flags = IRQF_SHARED | IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
67 .handler = at91sam926x_timer_interrupt 127 .handler = at91sam926x_pit_interrupt
68}; 128};
69 129
70void at91sam926x_timer_reset(void) 130static void at91sam926x_pit_reset(void)
71{ 131{
72 /* Disable timer */ 132 /* Disable timer and irqs */
73 at91_sys_write(AT91_PIT_MR, 0); 133 at91_sys_write(AT91_PIT_MR, 0);
74 134
75 /* Clear any pending interrupts */ 135 /* Clear any pending interrupts, wait for PIT to stop counting */
76 (void) at91_sys_read(AT91_PIT_PIVR); 136 while (PIT_CPIV(at91_sys_read(AT91_PIT_PIVR)) != 0)
137 cpu_relax();
77 138
78 /* Set Period Interval timer and enable its interrupt */ 139 /* Start PIT but don't enable IRQ */
79 at91_sys_write(AT91_PIT_MR, (LATCH & AT91_PIT_PIV) | AT91_PIT_PITIEN | AT91_PIT_PITEN); 140 at91_sys_write(AT91_PIT_MR, (pit_cycle - 1) | AT91_PIT_PITEN);
80} 141}
81 142
82/* 143/*
83 * Set up timer interrupt. 144 * Set up both clocksource and clockevent support.
84 */ 145 */
85void __init at91sam926x_timer_init(void) 146static void __init at91sam926x_pit_init(void)
86{ 147{
87 /* Initialize and enable the timer */ 148 unsigned long pit_rate;
88 at91sam926x_timer_reset(); 149 unsigned bits;
150
151 /*
152 * Use our actual MCK to figure out how many MCK/16 ticks per
153 * 1/HZ period (instead of a compile-time constant LATCH).
154 */
155 pit_rate = clk_get_rate(clk_get(NULL, "mck")) / 16;
156 pit_cycle = (pit_rate + HZ/2) / HZ;
157 WARN_ON(((pit_cycle - 1) & ~AT91_PIT_PIV) != 0);
89 158
90 /* Make IRQs happen for the system timer. */ 159 /* Initialize and enable the timer */
91 setup_irq(AT91_ID_SYS, &at91sam926x_timer_irq); 160 at91sam926x_pit_reset();
161
162 /*
163 * Register clocksource. The high order bits of PIV are unused,
164 * so this isn't a 32-bit counter unless we get clockevent irqs.
165 */
166 pit_clk.mult = clocksource_hz2mult(pit_rate, pit_clk.shift);
167 bits = 12 /* PICNT */ + ilog2(pit_cycle) /* PIV */;
168 pit_clk.mask = CLOCKSOURCE_MASK(bits);
169 clocksource_register(&pit_clk);
170
171 /* Set up irq handler */
172 setup_irq(AT91_ID_SYS, &at91sam926x_pit_irq);
173
174 /* Set up and register clockevents */
175 pit_clkevt.mult = div_sc(pit_rate, NSEC_PER_SEC, pit_clkevt.shift);
176 clockevents_register_device(&pit_clkevt);
92} 177}
93 178
94#ifdef CONFIG_PM 179static void at91sam926x_pit_suspend(void)
95static void at91sam926x_timer_suspend(void)
96{ 180{
97 /* Disable timer */ 181 /* Disable timer */
98 at91_sys_write(AT91_PIT_MR, 0); 182 at91_sys_write(AT91_PIT_MR, 0);
99} 183}
100#else
101#define at91sam926x_timer_suspend NULL
102#endif
103 184
104struct sys_timer at91sam926x_timer = { 185struct sys_timer at91sam926x_timer = {
105 .init = at91sam926x_timer_init, 186 .init = at91sam926x_pit_init,
106 .offset = at91sam926x_gettimeoffset, 187 .suspend = at91sam926x_pit_suspend,
107 .suspend = at91sam926x_timer_suspend, 188 .resume = at91sam926x_pit_reset,
108 .resume = at91sam926x_timer_reset,
109}; 189};
110
diff --git a/arch/arm/mach-at91/at91sam9rl.c b/arch/arm/mach-at91/at91sam9rl.c
index 4813a35f6cf5..902c79893ec7 100644
--- a/arch/arm/mach-at91/at91sam9rl.c
+++ b/arch/arm/mach-at91/at91sam9rl.c
@@ -10,6 +10,7 @@
10 */ 10 */
11 11
12#include <linux/module.h> 12#include <linux/module.h>
13#include <linux/pm.h>
13 14
14#include <asm/mach/arch.h> 15#include <asm/mach/arch.h>
15#include <asm/mach/map.h> 16#include <asm/mach/map.h>
@@ -17,6 +18,7 @@
17#include <asm/arch/at91sam9rl.h> 18#include <asm/arch/at91sam9rl.h>
18#include <asm/arch/at91_pmc.h> 19#include <asm/arch/at91_pmc.h>
19#include <asm/arch/at91_rstc.h> 20#include <asm/arch/at91_rstc.h>
21#include <asm/arch/at91_shdwc.h>
20 22
21#include "generic.h" 23#include "generic.h"
22#include "clock.h" 24#include "clock.h"
@@ -244,6 +246,11 @@ static void at91sam9rl_reset(void)
244 at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST); 246 at91_sys_write(AT91_RSTC_CR, AT91_RSTC_KEY | AT91_RSTC_PROCRST | AT91_RSTC_PERRST);
245} 247}
246 248
249static void at91sam9rl_poweroff(void)
250{
251 at91_sys_write(AT91_SHDW_CR, AT91_SHDW_KEY | AT91_SHDW_SHDW);
252}
253
247 254
248/* -------------------------------------------------------------------- 255/* --------------------------------------------------------------------
249 * AT91SAM9RL processor initialization 256 * AT91SAM9RL processor initialization
@@ -274,6 +281,7 @@ void __init at91sam9rl_initialize(unsigned long main_clock)
274 iotable_init(at91sam9rl_sram_desc, ARRAY_SIZE(at91sam9rl_sram_desc)); 281 iotable_init(at91sam9rl_sram_desc, ARRAY_SIZE(at91sam9rl_sram_desc));
275 282
276 at91_arch_reset = at91sam9rl_reset; 283 at91_arch_reset = at91sam9rl_reset;
284 pm_power_off = at91sam9rl_poweroff;
277 at91_extern_irq = (1 << AT91SAM9RL_ID_IRQ0); 285 at91_extern_irq = (1 << AT91SAM9RL_ID_IRQ0);
278 286
279 /* Init clock subsystem */ 287 /* Init clock subsystem */
diff --git a/arch/arm/mach-at91/at91sam9rl_devices.c b/arch/arm/mach-at91/at91sam9rl_devices.c
index f43b5c33e45d..dbb9a5fc2090 100644
--- a/arch/arm/mach-at91/at91sam9rl_devices.c
+++ b/arch/arm/mach-at91/at91sam9rl_devices.c
@@ -20,7 +20,7 @@
20#include <asm/arch/gpio.h> 20#include <asm/arch/gpio.h>
21#include <asm/arch/at91sam9rl.h> 21#include <asm/arch/at91sam9rl.h>
22#include <asm/arch/at91sam9rl_matrix.h> 22#include <asm/arch/at91sam9rl_matrix.h>
23#include <asm/arch/at91sam926x_mc.h> 23#include <asm/arch/at91sam9_smc.h>
24 24
25#include "generic.h" 25#include "generic.h"
26 26
@@ -105,10 +105,15 @@ static struct at91_nand_data nand_data;
105#define NAND_BASE AT91_CHIPSELECT_3 105#define NAND_BASE AT91_CHIPSELECT_3
106 106
107static struct resource nand_resources[] = { 107static struct resource nand_resources[] = {
108 { 108 [0] = {
109 .start = NAND_BASE, 109 .start = NAND_BASE,
110 .end = NAND_BASE + SZ_256M - 1, 110 .end = NAND_BASE + SZ_256M - 1,
111 .flags = IORESOURCE_MEM, 111 .flags = IORESOURCE_MEM,
112 },
113 [1] = {
114 .start = AT91_BASE_SYS + AT91_ECC,
115 .end = AT91_BASE_SYS + AT91_ECC + SZ_512 - 1,
116 .flags = IORESOURCE_MEM,
112 } 117 }
113}; 118};
114 119
@@ -385,6 +390,55 @@ void __init at91_add_device_lcdc(struct atmel_lcdfb_info *data) {}
385 390
386 391
387/* -------------------------------------------------------------------- 392/* --------------------------------------------------------------------
393 * Timer/Counter block
394 * -------------------------------------------------------------------- */
395
396#ifdef CONFIG_ATMEL_TCLIB
397
398static struct resource tcb_resources[] = {
399 [0] = {
400 .start = AT91SAM9RL_BASE_TCB0,
401 .end = AT91SAM9RL_BASE_TCB0 + SZ_16K - 1,
402 .flags = IORESOURCE_MEM,
403 },
404 [1] = {
405 .start = AT91SAM9RL_ID_TC0,
406 .end = AT91SAM9RL_ID_TC0,
407 .flags = IORESOURCE_IRQ,
408 },
409 [2] = {
410 .start = AT91SAM9RL_ID_TC1,
411 .end = AT91SAM9RL_ID_TC1,
412 .flags = IORESOURCE_IRQ,
413 },
414 [3] = {
415 .start = AT91SAM9RL_ID_TC2,
416 .end = AT91SAM9RL_ID_TC2,
417 .flags = IORESOURCE_IRQ,
418 },
419};
420
421static struct platform_device at91sam9rl_tcb_device = {
422 .name = "atmel_tcb",
423 .id = 0,
424 .resource = tcb_resources,
425 .num_resources = ARRAY_SIZE(tcb_resources),
426};
427
428static void __init at91_add_device_tc(void)
429{
430 /* this chip has a separate clock and irq for each TC channel */
431 at91_clock_associate("tc0_clk", &at91sam9rl_tcb_device.dev, "t0_clk");
432 at91_clock_associate("tc1_clk", &at91sam9rl_tcb_device.dev, "t1_clk");
433 at91_clock_associate("tc2_clk", &at91sam9rl_tcb_device.dev, "t2_clk");
434 platform_device_register(&at91sam9rl_tcb_device);
435}
436#else
437static void __init at91_add_device_tc(void) { }
438#endif
439
440
441/* --------------------------------------------------------------------
388 * RTC 442 * RTC
389 * -------------------------------------------------------------------- */ 443 * -------------------------------------------------------------------- */
390 444
@@ -418,7 +472,7 @@ static struct resource rtt_resources[] = {
418 472
419static struct platform_device at91sam9rl_rtt_device = { 473static struct platform_device at91sam9rl_rtt_device = {
420 .name = "at91_rtt", 474 .name = "at91_rtt",
421 .id = -1, 475 .id = 0,
422 .resource = rtt_resources, 476 .resource = rtt_resources,
423 .num_resources = ARRAY_SIZE(rtt_resources), 477 .num_resources = ARRAY_SIZE(rtt_resources),
424}; 478};
@@ -539,9 +593,6 @@ static inline void configure_ssc1_pins(unsigned pins)
539} 593}
540 594
541/* 595/*
542 * Return the device node so that board init code can use it as the
543 * parent for the device node reflecting how it's used on this board.
544 *
545 * SSC controllers are accessed through library code, instead of any 596 * SSC controllers are accessed through library code, instead of any
546 * kind of all-singing/all-dancing driver. For example one could be 597 * kind of all-singing/all-dancing driver. For example one could be
547 * used by a particular I2S audio codec's driver, while another one 598 * used by a particular I2S audio codec's driver, while another one
@@ -802,54 +853,9 @@ static inline void configure_usart3_pins(unsigned pins)
802 at91_set_B_periph(AT91_PIN_PD3, 0); /* CTS3 */ 853 at91_set_B_periph(AT91_PIN_PD3, 0); /* CTS3 */
803} 854}
804 855
805static struct platform_device *at91_uarts[ATMEL_MAX_UART]; /* the UARTs to use */ 856static struct platform_device *__initdata at91_uarts[ATMEL_MAX_UART]; /* the UARTs to use */
806struct platform_device *atmel_default_console_device; /* the serial console device */ 857struct platform_device *atmel_default_console_device; /* the serial console device */
807 858
808void __init __deprecated at91_init_serial(struct at91_uart_config *config)
809{
810 int i;
811
812 /* Fill in list of supported UARTs */
813 for (i = 0; i < config->nr_tty; i++) {
814 switch (config->tty_map[i]) {
815 case 0:
816 configure_usart0_pins(ATMEL_UART_CTS | ATMEL_UART_RTS);
817 at91_uarts[i] = &at91sam9rl_uart0_device;
818 at91_clock_associate("usart0_clk", &at91sam9rl_uart0_device.dev, "usart");
819 break;
820 case 1:
821 configure_usart1_pins(0);
822 at91_uarts[i] = &at91sam9rl_uart1_device;
823 at91_clock_associate("usart1_clk", &at91sam9rl_uart1_device.dev, "usart");
824 break;
825 case 2:
826 configure_usart2_pins(0);
827 at91_uarts[i] = &at91sam9rl_uart2_device;
828 at91_clock_associate("usart2_clk", &at91sam9rl_uart2_device.dev, "usart");
829 break;
830 case 3:
831 configure_usart3_pins(0);
832 at91_uarts[i] = &at91sam9rl_uart3_device;
833 at91_clock_associate("usart3_clk", &at91sam9rl_uart3_device.dev, "usart");
834 break;
835 case 4:
836 configure_dbgu_pins();
837 at91_uarts[i] = &at91sam9rl_dbgu_device;
838 at91_clock_associate("mck", &at91sam9rl_dbgu_device.dev, "usart");
839 break;
840 default:
841 continue;
842 }
843 at91_uarts[i]->id = i; /* update ID number to mapped ID */
844 }
845
846 /* Set serial console device */
847 if (config->console_tty < ATMEL_MAX_UART)
848 atmel_default_console_device = at91_uarts[config->console_tty];
849 if (!atmel_default_console_device)
850 printk(KERN_INFO "AT91: No default serial console defined.\n");
851}
852
853void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) 859void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins)
854{ 860{
855 struct platform_device *pdev; 861 struct platform_device *pdev;
@@ -893,8 +899,6 @@ void __init at91_set_serial_console(unsigned portnr)
893{ 899{
894 if (portnr < ATMEL_MAX_UART) 900 if (portnr < ATMEL_MAX_UART)
895 atmel_default_console_device = at91_uarts[portnr]; 901 atmel_default_console_device = at91_uarts[portnr];
896 if (!atmel_default_console_device)
897 printk(KERN_INFO "AT91: No default serial console defined.\n");
898} 902}
899 903
900void __init at91_add_device_serial(void) 904void __init at91_add_device_serial(void)
@@ -905,9 +909,11 @@ void __init at91_add_device_serial(void)
905 if (at91_uarts[i]) 909 if (at91_uarts[i])
906 platform_device_register(at91_uarts[i]); 910 platform_device_register(at91_uarts[i]);
907 } 911 }
912
913 if (!atmel_default_console_device)
914 printk(KERN_INFO "AT91: No default serial console defined.\n");
908} 915}
909#else 916#else
910void __init __deprecated at91_init_serial(struct at91_uart_config *config) {}
911void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {} 917void __init at91_register_uart(unsigned id, unsigned portnr, unsigned pins) {}
912void __init at91_set_serial_console(unsigned portnr) {} 918void __init at91_set_serial_console(unsigned portnr) {}
913void __init at91_add_device_serial(void) {} 919void __init at91_add_device_serial(void) {}
@@ -925,6 +931,7 @@ static int __init at91_add_standard_devices(void)
925 at91_add_device_rtc(); 931 at91_add_device_rtc();
926 at91_add_device_rtt(); 932 at91_add_device_rtt();
927 at91_add_device_watchdog(); 933 at91_add_device_watchdog();
934 at91_add_device_tc();
928 return 0; 935 return 0;
929} 936}
930 937
diff --git a/arch/arm/mach-at91/board-cam60.c b/arch/arm/mach-at91/board-cam60.c
new file mode 100644
index 000000000000..b22a1a004055
--- /dev/null
+++ b/arch/arm/mach-at91/board-cam60.c
@@ -0,0 +1,180 @@
1/*
2 * KwikByte CAM60 (KB9260)
3 *
4 * based on board-sam9260ek.c
5 * Copyright (C) 2005 SAN People
6 * Copyright (C) 2006 Atmel
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */
22
23#include <linux/types.h>
24#include <linux/init.h>
25#include <linux/mm.h>
26#include <linux/module.h>
27#include <linux/platform_device.h>
28#include <linux/spi/spi.h>
29#include <linux/spi/flash.h>
30
31#include <asm/hardware.h>
32#include <asm/setup.h>
33#include <asm/mach-types.h>
34#include <asm/irq.h>
35
36#include <asm/mach/arch.h>
37#include <asm/mach/map.h>
38#include <asm/mach/irq.h>
39
40#include <asm/arch/board.h>
41#include <asm/arch/gpio.h>
42
43#include "generic.h"
44
45
46static void __init cam60_map_io(void)
47{
48 /* Initialize processor: 10 MHz crystal */
49 at91sam9260_initialize(10000000);
50
51 /* DGBU on ttyS0. (Rx & Tx only) */
52 at91_register_uart(0, 0, 0);
53
54 /* set serial console to ttyS0 (ie, DBGU) */
55 at91_set_serial_console(0);
56}
57
58static void __init cam60_init_irq(void)
59{
60 at91sam9260_init_interrupts(NULL);
61}
62
63
64/*
65 * USB Host
66 */
67static struct at91_usbh_data __initdata cam60_usbh_data = {
68 .ports = 1,
69};
70
71
72/*
73 * SPI devices.
74 */
75#if defined(CONFIG_MTD_DATAFLASH)
76static struct mtd_partition __initdata cam60_spi_partitions[] = {
77 {
78 .name = "BOOT1",
79 .offset = 0,
80 .size = 4 * 1056,
81 },
82 {
83 .name = "BOOT2",
84 .offset = MTDPART_OFS_NXTBLK,
85 .size = 256 * 1056,
86 },
87 {
88 .name = "kernel",
89 .offset = MTDPART_OFS_NXTBLK,
90 .size = 2222 * 1056,
91 },
92 {
93 .name = "file system",
94 .offset = MTDPART_OFS_NXTBLK,
95 .size = MTDPART_SIZ_FULL,
96 },
97};
98
99static struct flash_platform_data __initdata cam60_spi_flash_platform_data = {
100 .name = "spi_flash",
101 .parts = cam60_spi_partitions,
102 .nr_parts = ARRAY_SIZE(cam60_spi_partitions)
103};
104#endif
105
106static struct spi_board_info cam60_spi_devices[] = {
107#if defined(CONFIG_MTD_DATAFLASH)
108 { /* DataFlash chip */
109 .modalias = "mtd_dataflash",
110 .chip_select = 0,
111 .max_speed_hz = 15 * 1000 * 1000,
112 .bus_num = 0,
113 .platform_data = &cam60_spi_flash_platform_data
114 },
115#endif
116};
117
118
119/*
120 * MACB Ethernet device
121 */
122static struct __initdata at91_eth_data cam60_macb_data = {
123 .phy_irq_pin = AT91_PIN_PB5,
124 .is_rmii = 0,
125};
126
127
128/*
129 * NAND Flash
130 */
131static struct mtd_partition __initdata cam60_nand_partition[] = {
132 {
133 .name = "nand_fs",
134 .offset = 0,
135 .size = MTDPART_SIZ_FULL,
136 },
137};
138
139static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
140{
141 *num_partitions = ARRAY_SIZE(cam60_nand_partition);
142 return cam60_nand_partition;
143}
144
145static struct at91_nand_data __initdata cam60_nand_data = {
146 .ale = 21,
147 .cle = 22,
148 // .det_pin = ... not there
149 .rdy_pin = AT91_PIN_PA9,
150 .enable_pin = AT91_PIN_PA7,
151 .partition_info = nand_partitions,
152};
153
154
155static void __init cam60_board_init(void)
156{
157 /* Serial */
158 at91_add_device_serial();
159 /* SPI */
160 at91_add_device_spi(cam60_spi_devices, ARRAY_SIZE(cam60_spi_devices));
161 /* Ethernet */
162 at91_add_device_eth(&cam60_macb_data);
163 /* USB Host */
164 /* enable USB power supply circuit */
165 at91_set_gpio_output(AT91_PIN_PB18, 1);
166 at91_add_device_usbh(&cam60_usbh_data);
167 /* NAND */
168 at91_add_device_nand(&cam60_nand_data);
169}
170
171MACHINE_START(CAM60, "KwikByte CAM60")
172 /* Maintainer: KwikByte */
173 .phys_io = AT91_BASE_SYS,
174 .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc,
175 .boot_params = AT91_SDRAM_BASE + 0x100,
176 .timer = &at91sam926x_timer,
177 .map_io = cam60_map_io,
178 .init_irq = cam60_init_irq,
179 .init_machine = cam60_board_init,
180MACHINE_END
diff --git a/arch/arm/mach-at91/board-cap9adk.c b/arch/arm/mach-at91/board-cap9adk.c
index 185437131541..e5512d1ff217 100644
--- a/arch/arm/mach-at91/board-cap9adk.c
+++ b/arch/arm/mach-at91/board-cap9adk.c
@@ -45,7 +45,7 @@
45#include <asm/arch/board.h> 45#include <asm/arch/board.h>
46#include <asm/arch/gpio.h> 46#include <asm/arch/gpio.h>
47#include <asm/arch/at91cap9_matrix.h> 47#include <asm/arch/at91cap9_matrix.h>
48#include <asm/arch/at91sam926x_mc.h> 48#include <asm/arch/at91sam9_smc.h>
49 49
50#include "generic.h" 50#include "generic.h"
51 51
diff --git a/arch/arm/mach-at91/board-csb337.c b/arch/arm/mach-at91/board-csb337.c
index 0e2a11fc5bbd..26fea4dcc3a0 100644
--- a/arch/arm/mach-at91/board-csb337.c
+++ b/arch/arm/mach-at91/board-csb337.c
@@ -43,17 +43,6 @@
43#include "generic.h" 43#include "generic.h"
44 44
45 45
46/*
47 * Serial port configuration.
48 * 0 .. 3 = USART0 .. USART3
49 * 4 = DBGU
50 */
51static struct at91_uart_config __initdata csb337_uart_config = {
52 .console_tty = 0, /* ttyS0 */
53 .nr_tty = 2,
54 .tty_map = { 4, 1, -1, -1, -1 } /* ttyS0, ..., ttyS4 */
55};
56
57static void __init csb337_map_io(void) 46static void __init csb337_map_io(void)
58{ 47{
59 /* Initialize processor: 3.6864 MHz crystal */ 48 /* Initialize processor: 3.6864 MHz crystal */
@@ -62,8 +51,11 @@ static void __init csb337_map_io(void)
62 /* Setup the LEDs */ 51 /* Setup the LEDs */
63 at91_init_leds(AT91_PIN_PB0, AT91_PIN_PB1); 52 at91_init_leds(AT91_PIN_PB0, AT91_PIN_PB1);
64 53
65 /* Setup the serial ports and console */ 54 /* DBGU on ttyS0 */
66 at91_init_serial(&csb337_uart_config); 55 at91_register_uart(0, 0, 0);
56
57 /* make console=ttyS0 the default */
58 at91_set_serial_console(0);
67} 59}
68 60
69static void __init csb337_init_irq(void) 61static void __init csb337_init_irq(void)
diff --git a/arch/arm/mach-at91/board-csb637.c b/arch/arm/mach-at91/board-csb637.c
index c5c721d27f42..419fd19b620b 100644
--- a/arch/arm/mach-at91/board-csb637.c
+++ b/arch/arm/mach-at91/board-csb637.c
@@ -40,27 +40,16 @@
40#include "generic.h" 40#include "generic.h"
41 41
42 42
43/*
44 * Serial port configuration.
45 * 0 .. 3 = USART0 .. USART3
46 * 4 = DBGU
47 */
48static struct at91_uart_config __initdata csb637_uart_config = {
49 .console_tty = 0, /* ttyS0 */
50 .nr_tty = 2,
51 .tty_map = { 4, 1, -1, -1, -1 } /* ttyS0, ..., ttyS4 */
52};
53
54static void __init csb637_map_io(void) 43static void __init csb637_map_io(void)
55{ 44{
56 /* Initialize processor: 3.6864 MHz crystal */ 45 /* Initialize processor: 3.6864 MHz crystal */
57 at91rm9200_initialize(3686400, AT91RM9200_BGA); 46 at91rm9200_initialize(3686400, AT91RM9200_BGA);
58 47
59 /* Setup the LEDs */ 48 /* DBGU on ttyS0 */
60 at91_init_leds(AT91_PIN_PB2, AT91_PIN_PB2); 49 at91_register_uart(0, 0, 0);
61 50
62 /* Setup the serial ports and console */ 51 /* make console=ttyS0 the default */
63 at91_init_serial(&csb637_uart_config); 52 at91_set_serial_console(0);
64} 53}
65 54
66static void __init csb637_init_irq(void) 55static void __init csb637_init_irq(void)
@@ -118,8 +107,19 @@ static struct platform_device csb_flash = {
118 .num_resources = ARRAY_SIZE(csb_flash_resources), 107 .num_resources = ARRAY_SIZE(csb_flash_resources),
119}; 108};
120 109
110static struct gpio_led csb_leds[] = {
111 { /* "d1", red */
112 .name = "d1",
113 .gpio = AT91_PIN_PB2,
114 .active_low = 1,
115 .default_trigger = "heartbeat",
116 },
117};
118
121static void __init csb637_board_init(void) 119static void __init csb637_board_init(void)
122{ 120{
121 /* LED(s) */
122 at91_gpio_leds(csb_leds, ARRAY_SIZE(csb_leds));
123 /* Serial */ 123 /* Serial */
124 at91_add_device_serial(); 124 at91_add_device_serial();
125 /* Ethernet */ 125 /* Ethernet */
diff --git a/arch/arm/mach-at91/board-ecbat91.c b/arch/arm/mach-at91/board-ecbat91.c
new file mode 100644
index 000000000000..e77fad443835
--- /dev/null
+++ b/arch/arm/mach-at91/board-ecbat91.c
@@ -0,0 +1,178 @@
1/*
2 * linux/arch/arm/mach-at91rm9200/board-ecbat91.c
3 * Copyright (C) 2007 emQbit.com.
4 *
5 * We started from board-dk.c, which is Copyright (C) 2005 SAN People.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
22#include <linux/types.h>
23#include <linux/init.h>
24#include <linux/mm.h>
25#include <linux/module.h>
26#include <linux/platform_device.h>
27#include <linux/spi/spi.h>
28#include <linux/spi/flash.h>
29
30#include <asm/hardware.h>
31#include <asm/setup.h>
32#include <asm/mach-types.h>
33#include <asm/irq.h>
34
35#include <asm/mach/arch.h>
36#include <asm/mach/map.h>
37#include <asm/mach/irq.h>
38
39#include <asm/arch/board.h>
40#include <asm/arch/gpio.h>
41
42#include "generic.h"
43
44
45static void __init ecb_at91map_io(void)
46{
47 /* Initialize processor: 18.432 MHz crystal */
48 at91rm9200_initialize(18432000, AT91RM9200_PQFP);
49
50 /* Setup the LEDs */
51 at91_init_leds(AT91_PIN_PC7, AT91_PIN_PC7);
52
53 /* DBGU on ttyS0. (Rx & Tx only) */
54 at91_register_uart(0, 0, 0);
55
56 /* USART0 on ttyS1. (Rx & Tx only) */
57 at91_register_uart(AT91RM9200_ID_US0, 1, 0);
58
59 /* set serial console to ttyS0 (ie, DBGU) */
60 at91_set_serial_console(0);
61}
62
63static void __init ecb_at91init_irq(void)
64{
65 at91rm9200_init_interrupts(NULL);
66}
67
68static struct at91_eth_data __initdata ecb_at91eth_data = {
69 .phy_irq_pin = AT91_PIN_PC4,
70 .is_rmii = 0,
71};
72
73static struct at91_usbh_data __initdata ecb_at91usbh_data = {
74 .ports = 1,
75};
76
77static struct at91_mmc_data __initdata ecb_at91mmc_data = {
78 .slot_b = 0,
79 .wire4 = 1,
80};
81
82
83#if defined(CONFIG_MTD_DATAFLASH)
84static struct mtd_partition __initdata my_flash0_partitions[] =
85{
86 { /* 0x8400 */
87 .name = "Darrell-loader",
88 .offset = 0,
89 .size = 12* 1056,
90 },
91 {
92 .name = "U-boot",
93 .offset = MTDPART_OFS_NXTBLK,
94 .size = 110 * 1056,
95 },
96 { /* 1336 (167 blocks) pages * 1056 bytes = 0x158700 bytes */
97 .name = "UBoot-env",
98 .offset = MTDPART_OFS_NXTBLK,
99 .size = 8 * 1056,
100 },
101 { /* 1336 (167 blocks) pages * 1056 bytes = 0x158700 bytes */
102 .name = "Kernel",
103 .offset = MTDPART_OFS_NXTBLK,
104 .size = 1534 * 1056,
105 },
106 { /* 190200 - jffs2 root filesystem */
107 .name = "Filesystem",
108 .offset = MTDPART_OFS_NXTBLK,
109 .size = MTDPART_SIZ_FULL, /* 26 sectors */
110 }
111};
112
113static struct flash_platform_data __initdata my_flash0_platform = {
114 .name = "Removable flash card",
115 .parts = my_flash0_partitions,
116 .nr_parts = ARRAY_SIZE(my_flash0_partitions)
117};
118
119#endif
120
121static struct spi_board_info __initdata ecb_at91spi_devices[] = {
122 { /* DataFlash chip */
123 .modalias = "mtd_dataflash",
124 .chip_select = 0,
125 .max_speed_hz = 10 * 1000 * 1000,
126 .bus_num = 0,
127#if defined(CONFIG_MTD_DATAFLASH)
128 .platform_data = &my_flash0_platform,
129#endif
130 },
131 { /* User accessable spi - cs1 (250KHz) */
132 .modalias = "spi-cs1",
133 .chip_select = 1,
134 .max_speed_hz = 250 * 1000,
135 },
136 { /* User accessable spi - cs2 (1MHz) */
137 .modalias = "spi-cs2",
138 .chip_select = 2,
139 .max_speed_hz = 1 * 1000 * 1000,
140 },
141 { /* User accessable spi - cs3 (10MHz) */
142 .modalias = "spi-cs3",
143 .chip_select = 3,
144 .max_speed_hz = 10 * 1000 * 1000,
145 },
146};
147
148static void __init ecb_at91board_init(void)
149{
150 /* Serial */
151 at91_add_device_serial();
152
153 /* Ethernet */
154 at91_add_device_eth(&ecb_at91eth_data);
155
156 /* USB Host */
157 at91_add_device_usbh(&ecb_at91usbh_data);
158
159 /* I2C */
160 at91_add_device_i2c(NULL, 0);
161
162 /* MMC */
163 at91_add_device_mmc(0, &ecb_at91mmc_data);
164
165 /* SPI */
166 at91_add_device_spi(ecb_at91spi_devices, ARRAY_SIZE(ecb_at91spi_devices));
167}
168
169MACHINE_START(ECBAT91, "emQbit's ECB_AT91")
170 /* Maintainer: emQbit.com */
171 .phys_io = AT91_BASE_SYS,
172 .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc,
173 .boot_params = AT91_SDRAM_BASE + 0x100,
174 .timer = &at91rm9200_timer,
175 .map_io = ecb_at91map_io,
176 .init_irq = ecb_at91init_irq,
177 .init_machine = ecb_at91board_init,
178MACHINE_END
diff --git a/arch/arm/mach-at91/board-sam9-l9260.c b/arch/arm/mach-at91/board-sam9-l9260.c
new file mode 100644
index 000000000000..8f76af5e219a
--- /dev/null
+++ b/arch/arm/mach-at91/board-sam9-l9260.c
@@ -0,0 +1,199 @@
1/*
2 * linux/arch/arm/mach-at91/board-sam9-l9260.c
3 *
4 * Copyright (C) 2005 SAN People
5 * Copyright (C) 2006 Atmel
6 * Copyright (C) 2007 Olimex Ltd
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */
22
23#include <linux/types.h>
24#include <linux/init.h>
25#include <linux/mm.h>
26#include <linux/module.h>
27#include <linux/platform_device.h>
28#include <linux/spi/spi.h>
29
30#include <asm/hardware.h>
31#include <asm/setup.h>
32#include <asm/mach-types.h>
33#include <asm/irq.h>
34
35#include <asm/mach/arch.h>
36#include <asm/mach/map.h>
37#include <asm/mach/irq.h>
38
39#include <asm/arch/board.h>
40#include <asm/arch/gpio.h>
41
42#include "generic.h"
43
44
45static void __init ek_map_io(void)
46{
47 /* Initialize processor: 18.432 MHz crystal */
48 at91sam9260_initialize(18432000);
49
50 /* Setup the LEDs */
51 at91_init_leds(AT91_PIN_PA9, AT91_PIN_PA6);
52
53 /* DBGU on ttyS0. (Rx & Tx only) */
54 at91_register_uart(0, 0, 0);
55
56 /* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
57 at91_register_uart(AT91SAM9260_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS
58 | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD
59 | ATMEL_UART_RI);
60
61 /* USART1 on ttyS2. (Rx, Tx, CTS, RTS) */
62 at91_register_uart(AT91SAM9260_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS);
63
64 /* set serial console to ttyS0 (ie, DBGU) */
65 at91_set_serial_console(0);
66}
67
68static void __init ek_init_irq(void)
69{
70 at91sam9260_init_interrupts(NULL);
71}
72
73
74/*
75 * USB Host port
76 */
77static struct at91_usbh_data __initdata ek_usbh_data = {
78 .ports = 2,
79};
80
81/*
82 * USB Device port
83 */
84static struct at91_udc_data __initdata ek_udc_data = {
85 .vbus_pin = AT91_PIN_PC5,
86 .pullup_pin = 0, /* pull-up driven by UDC */
87};
88
89
90/*
91 * SPI devices.
92 */
93static struct spi_board_info ek_spi_devices[] = {
94#if !defined(CONFIG_MMC_AT91)
95 { /* DataFlash chip */
96 .modalias = "mtd_dataflash",
97 .chip_select = 1,
98 .max_speed_hz = 15 * 1000 * 1000,
99 .bus_num = 0,
100 },
101#if defined(CONFIG_MTD_AT91_DATAFLASH_CARD)
102 { /* DataFlash card */
103 .modalias = "mtd_dataflash",
104 .chip_select = 0,
105 .max_speed_hz = 15 * 1000 * 1000,
106 .bus_num = 0,
107 },
108#endif
109#endif
110};
111
112
113/*
114 * MACB Ethernet device
115 */
116static struct at91_eth_data __initdata ek_macb_data = {
117 .phy_irq_pin = AT91_PIN_PA7,
118 .is_rmii = 0,
119};
120
121
122/*
123 * NAND flash
124 */
125static struct mtd_partition __initdata ek_nand_partition[] = {
126 {
127 .name = "Bootloader Area",
128 .offset = 0,
129 .size = 10 * 1024 * 1024,
130 },
131 {
132 .name = "User Area",
133 .offset = 10 * 1024 * 1024,
134 .size = MTDPART_SIZ_FULL,
135 },
136};
137
138static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
139{
140 *num_partitions = ARRAY_SIZE(ek_nand_partition);
141 return ek_nand_partition;
142}
143
144static struct at91_nand_data __initdata ek_nand_data = {
145 .ale = 21,
146 .cle = 22,
147// .det_pin = ... not connected
148 .rdy_pin = AT91_PIN_PC13,
149 .enable_pin = AT91_PIN_PC14,
150 .partition_info = nand_partitions,
151#if defined(CONFIG_MTD_NAND_AT91_BUSWIDTH_16)
152 .bus_width_16 = 1,
153#else
154 .bus_width_16 = 0,
155#endif
156};
157
158
159/*
160 * MCI (SD/MMC)
161 */
162static struct at91_mmc_data __initdata ek_mmc_data = {
163 .slot_b = 1,
164 .wire4 = 1,
165 .det_pin = AT91_PIN_PC8,
166 .wp_pin = AT91_PIN_PC4,
167// .vcc_pin = ... not connected
168};
169
170static void __init ek_board_init(void)
171{
172 /* Serial */
173 at91_add_device_serial();
174 /* USB Host */
175 at91_add_device_usbh(&ek_usbh_data);
176 /* USB Device */
177 at91_add_device_udc(&ek_udc_data);
178 /* SPI */
179 at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices));
180 /* NAND */
181 at91_add_device_nand(&ek_nand_data);
182 /* Ethernet */
183 at91_add_device_eth(&ek_macb_data);
184 /* MMC */
185 at91_add_device_mmc(0, &ek_mmc_data);
186 /* I2C */
187 at91_add_device_i2c(NULL, 0);
188}
189
190MACHINE_START(SAM9_L9260, "Olimex SAM9-L9260")
191 /* Maintainer: Olimex */
192 .phys_io = AT91_BASE_SYS,
193 .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc,
194 .boot_params = AT91_SDRAM_BASE + 0x100,
195 .timer = &at91sam926x_timer,
196 .map_io = ek_map_io,
197 .init_irq = ek_init_irq,
198 .init_machine = ek_board_init,
199MACHINE_END
diff --git a/arch/arm/mach-at91/board-sam9260ek.c b/arch/arm/mach-at91/board-sam9260ek.c
index b343a6c28120..4d1d9c777084 100644
--- a/arch/arm/mach-at91/board-sam9260ek.c
+++ b/arch/arm/mach-at91/board-sam9260ek.c
@@ -25,6 +25,8 @@
25#include <linux/module.h> 25#include <linux/module.h>
26#include <linux/platform_device.h> 26#include <linux/platform_device.h>
27#include <linux/spi/spi.h> 27#include <linux/spi/spi.h>
28#include <linux/spi/at73c213.h>
29#include <linux/clk.h>
28 30
29#include <asm/hardware.h> 31#include <asm/hardware.h>
30#include <asm/setup.h> 32#include <asm/setup.h>
@@ -37,29 +39,28 @@
37 39
38#include <asm/arch/board.h> 40#include <asm/arch/board.h>
39#include <asm/arch/gpio.h> 41#include <asm/arch/gpio.h>
40#include <asm/arch/at91sam926x_mc.h>
41 42
42#include "generic.h" 43#include "generic.h"
43 44
44 45
45/*
46 * Serial port configuration.
47 * 0 .. 5 = USART0 .. USART5
48 * 6 = DBGU
49 */
50static struct at91_uart_config __initdata ek_uart_config = {
51 .console_tty = 0, /* ttyS0 */
52 .nr_tty = 3,
53 .tty_map = { 6, 0, 1, -1, -1, -1, -1 } /* ttyS0, ..., ttyS6 */
54};
55
56static void __init ek_map_io(void) 46static void __init ek_map_io(void)
57{ 47{
58 /* Initialize processor: 18.432 MHz crystal */ 48 /* Initialize processor: 18.432 MHz crystal */
59 at91sam9260_initialize(18432000); 49 at91sam9260_initialize(18432000);
60 50
61 /* Setup the serial ports and console */ 51 /* DGBU on ttyS0. (Rx & Tx only) */
62 at91_init_serial(&ek_uart_config); 52 at91_register_uart(0, 0, 0);
53
54 /* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
55 at91_register_uart(AT91SAM9260_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS
56 | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD
57 | ATMEL_UART_RI);
58
59 /* USART1 on ttyS2. (Rx, Tx, RTS, CTS) */
60 at91_register_uart(AT91SAM9260_ID_US1, 2, ATMEL_UART_CTS | ATMEL_UART_RTS);
61
62 /* set serial console to ttyS0 (ie, DBGU) */
63 at91_set_serial_console(0);
63} 64}
64 65
65static void __init ek_init_irq(void) 66static void __init ek_init_irq(void)
@@ -85,6 +86,35 @@ static struct at91_udc_data __initdata ek_udc_data = {
85 86
86 87
87/* 88/*
89 * Audio
90 */
91static struct at73c213_board_info at73c213_data = {
92 .ssc_id = 0,
93 .shortname = "AT91SAM9260-EK external DAC",
94};
95
96#if defined(CONFIG_SND_AT73C213) || defined(CONFIG_SND_AT73C213_MODULE)
97static void __init at73c213_set_clk(struct at73c213_board_info *info)
98{
99 struct clk *pck0;
100 struct clk *plla;
101
102 pck0 = clk_get(NULL, "pck0");
103 plla = clk_get(NULL, "plla");
104
105 /* AT73C213 MCK Clock */
106 at91_set_B_periph(AT91_PIN_PC1, 0); /* PCK0 */
107
108 clk_set_parent(pck0, plla);
109 clk_put(plla);
110
111 info->dac_clk = pck0;
112}
113#else
114static void __init at73c213_set_clk(struct at73c213_board_info *info) {}
115#endif
116
117/*
88 * SPI devices. 118 * SPI devices.
89 */ 119 */
90static struct spi_board_info ek_spi_devices[] = { 120static struct spi_board_info ek_spi_devices[] = {
@@ -110,6 +140,8 @@ static struct spi_board_info ek_spi_devices[] = {
110 .chip_select = 0, 140 .chip_select = 0,
111 .max_speed_hz = 10 * 1000 * 1000, 141 .max_speed_hz = 10 * 1000 * 1000,
112 .bus_num = 1, 142 .bus_num = 1,
143 .mode = SPI_MODE_1,
144 .platform_data = &at73c213_data,
113 }, 145 },
114#endif 146#endif
115}; 147};
@@ -172,6 +204,24 @@ static struct at91_mmc_data __initdata ek_mmc_data = {
172// .vcc_pin = ... not connected 204// .vcc_pin = ... not connected
173}; 205};
174 206
207
208/*
209 * LEDs
210 */
211static struct gpio_led ek_leds[] = {
212 { /* "bottom" led, green, userled1 to be defined */
213 .name = "ds5",
214 .gpio = AT91_PIN_PA6,
215 .active_low = 1,
216 .default_trigger = "none",
217 },
218 { /* "power" led, yellow */
219 .name = "ds1",
220 .gpio = AT91_PIN_PA9,
221 .default_trigger = "heartbeat",
222 }
223};
224
175static void __init ek_board_init(void) 225static void __init ek_board_init(void)
176{ 226{
177 /* Serial */ 227 /* Serial */
@@ -190,6 +240,11 @@ static void __init ek_board_init(void)
190 at91_add_device_mmc(0, &ek_mmc_data); 240 at91_add_device_mmc(0, &ek_mmc_data);
191 /* I2C */ 241 /* I2C */
192 at91_add_device_i2c(NULL, 0); 242 at91_add_device_i2c(NULL, 0);
243 /* SSC (to AT73C213) */
244 at73c213_set_clk(&at73c213_data);
245 at91_add_device_ssc(AT91SAM9260_ID_SSC, ATMEL_SSC_TX);
246 /* LEDs */
247 at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
193} 248}
194 249
195MACHINE_START(AT91SAM9260EK, "Atmel AT91SAM9260-EK") 250MACHINE_START(AT91SAM9260EK, "Atmel AT91SAM9260-EK")
diff --git a/arch/arm/mach-at91/board-sam9261ek.c b/arch/arm/mach-at91/board-sam9261ek.c
index 0ce38dfa6ebe..08382c0df221 100644
--- a/arch/arm/mach-at91/board-sam9261ek.c
+++ b/arch/arm/mach-at91/board-sam9261ek.c
@@ -26,6 +26,8 @@
26#include <linux/platform_device.h> 26#include <linux/platform_device.h>
27#include <linux/spi/spi.h> 27#include <linux/spi/spi.h>
28#include <linux/spi/ads7846.h> 28#include <linux/spi/ads7846.h>
29#include <linux/spi/at73c213.h>
30#include <linux/clk.h>
29#include <linux/dm9000.h> 31#include <linux/dm9000.h>
30#include <linux/fb.h> 32#include <linux/fb.h>
31#include <linux/gpio_keys.h> 33#include <linux/gpio_keys.h>
@@ -44,22 +46,11 @@
44 46
45#include <asm/arch/board.h> 47#include <asm/arch/board.h>
46#include <asm/arch/gpio.h> 48#include <asm/arch/gpio.h>
47#include <asm/arch/at91sam926x_mc.h> 49#include <asm/arch/at91sam9_smc.h>
48 50
49#include "generic.h" 51#include "generic.h"
50 52
51 53
52/*
53 * Serial port configuration.
54 * 0 .. 2 = USART0 .. USART2
55 * 3 = DBGU
56 */
57static struct at91_uart_config __initdata ek_uart_config = {
58 .console_tty = 0, /* ttyS0 */
59 .nr_tty = 1,
60 .tty_map = { 3, -1, -1, -1 } /* ttyS0, ..., ttyS3 */
61};
62
63static void __init ek_map_io(void) 54static void __init ek_map_io(void)
64{ 55{
65 /* Initialize processor: 18.432 MHz crystal */ 56 /* Initialize processor: 18.432 MHz crystal */
@@ -68,8 +59,11 @@ static void __init ek_map_io(void)
68 /* Setup the LEDs */ 59 /* Setup the LEDs */
69 at91_init_leds(AT91_PIN_PA13, AT91_PIN_PA14); 60 at91_init_leds(AT91_PIN_PA13, AT91_PIN_PA14);
70 61
71 /* Setup the serial ports and console */ 62 /* DGBU on ttyS0. (Rx & Tx only) */
72 at91_init_serial(&ek_uart_config); 63 at91_register_uart(0, 0, 0);
64
65 /* set serial console to ttyS0 (ie, DBGU) */
66 at91_set_serial_console(0);
73} 67}
74 68
75static void __init ek_init_irq(void) 69static void __init ek_init_irq(void)
@@ -239,6 +233,35 @@ static void __init ek_add_device_ts(void) {}
239#endif 233#endif
240 234
241/* 235/*
236 * Audio
237 */
238static struct at73c213_board_info at73c213_data = {
239 .ssc_id = 1,
240 .shortname = "AT91SAM9261-EK external DAC",
241};
242
243#if defined(CONFIG_SND_AT73C213) || defined(CONFIG_SND_AT73C213_MODULE)
244static void __init at73c213_set_clk(struct at73c213_board_info *info)
245{
246 struct clk *pck2;
247 struct clk *plla;
248
249 pck2 = clk_get(NULL, "pck2");
250 plla = clk_get(NULL, "plla");
251
252 /* AT73C213 MCK Clock */
253 at91_set_B_periph(AT91_PIN_PB31, 0); /* PCK2 */
254
255 clk_set_parent(pck2, plla);
256 clk_put(plla);
257
258 info->dac_clk = pck2;
259}
260#else
261static void __init at73c213_set_clk(struct at73c213_board_info *info) {}
262#endif
263
264/*
242 * SPI devices 265 * SPI devices
243 */ 266 */
244static struct spi_board_info ek_spi_devices[] = { 267static struct spi_board_info ek_spi_devices[] = {
@@ -256,6 +279,7 @@ static struct spi_board_info ek_spi_devices[] = {
256 .bus_num = 0, 279 .bus_num = 0,
257 .platform_data = &ads_info, 280 .platform_data = &ads_info,
258 .irq = AT91SAM9261_ID_IRQ0, 281 .irq = AT91SAM9261_ID_IRQ0,
282 .controller_data = (void *) AT91_PIN_PA28, /* CS pin */
259 }, 283 },
260#endif 284#endif
261#if defined(CONFIG_MTD_AT91_DATAFLASH_CARD) 285#if defined(CONFIG_MTD_AT91_DATAFLASH_CARD)
@@ -271,6 +295,9 @@ static struct spi_board_info ek_spi_devices[] = {
271 .chip_select = 3, 295 .chip_select = 3,
272 .max_speed_hz = 10 * 1000 * 1000, 296 .max_speed_hz = 10 * 1000 * 1000,
273 .bus_num = 0, 297 .bus_num = 0,
298 .mode = SPI_MODE_1,
299 .platform_data = &at73c213_data,
300 .controller_data = (void*) AT91_PIN_PA29, /* default for CS3 is PA6, but it must be PA29 */
274 }, 301 },
275#endif 302#endif
276}; 303};
@@ -460,6 +487,29 @@ static void __init ek_add_device_buttons(void)
460static void __init ek_add_device_buttons(void) {} 487static void __init ek_add_device_buttons(void) {}
461#endif 488#endif
462 489
490/*
491 * LEDs
492 */
493static struct gpio_led ek_leds[] = {
494 { /* "bottom" led, green, userled1 to be defined */
495 .name = "ds7",
496 .gpio = AT91_PIN_PA14,
497 .active_low = 1,
498 .default_trigger = "none",
499 },
500 { /* "top" led, green, userled2 to be defined */
501 .name = "ds8",
502 .gpio = AT91_PIN_PA13,
503 .active_low = 1,
504 .default_trigger = "none",
505 },
506 { /* "power" led, yellow */
507 .name = "ds1",
508 .gpio = AT91_PIN_PA23,
509 .default_trigger = "heartbeat",
510 }
511};
512
463static void __init ek_board_init(void) 513static void __init ek_board_init(void)
464{ 514{
465 /* Serial */ 515 /* Serial */
@@ -481,6 +531,9 @@ static void __init ek_board_init(void)
481 at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices)); 531 at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices));
482 /* Touchscreen */ 532 /* Touchscreen */
483 ek_add_device_ts(); 533 ek_add_device_ts();
534 /* SSC (to AT73C213) */
535 at73c213_set_clk(&at73c213_data);
536 at91_add_device_ssc(AT91SAM9261_ID_SSC1, ATMEL_SSC_TX);
484#else 537#else
485 /* MMC */ 538 /* MMC */
486 at91_add_device_mmc(0, &ek_mmc_data); 539 at91_add_device_mmc(0, &ek_mmc_data);
@@ -489,6 +542,8 @@ static void __init ek_board_init(void)
489 at91_add_device_lcdc(&ek_lcdc_data); 542 at91_add_device_lcdc(&ek_lcdc_data);
490 /* Push Buttons */ 543 /* Push Buttons */
491 ek_add_device_buttons(); 544 ek_add_device_buttons();
545 /* LEDs */
546 at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
492} 547}
493 548
494MACHINE_START(AT91SAM9261EK, "Atmel AT91SAM9261-EK") 549MACHINE_START(AT91SAM9261EK, "Atmel AT91SAM9261-EK")
diff --git a/arch/arm/mach-at91/board-sam9263ek.c b/arch/arm/mach-at91/board-sam9263ek.c
index bf103b24c937..b4cd5d0ed597 100644
--- a/arch/arm/mach-at91/board-sam9263ek.c
+++ b/arch/arm/mach-at91/board-sam9263ek.c
@@ -43,29 +43,24 @@
43 43
44#include <asm/arch/board.h> 44#include <asm/arch/board.h>
45#include <asm/arch/gpio.h> 45#include <asm/arch/gpio.h>
46#include <asm/arch/at91sam926x_mc.h> 46#include <asm/arch/at91sam9_smc.h>
47 47
48#include "generic.h" 48#include "generic.h"
49 49
50 50
51/*
52 * Serial port configuration.
53 * 0 .. 2 = USART0 .. USART2
54 * 3 = DBGU
55 */
56static struct at91_uart_config __initdata ek_uart_config = {
57 .console_tty = 0, /* ttyS0 */
58 .nr_tty = 2,
59 .tty_map = { 3, 0, -1, -1, } /* ttyS0, ..., ttyS3 */
60};
61
62static void __init ek_map_io(void) 51static void __init ek_map_io(void)
63{ 52{
64 /* Initialize processor: 16.367 MHz crystal */ 53 /* Initialize processor: 16.367 MHz crystal */
65 at91sam9263_initialize(16367660); 54 at91sam9263_initialize(16367660);
66 55
67 /* Setup the serial ports and console */ 56 /* DGBU on ttyS0. (Rx & Tx only) */
68 at91_init_serial(&ek_uart_config); 57 at91_register_uart(0, 0, 0);
58
59 /* USART0 on ttyS1. (Rx, Tx, RTS, CTS) */
60 at91_register_uart(AT91SAM9263_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS);
61
62 /* set serial console to ttyS0 (ie, DBGU) */
63 at91_set_serial_console(0);
69} 64}
70 65
71static void __init ek_init_irq(void) 66static void __init ek_init_irq(void)
@@ -341,7 +336,7 @@ static struct gpio_led ek_leds[] = {
341 .name = "ds3", 336 .name = "ds3",
342 .gpio = AT91_PIN_PB7, 337 .gpio = AT91_PIN_PB7,
343 .default_trigger = "heartbeat", 338 .default_trigger = "heartbeat",
344 }, 339 }
345}; 340};
346 341
347 342
diff --git a/arch/arm/mach-at91/board-sam9rlek.c b/arch/arm/mach-at91/board-sam9rlek.c
index bc0546d7245f..ffc0597aee8d 100644
--- a/arch/arm/mach-at91/board-sam9rlek.c
+++ b/arch/arm/mach-at91/board-sam9rlek.c
@@ -29,29 +29,24 @@
29 29
30#include <asm/arch/board.h> 30#include <asm/arch/board.h>
31#include <asm/arch/gpio.h> 31#include <asm/arch/gpio.h>
32#include <asm/arch/at91sam926x_mc.h> 32#include <asm/arch/at91sam9_smc.h>
33 33
34#include "generic.h" 34#include "generic.h"
35 35
36 36
37/*
38 * Serial port configuration.
39 * 0 .. 3 = USART0 .. USART3
40 * 4 = DBGU
41 */
42static struct at91_uart_config __initdata ek_uart_config = {
43 .console_tty = 0, /* ttyS0 */
44 .nr_tty = 2,
45 .tty_map = { 4, 0, -1, -1, -1 } /* ttyS0, ..., ttyS4 */
46};
47
48static void __init ek_map_io(void) 37static void __init ek_map_io(void)
49{ 38{
50 /* Initialize processor: 12.000 MHz crystal */ 39 /* Initialize processor: 12.000 MHz crystal */
51 at91sam9rl_initialize(12000000); 40 at91sam9rl_initialize(12000000);
52 41
53 /* Setup the serial ports and console */ 42 /* DGBU on ttyS0. (Rx & Tx only) */
54 at91_init_serial(&ek_uart_config); 43 at91_register_uart(0, 0, 0);
44
45 /* USART0 on ttyS1. (Rx, Tx, CTS, RTS) */
46 at91_register_uart(AT91SAM9RL_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS);
47
48 /* set serial console to ttyS0 (ie, DBGU) */
49 at91_set_serial_console(0);
55} 50}
56 51
57static void __init ek_init_irq(void) 52static void __init ek_init_irq(void)
diff --git a/arch/arm/mach-at91/board-yl-9200.c b/arch/arm/mach-at91/board-yl-9200.c
new file mode 100755
index 000000000000..b5717108991d
--- /dev/null
+++ b/arch/arm/mach-at91/board-yl-9200.c
@@ -0,0 +1,683 @@
1/*
2 * linux/arch/arm/mach-at91/board-yl-9200.c
3 *
4 * Adapted from:
5 *various board files in
6 * /arch/arm/mach-at91
7 * modifications to convert to YL-9200 platform
8 * Copyright (C) 2007 S.Birtles
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 */
24
25#include <linux/types.h>
26#include <linux/init.h>
27#include <linux/mm.h>
28#include <linux/module.h>
29#include <linux/platform_device.h>
30#include <linux/spi/spi.h>
31/*#include <linux/can_bus/candata.h>*/
32#include <linux/spi/ads7846.h>
33#include <linux/mtd/physmap.h>
34
35/*#include <sound/gpio_sounder.h>*/
36#include <asm/hardware.h>
37#include <asm/setup.h>
38#include <asm/mach-types.h>
39#include <asm/irq.h>
40
41#include <asm/mach/arch.h>
42#include <asm/mach/map.h>
43#include <asm/mach/irq.h>
44
45#include <asm/arch/board.h>
46#include <asm/arch/gpio.h>
47#include <asm/arch/at91rm9200_mc.h>
48#include <linux/gpio_keys.h>
49#include <linux/input.h>
50
51#include "generic.h"
52#include <asm/arch/at91_pio.h>
53
54#define YL_9200_FLASH_BASE AT91_CHIPSELECT_0
55#define YL_9200_FLASH_SIZE 0x800000
56
57/*
58 * Serial port configuration.
59 * 0 .. 3 = USART0 .. USART3
60 * 4 = DBGU
61 *atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL
62 *atmel_usart.1: ttyS1 at MMIO 0xfffc0000 (irq = 6) is a ATMEL_SERIAL
63 *atmel_usart.2: ttyS2 at MMIO 0xfffc4000 (irq = 7) is a ATMEL_SERIAL
64 *atmel_usart.3: ttyS3 at MMIO 0xfffc8000 (irq = 8) is a ATMEL_SERIAL
65 *atmel_usart.4: ttyS4 at MMIO 0xfffcc000 (irq = 9) is a ATMEL_SERIAL
66 * on the YL-9200 we are sitting at the following
67 *ttyS0 at MMIO 0xfefff200 (irq = 1) is a AT91_SERIAL
68 *ttyS1 at MMIO 0xfefc4000 (irq = 7) is a AT91_SERIAL
69 */
70
71/* extern void __init yl_9200_add_device_sounder(struct gpio_sounder *sounders, int nr);*/
72
73static struct at91_uart_config __initdata yl_9200_uart_config = {
74 .console_tty = 0, /* ttyS0 */
75 .nr_tty = 3,
76 .tty_map = { 4, 1, 0, -1, -1 } /* ttyS0, ..., ttyS4 */
77};
78
79static void __init yl_9200_map_io(void)
80{
81 /* Initialize processor: 18.432 MHz crystal */
82 /*Also initialises register clocks & gpio*/
83 at91rm9200_initialize(18432000, AT91RM9200_PQFP); /*we have a 3 bank system*/
84
85 /* Setup the serial ports and console */
86 at91_init_serial(&yl_9200_uart_config);
87
88 /* Setup the LEDs D2=PB17,D3=PB16 */
89 at91_init_leds(AT91_PIN_PB16,AT91_PIN_PB17); /*cpu-led,timer-led*/
90}
91
92static void __init yl_9200_init_irq(void)
93{
94 at91rm9200_init_interrupts(NULL);
95}
96
97static struct at91_eth_data __initdata yl_9200_eth_data = {
98 .phy_irq_pin = AT91_PIN_PB28,
99 .is_rmii = 1,
100};
101
102static struct at91_usbh_data __initdata yl_9200_usbh_data = {
103 .ports = 1, /* this should be 1 not 2 for the Yl9200*/
104};
105
106static struct at91_udc_data __initdata yl_9200_udc_data = {
107/*on sheet 7 Schemitic rev 1.0*/
108 .pullup_pin = AT91_PIN_PC4,
109 .vbus_pin= AT91_PIN_PC5,
110 .pullup_active_low = 1, /*ACTIVE LOW!! due to PNP transistor on page 7*/
111
112};
113/*
114static struct at91_cf_data __initdata yl_9200_cf_data = {
115TODO S.BIRTLES
116 .det_pin = AT91_PIN_xxx,
117 .rst_pin = AT91_PIN_xxx,
118 .irq_pin = ... not connected
119 .vcc_pin = ... always powered
120
121};
122*/
123static struct at91_mmc_data __initdata yl_9200_mmc_data = {
124 .det_pin = AT91_PIN_PB9, /*THIS LOOKS CORRECT SHEET7*/
125/* .wp_pin = ... not connected SHEET7*/
126 .slot_b = 0,
127 .wire4 = 1,
128
129};
130
131/* --------------------------------------------------------------------
132 * Touch screen
133 * -------------------------------------------------------------------- */
134#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
135static int ads7843_pendown_state(void)
136{
137 return !at91_get_gpio_value(AT91_PIN_PB11); /* Touchscreen PENIRQ */
138}
139
140static void __init at91_init_device_ts(void)
141{
142/*IMPORTANT NOTE THE SPI INTERFACE IS ALREADY CONFIGURED BY XXX_DEVICES.C
143THAT IS TO SAY THAT MISO,MOSI,SPCK AND CS are already configured
144we only need to enable the other datapins which are:
145PB10/RK1 BUSY
146*/
147/* Touchscreen BUSY signal , pin,use pullup ( TODO not currently used in the ADS7843/6.c driver)*/
148at91_set_gpio_input(AT91_PIN_PB10, 1);
149}
150
151#else
152static void __init at91_init_device_ts(void) {}
153#endif
154
155static struct ads7846_platform_data ads_info = {
156 .model = 7843,
157 .x_min = 150,
158 .x_max = 3830,
159 .y_min = 190,
160 .y_max = 3830,
161 .vref_delay_usecs = 100,
162/* for a 8" touch screen*/
163 //.x_plate_ohms = 603, //= 450, S.Birtles TODO
164 //.y_plate_ohms = 332, //= 250, S.Birtles TODO
165/*for a 10.4" touch screen*/
166 //.x_plate_ohms =611,
167 //.y_plate_ohms =325,
168
169 .x_plate_ohms = 576,
170 .y_plate_ohms = 366,
171 //
172 .pressure_max = 15000, /*generally nonsense on the 7843*/
173 /*number of times to send query to chip in a given run 0 equals one time (do not set to 0!! ,there is a bug in ADS 7846 code)*/
174 .debounce_max = 1,
175 .debounce_rep = 0,
176 .debounce_tol = (~0),
177 .get_pendown_state = ads7843_pendown_state,
178};
179
180/*static struct canbus_platform_data can_info = {
181 .model = 2510,
182};
183*/
184
185static struct spi_board_info yl_9200_spi_devices[] = {
186/*this sticks it at:
187 /sys/devices/platform/atmel_spi.0/spi0.0
188 /sys/bus/platform/devices/
189Documentation/spi IIRC*/
190
191#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
192 /*(this IS correct 04-NOV-2007)*/
193 {
194 .modalias = "ads7846", /* because the driver is called ads7846*/
195 .chip_select = 0, /*THIS MUST BE AN INDEX INTO AN ARRAY OF pins */
196/*this is ONLY TO BE USED if chipselect above is not used, it passes a pin directly for the chip select*/
197 /*.controller_data =AT91_PIN_PA3 ,*/
198 .max_speed_hz = 5000*26, /*(4700 * 26)-125000 * 26, (max sample rate @ 3V) * (cmd + data + overhead) */
199 .bus_num = 0,
200 .platform_data = &ads_info,
201 .irq = AT91_PIN_PB11,
202 },
203#endif
204/*we need to put our CAN driver data here!!*/
205/*THIS IS ALL DUMMY DATA*/
206/* {
207 .modalias = "mcp2510", //DUMMY for MCP2510 chip
208 .chip_select = 1,*/ /*THIS MUST BE AN INDEX INTO AN ARRAY OF pins */
209 /*this is ONLY TO BE USED if chipselect above is not used, it passes a pin directly for the chip select */
210 /* .controller_data =AT91_PIN_PA4 ,
211 .max_speed_hz = 25000 * 26,
212 .bus_num = 0,
213 .platform_data = &can_info,
214 .irq = AT91_PIN_PC0,
215 },
216 */
217 //max SPI chip needs to go here
218};
219
220static struct mtd_partition __initdata yl_9200_nand_partition[] = {
221 {
222 .name = "AT91 NAND partition 1, boot",
223 .offset = 0,
224 .size = 1 * SZ_256K
225 },
226 {
227 .name = "AT91 NAND partition 2, kernel",
228 .offset = 1 * SZ_256K,
229 .size = 2 * SZ_1M - 1 * SZ_256K
230 },
231 {
232 .name = "AT91 NAND partition 3, filesystem",
233 .offset = 2 * SZ_1M,
234 .size = 14 * SZ_1M
235 },
236 {
237 .name = "AT91 NAND partition 4, storage",
238 .offset = 16 * SZ_1M,
239 .size = 16 * SZ_1M
240 },
241 {
242 .name = "AT91 NAND partition 5, ext-fs",
243 .offset = 32 * SZ_1M,
244 .size = 32 * SZ_1M
245 },
246};
247
248static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
249{
250 *num_partitions = ARRAY_SIZE(yl_9200_nand_partition);
251 return yl_9200_nand_partition;
252}
253
254static struct at91_nand_data __initdata yl_9200_nand_data = {
255 .ale= 6,
256 .cle= 7,
257 /*.det_pin = AT91_PIN_PCxx,*/ /*we don't have a det pin because NandFlash is fixed to board*/
258 .rdy_pin = AT91_PIN_PC14, /*R/!B Sheet10*/
259 .enable_pin = AT91_PIN_PC15, /*!CE Sheet10 */
260 .partition_info = nand_partitions,
261};
262
263
264
265/*
266TODO S.Birtles
267potentially a problem with the size above
268physmap platform flash device: 00800000 at 10000000
269physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
270NOR chip too large to fit in mapping. Attempting to cope...
271 Intel/Sharp Extended Query Table at 0x0031
272Using buffer write method
273cfi_cmdset_0001: Erase suspend on write enabled
274Reducing visibility of 16384KiB chip to 8192KiB
275*/
276
277static struct mtd_partition yl_9200_flash_partitions[] = {
278 {
279 .name = "Bootloader",
280 .size = 0x00040000,
281 .offset = 0,
282 .mask_flags = MTD_WRITEABLE /* force read-only */
283 },{
284 .name = "Kernel",
285 .size = 0x001C0000,
286 .offset = 0x00040000,
287 },{
288 .name = "Filesystem",
289 .size = MTDPART_SIZ_FULL,
290 .offset = 0x00200000
291 }
292
293};
294
295static struct physmap_flash_data yl_9200_flash_data = {
296 .width = 2,
297 .parts = yl_9200_flash_partitions,
298 .nr_parts = ARRAY_SIZE(yl_9200_flash_partitions),
299};
300
301static struct resource yl_9200_flash_resources[] = {
302{
303 .start = YL_9200_FLASH_BASE,
304 .end = YL_9200_FLASH_BASE + YL_9200_FLASH_SIZE - 1,
305 .flags = IORESOURCE_MEM,
306 }
307};
308
309static struct platform_device yl_9200_flash = {
310 .name = "physmap-flash",
311 .id = 0,
312 .dev = {
313 .platform_data = &yl_9200_flash_data,
314 },
315 .resource = yl_9200_flash_resources,
316 .num_resources = ARRAY_SIZE(yl_9200_flash_resources),
317};
318
319
320static struct gpio_led yl_9200_leds[] = {
321/*D2 &D3 are passed directly in via at91_init_leds*/
322 {
323 .name = "led4", /*D4*/
324 .gpio = AT91_PIN_PB15,
325 .active_low = 1,
326 .default_trigger = "heartbeat",
327 /*.default_trigger = "timer",*/
328 },
329 {
330 .name = "led5", /*D5*/
331 .gpio = AT91_PIN_PB8,
332 .active_low = 1,
333 .default_trigger = "heartbeat",
334 }
335};
336
337//static struct gpio_sounder yl_9200_sounder[] = {*/
338/*This is a simple speaker attached to a gpo line*/
339
340// {
341// .name = "Speaker", /*LS1*/
342// .gpio = AT91_PIN_PA22,
343// .active_low = 0,
344// .default_trigger = "heartbeat",
345 /*.default_trigger = "timer",*/
346// },
347//};
348
349
350
351static struct i2c_board_info __initdata yl_9200_i2c_devices[] = {
352 {
353 /*TODO*/
354 I2C_BOARD_INFO("CS4334", 0x00),
355 }
356};
357
358
359 /*
360 * GPIO Buttons
361 */
362#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
363static struct gpio_keys_button yl_9200_buttons[] = {
364 {
365 .gpio = AT91_PIN_PA24,
366 .code = BTN_2,
367 .desc = "SW2",
368 .active_low = 1,
369 .wakeup = 1,
370 },
371 {
372 .gpio = AT91_PIN_PB1,
373 .code = BTN_3,
374 .desc = "SW3",
375 .active_low = 1,
376 .wakeup = 1,
377 },
378 {
379 .gpio = AT91_PIN_PB2,
380 .code = BTN_4,
381 .desc = "SW4",
382 .active_low = 1,
383 .wakeup = 1,
384 },
385 {
386 .gpio = AT91_PIN_PB6,
387 .code = BTN_5,
388 .desc = "SW5",
389 .active_low = 1,
390 .wakeup = 1,
391 },
392
393};
394
395static struct gpio_keys_platform_data yl_9200_button_data = {
396 .buttons = yl_9200_buttons,
397 .nbuttons = ARRAY_SIZE(yl_9200_buttons),
398};
399
400static struct platform_device yl_9200_button_device = {
401 .name = "gpio-keys",
402 .id = -1,
403 .num_resources = 0,
404 .dev = {
405 .platform_data = &yl_9200_button_data,
406 }
407};
408
409static void __init yl_9200_add_device_buttons(void)
410{
411 //SW2
412 at91_set_gpio_input(AT91_PIN_PA24, 0);
413 at91_set_deglitch(AT91_PIN_PA24, 1);
414
415 //SW3
416 at91_set_gpio_input(AT91_PIN_PB1, 0);
417 at91_set_deglitch(AT91_PIN_PB1, 1);
418 //SW4
419 at91_set_gpio_input(AT91_PIN_PB2, 0);
420 at91_set_deglitch(AT91_PIN_PB2, 1);
421
422 //SW5
423 at91_set_gpio_input(AT91_PIN_PB6, 0);
424 at91_set_deglitch(AT91_PIN_PB6, 1);
425
426
427 at91_set_gpio_output(AT91_PIN_PB7, 1); /* #TURN BUTTONS ON, SHEET 5 of schematics */
428 platform_device_register(&yl_9200_button_device);
429}
430#else
431static void __init yl_9200_add_device_buttons(void) {}
432#endif
433
434#if defined(CONFIG_FB_S1D135XX) || defined(CONFIG_FB_S1D13XXX_MODULE)
435#include <video/s1d13xxxfb.h>
436
437/* EPSON S1D13806 FB (discontinued chip)*/
438/* EPSON S1D13506 FB */
439
440#define AT91_FB_REG_BASE 0x80000000L
441#define AT91_FB_REG_SIZE 0x200
442#define AT91_FB_VMEM_BASE 0x80200000L
443#define AT91_FB_VMEM_SIZE 0x200000L
444
445/*#define S1D_DISPLAY_WIDTH 640*/
446/*#define S1D_DISPLAY_HEIGHT 480*/
447
448
449static void __init yl_9200_init_video(void)
450{
451 at91_sys_write(AT91_PIOC + PIO_ASR,AT91_PIN_PC6);
452 at91_sys_write(AT91_PIOC + PIO_BSR,0);
453 at91_sys_write(AT91_PIOC + PIO_ASR,AT91_PIN_PC6);
454
455 at91_sys_write( AT91_SMC_CSR(2),
456 AT91_SMC_NWS_(0x4) |
457 AT91_SMC_WSEN |
458 AT91_SMC_TDF_(0x100) |
459 AT91_SMC_DBW
460 );
461
462
463
464}
465
466
467static struct s1d13xxxfb_regval yl_9200_s1dfb_initregs[] =
468{
469 {S1DREG_MISC, 0x00}, /* Miscellaneous Register*/
470 {S1DREG_COM_DISP_MODE, 0x01}, /* Display Mode Register, LCD only*/
471 {S1DREG_GPIO_CNF0, 0x00}, /* General IO Pins Configuration Register*/
472 {S1DREG_GPIO_CTL0, 0x00}, /* General IO Pins Control Register*/
473 {S1DREG_CLK_CNF, 0x11}, /* Memory Clock Configuration Register*/
474 {S1DREG_LCD_CLK_CNF, 0x10}, /* LCD Pixel Clock Configuration Register*/
475 {S1DREG_CRT_CLK_CNF, 0x12}, /* CRT/TV Pixel Clock Configuration Register*/
476 {S1DREG_MPLUG_CLK_CNF, 0x01}, /* MediaPlug Clock Configuration Register*/
477 {S1DREG_CPU2MEM_WST_SEL, 0x02}, /* CPU To Memory Wait State Select Register*/
478 {S1DREG_MEM_CNF, 0x00}, /* Memory Configuration Register*/
479 {S1DREG_SDRAM_REF_RATE, 0x04}, /* DRAM Refresh Rate Register, MCLK source*/
480 {S1DREG_SDRAM_TC0, 0x12}, /* DRAM Timings Control Register 0*/
481 {S1DREG_SDRAM_TC1, 0x02}, /* DRAM Timings Control Register 1*/
482 {S1DREG_PANEL_TYPE, 0x25}, /* Panel Type Register*/
483 {S1DREG_MOD_RATE, 0x00}, /* MOD Rate Register*/
484 {S1DREG_LCD_DISP_HWIDTH, 0x4F}, /* LCD Horizontal Display Width Register*/
485 {S1DREG_LCD_NDISP_HPER, 0x13}, /* LCD Horizontal Non-Display Period Register*/
486 {S1DREG_TFT_FPLINE_START, 0x01}, /* TFT FPLINE Start Position Register*/
487 {S1DREG_TFT_FPLINE_PWIDTH, 0x0c}, /* TFT FPLINE Pulse Width Register*/
488 {S1DREG_LCD_DISP_VHEIGHT0, 0xDF}, /* LCD Vertical Display Height Register 0*/
489 {S1DREG_LCD_DISP_VHEIGHT1, 0x01}, /* LCD Vertical Display Height Register 1*/
490 {S1DREG_LCD_NDISP_VPER, 0x2c}, /* LCD Vertical Non-Display Period Register*/
491 {S1DREG_TFT_FPFRAME_START, 0x0a}, /* TFT FPFRAME Start Position Register*/
492 {S1DREG_TFT_FPFRAME_PWIDTH, 0x02}, /* TFT FPFRAME Pulse Width Register*/
493 {S1DREG_LCD_DISP_MODE, 0x05}, /* LCD Display Mode Register*/
494 {S1DREG_LCD_MISC, 0x01}, /* LCD Miscellaneous Register*/
495 {S1DREG_LCD_DISP_START0, 0x00}, /* LCD Display Start Address Register 0*/
496 {S1DREG_LCD_DISP_START1, 0x00}, /* LCD Display Start Address Register 1*/
497 {S1DREG_LCD_DISP_START2, 0x00}, /* LCD Display Start Address Register 2*/
498 {S1DREG_LCD_MEM_OFF0, 0x80}, /* LCD Memory Address Offset Register 0*/
499 {S1DREG_LCD_MEM_OFF1, 0x02}, /* LCD Memory Address Offset Register 1*/
500 {S1DREG_LCD_PIX_PAN, 0x03}, /* LCD Pixel Panning Register*/
501 {S1DREG_LCD_DISP_FIFO_HTC, 0x00}, /* LCD Display FIFO High Threshold Control Register*/
502 {S1DREG_LCD_DISP_FIFO_LTC, 0x00}, /* LCD Display FIFO Low Threshold Control Register*/
503 {S1DREG_CRT_DISP_HWIDTH, 0x4F}, /* CRT/TV Horizontal Display Width Register*/
504 {S1DREG_CRT_NDISP_HPER, 0x13}, /* CRT/TV Horizontal Non-Display Period Register*/
505 {S1DREG_CRT_HRTC_START, 0x01}, /* CRT/TV HRTC Start Position Register*/
506 {S1DREG_CRT_HRTC_PWIDTH, 0x0B}, /* CRT/TV HRTC Pulse Width Register*/
507 {S1DREG_CRT_DISP_VHEIGHT0, 0xDF}, /* CRT/TV Vertical Display Height Register 0*/
508 {S1DREG_CRT_DISP_VHEIGHT1, 0x01}, /* CRT/TV Vertical Display Height Register 1*/
509 {S1DREG_CRT_NDISP_VPER, 0x2B}, /* CRT/TV Vertical Non-Display Period Register*/
510 {S1DREG_CRT_VRTC_START, 0x09}, /* CRT/TV VRTC Start Position Register*/
511 {S1DREG_CRT_VRTC_PWIDTH, 0x01}, /* CRT/TV VRTC Pulse Width Register*/
512 {S1DREG_TV_OUT_CTL, 0x18}, /* TV Output Control Register */
513 {S1DREG_CRT_DISP_MODE, 0x05}, /* CRT/TV Display Mode Register, 16BPP*/
514 {S1DREG_CRT_DISP_START0, 0x00}, /* CRT/TV Display Start Address Register 0*/
515 {S1DREG_CRT_DISP_START1, 0x00}, /* CRT/TV Display Start Address Register 1*/
516 {S1DREG_CRT_DISP_START2, 0x00}, /* CRT/TV Display Start Address Register 2*/
517 {S1DREG_CRT_MEM_OFF0, 0x80}, /* CRT/TV Memory Address Offset Register 0*/
518 {S1DREG_CRT_MEM_OFF1, 0x02}, /* CRT/TV Memory Address Offset Register 1*/
519 {S1DREG_CRT_PIX_PAN, 0x00}, /* CRT/TV Pixel Panning Register*/
520 {S1DREG_CRT_DISP_FIFO_HTC, 0x00}, /* CRT/TV Display FIFO High Threshold Control Register*/
521 {S1DREG_CRT_DISP_FIFO_LTC, 0x00}, /* CRT/TV Display FIFO Low Threshold Control Register*/
522 {S1DREG_LCD_CUR_CTL, 0x00}, /* LCD Ink/Cursor Control Register*/
523 {S1DREG_LCD_CUR_START, 0x01}, /* LCD Ink/Cursor Start Address Register*/
524 {S1DREG_LCD_CUR_XPOS0, 0x00}, /* LCD Cursor X Position Register 0*/
525 {S1DREG_LCD_CUR_XPOS1, 0x00}, /* LCD Cursor X Position Register 1*/
526 {S1DREG_LCD_CUR_YPOS0, 0x00}, /* LCD Cursor Y Position Register 0*/
527 {S1DREG_LCD_CUR_YPOS1, 0x00}, /* LCD Cursor Y Position Register 1*/
528 {S1DREG_LCD_CUR_BCTL0, 0x00}, /* LCD Ink/Cursor Blue Color 0 Register*/
529 {S1DREG_LCD_CUR_GCTL0, 0x00}, /* LCD Ink/Cursor Green Color 0 Register*/
530 {S1DREG_LCD_CUR_RCTL0, 0x00}, /* LCD Ink/Cursor Red Color 0 Register*/
531 {S1DREG_LCD_CUR_BCTL1, 0x1F}, /* LCD Ink/Cursor Blue Color 1 Register*/
532 {S1DREG_LCD_CUR_GCTL1, 0x3F}, /* LCD Ink/Cursor Green Color 1 Register*/
533 {S1DREG_LCD_CUR_RCTL1, 0x1F}, /* LCD Ink/Cursor Red Color 1 Register*/
534 {S1DREG_LCD_CUR_FIFO_HTC, 0x00}, /* LCD Ink/Cursor FIFO Threshold Register*/
535 {S1DREG_CRT_CUR_CTL, 0x00}, /* CRT/TV Ink/Cursor Control Register*/
536 {S1DREG_CRT_CUR_START, 0x01}, /* CRT/TV Ink/Cursor Start Address Register*/
537 {S1DREG_CRT_CUR_XPOS0, 0x00}, /* CRT/TV Cursor X Position Register 0*/
538 {S1DREG_CRT_CUR_XPOS1, 0x00}, /* CRT/TV Cursor X Position Register 1*/
539 {S1DREG_CRT_CUR_YPOS0, 0x00}, /* CRT/TV Cursor Y Position Register 0*/
540 {S1DREG_CRT_CUR_YPOS1, 0x00}, /* CRT/TV Cursor Y Position Register 1*/
541 {S1DREG_CRT_CUR_BCTL0, 0x00}, /* CRT/TV Ink/Cursor Blue Color 0 Register*/
542 {S1DREG_CRT_CUR_GCTL0, 0x00}, /* CRT/TV Ink/Cursor Green Color 0 Register*/
543 {S1DREG_CRT_CUR_RCTL0, 0x00}, /* CRT/TV Ink/Cursor Red Color 0 Register*/
544 {S1DREG_CRT_CUR_BCTL1, 0x1F}, /* CRT/TV Ink/Cursor Blue Color 1 Register*/
545 {S1DREG_CRT_CUR_GCTL1, 0x3F}, /* CRT/TV Ink/Cursor Green Color 1 Register*/
546 {S1DREG_CRT_CUR_RCTL1, 0x1F}, /* CRT/TV Ink/Cursor Red Color 1 Register*/
547 {S1DREG_CRT_CUR_FIFO_HTC, 0x00}, /* CRT/TV Ink/Cursor FIFO Threshold Register*/
548 {S1DREG_BBLT_CTL0, 0x00}, /* BitBlt Control Register 0*/
549 {S1DREG_BBLT_CTL1, 0x01}, /* BitBlt Control Register 1*/
550 {S1DREG_BBLT_CC_EXP, 0x00}, /* BitBlt ROP Code/Color Expansion Register*/
551 {S1DREG_BBLT_OP, 0x00}, /* BitBlt Operation Register*/
552 {S1DREG_BBLT_SRC_START0, 0x00}, /* BitBlt Source Start Address Register 0*/
553 {S1DREG_BBLT_SRC_START1, 0x00}, /* BitBlt Source Start Address Register 1*/
554 {S1DREG_BBLT_SRC_START2, 0x00}, /* BitBlt Source Start Address Register 2*/
555 {S1DREG_BBLT_DST_START0, 0x00}, /* BitBlt Destination Start Address Register 0*/
556 {S1DREG_BBLT_DST_START1, 0x00}, /* BitBlt Destination Start Address Register 1*/
557 {S1DREG_BBLT_DST_START2, 0x00}, /* BitBlt Destination Start Address Register 2*/
558 {S1DREG_BBLT_MEM_OFF0, 0x00}, /* BitBlt Memory Address Offset Register 0*/
559 {S1DREG_BBLT_MEM_OFF1, 0x00}, /* BitBlt Memory Address Offset Register 1*/
560 {S1DREG_BBLT_WIDTH0, 0x00}, /* BitBlt Width Register 0*/
561 {S1DREG_BBLT_WIDTH1, 0x00}, /* BitBlt Width Register 1*/
562 {S1DREG_BBLT_HEIGHT0, 0x00}, /* BitBlt Height Register 0*/
563 {S1DREG_BBLT_HEIGHT1, 0x00}, /* BitBlt Height Register 1*/
564 {S1DREG_BBLT_BGC0, 0x00}, /* BitBlt Background Color Register 0*/
565 {S1DREG_BBLT_BGC1, 0x00}, /* BitBlt Background Color Register 1*/
566 {S1DREG_BBLT_FGC0, 0x00}, /* BitBlt Foreground Color Register 0*/
567 {S1DREG_BBLT_FGC1, 0x00}, /* BitBlt Foreground Color Register 1*/
568 {S1DREG_LKUP_MODE, 0x00}, /* Look-Up Table Mode Register*/
569 {S1DREG_LKUP_ADDR, 0x00}, /* Look-Up Table Address Register*/
570 {S1DREG_PS_CNF, 0x00}, /* Power Save Configuration Register*/
571 {S1DREG_PS_STATUS, 0x00}, /* Power Save Status Register*/
572 {S1DREG_CPU2MEM_WDOGT, 0x00}, /* CPU-to-Memory Access Watchdog Timer Register*/
573 {S1DREG_COM_DISP_MODE, 0x01}, /* Display Mode Register, LCD only*/
574};
575
576static u64 s1dfb_dmamask = 0xffffffffUL;
577
578static struct s1d13xxxfb_pdata yl_9200_s1dfb_pdata = {
579 .initregs = yl_9200_s1dfb_initregs,
580 .initregssize = ARRAY_SIZE(yl_9200_s1dfb_initregs),
581 .platform_init_video = yl_9200_init_video,
582};
583
584static struct resource yl_9200_s1dfb_resource[] = {
585 [0] = { /* video mem */
586 .name = "s1d13xxxfb memory",
587 /* .name = "s1d13806 memory",*/
588 .start = AT91_FB_VMEM_BASE,
589 .end = AT91_FB_VMEM_BASE + AT91_FB_VMEM_SIZE -1,
590 .flags = IORESOURCE_MEM,
591 },
592 [1] = { /* video registers */
593 .name = "s1d13xxxfb registers",
594 /* .name = "s1d13806 registers",*/
595 .start = AT91_FB_REG_BASE,
596 .end = AT91_FB_REG_BASE + AT91_FB_REG_SIZE -1,
597 .flags = IORESOURCE_MEM,
598 },
599};
600
601static struct platform_device yl_9200_s1dfb_device = {
602 /*TODO S.Birtles , really we need the chip revision in here as well*/
603 .name = "s1d13806fb",
604 /* .name = "s1d13506fb",*/
605 .id = -1,
606 .dev = {
607 /*TODO theres a waring here!!*/
608 /*WARNING: vmlinux.o(.data+0x2dbc): Section mismatch: reference to .init.text: (between 'yl_9200_s1dfb_pdata' and 's1dfb_dmamask')*/
609 .dma_mask = &s1dfb_dmamask,
610 .coherent_dma_mask = 0xffffffff,
611 .platform_data = &yl_9200_s1dfb_pdata,
612 },
613 .resource = yl_9200_s1dfb_resource,
614 .num_resources = ARRAY_SIZE(yl_9200_s1dfb_resource),
615};
616
617void __init yl_9200_add_device_video(void)
618{
619 platform_device_register(&yl_9200_s1dfb_device);
620}
621#else
622 void __init yl_9200_add_device_video(void) {}
623#endif
624
625/*this is not called first , yl_9200_map_io is called first*/
626static void __init yl_9200_board_init(void)
627{
628 /* Serial */
629 at91_add_device_serial();
630 /* Ethernet */
631 at91_add_device_eth(&yl_9200_eth_data);
632 /* USB Host */
633 at91_add_device_usbh(&yl_9200_usbh_data);
634 /* USB Device */
635 at91_add_device_udc(&yl_9200_udc_data);
636 /* pullup_pin it is actually active low, but this is not needed, driver sets it up */
637 /*at91_set_multi_drive(yl_9200_udc_data.pullup_pin, 0);*/
638
639 /* Compact Flash */
640 /*at91_add_device_cf(&yl_9200_cf_data);*/
641
642 /* I2C */
643 at91_add_device_i2c(yl_9200_i2c_devices, ARRAY_SIZE(yl_9200_i2c_devices));
644 /* SPI */
645 /*TODO YL9200 we have 2 spi interfaces touch screen & CAN*/
646 /* AT91_PIN_PA5, AT91_PIN_PA6 , are used on the max 485 NOT SPI*/
647
648 /*touch screen and CAN*/
649 at91_add_device_spi(yl_9200_spi_devices, ARRAY_SIZE(yl_9200_spi_devices));
650
651 /*Basically the TS uses PB11 & PB10 , PB11 is configured by the SPI system BP10 IS NOT USED!!*/
652 /* we need this incase the board is running without a touch screen*/
653 #if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
654 at91_init_device_ts(); /*init the touch screen device*/
655 #endif
656 /* DataFlash card */
657 at91_add_device_mmc(0, &yl_9200_mmc_data);
658 /* NAND */
659 at91_add_device_nand(&yl_9200_nand_data);
660 /* NOR Flash */
661 platform_device_register(&yl_9200_flash);
662 /* LEDs. Note!! this does not include the led's we passed for the processor status */
663 at91_gpio_leds(yl_9200_leds, ARRAY_SIZE(yl_9200_leds));
664 /* VGA */
665 /*this is self registered by including the s1d13xxx chip in the kernel build*/
666 yl_9200_add_device_video();
667 /* Push Buttons */
668 yl_9200_add_device_buttons();
669 /*TODO fixup the Sounder */
670// yl_9200_add_device_sounder(yl_9200_sounder,ARRAY_SIZE(yl_9200_sounder));
671
672}
673
674MACHINE_START(YL9200, "uCdragon YL-9200")
675 /* Maintainer: S.Birtles*/
676 .phys_io = AT91_BASE_SYS,
677 .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc,
678 .boot_params = AT91_SDRAM_BASE + 0x100,
679 .timer = &at91rm9200_timer,
680 .map_io = yl_9200_map_io,
681 .init_irq = yl_9200_init_irq,
682 .init_machine = yl_9200_board_init,
683MACHINE_END
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
index a67defd50438..39733b6992aa 100644
--- a/arch/arm/mach-at91/pm.c
+++ b/arch/arm/mach-at91/pm.c
@@ -26,12 +26,135 @@
26#include <asm/mach-types.h> 26#include <asm/mach-types.h>
27 27
28#include <asm/arch/at91_pmc.h> 28#include <asm/arch/at91_pmc.h>
29#include <asm/arch/at91rm9200_mc.h>
30#include <asm/arch/gpio.h> 29#include <asm/arch/gpio.h>
31#include <asm/arch/cpu.h> 30#include <asm/arch/cpu.h>
32 31
33#include "generic.h" 32#include "generic.h"
34 33
34#ifdef CONFIG_ARCH_AT91RM9200
35#include <asm/arch/at91rm9200_mc.h>
36
37/*
38 * The AT91RM9200 goes into self-refresh mode with this command, and will
39 * terminate self-refresh automatically on the next SDRAM access.
40 */
41#define sdram_selfrefresh_enable() at91_sys_write(AT91_SDRAMC_SRR, 1)
42#define sdram_selfrefresh_disable() do {} while (0)
43
44#elif defined(CONFIG_ARCH_AT91CAP9)
45#include <asm/arch/at91cap9_ddrsdr.h>
46
47static u32 saved_lpr;
48
49static inline void sdram_selfrefresh_enable(void)
50{
51 u32 lpr;
52
53 saved_lpr = at91_sys_read(AT91_DDRSDRC_LPR);
54
55 lpr = saved_lpr & ~AT91_DDRSDRC_LPCB;
56 at91_sys_write(AT91_DDRSDRC_LPR, lpr | AT91_DDRSDRC_LPCB_SELF_REFRESH);
57}
58
59#define sdram_selfrefresh_disable() at91_sys_write(AT91_DDRSDRC_LPR, saved_lpr)
60
61#else
62#include <asm/arch/at91sam9_sdramc.h>
63
64static u32 saved_lpr;
65
66static inline void sdram_selfrefresh_enable(void)
67{
68 u32 lpr;
69
70 saved_lpr = at91_sys_read(AT91_SDRAMC_LPR);
71
72 lpr = saved_lpr & ~AT91_SDRAMC_LPCB;
73 at91_sys_write(AT91_SDRAMC_LPR, lpr | AT91_SDRAMC_LPCB_SELF_REFRESH);
74}
75
76#define sdram_selfrefresh_disable() at91_sys_write(AT91_SDRAMC_LPR, saved_lpr)
77
78/*
79 * FIXME: The AT91SAM9263 has a second EBI controller which may have
80 * additional SDRAM. pm_slowclock.S will require a similar fix.
81 */
82
83#endif
84
85
86/*
87 * Show the reason for the previous system reset.
88 */
89#if defined(AT91_SHDWC)
90
91#include <asm/arch/at91_rstc.h>
92#include <asm/arch/at91_shdwc.h>
93
94static void __init show_reset_status(void)
95{
96 static char reset[] __initdata = "reset";
97
98 static char general[] __initdata = "general";
99 static char wakeup[] __initdata = "wakeup";
100 static char watchdog[] __initdata = "watchdog";
101 static char software[] __initdata = "software";
102 static char user[] __initdata = "user";
103 static char unknown[] __initdata = "unknown";
104
105 static char signal[] __initdata = "signal";
106 static char rtc[] __initdata = "rtc";
107 static char rtt[] __initdata = "rtt";
108 static char restore[] __initdata = "power-restored";
109
110 char *reason, *r2 = reset;
111 u32 reset_type, wake_type;
112
113 reset_type = at91_sys_read(AT91_RSTC_SR) & AT91_RSTC_RSTTYP;
114 wake_type = at91_sys_read(AT91_SHDW_SR);
115
116 switch (reset_type) {
117 case AT91_RSTC_RSTTYP_GENERAL:
118 reason = general;
119 break;
120 case AT91_RSTC_RSTTYP_WAKEUP:
121 /* board-specific code enabled the wakeup sources */
122 reason = wakeup;
123
124 /* "wakeup signal" */
125 if (wake_type & AT91_SHDW_WAKEUP0)
126 r2 = signal;
127 else {
128 r2 = reason;
129 if (wake_type & AT91_SHDW_RTTWK) /* rtt wakeup */
130 reason = rtt;
131 else if (wake_type & AT91_SHDW_RTCWK) /* rtc wakeup */
132 reason = rtc;
133 else if (wake_type == 0) /* power-restored wakeup */
134 reason = restore;
135 else /* unknown wakeup */
136 reason = unknown;
137 }
138 break;
139 case AT91_RSTC_RSTTYP_WATCHDOG:
140 reason = watchdog;
141 break;
142 case AT91_RSTC_RSTTYP_SOFTWARE:
143 reason = software;
144 break;
145 case AT91_RSTC_RSTTYP_USER:
146 reason = user;
147 break;
148 default:
149 reason = unknown;
150 break;
151 }
152 pr_info("AT91: Starting after %s %s\n", reason, r2);
153}
154#else
155static void __init show_reset_status(void) {}
156#endif
157
35 158
36static int at91_pm_valid_state(suspend_state_t state) 159static int at91_pm_valid_state(suspend_state_t state)
37{ 160{
@@ -125,6 +248,11 @@ EXPORT_SYMBOL(at91_suspend_entering_slow_clock);
125 248
126static void (*slow_clock)(void); 249static void (*slow_clock)(void);
127 250
251#ifdef CONFIG_AT91_SLOW_CLOCK
252extern void at91_slow_clock(void);
253extern u32 at91_slow_clock_sz;
254#endif
255
128 256
129static int at91_pm_enter(suspend_state_t state) 257static int at91_pm_enter(suspend_state_t state)
130{ 258{
@@ -158,11 +286,14 @@ static int at91_pm_enter(suspend_state_t state)
158 * turning off the main oscillator; reverse on wakeup. 286 * turning off the main oscillator; reverse on wakeup.
159 */ 287 */
160 if (slow_clock) { 288 if (slow_clock) {
289#ifdef CONFIG_AT91_SLOW_CLOCK
290 /* copy slow_clock handler to SRAM, and call it */
291 memcpy(slow_clock, at91_slow_clock, at91_slow_clock_sz);
292#endif
161 slow_clock(); 293 slow_clock();
162 break; 294 break;
163 } else { 295 } else {
164 /* DEVELOPMENT ONLY */ 296 pr_info("AT91: PM - no slow clock mode enabled ...\n");
165 pr_info("AT91: PM - no slow clock mode yet ...\n");
166 /* FALLTHROUGH leaving master clock alone */ 297 /* FALLTHROUGH leaving master clock alone */
167 } 298 }
168 299
@@ -175,13 +306,15 @@ static int at91_pm_enter(suspend_state_t state)
175 case PM_SUSPEND_STANDBY: 306 case PM_SUSPEND_STANDBY:
176 /* 307 /*
177 * NOTE: the Wait-for-Interrupt instruction needs to be 308 * NOTE: the Wait-for-Interrupt instruction needs to be
178 * in icache so the SDRAM stays in self-refresh mode until 309 * in icache so no SDRAM accesses are needed until the
179 * the wakeup IRQ occurs. 310 * wakeup IRQ occurs and self-refresh is terminated.
180 */ 311 */
181 asm("b 1f; .align 5; 1:"); 312 asm("b 1f; .align 5; 1:");
182 asm("mcr p15, 0, r0, c7, c10, 4"); /* drain write buffer */ 313 asm("mcr p15, 0, r0, c7, c10, 4"); /* drain write buffer */
183 at91_sys_write(AT91_SDRAMC_SRR, 1); /* self-refresh mode */ 314 sdram_selfrefresh_enable();
184 /* fall though to next state */ 315 asm("mcr p15, 0, r0, c7, c0, 4"); /* wait for interrupt */
316 sdram_selfrefresh_disable();
317 break;
185 318
186 case PM_SUSPEND_ON: 319 case PM_SUSPEND_ON:
187 asm("mcr p15, 0, r0, c7, c0, 4"); /* wait for interrupt */ 320 asm("mcr p15, 0, r0, c7, c0, 4"); /* wait for interrupt */
@@ -196,6 +329,7 @@ static int at91_pm_enter(suspend_state_t state)
196 at91_sys_read(AT91_AIC_IPR) & at91_sys_read(AT91_AIC_IMR)); 329 at91_sys_read(AT91_AIC_IPR) & at91_sys_read(AT91_AIC_IMR));
197 330
198error: 331error:
332 sdram_selfrefresh_disable();
199 target_state = PM_SUSPEND_ON; 333 target_state = PM_SUSPEND_ON;
200 at91_irq_resume(); 334 at91_irq_resume();
201 at91_gpio_resume(); 335 at91_gpio_resume();
@@ -220,21 +354,20 @@ static struct platform_suspend_ops at91_pm_ops ={
220 354
221static int __init at91_pm_init(void) 355static int __init at91_pm_init(void)
222{ 356{
223 printk("AT91: Power Management\n"); 357#ifdef CONFIG_AT91_SLOW_CLOCK
224 358 slow_clock = (void *) (AT91_IO_VIRT_BASE - at91_slow_clock_sz);
225#ifdef CONFIG_AT91_PM_SLOW_CLOCK
226 /* REVISIT allocations of SRAM should be dynamically managed.
227 * FIQ handlers and other components will want SRAM/TCM too...
228 */
229 slow_clock = (void *) (AT91_VA_BASE_SRAM + (3 * SZ_4K));
230 memcpy(slow_clock, at91rm9200_slow_clock, at91rm9200_slow_clock_sz);
231#endif 359#endif
232 360
233 /* Disable SDRAM low-power mode. Cannot be used with self-refresh. */ 361 pr_info("AT91: Power Management%s\n", (slow_clock ? " (with slow clock mode)" : ""));
362
363#ifdef CONFIG_ARCH_AT91RM9200
364 /* AT91RM9200 SDRAM low-power mode cannot be used with self-refresh. */
234 at91_sys_write(AT91_SDRAMC_LPR, 0); 365 at91_sys_write(AT91_SDRAMC_LPR, 0);
366#endif
235 367
236 suspend_set_ops(&at91_pm_ops); 368 suspend_set_ops(&at91_pm_ops);
237 369
370 show_reset_status();
238 return 0; 371 return 0;
239} 372}
240arch_initcall(at91_pm_init); 373arch_initcall(at91_pm_init);
diff --git a/arch/arm/mach-clps711x/Kconfig b/arch/arm/mach-clps711x/Kconfig
index 0e2b641268ad..dbaae5f746a1 100644
--- a/arch/arm/mach-clps711x/Kconfig
+++ b/arch/arm/mach-clps711x/Kconfig
@@ -31,6 +31,8 @@ config ARCH_EDB7211
31 bool "EDB7211" 31 bool "EDB7211"
32 select ISA 32 select ISA
33 select ARCH_DISCONTIGMEM_ENABLE 33 select ARCH_DISCONTIGMEM_ENABLE
34 select ARCH_SPARSEMEM_ENABLE
35 select ARCH_SELECT_MEMORY_MODEL
34 help 36 help
35 Say Y here if you intend to run this kernel on a Cirrus Logic EDB-7211 37 Say Y here if you intend to run this kernel on a Cirrus Logic EDB-7211
36 evaluation board. 38 evaluation board.
diff --git a/arch/arm/mach-ep93xx/Makefile b/arch/arm/mach-ep93xx/Makefile
index 0ecf99761feb..c1252ca9648e 100644
--- a/arch/arm/mach-ep93xx/Makefile
+++ b/arch/arm/mach-ep93xx/Makefile
@@ -1,7 +1,7 @@
1# 1#
2# Makefile for the linux kernel. 2# Makefile for the linux kernel.
3# 3#
4obj-y := core.o clock.o 4obj-y := core.o clock.o gpio.o
5obj-m := 5obj-m :=
6obj-n := 6obj-n :=
7obj- := 7obj- :=
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
index 91f6a07a51d5..8bc187240542 100644
--- a/arch/arm/mach-ep93xx/core.c
+++ b/arch/arm/mach-ep93xx/core.c
@@ -159,7 +159,7 @@ static const u8 int_type2_register_offset[3] = { 0x94, 0xb0, 0x50 };
159static const u8 eoi_register_offset[3] = { 0x98, 0xb4, 0x54 }; 159static const u8 eoi_register_offset[3] = { 0x98, 0xb4, 0x54 };
160static const u8 int_en_register_offset[3] = { 0x9c, 0xb8, 0x5c }; 160static const u8 int_en_register_offset[3] = { 0x9c, 0xb8, 0x5c };
161 161
162static void update_gpio_int_params(unsigned port) 162void ep93xx_gpio_update_int_params(unsigned port)
163{ 163{
164 BUG_ON(port > 2); 164 BUG_ON(port > 2);
165 165
@@ -175,98 +175,10 @@ static void update_gpio_int_params(unsigned port)
175 EP93XX_GPIO_REG(int_en_register_offset[port])); 175 EP93XX_GPIO_REG(int_en_register_offset[port]));
176} 176}
177 177
178/* Port ordering is: A B F D E C G H */ 178void ep93xx_gpio_int_mask(unsigned line)
179static const u8 data_register_offset[8] = {
180 0x00, 0x04, 0x30, 0x0c, 0x20, 0x08, 0x38, 0x40,
181};
182
183static const u8 data_direction_register_offset[8] = {
184 0x10, 0x14, 0x34, 0x1c, 0x24, 0x18, 0x3c, 0x44,
185};
186
187#define GPIO_IN 0
188#define GPIO_OUT 1
189
190static void ep93xx_gpio_set_direction(unsigned line, int direction)
191{
192 unsigned int data_direction_register;
193 unsigned long flags;
194 unsigned char v;
195
196 data_direction_register =
197 EP93XX_GPIO_REG(data_direction_register_offset[line >> 3]);
198
199 local_irq_save(flags);
200 if (direction == GPIO_OUT) {
201 if (line >= 0 && line <= EP93XX_GPIO_LINE_MAX_IRQ) {
202 /* Port A/B/F */
203 gpio_int_unmasked[line >> 3] &= ~(1 << (line & 7));
204 update_gpio_int_params(line >> 3);
205 }
206
207 v = __raw_readb(data_direction_register);
208 v |= 1 << (line & 7);
209 __raw_writeb(v, data_direction_register);
210 } else if (direction == GPIO_IN) {
211 v = __raw_readb(data_direction_register);
212 v &= ~(1 << (line & 7));
213 __raw_writeb(v, data_direction_register);
214 }
215 local_irq_restore(flags);
216}
217
218int gpio_direction_input(unsigned gpio)
219{
220 if (gpio > EP93XX_GPIO_LINE_MAX)
221 return -EINVAL;
222
223 ep93xx_gpio_set_direction(gpio, GPIO_IN);
224
225 return 0;
226}
227EXPORT_SYMBOL(gpio_direction_input);
228
229int gpio_direction_output(unsigned gpio, int value)
230{
231 if (gpio > EP93XX_GPIO_LINE_MAX)
232 return -EINVAL;
233
234 gpio_set_value(gpio, value);
235 ep93xx_gpio_set_direction(gpio, GPIO_OUT);
236
237 return 0;
238}
239EXPORT_SYMBOL(gpio_direction_output);
240
241int gpio_get_value(unsigned gpio)
242{
243 unsigned int data_register;
244
245 data_register = EP93XX_GPIO_REG(data_register_offset[gpio >> 3]);
246
247 return !!(__raw_readb(data_register) & (1 << (gpio & 7)));
248}
249EXPORT_SYMBOL(gpio_get_value);
250
251void gpio_set_value(unsigned gpio, int value)
252{ 179{
253 unsigned int data_register; 180 gpio_int_unmasked[line >> 3] &= ~(1 << (line & 7));
254 unsigned long flags;
255 unsigned char v;
256
257 data_register = EP93XX_GPIO_REG(data_register_offset[gpio >> 3]);
258
259 local_irq_save(flags);
260 v = __raw_readb(data_register);
261 if (value)
262 v |= 1 << (gpio & 7);
263 else
264 v &= ~(1 << (gpio & 7));
265 __raw_writeb(v, data_register);
266 local_irq_restore(flags);
267} 181}
268EXPORT_SYMBOL(gpio_set_value);
269
270 182
271/************************************************************************* 183/*************************************************************************
272 * EP93xx IRQ handling 184 * EP93xx IRQ handling
@@ -316,7 +228,7 @@ static void ep93xx_gpio_irq_ack(unsigned int irq)
316 228
317 if ((irq_desc[irq].status & IRQ_TYPE_SENSE_MASK) == IRQT_BOTHEDGE) { 229 if ((irq_desc[irq].status & IRQ_TYPE_SENSE_MASK) == IRQT_BOTHEDGE) {
318 gpio_int_type2[port] ^= port_mask; /* switch edge direction */ 230 gpio_int_type2[port] ^= port_mask; /* switch edge direction */
319 update_gpio_int_params(port); 231 ep93xx_gpio_update_int_params(port);
320 } 232 }
321 233
322 __raw_writeb(port_mask, EP93XX_GPIO_REG(eoi_register_offset[port])); 234 __raw_writeb(port_mask, EP93XX_GPIO_REG(eoi_register_offset[port]));
@@ -332,7 +244,7 @@ static void ep93xx_gpio_irq_mask_ack(unsigned int irq)
332 gpio_int_type2[port] ^= port_mask; /* switch edge direction */ 244 gpio_int_type2[port] ^= port_mask; /* switch edge direction */
333 245
334 gpio_int_unmasked[port] &= ~port_mask; 246 gpio_int_unmasked[port] &= ~port_mask;
335 update_gpio_int_params(port); 247 ep93xx_gpio_update_int_params(port);
336 248
337 __raw_writeb(port_mask, EP93XX_GPIO_REG(eoi_register_offset[port])); 249 __raw_writeb(port_mask, EP93XX_GPIO_REG(eoi_register_offset[port]));
338} 250}
@@ -343,7 +255,7 @@ static void ep93xx_gpio_irq_mask(unsigned int irq)
343 int port = line >> 3; 255 int port = line >> 3;
344 256
345 gpio_int_unmasked[port] &= ~(1 << (line & 7)); 257 gpio_int_unmasked[port] &= ~(1 << (line & 7));
346 update_gpio_int_params(port); 258 ep93xx_gpio_update_int_params(port);
347} 259}
348 260
349static void ep93xx_gpio_irq_unmask(unsigned int irq) 261static void ep93xx_gpio_irq_unmask(unsigned int irq)
@@ -352,7 +264,7 @@ static void ep93xx_gpio_irq_unmask(unsigned int irq)
352 int port = line >> 3; 264 int port = line >> 3;
353 265
354 gpio_int_unmasked[port] |= 1 << (line & 7); 266 gpio_int_unmasked[port] |= 1 << (line & 7);
355 update_gpio_int_params(port); 267 ep93xx_gpio_update_int_params(port);
356} 268}
357 269
358 270
@@ -368,7 +280,7 @@ static int ep93xx_gpio_irq_type(unsigned int irq, unsigned int type)
368 const int port = gpio >> 3; 280 const int port = gpio >> 3;
369 const int port_mask = 1 << (gpio & 7); 281 const int port_mask = 1 << (gpio & 7);
370 282
371 ep93xx_gpio_set_direction(gpio, GPIO_IN); 283 gpio_direction_output(gpio, gpio_get_value(gpio));
372 284
373 switch (type) { 285 switch (type) {
374 case IRQT_RISING: 286 case IRQT_RISING:
@@ -411,7 +323,7 @@ static int ep93xx_gpio_irq_type(unsigned int irq, unsigned int type)
411 desc->status &= ~IRQ_TYPE_SENSE_MASK; 323 desc->status &= ~IRQ_TYPE_SENSE_MASK;
412 desc->status |= type & IRQ_TYPE_SENSE_MASK; 324 desc->status |= type & IRQ_TYPE_SENSE_MASK;
413 325
414 update_gpio_int_params(port); 326 ep93xx_gpio_update_int_params(port);
415 327
416 return 0; 328 return 0;
417} 329}
@@ -549,6 +461,7 @@ static struct platform_device ep93xx_ohci_device = {
549 .resource = ep93xx_ohci_resources, 461 .resource = ep93xx_ohci_resources,
550}; 462};
551 463
464extern void ep93xx_gpio_init(void);
552 465
553void __init ep93xx_init_devices(void) 466void __init ep93xx_init_devices(void)
554{ 467{
@@ -562,6 +475,8 @@ void __init ep93xx_init_devices(void)
562 __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK); 475 __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK);
563 __raw_writel(v, EP93XX_SYSCON_DEVICE_CONFIG); 476 __raw_writel(v, EP93XX_SYSCON_DEVICE_CONFIG);
564 477
478 ep93xx_gpio_init();
479
565 amba_device_register(&uart1_device, &iomem_resource); 480 amba_device_register(&uart1_device, &iomem_resource);
566 amba_device_register(&uart2_device, &iomem_resource); 481 amba_device_register(&uart2_device, &iomem_resource);
567 amba_device_register(&uart3_device, &iomem_resource); 482 amba_device_register(&uart3_device, &iomem_resource);
diff --git a/arch/arm/mach-ep93xx/gpio.c b/arch/arm/mach-ep93xx/gpio.c
new file mode 100644
index 000000000000..dc2e4c00d989
--- /dev/null
+++ b/arch/arm/mach-ep93xx/gpio.c
@@ -0,0 +1,158 @@
1/*
2 * linux/arch/arm/mach-ep93xx/gpio.c
3 *
4 * Generic EP93xx GPIO handling
5 *
6 * Copyright (c) 2008 Ryan Mallon <ryan@bluewatersys.com>
7 *
8 * Based on code originally from:
9 * linux/arch/arm/mach-ep93xx/core.c
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as
13 * published by the Free Software Foundation.
14 */
15
16#include <linux/init.h>
17#include <linux/module.h>
18#include <linux/seq_file.h>
19
20#include <asm/arch/ep93xx-regs.h>
21#include <asm/io.h>
22#include <asm/gpio.h>
23
24struct ep93xx_gpio_chip {
25 struct gpio_chip chip;
26
27 unsigned int data_reg;
28 unsigned int data_dir_reg;
29};
30
31#define to_ep93xx_gpio_chip(c) container_of(c, struct ep93xx_gpio_chip, chip)
32
33/* From core.c */
34extern void ep93xx_gpio_int_mask(unsigned line);
35extern void ep93xx_gpio_update_int_params(unsigned port);
36
37static int ep93xx_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
38{
39 struct ep93xx_gpio_chip *ep93xx_chip = to_ep93xx_gpio_chip(chip);
40 unsigned long flags;
41 u8 v;
42
43 local_irq_save(flags);
44 v = __raw_readb(ep93xx_chip->data_dir_reg);
45 v &= ~(1 << offset);
46 __raw_writeb(v, ep93xx_chip->data_dir_reg);
47 local_irq_restore(flags);
48
49 return 0;
50}
51
52static int ep93xx_gpio_direction_output(struct gpio_chip *chip,
53 unsigned offset, int val)
54{
55 struct ep93xx_gpio_chip *ep93xx_chip = to_ep93xx_gpio_chip(chip);
56 unsigned long flags;
57 int line;
58 u8 v;
59
60 local_irq_save(flags);
61
62 /* Set the value */
63 v = __raw_readb(ep93xx_chip->data_reg);
64 if (val)
65 v |= (1 << offset);
66 else
67 v &= ~(1 << offset);
68 __raw_writeb(v, ep93xx_chip->data_reg);
69
70 /* Drive as an output */
71 line = chip->base + offset;
72 if (line <= EP93XX_GPIO_LINE_MAX_IRQ) {
73 /* Ports A/B/F */
74 ep93xx_gpio_int_mask(line);
75 ep93xx_gpio_update_int_params(line >> 3);
76 }
77
78 v = __raw_readb(ep93xx_chip->data_dir_reg);
79 v |= (1 << offset);
80 __raw_writeb(v, ep93xx_chip->data_dir_reg);
81
82 local_irq_restore(flags);
83
84 return 0;
85}
86
87static int ep93xx_gpio_get(struct gpio_chip *chip, unsigned offset)
88{
89 struct ep93xx_gpio_chip *ep93xx_chip = to_ep93xx_gpio_chip(chip);
90
91 return !!(__raw_readb(ep93xx_chip->data_reg) & (1 << offset));
92}
93
94static void ep93xx_gpio_set(struct gpio_chip *chip, unsigned offset, int val)
95{
96 struct ep93xx_gpio_chip *ep93xx_chip = to_ep93xx_gpio_chip(chip);
97 unsigned long flags;
98 u8 v;
99
100 local_irq_save(flags);
101 v = __raw_readb(ep93xx_chip->data_reg);
102 if (val)
103 v |= (1 << offset);
104 else
105 v &= ~(1 << offset);
106 __raw_writeb(v, ep93xx_chip->data_reg);
107 local_irq_restore(flags);
108}
109
110static void ep93xx_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
111{
112 struct ep93xx_gpio_chip *ep93xx_chip = to_ep93xx_gpio_chip(chip);
113 u8 data_reg, data_dir_reg;
114 int i;
115
116 data_reg = __raw_readb(ep93xx_chip->data_reg);
117 data_dir_reg = __raw_readb(ep93xx_chip->data_dir_reg);
118
119 for (i = 0; i < chip->ngpio; i++)
120 seq_printf(s, "GPIO %s%d: %s %s\n", chip->label, i,
121 (data_reg & (1 << i)) ? "set" : "clear",
122 (data_dir_reg & (1 << i)) ? "out" : "in");
123}
124
125#define EP93XX_GPIO_BANK(name, dr, ddr, base_gpio) \
126 { \
127 .chip = { \
128 .label = name, \
129 .direction_input = ep93xx_gpio_direction_input, \
130 .direction_output = ep93xx_gpio_direction_output, \
131 .get = ep93xx_gpio_get, \
132 .set = ep93xx_gpio_set, \
133 .dbg_show = ep93xx_gpio_dbg_show, \
134 .base = base_gpio, \
135 .ngpio = 8, \
136 }, \
137 .data_reg = EP93XX_GPIO_REG(dr), \
138 .data_dir_reg = EP93XX_GPIO_REG(ddr), \
139 }
140
141static struct ep93xx_gpio_chip ep93xx_gpio_banks[] = {
142 EP93XX_GPIO_BANK("A", 0x00, 0x10, 0),
143 EP93XX_GPIO_BANK("B", 0x04, 0x14, 8),
144 EP93XX_GPIO_BANK("C", 0x30, 0x34, 40),
145 EP93XX_GPIO_BANK("D", 0x0c, 0x1c, 24),
146 EP93XX_GPIO_BANK("E", 0x20, 0x24, 32),
147 EP93XX_GPIO_BANK("F", 0x08, 0x18, 16),
148 EP93XX_GPIO_BANK("G", 0x38, 0x3c, 48),
149 EP93XX_GPIO_BANK("H", 0x40, 0x44, 56),
150};
151
152void __init ep93xx_gpio_init(void)
153{
154 int i;
155
156 for (i = 0; i < ARRAY_SIZE(ep93xx_gpio_banks); i++)
157 gpiochip_add(&ep93xx_gpio_banks[i].chip);
158}
diff --git a/arch/arm/mach-iop32x/Kconfig b/arch/arm/mach-iop32x/Kconfig
index dbe07c9472ed..5e8c6f7dfabb 100644
--- a/arch/arm/mach-iop32x/Kconfig
+++ b/arch/arm/mach-iop32x/Kconfig
@@ -34,14 +34,6 @@ config MACH_N2100
34 Say Y here if you want to run your kernel on the Thecus n2100 34 Say Y here if you want to run your kernel on the Thecus n2100
35 NAS appliance. 35 NAS appliance.
36 36
37config IOP3XX_ATU
38 bool "Enable the PCI Controller"
39 default y
40 help
41 Say Y here if you want the IOP to initialize its PCI Controller.
42 Say N if the IOP is an add in card, the host system owns the PCI
43 bus in this case.
44
45config MACH_EM7210 37config MACH_EM7210
46 bool "Enable support for the Lanner EM7210" 38 bool "Enable support for the Lanner EM7210"
47 help 39 help
diff --git a/arch/arm/mach-iop32x/iq31244.c b/arch/arm/mach-iop32x/iq31244.c
index 98cfa1cd6bdb..4a89823bcebb 100644
--- a/arch/arm/mach-iop32x/iq31244.c
+++ b/arch/arm/mach-iop32x/iq31244.c
@@ -178,10 +178,9 @@ static struct hw_pci iq31244_pci __initdata = {
178 178
179static int __init iq31244_pci_init(void) 179static int __init iq31244_pci_init(void)
180{ 180{
181 if (is_ep80219()) { 181 if (is_ep80219())
182 if (iop3xx_get_init_atu() == IOP3XX_INIT_ATU_ENABLE) 182 pci_common_init(&ep80219_pci);
183 pci_common_init(&ep80219_pci); 183 else if (machine_is_iq31244()) {
184 } else if (machine_is_iq31244()) {
185 if (is_80219()) { 184 if (is_80219()) {
186 printk("note: iq31244 board type has been selected\n"); 185 printk("note: iq31244 board type has been selected\n");
187 printk("note: to select ep80219 operation:\n"); 186 printk("note: to select ep80219 operation:\n");
@@ -190,9 +189,7 @@ static int __init iq31244_pci_init(void)
190 printk("\t2/ update boot loader to pass" 189 printk("\t2/ update boot loader to pass"
191 " the ep80219 id: %d\n", MACH_TYPE_EP80219); 190 " the ep80219 id: %d\n", MACH_TYPE_EP80219);
192 } 191 }
193 192 pci_common_init(&iq31244_pci);
194 if (iop3xx_get_init_atu() == IOP3XX_INIT_ATU_ENABLE)
195 pci_common_init(&iq31244_pci);
196 } 193 }
197 194
198 return 0; 195 return 0;
diff --git a/arch/arm/mach-iop32x/iq80321.c b/arch/arm/mach-iop32x/iq80321.c
index 18ad29f213b2..1da3c911edd3 100644
--- a/arch/arm/mach-iop32x/iq80321.c
+++ b/arch/arm/mach-iop32x/iq80321.c
@@ -106,7 +106,7 @@ static struct hw_pci iq80321_pci __initdata = {
106 .swizzle = pci_std_swizzle, 106 .swizzle = pci_std_swizzle,
107 .nr_controllers = 1, 107 .nr_controllers = 1,
108 .setup = iop3xx_pci_setup, 108 .setup = iop3xx_pci_setup,
109 .preinit = iop3xx_pci_preinit, 109 .preinit = iop3xx_pci_preinit_cond,
110 .scan = iop3xx_pci_scan_bus, 110 .scan = iop3xx_pci_scan_bus,
111 .map_irq = iq80321_pci_map_irq, 111 .map_irq = iq80321_pci_map_irq,
112}; 112};
diff --git a/arch/arm/mach-iop33x/Kconfig b/arch/arm/mach-iop33x/Kconfig
index 45598e096898..9aa016bb18f9 100644
--- a/arch/arm/mach-iop33x/Kconfig
+++ b/arch/arm/mach-iop33x/Kconfig
@@ -16,14 +16,6 @@ config MACH_IQ80332
16 Say Y here if you want to run your kernel on the Intel IQ80332 16 Say Y here if you want to run your kernel on the Intel IQ80332
17 evaluation kit for the IOP332 chipset. 17 evaluation kit for the IOP332 chipset.
18 18
19config IOP3XX_ATU
20 bool "Enable the PCI Controller"
21 default y
22 help
23 Say Y here if you want the IOP to initialize its PCI Controller.
24 Say N if the IOP is an add in card, the host system owns the PCI
25 bus in this case.
26
27endmenu 19endmenu
28 20
29endif 21endif
diff --git a/arch/arm/mach-iop33x/iq80331.c b/arch/arm/mach-iop33x/iq80331.c
index 433188ebff2a..de39fd778579 100644
--- a/arch/arm/mach-iop33x/iq80331.c
+++ b/arch/arm/mach-iop33x/iq80331.c
@@ -89,7 +89,7 @@ static struct hw_pci iq80331_pci __initdata = {
89 .swizzle = pci_std_swizzle, 89 .swizzle = pci_std_swizzle,
90 .nr_controllers = 1, 90 .nr_controllers = 1,
91 .setup = iop3xx_pci_setup, 91 .setup = iop3xx_pci_setup,
92 .preinit = iop3xx_pci_preinit, 92 .preinit = iop3xx_pci_preinit_cond,
93 .scan = iop3xx_pci_scan_bus, 93 .scan = iop3xx_pci_scan_bus,
94 .map_irq = iq80331_pci_map_irq, 94 .map_irq = iq80331_pci_map_irq,
95}; 95};
diff --git a/arch/arm/mach-iop33x/iq80332.c b/arch/arm/mach-iop33x/iq80332.c
index 416c09564cc6..4904fd78445f 100644
--- a/arch/arm/mach-iop33x/iq80332.c
+++ b/arch/arm/mach-iop33x/iq80332.c
@@ -89,7 +89,7 @@ static struct hw_pci iq80332_pci __initdata = {
89 .swizzle = pci_std_swizzle, 89 .swizzle = pci_std_swizzle,
90 .nr_controllers = 1, 90 .nr_controllers = 1,
91 .setup = iop3xx_pci_setup, 91 .setup = iop3xx_pci_setup,
92 .preinit = iop3xx_pci_preinit, 92 .preinit = iop3xx_pci_preinit_cond,
93 .scan = iop3xx_pci_scan_bus, 93 .scan = iop3xx_pci_scan_bus,
94 .map_irq = iq80332_pci_map_irq, 94 .map_irq = iq80332_pci_map_irq,
95}; 95};
diff --git a/arch/arm/mach-ks8695/Makefile b/arch/arm/mach-ks8695/Makefile
index 730a3af12c98..ade42b73afbb 100644
--- a/arch/arm/mach-ks8695/Makefile
+++ b/arch/arm/mach-ks8695/Makefile
@@ -11,5 +11,8 @@ obj- :=
11# PCI support is optional 11# PCI support is optional
12obj-$(CONFIG_PCI) += pci.o 12obj-$(CONFIG_PCI) += pci.o
13 13
14# LEDs
15obj-$(CONFIG_LEDS) += leds.o
16
14# Board-specific support 17# Board-specific support
15obj-$(CONFIG_MACH_KS8695) += board-micrel.o 18obj-$(CONFIG_MACH_KS8695) += board-micrel.o
diff --git a/arch/arm/mach-ks8695/devices.c b/arch/arm/mach-ks8695/devices.c
index 386593f8ac65..3db2ec61d06f 100644
--- a/arch/arm/mach-ks8695/devices.c
+++ b/arch/arm/mach-ks8695/devices.c
@@ -176,6 +176,27 @@ static void __init ks8695_add_device_watchdog(void) {}
176#endif 176#endif
177 177
178 178
179/* --------------------------------------------------------------------
180 * LEDs
181 * -------------------------------------------------------------------- */
182
183#if defined(CONFIG_LEDS)
184short ks8695_leds_cpu = -1;
185short ks8695_leds_timer = -1;
186
187void __init ks8695_init_leds(u8 cpu_led, u8 timer_led)
188{
189 /* Enable GPIO to access the LEDs */
190 gpio_direction_output(cpu_led, 1);
191 gpio_direction_output(timer_led, 1);
192
193 ks8695_leds_cpu = cpu_led;
194 ks8695_leds_timer = timer_led;
195}
196#else
197void __init ks8695_init_leds(u8 cpu_led, u8 timer_led) {}
198#endif
199
179/* -------------------------------------------------------------------- */ 200/* -------------------------------------------------------------------- */
180 201
181/* 202/*
diff --git a/arch/arm/mach-ks8695/leds.c b/arch/arm/mach-ks8695/leds.c
new file mode 100644
index 000000000000..d61762ae50d8
--- /dev/null
+++ b/arch/arm/mach-ks8695/leds.c
@@ -0,0 +1,94 @@
1/*
2 * LED driver for KS8695-based boards.
3 *
4 * Copyright (C) Andrew Victor
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10
11#include <linux/kernel.h>
12#include <linux/module.h>
13#include <linux/init.h>
14
15#include <asm/mach-types.h>
16#include <asm/leds.h>
17#include <asm/arch/devices.h>
18#include <asm/arch/gpio.h>
19
20
21static inline void ks8695_led_on(unsigned int led)
22{
23 gpio_set_value(led, 0);
24}
25
26static inline void ks8695_led_off(unsigned int led)
27{
28 gpio_set_value(led, 1);
29}
30
31static inline void ks8695_led_toggle(unsigned int led)
32{
33 unsigned long is_off = gpio_get_value(led);
34 if (is_off)
35 ks8695_led_on(led);
36 else
37 ks8695_led_off(led);
38}
39
40
41/*
42 * Handle LED events.
43 */
44static void ks8695_leds_event(led_event_t evt)
45{
46 unsigned long flags;
47
48 local_irq_save(flags);
49
50 switch(evt) {
51 case led_start: /* System startup */
52 ks8695_led_on(ks8695_leds_cpu);
53 break;
54
55 case led_stop: /* System stop / suspend */
56 ks8695_led_off(ks8695_leds_cpu);
57 break;
58
59#ifdef CONFIG_LEDS_TIMER
60 case led_timer: /* Every 50 timer ticks */
61 ks8695_led_toggle(ks8695_leds_timer);
62 break;
63#endif
64
65#ifdef CONFIG_LEDS_CPU
66 case led_idle_start: /* Entering idle state */
67 ks8695_led_off(ks8695_leds_cpu);
68 break;
69
70 case led_idle_end: /* Exit idle state */
71 ks8695_led_on(ks8695_leds_cpu);
72 break;
73#endif
74
75 default:
76 break;
77 }
78
79 local_irq_restore(flags);
80}
81
82
83static int __init leds_init(void)
84{
85 if ((ks8695_leds_timer == -1) || (ks8695_leds_cpu == -1))
86 return -ENODEV;
87
88 leds_event = ks8695_leds_event;
89
90 leds_event(led_start);
91 return 0;
92}
93
94__initcall(leds_init);
diff --git a/arch/arm/mach-ns9xxx/Kconfig b/arch/arm/mach-ns9xxx/Kconfig
index 8584ed107991..dd0cd5ac4b8b 100644
--- a/arch/arm/mach-ns9xxx/Kconfig
+++ b/arch/arm/mach-ns9xxx/Kconfig
@@ -2,9 +2,26 @@ if ARCH_NS9XXX
2 2
3menu "NS9xxx Implementations" 3menu "NS9xxx Implementations"
4 4
5config NS9XXX_HAVE_SERIAL8250
6 bool
7
8config PROCESSOR_NS9360
9 bool
10
11config MODULE_CC9P9360
12 bool
13 select PROCESSOR_NS9360
14
15config BOARD_A9M9750DEV
16 select NS9XXX_HAVE_SERIAL8250
17 bool
18
19config BOARD_JSCC9P9360
20 bool
21
5config MACH_CC9P9360DEV 22config MACH_CC9P9360DEV
6 bool "ConnectCore 9P 9360 on an A9M9750 Devboard" 23 bool "ConnectCore 9P 9360 on an A9M9750 Devboard"
7 select PROCESSOR_NS9360 24 select MODULE_CC9P9360
8 select BOARD_A9M9750DEV 25 select BOARD_A9M9750DEV
9 help 26 help
10 Say Y here if you are using the Digi ConnectCore 9P 9360 27 Say Y here if you are using the Digi ConnectCore 9P 9360
@@ -12,21 +29,12 @@ config MACH_CC9P9360DEV
12 29
13config MACH_CC9P9360JS 30config MACH_CC9P9360JS
14 bool "ConnectCore 9P 9360 on a JSCC9P9360 Devboard" 31 bool "ConnectCore 9P 9360 on a JSCC9P9360 Devboard"
15 select PROCESSOR_NS9360 32 select MODULE_CC9P9360
16 select BOARD_JSCC9P9360 33 select BOARD_JSCC9P9360
17 help 34 help
18 Say Y here if you are using the Digi ConnectCore 9P 9360 35 Say Y here if you are using the Digi ConnectCore 9P 9360
19 on an JSCC9P9360 Development Board. 36 on an JSCC9P9360 Development Board.
20 37
21config PROCESSOR_NS9360
22 bool
23
24config BOARD_A9M9750DEV
25 bool
26
27config BOARD_JSCC9P9360
28 bool
29
30endmenu 38endmenu
31 39
32endif 40endif
diff --git a/arch/arm/mach-ns9xxx/Makefile b/arch/arm/mach-ns9xxx/Makefile
index 6fb82b855a55..41efaf9ad50b 100644
--- a/arch/arm/mach-ns9xxx/Makefile
+++ b/arch/arm/mach-ns9xxx/Makefile
@@ -1,7 +1,12 @@
1obj-y := irq.o time.o generic.o gpio.o 1obj-y := clock.o generic.o gpio.o irq.o
2 2
3obj-$(CONFIG_MACH_CC9P9360DEV) += mach-cc9p9360dev.o 3obj-$(CONFIG_MACH_CC9P9360DEV) += mach-cc9p9360dev.o
4obj-$(CONFIG_MACH_CC9P9360JS) += mach-cc9p9360js.o 4obj-$(CONFIG_MACH_CC9P9360JS) += mach-cc9p9360js.o
5 5
6obj-$(CONFIG_PROCESSOR_NS9360) += gpio-ns9360.o processor-ns9360.o time-ns9360.o
7
6obj-$(CONFIG_BOARD_A9M9750DEV) += board-a9m9750dev.o 8obj-$(CONFIG_BOARD_A9M9750DEV) += board-a9m9750dev.o
7obj-$(CONFIG_BOARD_JSCC9P9360) += board-jscc9p9360.o 9obj-$(CONFIG_BOARD_JSCC9P9360) += board-jscc9p9360.o
10
11# platform devices
12obj-$(CONFIG_NS9XXX_HAVE_SERIAL8250) += plat-serial8250.o
diff --git a/arch/arm/mach-ns9xxx/Makefile.boot b/arch/arm/mach-ns9xxx/Makefile.boot
index 75ed64e90fa4..54654919229b 100644
--- a/arch/arm/mach-ns9xxx/Makefile.boot
+++ b/arch/arm/mach-ns9xxx/Makefile.boot
@@ -1,2 +1,2 @@
1zreladdr-y := 0x108000 1zreladdr-y := 0x8000
2params_phys-y := 0x100 2params_phys-y := 0x100
diff --git a/arch/arm/mach-ns9xxx/board-a9m9750dev.c b/arch/arm/mach-ns9xxx/board-a9m9750dev.c
index 0f65177f9e5f..a494b71c0195 100644
--- a/arch/arm/mach-ns9xxx/board-a9m9750dev.c
+++ b/arch/arm/mach-ns9xxx/board-a9m9750dev.c
@@ -8,15 +8,14 @@
8 * under the terms of the GNU General Public License version 2 as published by 8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation. 9 * the Free Software Foundation.
10 */ 10 */
11#include <linux/platform_device.h>
12#include <linux/serial_8250.h>
13#include <linux/irq.h> 11#include <linux/irq.h>
14 12
15#include <asm/mach/map.h> 13#include <asm/mach/map.h>
16#include <asm/gpio.h> 14#include <asm/gpio.h>
17 15
18#include <asm/arch-ns9xxx/board.h> 16#include <asm/arch-ns9xxx/board.h>
19#include <asm/arch-ns9xxx/regs-sys.h> 17#include <asm/arch-ns9xxx/processor-ns9360.h>
18#include <asm/arch-ns9xxx/regs-sys-ns9360.h>
20#include <asm/arch-ns9xxx/regs-mem.h> 19#include <asm/arch-ns9xxx/regs-mem.h>
21#include <asm/arch-ns9xxx/regs-bbu.h> 20#include <asm/arch-ns9xxx/regs-bbu.h>
22#include <asm/arch-ns9xxx/regs-board-a9m9750dev.h> 21#include <asm/arch-ns9xxx/regs-board-a9m9750dev.h>
@@ -105,9 +104,9 @@ void __init board_a9m9750dev_init_irq(void)
105 int i; 104 int i;
106 105
107 if (gpio_request(11, "board a9m9750dev extirq2") == 0) 106 if (gpio_request(11, "board a9m9750dev extirq2") == 0)
108 ns9xxx_gpio_configure(11, 0, 1); 107 ns9360_gpio_configure(11, 0, 1);
109 else 108 else
110 printk(KERN_ERR "%s: cannot get gpio 11 for IRQ_EXT2\n", 109 printk(KERN_ERR "%s: cannot get gpio 11 for IRQ_NS9XXX_EXT2\n",
111 __func__); 110 __func__);
112 111
113 for (i = FPGA_IRQ(0); i <= FPGA_IRQ(7); ++i) { 112 for (i = FPGA_IRQ(0); i <= FPGA_IRQ(7); ++i) {
@@ -116,69 +115,16 @@ void __init board_a9m9750dev_init_irq(void)
116 set_irq_flags(i, IRQF_VALID); 115 set_irq_flags(i, IRQF_VALID);
117 } 116 }
118 117
119 /* IRQ_EXT2: level sensitive + active low */ 118 /* IRQ_NS9XXX_EXT2: level sensitive + active low */
120 eic = __raw_readl(SYS_EIC(2)); 119 eic = __raw_readl(SYS_EIC(2));
121 REGSET(eic, SYS_EIC, PLTY, AL); 120 REGSET(eic, SYS_EIC, PLTY, AL);
122 REGSET(eic, SYS_EIC, LVEDG, LEVEL); 121 REGSET(eic, SYS_EIC, LVEDG, LEVEL);
123 __raw_writel(eic, SYS_EIC(2)); 122 __raw_writel(eic, SYS_EIC(2));
124 123
125 set_irq_chained_handler(IRQ_EXT2, 124 set_irq_chained_handler(IRQ_NS9XXX_EXT2,
126 a9m9750dev_fpga_demux_handler); 125 a9m9750dev_fpga_demux_handler);
127} 126}
128 127
129static struct plat_serial8250_port board_a9m9750dev_serial8250_port[] = {
130 {
131 .iobase = FPGA_UARTA_BASE,
132 .membase = (unsigned char*)FPGA_UARTA_BASE,
133 .mapbase = FPGA_UARTA_BASE,
134 .irq = IRQ_FPGA_UARTA,
135 .iotype = UPIO_MEM,
136 .uartclk = 18432000,
137 .regshift = 0,
138 .flags = UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ,
139 }, {
140 .iobase = FPGA_UARTB_BASE,
141 .membase = (unsigned char*)FPGA_UARTB_BASE,
142 .mapbase = FPGA_UARTB_BASE,
143 .irq = IRQ_FPGA_UARTB,
144 .iotype = UPIO_MEM,
145 .uartclk = 18432000,
146 .regshift = 0,
147 .flags = UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ,
148 }, {
149 .iobase = FPGA_UARTC_BASE,
150 .membase = (unsigned char*)FPGA_UARTC_BASE,
151 .mapbase = FPGA_UARTC_BASE,
152 .irq = IRQ_FPGA_UARTC,
153 .iotype = UPIO_MEM,
154 .uartclk = 18432000,
155 .regshift = 0,
156 .flags = UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ,
157 }, {
158 .iobase = FPGA_UARTD_BASE,
159 .membase = (unsigned char*)FPGA_UARTD_BASE,
160 .mapbase = FPGA_UARTD_BASE,
161 .irq = IRQ_FPGA_UARTD,
162 .iotype = UPIO_MEM,
163 .uartclk = 18432000,
164 .regshift = 0,
165 .flags = UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ,
166 }, {
167 /* end marker */
168 },
169};
170
171static struct platform_device board_a9m9750dev_serial_device = {
172 .name = "serial8250",
173 .dev = {
174 .platform_data = board_a9m9750dev_serial8250_port,
175 },
176};
177
178static struct platform_device *board_a9m9750dev_devices[] __initdata = {
179 &board_a9m9750dev_serial_device,
180};
181
182void __init board_a9m9750dev_init_machine(void) 128void __init board_a9m9750dev_init_machine(void)
183{ 129{
184 u32 reg; 130 u32 reg;
@@ -210,7 +156,4 @@ void __init board_a9m9750dev_init_machine(void)
210 __raw_writel(0x2, MEM_SMOED(0)); 156 __raw_writel(0x2, MEM_SMOED(0));
211 __raw_writel(0x6, MEM_SMRD(0)); 157 __raw_writel(0x6, MEM_SMRD(0));
212 __raw_writel(0x6, MEM_SMWD(0)); 158 __raw_writel(0x6, MEM_SMWD(0));
213
214 platform_add_devices(board_a9m9750dev_devices,
215 ARRAY_SIZE(board_a9m9750dev_devices));
216} 159}
diff --git a/arch/arm/mach-ns9xxx/clock.c b/arch/arm/mach-ns9xxx/clock.c
new file mode 100644
index 000000000000..f8639161068f
--- /dev/null
+++ b/arch/arm/mach-ns9xxx/clock.c
@@ -0,0 +1,215 @@
1/*
2 * arch/arm/mach-ns9xxx/clock.c
3 *
4 * Copyright (C) 2007 by Digi International Inc.
5 * All rights reserved.
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
10 */
11#include <linux/err.h>
12#include <linux/module.h>
13#include <linux/list.h>
14#include <linux/clk.h>
15#include <linux/string.h>
16#include <linux/platform_device.h>
17
18#include <asm/semaphore.h>
19#include "clock.h"
20
21static LIST_HEAD(clocks);
22static DEFINE_SPINLOCK(clk_lock);
23
24struct clk *clk_get(struct device *dev, const char *id)
25{
26 struct clk *p, *ret = NULL, *retgen = NULL;
27 unsigned long flags;
28 int idno;
29
30 if (dev == NULL || dev->bus != &platform_bus_type)
31 idno = -1;
32 else
33 idno = to_platform_device(dev)->id;
34
35 spin_lock_irqsave(&clk_lock, flags);
36 list_for_each_entry(p, &clocks, node) {
37 if (strcmp(id, p->name) == 0) {
38 if (p->id == idno) {
39 if (!try_module_get(p->owner))
40 continue;
41 ret = p;
42 break;
43 } else if (p->id == -1)
44 /* remember match with id == -1 in case there is
45 * no clock for idno */
46 retgen = p;
47 }
48 }
49
50 if (!ret && retgen && try_module_get(retgen->owner))
51 ret = retgen;
52
53 if (ret)
54 ++ret->refcount;
55
56 spin_unlock_irqrestore(&clk_lock, flags);
57
58 return ret ? ret : ERR_PTR(-ENOENT);
59}
60EXPORT_SYMBOL(clk_get);
61
62void clk_put(struct clk *clk)
63{
64 module_put(clk->owner);
65 --clk->refcount;
66}
67EXPORT_SYMBOL(clk_put);
68
69static int clk_enable_unlocked(struct clk *clk)
70{
71 int ret = 0;
72 if (clk->parent) {
73 ret = clk_enable_unlocked(clk->parent);
74 if (ret)
75 return ret;
76 }
77
78 if (clk->usage++ == 0 && clk->endisable)
79 ret = clk->endisable(clk, 1);
80
81 return ret;
82}
83
84int clk_enable(struct clk *clk)
85{
86 int ret;
87 unsigned long flags;
88
89 spin_lock_irqsave(&clk_lock, flags);
90
91 ret = clk_enable_unlocked(clk);
92
93 spin_unlock_irqrestore(&clk_lock, flags);
94
95 return ret;
96}
97EXPORT_SYMBOL(clk_enable);
98
99static void clk_disable_unlocked(struct clk *clk)
100{
101 if (--clk->usage == 0 && clk->endisable)
102 clk->endisable(clk, 0);
103
104 if (clk->parent)
105 clk_disable_unlocked(clk->parent);
106}
107
108void clk_disable(struct clk *clk)
109{
110 unsigned long flags;
111
112 spin_lock_irqsave(&clk_lock, flags);
113
114 clk_disable_unlocked(clk);
115
116 spin_unlock_irqrestore(&clk_lock, flags);
117}
118EXPORT_SYMBOL(clk_disable);
119
120unsigned long clk_get_rate(struct clk *clk)
121{
122 if (clk->get_rate)
123 return clk->get_rate(clk);
124
125 if (clk->rate)
126 return clk->rate;
127
128 if (clk->parent)
129 return clk_get_rate(clk->parent);
130
131 return 0;
132}
133EXPORT_SYMBOL(clk_get_rate);
134
135int clk_register(struct clk *clk)
136{
137 unsigned long flags;
138
139 spin_lock_irqsave(&clk_lock, flags);
140
141 list_add(&clk->node, &clocks);
142
143 if (clk->parent)
144 ++clk->parent->refcount;
145
146 spin_unlock_irqrestore(&clk_lock, flags);
147
148 return 0;
149}
150
151int clk_unregister(struct clk *clk)
152{
153 int ret = 0;
154 unsigned long flags;
155
156 spin_lock_irqsave(&clk_lock, flags);
157
158 if (clk->usage || clk->refcount)
159 ret = -EBUSY;
160 else
161 list_del(&clk->node);
162
163 if (clk->parent)
164 --clk->parent->refcount;
165
166 spin_unlock_irqrestore(&clk_lock, flags);
167
168 return ret;
169}
170
171#if defined CONFIG_DEBUG_FS
172
173#include <linux/debugfs.h>
174#include <linux/seq_file.h>
175
176static int clk_debugfs_show(struct seq_file *s, void *null)
177{
178 unsigned long flags;
179 struct clk *p;
180
181 spin_lock_irqsave(&clk_lock, flags);
182
183 list_for_each_entry(p, &clocks, node)
184 seq_printf(s, "%s.%d: usage=%lu refcount=%lu rate=%lu\n",
185 p->name, p->id, p->usage, p->refcount,
186 p->usage ? clk_get_rate(p) : 0);
187
188 spin_unlock_irqrestore(&clk_lock, flags);
189
190 return 0;
191}
192
193static int clk_debugfs_open(struct inode *inode, struct file *file)
194{
195 return single_open(file, clk_debugfs_show, NULL);
196}
197
198static struct file_operations clk_debugfs_operations = {
199 .open = clk_debugfs_open,
200 .read = seq_read,
201 .llseek = seq_lseek,
202 .release = single_release,
203};
204
205static int __init clk_debugfs_init(void)
206{
207 struct dentry *dentry;
208
209 dentry = debugfs_create_file("clk", S_IFREG | S_IRUGO, NULL, NULL,
210 &clk_debugfs_operations);
211 return IS_ERR(dentry) ? PTR_ERR(dentry) : 0;
212}
213subsys_initcall(clk_debugfs_init);
214
215#endif /* if defined CONFIG_DEBUG_FS */
diff --git a/arch/arm/mach-ns9xxx/clock.h b/arch/arm/mach-ns9xxx/clock.h
new file mode 100644
index 000000000000..b86c30dd79eb
--- /dev/null
+++ b/arch/arm/mach-ns9xxx/clock.h
@@ -0,0 +1,35 @@
1/*
2 * arch/arm/mach-ns9xxx/clock.h
3 *
4 * Copyright (C) 2007 by Digi International Inc.
5 * All rights reserved.
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
10 */
11#ifndef __NS9XXX_CLOCK_H
12#define __NS9XXX_CLOCK_H
13
14#include <linux/list.h>
15
16struct clk {
17 struct module *owner;
18 const char *name;
19 int id;
20
21 struct clk *parent;
22
23 unsigned long rate;
24 int (*endisable)(struct clk *, int enable);
25 unsigned long (*get_rate)(struct clk *);
26
27 struct list_head node;
28 unsigned long refcount;
29 unsigned long usage;
30};
31
32int clk_register(struct clk *clk);
33int clk_unregister(struct clk *clk);
34
35#endif /* ifndef __NS9XXX_CLOCK_H */
diff --git a/arch/arm/mach-ns9xxx/generic.c b/arch/arm/mach-ns9xxx/generic.c
index d742c921e34d..1e0f467879cc 100644
--- a/arch/arm/mach-ns9xxx/generic.c
+++ b/arch/arm/mach-ns9xxx/generic.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * arch/arm/mach-ns9xxx/generic.c 2 * arch/arm/mach-ns9xxx/generic.c
3 * 3 *
4 * Copyright (C) 2006 by Digi International Inc. 4 * Copyright (C) 2006,2007 by Digi International Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify it 7 * This program is free software; you can redistribute it and/or modify it
@@ -11,34 +11,9 @@
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/init.h> 12#include <linux/init.h>
13#include <asm/memory.h> 13#include <asm/memory.h>
14#include <asm/page.h>
15#include <asm/mach-types.h>
16#include <asm/mach/map.h>
17#include <asm/arch-ns9xxx/regs-sys.h>
18#include <asm/arch-ns9xxx/regs-mem.h>
19#include <asm/arch-ns9xxx/board.h>
20 14
21#include "generic.h" 15#include "generic.h"
22 16
23static struct map_desc standard_io_desc[] __initdata = {
24 { /* BBus */
25 .virtual = io_p2v(0x90000000),
26 .pfn = __phys_to_pfn(0x90000000),
27 .length = 0x00700000,
28 .type = MT_DEVICE,
29 }, { /* AHB */
30 .virtual = io_p2v(0xa0100000),
31 .pfn = __phys_to_pfn(0xa0100000),
32 .length = 0x00900000,
33 .type = MT_DEVICE,
34 },
35};
36
37void __init ns9xxx_map_io(void)
38{
39 iotable_init(standard_io_desc, ARRAY_SIZE(standard_io_desc));
40}
41
42void __init ns9xxx_init_machine(void) 17void __init ns9xxx_init_machine(void)
43{ 18{
44} 19}
diff --git a/arch/arm/mach-ns9xxx/generic.h b/arch/arm/mach-ns9xxx/generic.h
index 687e291773f4..82493191aad6 100644
--- a/arch/arm/mach-ns9xxx/generic.h
+++ b/arch/arm/mach-ns9xxx/generic.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * arch/arm/mach-ns9xxx/generic.h 2 * arch/arm/mach-ns9xxx/generic.h
3 * 3 *
4 * Copyright (C) 2006 by Digi International Inc. 4 * Copyright (C) 2006,2007 by Digi International Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify it 7 * This program is free software; you can redistribute it and/or modify it
@@ -13,7 +13,4 @@
13#include <linux/init.h> 13#include <linux/init.h>
14 14
15void __init ns9xxx_init_irq(void); 15void __init ns9xxx_init_irq(void);
16void __init ns9xxx_map_io(void);
17void __init ns9xxx_init_machine(void); 16void __init ns9xxx_init_machine(void);
18
19extern struct sys_timer ns9xxx_timer;
diff --git a/arch/arm/mach-ns9xxx/gpio-ns9360.c b/arch/arm/mach-ns9xxx/gpio-ns9360.c
new file mode 100644
index 000000000000..cabfb879dda9
--- /dev/null
+++ b/arch/arm/mach-ns9xxx/gpio-ns9360.c
@@ -0,0 +1,118 @@
1/*
2 * arch/arm/mach-ns9xxx/gpio-ns9360.c
3 *
4 * Copyright (C) 2006,2007 by Digi International Inc.
5 * All rights reserved.
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
10 */
11#include <linux/bug.h>
12#include <linux/errno.h>
13#include <linux/io.h>
14#include <linux/kernel.h>
15#include <linux/module.h>
16
17#include <asm/arch-ns9xxx/regs-bbu.h>
18#include <asm/arch-ns9xxx/processor-ns9360.h>
19
20#include "gpio-ns9360.h"
21
22static inline int ns9360_valid_gpio(unsigned gpio)
23{
24 return gpio <= 72;
25}
26
27static inline void __iomem *ns9360_gpio_get_gconfaddr(unsigned gpio)
28{
29 if (gpio < 56)
30 return BBU_GCONFb1(gpio / 8);
31 else
32 /*
33 * this could be optimised away on
34 * ns9750 only builds, but it isn't ...
35 */
36 return BBU_GCONFb2((gpio - 56) / 8);
37}
38
39static inline void __iomem *ns9360_gpio_get_gctrladdr(unsigned gpio)
40{
41 if (gpio < 32)
42 return BBU_GCTRL1;
43 else if (gpio < 64)
44 return BBU_GCTRL2;
45 else
46 /* this could be optimised away on ns9750 only builds */
47 return BBU_GCTRL3;
48}
49
50static inline void __iomem *ns9360_gpio_get_gstataddr(unsigned gpio)
51{
52 if (gpio < 32)
53 return BBU_GSTAT1;
54 else if (gpio < 64)
55 return BBU_GSTAT2;
56 else
57 /* this could be optimised away on ns9750 only builds */
58 return BBU_GSTAT3;
59}
60
61/*
62 * each gpio can serve for 4 different purposes [0..3]. These are called
63 * "functions" and passed in the parameter func. Functions 0-2 are always some
64 * special things, function 3 is GPIO. If func == 3 dir specifies input or
65 * output, and with inv you can enable an inverter (independent of func).
66 */
67int __ns9360_gpio_configure(unsigned gpio, int dir, int inv, int func)
68{
69 void __iomem *conf = ns9360_gpio_get_gconfaddr(gpio);
70 u32 confval;
71
72 confval = __raw_readl(conf);
73 REGSETIM_IDX(confval, BBU_GCONFx, DIR, gpio & 7, dir);
74 REGSETIM_IDX(confval, BBU_GCONFx, INV, gpio & 7, inv);
75 REGSETIM_IDX(confval, BBU_GCONFx, FUNC, gpio & 7, func);
76 __raw_writel(confval, conf);
77
78 return 0;
79}
80
81int ns9360_gpio_configure(unsigned gpio, int inv, int func)
82{
83 if (likely(ns9360_valid_gpio(gpio))) {
84 if (func == 3) {
85 printk(KERN_WARNING "use gpio_direction_input "
86 "or gpio_direction_output\n");
87 return -EINVAL;
88 } else
89 return __ns9360_gpio_configure(gpio, 0, inv, func);
90 } else
91 return -EINVAL;
92}
93EXPORT_SYMBOL(ns9360_gpio_configure);
94
95int ns9360_gpio_get_value(unsigned gpio)
96{
97 void __iomem *stat = ns9360_gpio_get_gstataddr(gpio);
98 int ret;
99
100 ret = 1 & (__raw_readl(stat) >> (gpio & 31));
101
102 return ret;
103}
104
105void ns9360_gpio_set_value(unsigned gpio, int value)
106{
107 void __iomem *ctrl = ns9360_gpio_get_gctrladdr(gpio);
108 u32 ctrlval;
109
110 ctrlval = __raw_readl(ctrl);
111
112 if (value)
113 ctrlval |= 1 << (gpio & 31);
114 else
115 ctrlval &= ~(1 << (gpio & 31));
116
117 __raw_writel(ctrlval, ctrl);
118}
diff --git a/arch/arm/mach-ns9xxx/gpio-ns9360.h b/arch/arm/mach-ns9xxx/gpio-ns9360.h
new file mode 100644
index 000000000000..131cd1715caa
--- /dev/null
+++ b/arch/arm/mach-ns9xxx/gpio-ns9360.h
@@ -0,0 +1,13 @@
1/*
2 * arch/arm/mach-ns9xxx/gpio-ns9360.h
3 *
4 * Copyright (C) 2006,2007 by Digi International Inc.
5 * All rights reserved.
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
10 */
11int __ns9360_gpio_configure(unsigned gpio, int dir, int inv, int func);
12int ns9360_gpio_get_value(unsigned gpio);
13void ns9360_gpio_set_value(unsigned gpio, int value);
diff --git a/arch/arm/mach-ns9xxx/gpio.c b/arch/arm/mach-ns9xxx/gpio.c
index 5286e9fc1d30..b3c963b0c8f5 100644
--- a/arch/arm/mach-ns9xxx/gpio.c
+++ b/arch/arm/mach-ns9xxx/gpio.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * arch/arm/mach-ns9xxx/gpio.c 2 * arch/arm/mach-ns9xxx/gpio.c
3 * 3 *
4 * Copyright (C) 2006 by Digi International Inc. 4 * Copyright (C) 2006,2007 by Digi International Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify it 7 * This program is free software; you can redistribute it and/or modify it
@@ -15,12 +15,13 @@
15 15
16#include <asm/arch-ns9xxx/gpio.h> 16#include <asm/arch-ns9xxx/gpio.h>
17#include <asm/arch-ns9xxx/processor.h> 17#include <asm/arch-ns9xxx/processor.h>
18#include <asm/arch-ns9xxx/regs-bbu.h> 18#include <asm/arch-ns9xxx/processor-ns9360.h>
19#include <asm/io.h>
20#include <asm/bug.h> 19#include <asm/bug.h>
21#include <asm/types.h> 20#include <asm/types.h>
22#include <asm/bitops.h> 21#include <asm/bitops.h>
23 22
23#include "gpio-ns9360.h"
24
24#if defined(CONFIG_PROCESSOR_NS9360) 25#if defined(CONFIG_PROCESSOR_NS9360)
25#define GPIO_MAX 72 26#define GPIO_MAX 72
26#elif defined(CONFIG_PROCESSOR_NS9750) 27#elif defined(CONFIG_PROCESSOR_NS9750)
@@ -45,41 +46,10 @@ static inline int ns9xxx_valid_gpio(unsigned gpio)
45 return gpio <= 49; 46 return gpio <= 49;
46 else 47 else
47#endif 48#endif
49 {
48 BUG(); 50 BUG();
49} 51 return 0;
50 52 }
51static inline void __iomem *ns9xxx_gpio_get_gconfaddr(unsigned gpio)
52{
53 if (gpio < 56)
54 return BBU_GCONFb1(gpio / 8);
55 else
56 /*
57 * this could be optimised away on
58 * ns9750 only builds, but it isn't ...
59 */
60 return BBU_GCONFb2((gpio - 56) / 8);
61}
62
63static inline void __iomem *ns9xxx_gpio_get_gctrladdr(unsigned gpio)
64{
65 if (gpio < 32)
66 return BBU_GCTRL1;
67 else if (gpio < 64)
68 return BBU_GCTRL2;
69 else
70 /* this could be optimised away on ns9750 only builds */
71 return BBU_GCTRL3;
72}
73
74static inline void __iomem *ns9xxx_gpio_get_gstataddr(unsigned gpio)
75{
76 if (gpio < 32)
77 return BBU_GSTAT1;
78 else if (gpio < 64)
79 return BBU_GSTAT2;
80 else
81 /* this could be optimised away on ns9750 only builds */
82 return BBU_GSTAT3;
83} 53}
84 54
85int gpio_request(unsigned gpio, const char *label) 55int gpio_request(unsigned gpio, const char *label)
@@ -98,49 +68,24 @@ void gpio_free(unsigned gpio)
98} 68}
99EXPORT_SYMBOL(gpio_free); 69EXPORT_SYMBOL(gpio_free);
100 70
101/* 71int gpio_direction_input(unsigned gpio)
102 * each gpio can serve for 4 different purposes [0..3]. These are called
103 * "functions" and passed in the parameter func. Functions 0-2 are always some
104 * special things, function 3 is GPIO. If func == 3 dir specifies input or
105 * output, and with inv you can enable an inverter (independent of func).
106 */
107static int __ns9xxx_gpio_configure(unsigned gpio, int dir, int inv, int func)
108{ 72{
109 void __iomem *conf = ns9xxx_gpio_get_gconfaddr(gpio); 73 if (likely(ns9xxx_valid_gpio(gpio))) {
110 u32 confval; 74 int ret = -EINVAL;
111 unsigned long flags; 75 unsigned long flags;
112
113 spin_lock_irqsave(&gpio_lock, flags);
114
115 confval = __raw_readl(conf);
116 REGSETIM_IDX(confval, BBU_GCONFx, DIR, gpio & 7, dir);
117 REGSETIM_IDX(confval, BBU_GCONFx, INV, gpio & 7, inv);
118 REGSETIM_IDX(confval, BBU_GCONFx, FUNC, gpio & 7, func);
119 __raw_writel(confval, conf);
120 76
121 spin_unlock_irqrestore(&gpio_lock, flags); 77 spin_lock_irqsave(&gpio_lock, flags);
78#if defined(CONFIG_PROCESSOR_NS9360)
79 if (processor_is_ns9360())
80 ret = __ns9360_gpio_configure(gpio, 0, 0, 3);
81 else
82#endif
83 BUG();
122 84
123 return 0; 85 spin_unlock_irqrestore(&gpio_lock, flags);
124}
125 86
126int ns9xxx_gpio_configure(unsigned gpio, int inv, int func) 87 return ret;
127{
128 if (likely(ns9xxx_valid_gpio(gpio))) {
129 if (func == 3) {
130 printk(KERN_WARNING "use gpio_direction_input "
131 "or gpio_direction_output\n");
132 return -EINVAL;
133 } else
134 return __ns9xxx_gpio_configure(gpio, 0, inv, func);
135 } else
136 return -EINVAL;
137}
138EXPORT_SYMBOL(ns9xxx_gpio_configure);
139 88
140int gpio_direction_input(unsigned gpio)
141{
142 if (likely(ns9xxx_valid_gpio(gpio))) {
143 return __ns9xxx_gpio_configure(gpio, 0, 0, 3);
144 } else 89 } else
145 return -EINVAL; 90 return -EINVAL;
146} 91}
@@ -149,9 +94,22 @@ EXPORT_SYMBOL(gpio_direction_input);
149int gpio_direction_output(unsigned gpio, int value) 94int gpio_direction_output(unsigned gpio, int value)
150{ 95{
151 if (likely(ns9xxx_valid_gpio(gpio))) { 96 if (likely(ns9xxx_valid_gpio(gpio))) {
97 int ret = -EINVAL;
98 unsigned long flags;
99
152 gpio_set_value(gpio, value); 100 gpio_set_value(gpio, value);
153 101
154 return __ns9xxx_gpio_configure(gpio, 1, 0, 3); 102 spin_lock_irqsave(&gpio_lock, flags);
103#if defined(CONFIG_PROCESSOR_NS9360)
104 if (processor_is_ns9360())
105 ret = __ns9360_gpio_configure(gpio, 1, 0, 3);
106 else
107#endif
108 BUG();
109
110 spin_unlock_irqrestore(&gpio_lock, flags);
111
112 return ret;
155 } else 113 } else
156 return -EINVAL; 114 return -EINVAL;
157} 115}
@@ -159,31 +117,28 @@ EXPORT_SYMBOL(gpio_direction_output);
159 117
160int gpio_get_value(unsigned gpio) 118int gpio_get_value(unsigned gpio)
161{ 119{
162 void __iomem *stat = ns9xxx_gpio_get_gstataddr(gpio); 120#if defined(CONFIG_PROCESSOR_NS9360)
163 int ret; 121 if (processor_is_ns9360())
164 122 return ns9360_gpio_get_value(gpio);
165 ret = 1 & (__raw_readl(stat) >> (gpio & 31)); 123 else
166 124#endif
167 return ret; 125 {
126 BUG();
127 return -EINVAL;
128 }
168} 129}
169EXPORT_SYMBOL(gpio_get_value); 130EXPORT_SYMBOL(gpio_get_value);
170 131
171void gpio_set_value(unsigned gpio, int value) 132void gpio_set_value(unsigned gpio, int value)
172{ 133{
173 void __iomem *ctrl = ns9xxx_gpio_get_gctrladdr(gpio);
174 u32 ctrlval;
175 unsigned long flags; 134 unsigned long flags;
176
177 spin_lock_irqsave(&gpio_lock, flags); 135 spin_lock_irqsave(&gpio_lock, flags);
178 136#if defined(CONFIG_PROCESSOR_NS9360)
179 ctrlval = __raw_readl(ctrl); 137 if (processor_is_ns9360())
180 138 ns9360_gpio_set_value(gpio, value);
181 if (value)
182 ctrlval |= 1 << (gpio & 31);
183 else 139 else
184 ctrlval &= ~(1 << (gpio & 31)); 140#endif
185 141 BUG();
186 __raw_writel(ctrlval, ctrl);
187 142
188 spin_unlock_irqrestore(&gpio_lock, flags); 143 spin_unlock_irqrestore(&gpio_lock, flags);
189} 144}
diff --git a/arch/arm/mach-ns9xxx/irq.c b/arch/arm/mach-ns9xxx/irq.c
index 00001b874e97..36e5835e6097 100644
--- a/arch/arm/mach-ns9xxx/irq.c
+++ b/arch/arm/mach-ns9xxx/irq.c
@@ -9,21 +9,27 @@
9 * the Free Software Foundation. 9 * the Free Software Foundation.
10 */ 10 */
11#include <linux/interrupt.h> 11#include <linux/interrupt.h>
12#include <linux/kernel_stat.h>
12#include <asm/io.h> 13#include <asm/io.h>
13#include <asm/mach/irq.h> 14#include <asm/mach/irq.h>
14#include <asm/mach-types.h> 15#include <asm/mach-types.h>
15#include <asm/arch-ns9xxx/regs-sys.h> 16#include <asm/arch-ns9xxx/regs-sys-common.h>
16#include <asm/arch-ns9xxx/irqs.h> 17#include <asm/arch-ns9xxx/irqs.h>
17#include <asm/arch-ns9xxx/board.h> 18#include <asm/arch-ns9xxx/board.h>
18 19
19#include "generic.h" 20#include "generic.h"
20 21
22/* simple interrupt prio table: prio(x) < prio(y) <=> x < y */
23#define irq2prio(i) (i)
24#define prio2irq(p) (p)
25
21static void ns9xxx_mask_irq(unsigned int irq) 26static void ns9xxx_mask_irq(unsigned int irq)
22{ 27{
23 /* XXX: better use cpp symbols */ 28 /* XXX: better use cpp symbols */
24 u32 ic = __raw_readl(SYS_IC(irq / 4)); 29 int prio = irq2prio(irq);
25 ic &= ~(1 << (7 + 8 * (3 - (irq & 3)))); 30 u32 ic = __raw_readl(SYS_IC(prio / 4));
26 __raw_writel(ic, SYS_IC(irq / 4)); 31 ic &= ~(1 << (7 + 8 * (3 - (prio & 3))));
32 __raw_writel(ic, SYS_IC(prio / 4));
27} 33}
28 34
29static void ns9xxx_ack_irq(unsigned int irq) 35static void ns9xxx_ack_irq(unsigned int irq)
@@ -40,9 +46,10 @@ static void ns9xxx_maskack_irq(unsigned int irq)
40static void ns9xxx_unmask_irq(unsigned int irq) 46static void ns9xxx_unmask_irq(unsigned int irq)
41{ 47{
42 /* XXX: better use cpp symbols */ 48 /* XXX: better use cpp symbols */
43 u32 ic = __raw_readl(SYS_IC(irq / 4)); 49 int prio = irq2prio(irq);
44 ic |= 1 << (7 + 8 * (3 - (irq & 3))); 50 u32 ic = __raw_readl(SYS_IC(prio / 4));
45 __raw_writel(ic, SYS_IC(irq / 4)); 51 ic |= 1 << (7 + 8 * (3 - (prio & 3)));
52 __raw_writel(ic, SYS_IC(prio / 4));
46} 53}
47 54
48static struct irq_chip ns9xxx_chip = { 55static struct irq_chip ns9xxx_chip = {
@@ -52,24 +59,61 @@ static struct irq_chip ns9xxx_chip = {
52 .unmask = ns9xxx_unmask_irq, 59 .unmask = ns9xxx_unmask_irq,
53}; 60};
54 61
62#if 0
63#define handle_irq handle_level_irq
64#else
65void handle_prio_irq(unsigned int irq, struct irq_desc *desc)
66{
67 unsigned int cpu = smp_processor_id();
68 struct irqaction *action;
69 irqreturn_t action_ret;
70
71 spin_lock(&desc->lock);
72
73 if (unlikely(desc->status & IRQ_INPROGRESS))
74 goto out_unlock;
75
76 desc->status &= ~(IRQ_REPLAY | IRQ_WAITING);
77 kstat_cpu(cpu).irqs[irq]++;
78
79 action = desc->action;
80 if (unlikely(!action || (desc->status & IRQ_DISABLED)))
81 goto out_unlock;
82
83 desc->status |= IRQ_INPROGRESS;
84 spin_unlock(&desc->lock);
85
86 action_ret = handle_IRQ_event(irq, action);
87
88 spin_lock(&desc->lock);
89 desc->status &= ~IRQ_INPROGRESS;
90 if (!(desc->status & IRQ_DISABLED) && desc->chip->ack)
91 desc->chip->ack(irq);
92
93out_unlock:
94 spin_unlock(&desc->lock);
95}
96#define handle_irq handle_prio_irq
97#endif
98
55void __init ns9xxx_init_irq(void) 99void __init ns9xxx_init_irq(void)
56{ 100{
57 int i; 101 int i;
58 102
59 /* disable all IRQs */ 103 /* disable all IRQs */
60 for (i = 0; i < 8; ++i) 104 for (i = 0; i < 8; ++i)
61 __raw_writel((4 * i) << 24 | (4 * i + 1) << 16 | 105 __raw_writel(prio2irq(4 * i) << 24 |
62 (4 * i + 2) << 8 | (4 * i + 3), SYS_IC(i)); 106 prio2irq(4 * i + 1) << 16 |
107 prio2irq(4 * i + 2) << 8 |
108 prio2irq(4 * i + 3),
109 SYS_IC(i));
63 110
64 /* simple interrupt prio table:
65 * prio(x) < prio(y) <=> x < y
66 */
67 for (i = 0; i < 32; ++i) 111 for (i = 0; i < 32; ++i)
68 __raw_writel(i, SYS_IVA(i)); 112 __raw_writel(prio2irq(i), SYS_IVA(i));
69 113
70 for (i = IRQ_WATCHDOG; i <= IRQ_EXT3; ++i) { 114 for (i = 0; i <= 31; ++i) {
71 set_irq_chip(i, &ns9xxx_chip); 115 set_irq_chip(i, &ns9xxx_chip);
72 set_irq_handler(i, handle_level_irq); 116 set_irq_handler(i, handle_irq);
73 set_irq_flags(i, IRQF_VALID); 117 set_irq_flags(i, IRQF_VALID);
74 } 118 }
75} 119}
diff --git a/arch/arm/mach-ns9xxx/mach-cc9p9360dev.c b/arch/arm/mach-ns9xxx/mach-cc9p9360dev.c
index 760c9d0db7c3..9623fff6b3bc 100644
--- a/arch/arm/mach-ns9xxx/mach-cc9p9360dev.c
+++ b/arch/arm/mach-ns9xxx/mach-cc9p9360dev.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * arch/arm/mach-ns9xxx/mach-cc9p9360dev.c 2 * arch/arm/mach-ns9xxx/mach-cc9p9360dev.c
3 * 3 *
4 * Copyright (C) 2006 by Digi International Inc. 4 * Copyright (C) 2006,2007 by Digi International Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify it 7 * This program is free software; you can redistribute it and/or modify it
@@ -11,12 +11,14 @@
11#include <asm/mach/arch.h> 11#include <asm/mach/arch.h>
12#include <asm/mach-types.h> 12#include <asm/mach-types.h>
13 13
14#include <asm/arch-ns9xxx/processor-ns9360.h>
15
14#include "board-a9m9750dev.h" 16#include "board-a9m9750dev.h"
15#include "generic.h" 17#include "generic.h"
16 18
17static void __init mach_cc9p9360dev_map_io(void) 19static void __init mach_cc9p9360dev_map_io(void)
18{ 20{
19 ns9xxx_map_io(); 21 ns9360_map_io();
20 board_a9m9750dev_map_io(); 22 board_a9m9750dev_map_io();
21} 23}
22 24
@@ -36,6 +38,6 @@ MACHINE_START(CC9P9360DEV, "Digi ConnectCore 9P 9360 on an A9M9750 Devboard")
36 .map_io = mach_cc9p9360dev_map_io, 38 .map_io = mach_cc9p9360dev_map_io,
37 .init_irq = mach_cc9p9360dev_init_irq, 39 .init_irq = mach_cc9p9360dev_init_irq,
38 .init_machine = mach_cc9p9360dev_init_machine, 40 .init_machine = mach_cc9p9360dev_init_machine,
39 .timer = &ns9xxx_timer, 41 .timer = &ns9360_timer,
40 .boot_params = 0x100, 42 .boot_params = 0x100,
41MACHINE_END 43MACHINE_END
diff --git a/arch/arm/mach-ns9xxx/mach-cc9p9360js.c b/arch/arm/mach-ns9xxx/mach-cc9p9360js.c
index 85c8b41105c9..fcc815bdd291 100644
--- a/arch/arm/mach-ns9xxx/mach-cc9p9360js.c
+++ b/arch/arm/mach-ns9xxx/mach-cc9p9360js.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * arch/arm/mach-ns9xxx/mach-cc9p9360js.c 2 * arch/arm/mach-ns9xxx/mach-cc9p9360js.c
3 * 3 *
4 * Copyright (C) 2006 by Digi International Inc. 4 * Copyright (C) 2006,2007 by Digi International Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify it 7 * This program is free software; you can redistribute it and/or modify it
@@ -11,6 +11,8 @@
11#include <asm/mach/arch.h> 11#include <asm/mach/arch.h>
12#include <asm/mach-types.h> 12#include <asm/mach-types.h>
13 13
14#include <asm/arch-ns9xxx/processor-ns9360.h>
15
14#include "board-jscc9p9360.h" 16#include "board-jscc9p9360.h"
15#include "generic.h" 17#include "generic.h"
16 18
@@ -21,9 +23,9 @@ static void __init mach_cc9p9360js_init_machine(void)
21} 23}
22 24
23MACHINE_START(CC9P9360JS, "Digi ConnectCore 9P 9360 on an JSCC9P9360 Devboard") 25MACHINE_START(CC9P9360JS, "Digi ConnectCore 9P 9360 on an JSCC9P9360 Devboard")
24 .map_io = ns9xxx_map_io, 26 .map_io = ns9360_map_io,
25 .init_irq = ns9xxx_init_irq, 27 .init_irq = ns9xxx_init_irq,
26 .init_machine = mach_cc9p9360js_init_machine, 28 .init_machine = mach_cc9p9360js_init_machine,
27 .timer = &ns9xxx_timer, 29 .timer = &ns9360_timer,
28 .boot_params = 0x100, 30 .boot_params = 0x100,
29MACHINE_END 31MACHINE_END
diff --git a/arch/arm/mach-ns9xxx/plat-serial8250.c b/arch/arm/mach-ns9xxx/plat-serial8250.c
new file mode 100644
index 000000000000..5aa5d9baf8c8
--- /dev/null
+++ b/arch/arm/mach-ns9xxx/plat-serial8250.c
@@ -0,0 +1,69 @@
1/*
2 * arch/arm/mach-ns9xxx/plat-serial8250.c
3 *
4 * Copyright (C) 2008 by Digi International Inc.
5 * All rights reserved.
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
10 */
11#include <linux/platform_device.h>
12#include <linux/serial_8250.h>
13
14#include <asm/arch-ns9xxx/regs-board-a9m9750dev.h>
15#include <asm/arch-ns9xxx/board.h>
16
17#define DRIVER_NAME "serial8250"
18
19static int __init ns9xxx_plat_serial8250_init(void)
20{
21 struct plat_serial8250_port *pdata;
22 struct platform_device *pdev;
23 int ret = -ENOMEM;
24 int i;
25
26 if (!board_is_a9m9750dev())
27 return -ENODEV;
28
29 pdev = platform_device_alloc(DRIVER_NAME, 0);
30 if (!pdev)
31 goto err;
32
33 pdata = kzalloc(5 * sizeof(*pdata), GFP_KERNEL);
34 if (!pdata)
35 goto err;
36
37 pdev->dev.platform_data = pdata;
38
39 pdata[0].iobase = FPGA_UARTA_BASE;
40 pdata[1].iobase = FPGA_UARTB_BASE;
41 pdata[2].iobase = FPGA_UARTC_BASE;
42 pdata[3].iobase = FPGA_UARTD_BASE;
43
44 for (i = 0; i < 4; ++i) {
45 pdata[i].membase = (void __iomem *)pdata[i].iobase;
46 pdata[i].mapbase = pdata[i].iobase;
47 pdata[i].iotype = UPIO_MEM;
48 pdata[i].uartclk = 18432000;
49 pdata[i].flags = UPF_BOOT_AUTOCONF | UPF_SHARE_IRQ;
50 }
51
52 pdata[0].irq = IRQ_FPGA_UARTA;
53 pdata[1].irq = IRQ_FPGA_UARTB;
54 pdata[2].irq = IRQ_FPGA_UARTC;
55 pdata[3].irq = IRQ_FPGA_UARTD;
56
57 ret = platform_device_add(pdev);
58 if (ret) {
59err:
60 platform_device_put(pdev);
61
62 printk(KERN_WARNING "Could not add %s (errno=%d)\n",
63 DRIVER_NAME, ret);
64 }
65
66 return 0;
67}
68
69arch_initcall(ns9xxx_plat_serial8250_init);
diff --git a/arch/arm/mach-ns9xxx/processor-ns9360.c b/arch/arm/mach-ns9xxx/processor-ns9360.c
new file mode 100644
index 000000000000..2bee0b7fccbb
--- /dev/null
+++ b/arch/arm/mach-ns9xxx/processor-ns9360.c
@@ -0,0 +1,54 @@
1/*
2 * arch/arm/mach-ns9xxx/processor-ns9360.c
3 *
4 * Copyright (C) 2007 by Digi International Inc.
5 * All rights reserved.
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
10 */
11#include <linux/io.h>
12#include <linux/kernel.h>
13#include <linux/slab.h>
14
15#include <asm/page.h>
16#include <asm/mach/map.h>
17#include <asm/arch-ns9xxx/processor-ns9360.h>
18#include <asm/arch-ns9xxx/regs-sys-ns9360.h>
19
20void ns9360_reset(char mode)
21{
22 u32 reg;
23
24 reg = __raw_readl(SYS_PLL) >> 16;
25 REGSET(reg, SYS_PLL, SWC, YES);
26 __raw_writel(reg, SYS_PLL);
27}
28
29#define CRYSTAL 29491200 /* Hz */
30unsigned long ns9360_systemclock(void)
31{
32 u32 pll = __raw_readl(SYS_PLL);
33 return CRYSTAL * (REGGETIM(pll, SYS_PLL, ND) + 1)
34 >> REGGETIM(pll, SYS_PLL, FS);
35}
36
37static struct map_desc ns9360_io_desc[] __initdata = {
38 { /* BBus */
39 .virtual = io_p2v(0x90000000),
40 .pfn = __phys_to_pfn(0x90000000),
41 .length = 0x00700000,
42 .type = MT_DEVICE,
43 }, { /* AHB */
44 .virtual = io_p2v(0xa0100000),
45 .pfn = __phys_to_pfn(0xa0100000),
46 .length = 0x00900000,
47 .type = MT_DEVICE,
48 },
49};
50
51void __init ns9360_map_io(void)
52{
53 iotable_init(ns9360_io_desc, ARRAY_SIZE(ns9360_io_desc));
54}
diff --git a/arch/arm/mach-ns9xxx/time.c b/arch/arm/mach-ns9xxx/time-ns9360.c
index c3dd1f4acb99..4d573c9793ed 100644
--- a/arch/arm/mach-ns9xxx/time.c
+++ b/arch/arm/mach-ns9xxx/time-ns9360.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * arch/arm/mach-ns9xxx/time.c 2 * arch/arm/mach-ns9xxx/time-ns9360.c
3 * 3 *
4 * Copyright (C) 2006 by Digi International Inc. 4 * Copyright (C) 2006,2007 by Digi International Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify it 7 * This program is free software; you can redistribute it and/or modify it
@@ -15,8 +15,8 @@
15#include <linux/clocksource.h> 15#include <linux/clocksource.h>
16#include <linux/clockchips.h> 16#include <linux/clockchips.h>
17 17
18#include <asm/arch-ns9xxx/regs-sys.h> 18#include <asm/arch-ns9xxx/processor-ns9360.h>
19#include <asm/arch-ns9xxx/clock.h> 19#include <asm/arch-ns9xxx/regs-sys-ns9360.h>
20#include <asm/arch-ns9xxx/irqs.h> 20#include <asm/arch-ns9xxx/irqs.h>
21#include <asm/arch/system.h> 21#include <asm/arch/system.h>
22#include "generic.h" 22#include "generic.h"
@@ -25,26 +25,26 @@
25#define TIMER_CLOCKEVENT 1 25#define TIMER_CLOCKEVENT 1
26static u32 latch; 26static u32 latch;
27 27
28static cycle_t ns9xxx_clocksource_read(void) 28static cycle_t ns9360_clocksource_read(void)
29{ 29{
30 return __raw_readl(SYS_TR(TIMER_CLOCKSOURCE)); 30 return __raw_readl(SYS_TR(TIMER_CLOCKSOURCE));
31} 31}
32 32
33static struct clocksource ns9xxx_clocksource = { 33static struct clocksource ns9360_clocksource = {
34 .name = "ns9xxx-timer" __stringify(TIMER_CLOCKSOURCE), 34 .name = "ns9360-timer" __stringify(TIMER_CLOCKSOURCE),
35 .rating = 300, 35 .rating = 300,
36 .read = ns9xxx_clocksource_read, 36 .read = ns9360_clocksource_read,
37 .mask = CLOCKSOURCE_MASK(32), 37 .mask = CLOCKSOURCE_MASK(32),
38 .shift = 20, 38 .shift = 20,
39 .flags = CLOCK_SOURCE_IS_CONTINUOUS, 39 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
40}; 40};
41 41
42static void ns9xxx_clockevent_setmode(enum clock_event_mode mode, 42static void ns9360_clockevent_setmode(enum clock_event_mode mode,
43 struct clock_event_device *clk) 43 struct clock_event_device *clk)
44{ 44{
45 u32 tc = __raw_readl(SYS_TC(TIMER_CLOCKEVENT)); 45 u32 tc = __raw_readl(SYS_TC(TIMER_CLOCKEVENT));
46 46
47 switch(mode) { 47 switch (mode) {
48 case CLOCK_EVT_MODE_PERIODIC: 48 case CLOCK_EVT_MODE_PERIODIC:
49 __raw_writel(latch, SYS_TRC(TIMER_CLOCKEVENT)); 49 __raw_writel(latch, SYS_TRC(TIMER_CLOCKEVENT));
50 REGSET(tc, SYS_TCx, REN, EN); 50 REGSET(tc, SYS_TCx, REN, EN);
@@ -69,7 +69,7 @@ static void ns9xxx_clockevent_setmode(enum clock_event_mode mode,
69 __raw_writel(tc, SYS_TC(TIMER_CLOCKEVENT)); 69 __raw_writel(tc, SYS_TC(TIMER_CLOCKEVENT));
70} 70}
71 71
72static int ns9xxx_clockevent_setnextevent(unsigned long evt, 72static int ns9360_clockevent_setnextevent(unsigned long evt,
73 struct clock_event_device *clk) 73 struct clock_event_device *clk)
74{ 74{
75 u32 tc = __raw_readl(SYS_TC(TIMER_CLOCKEVENT)); 75 u32 tc = __raw_readl(SYS_TC(TIMER_CLOCKEVENT));
@@ -88,20 +88,20 @@ static int ns9xxx_clockevent_setnextevent(unsigned long evt,
88 return 0; 88 return 0;
89} 89}
90 90
91static struct clock_event_device ns9xxx_clockevent_device = { 91static struct clock_event_device ns9360_clockevent_device = {
92 .name = "ns9xxx-timer" __stringify(TIMER_CLOCKEVENT), 92 .name = "ns9360-timer" __stringify(TIMER_CLOCKEVENT),
93 .shift = 20, 93 .shift = 20,
94 .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, 94 .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
95 .set_mode = ns9xxx_clockevent_setmode, 95 .set_mode = ns9360_clockevent_setmode,
96 .set_next_event = ns9xxx_clockevent_setnextevent, 96 .set_next_event = ns9360_clockevent_setnextevent,
97}; 97};
98 98
99static irqreturn_t ns9xxx_clockevent_handler(int irq, void *dev_id) 99static irqreturn_t ns9360_clockevent_handler(int irq, void *dev_id)
100{ 100{
101 int timerno = irq - IRQ_TIMER0; 101 int timerno = irq - IRQ_NS9360_TIMER0;
102 u32 tc; 102 u32 tc;
103 103
104 struct clock_event_device *evt = &ns9xxx_clockevent_device; 104 struct clock_event_device *evt = &ns9360_clockevent_device;
105 105
106 /* clear irq */ 106 /* clear irq */
107 tc = __raw_readl(SYS_TC(timerno)); 107 tc = __raw_readl(SYS_TC(timerno));
@@ -119,13 +119,13 @@ static irqreturn_t ns9xxx_clockevent_handler(int irq, void *dev_id)
119 return IRQ_HANDLED; 119 return IRQ_HANDLED;
120} 120}
121 121
122static struct irqaction ns9xxx_clockevent_action = { 122static struct irqaction ns9360_clockevent_action = {
123 .name = "ns9xxx-timer" __stringify(TIMER_CLOCKEVENT), 123 .name = "ns9360-timer" __stringify(TIMER_CLOCKEVENT),
124 .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, 124 .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
125 .handler = ns9xxx_clockevent_handler, 125 .handler = ns9360_clockevent_handler,
126}; 126};
127 127
128static void __init ns9xxx_timer_init(void) 128static void __init ns9360_timer_init(void)
129{ 129{
130 int tc; 130 int tc;
131 131
@@ -148,12 +148,12 @@ static void __init ns9xxx_timer_init(void)
148 148
149 __raw_writel(tc, SYS_TC(TIMER_CLOCKSOURCE)); 149 __raw_writel(tc, SYS_TC(TIMER_CLOCKSOURCE));
150 150
151 ns9xxx_clocksource.mult = clocksource_hz2mult(ns9xxx_cpuclock(), 151 ns9360_clocksource.mult = clocksource_hz2mult(ns9360_cpuclock(),
152 ns9xxx_clocksource.shift); 152 ns9360_clocksource.shift);
153 153
154 clocksource_register(&ns9xxx_clocksource); 154 clocksource_register(&ns9360_clocksource);
155 155
156 latch = SH_DIV(ns9xxx_cpuclock(), HZ, 0); 156 latch = SH_DIV(ns9360_cpuclock(), HZ, 0);
157 157
158 tc = __raw_readl(SYS_TC(TIMER_CLOCKEVENT)); 158 tc = __raw_readl(SYS_TC(TIMER_CLOCKEVENT));
159 REGSET(tc, SYS_TCx, TEN, DIS); 159 REGSET(tc, SYS_TCx, TEN, DIS);
@@ -166,19 +166,20 @@ static void __init ns9xxx_timer_init(void)
166 REGSET(tc, SYS_TCx, REN, EN); 166 REGSET(tc, SYS_TCx, REN, EN);
167 __raw_writel(tc, SYS_TC(TIMER_CLOCKEVENT)); 167 __raw_writel(tc, SYS_TC(TIMER_CLOCKEVENT));
168 168
169 ns9xxx_clockevent_device.mult = div_sc(ns9xxx_cpuclock(), 169 ns9360_clockevent_device.mult = div_sc(ns9360_cpuclock(),
170 NSEC_PER_SEC, ns9xxx_clockevent_device.shift); 170 NSEC_PER_SEC, ns9360_clockevent_device.shift);
171 ns9xxx_clockevent_device.max_delta_ns = 171 ns9360_clockevent_device.max_delta_ns =
172 clockevent_delta2ns(-1, &ns9xxx_clockevent_device); 172 clockevent_delta2ns(-1, &ns9360_clockevent_device);
173 ns9xxx_clockevent_device.min_delta_ns = 173 ns9360_clockevent_device.min_delta_ns =
174 clockevent_delta2ns(1, &ns9xxx_clockevent_device); 174 clockevent_delta2ns(1, &ns9360_clockevent_device);
175 175
176 ns9xxx_clockevent_device.cpumask = cpumask_of_cpu(0); 176 ns9360_clockevent_device.cpumask = cpumask_of_cpu(0);
177 clockevents_register_device(&ns9xxx_clockevent_device); 177 clockevents_register_device(&ns9360_clockevent_device);
178 178
179 setup_irq(IRQ_TIMER0 + TIMER_CLOCKEVENT, &ns9xxx_clockevent_action); 179 setup_irq(IRQ_NS9360_TIMER0 + TIMER_CLOCKEVENT,
180 &ns9360_clockevent_action);
180} 181}
181 182
182struct sys_timer ns9xxx_timer = { 183struct sys_timer ns9360_timer = {
183 .init = ns9xxx_timer_init, 184 .init = ns9360_timer_init,
184}; 185};
diff --git a/arch/arm/mach-orion/addr-map.c b/arch/arm/mach-orion/addr-map.c
deleted file mode 100644
index 58cc3c0333b6..000000000000
--- a/arch/arm/mach-orion/addr-map.c
+++ /dev/null
@@ -1,490 +0,0 @@
1/*
2 * arch/arm/mach-orion/addr-map.c
3 *
4 * Address map functions for Marvell Orion System On Chip
5 *
6 * Maintainer: Tzachi Perelstein <tzachi@marvell.com>
7 *
8 * This file is licensed under the terms of the GNU General Public
9 * License version 2. This program is licensed "as is" without any
10 * warranty of any kind, whether express or implied.
11 */
12
13#include <linux/kernel.h>
14#include <linux/init.h>
15#include <asm/hardware.h>
16#include "common.h"
17
18/*
19 * The Orion has fully programable address map. There's a separate address
20 * map for each of the device _master_ interfaces, e.g. CPU, PCI, PCIE, USB,
21 * Gigabit Ethernet, DMA/XOR engines, etc. Each interface has its own
22 * address decode windows that allow it to access any of the Orion resources.
23 *
24 * CPU address decoding --
25 * Linux assumes that it is the boot loader that already setup the access to
26 * DDR and internal registers.
27 * Setup access to PCI and PCI-E IO/MEM space is issued by core.c.
28 * Setup access to various devices located on the device bus interface (e.g.
29 * flashes, RTC, etc) should be issued by machine-setup.c according to
30 * specific board population (by using orion_setup_cpu_win()).
31 *
32 * Non-CPU Masters address decoding --
33 * Unlike the CPU, we setup the access from Orion's master interfaces to DDR
34 * banks only (the typical use case).
35 * Setup access for each master to DDR is issued by common.c.
36 *
37 * Note: although orion_setbits() and orion_clrbits() are not atomic
38 * no locking is necessary here since code in this file is only called
39 * at boot time when there is no concurrency issues.
40 */
41
42/*
43 * Generic Address Decode Windows bit settings
44 */
45#define TARGET_DDR 0
46#define TARGET_PCI 3
47#define TARGET_PCIE 4
48#define TARGET_DEV_BUS 1
49#define ATTR_DDR_CS(n) (((n) ==0) ? 0xe : \
50 ((n) == 1) ? 0xd : \
51 ((n) == 2) ? 0xb : \
52 ((n) == 3) ? 0x7 : 0xf)
53#define ATTR_PCIE_MEM 0x59
54#define ATTR_PCIE_IO 0x51
55#define ATTR_PCI_MEM 0x59
56#define ATTR_PCI_IO 0x51
57#define ATTR_DEV_CS0 0x1e
58#define ATTR_DEV_CS1 0x1d
59#define ATTR_DEV_CS2 0x1b
60#define ATTR_DEV_BOOT 0xf
61#define WIN_EN 1
62
63/*
64 * Helpers to get DDR banks info
65 */
66#define DDR_BASE_CS(n) ORION_DDR_REG(0x1500 + ((n) * 8))
67#define DDR_SIZE_CS(n) ORION_DDR_REG(0x1504 + ((n) * 8))
68#define DDR_MAX_CS 4
69#define DDR_REG_TO_SIZE(reg) (((reg) | 0xffffff) + 1)
70#define DDR_REG_TO_BASE(reg) ((reg) & 0xff000000)
71#define DDR_BANK_EN 1
72
73/*
74 * CPU Address Decode Windows registers
75 */
76#define CPU_WIN_CTRL(n) ORION_BRIDGE_REG(0x000 | ((n) << 4))
77#define CPU_WIN_BASE(n) ORION_BRIDGE_REG(0x004 | ((n) << 4))
78#define CPU_WIN_REMAP_LO(n) ORION_BRIDGE_REG(0x008 | ((n) << 4))
79#define CPU_WIN_REMAP_HI(n) ORION_BRIDGE_REG(0x00c | ((n) << 4))
80#define CPU_MAX_WIN 8
81
82/*
83 * Use this CPU address decode windows allocation
84 */
85#define CPU_WIN_PCIE_IO 0
86#define CPU_WIN_PCI_IO 1
87#define CPU_WIN_PCIE_MEM 2
88#define CPU_WIN_PCI_MEM 3
89#define CPU_WIN_DEV_BOOT 4
90#define CPU_WIN_DEV_CS0 5
91#define CPU_WIN_DEV_CS1 6
92#define CPU_WIN_DEV_CS2 7
93
94/*
95 * PCIE Address Decode Windows registers
96 */
97#define PCIE_BAR_CTRL(n) ORION_PCIE_REG(0x1804 + ((n - 1) * 4))
98#define PCIE_BAR_LO(n) ORION_PCIE_REG(0x0010 + ((n) * 8))
99#define PCIE_BAR_HI(n) ORION_PCIE_REG(0x0014 + ((n) * 8))
100#define PCIE_WIN_CTRL(n) (((n) < 5) ? \
101 ORION_PCIE_REG(0x1820 + ((n) << 4)) : \
102 ORION_PCIE_REG(0x1880))
103#define PCIE_WIN_BASE(n) (((n) < 5) ? \
104 ORION_PCIE_REG(0x1824 + ((n) << 4)) : \
105 ORION_PCIE_REG(0x1884))
106#define PCIE_WIN_REMAP(n) (((n) < 5) ? \
107 ORION_PCIE_REG(0x182c + ((n) << 4)) : \
108 ORION_PCIE_REG(0x188c))
109#define PCIE_DEFWIN_CTRL ORION_PCIE_REG(0x18b0)
110#define PCIE_EXPROM_WIN_CTRL ORION_PCIE_REG(0x18c0)
111#define PCIE_EXPROM_WIN_REMP ORION_PCIE_REG(0x18c4)
112#define PCIE_MAX_BARS 3
113#define PCIE_MAX_WINS 6
114
115/*
116 * Use PCIE BAR '1' for all DDR banks
117 */
118#define PCIE_DRAM_BAR 1
119
120/*
121 * PCI Address Decode Windows registers
122 */
123#define PCI_BAR_SIZE_DDR_CS(n) (((n) == 0) ? ORION_PCI_REG(0xc08) : \
124 ((n) == 1) ? ORION_PCI_REG(0xd08) : \
125 ((n) == 2) ? ORION_PCI_REG(0xc0c) : \
126 ((n) == 3) ? ORION_PCI_REG(0xd0c) : 0)
127#define PCI_BAR_REMAP_DDR_CS(n) (((n) ==0) ? ORION_PCI_REG(0xc48) : \
128 ((n) == 1) ? ORION_PCI_REG(0xd48) : \
129 ((n) == 2) ? ORION_PCI_REG(0xc4c) : \
130 ((n) == 3) ? ORION_PCI_REG(0xd4c) : 0)
131#define PCI_BAR_ENABLE ORION_PCI_REG(0xc3c)
132#define PCI_CTRL_BASE_LO(n) ORION_PCI_REG(0x1e00 | ((n) << 4))
133#define PCI_CTRL_BASE_HI(n) ORION_PCI_REG(0x1e04 | ((n) << 4))
134#define PCI_CTRL_SIZE(n) ORION_PCI_REG(0x1e08 | ((n) << 4))
135#define PCI_ADDR_DECODE_CTRL ORION_PCI_REG(0xd3c)
136
137/*
138 * PCI configuration heleprs for BAR settings
139 */
140#define PCI_CONF_FUNC_BAR_CS(n) ((n) >> 1)
141#define PCI_CONF_REG_BAR_LO_CS(n) (((n) & 1) ? 0x18 : 0x10)
142#define PCI_CONF_REG_BAR_HI_CS(n) (((n) & 1) ? 0x1c : 0x14)
143
144/*
145 * Gigabit Ethernet Address Decode Windows registers
146 */
147#define ETH_WIN_BASE(win) ORION_ETH_REG(0x200 + ((win) * 8))
148#define ETH_WIN_SIZE(win) ORION_ETH_REG(0x204 + ((win) * 8))
149#define ETH_WIN_REMAP(win) ORION_ETH_REG(0x280 + ((win) * 4))
150#define ETH_WIN_EN ORION_ETH_REG(0x290)
151#define ETH_WIN_PROT ORION_ETH_REG(0x294)
152#define ETH_MAX_WIN 6
153#define ETH_MAX_REMAP_WIN 4
154
155/*
156 * USB Address Decode Windows registers
157 */
158#define USB_WIN_CTRL(i, w) ((i == 0) ? ORION_USB0_REG(0x320 + ((w) << 4)) \
159 : ORION_USB1_REG(0x320 + ((w) << 4)))
160#define USB_WIN_BASE(i, w) ((i == 0) ? ORION_USB0_REG(0x324 + ((w) << 4)) \
161 : ORION_USB1_REG(0x324 + ((w) << 4)))
162#define USB_MAX_WIN 4
163
164/*
165 * SATA Address Decode Windows registers
166 */
167#define SATA_WIN_CTRL(win) ORION_SATA_REG(0x30 + ((win) * 0x10))
168#define SATA_WIN_BASE(win) ORION_SATA_REG(0x34 + ((win) * 0x10))
169#define SATA_MAX_WIN 4
170
171static int __init orion_cpu_win_can_remap(u32 win)
172{
173 u32 dev, rev;
174
175 orion_pcie_id(&dev, &rev);
176 if ((dev == MV88F5281_DEV_ID && win < 4)
177 || (dev == MV88F5182_DEV_ID && win < 2)
178 || (dev == MV88F5181_DEV_ID && win < 2))
179 return 1;
180
181 return 0;
182}
183
184void __init orion_setup_cpu_win(enum orion_target target, u32 base, u32 size, int remap)
185{
186 u32 win, attr, ctrl;
187
188 switch (target) {
189 case ORION_PCIE_IO:
190 target = TARGET_PCIE;
191 attr = ATTR_PCIE_IO;
192 win = CPU_WIN_PCIE_IO;
193 break;
194 case ORION_PCI_IO:
195 target = TARGET_PCI;
196 attr = ATTR_PCI_IO;
197 win = CPU_WIN_PCI_IO;
198 break;
199 case ORION_PCIE_MEM:
200 target = TARGET_PCIE;
201 attr = ATTR_PCIE_MEM;
202 win = CPU_WIN_PCIE_MEM;
203 break;
204 case ORION_PCI_MEM:
205 target = TARGET_PCI;
206 attr = ATTR_PCI_MEM;
207 win = CPU_WIN_PCI_MEM;
208 break;
209 case ORION_DEV_BOOT:
210 target = TARGET_DEV_BUS;
211 attr = ATTR_DEV_BOOT;
212 win = CPU_WIN_DEV_BOOT;
213 break;
214 case ORION_DEV0:
215 target = TARGET_DEV_BUS;
216 attr = ATTR_DEV_CS0;
217 win = CPU_WIN_DEV_CS0;
218 break;
219 case ORION_DEV1:
220 target = TARGET_DEV_BUS;
221 attr = ATTR_DEV_CS1;
222 win = CPU_WIN_DEV_CS1;
223 break;
224 case ORION_DEV2:
225 target = TARGET_DEV_BUS;
226 attr = ATTR_DEV_CS2;
227 win = CPU_WIN_DEV_CS2;
228 break;
229 case ORION_DDR:
230 case ORION_REGS:
231 /*
232 * Must be mapped by bootloader.
233 */
234 default:
235 target = attr = win = -1;
236 BUG();
237 }
238
239 base &= 0xffff0000;
240 ctrl = (((size - 1) & 0xffff0000) | (attr << 8) |
241 (target << 4) | WIN_EN);
242
243 orion_write(CPU_WIN_BASE(win), base);
244 orion_write(CPU_WIN_CTRL(win), ctrl);
245
246 if (orion_cpu_win_can_remap(win)) {
247 if (remap >= 0) {
248 orion_write(CPU_WIN_REMAP_LO(win), remap & 0xffff0000);
249 orion_write(CPU_WIN_REMAP_HI(win), 0);
250 } else {
251 orion_write(CPU_WIN_REMAP_LO(win), base);
252 orion_write(CPU_WIN_REMAP_HI(win), 0);
253 }
254 }
255}
256
257void __init orion_setup_cpu_wins(void)
258{
259 int i;
260
261 /*
262 * First, disable and clear windows
263 */
264 for (i = 0; i < CPU_MAX_WIN; i++) {
265 orion_write(CPU_WIN_BASE(i), 0);
266 orion_write(CPU_WIN_CTRL(i), 0);
267 if (orion_cpu_win_can_remap(i)) {
268 orion_write(CPU_WIN_REMAP_LO(i), 0);
269 orion_write(CPU_WIN_REMAP_HI(i), 0);
270 }
271 }
272
273 /*
274 * Setup windows for PCI+PCIe IO+MEM space.
275 */
276 orion_setup_cpu_win(ORION_PCIE_IO, ORION_PCIE_IO_PHYS_BASE,
277 ORION_PCIE_IO_SIZE, ORION_PCIE_IO_BUS_BASE);
278 orion_setup_cpu_win(ORION_PCI_IO, ORION_PCI_IO_PHYS_BASE,
279 ORION_PCI_IO_SIZE, ORION_PCI_IO_BUS_BASE);
280 orion_setup_cpu_win(ORION_PCIE_MEM, ORION_PCIE_MEM_PHYS_BASE,
281 ORION_PCIE_MEM_SIZE, -1);
282 orion_setup_cpu_win(ORION_PCI_MEM, ORION_PCI_MEM_PHYS_BASE,
283 ORION_PCI_MEM_SIZE, -1);
284}
285
286/*
287 * Setup PCIE BARs and Address Decode Wins:
288 * BAR[0,2] -> disabled, BAR[1] -> covers all DRAM banks
289 * WIN[0-3] -> DRAM bank[0-3]
290 */
291void __init orion_setup_pcie_wins(void)
292{
293 u32 base, size, i;
294
295 /*
296 * First, disable and clear BARs and windows
297 */
298 for (i = 1; i < PCIE_MAX_BARS; i++) {
299 orion_write(PCIE_BAR_CTRL(i), 0);
300 orion_write(PCIE_BAR_LO(i), 0);
301 orion_write(PCIE_BAR_HI(i), 0);
302 }
303
304 for (i = 0; i < PCIE_MAX_WINS; i++) {
305 orion_write(PCIE_WIN_CTRL(i), 0);
306 orion_write(PCIE_WIN_BASE(i), 0);
307 orion_write(PCIE_WIN_REMAP(i), 0);
308 }
309
310 /*
311 * Setup windows for DDR banks. Count total DDR size on the fly.
312 */
313 base = DDR_REG_TO_BASE(orion_read(DDR_BASE_CS(0)));
314 size = 0;
315 for (i = 0; i < DDR_MAX_CS; i++) {
316 u32 bank_base, bank_size;
317 bank_size = orion_read(DDR_SIZE_CS(i));
318 bank_base = orion_read(DDR_BASE_CS(i));
319 if (bank_size & DDR_BANK_EN) {
320 bank_size = DDR_REG_TO_SIZE(bank_size);
321 bank_base = DDR_REG_TO_BASE(bank_base);
322 orion_write(PCIE_WIN_BASE(i), bank_base & 0xffff0000);
323 orion_write(PCIE_WIN_REMAP(i), 0);
324 orion_write(PCIE_WIN_CTRL(i),
325 ((bank_size-1) & 0xffff0000) |
326 (ATTR_DDR_CS(i) << 8) |
327 (TARGET_DDR << 4) |
328 (PCIE_DRAM_BAR << 1) | WIN_EN);
329 size += bank_size;
330 }
331 }
332
333 /*
334 * Setup BAR[1] to all DRAM banks
335 */
336 orion_write(PCIE_BAR_LO(PCIE_DRAM_BAR), base & 0xffff0000);
337 orion_write(PCIE_BAR_HI(PCIE_DRAM_BAR), 0);
338 orion_write(PCIE_BAR_CTRL(PCIE_DRAM_BAR),
339 ((size - 1) & 0xffff0000) | WIN_EN);
340}
341
342void __init orion_setup_pci_wins(void)
343{
344 u32 base, size, i;
345
346 /*
347 * First, disable windows
348 */
349 orion_write(PCI_BAR_ENABLE, 0xffffffff);
350
351 /*
352 * Setup windows for DDR banks.
353 */
354 for (i = 0; i < DDR_MAX_CS; i++) {
355 base = orion_read(DDR_BASE_CS(i));
356 size = orion_read(DDR_SIZE_CS(i));
357 if (size & DDR_BANK_EN) {
358 u32 bus, dev, func, reg, val;
359 size = DDR_REG_TO_SIZE(size);
360 base = DDR_REG_TO_BASE(base);
361 bus = orion_pci_local_bus_nr();
362 dev = orion_pci_local_dev_nr();
363 func = PCI_CONF_FUNC_BAR_CS(i);
364 reg = PCI_CONF_REG_BAR_LO_CS(i);
365 orion_pci_hw_rd_conf(bus, dev, func, reg, 4, &val);
366 orion_pci_hw_wr_conf(bus, dev, func, reg, 4,
367 (base & 0xfffff000) | (val & 0xfff));
368 reg = PCI_CONF_REG_BAR_HI_CS(i);
369 orion_pci_hw_wr_conf(bus, dev, func, reg, 4, 0);
370 orion_write(PCI_BAR_SIZE_DDR_CS(i),
371 (size - 1) & 0xfffff000);
372 orion_write(PCI_BAR_REMAP_DDR_CS(i),
373 base & 0xfffff000);
374 orion_clrbits(PCI_BAR_ENABLE, (1 << i));
375 }
376 }
377
378 /*
379 * Disable automatic update of address remaping when writing to BARs
380 */
381 orion_setbits(PCI_ADDR_DECODE_CTRL, 1);
382}
383
384void __init orion_setup_usb_wins(void)
385{
386 int i;
387 u32 usb_if, dev, rev;
388 u32 max_usb_if = 1;
389
390 orion_pcie_id(&dev, &rev);
391 if (dev == MV88F5182_DEV_ID)
392 max_usb_if = 2;
393
394 for (usb_if = 0; usb_if < max_usb_if; usb_if++) {
395 /*
396 * First, disable and clear windows
397 */
398 for (i = 0; i < USB_MAX_WIN; i++) {
399 orion_write(USB_WIN_BASE(usb_if, i), 0);
400 orion_write(USB_WIN_CTRL(usb_if, i), 0);
401 }
402
403 /*
404 * Setup windows for DDR banks.
405 */
406 for (i = 0; i < DDR_MAX_CS; i++) {
407 u32 base, size;
408 size = orion_read(DDR_SIZE_CS(i));
409 base = orion_read(DDR_BASE_CS(i));
410 if (size & DDR_BANK_EN) {
411 base = DDR_REG_TO_BASE(base);
412 size = DDR_REG_TO_SIZE(size);
413 orion_write(USB_WIN_CTRL(usb_if, i),
414 ((size-1) & 0xffff0000) |
415 (ATTR_DDR_CS(i) << 8) |
416 (TARGET_DDR << 4) | WIN_EN);
417 orion_write(USB_WIN_BASE(usb_if, i),
418 base & 0xffff0000);
419 }
420 }
421 }
422}
423
424void __init orion_setup_eth_wins(void)
425{
426 int i;
427
428 /*
429 * First, disable and clear windows
430 */
431 for (i = 0; i < ETH_MAX_WIN; i++) {
432 orion_write(ETH_WIN_BASE(i), 0);
433 orion_write(ETH_WIN_SIZE(i), 0);
434 orion_setbits(ETH_WIN_EN, 1 << i);
435 orion_clrbits(ETH_WIN_PROT, 0x3 << (i * 2));
436 if (i < ETH_MAX_REMAP_WIN)
437 orion_write(ETH_WIN_REMAP(i), 0);
438 }
439
440 /*
441 * Setup windows for DDR banks.
442 */
443 for (i = 0; i < DDR_MAX_CS; i++) {
444 u32 base, size;
445 size = orion_read(DDR_SIZE_CS(i));
446 base = orion_read(DDR_BASE_CS(i));
447 if (size & DDR_BANK_EN) {
448 base = DDR_REG_TO_BASE(base);
449 size = DDR_REG_TO_SIZE(size);
450 orion_write(ETH_WIN_SIZE(i), (size-1) & 0xffff0000);
451 orion_write(ETH_WIN_BASE(i), (base & 0xffff0000) |
452 (ATTR_DDR_CS(i) << 8) |
453 TARGET_DDR);
454 orion_clrbits(ETH_WIN_EN, 1 << i);
455 orion_setbits(ETH_WIN_PROT, 0x3 << (i * 2));
456 }
457 }
458}
459
460void __init orion_setup_sata_wins(void)
461{
462 int i;
463
464 /*
465 * First, disable and clear windows
466 */
467 for (i = 0; i < SATA_MAX_WIN; i++) {
468 orion_write(SATA_WIN_BASE(i), 0);
469 orion_write(SATA_WIN_CTRL(i), 0);
470 }
471
472 /*
473 * Setup windows for DDR banks.
474 */
475 for (i = 0; i < DDR_MAX_CS; i++) {
476 u32 base, size;
477 size = orion_read(DDR_SIZE_CS(i));
478 base = orion_read(DDR_BASE_CS(i));
479 if (size & DDR_BANK_EN) {
480 base = DDR_REG_TO_BASE(base);
481 size = DDR_REG_TO_SIZE(size);
482 orion_write(SATA_WIN_CTRL(i),
483 ((size-1) & 0xffff0000) |
484 (ATTR_DDR_CS(i) << 8) |
485 (TARGET_DDR << 4) | WIN_EN);
486 orion_write(SATA_WIN_BASE(i),
487 base & 0xffff0000);
488 }
489 }
490}
diff --git a/arch/arm/mach-orion/common.h b/arch/arm/mach-orion/common.h
deleted file mode 100644
index 501497cc2c4d..000000000000
--- a/arch/arm/mach-orion/common.h
+++ /dev/null
@@ -1,92 +0,0 @@
1#ifndef __ARCH_ORION_COMMON_H__
2#define __ARCH_ORION_COMMON_H__
3
4/*
5 * Basic Orion init functions used early by machine-setup.
6 */
7
8void __init orion_map_io(void);
9void __init orion_init_irq(void);
10void __init orion_init(void);
11
12/*
13 * Enumerations and functions for Orion windows mapping. Used by Orion core
14 * functions to map its interfaces and by the machine-setup to map its on-
15 * board devices. Details in /mach-orion/addr-map.c
16 */
17
18enum orion_target {
19 ORION_DEV_BOOT = 0,
20 ORION_DEV0,
21 ORION_DEV1,
22 ORION_DEV2,
23 ORION_PCIE_MEM,
24 ORION_PCIE_IO,
25 ORION_PCI_MEM,
26 ORION_PCI_IO,
27 ORION_DDR,
28 ORION_REGS,
29 ORION_MAX_TARGETS
30};
31
32void orion_setup_cpu_win(enum orion_target target, u32 base, u32 size, int remap);
33void orion_setup_cpu_wins(void);
34void orion_setup_eth_wins(void);
35void orion_setup_usb_wins(void);
36void orion_setup_pci_wins(void);
37void orion_setup_pcie_wins(void);
38void orion_setup_sata_wins(void);
39
40/*
41 * Shared code used internally by other Orion core functions.
42 * (/mach-orion/pci.c)
43 */
44
45struct pci_sys_data;
46struct pci_bus;
47
48void orion_pcie_id(u32 *dev, u32 *rev);
49u32 orion_pcie_local_bus_nr(void);
50u32 orion_pci_local_bus_nr(void);
51u32 orion_pci_local_dev_nr(void);
52int orion_pci_sys_setup(int nr, struct pci_sys_data *sys);
53struct pci_bus *orion_pci_sys_scan_bus(int nr, struct pci_sys_data *sys);
54int orion_pci_hw_rd_conf(u32 bus, u32 dev, u32 func, u32 where, u32 size, u32 *val);
55int orion_pci_hw_wr_conf(u32 bus, u32 dev, u32 func, u32 where, u32 size, u32 val);
56
57/*
58 * Valid GPIO pins according to MPP setup, used by machine-setup.
59 * (/mach-orion/gpio.c).
60 */
61
62void __init orion_gpio_set_valid_pins(u32 pins);
63void gpio_display(void); /* debug */
64
65/*
66 * Orion system timer (clocksource + clockevnt, /mach-orion/time.c)
67 */
68extern struct sys_timer orion_timer;
69
70/*
71 * Pull in Orion Ethernet platform_data, used by machine-setup
72 */
73
74struct mv643xx_eth_platform_data;
75
76void __init orion_eth_init(struct mv643xx_eth_platform_data *eth_data);
77
78/*
79 * Orion Sata platform_data, used by machine-setup
80 */
81
82struct mv_sata_platform_data;
83
84void __init orion_sata_init(struct mv_sata_platform_data *sata_data);
85
86struct machine_desc;
87struct meminfo;
88struct tag;
89extern void __init tag_fixup_mem32(struct machine_desc *, struct tag *,
90 char **, struct meminfo *);
91
92#endif /* __ARCH_ORION_COMMON_H__ */
diff --git a/arch/arm/mach-orion/pci.c b/arch/arm/mach-orion/pci.c
deleted file mode 100644
index b109bb46681e..000000000000
--- a/arch/arm/mach-orion/pci.c
+++ /dev/null
@@ -1,557 +0,0 @@
1/*
2 * arch/arm/mach-orion/pci.c
3 *
4 * PCI and PCIE functions for Marvell Orion System On Chip
5 *
6 * Maintainer: Tzachi Perelstein <tzachi@marvell.com>
7 *
8 * This file is licensed under the terms of the GNU General Public
9 * License version 2. This program is licensed "as is" without any
10 * warranty of any kind, whether express or implied.
11 */
12
13#include <linux/kernel.h>
14#include <linux/pci.h>
15#include <asm/mach/pci.h>
16#include "common.h"
17
18/*****************************************************************************
19 * Orion has one PCIE controller and one PCI controller.
20 *
21 * Note1: The local PCIE bus number is '0'. The local PCI bus number
22 * follows the scanned PCIE bridged busses, if any.
23 *
24 * Note2: It is possible for PCI/PCIE agents to access many subsystem's
25 * space, by configuring BARs and Address Decode Windows, e.g. flashes on
26 * device bus, Orion registers, etc. However this code only enable the
27 * access to DDR banks.
28 ****************************************************************************/
29
30
31/*****************************************************************************
32 * PCIE controller
33 ****************************************************************************/
34#define PCIE_CTRL ORION_PCIE_REG(0x1a00)
35#define PCIE_STAT ORION_PCIE_REG(0x1a04)
36#define PCIE_DEV_ID ORION_PCIE_REG(0x0000)
37#define PCIE_CMD_STAT ORION_PCIE_REG(0x0004)
38#define PCIE_DEV_REV ORION_PCIE_REG(0x0008)
39#define PCIE_MASK ORION_PCIE_REG(0x1910)
40#define PCIE_CONF_ADDR ORION_PCIE_REG(0x18f8)
41#define PCIE_CONF_DATA ORION_PCIE_REG(0x18fc)
42
43/*
44 * PCIE_STAT bits
45 */
46#define PCIE_STAT_LINK_DOWN 1
47#define PCIE_STAT_BUS_OFFS 8
48#define PCIE_STAT_BUS_MASK (0xff << PCIE_STAT_BUS_OFFS)
49#define PCIE_STAT_DEV_OFFS 20
50#define PCIE_STAT_DEV_MASK (0x1f << PCIE_STAT_DEV_OFFS)
51
52/*
53 * PCIE_CONF_ADDR bits
54 */
55#define PCIE_CONF_REG(r) ((((r) & 0xf00) << 24) | ((r) & 0xfc))
56#define PCIE_CONF_FUNC(f) (((f) & 0x3) << 8)
57#define PCIE_CONF_DEV(d) (((d) & 0x1f) << 11)
58#define PCIE_CONF_BUS(b) (((b) & 0xff) << 16)
59#define PCIE_CONF_ADDR_EN (1 << 31)
60
61/*
62 * PCIE config cycles are done by programming the PCIE_CONF_ADDR register
63 * and then reading the PCIE_CONF_DATA register. Need to make sure these
64 * transactions are atomic.
65 */
66static DEFINE_SPINLOCK(orion_pcie_lock);
67
68void orion_pcie_id(u32 *dev, u32 *rev)
69{
70 *dev = orion_read(PCIE_DEV_ID) >> 16;
71 *rev = orion_read(PCIE_DEV_REV) & 0xff;
72}
73
74u32 orion_pcie_local_bus_nr(void)
75{
76 u32 stat = orion_read(PCIE_STAT);
77 return((stat & PCIE_STAT_BUS_MASK) >> PCIE_STAT_BUS_OFFS);
78}
79
80static u32 orion_pcie_local_dev_nr(void)
81{
82 u32 stat = orion_read(PCIE_STAT);
83 return((stat & PCIE_STAT_DEV_MASK) >> PCIE_STAT_DEV_OFFS);
84}
85
86static u32 orion_pcie_no_link(void)
87{
88 u32 stat = orion_read(PCIE_STAT);
89 return(stat & PCIE_STAT_LINK_DOWN);
90}
91
92static void orion_pcie_set_bus_nr(int nr)
93{
94 orion_clrbits(PCIE_STAT, PCIE_STAT_BUS_MASK);
95 orion_setbits(PCIE_STAT, nr << PCIE_STAT_BUS_OFFS);
96}
97
98static void orion_pcie_master_slave_enable(void)
99{
100 orion_setbits(PCIE_CMD_STAT, PCI_COMMAND_MASTER |
101 PCI_COMMAND_IO |
102 PCI_COMMAND_MEMORY);
103}
104
105static void orion_pcie_enable_interrupts(void)
106{
107 /*
108 * Enable interrupts lines
109 * INTA[24] INTB[25] INTC[26] INTD[27]
110 */
111 orion_setbits(PCIE_MASK, 0xf<<24);
112}
113
114static int orion_pcie_valid_config(u32 bus, u32 dev)
115{
116 /*
117 * Don't go out when trying to access --
118 * 1. our own device
119 * 2. where there's no device connected (no link)
120 * 3. nonexisting devices on local bus
121 */
122
123 if ((orion_pcie_local_bus_nr() == bus) &&
124 (orion_pcie_local_dev_nr() == dev))
125 return 0;
126
127 if (orion_pcie_no_link())
128 return 0;
129
130 if (bus == orion_pcie_local_bus_nr())
131 if (((orion_pcie_local_dev_nr() == 0) && (dev != 1)) ||
132 ((orion_pcie_local_dev_nr() != 0) && (dev != 0)))
133 return 0;
134
135 return 1;
136}
137
138static int orion_pcie_rd_conf(struct pci_bus *bus, u32 devfn, int where,
139 int size, u32 *val)
140{
141 unsigned long flags;
142 unsigned int dev, rev, pcie_addr;
143
144 if (orion_pcie_valid_config(bus->number, PCI_SLOT(devfn)) == 0) {
145 *val = 0xffffffff;
146 return PCIBIOS_DEVICE_NOT_FOUND;
147 }
148
149 spin_lock_irqsave(&orion_pcie_lock, flags);
150
151 orion_write(PCIE_CONF_ADDR, PCIE_CONF_BUS(bus->number) |
152 PCIE_CONF_DEV(PCI_SLOT(devfn)) |
153 PCIE_CONF_FUNC(PCI_FUNC(devfn)) |
154 PCIE_CONF_REG(where) | PCIE_CONF_ADDR_EN);
155
156 orion_pcie_id(&dev, &rev);
157 if (dev == MV88F5181_DEV_ID || dev == MV88F5182_DEV_ID) {
158 /* extended register space */
159 pcie_addr = ORION_PCIE_WA_VIRT_BASE;
160 pcie_addr |= PCIE_CONF_BUS(bus->number) |
161 PCIE_CONF_DEV(PCI_SLOT(devfn)) |
162 PCIE_CONF_FUNC(PCI_FUNC(devfn)) |
163 PCIE_CONF_REG(where);
164 *val = orion_read(pcie_addr);
165 } else
166 *val = orion_read(PCIE_CONF_DATA);
167
168 if (size == 1)
169 *val = (*val >> (8*(where & 0x3))) & 0xff;
170 else if (size == 2)
171 *val = (*val >> (8*(where & 0x3))) & 0xffff;
172
173 spin_unlock_irqrestore(&orion_pcie_lock, flags);
174
175 return PCIBIOS_SUCCESSFUL;
176}
177
178
179static int orion_pcie_wr_conf(struct pci_bus *bus, u32 devfn, int where,
180 int size, u32 val)
181{
182 unsigned long flags;
183 int ret;
184
185 if (orion_pcie_valid_config(bus->number, PCI_SLOT(devfn)) == 0)
186 return PCIBIOS_DEVICE_NOT_FOUND;
187
188 spin_lock_irqsave(&orion_pcie_lock, flags);
189
190 ret = PCIBIOS_SUCCESSFUL;
191
192 orion_write(PCIE_CONF_ADDR, PCIE_CONF_BUS(bus->number) |
193 PCIE_CONF_DEV(PCI_SLOT(devfn)) |
194 PCIE_CONF_FUNC(PCI_FUNC(devfn)) |
195 PCIE_CONF_REG(where) | PCIE_CONF_ADDR_EN);
196
197 if (size == 4) {
198 __raw_writel(val, PCIE_CONF_DATA);
199 } else if (size == 2) {
200 __raw_writew(val, PCIE_CONF_DATA + (where & 0x3));
201 } else if (size == 1) {
202 __raw_writeb(val, PCIE_CONF_DATA + (where & 0x3));
203 } else {
204 ret = PCIBIOS_BAD_REGISTER_NUMBER;
205 }
206
207 spin_unlock_irqrestore(&orion_pcie_lock, flags);
208
209 return ret;
210}
211
212struct pci_ops orion_pcie_ops = {
213 .read = orion_pcie_rd_conf,
214 .write = orion_pcie_wr_conf,
215};
216
217
218static int orion_pcie_setup(struct pci_sys_data *sys)
219{
220 struct resource *res;
221
222 /*
223 * Master + Slave enable
224 */
225 orion_pcie_master_slave_enable();
226
227 /*
228 * Enable interrupts lines A-D
229 */
230 orion_pcie_enable_interrupts();
231
232 /*
233 * Request resource
234 */
235 res = kzalloc(sizeof(struct resource) * 2, GFP_KERNEL);
236 if (!res)
237 panic("orion_pci_setup unable to alloc resources");
238
239 /*
240 * IORESOURCE_IO
241 */
242 res[0].name = "PCI-EX I/O Space";
243 res[0].flags = IORESOURCE_IO;
244 res[0].start = ORION_PCIE_IO_BUS_BASE;
245 res[0].end = res[0].start + ORION_PCIE_IO_SIZE - 1;
246 if (request_resource(&ioport_resource, &res[0]))
247 panic("Request PCIE IO resource failed\n");
248 sys->resource[0] = &res[0];
249
250 /*
251 * IORESOURCE_MEM
252 */
253 res[1].name = "PCI-EX Memory Space";
254 res[1].flags = IORESOURCE_MEM;
255 res[1].start = ORION_PCIE_MEM_PHYS_BASE;
256 res[1].end = res[1].start + ORION_PCIE_MEM_SIZE - 1;
257 if (request_resource(&iomem_resource, &res[1]))
258 panic("Request PCIE Memory resource failed\n");
259 sys->resource[1] = &res[1];
260
261 sys->resource[2] = NULL;
262 sys->io_offset = 0;
263
264 return 1;
265}
266
267/*****************************************************************************
268 * PCI controller
269 ****************************************************************************/
270#define PCI_MODE ORION_PCI_REG(0xd00)
271#define PCI_CMD ORION_PCI_REG(0xc00)
272#define PCI_P2P_CONF ORION_PCI_REG(0x1d14)
273#define PCI_CONF_ADDR ORION_PCI_REG(0xc78)
274#define PCI_CONF_DATA ORION_PCI_REG(0xc7c)
275
276/*
277 * PCI_MODE bits
278 */
279#define PCI_MODE_64BIT (1 << 2)
280#define PCI_MODE_PCIX ((1 << 4) | (1 << 5))
281
282/*
283 * PCI_CMD bits
284 */
285#define PCI_CMD_HOST_REORDER (1 << 29)
286
287/*
288 * PCI_P2P_CONF bits
289 */
290#define PCI_P2P_BUS_OFFS 16
291#define PCI_P2P_BUS_MASK (0xff << PCI_P2P_BUS_OFFS)
292#define PCI_P2P_DEV_OFFS 24
293#define PCI_P2P_DEV_MASK (0x1f << PCI_P2P_DEV_OFFS)
294
295/*
296 * PCI_CONF_ADDR bits
297 */
298#define PCI_CONF_REG(reg) ((reg) & 0xfc)
299#define PCI_CONF_FUNC(func) (((func) & 0x3) << 8)
300#define PCI_CONF_DEV(dev) (((dev) & 0x1f) << 11)
301#define PCI_CONF_BUS(bus) (((bus) & 0xff) << 16)
302#define PCI_CONF_ADDR_EN (1 << 31)
303
304/*
305 * Internal configuration space
306 */
307#define PCI_CONF_FUNC_STAT_CMD 0
308#define PCI_CONF_REG_STAT_CMD 4
309#define PCIX_STAT 0x64
310#define PCIX_STAT_BUS_OFFS 8
311#define PCIX_STAT_BUS_MASK (0xff << PCIX_STAT_BUS_OFFS)
312
313/*
314 * PCI config cycles are done by programming the PCI_CONF_ADDR register
315 * and then reading the PCI_CONF_DATA register. Need to make sure these
316 * transactions are atomic.
317 */
318static DEFINE_SPINLOCK(orion_pci_lock);
319
320u32 orion_pci_local_bus_nr(void)
321{
322 u32 conf = orion_read(PCI_P2P_CONF);
323 return((conf & PCI_P2P_BUS_MASK) >> PCI_P2P_BUS_OFFS);
324}
325
326u32 orion_pci_local_dev_nr(void)
327{
328 u32 conf = orion_read(PCI_P2P_CONF);
329 return((conf & PCI_P2P_DEV_MASK) >> PCI_P2P_DEV_OFFS);
330}
331
332int orion_pci_hw_rd_conf(u32 bus, u32 dev, u32 func,
333 u32 where, u32 size, u32 *val)
334{
335 unsigned long flags;
336 spin_lock_irqsave(&orion_pci_lock, flags);
337
338 orion_write(PCI_CONF_ADDR, PCI_CONF_BUS(bus) |
339 PCI_CONF_DEV(dev) | PCI_CONF_REG(where) |
340 PCI_CONF_FUNC(func) | PCI_CONF_ADDR_EN);
341
342 *val = orion_read(PCI_CONF_DATA);
343
344 if (size == 1)
345 *val = (*val >> (8*(where & 0x3))) & 0xff;
346 else if (size == 2)
347 *val = (*val >> (8*(where & 0x3))) & 0xffff;
348
349 spin_unlock_irqrestore(&orion_pci_lock, flags);
350
351 return PCIBIOS_SUCCESSFUL;
352}
353
354int orion_pci_hw_wr_conf(u32 bus, u32 dev, u32 func,
355 u32 where, u32 size, u32 val)
356{
357 unsigned long flags;
358 int ret = PCIBIOS_SUCCESSFUL;
359
360 spin_lock_irqsave(&orion_pci_lock, flags);
361
362 orion_write(PCI_CONF_ADDR, PCI_CONF_BUS(bus) |
363 PCI_CONF_DEV(dev) | PCI_CONF_REG(where) |
364 PCI_CONF_FUNC(func) | PCI_CONF_ADDR_EN);
365
366 if (size == 4) {
367 __raw_writel(val, PCI_CONF_DATA);
368 } else if (size == 2) {
369 __raw_writew(val, PCI_CONF_DATA + (where & 0x3));
370 } else if (size == 1) {
371 __raw_writeb(val, PCI_CONF_DATA + (where & 0x3));
372 } else {
373 ret = PCIBIOS_BAD_REGISTER_NUMBER;
374 }
375
376 spin_unlock_irqrestore(&orion_pci_lock, flags);
377
378 return ret;
379}
380
381static int orion_pci_rd_conf(struct pci_bus *bus, u32 devfn,
382 int where, int size, u32 *val)
383{
384 /*
385 * Don't go out for local device
386 */
387 if ((orion_pci_local_bus_nr() == bus->number) &&
388 (orion_pci_local_dev_nr() == PCI_SLOT(devfn))) {
389 *val = 0xffffffff;
390 return PCIBIOS_DEVICE_NOT_FOUND;
391 }
392
393 return orion_pci_hw_rd_conf(bus->number, PCI_SLOT(devfn),
394 PCI_FUNC(devfn), where, size, val);
395}
396
397static int orion_pci_wr_conf(struct pci_bus *bus, u32 devfn,
398 int where, int size, u32 val)
399{
400 /*
401 * Don't go out for local device
402 */
403 if ((orion_pci_local_bus_nr() == bus->number) &&
404 (orion_pci_local_dev_nr() == PCI_SLOT(devfn)))
405 return PCIBIOS_DEVICE_NOT_FOUND;
406
407 return orion_pci_hw_wr_conf(bus->number, PCI_SLOT(devfn),
408 PCI_FUNC(devfn), where, size, val);
409}
410
411struct pci_ops orion_pci_ops = {
412 .read = orion_pci_rd_conf,
413 .write = orion_pci_wr_conf,
414};
415
416static void orion_pci_set_bus_nr(int nr)
417{
418 u32 p2p = orion_read(PCI_P2P_CONF);
419
420 if (orion_read(PCI_MODE) & PCI_MODE_PCIX) {
421 /*
422 * PCI-X mode
423 */
424 u32 pcix_status, bus, dev;
425 bus = (p2p & PCI_P2P_BUS_MASK) >> PCI_P2P_BUS_OFFS;
426 dev = (p2p & PCI_P2P_DEV_MASK) >> PCI_P2P_DEV_OFFS;
427 orion_pci_hw_rd_conf(bus, dev, 0, PCIX_STAT, 4, &pcix_status);
428 pcix_status &= ~PCIX_STAT_BUS_MASK;
429 pcix_status |= (nr << PCIX_STAT_BUS_OFFS);
430 orion_pci_hw_wr_conf(bus, dev, 0, PCIX_STAT, 4, pcix_status);
431 } else {
432 /*
433 * PCI Conventional mode
434 */
435 p2p &= ~PCI_P2P_BUS_MASK;
436 p2p |= (nr << PCI_P2P_BUS_OFFS);
437 orion_write(PCI_P2P_CONF, p2p);
438 }
439}
440
441static void orion_pci_master_slave_enable(void)
442{
443 u32 bus_nr, dev_nr, func, reg, val;
444
445 bus_nr = orion_pci_local_bus_nr();
446 dev_nr = orion_pci_local_dev_nr();
447 func = PCI_CONF_FUNC_STAT_CMD;
448 reg = PCI_CONF_REG_STAT_CMD;
449 orion_pci_hw_rd_conf(bus_nr, dev_nr, func, reg, 4, &val);
450 val |= (PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
451 orion_pci_hw_wr_conf(bus_nr, dev_nr, func, reg, 4, val | 0x7);
452}
453
454static int orion_pci_setup(struct pci_sys_data *sys)
455{
456 struct resource *res;
457
458 /*
459 * Master + Slave enable
460 */
461 orion_pci_master_slave_enable();
462
463 /*
464 * Force ordering
465 */
466 orion_setbits(PCI_CMD, PCI_CMD_HOST_REORDER);
467
468 /*
469 * Request resources
470 */
471 res = kzalloc(sizeof(struct resource) * 2, GFP_KERNEL);
472 if (!res)
473 panic("orion_pci_setup unable to alloc resources");
474
475 /*
476 * IORESOURCE_IO
477 */
478 res[0].name = "PCI I/O Space";
479 res[0].flags = IORESOURCE_IO;
480 res[0].start = ORION_PCI_IO_BUS_BASE;
481 res[0].end = res[0].start + ORION_PCI_IO_SIZE - 1;
482 if (request_resource(&ioport_resource, &res[0]))
483 panic("Request PCI IO resource failed\n");
484 sys->resource[0] = &res[0];
485
486 /*
487 * IORESOURCE_MEM
488 */
489 res[1].name = "PCI Memory Space";
490 res[1].flags = IORESOURCE_MEM;
491 res[1].start = ORION_PCI_MEM_PHYS_BASE;
492 res[1].end = res[1].start + ORION_PCI_MEM_SIZE - 1;
493 if (request_resource(&iomem_resource, &res[1]))
494 panic("Request PCI Memory resource failed\n");
495 sys->resource[1] = &res[1];
496
497 sys->resource[2] = NULL;
498 sys->io_offset = 0;
499
500 return 1;
501}
502
503
504/*****************************************************************************
505 * General PCIE + PCI
506 ****************************************************************************/
507int orion_pci_sys_setup(int nr, struct pci_sys_data *sys)
508{
509 int ret = 0;
510
511 if (nr == 0) {
512 /*
513 * PCIE setup
514 */
515 orion_pcie_set_bus_nr(0);
516 ret = orion_pcie_setup(sys);
517 } else if (nr == 1) {
518 /*
519 * PCI setup
520 */
521 ret = orion_pci_setup(sys);
522 }
523
524 return ret;
525}
526
527struct pci_bus *orion_pci_sys_scan_bus(int nr, struct pci_sys_data *sys)
528{
529 struct pci_ops *ops;
530 struct pci_bus *bus;
531
532
533 if (nr == 0) {
534 u32 pci_bus;
535 /*
536 * PCIE scan
537 */
538 ops = &orion_pcie_ops;
539 bus = pci_scan_bus(sys->busnr, ops, sys);
540 /*
541 * Set local PCI bus number to follow PCIE bridges (if any)
542 */
543 pci_bus = bus->number + bus->subordinate - bus->secondary + 1;
544 orion_pci_set_bus_nr(pci_bus);
545 } else if (nr == 1) {
546 /*
547 * PCI scan
548 */
549 ops = &orion_pci_ops;
550 bus = pci_scan_bus(sys->busnr, ops, sys);
551 } else {
552 BUG();
553 bus = NULL;
554 }
555
556 return bus;
557}
diff --git a/arch/arm/mach-orion/time.c b/arch/arm/mach-orion/time.c
deleted file mode 100644
index bd4262da4f40..000000000000
--- a/arch/arm/mach-orion/time.c
+++ /dev/null
@@ -1,181 +0,0 @@
1/*
2 * arch/arm/mach-orion/time.c
3 *
4 * Core time functions for Marvell Orion System On Chip
5 *
6 * Maintainer: Tzachi Perelstein <tzachi@marvell.com>
7 *
8 * This file is licensed under the terms of the GNU General Public
9 * License version 2. This program is licensed "as is" without any
10 * warranty of any kind, whether express or implied.
11 */
12
13#include <linux/kernel.h>
14#include <linux/clockchips.h>
15#include <linux/interrupt.h>
16#include <linux/irq.h>
17#include <asm/mach/time.h>
18#include <asm/arch/orion.h>
19#include "common.h"
20
21/*
22 * Timer0: clock_event_device, Tick.
23 * Timer1: clocksource, Free running.
24 * WatchDog: Not used.
25 *
26 * Timers are counting down.
27 */
28#define CLOCKEVENT 0
29#define CLOCKSOURCE 1
30
31/*
32 * Timers bits
33 */
34#define BRIDGE_INT_TIMER(x) (1 << ((x) + 1))
35#define TIMER_EN(x) (1 << ((x) * 2))
36#define TIMER_RELOAD_EN(x) (1 << (((x) * 2) + 1))
37#define BRIDGE_INT_TIMER_WD (1 << 3)
38#define TIMER_WD_EN (1 << 4)
39#define TIMER_WD_RELOAD_EN (1 << 5)
40
41static cycle_t orion_clksrc_read(void)
42{
43 return (0xffffffff - orion_read(TIMER_VAL(CLOCKSOURCE)));
44}
45
46static struct clocksource orion_clksrc = {
47 .name = "orion_clocksource",
48 .shift = 20,
49 .rating = 300,
50 .read = orion_clksrc_read,
51 .mask = CLOCKSOURCE_MASK(32),
52 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
53};
54
55static int
56orion_clkevt_next_event(unsigned long delta, struct clock_event_device *dev)
57{
58 unsigned long flags;
59
60 if (delta == 0)
61 return -ETIME;
62
63 local_irq_save(flags);
64
65 /*
66 * Clear and enable timer interrupt bit
67 */
68 orion_write(BRIDGE_CAUSE, ~BRIDGE_INT_TIMER(CLOCKEVENT));
69 orion_setbits(BRIDGE_MASK, BRIDGE_INT_TIMER(CLOCKEVENT));
70
71 /*
72 * Setup new timer value
73 */
74 orion_write(TIMER_VAL(CLOCKEVENT), delta);
75
76 /*
77 * Disable auto reload and kickoff the timer
78 */
79 orion_clrbits(TIMER_CTRL, TIMER_RELOAD_EN(CLOCKEVENT));
80 orion_setbits(TIMER_CTRL, TIMER_EN(CLOCKEVENT));
81
82 local_irq_restore(flags);
83
84 return 0;
85}
86
87static void
88orion_clkevt_mode(enum clock_event_mode mode, struct clock_event_device *dev)
89{
90 unsigned long flags;
91
92 local_irq_save(flags);
93
94 if (mode == CLOCK_EVT_MODE_PERIODIC) {
95 /*
96 * Setup latch cycles in timer and enable reload interrupt.
97 */
98 orion_write(TIMER_VAL_RELOAD(CLOCKEVENT), LATCH);
99 orion_write(TIMER_VAL(CLOCKEVENT), LATCH);
100 orion_setbits(BRIDGE_MASK, BRIDGE_INT_TIMER(CLOCKEVENT));
101 orion_setbits(TIMER_CTRL, TIMER_RELOAD_EN(CLOCKEVENT) |
102 TIMER_EN(CLOCKEVENT));
103 } else {
104 /*
105 * Disable timer and interrupt
106 */
107 orion_clrbits(BRIDGE_MASK, BRIDGE_INT_TIMER(CLOCKEVENT));
108 orion_write(BRIDGE_CAUSE, ~BRIDGE_INT_TIMER(CLOCKEVENT));
109 orion_clrbits(TIMER_CTRL, TIMER_RELOAD_EN(CLOCKEVENT) |
110 TIMER_EN(CLOCKEVENT));
111 }
112
113 local_irq_restore(flags);
114}
115
116static struct clock_event_device orion_clkevt = {
117 .name = "orion_tick",
118 .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
119 .shift = 32,
120 .rating = 300,
121 .cpumask = CPU_MASK_CPU0,
122 .set_next_event = orion_clkevt_next_event,
123 .set_mode = orion_clkevt_mode,
124};
125
126static irqreturn_t orion_timer_interrupt(int irq, void *dev_id)
127{
128 /*
129 * Clear cause bit and do event
130 */
131 orion_write(BRIDGE_CAUSE, ~BRIDGE_INT_TIMER(CLOCKEVENT));
132 orion_clkevt.event_handler(&orion_clkevt);
133 return IRQ_HANDLED;
134}
135
136static struct irqaction orion_timer_irq = {
137 .name = "orion_tick",
138 .flags = IRQF_DISABLED | IRQF_TIMER,
139 .handler = orion_timer_interrupt
140};
141
142static void orion_timer_init(void)
143{
144 /*
145 * Setup clocksource free running timer (no interrupt on reload)
146 */
147 orion_write(TIMER_VAL(CLOCKSOURCE), 0xffffffff);
148 orion_write(TIMER_VAL_RELOAD(CLOCKSOURCE), 0xffffffff);
149 orion_clrbits(BRIDGE_MASK, BRIDGE_INT_TIMER(CLOCKSOURCE));
150 orion_setbits(TIMER_CTRL, TIMER_RELOAD_EN(CLOCKSOURCE) |
151 TIMER_EN(CLOCKSOURCE));
152
153 /*
154 * Register clocksource
155 */
156 orion_clksrc.mult =
157 clocksource_hz2mult(CLOCK_TICK_RATE, orion_clksrc.shift);
158
159 clocksource_register(&orion_clksrc);
160
161 /*
162 * Connect and enable tick handler
163 */
164 setup_irq(IRQ_ORION_BRIDGE, &orion_timer_irq);
165
166 /*
167 * Register clockevent
168 */
169 orion_clkevt.mult =
170 div_sc(CLOCK_TICK_RATE, NSEC_PER_SEC, orion_clkevt.shift);
171 orion_clkevt.max_delta_ns =
172 clockevent_delta2ns(0xfffffffe, &orion_clkevt);
173 orion_clkevt.min_delta_ns =
174 clockevent_delta2ns(1, &orion_clkevt);
175
176 clockevents_register_device(&orion_clkevt);
177}
178
179struct sys_timer orion_timer = {
180 .init = orion_timer_init,
181};
diff --git a/arch/arm/mach-orion/Kconfig b/arch/arm/mach-orion5x/Kconfig
index 1dcbb6ac5a30..93debf336155 100644
--- a/arch/arm/mach-orion/Kconfig
+++ b/arch/arm/mach-orion5x/Kconfig
@@ -1,4 +1,4 @@
1if ARCH_ORION 1if ARCH_ORION5X
2 2
3menu "Orion Implementations" 3menu "Orion Implementations"
4 4
@@ -36,6 +36,14 @@ config MACH_TS209
36 Say 'Y' here if you want your kernel to support the 36 Say 'Y' here if you want your kernel to support the
37 QNAP TS-109/TS-209 platform. 37 QNAP TS-109/TS-209 platform.
38 38
39config MACH_LINKSTATION_PRO
40 bool "Buffalo Linkstation Pro/Live"
41 select I2C_BOARDINFO
42 help
43 Say 'Y' here if you want your kernel to support the
44 Buffalo Linkstation Pro/Live platform. Both v1 and
45 v2 devices are supported.
46
39endmenu 47endmenu
40 48
41endif 49endif
diff --git a/arch/arm/mach-orion/Makefile b/arch/arm/mach-orion5x/Makefile
index f91d937a73e8..9301bf55910b 100644
--- a/arch/arm/mach-orion/Makefile
+++ b/arch/arm/mach-orion5x/Makefile
@@ -1,6 +1,7 @@
1obj-y += common.o addr-map.o pci.o gpio.o irq.o time.o 1obj-y += common.o addr-map.o pci.o gpio.o irq.o
2obj-$(CONFIG_MACH_DB88F5281) += db88f5281-setup.o 2obj-$(CONFIG_MACH_DB88F5281) += db88f5281-setup.o
3obj-$(CONFIG_MACH_RD88F5182) += rd88f5182-setup.o 3obj-$(CONFIG_MACH_RD88F5182) += rd88f5182-setup.o
4obj-$(CONFIG_MACH_KUROBOX_PRO) += kurobox_pro-setup.o 4obj-$(CONFIG_MACH_KUROBOX_PRO) += kurobox_pro-setup.o
5obj-$(CONFIG_MACH_LINKSTATION_PRO) += kurobox_pro-setup.o
5obj-$(CONFIG_MACH_DNS323) += dns323-setup.o 6obj-$(CONFIG_MACH_DNS323) += dns323-setup.o
6obj-$(CONFIG_MACH_TS209) += ts209-setup.o 7obj-$(CONFIG_MACH_TS209) += ts209-setup.o
diff --git a/arch/arm/mach-orion/Makefile.boot b/arch/arm/mach-orion5x/Makefile.boot
index 67039c3e0c48..67039c3e0c48 100644
--- a/arch/arm/mach-orion/Makefile.boot
+++ b/arch/arm/mach-orion5x/Makefile.boot
diff --git a/arch/arm/mach-orion5x/addr-map.c b/arch/arm/mach-orion5x/addr-map.c
new file mode 100644
index 000000000000..6b179371e0a2
--- /dev/null
+++ b/arch/arm/mach-orion5x/addr-map.c
@@ -0,0 +1,240 @@
1/*
2 * arch/arm/mach-orion5x/addr-map.c
3 *
4 * Address map functions for Marvell Orion 5x SoCs
5 *
6 * Maintainer: Tzachi Perelstein <tzachi@marvell.com>
7 *
8 * This file is licensed under the terms of the GNU General Public
9 * License version 2. This program is licensed "as is" without any
10 * warranty of any kind, whether express or implied.
11 */
12
13#include <linux/kernel.h>
14#include <linux/init.h>
15#include <linux/mbus.h>
16#include <asm/hardware.h>
17#include <asm/io.h>
18#include "common.h"
19
20/*
21 * The Orion has fully programable address map. There's a separate address
22 * map for each of the device _master_ interfaces, e.g. CPU, PCI, PCIE, USB,
23 * Gigabit Ethernet, DMA/XOR engines, etc. Each interface has its own
24 * address decode windows that allow it to access any of the Orion resources.
25 *
26 * CPU address decoding --
27 * Linux assumes that it is the boot loader that already setup the access to
28 * DDR and internal registers.
29 * Setup access to PCI and PCI-E IO/MEM space is issued by this file.
30 * Setup access to various devices located on the device bus interface (e.g.
31 * flashes, RTC, etc) should be issued by machine-setup.c according to
32 * specific board population (by using orion5x_setup_*_win()).
33 *
34 * Non-CPU Masters address decoding --
35 * Unlike the CPU, we setup the access from Orion's master interfaces to DDR
36 * banks only (the typical use case).
37 * Setup access for each master to DDR is issued by common.c.
38 *
39 * Note: although orion_setbits() and orion_clrbits() are not atomic
40 * no locking is necessary here since code in this file is only called
41 * at boot time when there is no concurrency issues.
42 */
43
44/*
45 * Generic Address Decode Windows bit settings
46 */
47#define TARGET_DDR 0
48#define TARGET_DEV_BUS 1
49#define TARGET_PCI 3
50#define TARGET_PCIE 4
51#define ATTR_DDR_CS(n) (((n) ==0) ? 0xe : \
52 ((n) == 1) ? 0xd : \
53 ((n) == 2) ? 0xb : \
54 ((n) == 3) ? 0x7 : 0xf)
55#define ATTR_PCIE_MEM 0x59
56#define ATTR_PCIE_IO 0x51
57#define ATTR_PCIE_WA 0x79
58#define ATTR_PCI_MEM 0x59
59#define ATTR_PCI_IO 0x51
60#define ATTR_DEV_CS0 0x1e
61#define ATTR_DEV_CS1 0x1d
62#define ATTR_DEV_CS2 0x1b
63#define ATTR_DEV_BOOT 0xf
64#define WIN_EN 1
65
66/*
67 * Helpers to get DDR bank info
68 */
69#define DDR_BASE_CS(n) ORION5X_DDR_REG(0x1500 + ((n) * 8))
70#define DDR_SIZE_CS(n) ORION5X_DDR_REG(0x1504 + ((n) * 8))
71#define DDR_MAX_CS 4
72#define DDR_REG_TO_SIZE(reg) (((reg) | 0xffffff) + 1)
73#define DDR_REG_TO_BASE(reg) ((reg) & 0xff000000)
74#define DDR_BANK_EN 1
75
76/*
77 * CPU Address Decode Windows registers
78 */
79#define CPU_WIN_CTRL(n) ORION5X_BRIDGE_REG(0x000 | ((n) << 4))
80#define CPU_WIN_BASE(n) ORION5X_BRIDGE_REG(0x004 | ((n) << 4))
81#define CPU_WIN_REMAP_LO(n) ORION5X_BRIDGE_REG(0x008 | ((n) << 4))
82#define CPU_WIN_REMAP_HI(n) ORION5X_BRIDGE_REG(0x00c | ((n) << 4))
83
84/*
85 * Gigabit Ethernet Address Decode Windows registers
86 */
87#define ETH_WIN_BASE(win) ORION5X_ETH_REG(0x200 + ((win) * 8))
88#define ETH_WIN_SIZE(win) ORION5X_ETH_REG(0x204 + ((win) * 8))
89#define ETH_WIN_REMAP(win) ORION5X_ETH_REG(0x280 + ((win) * 4))
90#define ETH_WIN_EN ORION5X_ETH_REG(0x290)
91#define ETH_WIN_PROT ORION5X_ETH_REG(0x294)
92#define ETH_MAX_WIN 6
93#define ETH_MAX_REMAP_WIN 4
94
95
96struct mbus_dram_target_info orion5x_mbus_dram_info;
97
98static int __init orion5x_cpu_win_can_remap(int win)
99{
100 u32 dev, rev;
101
102 orion5x_pcie_id(&dev, &rev);
103 if ((dev == MV88F5281_DEV_ID && win < 4)
104 || (dev == MV88F5182_DEV_ID && win < 2)
105 || (dev == MV88F5181_DEV_ID && win < 2))
106 return 1;
107
108 return 0;
109}
110
111static void __init setup_cpu_win(int win, u32 base, u32 size,
112 u8 target, u8 attr, int remap)
113{
114 orion5x_write(CPU_WIN_BASE(win), base & 0xffff0000);
115 orion5x_write(CPU_WIN_CTRL(win),
116 ((size - 1) & 0xffff0000) | (attr << 8) | (target << 4) | 1);
117
118 if (orion5x_cpu_win_can_remap(win)) {
119 if (remap < 0)
120 remap = base;
121
122 orion5x_write(CPU_WIN_REMAP_LO(win), remap & 0xffff0000);
123 orion5x_write(CPU_WIN_REMAP_HI(win), 0);
124 }
125}
126
127void __init orion5x_setup_cpu_mbus_bridge(void)
128{
129 int i;
130 int cs;
131
132 /*
133 * First, disable and clear windows.
134 */
135 for (i = 0; i < 8; i++) {
136 orion5x_write(CPU_WIN_BASE(i), 0);
137 orion5x_write(CPU_WIN_CTRL(i), 0);
138 if (orion5x_cpu_win_can_remap(i)) {
139 orion5x_write(CPU_WIN_REMAP_LO(i), 0);
140 orion5x_write(CPU_WIN_REMAP_HI(i), 0);
141 }
142 }
143
144 /*
145 * Setup windows for PCI+PCIe IO+MEM space.
146 */
147 setup_cpu_win(0, ORION5X_PCIE_IO_PHYS_BASE, ORION5X_PCIE_IO_SIZE,
148 TARGET_PCIE, ATTR_PCIE_IO, ORION5X_PCIE_IO_BUS_BASE);
149 setup_cpu_win(1, ORION5X_PCI_IO_PHYS_BASE, ORION5X_PCI_IO_SIZE,
150 TARGET_PCI, ATTR_PCI_IO, ORION5X_PCI_IO_BUS_BASE);
151 setup_cpu_win(2, ORION5X_PCIE_MEM_PHYS_BASE, ORION5X_PCIE_MEM_SIZE,
152 TARGET_PCIE, ATTR_PCIE_MEM, -1);
153 setup_cpu_win(3, ORION5X_PCI_MEM_PHYS_BASE, ORION5X_PCI_MEM_SIZE,
154 TARGET_PCI, ATTR_PCI_MEM, -1);
155
156 /*
157 * Setup MBUS dram target info.
158 */
159 orion5x_mbus_dram_info.mbus_dram_target_id = TARGET_DDR;
160
161 for (i = 0, cs = 0; i < 4; i++) {
162 u32 base = readl(DDR_BASE_CS(i));
163 u32 size = readl(DDR_SIZE_CS(i));
164
165 /*
166 * Chip select enabled?
167 */
168 if (size & 1) {
169 struct mbus_dram_window *w;
170
171 w = &orion5x_mbus_dram_info.cs[cs++];
172 w->cs_index = i;
173 w->mbus_attr = 0xf & ~(1 << i);
174 w->base = base & 0xff000000;
175 w->size = (size | 0x00ffffff) + 1;
176 }
177 }
178 orion5x_mbus_dram_info.num_cs = cs;
179}
180
181void __init orion5x_setup_dev_boot_win(u32 base, u32 size)
182{
183 setup_cpu_win(4, base, size, TARGET_DEV_BUS, ATTR_DEV_BOOT, -1);
184}
185
186void __init orion5x_setup_dev0_win(u32 base, u32 size)
187{
188 setup_cpu_win(5, base, size, TARGET_DEV_BUS, ATTR_DEV_CS0, -1);
189}
190
191void __init orion5x_setup_dev1_win(u32 base, u32 size)
192{
193 setup_cpu_win(6, base, size, TARGET_DEV_BUS, ATTR_DEV_CS1, -1);
194}
195
196void __init orion5x_setup_dev2_win(u32 base, u32 size)
197{
198 setup_cpu_win(7, base, size, TARGET_DEV_BUS, ATTR_DEV_CS2, -1);
199}
200
201void __init orion5x_setup_pcie_wa_win(u32 base, u32 size)
202{
203 setup_cpu_win(7, base, size, TARGET_PCIE, ATTR_PCIE_WA, -1);
204}
205
206void __init orion5x_setup_eth_wins(void)
207{
208 int i;
209
210 /*
211 * First, disable and clear windows
212 */
213 for (i = 0; i < ETH_MAX_WIN; i++) {
214 orion5x_write(ETH_WIN_BASE(i), 0);
215 orion5x_write(ETH_WIN_SIZE(i), 0);
216 orion5x_setbits(ETH_WIN_EN, 1 << i);
217 orion5x_clrbits(ETH_WIN_PROT, 0x3 << (i * 2));
218 if (i < ETH_MAX_REMAP_WIN)
219 orion5x_write(ETH_WIN_REMAP(i), 0);
220 }
221
222 /*
223 * Setup windows for DDR banks.
224 */
225 for (i = 0; i < DDR_MAX_CS; i++) {
226 u32 base, size;
227 size = orion5x_read(DDR_SIZE_CS(i));
228 base = orion5x_read(DDR_BASE_CS(i));
229 if (size & DDR_BANK_EN) {
230 base = DDR_REG_TO_BASE(base);
231 size = DDR_REG_TO_SIZE(size);
232 orion5x_write(ETH_WIN_SIZE(i), (size-1) & 0xffff0000);
233 orion5x_write(ETH_WIN_BASE(i), (base & 0xffff0000) |
234 (ATTR_DDR_CS(i) << 8) |
235 TARGET_DDR);
236 orion5x_clrbits(ETH_WIN_EN, 1 << i);
237 orion5x_setbits(ETH_WIN_PROT, 0x3 << (i * 2));
238 }
239 }
240}
diff --git a/arch/arm/mach-orion/common.c b/arch/arm/mach-orion5x/common.c
index bbc2b4ec932c..439c7784af02 100644
--- a/arch/arm/mach-orion/common.c
+++ b/arch/arm/mach-orion5x/common.c
@@ -1,12 +1,12 @@
1/* 1/*
2 * arch/arm/mach-orion/common.c 2 * arch/arm/mach-orion5x/common.c
3 * 3 *
4 * Core functions for Marvell Orion System On Chip 4 * Core functions for Marvell Orion 5x SoCs
5 * 5 *
6 * Maintainer: Tzachi Perelstein <tzachi@marvell.com> 6 * Maintainer: Tzachi Perelstein <tzachi@marvell.com>
7 * 7 *
8 * This file is licensed under the terms of the GNU General Public 8 * This file is licensed under the terms of the GNU General Public
9 * License version 2. This program is licensed "as is" without any 9 * License version 2. This program is licensed "as is" without any
10 * warranty of any kind, whether express or implied. 10 * warranty of any kind, whether express or implied.
11 */ 11 */
12 12
@@ -14,64 +14,71 @@
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/platform_device.h> 15#include <linux/platform_device.h>
16#include <linux/serial_8250.h> 16#include <linux/serial_8250.h>
17#include <linux/mbus.h>
17#include <linux/mv643xx_eth.h> 18#include <linux/mv643xx_eth.h>
18#include <linux/mv643xx_i2c.h> 19#include <linux/mv643xx_i2c.h>
20#include <linux/ata_platform.h>
19#include <asm/page.h> 21#include <asm/page.h>
20#include <asm/setup.h> 22#include <asm/setup.h>
21#include <asm/timex.h> 23#include <asm/timex.h>
22#include <asm/mach/arch.h> 24#include <asm/mach/arch.h>
23#include <asm/mach/map.h> 25#include <asm/mach/map.h>
26#include <asm/mach/time.h>
24#include <asm/arch/hardware.h> 27#include <asm/arch/hardware.h>
28#include <asm/arch/orion5x.h>
29#include <asm/plat-orion/ehci-orion.h>
30#include <asm/plat-orion/orion_nand.h>
31#include <asm/plat-orion/time.h>
25#include "common.h" 32#include "common.h"
26 33
27/***************************************************************************** 34/*****************************************************************************
28 * I/O Address Mapping 35 * I/O Address Mapping
29 ****************************************************************************/ 36 ****************************************************************************/
30static struct map_desc orion_io_desc[] __initdata = { 37static struct map_desc orion5x_io_desc[] __initdata = {
31 { 38 {
32 .virtual = ORION_REGS_VIRT_BASE, 39 .virtual = ORION5X_REGS_VIRT_BASE,
33 .pfn = __phys_to_pfn(ORION_REGS_PHYS_BASE), 40 .pfn = __phys_to_pfn(ORION5X_REGS_PHYS_BASE),
34 .length = ORION_REGS_SIZE, 41 .length = ORION5X_REGS_SIZE,
35 .type = MT_DEVICE 42 .type = MT_DEVICE
36 }, 43 },
37 { 44 {
38 .virtual = ORION_PCIE_IO_VIRT_BASE, 45 .virtual = ORION5X_PCIE_IO_VIRT_BASE,
39 .pfn = __phys_to_pfn(ORION_PCIE_IO_PHYS_BASE), 46 .pfn = __phys_to_pfn(ORION5X_PCIE_IO_PHYS_BASE),
40 .length = ORION_PCIE_IO_SIZE, 47 .length = ORION5X_PCIE_IO_SIZE,
41 .type = MT_DEVICE 48 .type = MT_DEVICE
42 }, 49 },
43 { 50 {
44 .virtual = ORION_PCI_IO_VIRT_BASE, 51 .virtual = ORION5X_PCI_IO_VIRT_BASE,
45 .pfn = __phys_to_pfn(ORION_PCI_IO_PHYS_BASE), 52 .pfn = __phys_to_pfn(ORION5X_PCI_IO_PHYS_BASE),
46 .length = ORION_PCI_IO_SIZE, 53 .length = ORION5X_PCI_IO_SIZE,
47 .type = MT_DEVICE 54 .type = MT_DEVICE
48 }, 55 },
49 { 56 {
50 .virtual = ORION_PCIE_WA_VIRT_BASE, 57 .virtual = ORION5X_PCIE_WA_VIRT_BASE,
51 .pfn = __phys_to_pfn(ORION_PCIE_WA_PHYS_BASE), 58 .pfn = __phys_to_pfn(ORION5X_PCIE_WA_PHYS_BASE),
52 .length = ORION_PCIE_WA_SIZE, 59 .length = ORION5X_PCIE_WA_SIZE,
53 .type = MT_DEVICE 60 .type = MT_DEVICE
54 }, 61 },
55}; 62};
56 63
57void __init orion_map_io(void) 64void __init orion5x_map_io(void)
58{ 65{
59 iotable_init(orion_io_desc, ARRAY_SIZE(orion_io_desc)); 66 iotable_init(orion5x_io_desc, ARRAY_SIZE(orion5x_io_desc));
60} 67}
61 68
62/***************************************************************************** 69/*****************************************************************************
63 * UART 70 * UART
64 ****************************************************************************/ 71 ****************************************************************************/
65 72
66static struct resource orion_uart_resources[] = { 73static struct resource orion5x_uart_resources[] = {
67 { 74 {
68 .start = UART0_PHYS_BASE, 75 .start = UART0_PHYS_BASE,
69 .end = UART0_PHYS_BASE + 0xff, 76 .end = UART0_PHYS_BASE + 0xff,
70 .flags = IORESOURCE_MEM, 77 .flags = IORESOURCE_MEM,
71 }, 78 },
72 { 79 {
73 .start = IRQ_ORION_UART0, 80 .start = IRQ_ORION5X_UART0,
74 .end = IRQ_ORION_UART0, 81 .end = IRQ_ORION5X_UART0,
75 .flags = IORESOURCE_IRQ, 82 .flags = IORESOURCE_IRQ,
76 }, 83 },
77 { 84 {
@@ -80,96 +87,102 @@ static struct resource orion_uart_resources[] = {
80 .flags = IORESOURCE_MEM, 87 .flags = IORESOURCE_MEM,
81 }, 88 },
82 { 89 {
83 .start = IRQ_ORION_UART1, 90 .start = IRQ_ORION5X_UART1,
84 .end = IRQ_ORION_UART1, 91 .end = IRQ_ORION5X_UART1,
85 .flags = IORESOURCE_IRQ, 92 .flags = IORESOURCE_IRQ,
86 }, 93 },
87}; 94};
88 95
89static struct plat_serial8250_port orion_uart_data[] = { 96static struct plat_serial8250_port orion5x_uart_data[] = {
90 { 97 {
91 .mapbase = UART0_PHYS_BASE, 98 .mapbase = UART0_PHYS_BASE,
92 .membase = (char *)UART0_VIRT_BASE, 99 .membase = (char *)UART0_VIRT_BASE,
93 .irq = IRQ_ORION_UART0, 100 .irq = IRQ_ORION5X_UART0,
94 .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, 101 .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF,
95 .iotype = UPIO_MEM, 102 .iotype = UPIO_MEM,
96 .regshift = 2, 103 .regshift = 2,
97 .uartclk = ORION_TCLK, 104 .uartclk = ORION5X_TCLK,
98 }, 105 },
99 { 106 {
100 .mapbase = UART1_PHYS_BASE, 107 .mapbase = UART1_PHYS_BASE,
101 .membase = (char *)UART1_VIRT_BASE, 108 .membase = (char *)UART1_VIRT_BASE,
102 .irq = IRQ_ORION_UART1, 109 .irq = IRQ_ORION5X_UART1,
103 .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF, 110 .flags = UPF_SKIP_TEST | UPF_BOOT_AUTOCONF,
104 .iotype = UPIO_MEM, 111 .iotype = UPIO_MEM,
105 .regshift = 2, 112 .regshift = 2,
106 .uartclk = ORION_TCLK, 113 .uartclk = ORION5X_TCLK,
107 }, 114 },
108 { }, 115 { },
109}; 116};
110 117
111static struct platform_device orion_uart = { 118static struct platform_device orion5x_uart = {
112 .name = "serial8250", 119 .name = "serial8250",
113 .id = PLAT8250_DEV_PLATFORM, 120 .id = PLAT8250_DEV_PLATFORM,
114 .dev = { 121 .dev = {
115 .platform_data = orion_uart_data, 122 .platform_data = orion5x_uart_data,
116 }, 123 },
117 .resource = orion_uart_resources, 124 .resource = orion5x_uart_resources,
118 .num_resources = ARRAY_SIZE(orion_uart_resources), 125 .num_resources = ARRAY_SIZE(orion5x_uart_resources),
119}; 126};
120 127
121/******************************************************************************* 128/*******************************************************************************
122 * USB Controller - 2 interfaces 129 * USB Controller - 2 interfaces
123 ******************************************************************************/ 130 ******************************************************************************/
124 131
125static struct resource orion_ehci0_resources[] = { 132static struct resource orion5x_ehci0_resources[] = {
126 { 133 {
127 .start = ORION_USB0_PHYS_BASE, 134 .start = ORION5X_USB0_PHYS_BASE,
128 .end = ORION_USB0_PHYS_BASE + SZ_4K, 135 .end = ORION5X_USB0_PHYS_BASE + SZ_4K,
129 .flags = IORESOURCE_MEM, 136 .flags = IORESOURCE_MEM,
130 }, 137 },
131 { 138 {
132 .start = IRQ_ORION_USB0_CTRL, 139 .start = IRQ_ORION5X_USB0_CTRL,
133 .end = IRQ_ORION_USB0_CTRL, 140 .end = IRQ_ORION5X_USB0_CTRL,
134 .flags = IORESOURCE_IRQ, 141 .flags = IORESOURCE_IRQ,
135 }, 142 },
136}; 143};
137 144
138static struct resource orion_ehci1_resources[] = { 145static struct resource orion5x_ehci1_resources[] = {
139 { 146 {
140 .start = ORION_USB1_PHYS_BASE, 147 .start = ORION5X_USB1_PHYS_BASE,
141 .end = ORION_USB1_PHYS_BASE + SZ_4K, 148 .end = ORION5X_USB1_PHYS_BASE + SZ_4K,
142 .flags = IORESOURCE_MEM, 149 .flags = IORESOURCE_MEM,
143 }, 150 },
144 { 151 {
145 .start = IRQ_ORION_USB1_CTRL, 152 .start = IRQ_ORION5X_USB1_CTRL,
146 .end = IRQ_ORION_USB1_CTRL, 153 .end = IRQ_ORION5X_USB1_CTRL,
147 .flags = IORESOURCE_IRQ, 154 .flags = IORESOURCE_IRQ,
148 }, 155 },
149}; 156};
150 157
158static struct orion_ehci_data orion5x_ehci_data = {
159 .dram = &orion5x_mbus_dram_info,
160};
161
151static u64 ehci_dmamask = 0xffffffffUL; 162static u64 ehci_dmamask = 0xffffffffUL;
152 163
153static struct platform_device orion_ehci0 = { 164static struct platform_device orion5x_ehci0 = {
154 .name = "orion-ehci", 165 .name = "orion-ehci",
155 .id = 0, 166 .id = 0,
156 .dev = { 167 .dev = {
157 .dma_mask = &ehci_dmamask, 168 .dma_mask = &ehci_dmamask,
158 .coherent_dma_mask = 0xffffffff, 169 .coherent_dma_mask = 0xffffffff,
170 .platform_data = &orion5x_ehci_data,
159 }, 171 },
160 .resource = orion_ehci0_resources, 172 .resource = orion5x_ehci0_resources,
161 .num_resources = ARRAY_SIZE(orion_ehci0_resources), 173 .num_resources = ARRAY_SIZE(orion5x_ehci0_resources),
162}; 174};
163 175
164static struct platform_device orion_ehci1 = { 176static struct platform_device orion5x_ehci1 = {
165 .name = "orion-ehci", 177 .name = "orion-ehci",
166 .id = 1, 178 .id = 1,
167 .dev = { 179 .dev = {
168 .dma_mask = &ehci_dmamask, 180 .dma_mask = &ehci_dmamask,
169 .coherent_dma_mask = 0xffffffff, 181 .coherent_dma_mask = 0xffffffff,
182 .platform_data = &orion5x_ehci_data,
170 }, 183 },
171 .resource = orion_ehci1_resources, 184 .resource = orion5x_ehci1_resources,
172 .num_resources = ARRAY_SIZE(orion_ehci1_resources), 185 .num_resources = ARRAY_SIZE(orion5x_ehci1_resources),
173}; 186};
174 187
175/***************************************************************************** 188/*****************************************************************************
@@ -177,42 +190,42 @@ static struct platform_device orion_ehci1 = {
177 * (The Orion and Discovery (MV643xx) families use the same Ethernet driver) 190 * (The Orion and Discovery (MV643xx) families use the same Ethernet driver)
178 ****************************************************************************/ 191 ****************************************************************************/
179 192
180static struct resource orion_eth_shared_resources[] = { 193static struct resource orion5x_eth_shared_resources[] = {
181 { 194 {
182 .start = ORION_ETH_PHYS_BASE + 0x2000, 195 .start = ORION5X_ETH_PHYS_BASE + 0x2000,
183 .end = ORION_ETH_PHYS_BASE + 0x3fff, 196 .end = ORION5X_ETH_PHYS_BASE + 0x3fff,
184 .flags = IORESOURCE_MEM, 197 .flags = IORESOURCE_MEM,
185 }, 198 },
186}; 199};
187 200
188static struct platform_device orion_eth_shared = { 201static struct platform_device orion5x_eth_shared = {
189 .name = MV643XX_ETH_SHARED_NAME, 202 .name = MV643XX_ETH_SHARED_NAME,
190 .id = 0, 203 .id = 0,
191 .num_resources = 1, 204 .num_resources = 1,
192 .resource = orion_eth_shared_resources, 205 .resource = orion5x_eth_shared_resources,
193}; 206};
194 207
195static struct resource orion_eth_resources[] = { 208static struct resource orion5x_eth_resources[] = {
196 { 209 {
197 .name = "eth irq", 210 .name = "eth irq",
198 .start = IRQ_ORION_ETH_SUM, 211 .start = IRQ_ORION5X_ETH_SUM,
199 .end = IRQ_ORION_ETH_SUM, 212 .end = IRQ_ORION5X_ETH_SUM,
200 .flags = IORESOURCE_IRQ, 213 .flags = IORESOURCE_IRQ,
201 } 214 }
202}; 215};
203 216
204static struct platform_device orion_eth = { 217static struct platform_device orion5x_eth = {
205 .name = MV643XX_ETH_NAME, 218 .name = MV643XX_ETH_NAME,
206 .id = 0, 219 .id = 0,
207 .num_resources = 1, 220 .num_resources = 1,
208 .resource = orion_eth_resources, 221 .resource = orion5x_eth_resources,
209}; 222};
210 223
211void __init orion_eth_init(struct mv643xx_eth_platform_data *eth_data) 224void __init orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data)
212{ 225{
213 orion_eth.dev.platform_data = eth_data; 226 orion5x_eth.dev.platform_data = eth_data;
214 platform_device_register(&orion_eth_shared); 227 platform_device_register(&orion5x_eth_shared);
215 platform_device_register(&orion_eth); 228 platform_device_register(&orion5x_eth);
216} 229}
217 230
218/***************************************************************************** 231/*****************************************************************************
@@ -220,13 +233,13 @@ void __init orion_eth_init(struct mv643xx_eth_platform_data *eth_data)
220 * (The Orion and Discovery (MV643xx) families share the same I2C controller) 233 * (The Orion and Discovery (MV643xx) families share the same I2C controller)
221 ****************************************************************************/ 234 ****************************************************************************/
222 235
223static struct mv64xxx_i2c_pdata orion_i2c_pdata = { 236static struct mv64xxx_i2c_pdata orion5x_i2c_pdata = {
224 .freq_m = 8, /* assumes 166 MHz TCLK */ 237 .freq_m = 8, /* assumes 166 MHz TCLK */
225 .freq_n = 3, 238 .freq_n = 3,
226 .timeout = 1000, /* Default timeout of 1 second */ 239 .timeout = 1000, /* Default timeout of 1 second */
227}; 240};
228 241
229static struct resource orion_i2c_resources[] = { 242static struct resource orion5x_i2c_resources[] = {
230 { 243 {
231 .name = "i2c base", 244 .name = "i2c base",
232 .start = I2C_PHYS_BASE, 245 .start = I2C_PHYS_BASE,
@@ -235,66 +248,80 @@ static struct resource orion_i2c_resources[] = {
235 }, 248 },
236 { 249 {
237 .name = "i2c irq", 250 .name = "i2c irq",
238 .start = IRQ_ORION_I2C, 251 .start = IRQ_ORION5X_I2C,
239 .end = IRQ_ORION_I2C, 252 .end = IRQ_ORION5X_I2C,
240 .flags = IORESOURCE_IRQ, 253 .flags = IORESOURCE_IRQ,
241 }, 254 },
242}; 255};
243 256
244static struct platform_device orion_i2c = { 257static struct platform_device orion5x_i2c = {
245 .name = MV64XXX_I2C_CTLR_NAME, 258 .name = MV64XXX_I2C_CTLR_NAME,
246 .id = 0, 259 .id = 0,
247 .num_resources = ARRAY_SIZE(orion_i2c_resources), 260 .num_resources = ARRAY_SIZE(orion5x_i2c_resources),
248 .resource = orion_i2c_resources, 261 .resource = orion5x_i2c_resources,
249 .dev = { 262 .dev = {
250 .platform_data = &orion_i2c_pdata, 263 .platform_data = &orion5x_i2c_pdata,
251 }, 264 },
252}; 265};
253 266
254/***************************************************************************** 267/*****************************************************************************
255 * Sata port 268 * Sata port
256 ****************************************************************************/ 269 ****************************************************************************/
257static struct resource orion_sata_resources[] = { 270static struct resource orion5x_sata_resources[] = {
258 { 271 {
259 .name = "sata base", 272 .name = "sata base",
260 .start = ORION_SATA_PHYS_BASE, 273 .start = ORION5X_SATA_PHYS_BASE,
261 .end = ORION_SATA_PHYS_BASE + 0x5000 - 1, 274 .end = ORION5X_SATA_PHYS_BASE + 0x5000 - 1,
262 .flags = IORESOURCE_MEM, 275 .flags = IORESOURCE_MEM,
263 }, 276 },
264 { 277 {
265 .name = "sata irq", 278 .name = "sata irq",
266 .start = IRQ_ORION_SATA, 279 .start = IRQ_ORION5X_SATA,
267 .end = IRQ_ORION_SATA, 280 .end = IRQ_ORION5X_SATA,
268 .flags = IORESOURCE_IRQ, 281 .flags = IORESOURCE_IRQ,
269 }, 282 },
270}; 283};
271 284
272static struct platform_device orion_sata = { 285static struct platform_device orion5x_sata = {
273 .name = "sata_mv", 286 .name = "sata_mv",
274 .id = 0, 287 .id = 0,
275 .dev = { 288 .dev = {
276 .coherent_dma_mask = 0xffffffff, 289 .coherent_dma_mask = 0xffffffff,
277 }, 290 },
278 .num_resources = ARRAY_SIZE(orion_sata_resources), 291 .num_resources = ARRAY_SIZE(orion5x_sata_resources),
279 .resource = orion_sata_resources, 292 .resource = orion5x_sata_resources,
280}; 293};
281 294
282void __init orion_sata_init(struct mv_sata_platform_data *sata_data) 295void __init orion5x_sata_init(struct mv_sata_platform_data *sata_data)
283{ 296{
284 orion_sata.dev.platform_data = sata_data; 297 sata_data->dram = &orion5x_mbus_dram_info;
285 platform_device_register(&orion_sata); 298 orion5x_sata.dev.platform_data = sata_data;
299 platform_device_register(&orion5x_sata);
286} 300}
287 301
288/***************************************************************************** 302/*****************************************************************************
303 * Time handling
304 ****************************************************************************/
305
306static void orion5x_timer_init(void)
307{
308 orion_time_init(IRQ_ORION5X_BRIDGE, ORION5X_TCLK);
309}
310
311struct sys_timer orion5x_timer = {
312 .init = orion5x_timer_init,
313};
314
315/*****************************************************************************
289 * General 316 * General
290 ****************************************************************************/ 317 ****************************************************************************/
291 318
292/* 319/*
293 * Identify device ID and rev from PCIE configuration header space '0'. 320 * Identify device ID and rev from PCIE configuration header space '0'.
294 */ 321 */
295static void orion_id(u32 *dev, u32 *rev, char **dev_name) 322static void __init orion5x_id(u32 *dev, u32 *rev, char **dev_name)
296{ 323{
297 orion_pcie_id(dev, rev); 324 orion5x_pcie_id(dev, rev);
298 325
299 if (*dev == MV88F5281_DEV_ID) { 326 if (*dev == MV88F5281_DEV_ID) {
300 if (*rev == MV88F5281_REV_D2) { 327 if (*rev == MV88F5281_REV_D2) {
@@ -321,33 +348,28 @@ static void orion_id(u32 *dev, u32 *rev, char **dev_name)
321 } 348 }
322} 349}
323 350
324void __init orion_init(void) 351void __init orion5x_init(void)
325{ 352{
326 char *dev_name; 353 char *dev_name;
327 u32 dev, rev; 354 u32 dev, rev;
328 355
329 orion_id(&dev, &rev, &dev_name); 356 orion5x_id(&dev, &rev, &dev_name);
330 printk(KERN_INFO "Orion ID: %s. TCLK=%d.\n", dev_name, ORION_TCLK); 357 printk(KERN_INFO "Orion ID: %s. TCLK=%d.\n", dev_name, ORION5X_TCLK);
331 358
332 /* 359 /*
333 * Setup Orion address map 360 * Setup Orion address map
334 */ 361 */
335 orion_setup_cpu_wins(); 362 orion5x_setup_cpu_mbus_bridge();
336 orion_setup_usb_wins(); 363 orion5x_setup_eth_wins();
337 orion_setup_eth_wins();
338 orion_setup_pci_wins();
339 orion_setup_pcie_wins();
340 if (dev == MV88F5182_DEV_ID)
341 orion_setup_sata_wins();
342 364
343 /* 365 /*
344 * REgister devices 366 * Register devices.
345 */ 367 */
346 platform_device_register(&orion_uart); 368 platform_device_register(&orion5x_uart);
347 platform_device_register(&orion_ehci0); 369 platform_device_register(&orion5x_ehci0);
348 if (dev == MV88F5182_DEV_ID) 370 if (dev == MV88F5182_DEV_ID)
349 platform_device_register(&orion_ehci1); 371 platform_device_register(&orion5x_ehci1);
350 platform_device_register(&orion_i2c); 372 platform_device_register(&orion5x_i2c);
351} 373}
352 374
353/* 375/*
diff --git a/arch/arm/mach-orion5x/common.h b/arch/arm/mach-orion5x/common.h
new file mode 100644
index 000000000000..f4c4c9a72a7c
--- /dev/null
+++ b/arch/arm/mach-orion5x/common.h
@@ -0,0 +1,72 @@
1#ifndef __ARCH_ORION5X_COMMON_H
2#define __ARCH_ORION5X_COMMON_H
3
4/*
5 * Basic Orion init functions used early by machine-setup.
6 */
7
8void orion5x_map_io(void);
9void orion5x_init_irq(void);
10void orion5x_init(void);
11extern struct sys_timer orion5x_timer;
12
13/*
14 * Enumerations and functions for Orion windows mapping. Used by Orion core
15 * functions to map its interfaces and by the machine-setup to map its on-
16 * board devices. Details in /mach-orion/addr-map.c
17 */
18extern struct mbus_dram_target_info orion5x_mbus_dram_info;
19void orion5x_setup_cpu_mbus_bridge(void);
20void orion5x_setup_dev_boot_win(u32 base, u32 size);
21void orion5x_setup_dev0_win(u32 base, u32 size);
22void orion5x_setup_dev1_win(u32 base, u32 size);
23void orion5x_setup_dev2_win(u32 base, u32 size);
24void orion5x_setup_pcie_wa_win(u32 base, u32 size);
25void orion5x_setup_eth_wins(void);
26
27/*
28 * Shared code used internally by other Orion core functions.
29 * (/mach-orion/pci.c)
30 */
31
32struct pci_sys_data;
33struct pci_bus;
34
35void orion5x_pcie_id(u32 *dev, u32 *rev);
36int orion5x_pcie_local_bus_nr(void);
37int orion5x_pci_local_bus_nr(void);
38int orion5x_pci_sys_setup(int nr, struct pci_sys_data *sys);
39struct pci_bus *orion5x_pci_sys_scan_bus(int nr, struct pci_sys_data *sys);
40
41/*
42 * Valid GPIO pins according to MPP setup, used by machine-setup.
43 * (/mach-orion/gpio.c).
44 */
45
46void orion5x_gpio_set_valid_pins(u32 pins);
47void gpio_display(void); /* debug */
48
49/*
50 * Pull in Orion Ethernet platform_data, used by machine-setup
51 */
52
53struct mv643xx_eth_platform_data;
54
55void orion5x_eth_init(struct mv643xx_eth_platform_data *eth_data);
56
57/*
58 * Orion Sata platform_data, used by machine-setup
59 */
60
61struct mv_sata_platform_data;
62
63void orion5x_sata_init(struct mv_sata_platform_data *sata_data);
64
65struct machine_desc;
66struct meminfo;
67struct tag;
68extern void __init tag_fixup_mem32(struct machine_desc *, struct tag *,
69 char **, struct meminfo *);
70
71
72#endif
diff --git a/arch/arm/mach-orion/db88f5281-setup.c b/arch/arm/mach-orion5x/db88f5281-setup.c
index 5ef44e1a2d36..872aed372327 100644
--- a/arch/arm/mach-orion/db88f5281-setup.c
+++ b/arch/arm/mach-orion5x/db88f5281-setup.c
@@ -1,12 +1,12 @@
1/* 1/*
2 * arch/arm/mach-orion/db88f5281-setup.c 2 * arch/arm/mach-orion5x/db88f5281-setup.c
3 * 3 *
4 * Marvell Orion-2 Development Board Setup 4 * Marvell Orion-2 Development Board Setup
5 * 5 *
6 * Maintainer: Tzachi Perelstein <tzachi@marvell.com> 6 * Maintainer: Tzachi Perelstein <tzachi@marvell.com>
7 * 7 *
8 * This file is licensed under the terms of the GNU General Public 8 * This file is licensed under the terms of the GNU General Public
9 * License version 2. This program is licensed "as is" without any 9 * License version 2. This program is licensed "as is" without any
10 * warranty of any kind, whether express or implied. 10 * warranty of any kind, whether express or implied.
11 */ 11 */
12 12
@@ -24,8 +24,8 @@
24#include <asm/gpio.h> 24#include <asm/gpio.h>
25#include <asm/mach/arch.h> 25#include <asm/mach/arch.h>
26#include <asm/mach/pci.h> 26#include <asm/mach/pci.h>
27#include <asm/arch/orion.h> 27#include <asm/arch/orion5x.h>
28#include <asm/arch/platform.h> 28#include <asm/plat-orion/orion_nand.h>
29#include "common.h" 29#include "common.h"
30 30
31/***************************************************************************** 31/*****************************************************************************
@@ -244,8 +244,8 @@ static int __init db88f5281_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
244 /* 244 /*
245 * PCIE IRQ is connected internally (not GPIO) 245 * PCIE IRQ is connected internally (not GPIO)
246 */ 246 */
247 if (dev->bus->number == orion_pcie_local_bus_nr()) 247 if (dev->bus->number == orion5x_pcie_local_bus_nr())
248 return IRQ_ORION_PCIE0_INT; 248 return IRQ_ORION5X_PCIE0_INT;
249 249
250 /* 250 /*
251 * PCI IRQs are connected via GPIOs 251 * PCI IRQs are connected via GPIOs
@@ -265,8 +265,8 @@ static struct hw_pci db88f5281_pci __initdata = {
265 .nr_controllers = 2, 265 .nr_controllers = 2,
266 .preinit = db88f5281_pci_preinit, 266 .preinit = db88f5281_pci_preinit,
267 .swizzle = pci_std_swizzle, 267 .swizzle = pci_std_swizzle,
268 .setup = orion_pci_sys_setup, 268 .setup = orion5x_pci_sys_setup,
269 .scan = orion_pci_sys_scan_bus, 269 .scan = orion5x_pci_sys_scan_bus,
270 .map_irq = db88f5281_pci_map_irq, 270 .map_irq = db88f5281_pci_map_irq,
271}; 271};
272 272
@@ -312,19 +312,16 @@ static void __init db88f5281_init(void)
312 /* 312 /*
313 * Basic Orion setup. Need to be called early. 313 * Basic Orion setup. Need to be called early.
314 */ 314 */
315 orion_init(); 315 orion5x_init();
316 316
317 /* 317 /*
318 * Setup the CPU address decode windows for our on-board devices 318 * Setup the CPU address decode windows for our on-board devices
319 */ 319 */
320 orion_setup_cpu_win(ORION_DEV_BOOT, DB88F5281_NOR_BOOT_BASE, 320 orion5x_setup_dev_boot_win(DB88F5281_NOR_BOOT_BASE,
321 DB88F5281_NOR_BOOT_SIZE, -1); 321 DB88F5281_NOR_BOOT_SIZE);
322 orion_setup_cpu_win(ORION_DEV0, DB88F5281_7SEG_BASE, 322 orion5x_setup_dev0_win(DB88F5281_7SEG_BASE, DB88F5281_7SEG_SIZE);
323 DB88F5281_7SEG_SIZE, -1); 323 orion5x_setup_dev1_win(DB88F5281_NOR_BASE, DB88F5281_NOR_SIZE);
324 orion_setup_cpu_win(ORION_DEV1, DB88F5281_NOR_BASE, 324 orion5x_setup_dev2_win(DB88F5281_NAND_BASE, DB88F5281_NAND_SIZE);
325 DB88F5281_NOR_SIZE, -1);
326 orion_setup_cpu_win(ORION_DEV2, DB88F5281_NAND_BASE,
327 DB88F5281_NAND_SIZE, -1);
328 325
329 /* 326 /*
330 * Setup Multiplexing Pins: 327 * Setup Multiplexing Pins:
@@ -340,25 +337,25 @@ static void __init db88f5281_init(void)
340 * MPP18: UART1_CTS MPP19: UART1_RTS 337 * MPP18: UART1_CTS MPP19: UART1_RTS
341 * MPP-DEV: DEV_D[16:31] 338 * MPP-DEV: DEV_D[16:31]
342 */ 339 */
343 orion_write(MPP_0_7_CTRL, 0x00222203); 340 orion5x_write(MPP_0_7_CTRL, 0x00222203);
344 orion_write(MPP_8_15_CTRL, 0x44000000); 341 orion5x_write(MPP_8_15_CTRL, 0x44000000);
345 orion_write(MPP_16_19_CTRL, 0); 342 orion5x_write(MPP_16_19_CTRL, 0);
346 orion_write(MPP_DEV_CTRL, 0); 343 orion5x_write(MPP_DEV_CTRL, 0);
347 344
348 orion_gpio_set_valid_pins(0x00003fc3); 345 orion5x_gpio_set_valid_pins(0x00003fc3);
349 346
350 platform_add_devices(db88f5281_devs, ARRAY_SIZE(db88f5281_devs)); 347 platform_add_devices(db88f5281_devs, ARRAY_SIZE(db88f5281_devs));
351 i2c_register_board_info(0, &db88f5281_i2c_rtc, 1); 348 i2c_register_board_info(0, &db88f5281_i2c_rtc, 1);
352 orion_eth_init(&db88f5281_eth_data); 349 orion5x_eth_init(&db88f5281_eth_data);
353} 350}
354 351
355MACHINE_START(DB88F5281, "Marvell Orion-2 Development Board") 352MACHINE_START(DB88F5281, "Marvell Orion-2 Development Board")
356 /* Maintainer: Tzachi Perelstein <tzachi@marvell.com> */ 353 /* Maintainer: Tzachi Perelstein <tzachi@marvell.com> */
357 .phys_io = ORION_REGS_PHYS_BASE, 354 .phys_io = ORION5X_REGS_PHYS_BASE,
358 .io_pg_offst = ((ORION_REGS_VIRT_BASE) >> 18) & 0xfffc, 355 .io_pg_offst = ((ORION5X_REGS_VIRT_BASE) >> 18) & 0xfffc,
359 .boot_params = 0x00000100, 356 .boot_params = 0x00000100,
360 .init_machine = db88f5281_init, 357 .init_machine = db88f5281_init,
361 .map_io = orion_map_io, 358 .map_io = orion5x_map_io,
362 .init_irq = orion_init_irq, 359 .init_irq = orion5x_init_irq,
363 .timer = &orion_timer, 360 .timer = &orion5x_timer,
364MACHINE_END 361MACHINE_END
diff --git a/arch/arm/mach-orion/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c
index 076e155ad510..d67790ef236e 100644
--- a/arch/arm/mach-orion/dns323-setup.c
+++ b/arch/arm/mach-orion5x/dns323-setup.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * arch/arm/mach-orion/dns323-setup.c 2 * arch/arm/mach-orion5x/dns323-setup.c
3 * 3 *
4 * Copyright (C) 2007 Herbert Valerio Riedel <hvr@gnu.org> 4 * Copyright (C) 2007 Herbert Valerio Riedel <hvr@gnu.org>
5 * 5 *
@@ -25,8 +25,7 @@
25#include <asm/gpio.h> 25#include <asm/gpio.h>
26#include <asm/mach/arch.h> 26#include <asm/mach/arch.h>
27#include <asm/mach/pci.h> 27#include <asm/mach/pci.h>
28#include <asm/arch/orion.h> 28#include <asm/arch/orion5x.h>
29#include <asm/arch/platform.h>
30#include "common.h" 29#include "common.h"
31 30
32#define DNS323_GPIO_LED_RIGHT_AMBER 1 31#define DNS323_GPIO_LED_RIGHT_AMBER 1
@@ -45,8 +44,8 @@
45static int __init dns323_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) 44static int __init dns323_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
46{ 45{
47 /* PCI-E */ 46 /* PCI-E */
48 if (dev->bus->number == orion_pcie_local_bus_nr()) 47 if (dev->bus->number == orion5x_pcie_local_bus_nr())
49 return IRQ_ORION_PCIE0_INT; 48 return IRQ_ORION5X_PCIE0_INT;
50 49
51 pr_err("%s: requested mapping for unknown bus\n", __func__); 50 pr_err("%s: requested mapping for unknown bus\n", __func__);
52 51
@@ -56,8 +55,8 @@ static int __init dns323_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
56static struct hw_pci dns323_pci __initdata = { 55static struct hw_pci dns323_pci __initdata = {
57 .nr_controllers = 1, 56 .nr_controllers = 1,
58 .swizzle = pci_std_swizzle, 57 .swizzle = pci_std_swizzle,
59 .setup = orion_pci_sys_setup, 58 .setup = orion5x_pci_sys_setup,
60 .scan = orion_pci_sys_scan_bus, 59 .scan = orion5x_pci_sys_scan_bus,
61 .map_irq = dns323_pci_map_irq, 60 .map_irq = dns323_pci_map_irq,
62}; 61};
63 62
@@ -247,27 +246,25 @@ static void dns323_power_off(void)
247static void __init dns323_init(void) 246static void __init dns323_init(void)
248{ 247{
249 /* Setup basic Orion functions. Need to be called early. */ 248 /* Setup basic Orion functions. Need to be called early. */
250 orion_init(); 249 orion5x_init();
251 250
252 /* setup flash mapping 251 /* setup flash mapping
253 * CS3 holds a 8 MB Spansion S29GL064M90TFIR4 252 * CS3 holds a 8 MB Spansion S29GL064M90TFIR4
254 */ 253 */
255 orion_setup_cpu_win(ORION_DEV_BOOT, DNS323_NOR_BOOT_BASE, 254 orion5x_setup_dev_boot_win(DNS323_NOR_BOOT_BASE, DNS323_NOR_BOOT_SIZE);
256 DNS323_NOR_BOOT_SIZE, -1);
257 255
258 /* DNS-323 has a Marvell 88X7042 SATA controller attached via PCIE 256 /* DNS-323 has a Marvell 88X7042 SATA controller attached via PCIE
259 * 257 *
260 * Open a special address decode windows for the PCIE WA. 258 * Open a special address decode windows for the PCIE WA.
261 */ 259 */
262 orion_write(ORION_REGS_VIRT_BASE | 0x20074, ORION_PCIE_WA_PHYS_BASE); 260 orion5x_setup_pcie_wa_win(ORION5X_PCIE_WA_PHYS_BASE,
263 orion_write(ORION_REGS_VIRT_BASE | 0x20070, 261 ORION5X_PCIE_WA_SIZE);
264 (0x7941 | (((ORION_PCIE_WA_SIZE >> 16) - 1)) << 16));
265 262
266 /* set MPP to 0 as D-Link's 2.6.12.6 kernel did */ 263 /* set MPP to 0 as D-Link's 2.6.12.6 kernel did */
267 orion_write(MPP_0_7_CTRL, 0); 264 orion5x_write(MPP_0_7_CTRL, 0);
268 orion_write(MPP_8_15_CTRL, 0); 265 orion5x_write(MPP_8_15_CTRL, 0);
269 orion_write(MPP_16_19_CTRL, 0); 266 orion5x_write(MPP_16_19_CTRL, 0);
270 orion_write(MPP_DEV_CTRL, 0); 267 orion5x_write(MPP_DEV_CTRL, 0);
271 268
272 /* Define used GPIO pins 269 /* Define used GPIO pins
273 270
@@ -290,7 +287,7 @@ static void __init dns323_init(void)
290 | 14 | Out | //unknown// 287 | 14 | Out | //unknown//
291 | 15 | Out | //unknown// 288 | 15 | Out | //unknown//
292 */ 289 */
293 orion_gpio_set_valid_pins(0x07f6); 290 orion5x_gpio_set_valid_pins(0x07f6);
294 291
295 /* register dns323 specific power-off method */ 292 /* register dns323 specific power-off method */
296 if ((gpio_request(DNS323_GPIO_POWER_OFF, "POWEROFF") != 0) 293 if ((gpio_request(DNS323_GPIO_POWER_OFF, "POWEROFF") != 0)
@@ -306,18 +303,18 @@ static void __init dns323_init(void)
306 i2c_register_board_info(0, dns323_i2c_devices, 303 i2c_register_board_info(0, dns323_i2c_devices,
307 ARRAY_SIZE(dns323_i2c_devices)); 304 ARRAY_SIZE(dns323_i2c_devices));
308 305
309 orion_eth_init(&dns323_eth_data); 306 orion5x_eth_init(&dns323_eth_data);
310} 307}
311 308
312/* Warning: D-Link uses a wrong mach-type (=526) in their bootloader */ 309/* Warning: D-Link uses a wrong mach-type (=526) in their bootloader */
313MACHINE_START(DNS323, "D-Link DNS-323") 310MACHINE_START(DNS323, "D-Link DNS-323")
314 /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */ 311 /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */
315 .phys_io = ORION_REGS_PHYS_BASE, 312 .phys_io = ORION5X_REGS_PHYS_BASE,
316 .io_pg_offst = ((ORION_REGS_VIRT_BASE) >> 18) & 0xFFFC, 313 .io_pg_offst = ((ORION5X_REGS_VIRT_BASE) >> 18) & 0xFFFC,
317 .boot_params = 0x00000100, 314 .boot_params = 0x00000100,
318 .init_machine = dns323_init, 315 .init_machine = dns323_init,
319 .map_io = orion_map_io, 316 .map_io = orion5x_map_io,
320 .init_irq = orion_init_irq, 317 .init_irq = orion5x_init_irq,
321 .timer = &orion_timer, 318 .timer = &orion5x_timer,
322 .fixup = tag_fixup_mem32, 319 .fixup = tag_fixup_mem32,
323MACHINE_END 320MACHINE_END
diff --git a/arch/arm/mach-orion/gpio.c b/arch/arm/mach-orion5x/gpio.c
index f713818c66a3..8108c316c426 100644
--- a/arch/arm/mach-orion/gpio.c
+++ b/arch/arm/mach-orion5x/gpio.c
@@ -1,12 +1,12 @@
1/* 1/*
2 * arch/arm/mach-orion/gpio.c 2 * arch/arm/mach-orion5x/gpio.c
3 * 3 *
4 * GPIO functions for Marvell Orion System On Chip 4 * GPIO functions for Marvell Orion System On Chip
5 * 5 *
6 * Maintainer: Tzachi Perelstein <tzachi@marvell.com> 6 * Maintainer: Tzachi Perelstein <tzachi@marvell.com>
7 * 7 *
8 * This file is licensed under the terms of the GNU General Public 8 * This file is licensed under the terms of the GNU General Public
9 * License version 2. This program is licensed "as is" without any 9 * License version 2. This program is licensed "as is" without any
10 * warranty of any kind, whether express or implied. 10 * warranty of any kind, whether express or implied.
11 */ 11 */
12 12
@@ -16,14 +16,15 @@
16#include <linux/spinlock.h> 16#include <linux/spinlock.h>
17#include <linux/bitops.h> 17#include <linux/bitops.h>
18#include <asm/gpio.h> 18#include <asm/gpio.h>
19#include <asm/arch/orion.h> 19#include <asm/io.h>
20#include <asm/arch/orion5x.h>
20#include "common.h" 21#include "common.h"
21 22
22static DEFINE_SPINLOCK(gpio_lock); 23static DEFINE_SPINLOCK(gpio_lock);
23static unsigned long gpio_valid[BITS_TO_LONGS(GPIO_MAX)]; 24static unsigned long gpio_valid[BITS_TO_LONGS(GPIO_MAX)];
24static const char *gpio_label[GPIO_MAX]; /* non null for allocated GPIOs */ 25static const char *gpio_label[GPIO_MAX]; /* non null for allocated GPIOs */
25 26
26void __init orion_gpio_set_valid_pins(u32 pins) 27void __init orion5x_gpio_set_valid_pins(u32 pins)
27{ 28{
28 gpio_valid[0] = pins; 29 gpio_valid[0] = pins;
29} 30}
@@ -49,7 +50,7 @@ int gpio_direction_input(unsigned pin)
49 if (!gpio_label[pin]) 50 if (!gpio_label[pin])
50 gpio_label[pin] = "?"; 51 gpio_label[pin] = "?";
51 52
52 orion_setbits(GPIO_IO_CONF, 1 << pin); 53 orion5x_setbits(GPIO_IO_CONF, 1 << pin);
53 54
54 spin_unlock_irqrestore(&gpio_lock, flags); 55 spin_unlock_irqrestore(&gpio_lock, flags);
55 return 0; 56 return 0;
@@ -76,12 +77,12 @@ int gpio_direction_output(unsigned pin, int value)
76 gpio_label[pin] = "?"; 77 gpio_label[pin] = "?";
77 78
78 mask = 1 << pin; 79 mask = 1 << pin;
79 orion_clrbits(GPIO_BLINK_EN, mask); 80 orion5x_clrbits(GPIO_BLINK_EN, mask);
80 if (value) 81 if (value)
81 orion_setbits(GPIO_OUT, mask); 82 orion5x_setbits(GPIO_OUT, mask);
82 else 83 else
83 orion_clrbits(GPIO_OUT, mask); 84 orion5x_clrbits(GPIO_OUT, mask);
84 orion_clrbits(GPIO_IO_CONF, mask); 85 orion5x_clrbits(GPIO_IO_CONF, mask);
85 86
86 spin_unlock_irqrestore(&gpio_lock, flags); 87 spin_unlock_irqrestore(&gpio_lock, flags);
87 return 0; 88 return 0;
@@ -92,10 +93,10 @@ int gpio_get_value(unsigned pin)
92{ 93{
93 int val, mask = 1 << pin; 94 int val, mask = 1 << pin;
94 95
95 if (orion_read(GPIO_IO_CONF) & mask) 96 if (orion5x_read(GPIO_IO_CONF) & mask)
96 val = orion_read(GPIO_DATA_IN) ^ orion_read(GPIO_IN_POL); 97 val = orion5x_read(GPIO_DATA_IN) ^ orion5x_read(GPIO_IN_POL);
97 else 98 else
98 val = orion_read(GPIO_OUT); 99 val = orion5x_read(GPIO_OUT);
99 100
100 return val & mask; 101 return val & mask;
101} 102}
@@ -108,32 +109,32 @@ void gpio_set_value(unsigned pin, int value)
108 109
109 spin_lock_irqsave(&gpio_lock, flags); 110 spin_lock_irqsave(&gpio_lock, flags);
110 111
111 orion_clrbits(GPIO_BLINK_EN, mask); 112 orion5x_clrbits(GPIO_BLINK_EN, mask);
112 if (value) 113 if (value)
113 orion_setbits(GPIO_OUT, mask); 114 orion5x_setbits(GPIO_OUT, mask);
114 else 115 else
115 orion_clrbits(GPIO_OUT, mask); 116 orion5x_clrbits(GPIO_OUT, mask);
116 117
117 spin_unlock_irqrestore(&gpio_lock, flags); 118 spin_unlock_irqrestore(&gpio_lock, flags);
118} 119}
119EXPORT_SYMBOL(gpio_set_value); 120EXPORT_SYMBOL(gpio_set_value);
120 121
121void orion_gpio_set_blink(unsigned pin, int blink) 122void orion5x_gpio_set_blink(unsigned pin, int blink)
122{ 123{
123 unsigned long flags; 124 unsigned long flags;
124 int mask = 1 << pin; 125 int mask = 1 << pin;
125 126
126 spin_lock_irqsave(&gpio_lock, flags); 127 spin_lock_irqsave(&gpio_lock, flags);
127 128
128 orion_clrbits(GPIO_OUT, mask); 129 orion5x_clrbits(GPIO_OUT, mask);
129 if (blink) 130 if (blink)
130 orion_setbits(GPIO_BLINK_EN, mask); 131 orion5x_setbits(GPIO_BLINK_EN, mask);
131 else 132 else
132 orion_clrbits(GPIO_BLINK_EN, mask); 133 orion5x_clrbits(GPIO_BLINK_EN, mask);
133 134
134 spin_unlock_irqrestore(&gpio_lock, flags); 135 spin_unlock_irqrestore(&gpio_lock, flags);
135} 136}
136EXPORT_SYMBOL(orion_gpio_set_blink); 137EXPORT_SYMBOL(orion5x_gpio_set_blink);
137 138
138int gpio_request(unsigned pin, const char *label) 139int gpio_request(unsigned pin, const char *label)
139{ 140{
@@ -187,39 +188,39 @@ void gpio_display(void)
187 printk("GPIO, free\n"); 188 printk("GPIO, free\n");
188 } else { 189 } else {
189 printk("GPIO, used by %s, ", gpio_label[i]); 190 printk("GPIO, used by %s, ", gpio_label[i]);
190 if (orion_read(GPIO_IO_CONF) & (1 << i)) { 191 if (orion5x_read(GPIO_IO_CONF) & (1 << i)) {
191 printk("input, active %s, level %s, edge %s\n", 192 printk("input, active %s, level %s, edge %s\n",
192 ((orion_read(GPIO_IN_POL) >> i) & 1) ? "low" : "high", 193 ((orion5x_read(GPIO_IN_POL) >> i) & 1) ? "low" : "high",
193 ((orion_read(GPIO_LEVEL_MASK) >> i) & 1) ? "enabled" : "masked", 194 ((orion5x_read(GPIO_LEVEL_MASK) >> i) & 1) ? "enabled" : "masked",
194 ((orion_read(GPIO_EDGE_MASK) >> i) & 1) ? "enabled" : "masked"); 195 ((orion5x_read(GPIO_EDGE_MASK) >> i) & 1) ? "enabled" : "masked");
195 } else { 196 } else {
196 printk("output, val=%d\n", (orion_read(GPIO_OUT) >> i) & 1); 197 printk("output, val=%d\n", (orion5x_read(GPIO_OUT) >> i) & 1);
197 } 198 }
198 } 199 }
199 } 200 }
200 201
201 printk(KERN_DEBUG "MPP_0_7_CTRL (0x%08x) = 0x%08x\n", 202 printk(KERN_DEBUG "MPP_0_7_CTRL (0x%08x) = 0x%08x\n",
202 MPP_0_7_CTRL, orion_read(MPP_0_7_CTRL)); 203 MPP_0_7_CTRL, orion5x_read(MPP_0_7_CTRL));
203 printk(KERN_DEBUG "MPP_8_15_CTRL (0x%08x) = 0x%08x\n", 204 printk(KERN_DEBUG "MPP_8_15_CTRL (0x%08x) = 0x%08x\n",
204 MPP_8_15_CTRL, orion_read(MPP_8_15_CTRL)); 205 MPP_8_15_CTRL, orion5x_read(MPP_8_15_CTRL));
205 printk(KERN_DEBUG "MPP_16_19_CTRL (0x%08x) = 0x%08x\n", 206 printk(KERN_DEBUG "MPP_16_19_CTRL (0x%08x) = 0x%08x\n",
206 MPP_16_19_CTRL, orion_read(MPP_16_19_CTRL)); 207 MPP_16_19_CTRL, orion5x_read(MPP_16_19_CTRL));
207 printk(KERN_DEBUG "MPP_DEV_CTRL (0x%08x) = 0x%08x\n", 208 printk(KERN_DEBUG "MPP_DEV_CTRL (0x%08x) = 0x%08x\n",
208 MPP_DEV_CTRL, orion_read(MPP_DEV_CTRL)); 209 MPP_DEV_CTRL, orion5x_read(MPP_DEV_CTRL));
209 printk(KERN_DEBUG "GPIO_OUT (0x%08x) = 0x%08x\n", 210 printk(KERN_DEBUG "GPIO_OUT (0x%08x) = 0x%08x\n",
210 GPIO_OUT, orion_read(GPIO_OUT)); 211 GPIO_OUT, orion5x_read(GPIO_OUT));
211 printk(KERN_DEBUG "GPIO_IO_CONF (0x%08x) = 0x%08x\n", 212 printk(KERN_DEBUG "GPIO_IO_CONF (0x%08x) = 0x%08x\n",
212 GPIO_IO_CONF, orion_read(GPIO_IO_CONF)); 213 GPIO_IO_CONF, orion5x_read(GPIO_IO_CONF));
213 printk(KERN_DEBUG "GPIO_BLINK_EN (0x%08x) = 0x%08x\n", 214 printk(KERN_DEBUG "GPIO_BLINK_EN (0x%08x) = 0x%08x\n",
214 GPIO_BLINK_EN, orion_read(GPIO_BLINK_EN)); 215 GPIO_BLINK_EN, orion5x_read(GPIO_BLINK_EN));
215 printk(KERN_DEBUG "GPIO_IN_POL (0x%08x) = 0x%08x\n", 216 printk(KERN_DEBUG "GPIO_IN_POL (0x%08x) = 0x%08x\n",
216 GPIO_IN_POL, orion_read(GPIO_IN_POL)); 217 GPIO_IN_POL, orion5x_read(GPIO_IN_POL));
217 printk(KERN_DEBUG "GPIO_DATA_IN (0x%08x) = 0x%08x\n", 218 printk(KERN_DEBUG "GPIO_DATA_IN (0x%08x) = 0x%08x\n",
218 GPIO_DATA_IN, orion_read(GPIO_DATA_IN)); 219 GPIO_DATA_IN, orion5x_read(GPIO_DATA_IN));
219 printk(KERN_DEBUG "GPIO_LEVEL_MASK (0x%08x) = 0x%08x\n", 220 printk(KERN_DEBUG "GPIO_LEVEL_MASK (0x%08x) = 0x%08x\n",
220 GPIO_LEVEL_MASK, orion_read(GPIO_LEVEL_MASK)); 221 GPIO_LEVEL_MASK, orion5x_read(GPIO_LEVEL_MASK));
221 printk(KERN_DEBUG "GPIO_EDGE_CAUSE (0x%08x) = 0x%08x\n", 222 printk(KERN_DEBUG "GPIO_EDGE_CAUSE (0x%08x) = 0x%08x\n",
222 GPIO_EDGE_CAUSE, orion_read(GPIO_EDGE_CAUSE)); 223 GPIO_EDGE_CAUSE, orion5x_read(GPIO_EDGE_CAUSE));
223 printk(KERN_DEBUG "GPIO_EDGE_MASK (0x%08x) = 0x%08x\n", 224 printk(KERN_DEBUG "GPIO_EDGE_MASK (0x%08x) = 0x%08x\n",
224 GPIO_EDGE_MASK, orion_read(GPIO_EDGE_MASK)); 225 GPIO_EDGE_MASK, orion5x_read(GPIO_EDGE_MASK));
225} 226}
diff --git a/arch/arm/mach-orion/irq.c b/arch/arm/mach-orion5x/irq.c
index df7e12ad378b..dd21f38c5d37 100644
--- a/arch/arm/mach-orion/irq.c
+++ b/arch/arm/mach-orion5x/irq.c
@@ -1,12 +1,12 @@
1/* 1/*
2 * arch/arm/mach-orion/irq.c 2 * arch/arm/mach-orion5x/irq.c
3 * 3 *
4 * Core IRQ functions for Marvell Orion System On Chip 4 * Core IRQ functions for Marvell Orion System On Chip
5 * 5 *
6 * Maintainer: Tzachi Perelstein <tzachi@marvell.com> 6 * Maintainer: Tzachi Perelstein <tzachi@marvell.com>
7 * 7 *
8 * This file is licensed under the terms of the GNU General Public 8 * This file is licensed under the terms of the GNU General Public
9 * License version 2. This program is licensed "as is" without any 9 * License version 2. This program is licensed "as is" without any
10 * warranty of any kind, whether express or implied. 10 * warranty of any kind, whether express or implied.
11 */ 11 */
12 12
@@ -14,7 +14,9 @@
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/irq.h> 15#include <linux/irq.h>
16#include <asm/gpio.h> 16#include <asm/gpio.h>
17#include <asm/arch/orion.h> 17#include <asm/io.h>
18#include <asm/arch/orion5x.h>
19#include <asm/plat-orion/irq.h>
18#include "common.h" 20#include "common.h"
19 21
20/***************************************************************************** 22/*****************************************************************************
@@ -42,46 +44,46 @@
42 * polarity LEVEL mask 44 * polarity LEVEL mask
43 * 45 *
44 ****************************************************************************/ 46 ****************************************************************************/
45static void orion_gpio_irq_ack(u32 irq) 47static void orion5x_gpio_irq_ack(u32 irq)
46{ 48{
47 int pin = irq_to_gpio(irq); 49 int pin = irq_to_gpio(irq);
48 if (irq_desc[irq].status & IRQ_LEVEL) 50 if (irq_desc[irq].status & IRQ_LEVEL)
49 /* 51 /*
50 * Mask bit for level interrupt 52 * Mask bit for level interrupt
51 */ 53 */
52 orion_clrbits(GPIO_LEVEL_MASK, 1 << pin); 54 orion5x_clrbits(GPIO_LEVEL_MASK, 1 << pin);
53 else 55 else
54 /* 56 /*
55 * Clear casue bit for egde interrupt 57 * Clear casue bit for egde interrupt
56 */ 58 */
57 orion_clrbits(GPIO_EDGE_CAUSE, 1 << pin); 59 orion5x_clrbits(GPIO_EDGE_CAUSE, 1 << pin);
58} 60}
59 61
60static void orion_gpio_irq_mask(u32 irq) 62static void orion5x_gpio_irq_mask(u32 irq)
61{ 63{
62 int pin = irq_to_gpio(irq); 64 int pin = irq_to_gpio(irq);
63 if (irq_desc[irq].status & IRQ_LEVEL) 65 if (irq_desc[irq].status & IRQ_LEVEL)
64 orion_clrbits(GPIO_LEVEL_MASK, 1 << pin); 66 orion5x_clrbits(GPIO_LEVEL_MASK, 1 << pin);
65 else 67 else
66 orion_clrbits(GPIO_EDGE_MASK, 1 << pin); 68 orion5x_clrbits(GPIO_EDGE_MASK, 1 << pin);
67} 69}
68 70
69static void orion_gpio_irq_unmask(u32 irq) 71static void orion5x_gpio_irq_unmask(u32 irq)
70{ 72{
71 int pin = irq_to_gpio(irq); 73 int pin = irq_to_gpio(irq);
72 if (irq_desc[irq].status & IRQ_LEVEL) 74 if (irq_desc[irq].status & IRQ_LEVEL)
73 orion_setbits(GPIO_LEVEL_MASK, 1 << pin); 75 orion5x_setbits(GPIO_LEVEL_MASK, 1 << pin);
74 else 76 else
75 orion_setbits(GPIO_EDGE_MASK, 1 << pin); 77 orion5x_setbits(GPIO_EDGE_MASK, 1 << pin);
76} 78}
77 79
78static int orion_gpio_set_irq_type(u32 irq, u32 type) 80static int orion5x_gpio_set_irq_type(u32 irq, u32 type)
79{ 81{
80 int pin = irq_to_gpio(irq); 82 int pin = irq_to_gpio(irq);
81 struct irq_desc *desc; 83 struct irq_desc *desc;
82 84
83 if ((orion_read(GPIO_IO_CONF) & (1 << pin)) == 0) { 85 if ((orion5x_read(GPIO_IO_CONF) & (1 << pin)) == 0) {
84 printk(KERN_ERR "orion_gpio_set_irq_type failed " 86 printk(KERN_ERR "orion5x_gpio_set_irq_type failed "
85 "(irq %d, pin %d).\n", irq, pin); 87 "(irq %d, pin %d).\n", irq, pin);
86 return -EINVAL; 88 return -EINVAL;
87 } 89 }
@@ -92,22 +94,22 @@ static int orion_gpio_set_irq_type(u32 irq, u32 type)
92 case IRQT_HIGH: 94 case IRQT_HIGH:
93 desc->handle_irq = handle_level_irq; 95 desc->handle_irq = handle_level_irq;
94 desc->status |= IRQ_LEVEL; 96 desc->status |= IRQ_LEVEL;
95 orion_clrbits(GPIO_IN_POL, (1 << pin)); 97 orion5x_clrbits(GPIO_IN_POL, (1 << pin));
96 break; 98 break;
97 case IRQT_LOW: 99 case IRQT_LOW:
98 desc->handle_irq = handle_level_irq; 100 desc->handle_irq = handle_level_irq;
99 desc->status |= IRQ_LEVEL; 101 desc->status |= IRQ_LEVEL;
100 orion_setbits(GPIO_IN_POL, (1 << pin)); 102 orion5x_setbits(GPIO_IN_POL, (1 << pin));
101 break; 103 break;
102 case IRQT_RISING: 104 case IRQT_RISING:
103 desc->handle_irq = handle_edge_irq; 105 desc->handle_irq = handle_edge_irq;
104 desc->status &= ~IRQ_LEVEL; 106 desc->status &= ~IRQ_LEVEL;
105 orion_clrbits(GPIO_IN_POL, (1 << pin)); 107 orion5x_clrbits(GPIO_IN_POL, (1 << pin));
106 break; 108 break;
107 case IRQT_FALLING: 109 case IRQT_FALLING:
108 desc->handle_irq = handle_edge_irq; 110 desc->handle_irq = handle_edge_irq;
109 desc->status &= ~IRQ_LEVEL; 111 desc->status &= ~IRQ_LEVEL;
110 orion_setbits(GPIO_IN_POL, (1 << pin)); 112 orion5x_setbits(GPIO_IN_POL, (1 << pin));
111 break; 113 break;
112 case IRQT_BOTHEDGE: 114 case IRQT_BOTHEDGE:
113 desc->handle_irq = handle_edge_irq; 115 desc->handle_irq = handle_edge_irq;
@@ -115,11 +117,11 @@ static int orion_gpio_set_irq_type(u32 irq, u32 type)
115 /* 117 /*
116 * set initial polarity based on current input level 118 * set initial polarity based on current input level
117 */ 119 */
118 if ((orion_read(GPIO_IN_POL) ^ orion_read(GPIO_DATA_IN)) 120 if ((orion5x_read(GPIO_IN_POL) ^ orion5x_read(GPIO_DATA_IN))
119 & (1 << pin)) 121 & (1 << pin))
120 orion_setbits(GPIO_IN_POL, (1 << pin)); /* falling */ 122 orion5x_setbits(GPIO_IN_POL, (1 << pin)); /* falling */
121 else 123 else
122 orion_clrbits(GPIO_IN_POL, (1 << pin)); /* rising */ 124 orion5x_clrbits(GPIO_IN_POL, (1 << pin)); /* rising */
123 125
124 break; 126 break;
125 default: 127 default:
@@ -133,22 +135,22 @@ static int orion_gpio_set_irq_type(u32 irq, u32 type)
133 return 0; 135 return 0;
134} 136}
135 137
136static struct irq_chip orion_gpio_irq_chip = { 138static struct irq_chip orion5x_gpio_irq_chip = {
137 .name = "Orion-IRQ-GPIO", 139 .name = "Orion-IRQ-GPIO",
138 .ack = orion_gpio_irq_ack, 140 .ack = orion5x_gpio_irq_ack,
139 .mask = orion_gpio_irq_mask, 141 .mask = orion5x_gpio_irq_mask,
140 .unmask = orion_gpio_irq_unmask, 142 .unmask = orion5x_gpio_irq_unmask,
141 .set_type = orion_gpio_set_irq_type, 143 .set_type = orion5x_gpio_set_irq_type,
142}; 144};
143 145
144static void orion_gpio_irq_handler(unsigned int irq, struct irq_desc *desc) 146static void orion5x_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
145{ 147{
146 u32 cause, offs, pin; 148 u32 cause, offs, pin;
147 149
148 BUG_ON(irq < IRQ_ORION_GPIO_0_7 || irq > IRQ_ORION_GPIO_24_31); 150 BUG_ON(irq < IRQ_ORION5X_GPIO_0_7 || irq > IRQ_ORION5X_GPIO_24_31);
149 offs = (irq - IRQ_ORION_GPIO_0_7) * 8; 151 offs = (irq - IRQ_ORION5X_GPIO_0_7) * 8;
150 cause = (orion_read(GPIO_DATA_IN) & orion_read(GPIO_LEVEL_MASK)) | 152 cause = (orion5x_read(GPIO_DATA_IN) & orion5x_read(GPIO_LEVEL_MASK)) |
151 (orion_read(GPIO_EDGE_CAUSE) & orion_read(GPIO_EDGE_MASK)); 153 (orion5x_read(GPIO_EDGE_CAUSE) & orion5x_read(GPIO_EDGE_MASK));
152 154
153 for (pin = offs; pin < offs + 8; pin++) { 155 for (pin = offs; pin < offs + 8; pin++) {
154 if (cause & (1 << pin)) { 156 if (cause & (1 << pin)) {
@@ -156,16 +158,16 @@ static void orion_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
156 desc = irq_desc + irq; 158 desc = irq_desc + irq;
157 if ((desc->status & IRQ_TYPE_SENSE_MASK) == IRQT_BOTHEDGE) { 159 if ((desc->status & IRQ_TYPE_SENSE_MASK) == IRQT_BOTHEDGE) {
158 /* Swap polarity (race with GPIO line) */ 160 /* Swap polarity (race with GPIO line) */
159 u32 polarity = orion_read(GPIO_IN_POL); 161 u32 polarity = orion5x_read(GPIO_IN_POL);
160 polarity ^= 1 << pin; 162 polarity ^= 1 << pin;
161 orion_write(GPIO_IN_POL, polarity); 163 orion5x_write(GPIO_IN_POL, polarity);
162 } 164 }
163 desc_handle_irq(irq, desc); 165 desc_handle_irq(irq, desc);
164 } 166 }
165 } 167 }
166} 168}
167 169
168static void __init orion_init_gpio_irq(void) 170static void __init orion5x_init_gpio_irq(void)
169{ 171{
170 int i; 172 int i;
171 struct irq_desc *desc; 173 struct irq_desc *desc;
@@ -173,69 +175,37 @@ static void __init orion_init_gpio_irq(void)
173 /* 175 /*
174 * Mask and clear GPIO IRQ interrupts 176 * Mask and clear GPIO IRQ interrupts
175 */ 177 */
176 orion_write(GPIO_LEVEL_MASK, 0x0); 178 orion5x_write(GPIO_LEVEL_MASK, 0x0);
177 orion_write(GPIO_EDGE_MASK, 0x0); 179 orion5x_write(GPIO_EDGE_MASK, 0x0);
178 orion_write(GPIO_EDGE_CAUSE, 0x0); 180 orion5x_write(GPIO_EDGE_CAUSE, 0x0);
179 181
180 /* 182 /*
181 * Register chained level handlers for GPIO IRQs by default. 183 * Register chained level handlers for GPIO IRQs by default.
182 * User can use set_type() if he wants to use edge types handlers. 184 * User can use set_type() if he wants to use edge types handlers.
183 */ 185 */
184 for (i = IRQ_ORION_GPIO_START; i < NR_IRQS; i++) { 186 for (i = IRQ_ORION5X_GPIO_START; i < NR_IRQS; i++) {
185 set_irq_chip(i, &orion_gpio_irq_chip); 187 set_irq_chip(i, &orion5x_gpio_irq_chip);
186 set_irq_handler(i, handle_level_irq); 188 set_irq_handler(i, handle_level_irq);
187 desc = irq_desc + i; 189 desc = irq_desc + i;
188 desc->status |= IRQ_LEVEL; 190 desc->status |= IRQ_LEVEL;
189 set_irq_flags(i, IRQF_VALID); 191 set_irq_flags(i, IRQF_VALID);
190 } 192 }
191 set_irq_chained_handler(IRQ_ORION_GPIO_0_7, orion_gpio_irq_handler); 193 set_irq_chained_handler(IRQ_ORION5X_GPIO_0_7, orion5x_gpio_irq_handler);
192 set_irq_chained_handler(IRQ_ORION_GPIO_8_15, orion_gpio_irq_handler); 194 set_irq_chained_handler(IRQ_ORION5X_GPIO_8_15, orion5x_gpio_irq_handler);
193 set_irq_chained_handler(IRQ_ORION_GPIO_16_23, orion_gpio_irq_handler); 195 set_irq_chained_handler(IRQ_ORION5X_GPIO_16_23, orion5x_gpio_irq_handler);
194 set_irq_chained_handler(IRQ_ORION_GPIO_24_31, orion_gpio_irq_handler); 196 set_irq_chained_handler(IRQ_ORION5X_GPIO_24_31, orion5x_gpio_irq_handler);
195} 197}
196 198
197/***************************************************************************** 199/*****************************************************************************
198 * Orion Main IRQ 200 * Orion Main IRQ
199 ****************************************************************************/ 201 ****************************************************************************/
200static void orion_main_irq_mask(u32 irq) 202static void __init orion5x_init_main_irq(void)
201{ 203{
202 orion_clrbits(MAIN_IRQ_MASK, 1 << irq); 204 orion_irq_init(0, (void __iomem *)MAIN_IRQ_MASK);
203} 205}
204 206
205static void orion_main_irq_unmask(u32 irq) 207void __init orion5x_init_irq(void)
206{ 208{
207 orion_setbits(MAIN_IRQ_MASK, 1 << irq); 209 orion5x_init_main_irq();
208} 210 orion5x_init_gpio_irq();
209
210static struct irq_chip orion_main_irq_chip = {
211 .name = "Orion-IRQ-Main",
212 .ack = orion_main_irq_mask,
213 .mask = orion_main_irq_mask,
214 .unmask = orion_main_irq_unmask,
215};
216
217static void __init orion_init_main_irq(void)
218{
219 int i;
220
221 /*
222 * Mask and clear Main IRQ interrupts
223 */
224 orion_write(MAIN_IRQ_MASK, 0x0);
225 orion_write(MAIN_IRQ_CAUSE, 0x0);
226
227 /*
228 * Register level handler for Main IRQs
229 */
230 for (i = 0; i < IRQ_ORION_GPIO_START; i++) {
231 set_irq_chip(i, &orion_main_irq_chip);
232 set_irq_handler(i, handle_level_irq);
233 set_irq_flags(i, IRQF_VALID);
234 }
235}
236
237void __init orion_init_irq(void)
238{
239 orion_init_main_irq();
240 orion_init_gpio_irq();
241} 211}
diff --git a/arch/arm/mach-orion/kurobox_pro-setup.c b/arch/arm/mach-orion5x/kurobox_pro-setup.c
index 785a07bdf1e2..91413455beba 100644
--- a/arch/arm/mach-orion/kurobox_pro-setup.c
+++ b/arch/arm/mach-orion5x/kurobox_pro-setup.c
@@ -1,10 +1,10 @@
1/* 1/*
2 * arch/arm/mach-orion/kurobox_pro-setup.c 2 * arch/arm/mach-orion5x/kurobox_pro-setup.c
3 * 3 *
4 * Maintainer: Ronen Shitrit <rshitrit@marvell.com> 4 * Maintainer: Ronen Shitrit <rshitrit@marvell.com>
5 * 5 *
6 * This file is licensed under the terms of the GNU General Public 6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any 7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied. 8 * warranty of any kind, whether express or implied.
9 */ 9 */
10 10
@@ -22,8 +22,8 @@
22#include <asm/gpio.h> 22#include <asm/gpio.h>
23#include <asm/mach/arch.h> 23#include <asm/mach/arch.h>
24#include <asm/mach/pci.h> 24#include <asm/mach/pci.h>
25#include <asm/arch/orion.h> 25#include <asm/arch/orion5x.h>
26#include <asm/arch/platform.h> 26#include <asm/plat-orion/orion_nand.h>
27#include "common.h" 27#include "common.h"
28 28
29/***************************************************************************** 29/*****************************************************************************
@@ -123,8 +123,8 @@ static int __init kurobox_pro_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
123 /* 123 /*
124 * PCI isn't used on the Kuro 124 * PCI isn't used on the Kuro
125 */ 125 */
126 if (dev->bus->number == orion_pcie_local_bus_nr()) 126 if (dev->bus->number == orion5x_pcie_local_bus_nr())
127 return IRQ_ORION_PCIE0_INT; 127 return IRQ_ORION5X_PCIE0_INT;
128 else 128 else
129 printk(KERN_ERR "kurobox_pro_pci_map_irq failed, unknown bus\n"); 129 printk(KERN_ERR "kurobox_pro_pci_map_irq failed, unknown bus\n");
130 130
@@ -134,8 +134,8 @@ static int __init kurobox_pro_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
134static struct hw_pci kurobox_pro_pci __initdata = { 134static struct hw_pci kurobox_pro_pci __initdata = {
135 .nr_controllers = 1, 135 .nr_controllers = 1,
136 .swizzle = pci_std_swizzle, 136 .swizzle = pci_std_swizzle,
137 .setup = orion_pci_sys_setup, 137 .setup = orion5x_pci_sys_setup,
138 .scan = orion_pci_sys_scan_bus, 138 .scan = orion5x_pci_sys_scan_bus,
139 .map_irq = kurobox_pro_pci_map_irq, 139 .map_irq = kurobox_pro_pci_map_irq,
140}; 140};
141 141
@@ -178,31 +178,25 @@ static struct mv_sata_platform_data kurobox_pro_sata_data = {
178 * General Setup 178 * General Setup
179 ****************************************************************************/ 179 ****************************************************************************/
180 180
181static struct platform_device *kurobox_pro_devices[] __initdata = {
182 &kurobox_pro_nor_flash,
183 &kurobox_pro_nand_flash,
184};
185
186static void __init kurobox_pro_init(void) 181static void __init kurobox_pro_init(void)
187{ 182{
188 /* 183 /*
189 * Setup basic Orion functions. Need to be called early. 184 * Setup basic Orion functions. Need to be called early.
190 */ 185 */
191 orion_init(); 186 orion5x_init();
192 187
193 /* 188 /*
194 * Setup the CPU address decode windows for our devices 189 * Setup the CPU address decode windows for our devices
195 */ 190 */
196 orion_setup_cpu_win(ORION_DEV_BOOT, KUROBOX_PRO_NOR_BOOT_BASE, 191 orion5x_setup_dev_boot_win(KUROBOX_PRO_NOR_BOOT_BASE,
197 KUROBOX_PRO_NOR_BOOT_SIZE, -1); 192 KUROBOX_PRO_NOR_BOOT_SIZE);
198 orion_setup_cpu_win(ORION_DEV0, KUROBOX_PRO_NAND_BASE, 193 orion5x_setup_dev0_win(KUROBOX_PRO_NAND_BASE, KUROBOX_PRO_NAND_SIZE);
199 KUROBOX_PRO_NAND_SIZE, -1); 194
200 /* 195 /*
201 * Open a special address decode windows for the PCIE WA. 196 * Open a special address decode windows for the PCIE WA.
202 */ 197 */
203 orion_write(ORION_REGS_VIRT_BASE | 0x20074, ORION_PCIE_WA_PHYS_BASE); 198 orion5x_setup_pcie_wa_win(ORION5X_PCIE_WA_PHYS_BASE,
204 orion_write(ORION_REGS_VIRT_BASE | 0x20070, (0x7941 | 199 ORION5X_PCIE_WA_SIZE);
205 (((ORION_PCIE_WA_SIZE >> 16) - 1)) << 16));
206 200
207 /* 201 /*
208 * Setup Multiplexing Pins -- 202 * Setup Multiplexing Pins --
@@ -219,26 +213,44 @@ static void __init kurobox_pro_init(void)
219 * MPP[15] SATA 1 active indication 213 * MPP[15] SATA 1 active indication
220 * MPP[16-19] Not used 214 * MPP[16-19] Not used
221 */ 215 */
222 orion_write(MPP_0_7_CTRL, 0x44220003); 216 orion5x_write(MPP_0_7_CTRL, 0x44220003);
223 orion_write(MPP_8_15_CTRL, 0x55550000); 217 orion5x_write(MPP_8_15_CTRL, 0x55550000);
224 orion_write(MPP_16_19_CTRL, 0x0); 218 orion5x_write(MPP_16_19_CTRL, 0x0);
225 219
226 orion_gpio_set_valid_pins(0x0000000c); 220 orion5x_gpio_set_valid_pins(0x0000000c);
227 221
228 platform_add_devices(kurobox_pro_devices, ARRAY_SIZE(kurobox_pro_devices)); 222 platform_device_register(&kurobox_pro_nor_flash);
223 if (machine_is_kurobox_pro())
224 platform_device_register(&kurobox_pro_nand_flash);
229 i2c_register_board_info(0, &kurobox_pro_i2c_rtc, 1); 225 i2c_register_board_info(0, &kurobox_pro_i2c_rtc, 1);
230 orion_eth_init(&kurobox_pro_eth_data); 226 orion5x_eth_init(&kurobox_pro_eth_data);
231 orion_sata_init(&kurobox_pro_sata_data); 227 orion5x_sata_init(&kurobox_pro_sata_data);
232} 228}
233 229
230#ifdef CONFIG_MACH_KUROBOX_PRO
234MACHINE_START(KUROBOX_PRO, "Buffalo/Revogear Kurobox Pro") 231MACHINE_START(KUROBOX_PRO, "Buffalo/Revogear Kurobox Pro")
235 /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ 232 /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */
236 .phys_io = ORION_REGS_PHYS_BASE, 233 .phys_io = ORION5X_REGS_PHYS_BASE,
237 .io_pg_offst = ((ORION_REGS_VIRT_BASE) >> 18) & 0xFFFC, 234 .io_pg_offst = ((ORION5X_REGS_VIRT_BASE) >> 18) & 0xFFFC,
235 .boot_params = 0x00000100,
236 .init_machine = kurobox_pro_init,
237 .map_io = orion5x_map_io,
238 .init_irq = orion5x_init_irq,
239 .timer = &orion5x_timer,
240 .fixup = tag_fixup_mem32,
241MACHINE_END
242#endif
243
244#ifdef CONFIG_MACH_LINKSTATION_PRO
245MACHINE_START(LINKSTATION_PRO, "Buffalo Linkstation Pro/Live")
246 /* Maintainer: Byron Bradley <byron.bbradley@gmail.com> */
247 .phys_io = ORION5X_REGS_PHYS_BASE,
248 .io_pg_offst = ((ORION5X_REGS_VIRT_BASE) >> 18) & 0xFFFC,
238 .boot_params = 0x00000100, 249 .boot_params = 0x00000100,
239 .init_machine = kurobox_pro_init, 250 .init_machine = kurobox_pro_init,
240 .map_io = orion_map_io, 251 .map_io = orion5x_map_io,
241 .init_irq = orion_init_irq, 252 .init_irq = orion5x_init_irq,
242 .timer = &orion_timer, 253 .timer = &orion5x_timer,
243 .fixup = tag_fixup_mem32, 254 .fixup = tag_fixup_mem32,
244MACHINE_END 255MACHINE_END
256#endif
diff --git a/arch/arm/mach-orion5x/pci.c b/arch/arm/mach-orion5x/pci.c
new file mode 100644
index 000000000000..fdf99fca85b3
--- /dev/null
+++ b/arch/arm/mach-orion5x/pci.c
@@ -0,0 +1,559 @@
1/*
2 * arch/arm/mach-orion5x/pci.c
3 *
4 * PCI and PCIe functions for Marvell Orion System On Chip
5 *
6 * Maintainer: Tzachi Perelstein <tzachi@marvell.com>
7 *
8 * This file is licensed under the terms of the GNU General Public
9 * License version 2. This program is licensed "as is" without any
10 * warranty of any kind, whether express or implied.
11 */
12
13#include <linux/kernel.h>
14#include <linux/pci.h>
15#include <linux/mbus.h>
16#include <asm/mach/pci.h>
17#include <asm/plat-orion/pcie.h>
18#include "common.h"
19
20/*****************************************************************************
21 * Orion has one PCIe controller and one PCI controller.
22 *
23 * Note1: The local PCIe bus number is '0'. The local PCI bus number
24 * follows the scanned PCIe bridged busses, if any.
25 *
26 * Note2: It is possible for PCI/PCIe agents to access many subsystem's
27 * space, by configuring BARs and Address Decode Windows, e.g. flashes on
28 * device bus, Orion registers, etc. However this code only enable the
29 * access to DDR banks.
30 ****************************************************************************/
31
32
33/*****************************************************************************
34 * PCIe controller
35 ****************************************************************************/
36#define PCIE_BASE ((void __iomem *)ORION5X_PCIE_VIRT_BASE)
37
38void __init orion5x_pcie_id(u32 *dev, u32 *rev)
39{
40 *dev = orion_pcie_dev_id(PCIE_BASE);
41 *rev = orion_pcie_rev(PCIE_BASE);
42}
43
44int __init orion5x_pcie_local_bus_nr(void)
45{
46 return orion_pcie_get_local_bus_nr(PCIE_BASE);
47}
48
49static int pcie_valid_config(int bus, int dev)
50{
51 /*
52 * Don't go out when trying to access --
53 * 1. nonexisting device on local bus
54 * 2. where there's no device connected (no link)
55 */
56 if (bus == 0 && dev == 0)
57 return 1;
58
59 if (!orion_pcie_link_up(PCIE_BASE))
60 return 0;
61
62 if (bus == 0 && dev != 1)
63 return 0;
64
65 return 1;
66}
67
68
69/*
70 * PCIe config cycles are done by programming the PCIE_CONF_ADDR register
71 * and then reading the PCIE_CONF_DATA register. Need to make sure these
72 * transactions are atomic.
73 */
74static DEFINE_SPINLOCK(orion5x_pcie_lock);
75
76static int pcie_rd_conf(struct pci_bus *bus, u32 devfn, int where,
77 int size, u32 *val)
78{
79 unsigned long flags;
80 int ret;
81
82 if (pcie_valid_config(bus->number, PCI_SLOT(devfn)) == 0) {
83 *val = 0xffffffff;
84 return PCIBIOS_DEVICE_NOT_FOUND;
85 }
86
87 spin_lock_irqsave(&orion5x_pcie_lock, flags);
88 ret = orion_pcie_rd_conf(PCIE_BASE, bus, devfn, where, size, val);
89 spin_unlock_irqrestore(&orion5x_pcie_lock, flags);
90
91 return ret;
92}
93
94static int pcie_rd_conf_wa(struct pci_bus *bus, u32 devfn,
95 int where, int size, u32 *val)
96{
97 int ret;
98
99 if (pcie_valid_config(bus->number, PCI_SLOT(devfn)) == 0) {
100 *val = 0xffffffff;
101 return PCIBIOS_DEVICE_NOT_FOUND;
102 }
103
104 /*
105 * We only support access to the non-extended configuration
106 * space when using the WA access method (or we would have to
107 * sacrifice 256M of CPU virtual address space.)
108 */
109 if (where >= 0x100) {
110 *val = 0xffffffff;
111 return PCIBIOS_DEVICE_NOT_FOUND;
112 }
113
114 ret = orion_pcie_rd_conf_wa((void __iomem *)ORION5X_PCIE_WA_VIRT_BASE,
115 bus, devfn, where, size, val);
116
117 return ret;
118}
119
120static int pcie_wr_conf(struct pci_bus *bus, u32 devfn,
121 int where, int size, u32 val)
122{
123 unsigned long flags;
124 int ret;
125
126 if (pcie_valid_config(bus->number, PCI_SLOT(devfn)) == 0)
127 return PCIBIOS_DEVICE_NOT_FOUND;
128
129 spin_lock_irqsave(&orion5x_pcie_lock, flags);
130 ret = orion_pcie_wr_conf(PCIE_BASE, bus, devfn, where, size, val);
131 spin_unlock_irqrestore(&orion5x_pcie_lock, flags);
132
133 return ret;
134}
135
136static struct pci_ops pcie_ops = {
137 .read = pcie_rd_conf,
138 .write = pcie_wr_conf,
139};
140
141
142static int __init pcie_setup(struct pci_sys_data *sys)
143{
144 struct resource *res;
145 int dev;
146
147 /*
148 * Generic PCIe unit setup.
149 */
150 orion_pcie_setup(PCIE_BASE, &orion5x_mbus_dram_info);
151
152 /*
153 * Check whether to apply Orion-1/Orion-NAS PCIe config
154 * read transaction workaround.
155 */
156 dev = orion_pcie_dev_id(PCIE_BASE);
157 if (dev == MV88F5181_DEV_ID || dev == MV88F5182_DEV_ID) {
158 printk(KERN_NOTICE "Applying Orion-1/Orion-NAS PCIe config "
159 "read transaction workaround\n");
160 pcie_ops.read = pcie_rd_conf_wa;
161 }
162
163 /*
164 * Request resources.
165 */
166 res = kzalloc(sizeof(struct resource) * 2, GFP_KERNEL);
167 if (!res)
168 panic("pcie_setup unable to alloc resources");
169
170 /*
171 * IORESOURCE_IO
172 */
173 res[0].name = "PCIe I/O Space";
174 res[0].flags = IORESOURCE_IO;
175 res[0].start = ORION5X_PCIE_IO_BUS_BASE;
176 res[0].end = res[0].start + ORION5X_PCIE_IO_SIZE - 1;
177 if (request_resource(&ioport_resource, &res[0]))
178 panic("Request PCIe IO resource failed\n");
179 sys->resource[0] = &res[0];
180
181 /*
182 * IORESOURCE_MEM
183 */
184 res[1].name = "PCIe Memory Space";
185 res[1].flags = IORESOURCE_MEM;
186 res[1].start = ORION5X_PCIE_MEM_PHYS_BASE;
187 res[1].end = res[1].start + ORION5X_PCIE_MEM_SIZE - 1;
188 if (request_resource(&iomem_resource, &res[1]))
189 panic("Request PCIe Memory resource failed\n");
190 sys->resource[1] = &res[1];
191
192 sys->resource[2] = NULL;
193 sys->io_offset = 0;
194
195 return 1;
196}
197
198/*****************************************************************************
199 * PCI controller
200 ****************************************************************************/
201#define PCI_MODE ORION5X_PCI_REG(0xd00)
202#define PCI_CMD ORION5X_PCI_REG(0xc00)
203#define PCI_P2P_CONF ORION5X_PCI_REG(0x1d14)
204#define PCI_CONF_ADDR ORION5X_PCI_REG(0xc78)
205#define PCI_CONF_DATA ORION5X_PCI_REG(0xc7c)
206
207/*
208 * PCI_MODE bits
209 */
210#define PCI_MODE_64BIT (1 << 2)
211#define PCI_MODE_PCIX ((1 << 4) | (1 << 5))
212
213/*
214 * PCI_CMD bits
215 */
216#define PCI_CMD_HOST_REORDER (1 << 29)
217
218/*
219 * PCI_P2P_CONF bits
220 */
221#define PCI_P2P_BUS_OFFS 16
222#define PCI_P2P_BUS_MASK (0xff << PCI_P2P_BUS_OFFS)
223#define PCI_P2P_DEV_OFFS 24
224#define PCI_P2P_DEV_MASK (0x1f << PCI_P2P_DEV_OFFS)
225
226/*
227 * PCI_CONF_ADDR bits
228 */
229#define PCI_CONF_REG(reg) ((reg) & 0xfc)
230#define PCI_CONF_FUNC(func) (((func) & 0x3) << 8)
231#define PCI_CONF_DEV(dev) (((dev) & 0x1f) << 11)
232#define PCI_CONF_BUS(bus) (((bus) & 0xff) << 16)
233#define PCI_CONF_ADDR_EN (1 << 31)
234
235/*
236 * Internal configuration space
237 */
238#define PCI_CONF_FUNC_STAT_CMD 0
239#define PCI_CONF_REG_STAT_CMD 4
240#define PCIX_STAT 0x64
241#define PCIX_STAT_BUS_OFFS 8
242#define PCIX_STAT_BUS_MASK (0xff << PCIX_STAT_BUS_OFFS)
243
244/*
245 * PCI Address Decode Windows registers
246 */
247#define PCI_BAR_SIZE_DDR_CS(n) (((n) == 0) ? ORION5X_PCI_REG(0xc08) : \
248 ((n) == 1) ? ORION5X_PCI_REG(0xd08) : \
249 ((n) == 2) ? ORION5X_PCI_REG(0xc0c) : \
250 ((n) == 3) ? ORION5X_PCI_REG(0xd0c) : 0)
251#define PCI_BAR_REMAP_DDR_CS(n) (((n) ==0) ? ORION5X_PCI_REG(0xc48) : \
252 ((n) == 1) ? ORION5X_PCI_REG(0xd48) : \
253 ((n) == 2) ? ORION5X_PCI_REG(0xc4c) : \
254 ((n) == 3) ? ORION5X_PCI_REG(0xd4c) : 0)
255#define PCI_BAR_ENABLE ORION5X_PCI_REG(0xc3c)
256#define PCI_ADDR_DECODE_CTRL ORION5X_PCI_REG(0xd3c)
257
258/*
259 * PCI configuration helpers for BAR settings
260 */
261#define PCI_CONF_FUNC_BAR_CS(n) ((n) >> 1)
262#define PCI_CONF_REG_BAR_LO_CS(n) (((n) & 1) ? 0x18 : 0x10)
263#define PCI_CONF_REG_BAR_HI_CS(n) (((n) & 1) ? 0x1c : 0x14)
264
265/*
266 * PCI config cycles are done by programming the PCI_CONF_ADDR register
267 * and then reading the PCI_CONF_DATA register. Need to make sure these
268 * transactions are atomic.
269 */
270static DEFINE_SPINLOCK(orion5x_pci_lock);
271
272int orion5x_pci_local_bus_nr(void)
273{
274 u32 conf = orion5x_read(PCI_P2P_CONF);
275 return((conf & PCI_P2P_BUS_MASK) >> PCI_P2P_BUS_OFFS);
276}
277
278static int orion5x_pci_hw_rd_conf(int bus, int dev, u32 func,
279 u32 where, u32 size, u32 *val)
280{
281 unsigned long flags;
282 spin_lock_irqsave(&orion5x_pci_lock, flags);
283
284 orion5x_write(PCI_CONF_ADDR, PCI_CONF_BUS(bus) |
285 PCI_CONF_DEV(dev) | PCI_CONF_REG(where) |
286 PCI_CONF_FUNC(func) | PCI_CONF_ADDR_EN);
287
288 *val = orion5x_read(PCI_CONF_DATA);
289
290 if (size == 1)
291 *val = (*val >> (8*(where & 0x3))) & 0xff;
292 else if (size == 2)
293 *val = (*val >> (8*(where & 0x3))) & 0xffff;
294
295 spin_unlock_irqrestore(&orion5x_pci_lock, flags);
296
297 return PCIBIOS_SUCCESSFUL;
298}
299
300static int orion5x_pci_hw_wr_conf(int bus, int dev, u32 func,
301 u32 where, u32 size, u32 val)
302{
303 unsigned long flags;
304 int ret = PCIBIOS_SUCCESSFUL;
305
306 spin_lock_irqsave(&orion5x_pci_lock, flags);
307
308 orion5x_write(PCI_CONF_ADDR, PCI_CONF_BUS(bus) |
309 PCI_CONF_DEV(dev) | PCI_CONF_REG(where) |
310 PCI_CONF_FUNC(func) | PCI_CONF_ADDR_EN);
311
312 if (size == 4) {
313 __raw_writel(val, PCI_CONF_DATA);
314 } else if (size == 2) {
315 __raw_writew(val, PCI_CONF_DATA + (where & 0x3));
316 } else if (size == 1) {
317 __raw_writeb(val, PCI_CONF_DATA + (where & 0x3));
318 } else {
319 ret = PCIBIOS_BAD_REGISTER_NUMBER;
320 }
321
322 spin_unlock_irqrestore(&orion5x_pci_lock, flags);
323
324 return ret;
325}
326
327static int orion5x_pci_rd_conf(struct pci_bus *bus, u32 devfn,
328 int where, int size, u32 *val)
329{
330 /*
331 * Don't go out for local device
332 */
333 if (bus->number == orion5x_pci_local_bus_nr() &&
334 PCI_SLOT(devfn) == 0 && PCI_FUNC(devfn) != 0) {
335 *val = 0xffffffff;
336 return PCIBIOS_DEVICE_NOT_FOUND;
337 }
338
339 return orion5x_pci_hw_rd_conf(bus->number, PCI_SLOT(devfn),
340 PCI_FUNC(devfn), where, size, val);
341}
342
343static int orion5x_pci_wr_conf(struct pci_bus *bus, u32 devfn,
344 int where, int size, u32 val)
345{
346 if (bus->number == orion5x_pci_local_bus_nr() &&
347 PCI_SLOT(devfn) == 0 && PCI_FUNC(devfn) != 0)
348 return PCIBIOS_DEVICE_NOT_FOUND;
349
350 return orion5x_pci_hw_wr_conf(bus->number, PCI_SLOT(devfn),
351 PCI_FUNC(devfn), where, size, val);
352}
353
354static struct pci_ops pci_ops = {
355 .read = orion5x_pci_rd_conf,
356 .write = orion5x_pci_wr_conf,
357};
358
359static void __init orion5x_pci_set_bus_nr(int nr)
360{
361 u32 p2p = orion5x_read(PCI_P2P_CONF);
362
363 if (orion5x_read(PCI_MODE) & PCI_MODE_PCIX) {
364 /*
365 * PCI-X mode
366 */
367 u32 pcix_status, bus, dev;
368 bus = (p2p & PCI_P2P_BUS_MASK) >> PCI_P2P_BUS_OFFS;
369 dev = (p2p & PCI_P2P_DEV_MASK) >> PCI_P2P_DEV_OFFS;
370 orion5x_pci_hw_rd_conf(bus, dev, 0, PCIX_STAT, 4, &pcix_status);
371 pcix_status &= ~PCIX_STAT_BUS_MASK;
372 pcix_status |= (nr << PCIX_STAT_BUS_OFFS);
373 orion5x_pci_hw_wr_conf(bus, dev, 0, PCIX_STAT, 4, pcix_status);
374 } else {
375 /*
376 * PCI Conventional mode
377 */
378 p2p &= ~PCI_P2P_BUS_MASK;
379 p2p |= (nr << PCI_P2P_BUS_OFFS);
380 orion5x_write(PCI_P2P_CONF, p2p);
381 }
382}
383
384static void __init orion5x_pci_master_slave_enable(void)
385{
386 int bus_nr, func, reg;
387 u32 val;
388
389 bus_nr = orion5x_pci_local_bus_nr();
390 func = PCI_CONF_FUNC_STAT_CMD;
391 reg = PCI_CONF_REG_STAT_CMD;
392 orion5x_pci_hw_rd_conf(bus_nr, 0, func, reg, 4, &val);
393 val |= (PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
394 orion5x_pci_hw_wr_conf(bus_nr, 0, func, reg, 4, val | 0x7);
395}
396
397static void __init orion5x_setup_pci_wins(struct mbus_dram_target_info *dram)
398{
399 u32 win_enable;
400 int bus;
401 int i;
402
403 /*
404 * First, disable windows.
405 */
406 win_enable = 0xffffffff;
407 orion5x_write(PCI_BAR_ENABLE, win_enable);
408
409 /*
410 * Setup windows for DDR banks.
411 */
412 bus = orion5x_pci_local_bus_nr();
413
414 for (i = 0; i < dram->num_cs; i++) {
415 struct mbus_dram_window *cs = dram->cs + i;
416 u32 func = PCI_CONF_FUNC_BAR_CS(cs->cs_index);
417 u32 reg;
418 u32 val;
419
420 /*
421 * Write DRAM bank base address register.
422 */
423 reg = PCI_CONF_REG_BAR_LO_CS(cs->cs_index);
424 orion5x_pci_hw_rd_conf(bus, 0, func, reg, 4, &val);
425 val = (cs->base & 0xfffff000) | (val & 0xfff);
426 orion5x_pci_hw_wr_conf(bus, 0, func, reg, 4, val);
427
428 /*
429 * Write DRAM bank size register.
430 */
431 reg = PCI_CONF_REG_BAR_HI_CS(cs->cs_index);
432 orion5x_pci_hw_wr_conf(bus, 0, func, reg, 4, 0);
433 orion5x_write(PCI_BAR_SIZE_DDR_CS(cs->cs_index),
434 (cs->size - 1) & 0xfffff000);
435 orion5x_write(PCI_BAR_REMAP_DDR_CS(cs->cs_index),
436 cs->base & 0xfffff000);
437
438 /*
439 * Enable decode window for this chip select.
440 */
441 win_enable &= ~(1 << cs->cs_index);
442 }
443
444 /*
445 * Re-enable decode windows.
446 */
447 orion5x_write(PCI_BAR_ENABLE, win_enable);
448
449 /*
450 * Disable automatic update of address remaping when writing to BARs.
451 */
452 orion5x_setbits(PCI_ADDR_DECODE_CTRL, 1);
453}
454
455static int __init pci_setup(struct pci_sys_data *sys)
456{
457 struct resource *res;
458
459 /*
460 * Point PCI unit MBUS decode windows to DRAM space.
461 */
462 orion5x_setup_pci_wins(&orion5x_mbus_dram_info);
463
464 /*
465 * Master + Slave enable
466 */
467 orion5x_pci_master_slave_enable();
468
469 /*
470 * Force ordering
471 */
472 orion5x_setbits(PCI_CMD, PCI_CMD_HOST_REORDER);
473
474 /*
475 * Request resources
476 */
477 res = kzalloc(sizeof(struct resource) * 2, GFP_KERNEL);
478 if (!res)
479 panic("pci_setup unable to alloc resources");
480
481 /*
482 * IORESOURCE_IO
483 */
484 res[0].name = "PCI I/O Space";
485 res[0].flags = IORESOURCE_IO;
486 res[0].start = ORION5X_PCI_IO_BUS_BASE;
487 res[0].end = res[0].start + ORION5X_PCI_IO_SIZE - 1;
488 if (request_resource(&ioport_resource, &res[0]))
489 panic("Request PCI IO resource failed\n");
490 sys->resource[0] = &res[0];
491
492 /*
493 * IORESOURCE_MEM
494 */
495 res[1].name = "PCI Memory Space";
496 res[1].flags = IORESOURCE_MEM;
497 res[1].start = ORION5X_PCI_MEM_PHYS_BASE;
498 res[1].end = res[1].start + ORION5X_PCI_MEM_SIZE - 1;
499 if (request_resource(&iomem_resource, &res[1]))
500 panic("Request PCI Memory resource failed\n");
501 sys->resource[1] = &res[1];
502
503 sys->resource[2] = NULL;
504 sys->io_offset = 0;
505
506 return 1;
507}
508
509
510/*****************************************************************************
511 * General PCIe + PCI
512 ****************************************************************************/
513static void __devinit rc_pci_fixup(struct pci_dev *dev)
514{
515 /*
516 * Prevent enumeration of root complex.
517 */
518 if (dev->bus->parent == NULL && dev->devfn == 0) {
519 int i;
520
521 for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
522 dev->resource[i].start = 0;
523 dev->resource[i].end = 0;
524 dev->resource[i].flags = 0;
525 }
526 }
527}
528DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL, PCI_ANY_ID, rc_pci_fixup);
529
530int __init orion5x_pci_sys_setup(int nr, struct pci_sys_data *sys)
531{
532 int ret = 0;
533
534 if (nr == 0) {
535 orion_pcie_set_local_bus_nr(PCIE_BASE, sys->busnr);
536 ret = pcie_setup(sys);
537 } else if (nr == 1) {
538 orion5x_pci_set_bus_nr(sys->busnr);
539 ret = pci_setup(sys);
540 }
541
542 return ret;
543}
544
545struct pci_bus __init *orion5x_pci_sys_scan_bus(int nr, struct pci_sys_data *sys)
546{
547 struct pci_bus *bus;
548
549 if (nr == 0) {
550 bus = pci_scan_bus(sys->busnr, &pcie_ops, sys);
551 } else if (nr == 1) {
552 bus = pci_scan_bus(sys->busnr, &pci_ops, sys);
553 } else {
554 bus = NULL;
555 BUG();
556 }
557
558 return bus;
559}
diff --git a/arch/arm/mach-orion/rd88f5182-setup.c b/arch/arm/mach-orion5x/rd88f5182-setup.c
index e851b8ca5ac6..37e8b2dc3ed5 100644
--- a/arch/arm/mach-orion/rd88f5182-setup.c
+++ b/arch/arm/mach-orion5x/rd88f5182-setup.c
@@ -1,12 +1,12 @@
1/* 1/*
2 * arch/arm/mach-orion/rd88f5182-setup.c 2 * arch/arm/mach-orion5x/rd88f5182-setup.c
3 * 3 *
4 * Marvell Orion-NAS Reference Design Setup 4 * Marvell Orion-NAS Reference Design Setup
5 * 5 *
6 * Maintainer: Ronen Shitrit <rshitrit@marvell.com> 6 * Maintainer: Ronen Shitrit <rshitrit@marvell.com>
7 * 7 *
8 * This file is licensed under the terms of the GNU General Public 8 * This file is licensed under the terms of the GNU General Public
9 * License version 2. This program is licensed "as is" without any 9 * License version 2. This program is licensed "as is" without any
10 * warranty of any kind, whether express or implied. 10 * warranty of any kind, whether express or implied.
11 */ 11 */
12 12
@@ -24,8 +24,7 @@
24#include <asm/leds.h> 24#include <asm/leds.h>
25#include <asm/mach/arch.h> 25#include <asm/mach/arch.h>
26#include <asm/mach/pci.h> 26#include <asm/mach/pci.h>
27#include <asm/arch/orion.h> 27#include <asm/arch/orion5x.h>
28#include <asm/arch/platform.h>
29#include "common.h" 28#include "common.h"
30 29
31/***************************************************************************** 30/*****************************************************************************
@@ -176,8 +175,8 @@ static int __init rd88f5182_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
176 /* 175 /*
177 * PCI-E isn't used on the RD2 176 * PCI-E isn't used on the RD2
178 */ 177 */
179 if (dev->bus->number == orion_pcie_local_bus_nr()) 178 if (dev->bus->number == orion5x_pcie_local_bus_nr())
180 return IRQ_ORION_PCIE0_INT; 179 return IRQ_ORION5X_PCIE0_INT;
181 180
182 /* 181 /*
183 * PCI IRQs are connected via GPIOs 182 * PCI IRQs are connected via GPIOs
@@ -197,8 +196,8 @@ static struct hw_pci rd88f5182_pci __initdata = {
197 .nr_controllers = 2, 196 .nr_controllers = 2,
198 .preinit = rd88f5182_pci_preinit, 197 .preinit = rd88f5182_pci_preinit,
199 .swizzle = pci_std_swizzle, 198 .swizzle = pci_std_swizzle,
200 .setup = orion_pci_sys_setup, 199 .setup = orion5x_pci_sys_setup,
201 .scan = orion_pci_sys_scan_bus, 200 .scan = orion5x_pci_sys_scan_bus,
202 .map_irq = rd88f5182_pci_map_irq, 201 .map_irq = rd88f5182_pci_map_irq,
203}; 202};
204 203
@@ -250,22 +249,20 @@ static void __init rd88f5182_init(void)
250 /* 249 /*
251 * Setup basic Orion functions. Need to be called early. 250 * Setup basic Orion functions. Need to be called early.
252 */ 251 */
253 orion_init(); 252 orion5x_init();
254 253
255 /* 254 /*
256 * Setup the CPU address decode windows for our devices 255 * Setup the CPU address decode windows for our devices
257 */ 256 */
258 orion_setup_cpu_win(ORION_DEV_BOOT, RD88F5182_NOR_BOOT_BASE, 257 orion5x_setup_dev_boot_win(RD88F5182_NOR_BOOT_BASE,
259 RD88F5182_NOR_BOOT_SIZE, -1); 258 RD88F5182_NOR_BOOT_SIZE);
260 orion_setup_cpu_win(ORION_DEV1, RD88F5182_NOR_BASE, 259 orion5x_setup_dev1_win(RD88F5182_NOR_BASE, RD88F5182_NOR_SIZE);
261 RD88F5182_NOR_SIZE, -1);
262 260
263 /* 261 /*
264 * Open a special address decode windows for the PCIE WA. 262 * Open a special address decode windows for the PCIE WA.
265 */ 263 */
266 orion_write(ORION_REGS_VIRT_BASE | 0x20074, ORION_PCIE_WA_PHYS_BASE); 264 orion5x_setup_pcie_wa_win(ORION5X_PCIE_WA_PHYS_BASE,
267 orion_write(ORION_REGS_VIRT_BASE | 0x20070, (0x7941 | 265 ORION5X_PCIE_WA_SIZE);
268 (((ORION_PCIE_WA_SIZE >> 16) - 1)) << 16));
269 266
270 /* 267 /*
271 * Setup Multiplexing Pins -- 268 * Setup Multiplexing Pins --
@@ -291,25 +288,25 @@ static void __init rd88f5182_init(void)
291 * MPP[25] USB 0 over current enable 288 * MPP[25] USB 0 over current enable
292 */ 289 */
293 290
294 orion_write(MPP_0_7_CTRL, 0x00000003); 291 orion5x_write(MPP_0_7_CTRL, 0x00000003);
295 orion_write(MPP_8_15_CTRL, 0x55550000); 292 orion5x_write(MPP_8_15_CTRL, 0x55550000);
296 orion_write(MPP_16_19_CTRL, 0x5555); 293 orion5x_write(MPP_16_19_CTRL, 0x5555);
297 294
298 orion_gpio_set_valid_pins(0x000000fb); 295 orion5x_gpio_set_valid_pins(0x000000fb);
299 296
300 platform_add_devices(rd88f5182_devices, ARRAY_SIZE(rd88f5182_devices)); 297 platform_add_devices(rd88f5182_devices, ARRAY_SIZE(rd88f5182_devices));
301 i2c_register_board_info(0, &rd88f5182_i2c_rtc, 1); 298 i2c_register_board_info(0, &rd88f5182_i2c_rtc, 1);
302 orion_eth_init(&rd88f5182_eth_data); 299 orion5x_eth_init(&rd88f5182_eth_data);
303 orion_sata_init(&rd88f5182_sata_data); 300 orion5x_sata_init(&rd88f5182_sata_data);
304} 301}
305 302
306MACHINE_START(RD88F5182, "Marvell Orion-NAS Reference Design") 303MACHINE_START(RD88F5182, "Marvell Orion-NAS Reference Design")
307 /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ 304 /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */
308 .phys_io = ORION_REGS_PHYS_BASE, 305 .phys_io = ORION5X_REGS_PHYS_BASE,
309 .io_pg_offst = ((ORION_REGS_VIRT_BASE) >> 18) & 0xFFFC, 306 .io_pg_offst = ((ORION5X_REGS_VIRT_BASE) >> 18) & 0xFFFC,
310 .boot_params = 0x00000100, 307 .boot_params = 0x00000100,
311 .init_machine = rd88f5182_init, 308 .init_machine = rd88f5182_init,
312 .map_io = orion_map_io, 309 .map_io = orion5x_map_io,
313 .init_irq = orion_init_irq, 310 .init_irq = orion5x_init_irq,
314 .timer = &orion_timer, 311 .timer = &orion5x_timer,
315MACHINE_END 312MACHINE_END
diff --git a/arch/arm/mach-orion/ts209-setup.c b/arch/arm/mach-orion5x/ts209-setup.c
index 45764dad16d0..fd43863a86f6 100644
--- a/arch/arm/mach-orion/ts209-setup.c
+++ b/arch/arm/mach-orion5x/ts209-setup.c
@@ -26,8 +26,7 @@
26#include <asm/gpio.h> 26#include <asm/gpio.h>
27#include <asm/mach/arch.h> 27#include <asm/mach/arch.h>
28#include <asm/mach/pci.h> 28#include <asm/mach/pci.h>
29#include <asm/arch/orion.h> 29#include <asm/arch/orion5x.h>
30#include <asm/arch/platform.h>
31#include "common.h" 30#include "common.h"
32 31
33#define QNAP_TS209_NOR_BOOT_BASE 0xf4000000 32#define QNAP_TS209_NOR_BOOT_BASE 0xf4000000
@@ -145,8 +144,8 @@ static int __init qnap_ts209_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
145 /* 144 /*
146 * PCIE IRQ is connected internally (not GPIO) 145 * PCIE IRQ is connected internally (not GPIO)
147 */ 146 */
148 if (dev->bus->number == orion_pcie_local_bus_nr()) 147 if (dev->bus->number == orion5x_pcie_local_bus_nr())
149 return IRQ_ORION_PCIE0_INT; 148 return IRQ_ORION5X_PCIE0_INT;
150 149
151 /* 150 /*
152 * PCI IRQs are connected via GPIOs 151 * PCI IRQs are connected via GPIOs
@@ -165,8 +164,8 @@ static struct hw_pci qnap_ts209_pci __initdata = {
165 .nr_controllers = 2, 164 .nr_controllers = 2,
166 .preinit = qnap_ts209_pci_preinit, 165 .preinit = qnap_ts209_pci_preinit,
167 .swizzle = pci_std_swizzle, 166 .swizzle = pci_std_swizzle,
168 .setup = orion_pci_sys_setup, 167 .setup = orion5x_pci_sys_setup,
169 .scan = orion_pci_sys_scan_bus, 168 .scan = orion5x_pci_sys_scan_bus,
170 .map_irq = qnap_ts209_pci_map_irq, 169 .map_irq = qnap_ts209_pci_map_irq,
171}; 170};
172 171
@@ -189,6 +188,87 @@ static struct mv643xx_eth_platform_data qnap_ts209_eth_data = {
189 .force_phy_addr = 1, 188 .force_phy_addr = 1,
190}; 189};
191 190
191static int __init parse_hex_nibble(char n)
192{
193 if (n >= '0' && n <= '9')
194 return n - '0';
195
196 if (n >= 'A' && n <= 'F')
197 return n - 'A' + 10;
198
199 if (n >= 'a' && n <= 'f')
200 return n - 'a' + 10;
201
202 return -1;
203}
204
205static int __init parse_hex_byte(const char *b)
206{
207 int hi;
208 int lo;
209
210 hi = parse_hex_nibble(b[0]);
211 lo = parse_hex_nibble(b[1]);
212
213 if (hi < 0 || lo < 0)
214 return -1;
215
216 return (hi << 4) | lo;
217}
218
219static int __init check_mac_addr(const char *addr_str)
220{
221 u_int8_t addr[6];
222 int i;
223
224 for (i = 0; i < 6; i++) {
225 int byte;
226
227 /*
228 * Enforce "xx:xx:xx:xx:xx:xx\n" format.
229 */
230 if (addr_str[(i * 3) + 2] != ((i < 5) ? ':' : '\n'))
231 return -1;
232
233 byte = parse_hex_byte(addr_str + (i * 3));
234 if (byte < 0)
235 return -1;
236 addr[i] = byte;
237 }
238
239 printk(KERN_INFO "ts209: found ethernet mac address ");
240 for (i = 0; i < 6; i++)
241 printk("%.2x%s", addr[i], (i < 5) ? ":" : ".\n");
242
243 memcpy(qnap_ts209_eth_data.mac_addr, addr, 6);
244
245 return 0;
246}
247
248/*
249 * The 'NAS Config' flash partition has an ext2 filesystem which
250 * contains a file that has the ethernet MAC address in plain text
251 * (format "xx:xx:xx:xx:xx:xx\n".)
252 */
253static void __init ts209_find_mac_addr(void)
254{
255 unsigned long addr;
256
257 for (addr = 0x00700000; addr < 0x00760000; addr += 1024) {
258 char *nor_page;
259 int ret = 0;
260
261 nor_page = ioremap(QNAP_TS209_NOR_BOOT_BASE + addr, 1024);
262 if (nor_page != NULL) {
263 ret = check_mac_addr(nor_page);
264 iounmap(nor_page);
265 }
266
267 if (ret == 0)
268 break;
269 }
270}
271
192/***************************************************************************** 272/*****************************************************************************
193 * RTC S35390A on I2C bus 273 * RTC S35390A on I2C bus
194 ****************************************************************************/ 274 ****************************************************************************/
@@ -262,21 +342,21 @@ static struct platform_device *qnap_ts209_devices[] __initdata = {
262static void qnap_ts209_power_off(void) 342static void qnap_ts209_power_off(void)
263{ 343{
264 /* 19200 baud divisor */ 344 /* 19200 baud divisor */
265 const unsigned divisor = ((ORION_TCLK + (8 * 19200)) / (16 * 19200)); 345 const unsigned divisor = ((ORION5X_TCLK + (8 * 19200)) / (16 * 19200));
266 346
267 pr_info("%s: triggering power-off...\n", __func__); 347 pr_info("%s: triggering power-off...\n", __func__);
268 348
269 /* hijack uart1 and reset into sane state (19200,8n1) */ 349 /* hijack uart1 and reset into sane state (19200,8n1) */
270 orion_write(UART1_REG(LCR), 0x83); 350 orion5x_write(UART1_REG(LCR), 0x83);
271 orion_write(UART1_REG(DLL), divisor & 0xff); 351 orion5x_write(UART1_REG(DLL), divisor & 0xff);
272 orion_write(UART1_REG(DLM), (divisor >> 8) & 0xff); 352 orion5x_write(UART1_REG(DLM), (divisor >> 8) & 0xff);
273 orion_write(UART1_REG(LCR), 0x03); 353 orion5x_write(UART1_REG(LCR), 0x03);
274 orion_write(UART1_REG(IER), 0x00); 354 orion5x_write(UART1_REG(IER), 0x00);
275 orion_write(UART1_REG(FCR), 0x00); 355 orion5x_write(UART1_REG(FCR), 0x00);
276 orion_write(UART1_REG(MCR), 0x00); 356 orion5x_write(UART1_REG(MCR), 0x00);
277 357
278 /* send the power-off command 'A' to PIC */ 358 /* send the power-off command 'A' to PIC */
279 orion_write(UART1_REG(TX), 'A'); 359 orion5x_write(UART1_REG(TX), 'A');
280} 360}
281 361
282static void __init qnap_ts209_init(void) 362static void __init qnap_ts209_init(void)
@@ -284,20 +364,19 @@ static void __init qnap_ts209_init(void)
284 /* 364 /*
285 * Setup basic Orion functions. Need to be called early. 365 * Setup basic Orion functions. Need to be called early.
286 */ 366 */
287 orion_init(); 367 orion5x_init();
288 368
289 /* 369 /*
290 * Setup flash mapping 370 * Setup flash mapping
291 */ 371 */
292 orion_setup_cpu_win(ORION_DEV_BOOT, QNAP_TS209_NOR_BOOT_BASE, 372 orion5x_setup_dev_boot_win(QNAP_TS209_NOR_BOOT_BASE,
293 QNAP_TS209_NOR_BOOT_SIZE, -1); 373 QNAP_TS209_NOR_BOOT_SIZE);
294 374
295 /* 375 /*
296 * Open a special address decode windows for the PCIE WA. 376 * Open a special address decode windows for the PCIE WA.
297 */ 377 */
298 orion_write(ORION_REGS_VIRT_BASE | 0x20074, ORION_PCIE_WA_PHYS_BASE); 378 orion5x_setup_pcie_wa_win(ORION5X_PCIE_WA_PHYS_BASE,
299 orion_write(ORION_REGS_VIRT_BASE | 0x20070, (0x7941 | 379 ORION5X_PCIE_WA_SIZE);
300 (((ORION_PCIE_WA_SIZE >> 16) - 1)) << 16));
301 380
302 /* 381 /*
303 * Setup Multiplexing Pins -- 382 * Setup Multiplexing Pins --
@@ -322,10 +401,10 @@ static void __init qnap_ts209_init(void)
322 * MPP[22] USB 0 over current 401 * MPP[22] USB 0 over current
323 * MPP[23-25] Reserved 402 * MPP[23-25] Reserved
324 */ 403 */
325 orion_write(MPP_0_7_CTRL, 0x3); 404 orion5x_write(MPP_0_7_CTRL, 0x3);
326 orion_write(MPP_8_15_CTRL, 0x55550000); 405 orion5x_write(MPP_8_15_CTRL, 0x55550000);
327 orion_write(MPP_16_19_CTRL, 0x5500); 406 orion5x_write(MPP_16_19_CTRL, 0x5500);
328 orion_gpio_set_valid_pins(0x3cc0fff); 407 orion5x_gpio_set_valid_pins(0x3cc0fff);
329 408
330 /* register ts209 specific power-off method */ 409 /* register ts209 specific power-off method */
331 pm_power_off = qnap_ts209_power_off; 410 pm_power_off = qnap_ts209_power_off;
@@ -344,18 +423,20 @@ static void __init qnap_ts209_init(void)
344 pr_warning("qnap_ts209_init: failed to get RTC IRQ\n"); 423 pr_warning("qnap_ts209_init: failed to get RTC IRQ\n");
345 i2c_register_board_info(0, &qnap_ts209_i2c_rtc, 1); 424 i2c_register_board_info(0, &qnap_ts209_i2c_rtc, 1);
346 425
347 orion_eth_init(&qnap_ts209_eth_data); 426 ts209_find_mac_addr();
348 orion_sata_init(&qnap_ts209_sata_data); 427 orion5x_eth_init(&qnap_ts209_eth_data);
428
429 orion5x_sata_init(&qnap_ts209_sata_data);
349} 430}
350 431
351MACHINE_START(TS209, "QNAP TS-109/TS-209") 432MACHINE_START(TS209, "QNAP TS-109/TS-209")
352 /* Maintainer: Byron Bradley <byron.bbradley@gmail.com> */ 433 /* Maintainer: Byron Bradley <byron.bbradley@gmail.com> */
353 .phys_io = ORION_REGS_PHYS_BASE, 434 .phys_io = ORION5X_REGS_PHYS_BASE,
354 .io_pg_offst = ((ORION_REGS_VIRT_BASE) >> 18) & 0xFFFC, 435 .io_pg_offst = ((ORION5X_REGS_VIRT_BASE) >> 18) & 0xFFFC,
355 .boot_params = 0x00000100, 436 .boot_params = 0x00000100,
356 .init_machine = qnap_ts209_init, 437 .init_machine = qnap_ts209_init,
357 .map_io = orion_map_io, 438 .map_io = orion5x_map_io,
358 .init_irq = orion_init_irq, 439 .init_irq = orion5x_init_irq,
359 .timer = &orion_timer, 440 .timer = &orion5x_timer,
360 .fixup = tag_fixup_mem32, 441 .fixup = tag_fixup_mem32,
361MACHINE_END 442MACHINE_END
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index 0908bea0f609..5da7a6820492 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -23,6 +23,12 @@ endif
23choice 23choice
24 prompt "Select target board" 24 prompt "Select target board"
25 25
26config ARCH_GUMSTIX
27 bool "Gumstix XScale boards"
28 help
29 Say Y here if you intend to run this kernel on a
30 Gumstix Full Function Minature Computer.
31
26config ARCH_LUBBOCK 32config ARCH_LUBBOCK
27 bool "Intel DBPXA250 Development Platform" 33 bool "Intel DBPXA250 Development Platform"
28 select PXA25x 34 select PXA25x
@@ -160,6 +166,20 @@ endchoice
160 166
161endif 167endif
162 168
169if ARCH_GUMSTIX
170
171choice
172 prompt "Select target Gumstix board"
173
174config MACH_GUMSTIX_F
175 bool "Basix, Connex, ws-200ax, ws-400ax systems"
176 select PXA25x
177
178endchoice
179
180endif
181
182
163if MACH_TRIZEPS4 183if MACH_TRIZEPS4
164 184
165choice 185choice
diff --git a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile
index 6e0c4f5b5ae6..7cdcb459ea9d 100644
--- a/arch/arm/mach-pxa/Makefile
+++ b/arch/arm/mach-pxa/Makefile
@@ -5,13 +5,14 @@
5# Common support (must be linked before board specific support) 5# Common support (must be linked before board specific support)
6obj-y += clock.o devices.o generic.o irq.o dma.o \ 6obj-y += clock.o devices.o generic.o irq.o dma.o \
7 time.o gpio.o 7 time.o gpio.o
8obj-$(CONFIG_PXA25x) += pxa25x.o 8obj-$(CONFIG_PXA25x) += pxa25x.o mfp-pxa2xx.o
9obj-$(CONFIG_PXA27x) += pxa27x.o 9obj-$(CONFIG_PXA27x) += pxa27x.o mfp-pxa2xx.o
10obj-$(CONFIG_PXA3xx) += pxa3xx.o mfp.o smemc.o 10obj-$(CONFIG_PXA3xx) += pxa3xx.o mfp-pxa3xx.o smemc.o
11obj-$(CONFIG_CPU_PXA300) += pxa300.o 11obj-$(CONFIG_CPU_PXA300) += pxa300.o
12obj-$(CONFIG_CPU_PXA320) += pxa320.o 12obj-$(CONFIG_CPU_PXA320) += pxa320.o
13 13
14# Specific board support 14# Specific board support
15obj-$(CONFIG_ARCH_GUMSTIX) += gumstix.o
15obj-$(CONFIG_ARCH_LUBBOCK) += lubbock.o 16obj-$(CONFIG_ARCH_LUBBOCK) += lubbock.o
16obj-$(CONFIG_MACH_LOGICPD_PXA270) += lpd270.o 17obj-$(CONFIG_MACH_LOGICPD_PXA270) += lpd270.o
17obj-$(CONFIG_MACH_MAINSTONE) += mainstone.o 18obj-$(CONFIG_MACH_MAINSTONE) += mainstone.o
diff --git a/arch/arm/mach-pxa/clock.c b/arch/arm/mach-pxa/clock.c
index df5ae2710ab1..e97dc59813c8 100644
--- a/arch/arm/mach-pxa/clock.c
+++ b/arch/arm/mach-pxa/clock.c
@@ -13,6 +13,7 @@
13#include <linux/delay.h> 13#include <linux/delay.h>
14 14
15#include <asm/arch/pxa-regs.h> 15#include <asm/arch/pxa-regs.h>
16#include <asm/arch/pxa2xx-gpio.h>
16#include <asm/hardware.h> 17#include <asm/hardware.h>
17 18
18#include "devices.h" 19#include "devices.h"
diff --git a/arch/arm/mach-pxa/cm-x270-pci.c b/arch/arm/mach-pxa/cm-x270-pci.c
index fcda7d5cb693..ac7f05f9f3eb 100644
--- a/arch/arm/mach-pxa/cm-x270-pci.c
+++ b/arch/arm/mach-pxa/cm-x270-pci.c
@@ -23,6 +23,7 @@
23#include <asm/mach/pci.h> 23#include <asm/mach/pci.h>
24#include <asm/arch/cm-x270.h> 24#include <asm/arch/cm-x270.h>
25#include <asm/arch/pxa-regs.h> 25#include <asm/arch/pxa-regs.h>
26#include <asm/arch/pxa2xx-gpio.h>
26#include <asm/mach-types.h> 27#include <asm/mach-types.h>
27 28
28#include <asm/hardware/it8152.h> 29#include <asm/hardware/it8152.h>
diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c
index ecdbc96a4de1..6d4416a4f378 100644
--- a/arch/arm/mach-pxa/cm-x270.c
+++ b/arch/arm/mach-pxa/cm-x270.c
@@ -30,6 +30,7 @@
30 30
31#include <asm/arch/pxa-regs.h> 31#include <asm/arch/pxa-regs.h>
32#include <asm/arch/pxa2xx-regs.h> 32#include <asm/arch/pxa2xx-regs.h>
33#include <asm/arch/pxa2xx-gpio.h>
33#include <asm/arch/pxafb.h> 34#include <asm/arch/pxafb.h>
34#include <asm/arch/ohci.h> 35#include <asm/arch/ohci.h>
35#include <asm/arch/mmc.h> 36#include <asm/arch/mmc.h>
diff --git a/arch/arm/mach-pxa/colibri.c b/arch/arm/mach-pxa/colibri.c
index 6db54e31c397..43bf5a183e90 100644
--- a/arch/arm/mach-pxa/colibri.c
+++ b/arch/arm/mach-pxa/colibri.c
@@ -29,6 +29,7 @@
29#include <asm/mach/irq.h> 29#include <asm/mach/irq.h>
30#include <asm/mach/flash.h> 30#include <asm/mach/flash.h>
31#include <asm/arch/pxa-regs.h> 31#include <asm/arch/pxa-regs.h>
32#include <asm/arch/pxa2xx-gpio.h>
32#include <asm/arch/colibri.h> 33#include <asm/arch/colibri.h>
33 34
34#include "generic.h" 35#include "generic.h"
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c
index 9292576b83b3..259ca821e464 100644
--- a/arch/arm/mach-pxa/corgi.c
+++ b/arch/arm/mach-pxa/corgi.c
@@ -36,6 +36,7 @@
36#include <asm/mach/irq.h> 36#include <asm/mach/irq.h>
37 37
38#include <asm/arch/pxa-regs.h> 38#include <asm/arch/pxa-regs.h>
39#include <asm/arch/pxa2xx-gpio.h>
39#include <asm/arch/irda.h> 40#include <asm/arch/irda.h>
40#include <asm/arch/mmc.h> 41#include <asm/arch/mmc.h>
41#include <asm/arch/udc.h> 42#include <asm/arch/udc.h>
diff --git a/arch/arm/mach-pxa/corgi_pm.c b/arch/arm/mach-pxa/corgi_pm.c
index 392c38717362..0a85f706e887 100644
--- a/arch/arm/mach-pxa/corgi_pm.c
+++ b/arch/arm/mach-pxa/corgi_pm.c
@@ -26,6 +26,7 @@
26#include <asm/arch/sharpsl.h> 26#include <asm/arch/sharpsl.h>
27#include <asm/arch/corgi.h> 27#include <asm/arch/corgi.h>
28#include <asm/arch/pxa-regs.h> 28#include <asm/arch/pxa-regs.h>
29#include <asm/arch/pxa2xx-gpio.h>
29#include "sharpsl.h" 30#include "sharpsl.h"
30 31
31#define SHARPSL_CHARGE_ON_VOLT 0x99 /* 2.9V */ 32#define SHARPSL_CHARGE_ON_VOLT 0x99 /* 2.9V */
diff --git a/arch/arm/mach-pxa/corgi_ssp.c b/arch/arm/mach-pxa/corgi_ssp.c
index 31706224a04c..eccc45d21f75 100644
--- a/arch/arm/mach-pxa/corgi_ssp.c
+++ b/arch/arm/mach-pxa/corgi_ssp.c
@@ -21,6 +21,7 @@
21 21
22#include <asm/arch/ssp.h> 22#include <asm/arch/ssp.h>
23#include <asm/arch/pxa-regs.h> 23#include <asm/arch/pxa-regs.h>
24#include <asm/arch/pxa2xx-gpio.h>
24#include <asm/arch/regs-ssp.h> 25#include <asm/arch/regs-ssp.h>
25#include "sharpsl.h" 26#include "sharpsl.h"
26 27
diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c
index bfccb80ac8ef..d6c05b6eab35 100644
--- a/arch/arm/mach-pxa/devices.c
+++ b/arch/arm/mach-pxa/devices.c
@@ -11,6 +11,8 @@
11#include <asm/arch/irda.h> 11#include <asm/arch/irda.h>
12#include <asm/arch/i2c.h> 12#include <asm/arch/i2c.h>
13#include <asm/arch/ohci.h> 13#include <asm/arch/ohci.h>
14#include <asm/arch/pxa27x_keypad.h>
15#include <asm/arch/camera.h>
14 16
15#include "devices.h" 17#include "devices.h"
16 18
@@ -396,6 +398,31 @@ struct platform_device pxa25x_device_assp = {
396 398
397#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx) 399#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)
398 400
401static struct resource pxa27x_resource_keypad[] = {
402 [0] = {
403 .start = 0x41500000,
404 .end = 0x4150004c,
405 .flags = IORESOURCE_MEM,
406 },
407 [1] = {
408 .start = IRQ_KEYPAD,
409 .end = IRQ_KEYPAD,
410 .flags = IORESOURCE_IRQ,
411 },
412};
413
414struct platform_device pxa27x_device_keypad = {
415 .name = "pxa27x-keypad",
416 .id = -1,
417 .resource = pxa27x_resource_keypad,
418 .num_resources = ARRAY_SIZE(pxa27x_resource_keypad),
419};
420
421void __init pxa_set_keypad_info(struct pxa27x_keypad_platform_data *info)
422{
423 pxa_register_device(&pxa27x_device_keypad, info);
424}
425
399static u64 pxa27x_ohci_dma_mask = DMA_BIT_MASK(32); 426static u64 pxa27x_ohci_dma_mask = DMA_BIT_MASK(32);
400 427
401static struct resource pxa27x_resource_ohci[] = { 428static struct resource pxa27x_resource_ohci[] = {
@@ -540,6 +567,37 @@ struct platform_device pxa27x_device_ssp3 = {
540 .resource = pxa27x_resource_ssp3, 567 .resource = pxa27x_resource_ssp3,
541 .num_resources = ARRAY_SIZE(pxa27x_resource_ssp3), 568 .num_resources = ARRAY_SIZE(pxa27x_resource_ssp3),
542}; 569};
570
571static struct resource pxa27x_resource_camera[] = {
572 [0] = {
573 .start = 0x50000000,
574 .end = 0x50000fff,
575 .flags = IORESOURCE_MEM,
576 },
577 [1] = {
578 .start = IRQ_CAMERA,
579 .end = IRQ_CAMERA,
580 .flags = IORESOURCE_IRQ,
581 },
582};
583
584static u64 pxa27x_dma_mask_camera = DMA_BIT_MASK(32);
585
586static struct platform_device pxa27x_device_camera = {
587 .name = "pxa27x-camera",
588 .id = 0, /* This is used to put cameras on this interface */
589 .dev = {
590 .dma_mask = &pxa27x_dma_mask_camera,
591 .coherent_dma_mask = 0xffffffff,
592 },
593 .num_resources = ARRAY_SIZE(pxa27x_resource_camera),
594 .resource = pxa27x_resource_camera,
595};
596
597void __init pxa_set_camera_info(struct pxacamera_platform_data *info)
598{
599 pxa_register_device(&pxa27x_device_camera, info);
600}
543#endif /* CONFIG_PXA27x || CONFIG_PXA3xx */ 601#endif /* CONFIG_PXA27x || CONFIG_PXA3xx */
544 602
545#ifdef CONFIG_PXA3xx 603#ifdef CONFIG_PXA3xx
diff --git a/arch/arm/mach-pxa/devices.h b/arch/arm/mach-pxa/devices.h
index 96c7c8909068..fcab017f27ee 100644
--- a/arch/arm/mach-pxa/devices.h
+++ b/arch/arm/mach-pxa/devices.h
@@ -14,6 +14,7 @@ extern struct platform_device pxa_device_rtc;
14 14
15extern struct platform_device pxa27x_device_i2c_power; 15extern struct platform_device pxa27x_device_i2c_power;
16extern struct platform_device pxa27x_device_ohci; 16extern struct platform_device pxa27x_device_ohci;
17extern struct platform_device pxa27x_device_keypad;
17 18
18extern struct platform_device pxa25x_device_ssp; 19extern struct platform_device pxa25x_device_ssp;
19extern struct platform_device pxa25x_device_nssp; 20extern struct platform_device pxa25x_device_nssp;
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c
index 3bb31314429a..edc4f07a230d 100644
--- a/arch/arm/mach-pxa/em-x270.c
+++ b/arch/arm/mach-pxa/em-x270.c
@@ -23,6 +23,7 @@
23#include <asm/mach/arch.h> 23#include <asm/mach/arch.h>
24 24
25#include <asm/arch/pxa-regs.h> 25#include <asm/arch/pxa-regs.h>
26#include <asm/arch/pxa2xx-gpio.h>
26#include <asm/arch/pxafb.h> 27#include <asm/arch/pxafb.h>
27#include <asm/arch/ohci.h> 28#include <asm/arch/ohci.h>
28#include <asm/arch/mmc.h> 29#include <asm/arch/mmc.h>
diff --git a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c
index 80721c610d41..331f29b2d0cd 100644
--- a/arch/arm/mach-pxa/generic.c
+++ b/arch/arm/mach-pxa/generic.c
@@ -19,14 +19,8 @@
19#include <linux/module.h> 19#include <linux/module.h>
20#include <linux/kernel.h> 20#include <linux/kernel.h>
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/delay.h>
23#include <linux/ioport.h>
24#include <linux/pm.h>
25#include <linux/string.h>
26#include <linux/sysdev.h>
27 22
28#include <asm/hardware.h> 23#include <asm/hardware.h>
29#include <asm/irq.h>
30#include <asm/system.h> 24#include <asm/system.h>
31#include <asm/pgtable.h> 25#include <asm/pgtable.h>
32#include <asm/mach/map.h> 26#include <asm/mach/map.h>
@@ -134,59 +128,3 @@ void __init pxa_map_io(void)
134 iotable_init(standard_io_desc, ARRAY_SIZE(standard_io_desc)); 128 iotable_init(standard_io_desc, ARRAY_SIZE(standard_io_desc));
135 get_clk_frequency_khz(1); 129 get_clk_frequency_khz(1);
136} 130}
137
138#ifdef CONFIG_PM
139
140static unsigned long saved_gplr[4];
141static unsigned long saved_gpdr[4];
142static unsigned long saved_grer[4];
143static unsigned long saved_gfer[4];
144
145static int pxa_gpio_suspend(struct sys_device *dev, pm_message_t state)
146{
147 int i, gpio;
148
149 for (gpio = 0, i = 0; gpio < pxa_last_gpio; gpio += 32, i++) {
150 saved_gplr[i] = GPLR(gpio);
151 saved_gpdr[i] = GPDR(gpio);
152 saved_grer[i] = GRER(gpio);
153 saved_gfer[i] = GFER(gpio);
154
155 /* Clear GPIO transition detect bits */
156 GEDR(gpio) = GEDR(gpio);
157 }
158 return 0;
159}
160
161static int pxa_gpio_resume(struct sys_device *dev)
162{
163 int i, gpio;
164
165 for (gpio = 0, i = 0; gpio < pxa_last_gpio; gpio += 32, i++) {
166 /* restore level with set/clear */
167 GPSR(gpio) = saved_gplr[i];
168 GPCR(gpio) = ~saved_gplr[i];
169
170 GRER(gpio) = saved_grer[i];
171 GFER(gpio) = saved_gfer[i];
172 GPDR(gpio) = saved_gpdr[i];
173 }
174 return 0;
175}
176#else
177#define pxa_gpio_suspend NULL
178#define pxa_gpio_resume NULL
179#endif
180
181struct sysdev_class pxa_gpio_sysclass = {
182 .name = "gpio",
183 .suspend = pxa_gpio_suspend,
184 .resume = pxa_gpio_resume,
185};
186
187static int __init pxa_gpio_init(void)
188{
189 return sysdev_class_register(&pxa_gpio_sysclass);
190}
191
192core_initcall(pxa_gpio_init);
diff --git a/arch/arm/mach-pxa/generic.h b/arch/arm/mach-pxa/generic.h
index b3d10b0e52a0..5bb7ae757831 100644
--- a/arch/arm/mach-pxa/generic.h
+++ b/arch/arm/mach-pxa/generic.h
@@ -9,14 +9,13 @@
9 * published by the Free Software Foundation. 9 * published by the Free Software Foundation.
10 */ 10 */
11 11
12typedef int (*set_wake_t)(unsigned int, unsigned int);
13
12struct sys_timer; 14struct sys_timer;
13 15
14extern struct sys_timer pxa_timer; 16extern struct sys_timer pxa_timer;
15extern void __init pxa_init_irq_low(void); 17extern void __init pxa_init_irq(int irq_nr, set_wake_t fn);
16extern void __init pxa_init_irq_high(void); 18extern void __init pxa_init_gpio(int gpio_nr, set_wake_t fn);
17extern void __init pxa_init_irq_gpio(int gpio_nr);
18extern void __init pxa_init_irq_set_wake(int (*set_wake)(unsigned int, unsigned int));
19extern void __init pxa_init_gpio(int gpio_nr);
20extern void __init pxa25x_init_irq(void); 19extern void __init pxa25x_init_irq(void);
21extern void __init pxa27x_init_irq(void); 20extern void __init pxa27x_init_irq(void);
22extern void __init pxa3xx_init_irq(void); 21extern void __init pxa3xx_init_irq(void);
@@ -30,6 +29,8 @@ extern int pxa_last_gpio;
30 mi->bank[__nr].size = (__size), \ 29 mi->bank[__nr].size = (__size), \
31 mi->bank[__nr].node = (((unsigned)(__start) - PHYS_OFFSET) >> 27) 30 mi->bank[__nr].node = (((unsigned)(__start) - PHYS_OFFSET) >> 27)
32 31
32#define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x)
33
33#ifdef CONFIG_PXA25x 34#ifdef CONFIG_PXA25x
34extern unsigned pxa25x_get_clk_frequency_khz(int); 35extern unsigned pxa25x_get_clk_frequency_khz(int);
35extern unsigned pxa25x_get_memclk_frequency_10khz(void); 36extern unsigned pxa25x_get_memclk_frequency_10khz(void);
@@ -56,3 +57,4 @@ extern unsigned pxa3xx_get_memclk_frequency_10khz(void);
56 57
57extern struct sysdev_class pxa_irq_sysclass; 58extern struct sysdev_class pxa_irq_sysclass;
58extern struct sysdev_class pxa_gpio_sysclass; 59extern struct sysdev_class pxa_gpio_sysclass;
60extern struct sysdev_class pxa3xx_mfp_sysclass;
diff --git a/arch/arm/mach-pxa/gpio.c b/arch/arm/mach-pxa/gpio.c
index 8638dd7dd076..7d3e16970be0 100644
--- a/arch/arm/mach-pxa/gpio.c
+++ b/arch/arm/mach-pxa/gpio.c
@@ -14,11 +14,14 @@
14 14
15#include <linux/init.h> 15#include <linux/init.h>
16#include <linux/module.h> 16#include <linux/module.h>
17#include <linux/irq.h>
18#include <linux/sysdev.h>
17 19
18#include <asm/gpio.h> 20#include <asm/gpio.h>
19#include <asm/hardware.h> 21#include <asm/hardware.h>
20#include <asm/io.h> 22#include <asm/io.h>
21#include <asm/arch/pxa-regs.h> 23#include <asm/arch/pxa-regs.h>
24#include <asm/arch/pxa2xx-gpio.h>
22 25
23#include "generic.h" 26#include "generic.h"
24 27
@@ -129,69 +132,283 @@ static void pxa_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
129 __raw_writel(mask, pxa->regbase + GPCR_OFFSET); 132 __raw_writel(mask, pxa->regbase + GPCR_OFFSET);
130} 133}
131 134
135#define GPIO_CHIP(_n) \
136 [_n] = { \
137 .regbase = GPIO##_n##_BASE, \
138 .chip = { \
139 .label = "gpio-" #_n, \
140 .direction_input = pxa_gpio_direction_input, \
141 .direction_output = pxa_gpio_direction_output, \
142 .get = pxa_gpio_get, \
143 .set = pxa_gpio_set, \
144 .base = (_n) * 32, \
145 .ngpio = 32, \
146 }, \
147 }
148
132static struct pxa_gpio_chip pxa_gpio_chip[] = { 149static struct pxa_gpio_chip pxa_gpio_chip[] = {
133 [0] = { 150 GPIO_CHIP(0),
134 .regbase = GPIO0_BASE, 151 GPIO_CHIP(1),
135 .chip = { 152 GPIO_CHIP(2),
136 .label = "gpio-0",
137 .direction_input = pxa_gpio_direction_input,
138 .direction_output = pxa_gpio_direction_output,
139 .get = pxa_gpio_get,
140 .set = pxa_gpio_set,
141 .base = 0,
142 .ngpio = 32,
143 },
144 },
145 [1] = {
146 .regbase = GPIO1_BASE,
147 .chip = {
148 .label = "gpio-1",
149 .direction_input = pxa_gpio_direction_input,
150 .direction_output = pxa_gpio_direction_output,
151 .get = pxa_gpio_get,
152 .set = pxa_gpio_set,
153 .base = 32,
154 .ngpio = 32,
155 },
156 },
157 [2] = {
158 .regbase = GPIO2_BASE,
159 .chip = {
160 .label = "gpio-2",
161 .direction_input = pxa_gpio_direction_input,
162 .direction_output = pxa_gpio_direction_output,
163 .get = pxa_gpio_get,
164 .set = pxa_gpio_set,
165 .base = 64,
166 .ngpio = 32, /* 21 for PXA25x */
167 },
168 },
169#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx) 153#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)
170 [3] = { 154 GPIO_CHIP(3),
171 .regbase = GPIO3_BASE,
172 .chip = {
173 .label = "gpio-3",
174 .direction_input = pxa_gpio_direction_input,
175 .direction_output = pxa_gpio_direction_output,
176 .get = pxa_gpio_get,
177 .set = pxa_gpio_set,
178 .base = 96,
179 .ngpio = 32,
180 },
181 },
182#endif 155#endif
183}; 156};
184 157
185void __init pxa_init_gpio(int gpio_nr) 158/*
159 * PXA GPIO edge detection for IRQs:
160 * IRQs are generated on Falling-Edge, Rising-Edge, or both.
161 * Use this instead of directly setting GRER/GFER.
162 */
163
164static unsigned long GPIO_IRQ_rising_edge[4];
165static unsigned long GPIO_IRQ_falling_edge[4];
166static unsigned long GPIO_IRQ_mask[4];
167
168/*
169 * On PXA25x and PXA27x, GAFRx and GPDRx together decide the alternate
170 * function of a GPIO, and GPDRx cannot be altered once configured. It
171 * is attributed as "occupied" here (I know this terminology isn't
172 * accurate, you are welcome to propose a better one :-)
173 */
174static int __gpio_is_occupied(unsigned gpio)
175{
176 if (cpu_is_pxa25x() || cpu_is_pxa27x())
177 return GAFR(gpio) & (0x3 << (((gpio) & 0xf) * 2));
178 else
179 return 0;
180}
181
182static int pxa_gpio_irq_type(unsigned int irq, unsigned int type)
183{
184 int gpio, idx;
185
186 gpio = IRQ_TO_GPIO(irq);
187 idx = gpio >> 5;
188
189 if (type == IRQ_TYPE_PROBE) {
190 /* Don't mess with enabled GPIOs using preconfigured edges or
191 * GPIOs set to alternate function or to output during probe
192 */
193 if ((GPIO_IRQ_rising_edge[idx] |
194 GPIO_IRQ_falling_edge[idx] |
195 GPDR(gpio)) & GPIO_bit(gpio))
196 return 0;
197
198 if (__gpio_is_occupied(gpio))
199 return 0;
200
201 type = IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING;
202 }
203
204 GPDR(gpio) &= ~GPIO_bit(gpio);
205
206 if (type & IRQ_TYPE_EDGE_RISING)
207 __set_bit(gpio, GPIO_IRQ_rising_edge);
208 else
209 __clear_bit(gpio, GPIO_IRQ_rising_edge);
210
211 if (type & IRQ_TYPE_EDGE_FALLING)
212 __set_bit(gpio, GPIO_IRQ_falling_edge);
213 else
214 __clear_bit(gpio, GPIO_IRQ_falling_edge);
215
216 GRER(gpio) = GPIO_IRQ_rising_edge[idx] & GPIO_IRQ_mask[idx];
217 GFER(gpio) = GPIO_IRQ_falling_edge[idx] & GPIO_IRQ_mask[idx];
218
219 pr_debug("%s: IRQ%d (GPIO%d) - edge%s%s\n", __func__, irq, gpio,
220 ((type & IRQ_TYPE_EDGE_RISING) ? " rising" : ""),
221 ((type & IRQ_TYPE_EDGE_FALLING) ? " falling" : ""));
222 return 0;
223}
224
225/*
226 * GPIO IRQs must be acknowledged. This is for GPIO 0 and 1.
227 */
228
229static void pxa_ack_low_gpio(unsigned int irq)
230{
231 GEDR0 = (1 << (irq - IRQ_GPIO0));
232}
233
234static void pxa_mask_low_gpio(unsigned int irq)
235{
236 ICMR &= ~(1 << (irq - PXA_IRQ(0)));
237}
238
239static void pxa_unmask_low_gpio(unsigned int irq)
240{
241 ICMR |= 1 << (irq - PXA_IRQ(0));
242}
243
244static struct irq_chip pxa_low_gpio_chip = {
245 .name = "GPIO-l",
246 .ack = pxa_ack_low_gpio,
247 .mask = pxa_mask_low_gpio,
248 .unmask = pxa_unmask_low_gpio,
249 .set_type = pxa_gpio_irq_type,
250};
251
252/*
253 * Demux handler for GPIO>=2 edge detect interrupts
254 */
255
256#define GEDR_BITS (sizeof(gedr) * BITS_PER_BYTE)
257
258static void pxa_gpio_demux_handler(unsigned int irq, struct irq_desc *desc)
259{
260 int loop, bit, n;
261 unsigned long gedr[4];
262
263 do {
264 gedr[0] = GEDR0 & GPIO_IRQ_mask[0] & ~3;
265 gedr[1] = GEDR1 & GPIO_IRQ_mask[1];
266 gedr[2] = GEDR2 & GPIO_IRQ_mask[2];
267 gedr[3] = GEDR3 & GPIO_IRQ_mask[3];
268
269 GEDR0 = gedr[0]; GEDR1 = gedr[1];
270 GEDR2 = gedr[2]; GEDR3 = gedr[3];
271
272 loop = 0;
273 bit = find_first_bit(gedr, GEDR_BITS);
274 while (bit < GEDR_BITS) {
275 loop = 1;
276
277 n = PXA_GPIO_IRQ_BASE + bit;
278 desc_handle_irq(n, irq_desc + n);
279
280 bit = find_next_bit(gedr, GEDR_BITS, bit + 1);
281 }
282 } while (loop);
283}
284
285static void pxa_ack_muxed_gpio(unsigned int irq)
286{
287 int gpio = irq - IRQ_GPIO(2) + 2;
288 GEDR(gpio) = GPIO_bit(gpio);
289}
290
291static void pxa_mask_muxed_gpio(unsigned int irq)
292{
293 int gpio = irq - IRQ_GPIO(2) + 2;
294 __clear_bit(gpio, GPIO_IRQ_mask);
295 GRER(gpio) &= ~GPIO_bit(gpio);
296 GFER(gpio) &= ~GPIO_bit(gpio);
297}
298
299static void pxa_unmask_muxed_gpio(unsigned int irq)
300{
301 int gpio = irq - IRQ_GPIO(2) + 2;
302 int idx = gpio >> 5;
303 __set_bit(gpio, GPIO_IRQ_mask);
304 GRER(gpio) = GPIO_IRQ_rising_edge[idx] & GPIO_IRQ_mask[idx];
305 GFER(gpio) = GPIO_IRQ_falling_edge[idx] & GPIO_IRQ_mask[idx];
306}
307
308static struct irq_chip pxa_muxed_gpio_chip = {
309 .name = "GPIO",
310 .ack = pxa_ack_muxed_gpio,
311 .mask = pxa_mask_muxed_gpio,
312 .unmask = pxa_unmask_muxed_gpio,
313 .set_type = pxa_gpio_irq_type,
314};
315
316void __init pxa_init_gpio(int gpio_nr, set_wake_t fn)
186{ 317{
187 int i; 318 int irq, i, gpio;
319
320 pxa_last_gpio = gpio_nr - 1;
321
322 /* clear all GPIO edge detects */
323 for (i = 0; i < gpio_nr; i += 32) {
324 GFER(i) = 0;
325 GRER(i) = 0;
326 GEDR(i) = GEDR(i);
327 }
328
329 /* GPIO 0 and 1 must have their mask bit always set */
330 GPIO_IRQ_mask[0] = 3;
331
332 for (irq = IRQ_GPIO0; irq <= IRQ_GPIO1; irq++) {
333 set_irq_chip(irq, &pxa_low_gpio_chip);
334 set_irq_handler(irq, handle_edge_irq);
335 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
336 }
337
338 for (irq = IRQ_GPIO(2); irq < IRQ_GPIO(gpio_nr); irq++) {
339 set_irq_chip(irq, &pxa_muxed_gpio_chip);
340 set_irq_handler(irq, handle_edge_irq);
341 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
342 }
343
344 /* Install handler for GPIO>=2 edge detect interrupts */
345 set_irq_chained_handler(IRQ_GPIO_2_x, pxa_gpio_demux_handler);
346
347 pxa_low_gpio_chip.set_wake = fn;
348 pxa_muxed_gpio_chip.set_wake = fn;
188 349
189 /* add a GPIO chip for each register bank. 350 /* add a GPIO chip for each register bank.
190 * the last PXA25x register only contains 21 GPIOs 351 * the last PXA25x register only contains 21 GPIOs
191 */ 352 */
192 for (i = 0; i < gpio_nr; i += 32) { 353 for (gpio = 0, i = 0; gpio < gpio_nr; gpio += 32, i++) {
193 if (i+32 > gpio_nr) 354 if (gpio + 32 > gpio_nr)
194 pxa_gpio_chip[i/32].chip.ngpio = gpio_nr - i; 355 pxa_gpio_chip[i].chip.ngpio = gpio_nr - gpio;
195 gpiochip_add(&pxa_gpio_chip[i/32].chip); 356 gpiochip_add(&pxa_gpio_chip[i].chip);
196 } 357 }
197} 358}
359
360#ifdef CONFIG_PM
361
362static unsigned long saved_gplr[4];
363static unsigned long saved_gpdr[4];
364static unsigned long saved_grer[4];
365static unsigned long saved_gfer[4];
366
367static int pxa_gpio_suspend(struct sys_device *dev, pm_message_t state)
368{
369 int i, gpio;
370
371 for (gpio = 0, i = 0; gpio < pxa_last_gpio; gpio += 32, i++) {
372 saved_gplr[i] = GPLR(gpio);
373 saved_gpdr[i] = GPDR(gpio);
374 saved_grer[i] = GRER(gpio);
375 saved_gfer[i] = GFER(gpio);
376
377 /* Clear GPIO transition detect bits */
378 GEDR(gpio) = GEDR(gpio);
379 }
380 return 0;
381}
382
383static int pxa_gpio_resume(struct sys_device *dev)
384{
385 int i, gpio;
386
387 for (gpio = 0, i = 0; gpio < pxa_last_gpio; gpio += 32, i++) {
388 /* restore level with set/clear */
389 GPSR(gpio) = saved_gplr[i];
390 GPCR(gpio) = ~saved_gplr[i];
391
392 GRER(gpio) = saved_grer[i];
393 GFER(gpio) = saved_gfer[i];
394 GPDR(gpio) = saved_gpdr[i];
395 }
396 return 0;
397}
398#else
399#define pxa_gpio_suspend NULL
400#define pxa_gpio_resume NULL
401#endif
402
403struct sysdev_class pxa_gpio_sysclass = {
404 .name = "gpio",
405 .suspend = pxa_gpio_suspend,
406 .resume = pxa_gpio_resume,
407};
408
409static int __init pxa_gpio_init(void)
410{
411 return sysdev_class_register(&pxa_gpio_sysclass);
412}
413
414core_initcall(pxa_gpio_init);
diff --git a/arch/arm/mach-pxa/gumstix.c b/arch/arm/mach-pxa/gumstix.c
new file mode 100644
index 000000000000..f01d18544133
--- /dev/null
+++ b/arch/arm/mach-pxa/gumstix.c
@@ -0,0 +1,147 @@
1/*
2 * linux/arch/arm/mach-pxa/gumstix.c
3 *
4 * Support for the Gumstix motherboards.
5 *
6 * Original Author: Craig Hughes
7 * Created: Feb 14, 2008
8 * Copyright: Craig Hughes
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
13 *
14 * Implemented based on lubbock.c by Nicolas Pitre and code from Craig
15 * Hughes
16 */
17
18#include <linux/module.h>
19#include <linux/kernel.h>
20#include <linux/init.h>
21#include <linux/platform_device.h>
22#include <linux/interrupt.h>
23#include <linux/mtd/mtd.h>
24#include <linux/mtd/partitions.h>
25
26#include <asm/setup.h>
27#include <asm/memory.h>
28#include <asm/mach-types.h>
29#include <asm/hardware.h>
30#include <asm/irq.h>
31#include <asm/sizes.h>
32
33#include <asm/mach/arch.h>
34#include <asm/mach/map.h>
35#include <asm/mach/irq.h>
36#include <asm/mach/flash.h>
37#include <asm/arch/mmc.h>
38#include <asm/arch/udc.h>
39#include <asm/arch/gumstix.h>
40
41#include <asm/arch/pxa-regs.h>
42#include <asm/arch/pxa2xx-regs.h>
43
44#include "generic.h"
45
46static struct resource flash_resource = {
47 .start = 0x00000000,
48 .end = SZ_64M - 1,
49 .flags = IORESOURCE_MEM,
50};
51
52static struct mtd_partition gumstix_partitions[] = {
53 {
54 .name = "Bootloader",
55 .size = 0x00040000,
56 .offset = 0,
57 .mask_flags = MTD_WRITEABLE /* force read-only */
58 } , {
59 .name = "rootfs",
60 .size = MTDPART_SIZ_FULL,
61 .offset = MTDPART_OFS_APPEND
62 }
63};
64
65static struct flash_platform_data gumstix_flash_data = {
66 .map_name = "cfi_probe",
67 .parts = gumstix_partitions,
68 .nr_parts = ARRAY_SIZE(gumstix_partitions),
69 .width = 2,
70};
71
72static struct platform_device gumstix_flash_device = {
73 .name = "pxa2xx-flash",
74 .id = 0,
75 .dev = {
76 .platform_data = &gumstix_flash_data,
77 },
78 .resource = &flash_resource,
79 .num_resources = 1,
80};
81
82static struct platform_device *devices[] __initdata = {
83 &gumstix_flash_device,
84};
85
86#ifdef CONFIG_MMC_PXA
87static struct pxamci_platform_data gumstix_mci_platform_data;
88
89static int gumstix_mci_init(struct device *dev, irq_handler_t detect_int,
90 void *data)
91{
92 pxa_gpio_mode(GPIO6_MMCCLK_MD);
93 pxa_gpio_mode(GPIO53_MMCCLK_MD);
94 pxa_gpio_mode(GPIO8_MMCCS0_MD);
95
96 return 0;
97}
98
99static struct pxamci_platform_data gumstix_mci_platform_data = {
100 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
101 .init = gumstix_mci_init,
102};
103
104static void __init gumstix_mmc_init(void)
105{
106 pxa_set_mci_info(&gumstix_mci_platform_data);
107}
108#else
109static void __init gumstix_mmc_init(void)
110{
111 printk(KERN_INFO "Gumstix mmc disabled\n");
112}
113#endif
114
115#ifdef CONFIG_USB_GADGET_PXA2XX
116static struct pxa2xx_udc_mach_info gumstix_udc_info __initdata = {
117 .gpio_vbus = GPIO_GUMSTIX_USB_GPIOn,
118 .gpio_pullup = GPIO_GUMSTIX_USB_GPIOx,
119};
120
121static void __init gumstix_udc_init(void)
122{
123 pxa_set_udc_info(&gumstix_udc_info);
124}
125#else
126static void gumstix_udc_init(void)
127{
128 printk(KERN_INFO "Gumstix udc is disabled\n");
129}
130#endif
131
132static void __init gumstix_init(void)
133{
134 gumstix_udc_init();
135 gumstix_mmc_init();
136 (void) platform_add_devices(devices, ARRAY_SIZE(devices));
137}
138
139MACHINE_START(GUMSTIX, "Gumstix")
140 .phys_io = 0x40000000,
141 .boot_params = 0xa0000100, /* match u-boot bi_boot_params */
142 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
143 .map_io = pxa_map_io,
144 .init_irq = pxa25x_init_irq,
145 .timer = &pxa_timer,
146 .init_machine = gumstix_init,
147MACHINE_END
diff --git a/arch/arm/mach-pxa/idp.c b/arch/arm/mach-pxa/idp.c
index 0a9434432c55..2637633f9166 100644
--- a/arch/arm/mach-pxa/idp.c
+++ b/arch/arm/mach-pxa/idp.c
@@ -32,6 +32,7 @@
32#include <asm/mach/map.h> 32#include <asm/mach/map.h>
33 33
34#include <asm/arch/pxa-regs.h> 34#include <asm/arch/pxa-regs.h>
35#include <asm/arch/pxa2xx-gpio.h>
35#include <asm/arch/idp.h> 36#include <asm/arch/idp.h>
36#include <asm/arch/pxafb.h> 37#include <asm/arch/pxafb.h>
37#include <asm/arch/bitfield.h> 38#include <asm/arch/bitfield.h>
diff --git a/arch/arm/mach-pxa/irq.c b/arch/arm/mach-pxa/irq.c
index 36c6a68beca2..a9a0c3fab159 100644
--- a/arch/arm/mach-pxa/irq.c
+++ b/arch/arm/mach-pxa/irq.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * linux/arch/arm/mach-pxa/irq.c 2 * linux/arch/arm/mach-pxa/irq.c
3 * 3 *
4 * Generic PXA IRQ handling, GPIO IRQ demultiplexing, etc. 4 * Generic PXA IRQ handling
5 * 5 *
6 * Author: Nicolas Pitre 6 * Author: Nicolas Pitre
7 * Created: Jun 15, 2001 7 * Created: Jun 15, 2001
@@ -21,308 +21,58 @@
21#include <asm/irq.h> 21#include <asm/irq.h>
22#include <asm/mach/irq.h> 22#include <asm/mach/irq.h>
23#include <asm/arch/pxa-regs.h> 23#include <asm/arch/pxa-regs.h>
24#include <asm/arch/pxa2xx-gpio.h>
24 25
25#include "generic.h" 26#include "generic.h"
26 27
28#define IRQ_BIT(n) (((n) - PXA_IRQ(0)) & 0x1f)
29#define _ICMR(n) (*((((n) - PXA_IRQ(0)) & ~0x1f) ? &ICMR2 : &ICMR))
30#define _ICLR(n) (*((((n) - PXA_IRQ(0)) & ~0x1f) ? &ICLR2 : &ICLR))
27 31
28/* 32/*
29 * This is for peripheral IRQs internal to the PXA chip. 33 * This is for peripheral IRQs internal to the PXA chip.
30 */ 34 */
31 35
32static void pxa_mask_low_irq(unsigned int irq) 36static int pxa_internal_irq_nr;
37
38static void pxa_mask_irq(unsigned int irq)
33{ 39{
34 ICMR &= ~(1 << irq); 40 _ICMR(irq) &= ~(1 << IRQ_BIT(irq));
35} 41}
36 42
37static void pxa_unmask_low_irq(unsigned int irq) 43static void pxa_unmask_irq(unsigned int irq)
38{ 44{
39 ICMR |= (1 << irq); 45 _ICMR(irq) |= 1 << IRQ_BIT(irq);
40} 46}
41 47
42static struct irq_chip pxa_internal_chip_low = { 48static struct irq_chip pxa_internal_irq_chip = {
43 .name = "SC", 49 .name = "SC",
44 .ack = pxa_mask_low_irq, 50 .ack = pxa_mask_irq,
45 .mask = pxa_mask_low_irq, 51 .mask = pxa_mask_irq,
46 .unmask = pxa_unmask_low_irq, 52 .unmask = pxa_unmask_irq,
47}; 53};
48 54
49void __init pxa_init_irq_low(void) 55void __init pxa_init_irq(int irq_nr, set_wake_t fn)
50{ 56{
51 int irq; 57 int irq;
52 58
53 /* disable all IRQs */ 59 pxa_internal_irq_nr = irq_nr;
54 ICMR = 0;
55 60
56 /* all IRQs are IRQ, not FIQ */ 61 for (irq = 0; irq < irq_nr; irq += 32) {
57 ICLR = 0; 62 _ICMR(irq) = 0; /* disable all IRQs */
63 _ICLR(irq) = 0; /* all IRQs are IRQ, not FIQ */
64 }
58 65
59 /* only unmasked interrupts kick us out of idle */ 66 /* only unmasked interrupts kick us out of idle */
60 ICCR = 1; 67 ICCR = 1;
61 68
62 for (irq = PXA_IRQ(0); irq <= PXA_IRQ(31); irq++) { 69 for (irq = PXA_IRQ(0); irq < PXA_IRQ(irq_nr); irq++) {
63 set_irq_chip(irq, &pxa_internal_chip_low); 70 set_irq_chip(irq, &pxa_internal_irq_chip);
64 set_irq_handler(irq, handle_level_irq);
65 set_irq_flags(irq, IRQF_VALID);
66 }
67}
68
69#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)
70
71/*
72 * This is for the second set of internal IRQs as found on the PXA27x.
73 */
74
75static void pxa_mask_high_irq(unsigned int irq)
76{
77 ICMR2 &= ~(1 << (irq - 32));
78}
79
80static void pxa_unmask_high_irq(unsigned int irq)
81{
82 ICMR2 |= (1 << (irq - 32));
83}
84
85static struct irq_chip pxa_internal_chip_high = {
86 .name = "SC-hi",
87 .ack = pxa_mask_high_irq,
88 .mask = pxa_mask_high_irq,
89 .unmask = pxa_unmask_high_irq,
90};
91
92void __init pxa_init_irq_high(void)
93{
94 int irq;
95
96 ICMR2 = 0;
97 ICLR2 = 0;
98
99 for (irq = PXA_IRQ(32); irq < PXA_IRQ(64); irq++) {
100 set_irq_chip(irq, &pxa_internal_chip_high);
101 set_irq_handler(irq, handle_level_irq); 71 set_irq_handler(irq, handle_level_irq);
102 set_irq_flags(irq, IRQF_VALID); 72 set_irq_flags(irq, IRQF_VALID);
103 } 73 }
104}
105#endif
106
107/*
108 * PXA GPIO edge detection for IRQs:
109 * IRQs are generated on Falling-Edge, Rising-Edge, or both.
110 * Use this instead of directly setting GRER/GFER.
111 */
112
113static long GPIO_IRQ_rising_edge[4];
114static long GPIO_IRQ_falling_edge[4];
115static long GPIO_IRQ_mask[4];
116
117static int pxa_gpio_irq_type(unsigned int irq, unsigned int type)
118{
119 int gpio, idx;
120
121 gpio = IRQ_TO_GPIO(irq);
122 idx = gpio >> 5;
123
124 if (type == IRQT_PROBE) {
125 /* Don't mess with enabled GPIOs using preconfigured edges or
126 GPIOs set to alternate function or to output during probe */
127 if ((GPIO_IRQ_rising_edge[idx] | GPIO_IRQ_falling_edge[idx] | GPDR(gpio)) &
128 GPIO_bit(gpio))
129 return 0;
130 if (GAFR(gpio) & (0x3 << (((gpio) & 0xf)*2)))
131 return 0;
132 type = __IRQT_RISEDGE | __IRQT_FALEDGE;
133 }
134
135 /* printk(KERN_DEBUG "IRQ%d (GPIO%d): ", irq, gpio); */
136
137 pxa_gpio_mode(gpio | GPIO_IN);
138
139 if (type & __IRQT_RISEDGE) {
140 /* printk("rising "); */
141 __set_bit (gpio, GPIO_IRQ_rising_edge);
142 } else {
143 __clear_bit (gpio, GPIO_IRQ_rising_edge);
144 }
145
146 if (type & __IRQT_FALEDGE) {
147 /* printk("falling "); */
148 __set_bit (gpio, GPIO_IRQ_falling_edge);
149 } else {
150 __clear_bit (gpio, GPIO_IRQ_falling_edge);
151 }
152
153 /* printk("edges\n"); */
154
155 GRER(gpio) = GPIO_IRQ_rising_edge[idx] & GPIO_IRQ_mask[idx];
156 GFER(gpio) = GPIO_IRQ_falling_edge[idx] & GPIO_IRQ_mask[idx];
157 return 0;
158}
159
160/*
161 * GPIO IRQs must be acknowledged. This is for GPIO 0 and 1.
162 */
163
164static void pxa_ack_low_gpio(unsigned int irq)
165{
166 GEDR0 = (1 << (irq - IRQ_GPIO0));
167}
168
169static struct irq_chip pxa_low_gpio_chip = {
170 .name = "GPIO-l",
171 .ack = pxa_ack_low_gpio,
172 .mask = pxa_mask_low_irq,
173 .unmask = pxa_unmask_low_irq,
174 .set_type = pxa_gpio_irq_type,
175};
176
177/*
178 * Demux handler for GPIO>=2 edge detect interrupts
179 */
180
181static void pxa_gpio_demux_handler(unsigned int irq, struct irq_desc *desc)
182{
183 unsigned int mask;
184 int loop;
185
186 do {
187 loop = 0;
188
189 mask = GEDR0 & GPIO_IRQ_mask[0] & ~3;
190 if (mask) {
191 GEDR0 = mask;
192 irq = IRQ_GPIO(2);
193 desc = irq_desc + irq;
194 mask >>= 2;
195 do {
196 if (mask & 1)
197 desc_handle_irq(irq, desc);
198 irq++;
199 desc++;
200 mask >>= 1;
201 } while (mask);
202 loop = 1;
203 }
204
205 mask = GEDR1 & GPIO_IRQ_mask[1];
206 if (mask) {
207 GEDR1 = mask;
208 irq = IRQ_GPIO(32);
209 desc = irq_desc + irq;
210 do {
211 if (mask & 1)
212 desc_handle_irq(irq, desc);
213 irq++;
214 desc++;
215 mask >>= 1;
216 } while (mask);
217 loop = 1;
218 }
219
220 mask = GEDR2 & GPIO_IRQ_mask[2];
221 if (mask) {
222 GEDR2 = mask;
223 irq = IRQ_GPIO(64);
224 desc = irq_desc + irq;
225 do {
226 if (mask & 1)
227 desc_handle_irq(irq, desc);
228 irq++;
229 desc++;
230 mask >>= 1;
231 } while (mask);
232 loop = 1;
233 }
234
235 mask = GEDR3 & GPIO_IRQ_mask[3];
236 if (mask) {
237 GEDR3 = mask;
238 irq = IRQ_GPIO(96);
239 desc = irq_desc + irq;
240 do {
241 if (mask & 1)
242 desc_handle_irq(irq, desc);
243 irq++;
244 desc++;
245 mask >>= 1;
246 } while (mask);
247 loop = 1;
248 }
249 } while (loop);
250}
251
252static void pxa_ack_muxed_gpio(unsigned int irq)
253{
254 int gpio = irq - IRQ_GPIO(2) + 2;
255 GEDR(gpio) = GPIO_bit(gpio);
256}
257
258static void pxa_mask_muxed_gpio(unsigned int irq)
259{
260 int gpio = irq - IRQ_GPIO(2) + 2;
261 __clear_bit(gpio, GPIO_IRQ_mask);
262 GRER(gpio) &= ~GPIO_bit(gpio);
263 GFER(gpio) &= ~GPIO_bit(gpio);
264}
265
266static void pxa_unmask_muxed_gpio(unsigned int irq)
267{
268 int gpio = irq - IRQ_GPIO(2) + 2;
269 int idx = gpio >> 5;
270 __set_bit(gpio, GPIO_IRQ_mask);
271 GRER(gpio) = GPIO_IRQ_rising_edge[idx] & GPIO_IRQ_mask[idx];
272 GFER(gpio) = GPIO_IRQ_falling_edge[idx] & GPIO_IRQ_mask[idx];
273}
274
275static struct irq_chip pxa_muxed_gpio_chip = {
276 .name = "GPIO",
277 .ack = pxa_ack_muxed_gpio,
278 .mask = pxa_mask_muxed_gpio,
279 .unmask = pxa_unmask_muxed_gpio,
280 .set_type = pxa_gpio_irq_type,
281};
282
283void __init pxa_init_irq_gpio(int gpio_nr)
284{
285 int irq, i;
286
287 pxa_last_gpio = gpio_nr - 1;
288
289 /* clear all GPIO edge detects */
290 for (i = 0; i < gpio_nr; i += 32) {
291 GFER(i) = 0;
292 GRER(i) = 0;
293 GEDR(i) = GEDR(i);
294 }
295
296 /* GPIO 0 and 1 must have their mask bit always set */
297 GPIO_IRQ_mask[0] = 3;
298
299 for (irq = IRQ_GPIO0; irq <= IRQ_GPIO1; irq++) {
300 set_irq_chip(irq, &pxa_low_gpio_chip);
301 set_irq_handler(irq, handle_edge_irq);
302 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
303 }
304 74
305 for (irq = IRQ_GPIO(2); irq < IRQ_GPIO(gpio_nr); irq++) { 75 pxa_internal_irq_chip.set_wake = fn;
306 set_irq_chip(irq, &pxa_muxed_gpio_chip);
307 set_irq_handler(irq, handle_edge_irq);
308 set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
309 }
310
311 /* Install handler for GPIO>=2 edge detect interrupts */
312 set_irq_chip(IRQ_GPIO_2_x, &pxa_internal_chip_low);
313 set_irq_chained_handler(IRQ_GPIO_2_x, pxa_gpio_demux_handler);
314
315 pxa_init_gpio(gpio_nr);
316}
317
318void __init pxa_init_irq_set_wake(int (*set_wake)(unsigned int, unsigned int))
319{
320 pxa_internal_chip_low.set_wake = set_wake;
321#ifdef CONFIG_PXA27x
322 pxa_internal_chip_high.set_wake = set_wake;
323#endif
324 pxa_low_gpio_chip.set_wake = set_wake;
325 pxa_muxed_gpio_chip.set_wake = set_wake;
326} 76}
327 77
328#ifdef CONFIG_PM 78#ifdef CONFIG_PM
@@ -330,19 +80,11 @@ static unsigned long saved_icmr[2];
330 80
331static int pxa_irq_suspend(struct sys_device *dev, pm_message_t state) 81static int pxa_irq_suspend(struct sys_device *dev, pm_message_t state)
332{ 82{
333 switch (dev->id) { 83 int i, irq = PXA_IRQ(0);
334 case 0: 84
335 saved_icmr[0] = ICMR; 85 for (i = 0; irq < PXA_IRQ(pxa_internal_irq_nr); i++, irq += 32) {
336 ICMR = 0; 86 saved_icmr[i] = _ICMR(irq);
337 break; 87 _ICMR(irq) = 0;
338#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)
339 case 1:
340 saved_icmr[1] = ICMR2;
341 ICMR2 = 0;
342 break;
343#endif
344 default:
345 return -EINVAL;
346 } 88 }
347 89
348 return 0; 90 return 0;
@@ -350,22 +92,14 @@ static int pxa_irq_suspend(struct sys_device *dev, pm_message_t state)
350 92
351static int pxa_irq_resume(struct sys_device *dev) 93static int pxa_irq_resume(struct sys_device *dev)
352{ 94{
353 switch (dev->id) { 95 int i, irq = PXA_IRQ(0);
354 case 0: 96
355 ICMR = saved_icmr[0]; 97 for (i = 0; irq < PXA_IRQ(pxa_internal_irq_nr); i++, irq += 32) {
356 ICLR = 0; 98 _ICMR(irq) = saved_icmr[i];
357 ICCR = 1; 99 _ICLR(irq) = 0;
358 break;
359#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)
360 case 1:
361 ICMR2 = saved_icmr[1];
362 ICLR2 = 0;
363 break;
364#endif
365 default:
366 return -EINVAL;
367 } 100 }
368 101
102 ICCR = 1;
369 return 0; 103 return 0;
370} 104}
371#else 105#else
diff --git a/arch/arm/mach-pxa/leds-trizeps4.c b/arch/arm/mach-pxa/leds-trizeps4.c
index 2271d20ffeda..21880daabafe 100644
--- a/arch/arm/mach-pxa/leds-trizeps4.c
+++ b/arch/arm/mach-pxa/leds-trizeps4.c
@@ -18,6 +18,7 @@
18#include <asm/leds.h> 18#include <asm/leds.h>
19 19
20#include <asm/arch/pxa-regs.h> 20#include <asm/arch/pxa-regs.h>
21#include <asm/arch/pxa2xx-gpio.h>
21#include <asm/arch/trizeps4.h> 22#include <asm/arch/trizeps4.h>
22 23
23#include "leds.h" 24#include "leds.h"
diff --git a/arch/arm/mach-pxa/littleton.c b/arch/arm/mach-pxa/littleton.c
index 0a4b54c21314..03396063b561 100644
--- a/arch/arm/mach-pxa/littleton.c
+++ b/arch/arm/mach-pxa/littleton.c
@@ -37,12 +37,11 @@
37#include <asm/arch/gpio.h> 37#include <asm/arch/gpio.h>
38#include <asm/arch/pxafb.h> 38#include <asm/arch/pxafb.h>
39#include <asm/arch/ssp.h> 39#include <asm/arch/ssp.h>
40#include <asm/arch/pxa27x_keypad.h>
40#include <asm/arch/littleton.h> 41#include <asm/arch/littleton.h>
41 42
42#include "generic.h" 43#include "generic.h"
43 44
44#define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x)
45
46/* Littleton MFP configurations */ 45/* Littleton MFP configurations */
47static mfp_cfg_t littleton_mfp_cfg[] __initdata = { 46static mfp_cfg_t littleton_mfp_cfg[] __initdata = {
48 /* LCD */ 47 /* LCD */
@@ -76,6 +75,21 @@ static mfp_cfg_t littleton_mfp_cfg[] __initdata = {
76 75
77 /* Debug Ethernet */ 76 /* Debug Ethernet */
78 GPIO90_GPIO, 77 GPIO90_GPIO,
78
79 /* Keypad */
80 GPIO107_KP_DKIN_0,
81 GPIO108_KP_DKIN_1,
82 GPIO115_KP_MKIN_0,
83 GPIO116_KP_MKIN_1,
84 GPIO117_KP_MKIN_2,
85 GPIO118_KP_MKIN_3,
86 GPIO119_KP_MKIN_4,
87 GPIO120_KP_MKIN_5,
88 GPIO121_KP_MKOUT_0,
89 GPIO122_KP_MKOUT_1,
90 GPIO123_KP_MKOUT_2,
91 GPIO124_KP_MKOUT_3,
92 GPIO125_KP_MKOUT_4,
79}; 93};
80 94
81static struct resource smc91x_resources[] = { 95static struct resource smc91x_resources[] = {
@@ -300,6 +314,54 @@ static void littleton_init_lcd(void)
300static inline void littleton_init_lcd(void) {}; 314static inline void littleton_init_lcd(void) {};
301#endif /* CONFIG_FB_PXA || CONFIG_FB_PXA_MODULES */ 315#endif /* CONFIG_FB_PXA || CONFIG_FB_PXA_MODULES */
302 316
317#if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULES)
318static unsigned int littleton_matrix_key_map[] = {
319 /* KEY(row, col, key_code) */
320 KEY(1, 3, KEY_0), KEY(0, 0, KEY_1), KEY(1, 0, KEY_2), KEY(2, 0, KEY_3),
321 KEY(0, 1, KEY_4), KEY(1, 1, KEY_5), KEY(2, 1, KEY_6), KEY(0, 2, KEY_7),
322 KEY(1, 2, KEY_8), KEY(2, 2, KEY_9),
323
324 KEY(0, 3, KEY_KPASTERISK), /* * */
325 KEY(2, 3, KEY_KPDOT), /* # */
326
327 KEY(5, 4, KEY_ENTER),
328
329 KEY(5, 0, KEY_UP),
330 KEY(5, 1, KEY_DOWN),
331 KEY(5, 2, KEY_LEFT),
332 KEY(5, 3, KEY_RIGHT),
333 KEY(3, 2, KEY_HOME),
334 KEY(4, 1, KEY_END),
335 KEY(3, 3, KEY_BACK),
336
337 KEY(4, 0, KEY_SEND),
338 KEY(4, 2, KEY_VOLUMEUP),
339 KEY(4, 3, KEY_VOLUMEDOWN),
340
341 KEY(3, 0, KEY_F22), /* soft1 */
342 KEY(3, 1, KEY_F23), /* soft2 */
343};
344
345static struct pxa27x_keypad_platform_data littleton_keypad_info = {
346 .matrix_key_rows = 6,
347 .matrix_key_cols = 5,
348 .matrix_key_map = littleton_matrix_key_map,
349 .matrix_key_map_size = ARRAY_SIZE(littleton_matrix_key_map),
350
351 .enable_rotary0 = 1,
352 .rotary0_up_key = KEY_UP,
353 .rotary0_down_key = KEY_DOWN,
354
355 .debounce_interval = 30,
356};
357static void __init littleton_init_keypad(void)
358{
359 pxa_set_keypad_info(&littleton_keypad_info);
360}
361#else
362static inline void littleton_init_keypad(void) {}
363#endif
364
303static void __init littleton_init(void) 365static void __init littleton_init(void)
304{ 366{
305 /* initialize MFP configurations */ 367 /* initialize MFP configurations */
@@ -312,6 +374,7 @@ static void __init littleton_init(void)
312 platform_device_register(&smc91x_device); 374 platform_device_register(&smc91x_device);
313 375
314 littleton_init_lcd(); 376 littleton_init_lcd();
377 littleton_init_keypad();
315} 378}
316 379
317MACHINE_START(LITTLETON, "Marvell Form Factor Development Platform (aka Littleton)") 380MACHINE_START(LITTLETON, "Marvell Form Factor Development Platform (aka Littleton)")
diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c
index afa62ffe3ad5..a20e4b1649d6 100644
--- a/arch/arm/mach-pxa/lpd270.c
+++ b/arch/arm/mach-pxa/lpd270.c
@@ -39,6 +39,7 @@
39 39
40#include <asm/arch/pxa-regs.h> 40#include <asm/arch/pxa-regs.h>
41#include <asm/arch/pxa2xx-regs.h> 41#include <asm/arch/pxa2xx-regs.h>
42#include <asm/arch/pxa2xx-gpio.h>
42#include <asm/arch/lpd270.h> 43#include <asm/arch/lpd270.h>
43#include <asm/arch/audio.h> 44#include <asm/arch/audio.h>
44#include <asm/arch/pxafb.h> 45#include <asm/arch/pxafb.h>
diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c
index e7ae4bb3e361..ca209c443f34 100644
--- a/arch/arm/mach-pxa/lubbock.c
+++ b/arch/arm/mach-pxa/lubbock.c
@@ -42,6 +42,7 @@
42 42
43#include <asm/arch/pxa-regs.h> 43#include <asm/arch/pxa-regs.h>
44#include <asm/arch/pxa2xx-regs.h> 44#include <asm/arch/pxa2xx-regs.h>
45#include <asm/arch/mfp-pxa25x.h>
45#include <asm/arch/lubbock.h> 46#include <asm/arch/lubbock.h>
46#include <asm/arch/udc.h> 47#include <asm/arch/udc.h>
47#include <asm/arch/irda.h> 48#include <asm/arch/irda.h>
@@ -51,6 +52,40 @@
51#include "generic.h" 52#include "generic.h"
52#include "devices.h" 53#include "devices.h"
53 54
55static unsigned long lubbock_pin_config[] __initdata = {
56 GPIO15_nCS_1, /* CS1 - Flash */
57 GPIO79_nCS_3, /* CS3 - SMC ethernet */
58
59 /* SSP data pins */
60 GPIO23_SSP1_SCLK,
61 GPIO25_SSP1_TXD,
62 GPIO26_SSP1_RXD,
63
64 /* BTUART */
65 GPIO42_BTUART_RXD,
66 GPIO43_BTUART_TXD,
67 GPIO44_BTUART_CTS,
68 GPIO45_BTUART_RTS,
69
70 /* PC Card */
71 GPIO48_nPOE,
72 GPIO49_nPWE,
73 GPIO50_nPIOR,
74 GPIO51_nPIOW,
75 GPIO52_nPCE_1,
76 GPIO53_nPCE_2,
77 GPIO54_nPSKTSEL,
78 GPIO55_nPREG,
79 GPIO56_nPWAIT,
80 GPIO57_nIOIS16,
81
82 /* MMC */
83 GPIO6_MMC_CLK,
84 GPIO8_MMC_CS0,
85
86 /* wakeup */
87 GPIO1_GPIO | WAKEUP_ON_EDGE_RISE,
88};
54 89
55#define LUB_MISC_WR __LUB_REG(LUBBOCK_FPGA_PHYS + 0x080) 90#define LUB_MISC_WR __LUB_REG(LUBBOCK_FPGA_PHYS + 0x080)
56 91
@@ -186,26 +221,6 @@ static struct platform_device sa1111_device = {
186 .resource = sa1111_resources, 221 .resource = sa1111_resources,
187}; 222};
188 223
189static struct resource smc91x_resources[] = {
190 [0] = {
191 .name = "smc91x-regs",
192 .start = 0x0c000c00,
193 .end = 0x0c0fffff,
194 .flags = IORESOURCE_MEM,
195 },
196 [1] = {
197 .start = LUBBOCK_ETH_IRQ,
198 .end = LUBBOCK_ETH_IRQ,
199 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
200 },
201 [2] = {
202 .name = "smc91x-attrib",
203 .start = 0x0e000000,
204 .end = 0x0e0fffff,
205 .flags = IORESOURCE_MEM,
206 },
207};
208
209/* ADS7846 is connected through SSP ... and if your board has J5 populated, 224/* ADS7846 is connected through SSP ... and if your board has J5 populated,
210 * you can select it to replace the ucb1400 by switching the touchscreen cable 225 * you can select it to replace the ucb1400 by switching the touchscreen cable
211 * (to J5) and poking board registers (as done below). Else it's only useful 226 * (to J5) and poking board registers (as done below). Else it's only useful
@@ -261,6 +276,26 @@ static struct spi_board_info spi_board_info[] __initdata = { {
261}, 276},
262}; 277};
263 278
279static struct resource smc91x_resources[] = {
280 [0] = {
281 .name = "smc91x-regs",
282 .start = 0x0c000c00,
283 .end = 0x0c0fffff,
284 .flags = IORESOURCE_MEM,
285 },
286 [1] = {
287 .start = LUBBOCK_ETH_IRQ,
288 .end = LUBBOCK_ETH_IRQ,
289 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
290 },
291 [2] = {
292 .name = "smc91x-attrib",
293 .start = 0x0e000000,
294 .end = 0x0e0fffff,
295 .flags = IORESOURCE_MEM,
296 },
297};
298
264static struct platform_device smc91x_device = { 299static struct platform_device smc91x_device = {
265 .name = "smc91x", 300 .name = "smc91x",
266 .id = -1, 301 .id = -1,
@@ -404,10 +439,6 @@ static int lubbock_mci_init(struct device *dev,
404 irq_handler_t detect_int, 439 irq_handler_t detect_int,
405 void *data) 440 void *data)
406{ 441{
407 /* setup GPIO for PXA25x MMC controller */
408 pxa_gpio_mode(GPIO6_MMCCLK_MD);
409 pxa_gpio_mode(GPIO8_MMCCS0_MD);
410
411 /* detect card insert/eject */ 442 /* detect card insert/eject */
412 mmc_detect_int = detect_int; 443 mmc_detect_int = detect_int;
413 init_timer(&mmc_timer); 444 init_timer(&mmc_timer);
@@ -457,6 +488,8 @@ static void __init lubbock_init(void)
457{ 488{
458 int flashboot = (LUB_CONF_SWITCHES & 1); 489 int flashboot = (LUB_CONF_SWITCHES & 1);
459 490
491 pxa2xx_mfp_config(ARRAY_AND_SIZE(lubbock_pin_config));
492
460 pxa_set_udc_info(&udc_info); 493 pxa_set_udc_info(&udc_info);
461 set_pxa_fb_info(&sharp_lm8v31); 494 set_pxa_fb_info(&sharp_lm8v31);
462 pxa_set_mci_info(&lubbock_mci_platform_data); 495 pxa_set_mci_info(&lubbock_mci_platform_data);
@@ -489,46 +522,6 @@ static void __init lubbock_map_io(void)
489 pxa_map_io(); 522 pxa_map_io();
490 iotable_init(lubbock_io_desc, ARRAY_SIZE(lubbock_io_desc)); 523 iotable_init(lubbock_io_desc, ARRAY_SIZE(lubbock_io_desc));
491 524
492 /* SSP data pins */
493 pxa_gpio_mode(GPIO23_SCLK_MD);
494 pxa_gpio_mode(GPIO25_STXD_MD);
495 pxa_gpio_mode(GPIO26_SRXD_MD);
496
497 /* This enables the BTUART */
498 pxa_gpio_mode(GPIO42_BTRXD_MD);
499 pxa_gpio_mode(GPIO43_BTTXD_MD);
500 pxa_gpio_mode(GPIO44_BTCTS_MD);
501 pxa_gpio_mode(GPIO45_BTRTS_MD);
502
503 GPSR(GPIO48_nPOE) =
504 GPIO_bit(GPIO48_nPOE) |
505 GPIO_bit(GPIO49_nPWE) |
506 GPIO_bit(GPIO50_nPIOR) |
507 GPIO_bit(GPIO51_nPIOW) |
508 GPIO_bit(GPIO52_nPCE_1) |
509 GPIO_bit(GPIO53_nPCE_2);
510
511 pxa_gpio_mode(GPIO48_nPOE_MD);
512 pxa_gpio_mode(GPIO49_nPWE_MD);
513 pxa_gpio_mode(GPIO50_nPIOR_MD);
514 pxa_gpio_mode(GPIO51_nPIOW_MD);
515 pxa_gpio_mode(GPIO52_nPCE_1_MD);
516 pxa_gpio_mode(GPIO53_nPCE_2_MD);
517 pxa_gpio_mode(GPIO54_pSKTSEL_MD);
518 pxa_gpio_mode(GPIO55_nPREG_MD);
519 pxa_gpio_mode(GPIO56_nPWAIT_MD);
520 pxa_gpio_mode(GPIO57_nIOIS16_MD);
521
522 /* This is for the SMC chip select */
523 pxa_gpio_mode(GPIO79_nCS_3_MD);
524
525 /* setup sleep mode values */
526 PWER = 0x00000002;
527 PFER = 0x00000000;
528 PRER = 0x00000002;
529 PGSR0 = 0x00008000;
530 PGSR1 = 0x003F0202;
531 PGSR2 = 0x0001C000;
532 PCFR |= PCFR_OPDE; 525 PCFR |= PCFR_OPDE;
533} 526}
534 527
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c
index d98ef7ada2f8..d70be75bd199 100644
--- a/arch/arm/mach-pxa/magician.c
+++ b/arch/arm/mach-pxa/magician.c
@@ -16,24 +16,106 @@
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/platform_device.h> 18#include <linux/platform_device.h>
19#include <linux/delay.h>
19#include <linux/gpio_keys.h> 20#include <linux/gpio_keys.h>
20#include <linux/input.h> 21#include <linux/input.h>
22#include <linux/mfd/htc-egpio.h>
23#include <linux/mfd/htc-pasic3.h>
21#include <linux/mtd/mtd.h> 24#include <linux/mtd/mtd.h>
22#include <linux/mtd/map.h> 25#include <linux/mtd/map.h>
23#include <linux/mtd/physmap.h> 26#include <linux/mtd/physmap.h>
27#include <linux/pda_power.h>
24 28
25#include <asm/gpio.h> 29#include <asm/gpio.h>
26#include <asm/hardware.h> 30#include <asm/hardware.h>
27#include <asm/mach-types.h> 31#include <asm/mach-types.h>
28#include <asm/mach/arch.h> 32#include <asm/mach/arch.h>
29#include <asm/arch/magician.h> 33#include <asm/arch/magician.h>
34#include <asm/arch/mfp-pxa27x.h>
30#include <asm/arch/pxa-regs.h> 35#include <asm/arch/pxa-regs.h>
31#include <asm/arch/pxafb.h> 36#include <asm/arch/pxafb.h>
37#include <asm/arch/i2c.h>
38#include <asm/arch/mmc.h>
32#include <asm/arch/irda.h> 39#include <asm/arch/irda.h>
33#include <asm/arch/ohci.h> 40#include <asm/arch/ohci.h>
34 41
35#include "generic.h" 42#include "generic.h"
36 43
44static unsigned long magician_pin_config[] = {
45
46 /* SDRAM and Static Memory I/O Signals */
47 GPIO20_nSDCS_2,
48 GPIO21_nSDCS_3,
49 GPIO15_nCS_1,
50 GPIO78_nCS_2, /* PASIC3 */
51 GPIO79_nCS_3, /* EGPIO CPLD */
52 GPIO80_nCS_4,
53 GPIO33_nCS_5,
54
55 /* I2C */
56 GPIO117_I2C_SCL,
57 GPIO118_I2C_SDA,
58
59 /* PWM 0 */
60 GPIO16_PWM0_OUT,
61
62 /* I2S */
63 GPIO28_I2S_BITCLK_OUT,
64 GPIO29_I2S_SDATA_IN,
65 GPIO31_I2S_SYNC,
66 GPIO113_I2S_SYSCLK,
67
68 /* SSP 2 */
69 GPIO19_SSP2_SCLK,
70 GPIO14_SSP2_SFRM,
71 GPIO89_SSP2_TXD,
72 GPIO88_SSP2_RXD,
73
74 /* MMC */
75 GPIO32_MMC_CLK,
76 GPIO92_MMC_DAT_0,
77 GPIO109_MMC_DAT_1,
78 GPIO110_MMC_DAT_2,
79 GPIO111_MMC_DAT_3,
80 GPIO112_MMC_CMD,
81
82 /* LCD */
83 GPIO58_LCD_LDD_0,
84 GPIO59_LCD_LDD_1,
85 GPIO60_LCD_LDD_2,
86 GPIO61_LCD_LDD_3,
87 GPIO62_LCD_LDD_4,
88 GPIO63_LCD_LDD_5,
89 GPIO64_LCD_LDD_6,
90 GPIO65_LCD_LDD_7,
91 GPIO66_LCD_LDD_8,
92 GPIO67_LCD_LDD_9,
93 GPIO68_LCD_LDD_10,
94 GPIO69_LCD_LDD_11,
95 GPIO70_LCD_LDD_12,
96 GPIO71_LCD_LDD_13,
97 GPIO72_LCD_LDD_14,
98 GPIO73_LCD_LDD_15,
99 GPIO74_LCD_FCLK,
100 GPIO75_LCD_LCLK,
101 GPIO76_LCD_PCLK,
102 GPIO77_LCD_BIAS,
103
104 /* QCI */
105 GPIO12_CIF_DD_7,
106 GPIO17_CIF_DD_6,
107 GPIO50_CIF_DD_3,
108 GPIO51_CIF_DD_2,
109 GPIO52_CIF_DD_4,
110 GPIO53_CIF_MCLK,
111 GPIO54_CIF_PCLK,
112 GPIO55_CIF_DD_1,
113 GPIO81_CIF_DD_0,
114 GPIO82_CIF_DD_5,
115 GPIO84_CIF_FV,
116 GPIO85_CIF_LV,
117};
118
37/* 119/*
38 * IRDA 120 * IRDA
39 */ 121 */
@@ -83,8 +165,64 @@ static struct platform_device gpio_keys = {
83 .id = -1, 165 .id = -1,
84}; 166};
85 167
168
169/*
170 * EGPIO (Xilinx CPLD)
171 *
172 * 7 32-bit aligned 8-bit registers: 3x output, 1x irq, 3x input
173 */
174
175static struct resource egpio_resources[] = {
176 [0] = {
177 .start = PXA_CS3_PHYS,
178 .end = PXA_CS3_PHYS + 0x20,
179 .flags = IORESOURCE_MEM,
180 },
181 [1] = {
182 .start = gpio_to_irq(GPIO13_MAGICIAN_CPLD_IRQ),
183 .end = gpio_to_irq(GPIO13_MAGICIAN_CPLD_IRQ),
184 .flags = IORESOURCE_IRQ,
185 },
186};
187
188static struct htc_egpio_chip egpio_chips[] = {
189 [0] = {
190 .reg_start = 0,
191 .gpio_base = MAGICIAN_EGPIO(0, 0),
192 .num_gpios = 24,
193 .direction = HTC_EGPIO_OUTPUT,
194 .initial_values = 0x40, /* EGPIO_MAGICIAN_GSM_RESET */
195 },
196 [1] = {
197 .reg_start = 4,
198 .gpio_base = MAGICIAN_EGPIO(4, 0),
199 .num_gpios = 24,
200 .direction = HTC_EGPIO_INPUT,
201 },
202};
203
204static struct htc_egpio_platform_data egpio_info = {
205 .reg_width = 8,
206 .bus_width = 32,
207 .irq_base = IRQ_BOARD_START,
208 .num_irqs = 4,
209 .ack_register = 3,
210 .chip = egpio_chips,
211 .num_chips = ARRAY_SIZE(egpio_chips),
212};
213
214static struct platform_device egpio = {
215 .name = "htc-egpio",
216 .id = -1,
217 .resource = egpio_resources,
218 .num_resources = ARRAY_SIZE(egpio_resources),
219 .dev = {
220 .platform_data = &egpio_info,
221 },
222};
223
86/* 224/*
87 * LCD - Toppoly TD028STEB1 225 * LCD - Toppoly TD028STEB1 or Samsung LTP280QV
88 */ 226 */
89 227
90static struct pxafb_mode_info toppoly_modes[] = { 228static struct pxafb_mode_info toppoly_modes[] = {
@@ -103,12 +241,99 @@ static struct pxafb_mode_info toppoly_modes[] = {
103 }, 241 },
104}; 242};
105 243
244static struct pxafb_mode_info samsung_modes[] = {
245 {
246 .pixclock = 96153,
247 .bpp = 16,
248 .xres = 240,
249 .yres = 320,
250 .hsync_len = 8,
251 .vsync_len = 4,
252 .left_margin = 9,
253 .upper_margin = 4,
254 .right_margin = 9,
255 .lower_margin = 4,
256 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
257 },
258};
259
260static void toppoly_lcd_power(int on, struct fb_var_screeninfo *si)
261{
262 pr_debug("Toppoly LCD power\n");
263
264 if (on) {
265 pr_debug("on\n");
266 gpio_set_value(EGPIO_MAGICIAN_TOPPOLY_POWER, 1);
267 gpio_set_value(GPIO106_MAGICIAN_LCD_POWER_3, 1);
268 udelay(2000);
269 gpio_set_value(EGPIO_MAGICIAN_LCD_POWER, 1);
270 udelay(2000);
271 /* FIXME: enable LCDC here */
272 udelay(2000);
273 gpio_set_value(GPIO104_MAGICIAN_LCD_POWER_1, 1);
274 udelay(2000);
275 gpio_set_value(GPIO105_MAGICIAN_LCD_POWER_2, 1);
276 } else {
277 pr_debug("off\n");
278 msleep(15);
279 gpio_set_value(GPIO105_MAGICIAN_LCD_POWER_2, 0);
280 udelay(500);
281 gpio_set_value(GPIO104_MAGICIAN_LCD_POWER_1, 0);
282 udelay(1000);
283 gpio_set_value(GPIO106_MAGICIAN_LCD_POWER_3, 0);
284 gpio_set_value(EGPIO_MAGICIAN_LCD_POWER, 0);
285 }
286}
287
288static void samsung_lcd_power(int on, struct fb_var_screeninfo *si)
289{
290 pr_debug("Samsung LCD power\n");
291
292 if (on) {
293 pr_debug("on\n");
294 if (system_rev < 3)
295 gpio_set_value(GPIO75_MAGICIAN_SAMSUNG_POWER, 1);
296 else
297 gpio_set_value(EGPIO_MAGICIAN_LCD_POWER, 1);
298 mdelay(10);
299 gpio_set_value(GPIO106_MAGICIAN_LCD_POWER_3, 1);
300 mdelay(10);
301 gpio_set_value(GPIO104_MAGICIAN_LCD_POWER_1, 1);
302 mdelay(30);
303 gpio_set_value(GPIO105_MAGICIAN_LCD_POWER_2, 1);
304 mdelay(10);
305 } else {
306 pr_debug("off\n");
307 mdelay(10);
308 gpio_set_value(GPIO105_MAGICIAN_LCD_POWER_2, 0);
309 mdelay(30);
310 gpio_set_value(GPIO104_MAGICIAN_LCD_POWER_1, 0);
311 mdelay(10);
312 gpio_set_value(GPIO106_MAGICIAN_LCD_POWER_3, 0);
313 mdelay(10);
314 if (system_rev < 3)
315 gpio_set_value(GPIO75_MAGICIAN_SAMSUNG_POWER, 0);
316 else
317 gpio_set_value(EGPIO_MAGICIAN_LCD_POWER, 0);
318 }
319}
320
106static struct pxafb_mach_info toppoly_info = { 321static struct pxafb_mach_info toppoly_info = {
107 .modes = toppoly_modes, 322 .modes = toppoly_modes,
108 .num_modes = 1, 323 .num_modes = 1,
109 .fixed_modes = 1, 324 .fixed_modes = 1,
110 .lccr0 = LCCR0_Color | LCCR0_Sngl | LCCR0_Act, 325 .lccr0 = LCCR0_Color | LCCR0_Sngl | LCCR0_Act,
111 .lccr3 = LCCR3_PixRsEdg, 326 .lccr3 = LCCR3_PixRsEdg,
327 .pxafb_lcd_power = toppoly_lcd_power,
328};
329
330static struct pxafb_mach_info samsung_info = {
331 .modes = samsung_modes,
332 .num_modes = 1,
333 .fixed_modes = 1,
334 .lccr0 = LCCR0_LDDALT | LCCR0_Color | LCCR0_Sngl | LCCR0_Act,
335 .lccr3 = LCCR3_PixFlEdg,
336 .pxafb_lcd_power = samsung_lcd_power,
112}; 337};
113 338
114/* 339/*
@@ -120,9 +345,18 @@ static void magician_set_bl_intensity(int intensity)
120 if (intensity) { 345 if (intensity) {
121 PWM_CTRL0 = 1; 346 PWM_CTRL0 = 1;
122 PWM_PERVAL0 = 0xc8; 347 PWM_PERVAL0 = 0xc8;
123 PWM_PWDUTY0 = intensity; 348 if (intensity > 0xc7) {
349 PWM_PWDUTY0 = intensity - 0x48;
350 gpio_set_value(EGPIO_MAGICIAN_BL_POWER2, 1);
351 } else {
352 PWM_PWDUTY0 = intensity;
353 gpio_set_value(EGPIO_MAGICIAN_BL_POWER2, 0);
354 }
355 gpio_set_value(EGPIO_MAGICIAN_BL_POWER, 1);
124 pxa_set_cken(CKEN_PWM0, 1); 356 pxa_set_cken(CKEN_PWM0, 1);
125 } else { 357 } else {
358 /* PWM_PWDUTY0 = intensity; */
359 gpio_set_value(EGPIO_MAGICIAN_BL_POWER, 0);
126 pxa_set_cken(CKEN_PWM0, 0); 360 pxa_set_cken(CKEN_PWM0, 0);
127 } 361 }
128} 362}
@@ -130,18 +364,215 @@ static void magician_set_bl_intensity(int intensity)
130static struct generic_bl_info backlight_info = { 364static struct generic_bl_info backlight_info = {
131 .default_intensity = 0x64, 365 .default_intensity = 0x64,
132 .limit_mask = 0x0b, 366 .limit_mask = 0x0b,
133 .max_intensity = 0xc7, 367 .max_intensity = 0xc7+0x48,
134 .set_bl_intensity = magician_set_bl_intensity, 368 .set_bl_intensity = magician_set_bl_intensity,
135}; 369};
136 370
137static struct platform_device backlight = { 371static struct platform_device backlight = {
138 .name = "corgi-bl", 372 .name = "generic-bl",
139 .dev = { 373 .dev = {
140 .platform_data = &backlight_info, 374 .platform_data = &backlight_info,
141 }, 375 },
142 .id = -1, 376 .id = -1,
143}; 377};
144 378
379/*
380 * LEDs
381 */
382
383struct gpio_led gpio_leds[] = {
384 {
385 .name = "magician::vibra",
386 .default_trigger = "none",
387 .gpio = GPIO22_MAGICIAN_VIBRA_EN,
388 },
389 {
390 .name = "magician::phone_bl",
391 .default_trigger = "none",
392 .gpio = GPIO103_MAGICIAN_LED_KP,
393 },
394};
395
396static struct gpio_led_platform_data gpio_led_info = {
397 .leds = gpio_leds,
398 .num_leds = ARRAY_SIZE(gpio_leds),
399};
400
401static struct platform_device leds_gpio = {
402 .name = "leds-gpio",
403 .id = -1,
404 .dev = {
405 .platform_data = &gpio_led_info,
406 },
407};
408
409static struct pasic3_led pasic3_leds[] = {
410 {
411 .led = {
412 .name = "magician:red",
413 .default_trigger = "ds2760-battery.0-charging",
414 },
415 .hw_num = 0,
416 .bit2 = PASIC3_BIT2_LED0,
417 .mask = PASIC3_MASK_LED0,
418 },
419 {
420 .led = {
421 .name = "magician:green",
422 .default_trigger = "ds2760-battery.0-charging-or-full",
423 },
424 .hw_num = 1,
425 .bit2 = PASIC3_BIT2_LED1,
426 .mask = PASIC3_MASK_LED1,
427 },
428 {
429 .led = {
430 .name = "magician:blue",
431 .default_trigger = "bluetooth",
432 },
433 .hw_num = 2,
434 .bit2 = PASIC3_BIT2_LED2,
435 .mask = PASIC3_MASK_LED2,
436 },
437};
438
439static struct platform_device pasic3;
440
441static struct pasic3_leds_machinfo __devinit pasic3_leds_info = {
442 .num_leds = ARRAY_SIZE(pasic3_leds),
443 .power_gpio = EGPIO_MAGICIAN_LED_POWER,
444 .leds = pasic3_leds,
445};
446
447/*
448 * PASIC3 with DS1WM
449 */
450
451static struct resource pasic3_resources[] = {
452 [0] = {
453 .start = PXA_CS2_PHYS,
454 .end = PXA_CS2_PHYS + 0x1b,
455 .flags = IORESOURCE_MEM,
456 },
457 /* No IRQ handler in the PASIC3, DS1WM needs an external IRQ */
458 [1] = {
459 .start = gpio_to_irq(GPIO107_MAGICIAN_DS1WM_IRQ),
460 .end = gpio_to_irq(GPIO107_MAGICIAN_DS1WM_IRQ),
461 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
462 }
463};
464
465static struct pasic3_platform_data pasic3_platform_data = {
466 .bus_shift = 2,
467 .led_pdata = &pasic3_leds_info,
468 .clock_rate = 4000000,
469};
470
471static struct platform_device pasic3 = {
472 .name = "pasic3",
473 .id = -1,
474 .num_resources = ARRAY_SIZE(pasic3_resources),
475 .resource = pasic3_resources,
476 .dev = {
477 .platform_data = &pasic3_platform_data,
478 },
479};
480
481/*
482 * External power
483 */
484
485static int magician_is_ac_online(void)
486{
487 return gpio_get_value(EGPIO_MAGICIAN_CABLE_STATE_AC);
488}
489
490static int magician_is_usb_online(void)
491{
492 return gpio_get_value(EGPIO_MAGICIAN_CABLE_STATE_USB);
493}
494
495static void magician_set_charge(int flags)
496{
497 gpio_set_value(GPIO30_MAGICIAN_nCHARGE_EN, !flags);
498 gpio_set_value(EGPIO_MAGICIAN_CHARGE_EN, flags);
499}
500
501static char *magician_supplicants[] = {
502 "ds2760-battery.0", "backup-battery"
503};
504
505static struct pda_power_pdata power_supply_info = {
506 .is_ac_online = magician_is_ac_online,
507 .is_usb_online = magician_is_usb_online,
508 .set_charge = magician_set_charge,
509 .supplied_to = magician_supplicants,
510 .num_supplicants = ARRAY_SIZE(magician_supplicants),
511};
512
513static struct resource power_supply_resources[] = {
514 [0] = {
515 .name = "ac",
516 .flags = IORESOURCE_IRQ,
517 .start = IRQ_MAGICIAN_AC,
518 .end = IRQ_MAGICIAN_AC,
519 },
520 [1] = {
521 .name = "usb",
522 .flags = IORESOURCE_IRQ,
523 .start = IRQ_MAGICIAN_AC,
524 .end = IRQ_MAGICIAN_AC,
525 },
526};
527
528static struct platform_device power_supply = {
529 .name = "pda-power",
530 .id = -1,
531 .dev = {
532 .platform_data = &power_supply_info,
533 },
534 .resource = power_supply_resources,
535 .num_resources = ARRAY_SIZE(power_supply_resources),
536};
537
538
539/*
540 * MMC/SD
541 */
542
543static int magician_mci_init(struct device *dev,
544 irq_handler_t detect_irq, void *data)
545{
546 return request_irq(IRQ_MAGICIAN_SD, detect_irq,
547 IRQF_DISABLED | IRQF_SAMPLE_RANDOM,
548 "MMC card detect", data);
549}
550
551static void magician_mci_setpower(struct device *dev, unsigned int vdd)
552{
553 struct pxamci_platform_data *pdata = dev->platform_data;
554
555 gpio_set_value(EGPIO_MAGICIAN_SD_POWER, (1 << vdd) & pdata->ocr_mask);
556}
557
558static int magician_mci_get_ro(struct device *dev)
559{
560 return (!gpio_get_value(EGPIO_MAGICIAN_nSD_READONLY));
561}
562
563static void magician_mci_exit(struct device *dev, void *data)
564{
565 free_irq(IRQ_MAGICIAN_SD, data);
566}
567
568static struct pxamci_platform_data magician_mci_info = {
569 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
570 .init = magician_mci_init,
571 .get_ro = magician_mci_get_ro,
572 .setpower = magician_mci_setpower,
573 .exit = magician_mci_exit,
574};
575
145 576
146/* 577/*
147 * USB OHCI 578 * USB OHCI
@@ -166,6 +597,11 @@ static struct pxaohci_platform_data magician_ohci_info = {
166 * StrataFlash 597 * StrataFlash
167 */ 598 */
168 599
600static void magician_set_vpp(struct map_info *map, int vpp)
601{
602 gpio_set_value(EGPIO_MAGICIAN_FLASH_VPP, vpp);
603}
604
169#define PXA_CS_SIZE 0x04000000 605#define PXA_CS_SIZE 0x04000000
170 606
171static struct resource strataflash_resource = { 607static struct resource strataflash_resource = {
@@ -176,13 +612,14 @@ static struct resource strataflash_resource = {
176 612
177static struct physmap_flash_data strataflash_data = { 613static struct physmap_flash_data strataflash_data = {
178 .width = 4, 614 .width = 4,
615 .set_vpp = magician_set_vpp,
179}; 616};
180 617
181static struct platform_device strataflash = { 618static struct platform_device strataflash = {
182 .name = "physmap-flash", 619 .name = "physmap-flash",
183 .id = -1, 620 .id = -1,
184 .num_resources = 1,
185 .resource = &strataflash_resource, 621 .resource = &strataflash_resource,
622 .num_resources = 1,
186 .dev = { 623 .dev = {
187 .platform_data = &strataflash_data, 624 .platform_data = &strataflash_data,
188 }, 625 },
@@ -194,16 +631,43 @@ static struct platform_device strataflash = {
194 631
195static struct platform_device *devices[] __initdata = { 632static struct platform_device *devices[] __initdata = {
196 &gpio_keys, 633 &gpio_keys,
634 &egpio,
197 &backlight, 635 &backlight,
636 &pasic3,
637 &power_supply,
198 &strataflash, 638 &strataflash,
639 &leds_gpio,
199}; 640};
200 641
201static void __init magician_init(void) 642static void __init magician_init(void)
202{ 643{
644 void __iomem *cpld;
645 int lcd_select;
646
647 pxa2xx_mfp_config(ARRAY_AND_SIZE(magician_pin_config));
648
203 platform_add_devices(devices, ARRAY_SIZE(devices)); 649 platform_add_devices(devices, ARRAY_SIZE(devices));
650 pxa_set_i2c_info(NULL);
651 pxa_set_mci_info(&magician_mci_info);
204 pxa_set_ohci_info(&magician_ohci_info); 652 pxa_set_ohci_info(&magician_ohci_info);
205 pxa_set_ficp_info(&magician_ficp_info); 653 pxa_set_ficp_info(&magician_ficp_info);
206 set_pxa_fb_info(&toppoly_info); 654
655 /* Check LCD type we have */
656 cpld = ioremap_nocache(PXA_CS3_PHYS, 0x1000);
657 if (cpld) {
658 u8 board_id = __raw_readb(cpld+0x14);
659 system_rev = board_id & 0x7;
660 lcd_select = board_id & 0x8;
661 iounmap(cpld);
662 pr_info("LCD type: %s\n", lcd_select ? "Samsung" : "Toppoly");
663 if (lcd_select && (system_rev < 3))
664 pxa_gpio_mode(GPIO75_MAGICIAN_SAMSUNG_POWER_MD);
665 pxa_gpio_mode(GPIO104_MAGICIAN_LCD_POWER_1_MD);
666 pxa_gpio_mode(GPIO105_MAGICIAN_LCD_POWER_2_MD);
667 pxa_gpio_mode(GPIO106_MAGICIAN_LCD_POWER_3_MD);
668 set_pxa_fb_info(lcd_select ? &samsung_info : &toppoly_info);
669 } else
670 pr_err("LCD detection: CPLD mapping failed\n");
207} 671}
208 672
209 673
diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c
index 72a436fb9a29..18d47cfa2a18 100644
--- a/arch/arm/mach-pxa/mainstone.c
+++ b/arch/arm/mach-pxa/mainstone.c
@@ -24,6 +24,8 @@
24#include <linux/mtd/mtd.h> 24#include <linux/mtd/mtd.h>
25#include <linux/mtd/partitions.h> 25#include <linux/mtd/partitions.h>
26#include <linux/backlight.h> 26#include <linux/backlight.h>
27#include <linux/input.h>
28#include <linux/gpio_keys.h>
27 29
28#include <asm/types.h> 30#include <asm/types.h>
29#include <asm/setup.h> 31#include <asm/setup.h>
@@ -40,16 +42,94 @@
40 42
41#include <asm/arch/pxa-regs.h> 43#include <asm/arch/pxa-regs.h>
42#include <asm/arch/pxa2xx-regs.h> 44#include <asm/arch/pxa2xx-regs.h>
45#include <asm/arch/mfp-pxa27x.h>
43#include <asm/arch/mainstone.h> 46#include <asm/arch/mainstone.h>
44#include <asm/arch/audio.h> 47#include <asm/arch/audio.h>
45#include <asm/arch/pxafb.h> 48#include <asm/arch/pxafb.h>
49#include <asm/arch/i2c.h>
46#include <asm/arch/mmc.h> 50#include <asm/arch/mmc.h>
47#include <asm/arch/irda.h> 51#include <asm/arch/irda.h>
48#include <asm/arch/ohci.h> 52#include <asm/arch/ohci.h>
53#include <asm/arch/pxa27x_keypad.h>
49 54
50#include "generic.h" 55#include "generic.h"
51#include "devices.h" 56#include "devices.h"
52 57
58static unsigned long mainstone_pin_config[] = {
59 /* Chip Select */
60 GPIO15_nCS_1,
61
62 /* LCD - 16bpp Active TFT */
63 GPIO58_LCD_LDD_0,
64 GPIO59_LCD_LDD_1,
65 GPIO60_LCD_LDD_2,
66 GPIO61_LCD_LDD_3,
67 GPIO62_LCD_LDD_4,
68 GPIO63_LCD_LDD_5,
69 GPIO64_LCD_LDD_6,
70 GPIO65_LCD_LDD_7,
71 GPIO66_LCD_LDD_8,
72 GPIO67_LCD_LDD_9,
73 GPIO68_LCD_LDD_10,
74 GPIO69_LCD_LDD_11,
75 GPIO70_LCD_LDD_12,
76 GPIO71_LCD_LDD_13,
77 GPIO72_LCD_LDD_14,
78 GPIO73_LCD_LDD_15,
79 GPIO74_LCD_FCLK,
80 GPIO75_LCD_LCLK,
81 GPIO76_LCD_PCLK,
82 GPIO77_LCD_BIAS,
83 GPIO16_PWM0_OUT, /* Backlight */
84
85 /* MMC */
86 GPIO32_MMC_CLK,
87 GPIO112_MMC_CMD,
88 GPIO92_MMC_DAT_0,
89 GPIO109_MMC_DAT_1,
90 GPIO110_MMC_DAT_2,
91 GPIO111_MMC_DAT_3,
92
93 /* USB Host Port 1 */
94 GPIO88_USBH1_PWR,
95 GPIO89_USBH1_PEN,
96
97 /* PC Card */
98 GPIO48_nPOE,
99 GPIO49_nPWE,
100 GPIO50_nPIOR,
101 GPIO51_nPIOW,
102 GPIO85_nPCE_1,
103 GPIO54_nPCE_2,
104 GPIO79_PSKTSEL,
105 GPIO55_nPREG,
106 GPIO56_nPWAIT,
107 GPIO57_nIOIS16,
108
109 /* AC97 */
110 GPIO45_AC97_SYSCLK,
111
112 /* Keypad */
113 GPIO93_KP_DKIN_0 | WAKEUP_ON_LEVEL_HIGH,
114 GPIO94_KP_DKIN_1 | WAKEUP_ON_LEVEL_HIGH,
115 GPIO95_KP_DKIN_2 | WAKEUP_ON_LEVEL_HIGH,
116 GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
117 GPIO101_KP_MKIN_1 | WAKEUP_ON_LEVEL_HIGH,
118 GPIO102_KP_MKIN_2 | WAKEUP_ON_LEVEL_HIGH,
119 GPIO97_KP_MKIN_3 | WAKEUP_ON_LEVEL_HIGH,
120 GPIO98_KP_MKIN_4 | WAKEUP_ON_LEVEL_HIGH,
121 GPIO99_KP_MKIN_5 | WAKEUP_ON_LEVEL_HIGH,
122 GPIO103_KP_MKOUT_0,
123 GPIO104_KP_MKOUT_1,
124 GPIO105_KP_MKOUT_2,
125 GPIO106_KP_MKOUT_3,
126 GPIO107_KP_MKOUT_4,
127 GPIO108_KP_MKOUT_5,
128 GPIO96_KP_MKOUT_6,
129
130 /* GPIO */
131 GPIO1_GPIO | WAKEUP_ON_EDGE_BOTH,
132};
53 133
54static unsigned long mainstone_irq_enabled; 134static unsigned long mainstone_irq_enabled;
55 135
@@ -278,13 +358,13 @@ static int mainstone_backlight_update_status(struct backlight_device *bl)
278 bl->props.fb_blank != FB_BLANK_UNBLANK) 358 bl->props.fb_blank != FB_BLANK_UNBLANK)
279 brightness = 0; 359 brightness = 0;
280 360
281 if (brightness != 0) { 361 if (brightness != 0)
282 pxa_gpio_mode(GPIO16_PWM0_MD);
283 pxa_set_cken(CKEN_PWM0, 1); 362 pxa_set_cken(CKEN_PWM0, 1);
284 } 363
285 PWM_CTRL0 = 0; 364 PWM_CTRL0 = 0;
286 PWM_PWDUTY0 = brightness; 365 PWM_PWDUTY0 = brightness;
287 PWM_PERVAL0 = bl->props.max_brightness; 366 PWM_PERVAL0 = bl->props.max_brightness;
367
288 if (brightness == 0) 368 if (brightness == 0)
289 pxa_set_cken(CKEN_PWM0, 0); 369 pxa_set_cken(CKEN_PWM0, 0);
290 return 0; /* pointless return value */ 370 return 0; /* pointless return value */
@@ -362,16 +442,6 @@ static int mainstone_mci_init(struct device *dev, irq_handler_t mstone_detect_in
362{ 442{
363 int err; 443 int err;
364 444
365 /*
366 * setup GPIO for PXA27x MMC controller
367 */
368 pxa_gpio_mode(GPIO32_MMCCLK_MD);
369 pxa_gpio_mode(GPIO112_MMCCMD_MD);
370 pxa_gpio_mode(GPIO92_MMCDAT0_MD);
371 pxa_gpio_mode(GPIO109_MMCDAT1_MD);
372 pxa_gpio_mode(GPIO110_MMCDAT2_MD);
373 pxa_gpio_mode(GPIO111_MMCDAT3_MD);
374
375 /* make sure SD/Memory Stick multiplexer's signals 445 /* make sure SD/Memory Stick multiplexer's signals
376 * are routed to MMC controller 446 * are routed to MMC controller
377 */ 447 */
@@ -434,19 +504,39 @@ static struct pxaficp_platform_data mainstone_ficp_platform_data = {
434 .transceiver_mode = mainstone_irda_transceiver_mode, 504 .transceiver_mode = mainstone_irda_transceiver_mode,
435}; 505};
436 506
507static struct gpio_keys_button gpio_keys_button[] = {
508 [0] = {
509 .desc = "wakeup",
510 .code = KEY_SUSPEND,
511 .type = EV_KEY,
512 .gpio = 1,
513 .wakeup = 1,
514 },
515};
516
517static struct gpio_keys_platform_data mainstone_gpio_keys = {
518 .buttons = gpio_keys_button,
519 .nbuttons = 1,
520};
521
522static struct platform_device mst_gpio_keys_device = {
523 .name = "gpio-keys",
524 .id = -1,
525 .dev = {
526 .platform_data = &mainstone_gpio_keys,
527 },
528};
529
437static struct platform_device *platform_devices[] __initdata = { 530static struct platform_device *platform_devices[] __initdata = {
438 &smc91x_device, 531 &smc91x_device,
439 &mst_audio_device, 532 &mst_audio_device,
440 &mst_flash_device[0], 533 &mst_flash_device[0],
441 &mst_flash_device[1], 534 &mst_flash_device[1],
535 &mst_gpio_keys_device,
442}; 536};
443 537
444static int mainstone_ohci_init(struct device *dev) 538static int mainstone_ohci_init(struct device *dev)
445{ 539{
446 /* setup Port1 GPIO pin. */
447 pxa_gpio_mode( 88 | GPIO_ALT_FN_1_IN); /* USBHPWR1 */
448 pxa_gpio_mode( 89 | GPIO_ALT_FN_2_OUT); /* USBHPEN1 */
449
450 /* Set the Power Control Polarity Low and Power Sense 540 /* Set the Power Control Polarity Low and Power Sense
451 Polarity Low to active low. */ 541 Polarity Low to active low. */
452 UHCHR = (UHCHR | UHCHR_PCPL | UHCHR_PSPL) & 542 UHCHR = (UHCHR | UHCHR_PCPL | UHCHR_PSPL) &
@@ -460,10 +550,63 @@ static struct pxaohci_platform_data mainstone_ohci_platform_data = {
460 .init = mainstone_ohci_init, 550 .init = mainstone_ohci_init,
461}; 551};
462 552
553#if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULES)
554static unsigned int mainstone_matrix_keys[] = {
555 KEY(0, 0, KEY_A), KEY(1, 0, KEY_B), KEY(2, 0, KEY_C),
556 KEY(3, 0, KEY_D), KEY(4, 0, KEY_E), KEY(5, 0, KEY_F),
557 KEY(0, 1, KEY_G), KEY(1, 1, KEY_H), KEY(2, 1, KEY_I),
558 KEY(3, 1, KEY_J), KEY(4, 1, KEY_K), KEY(5, 1, KEY_L),
559 KEY(0, 2, KEY_M), KEY(1, 2, KEY_N), KEY(2, 2, KEY_O),
560 KEY(3, 2, KEY_P), KEY(4, 2, KEY_Q), KEY(5, 2, KEY_R),
561 KEY(0, 3, KEY_S), KEY(1, 3, KEY_T), KEY(2, 3, KEY_U),
562 KEY(3, 3, KEY_V), KEY(4, 3, KEY_W), KEY(5, 3, KEY_X),
563 KEY(2, 4, KEY_Y), KEY(3, 4, KEY_Z),
564
565 KEY(0, 4, KEY_DOT), /* . */
566 KEY(1, 4, KEY_CLOSE), /* @ */
567 KEY(4, 4, KEY_SLASH),
568 KEY(5, 4, KEY_BACKSLASH),
569 KEY(0, 5, KEY_HOME),
570 KEY(1, 5, KEY_LEFTSHIFT),
571 KEY(2, 5, KEY_SPACE),
572 KEY(3, 5, KEY_SPACE),
573 KEY(4, 5, KEY_ENTER),
574 KEY(5, 5, KEY_BACKSPACE),
575
576 KEY(0, 6, KEY_UP),
577 KEY(1, 6, KEY_DOWN),
578 KEY(2, 6, KEY_LEFT),
579 KEY(3, 6, KEY_RIGHT),
580 KEY(4, 6, KEY_SELECT),
581};
582
583struct pxa27x_keypad_platform_data mainstone_keypad_info = {
584 .matrix_key_rows = 6,
585 .matrix_key_cols = 7,
586 .matrix_key_map = mainstone_matrix_keys,
587 .matrix_key_map_size = ARRAY_SIZE(mainstone_matrix_keys),
588
589 .enable_rotary0 = 1,
590 .rotary0_up_key = KEY_UP,
591 .rotary0_down_key = KEY_DOWN,
592
593 .debounce_interval = 30,
594};
595
596static void __init mainstone_init_keypad(void)
597{
598 pxa_set_keypad_info(&mainstone_keypad_info);
599}
600#else
601static inline void mainstone_init_keypad(void) {}
602#endif
603
463static void __init mainstone_init(void) 604static void __init mainstone_init(void)
464{ 605{
465 int SW7 = 0; /* FIXME: get from SCR (Mst doc section 3.2.1.1) */ 606 int SW7 = 0; /* FIXME: get from SCR (Mst doc section 3.2.1.1) */
466 607
608 pxa2xx_mfp_config(ARRAY_AND_SIZE(mainstone_pin_config));
609
467 mst_flash_data[0].width = (BOOT_DEF & 1) ? 2 : 4; 610 mst_flash_data[0].width = (BOOT_DEF & 1) ? 2 : 4;
468 mst_flash_data[1].width = 4; 611 mst_flash_data[1].width = 4;
469 612
@@ -480,31 +623,6 @@ static void __init mainstone_init(void)
480 */ 623 */
481 ARB_CNTRL = ARB_CORE_PARK | 0x234; 624 ARB_CNTRL = ARB_CORE_PARK | 0x234;
482 625
483 /*
484 * On Mainstone, we route AC97_SYSCLK via GPIO45 to
485 * the audio daughter card
486 */
487 pxa_gpio_mode(GPIO45_SYSCLK_AC97_MD);
488
489 GPSR(GPIO48_nPOE) =
490 GPIO_bit(GPIO48_nPOE) |
491 GPIO_bit(GPIO49_nPWE) |
492 GPIO_bit(GPIO50_nPIOR) |
493 GPIO_bit(GPIO51_nPIOW) |
494 GPIO_bit(GPIO85_nPCE_1) |
495 GPIO_bit(GPIO54_nPCE_2);
496
497 pxa_gpio_mode(GPIO48_nPOE_MD);
498 pxa_gpio_mode(GPIO49_nPWE_MD);
499 pxa_gpio_mode(GPIO50_nPIOR_MD);
500 pxa_gpio_mode(GPIO51_nPIOW_MD);
501 pxa_gpio_mode(GPIO85_nPCE_1_MD);
502 pxa_gpio_mode(GPIO54_nPCE_2_MD);
503 pxa_gpio_mode(GPIO79_pSKTSEL_MD);
504 pxa_gpio_mode(GPIO55_nPREG_MD);
505 pxa_gpio_mode(GPIO56_nPWAIT_MD);
506 pxa_gpio_mode(GPIO57_nIOIS16_MD);
507
508 platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); 626 platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
509 627
510 /* reading Mainstone's "Virtual Configuration Register" 628 /* reading Mainstone's "Virtual Configuration Register"
@@ -520,6 +638,9 @@ static void __init mainstone_init(void)
520 pxa_set_mci_info(&mainstone_mci_platform_data); 638 pxa_set_mci_info(&mainstone_mci_platform_data);
521 pxa_set_ficp_info(&mainstone_ficp_platform_data); 639 pxa_set_ficp_info(&mainstone_ficp_platform_data);
522 pxa_set_ohci_info(&mainstone_ohci_platform_data); 640 pxa_set_ohci_info(&mainstone_ohci_platform_data);
641 pxa_set_i2c_info(NULL);
642
643 mainstone_init_keypad();
523} 644}
524 645
525 646
@@ -537,23 +658,9 @@ static void __init mainstone_map_io(void)
537 pxa_map_io(); 658 pxa_map_io();
538 iotable_init(mainstone_io_desc, ARRAY_SIZE(mainstone_io_desc)); 659 iotable_init(mainstone_io_desc, ARRAY_SIZE(mainstone_io_desc));
539 660
540 /* initialize sleep mode regs (wake-up sources, etc) */
541 PGSR0 = 0x00008800;
542 PGSR1 = 0x00000002;
543 PGSR2 = 0x0001FC00;
544 PGSR3 = 0x00001F81;
545 PWER = 0xC0000002;
546 PRER = 0x00000002;
547 PFER = 0x00000002;
548 /* for use I SRAM as framebuffer. */ 661 /* for use I SRAM as framebuffer. */
549 PSLR |= 0xF04; 662 PSLR |= 0xF04;
550 PCFR = 0x66; 663 PCFR = 0x66;
551 /* For Keypad wakeup. */
552 KPC &=~KPC_ASACT;
553 KPC |=KPC_AS;
554 PKWR = 0x000FD000;
555 /* Need read PKWR back after set it. */
556 PKWR;
557} 664}
558 665
559MACHINE_START(MAINSTONE, "Intel HCDDBBVA0 Development Platform (aka Mainstone)") 666MACHINE_START(MAINSTONE, "Intel HCDDBBVA0 Development Platform (aka Mainstone)")
diff --git a/arch/arm/mach-pxa/mfp-pxa2xx.c b/arch/arm/mach-pxa/mfp-pxa2xx.c
new file mode 100644
index 000000000000..22097a1707cc
--- /dev/null
+++ b/arch/arm/mach-pxa/mfp-pxa2xx.c
@@ -0,0 +1,245 @@
1/*
2 * linux/arch/arm/mach-pxa/mfp-pxa2xx.c
3 *
4 * PXA2xx pin mux configuration support
5 *
6 * The GPIOs on PXA2xx can be configured as one of many alternate
7 * functions, this is by concept samilar to the MFP configuration
8 * on PXA3xx, what's more important, the low power pin state and
9 * wakeup detection are also supported by the same framework.
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as
13 * published by the Free Software Foundation.
14 */
15
16#include <linux/module.h>
17#include <linux/kernel.h>
18#include <linux/init.h>
19#include <linux/sysdev.h>
20
21#include <asm/arch/hardware.h>
22#include <asm/arch/pxa-regs.h>
23#include <asm/arch/mfp-pxa2xx.h>
24
25#include "generic.h"
26
27#define PGSR(x) __REG2(0x40F00020, ((x) & 0x60) >> 3)
28
29#define PWER_WE35 (1 << 24)
30
31struct gpio_desc {
32 unsigned valid : 1;
33 unsigned can_wakeup : 1;
34 unsigned keypad_gpio : 1;
35 unsigned int mask; /* bit mask in PWER or PKWR */
36 unsigned long config;
37};
38
39static struct gpio_desc gpio_desc[MFP_PIN_GPIO127 + 1];
40
41static int __mfp_config_gpio(unsigned gpio, unsigned long c)
42{
43 unsigned long gafr, mask = GPIO_bit(gpio);
44 int fn;
45
46 fn = MFP_AF(c);
47 if (fn > 3)
48 return -EINVAL;
49
50 /* alternate function and direction */
51 gafr = GAFR(gpio) & ~(0x3 << ((gpio & 0xf) * 2));
52 GAFR(gpio) = gafr | (fn << ((gpio & 0xf) * 2));
53
54 if (c & MFP_DIR_OUT)
55 GPDR(gpio) |= mask;
56 else
57 GPDR(gpio) &= ~mask;
58
59 /* low power state */
60 switch (c & MFP_LPM_STATE_MASK) {
61 case MFP_LPM_DRIVE_HIGH:
62 PGSR(gpio) |= mask;
63 break;
64 case MFP_LPM_DRIVE_LOW:
65 PGSR(gpio) &= ~mask;
66 break;
67 case MFP_LPM_INPUT:
68 break;
69 default:
70 pr_warning("%s: invalid low power state for GPIO%d\n",
71 __func__, gpio);
72 return -EINVAL;
73 }
74
75 /* give early warning if MFP_LPM_CAN_WAKEUP is set on the
76 * configurations of those pins not able to wakeup
77 */
78 if ((c & MFP_LPM_CAN_WAKEUP) && !gpio_desc[gpio].can_wakeup) {
79 pr_warning("%s: GPIO%d unable to wakeup\n",
80 __func__, gpio);
81 return -EINVAL;
82 }
83
84 if ((c & MFP_LPM_CAN_WAKEUP) && (c & MFP_DIR_OUT)) {
85 pr_warning("%s: output GPIO%d unable to wakeup\n",
86 __func__, gpio);
87 return -EINVAL;
88 }
89
90 return 0;
91}
92
93void pxa2xx_mfp_config(unsigned long *mfp_cfgs, int num)
94{
95 unsigned long flags;
96 unsigned long *c;
97 int i, gpio;
98
99 for (i = 0, c = mfp_cfgs; i < num; i++, c++) {
100
101 gpio = mfp_to_gpio(MFP_PIN(*c));
102
103 if (!gpio_desc[gpio].valid) {
104 pr_warning("%s: GPIO%d is invalid pin\n",
105 __func__, gpio);
106 continue;
107 }
108
109 local_irq_save(flags);
110
111 gpio_desc[gpio].config = *c;
112 __mfp_config_gpio(gpio, *c);
113
114 local_irq_restore(flags);
115 }
116}
117
118int gpio_set_wake(unsigned int gpio, unsigned int on)
119{
120 struct gpio_desc *d;
121 unsigned long c;
122
123 if (gpio > mfp_to_gpio(MFP_PIN_GPIO127))
124 return -EINVAL;
125
126 d = &gpio_desc[gpio];
127 c = d->config;
128
129 if (!d->valid)
130 return -EINVAL;
131
132 if (d->keypad_gpio)
133 return -EINVAL;
134
135 if (d->can_wakeup && (c & MFP_LPM_CAN_WAKEUP)) {
136 if (on) {
137 PWER |= d->mask;
138
139 if (c & MFP_LPM_EDGE_RISE)
140 PRER |= d->mask;
141 else
142 PRER &= ~d->mask;
143
144 if (c & MFP_LPM_EDGE_FALL)
145 PFER |= d->mask;
146 else
147 PFER &= ~d->mask;
148 } else {
149 PWER &= ~d->mask;
150 PRER &= ~d->mask;
151 PFER &= ~d->mask;
152 }
153 }
154 return 0;
155}
156
157#ifdef CONFIG_PXA25x
158static int __init pxa25x_mfp_init(void)
159{
160 int i;
161
162 if (cpu_is_pxa25x()) {
163 for (i = 0; i <= 84; i++)
164 gpio_desc[i].valid = 1;
165
166 for (i = 0; i <= 15; i++) {
167 gpio_desc[i].can_wakeup = 1;
168 gpio_desc[i].mask = GPIO_bit(i);
169 }
170 }
171
172 return 0;
173}
174postcore_initcall(pxa25x_mfp_init);
175#endif /* CONFIG_PXA25x */
176
177#ifdef CONFIG_PXA27x
178static int pxa27x_pkwr_gpio[] = {
179 13, 16, 17, 34, 36, 37, 38, 39, 90, 91, 93, 94,
180 95, 96, 97, 98, 99, 100, 101, 102
181};
182
183int keypad_set_wake(unsigned int on)
184{
185 unsigned int i, gpio, mask = 0;
186
187 if (!on) {
188 PKWR = 0;
189 return 0;
190 }
191
192 for (i = 0; i < ARRAY_SIZE(pxa27x_pkwr_gpio); i++) {
193
194 gpio = pxa27x_pkwr_gpio[i];
195
196 if (gpio_desc[gpio].config & MFP_LPM_CAN_WAKEUP)
197 mask |= gpio_desc[gpio].mask;
198 }
199
200 PKWR = mask;
201 return 0;
202}
203
204static int __init pxa27x_mfp_init(void)
205{
206 int i, gpio;
207
208 if (cpu_is_pxa27x()) {
209 for (i = 0; i <= 120; i++) {
210 /* skip GPIO2, 5, 6, 7, 8, they are not
211 * valid pins allow configuration
212 */
213 if (i == 2 || i == 5 || i == 6 ||
214 i == 7 || i == 8)
215 continue;
216
217 gpio_desc[i].valid = 1;
218 }
219
220 /* Keypad GPIOs */
221 for (i = 0; i < ARRAY_SIZE(pxa27x_pkwr_gpio); i++) {
222 gpio = pxa27x_pkwr_gpio[i];
223 gpio_desc[gpio].can_wakeup = 1;
224 gpio_desc[gpio].keypad_gpio = 1;
225 gpio_desc[gpio].mask = 1 << i;
226 }
227
228 /* Overwrite GPIO13 as a PWER wakeup source */
229 for (i = 0; i <= 15; i++) {
230 /* skip GPIO2, 5, 6, 7, 8 */
231 if (GPIO_bit(i) & 0x1e4)
232 continue;
233
234 gpio_desc[i].can_wakeup = 1;
235 gpio_desc[i].mask = GPIO_bit(i);
236 }
237
238 gpio_desc[35].can_wakeup = 1;
239 gpio_desc[35].mask = PWER_WE35;
240 }
241
242 return 0;
243}
244postcore_initcall(pxa27x_mfp_init);
245#endif /* CONFIG_PXA27x */
diff --git a/arch/arm/mach-pxa/mfp.c b/arch/arm/mach-pxa/mfp-pxa3xx.c
index f5809adce298..b84c3ba7a8d6 100644
--- a/arch/arm/mach-pxa/mfp.c
+++ b/arch/arm/mach-pxa/mfp-pxa3xx.c
@@ -234,22 +234,22 @@ static int pxa3xx_mfp_resume(struct sys_device *d)
234 234
235 return 0; 235 return 0;
236} 236}
237#else
238#define pxa3xx_mfp_suspend NULL
239#define pxa3xx_mfp_resume NULL
240#endif
237 241
238static struct sysdev_class mfp_sysclass = { 242struct sysdev_class pxa3xx_mfp_sysclass = {
239 .name = "mfp", 243 .name = "mfp",
240 .suspend = pxa3xx_mfp_suspend, 244 .suspend = pxa3xx_mfp_suspend,
241 .resume = pxa3xx_mfp_resume, 245 .resume = pxa3xx_mfp_resume,
242}; 246};
243 247
244static struct sys_device mfp_device = {
245 .id = 0,
246 .cls = &mfp_sysclass,
247};
248
249static int __init mfp_init_devicefs(void) 248static int __init mfp_init_devicefs(void)
250{ 249{
251 sysdev_class_register(&mfp_sysclass); 250 if (cpu_is_pxa3xx())
252 return sysdev_register(&mfp_device); 251 return sysdev_class_register(&pxa3xx_mfp_sysclass);
252
253 return 0;
253} 254}
254device_initcall(mfp_init_devicefs); 255postcore_initcall(mfp_init_devicefs);
255#endif
diff --git a/arch/arm/mach-pxa/pcm027.c b/arch/arm/mach-pxa/pcm027.c
index c14696b9979d..3b945eb0aee3 100644
--- a/arch/arm/mach-pxa/pcm027.c
+++ b/arch/arm/mach-pxa/pcm027.c
@@ -29,6 +29,7 @@
29#include <asm/mach/arch.h> 29#include <asm/mach/arch.h>
30#include <asm/arch/hardware.h> 30#include <asm/arch/hardware.h>
31#include <asm/arch/pxa-regs.h> 31#include <asm/arch/pxa-regs.h>
32#include <asm/arch/pxa2xx-gpio.h>
32#include <asm/arch/pxa2xx-regs.h> 33#include <asm/arch/pxa2xx-regs.h>
33#include <asm/arch/pxa2xx_spi.h> 34#include <asm/arch/pxa2xx_spi.h>
34#include <asm/arch/pcm027.h> 35#include <asm/arch/pcm027.h>
diff --git a/arch/arm/mach-pxa/pcm990-baseboard.c b/arch/arm/mach-pxa/pcm990-baseboard.c
index 3dda16a20049..e6be9d0aeccf 100644
--- a/arch/arm/mach-pxa/pcm990-baseboard.c
+++ b/arch/arm/mach-pxa/pcm990-baseboard.c
@@ -23,8 +23,16 @@
23#include <linux/irq.h> 23#include <linux/irq.h>
24#include <linux/platform_device.h> 24#include <linux/platform_device.h>
25#include <linux/ide.h> 25#include <linux/ide.h>
26#include <linux/i2c.h>
27
28#include <media/soc_camera.h>
29
30#include <asm/gpio.h>
31#include <asm/arch/i2c.h>
32#include <asm/arch/camera.h>
26#include <asm/mach/map.h> 33#include <asm/mach/map.h>
27#include <asm/arch/pxa-regs.h> 34#include <asm/arch/pxa-regs.h>
35#include <asm/arch/pxa2xx-gpio.h>
28#include <asm/arch/mmc.h> 36#include <asm/arch/mmc.h>
29#include <asm/arch/ohci.h> 37#include <asm/arch/ohci.h>
30#include <asm/arch/pcm990_baseboard.h> 38#include <asm/arch/pcm990_baseboard.h>
@@ -258,6 +266,76 @@ static struct pxaohci_platform_data pcm990_ohci_platform_data = {
258}; 266};
259 267
260/* 268/*
269 * PXA27x Camera specific stuff
270 */
271#if defined(CONFIG_VIDEO_PXA27x) || defined(CONFIG_VIDEO_PXA27x_MODULE)
272static int pcm990_pxacamera_init(struct device *dev)
273{
274 pxa_gpio_mode(GPIO98_CIF_DD_0_MD);
275 pxa_gpio_mode(GPIO105_CIF_DD_1_MD);
276 pxa_gpio_mode(GPIO104_CIF_DD_2_MD);
277 pxa_gpio_mode(GPIO103_CIF_DD_3_MD);
278 pxa_gpio_mode(GPIO95_CIF_DD_4_MD);
279 pxa_gpio_mode(GPIO94_CIF_DD_5_MD);
280 pxa_gpio_mode(GPIO93_CIF_DD_6_MD);
281 pxa_gpio_mode(GPIO108_CIF_DD_7_MD);
282 pxa_gpio_mode(GPIO107_CIF_DD_8_MD);
283 pxa_gpio_mode(GPIO106_CIF_DD_9_MD);
284 pxa_gpio_mode(GPIO42_CIF_MCLK_MD);
285 pxa_gpio_mode(GPIO45_CIF_PCLK_MD);
286 pxa_gpio_mode(GPIO43_CIF_FV_MD);
287 pxa_gpio_mode(GPIO44_CIF_LV_MD);
288
289 return 0;
290}
291
292/*
293 * CICR4: PCLK_EN: Pixel clock is supplied by the sensor
294 * MCLK_EN: Master clock is generated by PXA
295 * PCP: Data sampled on the falling edge of pixel clock
296 */
297struct pxacamera_platform_data pcm990_pxacamera_platform_data = {
298 .init = pcm990_pxacamera_init,
299 .flags = PXA_CAMERA_MASTER | PXA_CAMERA_DATAWIDTH_8 | PXA_CAMERA_DATAWIDTH_10 |
300 PXA_CAMERA_PCLK_EN | PXA_CAMERA_MCLK_EN/* | PXA_CAMERA_PCP*/,
301 .mclk_10khz = 1000,
302};
303
304#include <linux/i2c/pca953x.h>
305
306static struct pca953x_platform_data pca9536_data = {
307 .gpio_base = NR_BUILTIN_GPIO + 1,
308};
309
310static struct soc_camera_link iclink[] = {
311 {
312 .bus_id = 0, /* Must match with the camera ID above */
313 .gpio = NR_BUILTIN_GPIO + 1,
314 }, {
315 .bus_id = 0, /* Must match with the camera ID above */
316 }
317};
318
319/* Board I2C devices. */
320static struct i2c_board_info __initdata pcm990_i2c_devices[] = {
321 {
322 /* Must initialize before the camera(s) */
323 I2C_BOARD_INFO("pca953x", 0x41),
324 .type = "pca9536",
325 .platform_data = &pca9536_data,
326 }, {
327 I2C_BOARD_INFO("mt9v022", 0x48),
328 .type = "mt9v022",
329 .platform_data = &iclink[0], /* With extender */
330 }, {
331 I2C_BOARD_INFO("mt9m001", 0x5d),
332 .type = "mt9m001",
333 .platform_data = &iclink[0], /* With extender */
334 },
335};
336#endif /* CONFIG_VIDEO_PXA27x ||CONFIG_VIDEO_PXA27x_MODULE */
337
338/*
261 * AC97 support 339 * AC97 support
262 * Note: The connected AC97 mixer also reports interrupts at PCM990_AC97_IRQ 340 * Note: The connected AC97 mixer also reports interrupts at PCM990_AC97_IRQ
263 */ 341 */
@@ -326,5 +404,14 @@ void __init pcm990_baseboard_init(void)
326 /* USB host */ 404 /* USB host */
327 pxa_set_ohci_info(&pcm990_ohci_platform_data); 405 pxa_set_ohci_info(&pcm990_ohci_platform_data);
328 406
407 pxa_set_i2c_info(NULL);
408
409#if defined(CONFIG_VIDEO_PXA27x) || defined(CONFIG_VIDEO_PXA27x_MODULE)
410 pxa_set_camera_info(&pcm990_pxacamera_platform_data);
411
412 i2c_register_board_info(0, pcm990_i2c_devices,
413 ARRAY_SIZE(pcm990_i2c_devices));
414#endif
415
329 printk(KERN_INFO"PCM-990 Evaluation baseboard initialized\n"); 416 printk(KERN_INFO"PCM-990 Evaluation baseboard initialized\n");
330} 417}
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c
index 209eabf0ed3e..ca5ac196b47b 100644
--- a/arch/arm/mach-pxa/poodle.c
+++ b/arch/arm/mach-pxa/poodle.c
@@ -32,6 +32,7 @@
32#include <asm/mach/irq.h> 32#include <asm/mach/irq.h>
33 33
34#include <asm/arch/pxa-regs.h> 34#include <asm/arch/pxa-regs.h>
35#include <asm/arch/pxa2xx-gpio.h>
35#include <asm/arch/mmc.h> 36#include <asm/arch/mmc.h>
36#include <asm/arch/udc.h> 37#include <asm/arch/udc.h>
37#include <asm/arch/irda.h> 38#include <asm/arch/irda.h>
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
index 599e53fcc2c5..d9b5450aee5b 100644
--- a/arch/arm/mach-pxa/pxa25x.c
+++ b/arch/arm/mach-pxa/pxa25x.c
@@ -26,6 +26,7 @@
26#include <asm/hardware.h> 26#include <asm/hardware.h>
27#include <asm/arch/irqs.h> 27#include <asm/arch/irqs.h>
28#include <asm/arch/pxa-regs.h> 28#include <asm/arch/pxa-regs.h>
29#include <asm/arch/mfp-pxa25x.h>
29#include <asm/arch/pm.h> 30#include <asm/arch/pm.h>
30#include <asm/arch/dma.h> 31#include <asm/arch/dma.h>
31 32
@@ -129,6 +130,8 @@ static struct clk pxa25x_clks[] = {
129 INIT_CKEN("SSPCLK", NSSP, 3686400, 0, &pxa25x_device_nssp.dev), 130 INIT_CKEN("SSPCLK", NSSP, 3686400, 0, &pxa25x_device_nssp.dev),
130 INIT_CKEN("SSPCLK", ASSP, 3686400, 0, &pxa25x_device_assp.dev), 131 INIT_CKEN("SSPCLK", ASSP, 3686400, 0, &pxa25x_device_assp.dev),
131 132
133 INIT_CKEN("AC97CLK", AC97, 24576000, 0, NULL),
134
132 /* 135 /*
133 INIT_CKEN("PWMCLK", PWM0, 3686400, 0, NULL), 136 INIT_CKEN("PWMCLK", PWM0, 3686400, 0, NULL),
134 INIT_CKEN("PWMCLK", PWM0, 3686400, 0, NULL), 137 INIT_CKEN("PWMCLK", PWM0, 3686400, 0, NULL),
@@ -228,24 +231,10 @@ static inline void pxa25x_init_pm(void) {}
228static int pxa25x_set_wake(unsigned int irq, unsigned int on) 231static int pxa25x_set_wake(unsigned int irq, unsigned int on)
229{ 232{
230 int gpio = IRQ_TO_GPIO(irq); 233 int gpio = IRQ_TO_GPIO(irq);
231 uint32_t gpio_bit, mask = 0; 234 uint32_t mask = 0;
232 235
233 if (gpio >= 0 && gpio <= 15) { 236 if (gpio >= 0 && gpio < 85)
234 gpio_bit = GPIO_bit(gpio); 237 return gpio_set_wake(gpio, on);
235 mask = gpio_bit;
236 if (on) {
237 if (GRER(gpio) | gpio_bit)
238 PRER |= gpio_bit;
239 else
240 PRER &= ~gpio_bit;
241
242 if (GFER(gpio) | gpio_bit)
243 PFER |= gpio_bit;
244 else
245 PFER &= ~gpio_bit;
246 }
247 goto set_pwer;
248 }
249 238
250 if (irq == IRQ_RTCAlrm) { 239 if (irq == IRQ_RTCAlrm) {
251 mask = PWER_RTC; 240 mask = PWER_RTC;
@@ -265,9 +254,8 @@ set_pwer:
265 254
266void __init pxa25x_init_irq(void) 255void __init pxa25x_init_irq(void)
267{ 256{
268 pxa_init_irq_low(); 257 pxa_init_irq(32, pxa25x_set_wake);
269 pxa_init_irq_gpio(85); 258 pxa_init_gpio(85, pxa25x_set_wake);
270 pxa_init_irq_set_wake(pxa25x_set_wake);
271} 259}
272 260
273static struct platform_device *pxa25x_devices[] __initdata = { 261static struct platform_device *pxa25x_devices[] __initdata = {
@@ -325,4 +313,4 @@ static int __init pxa25x_init(void)
325 return ret; 313 return ret;
326} 314}
327 315
328subsys_initcall(pxa25x_init); 316postcore_initcall(pxa25x_init);
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
index 46a951c3e5a0..7a2449dd0fd4 100644
--- a/arch/arm/mach-pxa/pxa27x.c
+++ b/arch/arm/mach-pxa/pxa27x.c
@@ -23,6 +23,7 @@
23#include <asm/arch/irqs.h> 23#include <asm/arch/irqs.h>
24#include <asm/arch/pxa-regs.h> 24#include <asm/arch/pxa-regs.h>
25#include <asm/arch/pxa2xx-regs.h> 25#include <asm/arch/pxa2xx-regs.h>
26#include <asm/arch/mfp-pxa27x.h>
26#include <asm/arch/ohci.h> 27#include <asm/arch/ohci.h>
27#include <asm/arch/pm.h> 28#include <asm/arch/pm.h>
28#include <asm/arch/dma.h> 29#include <asm/arch/dma.h>
@@ -151,12 +152,15 @@ static struct clk pxa27x_clks[] = {
151 152
152 INIT_CKEN("USBCLK", USBHOST, 48000000, 0, &pxa27x_device_ohci.dev), 153 INIT_CKEN("USBCLK", USBHOST, 48000000, 0, &pxa27x_device_ohci.dev),
153 INIT_CKEN("I2CCLK", PWRI2C, 13000000, 0, &pxa27x_device_i2c_power.dev), 154 INIT_CKEN("I2CCLK", PWRI2C, 13000000, 0, &pxa27x_device_i2c_power.dev),
154 INIT_CKEN("KBDCLK", KEYPAD, 32768, 0, NULL), 155 INIT_CKEN("KBDCLK", KEYPAD, 32768, 0, &pxa27x_device_keypad.dev),
155 156
156 INIT_CKEN("SSPCLK", SSP1, 13000000, 0, &pxa27x_device_ssp1.dev), 157 INIT_CKEN("SSPCLK", SSP1, 13000000, 0, &pxa27x_device_ssp1.dev),
157 INIT_CKEN("SSPCLK", SSP2, 13000000, 0, &pxa27x_device_ssp2.dev), 158 INIT_CKEN("SSPCLK", SSP2, 13000000, 0, &pxa27x_device_ssp2.dev),
158 INIT_CKEN("SSPCLK", SSP3, 13000000, 0, &pxa27x_device_ssp3.dev), 159 INIT_CKEN("SSPCLK", SSP3, 13000000, 0, &pxa27x_device_ssp3.dev),
159 160
161 INIT_CKEN("AC97CLK", AC97, 24576000, 0, NULL),
162 INIT_CKEN("AC97CONFCLK", AC97CONF, 24576000, 0, NULL),
163
160 /* 164 /*
161 INIT_CKEN("PWMCLK", PWM0, 13000000, 0, NULL), 165 INIT_CKEN("PWMCLK", PWM0, 13000000, 0, NULL),
162 INIT_CKEN("MSLCLK", MSL, 48000000, 0, NULL), 166 INIT_CKEN("MSLCLK", MSL, 48000000, 0, NULL),
@@ -283,37 +287,16 @@ static inline void pxa27x_init_pm(void) {}
283/* PXA27x: Various gpios can issue wakeup events. This logic only 287/* PXA27x: Various gpios can issue wakeup events. This logic only
284 * handles the simple cases, not the WEMUX2 and WEMUX3 options 288 * handles the simple cases, not the WEMUX2 and WEMUX3 options
285 */ 289 */
286#define PXA27x_GPIO_NOWAKE_MASK \
287 ((1 << 8) | (1 << 7) | (1 << 6) | (1 << 5) | (1 << 2))
288#define WAKEMASK(gpio) \
289 (((gpio) <= 15) \
290 ? ((1 << (gpio)) & ~PXA27x_GPIO_NOWAKE_MASK) \
291 : ((gpio == 35) ? (1 << 24) : 0))
292
293static int pxa27x_set_wake(unsigned int irq, unsigned int on) 290static int pxa27x_set_wake(unsigned int irq, unsigned int on)
294{ 291{
295 int gpio = IRQ_TO_GPIO(irq); 292 int gpio = IRQ_TO_GPIO(irq);
296 uint32_t mask; 293 uint32_t mask;
297 294
298 if ((gpio >= 0 && gpio <= 15) || (gpio == 35)) { 295 if (gpio >= 0 && gpio < 128)
299 if (WAKEMASK(gpio) == 0) 296 return gpio_set_wake(gpio, on);
300 return -EINVAL;
301
302 mask = WAKEMASK(gpio);
303
304 if (on) {
305 if (GRER(gpio) | GPIO_bit(gpio))
306 PRER |= mask;
307 else
308 PRER &= ~mask;
309 297
310 if (GFER(gpio) | GPIO_bit(gpio)) 298 if (irq == IRQ_KEYPAD)
311 PFER |= mask; 299 return keypad_set_wake(on);
312 else
313 PFER &= ~mask;
314 }
315 goto set_pwer;
316 }
317 300
318 switch (irq) { 301 switch (irq) {
319 case IRQ_RTCAlrm: 302 case IRQ_RTCAlrm:
@@ -326,7 +309,6 @@ static int pxa27x_set_wake(unsigned int irq, unsigned int on)
326 return -EINVAL; 309 return -EINVAL;
327 } 310 }
328 311
329set_pwer:
330 if (on) 312 if (on)
331 PWER |= mask; 313 PWER |= mask;
332 else 314 else
@@ -337,10 +319,8 @@ set_pwer:
337 319
338void __init pxa27x_init_irq(void) 320void __init pxa27x_init_irq(void)
339{ 321{
340 pxa_init_irq_low(); 322 pxa_init_irq(34, pxa27x_set_wake);
341 pxa_init_irq_high(); 323 pxa_init_gpio(128, pxa27x_set_wake);
342 pxa_init_irq_gpio(128);
343 pxa_init_irq_set_wake(pxa27x_set_wake);
344} 324}
345 325
346/* 326/*
@@ -386,10 +366,6 @@ static struct platform_device *devices[] __initdata = {
386 366
387static struct sys_device pxa27x_sysdev[] = { 367static struct sys_device pxa27x_sysdev[] = {
388 { 368 {
389 .id = 0,
390 .cls = &pxa_irq_sysclass,
391 }, {
392 .id = 1,
393 .cls = &pxa_irq_sysclass, 369 .cls = &pxa_irq_sysclass,
394 }, { 370 }, {
395 .cls = &pxa_gpio_sysclass, 371 .cls = &pxa_gpio_sysclass,
@@ -420,4 +396,4 @@ static int __init pxa27x_init(void)
420 return ret; 396 return ret;
421} 397}
422 398
423subsys_initcall(pxa27x_init); 399postcore_initcall(pxa27x_init);
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
index 35f25fdaeba3..dde355e88fa1 100644
--- a/arch/arm/mach-pxa/pxa3xx.c
+++ b/arch/arm/mach-pxa/pxa3xx.c
@@ -110,6 +110,25 @@ unsigned int pxa3xx_get_memclk_frequency_10khz(void)
110} 110}
111 111
112/* 112/*
113 * Return the current AC97 clock frequency.
114 */
115static unsigned long clk_pxa3xx_ac97_getrate(struct clk *clk)
116{
117 unsigned long rate = 312000000;
118 unsigned long ac97_div;
119
120 ac97_div = AC97_DIV;
121
122 /* This may loose precision for some rates but won't for the
123 * standard 24.576MHz.
124 */
125 rate /= (ac97_div >> 12) & 0x7fff;
126 rate *= (ac97_div & 0xfff);
127
128 return rate;
129}
130
131/*
113 * Return the current HSIO bus clock frequency 132 * Return the current HSIO bus clock frequency
114 */ 133 */
115static unsigned long clk_pxa3xx_hsio_getrate(struct clk *clk) 134static unsigned long clk_pxa3xx_hsio_getrate(struct clk *clk)
@@ -156,6 +175,27 @@ static const struct clkops clk_pxa3xx_hsio_ops = {
156 .getrate = clk_pxa3xx_hsio_getrate, 175 .getrate = clk_pxa3xx_hsio_getrate,
157}; 176};
158 177
178static const struct clkops clk_pxa3xx_ac97_ops = {
179 .enable = clk_pxa3xx_cken_enable,
180 .disable = clk_pxa3xx_cken_disable,
181 .getrate = clk_pxa3xx_ac97_getrate,
182};
183
184static void clk_pout_enable(struct clk *clk)
185{
186 OSCC |= OSCC_PEN;
187}
188
189static void clk_pout_disable(struct clk *clk)
190{
191 OSCC &= ~OSCC_PEN;
192}
193
194static const struct clkops clk_pout_ops = {
195 .enable = clk_pout_enable,
196 .disable = clk_pout_disable,
197};
198
159#define PXA3xx_CKEN(_name, _cken, _rate, _delay, _dev) \ 199#define PXA3xx_CKEN(_name, _cken, _rate, _delay, _dev) \
160 { \ 200 { \
161 .name = _name, \ 201 .name = _name, \
@@ -175,8 +215,16 @@ static const struct clkops clk_pxa3xx_hsio_ops = {
175 } 215 }
176 216
177static struct clk pxa3xx_clks[] = { 217static struct clk pxa3xx_clks[] = {
178 PXA3xx_CK("LCDCLK", LCD, &clk_pxa3xx_hsio_ops, &pxa_device_fb.dev), 218 {
179 PXA3xx_CK("CAMCLK", CAMERA, &clk_pxa3xx_hsio_ops, NULL), 219 .name = "CLK_POUT",
220 .ops = &clk_pout_ops,
221 .rate = 13000000,
222 .delay = 70,
223 },
224
225 PXA3xx_CK("LCDCLK", LCD, &clk_pxa3xx_hsio_ops, &pxa_device_fb.dev),
226 PXA3xx_CK("CAMCLK", CAMERA, &clk_pxa3xx_hsio_ops, NULL),
227 PXA3xx_CK("AC97CLK", AC97, &clk_pxa3xx_ac97_ops, NULL),
180 228
181 PXA3xx_CKEN("UARTCLK", FFUART, 14857000, 1, &pxa_device_ffuart.dev), 229 PXA3xx_CKEN("UARTCLK", FFUART, 14857000, 1, &pxa_device_ffuart.dev),
182 PXA3xx_CKEN("UARTCLK", BTUART, 14857000, 1, &pxa_device_btuart.dev), 230 PXA3xx_CKEN("UARTCLK", BTUART, 14857000, 1, &pxa_device_btuart.dev),
@@ -185,6 +233,7 @@ static struct clk pxa3xx_clks[] = {
185 PXA3xx_CKEN("I2CCLK", I2C, 32842000, 0, &pxa_device_i2c.dev), 233 PXA3xx_CKEN("I2CCLK", I2C, 32842000, 0, &pxa_device_i2c.dev),
186 PXA3xx_CKEN("UDCCLK", UDC, 48000000, 5, &pxa_device_udc.dev), 234 PXA3xx_CKEN("UDCCLK", UDC, 48000000, 5, &pxa_device_udc.dev),
187 PXA3xx_CKEN("USBCLK", USBH, 48000000, 0, &pxa27x_device_ohci.dev), 235 PXA3xx_CKEN("USBCLK", USBH, 48000000, 0, &pxa27x_device_ohci.dev),
236 PXA3xx_CKEN("KBDCLK", KEYPAD, 32768, 0, &pxa27x_device_keypad.dev),
188 237
189 PXA3xx_CKEN("SSPCLK", SSP1, 13000000, 0, &pxa27x_device_ssp1.dev), 238 PXA3xx_CKEN("SSPCLK", SSP1, 13000000, 0, &pxa27x_device_ssp1.dev),
190 PXA3xx_CKEN("SSPCLK", SSP2, 13000000, 0, &pxa27x_device_ssp2.dev), 239 PXA3xx_CKEN("SSPCLK", SSP2, 13000000, 0, &pxa27x_device_ssp2.dev),
@@ -305,8 +354,10 @@ static void pxa3xx_cpu_pm_enter(suspend_state_t state)
305 /* 354 /*
306 * Don't sleep if no wakeup sources are defined 355 * Don't sleep if no wakeup sources are defined
307 */ 356 */
308 if (wakeup_src == 0) 357 if (wakeup_src == 0) {
358 printk(KERN_ERR "Not suspending: no wakeup sources\n");
309 return; 359 return;
360 }
310 361
311 switch (state) { 362 switch (state) {
312 case PM_SUSPEND_STANDBY: 363 case PM_SUSPEND_STANDBY:
@@ -446,15 +497,9 @@ static int pxa3xx_set_wake(unsigned int irq, unsigned int on)
446 497
447 return 0; 498 return 0;
448} 499}
449
450static void pxa3xx_init_irq_pm(void)
451{
452 pxa_init_irq_set_wake(pxa3xx_set_wake);
453}
454
455#else 500#else
456static inline void pxa3xx_init_pm(void) {} 501static inline void pxa3xx_init_pm(void) {}
457static inline void pxa3xx_init_irq_pm(void) {} 502#define pxa3xx_set_wake NULL
458#endif 503#endif
459 504
460void __init pxa3xx_init_irq(void) 505void __init pxa3xx_init_irq(void)
@@ -465,10 +510,8 @@ void __init pxa3xx_init_irq(void)
465 value |= (1 << 6); 510 value |= (1 << 6);
466 __asm__ __volatile__("mcr p15, 0, %0, c15, c1, 0\n": :"r"(value)); 511 __asm__ __volatile__("mcr p15, 0, %0, c15, c1, 0\n": :"r"(value));
467 512
468 pxa_init_irq_low(); 513 pxa_init_irq(56, pxa3xx_set_wake);
469 pxa_init_irq_high(); 514 pxa_init_gpio(128, NULL);
470 pxa_init_irq_gpio(128);
471 pxa3xx_init_irq_pm();
472} 515}
473 516
474/* 517/*
@@ -490,11 +533,9 @@ static struct platform_device *devices[] __initdata = {
490 533
491static struct sys_device pxa3xx_sysdev[] = { 534static struct sys_device pxa3xx_sysdev[] = {
492 { 535 {
493 .id = 0,
494 .cls = &pxa_irq_sysclass, 536 .cls = &pxa_irq_sysclass,
495 }, { 537 }, {
496 .id = 1, 538 .cls = &pxa3xx_mfp_sysclass,
497 .cls = &pxa_irq_sysclass,
498 }, { 539 }, {
499 .cls = &pxa_gpio_sysclass, 540 .cls = &pxa_gpio_sysclass,
500 }, 541 },
@@ -532,4 +573,4 @@ static int __init pxa3xx_init(void)
532 return ret; 573 return ret;
533} 574}
534 575
535subsys_initcall(pxa3xx_init); 576postcore_initcall(pxa3xx_init);
diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c
index f9d1b61e1185..34cd585075b0 100644
--- a/arch/arm/mach-pxa/sharpsl_pm.c
+++ b/arch/arm/mach-pxa/sharpsl_pm.c
@@ -26,6 +26,7 @@
26#include <asm/mach-types.h> 26#include <asm/mach-types.h>
27#include <asm/arch/pm.h> 27#include <asm/arch/pm.h>
28#include <asm/arch/pxa-regs.h> 28#include <asm/arch/pxa-regs.h>
29#include <asm/arch/pxa2xx-gpio.h>
29#include <asm/arch/sharpsl.h> 30#include <asm/arch/sharpsl.h>
30#include "sharpsl.h" 31#include "sharpsl.h"
31 32
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index 9e7773fca01c..62a02c3927c5 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -37,6 +37,7 @@
37 37
38#include <asm/arch/pxa-regs.h> 38#include <asm/arch/pxa-regs.h>
39#include <asm/arch/pxa2xx-regs.h> 39#include <asm/arch/pxa2xx-regs.h>
40#include <asm/arch/pxa2xx-gpio.h>
40#include <asm/arch/irda.h> 41#include <asm/arch/irda.h>
41#include <asm/arch/mmc.h> 42#include <asm/arch/mmc.h>
42#include <asm/arch/ohci.h> 43#include <asm/arch/ohci.h>
diff --git a/arch/arm/mach-pxa/spitz_pm.c b/arch/arm/mach-pxa/spitz_pm.c
index 745a4dc7acdd..7a7f5f947cc5 100644
--- a/arch/arm/mach-pxa/spitz_pm.c
+++ b/arch/arm/mach-pxa/spitz_pm.c
@@ -26,6 +26,7 @@
26#include <asm/arch/sharpsl.h> 26#include <asm/arch/sharpsl.h>
27#include <asm/arch/spitz.h> 27#include <asm/arch/spitz.h>
28#include <asm/arch/pxa-regs.h> 28#include <asm/arch/pxa-regs.h>
29#include <asm/arch/pxa2xx-gpio.h>
29#include "sharpsl.h" 30#include "sharpsl.h"
30 31
31#define SHARPSL_CHARGE_ON_VOLT 0x99 /* 2.9V */ 32#define SHARPSL_CHARGE_ON_VOLT 0x99 /* 2.9V */
diff --git a/arch/arm/mach-pxa/tosa.c b/arch/arm/mach-pxa/tosa.c
index f99112d50b41..6458f6d371d9 100644
--- a/arch/arm/mach-pxa/tosa.c
+++ b/arch/arm/mach-pxa/tosa.c
@@ -23,6 +23,7 @@
23#include <linux/delay.h> 23#include <linux/delay.h>
24#include <linux/gpio_keys.h> 24#include <linux/gpio_keys.h>
25#include <linux/input.h> 25#include <linux/input.h>
26#include <linux/gpio.h>
26 27
27#include <asm/setup.h> 28#include <asm/setup.h>
28#include <asm/memory.h> 29#include <asm/memory.h>
@@ -32,7 +33,9 @@
32#include <asm/system.h> 33#include <asm/system.h>
33#include <asm/arch/pxa-regs.h> 34#include <asm/arch/pxa-regs.h>
34#include <asm/arch/pxa2xx-regs.h> 35#include <asm/arch/pxa2xx-regs.h>
36#include <asm/arch/mfp-pxa25x.h>
35#include <asm/arch/irda.h> 37#include <asm/arch/irda.h>
38#include <asm/arch/i2c.h>
36#include <asm/arch/mmc.h> 39#include <asm/arch/mmc.h>
37#include <asm/arch/udc.h> 40#include <asm/arch/udc.h>
38 41
@@ -47,6 +50,110 @@
47#include "generic.h" 50#include "generic.h"
48#include "devices.h" 51#include "devices.h"
49 52
53static unsigned long tosa_pin_config[] = {
54 GPIO78_nCS_2, /* Scoop */
55 GPIO80_nCS_4, /* tg6393xb */
56 GPIO33_nCS_5, /* Scoop */
57
58 // GPIO76 CARD_VCC_ON1
59
60 GPIO19_GPIO, /* Reset out */
61 GPIO1_RST | WAKEUP_ON_EDGE_FALL,
62
63 GPIO0_GPIO | WAKEUP_ON_EDGE_FALL, /* WAKE_UP */
64 GPIO2_GPIO | WAKEUP_ON_EDGE_BOTH, /* AC_IN */
65 GPIO3_GPIO | WAKEUP_ON_EDGE_FALL, /* RECORD */
66 GPIO4_GPIO | WAKEUP_ON_EDGE_FALL, /* SYNC */
67 GPIO20_GPIO, /* EAR_IN */
68 GPIO22_GPIO, /* On */
69
70 GPIO5_GPIO, /* USB_IN */
71 GPIO32_GPIO, /* Pen IRQ */
72
73 GPIO7_GPIO, /* Jacket Detect */
74 GPIO14_GPIO, /* BAT0_CRG */
75 GPIO12_GPIO, /* BAT1_CRG */
76 GPIO17_GPIO, /* BAT0_LOW */
77 GPIO84_GPIO, /* BAT1_LOW */
78 GPIO38_GPIO, /* BAT_LOCK */
79
80 GPIO11_3_6MHz,
81 GPIO15_GPIO, /* TC6393XB IRQ */
82 GPIO18_RDY,
83 GPIO27_GPIO, /* LCD Sync */
84
85 /* MMC */
86 GPIO6_MMC_CLK,
87 GPIO8_MMC_CS0,
88 GPIO9_GPIO, /* Detect */
89 // GPIO10 nSD_INT
90
91 /* CF */
92 GPIO13_GPIO, /* CD_IRQ */
93 GPIO21_GPIO, /* Main Slot IRQ */
94 GPIO36_GPIO, /* Jacket Slot IRQ */
95 GPIO48_nPOE,
96 GPIO49_nPWE,
97 GPIO50_nPIOR,
98 GPIO51_nPIOW,
99 GPIO52_nPCE_1,
100 GPIO53_nPCE_2,
101 GPIO54_nPSKTSEL,
102 GPIO55_nPREG,
103 GPIO56_nPWAIT,
104 GPIO57_nIOIS16,
105
106 /* AC97 */
107 GPIO31_AC97_SYNC,
108 GPIO30_AC97_SDATA_OUT,
109 GPIO28_AC97_BITCLK,
110 GPIO29_AC97_SDATA_IN_0,
111 // GPIO79 nAUD_IRQ
112
113 /* FFUART */
114 GPIO34_FFUART_RXD,
115 GPIO35_FFUART_CTS,
116 GPIO37_FFUART_DSR,
117 GPIO39_FFUART_TXD,
118 GPIO40_FFUART_DTR,
119 GPIO41_FFUART_RTS,
120
121 /* BTUART */
122 GPIO42_BTUART_RXD,
123 GPIO43_BTUART_TXD,
124 GPIO44_BTUART_CTS,
125 GPIO45_BTUART_RTS,
126
127 /* IrDA */
128 GPIO46_STUART_RXD,
129 GPIO47_STUART_TXD,
130
131 /* Keybd */
132 GPIO58_GPIO,
133 GPIO59_GPIO,
134 GPIO60_GPIO,
135 GPIO61_GPIO,
136 GPIO62_GPIO,
137 GPIO63_GPIO,
138 GPIO64_GPIO,
139 GPIO65_GPIO,
140 GPIO66_GPIO,
141 GPIO67_GPIO,
142 GPIO68_GPIO,
143 GPIO69_GPIO,
144 GPIO70_GPIO,
145 GPIO71_GPIO,
146 GPIO72_GPIO,
147 GPIO73_GPIO,
148 GPIO74_GPIO,
149 GPIO75_GPIO,
150
151 /* SPI */
152 GPIO81_SSP2_CLK_OUT,
153 GPIO82_SSP2_FRM_OUT,
154 GPIO83_SSP2_TXD,
155};
156
50/* 157/*
51 * SCOOP Device 158 * SCOOP Device
52 */ 159 */
@@ -60,11 +167,10 @@ static struct resource tosa_scoop_resources[] = {
60 167
61static struct scoop_config tosa_scoop_setup = { 168static struct scoop_config tosa_scoop_setup = {
62 .io_dir = TOSA_SCOOP_IO_DIR, 169 .io_dir = TOSA_SCOOP_IO_DIR,
63 .io_out = TOSA_SCOOP_IO_OUT, 170 .gpio_base = TOSA_SCOOP_GPIO_BASE,
64
65}; 171};
66 172
67struct platform_device tosascoop_device = { 173static struct platform_device tosascoop_device = {
68 .name = "sharp-scoop", 174 .name = "sharp-scoop",
69 .id = 0, 175 .id = 0,
70 .dev = { 176 .dev = {
@@ -88,10 +194,10 @@ static struct resource tosa_scoop_jc_resources[] = {
88 194
89static struct scoop_config tosa_scoop_jc_setup = { 195static struct scoop_config tosa_scoop_jc_setup = {
90 .io_dir = TOSA_SCOOP_JC_IO_DIR, 196 .io_dir = TOSA_SCOOP_JC_IO_DIR,
91 .io_out = TOSA_SCOOP_JC_IO_OUT, 197 .gpio_base = TOSA_SCOOP_JC_GPIO_BASE,
92}; 198};
93 199
94struct platform_device tosascoop_jc_device = { 200static struct platform_device tosascoop_jc_device = {
95 .name = "sharp-scoop", 201 .name = "sharp-scoop",
96 .id = 1, 202 .id = 1,
97 .dev = { 203 .dev = {
@@ -118,50 +224,16 @@ static struct scoop_pcmcia_dev tosa_pcmcia_scoop[] = {
118}, 224},
119}; 225};
120 226
121static void tosa_pcmcia_init(void)
122{
123 /* Setup default state of GPIO outputs
124 before we enable them as outputs. */
125 GPSR(GPIO48_nPOE) = GPIO_bit(GPIO48_nPOE) |
126 GPIO_bit(GPIO49_nPWE) | GPIO_bit(GPIO50_nPIOR) |
127 GPIO_bit(GPIO51_nPIOW) | GPIO_bit(GPIO52_nPCE_1) |
128 GPIO_bit(GPIO53_nPCE_2);
129
130 pxa_gpio_mode(GPIO48_nPOE_MD);
131 pxa_gpio_mode(GPIO49_nPWE_MD);
132 pxa_gpio_mode(GPIO50_nPIOR_MD);
133 pxa_gpio_mode(GPIO51_nPIOW_MD);
134 pxa_gpio_mode(GPIO55_nPREG_MD);
135 pxa_gpio_mode(GPIO56_nPWAIT_MD);
136 pxa_gpio_mode(GPIO57_nIOIS16_MD);
137 pxa_gpio_mode(GPIO52_nPCE_1_MD);
138 pxa_gpio_mode(GPIO53_nPCE_2_MD);
139 pxa_gpio_mode(GPIO54_pSKTSEL_MD);
140}
141
142static struct scoop_pcmcia_config tosa_pcmcia_config = { 227static struct scoop_pcmcia_config tosa_pcmcia_config = {
143 .devs = &tosa_pcmcia_scoop[0], 228 .devs = &tosa_pcmcia_scoop[0],
144 .num_devs = 2, 229 .num_devs = 2,
145 .pcmcia_init = tosa_pcmcia_init,
146}; 230};
147 231
148/* 232/*
149 * USB Device Controller 233 * USB Device Controller
150 */ 234 */
151static void tosa_udc_command(int cmd)
152{
153 switch(cmd) {
154 case PXA2XX_UDC_CMD_CONNECT:
155 set_scoop_gpio(&tosascoop_jc_device.dev,TOSA_SCOOP_JC_USB_PULLUP);
156 break;
157 case PXA2XX_UDC_CMD_DISCONNECT:
158 reset_scoop_gpio(&tosascoop_jc_device.dev,TOSA_SCOOP_JC_USB_PULLUP);
159 break;
160 }
161}
162
163static struct pxa2xx_udc_mach_info udc_info __initdata = { 235static struct pxa2xx_udc_mach_info udc_info __initdata = {
164 .udc_command = tosa_udc_command, 236 .gpio_pullup = TOSA_GPIO_USB_PULLUP,
165 .gpio_vbus = TOSA_GPIO_USB_IN, 237 .gpio_vbus = TOSA_GPIO_USB_IN,
166 .gpio_vbus_inverted = 1, 238 .gpio_vbus_inverted = 1,
167}; 239};
@@ -175,19 +247,44 @@ static int tosa_mci_init(struct device *dev, irq_handler_t tosa_detect_int, void
175{ 247{
176 int err; 248 int err;
177 249
178 /* setup GPIO for PXA25x MMC controller */
179 pxa_gpio_mode(GPIO6_MMCCLK_MD);
180 pxa_gpio_mode(GPIO8_MMCCS0_MD);
181 pxa_gpio_mode(TOSA_GPIO_nSD_DETECT | GPIO_IN);
182
183 tosa_mci_platform_data.detect_delay = msecs_to_jiffies(250); 250 tosa_mci_platform_data.detect_delay = msecs_to_jiffies(250);
184 251
185 err = request_irq(TOSA_IRQ_GPIO_nSD_DETECT, tosa_detect_int, 252 err = request_irq(TOSA_IRQ_GPIO_nSD_DETECT, tosa_detect_int,
186 IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, 253 IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
187 "MMC/SD card detect", data); 254 "MMC/SD card detect", data);
188 if (err) 255 if (err) {
189 printk(KERN_ERR "tosa_mci_init: MMC/SD: can't request MMC card detect IRQ\n"); 256 printk(KERN_ERR "tosa_mci_init: MMC/SD: can't request MMC card detect IRQ\n");
257 goto err_irq;
258 }
190 259
260 err = gpio_request(TOSA_GPIO_SD_WP, "sd_wp");
261 if (err) {
262 printk(KERN_ERR "tosa_mci_init: can't request SD_WP gpio\n");
263 goto err_gpio_wp;
264 }
265 err = gpio_direction_input(TOSA_GPIO_SD_WP);
266 if (err)
267 goto err_gpio_wp_dir;
268
269 err = gpio_request(TOSA_GPIO_PWR_ON, "sd_pwr");
270 if (err) {
271 printk(KERN_ERR "tosa_mci_init: can't request SD_PWR gpio\n");
272 goto err_gpio_pwr;
273 }
274 err = gpio_direction_output(TOSA_GPIO_PWR_ON, 0);
275 if (err)
276 goto err_gpio_pwr_dir;
277
278 return 0;
279
280err_gpio_pwr_dir:
281 gpio_free(TOSA_GPIO_PWR_ON);
282err_gpio_pwr:
283err_gpio_wp_dir:
284 gpio_free(TOSA_GPIO_SD_WP);
285err_gpio_wp:
286 free_irq(TOSA_IRQ_GPIO_nSD_DETECT, data);
287err_irq:
191 return err; 288 return err;
192} 289}
193 290
@@ -196,19 +293,21 @@ static void tosa_mci_setpower(struct device *dev, unsigned int vdd)
196 struct pxamci_platform_data* p_d = dev->platform_data; 293 struct pxamci_platform_data* p_d = dev->platform_data;
197 294
198 if (( 1 << vdd) & p_d->ocr_mask) { 295 if (( 1 << vdd) & p_d->ocr_mask) {
199 set_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_PWR_ON); 296 gpio_set_value(TOSA_GPIO_PWR_ON, 1);
200 } else { 297 } else {
201 reset_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_PWR_ON); 298 gpio_set_value(TOSA_GPIO_PWR_ON, 0);
202 } 299 }
203} 300}
204 301
205static int tosa_mci_get_ro(struct device *dev) 302static int tosa_mci_get_ro(struct device *dev)
206{ 303{
207 return (read_scoop_reg(&tosascoop_device.dev, SCOOP_GPWR)&TOSA_SCOOP_SD_WP); 304 return gpio_get_value(TOSA_GPIO_SD_WP);
208} 305}
209 306
210static void tosa_mci_exit(struct device *dev, void *data) 307static void tosa_mci_exit(struct device *dev, void *data)
211{ 308{
309 gpio_free(TOSA_GPIO_PWR_ON);
310 gpio_free(TOSA_GPIO_SD_WP);
212 free_irq(TOSA_IRQ_GPIO_nSD_DETECT, data); 311 free_irq(TOSA_IRQ_GPIO_nSD_DETECT, data);
213} 312}
214 313
@@ -223,21 +322,36 @@ static struct pxamci_platform_data tosa_mci_platform_data = {
223/* 322/*
224 * Irda 323 * Irda
225 */ 324 */
226static void tosa_irda_transceiver_mode(struct device *dev, int mode) 325static int tosa_irda_startup(struct device *dev)
227{ 326{
228 if (mode & IR_OFF) { 327 int ret;
229 reset_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_IR_POWERDWN); 328
230 pxa_gpio_mode(GPIO47_STTXD|GPIO_DFLT_LOW); 329 ret = gpio_request(TOSA_GPIO_IR_POWERDWN, "IrDA powerdown");
231 pxa_gpio_mode(GPIO47_STTXD|GPIO_OUT); 330 if (ret)
232 } else { 331 return ret;
233 pxa_gpio_mode(GPIO47_STTXD_MD); 332
234 set_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_IR_POWERDWN); 333 ret = gpio_direction_output(TOSA_GPIO_IR_POWERDWN, 0);
334 if (ret)
335 gpio_free(TOSA_GPIO_IR_POWERDWN);
336
337 return ret;
235 } 338 }
339
340static void tosa_irda_shutdown(struct device *dev)
341{
342 gpio_free(TOSA_GPIO_IR_POWERDWN);
343}
344
345static void tosa_irda_transceiver_mode(struct device *dev, int mode)
346{
347 gpio_set_value(TOSA_GPIO_IR_POWERDWN, !(mode & IR_OFF));
236} 348}
237 349
238static struct pxaficp_platform_data tosa_ficp_platform_data = { 350static struct pxaficp_platform_data tosa_ficp_platform_data = {
239 .transceiver_cap = IR_SIRMODE | IR_OFF, 351 .transceiver_cap = IR_SIRMODE | IR_OFF,
240 .transceiver_mode = tosa_irda_transceiver_mode, 352 .transceiver_mode = tosa_irda_transceiver_mode,
353 .startup = tosa_irda_startup,
354 .shutdown = tosa_irda_shutdown,
241}; 355};
242 356
243/* 357/*
@@ -249,12 +363,28 @@ static struct platform_device tosakbd_device = {
249}; 363};
250 364
251static struct gpio_keys_button tosa_gpio_keys[] = { 365static struct gpio_keys_button tosa_gpio_keys[] = {
366 /*
367 * Two following keys are directly tied to "ON" button of tosa. Why?
368 * The first one can be used as a wakeup source, the second can't;
369 * also the first one is OR of ac_powered and on_button.
370 */
371 {
372 .type = EV_PWR,
373 .code = KEY_RESERVED,
374 .gpio = TOSA_GPIO_POWERON,
375 .desc = "Poweron",
376 .wakeup = 1,
377 .active_low = 1,
378 },
252 { 379 {
253 .type = EV_PWR, 380 .type = EV_PWR,
254 .code = KEY_SUSPEND, 381 .code = KEY_SUSPEND,
255 .gpio = TOSA_GPIO_ON_KEY, 382 .gpio = TOSA_GPIO_ON_KEY,
256 .desc = "On key", 383 .desc = "On key",
257 .wakeup = 1, 384 /*
385 * can't be used as wakeup
386 * .wakeup = 1,
387 */
258 .active_low = 1, 388 .active_low = 1,
259 }, 389 },
260 { 390 {
@@ -291,9 +421,40 @@ static struct platform_device tosa_gpio_keys_device = {
291/* 421/*
292 * Tosa LEDs 422 * Tosa LEDs
293 */ 423 */
424static struct gpio_led tosa_gpio_leds[] = {
425 {
426 .name = "tosa:amber:charge",
427 .default_trigger = "main-battery-charging",
428 .gpio = TOSA_GPIO_CHRG_ERR_LED,
429 },
430 {
431 .name = "tosa:green:mail",
432 .default_trigger = "nand-disk",
433 .gpio = TOSA_GPIO_NOTE_LED,
434 },
435 {
436 .name = "tosa:dual:wlan",
437 .default_trigger = "none",
438 .gpio = TOSA_GPIO_WLAN_LED,
439 },
440 {
441 .name = "tosa:blue:bluetooth",
442 .default_trigger = "none",
443 .gpio = TOSA_GPIO_BT_LED,
444 },
445};
446
447static struct gpio_led_platform_data tosa_gpio_leds_platform_data = {
448 .leds = tosa_gpio_leds,
449 .num_leds = ARRAY_SIZE(tosa_gpio_leds),
450};
451
294static struct platform_device tosaled_device = { 452static struct platform_device tosaled_device = {
295 .name = "tosa-led", 453 .name = "leds-gpio",
296 .id = -1, 454 .id = -1,
455 .dev = {
456 .platform_data = &tosa_gpio_leds_platform_data,
457 },
297}; 458};
298 459
299static struct platform_device *devices[] __initdata = { 460static struct platform_device *devices[] __initdata = {
@@ -326,20 +487,13 @@ static void tosa_restart(char mode)
326 487
327static void __init tosa_init(void) 488static void __init tosa_init(void)
328{ 489{
490 pxa2xx_mfp_config(ARRAY_AND_SIZE(tosa_pin_config));
491 gpio_set_wake(MFP_PIN_GPIO1, 1);
492 /* We can't pass to gpio-keys since it will drop the Reset altfunc */
493
329 pm_power_off = tosa_poweroff; 494 pm_power_off = tosa_poweroff;
330 arm_pm_restart = tosa_restart; 495 arm_pm_restart = tosa_restart;
331 496
332 pxa_gpio_mode(TOSA_GPIO_ON_RESET | GPIO_IN);
333 pxa_gpio_mode(TOSA_GPIO_TC6393_INT | GPIO_IN);
334 pxa_gpio_mode(TOSA_GPIO_USB_IN | GPIO_IN);
335
336 /* setup sleep mode values */
337 PWER = 0x00000002;
338 PFER = 0x00000000;
339 PRER = 0x00000002;
340 PGSR0 = 0x00000000;
341 PGSR1 = 0x00FF0002;
342 PGSR2 = 0x00014000;
343 PCFR |= PCFR_OPDE; 497 PCFR |= PCFR_OPDE;
344 498
345 /* enable batt_fault */ 499 /* enable batt_fault */
@@ -348,6 +502,7 @@ static void __init tosa_init(void)
348 pxa_set_mci_info(&tosa_mci_platform_data); 502 pxa_set_mci_info(&tosa_mci_platform_data);
349 pxa_set_udc_info(&udc_info); 503 pxa_set_udc_info(&udc_info);
350 pxa_set_ficp_info(&tosa_ficp_platform_data); 504 pxa_set_ficp_info(&tosa_ficp_platform_data);
505 pxa_set_i2c_info(NULL);
351 platform_scoop_config = &tosa_pcmcia_config; 506 platform_scoop_config = &tosa_pcmcia_config;
352 507
353 platform_add_devices(devices, ARRAY_SIZE(devices)); 508 platform_add_devices(devices, ARRAY_SIZE(devices));
diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c
index f207fcd30cd7..931885d86b91 100644
--- a/arch/arm/mach-pxa/trizeps4.c
+++ b/arch/arm/mach-pxa/trizeps4.c
@@ -41,6 +41,7 @@
41#include <asm/mach/flash.h> 41#include <asm/mach/flash.h>
42 42
43#include <asm/arch/pxa-regs.h> 43#include <asm/arch/pxa-regs.h>
44#include <asm/arch/pxa2xx-gpio.h>
44#include <asm/arch/trizeps4.h> 45#include <asm/arch/trizeps4.h>
45#include <asm/arch/audio.h> 46#include <asm/arch/audio.h>
46#include <asm/arch/pxafb.h> 47#include <asm/arch/pxafb.h>
diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c
index afd2cbfca0d9..dbb546216be1 100644
--- a/arch/arm/mach-pxa/zylonite.c
+++ b/arch/arm/mach-pxa/zylonite.c
@@ -26,6 +26,7 @@
26#include <asm/arch/pxafb.h> 26#include <asm/arch/pxafb.h>
27#include <asm/arch/zylonite.h> 27#include <asm/arch/zylonite.h>
28#include <asm/arch/mmc.h> 28#include <asm/arch/mmc.h>
29#include <asm/arch/pxa27x_keypad.h>
29 30
30#include "generic.h" 31#include "generic.h"
31 32
@@ -35,6 +36,8 @@ struct platform_mmc_slot zylonite_mmc_slot[MAX_SLOTS];
35int gpio_backlight; 36int gpio_backlight;
36int gpio_eth_irq; 37int gpio_eth_irq;
37 38
39int wm9713_irq;
40
38int lcd_id; 41int lcd_id;
39int lcd_orientation; 42int lcd_orientation;
40 43
@@ -249,6 +252,71 @@ static void __init zylonite_init_mmc(void)
249static inline void zylonite_init_mmc(void) {} 252static inline void zylonite_init_mmc(void) {}
250#endif 253#endif
251 254
255#if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULES)
256static unsigned int zylonite_matrix_key_map[] = {
257 /* KEY(row, col, key_code) */
258 KEY(0, 0, KEY_A), KEY(0, 1, KEY_B), KEY(0, 2, KEY_C), KEY(0, 5, KEY_D),
259 KEY(1, 0, KEY_E), KEY(1, 1, KEY_F), KEY(1, 2, KEY_G), KEY(1, 5, KEY_H),
260 KEY(2, 0, KEY_I), KEY(2, 1, KEY_J), KEY(2, 2, KEY_K), KEY(2, 5, KEY_L),
261 KEY(3, 0, KEY_M), KEY(3, 1, KEY_N), KEY(3, 2, KEY_O), KEY(3, 5, KEY_P),
262 KEY(5, 0, KEY_Q), KEY(5, 1, KEY_R), KEY(5, 2, KEY_S), KEY(5, 5, KEY_T),
263 KEY(6, 0, KEY_U), KEY(6, 1, KEY_V), KEY(6, 2, KEY_W), KEY(6, 5, KEY_X),
264 KEY(7, 1, KEY_Y), KEY(7, 2, KEY_Z),
265
266 KEY(4, 4, KEY_0), KEY(1, 3, KEY_1), KEY(4, 1, KEY_2), KEY(1, 4, KEY_3),
267 KEY(2, 3, KEY_4), KEY(4, 2, KEY_5), KEY(2, 4, KEY_6), KEY(3, 3, KEY_7),
268 KEY(4, 3, KEY_8), KEY(3, 4, KEY_9),
269
270 KEY(4, 5, KEY_SPACE),
271 KEY(5, 3, KEY_KPASTERISK), /* * */
272 KEY(5, 4, KEY_KPDOT), /* #" */
273
274 KEY(0, 7, KEY_UP),
275 KEY(1, 7, KEY_DOWN),
276 KEY(2, 7, KEY_LEFT),
277 KEY(3, 7, KEY_RIGHT),
278 KEY(2, 6, KEY_HOME),
279 KEY(3, 6, KEY_END),
280 KEY(6, 4, KEY_DELETE),
281 KEY(6, 6, KEY_BACK),
282 KEY(6, 3, KEY_CAPSLOCK), /* KEY_LEFTSHIFT), */
283
284 KEY(4, 6, KEY_ENTER), /* scroll push */
285 KEY(5, 7, KEY_ENTER), /* keypad action */
286
287 KEY(0, 4, KEY_EMAIL),
288 KEY(5, 6, KEY_SEND),
289 KEY(4, 0, KEY_CALENDAR),
290 KEY(7, 6, KEY_RECORD),
291 KEY(6, 7, KEY_VOLUMEUP),
292 KEY(7, 7, KEY_VOLUMEDOWN),
293
294 KEY(0, 6, KEY_F22), /* soft1 */
295 KEY(1, 6, KEY_F23), /* soft2 */
296 KEY(0, 3, KEY_AUX), /* contact */
297};
298
299static struct pxa27x_keypad_platform_data zylonite_keypad_info = {
300 .matrix_key_rows = 8,
301 .matrix_key_cols = 8,
302 .matrix_key_map = zylonite_matrix_key_map,
303 .matrix_key_map_size = ARRAY_SIZE(zylonite_matrix_key_map),
304
305 .enable_rotary0 = 1,
306 .rotary0_up_key = KEY_UP,
307 .rotary0_down_key = KEY_DOWN,
308
309 .debounce_interval = 30,
310};
311
312static void __init zylonite_init_keypad(void)
313{
314 pxa_set_keypad_info(&zylonite_keypad_info);
315}
316#else
317static inline void zylonite_init_keypad(void) {}
318#endif
319
252static void __init zylonite_init(void) 320static void __init zylonite_init(void)
253{ 321{
254 /* board-processor specific initialization */ 322 /* board-processor specific initialization */
@@ -265,6 +333,7 @@ static void __init zylonite_init(void)
265 333
266 zylonite_init_lcd(); 334 zylonite_init_lcd();
267 zylonite_init_mmc(); 335 zylonite_init_mmc();
336 zylonite_init_keypad();
268} 337}
269 338
270MACHINE_START(ZYLONITE, "PXA3xx Platform Development Kit (aka Zylonite)") 339MACHINE_START(ZYLONITE, "PXA3xx Platform Development Kit (aka Zylonite)")
diff --git a/arch/arm/mach-pxa/zylonite_pxa300.c b/arch/arm/mach-pxa/zylonite_pxa300.c
index 6ac04c09b0e9..324fb9daae28 100644
--- a/arch/arm/mach-pxa/zylonite_pxa300.c
+++ b/arch/arm/mach-pxa/zylonite_pxa300.c
@@ -21,7 +21,7 @@
21#include <asm/arch/mfp-pxa300.h> 21#include <asm/arch/mfp-pxa300.h>
22#include <asm/arch/zylonite.h> 22#include <asm/arch/zylonite.h>
23 23
24#define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x) 24#include "generic.h"
25 25
26/* PXA300/PXA310 common configurations */ 26/* PXA300/PXA310 common configurations */
27static mfp_cfg_t common_mfp_cfg[] __initdata = { 27static mfp_cfg_t common_mfp_cfg[] __initdata = {
@@ -69,6 +69,9 @@ static mfp_cfg_t common_mfp_cfg[] __initdata = {
69 GPIO27_AC97_SDATA_OUT, 69 GPIO27_AC97_SDATA_OUT,
70 GPIO28_AC97_SYNC, 70 GPIO28_AC97_SYNC,
71 71
72 /* WM9713 IRQ */
73 GPIO26_GPIO,
74
72 /* Keypad */ 75 /* Keypad */
73 GPIO107_KP_DKIN_0 | MFP_LPM_EDGE_BOTH, 76 GPIO107_KP_DKIN_0 | MFP_LPM_EDGE_BOTH,
74 GPIO108_KP_DKIN_1 | MFP_LPM_EDGE_BOTH, 77 GPIO108_KP_DKIN_1 | MFP_LPM_EDGE_BOTH,
@@ -203,6 +206,9 @@ void __init zylonite_pxa300_init(void)
203 /* MMC card detect & write protect for controller 0 */ 206 /* MMC card detect & write protect for controller 0 */
204 zylonite_mmc_slot[0].gpio_cd = EXT_GPIO(0); 207 zylonite_mmc_slot[0].gpio_cd = EXT_GPIO(0);
205 zylonite_mmc_slot[0].gpio_wp = EXT_GPIO(2); 208 zylonite_mmc_slot[0].gpio_wp = EXT_GPIO(2);
209
210 /* WM9713 IRQ */
211 wm9713_irq = mfp_to_gpio(MFP_PIN_GPIO26);
206 } 212 }
207 213
208 if (cpu_is_pxa300()) { 214 if (cpu_is_pxa300()) {
diff --git a/arch/arm/mach-pxa/zylonite_pxa320.c b/arch/arm/mach-pxa/zylonite_pxa320.c
index dfa79992b8ab..193d07903b06 100644
--- a/arch/arm/mach-pxa/zylonite_pxa320.c
+++ b/arch/arm/mach-pxa/zylonite_pxa320.c
@@ -21,7 +21,7 @@
21#include <asm/arch/mfp-pxa320.h> 21#include <asm/arch/mfp-pxa320.h>
22#include <asm/arch/zylonite.h> 22#include <asm/arch/zylonite.h>
23 23
24#define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x) 24#include "generic.h"
25 25
26static mfp_cfg_t mfp_cfg[] __initdata = { 26static mfp_cfg_t mfp_cfg[] __initdata = {
27 /* LCD */ 27 /* LCD */
@@ -68,6 +68,9 @@ static mfp_cfg_t mfp_cfg[] __initdata = {
68 GPIO39_AC97_BITCLK, 68 GPIO39_AC97_BITCLK,
69 GPIO40_AC97_nACRESET, 69 GPIO40_AC97_nACRESET,
70 70
71 /* WM9713 IRQ */
72 GPIO15_GPIO,
73
71 /* I2C */ 74 /* I2C */
72 GPIO32_I2C_SCL, 75 GPIO32_I2C_SCL,
73 GPIO33_I2C_SDA, 76 GPIO33_I2C_SDA,
@@ -190,5 +193,8 @@ void __init zylonite_pxa320_init(void)
190 /* MMC card detect & write protect for controller 0 */ 193 /* MMC card detect & write protect for controller 0 */
191 zylonite_mmc_slot[0].gpio_cd = mfp_to_gpio(MFP_PIN_GPIO1); 194 zylonite_mmc_slot[0].gpio_cd = mfp_to_gpio(MFP_PIN_GPIO1);
192 zylonite_mmc_slot[0].gpio_wp = mfp_to_gpio(MFP_PIN_GPIO5); 195 zylonite_mmc_slot[0].gpio_wp = mfp_to_gpio(MFP_PIN_GPIO5);
196
197 /* WM9713 IRQ */
198 wm9713_irq = mfp_to_gpio(MFP_PIN_GPIO15);
193 } 199 }
194} 200}
diff --git a/arch/arm/mach-s3c2410/Kconfig b/arch/arm/mach-s3c2410/Kconfig
index e2079cf9266f..cd3dc0834b3b 100644
--- a/arch/arm/mach-s3c2410/Kconfig
+++ b/arch/arm/mach-s3c2410/Kconfig
@@ -97,6 +97,13 @@ config BAST_PC104_IRQ
97 Say Y here to enable the PC104 IRQ routing on the 97 Say Y here to enable the PC104 IRQ routing on the
98 Simtec BAST (EB2410ITX) 98 Simtec BAST (EB2410ITX)
99 99
100config MACH_TCT_HAMMER
101 bool "TCT Hammer Board"
102 select CPU_S3C2410
103 help
104 Say Y here if you are using the TinCanTools Hammer Board
105 <http://www.tincantools.com>
106
100config MACH_VR1000 107config MACH_VR1000
101 bool "Thorcom VR1000" 108 bool "Thorcom VR1000"
102 select PM_SIMTEC if PM 109 select PM_SIMTEC if PM
diff --git a/arch/arm/mach-s3c2410/Makefile b/arch/arm/mach-s3c2410/Makefile
index 3e7a85594d9c..cabc13ce09e4 100644
--- a/arch/arm/mach-s3c2410/Makefile
+++ b/arch/arm/mach-s3c2410/Makefile
@@ -27,5 +27,6 @@ obj-$(CONFIG_ARCH_BAST) += mach-bast.o usb-simtec.o
27obj-$(CONFIG_MACH_OTOM) += mach-otom.o 27obj-$(CONFIG_MACH_OTOM) += mach-otom.o
28obj-$(CONFIG_MACH_AML_M5900) += mach-amlm5900.o 28obj-$(CONFIG_MACH_AML_M5900) += mach-amlm5900.o
29obj-$(CONFIG_BAST_PC104_IRQ) += bast-irq.o 29obj-$(CONFIG_BAST_PC104_IRQ) += bast-irq.o
30obj-$(CONFIG_MACH_TCT_HAMMER) += mach-tct_hammer.o
30obj-$(CONFIG_MACH_VR1000) += mach-vr1000.o usb-simtec.o 31obj-$(CONFIG_MACH_VR1000) += mach-vr1000.o usb-simtec.o
31obj-$(CONFIG_MACH_QT2410) += mach-qt2410.o 32obj-$(CONFIG_MACH_QT2410) += mach-qt2410.o
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c
index 66175471fff3..661a2358ac22 100644
--- a/arch/arm/mach-s3c2410/mach-bast.c
+++ b/arch/arm/mach-s3c2410/mach-bast.c
@@ -16,6 +16,7 @@
16#include <linux/list.h> 16#include <linux/list.h>
17#include <linux/timer.h> 17#include <linux/timer.h>
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/sysdev.h>
19#include <linux/serial_core.h> 20#include <linux/serial_core.h>
20#include <linux/platform_device.h> 21#include <linux/platform_device.h>
21#include <linux/dm9000.h> 22#include <linux/dm9000.h>
@@ -236,6 +237,36 @@ static struct platform_device bast_device_nor = {
236 237
237/* NAND Flash on BAST board */ 238/* NAND Flash on BAST board */
238 239
240#ifdef CONFIG_PM
241static int bast_pm_suspend(struct sys_device *sd, pm_message_t state)
242{
243 /* ensure that an nRESET is not generated on resume. */
244 s3c2410_gpio_setpin(S3C2410_GPA21, 1);
245 s3c2410_gpio_cfgpin(S3C2410_GPA21, S3C2410_GPA21_OUT);
246
247 return 0;
248}
249
250static int bast_pm_resume(struct sys_device *sd)
251{
252 s3c2410_gpio_cfgpin(S3C2410_GPA21, S3C2410_GPA21_nRSTOUT);
253 return 0;
254}
255
256#else
257#define bast_pm_suspend NULL
258#define bast_pm_resume NULL
259#endif
260
261static struct sysdev_class bast_pm_sysclass = {
262 .name = "mach-bast",
263 .suspend = bast_pm_suspend,
264 .resume = bast_pm_resume,
265};
266
267static struct sys_device bast_pm_sysdev = {
268 .cls = &bast_pm_sysclass,
269};
239 270
240static int smartmedia_map[] = { 0 }; 271static int smartmedia_map[] = { 0 };
241static int chip0_map[] = { 1 }; 272static int chip0_map[] = { 1 };
@@ -561,10 +592,10 @@ static void __init bast_map_io(void)
561{ 592{
562 /* initialise the clocks */ 593 /* initialise the clocks */
563 594
564 s3c24xx_dclk0.parent = NULL; 595 s3c24xx_dclk0.parent = &clk_upll;
565 s3c24xx_dclk0.rate = 12*1000*1000; 596 s3c24xx_dclk0.rate = 12*1000*1000;
566 597
567 s3c24xx_dclk1.parent = NULL; 598 s3c24xx_dclk1.parent = &clk_upll;
568 s3c24xx_dclk1.rate = 24*1000*1000; 599 s3c24xx_dclk1.rate = 24*1000*1000;
569 600
570 s3c24xx_clkout0.parent = &s3c24xx_dclk0; 601 s3c24xx_clkout0.parent = &s3c24xx_dclk0;
@@ -586,6 +617,9 @@ static void __init bast_map_io(void)
586 617
587static void __init bast_init(void) 618static void __init bast_init(void)
588{ 619{
620 sysdev_class_register(&bast_pm_sysclass);
621 sysdev_register(&bast_pm_sysdev);
622
589 s3c24xx_fb_set_platdata(&bast_fb_info); 623 s3c24xx_fb_set_platdata(&bast_fb_info);
590 platform_add_devices(bast_devices, ARRAY_SIZE(bast_devices)); 624 platform_add_devices(bast_devices, ARRAY_SIZE(bast_devices));
591} 625}
diff --git a/arch/arm/mach-s3c2410/mach-tct_hammer.c b/arch/arm/mach-s3c2410/mach-tct_hammer.c
new file mode 100644
index 000000000000..d90d445ccfb4
--- /dev/null
+++ b/arch/arm/mach-s3c2410/mach-tct_hammer.c
@@ -0,0 +1,160 @@
1/* linux/arch/arm/mach-s3c2410/mach-tct_hammer.c
2 *
3 * Copyright (c) 2007 TinCanTools
4 * David Anders <danders@amltd.com>
5
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation; either version 2 of
9 * the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
19 * MA 02111-1307 USA
20 *
21 * @History:
22 * derived from linux/arch/arm/mach-s3c2410/mach-bast.c, written by
23 * Ben Dooks <ben@simtec.co.uk>
24 *
25 ***********************************************************************/
26
27#include <linux/kernel.h>
28#include <linux/types.h>
29#include <linux/interrupt.h>
30#include <linux/list.h>
31#include <linux/timer.h>
32#include <linux/init.h>
33#include <linux/device.h>
34#include <linux/platform_device.h>
35#include <linux/serial_core.h>
36
37#include <asm/mach/arch.h>
38#include <asm/mach/map.h>
39#include <asm/mach/irq.h>
40#include <asm/mach/flash.h>
41
42#include <asm/hardware.h>
43#include <asm/io.h>
44#include <asm/irq.h>
45#include <asm/mach-types.h>
46
47#include <asm/plat-s3c/regs-serial.h>
48#include <asm/plat-s3c24xx/devs.h>
49#include <asm/plat-s3c24xx/cpu.h>
50
51#ifdef CONFIG_MTD_PARTITIONS
52
53#include <linux/mtd/mtd.h>
54#include <linux/mtd/partitions.h>
55#include <linux/mtd/map.h>
56#include <linux/mtd/physmap.h>
57
58static struct resource tct_hammer_nor_resource = {
59 .start = 0x00000000,
60 .end = 0x01000000 - 1,
61 .flags = IORESOURCE_MEM,
62};
63
64static struct mtd_partition tct_hammer_mtd_partitions[] = {
65 {
66 .name = "System",
67 .size = 0x240000,
68 .offset = 0,
69 .mask_flags = MTD_WRITEABLE, /* force read-only */
70 }, {
71 .name = "JFFS2",
72 .size = MTDPART_SIZ_FULL,
73 .offset = MTDPART_OFS_APPEND,
74 }
75};
76
77static struct physmap_flash_data tct_hammer_flash_data = {
78 .width = 2,
79 .parts = tct_hammer_mtd_partitions,
80 .nr_parts = ARRAY_SIZE(tct_hammer_mtd_partitions),
81};
82
83static struct platform_device tct_hammer_device_nor = {
84 .name = "physmap-flash",
85 .id = 0,
86 .dev = {
87 .platform_data = &tct_hammer_flash_data,
88 },
89 .num_resources = 1,
90 .resource = &tct_hammer_nor_resource,
91};
92
93#endif
94
95static struct map_desc tct_hammer_iodesc[] __initdata = {
96};
97
98#define UCON S3C2410_UCON_DEFAULT
99#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB
100#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE
101
102static struct s3c2410_uartcfg tct_hammer_uartcfgs[] = {
103 [0] = {
104 .hwport = 0,
105 .flags = 0,
106 .ucon = UCON,
107 .ulcon = ULCON,
108 .ufcon = UFCON,
109 },
110 [1] = {
111 .hwport = 1,
112 .flags = 0,
113 .ucon = UCON,
114 .ulcon = ULCON,
115 .ufcon = UFCON,
116 },
117 [2] = {
118 .hwport = 2,
119 .flags = 0,
120 .ucon = UCON,
121 .ulcon = ULCON,
122 .ufcon = UFCON,
123 }
124};
125
126
127static struct platform_device *tct_hammer_devices[] __initdata = {
128 &s3c_device_adc,
129 &s3c_device_wdt,
130 &s3c_device_i2c,
131 &s3c_device_usb,
132 &s3c_device_rtc,
133 &s3c_device_usbgadget,
134 &s3c_device_sdi,
135#ifdef CONFIG_MTD_PARTITIONS
136 &tct_hammer_device_nor,
137#endif
138};
139
140static void __init tct_hammer_map_io(void)
141{
142 s3c24xx_init_io(tct_hammer_iodesc, ARRAY_SIZE(tct_hammer_iodesc));
143 s3c24xx_init_clocks(0);
144 s3c24xx_init_uarts(tct_hammer_uartcfgs, ARRAY_SIZE(tct_hammer_uartcfgs));
145}
146
147static void __init tct_hammer_init(void)
148{
149 platform_add_devices(tct_hammer_devices, ARRAY_SIZE(tct_hammer_devices));
150}
151
152MACHINE_START(TCT_HAMMER, "TCT_HAMMER")
153 .phys_io = S3C2410_PA_UART,
154 .io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
155 .boot_params = S3C2410_SDRAM_PA + 0x100,
156 .map_io = tct_hammer_map_io,
157 .init_irq = s3c24xx_init_irq,
158 .init_machine = tct_hammer_init,
159 .timer = &s3c24xx_timer,
160MACHINE_END
diff --git a/arch/arm/mach-s3c2410/mach-vr1000.c b/arch/arm/mach-s3c2410/mach-vr1000.c
index 3aade7b78fe5..c56423373ff3 100644
--- a/arch/arm/mach-s3c2410/mach-vr1000.c
+++ b/arch/arm/mach-s3c2410/mach-vr1000.c
@@ -393,7 +393,7 @@ static void __init vr1000_map_io(void)
393{ 393{
394 /* initialise clock sources */ 394 /* initialise clock sources */
395 395
396 s3c24xx_dclk0.parent = NULL; 396 s3c24xx_dclk0.parent = &clk_upll;
397 s3c24xx_dclk0.rate = 12*1000*1000; 397 s3c24xx_dclk0.rate = 12*1000*1000;
398 398
399 s3c24xx_dclk1.parent = NULL; 399 s3c24xx_dclk1.parent = NULL;
diff --git a/arch/arm/mach-s3c2412/s3c2412.c b/arch/arm/mach-s3c2412/s3c2412.c
index abf1599c9f97..98a0de924c22 100644
--- a/arch/arm/mach-s3c2412/s3c2412.c
+++ b/arch/arm/mach-s3c2412/s3c2412.c
@@ -175,7 +175,7 @@ void __init s3c2412_init_clocks(int xtal)
175 /* work out clock scalings */ 175 /* work out clock scalings */
176 176
177 hclk = fclk / ((tmp & S3C2412_CLKDIVN_HDIVN_MASK) + 1); 177 hclk = fclk / ((tmp & S3C2412_CLKDIVN_HDIVN_MASK) + 1);
178 hclk /= ((tmp & S3C2421_CLKDIVN_ARMDIVN) ? 2 : 1); 178 hclk /= ((tmp & S3C2412_CLKDIVN_ARMDIVN) ? 2 : 1);
179 pclk = hclk / ((tmp & S3C2412_CLKDIVN_PDIVN) ? 2 : 1); 179 pclk = hclk / ((tmp & S3C2412_CLKDIVN_PDIVN) ? 2 : 1);
180 180
181 /* print brieft summary of clocks, etc */ 181 /* print brieft summary of clocks, etc */
diff --git a/arch/arm/mach-s3c2440/mach-anubis.c b/arch/arm/mach-s3c2440/mach-anubis.c
index 3d3dfa95db8e..47258915a2f9 100644
--- a/arch/arm/mach-s3c2440/mach-anubis.c
+++ b/arch/arm/mach-s3c2440/mach-anubis.c
@@ -413,10 +413,10 @@ static void __init anubis_map_io(void)
413{ 413{
414 /* initialise the clocks */ 414 /* initialise the clocks */
415 415
416 s3c24xx_dclk0.parent = NULL; 416 s3c24xx_dclk0.parent = &clk_upll;
417 s3c24xx_dclk0.rate = 12*1000*1000; 417 s3c24xx_dclk0.rate = 12*1000*1000;
418 418
419 s3c24xx_dclk1.parent = NULL; 419 s3c24xx_dclk1.parent = &clk_upll;
420 s3c24xx_dclk1.rate = 24*1000*1000; 420 s3c24xx_dclk1.rate = 24*1000*1000;
421 421
422 s3c24xx_clkout0.parent = &s3c24xx_dclk0; 422 s3c24xx_clkout0.parent = &s3c24xx_dclk0;
diff --git a/arch/arm/mach-s3c2440/mach-osiris.c b/arch/arm/mach-s3c2440/mach-osiris.c
index 78af7664988b..8a8acdbd072d 100644
--- a/arch/arm/mach-s3c2440/mach-osiris.c
+++ b/arch/arm/mach-s3c2440/mach-osiris.c
@@ -18,6 +18,7 @@
18#include <linux/device.h> 18#include <linux/device.h>
19#include <linux/sysdev.h> 19#include <linux/sysdev.h>
20#include <linux/serial_core.h> 20#include <linux/serial_core.h>
21#include <linux/clk.h>
21 22
22#include <asm/mach/arch.h> 23#include <asm/mach/arch.h>
23#include <asm/mach/map.h> 24#include <asm/mach/map.h>
@@ -344,10 +345,10 @@ static void __init osiris_map_io(void)
344 345
345 /* initialise the clocks */ 346 /* initialise the clocks */
346 347
347 s3c24xx_dclk0.parent = NULL; 348 s3c24xx_dclk0.parent = &clk_upll;
348 s3c24xx_dclk0.rate = 12*1000*1000; 349 s3c24xx_dclk0.rate = 12*1000*1000;
349 350
350 s3c24xx_dclk1.parent = NULL; 351 s3c24xx_dclk1.parent = &clk_upll;
351 s3c24xx_dclk1.rate = 24*1000*1000; 352 s3c24xx_dclk1.rate = 24*1000*1000;
352 353
353 s3c24xx_clkout0.parent = &s3c24xx_dclk0; 354 s3c24xx_clkout0.parent = &s3c24xx_dclk0;
diff --git a/arch/arm/mach-sa1100/Makefile b/arch/arm/mach-sa1100/Makefile
index 7a61e8d33ab7..8e0244631d65 100644
--- a/arch/arm/mach-sa1100/Makefile
+++ b/arch/arm/mach-sa1100/Makefile
@@ -3,7 +3,7 @@
3# 3#
4 4
5# Common support 5# Common support
6obj-y := clock.o generic.o irq.o dma.o time.o #nmi-oopser.o 6obj-y := clock.o generic.o gpio.o irq.o dma.o time.o #nmi-oopser.o
7obj-m := 7obj-m :=
8obj-n := 8obj-n :=
9obj- := 9obj- :=
diff --git a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c
index 5c84c604ed86..0c2fa1c4fb4c 100644
--- a/arch/arm/mach-sa1100/generic.c
+++ b/arch/arm/mach-sa1100/generic.c
@@ -139,37 +139,6 @@ unsigned long long sched_clock(void)
139 return v; 139 return v;
140} 140}
141 141
142int gpio_direction_input(unsigned gpio)
143{
144 unsigned long flags;
145
146 if (gpio > GPIO_MAX)
147 return -EINVAL;
148
149 local_irq_save(flags);
150 GPDR &= ~GPIO_GPIO(gpio);
151 local_irq_restore(flags);
152 return 0;
153}
154
155EXPORT_SYMBOL(gpio_direction_input);
156
157int gpio_direction_output(unsigned gpio, int value)
158{
159 unsigned long flags;
160
161 if (gpio > GPIO_MAX)
162 return -EINVAL;
163
164 local_irq_save(flags);
165 gpio_set_value(gpio, value);
166 GPDR |= GPIO_GPIO(gpio);
167 local_irq_restore(flags);
168 return 0;
169}
170
171EXPORT_SYMBOL(gpio_direction_output);
172
173/* 142/*
174 * Default power-off for SA1100 143 * Default power-off for SA1100
175 */ 144 */
diff --git a/arch/arm/mach-sa1100/generic.h b/arch/arm/mach-sa1100/generic.h
index f085d68e568e..793c2e6c991f 100644
--- a/arch/arm/mach-sa1100/generic.h
+++ b/arch/arm/mach-sa1100/generic.h
@@ -9,6 +9,7 @@ struct sys_timer;
9extern struct sys_timer sa1100_timer; 9extern struct sys_timer sa1100_timer;
10extern void __init sa1100_map_io(void); 10extern void __init sa1100_map_io(void);
11extern void __init sa1100_init_irq(void); 11extern void __init sa1100_init_irq(void);
12extern void __init sa1100_init_gpio(void);
12 13
13#define SET_BANK(__nr,__start,__size) \ 14#define SET_BANK(__nr,__start,__size) \
14 mi->bank[__nr].start = (__start), \ 15 mi->bank[__nr].start = (__start), \
diff --git a/arch/arm/mach-sa1100/gpio.c b/arch/arm/mach-sa1100/gpio.c
new file mode 100644
index 000000000000..372f1f4f54a1
--- /dev/null
+++ b/arch/arm/mach-sa1100/gpio.c
@@ -0,0 +1,65 @@
1/*
2 * linux/arch/arm/mach-sa1100/gpio.c
3 *
4 * Generic SA-1100 GPIO handling
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10
11#include <linux/init.h>
12#include <linux/module.h>
13
14#include <asm/gpio.h>
15#include <asm/hardware.h>
16#include "generic.h"
17
18static int sa1100_gpio_get(struct gpio_chip *chip, unsigned offset)
19{
20 return GPLR & GPIO_GPIO(offset);
21}
22
23static void sa1100_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
24{
25 if (value)
26 GPSR = GPIO_GPIO(offset);
27 else
28 GPCR = GPIO_GPIO(offset);
29}
30
31static int sa1100_direction_input(struct gpio_chip *chip, unsigned offset)
32{
33 unsigned long flags;
34
35 local_irq_save(flags);
36 GPDR &= ~GPIO_GPIO(offset);
37 local_irq_restore(flags);
38 return 0;
39}
40
41static int sa1100_direction_output(struct gpio_chip *chip, unsigned offset, int value)
42{
43 unsigned long flags;
44
45 local_irq_save(flags);
46 sa1100_gpio_set(chip, offset, value);
47 GPDR |= GPIO_GPIO(offset);
48 local_irq_restore(flags);
49 return 0;
50}
51
52static struct gpio_chip sa1100_gpio_chip = {
53 .label = "gpio",
54 .direction_input = sa1100_direction_input,
55 .direction_output = sa1100_direction_output,
56 .set = sa1100_gpio_set,
57 .get = sa1100_gpio_get,
58 .base = 0,
59 .ngpio = GPIO_MAX + 1,
60};
61
62void __init sa1100_init_gpio(void)
63{
64 gpiochip_add(&sa1100_gpio_chip);
65}
diff --git a/arch/arm/mach-sa1100/irq.c b/arch/arm/mach-sa1100/irq.c
index 3dc17d7bf38e..fa0403af7eec 100644
--- a/arch/arm/mach-sa1100/irq.c
+++ b/arch/arm/mach-sa1100/irq.c
@@ -347,4 +347,6 @@ void __init sa1100_init_irq(void)
347 */ 347 */
348 set_irq_chip(IRQ_GPIO11_27, &sa1100_normal_chip); 348 set_irq_chip(IRQ_GPIO11_27, &sa1100_normal_chip);
349 set_irq_chained_handler(IRQ_GPIO11_27, sa1100_high_gpio_handler); 349 set_irq_chained_handler(IRQ_GPIO11_27, sa1100_high_gpio_handler);
350
351 sa1100_init_gpio();
350} 352}
diff --git a/arch/arm/mach-sa1100/time.c b/arch/arm/mach-sa1100/time.c
index c2677368d6af..a9799cb35b74 100644
--- a/arch/arm/mach-sa1100/time.c
+++ b/arch/arm/mach-sa1100/time.c
@@ -13,67 +13,69 @@
13#include <linux/interrupt.h> 13#include <linux/interrupt.h>
14#include <linux/irq.h> 14#include <linux/irq.h>
15#include <linux/timex.h> 15#include <linux/timex.h>
16#include <linux/signal.h> 16#include <linux/clockchips.h>
17#include <linux/clocksource.h>
18 17
19#include <asm/mach/time.h> 18#include <asm/mach/time.h>
20#include <asm/hardware.h> 19#include <asm/hardware.h>
21 20
22#define RTC_DEF_DIVIDER (32768 - 1) 21#define MIN_OSCR_DELTA 2
23#define RTC_DEF_TRIM 0
24 22
25static int sa1100_set_rtc(void) 23static irqreturn_t sa1100_ost0_interrupt(int irq, void *dev_id)
26{ 24{
27 unsigned long current_time = xtime.tv_sec; 25 struct clock_event_device *c = dev_id;
28 26
29 if (RTSR & RTSR_ALE) { 27 /* Disarm the compare/match, signal the event. */
30 /* make sure not to forward the clock over an alarm */ 28 OIER &= ~OIER_E0;
31 unsigned long alarm = RTAR; 29 OSSR = OSSR_M0;
32 if (current_time >= alarm && alarm >= RCNR) 30 c->event_handler(c);
33 return -ERESTARTSYS;
34 }
35 RCNR = current_time;
36 return 0;
37}
38 31
39#ifdef CONFIG_NO_IDLE_HZ 32 return IRQ_HANDLED;
40static unsigned long initial_match; 33}
41static int match_posponed;
42#endif
43 34
44static irqreturn_t 35static int
45sa1100_timer_interrupt(int irq, void *dev_id) 36sa1100_osmr0_set_next_event(unsigned long delta, struct clock_event_device *c)
46{ 37{
47 unsigned int next_match; 38 unsigned long flags, next, oscr;
48 39
49#ifdef CONFIG_NO_IDLE_HZ 40 raw_local_irq_save(flags);
50 if (match_posponed) { 41 OIER |= OIER_E0;
51 match_posponed = 0; 42 next = OSCR + delta;
52 OSMR0 = initial_match; 43 OSMR0 = next;
53 } 44 oscr = OSCR;
54#endif 45 raw_local_irq_restore(flags);
55 46
56 /* 47 return (signed)(next - oscr) <= MIN_OSCR_DELTA ? -ETIME : 0;
57 * Loop until we get ahead of the free running timer. 48}
58 * This ensures an exact clock tick count and time accuracy.
59 * Since IRQs are disabled at this point, coherence between
60 * lost_ticks(updated in do_timer()) and the match reg value is
61 * ensured, hence we can use do_gettimeofday() from interrupt
62 * handlers.
63 */
64 do {
65 timer_tick();
66 OSSR = OSSR_M0; /* Clear match on timer 0 */
67 next_match = (OSMR0 += LATCH);
68 } while ((signed long)(next_match - OSCR) <= 0);
69 49
70 return IRQ_HANDLED; 50static void
51sa1100_osmr0_set_mode(enum clock_event_mode mode, struct clock_event_device *c)
52{
53 unsigned long flags;
54
55 switch (mode) {
56 case CLOCK_EVT_MODE_ONESHOT:
57 case CLOCK_EVT_MODE_UNUSED:
58 case CLOCK_EVT_MODE_SHUTDOWN:
59 raw_local_irq_save(flags);
60 OIER &= ~OIER_E0;
61 OSSR = OSSR_M0;
62 raw_local_irq_restore(flags);
63 break;
64
65 case CLOCK_EVT_MODE_RESUME:
66 case CLOCK_EVT_MODE_PERIODIC:
67 break;
68 }
71} 69}
72 70
73static struct irqaction sa1100_timer_irq = { 71static struct clock_event_device ckevt_sa1100_osmr0 = {
74 .name = "SA11xx Timer Tick", 72 .name = "osmr0",
75 .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, 73 .features = CLOCK_EVT_FEAT_ONESHOT,
76 .handler = sa1100_timer_interrupt, 74 .shift = 32,
75 .rating = 200,
76 .cpumask = CPU_MASK_CPU0,
77 .set_next_event = sa1100_osmr0_set_next_event,
78 .set_mode = sa1100_osmr0_set_mode,
77}; 79};
78 80
79static cycle_t sa1100_read_oscr(void) 81static cycle_t sa1100_read_oscr(void)
@@ -90,62 +92,34 @@ static struct clocksource cksrc_sa1100_oscr = {
90 .flags = CLOCK_SOURCE_IS_CONTINUOUS, 92 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
91}; 93};
92 94
95static struct irqaction sa1100_timer_irq = {
96 .name = "ost0",
97 .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL,
98 .handler = sa1100_ost0_interrupt,
99 .dev_id = &ckevt_sa1100_osmr0,
100};
101
93static void __init sa1100_timer_init(void) 102static void __init sa1100_timer_init(void)
94{ 103{
95 unsigned long flags;
96
97 set_rtc = sa1100_set_rtc;
98
99 OIER = 0; /* disable any timer interrupts */ 104 OIER = 0; /* disable any timer interrupts */
100 OSSR = 0xf; /* clear status on all timers */ 105 OSSR = 0xf; /* clear status on all timers */
101 setup_irq(IRQ_OST0, &sa1100_timer_irq); 106
102 local_irq_save(flags); 107 ckevt_sa1100_osmr0.mult =
103 OIER = OIER_E0; /* enable match on timer 0 to cause interrupts */ 108 div_sc(3686400, NSEC_PER_SEC, ckevt_sa1100_osmr0.shift);
104 OSMR0 = OSCR + LATCH; /* set initial match */ 109 ckevt_sa1100_osmr0.max_delta_ns =
105 local_irq_restore(flags); 110 clockevent_delta2ns(0x7fffffff, &ckevt_sa1100_osmr0);
111 ckevt_sa1100_osmr0.min_delta_ns =
112 clockevent_delta2ns(MIN_OSCR_DELTA * 2, &ckevt_sa1100_osmr0) + 1;
106 113
107 cksrc_sa1100_oscr.mult = 114 cksrc_sa1100_oscr.mult =
108 clocksource_hz2mult(CLOCK_TICK_RATE, cksrc_sa1100_oscr.shift); 115 clocksource_hz2mult(CLOCK_TICK_RATE, cksrc_sa1100_oscr.shift);
109 116
110 clocksource_register(&cksrc_sa1100_oscr); 117 setup_irq(IRQ_OST0, &sa1100_timer_irq);
111}
112
113#ifdef CONFIG_NO_IDLE_HZ
114static int sa1100_dyn_tick_enable_disable(void)
115{
116 /* nothing to do */
117 return 0;
118}
119
120static void sa1100_dyn_tick_reprogram(unsigned long ticks)
121{
122 if (ticks > 1) {
123 initial_match = OSMR0;
124 OSMR0 = initial_match + ticks * LATCH;
125 match_posponed = 1;
126 }
127}
128 118
129static irqreturn_t 119 clocksource_register(&cksrc_sa1100_oscr);
130sa1100_dyn_tick_handler(int irq, void *dev_id) 120 clockevents_register_device(&ckevt_sa1100_osmr0);
131{
132 if (match_posponed) {
133 match_posponed = 0;
134 OSMR0 = initial_match;
135 if ((signed long)(initial_match - OSCR) <= 0)
136 return sa1100_timer_interrupt(irq, dev_id);
137 }
138 return IRQ_NONE;
139} 121}
140 122
141static struct dyn_tick_timer sa1100_dyn_tick = {
142 .enable = sa1100_dyn_tick_enable_disable,
143 .disable = sa1100_dyn_tick_enable_disable,
144 .reprogram = sa1100_dyn_tick_reprogram,
145 .handler = sa1100_dyn_tick_handler,
146};
147#endif
148
149#ifdef CONFIG_PM 123#ifdef CONFIG_PM
150unsigned long osmr[4], oier; 124unsigned long osmr[4], oier;
151 125
@@ -181,7 +155,4 @@ struct sys_timer sa1100_timer = {
181 .init = sa1100_timer_init, 155 .init = sa1100_timer_init,
182 .suspend = sa1100_timer_suspend, 156 .suspend = sa1100_timer_suspend,
183 .resume = sa1100_timer_resume, 157 .resume = sa1100_timer_resume,
184#ifdef CONFIG_NO_IDLE_HZ
185 .dyn_tick = &sa1100_dyn_tick,
186#endif
187}; 158};
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
index 3696f4fe45de..746cbb7c8e95 100644
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -359,7 +359,7 @@ config CPU_XSC3
359# Feroceon 359# Feroceon
360config CPU_FEROCEON 360config CPU_FEROCEON
361 bool 361 bool
362 depends on ARCH_ORION 362 depends on ARCH_ORION5X
363 default y 363 default y
364 select CPU_32v5 364 select CPU_32v5
365 select CPU_ABRT_EV5T 365 select CPU_ABRT_EV5T
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index ec00f26bffa4..b657f1719af0 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -48,8 +48,6 @@ void show_mem(void)
48 48
49 printk("Mem-info:\n"); 49 printk("Mem-info:\n");
50 show_free_areas(); 50 show_free_areas();
51 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
52
53 for_each_online_node(node) { 51 for_each_online_node(node) {
54 pg_data_t *n = NODE_DATA(node); 52 pg_data_t *n = NODE_DATA(node);
55 struct page *map = n->node_mem_map - n->node_start_pfn; 53 struct page *map = n->node_mem_map - n->node_start_pfn;
diff --git a/arch/arm/plat-iop/pci.c b/arch/arm/plat-iop/pci.c
index 98d01517b563..d9bc15a69e5d 100644
--- a/arch/arm/plat-iop/pci.c
+++ b/arch/arm/plat-iop/pci.c
@@ -24,6 +24,7 @@
24#include <asm/hardware.h> 24#include <asm/hardware.h>
25#include <asm/mach/pci.h> 25#include <asm/mach/pci.h>
26#include <asm/hardware/iop3xx.h> 26#include <asm/hardware/iop3xx.h>
27#include <asm/mach-types.h>
27 28
28// #define DEBUG 29// #define DEBUG
29 30
@@ -209,8 +210,11 @@ int iop3xx_pci_setup(int nr, struct pci_sys_data *sys)
209 res[1].flags = IORESOURCE_MEM; 210 res[1].flags = IORESOURCE_MEM;
210 request_resource(&iomem_resource, &res[1]); 211 request_resource(&iomem_resource, &res[1]);
211 212
212 sys->mem_offset = IOP3XX_PCI_LOWER_MEM_PA - IOP3XX_PCI_LOWER_MEM_BA; 213 /*
213 sys->io_offset = IOP3XX_PCI_LOWER_IO_PA - IOP3XX_PCI_LOWER_IO_BA; 214 * Use whatever translation is already setup.
215 */
216 sys->mem_offset = IOP3XX_PCI_LOWER_MEM_PA - *IOP3XX_OMWTVR0;
217 sys->io_offset = IOP3XX_PCI_LOWER_IO_PA - *IOP3XX_OIOWTVR;
214 218
215 sys->resource[0] = &res[0]; 219 sys->resource[0] = &res[0];
216 sys->resource[1] = &res[1]; 220 sys->resource[1] = &res[1];
@@ -250,11 +254,11 @@ void __init iop3xx_atu_setup(void)
250 *IOP3XX_IATVR2 = PHYS_OFFSET; 254 *IOP3XX_IATVR2 = PHYS_OFFSET;
251 255
252 /* Outbound window 0 */ 256 /* Outbound window 0 */
253 *IOP3XX_OMWTVR0 = IOP3XX_PCI_LOWER_MEM_PA; 257 *IOP3XX_OMWTVR0 = IOP3XX_PCI_LOWER_MEM_BA;
254 *IOP3XX_OUMWTVR0 = 0; 258 *IOP3XX_OUMWTVR0 = 0;
255 259
256 /* Outbound window 1 */ 260 /* Outbound window 1 */
257 *IOP3XX_OMWTVR1 = IOP3XX_PCI_LOWER_MEM_PA + IOP3XX_PCI_MEM_WINDOW_SIZE; 261 *IOP3XX_OMWTVR1 = IOP3XX_PCI_LOWER_MEM_BA + IOP3XX_PCI_MEM_WINDOW_SIZE;
258 *IOP3XX_OUMWTVR1 = 0; 262 *IOP3XX_OUMWTVR1 = 0;
259 263
260 /* BAR 3 ( Disabled ) */ 264 /* BAR 3 ( Disabled ) */
@@ -265,7 +269,7 @@ void __init iop3xx_atu_setup(void)
265 269
266 /* Setup the I/O Bar 270 /* Setup the I/O Bar
267 */ 271 */
268 *IOP3XX_OIOWTVR = IOP3XX_PCI_LOWER_IO_PA;; 272 *IOP3XX_OIOWTVR = IOP3XX_PCI_LOWER_IO_BA;
269 273
270 /* Enable inbound and outbound cycles 274 /* Enable inbound and outbound cycles
271 */ 275 */
@@ -322,34 +326,59 @@ void __init iop3xx_atu_disable(void)
322/* Flag to determine whether the ATU is initialized and the PCI bus scanned */ 326/* Flag to determine whether the ATU is initialized and the PCI bus scanned */
323int init_atu; 327int init_atu;
324 328
325void __init iop3xx_pci_preinit(void) 329int iop3xx_get_init_atu(void) {
330 /* check if default has been overridden */
331 if (init_atu != IOP3XX_INIT_ATU_DEFAULT)
332 return init_atu;
333 else
334 return IOP3XX_INIT_ATU_DISABLE;
335}
336
337static void __init iop3xx_atu_debug(void)
326{ 338{
327 if (iop3xx_get_init_atu() == IOP3XX_INIT_ATU_ENABLE) { 339 DBG("PCI: Intel IOP3xx PCI init.\n");
328 iop3xx_atu_disable(); 340 DBG("PCI: Outbound memory window 0: PCI 0x%08x%08x\n",
329 iop3xx_atu_setup(); 341 *IOP3XX_OUMWTVR0, *IOP3XX_OMWTVR0);
330 } 342 DBG("PCI: Outbound memory window 1: PCI 0x%08x%08x\n",
343 *IOP3XX_OUMWTVR1, *IOP3XX_OMWTVR1);
344 DBG("PCI: Outbound IO window: PCI 0x%08x\n",
345 *IOP3XX_OIOWTVR);
346
347 DBG("PCI: Inbound memory window 0: PCI 0x%08x%08x 0x%08x -> 0x%08x\n",
348 *IOP3XX_IAUBAR0, *IOP3XX_IABAR0, *IOP3XX_IALR0, *IOP3XX_IATVR0);
349 DBG("PCI: Inbound memory window 1: PCI 0x%08x%08x 0x%08x\n",
350 *IOP3XX_IAUBAR1, *IOP3XX_IABAR1, *IOP3XX_IALR1);
351 DBG("PCI: Inbound memory window 2: PCI 0x%08x%08x 0x%08x -> 0x%08x\n",
352 *IOP3XX_IAUBAR2, *IOP3XX_IABAR2, *IOP3XX_IALR2, *IOP3XX_IATVR2);
353 DBG("PCI: Inbound memory window 3: PCI 0x%08x%08x 0x%08x -> 0x%08x\n",
354 *IOP3XX_IAUBAR3, *IOP3XX_IABAR3, *IOP3XX_IALR3, *IOP3XX_IATVR3);
355
356 DBG("PCI: Expansion ROM window: PCI 0x%08x%08x 0x%08x -> 0x%08x\n",
357 0, *IOP3XX_ERBAR, *IOP3XX_ERLR, *IOP3XX_ERTVR);
331 358
332 DBG("PCI: Intel 803xx PCI init code.\n");
333 DBG("ATU: IOP3XX_ATUCMD=0x%04x\n", *IOP3XX_ATUCMD); 359 DBG("ATU: IOP3XX_ATUCMD=0x%04x\n", *IOP3XX_ATUCMD);
334 DBG("ATU: IOP3XX_OMWTVR0=0x%04x, IOP3XX_OIOWTVR=0x%04x\n",
335 *IOP3XX_OMWTVR0,
336 *IOP3XX_OIOWTVR);
337 DBG("ATU: IOP3XX_ATUCR=0x%08x\n", *IOP3XX_ATUCR); 360 DBG("ATU: IOP3XX_ATUCR=0x%08x\n", *IOP3XX_ATUCR);
338 DBG("ATU: IOP3XX_IABAR0=0x%08x IOP3XX_IALR0=0x%08x IOP3XX_IATVR0=%08x\n",
339 *IOP3XX_IABAR0, *IOP3XX_IALR0, *IOP3XX_IATVR0);
340 DBG("ATU: IOP3XX_OMWTVR0=0x%08x\n", *IOP3XX_OMWTVR0);
341 DBG("ATU: IOP3XX_IABAR1=0x%08x IOP3XX_IALR1=0x%08x\n",
342 *IOP3XX_IABAR1, *IOP3XX_IALR1);
343 DBG("ATU: IOP3XX_ERBAR=0x%08x IOP3XX_ERLR=0x%08x IOP3XX_ERTVR=%08x\n",
344 *IOP3XX_ERBAR, *IOP3XX_ERLR, *IOP3XX_ERTVR);
345 DBG("ATU: IOP3XX_IABAR2=0x%08x IOP3XX_IALR2=0x%08x IOP3XX_IATVR2=%08x\n",
346 *IOP3XX_IABAR2, *IOP3XX_IALR2, *IOP3XX_IATVR2);
347 DBG("ATU: IOP3XX_IABAR3=0x%08x IOP3XX_IALR3=0x%08x IOP3XX_IATVR3=%08x\n",
348 *IOP3XX_IABAR3, *IOP3XX_IALR3, *IOP3XX_IATVR3);
349 361
350 hook_fault_code(16+6, iop3xx_pci_abort, SIGBUS, "imprecise external abort"); 362 hook_fault_code(16+6, iop3xx_pci_abort, SIGBUS, "imprecise external abort");
351} 363}
352 364
365/* for platforms that might be host-bus-adapters */
366void __init iop3xx_pci_preinit_cond(void)
367{
368 if (iop3xx_get_init_atu() == IOP3XX_INIT_ATU_ENABLE) {
369 iop3xx_atu_disable();
370 iop3xx_atu_setup();
371 iop3xx_atu_debug();
372 }
373}
374
375void __init iop3xx_pci_preinit(void)
376{
377 iop3xx_atu_disable();
378 iop3xx_atu_setup();
379 iop3xx_atu_debug();
380}
381
353/* allow init_atu to be user overridden */ 382/* allow init_atu to be user overridden */
354static int __init iop3xx_init_atu_setup(char *str) 383static int __init iop3xx_init_atu_setup(char *str)
355{ 384{
diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig
index 03a65c0dfb60..bb6e12738fb3 100644
--- a/arch/arm/plat-mxc/Kconfig
+++ b/arch/arm/plat-mxc/Kconfig
@@ -4,7 +4,7 @@ menu "Freescale MXC Implementations"
4 4
5choice 5choice
6 prompt "MXC/iMX System Type" 6 prompt "MXC/iMX System Type"
7 default 0 7 default ARCH_MX3
8 8
9config ARCH_MX3 9config ARCH_MX3
10 bool "MX3-based" 10 bool "MX3-based"
diff --git a/arch/arm/plat-mxc/Makefile b/arch/arm/plat-mxc/Makefile
index 66ad9c2b6d64..f96dc0362068 100644
--- a/arch/arm/plat-mxc/Makefile
+++ b/arch/arm/plat-mxc/Makefile
@@ -4,7 +4,3 @@
4 4
5# Common support 5# Common support
6obj-y := irq.o 6obj-y := irq.o
7
8obj-m :=
9obj-n :=
10obj- :=
diff --git a/arch/arm/plat-mxc/irq.c b/arch/arm/plat-mxc/irq.c
index 87d253bc3d3c..2ad5a6917b3f 100644
--- a/arch/arm/plat-mxc/irq.c
+++ b/arch/arm/plat-mxc/irq.c
@@ -19,21 +19,13 @@
19#include <asm/mach/irq.h> 19#include <asm/mach/irq.h>
20#include <asm/arch/common.h> 20#include <asm/arch/common.h>
21 21
22/*! 22/* Disable interrupt number "irq" in the AVIC */
23 * Disable interrupt number "irq" in the AVIC
24 *
25 * @param irq interrupt source number
26 */
27static void mxc_mask_irq(unsigned int irq) 23static void mxc_mask_irq(unsigned int irq)
28{ 24{
29 __raw_writel(irq, AVIC_INTDISNUM); 25 __raw_writel(irq, AVIC_INTDISNUM);
30} 26}
31 27
32/*! 28/* Enable interrupt number "irq" in the AVIC */
33 * Enable interrupt number "irq" in the AVIC
34 *
35 * @param irq interrupt source number
36 */
37static void mxc_unmask_irq(unsigned int irq) 29static void mxc_unmask_irq(unsigned int irq)
38{ 30{
39 __raw_writel(irq, AVIC_INTENNUM); 31 __raw_writel(irq, AVIC_INTENNUM);
@@ -45,7 +37,7 @@ static struct irq_chip mxc_avic_chip = {
45 .unmask = mxc_unmask_irq, 37 .unmask = mxc_unmask_irq,
46}; 38};
47 39
48/*! 40/*
49 * This function initializes the AVIC hardware and disables all the 41 * This function initializes the AVIC hardware and disables all the
50 * interrupts. It registers the interrupt enable and disable functions 42 * interrupts. It registers the interrupt enable and disable functions
51 * to the kernel for each interrupt source. 43 * to the kernel for each interrupt source.
diff --git a/arch/arm/plat-orion/Makefile b/arch/arm/plat-orion/Makefile
new file mode 100644
index 000000000000..198f3dde2be3
--- /dev/null
+++ b/arch/arm/plat-orion/Makefile
@@ -0,0 +1,8 @@
1#
2# Makefile for the linux kernel.
3#
4
5obj-y := irq.o pcie.o time.o
6obj-m :=
7obj-n :=
8obj- :=
diff --git a/arch/arm/plat-orion/irq.c b/arch/arm/plat-orion/irq.c
new file mode 100644
index 000000000000..c5b669d234bc
--- /dev/null
+++ b/arch/arm/plat-orion/irq.c
@@ -0,0 +1,64 @@
1/*
2 * arch/arm/plat-orion/irq.c
3 *
4 * Marvell Orion SoC IRQ handling.
5 *
6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied.
9 */
10
11#include <linux/kernel.h>
12#include <linux/init.h>
13#include <linux/irq.h>
14#include <linux/io.h>
15#include <asm/plat-orion/irq.h>
16
17static void orion_irq_mask(u32 irq)
18{
19 void __iomem *maskaddr = get_irq_chip_data(irq);
20 u32 mask;
21
22 mask = readl(maskaddr);
23 mask &= ~(1 << (irq & 31));
24 writel(mask, maskaddr);
25}
26
27static void orion_irq_unmask(u32 irq)
28{
29 void __iomem *maskaddr = get_irq_chip_data(irq);
30 u32 mask;
31
32 mask = readl(maskaddr);
33 mask |= 1 << (irq & 31);
34 writel(mask, maskaddr);
35}
36
37static struct irq_chip orion_irq_chip = {
38 .name = "orion_irq",
39 .ack = orion_irq_mask,
40 .mask = orion_irq_mask,
41 .unmask = orion_irq_unmask,
42};
43
44void __init orion_irq_init(unsigned int irq_start, void __iomem *maskaddr)
45{
46 unsigned int i;
47
48 /*
49 * Mask all interrupts initially.
50 */
51 writel(0, maskaddr);
52
53 /*
54 * Register IRQ sources.
55 */
56 for (i = 0; i < 32; i++) {
57 unsigned int irq = irq_start + i;
58
59 set_irq_chip(irq, &orion_irq_chip);
60 set_irq_chip_data(irq, maskaddr);
61 set_irq_handler(irq, handle_level_irq);
62 set_irq_flags(irq, IRQF_VALID);
63 }
64}
diff --git a/arch/arm/plat-orion/pcie.c b/arch/arm/plat-orion/pcie.c
new file mode 100644
index 000000000000..abfda53f1800
--- /dev/null
+++ b/arch/arm/plat-orion/pcie.c
@@ -0,0 +1,245 @@
1/*
2 * arch/arm/plat-orion/pcie.c
3 *
4 * Marvell Orion SoC PCIe handling.
5 *
6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied.
9 */
10
11#include <linux/kernel.h>
12#include <linux/pci.h>
13#include <linux/mbus.h>
14#include <asm/mach/pci.h>
15#include <asm/plat-orion/pcie.h>
16
17/*
18 * PCIe unit register offsets.
19 */
20#define PCIE_DEV_ID_OFF 0x0000
21#define PCIE_CMD_OFF 0x0004
22#define PCIE_DEV_REV_OFF 0x0008
23#define PCIE_BAR_LO_OFF(n) (0x0010 + ((n) << 3))
24#define PCIE_BAR_HI_OFF(n) (0x0014 + ((n) << 3))
25#define PCIE_HEADER_LOG_4_OFF 0x0128
26#define PCIE_BAR_CTRL_OFF(n) (0x1804 + ((n - 1) * 4))
27#define PCIE_WIN04_CTRL_OFF(n) (0x1820 + ((n) << 4))
28#define PCIE_WIN04_BASE_OFF(n) (0x1824 + ((n) << 4))
29#define PCIE_WIN04_REMAP_OFF(n) (0x182c + ((n) << 4))
30#define PCIE_WIN5_CTRL_OFF 0x1880
31#define PCIE_WIN5_BASE_OFF 0x1884
32#define PCIE_WIN5_REMAP_OFF 0x188c
33#define PCIE_CONF_ADDR_OFF 0x18f8
34#define PCIE_CONF_ADDR_EN 0x80000000
35#define PCIE_CONF_REG(r) ((((r) & 0xf00) << 16) | ((r) & 0xfc))
36#define PCIE_CONF_BUS(b) (((b) & 0xff) << 16)
37#define PCIE_CONF_DEV(d) (((d) & 0x1f) << 11)
38#define PCIE_CONF_FUNC(f) (((f) & 0x3) << 8)
39#define PCIE_CONF_DATA_OFF 0x18fc
40#define PCIE_MASK_OFF 0x1910
41#define PCIE_CTRL_OFF 0x1a00
42#define PCIE_STAT_OFF 0x1a04
43#define PCIE_STAT_DEV_OFFS 20
44#define PCIE_STAT_DEV_MASK 0x1f
45#define PCIE_STAT_BUS_OFFS 8
46#define PCIE_STAT_BUS_MASK 0xff
47#define PCIE_STAT_LINK_DOWN 1
48
49
50u32 __init orion_pcie_dev_id(void __iomem *base)
51{
52 return readl(base + PCIE_DEV_ID_OFF) >> 16;
53}
54
55u32 __init orion_pcie_rev(void __iomem *base)
56{
57 return readl(base + PCIE_DEV_REV_OFF) & 0xff;
58}
59
60int orion_pcie_link_up(void __iomem *base)
61{
62 return !(readl(base + PCIE_STAT_OFF) & PCIE_STAT_LINK_DOWN);
63}
64
65int orion_pcie_get_local_bus_nr(void __iomem *base)
66{
67 u32 stat = readl(base + PCIE_STAT_OFF);
68
69 return (stat >> PCIE_STAT_BUS_OFFS) & PCIE_STAT_BUS_MASK;
70}
71
72void __init orion_pcie_set_local_bus_nr(void __iomem *base, int nr)
73{
74 u32 stat;
75
76 stat = readl(base + PCIE_STAT_OFF);
77 stat &= ~(PCIE_STAT_BUS_MASK << PCIE_STAT_BUS_OFFS);
78 stat |= nr << PCIE_STAT_BUS_OFFS;
79 writel(stat, base + PCIE_STAT_OFF);
80}
81
82/*
83 * Setup PCIE BARs and Address Decode Wins:
84 * BAR[0,2] -> disabled, BAR[1] -> covers all DRAM banks
85 * WIN[0-3] -> DRAM bank[0-3]
86 */
87static void __init orion_pcie_setup_wins(void __iomem *base,
88 struct mbus_dram_target_info *dram)
89{
90 u32 size;
91 int i;
92
93 /*
94 * First, disable and clear BARs and windows.
95 */
96 for (i = 1; i <= 2; i++) {
97 writel(0, base + PCIE_BAR_CTRL_OFF(i));
98 writel(0, base + PCIE_BAR_LO_OFF(i));
99 writel(0, base + PCIE_BAR_HI_OFF(i));
100 }
101
102 for (i = 0; i < 5; i++) {
103 writel(0, base + PCIE_WIN04_CTRL_OFF(i));
104 writel(0, base + PCIE_WIN04_BASE_OFF(i));
105 writel(0, base + PCIE_WIN04_REMAP_OFF(i));
106 }
107
108 writel(0, base + PCIE_WIN5_CTRL_OFF);
109 writel(0, base + PCIE_WIN5_BASE_OFF);
110 writel(0, base + PCIE_WIN5_REMAP_OFF);
111
112 /*
113 * Setup windows for DDR banks. Count total DDR size on the fly.
114 */
115 size = 0;
116 for (i = 0; i < dram->num_cs; i++) {
117 struct mbus_dram_window *cs = dram->cs + i;
118
119 writel(cs->base & 0xffff0000, base + PCIE_WIN04_BASE_OFF(i));
120 writel(0, base + PCIE_WIN04_REMAP_OFF(i));
121 writel(((cs->size - 1) & 0xffff0000) |
122 (cs->mbus_attr << 8) |
123 (dram->mbus_dram_target_id << 4) | 1,
124 base + PCIE_WIN04_CTRL_OFF(i));
125
126 size += cs->size;
127 }
128
129 /*
130 * Setup BAR[1] to all DRAM banks.
131 */
132 writel(dram->cs[0].base, base + PCIE_BAR_LO_OFF(1));
133 writel(0, base + PCIE_BAR_HI_OFF(1));
134 writel(((size - 1) & 0xffff0000) | 1, base + PCIE_BAR_CTRL_OFF(1));
135}
136
137void __init orion_pcie_setup(void __iomem *base,
138 struct mbus_dram_target_info *dram)
139{
140 u16 cmd;
141 u32 mask;
142
143 /*
144 * Point PCIe unit MBUS decode windows to DRAM space.
145 */
146 orion_pcie_setup_wins(base, dram);
147
148 /*
149 * Master + slave enable.
150 */
151 cmd = readw(base + PCIE_CMD_OFF);
152 cmd |= PCI_COMMAND_IO;
153 cmd |= PCI_COMMAND_MEMORY;
154 cmd |= PCI_COMMAND_MASTER;
155 writew(cmd, base + PCIE_CMD_OFF);
156
157 /*
158 * Enable interrupt lines A-D.
159 */
160 mask = readl(base + PCIE_MASK_OFF);
161 mask |= 0x0f000000;
162 writel(mask, base + PCIE_MASK_OFF);
163}
164
165int orion_pcie_rd_conf(void __iomem *base, struct pci_bus *bus,
166 u32 devfn, int where, int size, u32 *val)
167{
168 writel(PCIE_CONF_BUS(bus->number) |
169 PCIE_CONF_DEV(PCI_SLOT(devfn)) |
170 PCIE_CONF_FUNC(PCI_FUNC(devfn)) |
171 PCIE_CONF_REG(where) | PCIE_CONF_ADDR_EN,
172 base + PCIE_CONF_ADDR_OFF);
173
174 *val = readl(base + PCIE_CONF_DATA_OFF);
175
176 if (size == 1)
177 *val = (*val >> (8 * (where & 3))) & 0xff;
178 else if (size == 2)
179 *val = (*val >> (8 * (where & 3))) & 0xffff;
180
181 return PCIBIOS_SUCCESSFUL;
182}
183
184int orion_pcie_rd_conf_tlp(void __iomem *base, struct pci_bus *bus,
185 u32 devfn, int where, int size, u32 *val)
186{
187 writel(PCIE_CONF_BUS(bus->number) |
188 PCIE_CONF_DEV(PCI_SLOT(devfn)) |
189 PCIE_CONF_FUNC(PCI_FUNC(devfn)) |
190 PCIE_CONF_REG(where) | PCIE_CONF_ADDR_EN,
191 base + PCIE_CONF_ADDR_OFF);
192
193 *val = readl(base + PCIE_CONF_DATA_OFF);
194
195 if (bus->number != orion_pcie_get_local_bus_nr(base) ||
196 PCI_FUNC(devfn) != 0)
197 *val = readl(base + PCIE_HEADER_LOG_4_OFF);
198
199 if (size == 1)
200 *val = (*val >> (8 * (where & 3))) & 0xff;
201 else if (size == 2)
202 *val = (*val >> (8 * (where & 3))) & 0xffff;
203
204 return PCIBIOS_SUCCESSFUL;
205}
206
207int orion_pcie_rd_conf_wa(void __iomem *wa_base, struct pci_bus *bus,
208 u32 devfn, int where, int size, u32 *val)
209{
210 *val = readl(wa_base + (PCIE_CONF_BUS(bus->number) |
211 PCIE_CONF_DEV(PCI_SLOT(devfn)) |
212 PCIE_CONF_FUNC(PCI_FUNC(devfn)) |
213 PCIE_CONF_REG(where)));
214
215 if (size == 1)
216 *val = (*val >> (8 * (where & 3))) & 0xff;
217 else if (size == 2)
218 *val = (*val >> (8 * (where & 3))) & 0xffff;
219
220 return PCIBIOS_SUCCESSFUL;
221}
222
223int orion_pcie_wr_conf(void __iomem *base, struct pci_bus *bus,
224 u32 devfn, int where, int size, u32 val)
225{
226 int ret = PCIBIOS_SUCCESSFUL;
227
228 writel(PCIE_CONF_BUS(bus->number) |
229 PCIE_CONF_DEV(PCI_SLOT(devfn)) |
230 PCIE_CONF_FUNC(PCI_FUNC(devfn)) |
231 PCIE_CONF_REG(where) | PCIE_CONF_ADDR_EN,
232 base + PCIE_CONF_ADDR_OFF);
233
234 if (size == 4) {
235 writel(val, base + PCIE_CONF_DATA_OFF);
236 } else if (size == 2) {
237 writew(val, base + PCIE_CONF_DATA_OFF + (where & 3));
238 } else if (size == 1) {
239 writeb(val, base + PCIE_CONF_DATA_OFF + (where & 3));
240 } else {
241 ret = PCIBIOS_BAD_REGISTER_NUMBER;
242 }
243
244 return ret;
245}
diff --git a/arch/arm/plat-orion/time.c b/arch/arm/plat-orion/time.c
new file mode 100644
index 000000000000..28b5285446e8
--- /dev/null
+++ b/arch/arm/plat-orion/time.c
@@ -0,0 +1,203 @@
1/*
2 * arch/arm/plat-orion/time.c
3 *
4 * Marvell Orion SoC timer handling.
5 *
6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied.
9 *
10 * Timer 0 is used as free-running clocksource, while timer 1 is
11 * used as clock_event_device.
12 */
13
14#include <linux/kernel.h>
15#include <linux/clockchips.h>
16#include <linux/interrupt.h>
17#include <linux/irq.h>
18#include <asm/mach/time.h>
19#include <asm/arch/hardware.h>
20
21/*
22 * Number of timer ticks per jiffy.
23 */
24static u32 ticks_per_jiffy;
25
26
27/*
28 * Timer block registers.
29 */
30#define TIMER_CTRL (TIMER_VIRT_BASE + 0x0000)
31#define TIMER0_EN 0x0001
32#define TIMER0_RELOAD_EN 0x0002
33#define TIMER1_EN 0x0004
34#define TIMER1_RELOAD_EN 0x0008
35#define TIMER0_RELOAD (TIMER_VIRT_BASE + 0x0010)
36#define TIMER0_VAL (TIMER_VIRT_BASE + 0x0014)
37#define TIMER1_RELOAD (TIMER_VIRT_BASE + 0x0018)
38#define TIMER1_VAL (TIMER_VIRT_BASE + 0x001c)
39
40
41/*
42 * Clocksource handling.
43 */
44static cycle_t orion_clksrc_read(void)
45{
46 return 0xffffffff - readl(TIMER0_VAL);
47}
48
49static struct clocksource orion_clksrc = {
50 .name = "orion_clocksource",
51 .shift = 20,
52 .rating = 300,
53 .read = orion_clksrc_read,
54 .mask = CLOCKSOURCE_MASK(32),
55 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
56};
57
58
59
60/*
61 * Clockevent handling.
62 */
63static int
64orion_clkevt_next_event(unsigned long delta, struct clock_event_device *dev)
65{
66 unsigned long flags;
67 u32 u;
68
69 if (delta == 0)
70 return -ETIME;
71
72 local_irq_save(flags);
73
74 /*
75 * Clear and enable clockevent timer interrupt.
76 */
77 writel(~BRIDGE_INT_TIMER1, BRIDGE_CAUSE);
78
79 u = readl(BRIDGE_MASK);
80 u |= BRIDGE_INT_TIMER1;
81 writel(u, BRIDGE_MASK);
82
83 /*
84 * Setup new clockevent timer value.
85 */
86 writel(delta, TIMER1_VAL);
87
88 /*
89 * Enable the timer.
90 */
91 u = readl(TIMER_CTRL);
92 u = (u & ~TIMER1_RELOAD_EN) | TIMER1_EN;
93 writel(u, TIMER_CTRL);
94
95 local_irq_restore(flags);
96
97 return 0;
98}
99
100static void
101orion_clkevt_mode(enum clock_event_mode mode, struct clock_event_device *dev)
102{
103 unsigned long flags;
104 u32 u;
105
106 local_irq_save(flags);
107 if (mode == CLOCK_EVT_MODE_PERIODIC) {
108 /*
109 * Setup timer to fire at 1/HZ intervals.
110 */
111 writel(ticks_per_jiffy - 1, TIMER1_RELOAD);
112 writel(ticks_per_jiffy - 1, TIMER1_VAL);
113
114 /*
115 * Enable timer interrupt.
116 */
117 u = readl(BRIDGE_MASK);
118 writel(u | BRIDGE_INT_TIMER1, BRIDGE_MASK);
119
120 /*
121 * Enable timer.
122 */
123 u = readl(TIMER_CTRL);
124 writel(u | TIMER1_EN | TIMER1_RELOAD_EN, TIMER_CTRL);
125 } else {
126 /*
127 * Disable timer.
128 */
129 u = readl(TIMER_CTRL);
130 writel(u & ~TIMER1_EN, TIMER_CTRL);
131
132 /*
133 * Disable timer interrupt.
134 */
135 u = readl(BRIDGE_MASK);
136 writel(u & ~BRIDGE_INT_TIMER1, BRIDGE_MASK);
137
138 /*
139 * ACK pending timer interrupt.
140 */
141 writel(~BRIDGE_INT_TIMER1, BRIDGE_CAUSE);
142
143 }
144 local_irq_restore(flags);
145}
146
147static struct clock_event_device orion_clkevt = {
148 .name = "orion_tick",
149 .features = CLOCK_EVT_FEAT_ONESHOT | CLOCK_EVT_FEAT_PERIODIC,
150 .shift = 32,
151 .rating = 300,
152 .cpumask = CPU_MASK_CPU0,
153 .set_next_event = orion_clkevt_next_event,
154 .set_mode = orion_clkevt_mode,
155};
156
157static irqreturn_t orion_timer_interrupt(int irq, void *dev_id)
158{
159 /*
160 * ACK timer interrupt and call event handler.
161 */
162 writel(~BRIDGE_INT_TIMER1, BRIDGE_CAUSE);
163 orion_clkevt.event_handler(&orion_clkevt);
164
165 return IRQ_HANDLED;
166}
167
168static struct irqaction orion_timer_irq = {
169 .name = "orion_tick",
170 .flags = IRQF_DISABLED | IRQF_TIMER,
171 .handler = orion_timer_interrupt
172};
173
174void __init orion_time_init(unsigned int irq, unsigned int tclk)
175{
176 u32 u;
177
178 ticks_per_jiffy = (tclk + HZ/2) / HZ;
179
180
181 /*
182 * Setup free-running clocksource timer (interrupts
183 * disabled.)
184 */
185 writel(0xffffffff, TIMER0_VAL);
186 writel(0xffffffff, TIMER0_RELOAD);
187 u = readl(BRIDGE_MASK);
188 writel(u & ~BRIDGE_INT_TIMER0, BRIDGE_MASK);
189 u = readl(TIMER_CTRL);
190 writel(u | TIMER0_EN | TIMER0_RELOAD_EN, TIMER_CTRL);
191 orion_clksrc.mult = clocksource_hz2mult(tclk, orion_clksrc.shift);
192 clocksource_register(&orion_clksrc);
193
194
195 /*
196 * Setup clockevent timer (interrupt-driven.)
197 */
198 setup_irq(irq, &orion_timer_irq);
199 orion_clkevt.mult = div_sc(tclk, NSEC_PER_SEC, orion_clkevt.shift);
200 orion_clkevt.max_delta_ns = clockevent_delta2ns(0xfffffffe, &orion_clkevt);
201 orion_clkevt.min_delta_ns = clockevent_delta2ns(1, &orion_clkevt);
202 clockevents_register_device(&orion_clkevt);
203}
diff --git a/arch/arm/plat-s3c24xx/clock.c b/arch/arm/plat-s3c24xx/clock.c
index 99a44746f8f2..d84167fb33b1 100644
--- a/arch/arm/plat-s3c24xx/clock.c
+++ b/arch/arm/plat-s3c24xx/clock.c
@@ -332,6 +332,58 @@ static int s3c24xx_dclk_setparent(struct clk *clk, struct clk *parent)
332 return 0; 332 return 0;
333} 333}
334 334
335static unsigned long s3c24xx_calc_div(struct clk *clk, unsigned long rate)
336{
337 unsigned long div;
338
339 if ((rate == 0) || !clk->parent)
340 return 0;
341
342 div = clk_get_rate(clk->parent) / rate;
343 if (div < 2)
344 div = 2;
345 else if (div > 16)
346 div = 16;
347
348 return div;
349}
350
351static unsigned long s3c24xx_round_dclk_rate(struct clk *clk,
352 unsigned long rate)
353{
354 unsigned long div = s3c24xx_calc_div(clk, rate);
355
356 if (div == 0)
357 return 0;
358
359 return clk_get_rate(clk->parent) / div;
360}
361
362static int s3c24xx_set_dclk_rate(struct clk *clk, unsigned long rate)
363{
364 unsigned long mask, data, div = s3c24xx_calc_div(clk, rate);
365
366 if (div == 0)
367 return -EINVAL;
368
369 if (clk == &s3c24xx_dclk0) {
370 mask = S3C2410_DCLKCON_DCLK0_DIV_MASK |
371 S3C2410_DCLKCON_DCLK0_CMP_MASK;
372 data = S3C2410_DCLKCON_DCLK0_DIV(div) |
373 S3C2410_DCLKCON_DCLK0_CMP((div + 1) / 2);
374 } else if (clk == &s3c24xx_dclk1) {
375 mask = S3C2410_DCLKCON_DCLK1_DIV_MASK |
376 S3C2410_DCLKCON_DCLK1_CMP_MASK;
377 data = S3C2410_DCLKCON_DCLK1_DIV(div) |
378 S3C2410_DCLKCON_DCLK1_CMP((div + 1) / 2);
379 } else
380 return -EINVAL;
381
382 clk->rate = clk_get_rate(clk->parent) / div;
383 __raw_writel(((__raw_readl(S3C24XX_DCLKCON) & ~mask) | data),
384 S3C24XX_DCLKCON);
385 return clk->rate;
386}
335 387
336static int s3c24xx_clkout_setparent(struct clk *clk, struct clk *parent) 388static int s3c24xx_clkout_setparent(struct clk *clk, struct clk *parent)
337{ 389{
@@ -378,6 +430,8 @@ struct clk s3c24xx_dclk0 = {
378 .ctrlbit = S3C2410_DCLKCON_DCLK0EN, 430 .ctrlbit = S3C2410_DCLKCON_DCLK0EN,
379 .enable = s3c24xx_dclk_enable, 431 .enable = s3c24xx_dclk_enable,
380 .set_parent = s3c24xx_dclk_setparent, 432 .set_parent = s3c24xx_dclk_setparent,
433 .set_rate = s3c24xx_set_dclk_rate,
434 .round_rate = s3c24xx_round_dclk_rate,
381}; 435};
382 436
383struct clk s3c24xx_dclk1 = { 437struct clk s3c24xx_dclk1 = {
@@ -386,6 +440,8 @@ struct clk s3c24xx_dclk1 = {
386 .ctrlbit = S3C2410_DCLKCON_DCLK0EN, 440 .ctrlbit = S3C2410_DCLKCON_DCLK0EN,
387 .enable = s3c24xx_dclk_enable, 441 .enable = s3c24xx_dclk_enable,
388 .set_parent = s3c24xx_dclk_setparent, 442 .set_parent = s3c24xx_dclk_setparent,
443 .set_rate = s3c24xx_set_dclk_rate,
444 .round_rate = s3c24xx_round_dclk_rate,
389}; 445};
390 446
391struct clk s3c24xx_clkout0 = { 447struct clk s3c24xx_clkout0 = {
diff --git a/arch/arm/plat-s3c24xx/cpu.c b/arch/arm/plat-s3c24xx/cpu.c
index f513ab083b8f..f5699cadb0c3 100644
--- a/arch/arm/plat-s3c24xx/cpu.c
+++ b/arch/arm/plat-s3c24xx/cpu.c
@@ -28,15 +28,19 @@
28#include <linux/ioport.h> 28#include <linux/ioport.h>
29#include <linux/serial_core.h> 29#include <linux/serial_core.h>
30#include <linux/platform_device.h> 30#include <linux/platform_device.h>
31#include <linux/delay.h>
31 32
32#include <asm/hardware.h> 33#include <asm/hardware.h>
33#include <asm/irq.h> 34#include <asm/irq.h>
34#include <asm/io.h> 35#include <asm/io.h>
35#include <asm/delay.h> 36#include <asm/delay.h>
37#include <asm/cacheflush.h>
36 38
37#include <asm/mach/arch.h> 39#include <asm/mach/arch.h>
38#include <asm/mach/map.h> 40#include <asm/mach/map.h>
39 41
42#include <asm/arch/system-reset.h>
43
40#include <asm/arch/regs-gpio.h> 44#include <asm/arch/regs-gpio.h>
41#include <asm/plat-s3c/regs-serial.h> 45#include <asm/plat-s3c/regs-serial.h>
42 46
@@ -203,6 +207,27 @@ static unsigned long s3c24xx_read_idcode_v4(void)
203#endif 207#endif
204} 208}
205 209
210/* Hook for arm_pm_restart to ensure we execute the reset code
211 * with the caches enabled. It seems at least the S3C2440 has a problem
212 * resetting if there is bus activity interrupted by the reset.
213 */
214static void s3c24xx_pm_restart(char mode)
215{
216 if (mode != 's') {
217 unsigned long flags;
218
219 local_irq_save(flags);
220 __cpuc_flush_kern_all();
221 __cpuc_flush_user_all();
222
223 arch_reset(mode);
224 local_irq_restore(flags);
225 }
226
227 /* fallback, or unhandled */
228 arm_machine_restart(mode);
229}
230
206void __init s3c24xx_init_io(struct map_desc *mach_desc, int size) 231void __init s3c24xx_init_io(struct map_desc *mach_desc, int size)
207{ 232{
208 unsigned long idcode = 0x0; 233 unsigned long idcode = 0x0;
@@ -230,6 +255,8 @@ void __init s3c24xx_init_io(struct map_desc *mach_desc, int size)
230 panic("Unsupported S3C24XX CPU"); 255 panic("Unsupported S3C24XX CPU");
231 } 256 }
232 257
258 arm_pm_restart = s3c24xx_pm_restart;
259
233 (cpu->map_io)(mach_desc, size); 260 (cpu->map_io)(mach_desc, size);
234} 261}
235 262
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
index 7ed58c0c24c2..207a8b5a0c4a 100644
--- a/arch/arm/tools/mach-types
+++ b/arch/arm/tools/mach-types
@@ -12,7 +12,7 @@
12# 12#
13# http://www.arm.linux.org.uk/developer/machines/?action=new 13# http://www.arm.linux.org.uk/developer/machines/?action=new
14# 14#
15# Last update: Sat Jan 26 14:45:34 2008 15# Last update: Sat Apr 19 11:23:38 2008
16# 16#
17# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number 17# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
18# 18#
@@ -381,13 +381,13 @@ ks8695p ARCH_KS8695P KS8695P 363
381se4000 ARCH_SE4000 SE4000 364 381se4000 ARCH_SE4000 SE4000 364
382quadriceps ARCH_QUADRICEPS QUADRICEPS 365 382quadriceps ARCH_QUADRICEPS QUADRICEPS 365
383bronco ARCH_BRONCO BRONCO 366 383bronco ARCH_BRONCO BRONCO 366
384esl_wireless_tab ARCH_ESL_WIRELESS_TABLETESL_WIRELESS_TABLET 367 384esl_wireless_tab ARCH_ESL_WIRELESS_TAB ESL_WIRELESS_TAB 367
385esl_sofcomp ARCH_ESL_SOFCOMP ESL_SOFCOMP 368 385esl_sofcomp ARCH_ESL_SOFCOMP ESL_SOFCOMP 368
386s5c7375 ARCH_S5C7375 S5C7375 369 386s5c7375 ARCH_S5C7375 S5C7375 369
387spearhead ARCH_SPEARHEAD SPEARHEAD 370 387spearhead ARCH_SPEARHEAD SPEARHEAD 370
388pantera ARCH_PANTERA PANTERA 371 388pantera ARCH_PANTERA PANTERA 371
389prayoglite ARCH_PRAYOGLITE PRAYOGLITE 372 389prayoglite ARCH_PRAYOGLITE PRAYOGLITE 372
390gumstix ARCH_GUMSTIK GUMSTIK 373 390gumstix ARCH_GUMSTIX GUMSTIX 373
391rcube ARCH_RCUBE RCUBE 374 391rcube ARCH_RCUBE RCUBE 374
392rea_olv ARCH_REA_OLV REA_OLV 375 392rea_olv ARCH_REA_OLV REA_OLV 375
393pxa_iphone ARCH_PXA_IPHONE PXA_IPHONE 376 393pxa_iphone ARCH_PXA_IPHONE PXA_IPHONE 376
@@ -1463,7 +1463,7 @@ artemis MACH_ARTEMIS ARTEMIS 1462
1463htctitan MACH_HTCTITAN HTCTITAN 1463 1463htctitan MACH_HTCTITAN HTCTITAN 1463
1464qranium MACH_QRANIUM QRANIUM 1464 1464qranium MACH_QRANIUM QRANIUM 1464
1465adx_wsc2 MACH_ADX_WSC2 ADX_WSC2 1465 1465adx_wsc2 MACH_ADX_WSC2 ADX_WSC2 1465
1466adx_medinet MACH_ADX_MEDINET ADX_MEDINET 1466 1466adx_medcom MACH_ADX_MEDINET ADX_MEDINET 1466
1467bboard MACH_BBOARD BBOARD 1467 1467bboard MACH_BBOARD BBOARD 1467
1468cambria MACH_CAMBRIA CAMBRIA 1468 1468cambria MACH_CAMBRIA CAMBRIA 1468
1469mt7xxx MACH_MT7XXX MT7XXX 1469 1469mt7xxx MACH_MT7XXX MT7XXX 1469
@@ -1611,3 +1611,112 @@ kb9263 MACH_KB9263 KB9263 1612
1611mt7108 MACH_MT7108 MT7108 1613 1611mt7108 MACH_MT7108 MT7108 1613
1612smtr2440 MACH_SMTR2440 SMTR2440 1614 1612smtr2440 MACH_SMTR2440 SMTR2440 1614
1613manao MACH_MANAO MANAO 1615 1613manao MACH_MANAO MANAO 1615
1614cm_x300 MACH_CM_X300 CM_X300 1616
1615gulfstream_kp MACH_GULFSTREAM_KP GULFSTREAM_KP 1617
1616lanreadyfn522 MACH_LANREADYFN522 LANREADYFN522 1618
1617arma37 MACH_ARMA37 ARMA37 1619
1618mendel MACH_MENDEL MENDEL 1620
1619pelco_iliad MACH_PELCO_ILIAD PELCO_ILIAD 1621
1620unit2p MACH_UNIT2P UNIT2P 1622
1621inc20otter MACH_INC20OTTER INC20OTTER 1623
1622at91sam9g20ek MACH_AT91SAM9G20EK AT91SAM9G20EK 1624
1623sc_ge2 MACH_STORCENTER STORCENTER 1625
1624smdk6410 MACH_SMDK6410 SMDK6410 1626
1625u300 MACH_U300 U300 1627
1626u500 MACH_U500 U500 1628
1627ds9260 MACH_DS9260 DS9260 1629
1628riverrock MACH_RIVERROCK RIVERROCK 1630
1629scibath MACH_SCIBATH SCIBATH 1631
1630at91sam7se MACH_AT91SAM7SE512EK AT91SAM7SE512EK 1632
1631wrt350n_v2 MACH_WRT350N_V2 WRT350N_V2 1633
1632multimedia MACH_MULTIMEDIA MULTIMEDIA 1634
1633marvin MACH_MARVIN MARVIN 1635
1634x500 MACH_X500 X500 1636
1635awlug4lcu MACH_AWLUG4LCU AWLUG4LCU 1637
1636palermoc MACH_PALERMOC PALERMOC 1638
1637omap_ldp MACH_OMAP_LDP OMAP_LDP 1639
1638ip500 MACH_IP500 IP500 1640
1639mx35ads MACH_MACH_MX35ADS MACH_MX35ADS 1641
1640ase2 MACH_ASE2 ASE2 1642
1641mx35evb MACH_MX35EVB MX35EVB 1643
1642aml_m8050 MACH_AML_M8050 AML_M8050 1644
1643mx35_3ds MACH_MX35_3DS MX35_3DS 1645
1644mars MACH_MARS MARS 1646
1645ntosd_644xa MACH_NTOSD_644XA NTOSD_644XA 1647
1646badger MACH_BADGER BADGER 1648
1647trizeps4wl MACH_TRIZEPS4WL TRIZEPS4WL 1649
1648trizeps5 MACH_TRIZEPS5 TRIZEPS5 1650
1649marlin MACH_MARLIN MARLIN 1651
1650ts7800 MACH_TS7800 TS7800 1652
1651hpipaq214 MACH_HPIPAQ214 HPIPAQ214 1653
1652at572d940dcm MACH_AT572D940DCM AT572D940DCM 1654
1653ne1board MACH_NE1BOARD NE1BOARD 1655
1654zante MACH_ZANTE ZANTE 1656
1655sffsdr MACH_SFFSDR SFFSDR 1657
1656tw2662 MACH_TW2662 TW2662 1658
1657vf10xx MACH_VF10XX VF10XX 1659
1658zoran43xx MACH_ZORAN43XX ZORAN43XX 1660
1659sonix926 MACH_SONIX926 SONIX926 1661
1660celestialsemi MACH_CELESTIALSEMI CELESTIALSEMI 1662
1661cc9m2443 MACH_CC9M2443 CC9M2443 1663
1662tw5334 MACH_TW5334 TW5334 1664
1663omap_htcartemis MACH_HTCARTEMIS HTCARTEMIS 1665
1664nal_hlite MACH_NAL_HLITE NAL_HLITE 1666
1665htcvogue MACH_HTCVOGUE HTCVOGUE 1667
1666smartweb MACH_SMARTWEB SMARTWEB 1668
1667mv86xx MACH_MV86XX MV86XX 1669
1668mv87xx MACH_MV87XX MV87XX 1670
1669songyoungho MACH_SONGYOUNGHO SONGYOUNGHO 1671
1670younghotema MACH_YOUNGHOTEMA YOUNGHOTEMA 1672
1671pcm037 MACH_PCM037 PCM037 1673
1672mmvp MACH_MMVP MMVP 1674
1673mmap MACH_MMAP MMAP 1675
1674ptid2410 MACH_PTID2410 PTID2410 1676
1675james_926 MACH_JAMES_926 JAMES_926 1677
1676fm6000 MACH_FM6000 FM6000 1678
1677db88f6281_bp MACH_DB88F6281_BP DB88F6281_BP 1680
1678rd88f6192_nas MACH_RD88F6192_NAS RD88F6192_NAS 1681
1679rd88f6281 MACH_RD88F6281 RD88F6281 1682
1680db78x00_bp MACH_DB78X00_BP DB78X00_BP 1683
1681smdk2416 MACH_SMDK2416 SMDK2416 1685
1682oce_spider_si MACH_OCE_SPIDER_SI OCE_SPIDER_SI 1686
1683oce_spider_sk MACH_OCE_SPIDER_SK OCE_SPIDER_SK 1687
1684rovern6 MACH_ROVERN6 ROVERN6 1688
1685pelco_evolution MACH_PELCO_EVOLUTION PELCO_EVOLUTION 1689
1686wbd111 MACH_WBD111 WBD111 1690
1687elaracpe MACH_ELARACPE ELARACPE 1691
1688mabv3 MACH_MABV3 MABV3 1692
1689mv2120 MACH_MV2120 MV2120 1693
1690csb737 MACH_CSB737 CSB737 1695
1691mx51_3ds MACH_MX51_3DS MX51_3DS 1696
1692g900 MACH_G900 G900 1697
1693apf27 MACH_APF27 APF27 1698
1694ggus2000 MACH_GGUS2000 GGUS2000 1699
1695omap_2430_mimic MACH_OMAP_2430_MIMIC OMAP_2430_MIMIC 1700
1696imx27lite MACH_IMX27LITE IMX27LITE 1701
1697almex MACH_ALMEX ALMEX 1702
1698control MACH_CONTROL CONTROL 1703
1699mba2410 MACH_MBA2410 MBA2410 1704
1700volcano MACH_VOLCANO VOLCANO 1705
1701zenith MACH_ZENITH ZENITH 1706
1702muchip MACH_MUCHIP MUCHIP 1707
1703magellan MACH_MAGELLAN MAGELLAN 1708
1704usb_a9260 MACH_USB_A9260 USB_A9260 1709
1705usb_a9263 MACH_USB_A9263 USB_A9263 1710
1706qil_a9260 MACH_QIL_A9260 QIL_A9260 1711
1707cme9210 MACH_CME9210 CME9210 1712
1708hczh4 MACH_HCZH4 HCZH4 1713
1709spearbasic MACH_SPEARBASIC SPEARBASIC 1714
1710dep2440 MACH_DEP2440 DEP2440 1715
1711hdl_gxr MACH_HDL_GXR HDL_GXR 1716
1712hdl_gt MACH_HDL_GT HDL_GT 1717
1713hdl_4g MACH_HDL_4G HDL_4G 1718
1714s3c6000 MACH_S3C6000 S3C6000 1719
1715mmsp2_mdk MACH_MMSP2_MDK MMSP2_MDK 1720
1716mpx220 MACH_MPX220 MPX220 1721
1717kzm_arm11_01 MACH_KZM_ARM11_01 KZM_ARM11_01 1722
1718htc_polaris MACH_HTC_POLARIS HTC_POLARIS 1723
1719htc_kaiser MACH_HTC_KAISER HTC_KAISER 1724
1720lg_ks20 MACH_LG_KS20 LG_KS20 1725
1721hhgps MACH_HHGPS HHGPS 1726
1722nokia_n810_wimax MACH_NOKIA_N810_WIMAX NOKIA_N810_WIMAX 1727