aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2010-04-07 02:53:30 -0400
committerDavid S. Miller <davem@davemloft.net>2010-04-07 02:53:30 -0400
commit4a35ecf8bf1c4b039503fa554100fe85c761de76 (patch)
tree9b75f5d5636004d9a9aa496924377379be09aa1f /arch
parentb4d562e3c3553ac58c7120555c4e4aefbb090a2a (diff)
parentfb9e2d887243499b8d28efcf80821c4f6a092395 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/bonding/bond_main.c drivers/net/via-velocity.c drivers/net/wireless/iwlwifi/iwl-agn.c
Diffstat (limited to 'arch')
-rw-r--r--arch/alpha/include/asm/core_marvel.h1
-rw-r--r--arch/alpha/include/asm/core_mcpcia.h1
-rw-r--r--arch/alpha/include/asm/core_titan.h1
-rw-r--r--arch/alpha/include/asm/core_tsunami.h1
-rw-r--r--arch/alpha/kernel/sys_dp264.c2
-rw-r--r--arch/alpha/kernel/sys_titan.c2
-rw-r--r--arch/alpha/kernel/traps.c10
-rw-r--r--arch/arm/Kconfig81
-rw-r--r--arch/arm/boot/compressed/decompress.c1
-rw-r--r--arch/arm/boot/compressed/head.S2
-rw-r--r--arch/arm/boot/compressed/misc.c1
-rw-r--r--arch/arm/configs/cm_t35_defconfig2
-rw-r--r--arch/arm/configs/n770_defconfig1
-rw-r--r--arch/arm/configs/n8x0_defconfig160
-rw-r--r--arch/arm/configs/omap3_beagle_defconfig1
-rw-r--r--arch/arm/configs/omap3_defconfig2
-rw-r--r--arch/arm/configs/omap3_evm_defconfig1
-rw-r--r--arch/arm/configs/omap3_touchbook_defconfig2
-rw-r--r--arch/arm/configs/omap_3430sdp_defconfig1
-rw-r--r--arch/arm/configs/omap_3630sdp_defconfig2
-rw-r--r--arch/arm/configs/omap_h2_1610_defconfig1
-rw-r--r--arch/arm/configs/omap_zoom2_defconfig1
-rw-r--r--arch/arm/configs/omap_zoom3_defconfig2
-rw-r--r--arch/arm/configs/rx51_defconfig1
-rw-r--r--arch/arm/include/asm/elf.h1
-rw-r--r--arch/arm/include/asm/pgtable-nommu.h1
-rw-r--r--arch/arm/kernel/entry-header.S2
-rw-r--r--arch/arm/kernel/kgdb.c13
-rw-r--r--arch/arm/kernel/perf_event.c5
-rw-r--r--arch/arm/kernel/smp.c4
-rw-r--r--arch/arm/mach-at91/board-sam9g20ek.c10
-rw-r--r--arch/arm/mach-omap2/Makefile3
-rw-r--r--arch/arm/mach-omap2/board-3430sdp.c2
-rw-r--r--arch/arm/mach-omap2/board-3630sdp.c2
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c26
-rw-r--r--arch/arm/mach-omap2/board-am3517evm.c2
-rw-r--r--arch/arm/mach-omap2/board-cm-t35.c2
-rw-r--r--arch/arm/mach-omap2/board-devkit8000.c2
-rw-r--r--arch/arm/mach-omap2/board-igep0020.c56
-rw-r--r--arch/arm/mach-omap2/board-n8x0.c98
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c2
-rw-r--r--arch/arm/mach-omap2/board-omap3evm.c2
-rw-r--r--arch/arm/mach-omap2/board-omap3pandora.c12
-rw-r--r--arch/arm/mach-omap2/board-omap3touchbook.c12
-rw-r--r--arch/arm/mach-omap2/board-overo.c2
-rw-r--r--arch/arm/mach-omap2/board-zoom3.c2
-rw-r--r--arch/arm/mach-omap2/clock2420_data.c1
-rw-r--r--arch/arm/mach-omap2/io.c21
-rw-r--r--arch/arm/mach-omap2/mailbox.c12
-rw-r--r--arch/arm/mach-omap2/omap44xx-smc.S32
-rw-r--r--arch/arm/mach-omap2/prcm.c4
-rw-r--r--arch/arm/mach-omap2/serial.c15
-rw-r--r--arch/arm/mach-omap2/usb-ehci.c6
-rw-r--r--arch/arm/mach-rpc/include/mach/uncompress.h2
-rw-r--r--arch/arm/mach-s3c2440/s3c2440-cpufreq.c (renamed from arch/arm/plat-s3c24xx/s3c2440-cpufreq.c)0
-rw-r--r--arch/arm/mach-s3c64xx/include/mach/debug-macro.S2
-rw-r--r--arch/arm/mach-s5p6440/include/mach/debug-macro.S2
-rw-r--r--arch/arm/mach-s5p6442/include/mach/debug-macro.S2
-rw-r--r--arch/arm/mach-shmobile/board-ap4evb.c32
-rw-r--r--arch/arm/mach-shmobile/board-g3evm.c122
-rw-r--r--arch/arm/mach-shmobile/board-g4evm.c57
-rw-r--r--arch/arm/mach-shmobile/clock-sh7367.c7
-rw-r--r--arch/arm/mach-shmobile/intc-sh7367.c46
-rw-r--r--arch/arm/mach-shmobile/intc-sh7372.c46
-rw-r--r--arch/arm/mach-shmobile/intc-sh7377.c36
-rw-r--r--arch/arm/plat-omap/gpio.c10
-rw-r--r--arch/arm/plat-omap/include/plat/blizzard.h2
-rw-r--r--arch/arm/plat-omap/include/plat/cpu.h8
-rw-r--r--arch/arm/plat-omap/include/plat/prcm.h2
-rw-r--r--arch/arm/plat-omap/include/plat/system.h6
-rw-r--r--arch/arm/plat-omap/include/plat/usb.h2
-rw-r--r--arch/arm/plat-omap/mcbsp.c12
-rw-r--r--arch/arm/plat-samsung/include/plat/uncompress.h2
-rw-r--r--arch/arm/plat-samsung/pwm.c35
-rw-r--r--arch/blackfin/Kconfig81
-rw-r--r--arch/blackfin/Kconfig.debug12
-rw-r--r--arch/blackfin/Makefile7
-rw-r--r--arch/blackfin/boot/Makefile23
-rw-r--r--arch/blackfin/configs/BF518F-EZBRD_defconfig270
-rw-r--r--arch/blackfin/configs/BF526-EZBRD_defconfig336
-rw-r--r--arch/blackfin/configs/BF527-EZKIT-V2_defconfig1811
-rw-r--r--arch/blackfin/configs/BF527-EZKIT_defconfig344
-rw-r--r--arch/blackfin/configs/BF533-EZKIT_defconfig250
-rw-r--r--arch/blackfin/configs/BF533-STAMP_defconfig295
-rw-r--r--arch/blackfin/configs/BF537-STAMP_defconfig332
-rw-r--r--arch/blackfin/configs/BF538-EZKIT_defconfig291
-rw-r--r--arch/blackfin/configs/BF548-EZKIT_defconfig108
-rw-r--r--arch/blackfin/configs/BF561-ACVILON_defconfig15
-rw-r--r--arch/blackfin/configs/BF561-EZKIT_defconfig82
-rw-r--r--arch/blackfin/configs/H8606_defconfig7
-rw-r--r--arch/blackfin/configs/PNAV-10_defconfig295
-rw-r--r--arch/blackfin/configs/TCM-BF518_defconfig1375
-rw-r--r--arch/blackfin/include/asm/bfin-lq035q1.h12
-rw-r--r--arch/blackfin/include/asm/bfin_can.h725
-rw-r--r--arch/blackfin/include/asm/bfin_sport.h227
-rw-r--r--arch/blackfin/include/asm/bfin_watchdog.h30
-rw-r--r--arch/blackfin/include/asm/bitops.h74
-rw-r--r--arch/blackfin/include/asm/context.S22
-rw-r--r--arch/blackfin/include/asm/cpu.h2
-rw-r--r--arch/blackfin/include/asm/def_LPBlackfin.h58
-rw-r--r--arch/blackfin/include/asm/delay.h16
-rw-r--r--arch/blackfin/include/asm/dma-mapping.h15
-rw-r--r--arch/blackfin/include/asm/dma.h4
-rw-r--r--arch/blackfin/include/asm/dpmc.h4
-rw-r--r--arch/blackfin/include/asm/elf.h8
-rw-r--r--arch/blackfin/include/asm/ftrace.h53
-rw-r--r--arch/blackfin/include/asm/gpio.h17
-rw-r--r--arch/blackfin/include/asm/irq.h7
-rw-r--r--arch/blackfin/include/asm/mmu_context.h14
-rw-r--r--arch/blackfin/include/asm/nmi.h12
-rw-r--r--arch/blackfin/include/asm/page.h3
-rw-r--r--arch/blackfin/include/asm/ptrace.h25
-rw-r--r--arch/blackfin/include/asm/sections.h3
-rw-r--r--arch/blackfin/include/asm/smp.h15
-rw-r--r--arch/blackfin/include/asm/syscall.h96
-rw-r--r--arch/blackfin/include/asm/thread_info.h25
-rw-r--r--arch/blackfin/include/asm/time.h13
-rw-r--r--arch/blackfin/kernel/Makefile1
-rw-r--r--arch/blackfin/kernel/bfin_dma_5xx.c10
-rw-r--r--arch/blackfin/kernel/bfin_gpio.c20
-rw-r--r--arch/blackfin/kernel/cplb-mpu/cplbinit.c9
-rw-r--r--arch/blackfin/kernel/cplb-mpu/cplbmgr.c54
-rw-r--r--arch/blackfin/kernel/cplb-nompu/cplbinit.c9
-rw-r--r--arch/blackfin/kernel/dma-mapping.c2
-rw-r--r--arch/blackfin/kernel/entry.S8
-rw-r--r--arch/blackfin/kernel/ftrace-entry.S23
-rw-r--r--arch/blackfin/kernel/ftrace.c6
-rw-r--r--arch/blackfin/kernel/init_task.c2
-rw-r--r--arch/blackfin/kernel/kgdb.c10
-rw-r--r--arch/blackfin/kernel/nmi.c299
-rw-r--r--arch/blackfin/kernel/process.c7
-rw-r--r--arch/blackfin/kernel/ptrace.c360
-rw-r--r--arch/blackfin/kernel/setup.c34
-rw-r--r--arch/blackfin/kernel/signal.c24
-rw-r--r--arch/blackfin/kernel/time-ts.c205
-rw-r--r--arch/blackfin/kernel/traps.c32
-rw-r--r--arch/blackfin/kernel/vmlinux.lds.S70
-rw-r--r--arch/blackfin/mach-bf518/boards/Kconfig5
-rw-r--r--arch/blackfin/mach-bf518/boards/Makefile1
-rw-r--r--arch/blackfin/mach-bf518/boards/ezbrd.c178
-rw-r--r--arch/blackfin/mach-bf518/boards/tcm-bf518.c753
-rw-r--r--arch/blackfin/mach-bf518/include/mach/irq.h12
-rw-r--r--arch/blackfin/mach-bf518/include/mach/mem_map.h2
-rw-r--r--arch/blackfin/mach-bf527/boards/Kconfig5
-rw-r--r--arch/blackfin/mach-bf527/boards/Makefile1
-rw-r--r--arch/blackfin/mach-bf527/boards/cm_bf527.c245
-rw-r--r--arch/blackfin/mach-bf527/boards/ezbrd.c199
-rw-r--r--arch/blackfin/mach-bf527/boards/ezkit.c431
-rw-r--r--arch/blackfin/mach-bf527/include/mach/irq.h12
-rw-r--r--arch/blackfin/mach-bf533/boards/H8606.c66
-rw-r--r--arch/blackfin/mach-bf533/boards/blackstamp.c134
-rw-r--r--arch/blackfin/mach-bf533/boards/cm_bf533.c138
-rw-r--r--arch/blackfin/mach-bf533/boards/ezkit.c102
-rw-r--r--arch/blackfin/mach-bf533/boards/ip0x.c63
-rw-r--r--arch/blackfin/mach-bf533/boards/stamp.c174
-rw-r--r--arch/blackfin/mach-bf533/include/mach/irq.h3
-rw-r--r--arch/blackfin/mach-bf537/boards/cm_bf537e.c116
-rw-r--r--arch/blackfin/mach-bf537/boards/cm_bf537u.c187
-rw-r--r--arch/blackfin/mach-bf537/boards/minotaur.c183
-rw-r--r--arch/blackfin/mach-bf537/boards/pnav10.c169
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c684
-rw-r--r--arch/blackfin/mach-bf537/boards/tcm_bf537.c187
-rw-r--r--arch/blackfin/mach-bf537/include/mach/irq.h12
-rw-r--r--arch/blackfin/mach-bf538/boards/ezkit.c346
-rw-r--r--arch/blackfin/mach-bf538/include/mach/irq.h3
-rw-r--r--arch/blackfin/mach-bf548/boards/cm_bf548.c399
-rw-r--r--arch/blackfin/mach-bf548/boards/ezkit.c443
-rw-r--r--arch/blackfin/mach-bf548/include/mach/irq.h3
-rw-r--r--arch/blackfin/mach-bf561/Makefile1
-rw-r--r--arch/blackfin/mach-bf561/boards/acvilon.c2
-rw-r--r--arch/blackfin/mach-bf561/boards/cm_bf561.c66
-rw-r--r--arch/blackfin/mach-bf561/boards/ezkit.c70
-rw-r--r--arch/blackfin/mach-bf561/boards/tepla.c68
-rw-r--r--arch/blackfin/mach-bf561/hotplug.c32
-rw-r--r--arch/blackfin/mach-bf561/include/mach/irq.h3
-rw-r--r--arch/blackfin/mach-bf561/include/mach/smp.h2
-rw-r--r--arch/blackfin/mach-bf561/secondary.S50
-rw-r--r--arch/blackfin/mach-bf561/smp.c44
-rw-r--r--arch/blackfin/mach-common/cpufreq.c168
-rw-r--r--arch/blackfin/mach-common/entry.S81
-rw-r--r--arch/blackfin/mach-common/head.S16
-rw-r--r--arch/blackfin/mach-common/interrupt.S35
-rw-r--r--arch/blackfin/mach-common/ints-priority.c208
-rw-r--r--arch/blackfin/mach-common/smp.c87
-rw-r--r--arch/blackfin/mm/isram-driver.c6
-rw-r--r--arch/blackfin/mm/sram-alloc.c27
-rw-r--r--arch/microblaze/Kconfig64
-rw-r--r--arch/microblaze/Makefile1
-rw-r--r--arch/microblaze/include/asm/device.h4
-rw-r--r--arch/microblaze/include/asm/dma-mapping.h154
-rw-r--r--arch/microblaze/include/asm/io.h31
-rw-r--r--arch/microblaze/include/asm/irq.h37
-rw-r--r--arch/microblaze/include/asm/page.h12
-rw-r--r--arch/microblaze/include/asm/pci-bridge.h195
-rw-r--r--arch/microblaze/include/asm/pci.h178
-rw-r--r--arch/microblaze/include/asm/pgalloc.h2
-rw-r--r--arch/microblaze/include/asm/pgtable.h40
-rw-r--r--arch/microblaze/include/asm/prom.h15
-rw-r--r--arch/microblaze/include/asm/system.h3
-rw-r--r--arch/microblaze/include/asm/tlbflush.h2
-rw-r--r--arch/microblaze/kernel/Makefile2
-rw-r--r--arch/microblaze/kernel/asm-offsets.c1
-rw-r--r--arch/microblaze/kernel/cpu/cache.c211
-rw-r--r--arch/microblaze/kernel/dma.c156
-rw-r--r--arch/microblaze/kernel/entry.S116
-rw-r--r--arch/microblaze/kernel/head.S13
-rw-r--r--arch/microblaze/kernel/irq.c15
-rw-r--r--arch/microblaze/kernel/setup.c45
-rw-r--r--arch/microblaze/mm/Makefile2
-rw-r--r--arch/microblaze/mm/consistent.c246
-rw-r--r--arch/microblaze/mm/init.c39
-rw-r--r--arch/microblaze/mm/pgtable.c2
-rw-r--r--arch/microblaze/pci/Makefile6
-rw-r--r--arch/microblaze/pci/indirect_pci.c163
-rw-r--r--arch/microblaze/pci/iomap.c39
-rw-r--r--arch/microblaze/pci/pci-common.c1642
-rw-r--r--arch/microblaze/pci/pci_32.c430
-rw-r--r--arch/microblaze/pci/xilinx_pci.c168
-rw-r--r--arch/powerpc/Kconfig13
-rw-r--r--arch/powerpc/configs/52xx/cm5200_defconfig24
-rw-r--r--arch/powerpc/configs/52xx/lite5200b_defconfig28
-rw-r--r--arch/powerpc/configs/52xx/motionpro_defconfig25
-rw-r--r--arch/powerpc/configs/52xx/pcm030_defconfig27
-rw-r--r--arch/powerpc/configs/52xx/tqm5200_defconfig28
-rw-r--r--arch/powerpc/configs/mpc5200_defconfig134
-rw-r--r--arch/powerpc/include/asm/ppc-opcode.h6
-rw-r--r--arch/powerpc/include/asm/syscall.h6
-rw-r--r--arch/powerpc/kernel/head_fsl_booke.S7
-rw-r--r--arch/powerpc/kernel/iommu.c7
-rw-r--r--arch/powerpc/kernel/perf_event.c21
-rw-r--r--arch/powerpc/kernel/setup_32.c6
-rw-r--r--arch/powerpc/kernel/setup_64.c6
-rw-r--r--arch/powerpc/mm/mem.c6
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_gpt.c6
-rw-r--r--arch/sh/include/asm/mmu.h7
-rw-r--r--arch/sh/kernel/perf_event.c20
-rw-r--r--arch/sh/mm/uncached.c9
-rw-r--r--arch/x86/kernel/cpu/perf_event.c183
-rw-r--r--arch/x86/kernel/cpu/perf_event_amd.c70
-rw-r--r--arch/x86/kernel/cpu/perf_event_intel.c57
-rw-r--r--arch/x86/kernel/cpu/perf_event_p6.c10
-rw-r--r--arch/x86/kernel/dumpstack.h15
-rw-r--r--arch/x86/kernel/dumpstack_64.c4
243 files changed, 17611 insertions, 3034 deletions
diff --git a/arch/alpha/include/asm/core_marvel.h b/arch/alpha/include/asm/core_marvel.h
index 30d55fe7aaf6..dad300fa14ce 100644
--- a/arch/alpha/include/asm/core_marvel.h
+++ b/arch/alpha/include/asm/core_marvel.h
@@ -12,7 +12,6 @@
12#define __ALPHA_MARVEL__H__ 12#define __ALPHA_MARVEL__H__
13 13
14#include <linux/types.h> 14#include <linux/types.h>
15#include <linux/pci.h>
16#include <linux/spinlock.h> 15#include <linux/spinlock.h>
17 16
18#include <asm/compiler.h> 17#include <asm/compiler.h>
diff --git a/arch/alpha/include/asm/core_mcpcia.h b/arch/alpha/include/asm/core_mcpcia.h
index acf55b483472..21ac53383b37 100644
--- a/arch/alpha/include/asm/core_mcpcia.h
+++ b/arch/alpha/include/asm/core_mcpcia.h
@@ -6,7 +6,6 @@
6#define MCPCIA_ONE_HAE_WINDOW 1 6#define MCPCIA_ONE_HAE_WINDOW 1
7 7
8#include <linux/types.h> 8#include <linux/types.h>
9#include <linux/pci.h>
10#include <asm/compiler.h> 9#include <asm/compiler.h>
11 10
12/* 11/*
diff --git a/arch/alpha/include/asm/core_titan.h b/arch/alpha/include/asm/core_titan.h
index a17f6f33b68e..8cf79d1219e1 100644
--- a/arch/alpha/include/asm/core_titan.h
+++ b/arch/alpha/include/asm/core_titan.h
@@ -2,7 +2,6 @@
2#define __ALPHA_TITAN__H__ 2#define __ALPHA_TITAN__H__
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/pci.h>
6#include <asm/compiler.h> 5#include <asm/compiler.h>
7 6
8/* 7/*
diff --git a/arch/alpha/include/asm/core_tsunami.h b/arch/alpha/include/asm/core_tsunami.h
index 58d4fe48742c..8e39ecf09419 100644
--- a/arch/alpha/include/asm/core_tsunami.h
+++ b/arch/alpha/include/asm/core_tsunami.h
@@ -2,7 +2,6 @@
2#define __ALPHA_TSUNAMI__H__ 2#define __ALPHA_TSUNAMI__H__
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/pci.h>
6#include <asm/compiler.h> 5#include <asm/compiler.h>
7 6
8/* 7/*
diff --git a/arch/alpha/kernel/sys_dp264.c b/arch/alpha/kernel/sys_dp264.c
index d64e1e497e76..4026502ab707 100644
--- a/arch/alpha/kernel/sys_dp264.c
+++ b/arch/alpha/kernel/sys_dp264.c
@@ -224,7 +224,7 @@ static void
224dp264_device_interrupt(unsigned long vector) 224dp264_device_interrupt(unsigned long vector)
225{ 225{
226#if 1 226#if 1
227 printk("dp264_device_interrupt: NOT IMPLEMENTED YET!! \n"); 227 printk("dp264_device_interrupt: NOT IMPLEMENTED YET!!\n");
228#else 228#else
229 unsigned long pld; 229 unsigned long pld;
230 unsigned int i; 230 unsigned int i;
diff --git a/arch/alpha/kernel/sys_titan.c b/arch/alpha/kernel/sys_titan.c
index 288053342c83..9008d0f20c53 100644
--- a/arch/alpha/kernel/sys_titan.c
+++ b/arch/alpha/kernel/sys_titan.c
@@ -171,7 +171,7 @@ titan_set_irq_affinity(unsigned int irq, const struct cpumask *affinity)
171static void 171static void
172titan_device_interrupt(unsigned long vector) 172titan_device_interrupt(unsigned long vector)
173{ 173{
174 printk("titan_device_interrupt: NOT IMPLEMENTED YET!! \n"); 174 printk("titan_device_interrupt: NOT IMPLEMENTED YET!!\n");
175} 175}
176 176
177static void 177static void
diff --git a/arch/alpha/kernel/traps.c b/arch/alpha/kernel/traps.c
index 6ee7655b7568..b14f015008ad 100644
--- a/arch/alpha/kernel/traps.c
+++ b/arch/alpha/kernel/traps.c
@@ -17,6 +17,7 @@
17#include <linux/module.h> 17#include <linux/module.h>
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/kallsyms.h> 19#include <linux/kallsyms.h>
20#include <linux/ratelimit.h>
20 21
21#include <asm/gentrap.h> 22#include <asm/gentrap.h>
22#include <asm/uaccess.h> 23#include <asm/uaccess.h>
@@ -771,8 +772,7 @@ asmlinkage void
771do_entUnaUser(void __user * va, unsigned long opcode, 772do_entUnaUser(void __user * va, unsigned long opcode,
772 unsigned long reg, struct pt_regs *regs) 773 unsigned long reg, struct pt_regs *regs)
773{ 774{
774 static int cnt = 0; 775 static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5);
775 static unsigned long last_time;
776 776
777 unsigned long tmp1, tmp2, tmp3, tmp4; 777 unsigned long tmp1, tmp2, tmp3, tmp4;
778 unsigned long fake_reg, *reg_addr = &fake_reg; 778 unsigned long fake_reg, *reg_addr = &fake_reg;
@@ -783,15 +783,11 @@ do_entUnaUser(void __user * va, unsigned long opcode,
783 with the unaliged access. */ 783 with the unaliged access. */
784 784
785 if (!test_thread_flag (TIF_UAC_NOPRINT)) { 785 if (!test_thread_flag (TIF_UAC_NOPRINT)) {
786 if (cnt >= 5 && time_after(jiffies, last_time + 5 * HZ)) { 786 if (__ratelimit(&ratelimit)) {
787 cnt = 0;
788 }
789 if (++cnt < 5) {
790 printk("%s(%d): unaligned trap at %016lx: %p %lx %ld\n", 787 printk("%s(%d): unaligned trap at %016lx: %p %lx %ld\n",
791 current->comm, task_pid_nr(current), 788 current->comm, task_pid_nr(current),
792 regs->pc - 4, va, opcode, reg); 789 regs->pc - 4, va, opcode, reg);
793 } 790 }
794 last_time = jiffies;
795 } 791 }
796 if (test_thread_flag (TIF_UAC_SIGBUS)) 792 if (test_thread_flag (TIF_UAC_SIGBUS))
797 goto give_sigbus; 793 goto give_sigbus;
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index cadfe2ee66a5..c5408bf1bf43 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -218,6 +218,10 @@ config MMU
218 Select if you want MMU-based virtualised addressing space 218 Select if you want MMU-based virtualised addressing space
219 support by paged memory management. If unsure, say 'Y'. 219 support by paged memory management. If unsure, say 'Y'.
220 220
221#
222# The "ARM system type" choice list is ordered alphabetically by option
223# text. Please add new entries in the option alphabetic order.
224#
221choice 225choice
222 prompt "ARM system type" 226 prompt "ARM system type"
223 default ARCH_VERSATILE 227 default ARCH_VERSATILE
@@ -274,6 +278,18 @@ config ARCH_AT91
274 This enables support for systems based on the Atmel AT91RM9200, 278 This enables support for systems based on the Atmel AT91RM9200,
275 AT91SAM9 and AT91CAP9 processors. 279 AT91SAM9 and AT91CAP9 processors.
276 280
281config ARCH_BCMRING
282 bool "Broadcom BCMRING"
283 depends on MMU
284 select CPU_V6
285 select ARM_AMBA
286 select COMMON_CLKDEV
287 select GENERIC_TIME
288 select GENERIC_CLOCKEVENTS
289 select ARCH_WANT_OPTIONAL_GPIOLIB
290 help
291 Support for Broadcom's BCMRing platform.
292
277config ARCH_CLPS711X 293config ARCH_CLPS711X
278 bool "Cirrus Logic CLPS711x/EP721x-based" 294 bool "Cirrus Logic CLPS711x/EP721x-based"
279 select CPU_ARM720T 295 select CPU_ARM720T
@@ -359,20 +375,6 @@ config ARCH_H720X
359 help 375 help
360 This enables support for systems based on the Hynix HMS720x 376 This enables support for systems based on the Hynix HMS720x
361 377
362config ARCH_NOMADIK
363 bool "STMicroelectronics Nomadik"
364 select ARM_AMBA
365 select ARM_VIC
366 select CPU_ARM926T
367 select HAVE_CLK
368 select COMMON_CLKDEV
369 select GENERIC_TIME
370 select GENERIC_CLOCKEVENTS
371 select GENERIC_GPIO
372 select ARCH_REQUIRE_GPIOLIB
373 help
374 Support for the Nomadik platform by ST-Ericsson
375
376config ARCH_IOP13XX 378config ARCH_IOP13XX
377 bool "IOP13xx-based" 379 bool "IOP13xx-based"
378 depends on MMU 380 depends on MMU
@@ -747,6 +749,30 @@ config ARCH_U300
747 help 749 help
748 Support for ST-Ericsson U300 series mobile platforms. 750 Support for ST-Ericsson U300 series mobile platforms.
749 751
752config ARCH_U8500
753 bool "ST-Ericsson U8500 Series"
754 select CPU_V7
755 select ARM_AMBA
756 select GENERIC_TIME
757 select GENERIC_CLOCKEVENTS
758 select COMMON_CLKDEV
759 help
760 Support for ST-Ericsson's Ux500 architecture
761
762config ARCH_NOMADIK
763 bool "STMicroelectronics Nomadik"
764 select ARM_AMBA
765 select ARM_VIC
766 select CPU_ARM926T
767 select HAVE_CLK
768 select COMMON_CLKDEV
769 select GENERIC_TIME
770 select GENERIC_CLOCKEVENTS
771 select GENERIC_GPIO
772 select ARCH_REQUIRE_GPIOLIB
773 help
774 Support for the Nomadik platform by ST-Ericsson
775
750config ARCH_DAVINCI 776config ARCH_DAVINCI
751 bool "TI DaVinci" 777 bool "TI DaVinci"
752 select CPU_ARM926T 778 select CPU_ARM926T
@@ -775,30 +801,13 @@ config ARCH_OMAP
775 help 801 help
776 Support for TI's OMAP platform (OMAP1 and OMAP2). 802 Support for TI's OMAP platform (OMAP1 and OMAP2).
777 803
778config ARCH_BCMRING
779 bool "Broadcom BCMRING"
780 depends on MMU
781 select CPU_V6
782 select ARM_AMBA
783 select COMMON_CLKDEV
784 select GENERIC_TIME
785 select GENERIC_CLOCKEVENTS
786 select ARCH_WANT_OPTIONAL_GPIOLIB
787 help
788 Support for Broadcom's BCMRing platform.
789
790config ARCH_U8500
791 bool "ST-Ericsson U8500 Series"
792 select CPU_V7
793 select ARM_AMBA
794 select GENERIC_TIME
795 select GENERIC_CLOCKEVENTS
796 select COMMON_CLKDEV
797 help
798 Support for ST-Ericsson's Ux500 architecture
799
800endchoice 804endchoice
801 805
806#
807# This is sorted alphabetically by mach-* pathname. However, plat-*
808# Kconfigs may be included either alphabetically (according to the
809# plat- suffix) or along side the corresponding mach-* source.
810#
802source "arch/arm/mach-aaec2000/Kconfig" 811source "arch/arm/mach-aaec2000/Kconfig"
803 812
804source "arch/arm/mach-at91/Kconfig" 813source "arch/arm/mach-at91/Kconfig"
diff --git a/arch/arm/boot/compressed/decompress.c b/arch/arm/boot/compressed/decompress.c
index 0da382f33157..9c097073ce4c 100644
--- a/arch/arm/boot/compressed/decompress.c
+++ b/arch/arm/boot/compressed/decompress.c
@@ -11,6 +11,7 @@ extern unsigned long free_mem_end_ptr;
11extern void error(char *); 11extern void error(char *);
12 12
13#define STATIC static 13#define STATIC static
14#define STATIC_RW_DATA /* non-static please */
14 15
15#define ARCH_HAS_DECOMP_WDOG 16#define ARCH_HAS_DECOMP_WDOG
16 17
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 535a91daaa53..0f23009170a1 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -742,7 +742,7 @@ proc_types:
742 .word 0x000f0000 742 .word 0x000f0000
743 W(b) __armv4_mmu_cache_on 743 W(b) __armv4_mmu_cache_on
744 W(b) __armv4_mmu_cache_off 744 W(b) __armv4_mmu_cache_off
745 W(b) __armv4_mmu_cache_flush 745 W(b) __armv5tej_mmu_cache_flush
746 746
747 .word 0x0007b000 @ ARMv6 747 .word 0x0007b000 @ ARMv6
748 .word 0x000ff000 748 .word 0x000ff000
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c
index d32bc71c1f78..d2b2ef41cd4f 100644
--- a/arch/arm/boot/compressed/misc.c
+++ b/arch/arm/boot/compressed/misc.c
@@ -33,6 +33,7 @@ unsigned int __machine_arch_type;
33#else 33#else
34 34
35static void putstr(const char *ptr); 35static void putstr(const char *ptr);
36extern void error(char *x);
36 37
37#include <mach/uncompress.h> 38#include <mach/uncompress.h>
38 39
diff --git a/arch/arm/configs/cm_t35_defconfig b/arch/arm/configs/cm_t35_defconfig
index 893cd267e075..032b49bad91f 100644
--- a/arch/arm/configs/cm_t35_defconfig
+++ b/arch/arm/configs/cm_t35_defconfig
@@ -358,7 +358,7 @@ CONFIG_PM_SLEEP=y
358CONFIG_SUSPEND=y 358CONFIG_SUSPEND=y
359CONFIG_SUSPEND_FREEZER=y 359CONFIG_SUSPEND_FREEZER=y
360# CONFIG_APM_EMULATION is not set 360# CONFIG_APM_EMULATION is not set
361# CONFIG_PM_RUNTIME is not set 361CONFIG_PM_RUNTIME=y
362CONFIG_ARCH_SUSPEND_POSSIBLE=y 362CONFIG_ARCH_SUSPEND_POSSIBLE=y
363CONFIG_NET=y 363CONFIG_NET=y
364 364
diff --git a/arch/arm/configs/n770_defconfig b/arch/arm/configs/n770_defconfig
index 75cae18fbcb6..de0c28aa43e7 100644
--- a/arch/arm/configs/n770_defconfig
+++ b/arch/arm/configs/n770_defconfig
@@ -308,6 +308,7 @@ CONFIG_PM_SLEEP=y
308CONFIG_SUSPEND_UP_POSSIBLE=y 308CONFIG_SUSPEND_UP_POSSIBLE=y
309CONFIG_SUSPEND=y 309CONFIG_SUSPEND=y
310# CONFIG_APM_EMULATION is not set 310# CONFIG_APM_EMULATION is not set
311CONFIG_PM_RUNTIME=y
311 312
312# 313#
313# Networking 314# Networking
diff --git a/arch/arm/configs/n8x0_defconfig b/arch/arm/configs/n8x0_defconfig
index e6f667c5e58a..216ad00948af 100644
--- a/arch/arm/configs/n8x0_defconfig
+++ b/arch/arm/configs/n8x0_defconfig
@@ -191,6 +191,7 @@ CONFIG_ARCH_OMAP=y
191# 191#
192CONFIG_ARCH_OMAP_OTG=y 192CONFIG_ARCH_OMAP_OTG=y
193# CONFIG_ARCH_OMAP1 is not set 193# CONFIG_ARCH_OMAP1 is not set
194CONFIG_ARCH_OMAP2PLUS=y
194CONFIG_ARCH_OMAP2=y 195CONFIG_ARCH_OMAP2=y
195# CONFIG_ARCH_OMAP3 is not set 196# CONFIG_ARCH_OMAP3 is not set
196# CONFIG_ARCH_OMAP4 is not set 197# CONFIG_ARCH_OMAP4 is not set
@@ -198,8 +199,6 @@ CONFIG_ARCH_OMAP2=y
198# 199#
199# OMAP Feature Selections 200# OMAP Feature Selections
200# 201#
201# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set
202# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set
203CONFIG_OMAP_RESET_CLOCKS=y 202CONFIG_OMAP_RESET_CLOCKS=y
204# CONFIG_OMAP_MUX is not set 203# CONFIG_OMAP_MUX is not set
205# CONFIG_OMAP_MCBSP is not set 204# CONFIG_OMAP_MCBSP is not set
@@ -208,15 +207,13 @@ CONFIG_OMAP_MBOX_FWK=y
208CONFIG_OMAP_32K_TIMER=y 207CONFIG_OMAP_32K_TIMER=y
209CONFIG_OMAP_32K_TIMER_HZ=128 208CONFIG_OMAP_32K_TIMER_HZ=128
210CONFIG_OMAP_DM_TIMER=y 209CONFIG_OMAP_DM_TIMER=y
211# CONFIG_OMAP_LL_DEBUG_UART1 is not set 210# CONFIG_OMAP_PM_NONE is not set
212# CONFIG_OMAP_LL_DEBUG_UART2 is not set 211CONFIG_OMAP_PM_NOOP=y
213CONFIG_OMAP_LL_DEBUG_UART3=y
214# CONFIG_MACH_OMAP_GENERIC is not set 212# CONFIG_MACH_OMAP_GENERIC is not set
215 213
216# 214#
217# OMAP Core Type 215# OMAP Core Type
218# 216#
219CONFIG_ARCH_OMAP24XX=y
220CONFIG_ARCH_OMAP2420=y 217CONFIG_ARCH_OMAP2420=y
221# CONFIG_ARCH_OMAP2430 is not set 218# CONFIG_ARCH_OMAP2430 is not set
222 219
@@ -227,6 +224,9 @@ CONFIG_MACH_OMAP2_TUSB6010=y
227# CONFIG_MACH_OMAP_H4 is not set 224# CONFIG_MACH_OMAP_H4 is not set
228# CONFIG_MACH_OMAP_APOLLON is not set 225# CONFIG_MACH_OMAP_APOLLON is not set
229# CONFIG_MACH_OMAP_2430SDP is not set 226# CONFIG_MACH_OMAP_2430SDP is not set
227CONFIG_MACH_NOKIA_N800=y
228CONFIG_MACH_NOKIA_N810=y
229CONFIG_MACH_NOKIA_N810_WIMAX=y
230CONFIG_MACH_NOKIA_N8X0=y 230CONFIG_MACH_NOKIA_N8X0=y
231 231
232# 232#
@@ -303,7 +303,7 @@ CONFIG_ALIGNMENT_TRAP=y
303CONFIG_ZBOOT_ROM_TEXT=0x10C08000 303CONFIG_ZBOOT_ROM_TEXT=0x10C08000
304CONFIG_ZBOOT_ROM_BSS=0x10200000 304CONFIG_ZBOOT_ROM_BSS=0x10200000
305# CONFIG_ZBOOT_ROM is not set 305# CONFIG_ZBOOT_ROM is not set
306CONFIG_CMDLINE="root=1f03 rootfstype=jffs2 console=ttyS2,115200n8" 306CONFIG_CMDLINE="root=/dev/mmcblk0p2 console=ttyS2,115200n8 debug earlyprintk rootwait"
307# CONFIG_XIP_KERNEL is not set 307# CONFIG_XIP_KERNEL is not set
308# CONFIG_KEXEC is not set 308# CONFIG_KEXEC is not set
309 309
@@ -337,7 +337,14 @@ CONFIG_HAVE_AOUT=y
337# 337#
338# Power management options 338# Power management options
339# 339#
340# CONFIG_PM is not set 340CONFIG_PM=y
341# CONFIG_PM_DEBUG is not set
342CONFIG_PM_SLEEP=y
343CONFIG_SUSPEND=y
344CONFIG_SUSPEND_FREEZER=y
345# CONFIG_APM_EMULATION is not set
346CONFIG_PM_RUNTIME=y
347CONFIG_PM_OPS=y
341CONFIG_ARCH_SUSPEND_POSSIBLE=y 348CONFIG_ARCH_SUSPEND_POSSIBLE=y
342CONFIG_NET=y 349CONFIG_NET=y
343 350
@@ -617,7 +624,55 @@ CONFIG_UNIX98_PTYS=y
617# CONFIG_R3964 is not set 624# CONFIG_R3964 is not set
618# CONFIG_RAW_DRIVER is not set 625# CONFIG_RAW_DRIVER is not set
619# CONFIG_TCG_TPM is not set 626# CONFIG_TCG_TPM is not set
620# CONFIG_I2C is not set 627CONFIG_I2C=y
628CONFIG_I2C_BOARDINFO=y
629# CONFIG_I2C_COMPAT is not set
630# CONFIG_I2C_CHARDEV is not set
631# CONFIG_I2C_HELPER_AUTO is not set
632# CONFIG_I2C_SMBUS is not set
633
634#
635# I2C Algorithms
636#
637# CONFIG_I2C_ALGOBIT is not set
638# CONFIG_I2C_ALGOPCF is not set
639# CONFIG_I2C_ALGOPCA is not set
640
641#
642# I2C Hardware Bus support
643#
644
645#
646# I2C system bus drivers (mostly embedded / system-on-chip)
647#
648# CONFIG_I2C_DESIGNWARE is not set
649# CONFIG_I2C_GPIO is not set
650# CONFIG_I2C_OCORES is not set
651CONFIG_I2C_OMAP=y
652# CONFIG_I2C_SIMTEC is not set
653# CONFIG_I2C_XILINX is not set
654
655#
656# External I2C/SMBus adapter drivers
657#
658# CONFIG_I2C_PARPORT_LIGHT is not set
659# CONFIG_I2C_TAOS_EVM is not set
660# CONFIG_I2C_TINY_USB is not set
661
662#
663# Other I2C/SMBus bus drivers
664#
665# CONFIG_I2C_PCA_PLATFORM is not set
666# CONFIG_I2C_STUB is not set
667
668#
669# Miscellaneous I2C Chip support
670#
671# CONFIG_SENSORS_TSL2550 is not set
672# CONFIG_I2C_DEBUG_CORE is not set
673# CONFIG_I2C_DEBUG_ALGO is not set
674# CONFIG_I2C_DEBUG_BUS is not set
675# CONFIG_I2C_DEBUG_CHIP is not set
621CONFIG_SPI=y 676CONFIG_SPI=y
622# CONFIG_SPI_DEBUG is not set 677# CONFIG_SPI_DEBUG is not set
623CONFIG_SPI_MASTER=y 678CONFIG_SPI_MASTER=y
@@ -673,15 +728,44 @@ CONFIG_SSB_POSSIBLE=y
673# Multifunction device drivers 728# Multifunction device drivers
674# 729#
675# CONFIG_MFD_CORE is not set 730# CONFIG_MFD_CORE is not set
731# CONFIG_MFD_88PM860X is not set
676# CONFIG_MFD_SM501 is not set 732# CONFIG_MFD_SM501 is not set
677# CONFIG_MFD_ASIC3 is not set 733# CONFIG_MFD_ASIC3 is not set
678# CONFIG_HTC_EGPIO is not set 734# CONFIG_HTC_EGPIO is not set
679# CONFIG_HTC_PASIC3 is not set 735# CONFIG_HTC_PASIC3 is not set
736# CONFIG_HTC_I2CPLD is not set
737# CONFIG_TPS65010 is not set
738CONFIG_MENELAUS=y
739# CONFIG_TWL4030_CORE is not set
680# CONFIG_MFD_TMIO is not set 740# CONFIG_MFD_TMIO is not set
681# CONFIG_MFD_T7L66XB is not set 741# CONFIG_MFD_T7L66XB is not set
682# CONFIG_MFD_TC6387XB is not set 742# CONFIG_MFD_TC6387XB is not set
683# CONFIG_MFD_TC6393XB is not set 743# CONFIG_MFD_TC6393XB is not set
744# CONFIG_PMIC_DA903X is not set
745# CONFIG_PMIC_ADP5520 is not set
746# CONFIG_MFD_MAX8925 is not set
747# CONFIG_MFD_WM8400 is not set
748# CONFIG_MFD_WM831X is not set
749# CONFIG_MFD_WM8350_I2C is not set
750# CONFIG_MFD_WM8994 is not set
751# CONFIG_MFD_PCF50633 is not set
752# CONFIG_MFD_MC13783 is not set
753# CONFIG_AB3100_CORE is not set
684# CONFIG_EZX_PCAP is not set 754# CONFIG_EZX_PCAP is not set
755# CONFIG_AB4500_CORE is not set
756CONFIG_REGULATOR=y
757# CONFIG_REGULATOR_DEBUG is not set
758# CONFIG_REGULATOR_DUMMY is not set
759# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
760# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
761# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
762# CONFIG_REGULATOR_BQ24022 is not set
763# CONFIG_REGULATOR_MAX1586 is not set
764# CONFIG_REGULATOR_MAX8649 is not set
765# CONFIG_REGULATOR_MAX8660 is not set
766# CONFIG_REGULATOR_LP3971 is not set
767# CONFIG_REGULATOR_TPS65023 is not set
768# CONFIG_REGULATOR_TPS6507X is not set
685# CONFIG_MEDIA_SUPPORT is not set 769# CONFIG_MEDIA_SUPPORT is not set
686 770
687# 771#
@@ -718,7 +802,10 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
718CONFIG_USB_DEVICEFS=y 802CONFIG_USB_DEVICEFS=y
719CONFIG_USB_DEVICE_CLASS=y 803CONFIG_USB_DEVICE_CLASS=y
720# CONFIG_USB_DYNAMIC_MINORS is not set 804# CONFIG_USB_DYNAMIC_MINORS is not set
721# CONFIG_USB_OTG is not set 805CONFIG_USB_SUSPEND=y
806CONFIG_USB_OTG=y
807# CONFIG_USB_OTG_WHITELIST is not set
808# CONFIG_USB_OTG_BLACKLIST_HUB is not set
722# CONFIG_USB_MON is not set 809# CONFIG_USB_MON is not set
723# CONFIG_USB_WUSB is not set 810# CONFIG_USB_WUSB is not set
724# CONFIG_USB_WUSB_CBAF is not set 811# CONFIG_USB_WUSB_CBAF is not set
@@ -737,9 +824,10 @@ CONFIG_USB_DEVICE_CLASS=y
737CONFIG_USB_MUSB_HDRC=y 824CONFIG_USB_MUSB_HDRC=y
738CONFIG_USB_TUSB6010=y 825CONFIG_USB_TUSB6010=y
739# CONFIG_USB_MUSB_HOST is not set 826# CONFIG_USB_MUSB_HOST is not set
740CONFIG_USB_MUSB_PERIPHERAL=y 827# CONFIG_USB_MUSB_PERIPHERAL is not set
741# CONFIG_USB_MUSB_OTG is not set 828CONFIG_USB_MUSB_OTG=y
742CONFIG_USB_GADGET_MUSB_HDRC=y 829CONFIG_USB_GADGET_MUSB_HDRC=y
830CONFIG_USB_MUSB_HDRC_HCD=y
743# CONFIG_MUSB_PIO_ONLY is not set 831# CONFIG_MUSB_PIO_ONLY is not set
744# CONFIG_USB_INVENTRA_DMA is not set 832# CONFIG_USB_INVENTRA_DMA is not set
745# CONFIG_USB_TI_CPPI_DMA is not set 833# CONFIG_USB_TI_CPPI_DMA is not set
@@ -824,44 +912,77 @@ CONFIG_USB_GADGET_DUALSPEED=y
824# CONFIG_USB_ZERO is not set 912# CONFIG_USB_ZERO is not set
825# CONFIG_USB_AUDIO is not set 913# CONFIG_USB_AUDIO is not set
826CONFIG_USB_ETH=y 914CONFIG_USB_ETH=y
827# CONFIG_USB_ETH_RNDIS is not set 915CONFIG_USB_ETH_RNDIS=y
916CONFIG_USB_ETH_EEM=y
828# CONFIG_USB_GADGETFS is not set 917# CONFIG_USB_GADGETFS is not set
829# CONFIG_USB_FILE_STORAGE is not set 918# CONFIG_USB_FILE_STORAGE is not set
919# CONFIG_USB_MASS_STORAGE is not set
830# CONFIG_USB_G_SERIAL is not set 920# CONFIG_USB_G_SERIAL is not set
831# CONFIG_USB_MIDI_GADGET is not set 921# CONFIG_USB_MIDI_GADGET is not set
832# CONFIG_USB_G_PRINTER is not set 922# CONFIG_USB_G_PRINTER is not set
833# CONFIG_USB_CDC_COMPOSITE is not set 923# CONFIG_USB_CDC_COMPOSITE is not set
924# CONFIG_USB_G_NOKIA is not set
925# CONFIG_USB_G_MULTI is not set
834 926
835# 927#
836# OTG and related infrastructure 928# OTG and related infrastructure
837# 929#
838CONFIG_USB_OTG_UTILS=y 930CONFIG_USB_OTG_UTILS=y
839# CONFIG_USB_GPIO_VBUS is not set 931# CONFIG_USB_GPIO_VBUS is not set
932# CONFIG_ISP1301_OMAP is not set
933# CONFIG_USB_ULPI is not set
840CONFIG_NOP_USB_XCEIV=y 934CONFIG_NOP_USB_XCEIV=y
841# CONFIG_MMC is not set 935CONFIG_MMC=y
936# CONFIG_MMC_DEBUG is not set
937# CONFIG_MMC_UNSAFE_RESUME is not set
938
939#
940# MMC/SD/SDIO Card Drivers
941#
942CONFIG_MMC_BLOCK=y
943CONFIG_MMC_BLOCK_BOUNCE=y
944# CONFIG_SDIO_UART is not set
945# CONFIG_MMC_TEST is not set
946
947#
948# MMC/SD/SDIO Host Controller Drivers
949#
950# CONFIG_MMC_SDHCI is not set
951CONFIG_MMC_OMAP=y
952# CONFIG_MMC_SPI is not set
842# CONFIG_MEMSTICK is not set 953# CONFIG_MEMSTICK is not set
843# CONFIG_ACCESSIBILITY is not set
844# CONFIG_NEW_LEDS is not set 954# CONFIG_NEW_LEDS is not set
955# CONFIG_ACCESSIBILITY is not set
845CONFIG_RTC_LIB=y 956CONFIG_RTC_LIB=y
846# CONFIG_RTC_CLASS is not set 957# CONFIG_RTC_CLASS is not set
847# CONFIG_DMADEVICES is not set 958# CONFIG_DMADEVICES is not set
848# CONFIG_AUXDISPLAY is not set 959# CONFIG_AUXDISPLAY is not set
849# CONFIG_REGULATOR is not set
850# CONFIG_UIO is not set 960# CONFIG_UIO is not set
961
962#
963# TI VLYNQ
964#
851# CONFIG_STAGING is not set 965# CONFIG_STAGING is not set
852 966
853# 967#
854# File systems 968# File systems
855# 969#
856# CONFIG_EXT2_FS is not set 970# CONFIG_EXT2_FS is not set
857# CONFIG_EXT3_FS is not set 971CONFIG_EXT3_FS=y
972# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
973CONFIG_EXT3_FS_XATTR=y
974# CONFIG_EXT3_FS_POSIX_ACL is not set
975# CONFIG_EXT3_FS_SECURITY is not set
858# CONFIG_EXT4_FS is not set 976# CONFIG_EXT4_FS is not set
977CONFIG_JBD=y
978CONFIG_FS_MBCACHE=y
859# CONFIG_REISERFS_FS is not set 979# CONFIG_REISERFS_FS is not set
860# CONFIG_JFS_FS is not set 980# CONFIG_JFS_FS is not set
861# CONFIG_FS_POSIX_ACL is not set 981# CONFIG_FS_POSIX_ACL is not set
862# CONFIG_XFS_FS is not set 982# CONFIG_XFS_FS is not set
863# CONFIG_OCFS2_FS is not set 983# CONFIG_OCFS2_FS is not set
864# CONFIG_BTRFS_FS is not set 984# CONFIG_BTRFS_FS is not set
985# CONFIG_NILFS2_FS is not set
865CONFIG_FILE_LOCKING=y 986CONFIG_FILE_LOCKING=y
866CONFIG_FSNOTIFY=y 987CONFIG_FSNOTIFY=y
867CONFIG_DNOTIFY=y 988CONFIG_DNOTIFY=y
@@ -886,8 +1007,11 @@ CONFIG_INOTIFY_USER=y
886# 1007#
887# DOS/FAT/NT Filesystems 1008# DOS/FAT/NT Filesystems
888# 1009#
1010CONFIG_FAT_FS=y
889# CONFIG_MSDOS_FS is not set 1011# CONFIG_MSDOS_FS is not set
890# CONFIG_VFAT_FS is not set 1012CONFIG_VFAT_FS=y
1013CONFIG_FAT_DEFAULT_CODEPAGE=437
1014CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
891# CONFIG_NTFS_FS is not set 1015# CONFIG_NTFS_FS is not set
892 1016
893# 1017#
diff --git a/arch/arm/configs/omap3_beagle_defconfig b/arch/arm/configs/omap3_beagle_defconfig
index c7999f5b1c9a..5a9e95fa728b 100644
--- a/arch/arm/configs/omap3_beagle_defconfig
+++ b/arch/arm/configs/omap3_beagle_defconfig
@@ -324,6 +324,7 @@ CONFIG_PM_SLEEP=y
324CONFIG_SUSPEND=y 324CONFIG_SUSPEND=y
325CONFIG_SUSPEND_FREEZER=y 325CONFIG_SUSPEND_FREEZER=y
326# CONFIG_APM_EMULATION is not set 326# CONFIG_APM_EMULATION is not set
327CONFIG_PM_RUNTIME=y
327CONFIG_ARCH_SUSPEND_POSSIBLE=y 328CONFIG_ARCH_SUSPEND_POSSIBLE=y
328CONFIG_NET=y 329CONFIG_NET=y
329 330
diff --git a/arch/arm/configs/omap3_defconfig b/arch/arm/configs/omap3_defconfig
index 714835e5ebec..d6ad92177324 100644
--- a/arch/arm/configs/omap3_defconfig
+++ b/arch/arm/configs/omap3_defconfig
@@ -450,7 +450,7 @@ CONFIG_SUSPEND=y
450# CONFIG_PM_TEST_SUSPEND is not set 450# CONFIG_PM_TEST_SUSPEND is not set
451CONFIG_SUSPEND_FREEZER=y 451CONFIG_SUSPEND_FREEZER=y
452# CONFIG_APM_EMULATION is not set 452# CONFIG_APM_EMULATION is not set
453# CONFIG_PM_RUNTIME is not set 453CONFIG_PM_RUNTIME=y
454CONFIG_ARCH_SUSPEND_POSSIBLE=y 454CONFIG_ARCH_SUSPEND_POSSIBLE=y
455CONFIG_NET=y 455CONFIG_NET=y
456 456
diff --git a/arch/arm/configs/omap3_evm_defconfig b/arch/arm/configs/omap3_evm_defconfig
index e2ad859fbec6..a6dd6d1af806 100644
--- a/arch/arm/configs/omap3_evm_defconfig
+++ b/arch/arm/configs/omap3_evm_defconfig
@@ -340,6 +340,7 @@ CONFIG_PM_SLEEP=y
340CONFIG_SUSPEND=y 340CONFIG_SUSPEND=y
341CONFIG_SUSPEND_FREEZER=y 341CONFIG_SUSPEND_FREEZER=y
342# CONFIG_APM_EMULATION is not set 342# CONFIG_APM_EMULATION is not set
343CONFIG_PM_RUNTIME=y
343CONFIG_ARCH_SUSPEND_POSSIBLE=y 344CONFIG_ARCH_SUSPEND_POSSIBLE=y
344CONFIG_NET=y 345CONFIG_NET=y
345 346
diff --git a/arch/arm/configs/omap3_touchbook_defconfig b/arch/arm/configs/omap3_touchbook_defconfig
index 74fe6be9c5ec..968fbaa8f04d 100644
--- a/arch/arm/configs/omap3_touchbook_defconfig
+++ b/arch/arm/configs/omap3_touchbook_defconfig
@@ -368,7 +368,7 @@ CONFIG_SUSPEND=y
368# CONFIG_PM_TEST_SUSPEND is not set 368# CONFIG_PM_TEST_SUSPEND is not set
369CONFIG_SUSPEND_FREEZER=y 369CONFIG_SUSPEND_FREEZER=y
370# CONFIG_APM_EMULATION is not set 370# CONFIG_APM_EMULATION is not set
371# CONFIG_PM_RUNTIME is not set 371CONFIG_PM_RUNTIME=y
372CONFIG_ARCH_SUSPEND_POSSIBLE=y 372CONFIG_ARCH_SUSPEND_POSSIBLE=y
373CONFIG_NET=y 373CONFIG_NET=y
374 374
diff --git a/arch/arm/configs/omap_3430sdp_defconfig b/arch/arm/configs/omap_3430sdp_defconfig
index bb2917e5cb47..ddde429a7d9b 100644
--- a/arch/arm/configs/omap_3430sdp_defconfig
+++ b/arch/arm/configs/omap_3430sdp_defconfig
@@ -363,6 +363,7 @@ CONFIG_PM_SLEEP=y
363CONFIG_SUSPEND=y 363CONFIG_SUSPEND=y
364CONFIG_SUSPEND_FREEZER=y 364CONFIG_SUSPEND_FREEZER=y
365# CONFIG_APM_EMULATION is not set 365# CONFIG_APM_EMULATION is not set
366CONFIG_PM_RUNTIME=y
366CONFIG_ARCH_SUSPEND_POSSIBLE=y 367CONFIG_ARCH_SUSPEND_POSSIBLE=y
367CONFIG_NET=y 368CONFIG_NET=y
368 369
diff --git a/arch/arm/configs/omap_3630sdp_defconfig b/arch/arm/configs/omap_3630sdp_defconfig
index d25c3d4424ca..609f348b1055 100644
--- a/arch/arm/configs/omap_3630sdp_defconfig
+++ b/arch/arm/configs/omap_3630sdp_defconfig
@@ -361,7 +361,7 @@ CONFIG_SUSPEND=y
361# CONFIG_PM_TEST_SUSPEND is not set 361# CONFIG_PM_TEST_SUSPEND is not set
362CONFIG_SUSPEND_FREEZER=y 362CONFIG_SUSPEND_FREEZER=y
363# CONFIG_APM_EMULATION is not set 363# CONFIG_APM_EMULATION is not set
364# CONFIG_PM_RUNTIME is not set 364CONFIG_PM_RUNTIME=y
365CONFIG_ARCH_SUSPEND_POSSIBLE=y 365CONFIG_ARCH_SUSPEND_POSSIBLE=y
366CONFIG_NET=y 366CONFIG_NET=y
367 367
diff --git a/arch/arm/configs/omap_h2_1610_defconfig b/arch/arm/configs/omap_h2_1610_defconfig
index 523189586a4b..91ef2ed0f80a 100644
--- a/arch/arm/configs/omap_h2_1610_defconfig
+++ b/arch/arm/configs/omap_h2_1610_defconfig
@@ -331,6 +331,7 @@ CONFIG_PM_SLEEP=y
331CONFIG_SUSPEND=y 331CONFIG_SUSPEND=y
332CONFIG_SUSPEND_FREEZER=y 332CONFIG_SUSPEND_FREEZER=y
333# CONFIG_APM_EMULATION is not set 333# CONFIG_APM_EMULATION is not set
334CONFIG_PM_RUNTIME=y
334CONFIG_ARCH_SUSPEND_POSSIBLE=y 335CONFIG_ARCH_SUSPEND_POSSIBLE=y
335 336
336# 337#
diff --git a/arch/arm/configs/omap_zoom2_defconfig b/arch/arm/configs/omap_zoom2_defconfig
index a82e81332a03..f5c6e11cf189 100644
--- a/arch/arm/configs/omap_zoom2_defconfig
+++ b/arch/arm/configs/omap_zoom2_defconfig
@@ -343,6 +343,7 @@ CONFIG_SUSPEND=y
343# CONFIG_PM_TEST_SUSPEND is not set 343# CONFIG_PM_TEST_SUSPEND is not set
344CONFIG_SUSPEND_FREEZER=y 344CONFIG_SUSPEND_FREEZER=y
345# CONFIG_APM_EMULATION is not set 345# CONFIG_APM_EMULATION is not set
346CONFIG_PM_RUNTIME=y
346CONFIG_ARCH_SUSPEND_POSSIBLE=y 347CONFIG_ARCH_SUSPEND_POSSIBLE=y
347CONFIG_NET=y 348CONFIG_NET=y
348 349
diff --git a/arch/arm/configs/omap_zoom3_defconfig b/arch/arm/configs/omap_zoom3_defconfig
index ff8ac3dcc31d..ea9a5012d332 100644
--- a/arch/arm/configs/omap_zoom3_defconfig
+++ b/arch/arm/configs/omap_zoom3_defconfig
@@ -361,7 +361,7 @@ CONFIG_SUSPEND=y
361# CONFIG_PM_TEST_SUSPEND is not set 361# CONFIG_PM_TEST_SUSPEND is not set
362CONFIG_SUSPEND_FREEZER=y 362CONFIG_SUSPEND_FREEZER=y
363# CONFIG_APM_EMULATION is not set 363# CONFIG_APM_EMULATION is not set
364# CONFIG_PM_RUNTIME is not set 364CONFIG_PM_RUNTIME=y
365CONFIG_ARCH_SUSPEND_POSSIBLE=y 365CONFIG_ARCH_SUSPEND_POSSIBLE=y
366CONFIG_NET=y 366CONFIG_NET=y
367 367
diff --git a/arch/arm/configs/rx51_defconfig b/arch/arm/configs/rx51_defconfig
index 193bd334fbbf..45135ffadc57 100644
--- a/arch/arm/configs/rx51_defconfig
+++ b/arch/arm/configs/rx51_defconfig
@@ -322,6 +322,7 @@ CONFIG_PM_SLEEP=y
322CONFIG_SUSPEND=y 322CONFIG_SUSPEND=y
323CONFIG_SUSPEND_FREEZER=y 323CONFIG_SUSPEND_FREEZER=y
324# CONFIG_APM_EMULATION is not set 324# CONFIG_APM_EMULATION is not set
325CONFIG_PM_RUNTIME=y
325CONFIG_ARCH_SUSPEND_POSSIBLE=y 326CONFIG_ARCH_SUSPEND_POSSIBLE=y
326CONFIG_NET=y 327CONFIG_NET=y
327 328
diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h
index a399bb5730f1..bff056489cc1 100644
--- a/arch/arm/include/asm/elf.h
+++ b/arch/arm/include/asm/elf.h
@@ -98,6 +98,7 @@ extern int elf_check_arch(const struct elf32_hdr *);
98extern int arm_elf_read_implies_exec(const struct elf32_hdr *, int); 98extern int arm_elf_read_implies_exec(const struct elf32_hdr *, int);
99#define elf_read_implies_exec(ex,stk) arm_elf_read_implies_exec(&(ex), stk) 99#define elf_read_implies_exec(ex,stk) arm_elf_read_implies_exec(&(ex), stk)
100 100
101struct task_struct;
101int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs); 102int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
102#define ELF_CORE_COPY_TASK_REGS dump_task_regs 103#define ELF_CORE_COPY_TASK_REGS dump_task_regs
103 104
diff --git a/arch/arm/include/asm/pgtable-nommu.h b/arch/arm/include/asm/pgtable-nommu.h
index 013cfcdc4839..ffc0e85775b4 100644
--- a/arch/arm/include/asm/pgtable-nommu.h
+++ b/arch/arm/include/asm/pgtable-nommu.h
@@ -67,6 +67,7 @@ static inline int pte_file(pte_t pte) { return 0; }
67 */ 67 */
68#define pgprot_noncached(prot) __pgprot(0) 68#define pgprot_noncached(prot) __pgprot(0)
69#define pgprot_writecombine(prot) __pgprot(0) 69#define pgprot_writecombine(prot) __pgprot(0)
70#define pgprot_dmacoherent(prot) __pgprot(0)
70 71
71 72
72/* 73/*
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
index 7e9ed1eea40a..d93f976fb389 100644
--- a/arch/arm/kernel/entry-header.S
+++ b/arch/arm/kernel/entry-header.S
@@ -102,6 +102,8 @@
102 .else 102 .else
103 ldmdb sp, {r0 - lr}^ @ get calling r0 - lr 103 ldmdb sp, {r0 - lr}^ @ get calling r0 - lr
104 .endif 104 .endif
105 mov r0, r0 @ ARMv5T and earlier require a nop
106 @ after ldm {}^
105 add sp, sp, #S_FRAME_SIZE - S_PC 107 add sp, sp, #S_FRAME_SIZE - S_PC
106 movs pc, lr @ return & move spsr_svc into cpsr 108 movs pc, lr @ return & move spsr_svc into cpsr
107 .endm 109 .endm
diff --git a/arch/arm/kernel/kgdb.c b/arch/arm/kernel/kgdb.c
index ba8ccfede964..a5b846b9895d 100644
--- a/arch/arm/kernel/kgdb.c
+++ b/arch/arm/kernel/kgdb.c
@@ -9,6 +9,7 @@
9 * Authors: George Davis <davis_g@mvista.com> 9 * Authors: George Davis <davis_g@mvista.com>
10 * Deepak Saxena <dsaxena@plexity.net> 10 * Deepak Saxena <dsaxena@plexity.net>
11 */ 11 */
12#include <linux/irq.h>
12#include <linux/kgdb.h> 13#include <linux/kgdb.h>
13#include <asm/traps.h> 14#include <asm/traps.h>
14 15
@@ -158,6 +159,18 @@ static struct undef_hook kgdb_compiled_brkpt_hook = {
158 .fn = kgdb_compiled_brk_fn 159 .fn = kgdb_compiled_brk_fn
159}; 160};
160 161
162static void kgdb_call_nmi_hook(void *ignored)
163{
164 kgdb_nmicallback(raw_smp_processor_id(), get_irq_regs());
165}
166
167void kgdb_roundup_cpus(unsigned long flags)
168{
169 local_irq_enable();
170 smp_call_function(kgdb_call_nmi_hook, NULL, 0);
171 local_irq_disable();
172}
173
161/** 174/**
162 * kgdb_arch_init - Perform any architecture specific initalization. 175 * kgdb_arch_init - Perform any architecture specific initalization.
163 * 176 *
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c
index 3875d99cc40f..9e70f2053f9a 100644
--- a/arch/arm/kernel/perf_event.c
+++ b/arch/arm/kernel/perf_event.c
@@ -332,7 +332,8 @@ armpmu_reserve_hardware(void)
332 332
333 for (i = 0; i < pmu_irqs->num_irqs; ++i) { 333 for (i = 0; i < pmu_irqs->num_irqs; ++i) {
334 err = request_irq(pmu_irqs->irqs[i], armpmu->handle_irq, 334 err = request_irq(pmu_irqs->irqs[i], armpmu->handle_irq,
335 IRQF_DISABLED, "armpmu", NULL); 335 IRQF_DISABLED | IRQF_NOBALANCING,
336 "armpmu", NULL);
336 if (err) { 337 if (err) {
337 pr_warning("unable to request IRQ%d for ARM " 338 pr_warning("unable to request IRQ%d for ARM "
338 "perf counters\n", pmu_irqs->irqs[i]); 339 "perf counters\n", pmu_irqs->irqs[i]);
@@ -1624,7 +1625,7 @@ enum armv7_counters {
1624/* 1625/*
1625 * EVTSEL: Event selection reg 1626 * EVTSEL: Event selection reg
1626 */ 1627 */
1627#define ARMV7_EVTSEL_MASK 0x7f /* Mask for writable bits */ 1628#define ARMV7_EVTSEL_MASK 0xff /* Mask for writable bits */
1628 1629
1629/* 1630/*
1630 * SELECT: Counter selection reg 1631 * SELECT: Counter selection reg
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 57162af53dc9..577543f3857f 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -99,6 +99,7 @@ int __cpuinit __cpu_up(unsigned int cpu)
99 *pmd = __pmd((PHYS_OFFSET & PGDIR_MASK) | 99 *pmd = __pmd((PHYS_OFFSET & PGDIR_MASK) |
100 PMD_TYPE_SECT | PMD_SECT_AP_WRITE); 100 PMD_TYPE_SECT | PMD_SECT_AP_WRITE);
101 flush_pmd_entry(pmd); 101 flush_pmd_entry(pmd);
102 outer_clean_range(__pa(pmd), __pa(pmd + 1));
102 103
103 /* 104 /*
104 * We need to tell the secondary core where to find 105 * We need to tell the secondary core where to find
@@ -106,7 +107,8 @@ int __cpuinit __cpu_up(unsigned int cpu)
106 */ 107 */
107 secondary_data.stack = task_stack_page(idle) + THREAD_START_SP; 108 secondary_data.stack = task_stack_page(idle) + THREAD_START_SP;
108 secondary_data.pgdir = virt_to_phys(pgd); 109 secondary_data.pgdir = virt_to_phys(pgd);
109 wmb(); 110 __cpuc_flush_dcache_area(&secondary_data, sizeof(secondary_data));
111 outer_clean_range(__pa(&secondary_data), __pa(&secondary_data + 1));
110 112
111 /* 113 /*
112 * Now bring the CPU into our world. 114 * Now bring the CPU into our world.
diff --git a/arch/arm/mach-at91/board-sam9g20ek.c b/arch/arm/mach-at91/board-sam9g20ek.c
index 29cf83177484..c11fd47aec5d 100644
--- a/arch/arm/mach-at91/board-sam9g20ek.c
+++ b/arch/arm/mach-at91/board-sam9g20ek.c
@@ -271,10 +271,12 @@ static void __init ek_add_device_buttons(void) {}
271 271
272 272
273static struct i2c_board_info __initdata ek_i2c_devices[] = { 273static struct i2c_board_info __initdata ek_i2c_devices[] = {
274 { 274 {
275 I2C_BOARD_INFO("24c512", 0x50), 275 I2C_BOARD_INFO("24c512", 0x50)
276 I2C_BOARD_INFO("wm8731", 0x1b), 276 },
277 }, 277 {
278 I2C_BOARD_INFO("wm8731", 0x1b)
279 },
278}; 280};
279 281
280 282
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 2069fb33baaa..4b9fc57770db 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -22,6 +22,9 @@ obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
22# SMP support ONLY available for OMAP4 22# SMP support ONLY available for OMAP4
23obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o 23obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o
24obj-$(CONFIG_LOCAL_TIMERS) += timer-mpu.o 24obj-$(CONFIG_LOCAL_TIMERS) += timer-mpu.o
25obj-$(CONFIG_ARCH_OMAP4) += omap44xx-smc.o
26
27AFLAGS_omap44xx-smc.o :=-Wa,-march=armv7-a
25 28
26# Functions loaded to SRAM 29# Functions loaded to SRAM
27obj-$(CONFIG_ARCH_OMAP2420) += sram242x.o 30obj-$(CONFIG_ARCH_OMAP2420) += sram242x.o
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
index a101029ceb6f..5822bcf7b15f 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -648,7 +648,7 @@ static void enable_board_wakeup_source(void)
648 OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP); 648 OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP);
649} 649}
650 650
651static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 651static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
652 652
653 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 653 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
654 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 654 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-omap2/board-3630sdp.c
index 4386d2b4a785..a0a2a113465c 100644
--- a/arch/arm/mach-omap2/board-3630sdp.c
+++ b/arch/arm/mach-omap2/board-3630sdp.c
@@ -54,7 +54,7 @@ static void enable_board_wakeup_source(void)
54 OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP); 54 OMAP_WAKEUP_EN | OMAP_PIN_INPUT_PULLUP);
55} 55}
56 56
57static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 57static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
58 58
59 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 59 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
60 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 60 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 180ac112e527..b88f28c5814b 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -50,33 +50,9 @@ static struct omap_board_config_kernel sdp4430_config[] __initdata = {
50}; 50};
51 51
52#ifdef CONFIG_CACHE_L2X0 52#ifdef CONFIG_CACHE_L2X0
53noinline void omap_smc1(u32 fn, u32 arg)
54{
55 register u32 r12 asm("r12") = fn;
56 register u32 r0 asm("r0") = arg;
57
58 /* This is common routine cache secure monitor API used to
59 * modify the PL310 secure registers.
60 * r0 contains the value to be modified and "r12" contains
61 * the monitor API number. It uses few CPU registers
62 * internally and hence they need be backed up including
63 * link register "lr".
64 * Explicitly save r11 and r12 the compiler generated code
65 * won't save it.
66 */
67 asm volatile(
68 "stmfd r13!, {r11,r12}\n"
69 "dsb\n"
70 "smc\n"
71 "ldmfd r13!, {r11,r12}\n"
72 : "+r" (r0), "+r" (r12)
73 :
74 : "r4", "r5", "r10", "lr", "cc");
75}
76EXPORT_SYMBOL(omap_smc1);
77
78static int __init omap_l2_cache_init(void) 53static int __init omap_l2_cache_init(void)
79{ 54{
55 extern void omap_smc1(u32 fn, u32 arg);
80 void __iomem *l2cache_base; 56 void __iomem *l2cache_base;
81 57
82 /* To avoid code running on other OMAPs in 58 /* To avoid code running on other OMAPs in
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c
index 70c18614773c..6ae880585d54 100644
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
@@ -273,7 +273,7 @@ static void __init am3517_evm_init_irq(void)
273 omap_gpio_init(); 273 omap_gpio_init();
274} 274}
275 275
276static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = { 276static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
277 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 277 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
278 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 278 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
279 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, 279 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c
index afa77caaff4d..2de4f79f03a0 100644
--- a/arch/arm/mach-omap2/board-cm-t35.c
+++ b/arch/arm/mach-omap2/board-cm-t35.c
@@ -612,7 +612,7 @@ static struct omap2_hsmmc_info mmc[] = {
612 {} /* Terminator */ 612 {} /* Terminator */
613}; 613};
614 614
615static struct ehci_hcd_omap_platform_data ehci_pdata = { 615static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = {
616 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 616 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
617 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 617 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
618 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, 618 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index 371019054b49..5bfc13b3176c 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -636,7 +636,7 @@ static struct omap_musb_board_data musb_board_data = {
636 .power = 100, 636 .power = 100,
637}; 637};
638 638
639static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 639static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
640 640
641 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 641 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
642 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 642 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c
index 9958987a3d0a..3c7789d45051 100644
--- a/arch/arm/mach-omap2/board-igep0020.c
+++ b/arch/arm/mach-omap2/board-igep0020.c
@@ -16,7 +16,6 @@
16#include <linux/clk.h> 16#include <linux/clk.h>
17#include <linux/io.h> 17#include <linux/io.h>
18#include <linux/gpio.h> 18#include <linux/gpio.h>
19#include <linux/leds.h>
20#include <linux/interrupt.h> 19#include <linux/interrupt.h>
21 20
22#include <linux/regulator/machine.h> 21#include <linux/regulator/machine.h>
@@ -39,8 +38,8 @@
39#define IGEP2_SMSC911X_CS 5 38#define IGEP2_SMSC911X_CS 5
40#define IGEP2_SMSC911X_GPIO 176 39#define IGEP2_SMSC911X_GPIO 176
41#define IGEP2_GPIO_USBH_NRESET 24 40#define IGEP2_GPIO_USBH_NRESET 24
42#define IGEP2_GPIO_LED0_RED 26 41#define IGEP2_GPIO_LED0_GREEN 26
43#define IGEP2_GPIO_LED0_GREEN 27 42#define IGEP2_GPIO_LED0_RED 27
44#define IGEP2_GPIO_LED1_RED 28 43#define IGEP2_GPIO_LED1_RED 28
45#define IGEP2_GPIO_DVI_PUP 170 44#define IGEP2_GPIO_DVI_PUP 170
46#define IGEP2_GPIO_WIFI_NPD 94 45#define IGEP2_GPIO_WIFI_NPD 94
@@ -355,34 +354,50 @@ static void __init igep2_display_init(void)
355 gpio_direction_output(IGEP2_GPIO_DVI_PUP, 1)) 354 gpio_direction_output(IGEP2_GPIO_DVI_PUP, 1))
356 pr_err("IGEP v2: Could not obtain gpio GPIO_DVI_PUP\n"); 355 pr_err("IGEP v2: Could not obtain gpio GPIO_DVI_PUP\n");
357} 356}
358#ifdef CONFIG_LEDS_TRIGGERS 357
359static struct gpio_led gpio_leds[] = { 358#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE)
359#include <linux/leds.h>
360
361static struct gpio_led igep2_gpio_leds[] = {
360 { 362 {
361 .name = "GPIO_LED1_RED", 363 .name = "led0:red",
364 .gpio = IGEP2_GPIO_LED0_RED,
365 },
366 {
367 .name = "led0:green",
362 .default_trigger = "heartbeat", 368 .default_trigger = "heartbeat",
369 .gpio = IGEP2_GPIO_LED0_GREEN,
370 },
371 {
372 .name = "led1:red",
363 .gpio = IGEP2_GPIO_LED1_RED, 373 .gpio = IGEP2_GPIO_LED1_RED,
364 }, 374 },
365}; 375};
366 376
367static struct gpio_led_platform_data gpio_leds_info = { 377static struct gpio_led_platform_data igep2_led_pdata = {
368 .leds = gpio_leds, 378 .leds = igep2_gpio_leds,
369 .num_leds = ARRAY_SIZE(gpio_leds), 379 .num_leds = ARRAY_SIZE(igep2_gpio_leds),
370}; 380};
371 381
372static struct platform_device leds_gpio = { 382static struct platform_device igep2_led_device = {
373 .name = "leds-gpio", 383 .name = "leds-gpio",
374 .id = -1, 384 .id = -1,
375 .dev = { 385 .dev = {
376 .platform_data = &gpio_leds_info, 386 .platform_data = &igep2_led_pdata,
377 }, 387 },
378}; 388};
389
390static void __init igep2_init_led(void)
391{
392 platform_device_register(&igep2_led_device);
393}
394
395#else
396static inline void igep2_init_led(void) {}
379#endif 397#endif
380 398
381static struct platform_device *igep2_devices[] __initdata = { 399static struct platform_device *igep2_devices[] __initdata = {
382 &igep2_dss_device, 400 &igep2_dss_device,
383#ifdef CONFIG_LEDS_TRIGGERS
384 &leds_gpio,
385#endif
386}; 401};
387 402
388static void __init igep2_init_irq(void) 403static void __init igep2_init_irq(void)
@@ -442,7 +457,7 @@ static struct omap_musb_board_data musb_board_data = {
442 .power = 100, 457 .power = 100,
443}; 458};
444 459
445static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 460static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
446 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, 461 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN,
447 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 462 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
448 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, 463 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
@@ -471,31 +486,34 @@ static void __init igep2_init(void)
471 usb_ehci_init(&ehci_pdata); 486 usb_ehci_init(&ehci_pdata);
472 487
473 igep2_flash_init(); 488 igep2_flash_init();
489 igep2_init_led();
474 igep2_display_init(); 490 igep2_display_init();
475 igep2_init_smsc911x(); 491 igep2_init_smsc911x();
476 492
477 /* GPIO userspace leds */ 493 /* GPIO userspace leds */
478 if ((gpio_request(IGEP2_GPIO_LED0_RED, "GPIO_LED0_RED") == 0) && 494#if !defined(CONFIG_LEDS_GPIO) && !defined(CONFIG_LEDS_GPIO_MODULE)
495 if ((gpio_request(IGEP2_GPIO_LED0_RED, "led0:red") == 0) &&
479 (gpio_direction_output(IGEP2_GPIO_LED0_RED, 1) == 0)) { 496 (gpio_direction_output(IGEP2_GPIO_LED0_RED, 1) == 0)) {
480 gpio_export(IGEP2_GPIO_LED0_RED, 0); 497 gpio_export(IGEP2_GPIO_LED0_RED, 0);
481 gpio_set_value(IGEP2_GPIO_LED0_RED, 0); 498 gpio_set_value(IGEP2_GPIO_LED0_RED, 0);
482 } else 499 } else
483 pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_RED\n"); 500 pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_RED\n");
484 501
485 if ((gpio_request(IGEP2_GPIO_LED0_GREEN, "GPIO_LED0_GREEN") == 0) && 502 if ((gpio_request(IGEP2_GPIO_LED0_GREEN, "led0:green") == 0) &&
486 (gpio_direction_output(IGEP2_GPIO_LED0_GREEN, 1) == 0)) { 503 (gpio_direction_output(IGEP2_GPIO_LED0_GREEN, 1) == 0)) {
487 gpio_export(IGEP2_GPIO_LED0_GREEN, 0); 504 gpio_export(IGEP2_GPIO_LED0_GREEN, 0);
488 gpio_set_value(IGEP2_GPIO_LED0_GREEN, 0); 505 gpio_set_value(IGEP2_GPIO_LED0_GREEN, 0);
489 } else 506 } else
490 pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_GREEN\n"); 507 pr_warning("IGEP v2: Could not obtain gpio GPIO_LED0_GREEN\n");
491#ifndef CONFIG_LEDS_TRIGGERS 508
492 if ((gpio_request(IGEP2_GPIO_LED1_RED, "GPIO_LED1_RED") == 0) && 509 if ((gpio_request(IGEP2_GPIO_LED1_RED, "led1:red") == 0) &&
493 (gpio_direction_output(IGEP2_GPIO_LED1_RED, 1) == 0)) { 510 (gpio_direction_output(IGEP2_GPIO_LED1_RED, 1) == 0)) {
494 gpio_export(IGEP2_GPIO_LED1_RED, 0); 511 gpio_export(IGEP2_GPIO_LED1_RED, 0);
495 gpio_set_value(IGEP2_GPIO_LED1_RED, 0); 512 gpio_set_value(IGEP2_GPIO_LED1_RED, 0);
496 } else 513 } else
497 pr_warning("IGEP v2: Could not obtain gpio GPIO_LED1_RED\n"); 514 pr_warning("IGEP v2: Could not obtain gpio GPIO_LED1_RED\n");
498#endif 515#endif
516
499 /* GPIO W-LAN + Bluetooth combo module */ 517 /* GPIO W-LAN + Bluetooth combo module */
500 if ((gpio_request(IGEP2_GPIO_WIFI_NPD, "GPIO_WIFI_NPD") == 0) && 518 if ((gpio_request(IGEP2_GPIO_WIFI_NPD, "GPIO_WIFI_NPD") == 0) &&
501 (gpio_direction_output(IGEP2_GPIO_WIFI_NPD, 1) == 0)) { 519 (gpio_direction_output(IGEP2_GPIO_WIFI_NPD, 1) == 0)) {
diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
index 4cab0522d7ce..da9bcb898991 100644
--- a/arch/arm/mach-omap2/board-n8x0.c
+++ b/arch/arm/mach-omap2/board-n8x0.c
@@ -37,6 +37,103 @@ static int slot1_cover_open;
37static int slot2_cover_open; 37static int slot2_cover_open;
38static struct device *mmc_device; 38static struct device *mmc_device;
39 39
40#define TUSB6010_ASYNC_CS 1
41#define TUSB6010_SYNC_CS 4
42#define TUSB6010_GPIO_INT 58
43#define TUSB6010_GPIO_ENABLE 0
44#define TUSB6010_DMACHAN 0x3f
45
46#if defined(CONFIG_USB_TUSB6010) || \
47 defined(CONFIG_USB_TUSB6010_MODULE)
48/*
49 * Enable or disable power to TUSB6010. When enabling, turn on 3.3 V and
50 * 1.5 V voltage regulators of PM companion chip. Companion chip will then
51 * provide then PGOOD signal to TUSB6010 which will release it from reset.
52 */
53static int tusb_set_power(int state)
54{
55 int i, retval = 0;
56
57 if (state) {
58 gpio_set_value(TUSB6010_GPIO_ENABLE, 1);
59 msleep(1);
60
61 /* Wait until TUSB6010 pulls INT pin down */
62 i = 100;
63 while (i && gpio_get_value(TUSB6010_GPIO_INT)) {
64 msleep(1);
65 i--;
66 }
67
68 if (!i) {
69 printk(KERN_ERR "tusb: powerup failed\n");
70 retval = -ENODEV;
71 }
72 } else {
73 gpio_set_value(TUSB6010_GPIO_ENABLE, 0);
74 msleep(10);
75 }
76
77 return retval;
78}
79
80static struct musb_hdrc_config musb_config = {
81 .multipoint = 1,
82 .dyn_fifo = 1,
83 .num_eps = 16,
84 .ram_bits = 12,
85};
86
87static struct musb_hdrc_platform_data tusb_data = {
88#if defined(CONFIG_USB_MUSB_OTG)
89 .mode = MUSB_OTG,
90#elif defined(CONFIG_USB_MUSB_PERIPHERAL)
91 .mode = MUSB_PERIPHERAL,
92#else /* defined(CONFIG_USB_MUSB_HOST) */
93 .mode = MUSB_HOST,
94#endif
95 .set_power = tusb_set_power,
96 .min_power = 25, /* x2 = 50 mA drawn from VBUS as peripheral */
97 .power = 100, /* Max 100 mA VBUS for host mode */
98 .config = &musb_config,
99};
100
101static void __init n8x0_usb_init(void)
102{
103 int ret = 0;
104 static char announce[] __initdata = KERN_INFO "TUSB 6010\n";
105
106 /* PM companion chip power control pin */
107 ret = gpio_request(TUSB6010_GPIO_ENABLE, "TUSB6010 enable");
108 if (ret != 0) {
109 printk(KERN_ERR "Could not get TUSB power GPIO%i\n",
110 TUSB6010_GPIO_ENABLE);
111 return;
112 }
113 gpio_direction_output(TUSB6010_GPIO_ENABLE, 0);
114
115 tusb_set_power(0);
116
117 ret = tusb6010_setup_interface(&tusb_data, TUSB6010_REFCLK_19, 2,
118 TUSB6010_ASYNC_CS, TUSB6010_SYNC_CS,
119 TUSB6010_GPIO_INT, TUSB6010_DMACHAN);
120 if (ret != 0)
121 goto err;
122
123 printk(announce);
124
125 return;
126
127err:
128 gpio_free(TUSB6010_GPIO_ENABLE);
129}
130#else
131
132static void __init n8x0_usb_init(void) {}
133
134#endif /*CONFIG_USB_TUSB6010 */
135
136
40static struct omap2_mcspi_device_config p54spi_mcspi_config = { 137static struct omap2_mcspi_device_config p54spi_mcspi_config = {
41 .turbo_mode = 0, 138 .turbo_mode = 0,
42 .single_channel = 1, 139 .single_channel = 1,
@@ -562,6 +659,7 @@ static void __init n8x0_init_machine(void)
562 n8x0_menelaus_init(); 659 n8x0_menelaus_init();
563 n8x0_onenand_init(); 660 n8x0_onenand_init();
564 n8x0_mmc_init(); 661 n8x0_mmc_init();
662 n8x0_usb_init();
565} 663}
566 664
567MACHINE_START(NOKIA_N800, "Nokia N800") 665MACHINE_START(NOKIA_N800, "Nokia N800")
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 6eb77e1f7c82..962d377970e9 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -410,7 +410,7 @@ static void __init omap3beagle_flash_init(void)
410 } 410 }
411} 411}
412 412
413static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 413static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
414 414
415 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 415 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
416 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 416 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index d6bc88c426b5..017bb2f4f7d2 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -635,7 +635,7 @@ static struct platform_device *omap3_evm_devices[] __initdata = {
635 &omap3_evm_dss_device, 635 &omap3_evm_dss_device,
636}; 636};
637 637
638static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 638static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = {
639 639
640 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, 640 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN,
641 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 641 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c
index 4827f4658df3..395d049bf010 100644
--- a/arch/arm/mach-omap2/board-omap3pandora.c
+++ b/arch/arm/mach-omap2/board-omap3pandora.c
@@ -459,12 +459,20 @@ static struct i2c_board_info __initdata omap3pandora_i2c_boardinfo[] = {
459 }, 459 },
460}; 460};
461 461
462static struct i2c_board_info __initdata omap3pandora_i2c3_boardinfo[] = {
463 {
464 I2C_BOARD_INFO("bq27500", 0x55),
465 .flags = I2C_CLIENT_WAKE,
466 },
467};
468
462static int __init omap3pandora_i2c_init(void) 469static int __init omap3pandora_i2c_init(void)
463{ 470{
464 omap_register_i2c_bus(1, 2600, omap3pandora_i2c_boardinfo, 471 omap_register_i2c_bus(1, 2600, omap3pandora_i2c_boardinfo,
465 ARRAY_SIZE(omap3pandora_i2c_boardinfo)); 472 ARRAY_SIZE(omap3pandora_i2c_boardinfo));
466 /* i2c2 pins are not connected */ 473 /* i2c2 pins are not connected */
467 omap_register_i2c_bus(3, 100, NULL, 0); 474 omap_register_i2c_bus(3, 100, omap3pandora_i2c3_boardinfo,
475 ARRAY_SIZE(omap3pandora_i2c3_boardinfo));
468 return 0; 476 return 0;
469} 477}
470 478
@@ -537,7 +545,7 @@ static struct platform_device *omap3pandora_devices[] __initdata = {
537 &pandora_dss_device, 545 &pandora_dss_device,
538}; 546};
539 547
540static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 548static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
541 549
542 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 550 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
543 .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN, 551 .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN,
diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c
index 3943d0f8322c..2504d41f923e 100644
--- a/arch/arm/mach-omap2/board-omap3touchbook.c
+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
@@ -493,7 +493,7 @@ static void __init omap3touchbook_flash_init(void)
493 } 493 }
494} 494}
495 495
496static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 496static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
497 497
498 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, 498 .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
499 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 499 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
@@ -518,14 +518,14 @@ static void omap3_touchbook_poweroff(void)
518 gpio_direction_output(TB_KILL_POWER_GPIO, 0); 518 gpio_direction_output(TB_KILL_POWER_GPIO, 0);
519} 519}
520 520
521static void __init early_touchbook_revision(char **p) 521static int __init early_touchbook_revision(char *p)
522{ 522{
523 if (!*p) 523 if (!p)
524 return; 524 return 0;
525 525
526 strict_strtoul(*p, 10, &touchbook_revision); 526 return strict_strtoul(p, 10, &touchbook_revision);
527} 527}
528__early_param("tbr=", early_touchbook_revision); 528early_param("tbr", early_touchbook_revision);
529 529
530static struct omap_musb_board_data musb_board_data = { 530static struct omap_musb_board_data musb_board_data = {
531 .interface_type = MUSB_INTERFACE_ULPI, 531 .interface_type = MUSB_INTERFACE_ULPI,
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c
index 50872a42bec7..8848c7c5ce48 100644
--- a/arch/arm/mach-omap2/board-overo.c
+++ b/arch/arm/mach-omap2/board-overo.c
@@ -394,7 +394,7 @@ static struct platform_device *overo_devices[] __initdata = {
394 &overo_lcd_device, 394 &overo_lcd_device,
395}; 395};
396 396
397static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 397static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
398 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, 398 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN,
399 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 399 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
400 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, 400 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
diff --git a/arch/arm/mach-omap2/board-zoom3.c b/arch/arm/mach-omap2/board-zoom3.c
index d3e3cd5170d1..cd3e40cf3ac1 100644
--- a/arch/arm/mach-omap2/board-zoom3.c
+++ b/arch/arm/mach-omap2/board-zoom3.c
@@ -52,7 +52,7 @@ static struct omap_board_mux board_mux[] __initdata = {
52#define board_mux NULL 52#define board_mux NULL
53#endif 53#endif
54 54
55static struct ehci_hcd_omap_platform_data ehci_pdata __initconst = { 55static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
56 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN, 56 .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN,
57 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY, 57 .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
58 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, 58 .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
diff --git a/arch/arm/mach-omap2/clock2420_data.c b/arch/arm/mach-omap2/clock2420_data.c
index f12af95ead45..d932b142d0b6 100644
--- a/arch/arm/mach-omap2/clock2420_data.c
+++ b/arch/arm/mach-omap2/clock2420_data.c
@@ -1841,6 +1841,7 @@ static struct omap_clk omap2420_clks[] = {
1841 CLK(NULL, "aes_ick", &aes_ick, CK_242X), 1841 CLK(NULL, "aes_ick", &aes_ick, CK_242X),
1842 CLK(NULL, "pka_ick", &pka_ick, CK_242X), 1842 CLK(NULL, "pka_ick", &pka_ick, CK_242X),
1843 CLK(NULL, "usb_fck", &usb_fck, CK_242X), 1843 CLK(NULL, "usb_fck", &usb_fck, CK_242X),
1844 CLK("musb_hdrc", "fck", &osc_ck, CK_242X),
1844}; 1845};
1845 1846
1846/* 1847/*
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 402e8f0d0f21..87f676acf61d 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -237,7 +237,7 @@ static void __init _omap2_map_common_io(void)
237} 237}
238 238
239#ifdef CONFIG_ARCH_OMAP2420 239#ifdef CONFIG_ARCH_OMAP2420
240void __init omap242x_map_common_io() 240void __init omap242x_map_common_io(void)
241{ 241{
242 iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc)); 242 iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc));
243 iotable_init(omap242x_io_desc, ARRAY_SIZE(omap242x_io_desc)); 243 iotable_init(omap242x_io_desc, ARRAY_SIZE(omap242x_io_desc));
@@ -246,7 +246,7 @@ void __init omap242x_map_common_io()
246#endif 246#endif
247 247
248#ifdef CONFIG_ARCH_OMAP2430 248#ifdef CONFIG_ARCH_OMAP2430
249void __init omap243x_map_common_io() 249void __init omap243x_map_common_io(void)
250{ 250{
251 iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc)); 251 iotable_init(omap24xx_io_desc, ARRAY_SIZE(omap24xx_io_desc));
252 iotable_init(omap243x_io_desc, ARRAY_SIZE(omap243x_io_desc)); 252 iotable_init(omap243x_io_desc, ARRAY_SIZE(omap243x_io_desc));
@@ -255,7 +255,7 @@ void __init omap243x_map_common_io()
255#endif 255#endif
256 256
257#ifdef CONFIG_ARCH_OMAP3 257#ifdef CONFIG_ARCH_OMAP3
258void __init omap34xx_map_common_io() 258void __init omap34xx_map_common_io(void)
259{ 259{
260 iotable_init(omap34xx_io_desc, ARRAY_SIZE(omap34xx_io_desc)); 260 iotable_init(omap34xx_io_desc, ARRAY_SIZE(omap34xx_io_desc));
261 _omap2_map_common_io(); 261 _omap2_map_common_io();
@@ -263,7 +263,7 @@ void __init omap34xx_map_common_io()
263#endif 263#endif
264 264
265#ifdef CONFIG_ARCH_OMAP4 265#ifdef CONFIG_ARCH_OMAP4
266void __init omap44xx_map_common_io() 266void __init omap44xx_map_common_io(void)
267{ 267{
268 iotable_init(omap44xx_io_desc, ARRAY_SIZE(omap44xx_io_desc)); 268 iotable_init(omap44xx_io_desc, ARRAY_SIZE(omap44xx_io_desc));
269 _omap2_map_common_io(); 269 _omap2_map_common_io();
@@ -309,7 +309,6 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
309{ 309{
310 pwrdm_init(powerdomains_omap); 310 pwrdm_init(powerdomains_omap);
311 clkdm_init(clockdomains_omap, clkdm_autodeps); 311 clkdm_init(clockdomains_omap, clkdm_autodeps);
312#ifndef CONFIG_ARCH_OMAP4 /* FIXME: Remove this once the clkdev is ready */
313 if (cpu_is_omap242x()) 312 if (cpu_is_omap242x())
314 omap2420_hwmod_init(); 313 omap2420_hwmod_init();
315 else if (cpu_is_omap243x()) 314 else if (cpu_is_omap243x())
@@ -319,7 +318,6 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
319 omap2_mux_init(); 318 omap2_mux_init();
320 /* The OPP tables have to be registered before a clk init */ 319 /* The OPP tables have to be registered before a clk init */
321 omap_pm_if_early_init(mpu_opps, dsp_opps, l3_opps); 320 omap_pm_if_early_init(mpu_opps, dsp_opps, l3_opps);
322#endif
323 321
324 if (cpu_is_omap2420()) 322 if (cpu_is_omap2420())
325 omap2420_clk_init(); 323 omap2420_clk_init();
@@ -333,11 +331,12 @@ void __init omap2_init_common_hw(struct omap_sdrc_params *sdrc_cs0,
333 pr_err("Could not init clock framework - unknown CPU\n"); 331 pr_err("Could not init clock framework - unknown CPU\n");
334 332
335 omap_serial_early_init(); 333 omap_serial_early_init();
336#ifndef CONFIG_ARCH_OMAP4 334 if (cpu_is_omap24xx() || cpu_is_omap34xx()) /* FIXME: OMAP4 */
337 omap_hwmod_late_init(); 335 omap_hwmod_late_init();
338 omap_pm_if_init(); 336 omap_pm_if_init();
339 omap2_sdrc_init(sdrc_cs0, sdrc_cs1); 337 if (cpu_is_omap24xx() || cpu_is_omap34xx()) {
340 _omap2_init_reprogram_sdrc(); 338 omap2_sdrc_init(sdrc_cs0, sdrc_cs1);
341#endif 339 _omap2_init_reprogram_sdrc();
340 }
342 gpmc_init(); 341 gpmc_init();
343} 342}
diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c
index 52a981cb8fdd..318f3638653c 100644
--- a/arch/arm/mach-omap2/mailbox.c
+++ b/arch/arm/mach-omap2/mailbox.c
@@ -430,19 +430,19 @@ static int __devinit omap2_mbox_probe(struct platform_device *pdev)
430 if (unlikely(!res)) { 430 if (unlikely(!res)) {
431 dev_err(&pdev->dev, "invalid irq resource\n"); 431 dev_err(&pdev->dev, "invalid irq resource\n");
432 ret = -ENODEV; 432 ret = -ENODEV;
433 goto err_iva1; 433 omap_mbox_unregister(&mbox_dsp_info);
434 goto err_dsp;
434 } 435 }
435 mbox_iva_info.irq = res->start; 436 mbox_iva_info.irq = res->start;
436 ret = omap_mbox_register(&pdev->dev, &mbox_iva_info); 437 ret = omap_mbox_register(&pdev->dev, &mbox_iva_info);
437 if (ret) 438 if (ret) {
438 goto err_iva1; 439 omap_mbox_unregister(&mbox_dsp_info);
440 goto err_dsp;
441 }
439 } 442 }
440#endif 443#endif
441 return 0; 444 return 0;
442 445
443err_iva1:
444 omap_mbox_unregister(&mbox_dsp_info);
445
446err_dsp: 446err_dsp:
447 iounmap(mbox_base); 447 iounmap(mbox_base);
448 return ret; 448 return ret;
diff --git a/arch/arm/mach-omap2/omap44xx-smc.S b/arch/arm/mach-omap2/omap44xx-smc.S
new file mode 100644
index 000000000000..89bb2b141473
--- /dev/null
+++ b/arch/arm/mach-omap2/omap44xx-smc.S
@@ -0,0 +1,32 @@
1/*
2 * OMAP44xx secure APIs file.
3 *
4 * Copyright (C) 2010 Texas Instruments, Inc.
5 * Written by Santosh Shilimkar <santosh.shilimkar@ti.com>
6 *
7 *
8 * This program is free software,you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 */
12
13#include <linux/linkage.h>
14
15/*
16 * This is common routine to manage secure monitor API
17 * used to modify the PL310 secure registers.
18 * 'r0' contains the value to be modified and 'r12' contains
19 * the monitor API number. It uses few CPU registers
20 * internally and hence they need be backed up including
21 * link register "lr".
22 * Function signature : void omap_smc1(u32 fn, u32 arg)
23 */
24
25ENTRY(omap_smc1)
26 stmfd sp!, {r2-r12, lr}
27 mov r12, r0
28 mov r0, r1
29 dsb
30 smc
31 ldmfd sp!, {r2-r12, pc}
32END(omap_smc1)
diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c
index 81872aacb801..9537f6f2352d 100644
--- a/arch/arm/mach-omap2/prcm.c
+++ b/arch/arm/mach-omap2/prcm.c
@@ -133,7 +133,7 @@ u32 omap_prcm_get_reset_sources(void)
133EXPORT_SYMBOL(omap_prcm_get_reset_sources); 133EXPORT_SYMBOL(omap_prcm_get_reset_sources);
134 134
135/* Resets clock rates and reboots the system. Only called from system.h */ 135/* Resets clock rates and reboots the system. Only called from system.h */
136void omap_prcm_arch_reset(char mode) 136void omap_prcm_arch_reset(char mode, const char *cmd)
137{ 137{
138 s16 prcm_offs = 0; 138 s16 prcm_offs = 0;
139 139
@@ -145,7 +145,7 @@ void omap_prcm_arch_reset(char mode)
145 u32 l; 145 u32 l;
146 146
147 prcm_offs = OMAP3430_GR_MOD; 147 prcm_offs = OMAP3430_GR_MOD;
148 l = ('B' << 24) | ('M' << 16) | mode; 148 l = ('B' << 24) | ('M' << 16) | (cmd ? (u8)*cmd : 0);
149 /* Reserve the first word in scratchpad for communicating 149 /* Reserve the first word in scratchpad for communicating
150 * with the boot ROM. A pointer to a data structure 150 * with the boot ROM. A pointer to a data structure
151 * describing the boot process can be stored there, 151 * describing the boot process can be stored there,
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index b79bc8926cc9..da77930480e9 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -644,16 +644,21 @@ static void serial_out_override(struct uart_port *up, int offset, int value)
644} 644}
645void __init omap_serial_early_init(void) 645void __init omap_serial_early_init(void)
646{ 646{
647 int i; 647 int i, nr_ports;
648 char name[16]; 648 char name[16];
649 649
650 if (!(cpu_is_omap3630() || cpu_is_omap4430()))
651 nr_ports = 3;
652 else
653 nr_ports = ARRAY_SIZE(omap_uart);
654
650 /* 655 /*
651 * Make sure the serial ports are muxed on at this point. 656 * Make sure the serial ports are muxed on at this point.
652 * You have to mux them off in device drivers later on 657 * You have to mux them off in device drivers later on
653 * if not needed. 658 * if not needed.
654 */ 659 */
655 660
656 for (i = 0; i < ARRAY_SIZE(omap_uart); i++) { 661 for (i = 0; i < nr_ports; i++) {
657 struct omap_uart_state *uart = &omap_uart[i]; 662 struct omap_uart_state *uart = &omap_uart[i];
658 struct platform_device *pdev = &uart->pdev; 663 struct platform_device *pdev = &uart->pdev;
659 struct device *dev = &pdev->dev; 664 struct device *dev = &pdev->dev;
@@ -669,17 +674,17 @@ void __init omap_serial_early_init(void)
669 continue; 674 continue;
670 } 675 }
671 676
672 sprintf(name, "uart%d_ick", i+1); 677 sprintf(name, "uart%d_ick", i + 1);
673 uart->ick = clk_get(NULL, name); 678 uart->ick = clk_get(NULL, name);
674 if (IS_ERR(uart->ick)) { 679 if (IS_ERR(uart->ick)) {
675 printk(KERN_ERR "Could not get uart%d_ick\n", i+1); 680 printk(KERN_ERR "Could not get uart%d_ick\n", i + 1);
676 uart->ick = NULL; 681 uart->ick = NULL;
677 } 682 }
678 683
679 sprintf(name, "uart%d_fck", i+1); 684 sprintf(name, "uart%d_fck", i+1);
680 uart->fck = clk_get(NULL, name); 685 uart->fck = clk_get(NULL, name);
681 if (IS_ERR(uart->fck)) { 686 if (IS_ERR(uart->fck)) {
682 printk(KERN_ERR "Could not get uart%d_fck\n", i+1); 687 printk(KERN_ERR "Could not get uart%d_fck\n", i + 1);
683 uart->fck = NULL; 688 uart->fck = NULL;
684 } 689 }
685 690
diff --git a/arch/arm/mach-omap2/usb-ehci.c b/arch/arm/mach-omap2/usb-ehci.c
index f1df873d59db..ee9f548d5d81 100644
--- a/arch/arm/mach-omap2/usb-ehci.c
+++ b/arch/arm/mach-omap2/usb-ehci.c
@@ -70,7 +70,7 @@ static struct platform_device ehci_device = {
70/* 70/*
71 * setup_ehci_io_mux - initialize IO pad mux for USBHOST 71 * setup_ehci_io_mux - initialize IO pad mux for USBHOST
72 */ 72 */
73static void setup_ehci_io_mux(enum ehci_hcd_omap_mode *port_mode) 73static void setup_ehci_io_mux(const enum ehci_hcd_omap_mode *port_mode)
74{ 74{
75 switch (port_mode[0]) { 75 switch (port_mode[0]) {
76 case EHCI_HCD_OMAP_MODE_PHY: 76 case EHCI_HCD_OMAP_MODE_PHY:
@@ -213,7 +213,7 @@ static void setup_ehci_io_mux(enum ehci_hcd_omap_mode *port_mode)
213 return; 213 return;
214} 214}
215 215
216void __init usb_ehci_init(struct ehci_hcd_omap_platform_data *pdata) 216void __init usb_ehci_init(const struct ehci_hcd_omap_platform_data *pdata)
217{ 217{
218 platform_device_add_data(&ehci_device, pdata, sizeof(*pdata)); 218 platform_device_add_data(&ehci_device, pdata, sizeof(*pdata));
219 219
@@ -229,7 +229,7 @@ void __init usb_ehci_init(struct ehci_hcd_omap_platform_data *pdata)
229 229
230#else 230#else
231 231
232void __init usb_ehci_init(struct ehci_hcd_omap_platform_data *pdata) 232void __init usb_ehci_init(const struct ehci_hcd_omap_platform_data *pdata)
233 233
234{ 234{
235} 235}
diff --git a/arch/arm/mach-rpc/include/mach/uncompress.h b/arch/arm/mach-rpc/include/mach/uncompress.h
index d5862368c4f2..8c9e2c7161c6 100644
--- a/arch/arm/mach-rpc/include/mach/uncompress.h
+++ b/arch/arm/mach-rpc/include/mach/uncompress.h
@@ -109,8 +109,6 @@ static inline void flush(void)
109{ 109{
110} 110}
111 111
112static void error(char *x);
113
114/* 112/*
115 * Setup for decompression 113 * Setup for decompression
116 */ 114 */
diff --git a/arch/arm/plat-s3c24xx/s3c2440-cpufreq.c b/arch/arm/mach-s3c2440/s3c2440-cpufreq.c
index 976002fb1b8f..976002fb1b8f 100644
--- a/arch/arm/plat-s3c24xx/s3c2440-cpufreq.c
+++ b/arch/arm/mach-s3c2440/s3c2440-cpufreq.c
diff --git a/arch/arm/mach-s3c64xx/include/mach/debug-macro.S b/arch/arm/mach-s3c64xx/include/mach/debug-macro.S
index b18ac5266dfc..f9ab5d26052a 100644
--- a/arch/arm/mach-s3c64xx/include/mach/debug-macro.S
+++ b/arch/arm/mach-s3c64xx/include/mach/debug-macro.S
@@ -21,7 +21,7 @@
21 * aligned and add in the offset when we load the value here. 21 * aligned and add in the offset when we load the value here.
22 */ 22 */
23 23
24 .macro addruart, rx 24 .macro addruart, rx, rtmp
25 mrc p15, 0, \rx, c1, c0 25 mrc p15, 0, \rx, c1, c0
26 tst \rx, #1 26 tst \rx, #1
27 ldreq \rx, = S3C_PA_UART 27 ldreq \rx, = S3C_PA_UART
diff --git a/arch/arm/mach-s5p6440/include/mach/debug-macro.S b/arch/arm/mach-s5p6440/include/mach/debug-macro.S
index 48cdb0da026c..1347d7f99079 100644
--- a/arch/arm/mach-s5p6440/include/mach/debug-macro.S
+++ b/arch/arm/mach-s5p6440/include/mach/debug-macro.S
@@ -19,7 +19,7 @@
19 * aligned and add in the offset when we load the value here. 19 * aligned and add in the offset when we load the value here.
20 */ 20 */
21 21
22 .macro addruart, rx 22 .macro addruart, rx, rtmp
23 mrc p15, 0, \rx, c1, c0 23 mrc p15, 0, \rx, c1, c0
24 tst \rx, #1 24 tst \rx, #1
25 ldreq \rx, = S3C_PA_UART 25 ldreq \rx, = S3C_PA_UART
diff --git a/arch/arm/mach-s5p6442/include/mach/debug-macro.S b/arch/arm/mach-s5p6442/include/mach/debug-macro.S
index 1aae691e58ef..bb6536147ffb 100644
--- a/arch/arm/mach-s5p6442/include/mach/debug-macro.S
+++ b/arch/arm/mach-s5p6442/include/mach/debug-macro.S
@@ -15,7 +15,7 @@
15#include <mach/map.h> 15#include <mach/map.h>
16#include <plat/regs-serial.h> 16#include <plat/regs-serial.h>
17 17
18 .macro addruart, rx 18 .macro addruart, rx, rtmp
19 mrc p15, 0, \rx, c1, c0 19 mrc p15, 0, \rx, c1, c0
20 tst \rx, #1 20 tst \rx, #1
21 ldreq \rx, = S3C_PA_UART 21 ldreq \rx, = S3C_PA_UART
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c
index a0463d926447..1c2ec96ce261 100644
--- a/arch/arm/mach-shmobile/board-ap4evb.c
+++ b/arch/arm/mach-shmobile/board-ap4evb.c
@@ -206,10 +206,32 @@ static struct platform_device keysc_device = {
206 }, 206 },
207}; 207};
208 208
209/* SDHI0 */
210static struct resource sdhi0_resources[] = {
211 [0] = {
212 .name = "SDHI0",
213 .start = 0xe6850000,
214 .end = 0xe68501ff,
215 .flags = IORESOURCE_MEM,
216 },
217 [1] = {
218 .start = 96,
219 .flags = IORESOURCE_IRQ,
220 },
221};
222
223static struct platform_device sdhi0_device = {
224 .name = "sh_mobile_sdhi",
225 .num_resources = ARRAY_SIZE(sdhi0_resources),
226 .resource = sdhi0_resources,
227 .id = 0,
228};
229
209static struct platform_device *ap4evb_devices[] __initdata = { 230static struct platform_device *ap4evb_devices[] __initdata = {
210 &nor_flash_device, 231 &nor_flash_device,
211 &smc911x_device, 232 &smc911x_device,
212 &keysc_device, 233 &keysc_device,
234 &sdhi0_device,
213}; 235};
214 236
215static struct map_desc ap4evb_io_desc[] __initdata = { 237static struct map_desc ap4evb_io_desc[] __initdata = {
@@ -286,6 +308,16 @@ static void __init ap4evb_init(void)
286 gpio_request(GPIO_FN_KEYIN3_133, NULL); 308 gpio_request(GPIO_FN_KEYIN3_133, NULL);
287 gpio_request(GPIO_FN_KEYIN4, NULL); 309 gpio_request(GPIO_FN_KEYIN4, NULL);
288 310
311 /* SDHI0 */
312 gpio_request(GPIO_FN_SDHICD0, NULL);
313 gpio_request(GPIO_FN_SDHIWP0, NULL);
314 gpio_request(GPIO_FN_SDHICMD0, NULL);
315 gpio_request(GPIO_FN_SDHICLK0, NULL);
316 gpio_request(GPIO_FN_SDHID0_3, NULL);
317 gpio_request(GPIO_FN_SDHID0_2, NULL);
318 gpio_request(GPIO_FN_SDHID0_1, NULL);
319 gpio_request(GPIO_FN_SDHID0_0, NULL);
320
289 sh7372_add_standard_devices(); 321 sh7372_add_standard_devices();
290 322
291 platform_add_devices(ap4evb_devices, ARRAY_SIZE(ap4evb_devices)); 323 platform_add_devices(ap4evb_devices, ARRAY_SIZE(ap4evb_devices));
diff --git a/arch/arm/mach-shmobile/board-g3evm.c b/arch/arm/mach-shmobile/board-g3evm.c
index f36c9a94d326..9247503296c4 100644
--- a/arch/arm/mach-shmobile/board-g3evm.c
+++ b/arch/arm/mach-shmobile/board-g3evm.c
@@ -26,9 +26,12 @@
26#include <linux/mtd/mtd.h> 26#include <linux/mtd/mtd.h>
27#include <linux/mtd/partitions.h> 27#include <linux/mtd/partitions.h>
28#include <linux/mtd/physmap.h> 28#include <linux/mtd/physmap.h>
29#include <linux/mtd/sh_flctl.h>
29#include <linux/usb/r8a66597.h> 30#include <linux/usb/r8a66597.h>
30#include <linux/io.h> 31#include <linux/io.h>
31#include <linux/gpio.h> 32#include <linux/gpio.h>
33#include <linux/input.h>
34#include <linux/input/sh_keysc.h>
32#include <mach/sh7367.h> 35#include <mach/sh7367.h>
33#include <mach/common.h> 36#include <mach/common.h>
34#include <asm/mach-types.h> 37#include <asm/mach-types.h>
@@ -127,9 +130,90 @@ static struct platform_device usb_host_device = {
127 .resource = usb_host_resources, 130 .resource = usb_host_resources,
128}; 131};
129 132
133/* KEYSC */
134static struct sh_keysc_info keysc_info = {
135 .mode = SH_KEYSC_MODE_5,
136 .scan_timing = 3,
137 .delay = 100,
138 .keycodes = {
139 KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F, KEY_G,
140 KEY_H, KEY_I, KEY_J, KEY_K, KEY_L, KEY_M, KEY_N,
141 KEY_O, KEY_P, KEY_Q, KEY_R, KEY_S, KEY_T, KEY_U,
142 KEY_V, KEY_W, KEY_X, KEY_Y, KEY_Z, KEY_HOME, KEY_SLEEP,
143 KEY_WAKEUP, KEY_COFFEE, KEY_0, KEY_1, KEY_2, KEY_3, KEY_4,
144 KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_STOP, KEY_COMPUTER,
145 },
146};
147
148static struct resource keysc_resources[] = {
149 [0] = {
150 .name = "KEYSC",
151 .start = 0xe61b0000,
152 .end = 0xe61b000f,
153 .flags = IORESOURCE_MEM,
154 },
155 [1] = {
156 .start = 79,
157 .flags = IORESOURCE_IRQ,
158 },
159};
160
161static struct platform_device keysc_device = {
162 .name = "sh_keysc",
163 .num_resources = ARRAY_SIZE(keysc_resources),
164 .resource = keysc_resources,
165 .dev = {
166 .platform_data = &keysc_info,
167 },
168};
169
170static struct mtd_partition nand_partition_info[] = {
171 {
172 .name = "system",
173 .offset = 0,
174 .size = 64 * 1024 * 1024,
175 },
176 {
177 .name = "userdata",
178 .offset = MTDPART_OFS_APPEND,
179 .size = 128 * 1024 * 1024,
180 },
181 {
182 .name = "cache",
183 .offset = MTDPART_OFS_APPEND,
184 .size = 64 * 1024 * 1024,
185 },
186};
187
188static struct resource nand_flash_resources[] = {
189 [0] = {
190 .start = 0xe6a30000,
191 .end = 0xe6a3009b,
192 .flags = IORESOURCE_MEM,
193 }
194};
195
196static struct sh_flctl_platform_data nand_flash_data = {
197 .parts = nand_partition_info,
198 .nr_parts = ARRAY_SIZE(nand_partition_info),
199 .flcmncr_val = QTSEL_E | FCKSEL_E | TYPESEL_SET | NANWF_E
200 | SHBUSSEL | SEL_16BIT,
201};
202
203static struct platform_device nand_flash_device = {
204 .name = "sh_flctl",
205 .resource = nand_flash_resources,
206 .num_resources = ARRAY_SIZE(nand_flash_resources),
207 .dev = {
208 .platform_data = &nand_flash_data,
209 },
210};
211
130static struct platform_device *g3evm_devices[] __initdata = { 212static struct platform_device *g3evm_devices[] __initdata = {
131 &nor_flash_device, 213 &nor_flash_device,
132 &usb_host_device, 214 &usb_host_device,
215 &keysc_device,
216 &nand_flash_device,
133}; 217};
134 218
135static struct map_desc g3evm_io_desc[] __initdata = { 219static struct map_desc g3evm_io_desc[] __initdata = {
@@ -196,6 +280,44 @@ static void __init g3evm_init(void)
196 __raw_writew(0x6010, 0xe60581c6); /* CGPOSR */ 280 __raw_writew(0x6010, 0xe60581c6); /* CGPOSR */
197 __raw_writew(0x8a0a, 0xe605810c); /* USBCR2 */ 281 __raw_writew(0x8a0a, 0xe605810c); /* USBCR2 */
198 282
283 /* KEYSC @ CN7 */
284 gpio_request(GPIO_FN_PORT42_KEYOUT0, NULL);
285 gpio_request(GPIO_FN_PORT43_KEYOUT1, NULL);
286 gpio_request(GPIO_FN_PORT44_KEYOUT2, NULL);
287 gpio_request(GPIO_FN_PORT45_KEYOUT3, NULL);
288 gpio_request(GPIO_FN_PORT46_KEYOUT4, NULL);
289 gpio_request(GPIO_FN_PORT47_KEYOUT5, NULL);
290 gpio_request(GPIO_FN_PORT48_KEYIN0_PU, NULL);
291 gpio_request(GPIO_FN_PORT49_KEYIN1_PU, NULL);
292 gpio_request(GPIO_FN_PORT50_KEYIN2_PU, NULL);
293 gpio_request(GPIO_FN_PORT55_KEYIN3_PU, NULL);
294 gpio_request(GPIO_FN_PORT56_KEYIN4_PU, NULL);
295 gpio_request(GPIO_FN_PORT57_KEYIN5_PU, NULL);
296 gpio_request(GPIO_FN_PORT58_KEYIN6_PU, NULL);
297
298 /* FLCTL */
299 gpio_request(GPIO_FN_FCE0, NULL);
300 gpio_request(GPIO_FN_D0_ED0_NAF0, NULL);
301 gpio_request(GPIO_FN_D1_ED1_NAF1, NULL);
302 gpio_request(GPIO_FN_D2_ED2_NAF2, NULL);
303 gpio_request(GPIO_FN_D3_ED3_NAF3, NULL);
304 gpio_request(GPIO_FN_D4_ED4_NAF4, NULL);
305 gpio_request(GPIO_FN_D5_ED5_NAF5, NULL);
306 gpio_request(GPIO_FN_D6_ED6_NAF6, NULL);
307 gpio_request(GPIO_FN_D7_ED7_NAF7, NULL);
308 gpio_request(GPIO_FN_D8_ED8_NAF8, NULL);
309 gpio_request(GPIO_FN_D9_ED9_NAF9, NULL);
310 gpio_request(GPIO_FN_D10_ED10_NAF10, NULL);
311 gpio_request(GPIO_FN_D11_ED11_NAF11, NULL);
312 gpio_request(GPIO_FN_D12_ED12_NAF12, NULL);
313 gpio_request(GPIO_FN_D13_ED13_NAF13, NULL);
314 gpio_request(GPIO_FN_D14_ED14_NAF14, NULL);
315 gpio_request(GPIO_FN_D15_ED15_NAF15, NULL);
316 gpio_request(GPIO_FN_WE0_XWR0_FWE, NULL);
317 gpio_request(GPIO_FN_FRB, NULL);
318 /* FOE, FCDE, FSC on dedicated pins */
319 __raw_writel(__raw_readl(0xe6158048) & ~(1 << 15), 0xe6158048);
320
199 sh7367_add_standard_devices(); 321 sh7367_add_standard_devices();
200 322
201 platform_add_devices(g3evm_devices, ARRAY_SIZE(g3evm_devices)); 323 platform_add_devices(g3evm_devices, ARRAY_SIZE(g3evm_devices));
diff --git a/arch/arm/mach-shmobile/board-g4evm.c b/arch/arm/mach-shmobile/board-g4evm.c
index 5acd623f93e7..10673a90be52 100644
--- a/arch/arm/mach-shmobile/board-g4evm.c
+++ b/arch/arm/mach-shmobile/board-g4evm.c
@@ -28,6 +28,8 @@
28#include <linux/mtd/physmap.h> 28#include <linux/mtd/physmap.h>
29#include <linux/usb/r8a66597.h> 29#include <linux/usb/r8a66597.h>
30#include <linux/io.h> 30#include <linux/io.h>
31#include <linux/input.h>
32#include <linux/input/sh_keysc.h>
31#include <linux/gpio.h> 33#include <linux/gpio.h>
32#include <mach/sh7377.h> 34#include <mach/sh7377.h>
33#include <mach/common.h> 35#include <mach/common.h>
@@ -128,9 +130,49 @@ static struct platform_device usb_host_device = {
128 .resource = usb_host_resources, 130 .resource = usb_host_resources,
129}; 131};
130 132
133/* KEYSC */
134static struct sh_keysc_info keysc_info = {
135 .mode = SH_KEYSC_MODE_5,
136 .scan_timing = 3,
137 .delay = 100,
138 .keycodes = {
139 KEY_A, KEY_B, KEY_C, KEY_D, KEY_E, KEY_F,
140 KEY_G, KEY_H, KEY_I, KEY_J, KEY_K, KEY_L,
141 KEY_M, KEY_N, KEY_U, KEY_P, KEY_Q, KEY_R,
142 KEY_S, KEY_T, KEY_U, KEY_V, KEY_W, KEY_X,
143 KEY_Y, KEY_Z, KEY_HOME, KEY_SLEEP, KEY_WAKEUP, KEY_COFFEE,
144 KEY_0, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5,
145 KEY_6, KEY_7, KEY_8, KEY_9, KEY_STOP, KEY_COMPUTER,
146 },
147};
148
149static struct resource keysc_resources[] = {
150 [0] = {
151 .name = "KEYSC",
152 .start = 0xe61b0000,
153 .end = 0xe61b000f,
154 .flags = IORESOURCE_MEM,
155 },
156 [1] = {
157 .start = 79,
158 .flags = IORESOURCE_IRQ,
159 },
160};
161
162static struct platform_device keysc_device = {
163 .name = "sh_keysc",
164 .id = 0, /* keysc0 clock */
165 .num_resources = ARRAY_SIZE(keysc_resources),
166 .resource = keysc_resources,
167 .dev = {
168 .platform_data = &keysc_info,
169 },
170};
171
131static struct platform_device *g4evm_devices[] __initdata = { 172static struct platform_device *g4evm_devices[] __initdata = {
132 &nor_flash_device, 173 &nor_flash_device,
133 &usb_host_device, 174 &usb_host_device,
175 &keysc_device,
134}; 176};
135 177
136static struct map_desc g4evm_io_desc[] __initdata = { 178static struct map_desc g4evm_io_desc[] __initdata = {
@@ -196,6 +238,21 @@ static void __init g4evm_init(void)
196 __raw_writew(0x6010, 0xe60581c6); /* CGPOSR */ 238 __raw_writew(0x6010, 0xe60581c6); /* CGPOSR */
197 __raw_writew(0x8a0a, 0xe605810c); /* USBCR2 */ 239 __raw_writew(0x8a0a, 0xe605810c); /* USBCR2 */
198 240
241 /* KEYSC @ CN31 */
242 gpio_request(GPIO_FN_PORT60_KEYOUT5, NULL);
243 gpio_request(GPIO_FN_PORT61_KEYOUT4, NULL);
244 gpio_request(GPIO_FN_PORT62_KEYOUT3, NULL);
245 gpio_request(GPIO_FN_PORT63_KEYOUT2, NULL);
246 gpio_request(GPIO_FN_PORT64_KEYOUT1, NULL);
247 gpio_request(GPIO_FN_PORT65_KEYOUT0, NULL);
248 gpio_request(GPIO_FN_PORT66_KEYIN0_PU, NULL);
249 gpio_request(GPIO_FN_PORT67_KEYIN1_PU, NULL);
250 gpio_request(GPIO_FN_PORT68_KEYIN2_PU, NULL);
251 gpio_request(GPIO_FN_PORT69_KEYIN3_PU, NULL);
252 gpio_request(GPIO_FN_PORT70_KEYIN4_PU, NULL);
253 gpio_request(GPIO_FN_PORT71_KEYIN5_PU, NULL);
254 gpio_request(GPIO_FN_PORT72_KEYIN6_PU, NULL);
255
199 sh7377_add_standard_devices(); 256 sh7377_add_standard_devices();
200 257
201 platform_add_devices(g4evm_devices, ARRAY_SIZE(g4evm_devices)); 258 platform_add_devices(g4evm_devices, ARRAY_SIZE(g4evm_devices));
diff --git a/arch/arm/mach-shmobile/clock-sh7367.c b/arch/arm/mach-shmobile/clock-sh7367.c
index 58bd54e1113a..bb940c6e4e6c 100644
--- a/arch/arm/mach-shmobile/clock-sh7367.c
+++ b/arch/arm/mach-shmobile/clock-sh7367.c
@@ -75,6 +75,11 @@ static struct clk usb0_clk = {
75 .name = "usb0", 75 .name = "usb0",
76}; 76};
77 77
78/* a static keysc0 clk for now - enough to get sh_keysc working */
79static struct clk keysc0_clk = {
80 .name = "keysc0",
81};
82
78static struct clk_lookup lookups[] = { 83static struct clk_lookup lookups[] = {
79 { 84 {
80 .clk = &peripheral_clk, 85 .clk = &peripheral_clk,
@@ -82,6 +87,8 @@ static struct clk_lookup lookups[] = {
82 .clk = &r_clk, 87 .clk = &r_clk,
83 }, { 88 }, {
84 .clk = &usb0_clk, 89 .clk = &usb0_clk,
90 }, {
91 .clk = &keysc0_clk,
85 } 92 }
86}; 93};
87 94
diff --git a/arch/arm/mach-shmobile/intc-sh7367.c b/arch/arm/mach-shmobile/intc-sh7367.c
index 6a547b47aabb..5ff70cadfc32 100644
--- a/arch/arm/mach-shmobile/intc-sh7367.c
+++ b/arch/arm/mach-shmobile/intc-sh7367.c
@@ -27,6 +27,8 @@
27 27
28enum { 28enum {
29 UNUSED_INTCA = 0, 29 UNUSED_INTCA = 0,
30 ENABLED,
31 DISABLED,
30 32
31 /* interrupt sources INTCA */ 33 /* interrupt sources INTCA */
32 IRQ0A, IRQ1A, IRQ2A, IRQ3A, IRQ4A, IRQ5A, IRQ6A, IRQ7A, 34 IRQ0A, IRQ1A, IRQ2A, IRQ3A, IRQ4A, IRQ5A, IRQ6A, IRQ7A,
@@ -46,8 +48,8 @@ enum {
46 MSIOF2, MSIOF1, 48 MSIOF2, MSIOF1,
47 SCIFA4, SCIFA5, SCIFB, 49 SCIFA4, SCIFA5, SCIFB,
48 FLCTL_FLSTEI, FLCTL_FLTENDI, FLCTL_FLTREQ0I, FLCTL_FLTREQ1I, 50 FLCTL_FLSTEI, FLCTL_FLTENDI, FLCTL_FLTREQ0I, FLCTL_FLTREQ1I,
49 SDHI0_SDHI0I0, SDHI0_SDHI0I1, SDHI0_SDHI0I2, SDHI0_SDHI0I3, 51 SDHI0,
50 SDHI1_SDHI1I0, SDHI1_SDHI1I1, SDHI1_SDHI1I2, SDHI1_SDHI1I3, 52 SDHI1,
51 MSU_MSU, MSU_MSU2, 53 MSU_MSU, MSU_MSU2,
52 IREM, 54 IREM,
53 SIU, 55 SIU,
@@ -59,7 +61,7 @@ enum {
59 TTI20, 61 TTI20,
60 MISTY, 62 MISTY,
61 DDM, 63 DDM,
62 SDHI2_SDHI2I0, SDHI2_SDHI2I1, SDHI2_SDHI2I2, SDHI2_SDHI2I3, 64 SDHI2,
63 RWDT0, RWDT1, 65 RWDT0, RWDT1,
64 DMAC_1_DEI0, DMAC_1_DEI1, DMAC_1_DEI2, DMAC_1_DEI3, 66 DMAC_1_DEI0, DMAC_1_DEI1, DMAC_1_DEI2, DMAC_1_DEI3,
65 DMAC_2_DEI4, DMAC_2_DEI5, DMAC_2_DADERR, 67 DMAC_2_DEI4, DMAC_2_DEI5, DMAC_2_DADERR,
@@ -70,7 +72,7 @@ enum {
70 72
71 /* interrupt groups INTCA */ 73 /* interrupt groups INTCA */
72 DMAC_1, DMAC_2, DMAC2_1, DMAC2_2, DMAC3_1, DMAC3_2, 74 DMAC_1, DMAC_2, DMAC2_1, DMAC2_2, DMAC3_1, DMAC3_2,
73 ETM11, ARM11, USBHS, FLCTL, IIC1, SDHI0, SDHI1, SDHI2, 75 ETM11, ARM11, USBHS, FLCTL, IIC1
74}; 76};
75 77
76static struct intc_vect intca_vectors[] = { 78static struct intc_vect intca_vectors[] = {
@@ -105,10 +107,10 @@ static struct intc_vect intca_vectors[] = {
105 INTC_VECT(SCIFB, 0x0d60), 107 INTC_VECT(SCIFB, 0x0d60),
106 INTC_VECT(FLCTL_FLSTEI, 0x0d80), INTC_VECT(FLCTL_FLTENDI, 0x0da0), 108 INTC_VECT(FLCTL_FLSTEI, 0x0d80), INTC_VECT(FLCTL_FLTENDI, 0x0da0),
107 INTC_VECT(FLCTL_FLTREQ0I, 0x0dc0), INTC_VECT(FLCTL_FLTREQ1I, 0x0de0), 109 INTC_VECT(FLCTL_FLTREQ0I, 0x0dc0), INTC_VECT(FLCTL_FLTREQ1I, 0x0de0),
108 INTC_VECT(SDHI0_SDHI0I0, 0x0e00), INTC_VECT(SDHI0_SDHI0I1, 0x0e20), 110 INTC_VECT(SDHI0, 0x0e00), INTC_VECT(SDHI0, 0x0e20),
109 INTC_VECT(SDHI0_SDHI0I2, 0x0e40), INTC_VECT(SDHI0_SDHI0I3, 0x0e60), 111 INTC_VECT(SDHI0, 0x0e40), INTC_VECT(SDHI0, 0x0e60),
110 INTC_VECT(SDHI1_SDHI1I0, 0x0e80), INTC_VECT(SDHI1_SDHI1I1, 0x0ea0), 112 INTC_VECT(SDHI1, 0x0e80), INTC_VECT(SDHI1, 0x0ea0),
111 INTC_VECT(SDHI1_SDHI1I2, 0x0ec0), INTC_VECT(SDHI1_SDHI1I3, 0x0ee0), 113 INTC_VECT(SDHI1, 0x0ec0), INTC_VECT(SDHI1, 0x0ee0),
112 INTC_VECT(MSU_MSU, 0x0f20), INTC_VECT(MSU_MSU2, 0x0f40), 114 INTC_VECT(MSU_MSU, 0x0f20), INTC_VECT(MSU_MSU2, 0x0f40),
113 INTC_VECT(IREM, 0x0f60), 115 INTC_VECT(IREM, 0x0f60),
114 INTC_VECT(SIU, 0x0fa0), 116 INTC_VECT(SIU, 0x0fa0),
@@ -122,8 +124,8 @@ static struct intc_vect intca_vectors[] = {
122 INTC_VECT(TTI20, 0x1100), 124 INTC_VECT(TTI20, 0x1100),
123 INTC_VECT(MISTY, 0x1120), 125 INTC_VECT(MISTY, 0x1120),
124 INTC_VECT(DDM, 0x1140), 126 INTC_VECT(DDM, 0x1140),
125 INTC_VECT(SDHI2_SDHI2I0, 0x1200), INTC_VECT(SDHI2_SDHI2I1, 0x1220), 127 INTC_VECT(SDHI2, 0x1200), INTC_VECT(SDHI2, 0x1220),
126 INTC_VECT(SDHI2_SDHI2I2, 0x1240), INTC_VECT(SDHI2_SDHI2I3, 0x1260), 128 INTC_VECT(SDHI2, 0x1240), INTC_VECT(SDHI2, 0x1260),
127 INTC_VECT(RWDT0, 0x1280), INTC_VECT(RWDT1, 0x12a0), 129 INTC_VECT(RWDT0, 0x1280), INTC_VECT(RWDT1, 0x12a0),
128 INTC_VECT(DMAC_1_DEI0, 0x2000), INTC_VECT(DMAC_1_DEI1, 0x2020), 130 INTC_VECT(DMAC_1_DEI0, 0x2000), INTC_VECT(DMAC_1_DEI1, 0x2020),
129 INTC_VECT(DMAC_1_DEI2, 0x2040), INTC_VECT(DMAC_1_DEI3, 0x2060), 131 INTC_VECT(DMAC_1_DEI2, 0x2040), INTC_VECT(DMAC_1_DEI3, 0x2060),
@@ -158,12 +160,6 @@ static struct intc_group intca_groups[] __initdata = {
158 INTC_GROUP(FLCTL, FLCTL_FLSTEI, FLCTL_FLTENDI, 160 INTC_GROUP(FLCTL, FLCTL_FLSTEI, FLCTL_FLTENDI,
159 FLCTL_FLTREQ0I, FLCTL_FLTREQ1I), 161 FLCTL_FLTREQ0I, FLCTL_FLTREQ1I),
160 INTC_GROUP(IIC1, IIC1_ALI1, IIC1_TACKI1, IIC1_WAITI1, IIC1_DTEI1), 162 INTC_GROUP(IIC1, IIC1_ALI1, IIC1_TACKI1, IIC1_WAITI1, IIC1_DTEI1),
161 INTC_GROUP(SDHI0, SDHI0_SDHI0I0, SDHI0_SDHI0I1,
162 SDHI0_SDHI0I2, SDHI0_SDHI0I3),
163 INTC_GROUP(SDHI1, SDHI1_SDHI1I0, SDHI1_SDHI1I1,
164 SDHI1_SDHI1I2, SDHI1_SDHI1I3),
165 INTC_GROUP(SDHI2, SDHI2_SDHI2I0, SDHI2_SDHI2I1,
166 SDHI2_SDHI2I2, SDHI2_SDHI2I3),
167}; 163};
168 164
169static struct intc_mask_reg intca_mask_registers[] = { 165static struct intc_mask_reg intca_mask_registers[] = {
@@ -193,10 +189,10 @@ static struct intc_mask_reg intca_mask_registers[] = {
193 { SCIFB, SCIFA5, SCIFA4, MSIOF1, 189 { SCIFB, SCIFA5, SCIFA4, MSIOF1,
194 0, 0, MSIOF2, 0 } }, 190 0, 0, MSIOF2, 0 } },
195 { 0xe694009c, 0xe69400dc, 8, /* IMR7A / IMCR7A */ 191 { 0xe694009c, 0xe69400dc, 8, /* IMR7A / IMCR7A */
196 { SDHI0_SDHI0I3, SDHI0_SDHI0I2, SDHI0_SDHI0I1, SDHI0_SDHI0I0, 192 { DISABLED, DISABLED, ENABLED, ENABLED,
197 FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } }, 193 FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } },
198 { 0xe69400a0, 0xe69400e0, 8, /* IMR8A / IMCR8A */ 194 { 0xe69400a0, 0xe69400e0, 8, /* IMR8A / IMCR8A */
199 { SDHI1_SDHI1I3, SDHI1_SDHI1I2, SDHI1_SDHI1I1, SDHI1_SDHI1I0, 195 { DISABLED, DISABLED, ENABLED, ENABLED,
200 TTI20, USBDMAC_USHDMI, SPU, SIU } }, 196 TTI20, USBDMAC_USHDMI, SPU, SIU } },
201 { 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */ 197 { 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */
202 { CMT1_CMT13, CMT1_CMT12, CMT1_CMT11, CMT1_CMT10, 198 { CMT1_CMT13, CMT1_CMT12, CMT1_CMT11, CMT1_CMT10,
@@ -211,7 +207,7 @@ static struct intc_mask_reg intca_mask_registers[] = {
211 { 0, 0, TPU0, TPU1, 207 { 0, 0, TPU0, TPU1,
212 TPU2, TPU3, TPU4, 0 } }, 208 TPU2, TPU3, TPU4, 0 } },
213 { 0xe69400b4, 0xe69400f4, 8, /* IMR13A / IMCR13A */ 209 { 0xe69400b4, 0xe69400f4, 8, /* IMR13A / IMCR13A */
214 { SDHI2_SDHI2I3, SDHI2_SDHI2I2, SDHI2_SDHI2I1, SDHI2_SDHI2I0, 210 { DISABLED, DISABLED, ENABLED, ENABLED,
215 MISTY, CMT3, RWDT1, RWDT0 } }, 211 MISTY, CMT3, RWDT1, RWDT0 } },
216}; 212};
217 213
@@ -258,10 +254,14 @@ static struct intc_mask_reg intca_ack_registers[] __initdata = {
258 { IRQ8A, IRQ9A, IRQ10A, IRQ11A, IRQ12A, IRQ13A, IRQ14A, IRQ15A } }, 254 { IRQ8A, IRQ9A, IRQ10A, IRQ11A, IRQ12A, IRQ13A, IRQ14A, IRQ15A } },
259}; 255};
260 256
261static DECLARE_INTC_DESC_ACK(intca_desc, "sh7367-intca", 257static struct intc_desc intca_desc __initdata = {
262 intca_vectors, intca_groups, 258 .name = "sh7367-intca",
263 intca_mask_registers, intca_prio_registers, 259 .force_enable = ENABLED,
264 intca_sense_registers, intca_ack_registers); 260 .force_disable = DISABLED,
261 .hw = INTC_HW_DESC(intca_vectors, intca_groups,
262 intca_mask_registers, intca_prio_registers,
263 intca_sense_registers, intca_ack_registers),
264};
265 265
266void __init sh7367_init_irq(void) 266void __init sh7367_init_irq(void)
267{ 267{
diff --git a/arch/arm/mach-shmobile/intc-sh7372.c b/arch/arm/mach-shmobile/intc-sh7372.c
index c57a923f97a6..3ce9d9bd5899 100644
--- a/arch/arm/mach-shmobile/intc-sh7372.c
+++ b/arch/arm/mach-shmobile/intc-sh7372.c
@@ -27,6 +27,8 @@
27 27
28enum { 28enum {
29 UNUSED_INTCA = 0, 29 UNUSED_INTCA = 0,
30 ENABLED,
31 DISABLED,
30 32
31 /* interrupt sources INTCA */ 33 /* interrupt sources INTCA */
32 IRQ0A, IRQ1A, IRQ2A, IRQ3A, IRQ4A, IRQ5A, IRQ6A, IRQ7A, 34 IRQ0A, IRQ1A, IRQ2A, IRQ3A, IRQ4A, IRQ5A, IRQ6A, IRQ7A,
@@ -47,14 +49,14 @@ enum {
47 MSIOF2, MSIOF1, 49 MSIOF2, MSIOF1,
48 SCIFA4, SCIFA5, SCIFB, 50 SCIFA4, SCIFA5, SCIFB,
49 FLCTL_FLSTEI, FLCTL_FLTENDI, FLCTL_FLTREQ0I, FLCTL_FLTREQ1I, 51 FLCTL_FLSTEI, FLCTL_FLTENDI, FLCTL_FLTREQ0I, FLCTL_FLTREQ1I,
50 SDHI0_SDHI0I0, SDHI0_SDHI0I1, SDHI0_SDHI0I2, SDHI0_SDHI0I3, 52 SDHI0,
51 SDHI1_SDHI1I0, SDHI1_SDHI1I1, SDHI1_SDHI1I2, 53 SDHI1,
52 IRREM, 54 IRREM,
53 IRDA, 55 IRDA,
54 TPU0, 56 TPU0,
55 TTI20, 57 TTI20,
56 DDM, 58 DDM,
57 SDHI2_SDHI2I0, SDHI2_SDHI2I1, SDHI2_SDHI2I2, SDHI2_SDHI2I3, 59 SDHI2,
58 RWDT0, 60 RWDT0,
59 DMAC1_1_DEI0, DMAC1_1_DEI1, DMAC1_1_DEI2, DMAC1_1_DEI3, 61 DMAC1_1_DEI0, DMAC1_1_DEI1, DMAC1_1_DEI2, DMAC1_1_DEI3,
60 DMAC1_2_DEI4, DMAC1_2_DEI5, DMAC1_2_DADERR, 62 DMAC1_2_DEI4, DMAC1_2_DEI5, DMAC1_2_DADERR,
@@ -82,7 +84,7 @@ enum {
82 84
83 /* interrupt groups INTCA */ 85 /* interrupt groups INTCA */
84 DMAC1_1, DMAC1_2, DMAC2_1, DMAC2_2, DMAC3_1, DMAC3_2, SHWYSTAT, 86 DMAC1_1, DMAC1_2, DMAC2_1, DMAC2_2, DMAC3_1, DMAC3_2, SHWYSTAT,
85 AP_ARM1, AP_ARM2, SPU2, FLCTL, IIC1, SDHI0, SDHI1, SDHI2 87 AP_ARM1, AP_ARM2, SPU2, FLCTL, IIC1
86}; 88};
87 89
88static struct intc_vect intca_vectors[] __initdata = { 90static struct intc_vect intca_vectors[] __initdata = {
@@ -123,17 +125,17 @@ static struct intc_vect intca_vectors[] __initdata = {
123 INTC_VECT(SCIFB, 0x0d60), 125 INTC_VECT(SCIFB, 0x0d60),
124 INTC_VECT(FLCTL_FLSTEI, 0x0d80), INTC_VECT(FLCTL_FLTENDI, 0x0da0), 126 INTC_VECT(FLCTL_FLSTEI, 0x0d80), INTC_VECT(FLCTL_FLTENDI, 0x0da0),
125 INTC_VECT(FLCTL_FLTREQ0I, 0x0dc0), INTC_VECT(FLCTL_FLTREQ1I, 0x0de0), 127 INTC_VECT(FLCTL_FLTREQ0I, 0x0dc0), INTC_VECT(FLCTL_FLTREQ1I, 0x0de0),
126 INTC_VECT(SDHI0_SDHI0I0, 0x0e00), INTC_VECT(SDHI0_SDHI0I1, 0x0e20), 128 INTC_VECT(SDHI0, 0x0e00), INTC_VECT(SDHI0, 0x0e20),
127 INTC_VECT(SDHI0_SDHI0I2, 0x0e40), INTC_VECT(SDHI0_SDHI0I3, 0x0e60), 129 INTC_VECT(SDHI0, 0x0e40), INTC_VECT(SDHI0, 0x0e60),
128 INTC_VECT(SDHI1_SDHI1I0, 0x0e80), INTC_VECT(SDHI1_SDHI1I1, 0x0ea0), 130 INTC_VECT(SDHI1, 0x0e80), INTC_VECT(SDHI1, 0x0ea0),
129 INTC_VECT(SDHI1_SDHI1I2, 0x0ec0), 131 INTC_VECT(SDHI1, 0x0ec0),
130 INTC_VECT(IRREM, 0x0f60), 132 INTC_VECT(IRREM, 0x0f60),
131 INTC_VECT(IRDA, 0x0480), 133 INTC_VECT(IRDA, 0x0480),
132 INTC_VECT(TPU0, 0x04a0), 134 INTC_VECT(TPU0, 0x04a0),
133 INTC_VECT(TTI20, 0x1100), 135 INTC_VECT(TTI20, 0x1100),
134 INTC_VECT(DDM, 0x1140), 136 INTC_VECT(DDM, 0x1140),
135 INTC_VECT(SDHI2_SDHI2I0, 0x1200), INTC_VECT(SDHI2_SDHI2I1, 0x1220), 137 INTC_VECT(SDHI2, 0x1200), INTC_VECT(SDHI2, 0x1220),
136 INTC_VECT(SDHI2_SDHI2I2, 0x1240), INTC_VECT(SDHI2_SDHI2I3, 0x1260), 138 INTC_VECT(SDHI2, 0x1240), INTC_VECT(SDHI2, 0x1260),
137 INTC_VECT(RWDT0, 0x1280), 139 INTC_VECT(RWDT0, 0x1280),
138 INTC_VECT(DMAC1_1_DEI0, 0x2000), INTC_VECT(DMAC1_1_DEI1, 0x2020), 140 INTC_VECT(DMAC1_1_DEI0, 0x2000), INTC_VECT(DMAC1_1_DEI1, 0x2020),
139 INTC_VECT(DMAC1_1_DEI2, 0x2040), INTC_VECT(DMAC1_1_DEI3, 0x2060), 141 INTC_VECT(DMAC1_1_DEI2, 0x2040), INTC_VECT(DMAC1_1_DEI3, 0x2060),
@@ -193,12 +195,6 @@ static struct intc_group intca_groups[] __initdata = {
193 INTC_GROUP(FLCTL, FLCTL_FLSTEI, FLCTL_FLTENDI, 195 INTC_GROUP(FLCTL, FLCTL_FLSTEI, FLCTL_FLTENDI,
194 FLCTL_FLTREQ0I, FLCTL_FLTREQ1I), 196 FLCTL_FLTREQ0I, FLCTL_FLTREQ1I),
195 INTC_GROUP(IIC1, IIC1_ALI1, IIC1_TACKI1, IIC1_WAITI1, IIC1_DTEI1), 197 INTC_GROUP(IIC1, IIC1_ALI1, IIC1_TACKI1, IIC1_WAITI1, IIC1_DTEI1),
196 INTC_GROUP(SDHI0, SDHI0_SDHI0I0, SDHI0_SDHI0I1,
197 SDHI0_SDHI0I2, SDHI0_SDHI0I3),
198 INTC_GROUP(SDHI1, SDHI1_SDHI1I0, SDHI1_SDHI1I1,
199 SDHI1_SDHI1I2),
200 INTC_GROUP(SDHI2, SDHI2_SDHI2I0, SDHI2_SDHI2I1,
201 SDHI2_SDHI2I2, SDHI2_SDHI2I3),
202 INTC_GROUP(SHWYSTAT, SHWYSTAT_RT, SHWYSTAT_HS, SHWYSTAT_COM), 198 INTC_GROUP(SHWYSTAT, SHWYSTAT_RT, SHWYSTAT_HS, SHWYSTAT_COM),
203}; 199};
204 200
@@ -234,10 +230,10 @@ static struct intc_mask_reg intca_mask_registers[] __initdata = {
234 { SCIFB, SCIFA5, SCIFA4, MSIOF1, 230 { SCIFB, SCIFA5, SCIFA4, MSIOF1,
235 0, 0, MSIOF2, 0 } }, 231 0, 0, MSIOF2, 0 } },
236 { 0xe694009c, 0xe69400dc, 8, /* IMR7A / IMCR7A */ 232 { 0xe694009c, 0xe69400dc, 8, /* IMR7A / IMCR7A */
237 { SDHI0_SDHI0I3, SDHI0_SDHI0I2, SDHI0_SDHI0I1, SDHI0_SDHI0I0, 233 { DISABLED, DISABLED, ENABLED, ENABLED,
238 FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } }, 234 FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } },
239 { 0xe69400a0, 0xe69400e0, 8, /* IMR8A / IMCR8A */ 235 { 0xe69400a0, 0xe69400e0, 8, /* IMR8A / IMCR8A */
240 { 0, SDHI1_SDHI1I2, SDHI1_SDHI1I1, SDHI1_SDHI1I0, 236 { 0, DISABLED, ENABLED, ENABLED,
241 TTI20, USBHSDMAC0_USHDMI, 0, 0 } }, 237 TTI20, USBHSDMAC0_USHDMI, 0, 0 } },
242 { 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */ 238 { 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */
243 { CMT1_CMT13, CMT1_CMT12, CMT1_CMT11, CMT1_CMT10, 239 { CMT1_CMT13, CMT1_CMT12, CMT1_CMT11, CMT1_CMT10,
@@ -252,7 +248,7 @@ static struct intc_mask_reg intca_mask_registers[] __initdata = {
252 { 0, 0, TPU0, 0, 248 { 0, 0, TPU0, 0,
253 0, 0, 0, 0 } }, 249 0, 0, 0, 0 } },
254 { 0xe69400b4, 0xe69400f4, 8, /* IMR13A / IMCR13A */ 250 { 0xe69400b4, 0xe69400f4, 8, /* IMR13A / IMCR13A */
255 { SDHI2_SDHI2I3, SDHI2_SDHI2I2, SDHI2_SDHI2I1, SDHI2_SDHI2I0, 251 { DISABLED, DISABLED, ENABLED, ENABLED,
256 0, CMT3, 0, RWDT0 } }, 252 0, CMT3, 0, RWDT0 } },
257 { 0xe6950080, 0xe69500c0, 8, /* IMR0A3 / IMCR0A3 */ 253 { 0xe6950080, 0xe69500c0, 8, /* IMR0A3 / IMCR0A3 */
258 { SHWYSTAT_RT, SHWYSTAT_HS, SHWYSTAT_COM, 0, 254 { SHWYSTAT_RT, SHWYSTAT_HS, SHWYSTAT_COM, 0,
@@ -358,10 +354,14 @@ static struct intc_mask_reg intca_ack_registers[] __initdata = {
358 { IRQ24A, IRQ25A, IRQ26A, IRQ27A, IRQ28A, IRQ29A, IRQ30A, IRQ31A } }, 354 { IRQ24A, IRQ25A, IRQ26A, IRQ27A, IRQ28A, IRQ29A, IRQ30A, IRQ31A } },
359}; 355};
360 356
361static DECLARE_INTC_DESC_ACK(intca_desc, "sh7372-intca", 357static struct intc_desc intca_desc __initdata = {
362 intca_vectors, intca_groups, 358 .name = "sh7372-intca",
363 intca_mask_registers, intca_prio_registers, 359 .force_enable = ENABLED,
364 intca_sense_registers, intca_ack_registers); 360 .force_disable = DISABLED,
361 .hw = INTC_HW_DESC(intca_vectors, intca_groups,
362 intca_mask_registers, intca_prio_registers,
363 intca_sense_registers, intca_ack_registers),
364};
365 365
366void __init sh7372_init_irq(void) 366void __init sh7372_init_irq(void)
367{ 367{
diff --git a/arch/arm/mach-shmobile/intc-sh7377.c b/arch/arm/mach-shmobile/intc-sh7377.c
index 125021cfba5c..5c781e2d1897 100644
--- a/arch/arm/mach-shmobile/intc-sh7377.c
+++ b/arch/arm/mach-shmobile/intc-sh7377.c
@@ -27,6 +27,8 @@
27 27
28enum { 28enum {
29 UNUSED_INTCA = 0, 29 UNUSED_INTCA = 0,
30 ENABLED,
31 DISABLED,
30 32
31 /* interrupt sources INTCA */ 33 /* interrupt sources INTCA */
32 IRQ0A, IRQ1A, IRQ2A, IRQ3A, IRQ4A, IRQ5A, IRQ6A, IRQ7A, 34 IRQ0A, IRQ1A, IRQ2A, IRQ3A, IRQ4A, IRQ5A, IRQ6A, IRQ7A,
@@ -49,8 +51,8 @@ enum {
49 MSIOF2, MSIOF1, 51 MSIOF2, MSIOF1,
50 SCIFA4, SCIFA5, SCIFB, 52 SCIFA4, SCIFA5, SCIFB,
51 FLCTL_FLSTEI, FLCTL_FLTENDI, FLCTL_FLTREQ0I, FLCTL_FLTREQ1I, 53 FLCTL_FLSTEI, FLCTL_FLTENDI, FLCTL_FLTREQ0I, FLCTL_FLTREQ1I,
52 SDHI0_SDHI0I0, SDHI0_SDHI0I1, SDHI0_SDHI0I2, SDHI0_SDHI0I3, 54 SDHI0,
53 SDHI1_SDHI1I0, SDHI1_SDHI1I1, SDHI1_SDHI1I2, SDHI1_SDHI1I3, 55 SDHI1,
54 MSU_MSU, MSU_MSU2, 56 MSU_MSU, MSU_MSU2,
55 IRREM, 57 IRREM,
56 MSUG, 58 MSUG,
@@ -84,7 +86,7 @@ enum {
84 86
85 /* interrupt groups INTCA */ 87 /* interrupt groups INTCA */
86 DMAC_1, DMAC_2, DMAC2_1, DMAC2_2, DMAC3_1, DMAC3_2, SHWYSTAT, 88 DMAC_1, DMAC_2, DMAC2_1, DMAC2_2, DMAC3_1, DMAC3_2, SHWYSTAT,
87 AP_ARM1, AP_ARM2, USBHS, SPU2, FLCTL, IIC1, SDHI0, SDHI1, 89 AP_ARM1, AP_ARM2, USBHS, SPU2, FLCTL, IIC1,
88 ICUSB, ICUDMC 90 ICUSB, ICUDMC
89}; 91};
90 92
@@ -128,10 +130,10 @@ static struct intc_vect intca_vectors[] = {
128 INTC_VECT(SCIFB, 0x0d60), 130 INTC_VECT(SCIFB, 0x0d60),
129 INTC_VECT(FLCTL_FLSTEI, 0x0d80), INTC_VECT(FLCTL_FLTENDI, 0x0da0), 131 INTC_VECT(FLCTL_FLSTEI, 0x0d80), INTC_VECT(FLCTL_FLTENDI, 0x0da0),
130 INTC_VECT(FLCTL_FLTREQ0I, 0x0dc0), INTC_VECT(FLCTL_FLTREQ1I, 0x0de0), 132 INTC_VECT(FLCTL_FLTREQ0I, 0x0dc0), INTC_VECT(FLCTL_FLTREQ1I, 0x0de0),
131 INTC_VECT(SDHI0_SDHI0I0, 0x0e00), INTC_VECT(SDHI0_SDHI0I1, 0x0e20), 133 INTC_VECT(SDHI0, 0x0e00), INTC_VECT(SDHI0, 0x0e20),
132 INTC_VECT(SDHI0_SDHI0I2, 0x0e40), INTC_VECT(SDHI0_SDHI0I3, 0x0e60), 134 INTC_VECT(SDHI0, 0x0e40), INTC_VECT(SDHI0, 0x0e60),
133 INTC_VECT(SDHI1_SDHI1I0, 0x0e80), INTC_VECT(SDHI1_SDHI1I1, 0x0ea0), 135 INTC_VECT(SDHI1, 0x0e80), INTC_VECT(SDHI1, 0x0ea0),
134 INTC_VECT(SDHI1_SDHI1I2, 0x0ec0), INTC_VECT(SDHI1_SDHI1I3, 0x0ee0), 136 INTC_VECT(SDHI1, 0x0ec0), INTC_VECT(SDHI1, 0x0ee0),
135 INTC_VECT(MSU_MSU, 0x0f20), INTC_VECT(MSU_MSU2, 0x0f40), 137 INTC_VECT(MSU_MSU, 0x0f20), INTC_VECT(MSU_MSU2, 0x0f40),
136 INTC_VECT(IRREM, 0x0f60), 138 INTC_VECT(IRREM, 0x0f60),
137 INTC_VECT(MSUG, 0x0fa0), 139 INTC_VECT(MSUG, 0x0fa0),
@@ -195,10 +197,6 @@ static struct intc_group intca_groups[] __initdata = {
195 INTC_GROUP(FLCTL, FLCTL_FLSTEI, FLCTL_FLTENDI, 197 INTC_GROUP(FLCTL, FLCTL_FLSTEI, FLCTL_FLTENDI,
196 FLCTL_FLTREQ0I, FLCTL_FLTREQ1I), 198 FLCTL_FLTREQ0I, FLCTL_FLTREQ1I),
197 INTC_GROUP(IIC1, IIC1_ALI1, IIC1_TACKI1, IIC1_WAITI1, IIC1_DTEI1), 199 INTC_GROUP(IIC1, IIC1_ALI1, IIC1_TACKI1, IIC1_WAITI1, IIC1_DTEI1),
198 INTC_GROUP(SDHI0, SDHI0_SDHI0I0, SDHI0_SDHI0I1,
199 SDHI0_SDHI0I2, SDHI0_SDHI0I3),
200 INTC_GROUP(SDHI1, SDHI1_SDHI1I0, SDHI1_SDHI1I1,
201 SDHI1_SDHI1I2, SDHI1_SDHI1I3),
202 INTC_GROUP(SHWYSTAT, SHWYSTAT_RT, SHWYSTAT_HS, SHWYSTAT_COM), 200 INTC_GROUP(SHWYSTAT, SHWYSTAT_RT, SHWYSTAT_HS, SHWYSTAT_COM),
203 INTC_GROUP(ICUSB, ICUSB_ICUSB0, ICUSB_ICUSB1), 201 INTC_GROUP(ICUSB, ICUSB_ICUSB0, ICUSB_ICUSB1),
204 INTC_GROUP(ICUDMC, ICUDMC_ICUDMC1, ICUDMC_ICUDMC2), 202 INTC_GROUP(ICUDMC, ICUDMC_ICUDMC1, ICUDMC_ICUDMC2),
@@ -236,10 +234,10 @@ static struct intc_mask_reg intca_mask_registers[] = {
236 { SCIFB, SCIFA5, SCIFA4, MSIOF1, 234 { SCIFB, SCIFA5, SCIFA4, MSIOF1,
237 0, 0, MSIOF2, 0 } }, 235 0, 0, MSIOF2, 0 } },
238 { 0xe694009c, 0xe69400dc, 8, /* IMR7A / IMCR7A */ 236 { 0xe694009c, 0xe69400dc, 8, /* IMR7A / IMCR7A */
239 { SDHI0_SDHI0I3, SDHI0_SDHI0I2, SDHI0_SDHI0I1, SDHI0_SDHI0I0, 237 { DISABLED, DISABLED, ENABLED, ENABLED,
240 FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } }, 238 FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } },
241 { 0xe69400a0, 0xe69400e0, 8, /* IMR8A / IMCR8A */ 239 { 0xe69400a0, 0xe69400e0, 8, /* IMR8A / IMCR8A */
242 { SDHI1_SDHI1I3, SDHI1_SDHI1I2, SDHI1_SDHI1I1, SDHI1_SDHI1I0, 240 { DISABLED, DISABLED, ENABLED, ENABLED,
243 TTI20, USBDMAC_USHDMI, 0, MSUG } }, 241 TTI20, USBDMAC_USHDMI, 0, MSUG } },
244 { 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */ 242 { 0xe69400a4, 0xe69400e4, 8, /* IMR9A / IMCR9A */
245 { CMT1_CMT13, CMT1_CMT12, CMT1_CMT11, CMT1_CMT10, 243 { CMT1_CMT13, CMT1_CMT12, CMT1_CMT11, CMT1_CMT10,
@@ -339,10 +337,14 @@ static struct intc_mask_reg intca_ack_registers[] __initdata = {
339 { IRQ24A, IRQ25A, IRQ26A, IRQ27A, IRQ28A, IRQ29A, IRQ30A, IRQ31A } }, 337 { IRQ24A, IRQ25A, IRQ26A, IRQ27A, IRQ28A, IRQ29A, IRQ30A, IRQ31A } },
340}; 338};
341 339
342static DECLARE_INTC_DESC_ACK(intca_desc, "sh7377-intca", 340static struct intc_desc intca_desc __initdata = {
343 intca_vectors, intca_groups, 341 .name = "sh7377-intca",
344 intca_mask_registers, intca_prio_registers, 342 .force_enable = ENABLED,
345 intca_sense_registers, intca_ack_registers); 343 .force_disable = DISABLED,
344 .hw = INTC_HW_DESC(intca_vectors, intca_groups,
345 intca_mask_registers, intca_prio_registers,
346 intca_sense_registers, intca_ack_registers),
347};
346 348
347void __init sh7377_init_irq(void) 349void __init sh7377_init_irq(void)
348{ 350{
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 337199ed3479..76a347b3ce07 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -2140,18 +2140,18 @@ void omap2_gpio_resume_after_retention(void)
2140 if (gen) { 2140 if (gen) {
2141 u32 old0, old1; 2141 u32 old0, old1;
2142 2142
2143 if (cpu_is_omap24xx() || cpu_is_omap44xx()) { 2143 if (cpu_is_omap24xx() || cpu_is_omap34xx()) {
2144 old0 = __raw_readl(bank->base + 2144 old0 = __raw_readl(bank->base +
2145 OMAP24XX_GPIO_LEVELDETECT0); 2145 OMAP24XX_GPIO_LEVELDETECT0);
2146 old1 = __raw_readl(bank->base + 2146 old1 = __raw_readl(bank->base +
2147 OMAP24XX_GPIO_LEVELDETECT1); 2147 OMAP24XX_GPIO_LEVELDETECT1);
2148 __raw_writel(old0 | gen, bank->base + 2148 __raw_writel(old0 | gen, bank->base +
2149 OMAP24XX_GPIO_LEVELDETECT0); 2149 OMAP24XX_GPIO_LEVELDETECT0);
2150 __raw_writel(old1 | gen, bank->base + 2150 __raw_writel(old1 | gen, bank->base +
2151 OMAP24XX_GPIO_LEVELDETECT1); 2151 OMAP24XX_GPIO_LEVELDETECT1);
2152 __raw_writel(old0, bank->base + 2152 __raw_writel(old0, bank->base +
2153 OMAP24XX_GPIO_LEVELDETECT0); 2153 OMAP24XX_GPIO_LEVELDETECT0);
2154 __raw_writel(old1, bank->base + 2154 __raw_writel(old1, bank->base +
2155 OMAP24XX_GPIO_LEVELDETECT1); 2155 OMAP24XX_GPIO_LEVELDETECT1);
2156 } 2156 }
2157 2157
diff --git a/arch/arm/plat-omap/include/plat/blizzard.h b/arch/arm/plat-omap/include/plat/blizzard.h
index 8d160f171372..56e7f2e7d12f 100644
--- a/arch/arm/plat-omap/include/plat/blizzard.h
+++ b/arch/arm/plat-omap/include/plat/blizzard.h
@@ -6,7 +6,7 @@ struct blizzard_platform_data {
6 void (*power_down)(struct device *dev); 6 void (*power_down)(struct device *dev);
7 unsigned long (*get_clock_rate)(struct device *dev); 7 unsigned long (*get_clock_rate)(struct device *dev);
8 8
9 unsigned te_connected : 1; 9 unsigned te_connected:1;
10}; 10};
11 11
12#endif 12#endif
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h
index ed8786c41df2..75141742300c 100644
--- a/arch/arm/plat-omap/include/plat/cpu.h
+++ b/arch/arm/plat-omap/include/plat/cpu.h
@@ -167,10 +167,14 @@ IS_OMAP_SUBCLASS(443x, 0x443)
167#if defined(MULTI_OMAP2) 167#if defined(MULTI_OMAP2)
168# if defined(CONFIG_ARCH_OMAP2) 168# if defined(CONFIG_ARCH_OMAP2)
169# undef cpu_is_omap24xx 169# undef cpu_is_omap24xx
170# undef cpu_is_omap242x
171# undef cpu_is_omap243x
172# define cpu_is_omap24xx() is_omap24xx() 170# define cpu_is_omap24xx() is_omap24xx()
171# endif
172# if defined (CONFIG_ARCH_OMAP2420)
173# undef cpu_is_omap242x
173# define cpu_is_omap242x() is_omap242x() 174# define cpu_is_omap242x() is_omap242x()
175# endif
176# if defined (CONFIG_ARCH_OMAP2430)
177# undef cpu_is_omap243x
174# define cpu_is_omap243x() is_omap243x() 178# define cpu_is_omap243x() is_omap243x()
175# endif 179# endif
176# if defined(CONFIG_ARCH_OMAP3) 180# if defined(CONFIG_ARCH_OMAP3)
diff --git a/arch/arm/plat-omap/include/plat/prcm.h b/arch/arm/plat-omap/include/plat/prcm.h
index d6a0e27d5a7f..9fbd91419cd1 100644
--- a/arch/arm/plat-omap/include/plat/prcm.h
+++ b/arch/arm/plat-omap/include/plat/prcm.h
@@ -24,7 +24,7 @@
24#define __ASM_ARM_ARCH_OMAP_PRCM_H 24#define __ASM_ARM_ARCH_OMAP_PRCM_H
25 25
26u32 omap_prcm_get_reset_sources(void); 26u32 omap_prcm_get_reset_sources(void);
27void omap_prcm_arch_reset(char mode); 27void omap_prcm_arch_reset(char mode, const char *cmd);
28int omap2_cm_wait_idlest(void __iomem *reg, u32 mask, u8 idlest, 28int omap2_cm_wait_idlest(void __iomem *reg, u32 mask, u8 idlest,
29 const char *name); 29 const char *name);
30 30
diff --git a/arch/arm/plat-omap/include/plat/system.h b/arch/arm/plat-omap/include/plat/system.h
index c58a4ef42a45..d0a119f735b4 100644
--- a/arch/arm/plat-omap/include/plat/system.h
+++ b/arch/arm/plat-omap/include/plat/system.h
@@ -22,7 +22,7 @@ static inline void arch_idle(void)
22 cpu_do_idle(); 22 cpu_do_idle();
23} 23}
24 24
25static inline void omap1_arch_reset(char mode) 25static inline void omap1_arch_reset(char mode, const char *cmd)
26{ 26{
27 /* 27 /*
28 * Workaround for 5912/1611b bug mentioned in sprz209d.pdf p. 28 28 * Workaround for 5912/1611b bug mentioned in sprz209d.pdf p. 28
@@ -43,9 +43,9 @@ static inline void omap1_arch_reset(char mode)
43static inline void arch_reset(char mode, const char *cmd) 43static inline void arch_reset(char mode, const char *cmd)
44{ 44{
45 if (!cpu_class_is_omap2()) 45 if (!cpu_class_is_omap2())
46 omap1_arch_reset(mode); 46 omap1_arch_reset(mode, cmd);
47 else 47 else
48 omap_prcm_arch_reset(mode); 48 omap_prcm_arch_reset(mode, cmd);
49} 49}
50 50
51#endif 51#endif
diff --git a/arch/arm/plat-omap/include/plat/usb.h b/arch/arm/plat-omap/include/plat/usb.h
index 288e29e1c06f..568578db93b6 100644
--- a/arch/arm/plat-omap/include/plat/usb.h
+++ b/arch/arm/plat-omap/include/plat/usb.h
@@ -53,7 +53,7 @@ enum musb_interface {MUSB_INTERFACE_ULPI, MUSB_INTERFACE_UTMI};
53 53
54extern void usb_musb_init(struct omap_musb_board_data *board_data); 54extern void usb_musb_init(struct omap_musb_board_data *board_data);
55 55
56extern void usb_ehci_init(struct ehci_hcd_omap_platform_data *pdata); 56extern void usb_ehci_init(const struct ehci_hcd_omap_platform_data *pdata);
57 57
58#endif 58#endif
59 59
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
index e47686e0a633..52dfcc81511e 100644
--- a/arch/arm/plat-omap/mcbsp.c
+++ b/arch/arm/plat-omap/mcbsp.c
@@ -133,8 +133,7 @@ static irqreturn_t omap_mcbsp_tx_irq_handler(int irq, void *dev_id)
133 dev_err(mcbsp_tx->dev, "TX Frame Sync Error! : 0x%x\n", 133 dev_err(mcbsp_tx->dev, "TX Frame Sync Error! : 0x%x\n",
134 irqst_spcr2); 134 irqst_spcr2);
135 /* Writing zero to XSYNC_ERR clears the IRQ */ 135 /* Writing zero to XSYNC_ERR clears the IRQ */
136 MCBSP_WRITE(mcbsp_tx, SPCR2, 136 MCBSP_WRITE(mcbsp_tx, SPCR2, MCBSP_READ_CACHE(mcbsp_tx, SPCR2));
137 MCBSP_READ_CACHE(mcbsp_tx, SPCR2) & ~(XSYNC_ERR));
138 } else { 137 } else {
139 complete(&mcbsp_tx->tx_irq_completion); 138 complete(&mcbsp_tx->tx_irq_completion);
140 } 139 }
@@ -154,8 +153,7 @@ static irqreturn_t omap_mcbsp_rx_irq_handler(int irq, void *dev_id)
154 dev_err(mcbsp_rx->dev, "RX Frame Sync Error! : 0x%x\n", 153 dev_err(mcbsp_rx->dev, "RX Frame Sync Error! : 0x%x\n",
155 irqst_spcr1); 154 irqst_spcr1);
156 /* Writing zero to RSYNC_ERR clears the IRQ */ 155 /* Writing zero to RSYNC_ERR clears the IRQ */
157 MCBSP_WRITE(mcbsp_rx, SPCR1, 156 MCBSP_WRITE(mcbsp_rx, SPCR1, MCBSP_READ_CACHE(mcbsp_rx, SPCR1));
158 MCBSP_READ_CACHE(mcbsp_rx, SPCR1) & ~(RSYNC_ERR));
159 } else { 157 } else {
160 complete(&mcbsp_rx->tx_irq_completion); 158 complete(&mcbsp_rx->tx_irq_completion);
161 } 159 }
@@ -934,8 +932,7 @@ int omap_mcbsp_pollwrite(unsigned int id, u16 buf)
934 /* if frame sync error - clear the error */ 932 /* if frame sync error - clear the error */
935 if (MCBSP_READ(mcbsp, SPCR2) & XSYNC_ERR) { 933 if (MCBSP_READ(mcbsp, SPCR2) & XSYNC_ERR) {
936 /* clear error */ 934 /* clear error */
937 MCBSP_WRITE(mcbsp, SPCR2, 935 MCBSP_WRITE(mcbsp, SPCR2, MCBSP_READ_CACHE(mcbsp, SPCR2));
938 MCBSP_READ_CACHE(mcbsp, SPCR2) & (~XSYNC_ERR));
939 /* resend */ 936 /* resend */
940 return -1; 937 return -1;
941 } else { 938 } else {
@@ -975,8 +972,7 @@ int omap_mcbsp_pollread(unsigned int id, u16 *buf)
975 /* if frame sync error - clear the error */ 972 /* if frame sync error - clear the error */
976 if (MCBSP_READ(mcbsp, SPCR1) & RSYNC_ERR) { 973 if (MCBSP_READ(mcbsp, SPCR1) & RSYNC_ERR) {
977 /* clear error */ 974 /* clear error */
978 MCBSP_WRITE(mcbsp, SPCR1, 975 MCBSP_WRITE(mcbsp, SPCR1, MCBSP_READ_CACHE(mcbsp, SPCR1));
979 MCBSP_READ_CACHE(mcbsp, SPCR1) & (~RSYNC_ERR));
980 /* resend */ 976 /* resend */
981 return -1; 977 return -1;
982 } else { 978 } else {
diff --git a/arch/arm/plat-samsung/include/plat/uncompress.h b/arch/arm/plat-samsung/include/plat/uncompress.h
index e87ce8ffbbcd..7d6ed7263d57 100644
--- a/arch/arm/plat-samsung/include/plat/uncompress.h
+++ b/arch/arm/plat-samsung/include/plat/uncompress.h
@@ -140,8 +140,6 @@ static void arch_decomp_error(const char *x)
140#define arch_error arch_decomp_error 140#define arch_error arch_decomp_error
141#endif 141#endif
142 142
143static void error(char *err);
144
145#ifdef CONFIG_S3C_BOOT_UART_FORCE_FIFO 143#ifdef CONFIG_S3C_BOOT_UART_FORCE_FIFO
146static inline void arch_enable_uart_fifo(void) 144static inline void arch_enable_uart_fifo(void)
147{ 145{
diff --git a/arch/arm/plat-samsung/pwm.c b/arch/arm/plat-samsung/pwm.c
index ef019f27b67d..f2d11390d01c 100644
--- a/arch/arm/plat-samsung/pwm.c
+++ b/arch/arm/plat-samsung/pwm.c
@@ -379,6 +379,39 @@ static int __devexit s3c_pwm_remove(struct platform_device *pdev)
379 return 0; 379 return 0;
380} 380}
381 381
382#ifdef CONFIG_PM
383static int s3c_pwm_suspend(struct platform_device *pdev, pm_message_t state)
384{
385 struct pwm_device *pwm = platform_get_drvdata(pdev);
386
387 /* No one preserve these values during suspend so reset them
388 * Otherwise driver leaves PWM unconfigured if same values
389 * passed to pwm_config
390 */
391 pwm->period_ns = 0;
392 pwm->duty_ns = 0;
393
394 return 0;
395}
396
397static int s3c_pwm_resume(struct platform_device *pdev)
398{
399 struct pwm_device *pwm = platform_get_drvdata(pdev);
400 unsigned long tcon;
401
402 /* Restore invertion */
403 tcon = __raw_readl(S3C2410_TCON);
404 tcon |= pwm_tcon_invert(pwm);
405 __raw_writel(tcon, S3C2410_TCON);
406
407 return 0;
408}
409
410#else
411#define s3c_pwm_suspend NULL
412#define s3c_pwm_resume NULL
413#endif
414
382static struct platform_driver s3c_pwm_driver = { 415static struct platform_driver s3c_pwm_driver = {
383 .driver = { 416 .driver = {
384 .name = "s3c24xx-pwm", 417 .name = "s3c24xx-pwm",
@@ -386,6 +419,8 @@ static struct platform_driver s3c_pwm_driver = {
386 }, 419 },
387 .probe = s3c_pwm_probe, 420 .probe = s3c_pwm_probe,
388 .remove = __devexit_p(s3c_pwm_remove), 421 .remove = __devexit_p(s3c_pwm_remove),
422 .suspend = s3c_pwm_suspend,
423 .resume = s3c_pwm_resume,
389}; 424};
390 425
391static int __init pwm_init(void) 426static int __init pwm_init(void)
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index 53c1e1d45c68..c078849df7f9 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -23,12 +23,15 @@ config RWSEM_XCHGADD_ALGORITHM
23 23
24config BLACKFIN 24config BLACKFIN
25 def_bool y 25 def_bool y
26 select HAVE_ARCH_KGDB
27 select HAVE_ARCH_TRACEHOOK
26 select HAVE_FUNCTION_GRAPH_TRACER 28 select HAVE_FUNCTION_GRAPH_TRACER
27 select HAVE_FUNCTION_TRACER 29 select HAVE_FUNCTION_TRACER
30 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
28 select HAVE_IDE 31 select HAVE_IDE
29 select HAVE_KERNEL_GZIP 32 select HAVE_KERNEL_GZIP if RAMKERNEL
30 select HAVE_KERNEL_BZIP2 33 select HAVE_KERNEL_BZIP2 if RAMKERNEL
31 select HAVE_KERNEL_LZMA 34 select HAVE_KERNEL_LZMA if RAMKERNEL
32 select HAVE_OPROFILE 35 select HAVE_OPROFILE
33 select ARCH_WANT_OPTIONAL_GPIOLIB 36 select ARCH_WANT_OPTIONAL_GPIOLIB
34 37
@@ -45,9 +48,6 @@ config ZONE_DMA
45config GENERIC_FIND_NEXT_BIT 48config GENERIC_FIND_NEXT_BIT
46 def_bool y 49 def_bool y
47 50
48config GENERIC_HWEIGHT
49 def_bool y
50
51config GENERIC_HARDIRQS 51config GENERIC_HARDIRQS
52 def_bool y 52 def_bool y
53 53
@@ -239,7 +239,7 @@ endchoice
239 239
240config SMP 240config SMP
241 depends on BF561 241 depends on BF561
242 select GENERIC_CLOCKEVENTS 242 select TICKSOURCE_CORETMR
243 bool "Symmetric multi-processing support" 243 bool "Symmetric multi-processing support"
244 ---help--- 244 ---help---
245 This enables support for systems with more than one CPU, 245 This enables support for systems with more than one CPU,
@@ -253,11 +253,20 @@ config NR_CPUS
253 depends on SMP 253 depends on SMP
254 default 2 if BF561 254 default 2 if BF561
255 255
256config HOTPLUG_CPU
257 bool "Support for hot-pluggable CPUs"
258 depends on SMP && HOTPLUG
259 default y
260
256config IRQ_PER_CPU 261config IRQ_PER_CPU
257 bool 262 bool
258 depends on SMP 263 depends on SMP
259 default y 264 default y
260 265
266config HAVE_LEGACY_PER_CPU_AREA
267 def_bool y
268 depends on SMP
269
261config BF_REV_MIN 270config BF_REV_MIN
262 int 271 int
263 default 0 if (BF51x || BF52x || (BF54x && !BF54xM)) 272 default 0 if (BF51x || BF52x || (BF54x && !BF54xM))
@@ -349,7 +358,7 @@ config MEM_MT48LC8M32B2B5_7
349 358
350config MEM_MT48LC32M16A2TG_75 359config MEM_MT48LC32M16A2TG_75
351 bool 360 bool
352 depends on (BFIN527_EZKIT || BFIN532_IP0X || BLACKSTAMP) 361 depends on (BFIN527_EZKIT || BFIN527_EZKIT_V2 || BFIN532_IP0X || BLACKSTAMP)
353 default y 362 default y
354 363
355config MEM_MT48LC32M8A2_75 364config MEM_MT48LC32M8A2_75
@@ -401,10 +410,18 @@ config BOOT_LOAD
401config ROM_BASE 410config ROM_BASE
402 hex "Kernel ROM Base" 411 hex "Kernel ROM Base"
403 depends on ROMKERNEL 412 depends on ROMKERNEL
404 default "0x20040000" 413 default "0x20040040"
405 range 0x20000000 0x20400000 if !(BF54x || BF561) 414 range 0x20000000 0x20400000 if !(BF54x || BF561)
406 range 0x20000000 0x30000000 if (BF54x || BF561) 415 range 0x20000000 0x30000000 if (BF54x || BF561)
407 help 416 help
417 Make sure your ROM base does not include any file-header
418 information that is prepended to the kernel.
419
420 For example, the bootable U-Boot format (created with
421 mkimage) has a 64 byte header (0x40). So while the image
422 you write to flash might start at say 0x20080000, you have
423 to add 0x40 to get the kernel's ROM base as it will come
424 after the header.
408 425
409comment "Clock/PLL Setup" 426comment "Clock/PLL Setup"
410 427
@@ -448,7 +465,7 @@ config VCO_MULT
448 range 1 64 465 range 1 64
449 default "22" if BFIN533_EZKIT 466 default "22" if BFIN533_EZKIT
450 default "45" if BFIN533_STAMP 467 default "45" if BFIN533_STAMP
451 default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM || BFIN538_EZKIT) 468 default "20" if (BFIN537_STAMP || BFIN527_EZKIT || BFIN527_EZKIT_V2 || BFIN548_EZKIT || BFIN548_BLUETECHNIX_CM || BFIN538_EZKIT)
452 default "22" if BFIN533_BLUETECHNIX_CM 469 default "22" if BFIN533_BLUETECHNIX_CM
453 default "20" if (BFIN537_BLUETECHNIX_CM_E || BFIN537_BLUETECHNIX_CM_U || BFIN527_BLUETECHNIX_CM || BFIN561_BLUETECHNIX_CM) 470 default "20" if (BFIN537_BLUETECHNIX_CM_E || BFIN537_BLUETECHNIX_CM_U || BFIN527_BLUETECHNIX_CM || BFIN561_BLUETECHNIX_CM)
454 default "20" if BFIN561_EZKIT 471 default "20" if BFIN561_EZKIT
@@ -609,23 +626,23 @@ config GENERIC_CLOCKEVENTS
609 bool "Generic clock events" 626 bool "Generic clock events"
610 default y 627 default y
611 628
612choice 629menu "Clock event device"
613 prompt "Kernel Tick Source"
614 depends on GENERIC_CLOCKEVENTS 630 depends on GENERIC_CLOCKEVENTS
615 default TICKSOURCE_CORETMR
616
617config TICKSOURCE_GPTMR0 631config TICKSOURCE_GPTMR0
618 bool "Gptimer0 (SCLK domain)" 632 bool "GPTimer0"
633 depends on !SMP
619 select BFIN_GPTIMERS 634 select BFIN_GPTIMERS
620 635
621config TICKSOURCE_CORETMR 636config TICKSOURCE_CORETMR
622 bool "Core timer (CCLK domain)" 637 bool "Core timer"
623 638 default y
624endchoice 639endmenu
625 640
626config CYCLES_CLOCKSOURCE 641menu "Clock souce"
627 bool "Use 'CYCLES' as a clocksource"
628 depends on GENERIC_CLOCKEVENTS 642 depends on GENERIC_CLOCKEVENTS
643config CYCLES_CLOCKSOURCE
644 bool "CYCLES"
645 default y
629 depends on !BFIN_SCRATCH_REG_CYCLES 646 depends on !BFIN_SCRATCH_REG_CYCLES
630 depends on !SMP 647 depends on !SMP
631 help 648 help
@@ -636,10 +653,10 @@ config CYCLES_CLOCKSOURCE
636 writing the registers will most likely crash the kernel. 653 writing the registers will most likely crash the kernel.
637 654
638config GPTMR0_CLOCKSOURCE 655config GPTMR0_CLOCKSOURCE
639 bool "Use GPTimer0 as a clocksource" 656 bool "GPTimer0"
640 select BFIN_GPTIMERS 657 select BFIN_GPTIMERS
641 depends on GENERIC_CLOCKEVENTS
642 depends on !TICKSOURCE_GPTMR0 658 depends on !TICKSOURCE_GPTMR0
659endmenu
643 660
644config ARCH_USES_GETTIMEOFFSET 661config ARCH_USES_GETTIMEOFFSET
645 depends on !GENERIC_CLOCKEVENTS 662 depends on !GENERIC_CLOCKEVENTS
@@ -1116,24 +1133,6 @@ config PCI
1116 1133
1117source "drivers/pci/Kconfig" 1134source "drivers/pci/Kconfig"
1118 1135
1119config HOTPLUG
1120 bool "Support for hot-pluggable device"
1121 help
1122 Say Y here if you want to plug devices into your computer while
1123 the system is running, and be able to use them quickly. In many
1124 cases, the devices can likewise be unplugged at any time too.
1125
1126 One well known example of this is PCMCIA- or PC-cards, credit-card
1127 size devices such as network cards, modems or hard drives which are
1128 plugged into slots found on all modern laptop computers. Another
1129 example, used on modern desktops as well as laptops, is USB.
1130
1131 Enable HOTPLUG and build a modular kernel. Get agent software
1132 (from <http://linux-hotplug.sourceforge.net/>) and install it.
1133 Then your kernel will automatically call out to a user mode "policy
1134 agent" (/sbin/hotplug) to load modules and set up software needed
1135 to use devices as you hotplug them.
1136
1137source "drivers/pcmcia/Kconfig" 1136source "drivers/pcmcia/Kconfig"
1138 1137
1139source "drivers/pci/hotplug/Kconfig" 1138source "drivers/pci/hotplug/Kconfig"
@@ -1147,7 +1146,6 @@ source "fs/Kconfig.binfmt"
1147endmenu 1146endmenu
1148 1147
1149menu "Power management options" 1148menu "Power management options"
1150 depends on !SMP
1151 1149
1152source "kernel/power/Kconfig" 1150source "kernel/power/Kconfig"
1153 1151
@@ -1240,7 +1238,6 @@ config PM_BFIN_WAKE_GP
1240endmenu 1238endmenu
1241 1239
1242menu "CPU Frequency scaling" 1240menu "CPU Frequency scaling"
1243 depends on !SMP
1244 1241
1245source "drivers/cpufreq/Kconfig" 1242source "drivers/cpufreq/Kconfig"
1246 1243
diff --git a/arch/blackfin/Kconfig.debug b/arch/blackfin/Kconfig.debug
index 87f195ee2e06..aec89a5280b2 100644
--- a/arch/blackfin/Kconfig.debug
+++ b/arch/blackfin/Kconfig.debug
@@ -18,9 +18,6 @@ config DEBUG_STACK_USAGE
18 18
19 This option will slow down process creation somewhat. 19 This option will slow down process creation somewhat.
20 20
21config HAVE_ARCH_KGDB
22 def_bool y
23
24config DEBUG_VERBOSE 21config DEBUG_VERBOSE
25 bool "Verbose fault messages" 22 bool "Verbose fault messages"
26 default y 23 default y
@@ -238,6 +235,15 @@ config EARLY_PRINTK
238 all of this lives in the init section and is thrown away after the 235 all of this lives in the init section and is thrown away after the
239 kernel boots completely. 236 kernel boots completely.
240 237
238config NMI_WATCHDOG
239 bool "Enable NMI watchdog to help debugging lockup on SMP"
240 default n
241 depends on (SMP && !BFIN_SCRATCH_REG_RETN)
242 help
243 If any CPU in the system does not execute the period local timer
244 interrupt for more than 5 seconds, then the NMI handler dumps debug
245 information. This information can be used to debug the lockup.
246
241config CPLB_INFO 247config CPLB_INFO
242 bool "Display the CPLB information" 248 bool "Display the CPLB information"
243 help 249 help
diff --git a/arch/blackfin/Makefile b/arch/blackfin/Makefile
index d4c7177e7656..5a97a31d4bbd 100644
--- a/arch/blackfin/Makefile
+++ b/arch/blackfin/Makefile
@@ -14,6 +14,9 @@ OBJCOPYFLAGS := -O binary -R .note -R .comment -S
14GZFLAGS := -9 14GZFLAGS := -9
15 15
16KBUILD_CFLAGS += $(call cc-option,-mno-fdpic) 16KBUILD_CFLAGS += $(call cc-option,-mno-fdpic)
17ifeq ($(CONFIG_ROMKERNEL),y)
18KBUILD_CFLAGS += -mlong-calls
19endif
17KBUILD_AFLAGS += $(call cc-option,-mno-fdpic) 20KBUILD_AFLAGS += $(call cc-option,-mno-fdpic)
18CFLAGS_MODULE += -mlong-calls 21CFLAGS_MODULE += -mlong-calls
19LDFLAGS_MODULE += -m elf32bfin 22LDFLAGS_MODULE += -m elf32bfin
@@ -130,7 +133,6 @@ KBUILD_CFLAGS += -Iarch/$(ARCH)/mach-$(MACHINE)/include
130KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs)) 133KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs))
131 134
132CLEAN_FILES += \ 135CLEAN_FILES += \
133 arch/$(ARCH)/include/asm/asm-offsets.h \
134 arch/$(ARCH)/kernel/asm-offsets.s \ 136 arch/$(ARCH)/kernel/asm-offsets.s \
135 137
136archclean: 138archclean:
@@ -138,7 +140,7 @@ archclean:
138 140
139INSTALL_PATH ?= /tftpboot 141INSTALL_PATH ?= /tftpboot
140boot := arch/$(ARCH)/boot 142boot := arch/$(ARCH)/boot
141BOOT_TARGETS = vmImage vmImage.bin vmImage.bz2 vmImage.gz vmImage.lzma 143BOOT_TARGETS = vmImage vmImage.bin vmImage.bz2 vmImage.gz vmImage.lzma vmImage.xip
142PHONY += $(BOOT_TARGETS) install 144PHONY += $(BOOT_TARGETS) install
143KBUILD_IMAGE := $(boot)/vmImage 145KBUILD_IMAGE := $(boot)/vmImage
144 146
@@ -156,6 +158,7 @@ define archhelp
156 echo ' vmImage.bz2 - Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage.bz2)' 158 echo ' vmImage.bz2 - Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage.bz2)'
157 echo '* vmImage.gz - Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage.gz)' 159 echo '* vmImage.gz - Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage.gz)'
158 echo ' vmImage.lzma - Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage.lzma)' 160 echo ' vmImage.lzma - Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage.lzma)'
161 echo ' vmImage.xip - XIP Kernel-only image for U-Boot (arch/$(ARCH)/boot/vmImage.xip)'
159 echo ' install - Install kernel using' 162 echo ' install - Install kernel using'
160 echo ' (your) ~/bin/$(INSTALLKERNEL) or' 163 echo ' (your) ~/bin/$(INSTALLKERNEL) or'
161 echo ' (distribution) PATH: $(INSTALLKERNEL) or' 164 echo ' (distribution) PATH: $(INSTALLKERNEL) or'
diff --git a/arch/blackfin/boot/Makefile b/arch/blackfin/boot/Makefile
index e9c48c6f8c1f..d1b3d6051fdf 100644
--- a/arch/blackfin/boot/Makefile
+++ b/arch/blackfin/boot/Makefile
@@ -8,14 +8,18 @@
8 8
9MKIMAGE := $(srctree)/scripts/mkuboot.sh 9MKIMAGE := $(srctree)/scripts/mkuboot.sh
10 10
11targets := vmImage vmImage.bin vmImage.bz2 vmImage.gz vmImage.lzma 11targets := vmImage vmImage.bin vmImage.bz2 vmImage.gz vmImage.lzma vmImage.xip
12extra-y += vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma 12extra-y += vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma vmlinux.bin.xip
13
14UIMAGE_OPTS-y :=
15UIMAGE_OPTS-$(CONFIG_RAMKERNEL) += -a $(CONFIG_BOOT_LOAD)
16UIMAGE_OPTS-$(CONFIG_ROMKERNEL) += -a $(CONFIG_ROM_BASE) -x
13 17
14quiet_cmd_uimage = UIMAGE $@ 18quiet_cmd_uimage = UIMAGE $@
15 cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(ARCH) -O linux -T kernel \ 19 cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A $(ARCH) -O linux -T kernel \
16 -C $(2) -n '$(MACHINE)-$(KERNELRELEASE)' -a $(CONFIG_BOOT_LOAD) \ 20 -C $(2) -n '$(MACHINE)-$(KERNELRELEASE)' \
17 -e $(shell $(NM) vmlinux | awk '$$NF == "__start" {print $$1}') \ 21 -e $(shell $(NM) vmlinux | awk '$$NF == "__start" {print $$1}') \
18 -d $< $@ 22 $(UIMAGE_OPTS-y) -d $< $@
19 23
20$(obj)/vmlinux.bin: vmlinux FORCE 24$(obj)/vmlinux.bin: vmlinux FORCE
21 $(call if_changed,objcopy) 25 $(call if_changed,objcopy)
@@ -29,6 +33,12 @@ $(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE
29$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE 33$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
30 $(call if_changed,lzma) 34 $(call if_changed,lzma)
31 35
36# The mkimage tool wants 64bytes prepended to the image
37quiet_cmd_mk_bin_xip = BIN $@
38 cmd_mk_bin_xip = ( printf '%64s' | tr ' ' '\377' ; cat $< ) > $@
39$(obj)/vmlinux.bin.xip: $(obj)/vmlinux.bin FORCE
40 $(call if_changed,mk_bin_xip)
41
32$(obj)/vmImage.bin: $(obj)/vmlinux.bin 42$(obj)/vmImage.bin: $(obj)/vmlinux.bin
33 $(call if_changed,uimage,none) 43 $(call if_changed,uimage,none)
34 44
@@ -41,10 +51,15 @@ $(obj)/vmImage.gz: $(obj)/vmlinux.bin.gz
41$(obj)/vmImage.lzma: $(obj)/vmlinux.bin.lzma 51$(obj)/vmImage.lzma: $(obj)/vmlinux.bin.lzma
42 $(call if_changed,uimage,lzma) 52 $(call if_changed,uimage,lzma)
43 53
54$(obj)/vmImage.xip: $(obj)/vmlinux.bin.xip
55 $(call if_changed,uimage,none)
56
44suffix-y := bin 57suffix-y := bin
45suffix-$(CONFIG_KERNEL_GZIP) := gz 58suffix-$(CONFIG_KERNEL_GZIP) := gz
46suffix-$(CONFIG_KERNEL_BZIP2) := bz2 59suffix-$(CONFIG_KERNEL_BZIP2) := bz2
47suffix-$(CONFIG_KERNEL_LZMA) := lzma 60suffix-$(CONFIG_KERNEL_LZMA) := lzma
61suffix-$(CONFIG_ROMKERNEL) := xip
62
48$(obj)/vmImage: $(obj)/vmImage.$(suffix-y) 63$(obj)/vmImage: $(obj)/vmImage.$(suffix-y)
49 @ln -sf $(notdir $<) $@ 64 @ln -sf $(notdir $<) $@
50 65
diff --git a/arch/blackfin/configs/BF518F-EZBRD_defconfig b/arch/blackfin/configs/BF518F-EZBRD_defconfig
index e31559419817..cf7c9bc94f13 100644
--- a/arch/blackfin/configs/BF518F-EZBRD_defconfig
+++ b/arch/blackfin/configs/BF518F-EZBRD_defconfig
@@ -1,22 +1,27 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28.10 3# Linux kernel version: 2.6.32.2
4# Thu May 21 05:50:01 2009
5# 4#
6# CONFIG_MMU is not set 5# CONFIG_MMU is not set
7# CONFIG_FPU is not set 6# CONFIG_FPU is not set
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 7CONFIG_RWSEM_GENERIC_SPINLOCK=y
9# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
10CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
10CONFIG_GENERIC_CSUM=y
11CONFIG_GENERIC_BUG=y
11CONFIG_ZONE_DMA=y 12CONFIG_ZONE_DMA=y
12CONFIG_GENERIC_FIND_NEXT_BIT=y 13CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
16CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
17CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
18CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_TRACE_IRQFLAGS_SUPPORT=y
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
24CONFIG_CONSTRUCTORS=y
20 25
21# 26#
22# General setup 27# General setup
@@ -26,22 +31,41 @@ CONFIG_BROKEN_ON_SMP=y
26CONFIG_INIT_ENV_ARG_LIMIT=32 31CONFIG_INIT_ENV_ARG_LIMIT=32
27CONFIG_LOCALVERSION="" 32CONFIG_LOCALVERSION=""
28CONFIG_LOCALVERSION_AUTO=y 33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_HAVE_KERNEL_GZIP=y
35CONFIG_HAVE_KERNEL_BZIP2=y
36CONFIG_HAVE_KERNEL_LZMA=y
37CONFIG_KERNEL_GZIP=y
38# CONFIG_KERNEL_BZIP2 is not set
39# CONFIG_KERNEL_LZMA is not set
29CONFIG_SYSVIPC=y 40CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 41CONFIG_SYSVIPC_SYSCTL=y
31# CONFIG_POSIX_MQUEUE is not set 42# CONFIG_POSIX_MQUEUE is not set
32# CONFIG_BSD_PROCESS_ACCT is not set 43# CONFIG_BSD_PROCESS_ACCT is not set
33# CONFIG_TASKSTATS is not set 44# CONFIG_TASKSTATS is not set
34# CONFIG_AUDIT is not set 45# CONFIG_AUDIT is not set
46
47#
48# RCU Subsystem
49#
50CONFIG_TREE_RCU=y
51# CONFIG_TREE_PREEMPT_RCU is not set
52# CONFIG_RCU_TRACE is not set
53CONFIG_RCU_FANOUT=32
54# CONFIG_RCU_FANOUT_EXACT is not set
55# CONFIG_TREE_RCU_TRACE is not set
35CONFIG_IKCONFIG=y 56CONFIG_IKCONFIG=y
36CONFIG_IKCONFIG_PROC=y 57CONFIG_IKCONFIG_PROC=y
37CONFIG_LOG_BUF_SHIFT=14 58CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 59# CONFIG_GROUP_SCHED is not set
60# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 61# CONFIG_SYSFS_DEPRECATED_V2 is not set
41# CONFIG_RELAY is not set 62# CONFIG_RELAY is not set
42# CONFIG_NAMESPACES is not set 63# CONFIG_NAMESPACES is not set
43CONFIG_BLK_DEV_INITRD=y 64CONFIG_BLK_DEV_INITRD=y
44CONFIG_INITRAMFS_SOURCE="" 65CONFIG_INITRAMFS_SOURCE=""
66CONFIG_RD_GZIP=y
67# CONFIG_RD_BZIP2 is not set
68# CONFIG_RD_LZMA is not set
45# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 69# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
46CONFIG_SYSCTL=y 70CONFIG_SYSCTL=y
47CONFIG_ANON_INODES=y 71CONFIG_ANON_INODES=y
@@ -62,6 +86,10 @@ CONFIG_EPOLL=y
62# CONFIG_TIMERFD is not set 86# CONFIG_TIMERFD is not set
63# CONFIG_EVENTFD is not set 87# CONFIG_EVENTFD is not set
64# CONFIG_AIO is not set 88# CONFIG_AIO is not set
89
90#
91# Kernel Performance Events And Counters
92#
65CONFIG_VM_EVENT_COUNTERS=y 93CONFIG_VM_EVENT_COUNTERS=y
66CONFIG_COMPAT_BRK=y 94CONFIG_COMPAT_BRK=y
67CONFIG_SLAB=y 95CONFIG_SLAB=y
@@ -69,11 +97,15 @@ CONFIG_SLAB=y
69# CONFIG_SLOB is not set 97# CONFIG_SLOB is not set
70CONFIG_MMAP_ALLOW_UNINITIALIZED=y 98CONFIG_MMAP_ALLOW_UNINITIALIZED=y
71# CONFIG_PROFILING is not set 99# CONFIG_PROFILING is not set
72# CONFIG_MARKERS is not set
73CONFIG_HAVE_OPROFILE=y 100CONFIG_HAVE_OPROFILE=y
101
102#
103# GCOV-based kernel profiling
104#
105# CONFIG_GCOV_KERNEL is not set
106# CONFIG_SLOW_WORK is not set
74# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 107# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
75CONFIG_SLABINFO=y 108CONFIG_SLABINFO=y
76CONFIG_TINY_SHMEM=y
77CONFIG_BASE_SMALL=0 109CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y 110CONFIG_MODULES=y
79# CONFIG_MODULE_FORCE_LOAD is not set 111# CONFIG_MODULE_FORCE_LOAD is not set
@@ -81,11 +113,8 @@ CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODULE_FORCE_UNLOAD is not set 113# CONFIG_MODULE_FORCE_UNLOAD is not set
82# CONFIG_MODVERSIONS is not set 114# CONFIG_MODVERSIONS is not set
83# CONFIG_MODULE_SRCVERSION_ALL is not set 115# CONFIG_MODULE_SRCVERSION_ALL is not set
84CONFIG_KMOD=y
85CONFIG_BLOCK=y 116CONFIG_BLOCK=y
86# CONFIG_LBD is not set 117# CONFIG_LBDAF is not set
87# CONFIG_BLK_DEV_IO_TRACE is not set
88# CONFIG_LSF is not set
89# CONFIG_BLK_DEV_BSG is not set 118# CONFIG_BLK_DEV_BSG is not set
90# CONFIG_BLK_DEV_INTEGRITY is not set 119# CONFIG_BLK_DEV_INTEGRITY is not set
91 120
@@ -101,7 +130,6 @@ CONFIG_IOSCHED_NOOP=y
101# CONFIG_DEFAULT_CFQ is not set 130# CONFIG_DEFAULT_CFQ is not set
102CONFIG_DEFAULT_NOOP=y 131CONFIG_DEFAULT_NOOP=y
103CONFIG_DEFAULT_IOSCHED="noop" 132CONFIG_DEFAULT_IOSCHED="noop"
104CONFIG_CLASSIC_RCU=y
105# CONFIG_PREEMPT_NONE is not set 133# CONFIG_PREEMPT_NONE is not set
106CONFIG_PREEMPT_VOLUNTARY=y 134CONFIG_PREEMPT_VOLUNTARY=y
107# CONFIG_PREEMPT is not set 135# CONFIG_PREEMPT is not set
@@ -132,15 +160,15 @@ CONFIG_BF518=y
132# CONFIG_BF537 is not set 160# CONFIG_BF537 is not set
133# CONFIG_BF538 is not set 161# CONFIG_BF538 is not set
134# CONFIG_BF539 is not set 162# CONFIG_BF539 is not set
135# CONFIG_BF542 is not set 163# CONFIG_BF542_std is not set
136# CONFIG_BF542M is not set 164# CONFIG_BF542M is not set
137# CONFIG_BF544 is not set 165# CONFIG_BF544_std is not set
138# CONFIG_BF544M is not set 166# CONFIG_BF544M is not set
139# CONFIG_BF547 is not set 167# CONFIG_BF547_std is not set
140# CONFIG_BF547M is not set 168# CONFIG_BF547M is not set
141# CONFIG_BF548 is not set 169# CONFIG_BF548_std is not set
142# CONFIG_BF548M is not set 170# CONFIG_BF548M is not set
143# CONFIG_BF549 is not set 171# CONFIG_BF549_std is not set
144# CONFIG_BF549M is not set 172# CONFIG_BF549M is not set
145# CONFIG_BF561 is not set 173# CONFIG_BF561 is not set
146CONFIG_BF_REV_MIN=0 174CONFIG_BF_REV_MIN=0
@@ -154,8 +182,8 @@ CONFIG_BF_REV_0_0=y
154# CONFIG_BF_REV_0_6 is not set 182# CONFIG_BF_REV_0_6 is not set
155# CONFIG_BF_REV_ANY is not set 183# CONFIG_BF_REV_ANY is not set
156# CONFIG_BF_REV_NONE is not set 184# CONFIG_BF_REV_NONE is not set
157CONFIG_BF51x=y
158CONFIG_MEM_MT48LC32M8A2_75=y 185CONFIG_MEM_MT48LC32M8A2_75=y
186CONFIG_BF51x=y
159CONFIG_BFIN518F_EZBRD=y 187CONFIG_BFIN518F_EZBRD=y
160 188
161# 189#
@@ -313,7 +341,6 @@ CONFIG_FLATMEM=y
313CONFIG_FLAT_NODE_MEM_MAP=y 341CONFIG_FLAT_NODE_MEM_MAP=y
314CONFIG_PAGEFLAGS_EXTENDED=y 342CONFIG_PAGEFLAGS_EXTENDED=y
315CONFIG_SPLIT_PTLOCK_CPUS=4 343CONFIG_SPLIT_PTLOCK_CPUS=4
316# CONFIG_RESOURCES_64BIT is not set
317# CONFIG_PHYS_ADDR_T_64BIT is not set 344# CONFIG_PHYS_ADDR_T_64BIT is not set
318CONFIG_ZONE_DMA_FLAG=1 345CONFIG_ZONE_DMA_FLAG=1
319CONFIG_VIRT_TO_BUS=y 346CONFIG_VIRT_TO_BUS=y
@@ -322,16 +349,18 @@ CONFIG_BFIN_GPTIMERS=m
322# CONFIG_DMA_UNCACHED_4M is not set 349# CONFIG_DMA_UNCACHED_4M is not set
323# CONFIG_DMA_UNCACHED_2M is not set 350# CONFIG_DMA_UNCACHED_2M is not set
324CONFIG_DMA_UNCACHED_1M=y 351CONFIG_DMA_UNCACHED_1M=y
352# CONFIG_DMA_UNCACHED_512K is not set
353# CONFIG_DMA_UNCACHED_256K is not set
354# CONFIG_DMA_UNCACHED_128K is not set
325# CONFIG_DMA_UNCACHED_NONE is not set 355# CONFIG_DMA_UNCACHED_NONE is not set
326 356
327# 357#
328# Cache Support 358# Cache Support
329# 359#
330CONFIG_BFIN_ICACHE=y 360CONFIG_BFIN_ICACHE=y
331# CONFIG_BFIN_ICACHE_LOCK is not set 361CONFIG_BFIN_EXTMEM_ICACHEABLE=y
332CONFIG_BFIN_DCACHE=y 362CONFIG_BFIN_DCACHE=y
333# CONFIG_BFIN_DCACHE_BANKA is not set 363# CONFIG_BFIN_DCACHE_BANKA is not set
334CONFIG_BFIN_EXTMEM_ICACHEABLE=y
335CONFIG_BFIN_EXTMEM_DCACHEABLE=y 364CONFIG_BFIN_EXTMEM_DCACHEABLE=y
336CONFIG_BFIN_EXTMEM_WRITEBACK=y 365CONFIG_BFIN_EXTMEM_WRITEBACK=y
337# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 366# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
@@ -342,7 +371,7 @@ CONFIG_BFIN_EXTMEM_WRITEBACK=y
342# CONFIG_MPU is not set 371# CONFIG_MPU is not set
343 372
344# 373#
345# Asynchonous Memory Configuration 374# Asynchronous Memory Configuration
346# 375#
347 376
348# 377#
@@ -398,11 +427,6 @@ CONFIG_NET=y
398CONFIG_PACKET=y 427CONFIG_PACKET=y
399# CONFIG_PACKET_MMAP is not set 428# CONFIG_PACKET_MMAP is not set
400CONFIG_UNIX=y 429CONFIG_UNIX=y
401CONFIG_XFRM=y
402# CONFIG_XFRM_USER is not set
403# CONFIG_XFRM_SUB_POLICY is not set
404# CONFIG_XFRM_MIGRATE is not set
405# CONFIG_XFRM_STATISTICS is not set
406# CONFIG_NET_KEY is not set 430# CONFIG_NET_KEY is not set
407CONFIG_INET=y 431CONFIG_INET=y
408# CONFIG_IP_MULTICAST is not set 432# CONFIG_IP_MULTICAST is not set
@@ -426,7 +450,6 @@ CONFIG_IP_PNP=y
426# CONFIG_INET_XFRM_MODE_BEET is not set 450# CONFIG_INET_XFRM_MODE_BEET is not set
427# CONFIG_INET_LRO is not set 451# CONFIG_INET_LRO is not set
428# CONFIG_INET_DIAG is not set 452# CONFIG_INET_DIAG is not set
429CONFIG_INET_TCP_DIAG=y
430# CONFIG_TCP_CONG_ADVANCED is not set 453# CONFIG_TCP_CONG_ADVANCED is not set
431CONFIG_TCP_CONG_CUBIC=y 454CONFIG_TCP_CONG_CUBIC=y
432CONFIG_DEFAULT_TCP_CONG="cubic" 455CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -437,6 +460,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
437# CONFIG_NETFILTER is not set 460# CONFIG_NETFILTER is not set
438# CONFIG_IP_DCCP is not set 461# CONFIG_IP_DCCP is not set
439# CONFIG_IP_SCTP is not set 462# CONFIG_IP_SCTP is not set
463# CONFIG_RDS is not set
440# CONFIG_TIPC is not set 464# CONFIG_TIPC is not set
441# CONFIG_ATM is not set 465# CONFIG_ATM is not set
442# CONFIG_BRIDGE is not set 466# CONFIG_BRIDGE is not set
@@ -450,7 +474,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
450# CONFIG_LAPB is not set 474# CONFIG_LAPB is not set
451# CONFIG_ECONET is not set 475# CONFIG_ECONET is not set
452# CONFIG_WAN_ROUTER is not set 476# CONFIG_WAN_ROUTER is not set
477# CONFIG_PHONET is not set
478# CONFIG_IEEE802154 is not set
453# CONFIG_NET_SCHED is not set 479# CONFIG_NET_SCHED is not set
480# CONFIG_DCB is not set
454 481
455# 482#
456# Network testing 483# Network testing
@@ -461,13 +488,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
461# CONFIG_IRDA is not set 488# CONFIG_IRDA is not set
462# CONFIG_BT is not set 489# CONFIG_BT is not set
463# CONFIG_AF_RXRPC is not set 490# CONFIG_AF_RXRPC is not set
464# CONFIG_PHONET is not set 491# CONFIG_WIRELESS is not set
465CONFIG_WIRELESS=y 492# CONFIG_WIMAX is not set
466# CONFIG_CFG80211 is not set
467CONFIG_WIRELESS_OLD_REGULATORY=y
468# CONFIG_WIRELESS_EXT is not set
469# CONFIG_MAC80211 is not set
470# CONFIG_IEEE80211 is not set
471# CONFIG_RFKILL is not set 493# CONFIG_RFKILL is not set
472# CONFIG_NET_9P is not set 494# CONFIG_NET_9P is not set
473 495
@@ -488,6 +510,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
488# CONFIG_CONNECTOR is not set 510# CONFIG_CONNECTOR is not set
489CONFIG_MTD=y 511CONFIG_MTD=y
490# CONFIG_MTD_DEBUG is not set 512# CONFIG_MTD_DEBUG is not set
513# CONFIG_MTD_TESTS is not set
491# CONFIG_MTD_CONCAT is not set 514# CONFIG_MTD_CONCAT is not set
492CONFIG_MTD_PARTITIONS=y 515CONFIG_MTD_PARTITIONS=y
493# CONFIG_MTD_REDBOOT_PARTS is not set 516# CONFIG_MTD_REDBOOT_PARTS is not set
@@ -545,6 +568,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
545# 568#
546# CONFIG_MTD_DATAFLASH is not set 569# CONFIG_MTD_DATAFLASH is not set
547# CONFIG_MTD_M25P80 is not set 570# CONFIG_MTD_M25P80 is not set
571# CONFIG_MTD_SST25L is not set
548# CONFIG_MTD_SLRAM is not set 572# CONFIG_MTD_SLRAM is not set
549# CONFIG_MTD_PHRAM is not set 573# CONFIG_MTD_PHRAM is not set
550# CONFIG_MTD_MTDRAM is not set 574# CONFIG_MTD_MTDRAM is not set
@@ -560,6 +584,11 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
560# CONFIG_MTD_ONENAND is not set 584# CONFIG_MTD_ONENAND is not set
561 585
562# 586#
587# LPDDR flash memory drivers
588#
589# CONFIG_MTD_LPDDR is not set
590
591#
563# UBI - Unsorted block images 592# UBI - Unsorted block images
564# 593#
565# CONFIG_MTD_UBI is not set 594# CONFIG_MTD_UBI is not set
@@ -576,10 +605,20 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
576# CONFIG_ATA_OVER_ETH is not set 605# CONFIG_ATA_OVER_ETH is not set
577# CONFIG_BLK_DEV_HD is not set 606# CONFIG_BLK_DEV_HD is not set
578CONFIG_MISC_DEVICES=y 607CONFIG_MISC_DEVICES=y
579# CONFIG_EEPROM_93CX6 is not set 608# CONFIG_AD525X_DPOT is not set
580# CONFIG_ICS932S401 is not set 609# CONFIG_ICS932S401 is not set
581# CONFIG_ENCLOSURE_SERVICES is not set 610# CONFIG_ENCLOSURE_SERVICES is not set
611# CONFIG_ISL29003 is not set
582# CONFIG_C2PORT is not set 612# CONFIG_C2PORT is not set
613
614#
615# EEPROM support
616#
617# CONFIG_EEPROM_AT24 is not set
618# CONFIG_EEPROM_AT25 is not set
619# CONFIG_EEPROM_LEGACY is not set
620# CONFIG_EEPROM_MAX6875 is not set
621# CONFIG_EEPROM_93CX6 is not set
583CONFIG_HAVE_IDE=y 622CONFIG_HAVE_IDE=y
584# CONFIG_IDE is not set 623# CONFIG_IDE is not set
585 624
@@ -614,6 +653,9 @@ CONFIG_PHYLIB=y
614# CONFIG_BROADCOM_PHY is not set 653# CONFIG_BROADCOM_PHY is not set
615# CONFIG_ICPLUS_PHY is not set 654# CONFIG_ICPLUS_PHY is not set
616# CONFIG_REALTEK_PHY is not set 655# CONFIG_REALTEK_PHY is not set
656# CONFIG_NATIONAL_PHY is not set
657# CONFIG_STE10XP is not set
658# CONFIG_LSI_ET1011C_PHY is not set
617# CONFIG_FIXED_PHY is not set 659# CONFIG_FIXED_PHY is not set
618# CONFIG_MDIO_BITBANG is not set 660# CONFIG_MDIO_BITBANG is not set
619CONFIG_NET_ETHERNET=y 661CONFIG_NET_ETHERNET=y
@@ -622,10 +664,14 @@ CONFIG_BFIN_MAC=y
622CONFIG_BFIN_TX_DESC_NUM=10 664CONFIG_BFIN_TX_DESC_NUM=10
623CONFIG_BFIN_RX_DESC_NUM=20 665CONFIG_BFIN_RX_DESC_NUM=20
624# CONFIG_BFIN_MAC_RMII is not set 666# CONFIG_BFIN_MAC_RMII is not set
667CONFIG_BFIN_MAC_USE_HWSTAMP=y
625# CONFIG_SMC91X is not set 668# CONFIG_SMC91X is not set
626# CONFIG_SMSC911X is not set
627# CONFIG_DM9000 is not set 669# CONFIG_DM9000 is not set
628# CONFIG_ENC28J60 is not set 670# CONFIG_ENC28J60 is not set
671# CONFIG_ETHOC is not set
672# CONFIG_SMSC911X is not set
673# CONFIG_DNET is not set
674# CONFIG_ADF702X is not set
629# CONFIG_IBM_NEW_EMAC_ZMII is not set 675# CONFIG_IBM_NEW_EMAC_ZMII is not set
630# CONFIG_IBM_NEW_EMAC_RGMII is not set 676# CONFIG_IBM_NEW_EMAC_RGMII is not set
631# CONFIG_IBM_NEW_EMAC_TAH is not set 677# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -634,15 +680,16 @@ CONFIG_BFIN_RX_DESC_NUM=20
634# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 680# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
635# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 681# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
636# CONFIG_B44 is not set 682# CONFIG_B44 is not set
683# CONFIG_KS8842 is not set
684# CONFIG_KS8851 is not set
685# CONFIG_KS8851_MLL is not set
637# CONFIG_NETDEV_1000 is not set 686# CONFIG_NETDEV_1000 is not set
638# CONFIG_NETDEV_10000 is not set 687# CONFIG_NETDEV_10000 is not set
688# CONFIG_WLAN is not set
639 689
640# 690#
641# Wireless LAN 691# Enable WiMAX (Networking options) to see the WiMAX drivers
642# 692#
643# CONFIG_WLAN_PRE80211 is not set
644# CONFIG_WLAN_80211 is not set
645# CONFIG_IWLWIFI_LEDS is not set
646# CONFIG_WAN is not set 693# CONFIG_WAN is not set
647# CONFIG_PPP is not set 694# CONFIG_PPP is not set
648# CONFIG_SLIP is not set 695# CONFIG_SLIP is not set
@@ -677,7 +724,10 @@ CONFIG_INPUT=y
677# CONFIG_INPUT_TOUCHSCREEN is not set 724# CONFIG_INPUT_TOUCHSCREEN is not set
678CONFIG_INPUT_MISC=y 725CONFIG_INPUT_MISC=y
679# CONFIG_INPUT_UINPUT is not set 726# CONFIG_INPUT_UINPUT is not set
680# CONFIG_CONFIG_INPUT_PCF8574 is not set 727# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
728# CONFIG_INPUT_AD714X is not set
729# CONFIG_INPUT_ADXL34X is not set
730# CONFIG_INPUT_PCF8574 is not set
681 731
682# 732#
683# Hardware I/O ports 733# Hardware I/O ports
@@ -688,16 +738,13 @@ CONFIG_INPUT_MISC=y
688# 738#
689# Character devices 739# Character devices
690# 740#
691# CONFIG_AD9960 is not set
692CONFIG_BFIN_DMA_INTERFACE=m 741CONFIG_BFIN_DMA_INTERFACE=m
693# CONFIG_BFIN_PPI is not set 742# CONFIG_BFIN_PPI is not set
694# CONFIG_BFIN_PPIFCD is not set 743# CONFIG_BFIN_PPIFCD is not set
695# CONFIG_BFIN_SIMPLE_TIMER is not set 744# CONFIG_BFIN_SIMPLE_TIMER is not set
696# CONFIG_BFIN_SPI_ADC is not set 745# CONFIG_BFIN_SPI_ADC is not set
697# CONFIG_BFIN_SPORT is not set 746# CONFIG_BFIN_SPORT is not set
698# CONFIG_BFIN_TIMER_LATENCY is not set
699# CONFIG_BFIN_TWI_LCD is not set 747# CONFIG_BFIN_TWI_LCD is not set
700CONFIG_SIMPLE_GPIO=m
701CONFIG_VT=y 748CONFIG_VT=y
702CONFIG_CONSOLE_TRANSLATIONS=y 749CONFIG_CONSOLE_TRANSLATIONS=y
703CONFIG_VT_CONSOLE=y 750CONFIG_VT_CONSOLE=y
@@ -715,6 +762,7 @@ CONFIG_BFIN_JTAG_COMM=m
715# 762#
716# Non-8250 serial port support 763# Non-8250 serial port support
717# 764#
765# CONFIG_SERIAL_MAX3100 is not set
718CONFIG_SERIAL_BFIN=y 766CONFIG_SERIAL_BFIN=y
719CONFIG_SERIAL_BFIN_CONSOLE=y 767CONFIG_SERIAL_BFIN_CONSOLE=y
720CONFIG_SERIAL_BFIN_DMA=y 768CONFIG_SERIAL_BFIN_DMA=y
@@ -726,12 +774,10 @@ CONFIG_SERIAL_CORE=y
726CONFIG_SERIAL_CORE_CONSOLE=y 774CONFIG_SERIAL_CORE_CONSOLE=y
727# CONFIG_SERIAL_BFIN_SPORT is not set 775# CONFIG_SERIAL_BFIN_SPORT is not set
728CONFIG_UNIX98_PTYS=y 776CONFIG_UNIX98_PTYS=y
777# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
729# CONFIG_LEGACY_PTYS is not set 778# CONFIG_LEGACY_PTYS is not set
730 779CONFIG_BFIN_OTP=y
731# 780# CONFIG_BFIN_OTP_WRITE_ENABLE is not set
732# CAN, the car bus and industrial fieldbus
733#
734# CONFIG_CAN4LINUX is not set
735# CONFIG_IPMI_HANDLER is not set 781# CONFIG_IPMI_HANDLER is not set
736# CONFIG_HW_RANDOM is not set 782# CONFIG_HW_RANDOM is not set
737# CONFIG_R3964 is not set 783# CONFIG_R3964 is not set
@@ -739,6 +785,7 @@ CONFIG_UNIX98_PTYS=y
739# CONFIG_TCG_TPM is not set 785# CONFIG_TCG_TPM is not set
740CONFIG_I2C=y 786CONFIG_I2C=y
741CONFIG_I2C_BOARDINFO=y 787CONFIG_I2C_BOARDINFO=y
788CONFIG_I2C_COMPAT=y
742CONFIG_I2C_CHARDEV=y 789CONFIG_I2C_CHARDEV=y
743CONFIG_I2C_HELPER_AUTO=y 790CONFIG_I2C_HELPER_AUTO=y
744 791
@@ -771,14 +818,6 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
771# Miscellaneous I2C Chip support 818# Miscellaneous I2C Chip support
772# 819#
773# CONFIG_DS1682 is not set 820# CONFIG_DS1682 is not set
774# CONFIG_EEPROM_AT24 is not set
775# CONFIG_SENSORS_AD5252 is not set
776# CONFIG_EEPROM_LEGACY is not set
777# CONFIG_SENSORS_PCF8574 is not set
778# CONFIG_PCF8575 is not set
779# CONFIG_SENSORS_PCA9539 is not set
780# CONFIG_SENSORS_PCF8591 is not set
781# CONFIG_SENSORS_MAX6875 is not set
782# CONFIG_SENSORS_TSL2550 is not set 821# CONFIG_SENSORS_TSL2550 is not set
783# CONFIG_I2C_DEBUG_CORE is not set 822# CONFIG_I2C_DEBUG_CORE is not set
784# CONFIG_I2C_DEBUG_ALGO is not set 823# CONFIG_I2C_DEBUG_ALGO is not set
@@ -795,13 +834,18 @@ CONFIG_SPI_BFIN=y
795# CONFIG_SPI_BFIN_LOCK is not set 834# CONFIG_SPI_BFIN_LOCK is not set
796# CONFIG_SPI_BFIN_SPORT is not set 835# CONFIG_SPI_BFIN_SPORT is not set
797# CONFIG_SPI_BITBANG is not set 836# CONFIG_SPI_BITBANG is not set
837# CONFIG_SPI_GPIO is not set
798 838
799# 839#
800# SPI Protocol Masters 840# SPI Protocol Masters
801# 841#
802# CONFIG_SPI_AT25 is not set
803# CONFIG_SPI_SPIDEV is not set 842# CONFIG_SPI_SPIDEV is not set
804# CONFIG_SPI_TLE62X0 is not set 843# CONFIG_SPI_TLE62X0 is not set
844
845#
846# PPS support
847#
848# CONFIG_PPS is not set
805CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 849CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
806CONFIG_GPIOLIB=y 850CONFIG_GPIOLIB=y
807# CONFIG_DEBUG_GPIO is not set 851# CONFIG_DEBUG_GPIO is not set
@@ -817,6 +861,7 @@ CONFIG_GPIO_SYSFS=y
817# CONFIG_GPIO_MAX732X is not set 861# CONFIG_GPIO_MAX732X is not set
818# CONFIG_GPIO_PCA953X is not set 862# CONFIG_GPIO_PCA953X is not set
819# CONFIG_GPIO_PCF857X is not set 863# CONFIG_GPIO_PCF857X is not set
864# CONFIG_GPIO_ADP5588 is not set
820 865
821# 866#
822# PCI GPIO expanders: 867# PCI GPIO expanders:
@@ -827,11 +872,15 @@ CONFIG_GPIO_SYSFS=y
827# 872#
828# CONFIG_GPIO_MAX7301 is not set 873# CONFIG_GPIO_MAX7301 is not set
829# CONFIG_GPIO_MCP23S08 is not set 874# CONFIG_GPIO_MCP23S08 is not set
875# CONFIG_GPIO_MC33880 is not set
876
877#
878# AC97 GPIO expanders:
879#
830# CONFIG_W1 is not set 880# CONFIG_W1 is not set
831# CONFIG_POWER_SUPPLY is not set 881# CONFIG_POWER_SUPPLY is not set
832# CONFIG_HWMON is not set 882# CONFIG_HWMON is not set
833# CONFIG_THERMAL is not set 883# CONFIG_THERMAL is not set
834# CONFIG_THERMAL_HWMON is not set
835CONFIG_WATCHDOG=y 884CONFIG_WATCHDOG=y
836# CONFIG_WATCHDOG_NOWAYOUT is not set 885# CONFIG_WATCHDOG_NOWAYOUT is not set
837 886
@@ -853,28 +902,20 @@ CONFIG_SSB_POSSIBLE=y
853# CONFIG_MFD_CORE is not set 902# CONFIG_MFD_CORE is not set
854# CONFIG_MFD_SM501 is not set 903# CONFIG_MFD_SM501 is not set
855# CONFIG_HTC_PASIC3 is not set 904# CONFIG_HTC_PASIC3 is not set
905# CONFIG_TPS65010 is not set
906# CONFIG_TWL4030_CORE is not set
856# CONFIG_MFD_TMIO is not set 907# CONFIG_MFD_TMIO is not set
857# CONFIG_PMIC_DA903X is not set 908# CONFIG_PMIC_DA903X is not set
858# CONFIG_PMIC_ADP5520 is not set 909# CONFIG_PMIC_ADP5520 is not set
859# CONFIG_MFD_WM8400 is not set 910# CONFIG_MFD_WM8400 is not set
911# CONFIG_MFD_WM831X is not set
860# CONFIG_MFD_WM8350_I2C is not set 912# CONFIG_MFD_WM8350_I2C is not set
913# CONFIG_MFD_PCF50633 is not set
914# CONFIG_MFD_MC13783 is not set
915# CONFIG_AB3100_CORE is not set
916# CONFIG_EZX_PCAP is not set
861# CONFIG_REGULATOR is not set 917# CONFIG_REGULATOR is not set
862 918# CONFIG_MEDIA_SUPPORT is not set
863#
864# Multimedia devices
865#
866
867#
868# Multimedia core support
869#
870# CONFIG_VIDEO_DEV is not set
871# CONFIG_DVB_CORE is not set
872# CONFIG_VIDEO_MEDIA is not set
873
874#
875# Multimedia drivers
876#
877# CONFIG_DAB is not set
878 919
879# 920#
880# Graphics support 921# Graphics support
@@ -912,10 +953,11 @@ CONFIG_MMC_BLOCK_BOUNCE=y
912# MMC/SD/SDIO Host Controller Drivers 953# MMC/SD/SDIO Host Controller Drivers
913# 954#
914# CONFIG_MMC_SDHCI is not set 955# CONFIG_MMC_SDHCI is not set
956# CONFIG_MMC_AT91 is not set
957# CONFIG_MMC_ATMELMCI is not set
958# CONFIG_MMC_SPI is not set
915CONFIG_SDH_BFIN=m 959CONFIG_SDH_BFIN=m
916CONFIG_SDH_BFIN_MISSING_CMD_PULLUP_WORKAROUND=y 960CONFIG_SDH_BFIN_MISSING_CMD_PULLUP_WORKAROUND=y
917# CONFIG_SDH_BFIN_ENABLE_SDIO_IRQ is not set
918# CONFIG_MMC_SPI is not set
919# CONFIG_MEMSTICK is not set 961# CONFIG_MEMSTICK is not set
920# CONFIG_NEW_LEDS is not set 962# CONFIG_NEW_LEDS is not set
921# CONFIG_ACCESSIBILITY is not set 963# CONFIG_ACCESSIBILITY is not set
@@ -950,6 +992,7 @@ CONFIG_RTC_INTF_DEV=y
950# CONFIG_RTC_DRV_S35390A is not set 992# CONFIG_RTC_DRV_S35390A is not set
951# CONFIG_RTC_DRV_FM3130 is not set 993# CONFIG_RTC_DRV_FM3130 is not set
952# CONFIG_RTC_DRV_RX8581 is not set 994# CONFIG_RTC_DRV_RX8581 is not set
995# CONFIG_RTC_DRV_RX8025 is not set
953 996
954# 997#
955# SPI RTC drivers 998# SPI RTC drivers
@@ -961,6 +1004,7 @@ CONFIG_RTC_INTF_DEV=y
961# CONFIG_RTC_DRV_R9701 is not set 1004# CONFIG_RTC_DRV_R9701 is not set
962# CONFIG_RTC_DRV_RS5C348 is not set 1005# CONFIG_RTC_DRV_RS5C348 is not set
963# CONFIG_RTC_DRV_DS3234 is not set 1006# CONFIG_RTC_DRV_DS3234 is not set
1007# CONFIG_RTC_DRV_PCF2123 is not set
964 1008
965# 1009#
966# Platform RTC drivers 1010# Platform RTC drivers
@@ -981,10 +1025,21 @@ CONFIG_RTC_INTF_DEV=y
981# 1025#
982CONFIG_RTC_DRV_BFIN=y 1026CONFIG_RTC_DRV_BFIN=y
983# CONFIG_DMADEVICES is not set 1027# CONFIG_DMADEVICES is not set
1028# CONFIG_AUXDISPLAY is not set
984# CONFIG_UIO is not set 1029# CONFIG_UIO is not set
1030
1031#
1032# TI VLYNQ
1033#
985# CONFIG_STAGING is not set 1034# CONFIG_STAGING is not set
986 1035
987# 1036#
1037# Firmware Drivers
1038#
1039# CONFIG_FIRMWARE_MEMMAP is not set
1040# CONFIG_SIGMA is not set
1041
1042#
988# File systems 1043# File systems
989# 1044#
990CONFIG_EXT2_FS=m 1045CONFIG_EXT2_FS=m
@@ -994,9 +1049,13 @@ CONFIG_EXT2_FS=m
994# CONFIG_REISERFS_FS is not set 1049# CONFIG_REISERFS_FS is not set
995# CONFIG_JFS_FS is not set 1050# CONFIG_JFS_FS is not set
996# CONFIG_FS_POSIX_ACL is not set 1051# CONFIG_FS_POSIX_ACL is not set
997CONFIG_FILE_LOCKING=y
998# CONFIG_XFS_FS is not set 1052# CONFIG_XFS_FS is not set
1053# CONFIG_GFS2_FS is not set
999# CONFIG_OCFS2_FS is not set 1054# CONFIG_OCFS2_FS is not set
1055# CONFIG_BTRFS_FS is not set
1056# CONFIG_NILFS2_FS is not set
1057CONFIG_FILE_LOCKING=y
1058CONFIG_FSNOTIFY=y
1000# CONFIG_DNOTIFY is not set 1059# CONFIG_DNOTIFY is not set
1001CONFIG_INOTIFY=y 1060CONFIG_INOTIFY=y
1002CONFIG_INOTIFY_USER=y 1061CONFIG_INOTIFY_USER=y
@@ -1006,6 +1065,11 @@ CONFIG_INOTIFY_USER=y
1006# CONFIG_FUSE_FS is not set 1065# CONFIG_FUSE_FS is not set
1007 1066
1008# 1067#
1068# Caches
1069#
1070# CONFIG_FSCACHE is not set
1071
1072#
1009# CD-ROM/DVD Filesystems 1073# CD-ROM/DVD Filesystems
1010# 1074#
1011# CONFIG_ISO9660_FS is not set 1075# CONFIG_ISO9660_FS is not set
@@ -1027,13 +1091,9 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1027CONFIG_PROC_FS=y 1091CONFIG_PROC_FS=y
1028CONFIG_PROC_SYSCTL=y 1092CONFIG_PROC_SYSCTL=y
1029CONFIG_SYSFS=y 1093CONFIG_SYSFS=y
1030# CONFIG_TMPFS is not set
1031# CONFIG_HUGETLB_PAGE is not set 1094# CONFIG_HUGETLB_PAGE is not set
1032# CONFIG_CONFIGFS_FS is not set 1095# CONFIG_CONFIGFS_FS is not set
1033 1096CONFIG_MISC_FILESYSTEMS=y
1034#
1035# Miscellaneous filesystems
1036#
1037# CONFIG_ADFS_FS is not set 1097# CONFIG_ADFS_FS is not set
1038# CONFIG_AFFS_FS is not set 1098# CONFIG_AFFS_FS is not set
1039# CONFIG_HFS_FS is not set 1099# CONFIG_HFS_FS is not set
@@ -1042,8 +1102,8 @@ CONFIG_SYSFS=y
1042# CONFIG_BFS_FS is not set 1102# CONFIG_BFS_FS is not set
1043# CONFIG_EFS_FS is not set 1103# CONFIG_EFS_FS is not set
1044# CONFIG_JFFS2_FS is not set 1104# CONFIG_JFFS2_FS is not set
1045# CONFIG_YAFFS_FS is not set
1046# CONFIG_CRAMFS is not set 1105# CONFIG_CRAMFS is not set
1106# CONFIG_SQUASHFS is not set
1047# CONFIG_VXFS_FS is not set 1107# CONFIG_VXFS_FS is not set
1048# CONFIG_MINIX_FS is not set 1108# CONFIG_MINIX_FS is not set
1049# CONFIG_OMFS_FS is not set 1109# CONFIG_OMFS_FS is not set
@@ -1062,7 +1122,6 @@ CONFIG_LOCKD=m
1062CONFIG_LOCKD_V4=y 1122CONFIG_LOCKD_V4=y
1063CONFIG_NFS_COMMON=y 1123CONFIG_NFS_COMMON=y
1064CONFIG_SUNRPC=m 1124CONFIG_SUNRPC=m
1065# CONFIG_SUNRPC_REGISTER_V4 is not set
1066# CONFIG_RPCSEC_GSS_KRB5 is not set 1125# CONFIG_RPCSEC_GSS_KRB5 is not set
1067# CONFIG_RPCSEC_GSS_SPKM3 is not set 1126# CONFIG_RPCSEC_GSS_SPKM3 is not set
1068CONFIG_SMB_FS=m 1127CONFIG_SMB_FS=m
@@ -1127,14 +1186,19 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1127CONFIG_ENABLE_MUST_CHECK=y 1186CONFIG_ENABLE_MUST_CHECK=y
1128CONFIG_FRAME_WARN=1024 1187CONFIG_FRAME_WARN=1024
1129# CONFIG_MAGIC_SYSRQ is not set 1188# CONFIG_MAGIC_SYSRQ is not set
1189# CONFIG_STRIP_ASM_SYMS is not set
1130# CONFIG_UNUSED_SYMBOLS is not set 1190# CONFIG_UNUSED_SYMBOLS is not set
1131CONFIG_DEBUG_FS=y 1191CONFIG_DEBUG_FS=y
1132# CONFIG_HEADERS_CHECK is not set 1192# CONFIG_HEADERS_CHECK is not set
1193CONFIG_DEBUG_SECTION_MISMATCH=y
1133CONFIG_DEBUG_KERNEL=y 1194CONFIG_DEBUG_KERNEL=y
1134CONFIG_DEBUG_SHIRQ=y 1195CONFIG_DEBUG_SHIRQ=y
1135CONFIG_DETECT_SOFTLOCKUP=y 1196CONFIG_DETECT_SOFTLOCKUP=y
1136# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1197# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1137CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1198CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1199CONFIG_DETECT_HUNG_TASK=y
1200# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1201CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1138CONFIG_SCHED_DEBUG=y 1202CONFIG_SCHED_DEBUG=y
1139# CONFIG_SCHEDSTATS is not set 1203# CONFIG_SCHEDSTATS is not set
1140# CONFIG_TIMER_STATS is not set 1204# CONFIG_TIMER_STATS is not set
@@ -1142,31 +1206,39 @@ CONFIG_SCHED_DEBUG=y
1142# CONFIG_DEBUG_SLAB is not set 1206# CONFIG_DEBUG_SLAB is not set
1143# CONFIG_DEBUG_SPINLOCK is not set 1207# CONFIG_DEBUG_SPINLOCK is not set
1144# CONFIG_DEBUG_MUTEXES is not set 1208# CONFIG_DEBUG_MUTEXES is not set
1209# CONFIG_DEBUG_LOCK_ALLOC is not set
1210# CONFIG_PROVE_LOCKING is not set
1211# CONFIG_LOCK_STAT is not set
1145# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1212# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1146# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1213# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1147# CONFIG_DEBUG_KOBJECT is not set 1214# CONFIG_DEBUG_KOBJECT is not set
1148CONFIG_DEBUG_BUGVERBOSE=y 1215CONFIG_DEBUG_BUGVERBOSE=y
1149CONFIG_DEBUG_INFO=y 1216CONFIG_DEBUG_INFO=y
1150# CONFIG_DEBUG_VM is not set 1217# CONFIG_DEBUG_VM is not set
1218# CONFIG_DEBUG_NOMMU_REGIONS is not set
1151# CONFIG_DEBUG_WRITECOUNT is not set 1219# CONFIG_DEBUG_WRITECOUNT is not set
1152# CONFIG_DEBUG_MEMORY_INIT is not set 1220# CONFIG_DEBUG_MEMORY_INIT is not set
1153# CONFIG_DEBUG_LIST is not set 1221# CONFIG_DEBUG_LIST is not set
1154# CONFIG_DEBUG_SG is not set 1222# CONFIG_DEBUG_SG is not set
1223# CONFIG_DEBUG_NOTIFIERS is not set
1224# CONFIG_DEBUG_CREDENTIALS is not set
1155# CONFIG_FRAME_POINTER is not set 1225# CONFIG_FRAME_POINTER is not set
1156# CONFIG_BOOT_PRINTK_DELAY is not set 1226# CONFIG_BOOT_PRINTK_DELAY is not set
1157# CONFIG_RCU_TORTURE_TEST is not set 1227# CONFIG_RCU_TORTURE_TEST is not set
1158# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1228# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1159# CONFIG_BACKTRACE_SELF_TEST is not set 1229# CONFIG_BACKTRACE_SELF_TEST is not set
1160# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1230# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1231# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1161# CONFIG_FAULT_INJECTION is not set 1232# CONFIG_FAULT_INJECTION is not set
1162 1233# CONFIG_PAGE_POISONING is not set
1163# 1234CONFIG_HAVE_FUNCTION_TRACER=y
1164# Tracers 1235CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1165# 1236CONFIG_TRACING_SUPPORT=y
1166# CONFIG_SCHED_TRACER is not set 1237# CONFIG_FTRACE is not set
1167# CONFIG_CONTEXT_SWITCH_TRACER is not set 1238# CONFIG_BRANCH_PROFILE_NONE is not set
1168# CONFIG_BOOT_TRACER is not set 1239# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1169# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1240# CONFIG_PROFILE_ALL_BRANCHES is not set
1241# CONFIG_DYNAMIC_DEBUG is not set
1170# CONFIG_SAMPLES is not set 1242# CONFIG_SAMPLES is not set
1171CONFIG_HAVE_ARCH_KGDB=y 1243CONFIG_HAVE_ARCH_KGDB=y
1172# CONFIG_KGDB is not set 1244# CONFIG_KGDB is not set
@@ -1191,6 +1263,7 @@ CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE=y
1191CONFIG_EARLY_PRINTK=y 1263CONFIG_EARLY_PRINTK=y
1192CONFIG_CPLB_INFO=y 1264CONFIG_CPLB_INFO=y
1193CONFIG_ACCESS_CHECK=y 1265CONFIG_ACCESS_CHECK=y
1266# CONFIG_BFIN_ISRAM_SELF_TEST is not set
1194 1267
1195# 1268#
1196# Security options 1269# Security options
@@ -1199,14 +1272,14 @@ CONFIG_ACCESS_CHECK=y
1199CONFIG_SECURITY=y 1272CONFIG_SECURITY=y
1200# CONFIG_SECURITYFS is not set 1273# CONFIG_SECURITYFS is not set
1201# CONFIG_SECURITY_NETWORK is not set 1274# CONFIG_SECURITY_NETWORK is not set
1275# CONFIG_SECURITY_PATH is not set
1202# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1276# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1203CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1277# CONFIG_SECURITY_TOMOYO is not set
1204CONFIG_CRYPTO=y 1278CONFIG_CRYPTO=y
1205 1279
1206# 1280#
1207# Crypto core or helper 1281# Crypto core or helper
1208# 1282#
1209# CONFIG_CRYPTO_FIPS is not set
1210# CONFIG_CRYPTO_MANAGER is not set 1283# CONFIG_CRYPTO_MANAGER is not set
1211# CONFIG_CRYPTO_MANAGER2 is not set 1284# CONFIG_CRYPTO_MANAGER2 is not set
1212# CONFIG_CRYPTO_GF128MUL is not set 1285# CONFIG_CRYPTO_GF128MUL is not set
@@ -1238,11 +1311,13 @@ CONFIG_CRYPTO=y
1238# 1311#
1239# CONFIG_CRYPTO_HMAC is not set 1312# CONFIG_CRYPTO_HMAC is not set
1240# CONFIG_CRYPTO_XCBC is not set 1313# CONFIG_CRYPTO_XCBC is not set
1314# CONFIG_CRYPTO_VMAC is not set
1241 1315
1242# 1316#
1243# Digest 1317# Digest
1244# 1318#
1245# CONFIG_CRYPTO_CRC32C is not set 1319# CONFIG_CRYPTO_CRC32C is not set
1320# CONFIG_CRYPTO_GHASH is not set
1246# CONFIG_CRYPTO_MD4 is not set 1321# CONFIG_CRYPTO_MD4 is not set
1247# CONFIG_CRYPTO_MD5 is not set 1322# CONFIG_CRYPTO_MD5 is not set
1248# CONFIG_CRYPTO_MICHAEL_MIC is not set 1323# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1279,6 +1354,7 @@ CONFIG_CRYPTO=y
1279# Compression 1354# Compression
1280# 1355#
1281# CONFIG_CRYPTO_DEFLATE is not set 1356# CONFIG_CRYPTO_DEFLATE is not set
1357# CONFIG_CRYPTO_ZLIB is not set
1282# CONFIG_CRYPTO_LZO is not set 1358# CONFIG_CRYPTO_LZO is not set
1283 1359
1284# 1360#
@@ -1286,11 +1362,13 @@ CONFIG_CRYPTO=y
1286# 1362#
1287# CONFIG_CRYPTO_ANSI_CPRNG is not set 1363# CONFIG_CRYPTO_ANSI_CPRNG is not set
1288CONFIG_CRYPTO_HW=y 1364CONFIG_CRYPTO_HW=y
1365# CONFIG_BINARY_PRINTF is not set
1289 1366
1290# 1367#
1291# Library routines 1368# Library routines
1292# 1369#
1293CONFIG_BITREVERSE=y 1370CONFIG_BITREVERSE=y
1371CONFIG_GENERIC_FIND_LAST_BIT=y
1294CONFIG_CRC_CCITT=m 1372CONFIG_CRC_CCITT=m
1295# CONFIG_CRC16 is not set 1373# CONFIG_CRC16 is not set
1296# CONFIG_CRC_T10DIF is not set 1374# CONFIG_CRC_T10DIF is not set
@@ -1299,6 +1377,8 @@ CONFIG_CRC32=y
1299# CONFIG_CRC7 is not set 1377# CONFIG_CRC7 is not set
1300# CONFIG_LIBCRC32C is not set 1378# CONFIG_LIBCRC32C is not set
1301CONFIG_ZLIB_INFLATE=y 1379CONFIG_ZLIB_INFLATE=y
1380CONFIG_DECOMPRESS_GZIP=y
1302CONFIG_HAS_IOMEM=y 1381CONFIG_HAS_IOMEM=y
1303CONFIG_HAS_IOPORT=y 1382CONFIG_HAS_IOPORT=y
1304CONFIG_HAS_DMA=y 1383CONFIG_HAS_DMA=y
1384CONFIG_NLATTR=y
diff --git a/arch/blackfin/configs/BF526-EZBRD_defconfig b/arch/blackfin/configs/BF526-EZBRD_defconfig
index 075e0fdcb399..31c2a6db6ec5 100644
--- a/arch/blackfin/configs/BF526-EZBRD_defconfig
+++ b/arch/blackfin/configs/BF526-EZBRD_defconfig
@@ -1,22 +1,27 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28.10 3# Linux kernel version: 2.6.32.2
4# Thu May 21 05:50:01 2009
5# 4#
6# CONFIG_MMU is not set 5# CONFIG_MMU is not set
7# CONFIG_FPU is not set 6# CONFIG_FPU is not set
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 7CONFIG_RWSEM_GENERIC_SPINLOCK=y
9# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
10CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
10CONFIG_GENERIC_CSUM=y
11CONFIG_GENERIC_BUG=y
11CONFIG_ZONE_DMA=y 12CONFIG_ZONE_DMA=y
12CONFIG_GENERIC_FIND_NEXT_BIT=y 13CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
16CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
17CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
18CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_TRACE_IRQFLAGS_SUPPORT=y
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
24CONFIG_CONSTRUCTORS=y
20 25
21# 26#
22# General setup 27# General setup
@@ -26,22 +31,41 @@ CONFIG_BROKEN_ON_SMP=y
26CONFIG_INIT_ENV_ARG_LIMIT=32 31CONFIG_INIT_ENV_ARG_LIMIT=32
27CONFIG_LOCALVERSION="" 32CONFIG_LOCALVERSION=""
28CONFIG_LOCALVERSION_AUTO=y 33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_HAVE_KERNEL_GZIP=y
35CONFIG_HAVE_KERNEL_BZIP2=y
36CONFIG_HAVE_KERNEL_LZMA=y
37CONFIG_KERNEL_GZIP=y
38# CONFIG_KERNEL_BZIP2 is not set
39# CONFIG_KERNEL_LZMA is not set
29CONFIG_SYSVIPC=y 40CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 41CONFIG_SYSVIPC_SYSCTL=y
31# CONFIG_POSIX_MQUEUE is not set 42# CONFIG_POSIX_MQUEUE is not set
32# CONFIG_BSD_PROCESS_ACCT is not set 43# CONFIG_BSD_PROCESS_ACCT is not set
33# CONFIG_TASKSTATS is not set 44# CONFIG_TASKSTATS is not set
34# CONFIG_AUDIT is not set 45# CONFIG_AUDIT is not set
46
47#
48# RCU Subsystem
49#
50CONFIG_TREE_RCU=y
51# CONFIG_TREE_PREEMPT_RCU is not set
52# CONFIG_RCU_TRACE is not set
53CONFIG_RCU_FANOUT=32
54# CONFIG_RCU_FANOUT_EXACT is not set
55# CONFIG_TREE_RCU_TRACE is not set
35CONFIG_IKCONFIG=y 56CONFIG_IKCONFIG=y
36CONFIG_IKCONFIG_PROC=y 57CONFIG_IKCONFIG_PROC=y
37CONFIG_LOG_BUF_SHIFT=14 58CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 59# CONFIG_GROUP_SCHED is not set
60# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 61# CONFIG_SYSFS_DEPRECATED_V2 is not set
41# CONFIG_RELAY is not set 62# CONFIG_RELAY is not set
42# CONFIG_NAMESPACES is not set 63# CONFIG_NAMESPACES is not set
43CONFIG_BLK_DEV_INITRD=y 64CONFIG_BLK_DEV_INITRD=y
44CONFIG_INITRAMFS_SOURCE="" 65CONFIG_INITRAMFS_SOURCE=""
66CONFIG_RD_GZIP=y
67# CONFIG_RD_BZIP2 is not set
68# CONFIG_RD_LZMA is not set
45# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 69# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
46CONFIG_SYSCTL=y 70CONFIG_SYSCTL=y
47CONFIG_ANON_INODES=y 71CONFIG_ANON_INODES=y
@@ -62,6 +86,10 @@ CONFIG_EPOLL=y
62# CONFIG_TIMERFD is not set 86# CONFIG_TIMERFD is not set
63# CONFIG_EVENTFD is not set 87# CONFIG_EVENTFD is not set
64# CONFIG_AIO is not set 88# CONFIG_AIO is not set
89
90#
91# Kernel Performance Events And Counters
92#
65CONFIG_VM_EVENT_COUNTERS=y 93CONFIG_VM_EVENT_COUNTERS=y
66CONFIG_COMPAT_BRK=y 94CONFIG_COMPAT_BRK=y
67CONFIG_SLAB=y 95CONFIG_SLAB=y
@@ -69,11 +97,15 @@ CONFIG_SLAB=y
69# CONFIG_SLOB is not set 97# CONFIG_SLOB is not set
70CONFIG_MMAP_ALLOW_UNINITIALIZED=y 98CONFIG_MMAP_ALLOW_UNINITIALIZED=y
71# CONFIG_PROFILING is not set 99# CONFIG_PROFILING is not set
72# CONFIG_MARKERS is not set
73CONFIG_HAVE_OPROFILE=y 100CONFIG_HAVE_OPROFILE=y
101
102#
103# GCOV-based kernel profiling
104#
105# CONFIG_GCOV_KERNEL is not set
106# CONFIG_SLOW_WORK is not set
74# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 107# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
75CONFIG_SLABINFO=y 108CONFIG_SLABINFO=y
76CONFIG_TINY_SHMEM=y
77CONFIG_BASE_SMALL=0 109CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y 110CONFIG_MODULES=y
79# CONFIG_MODULE_FORCE_LOAD is not set 111# CONFIG_MODULE_FORCE_LOAD is not set
@@ -81,11 +113,8 @@ CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODULE_FORCE_UNLOAD is not set 113# CONFIG_MODULE_FORCE_UNLOAD is not set
82# CONFIG_MODVERSIONS is not set 114# CONFIG_MODVERSIONS is not set
83# CONFIG_MODULE_SRCVERSION_ALL is not set 115# CONFIG_MODULE_SRCVERSION_ALL is not set
84CONFIG_KMOD=y
85CONFIG_BLOCK=y 116CONFIG_BLOCK=y
86# CONFIG_LBD is not set 117# CONFIG_LBDAF is not set
87# CONFIG_BLK_DEV_IO_TRACE is not set
88# CONFIG_LSF is not set
89# CONFIG_BLK_DEV_BSG is not set 118# CONFIG_BLK_DEV_BSG is not set
90# CONFIG_BLK_DEV_INTEGRITY is not set 119# CONFIG_BLK_DEV_INTEGRITY is not set
91 120
@@ -101,7 +130,6 @@ CONFIG_IOSCHED_NOOP=y
101# CONFIG_DEFAULT_CFQ is not set 130# CONFIG_DEFAULT_CFQ is not set
102CONFIG_DEFAULT_NOOP=y 131CONFIG_DEFAULT_NOOP=y
103CONFIG_DEFAULT_IOSCHED="noop" 132CONFIG_DEFAULT_IOSCHED="noop"
104CONFIG_CLASSIC_RCU=y
105# CONFIG_PREEMPT_NONE is not set 133# CONFIG_PREEMPT_NONE is not set
106CONFIG_PREEMPT_VOLUNTARY=y 134CONFIG_PREEMPT_VOLUNTARY=y
107# CONFIG_PREEMPT is not set 135# CONFIG_PREEMPT is not set
@@ -132,15 +160,15 @@ CONFIG_BF526=y
132# CONFIG_BF537 is not set 160# CONFIG_BF537 is not set
133# CONFIG_BF538 is not set 161# CONFIG_BF538 is not set
134# CONFIG_BF539 is not set 162# CONFIG_BF539 is not set
135# CONFIG_BF542 is not set 163# CONFIG_BF542_std is not set
136# CONFIG_BF542M is not set 164# CONFIG_BF542M is not set
137# CONFIG_BF544 is not set 165# CONFIG_BF544_std is not set
138# CONFIG_BF544M is not set 166# CONFIG_BF544M is not set
139# CONFIG_BF547 is not set 167# CONFIG_BF547_std is not set
140# CONFIG_BF547M is not set 168# CONFIG_BF547M is not set
141# CONFIG_BF548 is not set 169# CONFIG_BF548_std is not set
142# CONFIG_BF548M is not set 170# CONFIG_BF548M is not set
143# CONFIG_BF549 is not set 171# CONFIG_BF549_std is not set
144# CONFIG_BF549M is not set 172# CONFIG_BF549M is not set
145# CONFIG_BF561 is not set 173# CONFIG_BF561 is not set
146CONFIG_BF_REV_MIN=0 174CONFIG_BF_REV_MIN=0
@@ -154,8 +182,7 @@ CONFIG_BF_REV_0_0=y
154# CONFIG_BF_REV_0_6 is not set 182# CONFIG_BF_REV_0_6 is not set
155# CONFIG_BF_REV_ANY is not set 183# CONFIG_BF_REV_ANY is not set
156# CONFIG_BF_REV_NONE is not set 184# CONFIG_BF_REV_NONE is not set
157CONFIG_BF52x=y 185CONFIG_MEM_MT48H32M16LFCJ_75=y
158CONFIG_MEM_MT48LC32M16A2TG_75=y
159CONFIG_IRQ_PLL_WAKEUP=7 186CONFIG_IRQ_PLL_WAKEUP=7
160CONFIG_IRQ_DMA0_ERROR=7 187CONFIG_IRQ_DMA0_ERROR=7
161CONFIG_IRQ_DMAR0_BLK=7 188CONFIG_IRQ_DMAR0_BLK=7
@@ -200,7 +227,9 @@ CONFIG_IRQ_MEM_DMA1=13
200CONFIG_IRQ_WATCH=13 227CONFIG_IRQ_WATCH=13
201CONFIG_IRQ_PORTF_INTA=13 228CONFIG_IRQ_PORTF_INTA=13
202CONFIG_IRQ_PORTF_INTB=13 229CONFIG_IRQ_PORTF_INTB=13
230CONFIG_BF52x=y
203# CONFIG_BFIN527_EZKIT is not set 231# CONFIG_BFIN527_EZKIT is not set
232# CONFIG_BFIN527_EZKIT_V2 is not set
204# CONFIG_BFIN527_BLUETECHNIX_CM is not set 233# CONFIG_BFIN527_BLUETECHNIX_CM is not set
205CONFIG_BFIN526_EZBRD=y 234CONFIG_BFIN526_EZBRD=y
206 235
@@ -318,7 +347,6 @@ CONFIG_FLATMEM=y
318CONFIG_FLAT_NODE_MEM_MAP=y 347CONFIG_FLAT_NODE_MEM_MAP=y
319CONFIG_PAGEFLAGS_EXTENDED=y 348CONFIG_PAGEFLAGS_EXTENDED=y
320CONFIG_SPLIT_PTLOCK_CPUS=4 349CONFIG_SPLIT_PTLOCK_CPUS=4
321# CONFIG_RESOURCES_64BIT is not set
322# CONFIG_PHYS_ADDR_T_64BIT is not set 350# CONFIG_PHYS_ADDR_T_64BIT is not set
323CONFIG_ZONE_DMA_FLAG=1 351CONFIG_ZONE_DMA_FLAG=1
324CONFIG_VIRT_TO_BUS=y 352CONFIG_VIRT_TO_BUS=y
@@ -327,16 +355,18 @@ CONFIG_BFIN_GPTIMERS=m
327# CONFIG_DMA_UNCACHED_4M is not set 355# CONFIG_DMA_UNCACHED_4M is not set
328# CONFIG_DMA_UNCACHED_2M is not set 356# CONFIG_DMA_UNCACHED_2M is not set
329CONFIG_DMA_UNCACHED_1M=y 357CONFIG_DMA_UNCACHED_1M=y
358# CONFIG_DMA_UNCACHED_512K is not set
359# CONFIG_DMA_UNCACHED_256K is not set
360# CONFIG_DMA_UNCACHED_128K is not set
330# CONFIG_DMA_UNCACHED_NONE is not set 361# CONFIG_DMA_UNCACHED_NONE is not set
331 362
332# 363#
333# Cache Support 364# Cache Support
334# 365#
335CONFIG_BFIN_ICACHE=y 366CONFIG_BFIN_ICACHE=y
336# CONFIG_BFIN_ICACHE_LOCK is not set 367CONFIG_BFIN_EXTMEM_ICACHEABLE=y
337CONFIG_BFIN_DCACHE=y 368CONFIG_BFIN_DCACHE=y
338# CONFIG_BFIN_DCACHE_BANKA is not set 369# CONFIG_BFIN_DCACHE_BANKA is not set
339CONFIG_BFIN_EXTMEM_ICACHEABLE=y
340CONFIG_BFIN_EXTMEM_DCACHEABLE=y 370CONFIG_BFIN_EXTMEM_DCACHEABLE=y
341CONFIG_BFIN_EXTMEM_WRITEBACK=y 371CONFIG_BFIN_EXTMEM_WRITEBACK=y
342# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 372# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
@@ -347,6 +377,10 @@ CONFIG_BFIN_EXTMEM_WRITEBACK=y
347# CONFIG_MPU is not set 377# CONFIG_MPU is not set
348 378
349# 379#
380# Asynchronous Memory Configuration
381#
382
383#
350# EBIU_AMGCTL Global Control 384# EBIU_AMGCTL Global Control
351# 385#
352CONFIG_C_AMCKEN=y 386CONFIG_C_AMCKEN=y
@@ -399,11 +433,6 @@ CONFIG_NET=y
399CONFIG_PACKET=y 433CONFIG_PACKET=y
400# CONFIG_PACKET_MMAP is not set 434# CONFIG_PACKET_MMAP is not set
401CONFIG_UNIX=y 435CONFIG_UNIX=y
402CONFIG_XFRM=y
403# CONFIG_XFRM_USER is not set
404# CONFIG_XFRM_SUB_POLICY is not set
405# CONFIG_XFRM_MIGRATE is not set
406# CONFIG_XFRM_STATISTICS is not set
407# CONFIG_NET_KEY is not set 436# CONFIG_NET_KEY is not set
408CONFIG_INET=y 437CONFIG_INET=y
409# CONFIG_IP_MULTICAST is not set 438# CONFIG_IP_MULTICAST is not set
@@ -427,7 +456,6 @@ CONFIG_IP_PNP=y
427# CONFIG_INET_XFRM_MODE_BEET is not set 456# CONFIG_INET_XFRM_MODE_BEET is not set
428# CONFIG_INET_LRO is not set 457# CONFIG_INET_LRO is not set
429# CONFIG_INET_DIAG is not set 458# CONFIG_INET_DIAG is not set
430CONFIG_INET_TCP_DIAG=y
431# CONFIG_TCP_CONG_ADVANCED is not set 459# CONFIG_TCP_CONG_ADVANCED is not set
432CONFIG_TCP_CONG_CUBIC=y 460CONFIG_TCP_CONG_CUBIC=y
433CONFIG_DEFAULT_TCP_CONG="cubic" 461CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -438,6 +466,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
438# CONFIG_NETFILTER is not set 466# CONFIG_NETFILTER is not set
439# CONFIG_IP_DCCP is not set 467# CONFIG_IP_DCCP is not set
440# CONFIG_IP_SCTP is not set 468# CONFIG_IP_SCTP is not set
469# CONFIG_RDS is not set
441# CONFIG_TIPC is not set 470# CONFIG_TIPC is not set
442# CONFIG_ATM is not set 471# CONFIG_ATM is not set
443# CONFIG_BRIDGE is not set 472# CONFIG_BRIDGE is not set
@@ -451,7 +480,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
451# CONFIG_LAPB is not set 480# CONFIG_LAPB is not set
452# CONFIG_ECONET is not set 481# CONFIG_ECONET is not set
453# CONFIG_WAN_ROUTER is not set 482# CONFIG_WAN_ROUTER is not set
483# CONFIG_PHONET is not set
484# CONFIG_IEEE802154 is not set
454# CONFIG_NET_SCHED is not set 485# CONFIG_NET_SCHED is not set
486# CONFIG_DCB is not set
455 487
456# 488#
457# Network testing 489# Network testing
@@ -462,13 +494,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
462# CONFIG_IRDA is not set 494# CONFIG_IRDA is not set
463# CONFIG_BT is not set 495# CONFIG_BT is not set
464# CONFIG_AF_RXRPC is not set 496# CONFIG_AF_RXRPC is not set
465# CONFIG_PHONET is not set 497# CONFIG_WIRELESS is not set
466CONFIG_WIRELESS=y 498# CONFIG_WIMAX is not set
467# CONFIG_CFG80211 is not set
468CONFIG_WIRELESS_OLD_REGULATORY=y
469# CONFIG_WIRELESS_EXT is not set
470# CONFIG_MAC80211 is not set
471# CONFIG_IEEE80211 is not set
472# CONFIG_RFKILL is not set 499# CONFIG_RFKILL is not set
473# CONFIG_NET_9P is not set 500# CONFIG_NET_9P is not set
474 501
@@ -489,6 +516,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
489# CONFIG_CONNECTOR is not set 516# CONFIG_CONNECTOR is not set
490CONFIG_MTD=y 517CONFIG_MTD=y
491# CONFIG_MTD_DEBUG is not set 518# CONFIG_MTD_DEBUG is not set
519# CONFIG_MTD_TESTS is not set
492# CONFIG_MTD_CONCAT is not set 520# CONFIG_MTD_CONCAT is not set
493CONFIG_MTD_PARTITIONS=y 521CONFIG_MTD_PARTITIONS=y
494# CONFIG_MTD_REDBOOT_PARTS is not set 522# CONFIG_MTD_REDBOOT_PARTS is not set
@@ -549,6 +577,7 @@ CONFIG_MTD_PHYSMAP=y
549# CONFIG_MTD_DATAFLASH is not set 577# CONFIG_MTD_DATAFLASH is not set
550CONFIG_MTD_M25P80=y 578CONFIG_MTD_M25P80=y
551CONFIG_M25PXX_USE_FAST_READ=y 579CONFIG_M25PXX_USE_FAST_READ=y
580# CONFIG_MTD_SST25L is not set
552# CONFIG_MTD_SLRAM is not set 581# CONFIG_MTD_SLRAM is not set
553# CONFIG_MTD_PHRAM is not set 582# CONFIG_MTD_PHRAM is not set
554# CONFIG_MTD_MTDRAM is not set 583# CONFIG_MTD_MTDRAM is not set
@@ -564,11 +593,6 @@ CONFIG_MTD_NAND=m
564# CONFIG_MTD_NAND_VERIFY_WRITE is not set 593# CONFIG_MTD_NAND_VERIFY_WRITE is not set
565# CONFIG_MTD_NAND_ECC_SMC is not set 594# CONFIG_MTD_NAND_ECC_SMC is not set
566# CONFIG_MTD_NAND_MUSEUM_IDS is not set 595# CONFIG_MTD_NAND_MUSEUM_IDS is not set
567CONFIG_MTD_NAND_BFIN=m
568CONFIG_BFIN_NAND_BASE=0x20212000
569CONFIG_BFIN_NAND_CLE=2
570CONFIG_BFIN_NAND_ALE=1
571CONFIG_BFIN_NAND_READY=3
572CONFIG_MTD_NAND_IDS=m 596CONFIG_MTD_NAND_IDS=m
573# CONFIG_MTD_NAND_BF5XX is not set 597# CONFIG_MTD_NAND_BF5XX is not set
574# CONFIG_MTD_NAND_DISKONCHIP is not set 598# CONFIG_MTD_NAND_DISKONCHIP is not set
@@ -578,6 +602,11 @@ CONFIG_MTD_NAND_IDS=m
578# CONFIG_MTD_ONENAND is not set 602# CONFIG_MTD_ONENAND is not set
579 603
580# 604#
605# LPDDR flash memory drivers
606#
607# CONFIG_MTD_LPDDR is not set
608
609#
581# UBI - Unsorted block images 610# UBI - Unsorted block images
582# 611#
583# CONFIG_MTD_UBI is not set 612# CONFIG_MTD_UBI is not set
@@ -595,10 +624,20 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
595# CONFIG_ATA_OVER_ETH is not set 624# CONFIG_ATA_OVER_ETH is not set
596# CONFIG_BLK_DEV_HD is not set 625# CONFIG_BLK_DEV_HD is not set
597CONFIG_MISC_DEVICES=y 626CONFIG_MISC_DEVICES=y
598# CONFIG_EEPROM_93CX6 is not set 627# CONFIG_AD525X_DPOT is not set
599# CONFIG_ICS932S401 is not set 628# CONFIG_ICS932S401 is not set
600# CONFIG_ENCLOSURE_SERVICES is not set 629# CONFIG_ENCLOSURE_SERVICES is not set
630# CONFIG_ISL29003 is not set
601# CONFIG_C2PORT is not set 631# CONFIG_C2PORT is not set
632
633#
634# EEPROM support
635#
636# CONFIG_EEPROM_AT24 is not set
637# CONFIG_EEPROM_AT25 is not set
638# CONFIG_EEPROM_LEGACY is not set
639# CONFIG_EEPROM_MAX6875 is not set
640# CONFIG_EEPROM_93CX6 is not set
602CONFIG_HAVE_IDE=y 641CONFIG_HAVE_IDE=y
603# CONFIG_IDE is not set 642# CONFIG_IDE is not set
604 643
@@ -622,10 +661,6 @@ CONFIG_BLK_DEV_SR=m
622# CONFIG_BLK_DEV_SR_VENDOR is not set 661# CONFIG_BLK_DEV_SR_VENDOR is not set
623# CONFIG_CHR_DEV_SG is not set 662# CONFIG_CHR_DEV_SG is not set
624# CONFIG_CHR_DEV_SCH is not set 663# CONFIG_CHR_DEV_SCH is not set
625
626#
627# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
628#
629# CONFIG_SCSI_MULTI_LUN is not set 664# CONFIG_SCSI_MULTI_LUN is not set
630# CONFIG_SCSI_CONSTANTS is not set 665# CONFIG_SCSI_CONSTANTS is not set
631# CONFIG_SCSI_LOGGING is not set 666# CONFIG_SCSI_LOGGING is not set
@@ -642,6 +677,7 @@ CONFIG_SCSI_WAIT_SCAN=m
642# CONFIG_SCSI_SRP_ATTRS is not set 677# CONFIG_SCSI_SRP_ATTRS is not set
643# CONFIG_SCSI_LOWLEVEL is not set 678# CONFIG_SCSI_LOWLEVEL is not set
644# CONFIG_SCSI_DH is not set 679# CONFIG_SCSI_DH is not set
680# CONFIG_SCSI_OSD_INITIATOR is not set
645# CONFIG_ATA is not set 681# CONFIG_ATA is not set
646# CONFIG_MD is not set 682# CONFIG_MD is not set
647CONFIG_NETDEVICES=y 683CONFIG_NETDEVICES=y
@@ -666,6 +702,9 @@ CONFIG_PHYLIB=y
666# CONFIG_BROADCOM_PHY is not set 702# CONFIG_BROADCOM_PHY is not set
667# CONFIG_ICPLUS_PHY is not set 703# CONFIG_ICPLUS_PHY is not set
668# CONFIG_REALTEK_PHY is not set 704# CONFIG_REALTEK_PHY is not set
705# CONFIG_NATIONAL_PHY is not set
706# CONFIG_STE10XP is not set
707# CONFIG_LSI_ET1011C_PHY is not set
669# CONFIG_FIXED_PHY is not set 708# CONFIG_FIXED_PHY is not set
670# CONFIG_MDIO_BITBANG is not set 709# CONFIG_MDIO_BITBANG is not set
671CONFIG_NET_ETHERNET=y 710CONFIG_NET_ETHERNET=y
@@ -675,9 +714,12 @@ CONFIG_BFIN_TX_DESC_NUM=10
675CONFIG_BFIN_RX_DESC_NUM=20 714CONFIG_BFIN_RX_DESC_NUM=20
676CONFIG_BFIN_MAC_RMII=y 715CONFIG_BFIN_MAC_RMII=y
677# CONFIG_SMC91X is not set 716# CONFIG_SMC91X is not set
678# CONFIG_SMSC911X is not set
679# CONFIG_DM9000 is not set 717# CONFIG_DM9000 is not set
680# CONFIG_ENC28J60 is not set 718# CONFIG_ENC28J60 is not set
719# CONFIG_ETHOC is not set
720# CONFIG_SMSC911X is not set
721# CONFIG_DNET is not set
722# CONFIG_ADF702X is not set
681# CONFIG_IBM_NEW_EMAC_ZMII is not set 723# CONFIG_IBM_NEW_EMAC_ZMII is not set
682# CONFIG_IBM_NEW_EMAC_RGMII is not set 724# CONFIG_IBM_NEW_EMAC_RGMII is not set
683# CONFIG_IBM_NEW_EMAC_TAH is not set 725# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -686,15 +728,16 @@ CONFIG_BFIN_MAC_RMII=y
686# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 728# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
687# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 729# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
688# CONFIG_B44 is not set 730# CONFIG_B44 is not set
731# CONFIG_KS8842 is not set
732# CONFIG_KS8851 is not set
733# CONFIG_KS8851_MLL is not set
689# CONFIG_NETDEV_1000 is not set 734# CONFIG_NETDEV_1000 is not set
690# CONFIG_NETDEV_10000 is not set 735# CONFIG_NETDEV_10000 is not set
736# CONFIG_WLAN is not set
691 737
692# 738#
693# Wireless LAN 739# Enable WiMAX (Networking options) to see the WiMAX drivers
694# 740#
695# CONFIG_WLAN_PRE80211 is not set
696# CONFIG_WLAN_80211 is not set
697# CONFIG_IWLWIFI_LEDS is not set
698 741
699# 742#
700# USB Network Adapters 743# USB Network Adapters
@@ -744,7 +787,11 @@ CONFIG_INPUT_MISC=y
744# CONFIG_INPUT_YEALINK is not set 787# CONFIG_INPUT_YEALINK is not set
745# CONFIG_INPUT_CM109 is not set 788# CONFIG_INPUT_CM109 is not set
746# CONFIG_INPUT_UINPUT is not set 789# CONFIG_INPUT_UINPUT is not set
747# CONFIG_CONFIG_INPUT_PCF8574 is not set 790# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
791# CONFIG_INPUT_BFIN_ROTARY is not set
792# CONFIG_INPUT_AD714X is not set
793# CONFIG_INPUT_ADXL34X is not set
794# CONFIG_INPUT_PCF8574 is not set
748 795
749# 796#
750# Hardware I/O ports 797# Hardware I/O ports
@@ -755,16 +802,13 @@ CONFIG_INPUT_MISC=y
755# 802#
756# Character devices 803# Character devices
757# 804#
758# CONFIG_AD9960 is not set
759CONFIG_BFIN_DMA_INTERFACE=m 805CONFIG_BFIN_DMA_INTERFACE=m
760# CONFIG_BFIN_PPI is not set 806# CONFIG_BFIN_PPI is not set
761# CONFIG_BFIN_PPIFCD is not set 807# CONFIG_BFIN_PPIFCD is not set
762# CONFIG_BFIN_SIMPLE_TIMER is not set 808# CONFIG_BFIN_SIMPLE_TIMER is not set
763# CONFIG_BFIN_SPI_ADC is not set 809# CONFIG_BFIN_SPI_ADC is not set
764# CONFIG_BFIN_SPORT is not set 810# CONFIG_BFIN_SPORT is not set
765# CONFIG_BFIN_TIMER_LATENCY is not set
766# CONFIG_BFIN_TWI_LCD is not set 811# CONFIG_BFIN_TWI_LCD is not set
767CONFIG_SIMPLE_GPIO=m
768CONFIG_VT=y 812CONFIG_VT=y
769CONFIG_CONSOLE_TRANSLATIONS=y 813CONFIG_CONSOLE_TRANSLATIONS=y
770CONFIG_VT_CONSOLE=y 814CONFIG_VT_CONSOLE=y
@@ -782,6 +826,7 @@ CONFIG_BFIN_JTAG_COMM=m
782# 826#
783# Non-8250 serial port support 827# Non-8250 serial port support
784# 828#
829# CONFIG_SERIAL_MAX3100 is not set
785CONFIG_SERIAL_BFIN=y 830CONFIG_SERIAL_BFIN=y
786CONFIG_SERIAL_BFIN_CONSOLE=y 831CONFIG_SERIAL_BFIN_CONSOLE=y
787CONFIG_SERIAL_BFIN_DMA=y 832CONFIG_SERIAL_BFIN_DMA=y
@@ -793,14 +838,10 @@ CONFIG_SERIAL_CORE=y
793CONFIG_SERIAL_CORE_CONSOLE=y 838CONFIG_SERIAL_CORE_CONSOLE=y
794# CONFIG_SERIAL_BFIN_SPORT is not set 839# CONFIG_SERIAL_BFIN_SPORT is not set
795CONFIG_UNIX98_PTYS=y 840CONFIG_UNIX98_PTYS=y
841# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
796# CONFIG_LEGACY_PTYS is not set 842# CONFIG_LEGACY_PTYS is not set
797CONFIG_BFIN_OTP=y 843CONFIG_BFIN_OTP=y
798# CONFIG_BFIN_OTP_WRITE_ENABLE is not set 844# CONFIG_BFIN_OTP_WRITE_ENABLE is not set
799
800#
801# CAN, the car bus and industrial fieldbus
802#
803# CONFIG_CAN4LINUX is not set
804# CONFIG_IPMI_HANDLER is not set 845# CONFIG_IPMI_HANDLER is not set
805# CONFIG_HW_RANDOM is not set 846# CONFIG_HW_RANDOM is not set
806# CONFIG_R3964 is not set 847# CONFIG_R3964 is not set
@@ -808,6 +849,7 @@ CONFIG_BFIN_OTP=y
808# CONFIG_TCG_TPM is not set 849# CONFIG_TCG_TPM is not set
809CONFIG_I2C=y 850CONFIG_I2C=y
810CONFIG_I2C_BOARDINFO=y 851CONFIG_I2C_BOARDINFO=y
852CONFIG_I2C_COMPAT=y
811CONFIG_I2C_CHARDEV=m 853CONFIG_I2C_CHARDEV=m
812CONFIG_I2C_HELPER_AUTO=y 854CONFIG_I2C_HELPER_AUTO=y
813 855
@@ -841,14 +883,6 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
841# Miscellaneous I2C Chip support 883# Miscellaneous I2C Chip support
842# 884#
843# CONFIG_DS1682 is not set 885# CONFIG_DS1682 is not set
844# CONFIG_EEPROM_AT24 is not set
845# CONFIG_SENSORS_AD5252 is not set
846# CONFIG_EEPROM_LEGACY is not set
847# CONFIG_SENSORS_PCF8574 is not set
848# CONFIG_PCF8575 is not set
849# CONFIG_SENSORS_PCA9539 is not set
850# CONFIG_SENSORS_PCF8591 is not set
851# CONFIG_SENSORS_MAX6875 is not set
852# CONFIG_SENSORS_TSL2550 is not set 886# CONFIG_SENSORS_TSL2550 is not set
853# CONFIG_I2C_DEBUG_CORE is not set 887# CONFIG_I2C_DEBUG_CORE is not set
854# CONFIG_I2C_DEBUG_ALGO is not set 888# CONFIG_I2C_DEBUG_ALGO is not set
@@ -865,13 +899,18 @@ CONFIG_SPI_BFIN=y
865# CONFIG_SPI_BFIN_LOCK is not set 899# CONFIG_SPI_BFIN_LOCK is not set
866# CONFIG_SPI_BFIN_SPORT is not set 900# CONFIG_SPI_BFIN_SPORT is not set
867# CONFIG_SPI_BITBANG is not set 901# CONFIG_SPI_BITBANG is not set
902# CONFIG_SPI_GPIO is not set
868 903
869# 904#
870# SPI Protocol Masters 905# SPI Protocol Masters
871# 906#
872# CONFIG_EEPROM_AT25 is not set
873# CONFIG_SPI_SPIDEV is not set 907# CONFIG_SPI_SPIDEV is not set
874# CONFIG_SPI_TLE62X0 is not set 908# CONFIG_SPI_TLE62X0 is not set
909
910#
911# PPS support
912#
913# CONFIG_PPS is not set
875CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 914CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
876CONFIG_GPIOLIB=y 915CONFIG_GPIOLIB=y
877# CONFIG_DEBUG_GPIO is not set 916# CONFIG_DEBUG_GPIO is not set
@@ -887,6 +926,7 @@ CONFIG_GPIO_SYSFS=y
887# CONFIG_GPIO_MAX732X is not set 926# CONFIG_GPIO_MAX732X is not set
888# CONFIG_GPIO_PCA953X is not set 927# CONFIG_GPIO_PCA953X is not set
889# CONFIG_GPIO_PCF857X is not set 928# CONFIG_GPIO_PCF857X is not set
929# CONFIG_GPIO_ADP5588 is not set
890 930
891# 931#
892# PCI GPIO expanders: 932# PCI GPIO expanders:
@@ -897,11 +937,20 @@ CONFIG_GPIO_SYSFS=y
897# 937#
898# CONFIG_GPIO_MAX7301 is not set 938# CONFIG_GPIO_MAX7301 is not set
899# CONFIG_GPIO_MCP23S08 is not set 939# CONFIG_GPIO_MCP23S08 is not set
940# CONFIG_GPIO_MC33880 is not set
941
942#
943# AC97 GPIO expanders:
944#
900# CONFIG_W1 is not set 945# CONFIG_W1 is not set
901# CONFIG_POWER_SUPPLY is not set 946# CONFIG_POWER_SUPPLY is not set
902CONFIG_HWMON=y 947CONFIG_HWMON=y
903# CONFIG_HWMON_VID is not set 948# CONFIG_HWMON_VID is not set
904# CONFIG_SENSORS_AD5252 is not set 949# CONFIG_HWMON_DEBUG_CHIP is not set
950
951#
952# Native drivers
953#
905# CONFIG_SENSORS_AD7414 is not set 954# CONFIG_SENSORS_AD7414 is not set
906# CONFIG_SENSORS_AD7418 is not set 955# CONFIG_SENSORS_AD7418 is not set
907# CONFIG_SENSORS_ADCXX is not set 956# CONFIG_SENSORS_ADCXX is not set
@@ -914,11 +963,13 @@ CONFIG_HWMON=y
914# CONFIG_SENSORS_ADT7462 is not set 963# CONFIG_SENSORS_ADT7462 is not set
915# CONFIG_SENSORS_ADT7470 is not set 964# CONFIG_SENSORS_ADT7470 is not set
916# CONFIG_SENSORS_ADT7473 is not set 965# CONFIG_SENSORS_ADT7473 is not set
966# CONFIG_SENSORS_ADT7475 is not set
917# CONFIG_SENSORS_ATXP1 is not set 967# CONFIG_SENSORS_ATXP1 is not set
918# CONFIG_SENSORS_DS1621 is not set 968# CONFIG_SENSORS_DS1621 is not set
919# CONFIG_SENSORS_F71805F is not set 969# CONFIG_SENSORS_F71805F is not set
920# CONFIG_SENSORS_F71882FG is not set 970# CONFIG_SENSORS_F71882FG is not set
921# CONFIG_SENSORS_F75375S is not set 971# CONFIG_SENSORS_F75375S is not set
972# CONFIG_SENSORS_G760A is not set
922# CONFIG_SENSORS_GL518SM is not set 973# CONFIG_SENSORS_GL518SM is not set
923# CONFIG_SENSORS_GL520SM is not set 974# CONFIG_SENSORS_GL520SM is not set
924# CONFIG_SENSORS_IT87 is not set 975# CONFIG_SENSORS_IT87 is not set
@@ -934,17 +985,24 @@ CONFIG_HWMON=y
934# CONFIG_SENSORS_LM90 is not set 985# CONFIG_SENSORS_LM90 is not set
935# CONFIG_SENSORS_LM92 is not set 986# CONFIG_SENSORS_LM92 is not set
936# CONFIG_SENSORS_LM93 is not set 987# CONFIG_SENSORS_LM93 is not set
988# CONFIG_SENSORS_LTC4215 is not set
989# CONFIG_SENSORS_LTC4245 is not set
990# CONFIG_SENSORS_LM95241 is not set
937# CONFIG_SENSORS_MAX1111 is not set 991# CONFIG_SENSORS_MAX1111 is not set
938# CONFIG_SENSORS_MAX1619 is not set 992# CONFIG_SENSORS_MAX1619 is not set
939# CONFIG_SENSORS_MAX6650 is not set 993# CONFIG_SENSORS_MAX6650 is not set
940# CONFIG_SENSORS_PC87360 is not set 994# CONFIG_SENSORS_PC87360 is not set
941# CONFIG_SENSORS_PC87427 is not set 995# CONFIG_SENSORS_PC87427 is not set
996# CONFIG_SENSORS_PCF8591 is not set
997# CONFIG_SENSORS_SHT15 is not set
942# CONFIG_SENSORS_DME1737 is not set 998# CONFIG_SENSORS_DME1737 is not set
943# CONFIG_SENSORS_SMSC47M1 is not set 999# CONFIG_SENSORS_SMSC47M1 is not set
944# CONFIG_SENSORS_SMSC47M192 is not set 1000# CONFIG_SENSORS_SMSC47M192 is not set
945# CONFIG_SENSORS_SMSC47B397 is not set 1001# CONFIG_SENSORS_SMSC47B397 is not set
946# CONFIG_SENSORS_ADS7828 is not set 1002# CONFIG_SENSORS_ADS7828 is not set
947# CONFIG_SENSORS_THMC50 is not set 1003# CONFIG_SENSORS_THMC50 is not set
1004# CONFIG_SENSORS_TMP401 is not set
1005# CONFIG_SENSORS_TMP421 is not set
948# CONFIG_SENSORS_VT1211 is not set 1006# CONFIG_SENSORS_VT1211 is not set
949# CONFIG_SENSORS_W83781D is not set 1007# CONFIG_SENSORS_W83781D is not set
950# CONFIG_SENSORS_W83791D is not set 1008# CONFIG_SENSORS_W83791D is not set
@@ -954,9 +1012,8 @@ CONFIG_HWMON=y
954# CONFIG_SENSORS_W83L786NG is not set 1012# CONFIG_SENSORS_W83L786NG is not set
955# CONFIG_SENSORS_W83627HF is not set 1013# CONFIG_SENSORS_W83627HF is not set
956# CONFIG_SENSORS_W83627EHF is not set 1014# CONFIG_SENSORS_W83627EHF is not set
957# CONFIG_HWMON_DEBUG_CHIP is not set 1015# CONFIG_SENSORS_LIS3_SPI is not set
958# CONFIG_THERMAL is not set 1016# CONFIG_THERMAL is not set
959# CONFIG_THERMAL_HWMON is not set
960CONFIG_WATCHDOG=y 1017CONFIG_WATCHDOG=y
961# CONFIG_WATCHDOG_NOWAYOUT is not set 1018# CONFIG_WATCHDOG_NOWAYOUT is not set
962 1019
@@ -983,28 +1040,20 @@ CONFIG_SSB_POSSIBLE=y
983# CONFIG_MFD_CORE is not set 1040# CONFIG_MFD_CORE is not set
984# CONFIG_MFD_SM501 is not set 1041# CONFIG_MFD_SM501 is not set
985# CONFIG_HTC_PASIC3 is not set 1042# CONFIG_HTC_PASIC3 is not set
1043# CONFIG_TPS65010 is not set
1044# CONFIG_TWL4030_CORE is not set
986# CONFIG_MFD_TMIO is not set 1045# CONFIG_MFD_TMIO is not set
987# CONFIG_PMIC_DA903X is not set 1046# CONFIG_PMIC_DA903X is not set
988# CONFIG_PMIC_ADP5520 is not set 1047# CONFIG_PMIC_ADP5520 is not set
989# CONFIG_MFD_WM8400 is not set 1048# CONFIG_MFD_WM8400 is not set
1049# CONFIG_MFD_WM831X is not set
990# CONFIG_MFD_WM8350_I2C is not set 1050# CONFIG_MFD_WM8350_I2C is not set
1051# CONFIG_MFD_PCF50633 is not set
1052# CONFIG_MFD_MC13783 is not set
1053# CONFIG_AB3100_CORE is not set
1054# CONFIG_EZX_PCAP is not set
991# CONFIG_REGULATOR is not set 1055# CONFIG_REGULATOR is not set
992 1056# CONFIG_MEDIA_SUPPORT is not set
993#
994# Multimedia devices
995#
996
997#
998# Multimedia core support
999#
1000# CONFIG_VIDEO_DEV is not set
1001# CONFIG_DVB_CORE is not set
1002# CONFIG_VIDEO_MEDIA is not set
1003
1004#
1005# Multimedia drivers
1006#
1007# CONFIG_DAB is not set
1008 1057
1009# 1058#
1010# Graphics support 1059# Graphics support
@@ -1026,7 +1075,6 @@ CONFIG_DUMMY_CONSOLE=y
1026# CONFIG_SOUND is not set 1075# CONFIG_SOUND is not set
1027CONFIG_HID_SUPPORT=y 1076CONFIG_HID_SUPPORT=y
1028CONFIG_HID=y 1077CONFIG_HID=y
1029# CONFIG_HID_DEBUG is not set
1030# CONFIG_HIDRAW is not set 1078# CONFIG_HIDRAW is not set
1031 1079
1032# 1080#
@@ -1039,30 +1087,35 @@ CONFIG_USB_HID=y
1039# 1087#
1040# Special HID drivers 1088# Special HID drivers
1041# 1089#
1042CONFIG_HID_COMPAT=y
1043CONFIG_HID_A4TECH=y 1090CONFIG_HID_A4TECH=y
1044CONFIG_HID_APPLE=y 1091CONFIG_HID_APPLE=y
1045CONFIG_HID_BELKIN=y 1092CONFIG_HID_BELKIN=y
1046CONFIG_HID_BRIGHT=y
1047CONFIG_HID_CHERRY=y 1093CONFIG_HID_CHERRY=y
1048CONFIG_HID_CHICONY=y 1094CONFIG_HID_CHICONY=y
1049CONFIG_HID_CYPRESS=y 1095CONFIG_HID_CYPRESS=y
1050CONFIG_HID_DELL=y 1096# CONFIG_HID_DRAGONRISE is not set
1051CONFIG_HID_EZKEY=y 1097CONFIG_HID_EZKEY=y
1098# CONFIG_HID_KYE is not set
1052CONFIG_HID_GYRATION=y 1099CONFIG_HID_GYRATION=y
1100# CONFIG_HID_TWINHAN is not set
1101# CONFIG_HID_KENSINGTON is not set
1053CONFIG_HID_LOGITECH=y 1102CONFIG_HID_LOGITECH=y
1054# CONFIG_LOGITECH_FF is not set 1103# CONFIG_LOGITECH_FF is not set
1055# CONFIG_LOGIRUMBLEPAD2_FF is not set 1104# CONFIG_LOGIRUMBLEPAD2_FF is not set
1056CONFIG_HID_MICROSOFT=y 1105CONFIG_HID_MICROSOFT=y
1057CONFIG_HID_MONTEREY=y 1106CONFIG_HID_MONTEREY=y
1107# CONFIG_HID_NTRIG is not set
1058CONFIG_HID_PANTHERLORD=y 1108CONFIG_HID_PANTHERLORD=y
1059# CONFIG_PANTHERLORD_FF is not set 1109# CONFIG_PANTHERLORD_FF is not set
1060CONFIG_HID_PETALYNX=y 1110CONFIG_HID_PETALYNX=y
1061CONFIG_HID_SAMSUNG=y 1111CONFIG_HID_SAMSUNG=y
1062CONFIG_HID_SONY=y 1112CONFIG_HID_SONY=y
1063CONFIG_HID_SUNPLUS=y 1113CONFIG_HID_SUNPLUS=y
1064CONFIG_THRUSTMASTER_FF=m 1114# CONFIG_HID_GREENASIA is not set
1065CONFIG_ZEROPLUS_FF=m 1115# CONFIG_HID_SMARTJOYPLUS is not set
1116# CONFIG_HID_TOPSEED is not set
1117# CONFIG_HID_THRUSTMASTER is not set
1118# CONFIG_HID_ZEROPLUS is not set
1066CONFIG_USB_SUPPORT=y 1119CONFIG_USB_SUPPORT=y
1067CONFIG_USB_ARCH_HAS_HCD=y 1120CONFIG_USB_ARCH_HAS_HCD=y
1068# CONFIG_USB_ARCH_HAS_OHCI is not set 1121# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -1088,6 +1141,7 @@ CONFIG_USB_MON=y
1088# USB Host Controller Drivers 1141# USB Host Controller Drivers
1089# 1142#
1090# CONFIG_USB_C67X00_HCD is not set 1143# CONFIG_USB_C67X00_HCD is not set
1144# CONFIG_USB_OXU210HP_HCD is not set
1091# CONFIG_USB_ISP116X_HCD is not set 1145# CONFIG_USB_ISP116X_HCD is not set
1092# CONFIG_USB_ISP1760_HCD is not set 1146# CONFIG_USB_ISP1760_HCD is not set
1093# CONFIG_USB_ISP1362_HCD is not set 1147# CONFIG_USB_ISP1362_HCD is not set
@@ -1118,18 +1172,17 @@ CONFIG_USB_INVENTRA_DMA=y
1118# CONFIG_USB_TMC is not set 1172# CONFIG_USB_TMC is not set
1119 1173
1120# 1174#
1121# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1175# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1122# 1176#
1123 1177
1124# 1178#
1125# see USB_STORAGE Help for more information 1179# also be needed; see USB_STORAGE Help for more info
1126# 1180#
1127CONFIG_USB_STORAGE=y 1181CONFIG_USB_STORAGE=y
1128# CONFIG_USB_STORAGE_DEBUG is not set 1182# CONFIG_USB_STORAGE_DEBUG is not set
1129# CONFIG_USB_STORAGE_DATAFAB is not set 1183# CONFIG_USB_STORAGE_DATAFAB is not set
1130# CONFIG_USB_STORAGE_FREECOM is not set 1184# CONFIG_USB_STORAGE_FREECOM is not set
1131# CONFIG_USB_STORAGE_ISD200 is not set 1185# CONFIG_USB_STORAGE_ISD200 is not set
1132# CONFIG_USB_STORAGE_DPCM is not set
1133# CONFIG_USB_STORAGE_USBAT is not set 1186# CONFIG_USB_STORAGE_USBAT is not set
1134# CONFIG_USB_STORAGE_SDDR09 is not set 1187# CONFIG_USB_STORAGE_SDDR09 is not set
1135# CONFIG_USB_STORAGE_SDDR55 is not set 1188# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1165,7 +1218,6 @@ CONFIG_USB_STORAGE=y
1165# CONFIG_USB_LED is not set 1218# CONFIG_USB_LED is not set
1166# CONFIG_USB_CYPRESS_CY7C63 is not set 1219# CONFIG_USB_CYPRESS_CY7C63 is not set
1167# CONFIG_USB_CYTHERM is not set 1220# CONFIG_USB_CYTHERM is not set
1168# CONFIG_USB_PHIDGET is not set
1169# CONFIG_USB_IDMOUSE is not set 1221# CONFIG_USB_IDMOUSE is not set
1170# CONFIG_USB_FTDI_ELAN is not set 1222# CONFIG_USB_FTDI_ELAN is not set
1171# CONFIG_USB_APPLEDISPLAY is not set 1223# CONFIG_USB_APPLEDISPLAY is not set
@@ -1177,6 +1229,13 @@ CONFIG_USB_STORAGE=y
1177# CONFIG_USB_ISIGHTFW is not set 1229# CONFIG_USB_ISIGHTFW is not set
1178# CONFIG_USB_VST is not set 1230# CONFIG_USB_VST is not set
1179# CONFIG_USB_GADGET is not set 1231# CONFIG_USB_GADGET is not set
1232
1233#
1234# OTG and related infrastructure
1235#
1236CONFIG_USB_OTG_UTILS=y
1237# CONFIG_USB_GPIO_VBUS is not set
1238CONFIG_NOP_USB_XCEIV=y
1180# CONFIG_MMC is not set 1239# CONFIG_MMC is not set
1181# CONFIG_MEMSTICK is not set 1240# CONFIG_MEMSTICK is not set
1182# CONFIG_NEW_LEDS is not set 1241# CONFIG_NEW_LEDS is not set
@@ -1212,6 +1271,7 @@ CONFIG_RTC_INTF_DEV=y
1212# CONFIG_RTC_DRV_S35390A is not set 1271# CONFIG_RTC_DRV_S35390A is not set
1213# CONFIG_RTC_DRV_FM3130 is not set 1272# CONFIG_RTC_DRV_FM3130 is not set
1214# CONFIG_RTC_DRV_RX8581 is not set 1273# CONFIG_RTC_DRV_RX8581 is not set
1274# CONFIG_RTC_DRV_RX8025 is not set
1215 1275
1216# 1276#
1217# SPI RTC drivers 1277# SPI RTC drivers
@@ -1223,6 +1283,7 @@ CONFIG_RTC_INTF_DEV=y
1223# CONFIG_RTC_DRV_R9701 is not set 1283# CONFIG_RTC_DRV_R9701 is not set
1224# CONFIG_RTC_DRV_RS5C348 is not set 1284# CONFIG_RTC_DRV_RS5C348 is not set
1225# CONFIG_RTC_DRV_DS3234 is not set 1285# CONFIG_RTC_DRV_DS3234 is not set
1286# CONFIG_RTC_DRV_PCF2123 is not set
1226 1287
1227# 1288#
1228# Platform RTC drivers 1289# Platform RTC drivers
@@ -1243,10 +1304,21 @@ CONFIG_RTC_INTF_DEV=y
1243# 1304#
1244CONFIG_RTC_DRV_BFIN=y 1305CONFIG_RTC_DRV_BFIN=y
1245# CONFIG_DMADEVICES is not set 1306# CONFIG_DMADEVICES is not set
1307# CONFIG_AUXDISPLAY is not set
1246# CONFIG_UIO is not set 1308# CONFIG_UIO is not set
1309
1310#
1311# TI VLYNQ
1312#
1247# CONFIG_STAGING is not set 1313# CONFIG_STAGING is not set
1248 1314
1249# 1315#
1316# Firmware Drivers
1317#
1318# CONFIG_FIRMWARE_MEMMAP is not set
1319# CONFIG_SIGMA is not set
1320
1321#
1250# File systems 1322# File systems
1251# 1323#
1252CONFIG_EXT2_FS=m 1324CONFIG_EXT2_FS=m
@@ -1256,9 +1328,13 @@ CONFIG_EXT2_FS=m
1256# CONFIG_REISERFS_FS is not set 1328# CONFIG_REISERFS_FS is not set
1257# CONFIG_JFS_FS is not set 1329# CONFIG_JFS_FS is not set
1258# CONFIG_FS_POSIX_ACL is not set 1330# CONFIG_FS_POSIX_ACL is not set
1259CONFIG_FILE_LOCKING=y
1260# CONFIG_XFS_FS is not set 1331# CONFIG_XFS_FS is not set
1332# CONFIG_GFS2_FS is not set
1261# CONFIG_OCFS2_FS is not set 1333# CONFIG_OCFS2_FS is not set
1334# CONFIG_BTRFS_FS is not set
1335# CONFIG_NILFS2_FS is not set
1336CONFIG_FILE_LOCKING=y
1337CONFIG_FSNOTIFY=y
1262# CONFIG_DNOTIFY is not set 1338# CONFIG_DNOTIFY is not set
1263CONFIG_INOTIFY=y 1339CONFIG_INOTIFY=y
1264CONFIG_INOTIFY_USER=y 1340CONFIG_INOTIFY_USER=y
@@ -1268,6 +1344,11 @@ CONFIG_INOTIFY_USER=y
1268# CONFIG_FUSE_FS is not set 1344# CONFIG_FUSE_FS is not set
1269 1345
1270# 1346#
1347# Caches
1348#
1349# CONFIG_FSCACHE is not set
1350
1351#
1271# CD-ROM/DVD Filesystems 1352# CD-ROM/DVD Filesystems
1272# 1353#
1273CONFIG_ISO9660_FS=m 1354CONFIG_ISO9660_FS=m
@@ -1291,13 +1372,9 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1291CONFIG_PROC_FS=y 1372CONFIG_PROC_FS=y
1292CONFIG_PROC_SYSCTL=y 1373CONFIG_PROC_SYSCTL=y
1293CONFIG_SYSFS=y 1374CONFIG_SYSFS=y
1294# CONFIG_TMPFS is not set
1295# CONFIG_HUGETLB_PAGE is not set 1375# CONFIG_HUGETLB_PAGE is not set
1296# CONFIG_CONFIGFS_FS is not set 1376# CONFIG_CONFIGFS_FS is not set
1297 1377CONFIG_MISC_FILESYSTEMS=y
1298#
1299# Miscellaneous filesystems
1300#
1301# CONFIG_ADFS_FS is not set 1378# CONFIG_ADFS_FS is not set
1302# CONFIG_AFFS_FS is not set 1379# CONFIG_AFFS_FS is not set
1303# CONFIG_HFS_FS is not set 1380# CONFIG_HFS_FS is not set
@@ -1316,17 +1393,8 @@ CONFIG_JFFS2_ZLIB=y
1316# CONFIG_JFFS2_LZO is not set 1393# CONFIG_JFFS2_LZO is not set
1317CONFIG_JFFS2_RTIME=y 1394CONFIG_JFFS2_RTIME=y
1318# CONFIG_JFFS2_RUBIN is not set 1395# CONFIG_JFFS2_RUBIN is not set
1319CONFIG_YAFFS_FS=m
1320CONFIG_YAFFS_YAFFS1=y
1321# CONFIG_YAFFS_9BYTE_TAGS is not set
1322# CONFIG_YAFFS_DOES_ECC is not set
1323CONFIG_YAFFS_YAFFS2=y
1324CONFIG_YAFFS_AUTO_YAFFS2=y
1325# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
1326# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
1327# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
1328CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
1329# CONFIG_CRAMFS is not set 1396# CONFIG_CRAMFS is not set
1397# CONFIG_SQUASHFS is not set
1330# CONFIG_VXFS_FS is not set 1398# CONFIG_VXFS_FS is not set
1331# CONFIG_MINIX_FS is not set 1399# CONFIG_MINIX_FS is not set
1332# CONFIG_OMFS_FS is not set 1400# CONFIG_OMFS_FS is not set
@@ -1345,7 +1413,6 @@ CONFIG_LOCKD=m
1345CONFIG_LOCKD_V4=y 1413CONFIG_LOCKD_V4=y
1346CONFIG_NFS_COMMON=y 1414CONFIG_NFS_COMMON=y
1347CONFIG_SUNRPC=m 1415CONFIG_SUNRPC=m
1348# CONFIG_SUNRPC_REGISTER_V4 is not set
1349# CONFIG_RPCSEC_GSS_KRB5 is not set 1416# CONFIG_RPCSEC_GSS_KRB5 is not set
1350# CONFIG_RPCSEC_GSS_SPKM3 is not set 1417# CONFIG_RPCSEC_GSS_SPKM3 is not set
1351CONFIG_SMB_FS=m 1418CONFIG_SMB_FS=m
@@ -1360,7 +1427,7 @@ CONFIG_SMB_FS=m
1360# 1427#
1361# CONFIG_PARTITION_ADVANCED is not set 1428# CONFIG_PARTITION_ADVANCED is not set
1362CONFIG_MSDOS_PARTITION=y 1429CONFIG_MSDOS_PARTITION=y
1363CONFIG_NLS=m 1430CONFIG_NLS=y
1364CONFIG_NLS_DEFAULT="iso8859-1" 1431CONFIG_NLS_DEFAULT="iso8859-1"
1365CONFIG_NLS_CODEPAGE_437=m 1432CONFIG_NLS_CODEPAGE_437=m
1366# CONFIG_NLS_CODEPAGE_737 is not set 1433# CONFIG_NLS_CODEPAGE_737 is not set
@@ -1410,14 +1477,19 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1410CONFIG_ENABLE_MUST_CHECK=y 1477CONFIG_ENABLE_MUST_CHECK=y
1411CONFIG_FRAME_WARN=1024 1478CONFIG_FRAME_WARN=1024
1412# CONFIG_MAGIC_SYSRQ is not set 1479# CONFIG_MAGIC_SYSRQ is not set
1480# CONFIG_STRIP_ASM_SYMS is not set
1413# CONFIG_UNUSED_SYMBOLS is not set 1481# CONFIG_UNUSED_SYMBOLS is not set
1414CONFIG_DEBUG_FS=y 1482CONFIG_DEBUG_FS=y
1415# CONFIG_HEADERS_CHECK is not set 1483# CONFIG_HEADERS_CHECK is not set
1484CONFIG_DEBUG_SECTION_MISMATCH=y
1416CONFIG_DEBUG_KERNEL=y 1485CONFIG_DEBUG_KERNEL=y
1417CONFIG_DEBUG_SHIRQ=y 1486CONFIG_DEBUG_SHIRQ=y
1418CONFIG_DETECT_SOFTLOCKUP=y 1487CONFIG_DETECT_SOFTLOCKUP=y
1419# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1488# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1420CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1489CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1490CONFIG_DETECT_HUNG_TASK=y
1491# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1492CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1421CONFIG_SCHED_DEBUG=y 1493CONFIG_SCHED_DEBUG=y
1422# CONFIG_SCHEDSTATS is not set 1494# CONFIG_SCHEDSTATS is not set
1423# CONFIG_TIMER_STATS is not set 1495# CONFIG_TIMER_STATS is not set
@@ -1425,31 +1497,39 @@ CONFIG_SCHED_DEBUG=y
1425# CONFIG_DEBUG_SLAB is not set 1497# CONFIG_DEBUG_SLAB is not set
1426# CONFIG_DEBUG_SPINLOCK is not set 1498# CONFIG_DEBUG_SPINLOCK is not set
1427# CONFIG_DEBUG_MUTEXES is not set 1499# CONFIG_DEBUG_MUTEXES is not set
1500# CONFIG_DEBUG_LOCK_ALLOC is not set
1501# CONFIG_PROVE_LOCKING is not set
1502# CONFIG_LOCK_STAT is not set
1428# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1503# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1429# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1504# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1430# CONFIG_DEBUG_KOBJECT is not set 1505# CONFIG_DEBUG_KOBJECT is not set
1431CONFIG_DEBUG_BUGVERBOSE=y 1506CONFIG_DEBUG_BUGVERBOSE=y
1432CONFIG_DEBUG_INFO=y 1507CONFIG_DEBUG_INFO=y
1433# CONFIG_DEBUG_VM is not set 1508# CONFIG_DEBUG_VM is not set
1509# CONFIG_DEBUG_NOMMU_REGIONS is not set
1434# CONFIG_DEBUG_WRITECOUNT is not set 1510# CONFIG_DEBUG_WRITECOUNT is not set
1435# CONFIG_DEBUG_MEMORY_INIT is not set 1511# CONFIG_DEBUG_MEMORY_INIT is not set
1436# CONFIG_DEBUG_LIST is not set 1512# CONFIG_DEBUG_LIST is not set
1437# CONFIG_DEBUG_SG is not set 1513# CONFIG_DEBUG_SG is not set
1514# CONFIG_DEBUG_NOTIFIERS is not set
1515# CONFIG_DEBUG_CREDENTIALS is not set
1438# CONFIG_FRAME_POINTER is not set 1516# CONFIG_FRAME_POINTER is not set
1439# CONFIG_BOOT_PRINTK_DELAY is not set 1517# CONFIG_BOOT_PRINTK_DELAY is not set
1440# CONFIG_RCU_TORTURE_TEST is not set 1518# CONFIG_RCU_TORTURE_TEST is not set
1441# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1519# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1442# CONFIG_BACKTRACE_SELF_TEST is not set 1520# CONFIG_BACKTRACE_SELF_TEST is not set
1443# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1521# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1522# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1444# CONFIG_FAULT_INJECTION is not set 1523# CONFIG_FAULT_INJECTION is not set
1445 1524# CONFIG_PAGE_POISONING is not set
1446# 1525CONFIG_HAVE_FUNCTION_TRACER=y
1447# Tracers 1526CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1448# 1527CONFIG_TRACING_SUPPORT=y
1449# CONFIG_SCHED_TRACER is not set 1528# CONFIG_FTRACE is not set
1450# CONFIG_CONTEXT_SWITCH_TRACER is not set 1529# CONFIG_BRANCH_PROFILE_NONE is not set
1451# CONFIG_BOOT_TRACER is not set 1530# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1452# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1531# CONFIG_PROFILE_ALL_BRANCHES is not set
1532# CONFIG_DYNAMIC_DEBUG is not set
1453# CONFIG_SAMPLES is not set 1533# CONFIG_SAMPLES is not set
1454CONFIG_HAVE_ARCH_KGDB=y 1534CONFIG_HAVE_ARCH_KGDB=y
1455# CONFIG_KGDB is not set 1535# CONFIG_KGDB is not set
@@ -1474,6 +1554,7 @@ CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE=y
1474CONFIG_EARLY_PRINTK=y 1554CONFIG_EARLY_PRINTK=y
1475CONFIG_CPLB_INFO=y 1555CONFIG_CPLB_INFO=y
1476CONFIG_ACCESS_CHECK=y 1556CONFIG_ACCESS_CHECK=y
1557# CONFIG_BFIN_ISRAM_SELF_TEST is not set
1477 1558
1478# 1559#
1479# Security options 1560# Security options
@@ -1482,15 +1563,15 @@ CONFIG_ACCESS_CHECK=y
1482CONFIG_SECURITY=y 1563CONFIG_SECURITY=y
1483# CONFIG_SECURITYFS is not set 1564# CONFIG_SECURITYFS is not set
1484# CONFIG_SECURITY_NETWORK is not set 1565# CONFIG_SECURITY_NETWORK is not set
1566# CONFIG_SECURITY_PATH is not set
1485# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1567# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1486# CONFIG_SECURITY_ROOTPLUG is not set 1568# CONFIG_SECURITY_ROOTPLUG is not set
1487CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1569# CONFIG_SECURITY_TOMOYO is not set
1488CONFIG_CRYPTO=y 1570CONFIG_CRYPTO=y
1489 1571
1490# 1572#
1491# Crypto core or helper 1573# Crypto core or helper
1492# 1574#
1493# CONFIG_CRYPTO_FIPS is not set
1494# CONFIG_CRYPTO_MANAGER is not set 1575# CONFIG_CRYPTO_MANAGER is not set
1495# CONFIG_CRYPTO_MANAGER2 is not set 1576# CONFIG_CRYPTO_MANAGER2 is not set
1496# CONFIG_CRYPTO_GF128MUL is not set 1577# CONFIG_CRYPTO_GF128MUL is not set
@@ -1522,11 +1603,13 @@ CONFIG_CRYPTO=y
1522# 1603#
1523# CONFIG_CRYPTO_HMAC is not set 1604# CONFIG_CRYPTO_HMAC is not set
1524# CONFIG_CRYPTO_XCBC is not set 1605# CONFIG_CRYPTO_XCBC is not set
1606# CONFIG_CRYPTO_VMAC is not set
1525 1607
1526# 1608#
1527# Digest 1609# Digest
1528# 1610#
1529# CONFIG_CRYPTO_CRC32C is not set 1611# CONFIG_CRYPTO_CRC32C is not set
1612# CONFIG_CRYPTO_GHASH is not set
1530# CONFIG_CRYPTO_MD4 is not set 1613# CONFIG_CRYPTO_MD4 is not set
1531# CONFIG_CRYPTO_MD5 is not set 1614# CONFIG_CRYPTO_MD5 is not set
1532# CONFIG_CRYPTO_MICHAEL_MIC is not set 1615# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1563,6 +1646,7 @@ CONFIG_CRYPTO=y
1563# Compression 1646# Compression
1564# 1647#
1565# CONFIG_CRYPTO_DEFLATE is not set 1648# CONFIG_CRYPTO_DEFLATE is not set
1649# CONFIG_CRYPTO_ZLIB is not set
1566# CONFIG_CRYPTO_LZO is not set 1650# CONFIG_CRYPTO_LZO is not set
1567 1651
1568# 1652#
@@ -1570,11 +1654,13 @@ CONFIG_CRYPTO=y
1570# 1654#
1571# CONFIG_CRYPTO_ANSI_CPRNG is not set 1655# CONFIG_CRYPTO_ANSI_CPRNG is not set
1572CONFIG_CRYPTO_HW=y 1656CONFIG_CRYPTO_HW=y
1657# CONFIG_BINARY_PRINTF is not set
1573 1658
1574# 1659#
1575# Library routines 1660# Library routines
1576# 1661#
1577CONFIG_BITREVERSE=y 1662CONFIG_BITREVERSE=y
1663CONFIG_GENERIC_FIND_LAST_BIT=y
1578CONFIG_CRC_CCITT=m 1664CONFIG_CRC_CCITT=m
1579# CONFIG_CRC16 is not set 1665# CONFIG_CRC16 is not set
1580# CONFIG_CRC_T10DIF is not set 1666# CONFIG_CRC_T10DIF is not set
@@ -1584,6 +1670,8 @@ CONFIG_CRC32=y
1584# CONFIG_LIBCRC32C is not set 1670# CONFIG_LIBCRC32C is not set
1585CONFIG_ZLIB_INFLATE=y 1671CONFIG_ZLIB_INFLATE=y
1586CONFIG_ZLIB_DEFLATE=m 1672CONFIG_ZLIB_DEFLATE=m
1673CONFIG_DECOMPRESS_GZIP=y
1587CONFIG_HAS_IOMEM=y 1674CONFIG_HAS_IOMEM=y
1588CONFIG_HAS_IOPORT=y 1675CONFIG_HAS_IOPORT=y
1589CONFIG_HAS_DMA=y 1676CONFIG_HAS_DMA=y
1677CONFIG_NLATTR=y
diff --git a/arch/blackfin/configs/BF527-EZKIT-V2_defconfig b/arch/blackfin/configs/BF527-EZKIT-V2_defconfig
new file mode 100644
index 000000000000..d2dfcb0e7ce4
--- /dev/null
+++ b/arch/blackfin/configs/BF527-EZKIT-V2_defconfig
@@ -0,0 +1,1811 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.32.2
4#
5# CONFIG_MMU is not set
6# CONFIG_FPU is not set
7CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y
10CONFIG_GENERIC_CSUM=y
11CONFIG_GENERIC_BUG=y
12CONFIG_ZONE_DMA=y
13CONFIG_GENERIC_FIND_NEXT_BIT=y
14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
17CONFIG_GENERIC_GPIO=y
18CONFIG_FORCE_MAX_ZONEORDER=14
19CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_TRACE_IRQFLAGS_SUPPORT=y
23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
24CONFIG_CONSTRUCTORS=y
25
26#
27# General setup
28#
29CONFIG_EXPERIMENTAL=y
30CONFIG_BROKEN_ON_SMP=y
31CONFIG_INIT_ENV_ARG_LIMIT=32
32CONFIG_LOCALVERSION=""
33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_HAVE_KERNEL_GZIP=y
35CONFIG_HAVE_KERNEL_BZIP2=y
36CONFIG_HAVE_KERNEL_LZMA=y
37CONFIG_KERNEL_GZIP=y
38# CONFIG_KERNEL_BZIP2 is not set
39# CONFIG_KERNEL_LZMA 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
47#
48# RCU Subsystem
49#
50CONFIG_TREE_RCU=y
51# CONFIG_TREE_PREEMPT_RCU is not set
52# CONFIG_RCU_TRACE is not set
53CONFIG_RCU_FANOUT=32
54# CONFIG_RCU_FANOUT_EXACT is not set
55# CONFIG_TREE_RCU_TRACE is not set
56CONFIG_IKCONFIG=y
57CONFIG_IKCONFIG_PROC=y
58CONFIG_LOG_BUF_SHIFT=14
59# CONFIG_GROUP_SCHED is not set
60# CONFIG_CGROUPS is not set
61# CONFIG_SYSFS_DEPRECATED_V2 is not set
62# CONFIG_RELAY is not set
63# CONFIG_NAMESPACES is not set
64CONFIG_BLK_DEV_INITRD=y
65CONFIG_INITRAMFS_SOURCE=""
66CONFIG_RD_GZIP=y
67# CONFIG_RD_BZIP2 is not set
68# CONFIG_RD_LZMA is not set
69# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
70CONFIG_SYSCTL=y
71CONFIG_ANON_INODES=y
72CONFIG_EMBEDDED=y
73CONFIG_UID16=y
74# CONFIG_SYSCTL_SYSCALL is not set
75CONFIG_KALLSYMS=y
76# CONFIG_KALLSYMS_ALL is not set
77# CONFIG_KALLSYMS_EXTRA_PASS is not set
78CONFIG_HOTPLUG=y
79CONFIG_PRINTK=y
80CONFIG_BUG=y
81# CONFIG_ELF_CORE is not set
82CONFIG_BASE_FULL=y
83# CONFIG_FUTEX is not set
84CONFIG_EPOLL=y
85# CONFIG_SIGNALFD is not set
86# CONFIG_TIMERFD is not set
87# CONFIG_EVENTFD is not set
88# CONFIG_AIO is not set
89
90#
91# Kernel Performance Events And Counters
92#
93CONFIG_VM_EVENT_COUNTERS=y
94CONFIG_COMPAT_BRK=y
95CONFIG_SLAB=y
96# CONFIG_SLUB is not set
97# CONFIG_SLOB is not set
98CONFIG_MMAP_ALLOW_UNINITIALIZED=y
99# CONFIG_PROFILING is not set
100CONFIG_HAVE_OPROFILE=y
101
102#
103# GCOV-based kernel profiling
104#
105# CONFIG_GCOV_KERNEL is not set
106# CONFIG_SLOW_WORK is not set
107# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
108CONFIG_SLABINFO=y
109CONFIG_BASE_SMALL=0
110CONFIG_MODULES=y
111# CONFIG_MODULE_FORCE_LOAD is not set
112CONFIG_MODULE_UNLOAD=y
113# CONFIG_MODULE_FORCE_UNLOAD is not set
114# CONFIG_MODVERSIONS is not set
115# CONFIG_MODULE_SRCVERSION_ALL is not set
116CONFIG_BLOCK=y
117# CONFIG_LBDAF is not set
118# CONFIG_BLK_DEV_BSG is not set
119# CONFIG_BLK_DEV_INTEGRITY is not set
120
121#
122# IO Schedulers
123#
124CONFIG_IOSCHED_NOOP=y
125CONFIG_IOSCHED_AS=y
126# CONFIG_IOSCHED_DEADLINE is not set
127CONFIG_IOSCHED_CFQ=y
128CONFIG_DEFAULT_AS=y
129# CONFIG_DEFAULT_DEADLINE is not set
130# CONFIG_DEFAULT_CFQ is not set
131# CONFIG_DEFAULT_NOOP is not set
132CONFIG_DEFAULT_IOSCHED="anticipatory"
133# CONFIG_PREEMPT_NONE is not set
134CONFIG_PREEMPT_VOLUNTARY=y
135# CONFIG_PREEMPT is not set
136# CONFIG_FREEZER is not set
137
138#
139# Blackfin Processor Options
140#
141
142#
143# Processor and Board Settings
144#
145# CONFIG_BF512 is not set
146# CONFIG_BF514 is not set
147# CONFIG_BF516 is not set
148# CONFIG_BF518 is not set
149# CONFIG_BF522 is not set
150# CONFIG_BF523 is not set
151# CONFIG_BF524 is not set
152# CONFIG_BF525 is not set
153# CONFIG_BF526 is not set
154CONFIG_BF527=y
155# CONFIG_BF531 is not set
156# CONFIG_BF532 is not set
157# CONFIG_BF533 is not set
158# CONFIG_BF534 is not set
159# CONFIG_BF536 is not set
160# CONFIG_BF537 is not set
161# CONFIG_BF538 is not set
162# CONFIG_BF539 is not set
163# CONFIG_BF542_std is not set
164# CONFIG_BF542M is not set
165# CONFIG_BF544_std is not set
166# CONFIG_BF544M is not set
167# CONFIG_BF547_std is not set
168# CONFIG_BF547M is not set
169# CONFIG_BF548_std is not set
170# CONFIG_BF548M is not set
171# CONFIG_BF549_std is not set
172# CONFIG_BF549M is not set
173# CONFIG_BF561 is not set
174CONFIG_BF_REV_MIN=0
175CONFIG_BF_REV_MAX=2
176# CONFIG_BF_REV_0_0 is not set
177# CONFIG_BF_REV_0_1 is not set
178CONFIG_BF_REV_0_2=y
179# CONFIG_BF_REV_0_3 is not set
180# CONFIG_BF_REV_0_4 is not set
181# CONFIG_BF_REV_0_5 is not set
182# CONFIG_BF_REV_0_6 is not set
183# CONFIG_BF_REV_ANY is not set
184# CONFIG_BF_REV_NONE is not set
185CONFIG_MEM_MT48LC32M16A2TG_75=y
186CONFIG_IRQ_PLL_WAKEUP=7
187CONFIG_IRQ_DMA0_ERROR=7
188CONFIG_IRQ_DMAR0_BLK=7
189CONFIG_IRQ_DMAR1_BLK=7
190CONFIG_IRQ_DMAR0_OVR=7
191CONFIG_IRQ_DMAR1_OVR=7
192CONFIG_IRQ_PPI_ERROR=7
193CONFIG_IRQ_MAC_ERROR=7
194CONFIG_IRQ_SPORT0_ERROR=7
195CONFIG_IRQ_SPORT1_ERROR=7
196CONFIG_IRQ_UART0_ERROR=7
197CONFIG_IRQ_UART1_ERROR=7
198CONFIG_IRQ_RTC=8
199CONFIG_IRQ_PPI=8
200CONFIG_IRQ_SPORT0_RX=9
201CONFIG_IRQ_SPORT0_TX=9
202CONFIG_IRQ_SPORT1_RX=9
203CONFIG_IRQ_SPORT1_TX=9
204CONFIG_IRQ_TWI=10
205CONFIG_IRQ_UART0_RX=10
206CONFIG_IRQ_UART0_TX=10
207CONFIG_IRQ_UART1_RX=10
208CONFIG_IRQ_UART1_TX=10
209CONFIG_IRQ_OPTSEC=11
210CONFIG_IRQ_CNT=11
211CONFIG_IRQ_MAC_RX=11
212CONFIG_IRQ_PORTH_INTA=11
213CONFIG_IRQ_MAC_TX=11
214CONFIG_IRQ_PORTH_INTB=11
215CONFIG_IRQ_TIMER0=8
216CONFIG_IRQ_TIMER1=12
217CONFIG_IRQ_TIMER2=12
218CONFIG_IRQ_TIMER3=12
219CONFIG_IRQ_TIMER4=12
220CONFIG_IRQ_TIMER5=12
221CONFIG_IRQ_TIMER6=12
222CONFIG_IRQ_TIMER7=12
223CONFIG_IRQ_PORTG_INTA=12
224CONFIG_IRQ_PORTG_INTB=12
225CONFIG_IRQ_MEM_DMA0=13
226CONFIG_IRQ_MEM_DMA1=13
227CONFIG_IRQ_WATCH=13
228CONFIG_IRQ_PORTF_INTA=13
229CONFIG_IRQ_PORTF_INTB=13
230CONFIG_BF52x=y
231# CONFIG_BFIN527_EZKIT is not set
232CONFIG_BFIN527_EZKIT_V2=y
233# CONFIG_BFIN527_BLUETECHNIX_CM is not set
234# CONFIG_BFIN526_EZBRD is not set
235
236#
237# BF527 Specific Configuration
238#
239
240#
241# Alternative Multiplexing Scheme
242#
243# CONFIG_BF527_SPORT0_PORTF is not set
244CONFIG_BF527_SPORT0_PORTG=y
245CONFIG_BF527_SPORT0_TSCLK_PG10=y
246# CONFIG_BF527_SPORT0_TSCLK_PG14 is not set
247CONFIG_BF527_UART1_PORTF=y
248# CONFIG_BF527_UART1_PORTG is not set
249# CONFIG_BF527_NAND_D_PORTF is not set
250CONFIG_BF527_NAND_D_PORTH=y
251
252#
253# Interrupt Priority Assignment
254#
255
256#
257# Priority
258#
259CONFIG_IRQ_SPI=10
260CONFIG_IRQ_SPI_ERROR=7
261CONFIG_IRQ_NFC_ERROR=7
262CONFIG_IRQ_HDMA_ERROR=7
263CONFIG_IRQ_HDMA=7
264CONFIG_IRQ_USB_EINT=10
265CONFIG_IRQ_USB_INT0=11
266CONFIG_IRQ_USB_INT1=11
267CONFIG_IRQ_USB_INT2=11
268CONFIG_IRQ_USB_DMA=11
269
270#
271# Board customizations
272#
273# CONFIG_CMDLINE_BOOL is not set
274CONFIG_BOOT_LOAD=0x1000
275
276#
277# Clock/PLL Setup
278#
279CONFIG_CLKIN_HZ=25000000
280# CONFIG_BFIN_KERNEL_CLOCK is not set
281CONFIG_MAX_VCO_HZ=600000000
282CONFIG_MIN_VCO_HZ=50000000
283CONFIG_MAX_SCLK_HZ=133333333
284CONFIG_MIN_SCLK_HZ=27000000
285
286#
287# Kernel Timer/Scheduler
288#
289# CONFIG_HZ_100 is not set
290CONFIG_HZ_250=y
291# CONFIG_HZ_300 is not set
292# CONFIG_HZ_1000 is not set
293CONFIG_HZ=250
294# CONFIG_SCHED_HRTICK is not set
295CONFIG_GENERIC_TIME=y
296CONFIG_GENERIC_CLOCKEVENTS=y
297# CONFIG_TICKSOURCE_GPTMR0 is not set
298CONFIG_TICKSOURCE_CORETMR=y
299# CONFIG_CYCLES_CLOCKSOURCE is not set
300# CONFIG_GPTMR0_CLOCKSOURCE is not set
301# CONFIG_NO_HZ is not set
302# CONFIG_HIGH_RES_TIMERS is not set
303CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
304
305#
306# Misc
307#
308CONFIG_BFIN_SCRATCH_REG_RETN=y
309# CONFIG_BFIN_SCRATCH_REG_RETE is not set
310# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set
311
312#
313# Blackfin Kernel Optimizations
314#
315
316#
317# Memory Optimizations
318#
319CONFIG_I_ENTRY_L1=y
320CONFIG_EXCPT_IRQ_SYSC_L1=y
321CONFIG_DO_IRQ_L1=y
322CONFIG_CORE_TIMER_IRQ_L1=y
323CONFIG_IDLE_L1=y
324# CONFIG_SCHEDULE_L1 is not set
325CONFIG_ARITHMETIC_OPS_L1=y
326CONFIG_ACCESS_OK_L1=y
327# CONFIG_MEMSET_L1 is not set
328# CONFIG_MEMCPY_L1 is not set
329# CONFIG_SYS_BFIN_SPINLOCK_L1 is not set
330# CONFIG_IP_CHECKSUM_L1 is not set
331CONFIG_CACHELINE_ALIGNED_L1=y
332# CONFIG_SYSCALL_TAB_L1 is not set
333# CONFIG_CPLB_SWITCH_TAB_L1 is not set
334CONFIG_APP_STACK_L1=y
335
336#
337# Speed Optimizations
338#
339CONFIG_BFIN_INS_LOWOVERHEAD=y
340CONFIG_RAMKERNEL=y
341# CONFIG_ROMKERNEL is not set
342CONFIG_SELECT_MEMORY_MODEL=y
343CONFIG_FLATMEM_MANUAL=y
344# CONFIG_DISCONTIGMEM_MANUAL is not set
345# CONFIG_SPARSEMEM_MANUAL is not set
346CONFIG_FLATMEM=y
347CONFIG_FLAT_NODE_MEM_MAP=y
348CONFIG_PAGEFLAGS_EXTENDED=y
349CONFIG_SPLIT_PTLOCK_CPUS=4
350# CONFIG_PHYS_ADDR_T_64BIT is not set
351CONFIG_ZONE_DMA_FLAG=1
352CONFIG_VIRT_TO_BUS=y
353CONFIG_NOMMU_INITIAL_TRIM_EXCESS=0
354CONFIG_BFIN_GPTIMERS=y
355# CONFIG_DMA_UNCACHED_4M is not set
356# CONFIG_DMA_UNCACHED_2M is not set
357CONFIG_DMA_UNCACHED_1M=y
358# CONFIG_DMA_UNCACHED_512K is not set
359# CONFIG_DMA_UNCACHED_256K is not set
360# CONFIG_DMA_UNCACHED_128K is not set
361# CONFIG_DMA_UNCACHED_NONE is not set
362
363#
364# Cache Support
365#
366CONFIG_BFIN_ICACHE=y
367CONFIG_BFIN_EXTMEM_ICACHEABLE=y
368CONFIG_BFIN_DCACHE=y
369# CONFIG_BFIN_DCACHE_BANKA is not set
370CONFIG_BFIN_EXTMEM_DCACHEABLE=y
371CONFIG_BFIN_EXTMEM_WRITEBACK=y
372# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
373
374#
375# Memory Protection Unit
376#
377# CONFIG_MPU is not set
378
379#
380# Asynchronous Memory Configuration
381#
382
383#
384# EBIU_AMGCTL Global Control
385#
386CONFIG_C_AMCKEN=y
387CONFIG_C_CDPRIO=y
388# CONFIG_C_AMBEN is not set
389# CONFIG_C_AMBEN_B0 is not set
390# CONFIG_C_AMBEN_B0_B1 is not set
391# CONFIG_C_AMBEN_B0_B1_B2 is not set
392CONFIG_C_AMBEN_ALL=y
393
394#
395# EBIU_AMBCTL Control
396#
397CONFIG_BANK_0=0x7BB0
398CONFIG_BANK_1=0x7BB0
399CONFIG_BANK_2=0x7BB0
400CONFIG_BANK_3=0x99B2
401
402#
403# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
404#
405# CONFIG_ARCH_SUPPORTS_MSI is not set
406# CONFIG_PCCARD is not set
407
408#
409# Executable file formats
410#
411CONFIG_BINFMT_ELF_FDPIC=y
412CONFIG_BINFMT_FLAT=y
413CONFIG_BINFMT_ZFLAT=y
414# CONFIG_BINFMT_SHARED_FLAT is not set
415# CONFIG_HAVE_AOUT is not set
416# CONFIG_BINFMT_MISC is not set
417
418#
419# Power management options
420#
421# CONFIG_PM is not set
422CONFIG_ARCH_SUSPEND_POSSIBLE=y
423
424#
425# CPU Frequency scaling
426#
427# CONFIG_CPU_FREQ is not set
428CONFIG_NET=y
429
430#
431# Networking options
432#
433CONFIG_PACKET=y
434# CONFIG_PACKET_MMAP is not set
435CONFIG_UNIX=y
436# CONFIG_NET_KEY is not set
437CONFIG_INET=y
438# CONFIG_IP_MULTICAST is not set
439# CONFIG_IP_ADVANCED_ROUTER is not set
440CONFIG_IP_FIB_HASH=y
441CONFIG_IP_PNP=y
442# CONFIG_IP_PNP_DHCP is not set
443# CONFIG_IP_PNP_BOOTP is not set
444# CONFIG_IP_PNP_RARP is not set
445# CONFIG_NET_IPIP is not set
446# CONFIG_NET_IPGRE is not set
447# CONFIG_ARPD is not set
448# CONFIG_SYN_COOKIES is not set
449# CONFIG_INET_AH is not set
450# CONFIG_INET_ESP is not set
451# CONFIG_INET_IPCOMP is not set
452# CONFIG_INET_XFRM_TUNNEL is not set
453# CONFIG_INET_TUNNEL is not set
454# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
455# CONFIG_INET_XFRM_MODE_TUNNEL is not set
456# CONFIG_INET_XFRM_MODE_BEET is not set
457# CONFIG_INET_LRO is not set
458# CONFIG_INET_DIAG is not set
459# CONFIG_TCP_CONG_ADVANCED is not set
460CONFIG_TCP_CONG_CUBIC=y
461CONFIG_DEFAULT_TCP_CONG="cubic"
462# CONFIG_TCP_MD5SIG is not set
463# CONFIG_IPV6 is not set
464# CONFIG_NETLABEL is not set
465# CONFIG_NETWORK_SECMARK is not set
466# CONFIG_NETFILTER is not set
467# CONFIG_IP_DCCP is not set
468# CONFIG_IP_SCTP is not set
469# CONFIG_RDS is not set
470# CONFIG_TIPC is not set
471# CONFIG_ATM is not set
472# CONFIG_BRIDGE is not set
473# CONFIG_NET_DSA is not set
474# CONFIG_VLAN_8021Q is not set
475# CONFIG_DECNET is not set
476# CONFIG_LLC2 is not set
477# CONFIG_IPX is not set
478# CONFIG_ATALK is not set
479# CONFIG_X25 is not set
480# CONFIG_LAPB is not set
481# CONFIG_ECONET is not set
482# CONFIG_WAN_ROUTER is not set
483# CONFIG_PHONET is not set
484# CONFIG_IEEE802154 is not set
485# CONFIG_NET_SCHED is not set
486# CONFIG_DCB is not set
487
488#
489# Network testing
490#
491# CONFIG_NET_PKTGEN is not set
492# CONFIG_HAMRADIO is not set
493# CONFIG_CAN is not set
494CONFIG_IRDA=m
495
496#
497# IrDA protocols
498#
499CONFIG_IRLAN=m
500CONFIG_IRCOMM=m
501# CONFIG_IRDA_ULTRA is not set
502
503#
504# IrDA options
505#
506# CONFIG_IRDA_CACHE_LAST_LSAP is not set
507# CONFIG_IRDA_FAST_RR is not set
508# CONFIG_IRDA_DEBUG is not set
509
510#
511# Infrared-port device drivers
512#
513
514#
515# SIR device drivers
516#
517CONFIG_IRTTY_SIR=m
518CONFIG_BFIN_SIR=m
519CONFIG_BFIN_SIR0=y
520CONFIG_SIR_BFIN_DMA=y
521# CONFIG_SIR_BFIN_PIO is not set
522
523#
524# Dongle support
525#
526# CONFIG_DONGLE is not set
527# CONFIG_KINGSUN_DONGLE is not set
528# CONFIG_KSDAZZLE_DONGLE is not set
529# CONFIG_KS959_DONGLE is not set
530
531#
532# FIR device drivers
533#
534# CONFIG_USB_IRDA is not set
535# CONFIG_SIGMATEL_FIR is not set
536# CONFIG_MCS_FIR is not set
537# CONFIG_BT is not set
538# CONFIG_AF_RXRPC is not set
539# CONFIG_WIRELESS is not set
540# CONFIG_WIMAX is not set
541# CONFIG_RFKILL is not set
542# CONFIG_NET_9P is not set
543
544#
545# Device Drivers
546#
547
548#
549# Generic Driver Options
550#
551CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
552CONFIG_STANDALONE=y
553CONFIG_PREVENT_FIRMWARE_BUILD=y
554# CONFIG_FW_LOADER is not set
555# CONFIG_DEBUG_DRIVER is not set
556# CONFIG_DEBUG_DEVRES is not set
557# CONFIG_SYS_HYPERVISOR is not set
558# CONFIG_CONNECTOR is not set
559CONFIG_MTD=y
560# CONFIG_MTD_DEBUG is not set
561# CONFIG_MTD_TESTS is not set
562# CONFIG_MTD_CONCAT is not set
563CONFIG_MTD_PARTITIONS=y
564# CONFIG_MTD_REDBOOT_PARTS is not set
565# CONFIG_MTD_CMDLINE_PARTS is not set
566# CONFIG_MTD_AR7_PARTS is not set
567
568#
569# User Modules And Translation Layers
570#
571CONFIG_MTD_CHAR=m
572CONFIG_MTD_BLKDEVS=y
573CONFIG_MTD_BLOCK=y
574# CONFIG_FTL is not set
575# CONFIG_NFTL is not set
576# CONFIG_INFTL is not set
577# CONFIG_RFD_FTL is not set
578# CONFIG_SSFDC is not set
579# CONFIG_MTD_OOPS is not set
580
581#
582# RAM/ROM/Flash chip drivers
583#
584# CONFIG_MTD_CFI is not set
585CONFIG_MTD_JEDECPROBE=m
586CONFIG_MTD_GEN_PROBE=m
587# CONFIG_MTD_CFI_ADV_OPTIONS is not set
588CONFIG_MTD_MAP_BANK_WIDTH_1=y
589CONFIG_MTD_MAP_BANK_WIDTH_2=y
590CONFIG_MTD_MAP_BANK_WIDTH_4=y
591# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
592# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
593# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
594CONFIG_MTD_CFI_I1=y
595CONFIG_MTD_CFI_I2=y
596# CONFIG_MTD_CFI_I4 is not set
597# CONFIG_MTD_CFI_I8 is not set
598# CONFIG_MTD_CFI_INTELEXT is not set
599# CONFIG_MTD_CFI_AMDSTD is not set
600# CONFIG_MTD_CFI_STAA is not set
601CONFIG_MTD_RAM=y
602CONFIG_MTD_ROM=m
603# CONFIG_MTD_ABSENT is not set
604
605#
606# Mapping drivers for chip access
607#
608CONFIG_MTD_COMPLEX_MAPPINGS=y
609# CONFIG_MTD_PHYSMAP is not set
610# CONFIG_MTD_GPIO_ADDR is not set
611# CONFIG_MTD_UCLINUX is not set
612# CONFIG_MTD_PLATRAM is not set
613
614#
615# Self-contained MTD device drivers
616#
617# CONFIG_MTD_DATAFLASH is not set
618CONFIG_MTD_M25P80=y
619CONFIG_M25PXX_USE_FAST_READ=y
620# CONFIG_MTD_SST25L is not set
621# CONFIG_MTD_SLRAM is not set
622# CONFIG_MTD_PHRAM is not set
623# CONFIG_MTD_MTDRAM is not set
624# CONFIG_MTD_BLOCK2MTD is not set
625
626#
627# Disk-On-Chip Device Drivers
628#
629# CONFIG_MTD_DOC2000 is not set
630# CONFIG_MTD_DOC2001 is not set
631# CONFIG_MTD_DOC2001PLUS is not set
632CONFIG_MTD_NAND=m
633# CONFIG_MTD_NAND_VERIFY_WRITE is not set
634# CONFIG_MTD_NAND_ECC_SMC is not set
635# CONFIG_MTD_NAND_MUSEUM_IDS is not set
636CONFIG_MTD_NAND_IDS=m
637# CONFIG_MTD_NAND_BF5XX is not set
638# CONFIG_MTD_NAND_DISKONCHIP is not set
639# CONFIG_MTD_NAND_NANDSIM is not set
640# CONFIG_MTD_NAND_PLATFORM is not set
641# CONFIG_MTD_ALAUDA is not set
642# CONFIG_MTD_ONENAND is not set
643
644#
645# LPDDR flash memory drivers
646#
647# CONFIG_MTD_LPDDR is not set
648
649#
650# UBI - Unsorted block images
651#
652# CONFIG_MTD_UBI is not set
653# CONFIG_PARPORT is not set
654CONFIG_BLK_DEV=y
655# CONFIG_BLK_DEV_COW_COMMON is not set
656# CONFIG_BLK_DEV_LOOP is not set
657# CONFIG_BLK_DEV_NBD is not set
658# CONFIG_BLK_DEV_UB is not set
659CONFIG_BLK_DEV_RAM=y
660CONFIG_BLK_DEV_RAM_COUNT=16
661CONFIG_BLK_DEV_RAM_SIZE=4096
662# CONFIG_BLK_DEV_XIP is not set
663# CONFIG_CDROM_PKTCDVD is not set
664# CONFIG_ATA_OVER_ETH is not set
665# CONFIG_BLK_DEV_HD is not set
666CONFIG_MISC_DEVICES=y
667# CONFIG_AD525X_DPOT is not set
668# CONFIG_ICS932S401 is not set
669# CONFIG_ENCLOSURE_SERVICES is not set
670# CONFIG_ISL29003 is not set
671# CONFIG_C2PORT is not set
672
673#
674# EEPROM support
675#
676# CONFIG_EEPROM_AT24 is not set
677# CONFIG_EEPROM_AT25 is not set
678# CONFIG_EEPROM_LEGACY is not set
679# CONFIG_EEPROM_MAX6875 is not set
680# CONFIG_EEPROM_93CX6 is not set
681CONFIG_HAVE_IDE=y
682# CONFIG_IDE is not set
683
684#
685# SCSI device support
686#
687# CONFIG_RAID_ATTRS is not set
688CONFIG_SCSI=y
689CONFIG_SCSI_DMA=y
690# CONFIG_SCSI_TGT is not set
691# CONFIG_SCSI_NETLINK is not set
692# CONFIG_SCSI_PROC_FS is not set
693
694#
695# SCSI support type (disk, tape, CD-ROM)
696#
697CONFIG_BLK_DEV_SD=y
698# CONFIG_CHR_DEV_ST is not set
699# CONFIG_CHR_DEV_OSST is not set
700CONFIG_BLK_DEV_SR=m
701# CONFIG_BLK_DEV_SR_VENDOR is not set
702# CONFIG_CHR_DEV_SG is not set
703# CONFIG_CHR_DEV_SCH is not set
704# CONFIG_SCSI_MULTI_LUN is not set
705# CONFIG_SCSI_CONSTANTS is not set
706# CONFIG_SCSI_LOGGING is not set
707# CONFIG_SCSI_SCAN_ASYNC is not set
708CONFIG_SCSI_WAIT_SCAN=m
709
710#
711# SCSI Transports
712#
713# CONFIG_SCSI_SPI_ATTRS is not set
714# CONFIG_SCSI_FC_ATTRS is not set
715# CONFIG_SCSI_ISCSI_ATTRS is not set
716# CONFIG_SCSI_SAS_LIBSAS is not set
717# CONFIG_SCSI_SRP_ATTRS is not set
718# CONFIG_SCSI_LOWLEVEL is not set
719# CONFIG_SCSI_DH is not set
720# CONFIG_SCSI_OSD_INITIATOR is not set
721# CONFIG_ATA is not set
722# CONFIG_MD is not set
723CONFIG_NETDEVICES=y
724# CONFIG_DUMMY is not set
725# CONFIG_BONDING is not set
726# CONFIG_MACVLAN is not set
727# CONFIG_EQUALIZER is not set
728# CONFIG_TUN is not set
729# CONFIG_VETH is not set
730CONFIG_PHYLIB=y
731
732#
733# MII PHY device drivers
734#
735# CONFIG_MARVELL_PHY is not set
736# CONFIG_DAVICOM_PHY is not set
737# CONFIG_QSEMI_PHY is not set
738# CONFIG_LXT_PHY is not set
739# CONFIG_CICADA_PHY is not set
740# CONFIG_VITESSE_PHY is not set
741# CONFIG_SMSC_PHY is not set
742# CONFIG_BROADCOM_PHY is not set
743# CONFIG_ICPLUS_PHY is not set
744# CONFIG_REALTEK_PHY is not set
745# CONFIG_NATIONAL_PHY is not set
746# CONFIG_STE10XP is not set
747# CONFIG_LSI_ET1011C_PHY is not set
748# CONFIG_FIXED_PHY is not set
749# CONFIG_MDIO_BITBANG is not set
750CONFIG_NET_ETHERNET=y
751CONFIG_MII=y
752CONFIG_BFIN_MAC=y
753CONFIG_BFIN_MAC_USE_L1=y
754CONFIG_BFIN_TX_DESC_NUM=10
755CONFIG_BFIN_RX_DESC_NUM=20
756CONFIG_BFIN_MAC_RMII=y
757# CONFIG_SMC91X is not set
758# CONFIG_DM9000 is not set
759# CONFIG_ENC28J60 is not set
760# CONFIG_ETHOC is not set
761# CONFIG_SMSC911X is not set
762# CONFIG_DNET is not set
763# CONFIG_ADF702X is not set
764# CONFIG_IBM_NEW_EMAC_ZMII is not set
765# CONFIG_IBM_NEW_EMAC_RGMII is not set
766# CONFIG_IBM_NEW_EMAC_TAH is not set
767# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
768# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
769# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
770# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
771# CONFIG_B44 is not set
772# CONFIG_KS8842 is not set
773# CONFIG_KS8851 is not set
774# CONFIG_KS8851_MLL is not set
775# CONFIG_NETDEV_1000 is not set
776# CONFIG_NETDEV_10000 is not set
777# CONFIG_WLAN is not set
778
779#
780# Enable WiMAX (Networking options) to see the WiMAX drivers
781#
782
783#
784# USB Network Adapters
785#
786# CONFIG_USB_CATC is not set
787# CONFIG_USB_KAWETH is not set
788# CONFIG_USB_PEGASUS is not set
789# CONFIG_USB_RTL8150 is not set
790# CONFIG_USB_USBNET is not set
791# CONFIG_WAN is not set
792# CONFIG_PPP is not set
793# CONFIG_SLIP is not set
794# CONFIG_NETCONSOLE is not set
795# CONFIG_NETPOLL is not set
796# CONFIG_NET_POLL_CONTROLLER is not set
797# CONFIG_ISDN is not set
798# CONFIG_PHONE is not set
799
800#
801# Input device support
802#
803CONFIG_INPUT=y
804CONFIG_INPUT_FF_MEMLESS=m
805# CONFIG_INPUT_POLLDEV is not set
806
807#
808# Userland interfaces
809#
810# CONFIG_INPUT_MOUSEDEV is not set
811# CONFIG_INPUT_JOYDEV is not set
812CONFIG_INPUT_EVDEV=y
813# CONFIG_INPUT_EVBUG is not set
814
815#
816# Input Device Drivers
817#
818CONFIG_INPUT_KEYBOARD=y
819CONFIG_KEYBOARD_ADP5520=y
820# CONFIG_KEYBOARD_ADP5588 is not set
821# CONFIG_KEYBOARD_ATKBD is not set
822# CONFIG_QT2160 is not set
823# CONFIG_KEYBOARD_LKKBD is not set
824# CONFIG_KEYBOARD_GPIO is not set
825# CONFIG_KEYBOARD_MATRIX is not set
826# CONFIG_KEYBOARD_LM8323 is not set
827# CONFIG_KEYBOARD_MAX7359 is not set
828# CONFIG_KEYBOARD_NEWTON is not set
829# CONFIG_KEYBOARD_OPENCORES is not set
830# CONFIG_KEYBOARD_STOWAWAY is not set
831# CONFIG_KEYBOARD_SUNKBD is not set
832# CONFIG_KEYBOARD_XTKBD is not set
833# CONFIG_INPUT_MOUSE is not set
834# CONFIG_INPUT_JOYSTICK is not set
835# CONFIG_INPUT_TABLET is not set
836CONFIG_INPUT_TOUCHSCREEN=y
837# CONFIG_TOUCHSCREEN_ADS7846 is not set
838# CONFIG_TOUCHSCREEN_AD7877 is not set
839CONFIG_TOUCHSCREEN_AD7879_I2C=y
840CONFIG_TOUCHSCREEN_AD7879=y
841# CONFIG_TOUCHSCREEN_EETI is not set
842# CONFIG_TOUCHSCREEN_FUJITSU is not set
843# CONFIG_TOUCHSCREEN_GUNZE is not set
844# CONFIG_TOUCHSCREEN_ELO is not set
845# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
846# CONFIG_TOUCHSCREEN_MCS5000 is not set
847# CONFIG_TOUCHSCREEN_MTOUCH is not set
848# CONFIG_TOUCHSCREEN_INEXIO is not set
849# CONFIG_TOUCHSCREEN_MK712 is not set
850# CONFIG_TOUCHSCREEN_PENMOUNT is not set
851# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
852# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
853# CONFIG_TOUCHSCREEN_WM97XX is not set
854# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
855# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
856# CONFIG_TOUCHSCREEN_TSC2007 is not set
857CONFIG_INPUT_MISC=y
858# CONFIG_INPUT_ATI_REMOTE is not set
859# CONFIG_INPUT_ATI_REMOTE2 is not set
860# CONFIG_INPUT_KEYSPAN_REMOTE is not set
861# CONFIG_INPUT_POWERMATE is not set
862# CONFIG_INPUT_YEALINK is not set
863# CONFIG_INPUT_CM109 is not set
864# CONFIG_INPUT_UINPUT is not set
865# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
866# CONFIG_INPUT_BFIN_ROTARY is not set
867# CONFIG_INPUT_AD714X is not set
868# CONFIG_INPUT_ADXL34X is not set
869# CONFIG_INPUT_PCF8574 is not set
870
871#
872# Hardware I/O ports
873#
874# CONFIG_SERIO is not set
875# CONFIG_GAMEPORT is not set
876
877#
878# Character devices
879#
880CONFIG_BFIN_DMA_INTERFACE=m
881# CONFIG_BFIN_PPI is not set
882# CONFIG_BFIN_PPIFCD is not set
883# CONFIG_BFIN_SIMPLE_TIMER is not set
884# CONFIG_BFIN_SPI_ADC is not set
885CONFIG_BFIN_SPORT=m
886# CONFIG_BFIN_TWI_LCD is not set
887CONFIG_VT=y
888CONFIG_CONSOLE_TRANSLATIONS=y
889CONFIG_VT_CONSOLE=y
890CONFIG_HW_CONSOLE=y
891# CONFIG_VT_HW_CONSOLE_BINDING is not set
892# CONFIG_DEVKMEM is not set
893CONFIG_BFIN_JTAG_COMM=m
894# CONFIG_SERIAL_NONSTANDARD is not set
895
896#
897# Serial drivers
898#
899# CONFIG_SERIAL_8250 is not set
900
901#
902# Non-8250 serial port support
903#
904# CONFIG_SERIAL_MAX3100 is not set
905CONFIG_SERIAL_BFIN=y
906CONFIG_SERIAL_BFIN_CONSOLE=y
907CONFIG_SERIAL_BFIN_DMA=y
908# CONFIG_SERIAL_BFIN_PIO is not set
909# CONFIG_SERIAL_BFIN_UART0 is not set
910CONFIG_SERIAL_BFIN_UART1=y
911# CONFIG_BFIN_UART1_CTSRTS is not set
912CONFIG_SERIAL_CORE=y
913CONFIG_SERIAL_CORE_CONSOLE=y
914# CONFIG_SERIAL_BFIN_SPORT is not set
915CONFIG_UNIX98_PTYS=y
916# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
917# CONFIG_LEGACY_PTYS is not set
918CONFIG_BFIN_OTP=y
919# CONFIG_BFIN_OTP_WRITE_ENABLE is not set
920# CONFIG_IPMI_HANDLER is not set
921# CONFIG_HW_RANDOM is not set
922# CONFIG_R3964 is not set
923# CONFIG_RAW_DRIVER is not set
924# CONFIG_TCG_TPM is not set
925CONFIG_I2C=y
926CONFIG_I2C_BOARDINFO=y
927CONFIG_I2C_COMPAT=y
928CONFIG_I2C_CHARDEV=m
929CONFIG_I2C_HELPER_AUTO=y
930
931#
932# I2C Hardware Bus support
933#
934
935#
936# I2C system bus drivers (mostly embedded / system-on-chip)
937#
938CONFIG_I2C_BLACKFIN_TWI=y
939CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
940# CONFIG_I2C_GPIO is not set
941# CONFIG_I2C_OCORES is not set
942# CONFIG_I2C_SIMTEC is not set
943
944#
945# External I2C/SMBus adapter drivers
946#
947# CONFIG_I2C_PARPORT_LIGHT is not set
948# CONFIG_I2C_TAOS_EVM is not set
949# CONFIG_I2C_TINY_USB is not set
950
951#
952# Other I2C/SMBus bus drivers
953#
954# CONFIG_I2C_PCA_PLATFORM is not set
955# CONFIG_I2C_STUB is not set
956
957#
958# Miscellaneous I2C Chip support
959#
960# CONFIG_DS1682 is not set
961# CONFIG_SENSORS_TSL2550 is not set
962# CONFIG_I2C_DEBUG_CORE is not set
963# CONFIG_I2C_DEBUG_ALGO is not set
964# CONFIG_I2C_DEBUG_BUS is not set
965# CONFIG_I2C_DEBUG_CHIP is not set
966CONFIG_SPI=y
967# CONFIG_SPI_DEBUG is not set
968CONFIG_SPI_MASTER=y
969
970#
971# SPI Master Controller Drivers
972#
973CONFIG_SPI_BFIN=y
974# CONFIG_SPI_BFIN_LOCK is not set
975# CONFIG_SPI_BFIN_SPORT is not set
976# CONFIG_SPI_BITBANG is not set
977# CONFIG_SPI_GPIO is not set
978
979#
980# SPI Protocol Masters
981#
982# CONFIG_SPI_SPIDEV is not set
983# CONFIG_SPI_TLE62X0 is not set
984
985#
986# PPS support
987#
988# CONFIG_PPS is not set
989CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
990CONFIG_GPIOLIB=y
991# CONFIG_DEBUG_GPIO is not set
992CONFIG_GPIO_SYSFS=y
993
994#
995# Memory mapped GPIO expanders:
996#
997
998#
999# I2C GPIO expanders:
1000#
1001# CONFIG_GPIO_MAX732X is not set
1002# CONFIG_GPIO_PCA953X is not set
1003# CONFIG_GPIO_PCF857X is not set
1004# CONFIG_GPIO_ADP5520 is not set
1005# CONFIG_GPIO_ADP5588 is not set
1006
1007#
1008# PCI GPIO expanders:
1009#
1010
1011#
1012# SPI GPIO expanders:
1013#
1014# CONFIG_GPIO_MAX7301 is not set
1015# CONFIG_GPIO_MCP23S08 is not set
1016# CONFIG_GPIO_MC33880 is not set
1017
1018#
1019# AC97 GPIO expanders:
1020#
1021# CONFIG_W1 is not set
1022# CONFIG_POWER_SUPPLY is not set
1023# CONFIG_HWMON is not set
1024# CONFIG_THERMAL is not set
1025CONFIG_WATCHDOG=y
1026# CONFIG_WATCHDOG_NOWAYOUT is not set
1027
1028#
1029# Watchdog Device Drivers
1030#
1031# CONFIG_SOFT_WATCHDOG is not set
1032CONFIG_BFIN_WDT=y
1033
1034#
1035# USB-based Watchdog Cards
1036#
1037# CONFIG_USBPCWATCHDOG is not set
1038CONFIG_SSB_POSSIBLE=y
1039
1040#
1041# Sonics Silicon Backplane
1042#
1043# CONFIG_SSB is not set
1044
1045#
1046# Multifunction device drivers
1047#
1048# CONFIG_MFD_CORE is not set
1049# CONFIG_MFD_SM501 is not set
1050# CONFIG_HTC_PASIC3 is not set
1051# CONFIG_UCB1400_CORE is not set
1052# CONFIG_TPS65010 is not set
1053# CONFIG_TWL4030_CORE is not set
1054# CONFIG_MFD_TMIO is not set
1055# CONFIG_PMIC_DA903X is not set
1056CONFIG_PMIC_ADP5520=y
1057# CONFIG_MFD_WM8400 is not set
1058# CONFIG_MFD_WM831X is not set
1059# CONFIG_MFD_WM8350_I2C is not set
1060# CONFIG_MFD_PCF50633 is not set
1061# CONFIG_MFD_MC13783 is not set
1062# CONFIG_AB3100_CORE is not set
1063# CONFIG_EZX_PCAP is not set
1064# CONFIG_REGULATOR is not set
1065# CONFIG_MEDIA_SUPPORT is not set
1066
1067#
1068# Graphics support
1069#
1070# CONFIG_VGASTATE is not set
1071# CONFIG_VIDEO_OUTPUT_CONTROL is not set
1072CONFIG_FB=y
1073# CONFIG_FIRMWARE_EDID is not set
1074# CONFIG_FB_DDC is not set
1075# CONFIG_FB_BOOT_VESA_SUPPORT is not set
1076CONFIG_FB_CFB_FILLRECT=y
1077CONFIG_FB_CFB_COPYAREA=y
1078CONFIG_FB_CFB_IMAGEBLIT=y
1079# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
1080# CONFIG_FB_SYS_FILLRECT is not set
1081# CONFIG_FB_SYS_COPYAREA is not set
1082# CONFIG_FB_SYS_IMAGEBLIT is not set
1083# CONFIG_FB_FOREIGN_ENDIAN is not set
1084# CONFIG_FB_SYS_FOPS is not set
1085# CONFIG_FB_SVGALIB is not set
1086# CONFIG_FB_MACMODES is not set
1087# CONFIG_FB_BACKLIGHT is not set
1088# CONFIG_FB_MODE_HELPERS is not set
1089# CONFIG_FB_TILEBLITTING is not set
1090
1091#
1092# Frame buffer hardware drivers
1093#
1094# CONFIG_FB_BFIN_T350MCQB is not set
1095CONFIG_FB_BFIN_LQ035Q1=y
1096# CONFIG_FB_BFIN_7393 is not set
1097# CONFIG_FB_S1D13XXX is not set
1098# CONFIG_FB_VIRTUAL is not set
1099# CONFIG_FB_METRONOME is not set
1100# CONFIG_FB_MB862XX is not set
1101# CONFIG_FB_BROADSHEET is not set
1102CONFIG_BACKLIGHT_LCD_SUPPORT=y
1103CONFIG_LCD_CLASS_DEVICE=m
1104# CONFIG_LCD_LMS283GF05 is not set
1105# CONFIG_LCD_LTV350QV is not set
1106# CONFIG_LCD_ILI9320 is not set
1107# CONFIG_LCD_TDO24M is not set
1108# CONFIG_LCD_VGG2432A4 is not set
1109# CONFIG_LCD_PLATFORM is not set
1110CONFIG_BACKLIGHT_CLASS_DEVICE=m
1111CONFIG_BACKLIGHT_GENERIC=m
1112# CONFIG_BACKLIGHT_ADP5520 is not set
1113# CONFIG_BACKLIGHT_ADP8870 is not set
1114
1115#
1116# Display device support
1117#
1118# CONFIG_DISPLAY_SUPPORT is not set
1119
1120#
1121# Console display driver support
1122#
1123CONFIG_DUMMY_CONSOLE=y
1124CONFIG_FRAMEBUFFER_CONSOLE=y
1125# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
1126# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
1127# CONFIG_FONTS is not set
1128CONFIG_FONT_8x8=y
1129CONFIG_FONT_8x16=y
1130CONFIG_LOGO=y
1131# CONFIG_LOGO_LINUX_MONO is not set
1132# CONFIG_LOGO_LINUX_VGA16 is not set
1133# CONFIG_LOGO_LINUX_CLUT224 is not set
1134# CONFIG_LOGO_BLACKFIN_VGA16 is not set
1135CONFIG_LOGO_BLACKFIN_CLUT224=y
1136CONFIG_SOUND=m
1137# CONFIG_SOUND_OSS_CORE is not set
1138CONFIG_SND=m
1139CONFIG_SND_TIMER=m
1140CONFIG_SND_PCM=m
1141CONFIG_SND_JACK=y
1142# CONFIG_SND_SEQUENCER is not set
1143# CONFIG_SND_MIXER_OSS is not set
1144# CONFIG_SND_PCM_OSS is not set
1145# CONFIG_SND_DYNAMIC_MINORS is not set
1146CONFIG_SND_SUPPORT_OLD_API=y
1147CONFIG_SND_VERBOSE_PROCFS=y
1148# CONFIG_SND_VERBOSE_PRINTK is not set
1149# CONFIG_SND_DEBUG is not set
1150# CONFIG_SND_RAWMIDI_SEQ is not set
1151# CONFIG_SND_OPL3_LIB_SEQ is not set
1152# CONFIG_SND_OPL4_LIB_SEQ is not set
1153# CONFIG_SND_SBAWE_SEQ is not set
1154# CONFIG_SND_EMU10K1_SEQ is not set
1155CONFIG_SND_DRIVERS=y
1156# CONFIG_SND_DUMMY is not set
1157# CONFIG_SND_MTPAV is not set
1158# CONFIG_SND_SERIAL_U16550 is not set
1159# CONFIG_SND_MPU401 is not set
1160CONFIG_SND_SPI=y
1161
1162#
1163# ALSA Blackfin devices
1164#
1165# CONFIG_SND_BFIN_AD73322 is not set
1166CONFIG_SND_USB=y
1167# CONFIG_SND_USB_AUDIO is not set
1168# CONFIG_SND_USB_CAIAQ is not set
1169CONFIG_SND_SOC=m
1170CONFIG_SND_SOC_AC97_BUS=y
1171CONFIG_SND_BF5XX_I2S=m
1172CONFIG_SND_BF5XX_SOC_SSM2602=m
1173# CONFIG_SND_BF5XX_SOC_AD73311 is not set
1174# CONFIG_SND_BF5XX_SOC_ADAU1371 is not set
1175# CONFIG_SND_BF5XX_SOC_ADAU1761 is not set
1176# CONFIG_SND_BF5XX_TDM is not set
1177CONFIG_SND_BF5XX_AC97=m
1178CONFIG_SND_BF5XX_MMAP_SUPPORT=y
1179# CONFIG_SND_BF5XX_MULTICHAN_SUPPORT is not set
1180# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set
1181CONFIG_SND_BF5XX_SOC_AD1980=m
1182CONFIG_SND_BF5XX_SOC_SPORT=m
1183CONFIG_SND_BF5XX_SOC_I2S=m
1184CONFIG_SND_BF5XX_SOC_AC97=m
1185CONFIG_SND_BF5XX_SPORT_NUM=0
1186CONFIG_SND_SOC_I2C_AND_SPI=m
1187# CONFIG_SND_SOC_ALL_CODECS is not set
1188CONFIG_SND_SOC_AD1980=m
1189CONFIG_SND_SOC_SSM2602=m
1190# CONFIG_SOUND_PRIME is not set
1191CONFIG_AC97_BUS=m
1192CONFIG_HID_SUPPORT=y
1193CONFIG_HID=y
1194# CONFIG_HIDRAW is not set
1195
1196#
1197# USB Input Devices
1198#
1199CONFIG_USB_HID=y
1200# CONFIG_HID_PID is not set
1201# CONFIG_USB_HIDDEV is not set
1202
1203#
1204# Special HID drivers
1205#
1206CONFIG_HID_A4TECH=y
1207CONFIG_HID_APPLE=y
1208CONFIG_HID_BELKIN=y
1209CONFIG_HID_CHERRY=y
1210CONFIG_HID_CHICONY=y
1211CONFIG_HID_CYPRESS=y
1212# CONFIG_HID_DRAGONRISE is not set
1213CONFIG_HID_EZKEY=y
1214# CONFIG_HID_KYE is not set
1215CONFIG_HID_GYRATION=y
1216# CONFIG_HID_TWINHAN is not set
1217# CONFIG_HID_KENSINGTON is not set
1218CONFIG_HID_LOGITECH=y
1219# CONFIG_LOGITECH_FF is not set
1220# CONFIG_LOGIRUMBLEPAD2_FF is not set
1221CONFIG_HID_MICROSOFT=y
1222CONFIG_HID_MONTEREY=y
1223# CONFIG_HID_NTRIG is not set
1224CONFIG_HID_PANTHERLORD=y
1225# CONFIG_PANTHERLORD_FF is not set
1226CONFIG_HID_PETALYNX=y
1227CONFIG_HID_SAMSUNG=y
1228CONFIG_HID_SONY=y
1229CONFIG_HID_SUNPLUS=y
1230# CONFIG_HID_GREENASIA is not set
1231# CONFIG_HID_SMARTJOYPLUS is not set
1232# CONFIG_HID_TOPSEED is not set
1233# CONFIG_HID_THRUSTMASTER is not set
1234# CONFIG_HID_ZEROPLUS is not set
1235CONFIG_USB_SUPPORT=y
1236CONFIG_USB_ARCH_HAS_HCD=y
1237# CONFIG_USB_ARCH_HAS_OHCI is not set
1238# CONFIG_USB_ARCH_HAS_EHCI is not set
1239CONFIG_USB=y
1240# CONFIG_USB_DEBUG is not set
1241# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1242
1243#
1244# Miscellaneous USB options
1245#
1246CONFIG_USB_DEVICEFS=y
1247# CONFIG_USB_DEVICE_CLASS is not set
1248# CONFIG_USB_DYNAMIC_MINORS is not set
1249# CONFIG_USB_OTG is not set
1250# CONFIG_USB_OTG_WHITELIST is not set
1251CONFIG_USB_OTG_BLACKLIST_HUB=y
1252CONFIG_USB_MON=y
1253# CONFIG_USB_WUSB is not set
1254# CONFIG_USB_WUSB_CBAF is not set
1255
1256#
1257# USB Host Controller Drivers
1258#
1259# CONFIG_USB_C67X00_HCD is not set
1260# CONFIG_USB_OXU210HP_HCD is not set
1261# CONFIG_USB_ISP116X_HCD is not set
1262# CONFIG_USB_ISP1760_HCD is not set
1263# CONFIG_USB_ISP1362_HCD is not set
1264# CONFIG_USB_SL811_HCD is not set
1265# CONFIG_USB_R8A66597_HCD is not set
1266# CONFIG_USB_HWA_HCD is not set
1267CONFIG_USB_MUSB_HDRC=y
1268CONFIG_USB_MUSB_SOC=y
1269
1270#
1271# Blackfin high speed USB Support
1272#
1273CONFIG_USB_MUSB_HOST=y
1274# CONFIG_USB_MUSB_PERIPHERAL is not set
1275# CONFIG_USB_MUSB_OTG is not set
1276CONFIG_USB_MUSB_HDRC_HCD=y
1277# CONFIG_MUSB_PIO_ONLY is not set
1278CONFIG_USB_INVENTRA_DMA=y
1279# CONFIG_USB_TI_CPPI_DMA is not set
1280# CONFIG_USB_MUSB_DEBUG is not set
1281
1282#
1283# USB Device Class drivers
1284#
1285# CONFIG_USB_ACM is not set
1286# CONFIG_USB_PRINTER is not set
1287# CONFIG_USB_WDM is not set
1288# CONFIG_USB_TMC is not set
1289
1290#
1291# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1292#
1293
1294#
1295# also be needed; see USB_STORAGE Help for more info
1296#
1297CONFIG_USB_STORAGE=y
1298# CONFIG_USB_STORAGE_DEBUG is not set
1299# CONFIG_USB_STORAGE_DATAFAB is not set
1300# CONFIG_USB_STORAGE_FREECOM is not set
1301# CONFIG_USB_STORAGE_ISD200 is not set
1302# CONFIG_USB_STORAGE_USBAT is not set
1303# CONFIG_USB_STORAGE_SDDR09 is not set
1304# CONFIG_USB_STORAGE_SDDR55 is not set
1305# CONFIG_USB_STORAGE_JUMPSHOT is not set
1306# CONFIG_USB_STORAGE_ALAUDA is not set
1307# CONFIG_USB_STORAGE_ONETOUCH is not set
1308# CONFIG_USB_STORAGE_KARMA is not set
1309# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1310# CONFIG_USB_LIBUSUAL is not set
1311
1312#
1313# USB Imaging devices
1314#
1315# CONFIG_USB_MDC800 is not set
1316# CONFIG_USB_MICROTEK is not set
1317
1318#
1319# USB port drivers
1320#
1321# CONFIG_USB_SERIAL is not set
1322
1323#
1324# USB Miscellaneous drivers
1325#
1326# CONFIG_USB_EMI62 is not set
1327# CONFIG_USB_EMI26 is not set
1328# CONFIG_USB_ADUTUX is not set
1329# CONFIG_USB_SEVSEG is not set
1330# CONFIG_USB_RIO500 is not set
1331# CONFIG_USB_LEGOTOWER is not set
1332# CONFIG_USB_LCD is not set
1333# CONFIG_USB_BERRY_CHARGE is not set
1334# CONFIG_USB_LED is not set
1335# CONFIG_USB_CYPRESS_CY7C63 is not set
1336# CONFIG_USB_CYTHERM is not set
1337# CONFIG_USB_IDMOUSE is not set
1338# CONFIG_USB_FTDI_ELAN is not set
1339# CONFIG_USB_APPLEDISPLAY is not set
1340# CONFIG_USB_SISUSBVGA is not set
1341# CONFIG_USB_LD is not set
1342# CONFIG_USB_TRANCEVIBRATOR is not set
1343# CONFIG_USB_IOWARRIOR is not set
1344# CONFIG_USB_TEST is not set
1345# CONFIG_USB_ISIGHTFW is not set
1346# CONFIG_USB_VST is not set
1347# CONFIG_USB_GADGET is not set
1348
1349#
1350# OTG and related infrastructure
1351#
1352CONFIG_USB_OTG_UTILS=y
1353# CONFIG_USB_GPIO_VBUS is not set
1354CONFIG_NOP_USB_XCEIV=y
1355# CONFIG_MMC is not set
1356# CONFIG_MEMSTICK is not set
1357CONFIG_NEW_LEDS=y
1358CONFIG_LEDS_CLASS=y
1359
1360#
1361# LED drivers
1362#
1363# CONFIG_LEDS_PCA9532 is not set
1364# CONFIG_LEDS_GPIO is not set
1365# CONFIG_LEDS_LP3944 is not set
1366# CONFIG_LEDS_PCA955X is not set
1367# CONFIG_LEDS_DAC124S085 is not set
1368# CONFIG_LEDS_BD2802 is not set
1369CONFIG_LEDS_ADP5520=y
1370
1371#
1372# LED Triggers
1373#
1374# CONFIG_LEDS_TRIGGERS is not set
1375# CONFIG_ACCESSIBILITY is not set
1376CONFIG_RTC_LIB=y
1377CONFIG_RTC_CLASS=y
1378CONFIG_RTC_HCTOSYS=y
1379CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1380# CONFIG_RTC_DEBUG is not set
1381
1382#
1383# RTC interfaces
1384#
1385CONFIG_RTC_INTF_SYSFS=y
1386CONFIG_RTC_INTF_PROC=y
1387CONFIG_RTC_INTF_DEV=y
1388# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1389# CONFIG_RTC_DRV_TEST is not set
1390
1391#
1392# I2C RTC drivers
1393#
1394# CONFIG_RTC_DRV_DS1307 is not set
1395# CONFIG_RTC_DRV_DS1374 is not set
1396# CONFIG_RTC_DRV_DS1672 is not set
1397# CONFIG_RTC_DRV_MAX6900 is not set
1398# CONFIG_RTC_DRV_RS5C372 is not set
1399# CONFIG_RTC_DRV_ISL1208 is not set
1400# CONFIG_RTC_DRV_X1205 is not set
1401# CONFIG_RTC_DRV_PCF8563 is not set
1402# CONFIG_RTC_DRV_PCF8583 is not set
1403# CONFIG_RTC_DRV_M41T80 is not set
1404# CONFIG_RTC_DRV_S35390A is not set
1405# CONFIG_RTC_DRV_FM3130 is not set
1406# CONFIG_RTC_DRV_RX8581 is not set
1407# CONFIG_RTC_DRV_RX8025 is not set
1408
1409#
1410# SPI RTC drivers
1411#
1412# CONFIG_RTC_DRV_M41T94 is not set
1413# CONFIG_RTC_DRV_DS1305 is not set
1414# CONFIG_RTC_DRV_DS1390 is not set
1415# CONFIG_RTC_DRV_MAX6902 is not set
1416# CONFIG_RTC_DRV_R9701 is not set
1417# CONFIG_RTC_DRV_RS5C348 is not set
1418# CONFIG_RTC_DRV_DS3234 is not set
1419# CONFIG_RTC_DRV_PCF2123 is not set
1420
1421#
1422# Platform RTC drivers
1423#
1424# CONFIG_RTC_DRV_DS1286 is not set
1425# CONFIG_RTC_DRV_DS1511 is not set
1426# CONFIG_RTC_DRV_DS1553 is not set
1427# CONFIG_RTC_DRV_DS1742 is not set
1428# CONFIG_RTC_DRV_STK17TA8 is not set
1429# CONFIG_RTC_DRV_M48T86 is not set
1430# CONFIG_RTC_DRV_M48T35 is not set
1431# CONFIG_RTC_DRV_M48T59 is not set
1432# CONFIG_RTC_DRV_BQ4802 is not set
1433# CONFIG_RTC_DRV_V3020 is not set
1434
1435#
1436# on-CPU RTC drivers
1437#
1438CONFIG_RTC_DRV_BFIN=y
1439# CONFIG_DMADEVICES is not set
1440# CONFIG_AUXDISPLAY is not set
1441# CONFIG_UIO is not set
1442
1443#
1444# TI VLYNQ
1445#
1446# CONFIG_STAGING is not set
1447
1448#
1449# Firmware Drivers
1450#
1451# CONFIG_FIRMWARE_MEMMAP is not set
1452# CONFIG_SIGMA is not set
1453
1454#
1455# File systems
1456#
1457CONFIG_EXT2_FS=m
1458# CONFIG_EXT2_FS_XATTR is not set
1459# CONFIG_EXT3_FS is not set
1460# CONFIG_EXT4_FS is not set
1461# CONFIG_REISERFS_FS is not set
1462# CONFIG_JFS_FS is not set
1463# CONFIG_FS_POSIX_ACL is not set
1464# CONFIG_XFS_FS is not set
1465# CONFIG_GFS2_FS is not set
1466# CONFIG_OCFS2_FS is not set
1467# CONFIG_BTRFS_FS is not set
1468# CONFIG_NILFS2_FS is not set
1469CONFIG_FILE_LOCKING=y
1470CONFIG_FSNOTIFY=y
1471# CONFIG_DNOTIFY is not set
1472CONFIG_INOTIFY=y
1473CONFIG_INOTIFY_USER=y
1474# CONFIG_QUOTA is not set
1475# CONFIG_AUTOFS_FS is not set
1476# CONFIG_AUTOFS4_FS is not set
1477# CONFIG_FUSE_FS is not set
1478
1479#
1480# Caches
1481#
1482# CONFIG_FSCACHE is not set
1483
1484#
1485# CD-ROM/DVD Filesystems
1486#
1487CONFIG_ISO9660_FS=m
1488CONFIG_JOLIET=y
1489# CONFIG_ZISOFS is not set
1490CONFIG_UDF_FS=m
1491CONFIG_UDF_NLS=y
1492
1493#
1494# DOS/FAT/NT Filesystems
1495#
1496CONFIG_FAT_FS=m
1497# CONFIG_MSDOS_FS is not set
1498CONFIG_VFAT_FS=m
1499CONFIG_FAT_DEFAULT_CODEPAGE=437
1500CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1501# CONFIG_NTFS_FS is not set
1502
1503#
1504# Pseudo filesystems
1505#
1506CONFIG_PROC_FS=y
1507CONFIG_PROC_SYSCTL=y
1508CONFIG_SYSFS=y
1509# CONFIG_HUGETLB_PAGE is not set
1510# CONFIG_CONFIGFS_FS is not set
1511CONFIG_MISC_FILESYSTEMS=y
1512# CONFIG_ADFS_FS is not set
1513# CONFIG_AFFS_FS is not set
1514# CONFIG_HFS_FS is not set
1515# CONFIG_HFSPLUS_FS is not set
1516# CONFIG_BEFS_FS is not set
1517# CONFIG_BFS_FS is not set
1518# CONFIG_EFS_FS is not set
1519CONFIG_JFFS2_FS=m
1520CONFIG_JFFS2_FS_DEBUG=0
1521CONFIG_JFFS2_FS_WRITEBUFFER=y
1522# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1523# CONFIG_JFFS2_SUMMARY is not set
1524# CONFIG_JFFS2_FS_XATTR is not set
1525# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1526CONFIG_JFFS2_ZLIB=y
1527# CONFIG_JFFS2_LZO is not set
1528CONFIG_JFFS2_RTIME=y
1529# CONFIG_JFFS2_RUBIN is not set
1530# CONFIG_CRAMFS is not set
1531# CONFIG_SQUASHFS is not set
1532# CONFIG_VXFS_FS is not set
1533# CONFIG_MINIX_FS is not set
1534# CONFIG_OMFS_FS is not set
1535# CONFIG_HPFS_FS is not set
1536# CONFIG_QNX4FS_FS is not set
1537# CONFIG_ROMFS_FS is not set
1538# CONFIG_SYSV_FS is not set
1539# CONFIG_UFS_FS is not set
1540CONFIG_NETWORK_FILESYSTEMS=y
1541CONFIG_NFS_FS=m
1542CONFIG_NFS_V3=y
1543# CONFIG_NFS_V3_ACL is not set
1544# CONFIG_NFS_V4 is not set
1545# CONFIG_NFSD is not set
1546CONFIG_LOCKD=m
1547CONFIG_LOCKD_V4=y
1548CONFIG_NFS_COMMON=y
1549CONFIG_SUNRPC=m
1550# CONFIG_RPCSEC_GSS_KRB5 is not set
1551# CONFIG_RPCSEC_GSS_SPKM3 is not set
1552CONFIG_SMB_FS=m
1553# CONFIG_SMB_NLS_DEFAULT is not set
1554# CONFIG_CIFS is not set
1555# CONFIG_NCP_FS is not set
1556# CONFIG_CODA_FS is not set
1557# CONFIG_AFS_FS is not set
1558
1559#
1560# Partition Types
1561#
1562# CONFIG_PARTITION_ADVANCED is not set
1563CONFIG_MSDOS_PARTITION=y
1564CONFIG_NLS=y
1565CONFIG_NLS_DEFAULT="iso8859-1"
1566CONFIG_NLS_CODEPAGE_437=m
1567# CONFIG_NLS_CODEPAGE_737 is not set
1568# CONFIG_NLS_CODEPAGE_775 is not set
1569# CONFIG_NLS_CODEPAGE_850 is not set
1570# CONFIG_NLS_CODEPAGE_852 is not set
1571# CONFIG_NLS_CODEPAGE_855 is not set
1572# CONFIG_NLS_CODEPAGE_857 is not set
1573# CONFIG_NLS_CODEPAGE_860 is not set
1574# CONFIG_NLS_CODEPAGE_861 is not set
1575# CONFIG_NLS_CODEPAGE_862 is not set
1576# CONFIG_NLS_CODEPAGE_863 is not set
1577# CONFIG_NLS_CODEPAGE_864 is not set
1578# CONFIG_NLS_CODEPAGE_865 is not set
1579# CONFIG_NLS_CODEPAGE_866 is not set
1580# CONFIG_NLS_CODEPAGE_869 is not set
1581CONFIG_NLS_CODEPAGE_936=m
1582# CONFIG_NLS_CODEPAGE_950 is not set
1583# CONFIG_NLS_CODEPAGE_932 is not set
1584# CONFIG_NLS_CODEPAGE_949 is not set
1585# CONFIG_NLS_CODEPAGE_874 is not set
1586# CONFIG_NLS_ISO8859_8 is not set
1587# CONFIG_NLS_CODEPAGE_1250 is not set
1588# CONFIG_NLS_CODEPAGE_1251 is not set
1589# CONFIG_NLS_ASCII is not set
1590CONFIG_NLS_ISO8859_1=m
1591# CONFIG_NLS_ISO8859_2 is not set
1592# CONFIG_NLS_ISO8859_3 is not set
1593# CONFIG_NLS_ISO8859_4 is not set
1594# CONFIG_NLS_ISO8859_5 is not set
1595# CONFIG_NLS_ISO8859_6 is not set
1596# CONFIG_NLS_ISO8859_7 is not set
1597# CONFIG_NLS_ISO8859_9 is not set
1598# CONFIG_NLS_ISO8859_13 is not set
1599# CONFIG_NLS_ISO8859_14 is not set
1600# CONFIG_NLS_ISO8859_15 is not set
1601# CONFIG_NLS_KOI8_R is not set
1602# CONFIG_NLS_KOI8_U is not set
1603CONFIG_NLS_UTF8=m
1604# CONFIG_DLM is not set
1605
1606#
1607# Kernel hacking
1608#
1609# CONFIG_PRINTK_TIME is not set
1610CONFIG_ENABLE_WARN_DEPRECATED=y
1611CONFIG_ENABLE_MUST_CHECK=y
1612CONFIG_FRAME_WARN=1024
1613# CONFIG_MAGIC_SYSRQ is not set
1614# CONFIG_STRIP_ASM_SYMS is not set
1615# CONFIG_UNUSED_SYMBOLS is not set
1616CONFIG_DEBUG_FS=y
1617# CONFIG_HEADERS_CHECK is not set
1618CONFIG_DEBUG_SECTION_MISMATCH=y
1619CONFIG_DEBUG_KERNEL=y
1620CONFIG_DEBUG_SHIRQ=y
1621CONFIG_DETECT_SOFTLOCKUP=y
1622# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1623CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1624CONFIG_DETECT_HUNG_TASK=y
1625# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1626CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1627CONFIG_SCHED_DEBUG=y
1628# CONFIG_SCHEDSTATS is not set
1629# CONFIG_TIMER_STATS is not set
1630# CONFIG_DEBUG_OBJECTS is not set
1631# CONFIG_DEBUG_SLAB is not set
1632# CONFIG_DEBUG_SPINLOCK is not set
1633# CONFIG_DEBUG_MUTEXES is not set
1634# CONFIG_DEBUG_LOCK_ALLOC is not set
1635# CONFIG_PROVE_LOCKING is not set
1636# CONFIG_LOCK_STAT is not set
1637# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1638# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1639# CONFIG_DEBUG_KOBJECT is not set
1640CONFIG_DEBUG_BUGVERBOSE=y
1641CONFIG_DEBUG_INFO=y
1642# CONFIG_DEBUG_VM is not set
1643# CONFIG_DEBUG_NOMMU_REGIONS is not set
1644# CONFIG_DEBUG_WRITECOUNT is not set
1645# CONFIG_DEBUG_MEMORY_INIT is not set
1646# CONFIG_DEBUG_LIST is not set
1647# CONFIG_DEBUG_SG is not set
1648# CONFIG_DEBUG_NOTIFIERS is not set
1649# CONFIG_DEBUG_CREDENTIALS is not set
1650# CONFIG_FRAME_POINTER is not set
1651# CONFIG_BOOT_PRINTK_DELAY is not set
1652# CONFIG_RCU_TORTURE_TEST is not set
1653# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1654# CONFIG_BACKTRACE_SELF_TEST is not set
1655# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1656# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1657# CONFIG_FAULT_INJECTION is not set
1658# CONFIG_PAGE_POISONING is not set
1659CONFIG_HAVE_FUNCTION_TRACER=y
1660CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1661CONFIG_TRACING_SUPPORT=y
1662# CONFIG_FTRACE is not set
1663# CONFIG_BRANCH_PROFILE_NONE is not set
1664# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1665# CONFIG_PROFILE_ALL_BRANCHES is not set
1666# CONFIG_DYNAMIC_DEBUG is not set
1667# CONFIG_SAMPLES is not set
1668CONFIG_HAVE_ARCH_KGDB=y
1669# CONFIG_KGDB is not set
1670# CONFIG_DEBUG_STACKOVERFLOW is not set
1671# CONFIG_DEBUG_STACK_USAGE is not set
1672CONFIG_DEBUG_VERBOSE=y
1673CONFIG_DEBUG_MMRS=y
1674CONFIG_DEBUG_HWERR=y
1675CONFIG_EXACT_HWERR=y
1676CONFIG_DEBUG_DOUBLEFAULT=y
1677CONFIG_DEBUG_DOUBLEFAULT_PRINT=y
1678# CONFIG_DEBUG_DOUBLEFAULT_RESET is not set
1679# CONFIG_DEBUG_ICACHE_CHECK is not set
1680CONFIG_DEBUG_HUNT_FOR_ZERO=y
1681CONFIG_DEBUG_BFIN_HWTRACE_ON=y
1682# CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF is not set
1683CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
1684# CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_TWO is not set
1685CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=1
1686# CONFIG_DEBUG_BFIN_HWTRACE_EXPAND is not set
1687CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE=y
1688CONFIG_EARLY_PRINTK=y
1689CONFIG_CPLB_INFO=y
1690CONFIG_ACCESS_CHECK=y
1691# CONFIG_BFIN_ISRAM_SELF_TEST is not set
1692
1693#
1694# Security options
1695#
1696# CONFIG_KEYS is not set
1697CONFIG_SECURITY=y
1698# CONFIG_SECURITYFS is not set
1699# CONFIG_SECURITY_NETWORK is not set
1700# CONFIG_SECURITY_PATH is not set
1701# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1702# CONFIG_SECURITY_ROOTPLUG is not set
1703# CONFIG_SECURITY_TOMOYO is not set
1704CONFIG_CRYPTO=y
1705
1706#
1707# Crypto core or helper
1708#
1709# CONFIG_CRYPTO_MANAGER is not set
1710# CONFIG_CRYPTO_MANAGER2 is not set
1711# CONFIG_CRYPTO_GF128MUL is not set
1712# CONFIG_CRYPTO_NULL is not set
1713# CONFIG_CRYPTO_CRYPTD is not set
1714# CONFIG_CRYPTO_AUTHENC is not set
1715# CONFIG_CRYPTO_TEST is not set
1716
1717#
1718# Authenticated Encryption with Associated Data
1719#
1720# CONFIG_CRYPTO_CCM is not set
1721# CONFIG_CRYPTO_GCM is not set
1722# CONFIG_CRYPTO_SEQIV is not set
1723
1724#
1725# Block modes
1726#
1727# CONFIG_CRYPTO_CBC is not set
1728# CONFIG_CRYPTO_CTR is not set
1729# CONFIG_CRYPTO_CTS is not set
1730# CONFIG_CRYPTO_ECB is not set
1731# CONFIG_CRYPTO_LRW is not set
1732# CONFIG_CRYPTO_PCBC is not set
1733# CONFIG_CRYPTO_XTS is not set
1734
1735#
1736# Hash modes
1737#
1738# CONFIG_CRYPTO_HMAC is not set
1739# CONFIG_CRYPTO_XCBC is not set
1740# CONFIG_CRYPTO_VMAC is not set
1741
1742#
1743# Digest
1744#
1745# CONFIG_CRYPTO_CRC32C is not set
1746# CONFIG_CRYPTO_GHASH is not set
1747# CONFIG_CRYPTO_MD4 is not set
1748# CONFIG_CRYPTO_MD5 is not set
1749# CONFIG_CRYPTO_MICHAEL_MIC is not set
1750# CONFIG_CRYPTO_RMD128 is not set
1751# CONFIG_CRYPTO_RMD160 is not set
1752# CONFIG_CRYPTO_RMD256 is not set
1753# CONFIG_CRYPTO_RMD320 is not set
1754# CONFIG_CRYPTO_SHA1 is not set
1755# CONFIG_CRYPTO_SHA256 is not set
1756# CONFIG_CRYPTO_SHA512 is not set
1757# CONFIG_CRYPTO_TGR192 is not set
1758# CONFIG_CRYPTO_WP512 is not set
1759
1760#
1761# Ciphers
1762#
1763# CONFIG_CRYPTO_AES is not set
1764# CONFIG_CRYPTO_ANUBIS is not set
1765# CONFIG_CRYPTO_ARC4 is not set
1766# CONFIG_CRYPTO_BLOWFISH is not set
1767# CONFIG_CRYPTO_CAMELLIA is not set
1768# CONFIG_CRYPTO_CAST5 is not set
1769# CONFIG_CRYPTO_CAST6 is not set
1770# CONFIG_CRYPTO_DES is not set
1771# CONFIG_CRYPTO_FCRYPT is not set
1772# CONFIG_CRYPTO_KHAZAD is not set
1773# CONFIG_CRYPTO_SALSA20 is not set
1774# CONFIG_CRYPTO_SEED is not set
1775# CONFIG_CRYPTO_SERPENT is not set
1776# CONFIG_CRYPTO_TEA is not set
1777# CONFIG_CRYPTO_TWOFISH is not set
1778
1779#
1780# Compression
1781#
1782# CONFIG_CRYPTO_DEFLATE is not set
1783# CONFIG_CRYPTO_ZLIB is not set
1784# CONFIG_CRYPTO_LZO is not set
1785
1786#
1787# Random Number Generation
1788#
1789# CONFIG_CRYPTO_ANSI_CPRNG is not set
1790CONFIG_CRYPTO_HW=y
1791# CONFIG_BINARY_PRINTF is not set
1792
1793#
1794# Library routines
1795#
1796CONFIG_BITREVERSE=y
1797CONFIG_GENERIC_FIND_LAST_BIT=y
1798CONFIG_CRC_CCITT=m
1799# CONFIG_CRC16 is not set
1800# CONFIG_CRC_T10DIF is not set
1801CONFIG_CRC_ITU_T=m
1802CONFIG_CRC32=y
1803# CONFIG_CRC7 is not set
1804# CONFIG_LIBCRC32C is not set
1805CONFIG_ZLIB_INFLATE=y
1806CONFIG_ZLIB_DEFLATE=m
1807CONFIG_DECOMPRESS_GZIP=y
1808CONFIG_HAS_IOMEM=y
1809CONFIG_HAS_IOPORT=y
1810CONFIG_HAS_DMA=y
1811CONFIG_NLATTR=y
diff --git a/arch/blackfin/configs/BF527-EZKIT_defconfig b/arch/blackfin/configs/BF527-EZKIT_defconfig
index 6d1a623fb149..edbb44d26bbf 100644
--- a/arch/blackfin/configs/BF527-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF527-EZKIT_defconfig
@@ -1,22 +1,27 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28.10 3# Linux kernel version: 2.6.32.2
4# Thu May 21 05:50:01 2009
5# 4#
6# CONFIG_MMU is not set 5# CONFIG_MMU is not set
7# CONFIG_FPU is not set 6# CONFIG_FPU is not set
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 7CONFIG_RWSEM_GENERIC_SPINLOCK=y
9# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
10CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
10CONFIG_GENERIC_CSUM=y
11CONFIG_GENERIC_BUG=y
11CONFIG_ZONE_DMA=y 12CONFIG_ZONE_DMA=y
12CONFIG_GENERIC_FIND_NEXT_BIT=y 13CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
16CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
17CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
18CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_TRACE_IRQFLAGS_SUPPORT=y
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
24CONFIG_CONSTRUCTORS=y
20 25
21# 26#
22# General setup 27# General setup
@@ -26,22 +31,41 @@ CONFIG_BROKEN_ON_SMP=y
26CONFIG_INIT_ENV_ARG_LIMIT=32 31CONFIG_INIT_ENV_ARG_LIMIT=32
27CONFIG_LOCALVERSION="" 32CONFIG_LOCALVERSION=""
28CONFIG_LOCALVERSION_AUTO=y 33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_HAVE_KERNEL_GZIP=y
35CONFIG_HAVE_KERNEL_BZIP2=y
36CONFIG_HAVE_KERNEL_LZMA=y
37CONFIG_KERNEL_GZIP=y
38# CONFIG_KERNEL_BZIP2 is not set
39# CONFIG_KERNEL_LZMA is not set
29CONFIG_SYSVIPC=y 40CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 41CONFIG_SYSVIPC_SYSCTL=y
31# CONFIG_POSIX_MQUEUE is not set 42# CONFIG_POSIX_MQUEUE is not set
32# CONFIG_BSD_PROCESS_ACCT is not set 43# CONFIG_BSD_PROCESS_ACCT is not set
33# CONFIG_TASKSTATS is not set 44# CONFIG_TASKSTATS is not set
34# CONFIG_AUDIT is not set 45# CONFIG_AUDIT is not set
46
47#
48# RCU Subsystem
49#
50CONFIG_TREE_RCU=y
51# CONFIG_TREE_PREEMPT_RCU is not set
52# CONFIG_RCU_TRACE is not set
53CONFIG_RCU_FANOUT=32
54# CONFIG_RCU_FANOUT_EXACT is not set
55# CONFIG_TREE_RCU_TRACE is not set
35CONFIG_IKCONFIG=y 56CONFIG_IKCONFIG=y
36CONFIG_IKCONFIG_PROC=y 57CONFIG_IKCONFIG_PROC=y
37CONFIG_LOG_BUF_SHIFT=14 58CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 59# CONFIG_GROUP_SCHED is not set
60# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 61# CONFIG_SYSFS_DEPRECATED_V2 is not set
41# CONFIG_RELAY is not set 62# CONFIG_RELAY is not set
42# CONFIG_NAMESPACES is not set 63# CONFIG_NAMESPACES is not set
43CONFIG_BLK_DEV_INITRD=y 64CONFIG_BLK_DEV_INITRD=y
44CONFIG_INITRAMFS_SOURCE="" 65CONFIG_INITRAMFS_SOURCE=""
66CONFIG_RD_GZIP=y
67# CONFIG_RD_BZIP2 is not set
68# CONFIG_RD_LZMA is not set
45# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 69# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
46CONFIG_SYSCTL=y 70CONFIG_SYSCTL=y
47CONFIG_ANON_INODES=y 71CONFIG_ANON_INODES=y
@@ -62,6 +86,10 @@ CONFIG_EPOLL=y
62# CONFIG_TIMERFD is not set 86# CONFIG_TIMERFD is not set
63# CONFIG_EVENTFD is not set 87# CONFIG_EVENTFD is not set
64# CONFIG_AIO is not set 88# CONFIG_AIO is not set
89
90#
91# Kernel Performance Events And Counters
92#
65CONFIG_VM_EVENT_COUNTERS=y 93CONFIG_VM_EVENT_COUNTERS=y
66CONFIG_COMPAT_BRK=y 94CONFIG_COMPAT_BRK=y
67CONFIG_SLAB=y 95CONFIG_SLAB=y
@@ -69,11 +97,15 @@ CONFIG_SLAB=y
69# CONFIG_SLOB is not set 97# CONFIG_SLOB is not set
70CONFIG_MMAP_ALLOW_UNINITIALIZED=y 98CONFIG_MMAP_ALLOW_UNINITIALIZED=y
71# CONFIG_PROFILING is not set 99# CONFIG_PROFILING is not set
72# CONFIG_MARKERS is not set
73CONFIG_HAVE_OPROFILE=y 100CONFIG_HAVE_OPROFILE=y
101
102#
103# GCOV-based kernel profiling
104#
105# CONFIG_GCOV_KERNEL is not set
106# CONFIG_SLOW_WORK is not set
74# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 107# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
75CONFIG_SLABINFO=y 108CONFIG_SLABINFO=y
76CONFIG_TINY_SHMEM=y
77CONFIG_BASE_SMALL=0 109CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y 110CONFIG_MODULES=y
79# CONFIG_MODULE_FORCE_LOAD is not set 111# CONFIG_MODULE_FORCE_LOAD is not set
@@ -81,11 +113,8 @@ CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODULE_FORCE_UNLOAD is not set 113# CONFIG_MODULE_FORCE_UNLOAD is not set
82# CONFIG_MODVERSIONS is not set 114# CONFIG_MODVERSIONS is not set
83# CONFIG_MODULE_SRCVERSION_ALL is not set 115# CONFIG_MODULE_SRCVERSION_ALL is not set
84CONFIG_KMOD=y
85CONFIG_BLOCK=y 116CONFIG_BLOCK=y
86# CONFIG_LBD is not set 117# CONFIG_LBDAF is not set
87# CONFIG_BLK_DEV_IO_TRACE is not set
88# CONFIG_LSF is not set
89# CONFIG_BLK_DEV_BSG is not set 118# CONFIG_BLK_DEV_BSG is not set
90# CONFIG_BLK_DEV_INTEGRITY is not set 119# CONFIG_BLK_DEV_INTEGRITY is not set
91 120
@@ -101,7 +130,6 @@ CONFIG_DEFAULT_AS=y
101# CONFIG_DEFAULT_CFQ is not set 130# CONFIG_DEFAULT_CFQ is not set
102# CONFIG_DEFAULT_NOOP is not set 131# CONFIG_DEFAULT_NOOP is not set
103CONFIG_DEFAULT_IOSCHED="anticipatory" 132CONFIG_DEFAULT_IOSCHED="anticipatory"
104CONFIG_CLASSIC_RCU=y
105# CONFIG_PREEMPT_NONE is not set 133# CONFIG_PREEMPT_NONE is not set
106CONFIG_PREEMPT_VOLUNTARY=y 134CONFIG_PREEMPT_VOLUNTARY=y
107# CONFIG_PREEMPT is not set 135# CONFIG_PREEMPT is not set
@@ -132,29 +160,28 @@ CONFIG_BF527=y
132# CONFIG_BF537 is not set 160# CONFIG_BF537 is not set
133# CONFIG_BF538 is not set 161# CONFIG_BF538 is not set
134# CONFIG_BF539 is not set 162# CONFIG_BF539 is not set
135# CONFIG_BF542 is not set 163# CONFIG_BF542_std is not set
136# CONFIG_BF542M is not set 164# CONFIG_BF542M is not set
137# CONFIG_BF544 is not set 165# CONFIG_BF544_std is not set
138# CONFIG_BF544M is not set 166# CONFIG_BF544M is not set
139# CONFIG_BF547 is not set 167# CONFIG_BF547_std is not set
140# CONFIG_BF547M is not set 168# CONFIG_BF547M is not set
141# CONFIG_BF548 is not set 169# CONFIG_BF548_std is not set
142# CONFIG_BF548M is not set 170# CONFIG_BF548M is not set
143# CONFIG_BF549 is not set 171# CONFIG_BF549_std is not set
144# CONFIG_BF549M is not set 172# CONFIG_BF549M is not set
145# CONFIG_BF561 is not set 173# CONFIG_BF561 is not set
146CONFIG_BF_REV_MIN=0 174CONFIG_BF_REV_MIN=0
147CONFIG_BF_REV_MAX=2 175CONFIG_BF_REV_MAX=2
148# CONFIG_BF_REV_0_0 is not set 176# CONFIG_BF_REV_0_0 is not set
149# CONFIG_BF_REV_0_1 is not set 177CONFIG_BF_REV_0_1=y
150CONFIG_BF_REV_0_2=y 178# CONFIG_BF_REV_0_2 is not set
151# CONFIG_BF_REV_0_3 is not set 179# CONFIG_BF_REV_0_3 is not set
152# CONFIG_BF_REV_0_4 is not set 180# CONFIG_BF_REV_0_4 is not set
153# CONFIG_BF_REV_0_5 is not set 181# CONFIG_BF_REV_0_5 is not set
154# CONFIG_BF_REV_0_6 is not set 182# CONFIG_BF_REV_0_6 is not set
155# CONFIG_BF_REV_ANY is not set 183# CONFIG_BF_REV_ANY is not set
156# CONFIG_BF_REV_NONE is not set 184# CONFIG_BF_REV_NONE is not set
157CONFIG_BF52x=y
158CONFIG_MEM_MT48LC32M16A2TG_75=y 185CONFIG_MEM_MT48LC32M16A2TG_75=y
159CONFIG_IRQ_PLL_WAKEUP=7 186CONFIG_IRQ_PLL_WAKEUP=7
160CONFIG_IRQ_DMA0_ERROR=7 187CONFIG_IRQ_DMA0_ERROR=7
@@ -200,7 +227,9 @@ CONFIG_IRQ_MEM_DMA1=13
200CONFIG_IRQ_WATCH=13 227CONFIG_IRQ_WATCH=13
201CONFIG_IRQ_PORTF_INTA=13 228CONFIG_IRQ_PORTF_INTA=13
202CONFIG_IRQ_PORTF_INTB=13 229CONFIG_IRQ_PORTF_INTB=13
230CONFIG_BF52x=y
203CONFIG_BFIN527_EZKIT=y 231CONFIG_BFIN527_EZKIT=y
232# CONFIG_BFIN527_EZKIT_V2 is not set
204# CONFIG_BFIN527_BLUETECHNIX_CM is not set 233# CONFIG_BFIN527_BLUETECHNIX_CM is not set
205# CONFIG_BFIN526_EZBRD is not set 234# CONFIG_BFIN526_EZBRD is not set
206 235
@@ -318,7 +347,6 @@ CONFIG_FLATMEM=y
318CONFIG_FLAT_NODE_MEM_MAP=y 347CONFIG_FLAT_NODE_MEM_MAP=y
319CONFIG_PAGEFLAGS_EXTENDED=y 348CONFIG_PAGEFLAGS_EXTENDED=y
320CONFIG_SPLIT_PTLOCK_CPUS=4 349CONFIG_SPLIT_PTLOCK_CPUS=4
321# CONFIG_RESOURCES_64BIT is not set
322# CONFIG_PHYS_ADDR_T_64BIT is not set 350# CONFIG_PHYS_ADDR_T_64BIT is not set
323CONFIG_ZONE_DMA_FLAG=1 351CONFIG_ZONE_DMA_FLAG=1
324CONFIG_VIRT_TO_BUS=y 352CONFIG_VIRT_TO_BUS=y
@@ -327,16 +355,18 @@ CONFIG_BFIN_GPTIMERS=y
327# CONFIG_DMA_UNCACHED_4M is not set 355# CONFIG_DMA_UNCACHED_4M is not set
328# CONFIG_DMA_UNCACHED_2M is not set 356# CONFIG_DMA_UNCACHED_2M is not set
329CONFIG_DMA_UNCACHED_1M=y 357CONFIG_DMA_UNCACHED_1M=y
358# CONFIG_DMA_UNCACHED_512K is not set
359# CONFIG_DMA_UNCACHED_256K is not set
360# CONFIG_DMA_UNCACHED_128K is not set
330# CONFIG_DMA_UNCACHED_NONE is not set 361# CONFIG_DMA_UNCACHED_NONE is not set
331 362
332# 363#
333# Cache Support 364# Cache Support
334# 365#
335CONFIG_BFIN_ICACHE=y 366CONFIG_BFIN_ICACHE=y
336# CONFIG_BFIN_ICACHE_LOCK is not set 367CONFIG_BFIN_EXTMEM_ICACHEABLE=y
337CONFIG_BFIN_DCACHE=y 368CONFIG_BFIN_DCACHE=y
338# CONFIG_BFIN_DCACHE_BANKA is not set 369# CONFIG_BFIN_DCACHE_BANKA is not set
339CONFIG_BFIN_EXTMEM_ICACHEABLE=y
340CONFIG_BFIN_EXTMEM_DCACHEABLE=y 370CONFIG_BFIN_EXTMEM_DCACHEABLE=y
341CONFIG_BFIN_EXTMEM_WRITEBACK=y 371CONFIG_BFIN_EXTMEM_WRITEBACK=y
342# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 372# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
@@ -347,7 +377,7 @@ CONFIG_BFIN_EXTMEM_WRITEBACK=y
347# CONFIG_MPU is not set 377# CONFIG_MPU is not set
348 378
349# 379#
350# Asynchonous Memory Configuration 380# Asynchronous Memory Configuration
351# 381#
352 382
353# 383#
@@ -403,11 +433,6 @@ CONFIG_NET=y
403CONFIG_PACKET=y 433CONFIG_PACKET=y
404# CONFIG_PACKET_MMAP is not set 434# CONFIG_PACKET_MMAP is not set
405CONFIG_UNIX=y 435CONFIG_UNIX=y
406CONFIG_XFRM=y
407# CONFIG_XFRM_USER is not set
408# CONFIG_XFRM_SUB_POLICY is not set
409# CONFIG_XFRM_MIGRATE is not set
410# CONFIG_XFRM_STATISTICS is not set
411# CONFIG_NET_KEY is not set 436# CONFIG_NET_KEY is not set
412CONFIG_INET=y 437CONFIG_INET=y
413# CONFIG_IP_MULTICAST is not set 438# CONFIG_IP_MULTICAST is not set
@@ -431,7 +456,6 @@ CONFIG_IP_PNP=y
431# CONFIG_INET_XFRM_MODE_BEET is not set 456# CONFIG_INET_XFRM_MODE_BEET is not set
432# CONFIG_INET_LRO is not set 457# CONFIG_INET_LRO is not set
433# CONFIG_INET_DIAG is not set 458# CONFIG_INET_DIAG is not set
434CONFIG_INET_TCP_DIAG=y
435# CONFIG_TCP_CONG_ADVANCED is not set 459# CONFIG_TCP_CONG_ADVANCED is not set
436CONFIG_TCP_CONG_CUBIC=y 460CONFIG_TCP_CONG_CUBIC=y
437CONFIG_DEFAULT_TCP_CONG="cubic" 461CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -442,6 +466,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
442# CONFIG_NETFILTER is not set 466# CONFIG_NETFILTER is not set
443# CONFIG_IP_DCCP is not set 467# CONFIG_IP_DCCP is not set
444# CONFIG_IP_SCTP is not set 468# CONFIG_IP_SCTP is not set
469# CONFIG_RDS is not set
445# CONFIG_TIPC is not set 470# CONFIG_TIPC is not set
446# CONFIG_ATM is not set 471# CONFIG_ATM is not set
447# CONFIG_BRIDGE is not set 472# CONFIG_BRIDGE is not set
@@ -455,7 +480,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
455# CONFIG_LAPB is not set 480# CONFIG_LAPB is not set
456# CONFIG_ECONET is not set 481# CONFIG_ECONET is not set
457# CONFIG_WAN_ROUTER is not set 482# CONFIG_WAN_ROUTER is not set
483# CONFIG_PHONET is not set
484# CONFIG_IEEE802154 is not set
458# CONFIG_NET_SCHED is not set 485# CONFIG_NET_SCHED is not set
486# CONFIG_DCB is not set
459 487
460# 488#
461# Network testing 489# Network testing
@@ -508,13 +536,8 @@ CONFIG_SIR_BFIN_DMA=y
508# CONFIG_MCS_FIR is not set 536# CONFIG_MCS_FIR is not set
509# CONFIG_BT is not set 537# CONFIG_BT is not set
510# CONFIG_AF_RXRPC is not set 538# CONFIG_AF_RXRPC is not set
511# CONFIG_PHONET is not set 539# CONFIG_WIRELESS is not set
512CONFIG_WIRELESS=y 540# CONFIG_WIMAX is not set
513# CONFIG_CFG80211 is not set
514CONFIG_WIRELESS_OLD_REGULATORY=y
515# CONFIG_WIRELESS_EXT is not set
516# CONFIG_MAC80211 is not set
517# CONFIG_IEEE80211 is not set
518# CONFIG_RFKILL is not set 541# CONFIG_RFKILL is not set
519# CONFIG_NET_9P is not set 542# CONFIG_NET_9P is not set
520 543
@@ -535,6 +558,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
535# CONFIG_CONNECTOR is not set 558# CONFIG_CONNECTOR is not set
536CONFIG_MTD=y 559CONFIG_MTD=y
537# CONFIG_MTD_DEBUG is not set 560# CONFIG_MTD_DEBUG is not set
561# CONFIG_MTD_TESTS is not set
538# CONFIG_MTD_CONCAT is not set 562# CONFIG_MTD_CONCAT is not set
539CONFIG_MTD_PARTITIONS=y 563CONFIG_MTD_PARTITIONS=y
540# CONFIG_MTD_REDBOOT_PARTS is not set 564# CONFIG_MTD_REDBOOT_PARTS is not set
@@ -593,6 +617,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
593# CONFIG_MTD_DATAFLASH is not set 617# CONFIG_MTD_DATAFLASH is not set
594CONFIG_MTD_M25P80=y 618CONFIG_MTD_M25P80=y
595CONFIG_M25PXX_USE_FAST_READ=y 619CONFIG_M25PXX_USE_FAST_READ=y
620# CONFIG_MTD_SST25L is not set
596# CONFIG_MTD_SLRAM is not set 621# CONFIG_MTD_SLRAM is not set
597# CONFIG_MTD_PHRAM is not set 622# CONFIG_MTD_PHRAM is not set
598# CONFIG_MTD_MTDRAM is not set 623# CONFIG_MTD_MTDRAM is not set
@@ -608,11 +633,6 @@ CONFIG_MTD_NAND=m
608# CONFIG_MTD_NAND_VERIFY_WRITE is not set 633# CONFIG_MTD_NAND_VERIFY_WRITE is not set
609# CONFIG_MTD_NAND_ECC_SMC is not set 634# CONFIG_MTD_NAND_ECC_SMC is not set
610# CONFIG_MTD_NAND_MUSEUM_IDS is not set 635# CONFIG_MTD_NAND_MUSEUM_IDS is not set
611CONFIG_MTD_NAND_BFIN=m
612CONFIG_BFIN_NAND_BASE=0x20212000
613CONFIG_BFIN_NAND_CLE=2
614CONFIG_BFIN_NAND_ALE=1
615CONFIG_BFIN_NAND_READY=3
616CONFIG_MTD_NAND_IDS=m 636CONFIG_MTD_NAND_IDS=m
617# CONFIG_MTD_NAND_BF5XX is not set 637# CONFIG_MTD_NAND_BF5XX is not set
618# CONFIG_MTD_NAND_DISKONCHIP is not set 638# CONFIG_MTD_NAND_DISKONCHIP is not set
@@ -622,6 +642,11 @@ CONFIG_MTD_NAND_IDS=m
622# CONFIG_MTD_ONENAND is not set 642# CONFIG_MTD_ONENAND is not set
623 643
624# 644#
645# LPDDR flash memory drivers
646#
647# CONFIG_MTD_LPDDR is not set
648
649#
625# UBI - Unsorted block images 650# UBI - Unsorted block images
626# 651#
627# CONFIG_MTD_UBI is not set 652# CONFIG_MTD_UBI is not set
@@ -639,10 +664,20 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
639# CONFIG_ATA_OVER_ETH is not set 664# CONFIG_ATA_OVER_ETH is not set
640# CONFIG_BLK_DEV_HD is not set 665# CONFIG_BLK_DEV_HD is not set
641CONFIG_MISC_DEVICES=y 666CONFIG_MISC_DEVICES=y
642# CONFIG_EEPROM_93CX6 is not set 667# CONFIG_AD525X_DPOT is not set
643# CONFIG_ICS932S401 is not set 668# CONFIG_ICS932S401 is not set
644# CONFIG_ENCLOSURE_SERVICES is not set 669# CONFIG_ENCLOSURE_SERVICES is not set
670# CONFIG_ISL29003 is not set
645# CONFIG_C2PORT is not set 671# CONFIG_C2PORT is not set
672
673#
674# EEPROM support
675#
676# CONFIG_EEPROM_AT24 is not set
677# CONFIG_EEPROM_AT25 is not set
678# CONFIG_EEPROM_LEGACY is not set
679# CONFIG_EEPROM_MAX6875 is not set
680# CONFIG_EEPROM_93CX6 is not set
646CONFIG_HAVE_IDE=y 681CONFIG_HAVE_IDE=y
647# CONFIG_IDE is not set 682# CONFIG_IDE is not set
648 683
@@ -666,10 +701,6 @@ CONFIG_BLK_DEV_SR=m
666# CONFIG_BLK_DEV_SR_VENDOR is not set 701# CONFIG_BLK_DEV_SR_VENDOR is not set
667# CONFIG_CHR_DEV_SG is not set 702# CONFIG_CHR_DEV_SG is not set
668# CONFIG_CHR_DEV_SCH is not set 703# CONFIG_CHR_DEV_SCH is not set
669
670#
671# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
672#
673# CONFIG_SCSI_MULTI_LUN is not set 704# CONFIG_SCSI_MULTI_LUN is not set
674# CONFIG_SCSI_CONSTANTS is not set 705# CONFIG_SCSI_CONSTANTS is not set
675# CONFIG_SCSI_LOGGING is not set 706# CONFIG_SCSI_LOGGING is not set
@@ -686,6 +717,7 @@ CONFIG_SCSI_WAIT_SCAN=m
686# CONFIG_SCSI_SRP_ATTRS is not set 717# CONFIG_SCSI_SRP_ATTRS is not set
687# CONFIG_SCSI_LOWLEVEL is not set 718# CONFIG_SCSI_LOWLEVEL is not set
688# CONFIG_SCSI_DH is not set 719# CONFIG_SCSI_DH is not set
720# CONFIG_SCSI_OSD_INITIATOR is not set
689# CONFIG_ATA is not set 721# CONFIG_ATA is not set
690# CONFIG_MD is not set 722# CONFIG_MD is not set
691CONFIG_NETDEVICES=y 723CONFIG_NETDEVICES=y
@@ -710,6 +742,9 @@ CONFIG_PHYLIB=y
710# CONFIG_BROADCOM_PHY is not set 742# CONFIG_BROADCOM_PHY is not set
711# CONFIG_ICPLUS_PHY is not set 743# CONFIG_ICPLUS_PHY is not set
712# CONFIG_REALTEK_PHY is not set 744# CONFIG_REALTEK_PHY is not set
745# CONFIG_NATIONAL_PHY is not set
746# CONFIG_STE10XP is not set
747# CONFIG_LSI_ET1011C_PHY is not set
713# CONFIG_FIXED_PHY is not set 748# CONFIG_FIXED_PHY is not set
714# CONFIG_MDIO_BITBANG is not set 749# CONFIG_MDIO_BITBANG is not set
715CONFIG_NET_ETHERNET=y 750CONFIG_NET_ETHERNET=y
@@ -720,9 +755,12 @@ CONFIG_BFIN_TX_DESC_NUM=10
720CONFIG_BFIN_RX_DESC_NUM=20 755CONFIG_BFIN_RX_DESC_NUM=20
721CONFIG_BFIN_MAC_RMII=y 756CONFIG_BFIN_MAC_RMII=y
722# CONFIG_SMC91X is not set 757# CONFIG_SMC91X is not set
723# CONFIG_SMSC911X is not set
724# CONFIG_DM9000 is not set 758# CONFIG_DM9000 is not set
725# CONFIG_ENC28J60 is not set 759# CONFIG_ENC28J60 is not set
760# CONFIG_ETHOC is not set
761# CONFIG_SMSC911X is not set
762# CONFIG_DNET is not set
763# CONFIG_ADF702X is not set
726# CONFIG_IBM_NEW_EMAC_ZMII is not set 764# CONFIG_IBM_NEW_EMAC_ZMII is not set
727# CONFIG_IBM_NEW_EMAC_RGMII is not set 765# CONFIG_IBM_NEW_EMAC_RGMII is not set
728# CONFIG_IBM_NEW_EMAC_TAH is not set 766# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -731,15 +769,16 @@ CONFIG_BFIN_MAC_RMII=y
731# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 769# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
732# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 770# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
733# CONFIG_B44 is not set 771# CONFIG_B44 is not set
772# CONFIG_KS8842 is not set
773# CONFIG_KS8851 is not set
774# CONFIG_KS8851_MLL is not set
734# CONFIG_NETDEV_1000 is not set 775# CONFIG_NETDEV_1000 is not set
735# CONFIG_NETDEV_10000 is not set 776# CONFIG_NETDEV_10000 is not set
777# CONFIG_WLAN is not set
736 778
737# 779#
738# Wireless LAN 780# Enable WiMAX (Networking options) to see the WiMAX drivers
739# 781#
740# CONFIG_WLAN_PRE80211 is not set
741# CONFIG_WLAN_80211 is not set
742# CONFIG_IWLWIFI_LEDS is not set
743 782
744# 783#
745# USB Network Adapters 784# USB Network Adapters
@@ -789,7 +828,11 @@ CONFIG_INPUT_MISC=y
789# CONFIG_INPUT_YEALINK is not set 828# CONFIG_INPUT_YEALINK is not set
790# CONFIG_INPUT_CM109 is not set 829# CONFIG_INPUT_CM109 is not set
791# CONFIG_INPUT_UINPUT is not set 830# CONFIG_INPUT_UINPUT is not set
792# CONFIG_CONFIG_INPUT_PCF8574 is not set 831# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
832# CONFIG_INPUT_BFIN_ROTARY is not set
833# CONFIG_INPUT_AD714X is not set
834# CONFIG_INPUT_ADXL34X is not set
835# CONFIG_INPUT_PCF8574 is not set
793 836
794# 837#
795# Hardware I/O ports 838# Hardware I/O ports
@@ -800,16 +843,13 @@ CONFIG_INPUT_MISC=y
800# 843#
801# Character devices 844# Character devices
802# 845#
803# CONFIG_AD9960 is not set
804CONFIG_BFIN_DMA_INTERFACE=m 846CONFIG_BFIN_DMA_INTERFACE=m
805# CONFIG_BFIN_PPI is not set 847# CONFIG_BFIN_PPI is not set
806# CONFIG_BFIN_PPIFCD is not set 848# CONFIG_BFIN_PPIFCD is not set
807# CONFIG_BFIN_SIMPLE_TIMER is not set 849# CONFIG_BFIN_SIMPLE_TIMER is not set
808# CONFIG_BFIN_SPI_ADC is not set 850# CONFIG_BFIN_SPI_ADC is not set
809CONFIG_BFIN_SPORT=m 851CONFIG_BFIN_SPORT=m
810# CONFIG_BFIN_TIMER_LATENCY is not set
811# CONFIG_BFIN_TWI_LCD is not set 852# CONFIG_BFIN_TWI_LCD is not set
812CONFIG_SIMPLE_GPIO=m
813CONFIG_VT=y 853CONFIG_VT=y
814CONFIG_CONSOLE_TRANSLATIONS=y 854CONFIG_CONSOLE_TRANSLATIONS=y
815CONFIG_VT_CONSOLE=y 855CONFIG_VT_CONSOLE=y
@@ -827,6 +867,7 @@ CONFIG_BFIN_JTAG_COMM=m
827# 867#
828# Non-8250 serial port support 868# Non-8250 serial port support
829# 869#
870# CONFIG_SERIAL_MAX3100 is not set
830CONFIG_SERIAL_BFIN=y 871CONFIG_SERIAL_BFIN=y
831CONFIG_SERIAL_BFIN_CONSOLE=y 872CONFIG_SERIAL_BFIN_CONSOLE=y
832CONFIG_SERIAL_BFIN_DMA=y 873CONFIG_SERIAL_BFIN_DMA=y
@@ -838,14 +879,10 @@ CONFIG_SERIAL_CORE=y
838CONFIG_SERIAL_CORE_CONSOLE=y 879CONFIG_SERIAL_CORE_CONSOLE=y
839# CONFIG_SERIAL_BFIN_SPORT is not set 880# CONFIG_SERIAL_BFIN_SPORT is not set
840CONFIG_UNIX98_PTYS=y 881CONFIG_UNIX98_PTYS=y
882# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
841# CONFIG_LEGACY_PTYS is not set 883# CONFIG_LEGACY_PTYS is not set
842CONFIG_BFIN_OTP=y 884CONFIG_BFIN_OTP=y
843# CONFIG_BFIN_OTP_WRITE_ENABLE is not set 885# CONFIG_BFIN_OTP_WRITE_ENABLE is not set
844
845#
846# CAN, the car bus and industrial fieldbus
847#
848# CONFIG_CAN4LINUX is not set
849# CONFIG_IPMI_HANDLER is not set 886# CONFIG_IPMI_HANDLER is not set
850# CONFIG_HW_RANDOM is not set 887# CONFIG_HW_RANDOM is not set
851# CONFIG_R3964 is not set 888# CONFIG_R3964 is not set
@@ -853,6 +890,7 @@ CONFIG_BFIN_OTP=y
853# CONFIG_TCG_TPM is not set 890# CONFIG_TCG_TPM is not set
854CONFIG_I2C=y 891CONFIG_I2C=y
855CONFIG_I2C_BOARDINFO=y 892CONFIG_I2C_BOARDINFO=y
893CONFIG_I2C_COMPAT=y
856CONFIG_I2C_CHARDEV=m 894CONFIG_I2C_CHARDEV=m
857CONFIG_I2C_HELPER_AUTO=y 895CONFIG_I2C_HELPER_AUTO=y
858 896
@@ -886,14 +924,6 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
886# Miscellaneous I2C Chip support 924# Miscellaneous I2C Chip support
887# 925#
888# CONFIG_DS1682 is not set 926# CONFIG_DS1682 is not set
889# CONFIG_EEPROM_AT24 is not set
890# CONFIG_SENSORS_AD5252 is not set
891# CONFIG_EEPROM_LEGACY is not set
892# CONFIG_SENSORS_PCF8574 is not set
893# CONFIG_PCF8575 is not set
894# CONFIG_SENSORS_PCA9539 is not set
895# CONFIG_SENSORS_PCF8591 is not set
896# CONFIG_SENSORS_MAX6875 is not set
897# CONFIG_SENSORS_TSL2550 is not set 927# CONFIG_SENSORS_TSL2550 is not set
898# CONFIG_I2C_DEBUG_CORE is not set 928# CONFIG_I2C_DEBUG_CORE is not set
899# CONFIG_I2C_DEBUG_ALGO is not set 929# CONFIG_I2C_DEBUG_ALGO is not set
@@ -910,13 +940,18 @@ CONFIG_SPI_BFIN=y
910# CONFIG_SPI_BFIN_LOCK is not set 940# CONFIG_SPI_BFIN_LOCK is not set
911# CONFIG_SPI_BFIN_SPORT is not set 941# CONFIG_SPI_BFIN_SPORT is not set
912# CONFIG_SPI_BITBANG is not set 942# CONFIG_SPI_BITBANG is not set
943# CONFIG_SPI_GPIO is not set
913 944
914# 945#
915# SPI Protocol Masters 946# SPI Protocol Masters
916# 947#
917# CONFIG_EEPROM_AT25 is not set
918# CONFIG_SPI_SPIDEV is not set 948# CONFIG_SPI_SPIDEV is not set
919# CONFIG_SPI_TLE62X0 is not set 949# CONFIG_SPI_TLE62X0 is not set
950
951#
952# PPS support
953#
954# CONFIG_PPS is not set
920CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 955CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
921CONFIG_GPIOLIB=y 956CONFIG_GPIOLIB=y
922# CONFIG_DEBUG_GPIO is not set 957# CONFIG_DEBUG_GPIO is not set
@@ -932,6 +967,7 @@ CONFIG_GPIO_SYSFS=y
932# CONFIG_GPIO_MAX732X is not set 967# CONFIG_GPIO_MAX732X is not set
933# CONFIG_GPIO_PCA953X is not set 968# CONFIG_GPIO_PCA953X is not set
934# CONFIG_GPIO_PCF857X is not set 969# CONFIG_GPIO_PCF857X is not set
970# CONFIG_GPIO_ADP5588 is not set
935 971
936# 972#
937# PCI GPIO expanders: 973# PCI GPIO expanders:
@@ -942,11 +978,15 @@ CONFIG_GPIO_SYSFS=y
942# 978#
943# CONFIG_GPIO_MAX7301 is not set 979# CONFIG_GPIO_MAX7301 is not set
944# CONFIG_GPIO_MCP23S08 is not set 980# CONFIG_GPIO_MCP23S08 is not set
981# CONFIG_GPIO_MC33880 is not set
982
983#
984# AC97 GPIO expanders:
985#
945# CONFIG_W1 is not set 986# CONFIG_W1 is not set
946# CONFIG_POWER_SUPPLY is not set 987# CONFIG_POWER_SUPPLY is not set
947# CONFIG_HWMON is not set 988# CONFIG_HWMON is not set
948# CONFIG_THERMAL is not set 989# CONFIG_THERMAL is not set
949# CONFIG_THERMAL_HWMON is not set
950CONFIG_WATCHDOG=y 990CONFIG_WATCHDOG=y
951# CONFIG_WATCHDOG_NOWAYOUT is not set 991# CONFIG_WATCHDOG_NOWAYOUT is not set
952 992
@@ -973,28 +1013,21 @@ CONFIG_SSB_POSSIBLE=y
973# CONFIG_MFD_CORE is not set 1013# CONFIG_MFD_CORE is not set
974# CONFIG_MFD_SM501 is not set 1014# CONFIG_MFD_SM501 is not set
975# CONFIG_HTC_PASIC3 is not set 1015# CONFIG_HTC_PASIC3 is not set
1016# CONFIG_UCB1400_CORE is not set
1017# CONFIG_TPS65010 is not set
1018# CONFIG_TWL4030_CORE is not set
976# CONFIG_MFD_TMIO is not set 1019# CONFIG_MFD_TMIO is not set
977# CONFIG_PMIC_DA903X is not set 1020# CONFIG_PMIC_DA903X is not set
978# CONFIG_PMIC_ADP5520 is not set 1021# CONFIG_PMIC_ADP5520 is not set
979# CONFIG_MFD_WM8400 is not set 1022# CONFIG_MFD_WM8400 is not set
1023# CONFIG_MFD_WM831X is not set
980# CONFIG_MFD_WM8350_I2C is not set 1024# CONFIG_MFD_WM8350_I2C is not set
1025# CONFIG_MFD_PCF50633 is not set
1026# CONFIG_MFD_MC13783 is not set
1027# CONFIG_AB3100_CORE is not set
1028# CONFIG_EZX_PCAP is not set
981# CONFIG_REGULATOR is not set 1029# CONFIG_REGULATOR is not set
982 1030# CONFIG_MEDIA_SUPPORT is not set
983#
984# Multimedia devices
985#
986
987#
988# Multimedia core support
989#
990# CONFIG_VIDEO_DEV is not set
991# CONFIG_DVB_CORE is not set
992# CONFIG_VIDEO_MEDIA is not set
993
994#
995# Multimedia drivers
996#
997# CONFIG_DAB is not set
998 1031
999# 1032#
1000# Graphics support 1033# Graphics support
@@ -1030,15 +1063,18 @@ CONFIG_FB_BFIN_T350MCQB=y
1030# CONFIG_FB_VIRTUAL is not set 1063# CONFIG_FB_VIRTUAL is not set
1031# CONFIG_FB_METRONOME is not set 1064# CONFIG_FB_METRONOME is not set
1032# CONFIG_FB_MB862XX is not set 1065# CONFIG_FB_MB862XX is not set
1066# CONFIG_FB_BROADSHEET is not set
1033CONFIG_BACKLIGHT_LCD_SUPPORT=y 1067CONFIG_BACKLIGHT_LCD_SUPPORT=y
1034CONFIG_LCD_CLASS_DEVICE=m 1068CONFIG_LCD_CLASS_DEVICE=m
1069# CONFIG_LCD_LMS283GF05 is not set
1035CONFIG_LCD_LTV350QV=m 1070CONFIG_LCD_LTV350QV=m
1036# CONFIG_LCD_ILI9320 is not set 1071# CONFIG_LCD_ILI9320 is not set
1037# CONFIG_LCD_TDO24M is not set 1072# CONFIG_LCD_TDO24M is not set
1038# CONFIG_LCD_VGG2432A4 is not set 1073# CONFIG_LCD_VGG2432A4 is not set
1039# CONFIG_LCD_PLATFORM is not set 1074# CONFIG_LCD_PLATFORM is not set
1040CONFIG_BACKLIGHT_CLASS_DEVICE=m 1075CONFIG_BACKLIGHT_CLASS_DEVICE=m
1041# CONFIG_BACKLIGHT_CORGI is not set 1076CONFIG_BACKLIGHT_GENERIC=m
1077# CONFIG_BACKLIGHT_ADP8870 is not set
1042 1078
1043# 1079#
1044# Display device support 1080# Display device support
@@ -1066,6 +1102,7 @@ CONFIG_SOUND=m
1066CONFIG_SND=m 1102CONFIG_SND=m
1067CONFIG_SND_TIMER=m 1103CONFIG_SND_TIMER=m
1068CONFIG_SND_PCM=m 1104CONFIG_SND_PCM=m
1105CONFIG_SND_JACK=y
1069# CONFIG_SND_SEQUENCER is not set 1106# CONFIG_SND_SEQUENCER is not set
1070# CONFIG_SND_MIXER_OSS is not set 1107# CONFIG_SND_MIXER_OSS is not set
1071# CONFIG_SND_PCM_OSS is not set 1108# CONFIG_SND_PCM_OSS is not set
@@ -1074,6 +1111,11 @@ CONFIG_SND_SUPPORT_OLD_API=y
1074CONFIG_SND_VERBOSE_PROCFS=y 1111CONFIG_SND_VERBOSE_PROCFS=y
1075# CONFIG_SND_VERBOSE_PRINTK is not set 1112# CONFIG_SND_VERBOSE_PRINTK is not set
1076# CONFIG_SND_DEBUG is not set 1113# CONFIG_SND_DEBUG is not set
1114# CONFIG_SND_RAWMIDI_SEQ is not set
1115# CONFIG_SND_OPL3_LIB_SEQ is not set
1116# CONFIG_SND_OPL4_LIB_SEQ is not set
1117# CONFIG_SND_SBAWE_SEQ is not set
1118# CONFIG_SND_EMU10K1_SEQ is not set
1077CONFIG_SND_DRIVERS=y 1119CONFIG_SND_DRIVERS=y
1078# CONFIG_SND_DUMMY is not set 1120# CONFIG_SND_DUMMY is not set
1079# CONFIG_SND_MTPAV is not set 1121# CONFIG_SND_MTPAV is not set
@@ -1084,7 +1126,6 @@ CONFIG_SND_SPI=y
1084# 1126#
1085# ALSA Blackfin devices 1127# ALSA Blackfin devices
1086# 1128#
1087# CONFIG_SND_BLACKFIN_AD1836 is not set
1088# CONFIG_SND_BFIN_AD73322 is not set 1129# CONFIG_SND_BFIN_AD73322 is not set
1089CONFIG_SND_USB=y 1130CONFIG_SND_USB=y
1090# CONFIG_SND_USB_AUDIO is not set 1131# CONFIG_SND_USB_AUDIO is not set
@@ -1094,15 +1135,19 @@ CONFIG_SND_SOC_AC97_BUS=y
1094CONFIG_SND_BF5XX_I2S=m 1135CONFIG_SND_BF5XX_I2S=m
1095CONFIG_SND_BF5XX_SOC_SSM2602=m 1136CONFIG_SND_BF5XX_SOC_SSM2602=m
1096# CONFIG_SND_BF5XX_SOC_AD73311 is not set 1137# CONFIG_SND_BF5XX_SOC_AD73311 is not set
1138# CONFIG_SND_BF5XX_SOC_ADAU1371 is not set
1139# CONFIG_SND_BF5XX_SOC_ADAU1761 is not set
1140# CONFIG_SND_BF5XX_TDM is not set
1097CONFIG_SND_BF5XX_AC97=m 1141CONFIG_SND_BF5XX_AC97=m
1098CONFIG_SND_BF5XX_MMAP_SUPPORT=y 1142CONFIG_SND_BF5XX_MMAP_SUPPORT=y
1099# CONFIG_SND_BF5XX_MULTICHAN_SUPPORT is not set 1143# CONFIG_SND_BF5XX_MULTICHAN_SUPPORT is not set
1144# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set
1145CONFIG_SND_BF5XX_SOC_AD1980=m
1100CONFIG_SND_BF5XX_SOC_SPORT=m 1146CONFIG_SND_BF5XX_SOC_SPORT=m
1101CONFIG_SND_BF5XX_SOC_I2S=m 1147CONFIG_SND_BF5XX_SOC_I2S=m
1102CONFIG_SND_BF5XX_SOC_AC97=m 1148CONFIG_SND_BF5XX_SOC_AC97=m
1103CONFIG_SND_BF5XX_SOC_AD1980=m
1104CONFIG_SND_BF5XX_SPORT_NUM=0 1149CONFIG_SND_BF5XX_SPORT_NUM=0
1105# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set 1150CONFIG_SND_SOC_I2C_AND_SPI=m
1106# CONFIG_SND_SOC_ALL_CODECS is not set 1151# CONFIG_SND_SOC_ALL_CODECS is not set
1107CONFIG_SND_SOC_AD1980=m 1152CONFIG_SND_SOC_AD1980=m
1108CONFIG_SND_SOC_SSM2602=m 1153CONFIG_SND_SOC_SSM2602=m
@@ -1110,7 +1155,6 @@ CONFIG_SND_SOC_SSM2602=m
1110CONFIG_AC97_BUS=m 1155CONFIG_AC97_BUS=m
1111CONFIG_HID_SUPPORT=y 1156CONFIG_HID_SUPPORT=y
1112CONFIG_HID=y 1157CONFIG_HID=y
1113# CONFIG_HID_DEBUG is not set
1114# CONFIG_HIDRAW is not set 1158# CONFIG_HIDRAW is not set
1115 1159
1116# 1160#
@@ -1123,30 +1167,35 @@ CONFIG_USB_HID=y
1123# 1167#
1124# Special HID drivers 1168# Special HID drivers
1125# 1169#
1126CONFIG_HID_COMPAT=y
1127CONFIG_HID_A4TECH=y 1170CONFIG_HID_A4TECH=y
1128CONFIG_HID_APPLE=y 1171CONFIG_HID_APPLE=y
1129CONFIG_HID_BELKIN=y 1172CONFIG_HID_BELKIN=y
1130CONFIG_HID_BRIGHT=y
1131CONFIG_HID_CHERRY=y 1173CONFIG_HID_CHERRY=y
1132CONFIG_HID_CHICONY=y 1174CONFIG_HID_CHICONY=y
1133CONFIG_HID_CYPRESS=y 1175CONFIG_HID_CYPRESS=y
1134CONFIG_HID_DELL=y 1176# CONFIG_HID_DRAGONRISE is not set
1135CONFIG_HID_EZKEY=y 1177CONFIG_HID_EZKEY=y
1178# CONFIG_HID_KYE is not set
1136CONFIG_HID_GYRATION=y 1179CONFIG_HID_GYRATION=y
1180# CONFIG_HID_TWINHAN is not set
1181# CONFIG_HID_KENSINGTON is not set
1137CONFIG_HID_LOGITECH=y 1182CONFIG_HID_LOGITECH=y
1138# CONFIG_LOGITECH_FF is not set 1183# CONFIG_LOGITECH_FF is not set
1139# CONFIG_LOGIRUMBLEPAD2_FF is not set 1184# CONFIG_LOGIRUMBLEPAD2_FF is not set
1140CONFIG_HID_MICROSOFT=y 1185CONFIG_HID_MICROSOFT=y
1141CONFIG_HID_MONTEREY=y 1186CONFIG_HID_MONTEREY=y
1187# CONFIG_HID_NTRIG is not set
1142CONFIG_HID_PANTHERLORD=y 1188CONFIG_HID_PANTHERLORD=y
1143# CONFIG_PANTHERLORD_FF is not set 1189# CONFIG_PANTHERLORD_FF is not set
1144CONFIG_HID_PETALYNX=y 1190CONFIG_HID_PETALYNX=y
1145CONFIG_HID_SAMSUNG=y 1191CONFIG_HID_SAMSUNG=y
1146CONFIG_HID_SONY=y 1192CONFIG_HID_SONY=y
1147CONFIG_HID_SUNPLUS=y 1193CONFIG_HID_SUNPLUS=y
1148CONFIG_THRUSTMASTER_FF=m 1194# CONFIG_HID_GREENASIA is not set
1149CONFIG_ZEROPLUS_FF=m 1195# CONFIG_HID_SMARTJOYPLUS is not set
1196# CONFIG_HID_TOPSEED is not set
1197# CONFIG_HID_THRUSTMASTER is not set
1198# CONFIG_HID_ZEROPLUS is not set
1150CONFIG_USB_SUPPORT=y 1199CONFIG_USB_SUPPORT=y
1151CONFIG_USB_ARCH_HAS_HCD=y 1200CONFIG_USB_ARCH_HAS_HCD=y
1152# CONFIG_USB_ARCH_HAS_OHCI is not set 1201# CONFIG_USB_ARCH_HAS_OHCI is not set
@@ -1172,6 +1221,7 @@ CONFIG_USB_MON=y
1172# USB Host Controller Drivers 1221# USB Host Controller Drivers
1173# 1222#
1174# CONFIG_USB_C67X00_HCD is not set 1223# CONFIG_USB_C67X00_HCD is not set
1224# CONFIG_USB_OXU210HP_HCD is not set
1175# CONFIG_USB_ISP116X_HCD is not set 1225# CONFIG_USB_ISP116X_HCD is not set
1176# CONFIG_USB_ISP1760_HCD is not set 1226# CONFIG_USB_ISP1760_HCD is not set
1177# CONFIG_USB_ISP1362_HCD is not set 1227# CONFIG_USB_ISP1362_HCD is not set
@@ -1188,9 +1238,7 @@ CONFIG_USB_MUSB_HOST=y
1188# CONFIG_USB_MUSB_PERIPHERAL is not set 1238# CONFIG_USB_MUSB_PERIPHERAL is not set
1189# CONFIG_USB_MUSB_OTG is not set 1239# CONFIG_USB_MUSB_OTG is not set
1190CONFIG_USB_MUSB_HDRC_HCD=y 1240CONFIG_USB_MUSB_HDRC_HCD=y
1191# CONFIG_MUSB_PIO_ONLY is not set 1241CONFIG_MUSB_PIO_ONLY=y
1192CONFIG_USB_INVENTRA_DMA=y
1193# CONFIG_USB_TI_CPPI_DMA is not set
1194# CONFIG_USB_MUSB_DEBUG is not set 1242# CONFIG_USB_MUSB_DEBUG is not set
1195 1243
1196# 1244#
@@ -1202,18 +1250,17 @@ CONFIG_USB_INVENTRA_DMA=y
1202# CONFIG_USB_TMC is not set 1250# CONFIG_USB_TMC is not set
1203 1251
1204# 1252#
1205# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1253# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1206# 1254#
1207 1255
1208# 1256#
1209# see USB_STORAGE Help for more information 1257# also be needed; see USB_STORAGE Help for more info
1210# 1258#
1211CONFIG_USB_STORAGE=y 1259CONFIG_USB_STORAGE=y
1212# CONFIG_USB_STORAGE_DEBUG is not set 1260# CONFIG_USB_STORAGE_DEBUG is not set
1213# CONFIG_USB_STORAGE_DATAFAB is not set 1261# CONFIG_USB_STORAGE_DATAFAB is not set
1214# CONFIG_USB_STORAGE_FREECOM is not set 1262# CONFIG_USB_STORAGE_FREECOM is not set
1215# CONFIG_USB_STORAGE_ISD200 is not set 1263# CONFIG_USB_STORAGE_ISD200 is not set
1216# CONFIG_USB_STORAGE_DPCM is not set
1217# CONFIG_USB_STORAGE_USBAT is not set 1264# CONFIG_USB_STORAGE_USBAT is not set
1218# CONFIG_USB_STORAGE_SDDR09 is not set 1265# CONFIG_USB_STORAGE_SDDR09 is not set
1219# CONFIG_USB_STORAGE_SDDR55 is not set 1266# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -1249,7 +1296,6 @@ CONFIG_USB_STORAGE=y
1249# CONFIG_USB_LED is not set 1296# CONFIG_USB_LED is not set
1250# CONFIG_USB_CYPRESS_CY7C63 is not set 1297# CONFIG_USB_CYPRESS_CY7C63 is not set
1251# CONFIG_USB_CYTHERM is not set 1298# CONFIG_USB_CYTHERM is not set
1252# CONFIG_USB_PHIDGET is not set
1253# CONFIG_USB_IDMOUSE is not set 1299# CONFIG_USB_IDMOUSE is not set
1254# CONFIG_USB_FTDI_ELAN is not set 1300# CONFIG_USB_FTDI_ELAN is not set
1255# CONFIG_USB_APPLEDISPLAY is not set 1301# CONFIG_USB_APPLEDISPLAY is not set
@@ -1261,6 +1307,13 @@ CONFIG_USB_STORAGE=y
1261# CONFIG_USB_ISIGHTFW is not set 1307# CONFIG_USB_ISIGHTFW is not set
1262# CONFIG_USB_VST is not set 1308# CONFIG_USB_VST is not set
1263# CONFIG_USB_GADGET is not set 1309# CONFIG_USB_GADGET is not set
1310
1311#
1312# OTG and related infrastructure
1313#
1314CONFIG_USB_OTG_UTILS=y
1315# CONFIG_USB_GPIO_VBUS is not set
1316CONFIG_NOP_USB_XCEIV=y
1264# CONFIG_MMC is not set 1317# CONFIG_MMC is not set
1265# CONFIG_MEMSTICK is not set 1318# CONFIG_MEMSTICK is not set
1266# CONFIG_NEW_LEDS is not set 1319# CONFIG_NEW_LEDS is not set
@@ -1296,6 +1349,7 @@ CONFIG_RTC_INTF_DEV=y
1296# CONFIG_RTC_DRV_S35390A is not set 1349# CONFIG_RTC_DRV_S35390A is not set
1297# CONFIG_RTC_DRV_FM3130 is not set 1350# CONFIG_RTC_DRV_FM3130 is not set
1298# CONFIG_RTC_DRV_RX8581 is not set 1351# CONFIG_RTC_DRV_RX8581 is not set
1352# CONFIG_RTC_DRV_RX8025 is not set
1299 1353
1300# 1354#
1301# SPI RTC drivers 1355# SPI RTC drivers
@@ -1307,6 +1361,7 @@ CONFIG_RTC_INTF_DEV=y
1307# CONFIG_RTC_DRV_R9701 is not set 1361# CONFIG_RTC_DRV_R9701 is not set
1308# CONFIG_RTC_DRV_RS5C348 is not set 1362# CONFIG_RTC_DRV_RS5C348 is not set
1309# CONFIG_RTC_DRV_DS3234 is not set 1363# CONFIG_RTC_DRV_DS3234 is not set
1364# CONFIG_RTC_DRV_PCF2123 is not set
1310 1365
1311# 1366#
1312# Platform RTC drivers 1367# Platform RTC drivers
@@ -1327,10 +1382,21 @@ CONFIG_RTC_INTF_DEV=y
1327# 1382#
1328CONFIG_RTC_DRV_BFIN=y 1383CONFIG_RTC_DRV_BFIN=y
1329# CONFIG_DMADEVICES is not set 1384# CONFIG_DMADEVICES is not set
1385# CONFIG_AUXDISPLAY is not set
1330# CONFIG_UIO is not set 1386# CONFIG_UIO is not set
1387
1388#
1389# TI VLYNQ
1390#
1331# CONFIG_STAGING is not set 1391# CONFIG_STAGING is not set
1332 1392
1333# 1393#
1394# Firmware Drivers
1395#
1396# CONFIG_FIRMWARE_MEMMAP is not set
1397# CONFIG_SIGMA is not set
1398
1399#
1334# File systems 1400# File systems
1335# 1401#
1336CONFIG_EXT2_FS=m 1402CONFIG_EXT2_FS=m
@@ -1340,9 +1406,13 @@ CONFIG_EXT2_FS=m
1340# CONFIG_REISERFS_FS is not set 1406# CONFIG_REISERFS_FS is not set
1341# CONFIG_JFS_FS is not set 1407# CONFIG_JFS_FS is not set
1342# CONFIG_FS_POSIX_ACL is not set 1408# CONFIG_FS_POSIX_ACL is not set
1343CONFIG_FILE_LOCKING=y
1344# CONFIG_XFS_FS is not set 1409# CONFIG_XFS_FS is not set
1410# CONFIG_GFS2_FS is not set
1345# CONFIG_OCFS2_FS is not set 1411# CONFIG_OCFS2_FS is not set
1412# CONFIG_BTRFS_FS is not set
1413# CONFIG_NILFS2_FS is not set
1414CONFIG_FILE_LOCKING=y
1415CONFIG_FSNOTIFY=y
1346# CONFIG_DNOTIFY is not set 1416# CONFIG_DNOTIFY is not set
1347CONFIG_INOTIFY=y 1417CONFIG_INOTIFY=y
1348CONFIG_INOTIFY_USER=y 1418CONFIG_INOTIFY_USER=y
@@ -1352,6 +1422,11 @@ CONFIG_INOTIFY_USER=y
1352# CONFIG_FUSE_FS is not set 1422# CONFIG_FUSE_FS is not set
1353 1423
1354# 1424#
1425# Caches
1426#
1427# CONFIG_FSCACHE is not set
1428
1429#
1355# CD-ROM/DVD Filesystems 1430# CD-ROM/DVD Filesystems
1356# 1431#
1357CONFIG_ISO9660_FS=m 1432CONFIG_ISO9660_FS=m
@@ -1376,13 +1451,9 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1376CONFIG_PROC_FS=y 1451CONFIG_PROC_FS=y
1377CONFIG_PROC_SYSCTL=y 1452CONFIG_PROC_SYSCTL=y
1378CONFIG_SYSFS=y 1453CONFIG_SYSFS=y
1379# CONFIG_TMPFS is not set
1380# CONFIG_HUGETLB_PAGE is not set 1454# CONFIG_HUGETLB_PAGE is not set
1381# CONFIG_CONFIGFS_FS is not set 1455# CONFIG_CONFIGFS_FS is not set
1382 1456CONFIG_MISC_FILESYSTEMS=y
1383#
1384# Miscellaneous filesystems
1385#
1386# CONFIG_ADFS_FS is not set 1457# CONFIG_ADFS_FS is not set
1387# CONFIG_AFFS_FS is not set 1458# CONFIG_AFFS_FS is not set
1388# CONFIG_HFS_FS is not set 1459# CONFIG_HFS_FS is not set
@@ -1401,17 +1472,8 @@ CONFIG_JFFS2_ZLIB=y
1401# CONFIG_JFFS2_LZO is not set 1472# CONFIG_JFFS2_LZO is not set
1402CONFIG_JFFS2_RTIME=y 1473CONFIG_JFFS2_RTIME=y
1403# CONFIG_JFFS2_RUBIN is not set 1474# CONFIG_JFFS2_RUBIN is not set
1404CONFIG_YAFFS_FS=m
1405CONFIG_YAFFS_YAFFS1=y
1406# CONFIG_YAFFS_9BYTE_TAGS is not set
1407# CONFIG_YAFFS_DOES_ECC is not set
1408CONFIG_YAFFS_YAFFS2=y
1409CONFIG_YAFFS_AUTO_YAFFS2=y
1410# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
1411# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
1412# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
1413CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
1414# CONFIG_CRAMFS is not set 1475# CONFIG_CRAMFS is not set
1476# CONFIG_SQUASHFS is not set
1415# CONFIG_VXFS_FS is not set 1477# CONFIG_VXFS_FS is not set
1416# CONFIG_MINIX_FS is not set 1478# CONFIG_MINIX_FS is not set
1417# CONFIG_OMFS_FS is not set 1479# CONFIG_OMFS_FS is not set
@@ -1430,7 +1492,6 @@ CONFIG_LOCKD=m
1430CONFIG_LOCKD_V4=y 1492CONFIG_LOCKD_V4=y
1431CONFIG_NFS_COMMON=y 1493CONFIG_NFS_COMMON=y
1432CONFIG_SUNRPC=m 1494CONFIG_SUNRPC=m
1433# CONFIG_SUNRPC_REGISTER_V4 is not set
1434# CONFIG_RPCSEC_GSS_KRB5 is not set 1495# CONFIG_RPCSEC_GSS_KRB5 is not set
1435# CONFIG_RPCSEC_GSS_SPKM3 is not set 1496# CONFIG_RPCSEC_GSS_SPKM3 is not set
1436CONFIG_SMB_FS=m 1497CONFIG_SMB_FS=m
@@ -1445,7 +1506,7 @@ CONFIG_SMB_FS=m
1445# 1506#
1446# CONFIG_PARTITION_ADVANCED is not set 1507# CONFIG_PARTITION_ADVANCED is not set
1447CONFIG_MSDOS_PARTITION=y 1508CONFIG_MSDOS_PARTITION=y
1448CONFIG_NLS=m 1509CONFIG_NLS=y
1449CONFIG_NLS_DEFAULT="iso8859-1" 1510CONFIG_NLS_DEFAULT="iso8859-1"
1450CONFIG_NLS_CODEPAGE_437=m 1511CONFIG_NLS_CODEPAGE_437=m
1451# CONFIG_NLS_CODEPAGE_737 is not set 1512# CONFIG_NLS_CODEPAGE_737 is not set
@@ -1495,14 +1556,19 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1495CONFIG_ENABLE_MUST_CHECK=y 1556CONFIG_ENABLE_MUST_CHECK=y
1496CONFIG_FRAME_WARN=1024 1557CONFIG_FRAME_WARN=1024
1497# CONFIG_MAGIC_SYSRQ is not set 1558# CONFIG_MAGIC_SYSRQ is not set
1559# CONFIG_STRIP_ASM_SYMS is not set
1498# CONFIG_UNUSED_SYMBOLS is not set 1560# CONFIG_UNUSED_SYMBOLS is not set
1499CONFIG_DEBUG_FS=y 1561CONFIG_DEBUG_FS=y
1500# CONFIG_HEADERS_CHECK is not set 1562# CONFIG_HEADERS_CHECK is not set
1563CONFIG_DEBUG_SECTION_MISMATCH=y
1501CONFIG_DEBUG_KERNEL=y 1564CONFIG_DEBUG_KERNEL=y
1502CONFIG_DEBUG_SHIRQ=y 1565CONFIG_DEBUG_SHIRQ=y
1503CONFIG_DETECT_SOFTLOCKUP=y 1566CONFIG_DETECT_SOFTLOCKUP=y
1504# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1567# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1505CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1568CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1569CONFIG_DETECT_HUNG_TASK=y
1570# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1571CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1506CONFIG_SCHED_DEBUG=y 1572CONFIG_SCHED_DEBUG=y
1507# CONFIG_SCHEDSTATS is not set 1573# CONFIG_SCHEDSTATS is not set
1508# CONFIG_TIMER_STATS is not set 1574# CONFIG_TIMER_STATS is not set
@@ -1510,31 +1576,39 @@ CONFIG_SCHED_DEBUG=y
1510# CONFIG_DEBUG_SLAB is not set 1576# CONFIG_DEBUG_SLAB is not set
1511# CONFIG_DEBUG_SPINLOCK is not set 1577# CONFIG_DEBUG_SPINLOCK is not set
1512# CONFIG_DEBUG_MUTEXES is not set 1578# CONFIG_DEBUG_MUTEXES is not set
1579# CONFIG_DEBUG_LOCK_ALLOC is not set
1580# CONFIG_PROVE_LOCKING is not set
1581# CONFIG_LOCK_STAT is not set
1513# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1582# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1514# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1583# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1515# CONFIG_DEBUG_KOBJECT is not set 1584# CONFIG_DEBUG_KOBJECT is not set
1516CONFIG_DEBUG_BUGVERBOSE=y 1585CONFIG_DEBUG_BUGVERBOSE=y
1517CONFIG_DEBUG_INFO=y 1586CONFIG_DEBUG_INFO=y
1518# CONFIG_DEBUG_VM is not set 1587# CONFIG_DEBUG_VM is not set
1588# CONFIG_DEBUG_NOMMU_REGIONS is not set
1519# CONFIG_DEBUG_WRITECOUNT is not set 1589# CONFIG_DEBUG_WRITECOUNT is not set
1520# CONFIG_DEBUG_MEMORY_INIT is not set 1590# CONFIG_DEBUG_MEMORY_INIT is not set
1521# CONFIG_DEBUG_LIST is not set 1591# CONFIG_DEBUG_LIST is not set
1522# CONFIG_DEBUG_SG is not set 1592# CONFIG_DEBUG_SG is not set
1593# CONFIG_DEBUG_NOTIFIERS is not set
1594# CONFIG_DEBUG_CREDENTIALS is not set
1523# CONFIG_FRAME_POINTER is not set 1595# CONFIG_FRAME_POINTER is not set
1524# CONFIG_BOOT_PRINTK_DELAY is not set 1596# CONFIG_BOOT_PRINTK_DELAY is not set
1525# CONFIG_RCU_TORTURE_TEST is not set 1597# CONFIG_RCU_TORTURE_TEST is not set
1526# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1598# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1527# CONFIG_BACKTRACE_SELF_TEST is not set 1599# CONFIG_BACKTRACE_SELF_TEST is not set
1528# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1600# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1601# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1529# CONFIG_FAULT_INJECTION is not set 1602# CONFIG_FAULT_INJECTION is not set
1530 1603# CONFIG_PAGE_POISONING is not set
1531# 1604CONFIG_HAVE_FUNCTION_TRACER=y
1532# Tracers 1605CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1533# 1606CONFIG_TRACING_SUPPORT=y
1534# CONFIG_SCHED_TRACER is not set 1607# CONFIG_FTRACE is not set
1535# CONFIG_CONTEXT_SWITCH_TRACER is not set 1608# CONFIG_BRANCH_PROFILE_NONE is not set
1536# CONFIG_BOOT_TRACER is not set 1609# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1537# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1610# CONFIG_PROFILE_ALL_BRANCHES is not set
1611# CONFIG_DYNAMIC_DEBUG is not set
1538# CONFIG_SAMPLES is not set 1612# CONFIG_SAMPLES is not set
1539CONFIG_HAVE_ARCH_KGDB=y 1613CONFIG_HAVE_ARCH_KGDB=y
1540# CONFIG_KGDB is not set 1614# CONFIG_KGDB is not set
@@ -1559,6 +1633,7 @@ CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE=y
1559CONFIG_EARLY_PRINTK=y 1633CONFIG_EARLY_PRINTK=y
1560CONFIG_CPLB_INFO=y 1634CONFIG_CPLB_INFO=y
1561CONFIG_ACCESS_CHECK=y 1635CONFIG_ACCESS_CHECK=y
1636# CONFIG_BFIN_ISRAM_SELF_TEST is not set
1562 1637
1563# 1638#
1564# Security options 1639# Security options
@@ -1567,15 +1642,15 @@ CONFIG_ACCESS_CHECK=y
1567CONFIG_SECURITY=y 1642CONFIG_SECURITY=y
1568# CONFIG_SECURITYFS is not set 1643# CONFIG_SECURITYFS is not set
1569# CONFIG_SECURITY_NETWORK is not set 1644# CONFIG_SECURITY_NETWORK is not set
1645# CONFIG_SECURITY_PATH is not set
1570# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1646# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1571# CONFIG_SECURITY_ROOTPLUG is not set 1647# CONFIG_SECURITY_ROOTPLUG is not set
1572CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1648# CONFIG_SECURITY_TOMOYO is not set
1573CONFIG_CRYPTO=y 1649CONFIG_CRYPTO=y
1574 1650
1575# 1651#
1576# Crypto core or helper 1652# Crypto core or helper
1577# 1653#
1578# CONFIG_CRYPTO_FIPS is not set
1579# CONFIG_CRYPTO_MANAGER is not set 1654# CONFIG_CRYPTO_MANAGER is not set
1580# CONFIG_CRYPTO_MANAGER2 is not set 1655# CONFIG_CRYPTO_MANAGER2 is not set
1581# CONFIG_CRYPTO_GF128MUL is not set 1656# CONFIG_CRYPTO_GF128MUL is not set
@@ -1607,11 +1682,13 @@ CONFIG_CRYPTO=y
1607# 1682#
1608# CONFIG_CRYPTO_HMAC is not set 1683# CONFIG_CRYPTO_HMAC is not set
1609# CONFIG_CRYPTO_XCBC is not set 1684# CONFIG_CRYPTO_XCBC is not set
1685# CONFIG_CRYPTO_VMAC is not set
1610 1686
1611# 1687#
1612# Digest 1688# Digest
1613# 1689#
1614# CONFIG_CRYPTO_CRC32C is not set 1690# CONFIG_CRYPTO_CRC32C is not set
1691# CONFIG_CRYPTO_GHASH is not set
1615# CONFIG_CRYPTO_MD4 is not set 1692# CONFIG_CRYPTO_MD4 is not set
1616# CONFIG_CRYPTO_MD5 is not set 1693# CONFIG_CRYPTO_MD5 is not set
1617# CONFIG_CRYPTO_MICHAEL_MIC is not set 1694# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1648,6 +1725,7 @@ CONFIG_CRYPTO=y
1648# Compression 1725# Compression
1649# 1726#
1650# CONFIG_CRYPTO_DEFLATE is not set 1727# CONFIG_CRYPTO_DEFLATE is not set
1728# CONFIG_CRYPTO_ZLIB is not set
1651# CONFIG_CRYPTO_LZO is not set 1729# CONFIG_CRYPTO_LZO is not set
1652 1730
1653# 1731#
@@ -1655,11 +1733,13 @@ CONFIG_CRYPTO=y
1655# 1733#
1656# CONFIG_CRYPTO_ANSI_CPRNG is not set 1734# CONFIG_CRYPTO_ANSI_CPRNG is not set
1657CONFIG_CRYPTO_HW=y 1735CONFIG_CRYPTO_HW=y
1736# CONFIG_BINARY_PRINTF is not set
1658 1737
1659# 1738#
1660# Library routines 1739# Library routines
1661# 1740#
1662CONFIG_BITREVERSE=y 1741CONFIG_BITREVERSE=y
1742CONFIG_GENERIC_FIND_LAST_BIT=y
1663CONFIG_CRC_CCITT=m 1743CONFIG_CRC_CCITT=m
1664# CONFIG_CRC16 is not set 1744# CONFIG_CRC16 is not set
1665# CONFIG_CRC_T10DIF is not set 1745# CONFIG_CRC_T10DIF is not set
@@ -1669,6 +1749,8 @@ CONFIG_CRC32=y
1669# CONFIG_LIBCRC32C is not set 1749# CONFIG_LIBCRC32C is not set
1670CONFIG_ZLIB_INFLATE=y 1750CONFIG_ZLIB_INFLATE=y
1671CONFIG_ZLIB_DEFLATE=m 1751CONFIG_ZLIB_DEFLATE=m
1752CONFIG_DECOMPRESS_GZIP=y
1672CONFIG_HAS_IOMEM=y 1753CONFIG_HAS_IOMEM=y
1673CONFIG_HAS_IOPORT=y 1754CONFIG_HAS_IOPORT=y
1674CONFIG_HAS_DMA=y 1755CONFIG_HAS_DMA=y
1756CONFIG_NLATTR=y
diff --git a/arch/blackfin/configs/BF533-EZKIT_defconfig b/arch/blackfin/configs/BF533-EZKIT_defconfig
index 50f9a23ccdbd..0b13d5836a48 100644
--- a/arch/blackfin/configs/BF533-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF533-EZKIT_defconfig
@@ -1,22 +1,27 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28.10 3# Linux kernel version: 2.6.32.2
4# Thu May 21 05:50:01 2009
5# 4#
6# CONFIG_MMU is not set 5# CONFIG_MMU is not set
7# CONFIG_FPU is not set 6# CONFIG_FPU is not set
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 7CONFIG_RWSEM_GENERIC_SPINLOCK=y
9# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
10CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
10CONFIG_GENERIC_CSUM=y
11CONFIG_GENERIC_BUG=y
11CONFIG_ZONE_DMA=y 12CONFIG_ZONE_DMA=y
12CONFIG_GENERIC_FIND_NEXT_BIT=y 13CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
16CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
17CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
18CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_TRACE_IRQFLAGS_SUPPORT=y
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
24CONFIG_CONSTRUCTORS=y
20 25
21# 26#
22# General setup 27# General setup
@@ -26,22 +31,41 @@ CONFIG_BROKEN_ON_SMP=y
26CONFIG_INIT_ENV_ARG_LIMIT=32 31CONFIG_INIT_ENV_ARG_LIMIT=32
27CONFIG_LOCALVERSION="" 32CONFIG_LOCALVERSION=""
28CONFIG_LOCALVERSION_AUTO=y 33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_HAVE_KERNEL_GZIP=y
35CONFIG_HAVE_KERNEL_BZIP2=y
36CONFIG_HAVE_KERNEL_LZMA=y
37CONFIG_KERNEL_GZIP=y
38# CONFIG_KERNEL_BZIP2 is not set
39# CONFIG_KERNEL_LZMA is not set
29CONFIG_SYSVIPC=y 40CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 41CONFIG_SYSVIPC_SYSCTL=y
31# CONFIG_POSIX_MQUEUE is not set 42# CONFIG_POSIX_MQUEUE is not set
32# CONFIG_BSD_PROCESS_ACCT is not set 43# CONFIG_BSD_PROCESS_ACCT is not set
33# CONFIG_TASKSTATS is not set 44# CONFIG_TASKSTATS is not set
34# CONFIG_AUDIT is not set 45# CONFIG_AUDIT is not set
46
47#
48# RCU Subsystem
49#
50CONFIG_TREE_RCU=y
51# CONFIG_TREE_PREEMPT_RCU is not set
52# CONFIG_RCU_TRACE is not set
53CONFIG_RCU_FANOUT=32
54# CONFIG_RCU_FANOUT_EXACT is not set
55# CONFIG_TREE_RCU_TRACE is not set
35CONFIG_IKCONFIG=y 56CONFIG_IKCONFIG=y
36CONFIG_IKCONFIG_PROC=y 57CONFIG_IKCONFIG_PROC=y
37CONFIG_LOG_BUF_SHIFT=14 58CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 59# CONFIG_GROUP_SCHED is not set
60# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 61# CONFIG_SYSFS_DEPRECATED_V2 is not set
41# CONFIG_RELAY is not set 62# CONFIG_RELAY is not set
42# CONFIG_NAMESPACES is not set 63# CONFIG_NAMESPACES is not set
43CONFIG_BLK_DEV_INITRD=y 64CONFIG_BLK_DEV_INITRD=y
44CONFIG_INITRAMFS_SOURCE="" 65CONFIG_INITRAMFS_SOURCE=""
66CONFIG_RD_GZIP=y
67# CONFIG_RD_BZIP2 is not set
68# CONFIG_RD_LZMA is not set
45# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 69# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
46CONFIG_SYSCTL=y 70CONFIG_SYSCTL=y
47CONFIG_ANON_INODES=y 71CONFIG_ANON_INODES=y
@@ -62,6 +86,10 @@ CONFIG_EPOLL=y
62# CONFIG_TIMERFD is not set 86# CONFIG_TIMERFD is not set
63# CONFIG_EVENTFD is not set 87# CONFIG_EVENTFD is not set
64# CONFIG_AIO is not set 88# CONFIG_AIO is not set
89
90#
91# Kernel Performance Events And Counters
92#
65CONFIG_VM_EVENT_COUNTERS=y 93CONFIG_VM_EVENT_COUNTERS=y
66CONFIG_COMPAT_BRK=y 94CONFIG_COMPAT_BRK=y
67CONFIG_SLAB=y 95CONFIG_SLAB=y
@@ -69,11 +97,15 @@ CONFIG_SLAB=y
69# CONFIG_SLOB is not set 97# CONFIG_SLOB is not set
70CONFIG_MMAP_ALLOW_UNINITIALIZED=y 98CONFIG_MMAP_ALLOW_UNINITIALIZED=y
71# CONFIG_PROFILING is not set 99# CONFIG_PROFILING is not set
72# CONFIG_MARKERS is not set
73CONFIG_HAVE_OPROFILE=y 100CONFIG_HAVE_OPROFILE=y
101
102#
103# GCOV-based kernel profiling
104#
105# CONFIG_GCOV_KERNEL is not set
106# CONFIG_SLOW_WORK is not set
74# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 107# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
75CONFIG_SLABINFO=y 108CONFIG_SLABINFO=y
76CONFIG_TINY_SHMEM=y
77CONFIG_BASE_SMALL=0 109CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y 110CONFIG_MODULES=y
79# CONFIG_MODULE_FORCE_LOAD is not set 111# CONFIG_MODULE_FORCE_LOAD is not set
@@ -81,11 +113,8 @@ CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODULE_FORCE_UNLOAD is not set 113# CONFIG_MODULE_FORCE_UNLOAD is not set
82# CONFIG_MODVERSIONS is not set 114# CONFIG_MODVERSIONS is not set
83# CONFIG_MODULE_SRCVERSION_ALL is not set 115# CONFIG_MODULE_SRCVERSION_ALL is not set
84CONFIG_KMOD=y
85CONFIG_BLOCK=y 116CONFIG_BLOCK=y
86# CONFIG_LBD is not set 117# CONFIG_LBDAF is not set
87# CONFIG_BLK_DEV_IO_TRACE is not set
88# CONFIG_LSF is not set
89# CONFIG_BLK_DEV_BSG is not set 118# CONFIG_BLK_DEV_BSG is not set
90# CONFIG_BLK_DEV_INTEGRITY is not set 119# CONFIG_BLK_DEV_INTEGRITY is not set
91 120
@@ -101,7 +130,6 @@ CONFIG_DEFAULT_AS=y
101# CONFIG_DEFAULT_CFQ is not set 130# CONFIG_DEFAULT_CFQ is not set
102# CONFIG_DEFAULT_NOOP is not set 131# CONFIG_DEFAULT_NOOP is not set
103CONFIG_DEFAULT_IOSCHED="anticipatory" 132CONFIG_DEFAULT_IOSCHED="anticipatory"
104CONFIG_CLASSIC_RCU=y
105# CONFIG_PREEMPT_NONE is not set 133# CONFIG_PREEMPT_NONE is not set
106CONFIG_PREEMPT_VOLUNTARY=y 134CONFIG_PREEMPT_VOLUNTARY=y
107# CONFIG_PREEMPT is not set 135# CONFIG_PREEMPT is not set
@@ -132,15 +160,15 @@ CONFIG_BF533=y
132# CONFIG_BF537 is not set 160# CONFIG_BF537 is not set
133# CONFIG_BF538 is not set 161# CONFIG_BF538 is not set
134# CONFIG_BF539 is not set 162# CONFIG_BF539 is not set
135# CONFIG_BF542 is not set 163# CONFIG_BF542_std is not set
136# CONFIG_BF542M is not set 164# CONFIG_BF542M is not set
137# CONFIG_BF544 is not set 165# CONFIG_BF544_std is not set
138# CONFIG_BF544M is not set 166# CONFIG_BF544M is not set
139# CONFIG_BF547 is not set 167# CONFIG_BF547_std is not set
140# CONFIG_BF547M is not set 168# CONFIG_BF547M is not set
141# CONFIG_BF548 is not set 169# CONFIG_BF548_std is not set
142# CONFIG_BF548M is not set 170# CONFIG_BF548M is not set
143# CONFIG_BF549 is not set 171# CONFIG_BF549_std is not set
144# CONFIG_BF549M is not set 172# CONFIG_BF549M is not set
145# CONFIG_BF561 is not set 173# CONFIG_BF561 is not set
146CONFIG_BF_REV_MIN=3 174CONFIG_BF_REV_MIN=3
@@ -228,7 +256,7 @@ CONFIG_GENERIC_TIME=y
228CONFIG_GENERIC_CLOCKEVENTS=y 256CONFIG_GENERIC_CLOCKEVENTS=y
229# CONFIG_TICKSOURCE_GPTMR0 is not set 257# CONFIG_TICKSOURCE_GPTMR0 is not set
230CONFIG_TICKSOURCE_CORETMR=y 258CONFIG_TICKSOURCE_CORETMR=y
231# CONFIG_CYCLES_CLOCKSOURCE is not set 259CONFIG_CYCLES_CLOCKSOURCE=y
232# CONFIG_GPTMR0_CLOCKSOURCE is not set 260# CONFIG_GPTMR0_CLOCKSOURCE is not set
233CONFIG_TICK_ONESHOT=y 261CONFIG_TICK_ONESHOT=y
234# CONFIG_NO_HZ is not set 262# CONFIG_NO_HZ is not set
@@ -280,7 +308,6 @@ CONFIG_FLATMEM=y
280CONFIG_FLAT_NODE_MEM_MAP=y 308CONFIG_FLAT_NODE_MEM_MAP=y
281CONFIG_PAGEFLAGS_EXTENDED=y 309CONFIG_PAGEFLAGS_EXTENDED=y
282CONFIG_SPLIT_PTLOCK_CPUS=4 310CONFIG_SPLIT_PTLOCK_CPUS=4
283# CONFIG_RESOURCES_64BIT is not set
284# CONFIG_PHYS_ADDR_T_64BIT is not set 311# CONFIG_PHYS_ADDR_T_64BIT is not set
285CONFIG_ZONE_DMA_FLAG=1 312CONFIG_ZONE_DMA_FLAG=1
286CONFIG_VIRT_TO_BUS=y 313CONFIG_VIRT_TO_BUS=y
@@ -289,19 +316,18 @@ CONFIG_BFIN_GPTIMERS=m
289# CONFIG_DMA_UNCACHED_4M is not set 316# CONFIG_DMA_UNCACHED_4M is not set
290# CONFIG_DMA_UNCACHED_2M is not set 317# CONFIG_DMA_UNCACHED_2M is not set
291CONFIG_DMA_UNCACHED_1M=y 318CONFIG_DMA_UNCACHED_1M=y
319# CONFIG_DMA_UNCACHED_512K is not set
320# CONFIG_DMA_UNCACHED_256K is not set
321# CONFIG_DMA_UNCACHED_128K is not set
292# CONFIG_DMA_UNCACHED_NONE is not set 322# CONFIG_DMA_UNCACHED_NONE is not set
293 323
294# 324#
295# Cache Support 325# Cache Support
296# 326#
297#
298# Cache Support
299#
300CONFIG_BFIN_ICACHE=y 327CONFIG_BFIN_ICACHE=y
301# CONFIG_BFIN_ICACHE_LOCK is not set 328CONFIG_BFIN_EXTMEM_ICACHEABLE=y
302CONFIG_BFIN_DCACHE=y 329CONFIG_BFIN_DCACHE=y
303# CONFIG_BFIN_DCACHE_BANKA is not set 330# CONFIG_BFIN_DCACHE_BANKA is not set
304CONFIG_BFIN_EXTMEM_ICACHEABLE=y
305CONFIG_BFIN_EXTMEM_DCACHEABLE=y 331CONFIG_BFIN_EXTMEM_DCACHEABLE=y
306CONFIG_BFIN_EXTMEM_WRITEBACK=y 332CONFIG_BFIN_EXTMEM_WRITEBACK=y
307# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 333# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
@@ -312,7 +338,7 @@ CONFIG_BFIN_EXTMEM_WRITEBACK=y
312# CONFIG_MPU is not set 338# CONFIG_MPU is not set
313 339
314# 340#
315# Asynchonous Memory Configuration 341# Asynchronous Memory Configuration
316# 342#
317 343
318# 344#
@@ -358,6 +384,7 @@ CONFIG_PM=y
358CONFIG_PM_SLEEP=y 384CONFIG_PM_SLEEP=y
359CONFIG_SUSPEND=y 385CONFIG_SUSPEND=y
360CONFIG_SUSPEND_FREEZER=y 386CONFIG_SUSPEND_FREEZER=y
387# CONFIG_PM_RUNTIME is not set
361CONFIG_ARCH_SUSPEND_POSSIBLE=y 388CONFIG_ARCH_SUSPEND_POSSIBLE=y
362CONFIG_PM_BFIN_SLEEP_DEEPER=y 389CONFIG_PM_BFIN_SLEEP_DEEPER=y
363# CONFIG_PM_BFIN_SLEEP is not set 390# CONFIG_PM_BFIN_SLEEP is not set
@@ -379,11 +406,6 @@ CONFIG_NET=y
379CONFIG_PACKET=y 406CONFIG_PACKET=y
380# CONFIG_PACKET_MMAP is not set 407# CONFIG_PACKET_MMAP is not set
381CONFIG_UNIX=y 408CONFIG_UNIX=y
382CONFIG_XFRM=y
383# CONFIG_XFRM_USER is not set
384# CONFIG_XFRM_SUB_POLICY is not set
385# CONFIG_XFRM_MIGRATE is not set
386# CONFIG_XFRM_STATISTICS is not set
387# CONFIG_NET_KEY is not set 409# CONFIG_NET_KEY is not set
388CONFIG_INET=y 410CONFIG_INET=y
389# CONFIG_IP_MULTICAST is not set 411# CONFIG_IP_MULTICAST is not set
@@ -407,7 +429,6 @@ CONFIG_IP_PNP=y
407# CONFIG_INET_XFRM_MODE_BEET is not set 429# CONFIG_INET_XFRM_MODE_BEET is not set
408# CONFIG_INET_LRO is not set 430# CONFIG_INET_LRO is not set
409# CONFIG_INET_DIAG is not set 431# CONFIG_INET_DIAG is not set
410CONFIG_INET_TCP_DIAG=y
411# CONFIG_TCP_CONG_ADVANCED is not set 432# CONFIG_TCP_CONG_ADVANCED is not set
412CONFIG_TCP_CONG_CUBIC=y 433CONFIG_TCP_CONG_CUBIC=y
413CONFIG_DEFAULT_TCP_CONG="cubic" 434CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -418,6 +439,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
418# CONFIG_NETFILTER is not set 439# CONFIG_NETFILTER is not set
419# CONFIG_IP_DCCP is not set 440# CONFIG_IP_DCCP is not set
420# CONFIG_IP_SCTP is not set 441# CONFIG_IP_SCTP is not set
442# CONFIG_RDS is not set
421# CONFIG_TIPC is not set 443# CONFIG_TIPC is not set
422# CONFIG_ATM is not set 444# CONFIG_ATM is not set
423# CONFIG_BRIDGE is not set 445# CONFIG_BRIDGE is not set
@@ -431,7 +453,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
431# CONFIG_LAPB is not set 453# CONFIG_LAPB is not set
432# CONFIG_ECONET is not set 454# CONFIG_ECONET is not set
433# CONFIG_WAN_ROUTER is not set 455# CONFIG_WAN_ROUTER is not set
456# CONFIG_PHONET is not set
457# CONFIG_IEEE802154 is not set
434# CONFIG_NET_SCHED is not set 458# CONFIG_NET_SCHED is not set
459# CONFIG_DCB is not set
435 460
436# 461#
437# Network testing 462# Network testing
@@ -475,13 +500,8 @@ CONFIG_IRTTY_SIR=m
475# 500#
476# CONFIG_BT is not set 501# CONFIG_BT is not set
477# CONFIG_AF_RXRPC is not set 502# CONFIG_AF_RXRPC is not set
478# CONFIG_PHONET is not set 503# CONFIG_WIRELESS is not set
479CONFIG_WIRELESS=y 504# CONFIG_WIMAX is not set
480# CONFIG_CFG80211 is not set
481CONFIG_WIRELESS_OLD_REGULATORY=y
482# CONFIG_WIRELESS_EXT is not set
483# CONFIG_MAC80211 is not set
484# CONFIG_IEEE80211 is not set
485# CONFIG_RFKILL is not set 505# CONFIG_RFKILL is not set
486# CONFIG_NET_9P is not set 506# CONFIG_NET_9P is not set
487 507
@@ -502,6 +522,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
502# CONFIG_CONNECTOR is not set 522# CONFIG_CONNECTOR is not set
503CONFIG_MTD=y 523CONFIG_MTD=y
504# CONFIG_MTD_DEBUG is not set 524# CONFIG_MTD_DEBUG is not set
525# CONFIG_MTD_TESTS is not set
505# CONFIG_MTD_CONCAT is not set 526# CONFIG_MTD_CONCAT is not set
506CONFIG_MTD_PARTITIONS=y 527CONFIG_MTD_PARTITIONS=y
507# CONFIG_MTD_REDBOOT_PARTS is not set 528# CONFIG_MTD_REDBOOT_PARTS is not set
@@ -559,6 +580,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
559# 580#
560# CONFIG_MTD_DATAFLASH is not set 581# CONFIG_MTD_DATAFLASH is not set
561# CONFIG_MTD_M25P80 is not set 582# CONFIG_MTD_M25P80 is not set
583# CONFIG_MTD_SST25L is not set
562# CONFIG_MTD_SLRAM is not set 584# CONFIG_MTD_SLRAM is not set
563# CONFIG_MTD_PHRAM is not set 585# CONFIG_MTD_PHRAM is not set
564# CONFIG_MTD_MTDRAM is not set 586# CONFIG_MTD_MTDRAM is not set
@@ -574,6 +596,11 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
574# CONFIG_MTD_ONENAND is not set 596# CONFIG_MTD_ONENAND is not set
575 597
576# 598#
599# LPDDR flash memory drivers
600#
601# CONFIG_MTD_LPDDR is not set
602
603#
577# UBI - Unsorted block images 604# UBI - Unsorted block images
578# 605#
579# CONFIG_MTD_UBI is not set 606# CONFIG_MTD_UBI is not set
@@ -590,9 +617,14 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
590# CONFIG_ATA_OVER_ETH is not set 617# CONFIG_ATA_OVER_ETH is not set
591# CONFIG_BLK_DEV_HD is not set 618# CONFIG_BLK_DEV_HD is not set
592CONFIG_MISC_DEVICES=y 619CONFIG_MISC_DEVICES=y
593# CONFIG_EEPROM_93CX6 is not set
594# CONFIG_ENCLOSURE_SERVICES is not set 620# CONFIG_ENCLOSURE_SERVICES is not set
595# CONFIG_C2PORT is not set 621# CONFIG_C2PORT is not set
622
623#
624# EEPROM support
625#
626# CONFIG_EEPROM_AT25 is not set
627# CONFIG_EEPROM_93CX6 is not set
596CONFIG_HAVE_IDE=y 628CONFIG_HAVE_IDE=y
597# CONFIG_IDE is not set 629# CONFIG_IDE is not set
598 630
@@ -616,9 +648,12 @@ CONFIG_NETDEVICES=y
616CONFIG_NET_ETHERNET=y 648CONFIG_NET_ETHERNET=y
617CONFIG_MII=y 649CONFIG_MII=y
618CONFIG_SMC91X=y 650CONFIG_SMC91X=y
619# CONFIG_SMSC911X is not set
620# CONFIG_DM9000 is not set 651# CONFIG_DM9000 is not set
621# CONFIG_ENC28J60 is not set 652# CONFIG_ENC28J60 is not set
653# CONFIG_ETHOC is not set
654# CONFIG_SMSC911X is not set
655# CONFIG_DNET is not set
656# CONFIG_ADF702X is not set
622# CONFIG_IBM_NEW_EMAC_ZMII is not set 657# CONFIG_IBM_NEW_EMAC_ZMII is not set
623# CONFIG_IBM_NEW_EMAC_RGMII is not set 658# CONFIG_IBM_NEW_EMAC_RGMII is not set
624# CONFIG_IBM_NEW_EMAC_TAH is not set 659# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -627,15 +662,16 @@ CONFIG_SMC91X=y
627# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 662# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
628# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 663# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
629# CONFIG_B44 is not set 664# CONFIG_B44 is not set
665# CONFIG_KS8842 is not set
666# CONFIG_KS8851 is not set
667# CONFIG_KS8851_MLL is not set
630# CONFIG_NETDEV_1000 is not set 668# CONFIG_NETDEV_1000 is not set
631# CONFIG_NETDEV_10000 is not set 669# CONFIG_NETDEV_10000 is not set
670# CONFIG_WLAN is not set
632 671
633# 672#
634# Wireless LAN 673# Enable WiMAX (Networking options) to see the WiMAX drivers
635# 674#
636# CONFIG_WLAN_PRE80211 is not set
637# CONFIG_WLAN_80211 is not set
638# CONFIG_IWLWIFI_LEDS is not set
639# CONFIG_WAN is not set 675# CONFIG_WAN is not set
640# CONFIG_PPP is not set 676# CONFIG_PPP is not set
641# CONFIG_SLIP is not set 677# CONFIG_SLIP is not set
@@ -679,15 +715,12 @@ CONFIG_INPUT_EVDEV=m
679# 715#
680# Character devices 716# Character devices
681# 717#
682# CONFIG_AD9960 is not set
683CONFIG_BFIN_DMA_INTERFACE=m 718CONFIG_BFIN_DMA_INTERFACE=m
684# CONFIG_BFIN_PPI is not set 719# CONFIG_BFIN_PPI is not set
685# CONFIG_BFIN_PPIFCD is not set 720# CONFIG_BFIN_PPIFCD is not set
686# CONFIG_BFIN_SIMPLE_TIMER is not set 721# CONFIG_BFIN_SIMPLE_TIMER is not set
687# CONFIG_BFIN_SPI_ADC is not set 722# CONFIG_BFIN_SPI_ADC is not set
688CONFIG_BFIN_SPORT=y 723CONFIG_BFIN_SPORT=y
689# CONFIG_BFIN_TIMER_LATENCY is not set
690CONFIG_SIMPLE_GPIO=m
691# CONFIG_VT is not set 724# CONFIG_VT is not set
692# CONFIG_DEVKMEM is not set 725# CONFIG_DEVKMEM is not set
693CONFIG_BFIN_JTAG_COMM=m 726CONFIG_BFIN_JTAG_COMM=m
@@ -701,6 +734,7 @@ CONFIG_BFIN_JTAG_COMM=m
701# 734#
702# Non-8250 serial port support 735# Non-8250 serial port support
703# 736#
737# CONFIG_SERIAL_MAX3100 is not set
704CONFIG_SERIAL_BFIN=y 738CONFIG_SERIAL_BFIN=y
705CONFIG_SERIAL_BFIN_CONSOLE=y 739CONFIG_SERIAL_BFIN_CONSOLE=y
706CONFIG_SERIAL_BFIN_DMA=y 740CONFIG_SERIAL_BFIN_DMA=y
@@ -711,12 +745,8 @@ CONFIG_SERIAL_CORE=y
711CONFIG_SERIAL_CORE_CONSOLE=y 745CONFIG_SERIAL_CORE_CONSOLE=y
712# CONFIG_SERIAL_BFIN_SPORT is not set 746# CONFIG_SERIAL_BFIN_SPORT is not set
713CONFIG_UNIX98_PTYS=y 747CONFIG_UNIX98_PTYS=y
748# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
714# CONFIG_LEGACY_PTYS is not set 749# CONFIG_LEGACY_PTYS is not set
715
716#
717# CAN, the car bus and industrial fieldbus
718#
719# CONFIG_CAN4LINUX is not set
720# CONFIG_IPMI_HANDLER is not set 750# CONFIG_IPMI_HANDLER is not set
721# CONFIG_HW_RANDOM is not set 751# CONFIG_HW_RANDOM is not set
722# CONFIG_R3964 is not set 752# CONFIG_R3964 is not set
@@ -734,13 +764,18 @@ CONFIG_SPI_BFIN=y
734# CONFIG_SPI_BFIN_LOCK is not set 764# CONFIG_SPI_BFIN_LOCK is not set
735# CONFIG_SPI_BFIN_SPORT is not set 765# CONFIG_SPI_BFIN_SPORT is not set
736# CONFIG_SPI_BITBANG is not set 766# CONFIG_SPI_BITBANG is not set
767# CONFIG_SPI_GPIO is not set
737 768
738# 769#
739# SPI Protocol Masters 770# SPI Protocol Masters
740# 771#
741# CONFIG_EEPROM_AT25 is not set
742# CONFIG_SPI_SPIDEV is not set 772# CONFIG_SPI_SPIDEV is not set
743# CONFIG_SPI_TLE62X0 is not set 773# CONFIG_SPI_TLE62X0 is not set
774
775#
776# PPS support
777#
778# CONFIG_PPS is not set
744CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 779CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
745CONFIG_GPIOLIB=y 780CONFIG_GPIOLIB=y
746# CONFIG_DEBUG_GPIO is not set 781# CONFIG_DEBUG_GPIO is not set
@@ -753,9 +788,6 @@ CONFIG_GPIO_SYSFS=y
753# 788#
754# I2C GPIO expanders: 789# I2C GPIO expanders:
755# 790#
756# CONFIG_GPIO_MAX732X is not set
757# CONFIG_GPIO_PCA953X is not set
758# CONFIG_GPIO_PCF857X is not set
759 791
760# 792#
761# PCI GPIO expanders: 793# PCI GPIO expanders:
@@ -766,11 +798,15 @@ CONFIG_GPIO_SYSFS=y
766# 798#
767# CONFIG_GPIO_MAX7301 is not set 799# CONFIG_GPIO_MAX7301 is not set
768# CONFIG_GPIO_MCP23S08 is not set 800# CONFIG_GPIO_MCP23S08 is not set
801# CONFIG_GPIO_MC33880 is not set
802
803#
804# AC97 GPIO expanders:
805#
769# CONFIG_W1 is not set 806# CONFIG_W1 is not set
770# CONFIG_POWER_SUPPLY is not set 807# CONFIG_POWER_SUPPLY is not set
771# CONFIG_HWMON is not set 808# CONFIG_HWMON is not set
772# CONFIG_THERMAL is not set 809# CONFIG_THERMAL is not set
773# CONFIG_THERMAL_HWMON is not set
774CONFIG_WATCHDOG=y 810CONFIG_WATCHDOG=y
775# CONFIG_WATCHDOG_NOWAYOUT is not set 811# CONFIG_WATCHDOG_NOWAYOUT is not set
776 812
@@ -793,23 +829,10 @@ CONFIG_SSB_POSSIBLE=y
793# CONFIG_MFD_SM501 is not set 829# CONFIG_MFD_SM501 is not set
794# CONFIG_HTC_PASIC3 is not set 830# CONFIG_HTC_PASIC3 is not set
795# CONFIG_MFD_TMIO is not set 831# CONFIG_MFD_TMIO is not set
832# CONFIG_MFD_MC13783 is not set
833# CONFIG_EZX_PCAP is not set
796# CONFIG_REGULATOR is not set 834# CONFIG_REGULATOR is not set
797 835# CONFIG_MEDIA_SUPPORT is not set
798#
799# Multimedia devices
800#
801
802#
803# Multimedia core support
804#
805# CONFIG_VIDEO_DEV is not set
806# CONFIG_DVB_CORE is not set
807# CONFIG_VIDEO_MEDIA is not set
808
809#
810# Multimedia drivers
811#
812# CONFIG_DAB is not set
813 836
814# 837#
815# Graphics support 838# Graphics support
@@ -826,14 +849,12 @@ CONFIG_SSB_POSSIBLE=y
826# CONFIG_SOUND is not set 849# CONFIG_SOUND is not set
827CONFIG_HID_SUPPORT=y 850CONFIG_HID_SUPPORT=y
828CONFIG_HID=m 851CONFIG_HID=m
829# CONFIG_HID_DEBUG is not set
830# CONFIG_HIDRAW is not set 852# CONFIG_HIDRAW is not set
831# CONFIG_HID_PID is not set 853# CONFIG_HID_PID is not set
832 854
833# 855#
834# Special HID drivers 856# Special HID drivers
835# 857#
836CONFIG_HID_COMPAT=y
837# CONFIG_USB_SUPPORT is not set 858# CONFIG_USB_SUPPORT is not set
838# CONFIG_MMC is not set 859# CONFIG_MMC is not set
839# CONFIG_MEMSTICK is not set 860# CONFIG_MEMSTICK is not set
@@ -864,6 +885,7 @@ CONFIG_RTC_INTF_DEV=y
864# CONFIG_RTC_DRV_R9701 is not set 885# CONFIG_RTC_DRV_R9701 is not set
865# CONFIG_RTC_DRV_RS5C348 is not set 886# CONFIG_RTC_DRV_RS5C348 is not set
866# CONFIG_RTC_DRV_DS3234 is not set 887# CONFIG_RTC_DRV_DS3234 is not set
888# CONFIG_RTC_DRV_PCF2123 is not set
867 889
868# 890#
869# Platform RTC drivers 891# Platform RTC drivers
@@ -884,10 +906,20 @@ CONFIG_RTC_INTF_DEV=y
884# 906#
885CONFIG_RTC_DRV_BFIN=y 907CONFIG_RTC_DRV_BFIN=y
886# CONFIG_DMADEVICES is not set 908# CONFIG_DMADEVICES is not set
909# CONFIG_AUXDISPLAY is not set
887# CONFIG_UIO is not set 910# CONFIG_UIO is not set
911
912#
913# TI VLYNQ
914#
888# CONFIG_STAGING is not set 915# CONFIG_STAGING is not set
889 916
890# 917#
918# Firmware Drivers
919#
920# CONFIG_FIRMWARE_MEMMAP is not set
921
922#
891# File systems 923# File systems
892# 924#
893# CONFIG_EXT2_FS is not set 925# CONFIG_EXT2_FS is not set
@@ -896,9 +928,13 @@ CONFIG_RTC_DRV_BFIN=y
896# CONFIG_REISERFS_FS is not set 928# CONFIG_REISERFS_FS is not set
897# CONFIG_JFS_FS is not set 929# CONFIG_JFS_FS is not set
898# CONFIG_FS_POSIX_ACL is not set 930# CONFIG_FS_POSIX_ACL is not set
899CONFIG_FILE_LOCKING=y
900# CONFIG_XFS_FS is not set 931# CONFIG_XFS_FS is not set
932# CONFIG_GFS2_FS is not set
901# CONFIG_OCFS2_FS is not set 933# CONFIG_OCFS2_FS is not set
934# CONFIG_BTRFS_FS is not set
935# CONFIG_NILFS2_FS is not set
936CONFIG_FILE_LOCKING=y
937CONFIG_FSNOTIFY=y
902# CONFIG_DNOTIFY is not set 938# CONFIG_DNOTIFY is not set
903CONFIG_INOTIFY=y 939CONFIG_INOTIFY=y
904CONFIG_INOTIFY_USER=y 940CONFIG_INOTIFY_USER=y
@@ -908,6 +944,11 @@ CONFIG_INOTIFY_USER=y
908# CONFIG_FUSE_FS is not set 944# CONFIG_FUSE_FS is not set
909 945
910# 946#
947# Caches
948#
949# CONFIG_FSCACHE is not set
950
951#
911# CD-ROM/DVD Filesystems 952# CD-ROM/DVD Filesystems
912# 953#
913# CONFIG_ISO9660_FS is not set 954# CONFIG_ISO9660_FS is not set
@@ -926,13 +967,9 @@ CONFIG_INOTIFY_USER=y
926CONFIG_PROC_FS=y 967CONFIG_PROC_FS=y
927CONFIG_PROC_SYSCTL=y 968CONFIG_PROC_SYSCTL=y
928CONFIG_SYSFS=y 969CONFIG_SYSFS=y
929# CONFIG_TMPFS is not set
930# CONFIG_HUGETLB_PAGE is not set 970# CONFIG_HUGETLB_PAGE is not set
931# CONFIG_CONFIGFS_FS is not set 971# CONFIG_CONFIGFS_FS is not set
932 972CONFIG_MISC_FILESYSTEMS=y
933#
934# Miscellaneous filesystems
935#
936# CONFIG_ADFS_FS is not set 973# CONFIG_ADFS_FS is not set
937# CONFIG_AFFS_FS is not set 974# CONFIG_AFFS_FS is not set
938# CONFIG_HFS_FS is not set 975# CONFIG_HFS_FS is not set
@@ -951,17 +988,8 @@ CONFIG_JFFS2_ZLIB=y
951# CONFIG_JFFS2_LZO is not set 988# CONFIG_JFFS2_LZO is not set
952CONFIG_JFFS2_RTIME=y 989CONFIG_JFFS2_RTIME=y
953# CONFIG_JFFS2_RUBIN is not set 990# CONFIG_JFFS2_RUBIN is not set
954CONFIG_YAFFS_FS=m
955CONFIG_YAFFS_YAFFS1=y
956# CONFIG_YAFFS_9BYTE_TAGS is not set
957# CONFIG_YAFFS_DOES_ECC is not set
958CONFIG_YAFFS_YAFFS2=y
959CONFIG_YAFFS_AUTO_YAFFS2=y
960# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
961# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
962# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
963CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
964# CONFIG_CRAMFS is not set 991# CONFIG_CRAMFS is not set
992# CONFIG_SQUASHFS is not set
965# CONFIG_VXFS_FS is not set 993# CONFIG_VXFS_FS is not set
966# CONFIG_MINIX_FS is not set 994# CONFIG_MINIX_FS is not set
967# CONFIG_OMFS_FS is not set 995# CONFIG_OMFS_FS is not set
@@ -980,7 +1008,6 @@ CONFIG_LOCKD=m
980CONFIG_LOCKD_V4=y 1008CONFIG_LOCKD_V4=y
981CONFIG_NFS_COMMON=y 1009CONFIG_NFS_COMMON=y
982CONFIG_SUNRPC=m 1010CONFIG_SUNRPC=m
983# CONFIG_SUNRPC_REGISTER_V4 is not set
984# CONFIG_RPCSEC_GSS_KRB5 is not set 1011# CONFIG_RPCSEC_GSS_KRB5 is not set
985# CONFIG_RPCSEC_GSS_SPKM3 is not set 1012# CONFIG_RPCSEC_GSS_SPKM3 is not set
986CONFIG_SMB_FS=m 1013CONFIG_SMB_FS=m
@@ -1045,14 +1072,19 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1045CONFIG_ENABLE_MUST_CHECK=y 1072CONFIG_ENABLE_MUST_CHECK=y
1046CONFIG_FRAME_WARN=1024 1073CONFIG_FRAME_WARN=1024
1047# CONFIG_MAGIC_SYSRQ is not set 1074# CONFIG_MAGIC_SYSRQ is not set
1075# CONFIG_STRIP_ASM_SYMS is not set
1048# CONFIG_UNUSED_SYMBOLS is not set 1076# CONFIG_UNUSED_SYMBOLS is not set
1049CONFIG_DEBUG_FS=y 1077CONFIG_DEBUG_FS=y
1050# CONFIG_HEADERS_CHECK is not set 1078# CONFIG_HEADERS_CHECK is not set
1079CONFIG_DEBUG_SECTION_MISMATCH=y
1051CONFIG_DEBUG_KERNEL=y 1080CONFIG_DEBUG_KERNEL=y
1052CONFIG_DEBUG_SHIRQ=y 1081CONFIG_DEBUG_SHIRQ=y
1053CONFIG_DETECT_SOFTLOCKUP=y 1082CONFIG_DETECT_SOFTLOCKUP=y
1054# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1083# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1055CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1084CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1085CONFIG_DETECT_HUNG_TASK=y
1086# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1087CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1056CONFIG_SCHED_DEBUG=y 1088CONFIG_SCHED_DEBUG=y
1057# CONFIG_SCHEDSTATS is not set 1089# CONFIG_SCHEDSTATS is not set
1058# CONFIG_TIMER_STATS is not set 1090# CONFIG_TIMER_STATS is not set
@@ -1060,31 +1092,39 @@ CONFIG_SCHED_DEBUG=y
1060# CONFIG_DEBUG_SLAB is not set 1092# CONFIG_DEBUG_SLAB is not set
1061# CONFIG_DEBUG_SPINLOCK is not set 1093# CONFIG_DEBUG_SPINLOCK is not set
1062# CONFIG_DEBUG_MUTEXES is not set 1094# CONFIG_DEBUG_MUTEXES is not set
1095# CONFIG_DEBUG_LOCK_ALLOC is not set
1096# CONFIG_PROVE_LOCKING is not set
1097# CONFIG_LOCK_STAT is not set
1063# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1098# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1064# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1099# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1065# CONFIG_DEBUG_KOBJECT is not set 1100# CONFIG_DEBUG_KOBJECT is not set
1066CONFIG_DEBUG_BUGVERBOSE=y 1101CONFIG_DEBUG_BUGVERBOSE=y
1067CONFIG_DEBUG_INFO=y 1102CONFIG_DEBUG_INFO=y
1068# CONFIG_DEBUG_VM is not set 1103# CONFIG_DEBUG_VM is not set
1104# CONFIG_DEBUG_NOMMU_REGIONS is not set
1069# CONFIG_DEBUG_WRITECOUNT is not set 1105# CONFIG_DEBUG_WRITECOUNT is not set
1070# CONFIG_DEBUG_MEMORY_INIT is not set 1106# CONFIG_DEBUG_MEMORY_INIT is not set
1071# CONFIG_DEBUG_LIST is not set 1107# CONFIG_DEBUG_LIST is not set
1072# CONFIG_DEBUG_SG is not set 1108# CONFIG_DEBUG_SG is not set
1109# CONFIG_DEBUG_NOTIFIERS is not set
1110# CONFIG_DEBUG_CREDENTIALS is not set
1073# CONFIG_FRAME_POINTER is not set 1111# CONFIG_FRAME_POINTER is not set
1074# CONFIG_BOOT_PRINTK_DELAY is not set 1112# CONFIG_BOOT_PRINTK_DELAY is not set
1075# CONFIG_RCU_TORTURE_TEST is not set 1113# CONFIG_RCU_TORTURE_TEST is not set
1076# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1114# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1077# CONFIG_BACKTRACE_SELF_TEST is not set 1115# CONFIG_BACKTRACE_SELF_TEST is not set
1078# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1116# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1117# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1079# CONFIG_FAULT_INJECTION is not set 1118# CONFIG_FAULT_INJECTION is not set
1080 1119# CONFIG_PAGE_POISONING is not set
1081# 1120CONFIG_HAVE_FUNCTION_TRACER=y
1082# Tracers 1121CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1083# 1122CONFIG_TRACING_SUPPORT=y
1084# CONFIG_SCHED_TRACER is not set 1123# CONFIG_FTRACE is not set
1085# CONFIG_CONTEXT_SWITCH_TRACER is not set 1124# CONFIG_BRANCH_PROFILE_NONE is not set
1086# CONFIG_BOOT_TRACER is not set 1125# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1087# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1126# CONFIG_PROFILE_ALL_BRANCHES is not set
1127# CONFIG_DYNAMIC_DEBUG is not set
1088# CONFIG_SAMPLES is not set 1128# CONFIG_SAMPLES is not set
1089CONFIG_HAVE_ARCH_KGDB=y 1129CONFIG_HAVE_ARCH_KGDB=y
1090# CONFIG_KGDB is not set 1130# CONFIG_KGDB is not set
@@ -1109,6 +1149,7 @@ CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE=y
1109CONFIG_EARLY_PRINTK=y 1149CONFIG_EARLY_PRINTK=y
1110CONFIG_CPLB_INFO=y 1150CONFIG_CPLB_INFO=y
1111CONFIG_ACCESS_CHECK=y 1151CONFIG_ACCESS_CHECK=y
1152# CONFIG_BFIN_ISRAM_SELF_TEST is not set
1112 1153
1113# 1154#
1114# Security options 1155# Security options
@@ -1117,14 +1158,14 @@ CONFIG_ACCESS_CHECK=y
1117CONFIG_SECURITY=y 1158CONFIG_SECURITY=y
1118# CONFIG_SECURITYFS is not set 1159# CONFIG_SECURITYFS is not set
1119# CONFIG_SECURITY_NETWORK is not set 1160# CONFIG_SECURITY_NETWORK is not set
1161# CONFIG_SECURITY_PATH is not set
1120# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1162# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1121CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1163# CONFIG_SECURITY_TOMOYO is not set
1122CONFIG_CRYPTO=y 1164CONFIG_CRYPTO=y
1123 1165
1124# 1166#
1125# Crypto core or helper 1167# Crypto core or helper
1126# 1168#
1127# CONFIG_CRYPTO_FIPS is not set
1128# CONFIG_CRYPTO_MANAGER is not set 1169# CONFIG_CRYPTO_MANAGER is not set
1129# CONFIG_CRYPTO_MANAGER2 is not set 1170# CONFIG_CRYPTO_MANAGER2 is not set
1130# CONFIG_CRYPTO_GF128MUL is not set 1171# CONFIG_CRYPTO_GF128MUL is not set
@@ -1156,11 +1197,13 @@ CONFIG_CRYPTO=y
1156# 1197#
1157# CONFIG_CRYPTO_HMAC is not set 1198# CONFIG_CRYPTO_HMAC is not set
1158# CONFIG_CRYPTO_XCBC is not set 1199# CONFIG_CRYPTO_XCBC is not set
1200# CONFIG_CRYPTO_VMAC is not set
1159 1201
1160# 1202#
1161# Digest 1203# Digest
1162# 1204#
1163# CONFIG_CRYPTO_CRC32C is not set 1205# CONFIG_CRYPTO_CRC32C is not set
1206# CONFIG_CRYPTO_GHASH is not set
1164# CONFIG_CRYPTO_MD4 is not set 1207# CONFIG_CRYPTO_MD4 is not set
1165# CONFIG_CRYPTO_MD5 is not set 1208# CONFIG_CRYPTO_MD5 is not set
1166# CONFIG_CRYPTO_MICHAEL_MIC is not set 1209# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1197,6 +1240,7 @@ CONFIG_CRYPTO=y
1197# Compression 1240# Compression
1198# 1241#
1199# CONFIG_CRYPTO_DEFLATE is not set 1242# CONFIG_CRYPTO_DEFLATE is not set
1243# CONFIG_CRYPTO_ZLIB is not set
1200# CONFIG_CRYPTO_LZO is not set 1244# CONFIG_CRYPTO_LZO is not set
1201 1245
1202# 1246#
@@ -1204,11 +1248,13 @@ CONFIG_CRYPTO=y
1204# 1248#
1205# CONFIG_CRYPTO_ANSI_CPRNG is not set 1249# CONFIG_CRYPTO_ANSI_CPRNG is not set
1206CONFIG_CRYPTO_HW=y 1250CONFIG_CRYPTO_HW=y
1251# CONFIG_BINARY_PRINTF is not set
1207 1252
1208# 1253#
1209# Library routines 1254# Library routines
1210# 1255#
1211CONFIG_BITREVERSE=y 1256CONFIG_BITREVERSE=y
1257CONFIG_GENERIC_FIND_LAST_BIT=y
1212CONFIG_CRC_CCITT=m 1258CONFIG_CRC_CCITT=m
1213# CONFIG_CRC16 is not set 1259# CONFIG_CRC16 is not set
1214# CONFIG_CRC_T10DIF is not set 1260# CONFIG_CRC_T10DIF is not set
@@ -1218,6 +1264,8 @@ CONFIG_CRC32=y
1218# CONFIG_LIBCRC32C is not set 1264# CONFIG_LIBCRC32C is not set
1219CONFIG_ZLIB_INFLATE=y 1265CONFIG_ZLIB_INFLATE=y
1220CONFIG_ZLIB_DEFLATE=m 1266CONFIG_ZLIB_DEFLATE=m
1267CONFIG_DECOMPRESS_GZIP=y
1221CONFIG_HAS_IOMEM=y 1268CONFIG_HAS_IOMEM=y
1222CONFIG_HAS_IOPORT=y 1269CONFIG_HAS_IOPORT=y
1223CONFIG_HAS_DMA=y 1270CONFIG_HAS_DMA=y
1271CONFIG_NLATTR=y
diff --git a/arch/blackfin/configs/BF533-STAMP_defconfig b/arch/blackfin/configs/BF533-STAMP_defconfig
index 6c60c8286318..c3fe6e5b612f 100644
--- a/arch/blackfin/configs/BF533-STAMP_defconfig
+++ b/arch/blackfin/configs/BF533-STAMP_defconfig
@@ -1,22 +1,27 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28.10 3# Linux kernel version: 2.6.32.2
4# Thu May 21 05:50:01 2009
5# 4#
6# CONFIG_MMU is not set 5# CONFIG_MMU is not set
7# CONFIG_FPU is not set 6# CONFIG_FPU is not set
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 7CONFIG_RWSEM_GENERIC_SPINLOCK=y
9# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
10CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
10CONFIG_GENERIC_CSUM=y
11CONFIG_GENERIC_BUG=y
11CONFIG_ZONE_DMA=y 12CONFIG_ZONE_DMA=y
12CONFIG_GENERIC_FIND_NEXT_BIT=y 13CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
16CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
17CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
18CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_TRACE_IRQFLAGS_SUPPORT=y
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
24CONFIG_CONSTRUCTORS=y
20 25
21# 26#
22# General setup 27# General setup
@@ -26,22 +31,41 @@ CONFIG_BROKEN_ON_SMP=y
26CONFIG_INIT_ENV_ARG_LIMIT=32 31CONFIG_INIT_ENV_ARG_LIMIT=32
27CONFIG_LOCALVERSION="" 32CONFIG_LOCALVERSION=""
28CONFIG_LOCALVERSION_AUTO=y 33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_HAVE_KERNEL_GZIP=y
35CONFIG_HAVE_KERNEL_BZIP2=y
36CONFIG_HAVE_KERNEL_LZMA=y
37CONFIG_KERNEL_GZIP=y
38# CONFIG_KERNEL_BZIP2 is not set
39# CONFIG_KERNEL_LZMA is not set
29CONFIG_SYSVIPC=y 40CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 41CONFIG_SYSVIPC_SYSCTL=y
31# CONFIG_POSIX_MQUEUE is not set 42# CONFIG_POSIX_MQUEUE is not set
32# CONFIG_BSD_PROCESS_ACCT is not set 43# CONFIG_BSD_PROCESS_ACCT is not set
33# CONFIG_TASKSTATS is not set 44# CONFIG_TASKSTATS is not set
34# CONFIG_AUDIT is not set 45# CONFIG_AUDIT is not set
46
47#
48# RCU Subsystem
49#
50CONFIG_TREE_RCU=y
51# CONFIG_TREE_PREEMPT_RCU is not set
52# CONFIG_RCU_TRACE is not set
53CONFIG_RCU_FANOUT=32
54# CONFIG_RCU_FANOUT_EXACT is not set
55# CONFIG_TREE_RCU_TRACE is not set
35CONFIG_IKCONFIG=y 56CONFIG_IKCONFIG=y
36CONFIG_IKCONFIG_PROC=y 57CONFIG_IKCONFIG_PROC=y
37CONFIG_LOG_BUF_SHIFT=14 58CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 59# CONFIG_GROUP_SCHED is not set
60# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 61# CONFIG_SYSFS_DEPRECATED_V2 is not set
41# CONFIG_RELAY is not set 62# CONFIG_RELAY is not set
42# CONFIG_NAMESPACES is not set 63# CONFIG_NAMESPACES is not set
43CONFIG_BLK_DEV_INITRD=y 64CONFIG_BLK_DEV_INITRD=y
44CONFIG_INITRAMFS_SOURCE="" 65CONFIG_INITRAMFS_SOURCE=""
66CONFIG_RD_GZIP=y
67# CONFIG_RD_BZIP2 is not set
68# CONFIG_RD_LZMA is not set
45# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 69# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
46CONFIG_SYSCTL=y 70CONFIG_SYSCTL=y
47CONFIG_ANON_INODES=y 71CONFIG_ANON_INODES=y
@@ -62,6 +86,10 @@ CONFIG_EPOLL=y
62# CONFIG_TIMERFD is not set 86# CONFIG_TIMERFD is not set
63# CONFIG_EVENTFD is not set 87# CONFIG_EVENTFD is not set
64# CONFIG_AIO is not set 88# CONFIG_AIO is not set
89
90#
91# Kernel Performance Events And Counters
92#
65CONFIG_VM_EVENT_COUNTERS=y 93CONFIG_VM_EVENT_COUNTERS=y
66CONFIG_COMPAT_BRK=y 94CONFIG_COMPAT_BRK=y
67CONFIG_SLAB=y 95CONFIG_SLAB=y
@@ -69,11 +97,15 @@ CONFIG_SLAB=y
69# CONFIG_SLOB is not set 97# CONFIG_SLOB is not set
70CONFIG_MMAP_ALLOW_UNINITIALIZED=y 98CONFIG_MMAP_ALLOW_UNINITIALIZED=y
71# CONFIG_PROFILING is not set 99# CONFIG_PROFILING is not set
72# CONFIG_MARKERS is not set
73CONFIG_HAVE_OPROFILE=y 100CONFIG_HAVE_OPROFILE=y
101
102#
103# GCOV-based kernel profiling
104#
105# CONFIG_GCOV_KERNEL is not set
106# CONFIG_SLOW_WORK is not set
74# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 107# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
75CONFIG_SLABINFO=y 108CONFIG_SLABINFO=y
76CONFIG_TINY_SHMEM=y
77CONFIG_BASE_SMALL=0 109CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y 110CONFIG_MODULES=y
79# CONFIG_MODULE_FORCE_LOAD is not set 111# CONFIG_MODULE_FORCE_LOAD is not set
@@ -81,11 +113,8 @@ CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODULE_FORCE_UNLOAD is not set 113# CONFIG_MODULE_FORCE_UNLOAD is not set
82# CONFIG_MODVERSIONS is not set 114# CONFIG_MODVERSIONS is not set
83# CONFIG_MODULE_SRCVERSION_ALL is not set 115# CONFIG_MODULE_SRCVERSION_ALL is not set
84CONFIG_KMOD=y
85CONFIG_BLOCK=y 116CONFIG_BLOCK=y
86# CONFIG_LBD is not set 117# CONFIG_LBDAF is not set
87# CONFIG_BLK_DEV_IO_TRACE is not set
88# CONFIG_LSF is not set
89# CONFIG_BLK_DEV_BSG is not set 118# CONFIG_BLK_DEV_BSG is not set
90# CONFIG_BLK_DEV_INTEGRITY is not set 119# CONFIG_BLK_DEV_INTEGRITY is not set
91 120
@@ -101,7 +130,6 @@ CONFIG_DEFAULT_AS=y
101# CONFIG_DEFAULT_CFQ is not set 130# CONFIG_DEFAULT_CFQ is not set
102# CONFIG_DEFAULT_NOOP is not set 131# CONFIG_DEFAULT_NOOP is not set
103CONFIG_DEFAULT_IOSCHED="anticipatory" 132CONFIG_DEFAULT_IOSCHED="anticipatory"
104CONFIG_CLASSIC_RCU=y
105# CONFIG_PREEMPT_NONE is not set 133# CONFIG_PREEMPT_NONE is not set
106CONFIG_PREEMPT_VOLUNTARY=y 134CONFIG_PREEMPT_VOLUNTARY=y
107# CONFIG_PREEMPT is not set 135# CONFIG_PREEMPT is not set
@@ -132,15 +160,15 @@ CONFIG_BF533=y
132# CONFIG_BF537 is not set 160# CONFIG_BF537 is not set
133# CONFIG_BF538 is not set 161# CONFIG_BF538 is not set
134# CONFIG_BF539 is not set 162# CONFIG_BF539 is not set
135# CONFIG_BF542 is not set 163# CONFIG_BF542_std is not set
136# CONFIG_BF542M is not set 164# CONFIG_BF542M is not set
137# CONFIG_BF544 is not set 165# CONFIG_BF544_std is not set
138# CONFIG_BF544M is not set 166# CONFIG_BF544M is not set
139# CONFIG_BF547 is not set 167# CONFIG_BF547_std is not set
140# CONFIG_BF547M is not set 168# CONFIG_BF547M is not set
141# CONFIG_BF548 is not set 169# CONFIG_BF548_std is not set
142# CONFIG_BF548M is not set 170# CONFIG_BF548M is not set
143# CONFIG_BF549 is not set 171# CONFIG_BF549_std is not set
144# CONFIG_BF549M is not set 172# CONFIG_BF549M is not set
145# CONFIG_BF561 is not set 173# CONFIG_BF561 is not set
146CONFIG_BF_REV_MIN=3 174CONFIG_BF_REV_MIN=3
@@ -228,7 +256,7 @@ CONFIG_GENERIC_TIME=y
228CONFIG_GENERIC_CLOCKEVENTS=y 256CONFIG_GENERIC_CLOCKEVENTS=y
229# CONFIG_TICKSOURCE_GPTMR0 is not set 257# CONFIG_TICKSOURCE_GPTMR0 is not set
230CONFIG_TICKSOURCE_CORETMR=y 258CONFIG_TICKSOURCE_CORETMR=y
231# CONFIG_CYCLES_CLOCKSOURCE is not set 259CONFIG_CYCLES_CLOCKSOURCE=y
232# CONFIG_GPTMR0_CLOCKSOURCE is not set 260# CONFIG_GPTMR0_CLOCKSOURCE is not set
233CONFIG_TICK_ONESHOT=y 261CONFIG_TICK_ONESHOT=y
234# CONFIG_NO_HZ is not set 262# CONFIG_NO_HZ is not set
@@ -280,7 +308,6 @@ CONFIG_FLATMEM=y
280CONFIG_FLAT_NODE_MEM_MAP=y 308CONFIG_FLAT_NODE_MEM_MAP=y
281CONFIG_PAGEFLAGS_EXTENDED=y 309CONFIG_PAGEFLAGS_EXTENDED=y
282CONFIG_SPLIT_PTLOCK_CPUS=4 310CONFIG_SPLIT_PTLOCK_CPUS=4
283# CONFIG_RESOURCES_64BIT is not set
284# CONFIG_PHYS_ADDR_T_64BIT is not set 311# CONFIG_PHYS_ADDR_T_64BIT is not set
285CONFIG_ZONE_DMA_FLAG=1 312CONFIG_ZONE_DMA_FLAG=1
286CONFIG_VIRT_TO_BUS=y 313CONFIG_VIRT_TO_BUS=y
@@ -289,16 +316,18 @@ CONFIG_BFIN_GPTIMERS=m
289# CONFIG_DMA_UNCACHED_4M is not set 316# CONFIG_DMA_UNCACHED_4M is not set
290# CONFIG_DMA_UNCACHED_2M is not set 317# CONFIG_DMA_UNCACHED_2M is not set
291CONFIG_DMA_UNCACHED_1M=y 318CONFIG_DMA_UNCACHED_1M=y
319# CONFIG_DMA_UNCACHED_512K is not set
320# CONFIG_DMA_UNCACHED_256K is not set
321# CONFIG_DMA_UNCACHED_128K is not set
292# CONFIG_DMA_UNCACHED_NONE is not set 322# CONFIG_DMA_UNCACHED_NONE is not set
293 323
294# 324#
295# Cache Support 325# Cache Support
296# 326#
297CONFIG_BFIN_ICACHE=y 327CONFIG_BFIN_ICACHE=y
298# CONFIG_BFIN_ICACHE_LOCK is not set 328CONFIG_BFIN_EXTMEM_ICACHEABLE=y
299CONFIG_BFIN_DCACHE=y 329CONFIG_BFIN_DCACHE=y
300# CONFIG_BFIN_DCACHE_BANKA is not set 330# CONFIG_BFIN_DCACHE_BANKA is not set
301CONFIG_BFIN_EXTMEM_ICACHEABLE=y
302CONFIG_BFIN_EXTMEM_DCACHEABLE=y 331CONFIG_BFIN_EXTMEM_DCACHEABLE=y
303CONFIG_BFIN_EXTMEM_WRITEBACK=y 332CONFIG_BFIN_EXTMEM_WRITEBACK=y
304# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 333# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
@@ -309,7 +338,7 @@ CONFIG_BFIN_EXTMEM_WRITEBACK=y
309# CONFIG_MPU is not set 338# CONFIG_MPU is not set
310 339
311# 340#
312# Asynchonous Memory Configuration 341# Asynchronous Memory Configuration
313# 342#
314 343
315# 344#
@@ -355,6 +384,7 @@ CONFIG_PM=y
355CONFIG_PM_SLEEP=y 384CONFIG_PM_SLEEP=y
356CONFIG_SUSPEND=y 385CONFIG_SUSPEND=y
357CONFIG_SUSPEND_FREEZER=y 386CONFIG_SUSPEND_FREEZER=y
387# CONFIG_PM_RUNTIME is not set
358CONFIG_ARCH_SUSPEND_POSSIBLE=y 388CONFIG_ARCH_SUSPEND_POSSIBLE=y
359CONFIG_PM_BFIN_SLEEP_DEEPER=y 389CONFIG_PM_BFIN_SLEEP_DEEPER=y
360# CONFIG_PM_BFIN_SLEEP is not set 390# CONFIG_PM_BFIN_SLEEP is not set
@@ -376,11 +406,6 @@ CONFIG_NET=y
376CONFIG_PACKET=y 406CONFIG_PACKET=y
377# CONFIG_PACKET_MMAP is not set 407# CONFIG_PACKET_MMAP is not set
378CONFIG_UNIX=y 408CONFIG_UNIX=y
379CONFIG_XFRM=y
380# CONFIG_XFRM_USER is not set
381# CONFIG_XFRM_SUB_POLICY is not set
382# CONFIG_XFRM_MIGRATE is not set
383# CONFIG_XFRM_STATISTICS is not set
384# CONFIG_NET_KEY is not set 409# CONFIG_NET_KEY is not set
385CONFIG_INET=y 410CONFIG_INET=y
386# CONFIG_IP_MULTICAST is not set 411# CONFIG_IP_MULTICAST is not set
@@ -404,7 +429,6 @@ CONFIG_IP_PNP=y
404# CONFIG_INET_XFRM_MODE_BEET is not set 429# CONFIG_INET_XFRM_MODE_BEET is not set
405# CONFIG_INET_LRO is not set 430# CONFIG_INET_LRO is not set
406# CONFIG_INET_DIAG is not set 431# CONFIG_INET_DIAG is not set
407CONFIG_INET_TCP_DIAG=y
408# CONFIG_TCP_CONG_ADVANCED is not set 432# CONFIG_TCP_CONG_ADVANCED is not set
409CONFIG_TCP_CONG_CUBIC=y 433CONFIG_TCP_CONG_CUBIC=y
410CONFIG_DEFAULT_TCP_CONG="cubic" 434CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -415,6 +439,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
415# CONFIG_NETFILTER is not set 439# CONFIG_NETFILTER is not set
416# CONFIG_IP_DCCP is not set 440# CONFIG_IP_DCCP is not set
417# CONFIG_IP_SCTP is not set 441# CONFIG_IP_SCTP is not set
442# CONFIG_RDS is not set
418# CONFIG_TIPC is not set 443# CONFIG_TIPC is not set
419# CONFIG_ATM is not set 444# CONFIG_ATM is not set
420# CONFIG_BRIDGE is not set 445# CONFIG_BRIDGE is not set
@@ -428,7 +453,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
428# CONFIG_LAPB is not set 453# CONFIG_LAPB is not set
429# CONFIG_ECONET is not set 454# CONFIG_ECONET is not set
430# CONFIG_WAN_ROUTER is not set 455# CONFIG_WAN_ROUTER is not set
456# CONFIG_PHONET is not set
457# CONFIG_IEEE802154 is not set
431# CONFIG_NET_SCHED is not set 458# CONFIG_NET_SCHED is not set
459# CONFIG_DCB is not set
432 460
433# 461#
434# Network testing 462# Network testing
@@ -474,13 +502,8 @@ CONFIG_SIR_BFIN_DMA=y
474# 502#
475# CONFIG_BT is not set 503# CONFIG_BT is not set
476# CONFIG_AF_RXRPC is not set 504# CONFIG_AF_RXRPC is not set
477# CONFIG_PHONET is not set 505# CONFIG_WIRELESS is not set
478CONFIG_WIRELESS=y 506# CONFIG_WIMAX is not set
479# CONFIG_CFG80211 is not set
480CONFIG_WIRELESS_OLD_REGULATORY=y
481# CONFIG_WIRELESS_EXT is not set
482# CONFIG_MAC80211 is not set
483# CONFIG_IEEE80211 is not set
484# CONFIG_RFKILL is not set 507# CONFIG_RFKILL is not set
485# CONFIG_NET_9P is not set 508# CONFIG_NET_9P is not set
486 509
@@ -501,6 +524,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
501# CONFIG_CONNECTOR is not set 524# CONFIG_CONNECTOR is not set
502CONFIG_MTD=y 525CONFIG_MTD=y
503# CONFIG_MTD_DEBUG is not set 526# CONFIG_MTD_DEBUG is not set
527# CONFIG_MTD_TESTS is not set
504# CONFIG_MTD_CONCAT is not set 528# CONFIG_MTD_CONCAT is not set
505CONFIG_MTD_PARTITIONS=y 529CONFIG_MTD_PARTITIONS=y
506# CONFIG_MTD_REDBOOT_PARTS is not set 530# CONFIG_MTD_REDBOOT_PARTS is not set
@@ -560,6 +584,7 @@ CONFIG_MTD_BFIN_ASYNC=m
560# 584#
561# CONFIG_MTD_DATAFLASH is not set 585# CONFIG_MTD_DATAFLASH is not set
562# CONFIG_MTD_M25P80 is not set 586# CONFIG_MTD_M25P80 is not set
587# CONFIG_MTD_SST25L is not set
563# CONFIG_MTD_SLRAM is not set 588# CONFIG_MTD_SLRAM is not set
564# CONFIG_MTD_PHRAM is not set 589# CONFIG_MTD_PHRAM is not set
565# CONFIG_MTD_MTDRAM is not set 590# CONFIG_MTD_MTDRAM is not set
@@ -575,6 +600,11 @@ CONFIG_MTD_BFIN_ASYNC=m
575# CONFIG_MTD_ONENAND is not set 600# CONFIG_MTD_ONENAND is not set
576 601
577# 602#
603# LPDDR flash memory drivers
604#
605# CONFIG_MTD_LPDDR is not set
606
607#
578# UBI - Unsorted block images 608# UBI - Unsorted block images
579# 609#
580# CONFIG_MTD_UBI is not set 610# CONFIG_MTD_UBI is not set
@@ -591,10 +621,20 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
591# CONFIG_ATA_OVER_ETH is not set 621# CONFIG_ATA_OVER_ETH is not set
592# CONFIG_BLK_DEV_HD is not set 622# CONFIG_BLK_DEV_HD is not set
593CONFIG_MISC_DEVICES=y 623CONFIG_MISC_DEVICES=y
594# CONFIG_EEPROM_93CX6 is not set 624# CONFIG_AD525X_DPOT is not set
595# CONFIG_ICS932S401 is not set 625# CONFIG_ICS932S401 is not set
596# CONFIG_ENCLOSURE_SERVICES is not set 626# CONFIG_ENCLOSURE_SERVICES is not set
627# CONFIG_ISL29003 is not set
597# CONFIG_C2PORT is not set 628# CONFIG_C2PORT is not set
629
630#
631# EEPROM support
632#
633# CONFIG_EEPROM_AT24 is not set
634# CONFIG_EEPROM_AT25 is not set
635# CONFIG_EEPROM_LEGACY is not set
636# CONFIG_EEPROM_MAX6875 is not set
637# CONFIG_EEPROM_93CX6 is not set
598CONFIG_HAVE_IDE=y 638CONFIG_HAVE_IDE=y
599# CONFIG_IDE is not set 639# CONFIG_IDE is not set
600 640
@@ -618,9 +658,12 @@ CONFIG_NETDEVICES=y
618CONFIG_NET_ETHERNET=y 658CONFIG_NET_ETHERNET=y
619CONFIG_MII=y 659CONFIG_MII=y
620CONFIG_SMC91X=y 660CONFIG_SMC91X=y
621# CONFIG_SMSC911X is not set
622# CONFIG_DM9000 is not set 661# CONFIG_DM9000 is not set
623# CONFIG_ENC28J60 is not set 662# CONFIG_ENC28J60 is not set
663# CONFIG_ETHOC is not set
664# CONFIG_SMSC911X is not set
665# CONFIG_DNET is not set
666# CONFIG_ADF702X is not set
624# CONFIG_IBM_NEW_EMAC_ZMII is not set 667# CONFIG_IBM_NEW_EMAC_ZMII is not set
625# CONFIG_IBM_NEW_EMAC_RGMII is not set 668# CONFIG_IBM_NEW_EMAC_RGMII is not set
626# CONFIG_IBM_NEW_EMAC_TAH is not set 669# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -629,15 +672,16 @@ CONFIG_SMC91X=y
629# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 672# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
630# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 673# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
631# CONFIG_B44 is not set 674# CONFIG_B44 is not set
675# CONFIG_KS8842 is not set
676# CONFIG_KS8851 is not set
677# CONFIG_KS8851_MLL is not set
632# CONFIG_NETDEV_1000 is not set 678# CONFIG_NETDEV_1000 is not set
633# CONFIG_NETDEV_10000 is not set 679# CONFIG_NETDEV_10000 is not set
680# CONFIG_WLAN is not set
634 681
635# 682#
636# Wireless LAN 683# Enable WiMAX (Networking options) to see the WiMAX drivers
637# 684#
638# CONFIG_WLAN_PRE80211 is not set
639# CONFIG_WLAN_80211 is not set
640# CONFIG_IWLWIFI_LEDS is not set
641# CONFIG_WAN is not set 685# CONFIG_WAN is not set
642# CONFIG_PPP is not set 686# CONFIG_PPP is not set
643# CONFIG_SLIP is not set 687# CONFIG_SLIP is not set
@@ -672,7 +716,10 @@ CONFIG_INPUT_EVDEV=m
672# CONFIG_INPUT_TOUCHSCREEN is not set 716# CONFIG_INPUT_TOUCHSCREEN is not set
673CONFIG_INPUT_MISC=y 717CONFIG_INPUT_MISC=y
674# CONFIG_INPUT_UINPUT is not set 718# CONFIG_INPUT_UINPUT is not set
675CONFIG_CONFIG_INPUT_PCF8574=m 719# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
720# CONFIG_INPUT_AD714X is not set
721# CONFIG_INPUT_ADXL34X is not set
722# CONFIG_INPUT_PCF8574 is not set
676 723
677# 724#
678# Hardware I/O ports 725# Hardware I/O ports
@@ -683,16 +730,13 @@ CONFIG_CONFIG_INPUT_PCF8574=m
683# 730#
684# Character devices 731# Character devices
685# 732#
686# CONFIG_AD9960 is not set
687CONFIG_BFIN_DMA_INTERFACE=m 733CONFIG_BFIN_DMA_INTERFACE=m
688# CONFIG_BFIN_PPI is not set 734# CONFIG_BFIN_PPI is not set
689# CONFIG_BFIN_PPIFCD is not set 735# CONFIG_BFIN_PPIFCD is not set
690# CONFIG_BFIN_SIMPLE_TIMER is not set 736# CONFIG_BFIN_SIMPLE_TIMER is not set
691# CONFIG_BFIN_SPI_ADC is not set 737# CONFIG_BFIN_SPI_ADC is not set
692CONFIG_BFIN_SPORT=m 738CONFIG_BFIN_SPORT=m
693# CONFIG_BFIN_TIMER_LATENCY is not set
694# CONFIG_BFIN_TWI_LCD is not set 739# CONFIG_BFIN_TWI_LCD is not set
695CONFIG_SIMPLE_GPIO=m
696# CONFIG_VT is not set 740# CONFIG_VT is not set
697# CONFIG_DEVKMEM is not set 741# CONFIG_DEVKMEM is not set
698CONFIG_BFIN_JTAG_COMM=m 742CONFIG_BFIN_JTAG_COMM=m
@@ -706,6 +750,7 @@ CONFIG_BFIN_JTAG_COMM=m
706# 750#
707# Non-8250 serial port support 751# Non-8250 serial port support
708# 752#
753# CONFIG_SERIAL_MAX3100 is not set
709CONFIG_SERIAL_BFIN=y 754CONFIG_SERIAL_BFIN=y
710CONFIG_SERIAL_BFIN_CONSOLE=y 755CONFIG_SERIAL_BFIN_CONSOLE=y
711CONFIG_SERIAL_BFIN_DMA=y 756CONFIG_SERIAL_BFIN_DMA=y
@@ -716,12 +761,8 @@ CONFIG_SERIAL_CORE=y
716CONFIG_SERIAL_CORE_CONSOLE=y 761CONFIG_SERIAL_CORE_CONSOLE=y
717# CONFIG_SERIAL_BFIN_SPORT is not set 762# CONFIG_SERIAL_BFIN_SPORT is not set
718CONFIG_UNIX98_PTYS=y 763CONFIG_UNIX98_PTYS=y
764# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
719# CONFIG_LEGACY_PTYS is not set 765# CONFIG_LEGACY_PTYS is not set
720
721#
722# CAN, the car bus and industrial fieldbus
723#
724# CONFIG_CAN4LINUX is not set
725# CONFIG_IPMI_HANDLER is not set 766# CONFIG_IPMI_HANDLER is not set
726# CONFIG_HW_RANDOM is not set 767# CONFIG_HW_RANDOM is not set
727# CONFIG_R3964 is not set 768# CONFIG_R3964 is not set
@@ -729,6 +770,7 @@ CONFIG_UNIX98_PTYS=y
729# CONFIG_TCG_TPM is not set 770# CONFIG_TCG_TPM is not set
730CONFIG_I2C=m 771CONFIG_I2C=m
731CONFIG_I2C_BOARDINFO=y 772CONFIG_I2C_BOARDINFO=y
773CONFIG_I2C_COMPAT=y
732CONFIG_I2C_CHARDEV=m 774CONFIG_I2C_CHARDEV=m
733CONFIG_I2C_HELPER_AUTO=y 775CONFIG_I2C_HELPER_AUTO=y
734 776
@@ -759,14 +801,6 @@ CONFIG_I2C_HELPER_AUTO=y
759# Miscellaneous I2C Chip support 801# Miscellaneous I2C Chip support
760# 802#
761# CONFIG_DS1682 is not set 803# CONFIG_DS1682 is not set
762# CONFIG_EEPROM_AT24 is not set
763# CONFIG_SENSORS_AD5252 is not set
764# CONFIG_EEPROM_LEGACY is not set
765# CONFIG_SENSORS_PCF8574 is not set
766# CONFIG_PCF8575 is not set
767# CONFIG_SENSORS_PCA9539 is not set
768# CONFIG_SENSORS_PCF8591 is not set
769# CONFIG_SENSORS_MAX6875 is not set
770# CONFIG_SENSORS_TSL2550 is not set 804# CONFIG_SENSORS_TSL2550 is not set
771# CONFIG_I2C_DEBUG_CORE is not set 805# CONFIG_I2C_DEBUG_CORE is not set
772# CONFIG_I2C_DEBUG_ALGO is not set 806# CONFIG_I2C_DEBUG_ALGO is not set
@@ -783,13 +817,18 @@ CONFIG_SPI_BFIN=y
783# CONFIG_SPI_BFIN_LOCK is not set 817# CONFIG_SPI_BFIN_LOCK is not set
784# CONFIG_SPI_BFIN_SPORT is not set 818# CONFIG_SPI_BFIN_SPORT is not set
785# CONFIG_SPI_BITBANG is not set 819# CONFIG_SPI_BITBANG is not set
820# CONFIG_SPI_GPIO is not set
786 821
787# 822#
788# SPI Protocol Masters 823# SPI Protocol Masters
789# 824#
790# CONFIG_EEPROM_AT25 is not set
791# CONFIG_SPI_SPIDEV is not set 825# CONFIG_SPI_SPIDEV is not set
792# CONFIG_SPI_TLE62X0 is not set 826# CONFIG_SPI_TLE62X0 is not set
827
828#
829# PPS support
830#
831# CONFIG_PPS is not set
793CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 832CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
794CONFIG_GPIOLIB=y 833CONFIG_GPIOLIB=y
795# CONFIG_DEBUG_GPIO is not set 834# CONFIG_DEBUG_GPIO is not set
@@ -805,6 +844,7 @@ CONFIG_GPIO_SYSFS=y
805# CONFIG_GPIO_MAX732X is not set 844# CONFIG_GPIO_MAX732X is not set
806# CONFIG_GPIO_PCA953X is not set 845# CONFIG_GPIO_PCA953X is not set
807# CONFIG_GPIO_PCF857X is not set 846# CONFIG_GPIO_PCF857X is not set
847# CONFIG_GPIO_ADP5588 is not set
808 848
809# 849#
810# PCI GPIO expanders: 850# PCI GPIO expanders:
@@ -815,11 +855,15 @@ CONFIG_GPIO_SYSFS=y
815# 855#
816# CONFIG_GPIO_MAX7301 is not set 856# CONFIG_GPIO_MAX7301 is not set
817# CONFIG_GPIO_MCP23S08 is not set 857# CONFIG_GPIO_MCP23S08 is not set
858# CONFIG_GPIO_MC33880 is not set
859
860#
861# AC97 GPIO expanders:
862#
818# CONFIG_W1 is not set 863# CONFIG_W1 is not set
819# CONFIG_POWER_SUPPLY is not set 864# CONFIG_POWER_SUPPLY is not set
820# CONFIG_HWMON is not set 865# CONFIG_HWMON is not set
821# CONFIG_THERMAL is not set 866# CONFIG_THERMAL is not set
822# CONFIG_THERMAL_HWMON is not set
823CONFIG_WATCHDOG=y 867CONFIG_WATCHDOG=y
824# CONFIG_WATCHDOG_NOWAYOUT is not set 868# CONFIG_WATCHDOG_NOWAYOUT is not set
825 869
@@ -841,26 +885,18 @@ CONFIG_SSB_POSSIBLE=y
841# CONFIG_MFD_CORE is not set 885# CONFIG_MFD_CORE is not set
842# CONFIG_MFD_SM501 is not set 886# CONFIG_MFD_SM501 is not set
843# CONFIG_HTC_PASIC3 is not set 887# CONFIG_HTC_PASIC3 is not set
888# CONFIG_UCB1400_CORE is not set
889# CONFIG_TPS65010 is not set
844# CONFIG_MFD_TMIO is not set 890# CONFIG_MFD_TMIO is not set
845# CONFIG_MFD_WM8400 is not set 891# CONFIG_MFD_WM8400 is not set
892# CONFIG_MFD_WM831X is not set
846# CONFIG_MFD_WM8350_I2C is not set 893# CONFIG_MFD_WM8350_I2C is not set
894# CONFIG_MFD_PCF50633 is not set
895# CONFIG_MFD_MC13783 is not set
896# CONFIG_AB3100_CORE is not set
897# CONFIG_EZX_PCAP is not set
847# CONFIG_REGULATOR is not set 898# CONFIG_REGULATOR is not set
848 899# CONFIG_MEDIA_SUPPORT is not set
849#
850# Multimedia devices
851#
852
853#
854# Multimedia core support
855#
856# CONFIG_VIDEO_DEV is not set
857# CONFIG_DVB_CORE is not set
858# CONFIG_VIDEO_MEDIA is not set
859
860#
861# Multimedia drivers
862#
863# CONFIG_DAB is not set
864 900
865# 901#
866# Graphics support 902# Graphics support
@@ -904,6 +940,7 @@ CONFIG_ADV7393_1XMEM=y
904# CONFIG_FB_VIRTUAL is not set 940# CONFIG_FB_VIRTUAL is not set
905# CONFIG_FB_METRONOME is not set 941# CONFIG_FB_METRONOME is not set
906# CONFIG_FB_MB862XX is not set 942# CONFIG_FB_MB862XX is not set
943# CONFIG_FB_BROADSHEET is not set
907# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 944# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
908 945
909# 946#
@@ -913,19 +950,27 @@ CONFIG_ADV7393_1XMEM=y
913# CONFIG_LOGO is not set 950# CONFIG_LOGO is not set
914CONFIG_SOUND=m 951CONFIG_SOUND=m
915CONFIG_SOUND_OSS_CORE=y 952CONFIG_SOUND_OSS_CORE=y
953CONFIG_SOUND_OSS_CORE_PRECLAIM=y
916CONFIG_SND=m 954CONFIG_SND=m
917CONFIG_SND_TIMER=m 955CONFIG_SND_TIMER=m
918CONFIG_SND_PCM=m 956CONFIG_SND_PCM=m
957CONFIG_SND_JACK=y
919# CONFIG_SND_SEQUENCER is not set 958# CONFIG_SND_SEQUENCER is not set
920CONFIG_SND_OSSEMUL=y 959CONFIG_SND_OSSEMUL=y
921CONFIG_SND_MIXER_OSS=m 960CONFIG_SND_MIXER_OSS=m
922CONFIG_SND_PCM_OSS=m 961CONFIG_SND_PCM_OSS=m
923CONFIG_SND_PCM_OSS_PLUGINS=y 962CONFIG_SND_PCM_OSS_PLUGINS=y
963# CONFIG_SND_HRTIMER is not set
924# CONFIG_SND_DYNAMIC_MINORS is not set 964# CONFIG_SND_DYNAMIC_MINORS is not set
925CONFIG_SND_SUPPORT_OLD_API=y 965CONFIG_SND_SUPPORT_OLD_API=y
926CONFIG_SND_VERBOSE_PROCFS=y 966CONFIG_SND_VERBOSE_PROCFS=y
927# CONFIG_SND_VERBOSE_PRINTK is not set 967# CONFIG_SND_VERBOSE_PRINTK is not set
928# CONFIG_SND_DEBUG is not set 968# CONFIG_SND_DEBUG is not set
969# CONFIG_SND_RAWMIDI_SEQ is not set
970# CONFIG_SND_OPL3_LIB_SEQ is not set
971# CONFIG_SND_OPL4_LIB_SEQ is not set
972# CONFIG_SND_SBAWE_SEQ is not set
973# CONFIG_SND_EMU10K1_SEQ is not set
929CONFIG_SND_DRIVERS=y 974CONFIG_SND_DRIVERS=y
930# CONFIG_SND_DUMMY is not set 975# CONFIG_SND_DUMMY is not set
931# CONFIG_SND_MTPAV is not set 976# CONFIG_SND_MTPAV is not set
@@ -936,13 +981,6 @@ CONFIG_SND_SPI=y
936# 981#
937# ALSA Blackfin devices 982# ALSA Blackfin devices
938# 983#
939CONFIG_SND_BLACKFIN_AD1836=m
940CONFIG_SND_BLACKFIN_AD1836_TDM=y
941# CONFIG_SND_BLACKFIN_AD1836_I2S is not set
942CONFIG_SND_BLACKFIN_AD1836_MULSUB=y
943# CONFIG_SND_BLACKFIN_AD1836_5P1 is not set
944CONFIG_SND_BLACKFIN_SPORT=0
945CONFIG_SND_BLACKFIN_SPI_PFBIT=4
946CONFIG_SND_BFIN_SPORT=0 984CONFIG_SND_BFIN_SPORT=0
947CONFIG_SND_BFIN_AD73322=m 985CONFIG_SND_BFIN_AD73322=m
948CONFIG_SND_BFIN_AD73322_SPORT0_SE=10 986CONFIG_SND_BFIN_AD73322_SPORT0_SE=10
@@ -953,16 +991,20 @@ CONFIG_SND_SOC_AC97_BUS=y
953CONFIG_SND_BF5XX_I2S=m 991CONFIG_SND_BF5XX_I2S=m
954# CONFIG_SND_BF5XX_SOC_SSM2602 is not set 992# CONFIG_SND_BF5XX_SOC_SSM2602 is not set
955CONFIG_SND_BF5XX_SOC_AD73311=m 993CONFIG_SND_BF5XX_SOC_AD73311=m
994# CONFIG_SND_BF5XX_SOC_ADAU1371 is not set
995# CONFIG_SND_BF5XX_SOC_ADAU1761 is not set
956CONFIG_SND_BFIN_AD73311_SE=4 996CONFIG_SND_BFIN_AD73311_SE=4
997# CONFIG_SND_BF5XX_TDM is not set
957CONFIG_SND_BF5XX_AC97=m 998CONFIG_SND_BF5XX_AC97=m
958CONFIG_SND_BF5XX_MMAP_SUPPORT=y 999CONFIG_SND_BF5XX_MMAP_SUPPORT=y
959# CONFIG_SND_BF5XX_MULTICHAN_SUPPORT is not set 1000# CONFIG_SND_BF5XX_MULTICHAN_SUPPORT is not set
1001# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set
1002CONFIG_SND_BF5XX_SOC_AD1980=m
960CONFIG_SND_BF5XX_SOC_SPORT=m 1003CONFIG_SND_BF5XX_SOC_SPORT=m
961CONFIG_SND_BF5XX_SOC_I2S=m 1004CONFIG_SND_BF5XX_SOC_I2S=m
962CONFIG_SND_BF5XX_SOC_AC97=m 1005CONFIG_SND_BF5XX_SOC_AC97=m
963CONFIG_SND_BF5XX_SOC_AD1980=m
964CONFIG_SND_BF5XX_SPORT_NUM=0 1006CONFIG_SND_BF5XX_SPORT_NUM=0
965# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set 1007CONFIG_SND_SOC_I2C_AND_SPI=m
966# CONFIG_SND_SOC_ALL_CODECS is not set 1008# CONFIG_SND_SOC_ALL_CODECS is not set
967CONFIG_SND_SOC_AD1980=m 1009CONFIG_SND_SOC_AD1980=m
968CONFIG_SND_SOC_AD73311=m 1010CONFIG_SND_SOC_AD73311=m
@@ -970,14 +1012,12 @@ CONFIG_SND_SOC_AD73311=m
970CONFIG_AC97_BUS=m 1012CONFIG_AC97_BUS=m
971CONFIG_HID_SUPPORT=y 1013CONFIG_HID_SUPPORT=y
972CONFIG_HID=y 1014CONFIG_HID=y
973# CONFIG_HID_DEBUG is not set
974# CONFIG_HIDRAW is not set 1015# CONFIG_HIDRAW is not set
975# CONFIG_HID_PID is not set 1016# CONFIG_HID_PID is not set
976 1017
977# 1018#
978# Special HID drivers 1019# Special HID drivers
979# 1020#
980CONFIG_HID_COMPAT=y
981# CONFIG_USB_SUPPORT is not set 1021# CONFIG_USB_SUPPORT is not set
982# CONFIG_MMC is not set 1022# CONFIG_MMC is not set
983# CONFIG_MEMSTICK is not set 1023# CONFIG_MEMSTICK is not set
@@ -1014,6 +1054,7 @@ CONFIG_RTC_INTF_DEV=y
1014# CONFIG_RTC_DRV_S35390A is not set 1054# CONFIG_RTC_DRV_S35390A is not set
1015# CONFIG_RTC_DRV_FM3130 is not set 1055# CONFIG_RTC_DRV_FM3130 is not set
1016# CONFIG_RTC_DRV_RX8581 is not set 1056# CONFIG_RTC_DRV_RX8581 is not set
1057# CONFIG_RTC_DRV_RX8025 is not set
1017 1058
1018# 1059#
1019# SPI RTC drivers 1060# SPI RTC drivers
@@ -1025,6 +1066,7 @@ CONFIG_RTC_INTF_DEV=y
1025# CONFIG_RTC_DRV_R9701 is not set 1066# CONFIG_RTC_DRV_R9701 is not set
1026# CONFIG_RTC_DRV_RS5C348 is not set 1067# CONFIG_RTC_DRV_RS5C348 is not set
1027# CONFIG_RTC_DRV_DS3234 is not set 1068# CONFIG_RTC_DRV_DS3234 is not set
1069# CONFIG_RTC_DRV_PCF2123 is not set
1028 1070
1029# 1071#
1030# Platform RTC drivers 1072# Platform RTC drivers
@@ -1045,10 +1087,21 @@ CONFIG_RTC_INTF_DEV=y
1045# 1087#
1046CONFIG_RTC_DRV_BFIN=y 1088CONFIG_RTC_DRV_BFIN=y
1047# CONFIG_DMADEVICES is not set 1089# CONFIG_DMADEVICES is not set
1090# CONFIG_AUXDISPLAY is not set
1048# CONFIG_UIO is not set 1091# CONFIG_UIO is not set
1092
1093#
1094# TI VLYNQ
1095#
1049# CONFIG_STAGING is not set 1096# CONFIG_STAGING is not set
1050 1097
1051# 1098#
1099# Firmware Drivers
1100#
1101# CONFIG_FIRMWARE_MEMMAP is not set
1102# CONFIG_SIGMA is not set
1103
1104#
1052# File systems 1105# File systems
1053# 1106#
1054# CONFIG_EXT2_FS is not set 1107# CONFIG_EXT2_FS is not set
@@ -1057,9 +1110,13 @@ CONFIG_RTC_DRV_BFIN=y
1057# CONFIG_REISERFS_FS is not set 1110# CONFIG_REISERFS_FS is not set
1058# CONFIG_JFS_FS is not set 1111# CONFIG_JFS_FS is not set
1059# CONFIG_FS_POSIX_ACL is not set 1112# CONFIG_FS_POSIX_ACL is not set
1060CONFIG_FILE_LOCKING=y
1061# CONFIG_XFS_FS is not set 1113# CONFIG_XFS_FS is not set
1114# CONFIG_GFS2_FS is not set
1062# CONFIG_OCFS2_FS is not set 1115# CONFIG_OCFS2_FS is not set
1116# CONFIG_BTRFS_FS is not set
1117# CONFIG_NILFS2_FS is not set
1118CONFIG_FILE_LOCKING=y
1119CONFIG_FSNOTIFY=y
1063# CONFIG_DNOTIFY is not set 1120# CONFIG_DNOTIFY is not set
1064CONFIG_INOTIFY=y 1121CONFIG_INOTIFY=y
1065CONFIG_INOTIFY_USER=y 1122CONFIG_INOTIFY_USER=y
@@ -1069,6 +1126,11 @@ CONFIG_INOTIFY_USER=y
1069# CONFIG_FUSE_FS is not set 1126# CONFIG_FUSE_FS is not set
1070 1127
1071# 1128#
1129# Caches
1130#
1131# CONFIG_FSCACHE is not set
1132
1133#
1072# CD-ROM/DVD Filesystems 1134# CD-ROM/DVD Filesystems
1073# 1135#
1074# CONFIG_ISO9660_FS is not set 1136# CONFIG_ISO9660_FS is not set
@@ -1087,13 +1149,9 @@ CONFIG_INOTIFY_USER=y
1087CONFIG_PROC_FS=y 1149CONFIG_PROC_FS=y
1088CONFIG_PROC_SYSCTL=y 1150CONFIG_PROC_SYSCTL=y
1089CONFIG_SYSFS=y 1151CONFIG_SYSFS=y
1090# CONFIG_TMPFS is not set
1091# CONFIG_HUGETLB_PAGE is not set 1152# CONFIG_HUGETLB_PAGE is not set
1092# CONFIG_CONFIGFS_FS is not set 1153# CONFIG_CONFIGFS_FS is not set
1093 1154CONFIG_MISC_FILESYSTEMS=y
1094#
1095# Miscellaneous filesystems
1096#
1097# CONFIG_ADFS_FS is not set 1155# CONFIG_ADFS_FS is not set
1098# CONFIG_AFFS_FS is not set 1156# CONFIG_AFFS_FS is not set
1099# CONFIG_HFS_FS is not set 1157# CONFIG_HFS_FS is not set
@@ -1112,17 +1170,8 @@ CONFIG_JFFS2_ZLIB=y
1112# CONFIG_JFFS2_LZO is not set 1170# CONFIG_JFFS2_LZO is not set
1113CONFIG_JFFS2_RTIME=y 1171CONFIG_JFFS2_RTIME=y
1114# CONFIG_JFFS2_RUBIN is not set 1172# CONFIG_JFFS2_RUBIN is not set
1115CONFIG_YAFFS_FS=m
1116CONFIG_YAFFS_YAFFS1=y
1117# CONFIG_YAFFS_9BYTE_TAGS is not set
1118# CONFIG_YAFFS_DOES_ECC is not set
1119CONFIG_YAFFS_YAFFS2=y
1120CONFIG_YAFFS_AUTO_YAFFS2=y
1121# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
1122# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
1123# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
1124CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
1125# CONFIG_CRAMFS is not set 1173# CONFIG_CRAMFS is not set
1174# CONFIG_SQUASHFS is not set
1126# CONFIG_VXFS_FS is not set 1175# CONFIG_VXFS_FS is not set
1127# CONFIG_MINIX_FS is not set 1176# CONFIG_MINIX_FS is not set
1128# CONFIG_OMFS_FS is not set 1177# CONFIG_OMFS_FS is not set
@@ -1141,7 +1190,6 @@ CONFIG_LOCKD=m
1141CONFIG_LOCKD_V4=y 1190CONFIG_LOCKD_V4=y
1142CONFIG_NFS_COMMON=y 1191CONFIG_NFS_COMMON=y
1143CONFIG_SUNRPC=m 1192CONFIG_SUNRPC=m
1144# CONFIG_SUNRPC_REGISTER_V4 is not set
1145# CONFIG_RPCSEC_GSS_KRB5 is not set 1193# CONFIG_RPCSEC_GSS_KRB5 is not set
1146# CONFIG_RPCSEC_GSS_SPKM3 is not set 1194# CONFIG_RPCSEC_GSS_SPKM3 is not set
1147CONFIG_SMB_FS=m 1195CONFIG_SMB_FS=m
@@ -1206,14 +1254,19 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1206CONFIG_ENABLE_MUST_CHECK=y 1254CONFIG_ENABLE_MUST_CHECK=y
1207CONFIG_FRAME_WARN=1024 1255CONFIG_FRAME_WARN=1024
1208# CONFIG_MAGIC_SYSRQ is not set 1256# CONFIG_MAGIC_SYSRQ is not set
1257# CONFIG_STRIP_ASM_SYMS is not set
1209# CONFIG_UNUSED_SYMBOLS is not set 1258# CONFIG_UNUSED_SYMBOLS is not set
1210CONFIG_DEBUG_FS=y 1259CONFIG_DEBUG_FS=y
1211# CONFIG_HEADERS_CHECK is not set 1260# CONFIG_HEADERS_CHECK is not set
1261CONFIG_DEBUG_SECTION_MISMATCH=y
1212CONFIG_DEBUG_KERNEL=y 1262CONFIG_DEBUG_KERNEL=y
1213CONFIG_DEBUG_SHIRQ=y 1263CONFIG_DEBUG_SHIRQ=y
1214CONFIG_DETECT_SOFTLOCKUP=y 1264CONFIG_DETECT_SOFTLOCKUP=y
1215# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1265# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1216CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1266CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1267CONFIG_DETECT_HUNG_TASK=y
1268# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1269CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1217CONFIG_SCHED_DEBUG=y 1270CONFIG_SCHED_DEBUG=y
1218# CONFIG_SCHEDSTATS is not set 1271# CONFIG_SCHEDSTATS is not set
1219# CONFIG_TIMER_STATS is not set 1272# CONFIG_TIMER_STATS is not set
@@ -1221,31 +1274,39 @@ CONFIG_SCHED_DEBUG=y
1221# CONFIG_DEBUG_SLAB is not set 1274# CONFIG_DEBUG_SLAB is not set
1222# CONFIG_DEBUG_SPINLOCK is not set 1275# CONFIG_DEBUG_SPINLOCK is not set
1223# CONFIG_DEBUG_MUTEXES is not set 1276# CONFIG_DEBUG_MUTEXES is not set
1277# CONFIG_DEBUG_LOCK_ALLOC is not set
1278# CONFIG_PROVE_LOCKING is not set
1279# CONFIG_LOCK_STAT is not set
1224# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1280# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1225# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1281# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1226# CONFIG_DEBUG_KOBJECT is not set 1282# CONFIG_DEBUG_KOBJECT is not set
1227CONFIG_DEBUG_BUGVERBOSE=y 1283CONFIG_DEBUG_BUGVERBOSE=y
1228CONFIG_DEBUG_INFO=y 1284CONFIG_DEBUG_INFO=y
1229# CONFIG_DEBUG_VM is not set 1285# CONFIG_DEBUG_VM is not set
1286# CONFIG_DEBUG_NOMMU_REGIONS is not set
1230# CONFIG_DEBUG_WRITECOUNT is not set 1287# CONFIG_DEBUG_WRITECOUNT is not set
1231# CONFIG_DEBUG_MEMORY_INIT is not set 1288# CONFIG_DEBUG_MEMORY_INIT is not set
1232# CONFIG_DEBUG_LIST is not set 1289# CONFIG_DEBUG_LIST is not set
1233# CONFIG_DEBUG_SG is not set 1290# CONFIG_DEBUG_SG is not set
1291# CONFIG_DEBUG_NOTIFIERS is not set
1292# CONFIG_DEBUG_CREDENTIALS is not set
1234# CONFIG_FRAME_POINTER is not set 1293# CONFIG_FRAME_POINTER is not set
1235# CONFIG_BOOT_PRINTK_DELAY is not set 1294# CONFIG_BOOT_PRINTK_DELAY is not set
1236# CONFIG_RCU_TORTURE_TEST is not set 1295# CONFIG_RCU_TORTURE_TEST is not set
1237# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1296# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1238# CONFIG_BACKTRACE_SELF_TEST is not set 1297# CONFIG_BACKTRACE_SELF_TEST is not set
1239# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1298# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1299# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1240# CONFIG_FAULT_INJECTION is not set 1300# CONFIG_FAULT_INJECTION is not set
1241 1301# CONFIG_PAGE_POISONING is not set
1242# 1302CONFIG_HAVE_FUNCTION_TRACER=y
1243# Tracers 1303CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1244# 1304CONFIG_TRACING_SUPPORT=y
1245# CONFIG_SCHED_TRACER is not set 1305# CONFIG_FTRACE is not set
1246# CONFIG_CONTEXT_SWITCH_TRACER is not set 1306# CONFIG_BRANCH_PROFILE_NONE is not set
1247# CONFIG_BOOT_TRACER is not set 1307# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1248# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1308# CONFIG_PROFILE_ALL_BRANCHES is not set
1309# CONFIG_DYNAMIC_DEBUG is not set
1249# CONFIG_SAMPLES is not set 1310# CONFIG_SAMPLES is not set
1250CONFIG_HAVE_ARCH_KGDB=y 1311CONFIG_HAVE_ARCH_KGDB=y
1251# CONFIG_KGDB is not set 1312# CONFIG_KGDB is not set
@@ -1270,6 +1331,7 @@ CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE=y
1270CONFIG_EARLY_PRINTK=y 1331CONFIG_EARLY_PRINTK=y
1271CONFIG_CPLB_INFO=y 1332CONFIG_CPLB_INFO=y
1272CONFIG_ACCESS_CHECK=y 1333CONFIG_ACCESS_CHECK=y
1334# CONFIG_BFIN_ISRAM_SELF_TEST is not set
1273 1335
1274# 1336#
1275# Security options 1337# Security options
@@ -1278,14 +1340,14 @@ CONFIG_ACCESS_CHECK=y
1278CONFIG_SECURITY=y 1340CONFIG_SECURITY=y
1279# CONFIG_SECURITYFS is not set 1341# CONFIG_SECURITYFS is not set
1280# CONFIG_SECURITY_NETWORK is not set 1342# CONFIG_SECURITY_NETWORK is not set
1343# CONFIG_SECURITY_PATH is not set
1281# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1344# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1282CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1345# CONFIG_SECURITY_TOMOYO is not set
1283CONFIG_CRYPTO=y 1346CONFIG_CRYPTO=y
1284 1347
1285# 1348#
1286# Crypto core or helper 1349# Crypto core or helper
1287# 1350#
1288# CONFIG_CRYPTO_FIPS is not set
1289# CONFIG_CRYPTO_MANAGER is not set 1351# CONFIG_CRYPTO_MANAGER is not set
1290# CONFIG_CRYPTO_MANAGER2 is not set 1352# CONFIG_CRYPTO_MANAGER2 is not set
1291# CONFIG_CRYPTO_GF128MUL is not set 1353# CONFIG_CRYPTO_GF128MUL is not set
@@ -1317,11 +1379,13 @@ CONFIG_CRYPTO=y
1317# 1379#
1318# CONFIG_CRYPTO_HMAC is not set 1380# CONFIG_CRYPTO_HMAC is not set
1319# CONFIG_CRYPTO_XCBC is not set 1381# CONFIG_CRYPTO_XCBC is not set
1382# CONFIG_CRYPTO_VMAC is not set
1320 1383
1321# 1384#
1322# Digest 1385# Digest
1323# 1386#
1324# CONFIG_CRYPTO_CRC32C is not set 1387# CONFIG_CRYPTO_CRC32C is not set
1388# CONFIG_CRYPTO_GHASH is not set
1325# CONFIG_CRYPTO_MD4 is not set 1389# CONFIG_CRYPTO_MD4 is not set
1326# CONFIG_CRYPTO_MD5 is not set 1390# CONFIG_CRYPTO_MD5 is not set
1327# CONFIG_CRYPTO_MICHAEL_MIC is not set 1391# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1358,6 +1422,7 @@ CONFIG_CRYPTO=y
1358# Compression 1422# Compression
1359# 1423#
1360# CONFIG_CRYPTO_DEFLATE is not set 1424# CONFIG_CRYPTO_DEFLATE is not set
1425# CONFIG_CRYPTO_ZLIB is not set
1361# CONFIG_CRYPTO_LZO is not set 1426# CONFIG_CRYPTO_LZO is not set
1362 1427
1363# 1428#
@@ -1365,11 +1430,13 @@ CONFIG_CRYPTO=y
1365# 1430#
1366# CONFIG_CRYPTO_ANSI_CPRNG is not set 1431# CONFIG_CRYPTO_ANSI_CPRNG is not set
1367CONFIG_CRYPTO_HW=y 1432CONFIG_CRYPTO_HW=y
1433# CONFIG_BINARY_PRINTF is not set
1368 1434
1369# 1435#
1370# Library routines 1436# Library routines
1371# 1437#
1372CONFIG_BITREVERSE=y 1438CONFIG_BITREVERSE=y
1439CONFIG_GENERIC_FIND_LAST_BIT=y
1373CONFIG_CRC_CCITT=m 1440CONFIG_CRC_CCITT=m
1374# CONFIG_CRC16 is not set 1441# CONFIG_CRC16 is not set
1375# CONFIG_CRC_T10DIF is not set 1442# CONFIG_CRC_T10DIF is not set
@@ -1379,6 +1446,8 @@ CONFIG_CRC32=y
1379# CONFIG_LIBCRC32C is not set 1446# CONFIG_LIBCRC32C is not set
1380CONFIG_ZLIB_INFLATE=y 1447CONFIG_ZLIB_INFLATE=y
1381CONFIG_ZLIB_DEFLATE=m 1448CONFIG_ZLIB_DEFLATE=m
1449CONFIG_DECOMPRESS_GZIP=y
1382CONFIG_HAS_IOMEM=y 1450CONFIG_HAS_IOMEM=y
1383CONFIG_HAS_IOPORT=y 1451CONFIG_HAS_IOPORT=y
1384CONFIG_HAS_DMA=y 1452CONFIG_HAS_DMA=y
1453CONFIG_NLATTR=y
diff --git a/arch/blackfin/configs/BF537-STAMP_defconfig b/arch/blackfin/configs/BF537-STAMP_defconfig
index 2908595b67c5..7596cf7673f1 100644
--- a/arch/blackfin/configs/BF537-STAMP_defconfig
+++ b/arch/blackfin/configs/BF537-STAMP_defconfig
@@ -1,22 +1,27 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28.10 3# Linux kernel version: 2.6.32.2
4# Thu May 21 05:50:01 2009
5# 4#
6# CONFIG_MMU is not set 5# CONFIG_MMU is not set
7# CONFIG_FPU is not set 6# CONFIG_FPU is not set
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 7CONFIG_RWSEM_GENERIC_SPINLOCK=y
9# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
10CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
10CONFIG_GENERIC_CSUM=y
11CONFIG_GENERIC_BUG=y
11CONFIG_ZONE_DMA=y 12CONFIG_ZONE_DMA=y
12CONFIG_GENERIC_FIND_NEXT_BIT=y 13CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
16CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
17CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
18CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_TRACE_IRQFLAGS_SUPPORT=y
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
24CONFIG_CONSTRUCTORS=y
20 25
21# 26#
22# General setup 27# General setup
@@ -26,22 +31,41 @@ CONFIG_BROKEN_ON_SMP=y
26CONFIG_INIT_ENV_ARG_LIMIT=32 31CONFIG_INIT_ENV_ARG_LIMIT=32
27CONFIG_LOCALVERSION="" 32CONFIG_LOCALVERSION=""
28CONFIG_LOCALVERSION_AUTO=y 33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_HAVE_KERNEL_GZIP=y
35CONFIG_HAVE_KERNEL_BZIP2=y
36CONFIG_HAVE_KERNEL_LZMA=y
37CONFIG_KERNEL_GZIP=y
38# CONFIG_KERNEL_BZIP2 is not set
39# CONFIG_KERNEL_LZMA is not set
29CONFIG_SYSVIPC=y 40CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 41CONFIG_SYSVIPC_SYSCTL=y
31# CONFIG_POSIX_MQUEUE is not set 42# CONFIG_POSIX_MQUEUE is not set
32# CONFIG_BSD_PROCESS_ACCT is not set 43# CONFIG_BSD_PROCESS_ACCT is not set
33# CONFIG_TASKSTATS is not set 44# CONFIG_TASKSTATS is not set
34# CONFIG_AUDIT is not set 45# CONFIG_AUDIT is not set
46
47#
48# RCU Subsystem
49#
50CONFIG_TREE_RCU=y
51# CONFIG_TREE_PREEMPT_RCU is not set
52# CONFIG_RCU_TRACE is not set
53CONFIG_RCU_FANOUT=32
54# CONFIG_RCU_FANOUT_EXACT is not set
55# CONFIG_TREE_RCU_TRACE is not set
35CONFIG_IKCONFIG=y 56CONFIG_IKCONFIG=y
36CONFIG_IKCONFIG_PROC=y 57CONFIG_IKCONFIG_PROC=y
37CONFIG_LOG_BUF_SHIFT=14 58CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 59# CONFIG_GROUP_SCHED is not set
60# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 61# CONFIG_SYSFS_DEPRECATED_V2 is not set
41# CONFIG_RELAY is not set 62# CONFIG_RELAY is not set
42# CONFIG_NAMESPACES is not set 63# CONFIG_NAMESPACES is not set
43CONFIG_BLK_DEV_INITRD=y 64CONFIG_BLK_DEV_INITRD=y
44CONFIG_INITRAMFS_SOURCE="" 65CONFIG_INITRAMFS_SOURCE=""
66CONFIG_RD_GZIP=y
67# CONFIG_RD_BZIP2 is not set
68# CONFIG_RD_LZMA is not set
45# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 69# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
46CONFIG_SYSCTL=y 70CONFIG_SYSCTL=y
47CONFIG_ANON_INODES=y 71CONFIG_ANON_INODES=y
@@ -62,6 +86,10 @@ CONFIG_EPOLL=y
62# CONFIG_TIMERFD is not set 86# CONFIG_TIMERFD is not set
63# CONFIG_EVENTFD is not set 87# CONFIG_EVENTFD is not set
64# CONFIG_AIO is not set 88# CONFIG_AIO is not set
89
90#
91# Kernel Performance Events And Counters
92#
65CONFIG_VM_EVENT_COUNTERS=y 93CONFIG_VM_EVENT_COUNTERS=y
66CONFIG_COMPAT_BRK=y 94CONFIG_COMPAT_BRK=y
67CONFIG_SLAB=y 95CONFIG_SLAB=y
@@ -69,11 +97,15 @@ CONFIG_SLAB=y
69# CONFIG_SLOB is not set 97# CONFIG_SLOB is not set
70CONFIG_MMAP_ALLOW_UNINITIALIZED=y 98CONFIG_MMAP_ALLOW_UNINITIALIZED=y
71# CONFIG_PROFILING is not set 99# CONFIG_PROFILING is not set
72# CONFIG_MARKERS is not set
73CONFIG_HAVE_OPROFILE=y 100CONFIG_HAVE_OPROFILE=y
101
102#
103# GCOV-based kernel profiling
104#
105# CONFIG_GCOV_KERNEL is not set
106# CONFIG_SLOW_WORK is not set
74# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 107# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
75CONFIG_SLABINFO=y 108CONFIG_SLABINFO=y
76CONFIG_TINY_SHMEM=y
77CONFIG_BASE_SMALL=0 109CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y 110CONFIG_MODULES=y
79# CONFIG_MODULE_FORCE_LOAD is not set 111# CONFIG_MODULE_FORCE_LOAD is not set
@@ -81,11 +113,8 @@ CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODULE_FORCE_UNLOAD is not set 113# CONFIG_MODULE_FORCE_UNLOAD is not set
82# CONFIG_MODVERSIONS is not set 114# CONFIG_MODVERSIONS is not set
83# CONFIG_MODULE_SRCVERSION_ALL is not set 115# CONFIG_MODULE_SRCVERSION_ALL is not set
84CONFIG_KMOD=y
85CONFIG_BLOCK=y 116CONFIG_BLOCK=y
86# CONFIG_LBD is not set 117# CONFIG_LBDAF is not set
87# CONFIG_BLK_DEV_IO_TRACE is not set
88# CONFIG_LSF is not set
89# CONFIG_BLK_DEV_BSG is not set 118# CONFIG_BLK_DEV_BSG is not set
90# CONFIG_BLK_DEV_INTEGRITY is not set 119# CONFIG_BLK_DEV_INTEGRITY is not set
91 120
@@ -101,7 +130,6 @@ CONFIG_DEFAULT_AS=y
101# CONFIG_DEFAULT_CFQ is not set 130# CONFIG_DEFAULT_CFQ is not set
102# CONFIG_DEFAULT_NOOP is not set 131# CONFIG_DEFAULT_NOOP is not set
103CONFIG_DEFAULT_IOSCHED="anticipatory" 132CONFIG_DEFAULT_IOSCHED="anticipatory"
104CONFIG_CLASSIC_RCU=y
105# CONFIG_PREEMPT_NONE is not set 133# CONFIG_PREEMPT_NONE is not set
106CONFIG_PREEMPT_VOLUNTARY=y 134CONFIG_PREEMPT_VOLUNTARY=y
107# CONFIG_PREEMPT is not set 135# CONFIG_PREEMPT is not set
@@ -132,15 +160,15 @@ CONFIG_FREEZER=y
132CONFIG_BF537=y 160CONFIG_BF537=y
133# CONFIG_BF538 is not set 161# CONFIG_BF538 is not set
134# CONFIG_BF539 is not set 162# CONFIG_BF539 is not set
135# CONFIG_BF542 is not set 163# CONFIG_BF542_std is not set
136# CONFIG_BF542M is not set 164# CONFIG_BF542M is not set
137# CONFIG_BF544 is not set 165# CONFIG_BF544_std is not set
138# CONFIG_BF544M is not set 166# CONFIG_BF544M is not set
139# CONFIG_BF547 is not set 167# CONFIG_BF547_std is not set
140# CONFIG_BF547M is not set 168# CONFIG_BF547M is not set
141# CONFIG_BF548 is not set 169# CONFIG_BF548_std is not set
142# CONFIG_BF548M is not set 170# CONFIG_BF548M is not set
143# CONFIG_BF549 is not set 171# CONFIG_BF549_std is not set
144# CONFIG_BF549M is not set 172# CONFIG_BF549M is not set
145# CONFIG_BF561 is not set 173# CONFIG_BF561 is not set
146CONFIG_BF_REV_MIN=2 174CONFIG_BF_REV_MIN=2
@@ -184,7 +212,8 @@ CONFIG_IRQ_MEM_DMA1=13
184CONFIG_IRQ_WATCH=13 212CONFIG_IRQ_WATCH=13
185CONFIG_IRQ_SPI=10 213CONFIG_IRQ_SPI=10
186CONFIG_BFIN537_STAMP=y 214CONFIG_BFIN537_STAMP=y
187# CONFIG_BFIN537_BLUETECHNIX_CM is not set 215# CONFIG_BFIN537_BLUETECHNIX_CM_E is not set
216# CONFIG_BFIN537_BLUETECHNIX_CM_U is not set
188# CONFIG_BFIN537_BLUETECHNIX_TCM is not set 217# CONFIG_BFIN537_BLUETECHNIX_TCM is not set
189# CONFIG_PNAV10 is not set 218# CONFIG_PNAV10 is not set
190# CONFIG_CAMSIG_MINOTAUR is not set 219# CONFIG_CAMSIG_MINOTAUR is not set
@@ -235,7 +264,7 @@ CONFIG_GENERIC_TIME=y
235CONFIG_GENERIC_CLOCKEVENTS=y 264CONFIG_GENERIC_CLOCKEVENTS=y
236# CONFIG_TICKSOURCE_GPTMR0 is not set 265# CONFIG_TICKSOURCE_GPTMR0 is not set
237CONFIG_TICKSOURCE_CORETMR=y 266CONFIG_TICKSOURCE_CORETMR=y
238# CONFIG_CYCLES_CLOCKSOURCE is not set 267CONFIG_CYCLES_CLOCKSOURCE=y
239# CONFIG_GPTMR0_CLOCKSOURCE is not set 268# CONFIG_GPTMR0_CLOCKSOURCE is not set
240CONFIG_TICK_ONESHOT=y 269CONFIG_TICK_ONESHOT=y
241# CONFIG_NO_HZ is not set 270# CONFIG_NO_HZ is not set
@@ -287,7 +316,6 @@ CONFIG_FLATMEM=y
287CONFIG_FLAT_NODE_MEM_MAP=y 316CONFIG_FLAT_NODE_MEM_MAP=y
288CONFIG_PAGEFLAGS_EXTENDED=y 317CONFIG_PAGEFLAGS_EXTENDED=y
289CONFIG_SPLIT_PTLOCK_CPUS=4 318CONFIG_SPLIT_PTLOCK_CPUS=4
290# CONFIG_RESOURCES_64BIT is not set
291# CONFIG_PHYS_ADDR_T_64BIT is not set 319# CONFIG_PHYS_ADDR_T_64BIT is not set
292CONFIG_ZONE_DMA_FLAG=1 320CONFIG_ZONE_DMA_FLAG=1
293CONFIG_VIRT_TO_BUS=y 321CONFIG_VIRT_TO_BUS=y
@@ -296,16 +324,18 @@ CONFIG_BFIN_GPTIMERS=m
296# CONFIG_DMA_UNCACHED_4M is not set 324# CONFIG_DMA_UNCACHED_4M is not set
297# CONFIG_DMA_UNCACHED_2M is not set 325# CONFIG_DMA_UNCACHED_2M is not set
298CONFIG_DMA_UNCACHED_1M=y 326CONFIG_DMA_UNCACHED_1M=y
327# CONFIG_DMA_UNCACHED_512K is not set
328# CONFIG_DMA_UNCACHED_256K is not set
329# CONFIG_DMA_UNCACHED_128K is not set
299# CONFIG_DMA_UNCACHED_NONE is not set 330# CONFIG_DMA_UNCACHED_NONE is not set
300 331
301# 332#
302# Cache Support 333# Cache Support
303# 334#
304CONFIG_BFIN_ICACHE=y 335CONFIG_BFIN_ICACHE=y
305# CONFIG_BFIN_ICACHE_LOCK is not set 336CONFIG_BFIN_EXTMEM_ICACHEABLE=y
306CONFIG_BFIN_DCACHE=y 337CONFIG_BFIN_DCACHE=y
307# CONFIG_BFIN_DCACHE_BANKA is not set 338# CONFIG_BFIN_DCACHE_BANKA is not set
308CONFIG_BFIN_EXTMEM_ICACHEABLE=y
309CONFIG_BFIN_EXTMEM_DCACHEABLE=y 339CONFIG_BFIN_EXTMEM_DCACHEABLE=y
310CONFIG_BFIN_EXTMEM_WRITEBACK=y 340CONFIG_BFIN_EXTMEM_WRITEBACK=y
311# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 341# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
@@ -316,7 +346,7 @@ CONFIG_BFIN_EXTMEM_WRITEBACK=y
316# CONFIG_MPU is not set 346# CONFIG_MPU is not set
317 347
318# 348#
319# Asynchonous Memory Configuration 349# Asynchronous Memory Configuration
320# 350#
321 351
322# 352#
@@ -362,6 +392,7 @@ CONFIG_PM=y
362CONFIG_PM_SLEEP=y 392CONFIG_PM_SLEEP=y
363CONFIG_SUSPEND=y 393CONFIG_SUSPEND=y
364CONFIG_SUSPEND_FREEZER=y 394CONFIG_SUSPEND_FREEZER=y
395# CONFIG_PM_RUNTIME is not set
365CONFIG_ARCH_SUSPEND_POSSIBLE=y 396CONFIG_ARCH_SUSPEND_POSSIBLE=y
366CONFIG_PM_BFIN_SLEEP_DEEPER=y 397CONFIG_PM_BFIN_SLEEP_DEEPER=y
367# CONFIG_PM_BFIN_SLEEP is not set 398# CONFIG_PM_BFIN_SLEEP is not set
@@ -384,11 +415,6 @@ CONFIG_NET=y
384CONFIG_PACKET=y 415CONFIG_PACKET=y
385# CONFIG_PACKET_MMAP is not set 416# CONFIG_PACKET_MMAP is not set
386CONFIG_UNIX=y 417CONFIG_UNIX=y
387CONFIG_XFRM=y
388# CONFIG_XFRM_USER is not set
389# CONFIG_XFRM_SUB_POLICY is not set
390# CONFIG_XFRM_MIGRATE is not set
391# CONFIG_XFRM_STATISTICS is not set
392# CONFIG_NET_KEY is not set 418# CONFIG_NET_KEY is not set
393CONFIG_INET=y 419CONFIG_INET=y
394# CONFIG_IP_MULTICAST is not set 420# CONFIG_IP_MULTICAST is not set
@@ -412,7 +438,6 @@ CONFIG_IP_PNP=y
412# CONFIG_INET_XFRM_MODE_BEET is not set 438# CONFIG_INET_XFRM_MODE_BEET is not set
413# CONFIG_INET_LRO is not set 439# CONFIG_INET_LRO is not set
414# CONFIG_INET_DIAG is not set 440# CONFIG_INET_DIAG is not set
415CONFIG_INET_TCP_DIAG=y
416# CONFIG_TCP_CONG_ADVANCED is not set 441# CONFIG_TCP_CONG_ADVANCED is not set
417CONFIG_TCP_CONG_CUBIC=y 442CONFIG_TCP_CONG_CUBIC=y
418CONFIG_DEFAULT_TCP_CONG="cubic" 443CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -423,6 +448,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
423# CONFIG_NETFILTER is not set 448# CONFIG_NETFILTER is not set
424# CONFIG_IP_DCCP is not set 449# CONFIG_IP_DCCP is not set
425# CONFIG_IP_SCTP is not set 450# CONFIG_IP_SCTP is not set
451# CONFIG_RDS is not set
426# CONFIG_TIPC is not set 452# CONFIG_TIPC is not set
427# CONFIG_ATM is not set 453# CONFIG_ATM is not set
428# CONFIG_BRIDGE is not set 454# CONFIG_BRIDGE is not set
@@ -436,14 +462,34 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
436# CONFIG_LAPB is not set 462# CONFIG_LAPB is not set
437# CONFIG_ECONET is not set 463# CONFIG_ECONET is not set
438# CONFIG_WAN_ROUTER is not set 464# CONFIG_WAN_ROUTER is not set
465# CONFIG_PHONET is not set
466# CONFIG_IEEE802154 is not set
439# CONFIG_NET_SCHED is not set 467# CONFIG_NET_SCHED is not set
468# CONFIG_DCB is not set
440 469
441# 470#
442# Network testing 471# Network testing
443# 472#
444# CONFIG_NET_PKTGEN is not set 473# CONFIG_NET_PKTGEN is not set
445# CONFIG_HAMRADIO is not set 474# CONFIG_HAMRADIO is not set
446# CONFIG_CAN is not set 475CONFIG_CAN=m
476CONFIG_CAN_RAW=m
477CONFIG_CAN_BCM=m
478
479#
480# CAN Device Drivers
481#
482# CONFIG_CAN_VCAN is not set
483CONFIG_CAN_DEV=m
484# CONFIG_CAN_CALC_BITTIMING is not set
485CONFIG_CAN_BFIN=m
486# CONFIG_CAN_SJA1000 is not set
487
488#
489# CAN USB interfaces
490#
491# CONFIG_CAN_EMS_USB is not set
492# CONFIG_CAN_DEBUG_DEVICES is not set
447CONFIG_IRDA=m 493CONFIG_IRDA=m
448 494
449# 495#
@@ -483,13 +529,8 @@ CONFIG_SIR_BFIN_DMA=y
483# 529#
484# CONFIG_BT is not set 530# CONFIG_BT is not set
485# CONFIG_AF_RXRPC is not set 531# CONFIG_AF_RXRPC is not set
486# CONFIG_PHONET is not set 532# CONFIG_WIRELESS is not set
487CONFIG_WIRELESS=y 533# CONFIG_WIMAX is not set
488# CONFIG_CFG80211 is not set
489CONFIG_WIRELESS_OLD_REGULATORY=y
490# CONFIG_WIRELESS_EXT is not set
491# CONFIG_MAC80211 is not set
492# CONFIG_IEEE80211 is not set
493# CONFIG_RFKILL is not set 534# CONFIG_RFKILL is not set
494# CONFIG_NET_9P is not set 535# CONFIG_NET_9P is not set
495 536
@@ -510,6 +551,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
510# CONFIG_CONNECTOR is not set 551# CONFIG_CONNECTOR is not set
511CONFIG_MTD=y 552CONFIG_MTD=y
512# CONFIG_MTD_DEBUG is not set 553# CONFIG_MTD_DEBUG is not set
554# CONFIG_MTD_TESTS is not set
513# CONFIG_MTD_CONCAT is not set 555# CONFIG_MTD_CONCAT is not set
514CONFIG_MTD_PARTITIONS=y 556CONFIG_MTD_PARTITIONS=y
515# CONFIG_MTD_REDBOOT_PARTS is not set 557# CONFIG_MTD_REDBOOT_PARTS is not set
@@ -568,6 +610,7 @@ CONFIG_MTD_PHYSMAP=m
568# 610#
569# CONFIG_MTD_DATAFLASH is not set 611# CONFIG_MTD_DATAFLASH is not set
570# CONFIG_MTD_M25P80 is not set 612# CONFIG_MTD_M25P80 is not set
613# CONFIG_MTD_SST25L is not set
571# CONFIG_MTD_SLRAM is not set 614# CONFIG_MTD_SLRAM is not set
572# CONFIG_MTD_PHRAM is not set 615# CONFIG_MTD_PHRAM is not set
573# CONFIG_MTD_MTDRAM is not set 616# CONFIG_MTD_MTDRAM is not set
@@ -583,6 +626,11 @@ CONFIG_MTD_PHYSMAP=m
583# CONFIG_MTD_ONENAND is not set 626# CONFIG_MTD_ONENAND is not set
584 627
585# 628#
629# LPDDR flash memory drivers
630#
631# CONFIG_MTD_LPDDR is not set
632
633#
586# UBI - Unsorted block images 634# UBI - Unsorted block images
587# 635#
588# CONFIG_MTD_UBI is not set 636# CONFIG_MTD_UBI is not set
@@ -599,10 +647,20 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
599# CONFIG_ATA_OVER_ETH is not set 647# CONFIG_ATA_OVER_ETH is not set
600# CONFIG_BLK_DEV_HD is not set 648# CONFIG_BLK_DEV_HD is not set
601CONFIG_MISC_DEVICES=y 649CONFIG_MISC_DEVICES=y
602# CONFIG_EEPROM_93CX6 is not set 650# CONFIG_AD525X_DPOT is not set
603# CONFIG_ICS932S401 is not set 651# CONFIG_ICS932S401 is not set
604# CONFIG_ENCLOSURE_SERVICES is not set 652# CONFIG_ENCLOSURE_SERVICES is not set
653# CONFIG_ISL29003 is not set
605# CONFIG_C2PORT is not set 654# CONFIG_C2PORT is not set
655
656#
657# EEPROM support
658#
659# CONFIG_EEPROM_AT24 is not set
660# CONFIG_EEPROM_AT25 is not set
661# CONFIG_EEPROM_LEGACY is not set
662# CONFIG_EEPROM_MAX6875 is not set
663# CONFIG_EEPROM_93CX6 is not set
606CONFIG_HAVE_IDE=y 664CONFIG_HAVE_IDE=y
607# CONFIG_IDE is not set 665# CONFIG_IDE is not set
608 666
@@ -637,6 +695,9 @@ CONFIG_SMSC_PHY=y
637# CONFIG_BROADCOM_PHY is not set 695# CONFIG_BROADCOM_PHY is not set
638# CONFIG_ICPLUS_PHY is not set 696# CONFIG_ICPLUS_PHY is not set
639# CONFIG_REALTEK_PHY is not set 697# CONFIG_REALTEK_PHY is not set
698# CONFIG_NATIONAL_PHY is not set
699# CONFIG_STE10XP is not set
700# CONFIG_LSI_ET1011C_PHY is not set
640# CONFIG_FIXED_PHY is not set 701# CONFIG_FIXED_PHY is not set
641# CONFIG_MDIO_BITBANG is not set 702# CONFIG_MDIO_BITBANG is not set
642CONFIG_NET_ETHERNET=y 703CONFIG_NET_ETHERNET=y
@@ -647,9 +708,12 @@ CONFIG_BFIN_TX_DESC_NUM=10
647CONFIG_BFIN_RX_DESC_NUM=20 708CONFIG_BFIN_RX_DESC_NUM=20
648# CONFIG_BFIN_MAC_RMII is not set 709# CONFIG_BFIN_MAC_RMII is not set
649# CONFIG_SMC91X is not set 710# CONFIG_SMC91X is not set
650# CONFIG_SMSC911X is not set
651# CONFIG_DM9000 is not set 711# CONFIG_DM9000 is not set
652# CONFIG_ENC28J60 is not set 712# CONFIG_ENC28J60 is not set
713# CONFIG_ETHOC is not set
714# CONFIG_SMSC911X is not set
715# CONFIG_DNET is not set
716# CONFIG_ADF702X is not set
653# CONFIG_IBM_NEW_EMAC_ZMII is not set 717# CONFIG_IBM_NEW_EMAC_ZMII is not set
654# CONFIG_IBM_NEW_EMAC_RGMII is not set 718# CONFIG_IBM_NEW_EMAC_RGMII is not set
655# CONFIG_IBM_NEW_EMAC_TAH is not set 719# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -658,15 +722,16 @@ CONFIG_BFIN_RX_DESC_NUM=20
658# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 722# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
659# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 723# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
660# CONFIG_B44 is not set 724# CONFIG_B44 is not set
725# CONFIG_KS8842 is not set
726# CONFIG_KS8851 is not set
727# CONFIG_KS8851_MLL is not set
661# CONFIG_NETDEV_1000 is not set 728# CONFIG_NETDEV_1000 is not set
662# CONFIG_NETDEV_10000 is not set 729# CONFIG_NETDEV_10000 is not set
730# CONFIG_WLAN is not set
663 731
664# 732#
665# Wireless LAN 733# Enable WiMAX (Networking options) to see the WiMAX drivers
666# 734#
667# CONFIG_WLAN_PRE80211 is not set
668# CONFIG_WLAN_80211 is not set
669# CONFIG_IWLWIFI_LEDS is not set
670# CONFIG_WAN is not set 735# CONFIG_WAN is not set
671# CONFIG_PPP is not set 736# CONFIG_PPP is not set
672# CONFIG_SLIP is not set 737# CONFIG_SLIP is not set
@@ -701,7 +766,10 @@ CONFIG_INPUT_EVDEV=m
701# CONFIG_INPUT_TOUCHSCREEN is not set 766# CONFIG_INPUT_TOUCHSCREEN is not set
702CONFIG_INPUT_MISC=y 767CONFIG_INPUT_MISC=y
703# CONFIG_INPUT_UINPUT is not set 768# CONFIG_INPUT_UINPUT is not set
704CONFIG_CONFIG_INPUT_PCF8574=m 769# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
770# CONFIG_INPUT_AD714X is not set
771# CONFIG_INPUT_ADXL34X is not set
772# CONFIG_INPUT_PCF8574 is not set
705 773
706# 774#
707# Hardware I/O ports 775# Hardware I/O ports
@@ -712,16 +780,13 @@ CONFIG_CONFIG_INPUT_PCF8574=m
712# 780#
713# Character devices 781# Character devices
714# 782#
715# CONFIG_AD9960 is not set
716CONFIG_BFIN_DMA_INTERFACE=m 783CONFIG_BFIN_DMA_INTERFACE=m
717# CONFIG_BFIN_PPI is not set 784# CONFIG_BFIN_PPI is not set
718# CONFIG_BFIN_PPIFCD is not set 785# CONFIG_BFIN_PPIFCD is not set
719# CONFIG_BFIN_SIMPLE_TIMER is not set 786# CONFIG_BFIN_SIMPLE_TIMER is not set
720# CONFIG_BFIN_SPI_ADC is not set 787# CONFIG_BFIN_SPI_ADC is not set
721CONFIG_BFIN_SPORT=m 788CONFIG_BFIN_SPORT=m
722# CONFIG_BFIN_TIMER_LATENCY is not set
723# CONFIG_BFIN_TWI_LCD is not set 789# CONFIG_BFIN_TWI_LCD is not set
724CONFIG_SIMPLE_GPIO=m
725# CONFIG_VT is not set 790# CONFIG_VT is not set
726# CONFIG_DEVKMEM is not set 791# CONFIG_DEVKMEM is not set
727CONFIG_BFIN_JTAG_COMM=m 792CONFIG_BFIN_JTAG_COMM=m
@@ -735,6 +800,7 @@ CONFIG_BFIN_JTAG_COMM=m
735# 800#
736# Non-8250 serial port support 801# Non-8250 serial port support
737# 802#
803# CONFIG_SERIAL_MAX3100 is not set
738CONFIG_SERIAL_BFIN=y 804CONFIG_SERIAL_BFIN=y
739CONFIG_SERIAL_BFIN_CONSOLE=y 805CONFIG_SERIAL_BFIN_CONSOLE=y
740CONFIG_SERIAL_BFIN_DMA=y 806CONFIG_SERIAL_BFIN_DMA=y
@@ -746,17 +812,8 @@ CONFIG_SERIAL_CORE=y
746CONFIG_SERIAL_CORE_CONSOLE=y 812CONFIG_SERIAL_CORE_CONSOLE=y
747# CONFIG_SERIAL_BFIN_SPORT is not set 813# CONFIG_SERIAL_BFIN_SPORT is not set
748CONFIG_UNIX98_PTYS=y 814CONFIG_UNIX98_PTYS=y
815# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
749# CONFIG_LEGACY_PTYS is not set 816# CONFIG_LEGACY_PTYS is not set
750
751#
752# CAN, the car bus and industrial fieldbus
753#
754CONFIG_CAN4LINUX=y
755
756#
757# linux embedded drivers
758#
759CONFIG_CAN_BLACKFIN=m
760# CONFIG_IPMI_HANDLER is not set 817# CONFIG_IPMI_HANDLER is not set
761# CONFIG_HW_RANDOM is not set 818# CONFIG_HW_RANDOM is not set
762# CONFIG_R3964 is not set 819# CONFIG_R3964 is not set
@@ -764,6 +821,7 @@ CONFIG_CAN_BLACKFIN=m
764# CONFIG_TCG_TPM is not set 821# CONFIG_TCG_TPM is not set
765CONFIG_I2C=m 822CONFIG_I2C=m
766CONFIG_I2C_BOARDINFO=y 823CONFIG_I2C_BOARDINFO=y
824CONFIG_I2C_COMPAT=y
767CONFIG_I2C_CHARDEV=m 825CONFIG_I2C_CHARDEV=m
768CONFIG_I2C_HELPER_AUTO=y 826CONFIG_I2C_HELPER_AUTO=y
769 827
@@ -796,14 +854,6 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
796# Miscellaneous I2C Chip support 854# Miscellaneous I2C Chip support
797# 855#
798# CONFIG_DS1682 is not set 856# CONFIG_DS1682 is not set
799# CONFIG_EEPROM_AT24 is not set
800CONFIG_SENSORS_AD5252=m
801# CONFIG_EEPROM_LEGACY is not set
802# CONFIG_SENSORS_PCF8574 is not set
803# CONFIG_PCF8575 is not set
804# CONFIG_SENSORS_PCA9539 is not set
805# CONFIG_SENSORS_PCF8591 is not set
806# CONFIG_SENSORS_MAX6875 is not set
807# CONFIG_SENSORS_TSL2550 is not set 857# CONFIG_SENSORS_TSL2550 is not set
808# CONFIG_I2C_DEBUG_CORE is not set 858# CONFIG_I2C_DEBUG_CORE is not set
809# CONFIG_I2C_DEBUG_ALGO is not set 859# CONFIG_I2C_DEBUG_ALGO is not set
@@ -820,13 +870,18 @@ CONFIG_SPI_BFIN=y
820# CONFIG_SPI_BFIN_LOCK is not set 870# CONFIG_SPI_BFIN_LOCK is not set
821# CONFIG_SPI_BFIN_SPORT is not set 871# CONFIG_SPI_BFIN_SPORT is not set
822# CONFIG_SPI_BITBANG is not set 872# CONFIG_SPI_BITBANG is not set
873# CONFIG_SPI_GPIO is not set
823 874
824# 875#
825# SPI Protocol Masters 876# SPI Protocol Masters
826# 877#
827# CONFIG_EEPROM_AT25 is not set
828# CONFIG_SPI_SPIDEV is not set 878# CONFIG_SPI_SPIDEV is not set
829# CONFIG_SPI_TLE62X0 is not set 879# CONFIG_SPI_TLE62X0 is not set
880
881#
882# PPS support
883#
884# CONFIG_PPS is not set
830CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 885CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
831CONFIG_GPIOLIB=y 886CONFIG_GPIOLIB=y
832# CONFIG_DEBUG_GPIO is not set 887# CONFIG_DEBUG_GPIO is not set
@@ -842,6 +897,7 @@ CONFIG_GPIO_SYSFS=y
842# CONFIG_GPIO_MAX732X is not set 897# CONFIG_GPIO_MAX732X is not set
843# CONFIG_GPIO_PCA953X is not set 898# CONFIG_GPIO_PCA953X is not set
844# CONFIG_GPIO_PCF857X is not set 899# CONFIG_GPIO_PCF857X is not set
900# CONFIG_GPIO_ADP5588 is not set
845 901
846# 902#
847# PCI GPIO expanders: 903# PCI GPIO expanders:
@@ -852,11 +908,15 @@ CONFIG_GPIO_SYSFS=y
852# 908#
853# CONFIG_GPIO_MAX7301 is not set 909# CONFIG_GPIO_MAX7301 is not set
854# CONFIG_GPIO_MCP23S08 is not set 910# CONFIG_GPIO_MCP23S08 is not set
911# CONFIG_GPIO_MC33880 is not set
912
913#
914# AC97 GPIO expanders:
915#
855# CONFIG_W1 is not set 916# CONFIG_W1 is not set
856# CONFIG_POWER_SUPPLY is not set 917# CONFIG_POWER_SUPPLY is not set
857# CONFIG_HWMON is not set 918# CONFIG_HWMON is not set
858# CONFIG_THERMAL is not set 919# CONFIG_THERMAL is not set
859# CONFIG_THERMAL_HWMON is not set
860CONFIG_WATCHDOG=y 920CONFIG_WATCHDOG=y
861# CONFIG_WATCHDOG_NOWAYOUT is not set 921# CONFIG_WATCHDOG_NOWAYOUT is not set
862 922
@@ -878,26 +938,18 @@ CONFIG_SSB_POSSIBLE=y
878# CONFIG_MFD_CORE is not set 938# CONFIG_MFD_CORE is not set
879# CONFIG_MFD_SM501 is not set 939# CONFIG_MFD_SM501 is not set
880# CONFIG_HTC_PASIC3 is not set 940# CONFIG_HTC_PASIC3 is not set
941# CONFIG_UCB1400_CORE is not set
942# CONFIG_TPS65010 is not set
881# CONFIG_MFD_TMIO is not set 943# CONFIG_MFD_TMIO is not set
882# CONFIG_MFD_WM8400 is not set 944# CONFIG_MFD_WM8400 is not set
945# CONFIG_MFD_WM831X is not set
883# CONFIG_MFD_WM8350_I2C is not set 946# CONFIG_MFD_WM8350_I2C is not set
947# CONFIG_MFD_PCF50633 is not set
948# CONFIG_MFD_MC13783 is not set
949# CONFIG_AB3100_CORE is not set
950# CONFIG_EZX_PCAP is not set
884# CONFIG_REGULATOR is not set 951# CONFIG_REGULATOR is not set
885 952# CONFIG_MEDIA_SUPPORT is not set
886#
887# Multimedia devices
888#
889
890#
891# Multimedia core support
892#
893# CONFIG_VIDEO_DEV is not set
894# CONFIG_DVB_CORE is not set
895# CONFIG_VIDEO_MEDIA is not set
896
897#
898# Multimedia drivers
899#
900# CONFIG_DAB is not set
901 953
902# 954#
903# Graphics support 955# Graphics support
@@ -929,9 +981,6 @@ CONFIG_FB_CFB_IMAGEBLIT=m
929# CONFIG_FB_BFIN_T350MCQB is not set 981# CONFIG_FB_BFIN_T350MCQB is not set
930# CONFIG_FB_BFIN_LQ035Q1 is not set 982# CONFIG_FB_BFIN_LQ035Q1 is not set
931CONFIG_FB_BF537_LQ035=m 983CONFIG_FB_BF537_LQ035=m
932CONFIG_LQ035_SLAVE_ADDR=0x58
933# CONFIG_FB_BFIN_LANDSCAPE is not set
934# CONFIG_FB_BFIN_BGR is not set
935CONFIG_FB_BFIN_7393=m 984CONFIG_FB_BFIN_7393=m
936CONFIG_NTSC=y 985CONFIG_NTSC=y
937# CONFIG_PAL is not set 986# CONFIG_PAL is not set
@@ -946,15 +995,18 @@ CONFIG_ADV7393_1XMEM=y
946# CONFIG_FB_VIRTUAL is not set 995# CONFIG_FB_VIRTUAL is not set
947# CONFIG_FB_METRONOME is not set 996# CONFIG_FB_METRONOME is not set
948# CONFIG_FB_MB862XX is not set 997# CONFIG_FB_MB862XX is not set
998# CONFIG_FB_BROADSHEET is not set
949CONFIG_BACKLIGHT_LCD_SUPPORT=y 999CONFIG_BACKLIGHT_LCD_SUPPORT=y
950CONFIG_LCD_CLASS_DEVICE=m 1000CONFIG_LCD_CLASS_DEVICE=m
1001# CONFIG_LCD_LMS283GF05 is not set
951# CONFIG_LCD_LTV350QV is not set 1002# CONFIG_LCD_LTV350QV is not set
952# CONFIG_LCD_ILI9320 is not set 1003# CONFIG_LCD_ILI9320 is not set
953# CONFIG_LCD_TDO24M is not set 1004# CONFIG_LCD_TDO24M is not set
954# CONFIG_LCD_VGG2432A4 is not set 1005# CONFIG_LCD_VGG2432A4 is not set
955# CONFIG_LCD_PLATFORM is not set 1006# CONFIG_LCD_PLATFORM is not set
956CONFIG_BACKLIGHT_CLASS_DEVICE=m 1007CONFIG_BACKLIGHT_CLASS_DEVICE=m
957CONFIG_BACKLIGHT_CORGI=m 1008CONFIG_BACKLIGHT_GENERIC=m
1009# CONFIG_BACKLIGHT_ADP8870 is not set
958 1010
959# 1011#
960# Display device support 1012# Display device support
@@ -963,19 +1015,27 @@ CONFIG_BACKLIGHT_CORGI=m
963# CONFIG_LOGO is not set 1015# CONFIG_LOGO is not set
964CONFIG_SOUND=m 1016CONFIG_SOUND=m
965CONFIG_SOUND_OSS_CORE=y 1017CONFIG_SOUND_OSS_CORE=y
1018CONFIG_SOUND_OSS_CORE_PRECLAIM=y
966CONFIG_SND=m 1019CONFIG_SND=m
967CONFIG_SND_TIMER=m 1020CONFIG_SND_TIMER=m
968CONFIG_SND_PCM=m 1021CONFIG_SND_PCM=m
1022CONFIG_SND_JACK=y
969# CONFIG_SND_SEQUENCER is not set 1023# CONFIG_SND_SEQUENCER is not set
970CONFIG_SND_OSSEMUL=y 1024CONFIG_SND_OSSEMUL=y
971CONFIG_SND_MIXER_OSS=m 1025CONFIG_SND_MIXER_OSS=m
972CONFIG_SND_PCM_OSS=m 1026CONFIG_SND_PCM_OSS=m
973CONFIG_SND_PCM_OSS_PLUGINS=y 1027CONFIG_SND_PCM_OSS_PLUGINS=y
1028# CONFIG_SND_HRTIMER is not set
974# CONFIG_SND_DYNAMIC_MINORS is not set 1029# CONFIG_SND_DYNAMIC_MINORS is not set
975CONFIG_SND_SUPPORT_OLD_API=y 1030CONFIG_SND_SUPPORT_OLD_API=y
976CONFIG_SND_VERBOSE_PROCFS=y 1031CONFIG_SND_VERBOSE_PROCFS=y
977# CONFIG_SND_VERBOSE_PRINTK is not set 1032# CONFIG_SND_VERBOSE_PRINTK is not set
978# CONFIG_SND_DEBUG is not set 1033# CONFIG_SND_DEBUG is not set
1034# CONFIG_SND_RAWMIDI_SEQ is not set
1035# CONFIG_SND_OPL3_LIB_SEQ is not set
1036# CONFIG_SND_OPL4_LIB_SEQ is not set
1037# CONFIG_SND_SBAWE_SEQ is not set
1038# CONFIG_SND_EMU10K1_SEQ is not set
979CONFIG_SND_DRIVERS=y 1039CONFIG_SND_DRIVERS=y
980# CONFIG_SND_DUMMY is not set 1040# CONFIG_SND_DUMMY is not set
981# CONFIG_SND_MTPAV is not set 1041# CONFIG_SND_MTPAV is not set
@@ -986,13 +1046,6 @@ CONFIG_SND_SPI=y
986# 1046#
987# ALSA Blackfin devices 1047# ALSA Blackfin devices
988# 1048#
989CONFIG_SND_BLACKFIN_AD1836=m
990CONFIG_SND_BLACKFIN_AD1836_TDM=y
991# CONFIG_SND_BLACKFIN_AD1836_I2S is not set
992CONFIG_SND_BLACKFIN_AD1836_MULSUB=y
993# CONFIG_SND_BLACKFIN_AD1836_5P1 is not set
994CONFIG_SND_BLACKFIN_SPORT=0
995CONFIG_SND_BLACKFIN_SPI_PFBIT=4
996CONFIG_SND_BFIN_SPORT=0 1049CONFIG_SND_BFIN_SPORT=0
997CONFIG_SND_BFIN_AD73322=m 1050CONFIG_SND_BFIN_AD73322=m
998CONFIG_SND_BFIN_AD73322_SPORT0_SE=10 1051CONFIG_SND_BFIN_AD73322_SPORT0_SE=10
@@ -1003,16 +1056,20 @@ CONFIG_SND_SOC_AC97_BUS=y
1003CONFIG_SND_BF5XX_I2S=m 1056CONFIG_SND_BF5XX_I2S=m
1004# CONFIG_SND_BF5XX_SOC_SSM2602 is not set 1057# CONFIG_SND_BF5XX_SOC_SSM2602 is not set
1005CONFIG_SND_BF5XX_SOC_AD73311=m 1058CONFIG_SND_BF5XX_SOC_AD73311=m
1059# CONFIG_SND_BF5XX_SOC_ADAU1371 is not set
1060# CONFIG_SND_BF5XX_SOC_ADAU1761 is not set
1006CONFIG_SND_BFIN_AD73311_SE=4 1061CONFIG_SND_BFIN_AD73311_SE=4
1062# CONFIG_SND_BF5XX_TDM is not set
1007CONFIG_SND_BF5XX_AC97=m 1063CONFIG_SND_BF5XX_AC97=m
1008CONFIG_SND_BF5XX_MMAP_SUPPORT=y 1064CONFIG_SND_BF5XX_MMAP_SUPPORT=y
1009# CONFIG_SND_BF5XX_MULTICHAN_SUPPORT is not set 1065# CONFIG_SND_BF5XX_MULTICHAN_SUPPORT is not set
1066# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set
1067CONFIG_SND_BF5XX_SOC_AD1980=m
1010CONFIG_SND_BF5XX_SOC_SPORT=m 1068CONFIG_SND_BF5XX_SOC_SPORT=m
1011CONFIG_SND_BF5XX_SOC_I2S=m 1069CONFIG_SND_BF5XX_SOC_I2S=m
1012CONFIG_SND_BF5XX_SOC_AC97=m 1070CONFIG_SND_BF5XX_SOC_AC97=m
1013CONFIG_SND_BF5XX_SOC_AD1980=m
1014CONFIG_SND_BF5XX_SPORT_NUM=0 1071CONFIG_SND_BF5XX_SPORT_NUM=0
1015# CONFIG_SND_BF5XX_HAVE_COLD_RESET is not set 1072CONFIG_SND_SOC_I2C_AND_SPI=m
1016# CONFIG_SND_SOC_ALL_CODECS is not set 1073# CONFIG_SND_SOC_ALL_CODECS is not set
1017CONFIG_SND_SOC_AD1980=m 1074CONFIG_SND_SOC_AD1980=m
1018CONFIG_SND_SOC_AD73311=m 1075CONFIG_SND_SOC_AD73311=m
@@ -1020,14 +1077,12 @@ CONFIG_SND_SOC_AD73311=m
1020CONFIG_AC97_BUS=m 1077CONFIG_AC97_BUS=m
1021CONFIG_HID_SUPPORT=y 1078CONFIG_HID_SUPPORT=y
1022CONFIG_HID=y 1079CONFIG_HID=y
1023# CONFIG_HID_DEBUG is not set
1024# CONFIG_HIDRAW is not set 1080# CONFIG_HIDRAW is not set
1025# CONFIG_HID_PID is not set 1081# CONFIG_HID_PID is not set
1026 1082
1027# 1083#
1028# Special HID drivers 1084# Special HID drivers
1029# 1085#
1030CONFIG_HID_COMPAT=y
1031# CONFIG_USB_SUPPORT is not set 1086# CONFIG_USB_SUPPORT is not set
1032# CONFIG_MMC is not set 1087# CONFIG_MMC is not set
1033# CONFIG_MEMSTICK is not set 1088# CONFIG_MEMSTICK is not set
@@ -1064,6 +1119,7 @@ CONFIG_RTC_INTF_DEV=y
1064# CONFIG_RTC_DRV_S35390A is not set 1119# CONFIG_RTC_DRV_S35390A is not set
1065# CONFIG_RTC_DRV_FM3130 is not set 1120# CONFIG_RTC_DRV_FM3130 is not set
1066# CONFIG_RTC_DRV_RX8581 is not set 1121# CONFIG_RTC_DRV_RX8581 is not set
1122# CONFIG_RTC_DRV_RX8025 is not set
1067 1123
1068# 1124#
1069# SPI RTC drivers 1125# SPI RTC drivers
@@ -1075,6 +1131,7 @@ CONFIG_RTC_INTF_DEV=y
1075# CONFIG_RTC_DRV_R9701 is not set 1131# CONFIG_RTC_DRV_R9701 is not set
1076# CONFIG_RTC_DRV_RS5C348 is not set 1132# CONFIG_RTC_DRV_RS5C348 is not set
1077# CONFIG_RTC_DRV_DS3234 is not set 1133# CONFIG_RTC_DRV_DS3234 is not set
1134# CONFIG_RTC_DRV_PCF2123 is not set
1078 1135
1079# 1136#
1080# Platform RTC drivers 1137# Platform RTC drivers
@@ -1095,10 +1152,21 @@ CONFIG_RTC_INTF_DEV=y
1095# 1152#
1096CONFIG_RTC_DRV_BFIN=y 1153CONFIG_RTC_DRV_BFIN=y
1097# CONFIG_DMADEVICES is not set 1154# CONFIG_DMADEVICES is not set
1155# CONFIG_AUXDISPLAY is not set
1098# CONFIG_UIO is not set 1156# CONFIG_UIO is not set
1157
1158#
1159# TI VLYNQ
1160#
1099# CONFIG_STAGING is not set 1161# CONFIG_STAGING is not set
1100 1162
1101# 1163#
1164# Firmware Drivers
1165#
1166# CONFIG_FIRMWARE_MEMMAP is not set
1167# CONFIG_SIGMA is not set
1168
1169#
1102# File systems 1170# File systems
1103# 1171#
1104# CONFIG_EXT2_FS is not set 1172# CONFIG_EXT2_FS is not set
@@ -1107,9 +1175,13 @@ CONFIG_RTC_DRV_BFIN=y
1107# CONFIG_REISERFS_FS is not set 1175# CONFIG_REISERFS_FS is not set
1108# CONFIG_JFS_FS is not set 1176# CONFIG_JFS_FS is not set
1109# CONFIG_FS_POSIX_ACL is not set 1177# CONFIG_FS_POSIX_ACL is not set
1110CONFIG_FILE_LOCKING=y
1111# CONFIG_XFS_FS is not set 1178# CONFIG_XFS_FS is not set
1179# CONFIG_GFS2_FS is not set
1112# CONFIG_OCFS2_FS is not set 1180# CONFIG_OCFS2_FS is not set
1181# CONFIG_BTRFS_FS is not set
1182# CONFIG_NILFS2_FS is not set
1183CONFIG_FILE_LOCKING=y
1184CONFIG_FSNOTIFY=y
1113# CONFIG_DNOTIFY is not set 1185# CONFIG_DNOTIFY is not set
1114CONFIG_INOTIFY=y 1186CONFIG_INOTIFY=y
1115CONFIG_INOTIFY_USER=y 1187CONFIG_INOTIFY_USER=y
@@ -1119,6 +1191,11 @@ CONFIG_INOTIFY_USER=y
1119# CONFIG_FUSE_FS is not set 1191# CONFIG_FUSE_FS is not set
1120 1192
1121# 1193#
1194# Caches
1195#
1196# CONFIG_FSCACHE is not set
1197
1198#
1122# CD-ROM/DVD Filesystems 1199# CD-ROM/DVD Filesystems
1123# 1200#
1124# CONFIG_ISO9660_FS is not set 1201# CONFIG_ISO9660_FS is not set
@@ -1137,13 +1214,9 @@ CONFIG_INOTIFY_USER=y
1137CONFIG_PROC_FS=y 1214CONFIG_PROC_FS=y
1138CONFIG_PROC_SYSCTL=y 1215CONFIG_PROC_SYSCTL=y
1139CONFIG_SYSFS=y 1216CONFIG_SYSFS=y
1140# CONFIG_TMPFS is not set
1141# CONFIG_HUGETLB_PAGE is not set 1217# CONFIG_HUGETLB_PAGE is not set
1142# CONFIG_CONFIGFS_FS is not set 1218# CONFIG_CONFIGFS_FS is not set
1143 1219CONFIG_MISC_FILESYSTEMS=y
1144#
1145# Miscellaneous filesystems
1146#
1147# CONFIG_ADFS_FS is not set 1220# CONFIG_ADFS_FS is not set
1148# CONFIG_AFFS_FS is not set 1221# CONFIG_AFFS_FS is not set
1149# CONFIG_HFS_FS is not set 1222# CONFIG_HFS_FS is not set
@@ -1162,17 +1235,8 @@ CONFIG_JFFS2_ZLIB=y
1162# CONFIG_JFFS2_LZO is not set 1235# CONFIG_JFFS2_LZO is not set
1163CONFIG_JFFS2_RTIME=y 1236CONFIG_JFFS2_RTIME=y
1164# CONFIG_JFFS2_RUBIN is not set 1237# CONFIG_JFFS2_RUBIN is not set
1165CONFIG_YAFFS_FS=m
1166CONFIG_YAFFS_YAFFS1=y
1167# CONFIG_YAFFS_9BYTE_TAGS is not set
1168# CONFIG_YAFFS_DOES_ECC is not set
1169CONFIG_YAFFS_YAFFS2=y
1170CONFIG_YAFFS_AUTO_YAFFS2=y
1171# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
1172# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
1173# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
1174CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
1175# CONFIG_CRAMFS is not set 1238# CONFIG_CRAMFS is not set
1239# CONFIG_SQUASHFS is not set
1176# CONFIG_VXFS_FS is not set 1240# CONFIG_VXFS_FS is not set
1177# CONFIG_MINIX_FS is not set 1241# CONFIG_MINIX_FS is not set
1178# CONFIG_OMFS_FS is not set 1242# CONFIG_OMFS_FS is not set
@@ -1191,7 +1255,6 @@ CONFIG_LOCKD=m
1191CONFIG_LOCKD_V4=y 1255CONFIG_LOCKD_V4=y
1192CONFIG_NFS_COMMON=y 1256CONFIG_NFS_COMMON=y
1193CONFIG_SUNRPC=m 1257CONFIG_SUNRPC=m
1194# CONFIG_SUNRPC_REGISTER_V4 is not set
1195# CONFIG_RPCSEC_GSS_KRB5 is not set 1258# CONFIG_RPCSEC_GSS_KRB5 is not set
1196# CONFIG_RPCSEC_GSS_SPKM3 is not set 1259# CONFIG_RPCSEC_GSS_SPKM3 is not set
1197CONFIG_SMB_FS=m 1260CONFIG_SMB_FS=m
@@ -1256,14 +1319,19 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1256CONFIG_ENABLE_MUST_CHECK=y 1319CONFIG_ENABLE_MUST_CHECK=y
1257CONFIG_FRAME_WARN=1024 1320CONFIG_FRAME_WARN=1024
1258# CONFIG_MAGIC_SYSRQ is not set 1321# CONFIG_MAGIC_SYSRQ is not set
1322# CONFIG_STRIP_ASM_SYMS is not set
1259# CONFIG_UNUSED_SYMBOLS is not set 1323# CONFIG_UNUSED_SYMBOLS is not set
1260CONFIG_DEBUG_FS=y 1324CONFIG_DEBUG_FS=y
1261# CONFIG_HEADERS_CHECK is not set 1325# CONFIG_HEADERS_CHECK is not set
1326CONFIG_DEBUG_SECTION_MISMATCH=y
1262CONFIG_DEBUG_KERNEL=y 1327CONFIG_DEBUG_KERNEL=y
1263CONFIG_DEBUG_SHIRQ=y 1328CONFIG_DEBUG_SHIRQ=y
1264CONFIG_DETECT_SOFTLOCKUP=y 1329CONFIG_DETECT_SOFTLOCKUP=y
1265# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1330# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1266CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1331CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1332CONFIG_DETECT_HUNG_TASK=y
1333# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1334CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1267CONFIG_SCHED_DEBUG=y 1335CONFIG_SCHED_DEBUG=y
1268# CONFIG_SCHEDSTATS is not set 1336# CONFIG_SCHEDSTATS is not set
1269# CONFIG_TIMER_STATS is not set 1337# CONFIG_TIMER_STATS is not set
@@ -1271,31 +1339,39 @@ CONFIG_SCHED_DEBUG=y
1271# CONFIG_DEBUG_SLAB is not set 1339# CONFIG_DEBUG_SLAB is not set
1272# CONFIG_DEBUG_SPINLOCK is not set 1340# CONFIG_DEBUG_SPINLOCK is not set
1273# CONFIG_DEBUG_MUTEXES is not set 1341# CONFIG_DEBUG_MUTEXES is not set
1342# CONFIG_DEBUG_LOCK_ALLOC is not set
1343# CONFIG_PROVE_LOCKING is not set
1344# CONFIG_LOCK_STAT is not set
1274# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1345# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1275# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1346# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1276# CONFIG_DEBUG_KOBJECT is not set 1347# CONFIG_DEBUG_KOBJECT is not set
1277CONFIG_DEBUG_BUGVERBOSE=y 1348CONFIG_DEBUG_BUGVERBOSE=y
1278CONFIG_DEBUG_INFO=y 1349CONFIG_DEBUG_INFO=y
1279# CONFIG_DEBUG_VM is not set 1350# CONFIG_DEBUG_VM is not set
1351# CONFIG_DEBUG_NOMMU_REGIONS is not set
1280# CONFIG_DEBUG_WRITECOUNT is not set 1352# CONFIG_DEBUG_WRITECOUNT is not set
1281# CONFIG_DEBUG_MEMORY_INIT is not set 1353# CONFIG_DEBUG_MEMORY_INIT is not set
1282# CONFIG_DEBUG_LIST is not set 1354# CONFIG_DEBUG_LIST is not set
1283# CONFIG_DEBUG_SG is not set 1355# CONFIG_DEBUG_SG is not set
1356# CONFIG_DEBUG_NOTIFIERS is not set
1357# CONFIG_DEBUG_CREDENTIALS is not set
1284# CONFIG_FRAME_POINTER is not set 1358# CONFIG_FRAME_POINTER is not set
1285# CONFIG_BOOT_PRINTK_DELAY is not set 1359# CONFIG_BOOT_PRINTK_DELAY is not set
1286# CONFIG_RCU_TORTURE_TEST is not set 1360# CONFIG_RCU_TORTURE_TEST is not set
1287# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1361# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1288# CONFIG_BACKTRACE_SELF_TEST is not set 1362# CONFIG_BACKTRACE_SELF_TEST is not set
1289# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1363# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1364# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1290# CONFIG_FAULT_INJECTION is not set 1365# CONFIG_FAULT_INJECTION is not set
1291 1366# CONFIG_PAGE_POISONING is not set
1292# 1367CONFIG_HAVE_FUNCTION_TRACER=y
1293# Tracers 1368CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1294# 1369CONFIG_TRACING_SUPPORT=y
1295# CONFIG_SCHED_TRACER is not set 1370# CONFIG_FTRACE is not set
1296# CONFIG_CONTEXT_SWITCH_TRACER is not set 1371# CONFIG_BRANCH_PROFILE_NONE is not set
1297# CONFIG_BOOT_TRACER is not set 1372# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1298# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1373# CONFIG_PROFILE_ALL_BRANCHES is not set
1374# CONFIG_DYNAMIC_DEBUG is not set
1299# CONFIG_SAMPLES is not set 1375# CONFIG_SAMPLES is not set
1300CONFIG_HAVE_ARCH_KGDB=y 1376CONFIG_HAVE_ARCH_KGDB=y
1301# CONFIG_KGDB is not set 1377# CONFIG_KGDB is not set
@@ -1320,6 +1396,7 @@ CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE=y
1320CONFIG_EARLY_PRINTK=y 1396CONFIG_EARLY_PRINTK=y
1321CONFIG_CPLB_INFO=y 1397CONFIG_CPLB_INFO=y
1322CONFIG_ACCESS_CHECK=y 1398CONFIG_ACCESS_CHECK=y
1399# CONFIG_BFIN_ISRAM_SELF_TEST is not set
1323 1400
1324# 1401#
1325# Security options 1402# Security options
@@ -1328,14 +1405,14 @@ CONFIG_ACCESS_CHECK=y
1328CONFIG_SECURITY=y 1405CONFIG_SECURITY=y
1329# CONFIG_SECURITYFS is not set 1406# CONFIG_SECURITYFS is not set
1330# CONFIG_SECURITY_NETWORK is not set 1407# CONFIG_SECURITY_NETWORK is not set
1408# CONFIG_SECURITY_PATH is not set
1331# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1409# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1332CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1410# CONFIG_SECURITY_TOMOYO is not set
1333CONFIG_CRYPTO=y 1411CONFIG_CRYPTO=y
1334 1412
1335# 1413#
1336# Crypto core or helper 1414# Crypto core or helper
1337# 1415#
1338# CONFIG_CRYPTO_FIPS is not set
1339# CONFIG_CRYPTO_MANAGER is not set 1416# CONFIG_CRYPTO_MANAGER is not set
1340# CONFIG_CRYPTO_MANAGER2 is not set 1417# CONFIG_CRYPTO_MANAGER2 is not set
1341# CONFIG_CRYPTO_GF128MUL is not set 1418# CONFIG_CRYPTO_GF128MUL is not set
@@ -1367,11 +1444,13 @@ CONFIG_CRYPTO=y
1367# 1444#
1368# CONFIG_CRYPTO_HMAC is not set 1445# CONFIG_CRYPTO_HMAC is not set
1369# CONFIG_CRYPTO_XCBC is not set 1446# CONFIG_CRYPTO_XCBC is not set
1447# CONFIG_CRYPTO_VMAC is not set
1370 1448
1371# 1449#
1372# Digest 1450# Digest
1373# 1451#
1374# CONFIG_CRYPTO_CRC32C is not set 1452# CONFIG_CRYPTO_CRC32C is not set
1453# CONFIG_CRYPTO_GHASH is not set
1375# CONFIG_CRYPTO_MD4 is not set 1454# CONFIG_CRYPTO_MD4 is not set
1376# CONFIG_CRYPTO_MD5 is not set 1455# CONFIG_CRYPTO_MD5 is not set
1377# CONFIG_CRYPTO_MICHAEL_MIC is not set 1456# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1408,6 +1487,7 @@ CONFIG_CRYPTO=y
1408# Compression 1487# Compression
1409# 1488#
1410# CONFIG_CRYPTO_DEFLATE is not set 1489# CONFIG_CRYPTO_DEFLATE is not set
1490# CONFIG_CRYPTO_ZLIB is not set
1411# CONFIG_CRYPTO_LZO is not set 1491# CONFIG_CRYPTO_LZO is not set
1412 1492
1413# 1493#
@@ -1415,11 +1495,13 @@ CONFIG_CRYPTO=y
1415# 1495#
1416# CONFIG_CRYPTO_ANSI_CPRNG is not set 1496# CONFIG_CRYPTO_ANSI_CPRNG is not set
1417CONFIG_CRYPTO_HW=y 1497CONFIG_CRYPTO_HW=y
1498# CONFIG_BINARY_PRINTF is not set
1418 1499
1419# 1500#
1420# Library routines 1501# Library routines
1421# 1502#
1422CONFIG_BITREVERSE=y 1503CONFIG_BITREVERSE=y
1504CONFIG_GENERIC_FIND_LAST_BIT=y
1423CONFIG_CRC_CCITT=m 1505CONFIG_CRC_CCITT=m
1424# CONFIG_CRC16 is not set 1506# CONFIG_CRC16 is not set
1425# CONFIG_CRC_T10DIF is not set 1507# CONFIG_CRC_T10DIF is not set
@@ -1429,6 +1511,8 @@ CONFIG_CRC32=y
1429# CONFIG_LIBCRC32C is not set 1511# CONFIG_LIBCRC32C is not set
1430CONFIG_ZLIB_INFLATE=y 1512CONFIG_ZLIB_INFLATE=y
1431CONFIG_ZLIB_DEFLATE=m 1513CONFIG_ZLIB_DEFLATE=m
1514CONFIG_DECOMPRESS_GZIP=y
1432CONFIG_HAS_IOMEM=y 1515CONFIG_HAS_IOMEM=y
1433CONFIG_HAS_IOPORT=y 1516CONFIG_HAS_IOPORT=y
1434CONFIG_HAS_DMA=y 1517CONFIG_HAS_DMA=y
1518CONFIG_NLATTR=y
diff --git a/arch/blackfin/configs/BF538-EZKIT_defconfig b/arch/blackfin/configs/BF538-EZKIT_defconfig
index 09ea2499555e..bc1871d89fd5 100644
--- a/arch/blackfin/configs/BF538-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF538-EZKIT_defconfig
@@ -1,22 +1,27 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28.10 3# Linux kernel version: 2.6.32.2
4# Thu May 21 05:50:01 2009
5# 4#
6# CONFIG_MMU is not set 5# CONFIG_MMU is not set
7# CONFIG_FPU is not set 6# CONFIG_FPU is not set
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 7CONFIG_RWSEM_GENERIC_SPINLOCK=y
9# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
10CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
10CONFIG_GENERIC_CSUM=y
11CONFIG_GENERIC_BUG=y
11CONFIG_ZONE_DMA=y 12CONFIG_ZONE_DMA=y
12CONFIG_GENERIC_FIND_NEXT_BIT=y 13CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
16CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
17CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
18CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_TRACE_IRQFLAGS_SUPPORT=y
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
24CONFIG_CONSTRUCTORS=y
20 25
21# 26#
22# General setup 27# General setup
@@ -26,22 +31,41 @@ CONFIG_BROKEN_ON_SMP=y
26CONFIG_INIT_ENV_ARG_LIMIT=32 31CONFIG_INIT_ENV_ARG_LIMIT=32
27CONFIG_LOCALVERSION="" 32CONFIG_LOCALVERSION=""
28CONFIG_LOCALVERSION_AUTO=y 33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_HAVE_KERNEL_GZIP=y
35CONFIG_HAVE_KERNEL_BZIP2=y
36CONFIG_HAVE_KERNEL_LZMA=y
37CONFIG_KERNEL_GZIP=y
38# CONFIG_KERNEL_BZIP2 is not set
39# CONFIG_KERNEL_LZMA is not set
29CONFIG_SYSVIPC=y 40CONFIG_SYSVIPC=y
30CONFIG_SYSVIPC_SYSCTL=y 41CONFIG_SYSVIPC_SYSCTL=y
31# CONFIG_POSIX_MQUEUE is not set 42# CONFIG_POSIX_MQUEUE is not set
32# CONFIG_BSD_PROCESS_ACCT is not set 43# CONFIG_BSD_PROCESS_ACCT is not set
33# CONFIG_TASKSTATS is not set 44# CONFIG_TASKSTATS is not set
34# CONFIG_AUDIT is not set 45# CONFIG_AUDIT is not set
46
47#
48# RCU Subsystem
49#
50CONFIG_TREE_RCU=y
51# CONFIG_TREE_PREEMPT_RCU is not set
52# CONFIG_RCU_TRACE is not set
53CONFIG_RCU_FANOUT=32
54# CONFIG_RCU_FANOUT_EXACT is not set
55# CONFIG_TREE_RCU_TRACE is not set
35CONFIG_IKCONFIG=y 56CONFIG_IKCONFIG=y
36CONFIG_IKCONFIG_PROC=y 57CONFIG_IKCONFIG_PROC=y
37CONFIG_LOG_BUF_SHIFT=14 58CONFIG_LOG_BUF_SHIFT=14
38# CONFIG_CGROUPS is not set
39# CONFIG_GROUP_SCHED is not set 59# CONFIG_GROUP_SCHED is not set
60# CONFIG_CGROUPS is not set
40# CONFIG_SYSFS_DEPRECATED_V2 is not set 61# CONFIG_SYSFS_DEPRECATED_V2 is not set
41# CONFIG_RELAY is not set 62# CONFIG_RELAY is not set
42# CONFIG_NAMESPACES is not set 63# CONFIG_NAMESPACES is not set
43CONFIG_BLK_DEV_INITRD=y 64CONFIG_BLK_DEV_INITRD=y
44CONFIG_INITRAMFS_SOURCE="" 65CONFIG_INITRAMFS_SOURCE=""
66CONFIG_RD_GZIP=y
67# CONFIG_RD_BZIP2 is not set
68# CONFIG_RD_LZMA is not set
45# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 69# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
46CONFIG_SYSCTL=y 70CONFIG_SYSCTL=y
47CONFIG_ANON_INODES=y 71CONFIG_ANON_INODES=y
@@ -62,6 +86,10 @@ CONFIG_EPOLL=y
62# CONFIG_TIMERFD is not set 86# CONFIG_TIMERFD is not set
63# CONFIG_EVENTFD is not set 87# CONFIG_EVENTFD is not set
64# CONFIG_AIO is not set 88# CONFIG_AIO is not set
89
90#
91# Kernel Performance Events And Counters
92#
65CONFIG_VM_EVENT_COUNTERS=y 93CONFIG_VM_EVENT_COUNTERS=y
66CONFIG_COMPAT_BRK=y 94CONFIG_COMPAT_BRK=y
67CONFIG_SLAB=y 95CONFIG_SLAB=y
@@ -69,11 +97,15 @@ CONFIG_SLAB=y
69# CONFIG_SLOB is not set 97# CONFIG_SLOB is not set
70CONFIG_MMAP_ALLOW_UNINITIALIZED=y 98CONFIG_MMAP_ALLOW_UNINITIALIZED=y
71# CONFIG_PROFILING is not set 99# CONFIG_PROFILING is not set
72# CONFIG_MARKERS is not set
73CONFIG_HAVE_OPROFILE=y 100CONFIG_HAVE_OPROFILE=y
101
102#
103# GCOV-based kernel profiling
104#
105# CONFIG_GCOV_KERNEL is not set
106# CONFIG_SLOW_WORK is not set
74# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 107# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
75CONFIG_SLABINFO=y 108CONFIG_SLABINFO=y
76CONFIG_TINY_SHMEM=y
77CONFIG_BASE_SMALL=0 109CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y 110CONFIG_MODULES=y
79# CONFIG_MODULE_FORCE_LOAD is not set 111# CONFIG_MODULE_FORCE_LOAD is not set
@@ -81,11 +113,8 @@ CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODULE_FORCE_UNLOAD is not set 113# CONFIG_MODULE_FORCE_UNLOAD is not set
82# CONFIG_MODVERSIONS is not set 114# CONFIG_MODVERSIONS is not set
83# CONFIG_MODULE_SRCVERSION_ALL is not set 115# CONFIG_MODULE_SRCVERSION_ALL is not set
84CONFIG_KMOD=y
85CONFIG_BLOCK=y 116CONFIG_BLOCK=y
86# CONFIG_LBD is not set 117# CONFIG_LBDAF is not set
87# CONFIG_BLK_DEV_IO_TRACE is not set
88# CONFIG_LSF is not set
89# CONFIG_BLK_DEV_BSG is not set 118# CONFIG_BLK_DEV_BSG is not set
90# CONFIG_BLK_DEV_INTEGRITY is not set 119# CONFIG_BLK_DEV_INTEGRITY is not set
91 120
@@ -101,7 +130,6 @@ CONFIG_DEFAULT_AS=y
101# CONFIG_DEFAULT_CFQ is not set 130# CONFIG_DEFAULT_CFQ is not set
102# CONFIG_DEFAULT_NOOP is not set 131# CONFIG_DEFAULT_NOOP is not set
103CONFIG_DEFAULT_IOSCHED="anticipatory" 132CONFIG_DEFAULT_IOSCHED="anticipatory"
104CONFIG_CLASSIC_RCU=y
105# CONFIG_PREEMPT_NONE is not set 133# CONFIG_PREEMPT_NONE is not set
106CONFIG_PREEMPT_VOLUNTARY=y 134CONFIG_PREEMPT_VOLUNTARY=y
107# CONFIG_PREEMPT is not set 135# CONFIG_PREEMPT is not set
@@ -132,15 +160,15 @@ CONFIG_PREEMPT_VOLUNTARY=y
132# CONFIG_BF537 is not set 160# CONFIG_BF537 is not set
133CONFIG_BF538=y 161CONFIG_BF538=y
134# CONFIG_BF539 is not set 162# CONFIG_BF539 is not set
135# CONFIG_BF542 is not set 163# CONFIG_BF542_std is not set
136# CONFIG_BF542M is not set 164# CONFIG_BF542M is not set
137# CONFIG_BF544 is not set 165# CONFIG_BF544_std is not set
138# CONFIG_BF544M is not set 166# CONFIG_BF544M is not set
139# CONFIG_BF547 is not set 167# CONFIG_BF547_std is not set
140# CONFIG_BF547M is not set 168# CONFIG_BF547M is not set
141# CONFIG_BF548 is not set 169# CONFIG_BF548_std is not set
142# CONFIG_BF548M is not set 170# CONFIG_BF548M is not set
143# CONFIG_BF549 is not set 171# CONFIG_BF549_std is not set
144# CONFIG_BF549M is not set 172# CONFIG_BF549M is not set
145# CONFIG_BF561 is not set 173# CONFIG_BF561 is not set
146CONFIG_BF_REV_MIN=4 174CONFIG_BF_REV_MIN=4
@@ -246,7 +274,7 @@ CONFIG_GENERIC_TIME=y
246CONFIG_GENERIC_CLOCKEVENTS=y 274CONFIG_GENERIC_CLOCKEVENTS=y
247# CONFIG_TICKSOURCE_GPTMR0 is not set 275# CONFIG_TICKSOURCE_GPTMR0 is not set
248CONFIG_TICKSOURCE_CORETMR=y 276CONFIG_TICKSOURCE_CORETMR=y
249# CONFIG_CYCLES_CLOCKSOURCE is not set 277CONFIG_CYCLES_CLOCKSOURCE=y
250# CONFIG_GPTMR0_CLOCKSOURCE is not set 278# CONFIG_GPTMR0_CLOCKSOURCE is not set
251CONFIG_TICK_ONESHOT=y 279CONFIG_TICK_ONESHOT=y
252# CONFIG_NO_HZ is not set 280# CONFIG_NO_HZ is not set
@@ -298,7 +326,6 @@ CONFIG_FLATMEM=y
298CONFIG_FLAT_NODE_MEM_MAP=y 326CONFIG_FLAT_NODE_MEM_MAP=y
299CONFIG_PAGEFLAGS_EXTENDED=y 327CONFIG_PAGEFLAGS_EXTENDED=y
300CONFIG_SPLIT_PTLOCK_CPUS=4 328CONFIG_SPLIT_PTLOCK_CPUS=4
301# CONFIG_RESOURCES_64BIT is not set
302# CONFIG_PHYS_ADDR_T_64BIT is not set 329# CONFIG_PHYS_ADDR_T_64BIT is not set
303CONFIG_ZONE_DMA_FLAG=1 330CONFIG_ZONE_DMA_FLAG=1
304CONFIG_VIRT_TO_BUS=y 331CONFIG_VIRT_TO_BUS=y
@@ -307,16 +334,18 @@ CONFIG_BFIN_GPTIMERS=m
307# CONFIG_DMA_UNCACHED_4M is not set 334# CONFIG_DMA_UNCACHED_4M is not set
308# CONFIG_DMA_UNCACHED_2M is not set 335# CONFIG_DMA_UNCACHED_2M is not set
309CONFIG_DMA_UNCACHED_1M=y 336CONFIG_DMA_UNCACHED_1M=y
337# CONFIG_DMA_UNCACHED_512K is not set
338# CONFIG_DMA_UNCACHED_256K is not set
339# CONFIG_DMA_UNCACHED_128K is not set
310# CONFIG_DMA_UNCACHED_NONE is not set 340# CONFIG_DMA_UNCACHED_NONE is not set
311 341
312# 342#
313# Cache Support 343# Cache Support
314# 344#
315CONFIG_BFIN_ICACHE=y 345CONFIG_BFIN_ICACHE=y
316# CONFIG_BFIN_ICACHE_LOCK is not set 346CONFIG_BFIN_EXTMEM_ICACHEABLE=y
317CONFIG_BFIN_DCACHE=y 347CONFIG_BFIN_DCACHE=y
318# CONFIG_BFIN_DCACHE_BANKA is not set 348# CONFIG_BFIN_DCACHE_BANKA is not set
319CONFIG_BFIN_EXTMEM_ICACHEABLE=y
320CONFIG_BFIN_EXTMEM_DCACHEABLE=y 349CONFIG_BFIN_EXTMEM_DCACHEABLE=y
321CONFIG_BFIN_EXTMEM_WRITEBACK=y 350CONFIG_BFIN_EXTMEM_WRITEBACK=y
322# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 351# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
@@ -327,7 +356,7 @@ CONFIG_BFIN_EXTMEM_WRITEBACK=y
327# CONFIG_MPU is not set 356# CONFIG_MPU is not set
328 357
329# 358#
330# Asynchonous Memory Configuration 359# Asynchronous Memory Configuration
331# 360#
332 361
333# 362#
@@ -383,11 +412,6 @@ CONFIG_NET=y
383CONFIG_PACKET=y 412CONFIG_PACKET=y
384# CONFIG_PACKET_MMAP is not set 413# CONFIG_PACKET_MMAP is not set
385CONFIG_UNIX=y 414CONFIG_UNIX=y
386CONFIG_XFRM=y
387# CONFIG_XFRM_USER is not set
388# CONFIG_XFRM_SUB_POLICY is not set
389# CONFIG_XFRM_MIGRATE is not set
390# CONFIG_XFRM_STATISTICS is not set
391# CONFIG_NET_KEY is not set 415# CONFIG_NET_KEY is not set
392CONFIG_INET=y 416CONFIG_INET=y
393# CONFIG_IP_MULTICAST is not set 417# CONFIG_IP_MULTICAST is not set
@@ -411,7 +435,6 @@ CONFIG_IP_PNP=y
411# CONFIG_INET_XFRM_MODE_BEET is not set 435# CONFIG_INET_XFRM_MODE_BEET is not set
412# CONFIG_INET_LRO is not set 436# CONFIG_INET_LRO is not set
413# CONFIG_INET_DIAG is not set 437# CONFIG_INET_DIAG is not set
414CONFIG_INET_TCP_DIAG=y
415# CONFIG_TCP_CONG_ADVANCED is not set 438# CONFIG_TCP_CONG_ADVANCED is not set
416CONFIG_TCP_CONG_CUBIC=y 439CONFIG_TCP_CONG_CUBIC=y
417CONFIG_DEFAULT_TCP_CONG="cubic" 440CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -422,6 +445,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
422# CONFIG_NETFILTER is not set 445# CONFIG_NETFILTER is not set
423# CONFIG_IP_DCCP is not set 446# CONFIG_IP_DCCP is not set
424# CONFIG_IP_SCTP is not set 447# CONFIG_IP_SCTP is not set
448# CONFIG_RDS is not set
425# CONFIG_TIPC is not set 449# CONFIG_TIPC is not set
426# CONFIG_ATM is not set 450# CONFIG_ATM is not set
427# CONFIG_BRIDGE is not set 451# CONFIG_BRIDGE is not set
@@ -435,14 +459,34 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
435# CONFIG_LAPB is not set 459# CONFIG_LAPB is not set
436# CONFIG_ECONET is not set 460# CONFIG_ECONET is not set
437# CONFIG_WAN_ROUTER is not set 461# CONFIG_WAN_ROUTER is not set
462# CONFIG_PHONET is not set
463# CONFIG_IEEE802154 is not set
438# CONFIG_NET_SCHED is not set 464# CONFIG_NET_SCHED is not set
465# CONFIG_DCB is not set
439 466
440# 467#
441# Network testing 468# Network testing
442# 469#
443# CONFIG_NET_PKTGEN is not set 470# CONFIG_NET_PKTGEN is not set
444# CONFIG_HAMRADIO is not set 471# CONFIG_HAMRADIO is not set
445# CONFIG_CAN is not set 472CONFIG_CAN=m
473CONFIG_CAN_RAW=m
474CONFIG_CAN_BCM=m
475
476#
477# CAN Device Drivers
478#
479# CONFIG_CAN_VCAN is not set
480CONFIG_CAN_DEV=m
481# CONFIG_CAN_CALC_BITTIMING is not set
482CONFIG_CAN_BFIN=m
483# CONFIG_CAN_SJA1000 is not set
484
485#
486# CAN USB interfaces
487#
488# CONFIG_CAN_EMS_USB is not set
489# CONFIG_CAN_DEBUG_DEVICES is not set
446CONFIG_IRDA=m 490CONFIG_IRDA=m
447 491
448# 492#
@@ -481,13 +525,8 @@ CONFIG_SIR_BFIN_DMA=y
481# 525#
482# CONFIG_BT is not set 526# CONFIG_BT is not set
483# CONFIG_AF_RXRPC is not set 527# CONFIG_AF_RXRPC is not set
484# CONFIG_PHONET is not set 528# CONFIG_WIRELESS is not set
485CONFIG_WIRELESS=y 529# CONFIG_WIMAX is not set
486# CONFIG_CFG80211 is not set
487CONFIG_WIRELESS_OLD_REGULATORY=y
488# CONFIG_WIRELESS_EXT is not set
489# CONFIG_MAC80211 is not set
490# CONFIG_IEEE80211 is not set
491# CONFIG_RFKILL is not set 530# CONFIG_RFKILL is not set
492# CONFIG_NET_9P is not set 531# CONFIG_NET_9P is not set
493 532
@@ -508,6 +547,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
508# CONFIG_CONNECTOR is not set 547# CONFIG_CONNECTOR is not set
509CONFIG_MTD=y 548CONFIG_MTD=y
510# CONFIG_MTD_DEBUG is not set 549# CONFIG_MTD_DEBUG is not set
550# CONFIG_MTD_TESTS is not set
511# CONFIG_MTD_CONCAT is not set 551# CONFIG_MTD_CONCAT is not set
512CONFIG_MTD_PARTITIONS=y 552CONFIG_MTD_PARTITIONS=y
513# CONFIG_MTD_REDBOOT_PARTS is not set 553# CONFIG_MTD_REDBOOT_PARTS is not set
@@ -566,6 +606,7 @@ CONFIG_MTD_PHYSMAP=m
566# 606#
567# CONFIG_MTD_DATAFLASH is not set 607# CONFIG_MTD_DATAFLASH is not set
568# CONFIG_MTD_M25P80 is not set 608# CONFIG_MTD_M25P80 is not set
609# CONFIG_MTD_SST25L is not set
569# CONFIG_MTD_SLRAM is not set 610# CONFIG_MTD_SLRAM is not set
570# CONFIG_MTD_PHRAM is not set 611# CONFIG_MTD_PHRAM is not set
571# CONFIG_MTD_MTDRAM is not set 612# CONFIG_MTD_MTDRAM is not set
@@ -581,11 +622,6 @@ CONFIG_MTD_NAND=m
581# CONFIG_MTD_NAND_VERIFY_WRITE is not set 622# CONFIG_MTD_NAND_VERIFY_WRITE is not set
582# CONFIG_MTD_NAND_ECC_SMC is not set 623# CONFIG_MTD_NAND_ECC_SMC is not set
583# CONFIG_MTD_NAND_MUSEUM_IDS is not set 624# CONFIG_MTD_NAND_MUSEUM_IDS is not set
584CONFIG_MTD_NAND_BFIN=m
585CONFIG_BFIN_NAND_BASE=0x20212000
586CONFIG_BFIN_NAND_CLE=2
587CONFIG_BFIN_NAND_ALE=1
588CONFIG_BFIN_NAND_READY=3
589CONFIG_MTD_NAND_IDS=m 625CONFIG_MTD_NAND_IDS=m
590# CONFIG_MTD_NAND_DISKONCHIP is not set 626# CONFIG_MTD_NAND_DISKONCHIP is not set
591# CONFIG_MTD_NAND_NANDSIM is not set 627# CONFIG_MTD_NAND_NANDSIM is not set
@@ -593,6 +629,11 @@ CONFIG_MTD_NAND_IDS=m
593# CONFIG_MTD_ONENAND is not set 629# CONFIG_MTD_ONENAND is not set
594 630
595# 631#
632# LPDDR flash memory drivers
633#
634# CONFIG_MTD_LPDDR is not set
635
636#
596# UBI - Unsorted block images 637# UBI - Unsorted block images
597# 638#
598# CONFIG_MTD_UBI is not set 639# CONFIG_MTD_UBI is not set
@@ -643,14 +684,20 @@ CONFIG_SMSC_PHY=y
643# CONFIG_BROADCOM_PHY is not set 684# CONFIG_BROADCOM_PHY is not set
644# CONFIG_ICPLUS_PHY is not set 685# CONFIG_ICPLUS_PHY is not set
645# CONFIG_REALTEK_PHY is not set 686# CONFIG_REALTEK_PHY is not set
687# CONFIG_NATIONAL_PHY is not set
688# CONFIG_STE10XP is not set
689# CONFIG_LSI_ET1011C_PHY is not set
646# CONFIG_FIXED_PHY is not set 690# CONFIG_FIXED_PHY is not set
647# CONFIG_MDIO_BITBANG is not set 691# CONFIG_MDIO_BITBANG is not set
648CONFIG_NET_ETHERNET=y 692CONFIG_NET_ETHERNET=y
649CONFIG_MII=y 693CONFIG_MII=y
650CONFIG_SMC91X=y 694CONFIG_SMC91X=y
651# CONFIG_SMSC911X is not set
652# CONFIG_DM9000 is not set 695# CONFIG_DM9000 is not set
653# CONFIG_ENC28J60 is not set 696# CONFIG_ENC28J60 is not set
697# CONFIG_ETHOC is not set
698# CONFIG_SMSC911X is not set
699# CONFIG_DNET is not set
700# CONFIG_ADF702X is not set
654# CONFIG_IBM_NEW_EMAC_ZMII is not set 701# CONFIG_IBM_NEW_EMAC_ZMII is not set
655# CONFIG_IBM_NEW_EMAC_RGMII is not set 702# CONFIG_IBM_NEW_EMAC_RGMII is not set
656# CONFIG_IBM_NEW_EMAC_TAH is not set 703# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -659,15 +706,16 @@ CONFIG_SMC91X=y
659# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 706# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
660# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 707# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
661# CONFIG_B44 is not set 708# CONFIG_B44 is not set
709# CONFIG_KS8842 is not set
710# CONFIG_KS8851 is not set
711# CONFIG_KS8851_MLL is not set
662# CONFIG_NETDEV_1000 is not set 712# CONFIG_NETDEV_1000 is not set
663# CONFIG_NETDEV_10000 is not set 713# CONFIG_NETDEV_10000 is not set
714# CONFIG_WLAN is not set
664 715
665# 716#
666# Wireless LAN 717# Enable WiMAX (Networking options) to see the WiMAX drivers
667# 718#
668# CONFIG_WLAN_PRE80211 is not set
669# CONFIG_WLAN_80211 is not set
670# CONFIG_IWLWIFI_LEDS is not set
671# CONFIG_WAN is not set 719# CONFIG_WAN is not set
672# CONFIG_PPP is not set 720# CONFIG_PPP is not set
673# CONFIG_SLIP is not set 721# CONFIG_SLIP is not set
@@ -700,14 +748,17 @@ CONFIG_INPUT_EVDEV=m
700# CONFIG_INPUT_JOYSTICK is not set 748# CONFIG_INPUT_JOYSTICK is not set
701# CONFIG_INPUT_TABLET is not set 749# CONFIG_INPUT_TABLET is not set
702CONFIG_INPUT_TOUCHSCREEN=y 750CONFIG_INPUT_TOUCHSCREEN=y
751# CONFIG_TOUCHSCREEN_ADS7846 is not set
703# CONFIG_TOUCHSCREEN_AD7877 is not set 752# CONFIG_TOUCHSCREEN_AD7877 is not set
704# CONFIG_TOUCHSCREEN_AD7879_I2C is not set 753# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
705CONFIG_TOUCHSCREEN_AD7879_SPI=y 754CONFIG_TOUCHSCREEN_AD7879_SPI=y
706CONFIG_TOUCHSCREEN_AD7879=y 755CONFIG_TOUCHSCREEN_AD7879=y
707# CONFIG_TOUCHSCREEN_ADS7846 is not set 756# CONFIG_TOUCHSCREEN_EETI is not set
708# CONFIG_TOUCHSCREEN_FUJITSU is not set 757# CONFIG_TOUCHSCREEN_FUJITSU is not set
709# CONFIG_TOUCHSCREEN_GUNZE is not set 758# CONFIG_TOUCHSCREEN_GUNZE is not set
710# CONFIG_TOUCHSCREEN_ELO is not set 759# CONFIG_TOUCHSCREEN_ELO is not set
760# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
761# CONFIG_TOUCHSCREEN_MCS5000 is not set
711# CONFIG_TOUCHSCREEN_MTOUCH is not set 762# CONFIG_TOUCHSCREEN_MTOUCH is not set
712# CONFIG_TOUCHSCREEN_INEXIO is not set 763# CONFIG_TOUCHSCREEN_INEXIO is not set
713# CONFIG_TOUCHSCREEN_MK712 is not set 764# CONFIG_TOUCHSCREEN_MK712 is not set
@@ -715,9 +766,13 @@ CONFIG_TOUCHSCREEN_AD7879=y
715# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 766# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
716# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 767# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
717# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set 768# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
769# CONFIG_TOUCHSCREEN_TSC2007 is not set
718CONFIG_INPUT_MISC=y 770CONFIG_INPUT_MISC=y
719# CONFIG_INPUT_UINPUT is not set 771# CONFIG_INPUT_UINPUT is not set
720# CONFIG_CONFIG_INPUT_PCF8574 is not set 772# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
773# CONFIG_INPUT_AD714X is not set
774# CONFIG_INPUT_ADXL34X is not set
775# CONFIG_INPUT_PCF8574 is not set
721 776
722# 777#
723# Hardware I/O ports 778# Hardware I/O ports
@@ -728,16 +783,13 @@ CONFIG_INPUT_MISC=y
728# 783#
729# Character devices 784# Character devices
730# 785#
731# CONFIG_AD9960 is not set
732CONFIG_BFIN_DMA_INTERFACE=m 786CONFIG_BFIN_DMA_INTERFACE=m
733# CONFIG_BFIN_PPI is not set 787# CONFIG_BFIN_PPI is not set
734# CONFIG_BFIN_PPIFCD is not set 788# CONFIG_BFIN_PPIFCD is not set
735# CONFIG_BFIN_SIMPLE_TIMER is not set 789# CONFIG_BFIN_SIMPLE_TIMER is not set
736# CONFIG_BFIN_SPI_ADC is not set 790# CONFIG_BFIN_SPI_ADC is not set
737CONFIG_BFIN_SPORT=m 791CONFIG_BFIN_SPORT=m
738# CONFIG_BFIN_TIMER_LATENCY is not set
739# CONFIG_BFIN_TWI_LCD is not set 792# CONFIG_BFIN_TWI_LCD is not set
740CONFIG_SIMPLE_GPIO=m
741# CONFIG_VT is not set 793# CONFIG_VT is not set
742# CONFIG_DEVKMEM is not set 794# CONFIG_DEVKMEM is not set
743CONFIG_BFIN_JTAG_COMM=m 795CONFIG_BFIN_JTAG_COMM=m
@@ -751,6 +803,7 @@ CONFIG_BFIN_JTAG_COMM=m
751# 803#
752# Non-8250 serial port support 804# Non-8250 serial port support
753# 805#
806# CONFIG_SERIAL_MAX3100 is not set
754CONFIG_SERIAL_BFIN=y 807CONFIG_SERIAL_BFIN=y
755CONFIG_SERIAL_BFIN_CONSOLE=y 808CONFIG_SERIAL_BFIN_CONSOLE=y
756CONFIG_SERIAL_BFIN_DMA=y 809CONFIG_SERIAL_BFIN_DMA=y
@@ -765,12 +818,8 @@ CONFIG_SERIAL_CORE=y
765CONFIG_SERIAL_CORE_CONSOLE=y 818CONFIG_SERIAL_CORE_CONSOLE=y
766# CONFIG_SERIAL_BFIN_SPORT is not set 819# CONFIG_SERIAL_BFIN_SPORT is not set
767CONFIG_UNIX98_PTYS=y 820CONFIG_UNIX98_PTYS=y
821# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
768# CONFIG_LEGACY_PTYS is not set 822# CONFIG_LEGACY_PTYS is not set
769
770#
771# CAN, the car bus and industrial fieldbus
772#
773# CONFIG_CAN4LINUX is not set
774# CONFIG_IPMI_HANDLER is not set 823# CONFIG_IPMI_HANDLER is not set
775# CONFIG_HW_RANDOM is not set 824# CONFIG_HW_RANDOM is not set
776# CONFIG_R3964 is not set 825# CONFIG_R3964 is not set
@@ -778,6 +827,7 @@ CONFIG_UNIX98_PTYS=y
778# CONFIG_TCG_TPM is not set 827# CONFIG_TCG_TPM is not set
779CONFIG_I2C=m 828CONFIG_I2C=m
780CONFIG_I2C_BOARDINFO=y 829CONFIG_I2C_BOARDINFO=y
830CONFIG_I2C_COMPAT=y
781# CONFIG_I2C_CHARDEV is not set 831# CONFIG_I2C_CHARDEV is not set
782CONFIG_I2C_HELPER_AUTO=y 832CONFIG_I2C_HELPER_AUTO=y
783 833
@@ -810,14 +860,6 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
810# Miscellaneous I2C Chip support 860# Miscellaneous I2C Chip support
811# 861#
812# CONFIG_DS1682 is not set 862# CONFIG_DS1682 is not set
813# CONFIG_EEPROM_AT24 is not set
814# CONFIG_SENSORS_AD5252 is not set
815# CONFIG_EEPROM_LEGACY is not set
816# CONFIG_SENSORS_PCF8574 is not set
817# CONFIG_PCF8575 is not set
818# CONFIG_SENSORS_PCA9539 is not set
819# CONFIG_SENSORS_PCF8591 is not set
820# CONFIG_SENSORS_MAX6875 is not set
821# CONFIG_SENSORS_TSL2550 is not set 863# CONFIG_SENSORS_TSL2550 is not set
822# CONFIG_I2C_DEBUG_CORE is not set 864# CONFIG_I2C_DEBUG_CORE is not set
823# CONFIG_I2C_DEBUG_ALGO is not set 865# CONFIG_I2C_DEBUG_ALGO is not set
@@ -834,13 +876,18 @@ CONFIG_SPI_BFIN=y
834# CONFIG_SPI_BFIN_LOCK is not set 876# CONFIG_SPI_BFIN_LOCK is not set
835# CONFIG_SPI_BFIN_SPORT is not set 877# CONFIG_SPI_BFIN_SPORT is not set
836# CONFIG_SPI_BITBANG is not set 878# CONFIG_SPI_BITBANG is not set
879# CONFIG_SPI_GPIO is not set
837 880
838# 881#
839# SPI Protocol Masters 882# SPI Protocol Masters
840# 883#
841# CONFIG_EEPROM_AT25 is not set
842# CONFIG_SPI_SPIDEV is not set 884# CONFIG_SPI_SPIDEV is not set
843# CONFIG_SPI_TLE62X0 is not set 885# CONFIG_SPI_TLE62X0 is not set
886
887#
888# PPS support
889#
890# CONFIG_PPS is not set
844CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 891CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
845CONFIG_GPIOLIB=y 892CONFIG_GPIOLIB=y
846# CONFIG_DEBUG_GPIO is not set 893# CONFIG_DEBUG_GPIO is not set
@@ -856,6 +903,7 @@ CONFIG_GPIO_SYSFS=y
856# CONFIG_GPIO_MAX732X is not set 903# CONFIG_GPIO_MAX732X is not set
857# CONFIG_GPIO_PCA953X is not set 904# CONFIG_GPIO_PCA953X is not set
858# CONFIG_GPIO_PCF857X is not set 905# CONFIG_GPIO_PCF857X is not set
906# CONFIG_GPIO_ADP5588 is not set
859 907
860# 908#
861# PCI GPIO expanders: 909# PCI GPIO expanders:
@@ -866,11 +914,15 @@ CONFIG_GPIO_SYSFS=y
866# 914#
867# CONFIG_GPIO_MAX7301 is not set 915# CONFIG_GPIO_MAX7301 is not set
868# CONFIG_GPIO_MCP23S08 is not set 916# CONFIG_GPIO_MCP23S08 is not set
917# CONFIG_GPIO_MC33880 is not set
918
919#
920# AC97 GPIO expanders:
921#
869# CONFIG_W1 is not set 922# CONFIG_W1 is not set
870# CONFIG_POWER_SUPPLY is not set 923# CONFIG_POWER_SUPPLY is not set
871# CONFIG_HWMON is not set 924# CONFIG_HWMON is not set
872# CONFIG_THERMAL is not set 925# CONFIG_THERMAL is not set
873# CONFIG_THERMAL_HWMON is not set
874CONFIG_WATCHDOG=y 926CONFIG_WATCHDOG=y
875# CONFIG_WATCHDOG_NOWAYOUT is not set 927# CONFIG_WATCHDOG_NOWAYOUT is not set
876 928
@@ -892,26 +944,17 @@ CONFIG_SSB_POSSIBLE=y
892# CONFIG_MFD_CORE is not set 944# CONFIG_MFD_CORE is not set
893# CONFIG_MFD_SM501 is not set 945# CONFIG_MFD_SM501 is not set
894# CONFIG_HTC_PASIC3 is not set 946# CONFIG_HTC_PASIC3 is not set
947# CONFIG_TPS65010 is not set
895# CONFIG_MFD_TMIO is not set 948# CONFIG_MFD_TMIO is not set
896# CONFIG_MFD_WM8400 is not set 949# CONFIG_MFD_WM8400 is not set
950# CONFIG_MFD_WM831X is not set
897# CONFIG_MFD_WM8350_I2C is not set 951# CONFIG_MFD_WM8350_I2C is not set
952# CONFIG_MFD_PCF50633 is not set
953# CONFIG_MFD_MC13783 is not set
954# CONFIG_AB3100_CORE is not set
955# CONFIG_EZX_PCAP is not set
898# CONFIG_REGULATOR is not set 956# CONFIG_REGULATOR is not set
899 957# CONFIG_MEDIA_SUPPORT is not set
900#
901# Multimedia devices
902#
903
904#
905# Multimedia core support
906#
907# CONFIG_VIDEO_DEV is not set
908# CONFIG_DVB_CORE is not set
909# CONFIG_VIDEO_MEDIA is not set
910
911#
912# Multimedia drivers
913#
914# CONFIG_DAB is not set
915 958
916# 959#
917# Graphics support 960# Graphics support
@@ -947,6 +990,7 @@ CONFIG_FB_BFIN_LQ035Q1=m
947# CONFIG_FB_VIRTUAL is not set 990# CONFIG_FB_VIRTUAL is not set
948# CONFIG_FB_METRONOME is not set 991# CONFIG_FB_METRONOME is not set
949# CONFIG_FB_MB862XX is not set 992# CONFIG_FB_MB862XX is not set
993# CONFIG_FB_BROADSHEET is not set
950# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 994# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
951 995
952# 996#
@@ -957,14 +1001,12 @@ CONFIG_FB_BFIN_LQ035Q1=m
957# CONFIG_SOUND is not set 1001# CONFIG_SOUND is not set
958CONFIG_HID_SUPPORT=y 1002CONFIG_HID_SUPPORT=y
959CONFIG_HID=y 1003CONFIG_HID=y
960# CONFIG_HID_DEBUG is not set
961# CONFIG_HIDRAW is not set 1004# CONFIG_HIDRAW is not set
962# CONFIG_HID_PID is not set 1005# CONFIG_HID_PID is not set
963 1006
964# 1007#
965# Special HID drivers 1008# Special HID drivers
966# 1009#
967CONFIG_HID_COMPAT=y
968# CONFIG_USB_SUPPORT is not set 1010# CONFIG_USB_SUPPORT is not set
969# CONFIG_MMC is not set 1011# CONFIG_MMC is not set
970# CONFIG_MEMSTICK is not set 1012# CONFIG_MEMSTICK is not set
@@ -1001,6 +1043,7 @@ CONFIG_RTC_INTF_DEV=y
1001# CONFIG_RTC_DRV_S35390A is not set 1043# CONFIG_RTC_DRV_S35390A is not set
1002# CONFIG_RTC_DRV_FM3130 is not set 1044# CONFIG_RTC_DRV_FM3130 is not set
1003# CONFIG_RTC_DRV_RX8581 is not set 1045# CONFIG_RTC_DRV_RX8581 is not set
1046# CONFIG_RTC_DRV_RX8025 is not set
1004 1047
1005# 1048#
1006# SPI RTC drivers 1049# SPI RTC drivers
@@ -1012,6 +1055,7 @@ CONFIG_RTC_INTF_DEV=y
1012# CONFIG_RTC_DRV_R9701 is not set 1055# CONFIG_RTC_DRV_R9701 is not set
1013# CONFIG_RTC_DRV_RS5C348 is not set 1056# CONFIG_RTC_DRV_RS5C348 is not set
1014# CONFIG_RTC_DRV_DS3234 is not set 1057# CONFIG_RTC_DRV_DS3234 is not set
1058# CONFIG_RTC_DRV_PCF2123 is not set
1015 1059
1016# 1060#
1017# Platform RTC drivers 1061# Platform RTC drivers
@@ -1032,10 +1076,21 @@ CONFIG_RTC_INTF_DEV=y
1032# 1076#
1033CONFIG_RTC_DRV_BFIN=y 1077CONFIG_RTC_DRV_BFIN=y
1034# CONFIG_DMADEVICES is not set 1078# CONFIG_DMADEVICES is not set
1079# CONFIG_AUXDISPLAY is not set
1035# CONFIG_UIO is not set 1080# CONFIG_UIO is not set
1081
1082#
1083# TI VLYNQ
1084#
1036# CONFIG_STAGING is not set 1085# CONFIG_STAGING is not set
1037 1086
1038# 1087#
1088# Firmware Drivers
1089#
1090# CONFIG_FIRMWARE_MEMMAP is not set
1091# CONFIG_SIGMA is not set
1092
1093#
1039# File systems 1094# File systems
1040# 1095#
1041# CONFIG_EXT2_FS is not set 1096# CONFIG_EXT2_FS is not set
@@ -1044,9 +1099,13 @@ CONFIG_RTC_DRV_BFIN=y
1044# CONFIG_REISERFS_FS is not set 1099# CONFIG_REISERFS_FS is not set
1045# CONFIG_JFS_FS is not set 1100# CONFIG_JFS_FS is not set
1046# CONFIG_FS_POSIX_ACL is not set 1101# CONFIG_FS_POSIX_ACL is not set
1047CONFIG_FILE_LOCKING=y
1048# CONFIG_XFS_FS is not set 1102# CONFIG_XFS_FS is not set
1103# CONFIG_GFS2_FS is not set
1049# CONFIG_OCFS2_FS is not set 1104# CONFIG_OCFS2_FS is not set
1105# CONFIG_BTRFS_FS is not set
1106# CONFIG_NILFS2_FS is not set
1107CONFIG_FILE_LOCKING=y
1108CONFIG_FSNOTIFY=y
1050# CONFIG_DNOTIFY is not set 1109# CONFIG_DNOTIFY is not set
1051CONFIG_INOTIFY=y 1110CONFIG_INOTIFY=y
1052CONFIG_INOTIFY_USER=y 1111CONFIG_INOTIFY_USER=y
@@ -1056,6 +1115,11 @@ CONFIG_INOTIFY_USER=y
1056# CONFIG_FUSE_FS is not set 1115# CONFIG_FUSE_FS is not set
1057 1116
1058# 1117#
1118# Caches
1119#
1120# CONFIG_FSCACHE is not set
1121
1122#
1059# CD-ROM/DVD Filesystems 1123# CD-ROM/DVD Filesystems
1060# 1124#
1061# CONFIG_ISO9660_FS is not set 1125# CONFIG_ISO9660_FS is not set
@@ -1074,13 +1138,9 @@ CONFIG_INOTIFY_USER=y
1074CONFIG_PROC_FS=y 1138CONFIG_PROC_FS=y
1075CONFIG_PROC_SYSCTL=y 1139CONFIG_PROC_SYSCTL=y
1076CONFIG_SYSFS=y 1140CONFIG_SYSFS=y
1077# CONFIG_TMPFS is not set
1078# CONFIG_HUGETLB_PAGE is not set 1141# CONFIG_HUGETLB_PAGE is not set
1079# CONFIG_CONFIGFS_FS is not set 1142# CONFIG_CONFIGFS_FS is not set
1080 1143CONFIG_MISC_FILESYSTEMS=y
1081#
1082# Miscellaneous filesystems
1083#
1084# CONFIG_ADFS_FS is not set 1144# CONFIG_ADFS_FS is not set
1085# CONFIG_AFFS_FS is not set 1145# CONFIG_AFFS_FS is not set
1086# CONFIG_HFS_FS is not set 1146# CONFIG_HFS_FS is not set
@@ -1099,17 +1159,8 @@ CONFIG_JFFS2_ZLIB=y
1099# CONFIG_JFFS2_LZO is not set 1159# CONFIG_JFFS2_LZO is not set
1100CONFIG_JFFS2_RTIME=y 1160CONFIG_JFFS2_RTIME=y
1101# CONFIG_JFFS2_RUBIN is not set 1161# CONFIG_JFFS2_RUBIN is not set
1102CONFIG_YAFFS_FS=m
1103CONFIG_YAFFS_YAFFS1=y
1104# CONFIG_YAFFS_9BYTE_TAGS is not set
1105# CONFIG_YAFFS_DOES_ECC is not set
1106CONFIG_YAFFS_YAFFS2=y
1107CONFIG_YAFFS_AUTO_YAFFS2=y
1108# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
1109# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
1110# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
1111CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
1112# CONFIG_CRAMFS is not set 1162# CONFIG_CRAMFS is not set
1163# CONFIG_SQUASHFS is not set
1113# CONFIG_VXFS_FS is not set 1164# CONFIG_VXFS_FS is not set
1114# CONFIG_MINIX_FS is not set 1165# CONFIG_MINIX_FS is not set
1115# CONFIG_OMFS_FS is not set 1166# CONFIG_OMFS_FS is not set
@@ -1128,7 +1179,6 @@ CONFIG_LOCKD=m
1128CONFIG_LOCKD_V4=y 1179CONFIG_LOCKD_V4=y
1129CONFIG_NFS_COMMON=y 1180CONFIG_NFS_COMMON=y
1130CONFIG_SUNRPC=m 1181CONFIG_SUNRPC=m
1131# CONFIG_SUNRPC_REGISTER_V4 is not set
1132# CONFIG_RPCSEC_GSS_KRB5 is not set 1182# CONFIG_RPCSEC_GSS_KRB5 is not set
1133# CONFIG_RPCSEC_GSS_SPKM3 is not set 1183# CONFIG_RPCSEC_GSS_SPKM3 is not set
1134CONFIG_SMB_FS=m 1184CONFIG_SMB_FS=m
@@ -1193,14 +1243,19 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1193CONFIG_ENABLE_MUST_CHECK=y 1243CONFIG_ENABLE_MUST_CHECK=y
1194CONFIG_FRAME_WARN=1024 1244CONFIG_FRAME_WARN=1024
1195# CONFIG_MAGIC_SYSRQ is not set 1245# CONFIG_MAGIC_SYSRQ is not set
1246# CONFIG_STRIP_ASM_SYMS is not set
1196# CONFIG_UNUSED_SYMBOLS is not set 1247# CONFIG_UNUSED_SYMBOLS is not set
1197CONFIG_DEBUG_FS=y 1248CONFIG_DEBUG_FS=y
1198# CONFIG_HEADERS_CHECK is not set 1249# CONFIG_HEADERS_CHECK is not set
1250CONFIG_DEBUG_SECTION_MISMATCH=y
1199CONFIG_DEBUG_KERNEL=y 1251CONFIG_DEBUG_KERNEL=y
1200CONFIG_DEBUG_SHIRQ=y 1252CONFIG_DEBUG_SHIRQ=y
1201CONFIG_DETECT_SOFTLOCKUP=y 1253CONFIG_DETECT_SOFTLOCKUP=y
1202# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set 1254# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1203CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 1255CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1256CONFIG_DETECT_HUNG_TASK=y
1257# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1258CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1204CONFIG_SCHED_DEBUG=y 1259CONFIG_SCHED_DEBUG=y
1205# CONFIG_SCHEDSTATS is not set 1260# CONFIG_SCHEDSTATS is not set
1206# CONFIG_TIMER_STATS is not set 1261# CONFIG_TIMER_STATS is not set
@@ -1208,31 +1263,39 @@ CONFIG_SCHED_DEBUG=y
1208# CONFIG_DEBUG_SLAB is not set 1263# CONFIG_DEBUG_SLAB is not set
1209# CONFIG_DEBUG_SPINLOCK is not set 1264# CONFIG_DEBUG_SPINLOCK is not set
1210# CONFIG_DEBUG_MUTEXES is not set 1265# CONFIG_DEBUG_MUTEXES is not set
1266# CONFIG_DEBUG_LOCK_ALLOC is not set
1267# CONFIG_PROVE_LOCKING is not set
1268# CONFIG_LOCK_STAT is not set
1211# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1269# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1212# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1270# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1213# CONFIG_DEBUG_KOBJECT is not set 1271# CONFIG_DEBUG_KOBJECT is not set
1214CONFIG_DEBUG_BUGVERBOSE=y 1272CONFIG_DEBUG_BUGVERBOSE=y
1215CONFIG_DEBUG_INFO=y 1273CONFIG_DEBUG_INFO=y
1216# CONFIG_DEBUG_VM is not set 1274# CONFIG_DEBUG_VM is not set
1275# CONFIG_DEBUG_NOMMU_REGIONS is not set
1217# CONFIG_DEBUG_WRITECOUNT is not set 1276# CONFIG_DEBUG_WRITECOUNT is not set
1218# CONFIG_DEBUG_MEMORY_INIT is not set 1277# CONFIG_DEBUG_MEMORY_INIT is not set
1219# CONFIG_DEBUG_LIST is not set 1278# CONFIG_DEBUG_LIST is not set
1220# CONFIG_DEBUG_SG is not set 1279# CONFIG_DEBUG_SG is not set
1280# CONFIG_DEBUG_NOTIFIERS is not set
1281# CONFIG_DEBUG_CREDENTIALS is not set
1221# CONFIG_FRAME_POINTER is not set 1282# CONFIG_FRAME_POINTER is not set
1222# CONFIG_BOOT_PRINTK_DELAY is not set 1283# CONFIG_BOOT_PRINTK_DELAY is not set
1223# CONFIG_RCU_TORTURE_TEST is not set 1284# CONFIG_RCU_TORTURE_TEST is not set
1224# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1285# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1225# CONFIG_BACKTRACE_SELF_TEST is not set 1286# CONFIG_BACKTRACE_SELF_TEST is not set
1226# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1287# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1288# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1227# CONFIG_FAULT_INJECTION is not set 1289# CONFIG_FAULT_INJECTION is not set
1228 1290# CONFIG_PAGE_POISONING is not set
1229# 1291CONFIG_HAVE_FUNCTION_TRACER=y
1230# Tracers 1292CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1231# 1293CONFIG_TRACING_SUPPORT=y
1232# CONFIG_SCHED_TRACER is not set 1294# CONFIG_FTRACE is not set
1233# CONFIG_CONTEXT_SWITCH_TRACER is not set 1295# CONFIG_BRANCH_PROFILE_NONE is not set
1234# CONFIG_BOOT_TRACER is not set 1296# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1235# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1297# CONFIG_PROFILE_ALL_BRANCHES is not set
1298# CONFIG_DYNAMIC_DEBUG is not set
1236# CONFIG_SAMPLES is not set 1299# CONFIG_SAMPLES is not set
1237CONFIG_HAVE_ARCH_KGDB=y 1300CONFIG_HAVE_ARCH_KGDB=y
1238# CONFIG_KGDB is not set 1301# CONFIG_KGDB is not set
@@ -1257,6 +1320,7 @@ CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE=y
1257CONFIG_EARLY_PRINTK=y 1320CONFIG_EARLY_PRINTK=y
1258CONFIG_CPLB_INFO=y 1321CONFIG_CPLB_INFO=y
1259CONFIG_ACCESS_CHECK=y 1322CONFIG_ACCESS_CHECK=y
1323# CONFIG_BFIN_ISRAM_SELF_TEST is not set
1260 1324
1261# 1325#
1262# Security options 1326# Security options
@@ -1265,14 +1329,14 @@ CONFIG_ACCESS_CHECK=y
1265CONFIG_SECURITY=y 1329CONFIG_SECURITY=y
1266# CONFIG_SECURITYFS is not set 1330# CONFIG_SECURITYFS is not set
1267# CONFIG_SECURITY_NETWORK is not set 1331# CONFIG_SECURITY_NETWORK is not set
1332# CONFIG_SECURITY_PATH is not set
1268# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1333# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1269CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1334# CONFIG_SECURITY_TOMOYO is not set
1270CONFIG_CRYPTO=y 1335CONFIG_CRYPTO=y
1271 1336
1272# 1337#
1273# Crypto core or helper 1338# Crypto core or helper
1274# 1339#
1275# CONFIG_CRYPTO_FIPS is not set
1276# CONFIG_CRYPTO_MANAGER is not set 1340# CONFIG_CRYPTO_MANAGER is not set
1277# CONFIG_CRYPTO_MANAGER2 is not set 1341# CONFIG_CRYPTO_MANAGER2 is not set
1278# CONFIG_CRYPTO_GF128MUL is not set 1342# CONFIG_CRYPTO_GF128MUL is not set
@@ -1304,11 +1368,13 @@ CONFIG_CRYPTO=y
1304# 1368#
1305# CONFIG_CRYPTO_HMAC is not set 1369# CONFIG_CRYPTO_HMAC is not set
1306# CONFIG_CRYPTO_XCBC is not set 1370# CONFIG_CRYPTO_XCBC is not set
1371# CONFIG_CRYPTO_VMAC is not set
1307 1372
1308# 1373#
1309# Digest 1374# Digest
1310# 1375#
1311# CONFIG_CRYPTO_CRC32C is not set 1376# CONFIG_CRYPTO_CRC32C is not set
1377# CONFIG_CRYPTO_GHASH is not set
1312# CONFIG_CRYPTO_MD4 is not set 1378# CONFIG_CRYPTO_MD4 is not set
1313# CONFIG_CRYPTO_MD5 is not set 1379# CONFIG_CRYPTO_MD5 is not set
1314# CONFIG_CRYPTO_MICHAEL_MIC is not set 1380# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1345,6 +1411,7 @@ CONFIG_CRYPTO=y
1345# Compression 1411# Compression
1346# 1412#
1347# CONFIG_CRYPTO_DEFLATE is not set 1413# CONFIG_CRYPTO_DEFLATE is not set
1414# CONFIG_CRYPTO_ZLIB is not set
1348# CONFIG_CRYPTO_LZO is not set 1415# CONFIG_CRYPTO_LZO is not set
1349 1416
1350# 1417#
@@ -1352,11 +1419,13 @@ CONFIG_CRYPTO=y
1352# 1419#
1353# CONFIG_CRYPTO_ANSI_CPRNG is not set 1420# CONFIG_CRYPTO_ANSI_CPRNG is not set
1354CONFIG_CRYPTO_HW=y 1421CONFIG_CRYPTO_HW=y
1422# CONFIG_BINARY_PRINTF is not set
1355 1423
1356# 1424#
1357# Library routines 1425# Library routines
1358# 1426#
1359CONFIG_BITREVERSE=y 1427CONFIG_BITREVERSE=y
1428CONFIG_GENERIC_FIND_LAST_BIT=y
1360CONFIG_CRC_CCITT=m 1429CONFIG_CRC_CCITT=m
1361# CONFIG_CRC16 is not set 1430# CONFIG_CRC16 is not set
1362# CONFIG_CRC_T10DIF is not set 1431# CONFIG_CRC_T10DIF is not set
@@ -1366,6 +1435,8 @@ CONFIG_CRC32=y
1366# CONFIG_LIBCRC32C is not set 1435# CONFIG_LIBCRC32C is not set
1367CONFIG_ZLIB_INFLATE=y 1436CONFIG_ZLIB_INFLATE=y
1368CONFIG_ZLIB_DEFLATE=m 1437CONFIG_ZLIB_DEFLATE=m
1438CONFIG_DECOMPRESS_GZIP=y
1369CONFIG_HAS_IOMEM=y 1439CONFIG_HAS_IOMEM=y
1370CONFIG_HAS_IOPORT=y 1440CONFIG_HAS_IOPORT=y
1371CONFIG_HAS_DMA=y 1441CONFIG_HAS_DMA=y
1442CONFIG_NLATTR=y
diff --git a/arch/blackfin/configs/BF548-EZKIT_defconfig b/arch/blackfin/configs/BF548-EZKIT_defconfig
index eb3e98b6f3f0..ca309cfc6ac4 100644
--- a/arch/blackfin/configs/BF548-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF548-EZKIT_defconfig
@@ -1,7 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.31.5 3# Linux kernel version: 2.6.32.2
4# Mon Nov 2 22:02:56 2009
5# 4#
6# CONFIG_MMU is not set 5# CONFIG_MMU is not set
7# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -12,7 +11,6 @@ CONFIG_GENERIC_CSUM=y
12CONFIG_GENERIC_BUG=y 11CONFIG_GENERIC_BUG=y
13CONFIG_ZONE_DMA=y 12CONFIG_ZONE_DMA=y
14CONFIG_GENERIC_FIND_NEXT_BIT=y 13CONFIG_GENERIC_FIND_NEXT_BIT=y
15CONFIG_GENERIC_HWEIGHT=y
16CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
17CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
18CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 16CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
@@ -49,11 +47,12 @@ CONFIG_SYSVIPC_SYSCTL=y
49# 47#
50# RCU Subsystem 48# RCU Subsystem
51# 49#
52CONFIG_CLASSIC_RCU=y 50CONFIG_TREE_RCU=y
53# CONFIG_TREE_RCU is not set 51# CONFIG_TREE_PREEMPT_RCU is not set
54# CONFIG_PREEMPT_RCU is not set 52# CONFIG_RCU_TRACE is not set
53CONFIG_RCU_FANOUT=32
54# CONFIG_RCU_FANOUT_EXACT is not set
55# CONFIG_TREE_RCU_TRACE is not set 55# CONFIG_TREE_RCU_TRACE is not set
56# CONFIG_PREEMPT_RCU_TRACE is not set
57CONFIG_IKCONFIG=y 56CONFIG_IKCONFIG=y
58CONFIG_IKCONFIG_PROC=y 57CONFIG_IKCONFIG_PROC=y
59CONFIG_LOG_BUF_SHIFT=14 58CONFIG_LOG_BUF_SHIFT=14
@@ -89,24 +88,23 @@ CONFIG_EPOLL=y
89# CONFIG_AIO is not set 88# CONFIG_AIO is not set
90 89
91# 90#
92# Performance Counters 91# Kernel Performance Events And Counters
93# 92#
94CONFIG_VM_EVENT_COUNTERS=y 93CONFIG_VM_EVENT_COUNTERS=y
95# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_COMPAT_BRK=y 94CONFIG_COMPAT_BRK=y
97CONFIG_SLAB=y 95CONFIG_SLAB=y
98# CONFIG_SLUB is not set 96# CONFIG_SLUB is not set
99# CONFIG_SLOB is not set 97# CONFIG_SLOB is not set
100CONFIG_MMAP_ALLOW_UNINITIALIZED=y 98CONFIG_MMAP_ALLOW_UNINITIALIZED=y
101# CONFIG_PROFILING is not set 99# CONFIG_PROFILING is not set
102# CONFIG_MARKERS is not set
103CONFIG_HAVE_OPROFILE=y 100CONFIG_HAVE_OPROFILE=y
104 101
105# 102#
106# GCOV-based kernel profiling 103# GCOV-based kernel profiling
107# 104#
108# CONFIG_GCOV_KERNEL is not set 105# CONFIG_GCOV_KERNEL is not set
109# CONFIG_SLOW_WORK is not set 106CONFIG_SLOW_WORK=y
107# CONFIG_SLOW_WORK_DEBUG is not set
110# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 108# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
111CONFIG_SLABINFO=y 109CONFIG_SLABINFO=y
112CONFIG_BASE_SMALL=0 110CONFIG_BASE_SMALL=0
@@ -163,15 +161,15 @@ CONFIG_PREEMPT_VOLUNTARY=y
163# CONFIG_BF537 is not set 161# CONFIG_BF537 is not set
164# CONFIG_BF538 is not set 162# CONFIG_BF538 is not set
165# CONFIG_BF539 is not set 163# CONFIG_BF539 is not set
166# CONFIG_BF542 is not set 164# CONFIG_BF542_std is not set
167# CONFIG_BF542M is not set 165# CONFIG_BF542M is not set
168# CONFIG_BF544 is not set 166# CONFIG_BF544_std is not set
169# CONFIG_BF544M is not set 167# CONFIG_BF544M is not set
170# CONFIG_BF547 is not set 168# CONFIG_BF547_std is not set
171# CONFIG_BF547M is not set 169# CONFIG_BF547M is not set
172CONFIG_BF548_std=y 170CONFIG_BF548_std=y
173# CONFIG_BF548M is not set 171# CONFIG_BF548M is not set
174# CONFIG_BF549 is not set 172# CONFIG_BF549_std is not set
175# CONFIG_BF549M is not set 173# CONFIG_BF549M is not set
176# CONFIG_BF561 is not set 174# CONFIG_BF561 is not set
177CONFIG_BF_REV_MIN=0 175CONFIG_BF_REV_MIN=0
@@ -185,7 +183,6 @@ CONFIG_BF_REV_0_2=y
185# CONFIG_BF_REV_0_6 is not set 183# CONFIG_BF_REV_0_6 is not set
186# CONFIG_BF_REV_ANY is not set 184# CONFIG_BF_REV_ANY is not set
187# CONFIG_BF_REV_NONE is not set 185# CONFIG_BF_REV_NONE is not set
188CONFIG_BF54x=y
189CONFIG_IRQ_PLL_WAKEUP=7 186CONFIG_IRQ_PLL_WAKEUP=7
190CONFIG_IRQ_RTC=8 187CONFIG_IRQ_RTC=8
191CONFIG_IRQ_SPORT0_RX=9 188CONFIG_IRQ_SPORT0_RX=9
@@ -221,6 +218,8 @@ CONFIG_IRQ_SPI1=10
221CONFIG_IRQ_SPI2=10 218CONFIG_IRQ_SPI2=10
222CONFIG_IRQ_TWI0=11 219CONFIG_IRQ_TWI0=11
223CONFIG_IRQ_TWI1=11 220CONFIG_IRQ_TWI1=11
221CONFIG_BF548=y
222CONFIG_BF54x=y
224CONFIG_BFIN548_EZKIT=y 223CONFIG_BFIN548_EZKIT=y
225# CONFIG_BFIN548_BLUETECHNIX_CM is not set 224# CONFIG_BFIN548_BLUETECHNIX_CM is not set
226 225
@@ -387,12 +386,14 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
387# CONFIG_PHYS_ADDR_T_64BIT is not set 386# CONFIG_PHYS_ADDR_T_64BIT is not set
388CONFIG_ZONE_DMA_FLAG=1 387CONFIG_ZONE_DMA_FLAG=1
389CONFIG_VIRT_TO_BUS=y 388CONFIG_VIRT_TO_BUS=y
390CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
391CONFIG_NOMMU_INITIAL_TRIM_EXCESS=0 389CONFIG_NOMMU_INITIAL_TRIM_EXCESS=0
392CONFIG_BFIN_GPTIMERS=m 390CONFIG_BFIN_GPTIMERS=m
393# CONFIG_DMA_UNCACHED_4M is not set 391# CONFIG_DMA_UNCACHED_4M is not set
394CONFIG_DMA_UNCACHED_2M=y 392CONFIG_DMA_UNCACHED_2M=y
395# CONFIG_DMA_UNCACHED_1M is not set 393# CONFIG_DMA_UNCACHED_1M is not set
394# CONFIG_DMA_UNCACHED_512K is not set
395# CONFIG_DMA_UNCACHED_256K is not set
396# CONFIG_DMA_UNCACHED_128K is not set
396# CONFIG_DMA_UNCACHED_NONE is not set 397# CONFIG_DMA_UNCACHED_NONE is not set
397 398
398# 399#
@@ -505,6 +506,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
505# CONFIG_NETFILTER is not set 506# CONFIG_NETFILTER is not set
506# CONFIG_IP_DCCP is not set 507# CONFIG_IP_DCCP is not set
507# CONFIG_IP_SCTP is not set 508# CONFIG_IP_SCTP is not set
509# CONFIG_RDS is not set
508# CONFIG_TIPC is not set 510# CONFIG_TIPC is not set
509# CONFIG_ATM is not set 511# CONFIG_ATM is not set
510# CONFIG_BRIDGE is not set 512# CONFIG_BRIDGE is not set
@@ -528,7 +530,24 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
528# 530#
529# CONFIG_NET_PKTGEN is not set 531# CONFIG_NET_PKTGEN is not set
530# CONFIG_HAMRADIO is not set 532# CONFIG_HAMRADIO is not set
531# CONFIG_CAN is not set 533CONFIG_CAN=m
534CONFIG_CAN_RAW=m
535CONFIG_CAN_BCM=m
536
537#
538# CAN Device Drivers
539#
540# CONFIG_CAN_VCAN is not set
541CONFIG_CAN_DEV=m
542# CONFIG_CAN_CALC_BITTIMING is not set
543CONFIG_CAN_BFIN=m
544# CONFIG_CAN_SJA1000 is not set
545
546#
547# CAN USB interfaces
548#
549# CONFIG_CAN_EMS_USB is not set
550# CONFIG_CAN_DEBUG_DEVICES is not set
532CONFIG_IRDA=m 551CONFIG_IRDA=m
533 552
534# 553#
@@ -663,6 +682,7 @@ CONFIG_MTD_PHYSMAP=y
663# CONFIG_MTD_DATAFLASH is not set 682# CONFIG_MTD_DATAFLASH is not set
664CONFIG_MTD_M25P80=y 683CONFIG_MTD_M25P80=y
665CONFIG_M25PXX_USE_FAST_READ=y 684CONFIG_M25PXX_USE_FAST_READ=y
685# CONFIG_MTD_SST25L is not set
666# CONFIG_MTD_SLRAM is not set 686# CONFIG_MTD_SLRAM is not set
667# CONFIG_MTD_PHRAM is not set 687# CONFIG_MTD_PHRAM is not set
668# CONFIG_MTD_MTDRAM is not set 688# CONFIG_MTD_MTDRAM is not set
@@ -711,10 +731,10 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
711# CONFIG_ATA_OVER_ETH is not set 731# CONFIG_ATA_OVER_ETH is not set
712# CONFIG_BLK_DEV_HD is not set 732# CONFIG_BLK_DEV_HD is not set
713CONFIG_MISC_DEVICES=y 733CONFIG_MISC_DEVICES=y
734# CONFIG_AD525X_DPOT is not set
714# CONFIG_ICS932S401 is not set 735# CONFIG_ICS932S401 is not set
715# CONFIG_ENCLOSURE_SERVICES is not set 736# CONFIG_ENCLOSURE_SERVICES is not set
716# CONFIG_ISL29003 is not set 737# CONFIG_ISL29003 is not set
717# CONFIG_AD525X_DPOT is not set
718# CONFIG_C2PORT is not set 738# CONFIG_C2PORT is not set
719 739
720# 740#
@@ -767,7 +787,8 @@ CONFIG_SCSI_WAIT_SCAN=m
767# CONFIG_SCSI_OSD_INITIATOR is not set 787# CONFIG_SCSI_OSD_INITIATOR is not set
768CONFIG_ATA=y 788CONFIG_ATA=y
769# CONFIG_ATA_NONSTANDARD is not set 789# CONFIG_ATA_NONSTANDARD is not set
770CONFIG_SATA_PMP=y 790CONFIG_ATA_VERBOSE_ERROR=y
791# CONFIG_SATA_PMP is not set
771CONFIG_ATA_SFF=y 792CONFIG_ATA_SFF=y
772# CONFIG_SATA_MV is not set 793# CONFIG_SATA_MV is not set
773# CONFIG_PATA_PLATFORM is not set 794# CONFIG_PATA_PLATFORM is not set
@@ -808,6 +829,7 @@ CONFIG_MII=y
808# CONFIG_ETHOC is not set 829# CONFIG_ETHOC is not set
809CONFIG_SMSC911X=y 830CONFIG_SMSC911X=y
810# CONFIG_DNET is not set 831# CONFIG_DNET is not set
832# CONFIG_ADF702X is not set
811# CONFIG_IBM_NEW_EMAC_ZMII is not set 833# CONFIG_IBM_NEW_EMAC_ZMII is not set
812# CONFIG_IBM_NEW_EMAC_RGMII is not set 834# CONFIG_IBM_NEW_EMAC_RGMII is not set
813# CONFIG_IBM_NEW_EMAC_TAH is not set 835# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -818,12 +840,10 @@ CONFIG_SMSC911X=y
818# CONFIG_B44 is not set 840# CONFIG_B44 is not set
819# CONFIG_KS8842 is not set 841# CONFIG_KS8842 is not set
820# CONFIG_KS8851 is not set 842# CONFIG_KS8851 is not set
843# CONFIG_KS8851_MLL is not set
821# CONFIG_NETDEV_1000 is not set 844# CONFIG_NETDEV_1000 is not set
822# CONFIG_NETDEV_10000 is not set 845# CONFIG_NETDEV_10000 is not set
823 846CONFIG_WLAN=y
824#
825# Wireless LAN
826#
827# CONFIG_WLAN_PRE80211 is not set 847# CONFIG_WLAN_PRE80211 is not set
828CONFIG_WLAN_80211=y 848CONFIG_WLAN_80211=y
829CONFIG_LIBERTAS=m 849CONFIG_LIBERTAS=m
@@ -877,10 +897,12 @@ CONFIG_INPUT_EVBUG=m
877CONFIG_INPUT_KEYBOARD=y 897CONFIG_INPUT_KEYBOARD=y
878# CONFIG_KEYBOARD_ADP5588 is not set 898# CONFIG_KEYBOARD_ADP5588 is not set
879# CONFIG_KEYBOARD_ATKBD is not set 899# CONFIG_KEYBOARD_ATKBD is not set
900# CONFIG_QT2160 is not set
880CONFIG_KEYBOARD_BFIN=y 901CONFIG_KEYBOARD_BFIN=y
881# CONFIG_KEYBOARD_LKKBD is not set 902# CONFIG_KEYBOARD_LKKBD is not set
882# CONFIG_KEYBOARD_GPIO is not set 903# CONFIG_KEYBOARD_GPIO is not set
883# CONFIG_KEYBOARD_MATRIX is not set 904# CONFIG_KEYBOARD_MATRIX is not set
905# CONFIG_KEYBOARD_MAX7359 is not set
884# CONFIG_KEYBOARD_NEWTON is not set 906# CONFIG_KEYBOARD_NEWTON is not set
885# CONFIG_KEYBOARD_OPENCORES is not set 907# CONFIG_KEYBOARD_OPENCORES is not set
886# CONFIG_KEYBOARD_STOWAWAY is not set 908# CONFIG_KEYBOARD_STOWAWAY is not set
@@ -900,6 +922,7 @@ CONFIG_TOUCHSCREEN_AD7877=m
900# CONFIG_TOUCHSCREEN_GUNZE is not set 922# CONFIG_TOUCHSCREEN_GUNZE is not set
901# CONFIG_TOUCHSCREEN_ELO is not set 923# CONFIG_TOUCHSCREEN_ELO is not set
902# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set 924# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
925# CONFIG_TOUCHSCREEN_MCS5000 is not set
903# CONFIG_TOUCHSCREEN_MTOUCH is not set 926# CONFIG_TOUCHSCREEN_MTOUCH is not set
904# CONFIG_TOUCHSCREEN_INEXIO is not set 927# CONFIG_TOUCHSCREEN_INEXIO is not set
905# CONFIG_TOUCHSCREEN_MK712 is not set 928# CONFIG_TOUCHSCREEN_MK712 is not set
@@ -910,7 +933,6 @@ CONFIG_TOUCHSCREEN_AD7877=m
910# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 933# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
911# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set 934# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
912# CONFIG_TOUCHSCREEN_TSC2007 is not set 935# CONFIG_TOUCHSCREEN_TSC2007 is not set
913# CONFIG_TOUCHSCREEN_W90X900 is not set
914CONFIG_INPUT_MISC=y 936CONFIG_INPUT_MISC=y
915# CONFIG_INPUT_ATI_REMOTE is not set 937# CONFIG_INPUT_ATI_REMOTE is not set
916# CONFIG_INPUT_ATI_REMOTE2 is not set 938# CONFIG_INPUT_ATI_REMOTE2 is not set
@@ -976,11 +998,6 @@ CONFIG_UNIX98_PTYS=y
976# CONFIG_LEGACY_PTYS is not set 998# CONFIG_LEGACY_PTYS is not set
977CONFIG_BFIN_OTP=y 999CONFIG_BFIN_OTP=y
978# CONFIG_BFIN_OTP_WRITE_ENABLE is not set 1000# CONFIG_BFIN_OTP_WRITE_ENABLE is not set
979
980#
981# CAN, the car bus and industrial fieldbus
982#
983# CONFIG_CAN4LINUX is not set
984# CONFIG_IPMI_HANDLER is not set 1001# CONFIG_IPMI_HANDLER is not set
985# CONFIG_HW_RANDOM is not set 1002# CONFIG_HW_RANDOM is not set
986# CONFIG_R3964 is not set 1003# CONFIG_R3964 is not set
@@ -988,6 +1005,7 @@ CONFIG_BFIN_OTP=y
988# CONFIG_TCG_TPM is not set 1005# CONFIG_TCG_TPM is not set
989CONFIG_I2C=y 1006CONFIG_I2C=y
990CONFIG_I2C_BOARDINFO=y 1007CONFIG_I2C_BOARDINFO=y
1008CONFIG_I2C_COMPAT=y
991CONFIG_I2C_CHARDEV=y 1009CONFIG_I2C_CHARDEV=y
992CONFIG_I2C_HELPER_AUTO=y 1010CONFIG_I2C_HELPER_AUTO=y
993 1011
@@ -1021,9 +1039,6 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
1021# Miscellaneous I2C Chip support 1039# Miscellaneous I2C Chip support
1022# 1040#
1023# CONFIG_DS1682 is not set 1041# CONFIG_DS1682 is not set
1024# CONFIG_SENSORS_PCF8574 is not set
1025# CONFIG_PCF8575 is not set
1026# CONFIG_SENSORS_PCA9539 is not set
1027# CONFIG_SENSORS_TSL2550 is not set 1042# CONFIG_SENSORS_TSL2550 is not set
1028# CONFIG_I2C_DEBUG_CORE is not set 1043# CONFIG_I2C_DEBUG_CORE is not set
1029# CONFIG_I2C_DEBUG_ALGO is not set 1044# CONFIG_I2C_DEBUG_ALGO is not set
@@ -1078,11 +1093,15 @@ CONFIG_GPIO_SYSFS=y
1078# 1093#
1079# CONFIG_GPIO_MAX7301 is not set 1094# CONFIG_GPIO_MAX7301 is not set
1080# CONFIG_GPIO_MCP23S08 is not set 1095# CONFIG_GPIO_MCP23S08 is not set
1096# CONFIG_GPIO_MC33880 is not set
1097
1098#
1099# AC97 GPIO expanders:
1100#
1081# CONFIG_W1 is not set 1101# CONFIG_W1 is not set
1082# CONFIG_POWER_SUPPLY is not set 1102# CONFIG_POWER_SUPPLY is not set
1083# CONFIG_HWMON is not set 1103# CONFIG_HWMON is not set
1084# CONFIG_THERMAL is not set 1104# CONFIG_THERMAL is not set
1085# CONFIG_THERMAL_HWMON is not set
1086CONFIG_WATCHDOG=y 1105CONFIG_WATCHDOG=y
1087# CONFIG_WATCHDOG_NOWAYOUT is not set 1106# CONFIG_WATCHDOG_NOWAYOUT is not set
1088 1107
@@ -1116,8 +1135,10 @@ CONFIG_SSB_POSSIBLE=y
1116# CONFIG_PMIC_DA903X is not set 1135# CONFIG_PMIC_DA903X is not set
1117# CONFIG_PMIC_ADP5520 is not set 1136# CONFIG_PMIC_ADP5520 is not set
1118# CONFIG_MFD_WM8400 is not set 1137# CONFIG_MFD_WM8400 is not set
1138# CONFIG_MFD_WM831X is not set
1119# CONFIG_MFD_WM8350_I2C is not set 1139# CONFIG_MFD_WM8350_I2C is not set
1120# CONFIG_MFD_PCF50633 is not set 1140# CONFIG_MFD_PCF50633 is not set
1141# CONFIG_MFD_MC13783 is not set
1121# CONFIG_AB3100_CORE is not set 1142# CONFIG_AB3100_CORE is not set
1122# CONFIG_EZX_PCAP is not set 1143# CONFIG_EZX_PCAP is not set
1123# CONFIG_REGULATOR is not set 1144# CONFIG_REGULATOR is not set
@@ -1192,6 +1213,7 @@ CONFIG_LOGO=y
1192CONFIG_LOGO_BLACKFIN_CLUT224=y 1213CONFIG_LOGO_BLACKFIN_CLUT224=y
1193CONFIG_SOUND=y 1214CONFIG_SOUND=y
1194CONFIG_SOUND_OSS_CORE=y 1215CONFIG_SOUND_OSS_CORE=y
1216CONFIG_SOUND_OSS_CORE_PRECLAIM=y
1195CONFIG_SND=y 1217CONFIG_SND=y
1196CONFIG_SND_TIMER=y 1218CONFIG_SND_TIMER=y
1197CONFIG_SND_PCM=y 1219CONFIG_SND_PCM=y
@@ -1245,7 +1267,6 @@ CONFIG_SND_SOC_AD1980=y
1245CONFIG_AC97_BUS=y 1267CONFIG_AC97_BUS=y
1246CONFIG_HID_SUPPORT=y 1268CONFIG_HID_SUPPORT=y
1247CONFIG_HID=y 1269CONFIG_HID=y
1248# CONFIG_HID_DEBUG is not set
1249# CONFIG_HIDRAW is not set 1270# CONFIG_HIDRAW is not set
1250 1271
1251# 1272#
@@ -1268,6 +1289,7 @@ CONFIG_HID_CYPRESS=y
1268CONFIG_HID_EZKEY=y 1289CONFIG_HID_EZKEY=y
1269# CONFIG_HID_KYE is not set 1290# CONFIG_HID_KYE is not set
1270CONFIG_HID_GYRATION=y 1291CONFIG_HID_GYRATION=y
1292# CONFIG_HID_TWINHAN is not set
1271# CONFIG_HID_KENSINGTON is not set 1293# CONFIG_HID_KENSINGTON is not set
1272CONFIG_HID_LOGITECH=y 1294CONFIG_HID_LOGITECH=y
1273# CONFIG_LOGITECH_FF is not set 1295# CONFIG_LOGITECH_FF is not set
@@ -1422,10 +1444,11 @@ CONFIG_MMC_BLOCK_BOUNCE=y
1422# MMC/SD/SDIO Host Controller Drivers 1444# MMC/SD/SDIO Host Controller Drivers
1423# 1445#
1424# CONFIG_MMC_SDHCI is not set 1446# CONFIG_MMC_SDHCI is not set
1447# CONFIG_MMC_AT91 is not set
1448# CONFIG_MMC_ATMELMCI is not set
1449# CONFIG_MMC_SPI is not set
1425CONFIG_SDH_BFIN=y 1450CONFIG_SDH_BFIN=y
1426# CONFIG_SDH_BFIN_MISSING_CMD_PULLUP_WORKAROUND is not set 1451# CONFIG_SDH_BFIN_MISSING_CMD_PULLUP_WORKAROUND is not set
1427# CONFIG_SDH_BFIN_ENABLE_SDIO_IRQ is not set
1428# CONFIG_MMC_SPI is not set
1429# CONFIG_MEMSTICK is not set 1452# CONFIG_MEMSTICK is not set
1430# CONFIG_NEW_LEDS is not set 1453# CONFIG_NEW_LEDS is not set
1431# CONFIG_ACCESSIBILITY is not set 1454# CONFIG_ACCESSIBILITY is not set
@@ -1472,6 +1495,7 @@ CONFIG_RTC_INTF_DEV=y
1472# CONFIG_RTC_DRV_R9701 is not set 1495# CONFIG_RTC_DRV_R9701 is not set
1473# CONFIG_RTC_DRV_RS5C348 is not set 1496# CONFIG_RTC_DRV_RS5C348 is not set
1474# CONFIG_RTC_DRV_DS3234 is not set 1497# CONFIG_RTC_DRV_DS3234 is not set
1498# CONFIG_RTC_DRV_PCF2123 is not set
1475 1499
1476# 1500#
1477# Platform RTC drivers 1501# Platform RTC drivers
@@ -1522,6 +1546,7 @@ CONFIG_FS_MBCACHE=y
1522# CONFIG_XFS_FS is not set 1546# CONFIG_XFS_FS is not set
1523# CONFIG_OCFS2_FS is not set 1547# CONFIG_OCFS2_FS is not set
1524# CONFIG_BTRFS_FS is not set 1548# CONFIG_BTRFS_FS is not set
1549# CONFIG_NILFS2_FS is not set
1525CONFIG_FILE_LOCKING=y 1550CONFIG_FILE_LOCKING=y
1526CONFIG_FSNOTIFY=y 1551CONFIG_FSNOTIFY=y
1527# CONFIG_DNOTIFY is not set 1552# CONFIG_DNOTIFY is not set
@@ -1563,7 +1588,6 @@ CONFIG_NTFS_RW=y
1563CONFIG_PROC_FS=y 1588CONFIG_PROC_FS=y
1564CONFIG_PROC_SYSCTL=y 1589CONFIG_PROC_SYSCTL=y
1565CONFIG_SYSFS=y 1590CONFIG_SYSFS=y
1566# CONFIG_TMPFS is not set
1567# CONFIG_HUGETLB_PAGE is not set 1591# CONFIG_HUGETLB_PAGE is not set
1568# CONFIG_CONFIGFS_FS is not set 1592# CONFIG_CONFIGFS_FS is not set
1569CONFIG_MISC_FILESYSTEMS=y 1593CONFIG_MISC_FILESYSTEMS=y
@@ -1595,7 +1619,6 @@ CONFIG_JFFS2_RTIME=y
1595# CONFIG_ROMFS_FS is not set 1619# CONFIG_ROMFS_FS is not set
1596# CONFIG_SYSV_FS is not set 1620# CONFIG_SYSV_FS is not set
1597# CONFIG_UFS_FS is not set 1621# CONFIG_UFS_FS is not set
1598# CONFIG_NILFS2_FS is not set
1599CONFIG_NETWORK_FILESYSTEMS=y 1622CONFIG_NETWORK_FILESYSTEMS=y
1600CONFIG_NFS_FS=m 1623CONFIG_NFS_FS=m
1601CONFIG_NFS_V3=y 1624CONFIG_NFS_V3=y
@@ -1680,6 +1703,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1680CONFIG_ENABLE_MUST_CHECK=y 1703CONFIG_ENABLE_MUST_CHECK=y
1681CONFIG_FRAME_WARN=1024 1704CONFIG_FRAME_WARN=1024
1682# CONFIG_MAGIC_SYSRQ is not set 1705# CONFIG_MAGIC_SYSRQ is not set
1706# CONFIG_STRIP_ASM_SYMS is not set
1683# CONFIG_UNUSED_SYMBOLS is not set 1707# CONFIG_UNUSED_SYMBOLS is not set
1684CONFIG_DEBUG_FS=y 1708CONFIG_DEBUG_FS=y
1685# CONFIG_HEADERS_CHECK is not set 1709# CONFIG_HEADERS_CHECK is not set
@@ -1714,12 +1738,14 @@ CONFIG_DEBUG_INFO=y
1714# CONFIG_DEBUG_LIST is not set 1738# CONFIG_DEBUG_LIST is not set
1715# CONFIG_DEBUG_SG is not set 1739# CONFIG_DEBUG_SG is not set
1716# CONFIG_DEBUG_NOTIFIERS is not set 1740# CONFIG_DEBUG_NOTIFIERS is not set
1741# CONFIG_DEBUG_CREDENTIALS is not set
1717# CONFIG_FRAME_POINTER is not set 1742# CONFIG_FRAME_POINTER is not set
1718# CONFIG_BOOT_PRINTK_DELAY is not set 1743# CONFIG_BOOT_PRINTK_DELAY is not set
1719# CONFIG_RCU_TORTURE_TEST is not set 1744# CONFIG_RCU_TORTURE_TEST is not set
1720# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1745# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1721# CONFIG_BACKTRACE_SELF_TEST is not set 1746# CONFIG_BACKTRACE_SELF_TEST is not set
1722# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1747# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1748# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1723# CONFIG_FAULT_INJECTION is not set 1749# CONFIG_FAULT_INJECTION is not set
1724# CONFIG_PAGE_POISONING is not set 1750# CONFIG_PAGE_POISONING is not set
1725CONFIG_HAVE_FUNCTION_TRACER=y 1751CONFIG_HAVE_FUNCTION_TRACER=y
@@ -1730,7 +1756,6 @@ CONFIG_TRACING_SUPPORT=y
1730# CONFIG_SAMPLES is not set 1756# CONFIG_SAMPLES is not set
1731CONFIG_HAVE_ARCH_KGDB=y 1757CONFIG_HAVE_ARCH_KGDB=y
1732# CONFIG_KGDB is not set 1758# CONFIG_KGDB is not set
1733# CONFIG_KMEMCHECK is not set
1734# CONFIG_DEBUG_STACKOVERFLOW is not set 1759# CONFIG_DEBUG_STACKOVERFLOW is not set
1735# CONFIG_DEBUG_STACK_USAGE is not set 1760# CONFIG_DEBUG_STACK_USAGE is not set
1736CONFIG_DEBUG_VERBOSE=y 1761CONFIG_DEBUG_VERBOSE=y
@@ -1766,7 +1791,6 @@ CONFIG_CRYPTO=y
1766# 1791#
1767# Crypto core or helper 1792# Crypto core or helper
1768# 1793#
1769# CONFIG_CRYPTO_FIPS is not set
1770# CONFIG_CRYPTO_MANAGER is not set 1794# CONFIG_CRYPTO_MANAGER is not set
1771# CONFIG_CRYPTO_MANAGER2 is not set 1795# CONFIG_CRYPTO_MANAGER2 is not set
1772# CONFIG_CRYPTO_GF128MUL is not set 1796# CONFIG_CRYPTO_GF128MUL is not set
@@ -1798,11 +1822,13 @@ CONFIG_CRYPTO=y
1798# 1822#
1799# CONFIG_CRYPTO_HMAC is not set 1823# CONFIG_CRYPTO_HMAC is not set
1800# CONFIG_CRYPTO_XCBC is not set 1824# CONFIG_CRYPTO_XCBC is not set
1825# CONFIG_CRYPTO_VMAC is not set
1801 1826
1802# 1827#
1803# Digest 1828# Digest
1804# 1829#
1805# CONFIG_CRYPTO_CRC32C is not set 1830# CONFIG_CRYPTO_CRC32C is not set
1831# CONFIG_CRYPTO_GHASH is not set
1806# CONFIG_CRYPTO_MD4 is not set 1832# CONFIG_CRYPTO_MD4 is not set
1807# CONFIG_CRYPTO_MD5 is not set 1833# CONFIG_CRYPTO_MD5 is not set
1808# CONFIG_CRYPTO_MICHAEL_MIC is not set 1834# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/blackfin/configs/BF561-ACVILON_defconfig b/arch/blackfin/configs/BF561-ACVILON_defconfig
index b9b0f93d0bd3..6a776ce75e9c 100644
--- a/arch/blackfin/configs/BF561-ACVILON_defconfig
+++ b/arch/blackfin/configs/BF561-ACVILON_defconfig
@@ -114,7 +114,7 @@ CONFIG_MODULE_UNLOAD=y
114# CONFIG_MODVERSIONS is not set 114# CONFIG_MODVERSIONS is not set
115# CONFIG_MODULE_SRCVERSION_ALL is not set 115# CONFIG_MODULE_SRCVERSION_ALL is not set
116CONFIG_BLOCK=y 116CONFIG_BLOCK=y
117CONFIG_LBDAF=y 117# CONFIG_LBDAF is not set
118# CONFIG_BLK_DEV_BSG is not set 118# CONFIG_BLK_DEV_BSG is not set
119# CONFIG_BLK_DEV_INTEGRITY is not set 119# CONFIG_BLK_DEV_INTEGRITY is not set
120 120
@@ -1486,19 +1486,10 @@ CONFIG_DEBUG_INFO=y
1486CONFIG_HAVE_FUNCTION_TRACER=y 1486CONFIG_HAVE_FUNCTION_TRACER=y
1487CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1487CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1488CONFIG_TRACING_SUPPORT=y 1488CONFIG_TRACING_SUPPORT=y
1489CONFIG_FTRACE=y 1489# CONFIG_FTRACE is not set
1490# CONFIG_FUNCTION_TRACER is not set 1490# CONFIG_BRANCH_PROFILE_NONE is not set
1491# CONFIG_IRQSOFF_TRACER is not set
1492# CONFIG_SCHED_TRACER is not set
1493# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1494# CONFIG_BOOT_TRACER is not set
1495CONFIG_BRANCH_PROFILE_NONE=y
1496# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set 1491# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1497# CONFIG_PROFILE_ALL_BRANCHES is not set 1492# CONFIG_PROFILE_ALL_BRANCHES is not set
1498# CONFIG_STACK_TRACER is not set
1499# CONFIG_KMEMTRACE is not set
1500# CONFIG_WORKQUEUE_TRACER is not set
1501# CONFIG_BLK_DEV_IO_TRACE is not set
1502# CONFIG_DYNAMIC_DEBUG is not set 1493# CONFIG_DYNAMIC_DEBUG is not set
1503# CONFIG_SAMPLES is not set 1494# CONFIG_SAMPLES is not set
1504CONFIG_HAVE_ARCH_KGDB=y 1495CONFIG_HAVE_ARCH_KGDB=y
diff --git a/arch/blackfin/configs/BF561-EZKIT_defconfig b/arch/blackfin/configs/BF561-EZKIT_defconfig
index e3ecdcc3e76b..792ff0938835 100644
--- a/arch/blackfin/configs/BF561-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF561-EZKIT_defconfig
@@ -1,7 +1,6 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.31.5 3# Linux kernel version: 2.6.32.2
4# Mon Nov 2 21:59:31 2009
5# 4#
6# CONFIG_MMU is not set 5# CONFIG_MMU is not set
7# CONFIG_FPU is not set 6# CONFIG_FPU is not set
@@ -12,7 +11,6 @@ CONFIG_GENERIC_CSUM=y
12CONFIG_GENERIC_BUG=y 11CONFIG_GENERIC_BUG=y
13CONFIG_ZONE_DMA=y 12CONFIG_ZONE_DMA=y
14CONFIG_GENERIC_FIND_NEXT_BIT=y 13CONFIG_GENERIC_FIND_NEXT_BIT=y
15CONFIG_GENERIC_HWEIGHT=y
16CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
17CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
18CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 16CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
@@ -49,11 +47,12 @@ CONFIG_SYSVIPC_SYSCTL=y
49# 47#
50# RCU Subsystem 48# RCU Subsystem
51# 49#
52CONFIG_CLASSIC_RCU=y 50CONFIG_TREE_RCU=y
53# CONFIG_TREE_RCU is not set 51# CONFIG_TREE_PREEMPT_RCU is not set
54# CONFIG_PREEMPT_RCU is not set 52# CONFIG_RCU_TRACE is not set
53CONFIG_RCU_FANOUT=32
54# CONFIG_RCU_FANOUT_EXACT is not set
55# CONFIG_TREE_RCU_TRACE is not set 55# CONFIG_TREE_RCU_TRACE is not set
56# CONFIG_PREEMPT_RCU_TRACE is not set
57CONFIG_IKCONFIG=y 56CONFIG_IKCONFIG=y
58CONFIG_IKCONFIG_PROC=y 57CONFIG_IKCONFIG_PROC=y
59CONFIG_LOG_BUF_SHIFT=14 58CONFIG_LOG_BUF_SHIFT=14
@@ -89,17 +88,15 @@ CONFIG_EPOLL=y
89# CONFIG_AIO is not set 88# CONFIG_AIO is not set
90 89
91# 90#
92# Performance Counters 91# Kernel Performance Events And Counters
93# 92#
94CONFIG_VM_EVENT_COUNTERS=y 93CONFIG_VM_EVENT_COUNTERS=y
95# CONFIG_STRIP_ASM_SYMS is not set
96CONFIG_COMPAT_BRK=y 94CONFIG_COMPAT_BRK=y
97CONFIG_SLAB=y 95CONFIG_SLAB=y
98# CONFIG_SLUB is not set 96# CONFIG_SLUB is not set
99# CONFIG_SLOB is not set 97# CONFIG_SLOB is not set
100CONFIG_MMAP_ALLOW_UNINITIALIZED=y 98CONFIG_MMAP_ALLOW_UNINITIALIZED=y
101# CONFIG_PROFILING is not set 99# CONFIG_PROFILING is not set
102# CONFIG_MARKERS is not set
103CONFIG_HAVE_OPROFILE=y 100CONFIG_HAVE_OPROFILE=y
104 101
105# 102#
@@ -163,15 +160,15 @@ CONFIG_PREEMPT_VOLUNTARY=y
163# CONFIG_BF537 is not set 160# CONFIG_BF537 is not set
164# CONFIG_BF538 is not set 161# CONFIG_BF538 is not set
165# CONFIG_BF539 is not set 162# CONFIG_BF539 is not set
166# CONFIG_BF542 is not set 163# CONFIG_BF542_std is not set
167# CONFIG_BF542M is not set 164# CONFIG_BF542M is not set
168# CONFIG_BF544 is not set 165# CONFIG_BF544_std is not set
169# CONFIG_BF544M is not set 166# CONFIG_BF544M is not set
170# CONFIG_BF547 is not set 167# CONFIG_BF547_std is not set
171# CONFIG_BF547M is not set 168# CONFIG_BF547M is not set
172# CONFIG_BF548 is not set 169# CONFIG_BF548_std is not set
173# CONFIG_BF548M is not set 170# CONFIG_BF548M is not set
174# CONFIG_BF549 is not set 171# CONFIG_BF549_std is not set
175# CONFIG_BF549M is not set 172# CONFIG_BF549M is not set
176CONFIG_BF561=y 173CONFIG_BF561=y
177# CONFIG_SMP is not set 174# CONFIG_SMP is not set
@@ -180,9 +177,9 @@ CONFIG_BF_REV_MAX=5
180# CONFIG_BF_REV_0_0 is not set 177# CONFIG_BF_REV_0_0 is not set
181# CONFIG_BF_REV_0_1 is not set 178# CONFIG_BF_REV_0_1 is not set
182# CONFIG_BF_REV_0_2 is not set 179# CONFIG_BF_REV_0_2 is not set
183# CONFIG_BF_REV_0_3 is not set 180CONFIG_BF_REV_0_3=y
184# CONFIG_BF_REV_0_4 is not set 181# CONFIG_BF_REV_0_4 is not set
185CONFIG_BF_REV_0_5=y 182# CONFIG_BF_REV_0_5 is not set
186# CONFIG_BF_REV_0_6 is not set 183# CONFIG_BF_REV_0_6 is not set
187# CONFIG_BF_REV_ANY is not set 184# CONFIG_BF_REV_ANY is not set
188# CONFIG_BF_REV_NONE is not set 185# CONFIG_BF_REV_NONE is not set
@@ -298,7 +295,7 @@ CONFIG_GENERIC_TIME=y
298CONFIG_GENERIC_CLOCKEVENTS=y 295CONFIG_GENERIC_CLOCKEVENTS=y
299# CONFIG_TICKSOURCE_GPTMR0 is not set 296# CONFIG_TICKSOURCE_GPTMR0 is not set
300CONFIG_TICKSOURCE_CORETMR=y 297CONFIG_TICKSOURCE_CORETMR=y
301# CONFIG_CYCLES_CLOCKSOURCE is not set 298CONFIG_CYCLES_CLOCKSOURCE=y
302# CONFIG_GPTMR0_CLOCKSOURCE is not set 299# CONFIG_GPTMR0_CLOCKSOURCE is not set
303CONFIG_TICK_ONESHOT=y 300CONFIG_TICK_ONESHOT=y
304# CONFIG_NO_HZ is not set 301# CONFIG_NO_HZ is not set
@@ -353,12 +350,14 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
353# CONFIG_PHYS_ADDR_T_64BIT is not set 350# CONFIG_PHYS_ADDR_T_64BIT is not set
354CONFIG_ZONE_DMA_FLAG=1 351CONFIG_ZONE_DMA_FLAG=1
355CONFIG_VIRT_TO_BUS=y 352CONFIG_VIRT_TO_BUS=y
356CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
357CONFIG_NOMMU_INITIAL_TRIM_EXCESS=0 353CONFIG_NOMMU_INITIAL_TRIM_EXCESS=0
358CONFIG_BFIN_GPTIMERS=m 354CONFIG_BFIN_GPTIMERS=m
359# CONFIG_DMA_UNCACHED_4M is not set 355# CONFIG_DMA_UNCACHED_4M is not set
360# CONFIG_DMA_UNCACHED_2M is not set 356# CONFIG_DMA_UNCACHED_2M is not set
361CONFIG_DMA_UNCACHED_1M=y 357CONFIG_DMA_UNCACHED_1M=y
358# CONFIG_DMA_UNCACHED_512K is not set
359# CONFIG_DMA_UNCACHED_256K is not set
360# CONFIG_DMA_UNCACHED_128K is not set
362# CONFIG_DMA_UNCACHED_NONE is not set 361# CONFIG_DMA_UNCACHED_NONE is not set
363 362
364# 363#
@@ -370,9 +369,11 @@ CONFIG_BFIN_EXTMEM_ICACHEABLE=y
370CONFIG_BFIN_DCACHE=y 369CONFIG_BFIN_DCACHE=y
371# CONFIG_BFIN_DCACHE_BANKA is not set 370# CONFIG_BFIN_DCACHE_BANKA is not set
372CONFIG_BFIN_EXTMEM_DCACHEABLE=y 371CONFIG_BFIN_EXTMEM_DCACHEABLE=y
373CONFIG_BFIN_EXTMEM_WRITEBACK=y 372# CONFIG_BFIN_EXTMEM_WRITEBACK is not set
374# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 373CONFIG_BFIN_EXTMEM_WRITETHROUGH=y
375# CONFIG_BFIN_L2_DCACHEABLE is not set 374CONFIG_BFIN_L2_DCACHEABLE=y
375# CONFIG_BFIN_L2_WRITEBACK is not set
376CONFIG_BFIN_L2_WRITETHROUGH=y
376 377
377# 378#
378# Memory Protection Unit 379# Memory Protection Unit
@@ -472,6 +473,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
472# CONFIG_NETFILTER is not set 473# CONFIG_NETFILTER is not set
473# CONFIG_IP_DCCP is not set 474# CONFIG_IP_DCCP is not set
474# CONFIG_IP_SCTP is not set 475# CONFIG_IP_SCTP is not set
476# CONFIG_RDS is not set
475# CONFIG_TIPC is not set 477# CONFIG_TIPC is not set
476# CONFIG_ATM is not set 478# CONFIG_ATM is not set
477# CONFIG_BRIDGE is not set 479# CONFIG_BRIDGE is not set
@@ -613,6 +615,7 @@ CONFIG_MTD_PHYSMAP=m
613# 615#
614# CONFIG_MTD_DATAFLASH is not set 616# CONFIG_MTD_DATAFLASH is not set
615# CONFIG_MTD_M25P80 is not set 617# CONFIG_MTD_M25P80 is not set
618# CONFIG_MTD_SST25L is not set
616# CONFIG_MTD_SLRAM is not set 619# CONFIG_MTD_SLRAM is not set
617# CONFIG_MTD_PHRAM is not set 620# CONFIG_MTD_PHRAM is not set
618# CONFIG_MTD_MTDRAM is not set 621# CONFIG_MTD_MTDRAM is not set
@@ -685,6 +688,7 @@ CONFIG_SMC91X=y
685# CONFIG_ETHOC is not set 688# CONFIG_ETHOC is not set
686# CONFIG_SMSC911X is not set 689# CONFIG_SMSC911X is not set
687# CONFIG_DNET is not set 690# CONFIG_DNET is not set
691# CONFIG_ADF702X is not set
688# CONFIG_IBM_NEW_EMAC_ZMII is not set 692# CONFIG_IBM_NEW_EMAC_ZMII is not set
689# CONFIG_IBM_NEW_EMAC_RGMII is not set 693# CONFIG_IBM_NEW_EMAC_RGMII is not set
690# CONFIG_IBM_NEW_EMAC_TAH is not set 694# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -695,14 +699,10 @@ CONFIG_SMC91X=y
695# CONFIG_B44 is not set 699# CONFIG_B44 is not set
696# CONFIG_KS8842 is not set 700# CONFIG_KS8842 is not set
697# CONFIG_KS8851 is not set 701# CONFIG_KS8851 is not set
702# CONFIG_KS8851_MLL is not set
698# CONFIG_NETDEV_1000 is not set 703# CONFIG_NETDEV_1000 is not set
699# CONFIG_NETDEV_10000 is not set 704# CONFIG_NETDEV_10000 is not set
700 705# CONFIG_WLAN is not set
701#
702# Wireless LAN
703#
704# CONFIG_WLAN_PRE80211 is not set
705# CONFIG_WLAN_80211 is not set
706 706
707# 707#
708# Enable WiMAX (Networking options) to see the WiMAX drivers 708# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -782,11 +782,6 @@ CONFIG_SERIAL_CORE_CONSOLE=y
782CONFIG_UNIX98_PTYS=y 782CONFIG_UNIX98_PTYS=y
783# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 783# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
784# CONFIG_LEGACY_PTYS is not set 784# CONFIG_LEGACY_PTYS is not set
785
786#
787# CAN, the car bus and industrial fieldbus
788#
789# CONFIG_CAN4LINUX is not set
790# CONFIG_IPMI_HANDLER is not set 785# CONFIG_IPMI_HANDLER is not set
791# CONFIG_HW_RANDOM is not set 786# CONFIG_HW_RANDOM is not set
792# CONFIG_R3964 is not set 787# CONFIG_R3964 is not set
@@ -838,11 +833,15 @@ CONFIG_GPIO_SYSFS=y
838# 833#
839# CONFIG_GPIO_MAX7301 is not set 834# CONFIG_GPIO_MAX7301 is not set
840# CONFIG_GPIO_MCP23S08 is not set 835# CONFIG_GPIO_MCP23S08 is not set
836# CONFIG_GPIO_MC33880 is not set
837
838#
839# AC97 GPIO expanders:
840#
841# CONFIG_W1 is not set 841# CONFIG_W1 is not set
842# CONFIG_POWER_SUPPLY is not set 842# CONFIG_POWER_SUPPLY is not set
843# CONFIG_HWMON is not set 843# CONFIG_HWMON is not set
844# CONFIG_THERMAL is not set 844# CONFIG_THERMAL is not set
845# CONFIG_THERMAL_HWMON is not set
846CONFIG_WATCHDOG=y 845CONFIG_WATCHDOG=y
847# CONFIG_WATCHDOG_NOWAYOUT is not set 846# CONFIG_WATCHDOG_NOWAYOUT is not set
848 847
@@ -865,6 +864,7 @@ CONFIG_SSB_POSSIBLE=y
865# CONFIG_MFD_SM501 is not set 864# CONFIG_MFD_SM501 is not set
866# CONFIG_HTC_PASIC3 is not set 865# CONFIG_HTC_PASIC3 is not set
867# CONFIG_MFD_TMIO is not set 866# CONFIG_MFD_TMIO is not set
867# CONFIG_MFD_MC13783 is not set
868# CONFIG_EZX_PCAP is not set 868# CONFIG_EZX_PCAP is not set
869# CONFIG_REGULATOR is not set 869# CONFIG_REGULATOR is not set
870# CONFIG_MEDIA_SUPPORT is not set 870# CONFIG_MEDIA_SUPPORT is not set
@@ -884,7 +884,6 @@ CONFIG_SSB_POSSIBLE=y
884# CONFIG_SOUND is not set 884# CONFIG_SOUND is not set
885CONFIG_HID_SUPPORT=y 885CONFIG_HID_SUPPORT=y
886CONFIG_HID=m 886CONFIG_HID=m
887# CONFIG_HID_DEBUG is not set
888# CONFIG_HIDRAW is not set 887# CONFIG_HIDRAW is not set
889# CONFIG_HID_PID is not set 888# CONFIG_HID_PID is not set
890 889
@@ -923,6 +922,7 @@ CONFIG_HID=m
923# CONFIG_XFS_FS is not set 922# CONFIG_XFS_FS is not set
924# CONFIG_OCFS2_FS is not set 923# CONFIG_OCFS2_FS is not set
925# CONFIG_BTRFS_FS is not set 924# CONFIG_BTRFS_FS is not set
925# CONFIG_NILFS2_FS is not set
926CONFIG_FILE_LOCKING=y 926CONFIG_FILE_LOCKING=y
927CONFIG_FSNOTIFY=y 927CONFIG_FSNOTIFY=y
928# CONFIG_DNOTIFY is not set 928# CONFIG_DNOTIFY is not set
@@ -957,7 +957,6 @@ CONFIG_INOTIFY_USER=y
957CONFIG_PROC_FS=y 957CONFIG_PROC_FS=y
958CONFIG_PROC_SYSCTL=y 958CONFIG_PROC_SYSCTL=y
959CONFIG_SYSFS=y 959CONFIG_SYSFS=y
960# CONFIG_TMPFS is not set
961# CONFIG_HUGETLB_PAGE is not set 960# CONFIG_HUGETLB_PAGE is not set
962# CONFIG_CONFIGFS_FS is not set 961# CONFIG_CONFIGFS_FS is not set
963CONFIG_MISC_FILESYSTEMS=y 962CONFIG_MISC_FILESYSTEMS=y
@@ -989,7 +988,6 @@ CONFIG_JFFS2_RTIME=y
989# CONFIG_ROMFS_FS is not set 988# CONFIG_ROMFS_FS is not set
990# CONFIG_SYSV_FS is not set 989# CONFIG_SYSV_FS is not set
991# CONFIG_UFS_FS is not set 990# CONFIG_UFS_FS is not set
992# CONFIG_NILFS2_FS is not set
993CONFIG_NETWORK_FILESYSTEMS=y 991CONFIG_NETWORK_FILESYSTEMS=y
994CONFIG_NFS_FS=m 992CONFIG_NFS_FS=m
995CONFIG_NFS_V3=y 993CONFIG_NFS_V3=y
@@ -1064,6 +1062,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1064CONFIG_ENABLE_MUST_CHECK=y 1062CONFIG_ENABLE_MUST_CHECK=y
1065CONFIG_FRAME_WARN=1024 1063CONFIG_FRAME_WARN=1024
1066# CONFIG_MAGIC_SYSRQ is not set 1064# CONFIG_MAGIC_SYSRQ is not set
1065# CONFIG_STRIP_ASM_SYMS is not set
1067# CONFIG_UNUSED_SYMBOLS is not set 1066# CONFIG_UNUSED_SYMBOLS is not set
1068CONFIG_DEBUG_FS=y 1067CONFIG_DEBUG_FS=y
1069# CONFIG_HEADERS_CHECK is not set 1068# CONFIG_HEADERS_CHECK is not set
@@ -1098,26 +1097,24 @@ CONFIG_DEBUG_INFO=y
1098# CONFIG_DEBUG_LIST is not set 1097# CONFIG_DEBUG_LIST is not set
1099# CONFIG_DEBUG_SG is not set 1098# CONFIG_DEBUG_SG is not set
1100# CONFIG_DEBUG_NOTIFIERS is not set 1099# CONFIG_DEBUG_NOTIFIERS is not set
1100# CONFIG_DEBUG_CREDENTIALS is not set
1101# CONFIG_FRAME_POINTER is not set 1101# CONFIG_FRAME_POINTER is not set
1102# CONFIG_BOOT_PRINTK_DELAY is not set 1102# CONFIG_BOOT_PRINTK_DELAY is not set
1103# CONFIG_RCU_TORTURE_TEST is not set 1103# CONFIG_RCU_TORTURE_TEST is not set
1104# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1104# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1105# CONFIG_BACKTRACE_SELF_TEST is not set 1105# CONFIG_BACKTRACE_SELF_TEST is not set
1106# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set 1106# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1107# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1107# CONFIG_FAULT_INJECTION is not set 1108# CONFIG_FAULT_INJECTION is not set
1108# CONFIG_PAGE_POISONING is not set 1109# CONFIG_PAGE_POISONING is not set
1109CONFIG_HAVE_FUNCTION_TRACER=y 1110CONFIG_HAVE_FUNCTION_TRACER=y
1110CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y 1111CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1111CONFIG_TRACING_SUPPORT=y 1112CONFIG_TRACING_SUPPORT=y
1112# CONFIG_FTRACE is not set 1113# CONFIG_FTRACE is not set
1113# CONFIG_BRANCH_PROFILE_NONE is not set
1114# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1115# CONFIG_PROFILE_ALL_BRANCHES is not set
1116# CONFIG_DYNAMIC_DEBUG is not set 1114# CONFIG_DYNAMIC_DEBUG is not set
1117# CONFIG_SAMPLES is not set 1115# CONFIG_SAMPLES is not set
1118CONFIG_HAVE_ARCH_KGDB=y 1116CONFIG_HAVE_ARCH_KGDB=y
1119# CONFIG_KGDB is not set 1117# CONFIG_KGDB is not set
1120# CONFIG_KMEMCHECK is not set
1121# CONFIG_DEBUG_STACKOVERFLOW is not set 1118# CONFIG_DEBUG_STACKOVERFLOW is not set
1122# CONFIG_DEBUG_STACK_USAGE is not set 1119# CONFIG_DEBUG_STACK_USAGE is not set
1123CONFIG_DEBUG_VERBOSE=y 1120CONFIG_DEBUG_VERBOSE=y
@@ -1153,7 +1150,6 @@ CONFIG_CRYPTO=y
1153# 1150#
1154# Crypto core or helper 1151# Crypto core or helper
1155# 1152#
1156# CONFIG_CRYPTO_FIPS is not set
1157# CONFIG_CRYPTO_MANAGER is not set 1153# CONFIG_CRYPTO_MANAGER is not set
1158# CONFIG_CRYPTO_MANAGER2 is not set 1154# CONFIG_CRYPTO_MANAGER2 is not set
1159# CONFIG_CRYPTO_GF128MUL is not set 1155# CONFIG_CRYPTO_GF128MUL is not set
@@ -1185,11 +1181,13 @@ CONFIG_CRYPTO=y
1185# 1181#
1186# CONFIG_CRYPTO_HMAC is not set 1182# CONFIG_CRYPTO_HMAC is not set
1187# CONFIG_CRYPTO_XCBC is not set 1183# CONFIG_CRYPTO_XCBC is not set
1184# CONFIG_CRYPTO_VMAC is not set
1188 1185
1189# 1186#
1190# Digest 1187# Digest
1191# 1188#
1192# CONFIG_CRYPTO_CRC32C is not set 1189# CONFIG_CRYPTO_CRC32C is not set
1190# CONFIG_CRYPTO_GHASH is not set
1193# CONFIG_CRYPTO_MD4 is not set 1191# CONFIG_CRYPTO_MD4 is not set
1194# CONFIG_CRYPTO_MD5 is not set 1192# CONFIG_CRYPTO_MD5 is not set
1195# CONFIG_CRYPTO_MICHAEL_MIC is not set 1193# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/blackfin/configs/H8606_defconfig b/arch/blackfin/configs/H8606_defconfig
index bc7fae3d8b83..ed0a7ebeb85c 100644
--- a/arch/blackfin/configs/H8606_defconfig
+++ b/arch/blackfin/configs/H8606_defconfig
@@ -834,13 +834,6 @@ CONFIG_SND_VERBOSE_PROCFS=y
834# 834#
835# ALSA Blackfin devices 835# ALSA Blackfin devices
836# 836#
837CONFIG_SND_BLACKFIN_AD1836=m
838CONFIG_SND_BLACKFIN_AD1836_TDM=y
839# CONFIG_SND_BLACKFIN_AD1836_I2S is not set
840CONFIG_SND_BLACKFIN_AD1836_MULSUB=y
841# CONFIG_SND_BLACKFIN_AD1836_5P1 is not set
842CONFIG_SND_BLACKFIN_SPORT=0
843CONFIG_SND_BLACKFIN_SPI_PFBIT=4
844# CONFIG_SND_BFIN_AD73311 is not set 837# CONFIG_SND_BFIN_AD73311 is not set
845 838
846# 839#
diff --git a/arch/blackfin/configs/PNAV-10_defconfig b/arch/blackfin/configs/PNAV-10_defconfig
index 67d12768602a..ad58fede1f41 100644
--- a/arch/blackfin/configs/PNAV-10_defconfig
+++ b/arch/blackfin/configs/PNAV-10_defconfig
@@ -1,21 +1,27 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.28.10 3# Linux kernel version: 2.6.32.2
4# 4#
5# CONFIG_MMU is not set 5# CONFIG_MMU is not set
6# CONFIG_FPU is not set 6# CONFIG_FPU is not set
7CONFIG_RWSEM_GENERIC_SPINLOCK=y 7CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set 8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y 9CONFIG_BLACKFIN=y
10CONFIG_GENERIC_CSUM=y
11CONFIG_GENERIC_BUG=y
10CONFIG_ZONE_DMA=y 12CONFIG_ZONE_DMA=y
11CONFIG_GENERIC_FIND_NEXT_BIT=y 13CONFIG_GENERIC_FIND_NEXT_BIT=y
12CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_HARDIRQS=y 14CONFIG_GENERIC_HARDIRQS=y
14CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
15CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
16CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
17CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_TRACE_IRQFLAGS_SUPPORT=y
18CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
24CONFIG_CONSTRUCTORS=y
19 25
20# 26#
21# General setup 27# General setup
@@ -25,16 +31,32 @@ CONFIG_BROKEN_ON_SMP=y
25CONFIG_INIT_ENV_ARG_LIMIT=32 31CONFIG_INIT_ENV_ARG_LIMIT=32
26CONFIG_LOCALVERSION="" 32CONFIG_LOCALVERSION=""
27CONFIG_LOCALVERSION_AUTO=y 33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_HAVE_KERNEL_GZIP=y
35CONFIG_HAVE_KERNEL_BZIP2=y
36CONFIG_HAVE_KERNEL_LZMA=y
37CONFIG_KERNEL_GZIP=y
38# CONFIG_KERNEL_BZIP2 is not set
39# CONFIG_KERNEL_LZMA is not set
28CONFIG_SYSVIPC=y 40CONFIG_SYSVIPC=y
29CONFIG_SYSVIPC_SYSCTL=y 41CONFIG_SYSVIPC_SYSCTL=y
30# CONFIG_POSIX_MQUEUE is not set 42# CONFIG_POSIX_MQUEUE is not set
31# CONFIG_BSD_PROCESS_ACCT is not set 43# CONFIG_BSD_PROCESS_ACCT is not set
32# CONFIG_TASKSTATS is not set 44# CONFIG_TASKSTATS is not set
33# CONFIG_AUDIT is not set 45# CONFIG_AUDIT is not set
46
47#
48# RCU Subsystem
49#
50CONFIG_TREE_RCU=y
51# CONFIG_TREE_PREEMPT_RCU is not set
52# CONFIG_RCU_TRACE is not set
53CONFIG_RCU_FANOUT=32
54# CONFIG_RCU_FANOUT_EXACT is not set
55# CONFIG_TREE_RCU_TRACE is not set
34# CONFIG_IKCONFIG is not set 56# CONFIG_IKCONFIG is not set
35CONFIG_LOG_BUF_SHIFT=14 57CONFIG_LOG_BUF_SHIFT=14
36# CONFIG_CGROUPS is not set
37# CONFIG_GROUP_SCHED is not set 58# CONFIG_GROUP_SCHED is not set
59# CONFIG_CGROUPS is not set
38# CONFIG_SYSFS_DEPRECATED_V2 is not set 60# CONFIG_SYSFS_DEPRECATED_V2 is not set
39# CONFIG_RELAY is not set 61# CONFIG_RELAY is not set
40# CONFIG_NAMESPACES is not set 62# CONFIG_NAMESPACES is not set
@@ -58,6 +80,10 @@ CONFIG_SIGNALFD=y
58CONFIG_TIMERFD=y 80CONFIG_TIMERFD=y
59CONFIG_EVENTFD=y 81CONFIG_EVENTFD=y
60# CONFIG_AIO is not set 82# CONFIG_AIO is not set
83
84#
85# Kernel Performance Events And Counters
86#
61CONFIG_VM_EVENT_COUNTERS=y 87CONFIG_VM_EVENT_COUNTERS=y
62CONFIG_COMPAT_BRK=y 88CONFIG_COMPAT_BRK=y
63CONFIG_SLAB=y 89CONFIG_SLAB=y
@@ -65,11 +91,14 @@ CONFIG_SLAB=y
65# CONFIG_SLOB is not set 91# CONFIG_SLOB is not set
66CONFIG_MMAP_ALLOW_UNINITIALIZED=y 92CONFIG_MMAP_ALLOW_UNINITIALIZED=y
67# CONFIG_PROFILING is not set 93# CONFIG_PROFILING is not set
68# CONFIG_MARKERS is not set
69CONFIG_HAVE_OPROFILE=y 94CONFIG_HAVE_OPROFILE=y
95
96#
97# GCOV-based kernel profiling
98#
99# CONFIG_SLOW_WORK is not set
70# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 100# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
71CONFIG_SLABINFO=y 101CONFIG_SLABINFO=y
72CONFIG_TINY_SHMEM=y
73CONFIG_BASE_SMALL=0 102CONFIG_BASE_SMALL=0
74CONFIG_MODULES=y 103CONFIG_MODULES=y
75# CONFIG_MODULE_FORCE_LOAD is not set 104# CONFIG_MODULE_FORCE_LOAD is not set
@@ -77,11 +106,8 @@ CONFIG_MODULE_UNLOAD=y
77# CONFIG_MODULE_FORCE_UNLOAD is not set 106# CONFIG_MODULE_FORCE_UNLOAD is not set
78# CONFIG_MODVERSIONS is not set 107# CONFIG_MODVERSIONS is not set
79# CONFIG_MODULE_SRCVERSION_ALL is not set 108# CONFIG_MODULE_SRCVERSION_ALL is not set
80CONFIG_KMOD=y
81CONFIG_BLOCK=y 109CONFIG_BLOCK=y
82# CONFIG_LBD is not set 110# CONFIG_LBDAF is not set
83# CONFIG_BLK_DEV_IO_TRACE is not set
84# CONFIG_LSF is not set
85# CONFIG_BLK_DEV_BSG is not set 111# CONFIG_BLK_DEV_BSG is not set
86# CONFIG_BLK_DEV_INTEGRITY is not set 112# CONFIG_BLK_DEV_INTEGRITY is not set
87 113
@@ -97,7 +123,6 @@ CONFIG_DEFAULT_AS=y
97# CONFIG_DEFAULT_CFQ is not set 123# CONFIG_DEFAULT_CFQ is not set
98# CONFIG_DEFAULT_NOOP is not set 124# CONFIG_DEFAULT_NOOP is not set
99CONFIG_DEFAULT_IOSCHED="anticipatory" 125CONFIG_DEFAULT_IOSCHED="anticipatory"
100CONFIG_CLASSIC_RCU=y
101# CONFIG_PREEMPT_NONE is not set 126# CONFIG_PREEMPT_NONE is not set
102CONFIG_PREEMPT_VOLUNTARY=y 127CONFIG_PREEMPT_VOLUNTARY=y
103# CONFIG_PREEMPT is not set 128# CONFIG_PREEMPT is not set
@@ -128,15 +153,15 @@ CONFIG_PREEMPT_VOLUNTARY=y
128CONFIG_BF537=y 153CONFIG_BF537=y
129# CONFIG_BF538 is not set 154# CONFIG_BF538 is not set
130# CONFIG_BF539 is not set 155# CONFIG_BF539 is not set
131# CONFIG_BF542 is not set 156# CONFIG_BF542_std is not set
132# CONFIG_BF542M is not set 157# CONFIG_BF542M is not set
133# CONFIG_BF544 is not set 158# CONFIG_BF544_std is not set
134# CONFIG_BF544M is not set 159# CONFIG_BF544M is not set
135# CONFIG_BF547 is not set 160# CONFIG_BF547_std is not set
136# CONFIG_BF547M is not set 161# CONFIG_BF547M is not set
137# CONFIG_BF548 is not set 162# CONFIG_BF548_std is not set
138# CONFIG_BF548M is not set 163# CONFIG_BF548M is not set
139# CONFIG_BF549 is not set 164# CONFIG_BF549_std is not set
140# CONFIG_BF549M is not set 165# CONFIG_BF549M is not set
141# CONFIG_BF561 is not set 166# CONFIG_BF561 is not set
142CONFIG_BF_REV_MIN=2 167CONFIG_BF_REV_MIN=2
@@ -180,7 +205,8 @@ CONFIG_IRQ_MEM_DMA1=13
180CONFIG_IRQ_WATCH=13 205CONFIG_IRQ_WATCH=13
181CONFIG_IRQ_SPI=10 206CONFIG_IRQ_SPI=10
182# CONFIG_BFIN537_STAMP is not set 207# CONFIG_BFIN537_STAMP is not set
183# CONFIG_BFIN537_BLUETECHNIX_CM is not set 208# CONFIG_BFIN537_BLUETECHNIX_CM_E is not set
209# CONFIG_BFIN537_BLUETECHNIX_CM_U is not set
184# CONFIG_BFIN537_BLUETECHNIX_TCM is not set 210# CONFIG_BFIN537_BLUETECHNIX_TCM is not set
185CONFIG_PNAV10=y 211CONFIG_PNAV10=y
186# CONFIG_CAMSIG_MINOTAUR is not set 212# CONFIG_CAMSIG_MINOTAUR is not set
@@ -282,7 +308,6 @@ CONFIG_FLATMEM=y
282CONFIG_FLAT_NODE_MEM_MAP=y 308CONFIG_FLAT_NODE_MEM_MAP=y
283CONFIG_PAGEFLAGS_EXTENDED=y 309CONFIG_PAGEFLAGS_EXTENDED=y
284CONFIG_SPLIT_PTLOCK_CPUS=4 310CONFIG_SPLIT_PTLOCK_CPUS=4
285# CONFIG_RESOURCES_64BIT is not set
286# CONFIG_PHYS_ADDR_T_64BIT is not set 311# CONFIG_PHYS_ADDR_T_64BIT is not set
287CONFIG_ZONE_DMA_FLAG=1 312CONFIG_ZONE_DMA_FLAG=1
288CONFIG_VIRT_TO_BUS=y 313CONFIG_VIRT_TO_BUS=y
@@ -291,16 +316,18 @@ CONFIG_BFIN_GPTIMERS=y
291# CONFIG_DMA_UNCACHED_4M is not set 316# CONFIG_DMA_UNCACHED_4M is not set
292# CONFIG_DMA_UNCACHED_2M is not set 317# CONFIG_DMA_UNCACHED_2M is not set
293CONFIG_DMA_UNCACHED_1M=y 318CONFIG_DMA_UNCACHED_1M=y
319# CONFIG_DMA_UNCACHED_512K is not set
320# CONFIG_DMA_UNCACHED_256K is not set
321# CONFIG_DMA_UNCACHED_128K is not set
294# CONFIG_DMA_UNCACHED_NONE is not set 322# CONFIG_DMA_UNCACHED_NONE is not set
295 323
296# 324#
297# Cache Support 325# Cache Support
298# 326#
299CONFIG_BFIN_ICACHE=y 327CONFIG_BFIN_ICACHE=y
300# CONFIG_BFIN_ICACHE_LOCK is not set 328CONFIG_BFIN_EXTMEM_ICACHEABLE=y
301CONFIG_BFIN_DCACHE=y 329CONFIG_BFIN_DCACHE=y
302# CONFIG_BFIN_DCACHE_BANKA is not set 330# CONFIG_BFIN_DCACHE_BANKA is not set
303CONFIG_BFIN_EXTMEM_ICACHEABLE=y
304CONFIG_BFIN_EXTMEM_DCACHEABLE=y 331CONFIG_BFIN_EXTMEM_DCACHEABLE=y
305CONFIG_BFIN_EXTMEM_WRITEBACK=y 332CONFIG_BFIN_EXTMEM_WRITEBACK=y
306# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set 333# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
@@ -311,7 +338,7 @@ CONFIG_BFIN_EXTMEM_WRITEBACK=y
311# CONFIG_MPU is not set 338# CONFIG_MPU is not set
312 339
313# 340#
314# Asynchonous Memory Configuration 341# Asynchronous Memory Configuration
315# 342#
316 343
317# 344#
@@ -367,11 +394,6 @@ CONFIG_NET=y
367CONFIG_PACKET=y 394CONFIG_PACKET=y
368# CONFIG_PACKET_MMAP is not set 395# CONFIG_PACKET_MMAP is not set
369CONFIG_UNIX=y 396CONFIG_UNIX=y
370CONFIG_XFRM=y
371# CONFIG_XFRM_USER is not set
372# CONFIG_XFRM_SUB_POLICY is not set
373# CONFIG_XFRM_MIGRATE is not set
374# CONFIG_XFRM_STATISTICS is not set
375# CONFIG_NET_KEY is not set 397# CONFIG_NET_KEY is not set
376CONFIG_INET=y 398CONFIG_INET=y
377# CONFIG_IP_MULTICAST is not set 399# CONFIG_IP_MULTICAST is not set
@@ -395,7 +417,6 @@ CONFIG_IP_PNP=y
395# CONFIG_INET_XFRM_MODE_BEET is not set 417# CONFIG_INET_XFRM_MODE_BEET is not set
396# CONFIG_INET_LRO is not set 418# CONFIG_INET_LRO is not set
397# CONFIG_INET_DIAG is not set 419# CONFIG_INET_DIAG is not set
398CONFIG_INET_TCP_DIAG=y
399# CONFIG_TCP_CONG_ADVANCED is not set 420# CONFIG_TCP_CONG_ADVANCED is not set
400CONFIG_TCP_CONG_CUBIC=y 421CONFIG_TCP_CONG_CUBIC=y
401CONFIG_DEFAULT_TCP_CONG="cubic" 422CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -406,6 +427,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
406# CONFIG_NETFILTER is not set 427# CONFIG_NETFILTER is not set
407# CONFIG_IP_DCCP is not set 428# CONFIG_IP_DCCP is not set
408# CONFIG_IP_SCTP is not set 429# CONFIG_IP_SCTP is not set
430# CONFIG_RDS is not set
409# CONFIG_TIPC is not set 431# CONFIG_TIPC is not set
410# CONFIG_ATM is not set 432# CONFIG_ATM is not set
411# CONFIG_BRIDGE is not set 433# CONFIG_BRIDGE is not set
@@ -419,7 +441,10 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
419# CONFIG_LAPB is not set 441# CONFIG_LAPB is not set
420# CONFIG_ECONET is not set 442# CONFIG_ECONET is not set
421# CONFIG_WAN_ROUTER is not set 443# CONFIG_WAN_ROUTER is not set
444# CONFIG_PHONET is not set
445# CONFIG_IEEE802154 is not set
422# CONFIG_NET_SCHED is not set 446# CONFIG_NET_SCHED is not set
447# CONFIG_DCB is not set
423 448
424# 449#
425# Network testing 450# Network testing
@@ -430,13 +455,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
430# CONFIG_IRDA is not set 455# CONFIG_IRDA is not set
431# CONFIG_BT is not set 456# CONFIG_BT is not set
432# CONFIG_AF_RXRPC is not set 457# CONFIG_AF_RXRPC is not set
433# CONFIG_PHONET is not set 458# CONFIG_WIRELESS is not set
434CONFIG_WIRELESS=y 459# CONFIG_WIMAX is not set
435# CONFIG_CFG80211 is not set
436CONFIG_WIRELESS_OLD_REGULATORY=y
437# CONFIG_WIRELESS_EXT is not set
438# CONFIG_MAC80211 is not set
439# CONFIG_IEEE80211 is not set
440# CONFIG_RFKILL is not set 460# CONFIG_RFKILL is not set
441# CONFIG_NET_9P is not set 461# CONFIG_NET_9P is not set
442 462
@@ -455,6 +475,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
455# CONFIG_CONNECTOR is not set 475# CONFIG_CONNECTOR is not set
456CONFIG_MTD=y 476CONFIG_MTD=y
457# CONFIG_MTD_DEBUG is not set 477# CONFIG_MTD_DEBUG is not set
478# CONFIG_MTD_TESTS is not set
458# CONFIG_MTD_CONCAT is not set 479# CONFIG_MTD_CONCAT is not set
459CONFIG_MTD_PARTITIONS=y 480CONFIG_MTD_PARTITIONS=y
460# CONFIG_MTD_REDBOOT_PARTS is not set 481# CONFIG_MTD_REDBOOT_PARTS is not set
@@ -506,6 +527,7 @@ CONFIG_MTD_UCLINUX=y
506# 527#
507# CONFIG_MTD_DATAFLASH is not set 528# CONFIG_MTD_DATAFLASH is not set
508# CONFIG_MTD_M25P80 is not set 529# CONFIG_MTD_M25P80 is not set
530# CONFIG_MTD_SST25L is not set
509# CONFIG_MTD_SLRAM is not set 531# CONFIG_MTD_SLRAM is not set
510# CONFIG_MTD_PHRAM is not set 532# CONFIG_MTD_PHRAM is not set
511# CONFIG_MTD_MTDRAM is not set 533# CONFIG_MTD_MTDRAM is not set
@@ -521,11 +543,6 @@ CONFIG_MTD_NAND=y
521# CONFIG_MTD_NAND_VERIFY_WRITE is not set 543# CONFIG_MTD_NAND_VERIFY_WRITE is not set
522# CONFIG_MTD_NAND_ECC_SMC is not set 544# CONFIG_MTD_NAND_ECC_SMC is not set
523# CONFIG_MTD_NAND_MUSEUM_IDS is not set 545# CONFIG_MTD_NAND_MUSEUM_IDS is not set
524CONFIG_MTD_NAND_BFIN=y
525CONFIG_BFIN_NAND_BASE=0x20100000
526CONFIG_BFIN_NAND_CLE=2
527CONFIG_BFIN_NAND_ALE=1
528CONFIG_BFIN_NAND_READY=44
529CONFIG_MTD_NAND_IDS=y 546CONFIG_MTD_NAND_IDS=y
530# CONFIG_MTD_NAND_DISKONCHIP is not set 547# CONFIG_MTD_NAND_DISKONCHIP is not set
531# CONFIG_MTD_NAND_NANDSIM is not set 548# CONFIG_MTD_NAND_NANDSIM is not set
@@ -533,6 +550,11 @@ CONFIG_MTD_NAND_IDS=y
533# CONFIG_MTD_ONENAND is not set 550# CONFIG_MTD_ONENAND is not set
534 551
535# 552#
553# LPDDR flash memory drivers
554#
555# CONFIG_MTD_LPDDR is not set
556
557#
536# UBI - Unsorted block images 558# UBI - Unsorted block images
537# 559#
538# CONFIG_MTD_UBI is not set 560# CONFIG_MTD_UBI is not set
@@ -549,10 +571,20 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
549# CONFIG_ATA_OVER_ETH is not set 571# CONFIG_ATA_OVER_ETH is not set
550# CONFIG_BLK_DEV_HD is not set 572# CONFIG_BLK_DEV_HD is not set
551CONFIG_MISC_DEVICES=y 573CONFIG_MISC_DEVICES=y
552# CONFIG_EEPROM_93CX6 is not set 574# CONFIG_AD525X_DPOT is not set
553# CONFIG_ICS932S401 is not set 575# CONFIG_ICS932S401 is not set
554# CONFIG_ENCLOSURE_SERVICES is not set 576# CONFIG_ENCLOSURE_SERVICES is not set
577# CONFIG_ISL29003 is not set
555# CONFIG_C2PORT is not set 578# CONFIG_C2PORT is not set
579
580#
581# EEPROM support
582#
583# CONFIG_EEPROM_AT24 is not set
584# CONFIG_EEPROM_AT25 is not set
585# CONFIG_EEPROM_LEGACY is not set
586# CONFIG_EEPROM_MAX6875 is not set
587# CONFIG_EEPROM_93CX6 is not set
556CONFIG_HAVE_IDE=y 588CONFIG_HAVE_IDE=y
557# CONFIG_IDE is not set 589# CONFIG_IDE is not set
558 590
@@ -587,6 +619,9 @@ CONFIG_PHYLIB=y
587# CONFIG_BROADCOM_PHY is not set 619# CONFIG_BROADCOM_PHY is not set
588# CONFIG_ICPLUS_PHY is not set 620# CONFIG_ICPLUS_PHY is not set
589# CONFIG_REALTEK_PHY is not set 621# CONFIG_REALTEK_PHY is not set
622# CONFIG_NATIONAL_PHY is not set
623# CONFIG_STE10XP is not set
624# CONFIG_LSI_ET1011C_PHY is not set
590# CONFIG_FIXED_PHY is not set 625# CONFIG_FIXED_PHY is not set
591# CONFIG_MDIO_BITBANG is not set 626# CONFIG_MDIO_BITBANG is not set
592CONFIG_NET_ETHERNET=y 627CONFIG_NET_ETHERNET=y
@@ -597,9 +632,12 @@ CONFIG_BFIN_TX_DESC_NUM=100
597CONFIG_BFIN_RX_DESC_NUM=100 632CONFIG_BFIN_RX_DESC_NUM=100
598CONFIG_BFIN_MAC_RMII=y 633CONFIG_BFIN_MAC_RMII=y
599# CONFIG_SMC91X is not set 634# CONFIG_SMC91X is not set
600# CONFIG_SMSC911X is not set
601# CONFIG_DM9000 is not set 635# CONFIG_DM9000 is not set
602# CONFIG_ENC28J60 is not set 636# CONFIG_ENC28J60 is not set
637# CONFIG_ETHOC is not set
638# CONFIG_SMSC911X is not set
639# CONFIG_DNET is not set
640# CONFIG_ADF702X is not set
603# CONFIG_IBM_NEW_EMAC_ZMII is not set 641# CONFIG_IBM_NEW_EMAC_ZMII is not set
604# CONFIG_IBM_NEW_EMAC_RGMII is not set 642# CONFIG_IBM_NEW_EMAC_RGMII is not set
605# CONFIG_IBM_NEW_EMAC_TAH is not set 643# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -608,15 +646,16 @@ CONFIG_BFIN_MAC_RMII=y
608# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set 646# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
609# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 647# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
610# CONFIG_B44 is not set 648# CONFIG_B44 is not set
649# CONFIG_KS8842 is not set
650# CONFIG_KS8851 is not set
651# CONFIG_KS8851_MLL is not set
611# CONFIG_NETDEV_1000 is not set 652# CONFIG_NETDEV_1000 is not set
612# CONFIG_NETDEV_10000 is not set 653# CONFIG_NETDEV_10000 is not set
654# CONFIG_WLAN is not set
613 655
614# 656#
615# Wireless LAN 657# Enable WiMAX (Networking options) to see the WiMAX drivers
616# 658#
617# CONFIG_WLAN_PRE80211 is not set
618# CONFIG_WLAN_80211 is not set
619# CONFIG_IWLWIFI_LEDS is not set
620# CONFIG_WAN is not set 659# CONFIG_WAN is not set
621# CONFIG_PPP is not set 660# CONFIG_PPP is not set
622# CONFIG_SLIP is not set 661# CONFIG_SLIP is not set
@@ -649,14 +688,17 @@ CONFIG_INPUT_EVDEV=y
649# CONFIG_INPUT_JOYSTICK is not set 688# CONFIG_INPUT_JOYSTICK is not set
650# CONFIG_INPUT_TABLET is not set 689# CONFIG_INPUT_TABLET is not set
651CONFIG_INPUT_TOUCHSCREEN=y 690CONFIG_INPUT_TOUCHSCREEN=y
691# CONFIG_TOUCHSCREEN_ADS7846 is not set
652CONFIG_TOUCHSCREEN_AD7877=y 692CONFIG_TOUCHSCREEN_AD7877=y
653# CONFIG_TOUCHSCREEN_AD7879_I2C is not set 693# CONFIG_TOUCHSCREEN_AD7879_I2C is not set
654# CONFIG_TOUCHSCREEN_AD7879_SPI is not set 694# CONFIG_TOUCHSCREEN_AD7879_SPI is not set
655# CONFIG_TOUCHSCREEN_AD7879 is not set 695# CONFIG_TOUCHSCREEN_AD7879 is not set
656# CONFIG_TOUCHSCREEN_ADS7846 is not set 696# CONFIG_TOUCHSCREEN_EETI is not set
657# CONFIG_TOUCHSCREEN_FUJITSU is not set 697# CONFIG_TOUCHSCREEN_FUJITSU is not set
658# CONFIG_TOUCHSCREEN_GUNZE is not set 698# CONFIG_TOUCHSCREEN_GUNZE is not set
659# CONFIG_TOUCHSCREEN_ELO is not set 699# CONFIG_TOUCHSCREEN_ELO is not set
700# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
701# CONFIG_TOUCHSCREEN_MCS5000 is not set
660# CONFIG_TOUCHSCREEN_MTOUCH is not set 702# CONFIG_TOUCHSCREEN_MTOUCH is not set
661# CONFIG_TOUCHSCREEN_INEXIO is not set 703# CONFIG_TOUCHSCREEN_INEXIO is not set
662# CONFIG_TOUCHSCREEN_MK712 is not set 704# CONFIG_TOUCHSCREEN_MK712 is not set
@@ -665,6 +707,7 @@ CONFIG_TOUCHSCREEN_AD7877=y
665# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 707# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
666# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 708# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
667# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set 709# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
710# CONFIG_TOUCHSCREEN_TSC2007 is not set
668CONFIG_INPUT_MISC=y 711CONFIG_INPUT_MISC=y
669# CONFIG_INPUT_ATI_REMOTE is not set 712# CONFIG_INPUT_ATI_REMOTE is not set
670# CONFIG_INPUT_ATI_REMOTE2 is not set 713# CONFIG_INPUT_ATI_REMOTE2 is not set
@@ -673,7 +716,9 @@ CONFIG_INPUT_MISC=y
673# CONFIG_INPUT_YEALINK is not set 716# CONFIG_INPUT_YEALINK is not set
674# CONFIG_INPUT_CM109 is not set 717# CONFIG_INPUT_CM109 is not set
675CONFIG_INPUT_UINPUT=y 718CONFIG_INPUT_UINPUT=y
676# CONFIG_CONFIG_INPUT_PCF8574 is not set 719# CONFIG_INPUT_AD714X is not set
720# CONFIG_INPUT_ADXL34X is not set
721# CONFIG_INPUT_PCF8574 is not set
677 722
678# 723#
679# Hardware I/O ports 724# Hardware I/O ports
@@ -684,16 +729,13 @@ CONFIG_INPUT_UINPUT=y
684# 729#
685# Character devices 730# Character devices
686# 731#
687# CONFIG_AD9960 is not set
688CONFIG_BFIN_DMA_INTERFACE=m 732CONFIG_BFIN_DMA_INTERFACE=m
689# CONFIG_BFIN_PPI is not set 733# CONFIG_BFIN_PPI is not set
690# CONFIG_BFIN_PPIFCD is not set 734# CONFIG_BFIN_PPIFCD is not set
691# CONFIG_BFIN_SIMPLE_TIMER is not set 735# CONFIG_BFIN_SIMPLE_TIMER is not set
692# CONFIG_BFIN_SPI_ADC is not set 736# CONFIG_BFIN_SPI_ADC is not set
693CONFIG_BFIN_SPORT=y 737CONFIG_BFIN_SPORT=y
694# CONFIG_BFIN_TIMER_LATENCY is not set
695# CONFIG_BFIN_TWI_LCD is not set 738# CONFIG_BFIN_TWI_LCD is not set
696# CONFIG_SIMPLE_GPIO is not set
697# CONFIG_VT is not set 739# CONFIG_VT is not set
698CONFIG_DEVKMEM=y 740CONFIG_DEVKMEM=y
699# CONFIG_BFIN_JTAG_COMM is not set 741# CONFIG_BFIN_JTAG_COMM is not set
@@ -707,6 +749,7 @@ CONFIG_DEVKMEM=y
707# 749#
708# Non-8250 serial port support 750# Non-8250 serial port support
709# 751#
752# CONFIG_SERIAL_MAX3100 is not set
710CONFIG_SERIAL_BFIN=y 753CONFIG_SERIAL_BFIN=y
711CONFIG_SERIAL_BFIN_CONSOLE=y 754CONFIG_SERIAL_BFIN_CONSOLE=y
712CONFIG_SERIAL_BFIN_DMA=y 755CONFIG_SERIAL_BFIN_DMA=y
@@ -719,24 +762,17 @@ CONFIG_SERIAL_CORE=y
719CONFIG_SERIAL_CORE_CONSOLE=y 762CONFIG_SERIAL_CORE_CONSOLE=y
720# CONFIG_SERIAL_BFIN_SPORT is not set 763# CONFIG_SERIAL_BFIN_SPORT is not set
721CONFIG_UNIX98_PTYS=y 764CONFIG_UNIX98_PTYS=y
765# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
722# CONFIG_LEGACY_PTYS is not set 766# CONFIG_LEGACY_PTYS is not set
723
724#
725# CAN, the car bus and industrial fieldbus
726#
727CONFIG_CAN4LINUX=y
728
729#
730# linux embedded drivers
731#
732CONFIG_CAN_BLACKFIN=m
733# CONFIG_IPMI_HANDLER is not set 767# CONFIG_IPMI_HANDLER is not set
734CONFIG_HW_RANDOM=y 768CONFIG_HW_RANDOM=y
769# CONFIG_HW_RANDOM_TIMERIOMEM is not set
735# CONFIG_R3964 is not set 770# CONFIG_R3964 is not set
736# CONFIG_RAW_DRIVER is not set 771# CONFIG_RAW_DRIVER is not set
737# CONFIG_TCG_TPM is not set 772# CONFIG_TCG_TPM is not set
738CONFIG_I2C=y 773CONFIG_I2C=y
739CONFIG_I2C_BOARDINFO=y 774CONFIG_I2C_BOARDINFO=y
775CONFIG_I2C_COMPAT=y
740CONFIG_I2C_CHARDEV=y 776CONFIG_I2C_CHARDEV=y
741CONFIG_I2C_HELPER_AUTO=y 777CONFIG_I2C_HELPER_AUTO=y
742 778
@@ -769,14 +805,6 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
769# Miscellaneous I2C Chip support 805# Miscellaneous I2C Chip support
770# 806#
771# CONFIG_DS1682 is not set 807# CONFIG_DS1682 is not set
772# CONFIG_EEPROM_AT24 is not set
773# CONFIG_SENSORS_AD5252 is not set
774# CONFIG_EEPROM_LEGACY is not set
775CONFIG_SENSORS_PCF8574=m
776# CONFIG_PCF8575 is not set
777# CONFIG_SENSORS_PCA9539 is not set
778# CONFIG_SENSORS_PCF8591 is not set
779# CONFIG_SENSORS_MAX6875 is not set
780# CONFIG_SENSORS_TSL2550 is not set 808# CONFIG_SENSORS_TSL2550 is not set
781# CONFIG_I2C_DEBUG_CORE is not set 809# CONFIG_I2C_DEBUG_CORE is not set
782# CONFIG_I2C_DEBUG_ALGO is not set 810# CONFIG_I2C_DEBUG_ALGO is not set
@@ -792,20 +820,29 @@ CONFIG_SPI_BFIN=y
792# CONFIG_SPI_BFIN_LOCK is not set 820# CONFIG_SPI_BFIN_LOCK is not set
793# CONFIG_SPI_BFIN_SPORT is not set 821# CONFIG_SPI_BFIN_SPORT is not set
794# CONFIG_SPI_BITBANG is not set 822# CONFIG_SPI_BITBANG is not set
823# CONFIG_SPI_GPIO is not set
795 824
796# 825#
797# SPI Protocol Masters 826# SPI Protocol Masters
798# 827#
799# CONFIG_EEPROM_AT25 is not set
800# CONFIG_SPI_SPIDEV is not set 828# CONFIG_SPI_SPIDEV is not set
801# CONFIG_SPI_TLE62X0 is not set 829# CONFIG_SPI_TLE62X0 is not set
830
831#
832# PPS support
833#
834# CONFIG_PPS is not set
802CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y 835CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
803# CONFIG_GPIOLIB is not set 836# CONFIG_GPIOLIB is not set
804# CONFIG_W1 is not set 837# CONFIG_W1 is not set
805# CONFIG_POWER_SUPPLY is not set 838# CONFIG_POWER_SUPPLY is not set
806CONFIG_HWMON=y 839CONFIG_HWMON=y
807# CONFIG_HWMON_VID is not set 840# CONFIG_HWMON_VID is not set
808# CONFIG_SENSORS_AD5252 is not set 841# CONFIG_HWMON_DEBUG_CHIP is not set
842
843#
844# Native drivers
845#
809# CONFIG_SENSORS_AD7414 is not set 846# CONFIG_SENSORS_AD7414 is not set
810# CONFIG_SENSORS_AD7418 is not set 847# CONFIG_SENSORS_AD7418 is not set
811# CONFIG_SENSORS_ADCXX is not set 848# CONFIG_SENSORS_ADCXX is not set
@@ -818,11 +855,13 @@ CONFIG_HWMON=y
818# CONFIG_SENSORS_ADT7462 is not set 855# CONFIG_SENSORS_ADT7462 is not set
819# CONFIG_SENSORS_ADT7470 is not set 856# CONFIG_SENSORS_ADT7470 is not set
820# CONFIG_SENSORS_ADT7473 is not set 857# CONFIG_SENSORS_ADT7473 is not set
858# CONFIG_SENSORS_ADT7475 is not set
821# CONFIG_SENSORS_ATXP1 is not set 859# CONFIG_SENSORS_ATXP1 is not set
822# CONFIG_SENSORS_DS1621 is not set 860# CONFIG_SENSORS_DS1621 is not set
823# CONFIG_SENSORS_F71805F is not set 861# CONFIG_SENSORS_F71805F is not set
824# CONFIG_SENSORS_F71882FG is not set 862# CONFIG_SENSORS_F71882FG is not set
825# CONFIG_SENSORS_F75375S is not set 863# CONFIG_SENSORS_F75375S is not set
864# CONFIG_SENSORS_G760A is not set
826# CONFIG_SENSORS_GL518SM is not set 865# CONFIG_SENSORS_GL518SM is not set
827# CONFIG_SENSORS_GL520SM is not set 866# CONFIG_SENSORS_GL520SM is not set
828# CONFIG_SENSORS_IT87 is not set 867# CONFIG_SENSORS_IT87 is not set
@@ -838,17 +877,24 @@ CONFIG_HWMON=y
838# CONFIG_SENSORS_LM90 is not set 877# CONFIG_SENSORS_LM90 is not set
839# CONFIG_SENSORS_LM92 is not set 878# CONFIG_SENSORS_LM92 is not set
840# CONFIG_SENSORS_LM93 is not set 879# CONFIG_SENSORS_LM93 is not set
880# CONFIG_SENSORS_LTC4215 is not set
881# CONFIG_SENSORS_LTC4245 is not set
882# CONFIG_SENSORS_LM95241 is not set
841# CONFIG_SENSORS_MAX1111 is not set 883# CONFIG_SENSORS_MAX1111 is not set
842# CONFIG_SENSORS_MAX1619 is not set 884# CONFIG_SENSORS_MAX1619 is not set
843# CONFIG_SENSORS_MAX6650 is not set 885# CONFIG_SENSORS_MAX6650 is not set
844# CONFIG_SENSORS_PC87360 is not set 886# CONFIG_SENSORS_PC87360 is not set
845# CONFIG_SENSORS_PC87427 is not set 887# CONFIG_SENSORS_PC87427 is not set
888# CONFIG_SENSORS_PCF8591 is not set
889# CONFIG_SENSORS_SHT15 is not set
846# CONFIG_SENSORS_DME1737 is not set 890# CONFIG_SENSORS_DME1737 is not set
847# CONFIG_SENSORS_SMSC47M1 is not set 891# CONFIG_SENSORS_SMSC47M1 is not set
848# CONFIG_SENSORS_SMSC47M192 is not set 892# CONFIG_SENSORS_SMSC47M192 is not set
849# CONFIG_SENSORS_SMSC47B397 is not set 893# CONFIG_SENSORS_SMSC47B397 is not set
850# CONFIG_SENSORS_ADS7828 is not set 894# CONFIG_SENSORS_ADS7828 is not set
851# CONFIG_SENSORS_THMC50 is not set 895# CONFIG_SENSORS_THMC50 is not set
896# CONFIG_SENSORS_TMP401 is not set
897# CONFIG_SENSORS_TMP421 is not set
852# CONFIG_SENSORS_VT1211 is not set 898# CONFIG_SENSORS_VT1211 is not set
853# CONFIG_SENSORS_W83781D is not set 899# CONFIG_SENSORS_W83781D is not set
854# CONFIG_SENSORS_W83791D is not set 900# CONFIG_SENSORS_W83791D is not set
@@ -858,9 +904,8 @@ CONFIG_HWMON=y
858# CONFIG_SENSORS_W83L786NG is not set 904# CONFIG_SENSORS_W83L786NG is not set
859# CONFIG_SENSORS_W83627HF is not set 905# CONFIG_SENSORS_W83627HF is not set
860# CONFIG_SENSORS_W83627EHF is not set 906# CONFIG_SENSORS_W83627EHF is not set
861# CONFIG_HWMON_DEBUG_CHIP is not set 907# CONFIG_SENSORS_LIS3_SPI is not set
862# CONFIG_THERMAL is not set 908# CONFIG_THERMAL is not set
863# CONFIG_THERMAL_HWMON is not set
864# CONFIG_WATCHDOG is not set 909# CONFIG_WATCHDOG is not set
865CONFIG_SSB_POSSIBLE=y 910CONFIG_SSB_POSSIBLE=y
866 911
@@ -875,28 +920,19 @@ CONFIG_SSB_POSSIBLE=y
875# CONFIG_MFD_CORE is not set 920# CONFIG_MFD_CORE is not set
876# CONFIG_MFD_SM501 is not set 921# CONFIG_MFD_SM501 is not set
877# CONFIG_HTC_PASIC3 is not set 922# CONFIG_HTC_PASIC3 is not set
923# CONFIG_TWL4030_CORE is not set
878# CONFIG_MFD_TMIO is not set 924# CONFIG_MFD_TMIO is not set
879# CONFIG_PMIC_DA903X is not set 925# CONFIG_PMIC_DA903X is not set
880# CONFIG_PMIC_ADP5520 is not set 926# CONFIG_PMIC_ADP5520 is not set
881# CONFIG_MFD_WM8400 is not set 927# CONFIG_MFD_WM8400 is not set
928# CONFIG_MFD_WM831X is not set
882# CONFIG_MFD_WM8350_I2C is not set 929# CONFIG_MFD_WM8350_I2C is not set
930# CONFIG_MFD_PCF50633 is not set
931# CONFIG_MFD_MC13783 is not set
932# CONFIG_AB3100_CORE is not set
933# CONFIG_EZX_PCAP is not set
883# CONFIG_REGULATOR is not set 934# CONFIG_REGULATOR is not set
884 935# CONFIG_MEDIA_SUPPORT is not set
885#
886# Multimedia devices
887#
888
889#
890# Multimedia core support
891#
892# CONFIG_VIDEO_DEV is not set
893# CONFIG_DVB_CORE is not set
894# CONFIG_VIDEO_MEDIA is not set
895
896#
897# Multimedia drivers
898#
899CONFIG_DAB=y
900 936
901# 937#
902# Graphics support 938# Graphics support
@@ -928,24 +964,24 @@ CONFIG_FB_CFB_IMAGEBLIT=y
928# CONFIG_FB_BFIN_T350MCQB is not set 964# CONFIG_FB_BFIN_T350MCQB is not set
929# CONFIG_FB_BFIN_LQ035Q1 is not set 965# CONFIG_FB_BFIN_LQ035Q1 is not set
930CONFIG_FB_BF537_LQ035=y 966CONFIG_FB_BF537_LQ035=y
931CONFIG_LQ035_SLAVE_ADDR=0x58
932CONFIG_FB_BFIN_LANDSCAPE=y
933# CONFIG_FB_BFIN_BGR is not set
934# CONFIG_FB_BFIN_7393 is not set 967# CONFIG_FB_BFIN_7393 is not set
935# CONFIG_FB_HITACHI_TX09 is not set 968# CONFIG_FB_HITACHI_TX09 is not set
936# CONFIG_FB_S1D13XXX is not set 969# CONFIG_FB_S1D13XXX is not set
937# CONFIG_FB_VIRTUAL is not set 970# CONFIG_FB_VIRTUAL is not set
938# CONFIG_FB_METRONOME is not set 971# CONFIG_FB_METRONOME is not set
939# CONFIG_FB_MB862XX is not set 972# CONFIG_FB_MB862XX is not set
973# CONFIG_FB_BROADSHEET is not set
940CONFIG_BACKLIGHT_LCD_SUPPORT=y 974CONFIG_BACKLIGHT_LCD_SUPPORT=y
941CONFIG_LCD_CLASS_DEVICE=y 975CONFIG_LCD_CLASS_DEVICE=y
976# CONFIG_LCD_LMS283GF05 is not set
942# CONFIG_LCD_LTV350QV is not set 977# CONFIG_LCD_LTV350QV is not set
943# CONFIG_LCD_ILI9320 is not set 978# CONFIG_LCD_ILI9320 is not set
944# CONFIG_LCD_TDO24M is not set 979# CONFIG_LCD_TDO24M is not set
945# CONFIG_LCD_VGG2432A4 is not set 980# CONFIG_LCD_VGG2432A4 is not set
946# CONFIG_LCD_PLATFORM is not set 981# CONFIG_LCD_PLATFORM is not set
947CONFIG_BACKLIGHT_CLASS_DEVICE=y 982CONFIG_BACKLIGHT_CLASS_DEVICE=y
948# CONFIG_BACKLIGHT_CORGI is not set 983CONFIG_BACKLIGHT_GENERIC=y
984# CONFIG_BACKLIGHT_ADP8870 is not set
949 985
950# 986#
951# Display device support 987# Display device support
@@ -954,6 +990,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y
954# CONFIG_LOGO is not set 990# CONFIG_LOGO is not set
955CONFIG_SOUND=y 991CONFIG_SOUND=y
956CONFIG_SOUND_OSS_CORE=y 992CONFIG_SOUND_OSS_CORE=y
993CONFIG_SOUND_OSS_CORE_PRECLAIM=y
957CONFIG_SND=m 994CONFIG_SND=m
958# CONFIG_SND_SEQUENCER is not set 995# CONFIG_SND_SEQUENCER is not set
959# CONFIG_SND_MIXER_OSS is not set 996# CONFIG_SND_MIXER_OSS is not set
@@ -963,6 +1000,11 @@ CONFIG_SND=m
963# CONFIG_SND_VERBOSE_PROCFS is not set 1000# CONFIG_SND_VERBOSE_PROCFS is not set
964# CONFIG_SND_VERBOSE_PRINTK is not set 1001# CONFIG_SND_VERBOSE_PRINTK is not set
965# CONFIG_SND_DEBUG is not set 1002# CONFIG_SND_DEBUG is not set
1003# CONFIG_SND_RAWMIDI_SEQ is not set
1004# CONFIG_SND_OPL3_LIB_SEQ is not set
1005# CONFIG_SND_OPL4_LIB_SEQ is not set
1006# CONFIG_SND_SBAWE_SEQ is not set
1007# CONFIG_SND_EMU10K1_SEQ is not set
966CONFIG_SND_DRIVERS=y 1008CONFIG_SND_DRIVERS=y
967# CONFIG_SND_DUMMY is not set 1009# CONFIG_SND_DUMMY is not set
968# CONFIG_SND_MTPAV is not set 1010# CONFIG_SND_MTPAV is not set
@@ -973,7 +1015,6 @@ CONFIG_SND_SPI=y
973# 1015#
974# ALSA Blackfin devices 1016# ALSA Blackfin devices
975# 1017#
976# CONFIG_SND_BLACKFIN_AD1836 is not set
977# CONFIG_SND_BFIN_AD73322 is not set 1018# CONFIG_SND_BFIN_AD73322 is not set
978# CONFIG_SND_SOC is not set 1019# CONFIG_SND_SOC is not set
979CONFIG_SOUND_PRIME=y 1020CONFIG_SOUND_PRIME=y
@@ -993,9 +1034,13 @@ CONFIG_USB_ARCH_HAS_HCD=y
993# 1034#
994 1035
995# 1036#
996# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; 1037# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
997# 1038#
998# CONFIG_USB_GADGET is not set 1039# CONFIG_USB_GADGET is not set
1040
1041#
1042# OTG and related infrastructure
1043#
999# CONFIG_MMC is not set 1044# CONFIG_MMC is not set
1000# CONFIG_MEMSTICK is not set 1045# CONFIG_MEMSTICK is not set
1001# CONFIG_NEW_LEDS is not set 1046# CONFIG_NEW_LEDS is not set
@@ -1031,6 +1076,7 @@ CONFIG_RTC_INTF_DEV=y
1031# CONFIG_RTC_DRV_S35390A is not set 1076# CONFIG_RTC_DRV_S35390A is not set
1032# CONFIG_RTC_DRV_FM3130 is not set 1077# CONFIG_RTC_DRV_FM3130 is not set
1033# CONFIG_RTC_DRV_RX8581 is not set 1078# CONFIG_RTC_DRV_RX8581 is not set
1079# CONFIG_RTC_DRV_RX8025 is not set
1034 1080
1035# 1081#
1036# SPI RTC drivers 1082# SPI RTC drivers
@@ -1042,6 +1088,7 @@ CONFIG_RTC_INTF_DEV=y
1042# CONFIG_RTC_DRV_R9701 is not set 1088# CONFIG_RTC_DRV_R9701 is not set
1043# CONFIG_RTC_DRV_RS5C348 is not set 1089# CONFIG_RTC_DRV_RS5C348 is not set
1044# CONFIG_RTC_DRV_DS3234 is not set 1090# CONFIG_RTC_DRV_DS3234 is not set
1091# CONFIG_RTC_DRV_PCF2123 is not set
1045 1092
1046# 1093#
1047# Platform RTC drivers 1094# Platform RTC drivers
@@ -1062,10 +1109,21 @@ CONFIG_RTC_INTF_DEV=y
1062# 1109#
1063CONFIG_RTC_DRV_BFIN=y 1110CONFIG_RTC_DRV_BFIN=y
1064# CONFIG_DMADEVICES is not set 1111# CONFIG_DMADEVICES is not set
1112# CONFIG_AUXDISPLAY is not set
1065# CONFIG_UIO is not set 1113# CONFIG_UIO is not set
1114
1115#
1116# TI VLYNQ
1117#
1066# CONFIG_STAGING is not set 1118# CONFIG_STAGING is not set
1067 1119
1068# 1120#
1121# Firmware Drivers
1122#
1123# CONFIG_FIRMWARE_MEMMAP is not set
1124# CONFIG_SIGMA is not set
1125
1126#
1069# File systems 1127# File systems
1070# 1128#
1071CONFIG_EXT2_FS=y 1129CONFIG_EXT2_FS=y
@@ -1078,9 +1136,13 @@ CONFIG_FS_MBCACHE=y
1078# CONFIG_REISERFS_FS is not set 1136# CONFIG_REISERFS_FS is not set
1079# CONFIG_JFS_FS is not set 1137# CONFIG_JFS_FS is not set
1080# CONFIG_FS_POSIX_ACL is not set 1138# CONFIG_FS_POSIX_ACL is not set
1081CONFIG_FILE_LOCKING=y
1082# CONFIG_XFS_FS is not set 1139# CONFIG_XFS_FS is not set
1140# CONFIG_GFS2_FS is not set
1083# CONFIG_OCFS2_FS is not set 1141# CONFIG_OCFS2_FS is not set
1142# CONFIG_BTRFS_FS is not set
1143# CONFIG_NILFS2_FS is not set
1144CONFIG_FILE_LOCKING=y
1145CONFIG_FSNOTIFY=y
1084# CONFIG_DNOTIFY is not set 1146# CONFIG_DNOTIFY is not set
1085CONFIG_INOTIFY=y 1147CONFIG_INOTIFY=y
1086CONFIG_INOTIFY_USER=y 1148CONFIG_INOTIFY_USER=y
@@ -1090,6 +1152,11 @@ CONFIG_INOTIFY_USER=y
1090# CONFIG_FUSE_FS is not set 1152# CONFIG_FUSE_FS is not set
1091 1153
1092# 1154#
1155# Caches
1156#
1157# CONFIG_FSCACHE is not set
1158
1159#
1093# CD-ROM/DVD Filesystems 1160# CD-ROM/DVD Filesystems
1094# 1161#
1095# CONFIG_ISO9660_FS is not set 1162# CONFIG_ISO9660_FS is not set
@@ -1108,13 +1175,9 @@ CONFIG_INOTIFY_USER=y
1108CONFIG_PROC_FS=y 1175CONFIG_PROC_FS=y
1109CONFIG_PROC_SYSCTL=y 1176CONFIG_PROC_SYSCTL=y
1110CONFIG_SYSFS=y 1177CONFIG_SYSFS=y
1111# CONFIG_TMPFS is not set
1112# CONFIG_HUGETLB_PAGE is not set 1178# CONFIG_HUGETLB_PAGE is not set
1113# CONFIG_CONFIGFS_FS is not set 1179# CONFIG_CONFIGFS_FS is not set
1114 1180CONFIG_MISC_FILESYSTEMS=y
1115#
1116# Miscellaneous filesystems
1117#
1118# CONFIG_ADFS_FS is not set 1181# CONFIG_ADFS_FS is not set
1119# CONFIG_AFFS_FS is not set 1182# CONFIG_AFFS_FS is not set
1120# CONFIG_HFS_FS is not set 1183# CONFIG_HFS_FS is not set
@@ -1123,17 +1186,8 @@ CONFIG_SYSFS=y
1123# CONFIG_BFS_FS is not set 1186# CONFIG_BFS_FS is not set
1124# CONFIG_EFS_FS is not set 1187# CONFIG_EFS_FS is not set
1125# CONFIG_JFFS2_FS is not set 1188# CONFIG_JFFS2_FS is not set
1126CONFIG_YAFFS_FS=y
1127CONFIG_YAFFS_YAFFS1=y
1128# CONFIG_YAFFS_9BYTE_TAGS is not set
1129# CONFIG_YAFFS_DOES_ECC is not set
1130CONFIG_YAFFS_YAFFS2=y
1131CONFIG_YAFFS_AUTO_YAFFS2=y
1132# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set
1133# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set
1134# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set
1135CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
1136# CONFIG_CRAMFS is not set 1189# CONFIG_CRAMFS is not set
1190# CONFIG_SQUASHFS is not set
1137# CONFIG_VXFS_FS is not set 1191# CONFIG_VXFS_FS is not set
1138# CONFIG_MINIX_FS is not set 1192# CONFIG_MINIX_FS is not set
1139# CONFIG_OMFS_FS is not set 1193# CONFIG_OMFS_FS is not set
@@ -1152,7 +1206,6 @@ CONFIG_LOCKD=m
1152CONFIG_LOCKD_V4=y 1206CONFIG_LOCKD_V4=y
1153CONFIG_NFS_COMMON=y 1207CONFIG_NFS_COMMON=y
1154CONFIG_SUNRPC=m 1208CONFIG_SUNRPC=m
1155# CONFIG_SUNRPC_REGISTER_V4 is not set
1156# CONFIG_RPCSEC_GSS_KRB5 is not set 1209# CONFIG_RPCSEC_GSS_KRB5 is not set
1157# CONFIG_RPCSEC_GSS_SPKM3 is not set 1210# CONFIG_RPCSEC_GSS_SPKM3 is not set
1158CONFIG_SMB_FS=m 1211CONFIG_SMB_FS=m
@@ -1217,18 +1270,19 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1217CONFIG_ENABLE_MUST_CHECK=y 1270CONFIG_ENABLE_MUST_CHECK=y
1218CONFIG_FRAME_WARN=1024 1271CONFIG_FRAME_WARN=1024
1219# CONFIG_MAGIC_SYSRQ is not set 1272# CONFIG_MAGIC_SYSRQ is not set
1273# CONFIG_STRIP_ASM_SYMS is not set
1220# CONFIG_UNUSED_SYMBOLS is not set 1274# CONFIG_UNUSED_SYMBOLS is not set
1221# CONFIG_DEBUG_FS is not set 1275# CONFIG_DEBUG_FS is not set
1222# CONFIG_HEADERS_CHECK is not set 1276# CONFIG_HEADERS_CHECK is not set
1277CONFIG_DEBUG_SECTION_MISMATCH=y
1223# CONFIG_DEBUG_KERNEL is not set 1278# CONFIG_DEBUG_KERNEL is not set
1224# CONFIG_DEBUG_BUGVERBOSE is not set 1279# CONFIG_DEBUG_BUGVERBOSE is not set
1225# CONFIG_DEBUG_MEMORY_INIT is not set 1280# CONFIG_DEBUG_MEMORY_INIT is not set
1226# CONFIG_RCU_CPU_STALL_DETECTOR is not set 1281# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1227 1282CONFIG_HAVE_FUNCTION_TRACER=y
1228# 1283CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1229# Tracers 1284CONFIG_TRACING_SUPPORT=y
1230# 1285# CONFIG_FTRACE is not set
1231# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1232# CONFIG_SAMPLES is not set 1286# CONFIG_SAMPLES is not set
1233CONFIG_HAVE_ARCH_KGDB=y 1287CONFIG_HAVE_ARCH_KGDB=y
1234CONFIG_DEBUG_VERBOSE=y 1288CONFIG_DEBUG_VERBOSE=y
@@ -1245,6 +1299,7 @@ CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=0
1245# CONFIG_EARLY_PRINTK is not set 1299# CONFIG_EARLY_PRINTK is not set
1246# CONFIG_CPLB_INFO is not set 1300# CONFIG_CPLB_INFO is not set
1247# CONFIG_ACCESS_CHECK is not set 1301# CONFIG_ACCESS_CHECK is not set
1302# CONFIG_BFIN_ISRAM_SELF_TEST is not set
1248 1303
1249# 1304#
1250# Security options 1305# Security options
@@ -1253,14 +1308,14 @@ CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=0
1253CONFIG_SECURITY=y 1308CONFIG_SECURITY=y
1254# CONFIG_SECURITYFS is not set 1309# CONFIG_SECURITYFS is not set
1255# CONFIG_SECURITY_NETWORK is not set 1310# CONFIG_SECURITY_NETWORK is not set
1311# CONFIG_SECURITY_PATH is not set
1256# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1312# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1257CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1313# CONFIG_SECURITY_TOMOYO is not set
1258CONFIG_CRYPTO=y 1314CONFIG_CRYPTO=y
1259 1315
1260# 1316#
1261# Crypto core or helper 1317# Crypto core or helper
1262# 1318#
1263# CONFIG_CRYPTO_FIPS is not set
1264# CONFIG_CRYPTO_MANAGER is not set 1319# CONFIG_CRYPTO_MANAGER is not set
1265# CONFIG_CRYPTO_MANAGER2 is not set 1320# CONFIG_CRYPTO_MANAGER2 is not set
1266# CONFIG_CRYPTO_GF128MUL is not set 1321# CONFIG_CRYPTO_GF128MUL is not set
@@ -1292,11 +1347,13 @@ CONFIG_CRYPTO=y
1292# 1347#
1293# CONFIG_CRYPTO_HMAC is not set 1348# CONFIG_CRYPTO_HMAC is not set
1294# CONFIG_CRYPTO_XCBC is not set 1349# CONFIG_CRYPTO_XCBC is not set
1350# CONFIG_CRYPTO_VMAC is not set
1295 1351
1296# 1352#
1297# Digest 1353# Digest
1298# 1354#
1299# CONFIG_CRYPTO_CRC32C is not set 1355# CONFIG_CRYPTO_CRC32C is not set
1356# CONFIG_CRYPTO_GHASH is not set
1300# CONFIG_CRYPTO_MD4 is not set 1357# CONFIG_CRYPTO_MD4 is not set
1301# CONFIG_CRYPTO_MD5 is not set 1358# CONFIG_CRYPTO_MD5 is not set
1302# CONFIG_CRYPTO_MICHAEL_MIC is not set 1359# CONFIG_CRYPTO_MICHAEL_MIC is not set
@@ -1333,6 +1390,7 @@ CONFIG_CRYPTO=y
1333# Compression 1390# Compression
1334# 1391#
1335# CONFIG_CRYPTO_DEFLATE is not set 1392# CONFIG_CRYPTO_DEFLATE is not set
1393# CONFIG_CRYPTO_ZLIB is not set
1336# CONFIG_CRYPTO_LZO is not set 1394# CONFIG_CRYPTO_LZO is not set
1337 1395
1338# 1396#
@@ -1340,11 +1398,13 @@ CONFIG_CRYPTO=y
1340# 1398#
1341# CONFIG_CRYPTO_ANSI_CPRNG is not set 1399# CONFIG_CRYPTO_ANSI_CPRNG is not set
1342CONFIG_CRYPTO_HW=y 1400CONFIG_CRYPTO_HW=y
1401# CONFIG_BINARY_PRINTF is not set
1343 1402
1344# 1403#
1345# Library routines 1404# Library routines
1346# 1405#
1347CONFIG_BITREVERSE=y 1406CONFIG_BITREVERSE=y
1407CONFIG_GENERIC_FIND_LAST_BIT=y
1348CONFIG_CRC_CCITT=m 1408CONFIG_CRC_CCITT=m
1349# CONFIG_CRC16 is not set 1409# CONFIG_CRC16 is not set
1350# CONFIG_CRC_T10DIF is not set 1410# CONFIG_CRC_T10DIF is not set
@@ -1356,3 +1416,4 @@ CONFIG_ZLIB_INFLATE=y
1356CONFIG_HAS_IOMEM=y 1416CONFIG_HAS_IOMEM=y
1357CONFIG_HAS_IOPORT=y 1417CONFIG_HAS_IOPORT=y
1358CONFIG_HAS_DMA=y 1418CONFIG_HAS_DMA=y
1419CONFIG_NLATTR=y
diff --git a/arch/blackfin/configs/TCM-BF518_defconfig b/arch/blackfin/configs/TCM-BF518_defconfig
new file mode 100644
index 000000000000..4d31e2a4ed46
--- /dev/null
+++ b/arch/blackfin/configs/TCM-BF518_defconfig
@@ -0,0 +1,1375 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.32.3
4#
5# CONFIG_MMU is not set
6# CONFIG_FPU is not set
7CONFIG_RWSEM_GENERIC_SPINLOCK=y
8# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
9CONFIG_BLACKFIN=y
10CONFIG_GENERIC_CSUM=y
11CONFIG_GENERIC_BUG=y
12CONFIG_ZONE_DMA=y
13CONFIG_GENERIC_FIND_NEXT_BIT=y
14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
17CONFIG_GENERIC_GPIO=y
18CONFIG_FORCE_MAX_ZONEORDER=14
19CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_LOCKDEP_SUPPORT=y
21CONFIG_STACKTRACE_SUPPORT=y
22CONFIG_TRACE_IRQFLAGS_SUPPORT=y
23CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
24CONFIG_CONSTRUCTORS=y
25
26#
27# General setup
28#
29CONFIG_EXPERIMENTAL=y
30CONFIG_BROKEN_ON_SMP=y
31CONFIG_INIT_ENV_ARG_LIMIT=32
32CONFIG_LOCALVERSION=""
33CONFIG_LOCALVERSION_AUTO=y
34CONFIG_HAVE_KERNEL_GZIP=y
35CONFIG_HAVE_KERNEL_BZIP2=y
36CONFIG_HAVE_KERNEL_LZMA=y
37# CONFIG_KERNEL_GZIP is not set
38# CONFIG_KERNEL_BZIP2 is not set
39CONFIG_KERNEL_LZMA=y
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
47#
48# RCU Subsystem
49#
50CONFIG_TREE_RCU=y
51# CONFIG_TREE_PREEMPT_RCU is not set
52# CONFIG_RCU_TRACE is not set
53CONFIG_RCU_FANOUT=32
54# CONFIG_RCU_FANOUT_EXACT is not set
55# CONFIG_TREE_RCU_TRACE is not set
56CONFIG_IKCONFIG=y
57CONFIG_IKCONFIG_PROC=y
58CONFIG_LOG_BUF_SHIFT=14
59# CONFIG_GROUP_SCHED is not set
60# CONFIG_CGROUPS is not set
61# CONFIG_SYSFS_DEPRECATED_V2 is not set
62# CONFIG_RELAY is not set
63# CONFIG_NAMESPACES is not set
64CONFIG_BLK_DEV_INITRD=y
65CONFIG_INITRAMFS_SOURCE=""
66# CONFIG_RD_GZIP is not set
67# CONFIG_RD_BZIP2 is not set
68CONFIG_RD_LZMA=y
69CONFIG_CC_OPTIMIZE_FOR_SIZE=y
70CONFIG_SYSCTL=y
71CONFIG_ANON_INODES=y
72CONFIG_EMBEDDED=y
73CONFIG_UID16=y
74# CONFIG_SYSCTL_SYSCALL is not set
75CONFIG_KALLSYMS=y
76# CONFIG_KALLSYMS_ALL is not set
77# CONFIG_KALLSYMS_EXTRA_PASS is not set
78CONFIG_HOTPLUG=y
79CONFIG_PRINTK=y
80CONFIG_BUG=y
81# CONFIG_ELF_CORE is not set
82CONFIG_BASE_FULL=y
83# CONFIG_FUTEX is not set
84CONFIG_EPOLL=y
85# CONFIG_SIGNALFD is not set
86# CONFIG_TIMERFD is not set
87# CONFIG_EVENTFD is not set
88# CONFIG_AIO is not set
89
90#
91# Kernel Performance Events And Counters
92#
93CONFIG_VM_EVENT_COUNTERS=y
94CONFIG_COMPAT_BRK=y
95CONFIG_SLAB=y
96# CONFIG_SLUB is not set
97# CONFIG_SLOB is not set
98CONFIG_MMAP_ALLOW_UNINITIALIZED=y
99# CONFIG_PROFILING is not set
100CONFIG_HAVE_OPROFILE=y
101
102#
103# GCOV-based kernel profiling
104#
105# CONFIG_GCOV_KERNEL is not set
106# CONFIG_SLOW_WORK is not set
107# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
108CONFIG_SLABINFO=y
109CONFIG_BASE_SMALL=0
110CONFIG_MODULES=y
111# CONFIG_MODULE_FORCE_LOAD is not set
112CONFIG_MODULE_UNLOAD=y
113# CONFIG_MODULE_FORCE_UNLOAD is not set
114# CONFIG_MODVERSIONS is not set
115# CONFIG_MODULE_SRCVERSION_ALL is not set
116CONFIG_BLOCK=y
117# CONFIG_LBDAF is not set
118# CONFIG_BLK_DEV_BSG is not set
119# CONFIG_BLK_DEV_INTEGRITY is not set
120
121#
122# IO Schedulers
123#
124CONFIG_IOSCHED_NOOP=y
125# CONFIG_IOSCHED_AS is not set
126# CONFIG_IOSCHED_DEADLINE is not set
127# CONFIG_IOSCHED_CFQ is not set
128# CONFIG_DEFAULT_AS is not set
129# CONFIG_DEFAULT_DEADLINE is not set
130# CONFIG_DEFAULT_CFQ is not set
131CONFIG_DEFAULT_NOOP=y
132CONFIG_DEFAULT_IOSCHED="noop"
133# CONFIG_PREEMPT_NONE is not set
134CONFIG_PREEMPT_VOLUNTARY=y
135# CONFIG_PREEMPT is not set
136# CONFIG_FREEZER is not set
137
138#
139# Blackfin Processor Options
140#
141
142#
143# Processor and Board Settings
144#
145# CONFIG_BF512 is not set
146# CONFIG_BF514 is not set
147# CONFIG_BF516 is not set
148CONFIG_BF518=y
149# CONFIG_BF522 is not set
150# CONFIG_BF523 is not set
151# CONFIG_BF524 is not set
152# CONFIG_BF525 is not set
153# CONFIG_BF526 is not set
154# CONFIG_BF527 is not set
155# CONFIG_BF531 is not set
156# CONFIG_BF532 is not set
157# CONFIG_BF533 is not set
158# CONFIG_BF534 is not set
159# CONFIG_BF536 is not set
160# CONFIG_BF537 is not set
161# CONFIG_BF538 is not set
162# CONFIG_BF539 is not set
163# CONFIG_BF542_std is not set
164# CONFIG_BF542M is not set
165# CONFIG_BF544_std is not set
166# CONFIG_BF544M is not set
167# CONFIG_BF547_std is not set
168# CONFIG_BF547M is not set
169# CONFIG_BF548_std is not set
170# CONFIG_BF548M is not set
171# CONFIG_BF549_std is not set
172# CONFIG_BF549M is not set
173# CONFIG_BF561 is not set
174CONFIG_BF_REV_MIN=0
175CONFIG_BF_REV_MAX=2
176# CONFIG_BF_REV_0_0 is not set
177CONFIG_BF_REV_0_1=y
178# CONFIG_BF_REV_0_2 is not set
179# CONFIG_BF_REV_0_3 is not set
180# CONFIG_BF_REV_0_4 is not set
181# CONFIG_BF_REV_0_5 is not set
182# CONFIG_BF_REV_0_6 is not set
183# CONFIG_BF_REV_ANY is not set
184# CONFIG_BF_REV_NONE is not set
185CONFIG_BF51x=y
186# CONFIG_BFIN518F_EZBRD is not set
187CONFIG_BFIN518F_TCM=y
188
189#
190# BF518 Specific Configuration
191#
192
193#
194# Alternative Multiplexing Scheme
195#
196# CONFIG_BF518_SPORT0_PORTF is not set
197CONFIG_BF518_SPORT0_PORTG=y
198CONFIG_BF518_SPORT0_TSCLK_PG10=y
199# CONFIG_BF518_SPORT0_TSCLK_PG14 is not set
200CONFIG_BF518_UART1_PORTF=y
201# CONFIG_BF518_UART1_PORTG is not set
202
203#
204# Interrupt Priority Assignment
205#
206
207#
208# Priority
209#
210CONFIG_IRQ_PLL_WAKEUP=7
211CONFIG_IRQ_DMA0_ERROR=7
212CONFIG_IRQ_DMAR0_BLK=7
213CONFIG_IRQ_DMAR1_BLK=7
214CONFIG_IRQ_DMAR0_OVR=7
215CONFIG_IRQ_DMAR1_OVR=7
216CONFIG_IRQ_PPI_ERROR=7
217CONFIG_IRQ_MAC_ERROR=7
218CONFIG_IRQ_SPORT0_ERROR=7
219CONFIG_IRQ_SPORT1_ERROR=7
220CONFIG_IRQ_PTP_ERROR=7
221CONFIG_IRQ_UART0_ERROR=7
222CONFIG_IRQ_UART1_ERROR=7
223CONFIG_IRQ_RTC=8
224CONFIG_IRQ_PPI=8
225CONFIG_IRQ_SPORT0_RX=9
226CONFIG_IRQ_SPORT0_TX=9
227CONFIG_IRQ_SPORT1_RX=9
228CONFIG_IRQ_SPORT1_TX=9
229CONFIG_IRQ_TWI=10
230CONFIG_IRQ_SPI0=10
231CONFIG_IRQ_UART0_RX=10
232CONFIG_IRQ_UART0_TX=10
233CONFIG_IRQ_UART1_RX=10
234CONFIG_IRQ_UART1_TX=10
235CONFIG_IRQ_OPTSEC=11
236CONFIG_IRQ_CNT=11
237CONFIG_IRQ_MAC_RX=11
238CONFIG_IRQ_PORTH_INTA=11
239CONFIG_IRQ_MAC_TX=11
240CONFIG_IRQ_PORTH_INTB=11
241CONFIG_IRQ_TIMER0=12
242CONFIG_IRQ_TIMER1=12
243CONFIG_IRQ_TIMER2=12
244CONFIG_IRQ_TIMER3=12
245CONFIG_IRQ_TIMER4=12
246CONFIG_IRQ_TIMER5=12
247CONFIG_IRQ_TIMER6=12
248CONFIG_IRQ_TIMER7=12
249CONFIG_IRQ_PORTG_INTA=12
250CONFIG_IRQ_PORTG_INTB=12
251CONFIG_IRQ_MEM_DMA0=13
252CONFIG_IRQ_MEM_DMA1=13
253CONFIG_IRQ_WATCH=13
254CONFIG_IRQ_PORTF_INTA=13
255CONFIG_IRQ_PORTF_INTB=13
256CONFIG_IRQ_SPI0_ERROR=7
257CONFIG_IRQ_SPI1_ERROR=7
258CONFIG_IRQ_RSI_INT0=7
259CONFIG_IRQ_RSI_INT1=7
260CONFIG_IRQ_PWM_TRIP=10
261CONFIG_IRQ_PWM_SYNC=10
262CONFIG_IRQ_PTP_STAT=10
263
264#
265# Board customizations
266#
267# CONFIG_CMDLINE_BOOL is not set
268CONFIG_BOOT_LOAD=0x1000
269
270#
271# Clock/PLL Setup
272#
273CONFIG_CLKIN_HZ=25000000
274# CONFIG_BFIN_KERNEL_CLOCK is not set
275CONFIG_MAX_VCO_HZ=400000000
276CONFIG_MIN_VCO_HZ=50000000
277CONFIG_MAX_SCLK_HZ=133333333
278CONFIG_MIN_SCLK_HZ=27000000
279
280#
281# Kernel Timer/Scheduler
282#
283# CONFIG_HZ_100 is not set
284CONFIG_HZ_250=y
285# CONFIG_HZ_300 is not set
286# CONFIG_HZ_1000 is not set
287CONFIG_HZ=250
288# CONFIG_SCHED_HRTICK is not set
289CONFIG_GENERIC_TIME=y
290CONFIG_GENERIC_CLOCKEVENTS=y
291
292#
293# Clock event device
294#
295# CONFIG_TICKSOURCE_GPTMR0 is not set
296CONFIG_TICKSOURCE_CORETMR=y
297
298#
299# Clock souce
300#
301# CONFIG_CYCLES_CLOCKSOURCE is not set
302# CONFIG_GPTMR0_CLOCKSOURCE is not set
303# CONFIG_NO_HZ is not set
304# CONFIG_HIGH_RES_TIMERS is not set
305CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
306
307#
308# Misc
309#
310CONFIG_BFIN_SCRATCH_REG_RETN=y
311# CONFIG_BFIN_SCRATCH_REG_RETE is not set
312# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set
313
314#
315# Blackfin Kernel Optimizations
316#
317
318#
319# Memory Optimizations
320#
321CONFIG_I_ENTRY_L1=y
322CONFIG_EXCPT_IRQ_SYSC_L1=y
323CONFIG_DO_IRQ_L1=y
324CONFIG_CORE_TIMER_IRQ_L1=y
325CONFIG_IDLE_L1=y
326# CONFIG_SCHEDULE_L1 is not set
327CONFIG_ARITHMETIC_OPS_L1=y
328CONFIG_ACCESS_OK_L1=y
329# CONFIG_MEMSET_L1 is not set
330# CONFIG_MEMCPY_L1 is not set
331# CONFIG_SYS_BFIN_SPINLOCK_L1 is not set
332# CONFIG_IP_CHECKSUM_L1 is not set
333CONFIG_CACHELINE_ALIGNED_L1=y
334# CONFIG_SYSCALL_TAB_L1 is not set
335# CONFIG_CPLB_SWITCH_TAB_L1 is not set
336CONFIG_APP_STACK_L1=y
337
338#
339# Speed Optimizations
340#
341CONFIG_BFIN_INS_LOWOVERHEAD=y
342CONFIG_RAMKERNEL=y
343# CONFIG_ROMKERNEL is not set
344CONFIG_SELECT_MEMORY_MODEL=y
345CONFIG_FLATMEM_MANUAL=y
346# CONFIG_DISCONTIGMEM_MANUAL is not set
347# CONFIG_SPARSEMEM_MANUAL is not set
348CONFIG_FLATMEM=y
349CONFIG_FLAT_NODE_MEM_MAP=y
350CONFIG_PAGEFLAGS_EXTENDED=y
351CONFIG_SPLIT_PTLOCK_CPUS=4
352# CONFIG_PHYS_ADDR_T_64BIT is not set
353CONFIG_ZONE_DMA_FLAG=1
354CONFIG_VIRT_TO_BUS=y
355CONFIG_NOMMU_INITIAL_TRIM_EXCESS=0
356CONFIG_BFIN_GPTIMERS=m
357# CONFIG_DMA_UNCACHED_4M is not set
358# CONFIG_DMA_UNCACHED_2M is not set
359CONFIG_DMA_UNCACHED_1M=y
360# CONFIG_DMA_UNCACHED_512K is not set
361# CONFIG_DMA_UNCACHED_256K is not set
362# CONFIG_DMA_UNCACHED_128K is not set
363# CONFIG_DMA_UNCACHED_NONE is not set
364
365#
366# Cache Support
367#
368CONFIG_BFIN_ICACHE=y
369CONFIG_BFIN_EXTMEM_ICACHEABLE=y
370CONFIG_BFIN_DCACHE=y
371# CONFIG_BFIN_DCACHE_BANKA is not set
372CONFIG_BFIN_EXTMEM_DCACHEABLE=y
373CONFIG_BFIN_EXTMEM_WRITEBACK=y
374# CONFIG_BFIN_EXTMEM_WRITETHROUGH is not set
375
376#
377# Memory Protection Unit
378#
379# CONFIG_MPU is not set
380
381#
382# Asynchronous Memory Configuration
383#
384
385#
386# EBIU_AMGCTL Global Control
387#
388CONFIG_C_AMCKEN=y
389CONFIG_C_CDPRIO=y
390# CONFIG_C_AMBEN is not set
391# CONFIG_C_AMBEN_B0 is not set
392# CONFIG_C_AMBEN_B0_B1 is not set
393# CONFIG_C_AMBEN_B0_B1_B2 is not set
394CONFIG_C_AMBEN_ALL=y
395
396#
397# EBIU_AMBCTL Control
398#
399CONFIG_BANK_0=0x7BB0
400CONFIG_BANK_1=0x7BB0
401CONFIG_BANK_2=0x7BB0
402CONFIG_BANK_3=0x99B2
403
404#
405# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
406#
407# CONFIG_ARCH_SUPPORTS_MSI is not set
408# CONFIG_PCCARD is not set
409
410#
411# Executable file formats
412#
413CONFIG_BINFMT_ELF_FDPIC=y
414CONFIG_BINFMT_FLAT=y
415CONFIG_BINFMT_ZFLAT=y
416# CONFIG_BINFMT_SHARED_FLAT is not set
417# CONFIG_HAVE_AOUT is not set
418# CONFIG_BINFMT_MISC is not set
419
420#
421# Power management options
422#
423# CONFIG_PM is not set
424CONFIG_ARCH_SUSPEND_POSSIBLE=y
425
426#
427# CPU Frequency scaling
428#
429# CONFIG_CPU_FREQ is not set
430CONFIG_NET=y
431
432#
433# Networking options
434#
435CONFIG_PACKET=y
436# CONFIG_PACKET_MMAP is not set
437CONFIG_UNIX=y
438# CONFIG_NET_KEY is not set
439CONFIG_INET=y
440# CONFIG_IP_MULTICAST is not set
441# CONFIG_IP_ADVANCED_ROUTER is not set
442CONFIG_IP_FIB_HASH=y
443CONFIG_IP_PNP=y
444# CONFIG_IP_PNP_DHCP is not set
445# CONFIG_IP_PNP_BOOTP is not set
446# CONFIG_IP_PNP_RARP is not set
447# CONFIG_NET_IPIP is not set
448# CONFIG_NET_IPGRE is not set
449# CONFIG_ARPD is not set
450# CONFIG_SYN_COOKIES is not set
451# CONFIG_INET_AH is not set
452# CONFIG_INET_ESP is not set
453# CONFIG_INET_IPCOMP is not set
454# CONFIG_INET_XFRM_TUNNEL is not set
455# CONFIG_INET_TUNNEL is not set
456# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
457# CONFIG_INET_XFRM_MODE_TUNNEL is not set
458# CONFIG_INET_XFRM_MODE_BEET is not set
459# CONFIG_INET_LRO is not set
460# CONFIG_INET_DIAG is not set
461# CONFIG_TCP_CONG_ADVANCED is not set
462CONFIG_TCP_CONG_CUBIC=y
463CONFIG_DEFAULT_TCP_CONG="cubic"
464# CONFIG_TCP_MD5SIG is not set
465# CONFIG_IPV6 is not set
466# CONFIG_NETLABEL is not set
467# CONFIG_NETWORK_SECMARK is not set
468# CONFIG_NETFILTER is not set
469# CONFIG_IP_DCCP is not set
470# CONFIG_IP_SCTP is not set
471# CONFIG_RDS is not set
472# CONFIG_TIPC is not set
473# CONFIG_ATM is not set
474# CONFIG_BRIDGE is not set
475# CONFIG_NET_DSA is not set
476# CONFIG_VLAN_8021Q is not set
477# CONFIG_DECNET is not set
478# CONFIG_LLC2 is not set
479# CONFIG_IPX is not set
480# CONFIG_ATALK is not set
481# CONFIG_X25 is not set
482# CONFIG_LAPB is not set
483# CONFIG_ECONET is not set
484# CONFIG_WAN_ROUTER is not set
485# CONFIG_PHONET is not set
486# CONFIG_IEEE802154 is not set
487# CONFIG_NET_SCHED is not set
488# CONFIG_DCB is not set
489
490#
491# Network testing
492#
493# CONFIG_NET_PKTGEN is not set
494# CONFIG_HAMRADIO is not set
495# CONFIG_CAN is not set
496# CONFIG_IRDA is not set
497# CONFIG_BT is not set
498# CONFIG_AF_RXRPC is not set
499# CONFIG_WIRELESS is not set
500# CONFIG_WIMAX is not set
501# CONFIG_RFKILL is not set
502# CONFIG_NET_9P is not set
503
504#
505# Device Drivers
506#
507
508#
509# Generic Driver Options
510#
511CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
512CONFIG_STANDALONE=y
513CONFIG_PREVENT_FIRMWARE_BUILD=y
514# CONFIG_FW_LOADER is not set
515# CONFIG_DEBUG_DRIVER is not set
516# CONFIG_DEBUG_DEVRES is not set
517# CONFIG_SYS_HYPERVISOR is not set
518# CONFIG_CONNECTOR is not set
519CONFIG_MTD=y
520# CONFIG_MTD_DEBUG is not set
521# CONFIG_MTD_TESTS is not set
522# CONFIG_MTD_CONCAT is not set
523CONFIG_MTD_PARTITIONS=y
524# CONFIG_MTD_REDBOOT_PARTS is not set
525CONFIG_MTD_CMDLINE_PARTS=y
526# CONFIG_MTD_AR7_PARTS is not set
527
528#
529# User Modules And Translation Layers
530#
531CONFIG_MTD_CHAR=y
532CONFIG_MTD_BLKDEVS=y
533CONFIG_MTD_BLOCK=y
534# CONFIG_FTL is not set
535# CONFIG_NFTL is not set
536# CONFIG_INFTL is not set
537# CONFIG_RFD_FTL is not set
538# CONFIG_SSFDC is not set
539# CONFIG_MTD_OOPS is not set
540
541#
542# RAM/ROM/Flash chip drivers
543#
544CONFIG_MTD_CFI=y
545# CONFIG_MTD_JEDECPROBE is not set
546CONFIG_MTD_GEN_PROBE=y
547CONFIG_MTD_CFI_ADV_OPTIONS=y
548CONFIG_MTD_CFI_NOSWAP=y
549# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
550# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
551CONFIG_MTD_CFI_GEOMETRY=y
552# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
553CONFIG_MTD_MAP_BANK_WIDTH_2=y
554# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
555# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
556# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
557# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
558CONFIG_MTD_CFI_I1=y
559# CONFIG_MTD_CFI_I2 is not set
560# CONFIG_MTD_CFI_I4 is not set
561# CONFIG_MTD_CFI_I8 is not set
562# CONFIG_MTD_OTP is not set
563CONFIG_MTD_CFI_INTELEXT=y
564# CONFIG_MTD_CFI_AMDSTD is not set
565# CONFIG_MTD_CFI_STAA is not set
566CONFIG_MTD_CFI_UTIL=y
567CONFIG_MTD_RAM=y
568CONFIG_MTD_ROM=m
569# CONFIG_MTD_ABSENT is not set
570
571#
572# Mapping drivers for chip access
573#
574# CONFIG_MTD_COMPLEX_MAPPINGS is not set
575CONFIG_MTD_PHYSMAP=y
576# CONFIG_MTD_PHYSMAP_COMPAT is not set
577# CONFIG_MTD_UCLINUX is not set
578# CONFIG_MTD_PLATRAM is not set
579
580#
581# Self-contained MTD device drivers
582#
583# CONFIG_MTD_DATAFLASH is not set
584# CONFIG_MTD_M25P80 is not set
585# CONFIG_MTD_SST25L is not set
586# CONFIG_MTD_SLRAM is not set
587# CONFIG_MTD_PHRAM is not set
588# CONFIG_MTD_MTDRAM is not set
589# CONFIG_MTD_BLOCK2MTD is not set
590
591#
592# Disk-On-Chip Device Drivers
593#
594# CONFIG_MTD_DOC2000 is not set
595# CONFIG_MTD_DOC2001 is not set
596# CONFIG_MTD_DOC2001PLUS is not set
597# CONFIG_MTD_NAND is not set
598# CONFIG_MTD_ONENAND is not set
599
600#
601# LPDDR flash memory drivers
602#
603# CONFIG_MTD_LPDDR is not set
604
605#
606# UBI - Unsorted block images
607#
608# CONFIG_MTD_UBI is not set
609# CONFIG_PARPORT is not set
610CONFIG_BLK_DEV=y
611# CONFIG_BLK_DEV_COW_COMMON is not set
612# CONFIG_BLK_DEV_LOOP is not set
613# CONFIG_BLK_DEV_NBD is not set
614CONFIG_BLK_DEV_RAM=y
615CONFIG_BLK_DEV_RAM_COUNT=16
616CONFIG_BLK_DEV_RAM_SIZE=4096
617# CONFIG_BLK_DEV_XIP is not set
618# CONFIG_CDROM_PKTCDVD is not set
619# CONFIG_ATA_OVER_ETH is not set
620# CONFIG_BLK_DEV_HD is not set
621CONFIG_MISC_DEVICES=y
622# CONFIG_AD525X_DPOT is not set
623# CONFIG_ICS932S401 is not set
624# CONFIG_ENCLOSURE_SERVICES is not set
625# CONFIG_ISL29003 is not set
626# CONFIG_C2PORT is not set
627
628#
629# EEPROM support
630#
631# CONFIG_EEPROM_AT24 is not set
632# CONFIG_EEPROM_AT25 is not set
633# CONFIG_EEPROM_LEGACY is not set
634# CONFIG_EEPROM_MAX6875 is not set
635# CONFIG_EEPROM_93CX6 is not set
636CONFIG_HAVE_IDE=y
637# CONFIG_IDE is not set
638
639#
640# SCSI device support
641#
642# CONFIG_RAID_ATTRS is not set
643# CONFIG_SCSI is not set
644# CONFIG_SCSI_DMA is not set
645# CONFIG_SCSI_NETLINK is not set
646# CONFIG_ATA is not set
647# CONFIG_MD is not set
648CONFIG_NETDEVICES=y
649# CONFIG_DUMMY is not set
650# CONFIG_BONDING is not set
651# CONFIG_MACVLAN is not set
652# CONFIG_EQUALIZER is not set
653# CONFIG_TUN is not set
654# CONFIG_VETH is not set
655CONFIG_PHYLIB=y
656
657#
658# MII PHY device drivers
659#
660# CONFIG_MARVELL_PHY is not set
661# CONFIG_DAVICOM_PHY is not set
662# CONFIG_QSEMI_PHY is not set
663# CONFIG_LXT_PHY is not set
664# CONFIG_CICADA_PHY is not set
665# CONFIG_VITESSE_PHY is not set
666# CONFIG_SMSC_PHY is not set
667# CONFIG_BROADCOM_PHY is not set
668# CONFIG_ICPLUS_PHY is not set
669# CONFIG_REALTEK_PHY is not set
670# CONFIG_NATIONAL_PHY is not set
671# CONFIG_STE10XP is not set
672# CONFIG_LSI_ET1011C_PHY is not set
673# CONFIG_FIXED_PHY is not set
674# CONFIG_MDIO_BITBANG is not set
675CONFIG_NET_ETHERNET=y
676CONFIG_MII=y
677CONFIG_BFIN_MAC=y
678CONFIG_BFIN_TX_DESC_NUM=10
679CONFIG_BFIN_RX_DESC_NUM=20
680# CONFIG_BFIN_MAC_RMII is not set
681CONFIG_BFIN_MAC_USE_HWSTAMP=y
682# CONFIG_SMC91X is not set
683# CONFIG_DM9000 is not set
684# CONFIG_ENC28J60 is not set
685# CONFIG_ETHOC is not set
686# CONFIG_SMSC911X is not set
687# CONFIG_DNET is not set
688# CONFIG_ADF702X is not set
689# CONFIG_IBM_NEW_EMAC_ZMII is not set
690# CONFIG_IBM_NEW_EMAC_RGMII is not set
691# CONFIG_IBM_NEW_EMAC_TAH is not set
692# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
693# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
694# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
695# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
696# CONFIG_B44 is not set
697# CONFIG_KS8842 is not set
698# CONFIG_KS8851 is not set
699# CONFIG_KS8851_MLL is not set
700# CONFIG_NETDEV_1000 is not set
701# CONFIG_NETDEV_10000 is not set
702# CONFIG_WLAN is not set
703
704#
705# Enable WiMAX (Networking options) to see the WiMAX drivers
706#
707# CONFIG_WAN is not set
708# CONFIG_PPP is not set
709# CONFIG_SLIP is not set
710# CONFIG_NETCONSOLE is not set
711# CONFIG_NETPOLL is not set
712# CONFIG_NET_POLL_CONTROLLER is not set
713# CONFIG_ISDN is not set
714# CONFIG_PHONE is not set
715
716#
717# Input device support
718#
719CONFIG_INPUT=y
720# CONFIG_INPUT_FF_MEMLESS is not set
721# CONFIG_INPUT_POLLDEV is not set
722
723#
724# Userland interfaces
725#
726# CONFIG_INPUT_MOUSEDEV is not set
727# CONFIG_INPUT_JOYDEV is not set
728# CONFIG_INPUT_EVDEV is not set
729# CONFIG_INPUT_EVBUG is not set
730
731#
732# Input Device Drivers
733#
734# CONFIG_INPUT_KEYBOARD is not set
735# CONFIG_INPUT_MOUSE is not set
736# CONFIG_INPUT_JOYSTICK is not set
737# CONFIG_INPUT_TABLET is not set
738# CONFIG_INPUT_TOUCHSCREEN is not set
739CONFIG_INPUT_MISC=y
740# CONFIG_INPUT_UINPUT is not set
741# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
742# CONFIG_INPUT_AD714X is not set
743# CONFIG_INPUT_ADXL34X is not set
744# CONFIG_INPUT_PCF8574 is not set
745
746#
747# Hardware I/O ports
748#
749# CONFIG_SERIO is not set
750# CONFIG_GAMEPORT is not set
751
752#
753# Character devices
754#
755CONFIG_BFIN_DMA_INTERFACE=m
756# CONFIG_BFIN_PPI is not set
757# CONFIG_BFIN_PPIFCD is not set
758# CONFIG_BFIN_SIMPLE_TIMER is not set
759# CONFIG_BFIN_SPI_ADC is not set
760# CONFIG_BFIN_SPORT is not set
761# CONFIG_BFIN_TWI_LCD is not set
762CONFIG_VT=y
763CONFIG_CONSOLE_TRANSLATIONS=y
764CONFIG_VT_CONSOLE=y
765CONFIG_HW_CONSOLE=y
766# CONFIG_VT_HW_CONSOLE_BINDING is not set
767# CONFIG_DEVKMEM is not set
768CONFIG_BFIN_JTAG_COMM=m
769# CONFIG_SERIAL_NONSTANDARD is not set
770
771#
772# Serial drivers
773#
774# CONFIG_SERIAL_8250 is not set
775
776#
777# Non-8250 serial port support
778#
779# CONFIG_SERIAL_MAX3100 is not set
780CONFIG_SERIAL_BFIN=y
781CONFIG_SERIAL_BFIN_CONSOLE=y
782CONFIG_SERIAL_BFIN_DMA=y
783# CONFIG_SERIAL_BFIN_PIO is not set
784CONFIG_SERIAL_BFIN_UART0=y
785# CONFIG_BFIN_UART0_CTSRTS is not set
786# CONFIG_SERIAL_BFIN_UART1 is not set
787CONFIG_SERIAL_CORE=y
788CONFIG_SERIAL_CORE_CONSOLE=y
789# CONFIG_SERIAL_BFIN_SPORT is not set
790CONFIG_UNIX98_PTYS=y
791# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
792# CONFIG_LEGACY_PTYS is not set
793CONFIG_BFIN_OTP=y
794# CONFIG_BFIN_OTP_WRITE_ENABLE is not set
795# CONFIG_IPMI_HANDLER is not set
796# CONFIG_HW_RANDOM is not set
797# CONFIG_R3964 is not set
798# CONFIG_RAW_DRIVER is not set
799# CONFIG_TCG_TPM is not set
800CONFIG_I2C=y
801CONFIG_I2C_BOARDINFO=y
802CONFIG_I2C_COMPAT=y
803CONFIG_I2C_CHARDEV=y
804CONFIG_I2C_HELPER_AUTO=y
805
806#
807# I2C Hardware Bus support
808#
809
810#
811# I2C system bus drivers (mostly embedded / system-on-chip)
812#
813CONFIG_I2C_BLACKFIN_TWI=y
814CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=100
815# CONFIG_I2C_GPIO is not set
816# CONFIG_I2C_OCORES is not set
817# CONFIG_I2C_SIMTEC is not set
818
819#
820# External I2C/SMBus adapter drivers
821#
822# CONFIG_I2C_PARPORT_LIGHT is not set
823# CONFIG_I2C_TAOS_EVM is not set
824
825#
826# Other I2C/SMBus bus drivers
827#
828# CONFIG_I2C_PCA_PLATFORM is not set
829# CONFIG_I2C_STUB is not set
830
831#
832# Miscellaneous I2C Chip support
833#
834# CONFIG_DS1682 is not set
835# CONFIG_SENSORS_TSL2550 is not set
836# CONFIG_I2C_DEBUG_CORE is not set
837# CONFIG_I2C_DEBUG_ALGO is not set
838# CONFIG_I2C_DEBUG_BUS is not set
839# CONFIG_I2C_DEBUG_CHIP is not set
840CONFIG_SPI=y
841# CONFIG_SPI_DEBUG is not set
842CONFIG_SPI_MASTER=y
843
844#
845# SPI Master Controller Drivers
846#
847CONFIG_SPI_BFIN=y
848CONFIG_SPI_BFIN_LOCK=y
849# CONFIG_SPI_BFIN_SPORT is not set
850# CONFIG_SPI_BITBANG is not set
851# CONFIG_SPI_GPIO is not set
852
853#
854# SPI Protocol Masters
855#
856# CONFIG_SPI_SPIDEV is not set
857# CONFIG_SPI_TLE62X0 is not set
858
859#
860# PPS support
861#
862# CONFIG_PPS is not set
863CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
864CONFIG_GPIOLIB=y
865# CONFIG_DEBUG_GPIO is not set
866CONFIG_GPIO_SYSFS=y
867
868#
869# Memory mapped GPIO expanders:
870#
871
872#
873# I2C GPIO expanders:
874#
875# CONFIG_GPIO_MAX732X is not set
876# CONFIG_GPIO_PCA953X is not set
877# CONFIG_GPIO_PCF857X is not set
878# CONFIG_GPIO_ADP5588 is not set
879
880#
881# PCI GPIO expanders:
882#
883
884#
885# SPI GPIO expanders:
886#
887# CONFIG_GPIO_MAX7301 is not set
888# CONFIG_GPIO_MCP23S08 is not set
889# CONFIG_GPIO_MC33880 is not set
890
891#
892# AC97 GPIO expanders:
893#
894# CONFIG_W1 is not set
895# CONFIG_POWER_SUPPLY is not set
896# CONFIG_HWMON is not set
897# CONFIG_THERMAL is not set
898CONFIG_WATCHDOG=y
899# CONFIG_WATCHDOG_NOWAYOUT is not set
900
901#
902# Watchdog Device Drivers
903#
904# CONFIG_SOFT_WATCHDOG is not set
905CONFIG_BFIN_WDT=y
906CONFIG_SSB_POSSIBLE=y
907
908#
909# Sonics Silicon Backplane
910#
911# CONFIG_SSB is not set
912
913#
914# Multifunction device drivers
915#
916# CONFIG_MFD_CORE is not set
917# CONFIG_MFD_SM501 is not set
918# CONFIG_HTC_PASIC3 is not set
919# CONFIG_TPS65010 is not set
920# CONFIG_TWL4030_CORE is not set
921# CONFIG_MFD_TMIO is not set
922# CONFIG_PMIC_DA903X is not set
923# CONFIG_PMIC_ADP5520 is not set
924# CONFIG_MFD_WM8400 is not set
925# CONFIG_MFD_WM831X is not set
926# CONFIG_MFD_WM8350_I2C is not set
927# CONFIG_MFD_PCF50633 is not set
928# CONFIG_MFD_MC13783 is not set
929# CONFIG_AB3100_CORE is not set
930# CONFIG_EZX_PCAP is not set
931# CONFIG_REGULATOR is not set
932# CONFIG_MEDIA_SUPPORT is not set
933
934#
935# Graphics support
936#
937# CONFIG_VGASTATE is not set
938# CONFIG_VIDEO_OUTPUT_CONTROL is not set
939# CONFIG_FB is not set
940# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
941
942#
943# Display device support
944#
945# CONFIG_DISPLAY_SUPPORT is not set
946
947#
948# Console display driver support
949#
950CONFIG_DUMMY_CONSOLE=y
951# CONFIG_SOUND is not set
952# CONFIG_HID_SUPPORT is not set
953# CONFIG_USB_SUPPORT is not set
954CONFIG_MMC=y
955CONFIG_MMC_DEBUG=y
956# CONFIG_MMC_UNSAFE_RESUME is not set
957
958#
959# MMC/SD/SDIO Card Drivers
960#
961CONFIG_MMC_BLOCK=y
962CONFIG_MMC_BLOCK_BOUNCE=y
963# CONFIG_SDIO_UART is not set
964# CONFIG_MMC_TEST is not set
965
966#
967# MMC/SD/SDIO Host Controller Drivers
968#
969# CONFIG_MMC_SDHCI is not set
970# CONFIG_MMC_AT91 is not set
971# CONFIG_MMC_ATMELMCI is not set
972CONFIG_MMC_SPI=y
973# CONFIG_SDH_BFIN is not set
974# CONFIG_MEMSTICK is not set
975# CONFIG_NEW_LEDS is not set
976# CONFIG_ACCESSIBILITY is not set
977CONFIG_RTC_LIB=y
978CONFIG_RTC_CLASS=y
979CONFIG_RTC_HCTOSYS=y
980CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
981# CONFIG_RTC_DEBUG is not set
982
983#
984# RTC interfaces
985#
986CONFIG_RTC_INTF_SYSFS=y
987CONFIG_RTC_INTF_PROC=y
988CONFIG_RTC_INTF_DEV=y
989# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
990# CONFIG_RTC_DRV_TEST is not set
991
992#
993# I2C RTC drivers
994#
995# CONFIG_RTC_DRV_DS1307 is not set
996# CONFIG_RTC_DRV_DS1374 is not set
997# CONFIG_RTC_DRV_DS1672 is not set
998# CONFIG_RTC_DRV_MAX6900 is not set
999# CONFIG_RTC_DRV_RS5C372 is not set
1000# CONFIG_RTC_DRV_ISL1208 is not set
1001# CONFIG_RTC_DRV_X1205 is not set
1002# CONFIG_RTC_DRV_PCF8563 is not set
1003# CONFIG_RTC_DRV_PCF8583 is not set
1004# CONFIG_RTC_DRV_M41T80 is not set
1005# CONFIG_RTC_DRV_S35390A is not set
1006# CONFIG_RTC_DRV_FM3130 is not set
1007# CONFIG_RTC_DRV_RX8581 is not set
1008# CONFIG_RTC_DRV_RX8025 is not set
1009
1010#
1011# SPI RTC drivers
1012#
1013# CONFIG_RTC_DRV_M41T94 is not set
1014# CONFIG_RTC_DRV_DS1305 is not set
1015# CONFIG_RTC_DRV_DS1390 is not set
1016# CONFIG_RTC_DRV_MAX6902 is not set
1017# CONFIG_RTC_DRV_R9701 is not set
1018# CONFIG_RTC_DRV_RS5C348 is not set
1019# CONFIG_RTC_DRV_DS3234 is not set
1020# CONFIG_RTC_DRV_PCF2123 is not set
1021
1022#
1023# Platform RTC drivers
1024#
1025# CONFIG_RTC_DRV_DS1286 is not set
1026# CONFIG_RTC_DRV_DS1511 is not set
1027# CONFIG_RTC_DRV_DS1553 is not set
1028# CONFIG_RTC_DRV_DS1742 is not set
1029# CONFIG_RTC_DRV_STK17TA8 is not set
1030# CONFIG_RTC_DRV_M48T86 is not set
1031# CONFIG_RTC_DRV_M48T35 is not set
1032# CONFIG_RTC_DRV_M48T59 is not set
1033# CONFIG_RTC_DRV_BQ4802 is not set
1034# CONFIG_RTC_DRV_V3020 is not set
1035
1036#
1037# on-CPU RTC drivers
1038#
1039CONFIG_RTC_DRV_BFIN=y
1040# CONFIG_DMADEVICES is not set
1041# CONFIG_AUXDISPLAY is not set
1042# CONFIG_UIO is not set
1043
1044#
1045# TI VLYNQ
1046#
1047# CONFIG_STAGING is not set
1048
1049#
1050# Firmware Drivers
1051#
1052# CONFIG_FIRMWARE_MEMMAP is not set
1053# CONFIG_SIGMA is not set
1054
1055#
1056# File systems
1057#
1058CONFIG_EXT2_FS=y
1059# CONFIG_EXT2_FS_XATTR is not set
1060# CONFIG_EXT3_FS is not set
1061# CONFIG_EXT4_FS is not set
1062# CONFIG_REISERFS_FS is not set
1063# CONFIG_JFS_FS is not set
1064# CONFIG_FS_POSIX_ACL is not set
1065# CONFIG_XFS_FS is not set
1066# CONFIG_OCFS2_FS is not set
1067# CONFIG_BTRFS_FS is not set
1068# CONFIG_NILFS2_FS is not set
1069CONFIG_FILE_LOCKING=y
1070CONFIG_FSNOTIFY=y
1071# CONFIG_DNOTIFY is not set
1072CONFIG_INOTIFY=y
1073CONFIG_INOTIFY_USER=y
1074# CONFIG_QUOTA is not set
1075# CONFIG_AUTOFS_FS is not set
1076# CONFIG_AUTOFS4_FS is not set
1077# CONFIG_FUSE_FS is not set
1078
1079#
1080# Caches
1081#
1082# CONFIG_FSCACHE is not set
1083
1084#
1085# CD-ROM/DVD Filesystems
1086#
1087# CONFIG_ISO9660_FS is not set
1088# CONFIG_UDF_FS is not set
1089
1090#
1091# DOS/FAT/NT Filesystems
1092#
1093CONFIG_FAT_FS=m
1094# CONFIG_MSDOS_FS is not set
1095CONFIG_VFAT_FS=m
1096CONFIG_FAT_DEFAULT_CODEPAGE=437
1097CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1098# CONFIG_NTFS_FS is not set
1099
1100#
1101# Pseudo filesystems
1102#
1103CONFIG_PROC_FS=y
1104CONFIG_PROC_SYSCTL=y
1105CONFIG_SYSFS=y
1106# CONFIG_HUGETLB_PAGE is not set
1107# CONFIG_CONFIGFS_FS is not set
1108# CONFIG_MISC_FILESYSTEMS is not set
1109CONFIG_NETWORK_FILESYSTEMS=y
1110CONFIG_NFS_FS=y
1111CONFIG_NFS_V3=y
1112# CONFIG_NFS_V3_ACL is not set
1113# CONFIG_NFS_V4 is not set
1114CONFIG_ROOT_NFS=y
1115# CONFIG_NFSD is not set
1116CONFIG_LOCKD=y
1117CONFIG_LOCKD_V4=y
1118CONFIG_NFS_COMMON=y
1119CONFIG_SUNRPC=y
1120# CONFIG_RPCSEC_GSS_KRB5 is not set
1121# CONFIG_RPCSEC_GSS_SPKM3 is not set
1122# CONFIG_SMB_FS is not set
1123# CONFIG_CIFS is not set
1124# CONFIG_NCP_FS is not set
1125# CONFIG_CODA_FS is not set
1126# CONFIG_AFS_FS is not set
1127
1128#
1129# Partition Types
1130#
1131# CONFIG_PARTITION_ADVANCED is not set
1132CONFIG_MSDOS_PARTITION=y
1133CONFIG_NLS=m
1134CONFIG_NLS_DEFAULT="iso8859-1"
1135CONFIG_NLS_CODEPAGE_437=m
1136# CONFIG_NLS_CODEPAGE_737 is not set
1137# CONFIG_NLS_CODEPAGE_775 is not set
1138# CONFIG_NLS_CODEPAGE_850 is not set
1139# CONFIG_NLS_CODEPAGE_852 is not set
1140# CONFIG_NLS_CODEPAGE_855 is not set
1141# CONFIG_NLS_CODEPAGE_857 is not set
1142# CONFIG_NLS_CODEPAGE_860 is not set
1143# CONFIG_NLS_CODEPAGE_861 is not set
1144# CONFIG_NLS_CODEPAGE_862 is not set
1145# CONFIG_NLS_CODEPAGE_863 is not set
1146# CONFIG_NLS_CODEPAGE_864 is not set
1147# CONFIG_NLS_CODEPAGE_865 is not set
1148# CONFIG_NLS_CODEPAGE_866 is not set
1149# CONFIG_NLS_CODEPAGE_869 is not set
1150# CONFIG_NLS_CODEPAGE_936 is not set
1151# CONFIG_NLS_CODEPAGE_950 is not set
1152# CONFIG_NLS_CODEPAGE_932 is not set
1153# CONFIG_NLS_CODEPAGE_949 is not set
1154# CONFIG_NLS_CODEPAGE_874 is not set
1155# CONFIG_NLS_ISO8859_8 is not set
1156# CONFIG_NLS_CODEPAGE_1250 is not set
1157# CONFIG_NLS_CODEPAGE_1251 is not set
1158# CONFIG_NLS_ASCII is not set
1159CONFIG_NLS_ISO8859_1=m
1160# CONFIG_NLS_ISO8859_2 is not set
1161# CONFIG_NLS_ISO8859_3 is not set
1162# CONFIG_NLS_ISO8859_4 is not set
1163# CONFIG_NLS_ISO8859_5 is not set
1164# CONFIG_NLS_ISO8859_6 is not set
1165# CONFIG_NLS_ISO8859_7 is not set
1166# CONFIG_NLS_ISO8859_9 is not set
1167# CONFIG_NLS_ISO8859_13 is not set
1168# CONFIG_NLS_ISO8859_14 is not set
1169# CONFIG_NLS_ISO8859_15 is not set
1170# CONFIG_NLS_KOI8_R is not set
1171# CONFIG_NLS_KOI8_U is not set
1172CONFIG_NLS_UTF8=m
1173# CONFIG_DLM is not set
1174
1175#
1176# Kernel hacking
1177#
1178# CONFIG_PRINTK_TIME is not set
1179CONFIG_ENABLE_WARN_DEPRECATED=y
1180CONFIG_ENABLE_MUST_CHECK=y
1181CONFIG_FRAME_WARN=1024
1182# CONFIG_MAGIC_SYSRQ is not set
1183# CONFIG_STRIP_ASM_SYMS is not set
1184# CONFIG_UNUSED_SYMBOLS is not set
1185CONFIG_DEBUG_FS=y
1186# CONFIG_HEADERS_CHECK is not set
1187CONFIG_DEBUG_SECTION_MISMATCH=y
1188CONFIG_DEBUG_KERNEL=y
1189CONFIG_DEBUG_SHIRQ=y
1190CONFIG_DETECT_SOFTLOCKUP=y
1191# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1192CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1193CONFIG_DETECT_HUNG_TASK=y
1194# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1195CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1196CONFIG_SCHED_DEBUG=y
1197# CONFIG_SCHEDSTATS is not set
1198# CONFIG_TIMER_STATS is not set
1199# CONFIG_DEBUG_OBJECTS is not set
1200# CONFIG_DEBUG_SLAB is not set
1201# CONFIG_DEBUG_SPINLOCK is not set
1202# CONFIG_DEBUG_MUTEXES is not set
1203# CONFIG_DEBUG_LOCK_ALLOC is not set
1204# CONFIG_PROVE_LOCKING is not set
1205# CONFIG_LOCK_STAT is not set
1206# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1207# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1208# CONFIG_DEBUG_KOBJECT is not set
1209CONFIG_DEBUG_BUGVERBOSE=y
1210CONFIG_DEBUG_INFO=y
1211# CONFIG_DEBUG_VM is not set
1212# CONFIG_DEBUG_NOMMU_REGIONS is not set
1213# CONFIG_DEBUG_WRITECOUNT is not set
1214# CONFIG_DEBUG_MEMORY_INIT is not set
1215# CONFIG_DEBUG_LIST is not set
1216# CONFIG_DEBUG_SG is not set
1217# CONFIG_DEBUG_NOTIFIERS is not set
1218# CONFIG_DEBUG_CREDENTIALS is not set
1219# CONFIG_FRAME_POINTER is not set
1220# CONFIG_BOOT_PRINTK_DELAY is not set
1221# CONFIG_RCU_TORTURE_TEST is not set
1222# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1223# CONFIG_BACKTRACE_SELF_TEST is not set
1224# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1225# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1226# CONFIG_FAULT_INJECTION is not set
1227# CONFIG_PAGE_POISONING is not set
1228CONFIG_HAVE_FUNCTION_TRACER=y
1229CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1230CONFIG_TRACING_SUPPORT=y
1231# CONFIG_FTRACE is not set
1232# CONFIG_DYNAMIC_DEBUG is not set
1233# CONFIG_SAMPLES is not set
1234CONFIG_HAVE_ARCH_KGDB=y
1235# CONFIG_KGDB is not set
1236# CONFIG_DEBUG_STACKOVERFLOW is not set
1237# CONFIG_DEBUG_STACK_USAGE is not set
1238CONFIG_DEBUG_VERBOSE=y
1239CONFIG_DEBUG_MMRS=y
1240CONFIG_DEBUG_HWERR=y
1241CONFIG_EXACT_HWERR=y
1242CONFIG_DEBUG_DOUBLEFAULT=y
1243CONFIG_DEBUG_DOUBLEFAULT_PRINT=y
1244# CONFIG_DEBUG_DOUBLEFAULT_RESET is not set
1245# CONFIG_DEBUG_ICACHE_CHECK is not set
1246CONFIG_DEBUG_HUNT_FOR_ZERO=y
1247CONFIG_DEBUG_BFIN_HWTRACE_ON=y
1248# CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_OFF is not set
1249CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_ONE=y
1250# CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION_TWO is not set
1251CONFIG_DEBUG_BFIN_HWTRACE_COMPRESSION=1
1252# CONFIG_DEBUG_BFIN_HWTRACE_EXPAND is not set
1253CONFIG_DEBUG_BFIN_NO_KERN_HWTRACE=y
1254CONFIG_EARLY_PRINTK=y
1255CONFIG_CPLB_INFO=y
1256CONFIG_ACCESS_CHECK=y
1257# CONFIG_BFIN_ISRAM_SELF_TEST is not set
1258
1259#
1260# Security options
1261#
1262# CONFIG_KEYS is not set
1263CONFIG_SECURITY=y
1264# CONFIG_SECURITYFS is not set
1265# CONFIG_SECURITY_NETWORK is not set
1266# CONFIG_SECURITY_PATH is not set
1267# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1268# CONFIG_SECURITY_TOMOYO is not set
1269CONFIG_CRYPTO=y
1270
1271#
1272# Crypto core or helper
1273#
1274# CONFIG_CRYPTO_MANAGER is not set
1275# CONFIG_CRYPTO_MANAGER2 is not set
1276# CONFIG_CRYPTO_GF128MUL is not set
1277# CONFIG_CRYPTO_NULL is not set
1278# CONFIG_CRYPTO_CRYPTD is not set
1279# CONFIG_CRYPTO_AUTHENC is not set
1280# CONFIG_CRYPTO_TEST is not set
1281
1282#
1283# Authenticated Encryption with Associated Data
1284#
1285# CONFIG_CRYPTO_CCM is not set
1286# CONFIG_CRYPTO_GCM is not set
1287# CONFIG_CRYPTO_SEQIV is not set
1288
1289#
1290# Block modes
1291#
1292# CONFIG_CRYPTO_CBC is not set
1293# CONFIG_CRYPTO_CTR is not set
1294# CONFIG_CRYPTO_CTS is not set
1295# CONFIG_CRYPTO_ECB is not set
1296# CONFIG_CRYPTO_LRW is not set
1297# CONFIG_CRYPTO_PCBC is not set
1298# CONFIG_CRYPTO_XTS is not set
1299
1300#
1301# Hash modes
1302#
1303# CONFIG_CRYPTO_HMAC is not set
1304# CONFIG_CRYPTO_XCBC is not set
1305# CONFIG_CRYPTO_VMAC is not set
1306
1307#
1308# Digest
1309#
1310# CONFIG_CRYPTO_CRC32C is not set
1311# CONFIG_CRYPTO_GHASH is not set
1312# CONFIG_CRYPTO_MD4 is not set
1313# CONFIG_CRYPTO_MD5 is not set
1314# CONFIG_CRYPTO_MICHAEL_MIC is not set
1315# CONFIG_CRYPTO_RMD128 is not set
1316# CONFIG_CRYPTO_RMD160 is not set
1317# CONFIG_CRYPTO_RMD256 is not set
1318# CONFIG_CRYPTO_RMD320 is not set
1319# CONFIG_CRYPTO_SHA1 is not set
1320# CONFIG_CRYPTO_SHA256 is not set
1321# CONFIG_CRYPTO_SHA512 is not set
1322# CONFIG_CRYPTO_TGR192 is not set
1323# CONFIG_CRYPTO_WP512 is not set
1324
1325#
1326# Ciphers
1327#
1328# CONFIG_CRYPTO_AES is not set
1329# CONFIG_CRYPTO_ANUBIS is not set
1330# CONFIG_CRYPTO_ARC4 is not set
1331# CONFIG_CRYPTO_BLOWFISH is not set
1332# CONFIG_CRYPTO_CAMELLIA is not set
1333# CONFIG_CRYPTO_CAST5 is not set
1334# CONFIG_CRYPTO_CAST6 is not set
1335# CONFIG_CRYPTO_DES is not set
1336# CONFIG_CRYPTO_FCRYPT is not set
1337# CONFIG_CRYPTO_KHAZAD is not set
1338# CONFIG_CRYPTO_SALSA20 is not set
1339# CONFIG_CRYPTO_SEED is not set
1340# CONFIG_CRYPTO_SERPENT is not set
1341# CONFIG_CRYPTO_TEA is not set
1342# CONFIG_CRYPTO_TWOFISH is not set
1343
1344#
1345# Compression
1346#
1347# CONFIG_CRYPTO_DEFLATE is not set
1348# CONFIG_CRYPTO_ZLIB is not set
1349# CONFIG_CRYPTO_LZO is not set
1350
1351#
1352# Random Number Generation
1353#
1354# CONFIG_CRYPTO_ANSI_CPRNG is not set
1355CONFIG_CRYPTO_HW=y
1356# CONFIG_BINARY_PRINTF is not set
1357
1358#
1359# Library routines
1360#
1361CONFIG_BITREVERSE=y
1362CONFIG_GENERIC_FIND_LAST_BIT=y
1363CONFIG_CRC_CCITT=m
1364# CONFIG_CRC16 is not set
1365# CONFIG_CRC_T10DIF is not set
1366CONFIG_CRC_ITU_T=y
1367CONFIG_CRC32=y
1368CONFIG_CRC7=y
1369# CONFIG_LIBCRC32C is not set
1370CONFIG_ZLIB_INFLATE=y
1371CONFIG_DECOMPRESS_LZMA=y
1372CONFIG_HAS_IOMEM=y
1373CONFIG_HAS_IOPORT=y
1374CONFIG_HAS_DMA=y
1375CONFIG_NLATTR=y
diff --git a/arch/blackfin/include/asm/bfin-lq035q1.h b/arch/blackfin/include/asm/bfin-lq035q1.h
index 57bc21ac2296..836895156b5b 100644
--- a/arch/blackfin/include/asm/bfin-lq035q1.h
+++ b/arch/blackfin/include/asm/bfin-lq035q1.h
@@ -8,6 +8,9 @@
8#ifndef BFIN_LQ035Q1_H 8#ifndef BFIN_LQ035Q1_H
9#define BFIN_LQ035Q1_H 9#define BFIN_LQ035Q1_H
10 10
11/*
12 * LCD Modes
13 */
11#define LQ035_RL (0 << 8) /* Right -> Left Scan */ 14#define LQ035_RL (0 << 8) /* Right -> Left Scan */
12#define LQ035_LR (1 << 8) /* Left -> Right Scan */ 15#define LQ035_LR (1 << 8) /* Left -> Right Scan */
13#define LQ035_TB (1 << 9) /* Top -> Botton Scan */ 16#define LQ035_TB (1 << 9) /* Top -> Botton Scan */
@@ -17,9 +20,18 @@
17#define LQ035_NORM (1 << 13) /* Reversal */ 20#define LQ035_NORM (1 << 13) /* Reversal */
18#define LQ035_REV (0 << 13) /* Reversal */ 21#define LQ035_REV (0 << 13) /* Reversal */
19 22
23/*
24 * PPI Modes
25 */
26
27#define USE_RGB565_16_BIT_PPI 1
28#define USE_RGB565_8_BIT_PPI 2
29#define USE_RGB888_8_BIT_PPI 3
30
20struct bfin_lq035q1fb_disp_info { 31struct bfin_lq035q1fb_disp_info {
21 32
22 unsigned mode; 33 unsigned mode;
34 unsigned ppi_mode;
23 /* GPIOs */ 35 /* GPIOs */
24 int use_bl; 36 int use_bl;
25 unsigned gpio_bl; 37 unsigned gpio_bl;
diff --git a/arch/blackfin/include/asm/bfin_can.h b/arch/blackfin/include/asm/bfin_can.h
new file mode 100644
index 000000000000..eec0076a385b
--- /dev/null
+++ b/arch/blackfin/include/asm/bfin_can.h
@@ -0,0 +1,725 @@
1/*
2 * bfin_can.h - interface to Blackfin CANs
3 *
4 * Copyright 2004-2009 Analog Devices Inc.
5 *
6 * Licensed under the GPL-2 or later.
7 */
8
9#ifndef __ASM_BFIN_CAN_H__
10#define __ASM_BFIN_CAN_H__
11
12/*
13 * transmit and receive channels
14 */
15#define TRANSMIT_CHL 24
16#define RECEIVE_STD_CHL 0
17#define RECEIVE_EXT_CHL 4
18#define RECEIVE_RTR_CHL 8
19#define RECEIVE_EXT_RTR_CHL 12
20#define MAX_CHL_NUMBER 32
21
22/*
23 * All Blackfin system MMRs are padded to 32bits even if the register
24 * itself is only 16bits. So use a helper macro to streamline this.
25 */
26#define __BFP(m) u16 m; u16 __pad_##m
27
28/*
29 * bfin can registers layout
30 */
31struct bfin_can_mask_regs {
32 __BFP(aml);
33 __BFP(amh);
34};
35
36struct bfin_can_channel_regs {
37 u16 data[8];
38 __BFP(dlc);
39 __BFP(tsv);
40 __BFP(id0);
41 __BFP(id1);
42};
43
44struct bfin_can_regs {
45 /*
46 * global control and status registers
47 */
48 __BFP(mc1); /* offset 0x00 */
49 __BFP(md1); /* offset 0x04 */
50 __BFP(trs1); /* offset 0x08 */
51 __BFP(trr1); /* offset 0x0c */
52 __BFP(ta1); /* offset 0x10 */
53 __BFP(aa1); /* offset 0x14 */
54 __BFP(rmp1); /* offset 0x18 */
55 __BFP(rml1); /* offset 0x1c */
56 __BFP(mbtif1); /* offset 0x20 */
57 __BFP(mbrif1); /* offset 0x24 */
58 __BFP(mbim1); /* offset 0x28 */
59 __BFP(rfh1); /* offset 0x2c */
60 __BFP(opss1); /* offset 0x30 */
61 u32 __pad1[3];
62 __BFP(mc2); /* offset 0x40 */
63 __BFP(md2); /* offset 0x44 */
64 __BFP(trs2); /* offset 0x48 */
65 __BFP(trr2); /* offset 0x4c */
66 __BFP(ta2); /* offset 0x50 */
67 __BFP(aa2); /* offset 0x54 */
68 __BFP(rmp2); /* offset 0x58 */
69 __BFP(rml2); /* offset 0x5c */
70 __BFP(mbtif2); /* offset 0x60 */
71 __BFP(mbrif2); /* offset 0x64 */
72 __BFP(mbim2); /* offset 0x68 */
73 __BFP(rfh2); /* offset 0x6c */
74 __BFP(opss2); /* offset 0x70 */
75 u32 __pad2[3];
76 __BFP(clock); /* offset 0x80 */
77 __BFP(timing); /* offset 0x84 */
78 __BFP(debug); /* offset 0x88 */
79 __BFP(status); /* offset 0x8c */
80 __BFP(cec); /* offset 0x90 */
81 __BFP(gis); /* offset 0x94 */
82 __BFP(gim); /* offset 0x98 */
83 __BFP(gif); /* offset 0x9c */
84 __BFP(control); /* offset 0xa0 */
85 __BFP(intr); /* offset 0xa4 */
86 u32 __pad3[1];
87 __BFP(mbtd); /* offset 0xac */
88 __BFP(ewr); /* offset 0xb0 */
89 __BFP(esr); /* offset 0xb4 */
90 u32 __pad4[2];
91 __BFP(ucreg); /* offset 0xc0 */
92 __BFP(uccnt); /* offset 0xc4 */
93 __BFP(ucrc); /* offset 0xc8 */
94 __BFP(uccnf); /* offset 0xcc */
95 u32 __pad5[12];
96
97 /*
98 * channel(mailbox) mask and message registers
99 */
100 struct bfin_can_mask_regs msk[MAX_CHL_NUMBER]; /* offset 0x100 */
101 struct bfin_can_channel_regs chl[MAX_CHL_NUMBER]; /* offset 0x200 */
102};
103
104#undef __BFP
105
106/* CAN_CONTROL Masks */
107#define SRS 0x0001 /* Software Reset */
108#define DNM 0x0002 /* Device Net Mode */
109#define ABO 0x0004 /* Auto-Bus On Enable */
110#define TXPRIO 0x0008 /* TX Priority (Priority/Mailbox*) */
111#define WBA 0x0010 /* Wake-Up On CAN Bus Activity Enable */
112#define SMR 0x0020 /* Sleep Mode Request */
113#define CSR 0x0040 /* CAN Suspend Mode Request */
114#define CCR 0x0080 /* CAN Configuration Mode Request */
115
116/* CAN_STATUS Masks */
117#define WT 0x0001 /* TX Warning Flag */
118#define WR 0x0002 /* RX Warning Flag */
119#define EP 0x0004 /* Error Passive Mode */
120#define EBO 0x0008 /* Error Bus Off Mode */
121#define SMA 0x0020 /* Sleep Mode Acknowledge */
122#define CSA 0x0040 /* Suspend Mode Acknowledge */
123#define CCA 0x0080 /* Configuration Mode Acknowledge */
124#define MBPTR 0x1F00 /* Mailbox Pointer */
125#define TRM 0x4000 /* Transmit Mode */
126#define REC 0x8000 /* Receive Mode */
127
128/* CAN_CLOCK Masks */
129#define BRP 0x03FF /* Bit-Rate Pre-Scaler */
130
131/* CAN_TIMING Masks */
132#define TSEG1 0x000F /* Time Segment 1 */
133#define TSEG2 0x0070 /* Time Segment 2 */
134#define SAM 0x0080 /* Sampling */
135#define SJW 0x0300 /* Synchronization Jump Width */
136
137/* CAN_DEBUG Masks */
138#define DEC 0x0001 /* Disable CAN Error Counters */
139#define DRI 0x0002 /* Disable CAN RX Input */
140#define DTO 0x0004 /* Disable CAN TX Output */
141#define DIL 0x0008 /* Disable CAN Internal Loop */
142#define MAA 0x0010 /* Mode Auto-Acknowledge Enable */
143#define MRB 0x0020 /* Mode Read Back Enable */
144#define CDE 0x8000 /* CAN Debug Enable */
145
146/* CAN_CEC Masks */
147#define RXECNT 0x00FF /* Receive Error Counter */
148#define TXECNT 0xFF00 /* Transmit Error Counter */
149
150/* CAN_INTR Masks */
151#define MBRIRQ 0x0001 /* Mailbox Receive Interrupt */
152#define MBTIRQ 0x0002 /* Mailbox Transmit Interrupt */
153#define GIRQ 0x0004 /* Global Interrupt */
154#define SMACK 0x0008 /* Sleep Mode Acknowledge */
155#define CANTX 0x0040 /* CAN TX Bus Value */
156#define CANRX 0x0080 /* CAN RX Bus Value */
157
158/* CAN_MBxx_ID1 and CAN_MBxx_ID0 Masks */
159#define DFC 0xFFFF /* Data Filtering Code (If Enabled) (ID0) */
160#define EXTID_LO 0xFFFF /* Lower 16 Bits of Extended Identifier (ID0) */
161#define EXTID_HI 0x0003 /* Upper 2 Bits of Extended Identifier (ID1) */
162#define BASEID 0x1FFC /* Base Identifier */
163#define IDE 0x2000 /* Identifier Extension */
164#define RTR 0x4000 /* Remote Frame Transmission Request */
165#define AME 0x8000 /* Acceptance Mask Enable */
166
167/* CAN_MBxx_TIMESTAMP Masks */
168#define TSV 0xFFFF /* Timestamp */
169
170/* CAN_MBxx_LENGTH Masks */
171#define DLC 0x000F /* Data Length Code */
172
173/* CAN_AMxxH and CAN_AMxxL Masks */
174#define DFM 0xFFFF /* Data Field Mask (If Enabled) (CAN_AMxxL) */
175#define EXTID_LO 0xFFFF /* Lower 16 Bits of Extended Identifier (CAN_AMxxL) */
176#define EXTID_HI 0x0003 /* Upper 2 Bits of Extended Identifier (CAN_AMxxH) */
177#define BASEID 0x1FFC /* Base Identifier */
178#define AMIDE 0x2000 /* Acceptance Mask ID Extension Enable */
179#define FMD 0x4000 /* Full Mask Data Field Enable */
180#define FDF 0x8000 /* Filter On Data Field Enable */
181
182/* CAN_MC1 Masks */
183#define MC0 0x0001 /* Enable Mailbox 0 */
184#define MC1 0x0002 /* Enable Mailbox 1 */
185#define MC2 0x0004 /* Enable Mailbox 2 */
186#define MC3 0x0008 /* Enable Mailbox 3 */
187#define MC4 0x0010 /* Enable Mailbox 4 */
188#define MC5 0x0020 /* Enable Mailbox 5 */
189#define MC6 0x0040 /* Enable Mailbox 6 */
190#define MC7 0x0080 /* Enable Mailbox 7 */
191#define MC8 0x0100 /* Enable Mailbox 8 */
192#define MC9 0x0200 /* Enable Mailbox 9 */
193#define MC10 0x0400 /* Enable Mailbox 10 */
194#define MC11 0x0800 /* Enable Mailbox 11 */
195#define MC12 0x1000 /* Enable Mailbox 12 */
196#define MC13 0x2000 /* Enable Mailbox 13 */
197#define MC14 0x4000 /* Enable Mailbox 14 */
198#define MC15 0x8000 /* Enable Mailbox 15 */
199
200/* CAN_MC2 Masks */
201#define MC16 0x0001 /* Enable Mailbox 16 */
202#define MC17 0x0002 /* Enable Mailbox 17 */
203#define MC18 0x0004 /* Enable Mailbox 18 */
204#define MC19 0x0008 /* Enable Mailbox 19 */
205#define MC20 0x0010 /* Enable Mailbox 20 */
206#define MC21 0x0020 /* Enable Mailbox 21 */
207#define MC22 0x0040 /* Enable Mailbox 22 */
208#define MC23 0x0080 /* Enable Mailbox 23 */
209#define MC24 0x0100 /* Enable Mailbox 24 */
210#define MC25 0x0200 /* Enable Mailbox 25 */
211#define MC26 0x0400 /* Enable Mailbox 26 */
212#define MC27 0x0800 /* Enable Mailbox 27 */
213#define MC28 0x1000 /* Enable Mailbox 28 */
214#define MC29 0x2000 /* Enable Mailbox 29 */
215#define MC30 0x4000 /* Enable Mailbox 30 */
216#define MC31 0x8000 /* Enable Mailbox 31 */
217
218/* CAN_MD1 Masks */
219#define MD0 0x0001 /* Enable Mailbox 0 For Receive */
220#define MD1 0x0002 /* Enable Mailbox 1 For Receive */
221#define MD2 0x0004 /* Enable Mailbox 2 For Receive */
222#define MD3 0x0008 /* Enable Mailbox 3 For Receive */
223#define MD4 0x0010 /* Enable Mailbox 4 For Receive */
224#define MD5 0x0020 /* Enable Mailbox 5 For Receive */
225#define MD6 0x0040 /* Enable Mailbox 6 For Receive */
226#define MD7 0x0080 /* Enable Mailbox 7 For Receive */
227#define MD8 0x0100 /* Enable Mailbox 8 For Receive */
228#define MD9 0x0200 /* Enable Mailbox 9 For Receive */
229#define MD10 0x0400 /* Enable Mailbox 10 For Receive */
230#define MD11 0x0800 /* Enable Mailbox 11 For Receive */
231#define MD12 0x1000 /* Enable Mailbox 12 For Receive */
232#define MD13 0x2000 /* Enable Mailbox 13 For Receive */
233#define MD14 0x4000 /* Enable Mailbox 14 For Receive */
234#define MD15 0x8000 /* Enable Mailbox 15 For Receive */
235
236/* CAN_MD2 Masks */
237#define MD16 0x0001 /* Enable Mailbox 16 For Receive */
238#define MD17 0x0002 /* Enable Mailbox 17 For Receive */
239#define MD18 0x0004 /* Enable Mailbox 18 For Receive */
240#define MD19 0x0008 /* Enable Mailbox 19 For Receive */
241#define MD20 0x0010 /* Enable Mailbox 20 For Receive */
242#define MD21 0x0020 /* Enable Mailbox 21 For Receive */
243#define MD22 0x0040 /* Enable Mailbox 22 For Receive */
244#define MD23 0x0080 /* Enable Mailbox 23 For Receive */
245#define MD24 0x0100 /* Enable Mailbox 24 For Receive */
246#define MD25 0x0200 /* Enable Mailbox 25 For Receive */
247#define MD26 0x0400 /* Enable Mailbox 26 For Receive */
248#define MD27 0x0800 /* Enable Mailbox 27 For Receive */
249#define MD28 0x1000 /* Enable Mailbox 28 For Receive */
250#define MD29 0x2000 /* Enable Mailbox 29 For Receive */
251#define MD30 0x4000 /* Enable Mailbox 30 For Receive */
252#define MD31 0x8000 /* Enable Mailbox 31 For Receive */
253
254/* CAN_RMP1 Masks */
255#define RMP0 0x0001 /* RX Message Pending In Mailbox 0 */
256#define RMP1 0x0002 /* RX Message Pending In Mailbox 1 */
257#define RMP2 0x0004 /* RX Message Pending In Mailbox 2 */
258#define RMP3 0x0008 /* RX Message Pending In Mailbox 3 */
259#define RMP4 0x0010 /* RX Message Pending In Mailbox 4 */
260#define RMP5 0x0020 /* RX Message Pending In Mailbox 5 */
261#define RMP6 0x0040 /* RX Message Pending In Mailbox 6 */
262#define RMP7 0x0080 /* RX Message Pending In Mailbox 7 */
263#define RMP8 0x0100 /* RX Message Pending In Mailbox 8 */
264#define RMP9 0x0200 /* RX Message Pending In Mailbox 9 */
265#define RMP10 0x0400 /* RX Message Pending In Mailbox 10 */
266#define RMP11 0x0800 /* RX Message Pending In Mailbox 11 */
267#define RMP12 0x1000 /* RX Message Pending In Mailbox 12 */
268#define RMP13 0x2000 /* RX Message Pending In Mailbox 13 */
269#define RMP14 0x4000 /* RX Message Pending In Mailbox 14 */
270#define RMP15 0x8000 /* RX Message Pending In Mailbox 15 */
271
272/* CAN_RMP2 Masks */
273#define RMP16 0x0001 /* RX Message Pending In Mailbox 16 */
274#define RMP17 0x0002 /* RX Message Pending In Mailbox 17 */
275#define RMP18 0x0004 /* RX Message Pending In Mailbox 18 */
276#define RMP19 0x0008 /* RX Message Pending In Mailbox 19 */
277#define RMP20 0x0010 /* RX Message Pending In Mailbox 20 */
278#define RMP21 0x0020 /* RX Message Pending In Mailbox 21 */
279#define RMP22 0x0040 /* RX Message Pending In Mailbox 22 */
280#define RMP23 0x0080 /* RX Message Pending In Mailbox 23 */
281#define RMP24 0x0100 /* RX Message Pending In Mailbox 24 */
282#define RMP25 0x0200 /* RX Message Pending In Mailbox 25 */
283#define RMP26 0x0400 /* RX Message Pending In Mailbox 26 */
284#define RMP27 0x0800 /* RX Message Pending In Mailbox 27 */
285#define RMP28 0x1000 /* RX Message Pending In Mailbox 28 */
286#define RMP29 0x2000 /* RX Message Pending In Mailbox 29 */
287#define RMP30 0x4000 /* RX Message Pending In Mailbox 30 */
288#define RMP31 0x8000 /* RX Message Pending In Mailbox 31 */
289
290/* CAN_RML1 Masks */
291#define RML0 0x0001 /* RX Message Lost In Mailbox 0 */
292#define RML1 0x0002 /* RX Message Lost In Mailbox 1 */
293#define RML2 0x0004 /* RX Message Lost In Mailbox 2 */
294#define RML3 0x0008 /* RX Message Lost In Mailbox 3 */
295#define RML4 0x0010 /* RX Message Lost In Mailbox 4 */
296#define RML5 0x0020 /* RX Message Lost In Mailbox 5 */
297#define RML6 0x0040 /* RX Message Lost In Mailbox 6 */
298#define RML7 0x0080 /* RX Message Lost In Mailbox 7 */
299#define RML8 0x0100 /* RX Message Lost In Mailbox 8 */
300#define RML9 0x0200 /* RX Message Lost In Mailbox 9 */
301#define RML10 0x0400 /* RX Message Lost In Mailbox 10 */
302#define RML11 0x0800 /* RX Message Lost In Mailbox 11 */
303#define RML12 0x1000 /* RX Message Lost In Mailbox 12 */
304#define RML13 0x2000 /* RX Message Lost In Mailbox 13 */
305#define RML14 0x4000 /* RX Message Lost In Mailbox 14 */
306#define RML15 0x8000 /* RX Message Lost In Mailbox 15 */
307
308/* CAN_RML2 Masks */
309#define RML16 0x0001 /* RX Message Lost In Mailbox 16 */
310#define RML17 0x0002 /* RX Message Lost In Mailbox 17 */
311#define RML18 0x0004 /* RX Message Lost In Mailbox 18 */
312#define RML19 0x0008 /* RX Message Lost In Mailbox 19 */
313#define RML20 0x0010 /* RX Message Lost In Mailbox 20 */
314#define RML21 0x0020 /* RX Message Lost In Mailbox 21 */
315#define RML22 0x0040 /* RX Message Lost In Mailbox 22 */
316#define RML23 0x0080 /* RX Message Lost In Mailbox 23 */
317#define RML24 0x0100 /* RX Message Lost In Mailbox 24 */
318#define RML25 0x0200 /* RX Message Lost In Mailbox 25 */
319#define RML26 0x0400 /* RX Message Lost In Mailbox 26 */
320#define RML27 0x0800 /* RX Message Lost In Mailbox 27 */
321#define RML28 0x1000 /* RX Message Lost In Mailbox 28 */
322#define RML29 0x2000 /* RX Message Lost In Mailbox 29 */
323#define RML30 0x4000 /* RX Message Lost In Mailbox 30 */
324#define RML31 0x8000 /* RX Message Lost In Mailbox 31 */
325
326/* CAN_OPSS1 Masks */
327#define OPSS0 0x0001 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 0 */
328#define OPSS1 0x0002 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 1 */
329#define OPSS2 0x0004 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 2 */
330#define OPSS3 0x0008 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 3 */
331#define OPSS4 0x0010 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 4 */
332#define OPSS5 0x0020 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 5 */
333#define OPSS6 0x0040 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 6 */
334#define OPSS7 0x0080 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 7 */
335#define OPSS8 0x0100 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 8 */
336#define OPSS9 0x0200 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 9 */
337#define OPSS10 0x0400 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 10 */
338#define OPSS11 0x0800 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 11 */
339#define OPSS12 0x1000 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 12 */
340#define OPSS13 0x2000 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 13 */
341#define OPSS14 0x4000 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 14 */
342#define OPSS15 0x8000 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 15 */
343
344/* CAN_OPSS2 Masks */
345#define OPSS16 0x0001 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 16 */
346#define OPSS17 0x0002 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 17 */
347#define OPSS18 0x0004 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 18 */
348#define OPSS19 0x0008 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 19 */
349#define OPSS20 0x0010 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 20 */
350#define OPSS21 0x0020 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 21 */
351#define OPSS22 0x0040 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 22 */
352#define OPSS23 0x0080 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 23 */
353#define OPSS24 0x0100 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 24 */
354#define OPSS25 0x0200 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 25 */
355#define OPSS26 0x0400 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 26 */
356#define OPSS27 0x0800 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 27 */
357#define OPSS28 0x1000 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 28 */
358#define OPSS29 0x2000 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 29 */
359#define OPSS30 0x4000 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 30 */
360#define OPSS31 0x8000 /* Enable RX Overwrite Protection or TX Single-Shot For Mailbox 31 */
361
362/* CAN_TRR1 Masks */
363#define TRR0 0x0001 /* Deny But Don't Lock Access To Mailbox 0 */
364#define TRR1 0x0002 /* Deny But Don't Lock Access To Mailbox 1 */
365#define TRR2 0x0004 /* Deny But Don't Lock Access To Mailbox 2 */
366#define TRR3 0x0008 /* Deny But Don't Lock Access To Mailbox 3 */
367#define TRR4 0x0010 /* Deny But Don't Lock Access To Mailbox 4 */
368#define TRR5 0x0020 /* Deny But Don't Lock Access To Mailbox 5 */
369#define TRR6 0x0040 /* Deny But Don't Lock Access To Mailbox 6 */
370#define TRR7 0x0080 /* Deny But Don't Lock Access To Mailbox 7 */
371#define TRR8 0x0100 /* Deny But Don't Lock Access To Mailbox 8 */
372#define TRR9 0x0200 /* Deny But Don't Lock Access To Mailbox 9 */
373#define TRR10 0x0400 /* Deny But Don't Lock Access To Mailbox 10 */
374#define TRR11 0x0800 /* Deny But Don't Lock Access To Mailbox 11 */
375#define TRR12 0x1000 /* Deny But Don't Lock Access To Mailbox 12 */
376#define TRR13 0x2000 /* Deny But Don't Lock Access To Mailbox 13 */
377#define TRR14 0x4000 /* Deny But Don't Lock Access To Mailbox 14 */
378#define TRR15 0x8000 /* Deny But Don't Lock Access To Mailbox 15 */
379
380/* CAN_TRR2 Masks */
381#define TRR16 0x0001 /* Deny But Don't Lock Access To Mailbox 16 */
382#define TRR17 0x0002 /* Deny But Don't Lock Access To Mailbox 17 */
383#define TRR18 0x0004 /* Deny But Don't Lock Access To Mailbox 18 */
384#define TRR19 0x0008 /* Deny But Don't Lock Access To Mailbox 19 */
385#define TRR20 0x0010 /* Deny But Don't Lock Access To Mailbox 20 */
386#define TRR21 0x0020 /* Deny But Don't Lock Access To Mailbox 21 */
387#define TRR22 0x0040 /* Deny But Don't Lock Access To Mailbox 22 */
388#define TRR23 0x0080 /* Deny But Don't Lock Access To Mailbox 23 */
389#define TRR24 0x0100 /* Deny But Don't Lock Access To Mailbox 24 */
390#define TRR25 0x0200 /* Deny But Don't Lock Access To Mailbox 25 */
391#define TRR26 0x0400 /* Deny But Don't Lock Access To Mailbox 26 */
392#define TRR27 0x0800 /* Deny But Don't Lock Access To Mailbox 27 */
393#define TRR28 0x1000 /* Deny But Don't Lock Access To Mailbox 28 */
394#define TRR29 0x2000 /* Deny But Don't Lock Access To Mailbox 29 */
395#define TRR30 0x4000 /* Deny But Don't Lock Access To Mailbox 30 */
396#define TRR31 0x8000 /* Deny But Don't Lock Access To Mailbox 31 */
397
398/* CAN_TRS1 Masks */
399#define TRS0 0x0001 /* Remote Frame Request For Mailbox 0 */
400#define TRS1 0x0002 /* Remote Frame Request For Mailbox 1 */
401#define TRS2 0x0004 /* Remote Frame Request For Mailbox 2 */
402#define TRS3 0x0008 /* Remote Frame Request For Mailbox 3 */
403#define TRS4 0x0010 /* Remote Frame Request For Mailbox 4 */
404#define TRS5 0x0020 /* Remote Frame Request For Mailbox 5 */
405#define TRS6 0x0040 /* Remote Frame Request For Mailbox 6 */
406#define TRS7 0x0080 /* Remote Frame Request For Mailbox 7 */
407#define TRS8 0x0100 /* Remote Frame Request For Mailbox 8 */
408#define TRS9 0x0200 /* Remote Frame Request For Mailbox 9 */
409#define TRS10 0x0400 /* Remote Frame Request For Mailbox 10 */
410#define TRS11 0x0800 /* Remote Frame Request For Mailbox 11 */
411#define TRS12 0x1000 /* Remote Frame Request For Mailbox 12 */
412#define TRS13 0x2000 /* Remote Frame Request For Mailbox 13 */
413#define TRS14 0x4000 /* Remote Frame Request For Mailbox 14 */
414#define TRS15 0x8000 /* Remote Frame Request For Mailbox 15 */
415
416/* CAN_TRS2 Masks */
417#define TRS16 0x0001 /* Remote Frame Request For Mailbox 16 */
418#define TRS17 0x0002 /* Remote Frame Request For Mailbox 17 */
419#define TRS18 0x0004 /* Remote Frame Request For Mailbox 18 */
420#define TRS19 0x0008 /* Remote Frame Request For Mailbox 19 */
421#define TRS20 0x0010 /* Remote Frame Request For Mailbox 20 */
422#define TRS21 0x0020 /* Remote Frame Request For Mailbox 21 */
423#define TRS22 0x0040 /* Remote Frame Request For Mailbox 22 */
424#define TRS23 0x0080 /* Remote Frame Request For Mailbox 23 */
425#define TRS24 0x0100 /* Remote Frame Request For Mailbox 24 */
426#define TRS25 0x0200 /* Remote Frame Request For Mailbox 25 */
427#define TRS26 0x0400 /* Remote Frame Request For Mailbox 26 */
428#define TRS27 0x0800 /* Remote Frame Request For Mailbox 27 */
429#define TRS28 0x1000 /* Remote Frame Request For Mailbox 28 */
430#define TRS29 0x2000 /* Remote Frame Request For Mailbox 29 */
431#define TRS30 0x4000 /* Remote Frame Request For Mailbox 30 */
432#define TRS31 0x8000 /* Remote Frame Request For Mailbox 31 */
433
434/* CAN_AA1 Masks */
435#define AA0 0x0001 /* Aborted Message In Mailbox 0 */
436#define AA1 0x0002 /* Aborted Message In Mailbox 1 */
437#define AA2 0x0004 /* Aborted Message In Mailbox 2 */
438#define AA3 0x0008 /* Aborted Message In Mailbox 3 */
439#define AA4 0x0010 /* Aborted Message In Mailbox 4 */
440#define AA5 0x0020 /* Aborted Message In Mailbox 5 */
441#define AA6 0x0040 /* Aborted Message In Mailbox 6 */
442#define AA7 0x0080 /* Aborted Message In Mailbox 7 */
443#define AA8 0x0100 /* Aborted Message In Mailbox 8 */
444#define AA9 0x0200 /* Aborted Message In Mailbox 9 */
445#define AA10 0x0400 /* Aborted Message In Mailbox 10 */
446#define AA11 0x0800 /* Aborted Message In Mailbox 11 */
447#define AA12 0x1000 /* Aborted Message In Mailbox 12 */
448#define AA13 0x2000 /* Aborted Message In Mailbox 13 */
449#define AA14 0x4000 /* Aborted Message In Mailbox 14 */
450#define AA15 0x8000 /* Aborted Message In Mailbox 15 */
451
452/* CAN_AA2 Masks */
453#define AA16 0x0001 /* Aborted Message In Mailbox 16 */
454#define AA17 0x0002 /* Aborted Message In Mailbox 17 */
455#define AA18 0x0004 /* Aborted Message In Mailbox 18 */
456#define AA19 0x0008 /* Aborted Message In Mailbox 19 */
457#define AA20 0x0010 /* Aborted Message In Mailbox 20 */
458#define AA21 0x0020 /* Aborted Message In Mailbox 21 */
459#define AA22 0x0040 /* Aborted Message In Mailbox 22 */
460#define AA23 0x0080 /* Aborted Message In Mailbox 23 */
461#define AA24 0x0100 /* Aborted Message In Mailbox 24 */
462#define AA25 0x0200 /* Aborted Message In Mailbox 25 */
463#define AA26 0x0400 /* Aborted Message In Mailbox 26 */
464#define AA27 0x0800 /* Aborted Message In Mailbox 27 */
465#define AA28 0x1000 /* Aborted Message In Mailbox 28 */
466#define AA29 0x2000 /* Aborted Message In Mailbox 29 */
467#define AA30 0x4000 /* Aborted Message In Mailbox 30 */
468#define AA31 0x8000 /* Aborted Message In Mailbox 31 */
469
470/* CAN_TA1 Masks */
471#define TA0 0x0001 /* Transmit Successful From Mailbox 0 */
472#define TA1 0x0002 /* Transmit Successful From Mailbox 1 */
473#define TA2 0x0004 /* Transmit Successful From Mailbox 2 */
474#define TA3 0x0008 /* Transmit Successful From Mailbox 3 */
475#define TA4 0x0010 /* Transmit Successful From Mailbox 4 */
476#define TA5 0x0020 /* Transmit Successful From Mailbox 5 */
477#define TA6 0x0040 /* Transmit Successful From Mailbox 6 */
478#define TA7 0x0080 /* Transmit Successful From Mailbox 7 */
479#define TA8 0x0100 /* Transmit Successful From Mailbox 8 */
480#define TA9 0x0200 /* Transmit Successful From Mailbox 9 */
481#define TA10 0x0400 /* Transmit Successful From Mailbox 10 */
482#define TA11 0x0800 /* Transmit Successful From Mailbox 11 */
483#define TA12 0x1000 /* Transmit Successful From Mailbox 12 */
484#define TA13 0x2000 /* Transmit Successful From Mailbox 13 */
485#define TA14 0x4000 /* Transmit Successful From Mailbox 14 */
486#define TA15 0x8000 /* Transmit Successful From Mailbox 15 */
487
488/* CAN_TA2 Masks */
489#define TA16 0x0001 /* Transmit Successful From Mailbox 16 */
490#define TA17 0x0002 /* Transmit Successful From Mailbox 17 */
491#define TA18 0x0004 /* Transmit Successful From Mailbox 18 */
492#define TA19 0x0008 /* Transmit Successful From Mailbox 19 */
493#define TA20 0x0010 /* Transmit Successful From Mailbox 20 */
494#define TA21 0x0020 /* Transmit Successful From Mailbox 21 */
495#define TA22 0x0040 /* Transmit Successful From Mailbox 22 */
496#define TA23 0x0080 /* Transmit Successful From Mailbox 23 */
497#define TA24 0x0100 /* Transmit Successful From Mailbox 24 */
498#define TA25 0x0200 /* Transmit Successful From Mailbox 25 */
499#define TA26 0x0400 /* Transmit Successful From Mailbox 26 */
500#define TA27 0x0800 /* Transmit Successful From Mailbox 27 */
501#define TA28 0x1000 /* Transmit Successful From Mailbox 28 */
502#define TA29 0x2000 /* Transmit Successful From Mailbox 29 */
503#define TA30 0x4000 /* Transmit Successful From Mailbox 30 */
504#define TA31 0x8000 /* Transmit Successful From Mailbox 31 */
505
506/* CAN_MBTD Masks */
507#define TDPTR 0x001F /* Mailbox To Temporarily Disable */
508#define TDA 0x0040 /* Temporary Disable Acknowledge */
509#define TDR 0x0080 /* Temporary Disable Request */
510
511/* CAN_RFH1 Masks */
512#define RFH0 0x0001 /* Enable Automatic Remote Frame Handling For Mailbox 0 */
513#define RFH1 0x0002 /* Enable Automatic Remote Frame Handling For Mailbox 1 */
514#define RFH2 0x0004 /* Enable Automatic Remote Frame Handling For Mailbox 2 */
515#define RFH3 0x0008 /* Enable Automatic Remote Frame Handling For Mailbox 3 */
516#define RFH4 0x0010 /* Enable Automatic Remote Frame Handling For Mailbox 4 */
517#define RFH5 0x0020 /* Enable Automatic Remote Frame Handling For Mailbox 5 */
518#define RFH6 0x0040 /* Enable Automatic Remote Frame Handling For Mailbox 6 */
519#define RFH7 0x0080 /* Enable Automatic Remote Frame Handling For Mailbox 7 */
520#define RFH8 0x0100 /* Enable Automatic Remote Frame Handling For Mailbox 8 */
521#define RFH9 0x0200 /* Enable Automatic Remote Frame Handling For Mailbox 9 */
522#define RFH10 0x0400 /* Enable Automatic Remote Frame Handling For Mailbox 10 */
523#define RFH11 0x0800 /* Enable Automatic Remote Frame Handling For Mailbox 11 */
524#define RFH12 0x1000 /* Enable Automatic Remote Frame Handling For Mailbox 12 */
525#define RFH13 0x2000 /* Enable Automatic Remote Frame Handling For Mailbox 13 */
526#define RFH14 0x4000 /* Enable Automatic Remote Frame Handling For Mailbox 14 */
527#define RFH15 0x8000 /* Enable Automatic Remote Frame Handling For Mailbox 15 */
528
529/* CAN_RFH2 Masks */
530#define RFH16 0x0001 /* Enable Automatic Remote Frame Handling For Mailbox 16 */
531#define RFH17 0x0002 /* Enable Automatic Remote Frame Handling For Mailbox 17 */
532#define RFH18 0x0004 /* Enable Automatic Remote Frame Handling For Mailbox 18 */
533#define RFH19 0x0008 /* Enable Automatic Remote Frame Handling For Mailbox 19 */
534#define RFH20 0x0010 /* Enable Automatic Remote Frame Handling For Mailbox 20 */
535#define RFH21 0x0020 /* Enable Automatic Remote Frame Handling For Mailbox 21 */
536#define RFH22 0x0040 /* Enable Automatic Remote Frame Handling For Mailbox 22 */
537#define RFH23 0x0080 /* Enable Automatic Remote Frame Handling For Mailbox 23 */
538#define RFH24 0x0100 /* Enable Automatic Remote Frame Handling For Mailbox 24 */
539#define RFH25 0x0200 /* Enable Automatic Remote Frame Handling For Mailbox 25 */
540#define RFH26 0x0400 /* Enable Automatic Remote Frame Handling For Mailbox 26 */
541#define RFH27 0x0800 /* Enable Automatic Remote Frame Handling For Mailbox 27 */
542#define RFH28 0x1000 /* Enable Automatic Remote Frame Handling For Mailbox 28 */
543#define RFH29 0x2000 /* Enable Automatic Remote Frame Handling For Mailbox 29 */
544#define RFH30 0x4000 /* Enable Automatic Remote Frame Handling For Mailbox 30 */
545#define RFH31 0x8000 /* Enable Automatic Remote Frame Handling For Mailbox 31 */
546
547/* CAN_MBTIF1 Masks */
548#define MBTIF0 0x0001 /* TX Interrupt Active In Mailbox 0 */
549#define MBTIF1 0x0002 /* TX Interrupt Active In Mailbox 1 */
550#define MBTIF2 0x0004 /* TX Interrupt Active In Mailbox 2 */
551#define MBTIF3 0x0008 /* TX Interrupt Active In Mailbox 3 */
552#define MBTIF4 0x0010 /* TX Interrupt Active In Mailbox 4 */
553#define MBTIF5 0x0020 /* TX Interrupt Active In Mailbox 5 */
554#define MBTIF6 0x0040 /* TX Interrupt Active In Mailbox 6 */
555#define MBTIF7 0x0080 /* TX Interrupt Active In Mailbox 7 */
556#define MBTIF8 0x0100 /* TX Interrupt Active In Mailbox 8 */
557#define MBTIF9 0x0200 /* TX Interrupt Active In Mailbox 9 */
558#define MBTIF10 0x0400 /* TX Interrupt Active In Mailbox 10 */
559#define MBTIF11 0x0800 /* TX Interrupt Active In Mailbox 11 */
560#define MBTIF12 0x1000 /* TX Interrupt Active In Mailbox 12 */
561#define MBTIF13 0x2000 /* TX Interrupt Active In Mailbox 13 */
562#define MBTIF14 0x4000 /* TX Interrupt Active In Mailbox 14 */
563#define MBTIF15 0x8000 /* TX Interrupt Active In Mailbox 15 */
564
565/* CAN_MBTIF2 Masks */
566#define MBTIF16 0x0001 /* TX Interrupt Active In Mailbox 16 */
567#define MBTIF17 0x0002 /* TX Interrupt Active In Mailbox 17 */
568#define MBTIF18 0x0004 /* TX Interrupt Active In Mailbox 18 */
569#define MBTIF19 0x0008 /* TX Interrupt Active In Mailbox 19 */
570#define MBTIF20 0x0010 /* TX Interrupt Active In Mailbox 20 */
571#define MBTIF21 0x0020 /* TX Interrupt Active In Mailbox 21 */
572#define MBTIF22 0x0040 /* TX Interrupt Active In Mailbox 22 */
573#define MBTIF23 0x0080 /* TX Interrupt Active In Mailbox 23 */
574#define MBTIF24 0x0100 /* TX Interrupt Active In Mailbox 24 */
575#define MBTIF25 0x0200 /* TX Interrupt Active In Mailbox 25 */
576#define MBTIF26 0x0400 /* TX Interrupt Active In Mailbox 26 */
577#define MBTIF27 0x0800 /* TX Interrupt Active In Mailbox 27 */
578#define MBTIF28 0x1000 /* TX Interrupt Active In Mailbox 28 */
579#define MBTIF29 0x2000 /* TX Interrupt Active In Mailbox 29 */
580#define MBTIF30 0x4000 /* TX Interrupt Active In Mailbox 30 */
581#define MBTIF31 0x8000 /* TX Interrupt Active In Mailbox 31 */
582
583/* CAN_MBRIF1 Masks */
584#define MBRIF0 0x0001 /* RX Interrupt Active In Mailbox 0 */
585#define MBRIF1 0x0002 /* RX Interrupt Active In Mailbox 1 */
586#define MBRIF2 0x0004 /* RX Interrupt Active In Mailbox 2 */
587#define MBRIF3 0x0008 /* RX Interrupt Active In Mailbox 3 */
588#define MBRIF4 0x0010 /* RX Interrupt Active In Mailbox 4 */
589#define MBRIF5 0x0020 /* RX Interrupt Active In Mailbox 5 */
590#define MBRIF6 0x0040 /* RX Interrupt Active In Mailbox 6 */
591#define MBRIF7 0x0080 /* RX Interrupt Active In Mailbox 7 */
592#define MBRIF8 0x0100 /* RX Interrupt Active In Mailbox 8 */
593#define MBRIF9 0x0200 /* RX Interrupt Active In Mailbox 9 */
594#define MBRIF10 0x0400 /* RX Interrupt Active In Mailbox 10 */
595#define MBRIF11 0x0800 /* RX Interrupt Active In Mailbox 11 */
596#define MBRIF12 0x1000 /* RX Interrupt Active In Mailbox 12 */
597#define MBRIF13 0x2000 /* RX Interrupt Active In Mailbox 13 */
598#define MBRIF14 0x4000 /* RX Interrupt Active In Mailbox 14 */
599#define MBRIF15 0x8000 /* RX Interrupt Active In Mailbox 15 */
600
601/* CAN_MBRIF2 Masks */
602#define MBRIF16 0x0001 /* RX Interrupt Active In Mailbox 16 */
603#define MBRIF17 0x0002 /* RX Interrupt Active In Mailbox 17 */
604#define MBRIF18 0x0004 /* RX Interrupt Active In Mailbox 18 */
605#define MBRIF19 0x0008 /* RX Interrupt Active In Mailbox 19 */
606#define MBRIF20 0x0010 /* RX Interrupt Active In Mailbox 20 */
607#define MBRIF21 0x0020 /* RX Interrupt Active In Mailbox 21 */
608#define MBRIF22 0x0040 /* RX Interrupt Active In Mailbox 22 */
609#define MBRIF23 0x0080 /* RX Interrupt Active In Mailbox 23 */
610#define MBRIF24 0x0100 /* RX Interrupt Active In Mailbox 24 */
611#define MBRIF25 0x0200 /* RX Interrupt Active In Mailbox 25 */
612#define MBRIF26 0x0400 /* RX Interrupt Active In Mailbox 26 */
613#define MBRIF27 0x0800 /* RX Interrupt Active In Mailbox 27 */
614#define MBRIF28 0x1000 /* RX Interrupt Active In Mailbox 28 */
615#define MBRIF29 0x2000 /* RX Interrupt Active In Mailbox 29 */
616#define MBRIF30 0x4000 /* RX Interrupt Active In Mailbox 30 */
617#define MBRIF31 0x8000 /* RX Interrupt Active In Mailbox 31 */
618
619/* CAN_MBIM1 Masks */
620#define MBIM0 0x0001 /* Enable Interrupt For Mailbox 0 */
621#define MBIM1 0x0002 /* Enable Interrupt For Mailbox 1 */
622#define MBIM2 0x0004 /* Enable Interrupt For Mailbox 2 */
623#define MBIM3 0x0008 /* Enable Interrupt For Mailbox 3 */
624#define MBIM4 0x0010 /* Enable Interrupt For Mailbox 4 */
625#define MBIM5 0x0020 /* Enable Interrupt For Mailbox 5 */
626#define MBIM6 0x0040 /* Enable Interrupt For Mailbox 6 */
627#define MBIM7 0x0080 /* Enable Interrupt For Mailbox 7 */
628#define MBIM8 0x0100 /* Enable Interrupt For Mailbox 8 */
629#define MBIM9 0x0200 /* Enable Interrupt For Mailbox 9 */
630#define MBIM10 0x0400 /* Enable Interrupt For Mailbox 10 */
631#define MBIM11 0x0800 /* Enable Interrupt For Mailbox 11 */
632#define MBIM12 0x1000 /* Enable Interrupt For Mailbox 12 */
633#define MBIM13 0x2000 /* Enable Interrupt For Mailbox 13 */
634#define MBIM14 0x4000 /* Enable Interrupt For Mailbox 14 */
635#define MBIM15 0x8000 /* Enable Interrupt For Mailbox 15 */
636
637/* CAN_MBIM2 Masks */
638#define MBIM16 0x0001 /* Enable Interrupt For Mailbox 16 */
639#define MBIM17 0x0002 /* Enable Interrupt For Mailbox 17 */
640#define MBIM18 0x0004 /* Enable Interrupt For Mailbox 18 */
641#define MBIM19 0x0008 /* Enable Interrupt For Mailbox 19 */
642#define MBIM20 0x0010 /* Enable Interrupt For Mailbox 20 */
643#define MBIM21 0x0020 /* Enable Interrupt For Mailbox 21 */
644#define MBIM22 0x0040 /* Enable Interrupt For Mailbox 22 */
645#define MBIM23 0x0080 /* Enable Interrupt For Mailbox 23 */
646#define MBIM24 0x0100 /* Enable Interrupt For Mailbox 24 */
647#define MBIM25 0x0200 /* Enable Interrupt For Mailbox 25 */
648#define MBIM26 0x0400 /* Enable Interrupt For Mailbox 26 */
649#define MBIM27 0x0800 /* Enable Interrupt For Mailbox 27 */
650#define MBIM28 0x1000 /* Enable Interrupt For Mailbox 28 */
651#define MBIM29 0x2000 /* Enable Interrupt For Mailbox 29 */
652#define MBIM30 0x4000 /* Enable Interrupt For Mailbox 30 */
653#define MBIM31 0x8000 /* Enable Interrupt For Mailbox 31 */
654
655/* CAN_GIM Masks */
656#define EWTIM 0x0001 /* Enable TX Error Count Interrupt */
657#define EWRIM 0x0002 /* Enable RX Error Count Interrupt */
658#define EPIM 0x0004 /* Enable Error-Passive Mode Interrupt */
659#define BOIM 0x0008 /* Enable Bus Off Interrupt */
660#define WUIM 0x0010 /* Enable Wake-Up Interrupt */
661#define UIAIM 0x0020 /* Enable Access To Unimplemented Address Interrupt */
662#define AAIM 0x0040 /* Enable Abort Acknowledge Interrupt */
663#define RMLIM 0x0080 /* Enable RX Message Lost Interrupt */
664#define UCEIM 0x0100 /* Enable Universal Counter Overflow Interrupt */
665#define EXTIM 0x0200 /* Enable External Trigger Output Interrupt */
666#define ADIM 0x0400 /* Enable Access Denied Interrupt */
667
668/* CAN_GIS Masks */
669#define EWTIS 0x0001 /* TX Error Count IRQ Status */
670#define EWRIS 0x0002 /* RX Error Count IRQ Status */
671#define EPIS 0x0004 /* Error-Passive Mode IRQ Status */
672#define BOIS 0x0008 /* Bus Off IRQ Status */
673#define WUIS 0x0010 /* Wake-Up IRQ Status */
674#define UIAIS 0x0020 /* Access To Unimplemented Address IRQ Status */
675#define AAIS 0x0040 /* Abort Acknowledge IRQ Status */
676#define RMLIS 0x0080 /* RX Message Lost IRQ Status */
677#define UCEIS 0x0100 /* Universal Counter Overflow IRQ Status */
678#define EXTIS 0x0200 /* External Trigger Output IRQ Status */
679#define ADIS 0x0400 /* Access Denied IRQ Status */
680
681/* CAN_GIF Masks */
682#define EWTIF 0x0001 /* TX Error Count IRQ Flag */
683#define EWRIF 0x0002 /* RX Error Count IRQ Flag */
684#define EPIF 0x0004 /* Error-Passive Mode IRQ Flag */
685#define BOIF 0x0008 /* Bus Off IRQ Flag */
686#define WUIF 0x0010 /* Wake-Up IRQ Flag */
687#define UIAIF 0x0020 /* Access To Unimplemented Address IRQ Flag */
688#define AAIF 0x0040 /* Abort Acknowledge IRQ Flag */
689#define RMLIF 0x0080 /* RX Message Lost IRQ Flag */
690#define UCEIF 0x0100 /* Universal Counter Overflow IRQ Flag */
691#define EXTIF 0x0200 /* External Trigger Output IRQ Flag */
692#define ADIF 0x0400 /* Access Denied IRQ Flag */
693
694/* CAN_UCCNF Masks */
695#define UCCNF 0x000F /* Universal Counter Mode */
696#define UC_STAMP 0x0001 /* Timestamp Mode */
697#define UC_WDOG 0x0002 /* Watchdog Mode */
698#define UC_AUTOTX 0x0003 /* Auto-Transmit Mode */
699#define UC_ERROR 0x0006 /* CAN Error Frame Count */
700#define UC_OVER 0x0007 /* CAN Overload Frame Count */
701#define UC_LOST 0x0008 /* Arbitration Lost During TX Count */
702#define UC_AA 0x0009 /* TX Abort Count */
703#define UC_TA 0x000A /* TX Successful Count */
704#define UC_REJECT 0x000B /* RX Message Rejected Count */
705#define UC_RML 0x000C /* RX Message Lost Count */
706#define UC_RX 0x000D /* Total Successful RX Messages Count */
707#define UC_RMP 0x000E /* Successful RX W/Matching ID Count */
708#define UC_ALL 0x000F /* Correct Message On CAN Bus Line Count */
709#define UCRC 0x0020 /* Universal Counter Reload/Clear */
710#define UCCT 0x0040 /* Universal Counter CAN Trigger */
711#define UCE 0x0080 /* Universal Counter Enable */
712
713/* CAN_ESR Masks */
714#define ACKE 0x0004 /* Acknowledge Error */
715#define SER 0x0008 /* Stuff Error */
716#define CRCE 0x0010 /* CRC Error */
717#define SA0 0x0020 /* Stuck At Dominant Error */
718#define BEF 0x0040 /* Bit Error Flag */
719#define FER 0x0080 /* Form Error Flag */
720
721/* CAN_EWR Masks */
722#define EWLREC 0x00FF /* RX Error Count Limit (For EWRIS) */
723#define EWLTEC 0xFF00 /* TX Error Count Limit (For EWTIS) */
724
725#endif
diff --git a/arch/blackfin/include/asm/bfin_sport.h b/arch/blackfin/include/asm/bfin_sport.h
index b558908e1c79..9626cf7e4251 100644
--- a/arch/blackfin/include/asm/bfin_sport.h
+++ b/arch/blackfin/include/asm/bfin_sport.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * bfin_sport.h - userspace header for bfin sport driver 2 * bfin_sport.h - interface to Blackfin SPORTs
3 * 3 *
4 * Copyright 2004-2008 Analog Devices Inc. 4 * Copyright 2004-2009 Analog Devices Inc.
5 * 5 *
6 * Licensed under the GPL-2 or later. 6 * Licensed under the GPL-2 or later.
7 */ 7 */
@@ -9,16 +9,6 @@
9#ifndef __BFIN_SPORT_H__ 9#ifndef __BFIN_SPORT_H__
10#define __BFIN_SPORT_H__ 10#define __BFIN_SPORT_H__
11 11
12#ifdef __KERNEL__
13#include <linux/cdev.h>
14#include <linux/mutex.h>
15#include <linux/sched.h>
16#include <linux/wait.h>
17#endif
18
19#define SPORT_MAJOR 237
20#define SPORT_NR_DEVS 2
21
22/* Sport mode: it can be set to TDM, i2s or others */ 12/* Sport mode: it can be set to TDM, i2s or others */
23#define NORM_MODE 0x0 13#define NORM_MODE 0x0
24#define TDM_MODE 0x1 14#define TDM_MODE 0x1
@@ -35,7 +25,7 @@ struct sport_config {
35 unsigned int mode:3; 25 unsigned int mode:3;
36 26
37 /* if TDM mode is selected, channels must be set */ 27 /* if TDM mode is selected, channels must be set */
38 int channels; /* Must be in 8 units */ 28 int channels; /* Must be in 8 units */
39 unsigned int frame_delay:4; /* Delay between frame sync pulse and first bit */ 29 unsigned int frame_delay:4; /* Delay between frame sync pulse and first bit */
40 30
41 /* I2S mode */ 31 /* I2S mode */
@@ -69,94 +59,137 @@ struct sport_config {
69 59
70#ifdef __KERNEL__ 60#ifdef __KERNEL__
71 61
72struct sport_register { 62#include <linux/types.h>
73 unsigned short tcr1;
74 unsigned short reserved0;
75 unsigned short tcr2;
76 unsigned short reserved1;
77 unsigned short tclkdiv;
78 unsigned short reserved2;
79 unsigned short tfsdiv;
80 unsigned short reserved3;
81 unsigned long tx;
82 unsigned long reserved_l0;
83 unsigned long rx;
84 unsigned long reserved_l1;
85 unsigned short rcr1;
86 unsigned short reserved4;
87 unsigned short rcr2;
88 unsigned short reserved5;
89 unsigned short rclkdiv;
90 unsigned short reserved6;
91 unsigned short rfsdiv;
92 unsigned short reserved7;
93 unsigned short stat;
94 unsigned short reserved8;
95 unsigned short chnl;
96 unsigned short reserved9;
97 unsigned short mcmc1;
98 unsigned short reserved10;
99 unsigned short mcmc2;
100 unsigned short reserved11;
101 unsigned long mtcs0;
102 unsigned long mtcs1;
103 unsigned long mtcs2;
104 unsigned long mtcs3;
105 unsigned long mrcs0;
106 unsigned long mrcs1;
107 unsigned long mrcs2;
108 unsigned long mrcs3;
109};
110
111struct sport_dev {
112 struct cdev cdev; /* Char device structure */
113
114 int sport_num;
115 63
116 int dma_rx_chan; 64/*
117 int dma_tx_chan; 65 * All Blackfin system MMRs are padded to 32bits even if the register
118 66 * itself is only 16bits. So use a helper macro to streamline this.
119 int rx_irq; 67 */
120 unsigned char *rx_buf; /* Buffer store the received data */ 68#define __BFP(m) u16 m; u16 __pad_##m
121 int rx_len; /* How many bytes will be received */ 69struct sport_register {
122 int rx_received; /* How many bytes has been received */ 70 __BFP(tcr1);
123 71 __BFP(tcr2);
124 int tx_irq; 72 __BFP(tclkdiv);
125 const unsigned char *tx_buf; 73 __BFP(tfsdiv);
126 int tx_len; 74 union {
127 int tx_sent; 75 u32 tx32;
128 76 u16 tx16;
129 int err_irq; 77 };
130 78 u32 __pad_tx;
131 struct mutex mutex; /* mutual exclusion semaphore */ 79 union {
132 struct task_struct *task; 80 u32 rx32; /* use the anomaly wrapper below */
133 81 u16 rx16;
134 wait_queue_head_t waitq; 82 };
135 int wait_con; 83 u32 __pad_rx;
136 struct sport_register *regs; 84 __BFP(rcr1);
137 struct sport_config config; 85 __BFP(rcr2);
86 __BFP(rclkdiv);
87 __BFP(rfsdiv);
88 __BFP(stat);
89 __BFP(chnl);
90 __BFP(mcmc1);
91 __BFP(mcmc2);
92 u32 mtcs0;
93 u32 mtcs1;
94 u32 mtcs2;
95 u32 mtcs3;
96 u32 mrcs0;
97 u32 mrcs1;
98 u32 mrcs2;
99 u32 mrcs3;
138}; 100};
101#undef __BFP
102
103#define bfin_read_sport_rx32(base) \
104({ \
105 struct sport_register *__mmrs = (void *)base; \
106 u32 __ret; \
107 unsigned long flags; \
108 if (ANOMALY_05000473) \
109 local_irq_save(flags); \
110 __ret = __mmrs->rx32; \
111 if (ANOMALY_05000473) \
112 local_irq_restore(flags); \
113 __ret; \
114})
139 115
140#endif 116#endif
141 117
142#define SPORT_TCR1 0 118/* Workaround defBF*.h SPORT MMRs till they get cleansed */
143#define SPORT_TCR2 1 119#undef DTYPE_NORM
144#define SPORT_TCLKDIV 2 120#undef SLEN
145#define SPORT_TFSDIV 3 121#undef SP_WOFF
146#define SPORT_RCR1 8 122#undef SP_WSIZE
147#define SPORT_RCR2 9 123
148#define SPORT_RCLKDIV 10 124/* SPORT_TCR1 Masks */
149#define SPORT_RFSDIV 11 125#define TSPEN 0x0001 /* TX enable */
150#define SPORT_CHANNEL 13 126#define ITCLK 0x0002 /* Internal TX Clock Select */
151#define SPORT_MCMC1 14 127#define TDTYPE 0x000C /* TX Data Formatting Select */
152#define SPORT_MCMC2 15 128#define DTYPE_NORM 0x0000 /* Data Format Normal */
153#define SPORT_MTCS0 16 129#define DTYPE_ULAW 0x0008 /* Compand Using u-Law */
154#define SPORT_MTCS1 17 130#define DTYPE_ALAW 0x000C /* Compand Using A-Law */
155#define SPORT_MTCS2 18 131#define TLSBIT 0x0010 /* TX Bit Order */
156#define SPORT_MTCS3 19 132#define ITFS 0x0200 /* Internal TX Frame Sync Select */
157#define SPORT_MRCS0 20 133#define TFSR 0x0400 /* TX Frame Sync Required Select */
158#define SPORT_MRCS1 21 134#define DITFS 0x0800 /* Data Independent TX Frame Sync Select */
159#define SPORT_MRCS2 22 135#define LTFS 0x1000 /* Low TX Frame Sync Select */
160#define SPORT_MRCS3 23 136#define LATFS 0x2000 /* Late TX Frame Sync Select */
137#define TCKFE 0x4000 /* TX Clock Falling Edge Select */
138
139/* SPORT_TCR2 Masks */
140#define SLEN 0x001F /* SPORT TX Word Length (2 - 31) */
141#define DP_SLEN(x) BFIN_DEPOSIT(SLEN, x)
142#define EX_SLEN(x) BFIN_EXTRACT(SLEN, x)
143#define TXSE 0x0100 /* TX Secondary Enable */
144#define TSFSE 0x0200 /* TX Stereo Frame Sync Enable */
145#define TRFST 0x0400 /* TX Right-First Data Order */
146
147/* SPORT_RCR1 Masks */
148#define RSPEN 0x0001 /* RX enable */
149#define IRCLK 0x0002 /* Internal RX Clock Select */
150#define RDTYPE 0x000C /* RX Data Formatting Select */
151/* DTYPE_* defined above */
152#define RLSBIT 0x0010 /* RX Bit Order */
153#define IRFS 0x0200 /* Internal RX Frame Sync Select */
154#define RFSR 0x0400 /* RX Frame Sync Required Select */
155#define LRFS 0x1000 /* Low RX Frame Sync Select */
156#define LARFS 0x2000 /* Late RX Frame Sync Select */
157#define RCKFE 0x4000 /* RX Clock Falling Edge Select */
158
159/* SPORT_RCR2 Masks */
160/* SLEN defined above */
161#define RXSE 0x0100 /* RX Secondary Enable */
162#define RSFSE 0x0200 /* RX Stereo Frame Sync Enable */
163#define RRFST 0x0400 /* Right-First Data Order */
164
165/* SPORT_STAT Masks */
166#define RXNE 0x0001 /* RX FIFO Not Empty Status */
167#define RUVF 0x0002 /* RX Underflow Status */
168#define ROVF 0x0004 /* RX Overflow Status */
169#define TXF 0x0008 /* TX FIFO Full Status */
170#define TUVF 0x0010 /* TX Underflow Status */
171#define TOVF 0x0020 /* TX Overflow Status */
172#define TXHRE 0x0040 /* TX Hold Register Empty */
173
174/* SPORT_MCMC1 Masks */
175#define SP_WOFF 0x03FF /* Multichannel Window Offset Field */
176#define DP_SP_WOFF(x) BFIN_DEPOSIT(SP_WOFF, x)
177#define EX_SP_WOFF(x) BFIN_EXTRACT(SP_WOFF, x)
178#define SP_WSIZE 0xF000 /* Multichannel Window Size Field */
179#define DP_SP_WSIZE(x) BFIN_DEPOSIT(SP_WSIZE, x)
180#define EX_SP_WSIZE(x) BFIN_EXTRACT(SP_WSIZE, x)
181
182/* SPORT_MCMC2 Masks */
183#define MCCRM 0x0003 /* Multichannel Clock Recovery Mode */
184#define REC_BYPASS 0x0000 /* Bypass Mode (No Clock Recovery) */
185#define REC_2FROM4 0x0002 /* Recover 2 MHz Clock from 4 MHz Clock */
186#define REC_8FROM16 0x0003 /* Recover 8 MHz Clock from 16 MHz Clock */
187#define MCDTXPE 0x0004 /* Multichannel DMA Transmit Packing */
188#define MCDRXPE 0x0008 /* Multichannel DMA Receive Packing */
189#define MCMEN 0x0010 /* Multichannel Frame Mode Enable */
190#define FSDR 0x0080 /* Multichannel Frame Sync to Data Relationship */
191#define MFD 0xF000 /* Multichannel Frame Delay */
192#define DP_MFD(x) BFIN_DEPOSIT(MFD, x)
193#define EX_MFD(x) BFIN_EXTRACT(MFD, x)
161 194
162#endif 195#endif
diff --git a/arch/blackfin/include/asm/bfin_watchdog.h b/arch/blackfin/include/asm/bfin_watchdog.h
new file mode 100644
index 000000000000..dce09829a095
--- /dev/null
+++ b/arch/blackfin/include/asm/bfin_watchdog.h
@@ -0,0 +1,30 @@
1/*
2 * bfin_watchdog.h - Blackfin watchdog definitions
3 *
4 * Copyright 2006-2010 Analog Devices Inc.
5 *
6 * Licensed under the GPL-2 or later.
7 */
8
9#ifndef _BFIN_WATCHDOG_H
10#define _BFIN_WATCHDOG_H
11
12/* Bit in SWRST that indicates boot caused by watchdog */
13#define SWRST_RESET_WDOG 0x4000
14
15/* Bit in WDOG_CTL that indicates watchdog has expired (WDR0) */
16#define WDOG_EXPIRED 0x8000
17
18/* Masks for WDEV field in WDOG_CTL register */
19#define ICTL_RESET 0x0
20#define ICTL_NMI 0x2
21#define ICTL_GPI 0x4
22#define ICTL_NONE 0x6
23#define ICTL_MASK 0x6
24
25/* Masks for WDEN field in WDOG_CTL register */
26#define WDEN_MASK 0x0FF0
27#define WDEN_ENABLE 0x0000
28#define WDEN_DISABLE 0x0AD0
29
30#endif
diff --git a/arch/blackfin/include/asm/bitops.h b/arch/blackfin/include/asm/bitops.h
index a2ff3fb3568d..605ba8e9b2e4 100644
--- a/arch/blackfin/include/asm/bitops.h
+++ b/arch/blackfin/include/asm/bitops.h
@@ -7,22 +7,41 @@
7#ifndef _BLACKFIN_BITOPS_H 7#ifndef _BLACKFIN_BITOPS_H
8#define _BLACKFIN_BITOPS_H 8#define _BLACKFIN_BITOPS_H
9 9
10#ifndef CONFIG_SMP 10#include <linux/compiler.h>
11# include <asm-generic/bitops.h> 11
12#else 12#include <asm-generic/bitops/__ffs.h>
13#include <asm-generic/bitops/ffz.h>
14#include <asm-generic/bitops/fls.h>
15#include <asm-generic/bitops/__fls.h>
16#include <asm-generic/bitops/fls64.h>
17#include <asm-generic/bitops/find.h>
13 18
14#ifndef _LINUX_BITOPS_H 19#ifndef _LINUX_BITOPS_H
15#error only <linux/bitops.h> can be included directly 20#error only <linux/bitops.h> can be included directly
16#endif 21#endif
17 22
18#include <linux/compiler.h>
19#include <asm/byteorder.h> /* swab32 */
20
21#include <asm-generic/bitops/ffs.h>
22#include <asm-generic/bitops/__ffs.h>
23#include <asm-generic/bitops/sched.h> 23#include <asm-generic/bitops/sched.h>
24#include <asm-generic/bitops/ffz.h> 24#include <asm-generic/bitops/ffs.h>
25#include <asm-generic/bitops/lock.h>
26#include <asm-generic/bitops/ext2-non-atomic.h>
27#include <asm-generic/bitops/ext2-atomic.h>
28#include <asm-generic/bitops/minix.h>
29
30#ifndef CONFIG_SMP
31#include <linux/irqflags.h>
32
33/*
34 * clear_bit may not imply a memory barrier
35 */
36#ifndef smp_mb__before_clear_bit
37#define smp_mb__before_clear_bit() smp_mb()
38#define smp_mb__after_clear_bit() smp_mb()
39#endif
40#include <asm-generic/bitops/atomic.h>
41#include <asm-generic/bitops/non-atomic.h>
42#else
25 43
44#include <asm/byteorder.h> /* swab32 */
26#include <linux/linkage.h> 45#include <linux/linkage.h>
27 46
28asmlinkage int __raw_bit_set_asm(volatile unsigned long *addr, int nr); 47asmlinkage int __raw_bit_set_asm(volatile unsigned long *addr, int nr);
@@ -89,19 +108,36 @@ static inline int test_and_change_bit(int nr, volatile unsigned long *addr)
89 108
90#include <asm-generic/bitops/non-atomic.h> 109#include <asm-generic/bitops/non-atomic.h>
91 110
92#include <asm-generic/bitops/find.h> 111#endif /* CONFIG_SMP */
93#include <asm-generic/bitops/hweight.h>
94#include <asm-generic/bitops/lock.h>
95 112
96#include <asm-generic/bitops/ext2-atomic.h> 113/*
97#include <asm-generic/bitops/ext2-non-atomic.h> 114 * hweightN: returns the hamming weight (i.e. the number
115 * of bits set) of a N-bit word
116 */
98 117
99#include <asm-generic/bitops/minix.h> 118static inline unsigned int hweight32(unsigned int w)
119{
120 unsigned int res;
100 121
101#include <asm-generic/bitops/fls.h> 122 __asm__ ("%0.l = ONES %0;"
102#include <asm-generic/bitops/__fls.h> 123 "%0 = %0.l (Z);"
103#include <asm-generic/bitops/fls64.h> 124 : "=d" (res) : "d" (w));
125 return res;
126}
104 127
105#endif /* CONFIG_SMP */ 128static inline unsigned int hweight64(__u64 w)
129{
130 return hweight32((unsigned int)(w >> 32)) + hweight32((unsigned int)w);
131}
132
133static inline unsigned int hweight16(unsigned int w)
134{
135 return hweight32(w & 0xffff);
136}
137
138static inline unsigned int hweight8(unsigned int w)
139{
140 return hweight32(w & 0xff);
141}
106 142
107#endif /* _BLACKFIN_BITOPS_H */ 143#endif /* _BLACKFIN_BITOPS_H */
diff --git a/arch/blackfin/include/asm/context.S b/arch/blackfin/include/asm/context.S
index 5dffaf582a22..1f9060395a0a 100644
--- a/arch/blackfin/include/asm/context.S
+++ b/arch/blackfin/include/asm/context.S
@@ -73,6 +73,11 @@
73#else 73#else
74 cli r0; 74 cli r0;
75#endif 75#endif
76#ifdef CONFIG_TRACE_IRQFLAGS
77 sp += -12;
78 call _trace_hardirqs_off;
79 sp += 12;
80#endif
76 [--sp] = RETI; /*orig_pc*/ 81 [--sp] = RETI; /*orig_pc*/
77 /* Clear all L registers. */ 82 /* Clear all L registers. */
78 r0 = 0 (x); 83 r0 = 0 (x);
@@ -279,6 +284,13 @@
279 RETN = [sp++]; 284 RETN = [sp++];
280 RETX = [sp++]; 285 RETX = [sp++];
281 RETI = [sp++]; 286 RETI = [sp++];
287
288#ifdef CONFIG_TRACE_IRQFLAGS
289 sp += -12;
290 call _trace_hardirqs_on;
291 sp += 12;
292#endif
293
282 RETS = [sp++]; 294 RETS = [sp++];
283 295
284#ifdef CONFIG_SMP 296#ifdef CONFIG_SMP
@@ -374,3 +386,13 @@
374 386
375 (R7:0, P5:0) = [SP++]; 387 (R7:0, P5:0) = [SP++];
376.endm 388.endm
389
390.macro pseudo_long_call func:req, scratch:req
391#ifdef CONFIG_ROMKERNEL
392 \scratch\().l = \func;
393 \scratch\().h = \func;
394 call (\scratch);
395#else
396 call \func;
397#endif
398.endm
diff --git a/arch/blackfin/include/asm/cpu.h b/arch/blackfin/include/asm/cpu.h
index b191dc662bd8..16883e582e3c 100644
--- a/arch/blackfin/include/asm/cpu.h
+++ b/arch/blackfin/include/asm/cpu.h
@@ -17,8 +17,6 @@ struct blackfin_cpudata {
17 struct task_struct *idle; 17 struct task_struct *idle;
18 unsigned int imemctl; 18 unsigned int imemctl;
19 unsigned int dmemctl; 19 unsigned int dmemctl;
20 unsigned long dcache_invld_count;
21 unsigned long icache_invld_count;
22}; 20};
23 21
24DECLARE_PER_CPU(struct blackfin_cpudata, cpu_data); 22DECLARE_PER_CPU(struct blackfin_cpudata, cpu_data);
diff --git a/arch/blackfin/include/asm/def_LPBlackfin.h b/arch/blackfin/include/asm/def_LPBlackfin.h
index 25906468622f..f342ff0319df 100644
--- a/arch/blackfin/include/asm/def_LPBlackfin.h
+++ b/arch/blackfin/include/asm/def_LPBlackfin.h
@@ -12,6 +12,8 @@
12#include <mach/anomaly.h> 12#include <mach/anomaly.h>
13 13
14#define MK_BMSK_(x) (1<<x) 14#define MK_BMSK_(x) (1<<x)
15#define BFIN_DEPOSIT(mask, x) (((x) << __ffs(mask)) & (mask))
16#define BFIN_EXTRACT(mask, x) (((x) & (mask)) >> __ffs(mask))
15 17
16#ifndef __ASSEMBLY__ 18#ifndef __ASSEMBLY__
17 19
@@ -23,62 +25,30 @@
23# define NOP_PAD_ANOMALY_05000198 25# define NOP_PAD_ANOMALY_05000198
24#endif 26#endif
25 27
26#define bfin_read8(addr) ({ \ 28#define _bfin_readX(addr, size, asm_size, asm_ext) ({ \
27 uint32_t __v; \ 29 u32 __v; \
28 __asm__ __volatile__( \ 30 __asm__ __volatile__( \
29 NOP_PAD_ANOMALY_05000198 \ 31 NOP_PAD_ANOMALY_05000198 \
30 "%0 = b[%1] (z);" \ 32 "%0 = " #asm_size "[%1]" #asm_ext ";" \
31 : "=d" (__v) \ 33 : "=d" (__v) \
32 : "a" (addr) \ 34 : "a" (addr) \
33 ); \ 35 ); \
34 __v; }) 36 __v; })
35 37#define _bfin_writeX(addr, val, size, asm_size) \
36#define bfin_read16(addr) ({ \
37 uint32_t __v; \
38 __asm__ __volatile__( \
39 NOP_PAD_ANOMALY_05000198 \
40 "%0 = w[%1] (z);" \
41 : "=d" (__v) \
42 : "a" (addr) \
43 ); \
44 __v; })
45
46#define bfin_read32(addr) ({ \
47 uint32_t __v; \
48 __asm__ __volatile__( \
49 NOP_PAD_ANOMALY_05000198 \
50 "%0 = [%1];" \
51 : "=d" (__v) \
52 : "a" (addr) \
53 ); \
54 __v; })
55
56#define bfin_write8(addr, val) \
57 __asm__ __volatile__( \ 38 __asm__ __volatile__( \
58 NOP_PAD_ANOMALY_05000198 \ 39 NOP_PAD_ANOMALY_05000198 \
59 "b[%0] = %1;" \ 40 #asm_size "[%0] = %1;" \
60 : \ 41 : \
61 : "a" (addr), "d" ((uint8_t)(val)) \ 42 : "a" (addr), "d" ((u##size)(val)) \
62 : "memory" \ 43 : "memory" \
63 ) 44 )
64 45
65#define bfin_write16(addr, val) \ 46#define bfin_read8(addr) _bfin_readX(addr, 8, b, (z))
66 __asm__ __volatile__( \ 47#define bfin_read16(addr) _bfin_readX(addr, 16, w, (z))
67 NOP_PAD_ANOMALY_05000198 \ 48#define bfin_read32(addr) _bfin_readX(addr, 32, , )
68 "w[%0] = %1;" \ 49#define bfin_write8(addr, val) _bfin_writeX(addr, val, 8, b)
69 : \ 50#define bfin_write16(addr, val) _bfin_writeX(addr, val, 16, w)
70 : "a" (addr), "d" ((uint16_t)(val)) \ 51#define bfin_write32(addr, val) _bfin_writeX(addr, val, 32, )
71 : "memory" \
72 )
73
74#define bfin_write32(addr, val) \
75 __asm__ __volatile__( \
76 NOP_PAD_ANOMALY_05000198 \
77 "[%0] = %1;" \
78 : \
79 : "a" (addr), "d" (val) \
80 : "memory" \
81 )
82 52
83#endif /* __ASSEMBLY__ */ 53#endif /* __ASSEMBLY__ */
84 54
diff --git a/arch/blackfin/include/asm/delay.h b/arch/blackfin/include/asm/delay.h
index c31f91cc1d5d..171d8deb04a5 100644
--- a/arch/blackfin/include/asm/delay.h
+++ b/arch/blackfin/include/asm/delay.h
@@ -30,10 +30,22 @@ __asm__ __volatile__ (
30 30
31#define HZSCALE (268435456 / (1000000/HZ)) 31#define HZSCALE (268435456 / (1000000/HZ))
32 32
33static inline void udelay(unsigned long usecs) 33static inline unsigned long __to_delay(unsigned long scale)
34{ 34{
35 extern unsigned long loops_per_jiffy; 35 extern unsigned long loops_per_jiffy;
36 __delay((((usecs * HZSCALE) >> 11) * (loops_per_jiffy >> 11)) >> 6); 36 return (((scale * HZSCALE) >> 11) * (loops_per_jiffy >> 11)) >> 6;
37}
38
39static inline void udelay(unsigned long usecs)
40{
41 __delay(__to_delay(usecs));
37} 42}
38 43
44static inline void ndelay(unsigned long nsecs)
45{
46 __delay(__to_delay(1) * nsecs / 1000);
47}
48
49#define ndelay ndelay
50
39#endif 51#endif
diff --git a/arch/blackfin/include/asm/dma-mapping.h b/arch/blackfin/include/asm/dma-mapping.h
index 413a30314a6f..212cb80fd74b 100644
--- a/arch/blackfin/include/asm/dma-mapping.h
+++ b/arch/blackfin/include/asm/dma-mapping.h
@@ -44,13 +44,8 @@ dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
44extern void 44extern void
45__dma_sync(dma_addr_t addr, size_t size, enum dma_data_direction dir); 45__dma_sync(dma_addr_t addr, size_t size, enum dma_data_direction dir);
46static inline void 46static inline void
47_dma_sync(dma_addr_t addr, size_t size, enum dma_data_direction dir) 47__dma_sync_inline(dma_addr_t addr, size_t size, enum dma_data_direction dir)
48{ 48{
49 if (!__builtin_constant_p(dir)) {
50 __dma_sync(addr, size, dir);
51 return;
52 }
53
54 switch (dir) { 49 switch (dir) {
55 case DMA_NONE: 50 case DMA_NONE:
56 BUG(); 51 BUG();
@@ -64,6 +59,14 @@ _dma_sync(dma_addr_t addr, size_t size, enum dma_data_direction dir)
64 break; 59 break;
65 } 60 }
66} 61}
62static inline void
63_dma_sync(dma_addr_t addr, size_t size, enum dma_data_direction dir)
64{
65 if (__builtin_constant_p(dir))
66 __dma_sync_inline(addr, size, dir);
67 else
68 __dma_sync(addr, size, dir);
69}
67 70
68static inline dma_addr_t 71static inline dma_addr_t
69dma_map_single(struct device *dev, void *ptr, size_t size, 72dma_map_single(struct device *dev, void *ptr, size_t size,
diff --git a/arch/blackfin/include/asm/dma.h b/arch/blackfin/include/asm/dma.h
index bd2e62243abe..2c09b1d50ec9 100644
--- a/arch/blackfin/include/asm/dma.h
+++ b/arch/blackfin/include/asm/dma.h
@@ -262,6 +262,10 @@ static inline void dma_disable_irq(unsigned int channel)
262{ 262{
263 disable_irq(dma_ch[channel].irq); 263 disable_irq(dma_ch[channel].irq);
264} 264}
265static inline void dma_disable_irq_nosync(unsigned int channel)
266{
267 disable_irq_nosync(dma_ch[channel].irq);
268}
265static inline void dma_enable_irq(unsigned int channel) 269static inline void dma_enable_irq(unsigned int channel)
266{ 270{
267 enable_irq(dma_ch[channel].irq); 271 enable_irq(dma_ch[channel].irq);
diff --git a/arch/blackfin/include/asm/dpmc.h b/arch/blackfin/include/asm/dpmc.h
index 1597ae5041ee..efcc3aebeae4 100644
--- a/arch/blackfin/include/asm/dpmc.h
+++ b/arch/blackfin/include/asm/dpmc.h
@@ -75,7 +75,7 @@
75 75
76#define VLEV 0x00F0 /* Internal Voltage Level */ 76#define VLEV 0x00F0 /* Internal Voltage Level */
77#ifdef __ADSPBF52x__ 77#ifdef __ADSPBF52x__
78#define VLEV_085 0x0040 /* VLEV = 0.85 V (-5% - +10% Accuracy) */ 78#define VLEV_085 0x0040 /* VLEV = 0.85 V (-5% - +10% Accuracy) */
79#define VLEV_090 0x0050 /* VLEV = 0.90 V (-5% - +10% Accuracy) */ 79#define VLEV_090 0x0050 /* VLEV = 0.90 V (-5% - +10% Accuracy) */
80#define VLEV_095 0x0060 /* VLEV = 0.95 V (-5% - +10% Accuracy) */ 80#define VLEV_095 0x0060 /* VLEV = 0.95 V (-5% - +10% Accuracy) */
81#define VLEV_100 0x0070 /* VLEV = 1.00 V (-5% - +10% Accuracy) */ 81#define VLEV_100 0x0070 /* VLEV = 1.00 V (-5% - +10% Accuracy) */
@@ -84,7 +84,7 @@
84#define VLEV_115 0x00A0 /* VLEV = 1.15 V (-5% - +10% Accuracy) */ 84#define VLEV_115 0x00A0 /* VLEV = 1.15 V (-5% - +10% Accuracy) */
85#define VLEV_120 0x00B0 /* VLEV = 1.20 V (-5% - +10% Accuracy) */ 85#define VLEV_120 0x00B0 /* VLEV = 1.20 V (-5% - +10% Accuracy) */
86#else 86#else
87#define VLEV_085 0x0060 /* VLEV = 0.85 V (-5% - +10% Accuracy) */ 87#define VLEV_085 0x0060 /* VLEV = 0.85 V (-5% - +10% Accuracy) */
88#define VLEV_090 0x0070 /* VLEV = 0.90 V (-5% - +10% Accuracy) */ 88#define VLEV_090 0x0070 /* VLEV = 0.90 V (-5% - +10% Accuracy) */
89#define VLEV_095 0x0080 /* VLEV = 0.95 V (-5% - +10% Accuracy) */ 89#define VLEV_095 0x0080 /* VLEV = 0.95 V (-5% - +10% Accuracy) */
90#define VLEV_100 0x0090 /* VLEV = 1.00 V (-5% - +10% Accuracy) */ 90#define VLEV_100 0x0090 /* VLEV = 1.00 V (-5% - +10% Accuracy) */
diff --git a/arch/blackfin/include/asm/elf.h b/arch/blackfin/include/asm/elf.h
index 5b50f0ecacf8..117713adea7f 100644
--- a/arch/blackfin/include/asm/elf.h
+++ b/arch/blackfin/include/asm/elf.h
@@ -22,12 +22,15 @@
22#define EF_BFIN_CODE_IN_L2 0x00000040 /* --code-in-l2 */ 22#define EF_BFIN_CODE_IN_L2 0x00000040 /* --code-in-l2 */
23#define EF_BFIN_DATA_IN_L2 0x00000080 /* --data-in-l2 */ 23#define EF_BFIN_DATA_IN_L2 0x00000080 /* --data-in-l2 */
24 24
25#if 1 /* core dumps not supported, but linux/elfcore.h needs these */
25typedef unsigned long elf_greg_t; 26typedef unsigned long elf_greg_t;
26 27
27#define ELF_NGREG 40 /* (sizeof(struct user_regs_struct) / sizeof(elf_greg_t)) */ 28#define ELF_NGREG (sizeof(struct pt_regs) / sizeof(elf_greg_t))
28typedef elf_greg_t elf_gregset_t[ELF_NGREG]; 29typedef elf_greg_t elf_gregset_t[ELF_NGREG];
29 30
30typedef struct { } elf_fpregset_t; 31typedef struct { } elf_fpregset_t;
32#endif
33
31/* 34/*
32 * This is used to ensure we don't load something for the wrong architecture. 35 * This is used to ensure we don't load something for the wrong architecture.
33 */ 36 */
@@ -55,6 +58,9 @@ do { \
55 _regs->p2 = _dynamic_addr; \ 58 _regs->p2 = _dynamic_addr; \
56} while(0) 59} while(0)
57 60
61#if 0
62#define CORE_DUMP_USE_REGSET
63#endif
58#define ELF_FDPIC_CORE_EFLAGS EF_BFIN_FDPIC 64#define ELF_FDPIC_CORE_EFLAGS EF_BFIN_FDPIC
59#define ELF_EXEC_PAGESIZE 4096 65#define ELF_EXEC_PAGESIZE 4096
60 66
diff --git a/arch/blackfin/include/asm/ftrace.h b/arch/blackfin/include/asm/ftrace.h
index 90c9b400ba6d..4cfe2d9ba7e8 100644
--- a/arch/blackfin/include/asm/ftrace.h
+++ b/arch/blackfin/include/asm/ftrace.h
@@ -10,4 +10,57 @@
10 10
11#define MCOUNT_INSN_SIZE 6 /* sizeof "[++sp] = rets; call __mcount;" */ 11#define MCOUNT_INSN_SIZE 6 /* sizeof "[++sp] = rets; call __mcount;" */
12 12
13#ifndef __ASSEMBLY__
14
15#ifdef CONFIG_FRAME_POINTER
16#include <linux/mm.h>
17
18extern inline void *return_address(unsigned int level)
19{
20 unsigned long *endstack, *fp, *ret_addr;
21 unsigned int current_level = 0;
22
23 if (level == 0)
24 return __builtin_return_address(0);
25
26 fp = (unsigned long *)__builtin_frame_address(0);
27 endstack = (unsigned long *)PAGE_ALIGN((unsigned long)&level);
28
29 while (((unsigned long)fp & 0x3) == 0 && fp &&
30 (fp + 1) < endstack && current_level < level) {
31 fp = (unsigned long *)*fp;
32 current_level++;
33 }
34
35 if (((unsigned long)fp & 0x3) == 0 && fp &&
36 (fp + 1) < endstack)
37 ret_addr = (unsigned long *)*(fp + 1);
38 else
39 ret_addr = NULL;
40
41 return ret_addr;
42}
43
44#else
45
46extern inline void *return_address(unsigned int level)
47{
48 return NULL;
49}
50
51#endif /* CONFIG_FRAME_POINTER */
52
53#define HAVE_ARCH_CALLER_ADDR
54
55/* inline function or macro may lead to unexpected result */
56#define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0))
57#define CALLER_ADDR1 ((unsigned long)return_address(1))
58#define CALLER_ADDR2 ((unsigned long)return_address(2))
59#define CALLER_ADDR3 ((unsigned long)return_address(3))
60#define CALLER_ADDR4 ((unsigned long)return_address(4))
61#define CALLER_ADDR5 ((unsigned long)return_address(5))
62#define CALLER_ADDR6 ((unsigned long)return_address(6))
63
64#endif /* __ASSEMBLY__ */
65
13#endif 66#endif
diff --git a/arch/blackfin/include/asm/gpio.h b/arch/blackfin/include/asm/gpio.h
index 539468a05057..91bd2d7b9d55 100644
--- a/arch/blackfin/include/asm/gpio.h
+++ b/arch/blackfin/include/asm/gpio.h
@@ -70,6 +70,8 @@
70 70
71#ifndef __ASSEMBLY__ 71#ifndef __ASSEMBLY__
72 72
73#include <linux/compiler.h>
74
73/*********************************************************** 75/***********************************************************
74* 76*
75* FUNCTIONS: Blackfin General Purpose Ports Access Functions 77* FUNCTIONS: Blackfin General Purpose Ports Access Functions
@@ -223,6 +225,9 @@ int bfin_gpio_direction_output(unsigned gpio, int value);
223int bfin_gpio_get_value(unsigned gpio); 225int bfin_gpio_get_value(unsigned gpio);
224void bfin_gpio_set_value(unsigned gpio, int value); 226void bfin_gpio_set_value(unsigned gpio, int value);
225 227
228#include <asm/irq.h>
229#include <asm/errno.h>
230
226#ifdef CONFIG_GPIOLIB 231#ifdef CONFIG_GPIOLIB
227#include <asm-generic/gpio.h> /* cansleep wrappers */ 232#include <asm-generic/gpio.h> /* cansleep wrappers */
228 233
@@ -247,6 +252,11 @@ static inline int gpio_cansleep(unsigned int gpio)
247 return __gpio_cansleep(gpio); 252 return __gpio_cansleep(gpio);
248} 253}
249 254
255static inline int gpio_to_irq(unsigned gpio)
256{
257 return __gpio_to_irq(gpio);
258}
259
250#else /* !CONFIG_GPIOLIB */ 260#else /* !CONFIG_GPIOLIB */
251 261
252static inline int gpio_request(unsigned gpio, const char *label) 262static inline int gpio_request(unsigned gpio, const char *label)
@@ -279,10 +289,6 @@ static inline void gpio_set_value(unsigned gpio, int value)
279 return bfin_gpio_set_value(gpio, value); 289 return bfin_gpio_set_value(gpio, value);
280} 290}
281 291
282#include <asm-generic/gpio.h> /* cansleep wrappers */
283#endif /* !CONFIG_GPIOLIB */
284#include <asm/irq.h>
285
286static inline int gpio_to_irq(unsigned gpio) 292static inline int gpio_to_irq(unsigned gpio)
287{ 293{
288 if (likely(gpio < MAX_BLACKFIN_GPIOS)) 294 if (likely(gpio < MAX_BLACKFIN_GPIOS))
@@ -291,6 +297,9 @@ static inline int gpio_to_irq(unsigned gpio)
291 return -EINVAL; 297 return -EINVAL;
292} 298}
293 299
300#include <asm-generic/gpio.h> /* cansleep wrappers */
301#endif /* !CONFIG_GPIOLIB */
302
294static inline int irq_to_gpio(unsigned irq) 303static inline int irq_to_gpio(unsigned irq)
295{ 304{
296 return (irq - GPIO_IRQ_BASE); 305 return (irq - GPIO_IRQ_BASE);
diff --git a/arch/blackfin/include/asm/irq.h b/arch/blackfin/include/asm/irq.h
index e7c0623f9091..12f4060a31b0 100644
--- a/arch/blackfin/include/asm/irq.h
+++ b/arch/blackfin/include/asm/irq.h
@@ -12,6 +12,9 @@
12 12
13#include <linux/irqflags.h> 13#include <linux/irqflags.h>
14 14
15/* IRQs that may be used by external irq_chip controllers */
16#define NR_SPARE_IRQS 32
17
15#include <mach/anomaly.h> 18#include <mach/anomaly.h>
16 19
17/* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h> */ 20/* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h> */
@@ -35,4 +38,8 @@
35 38
36#include <asm-generic/irq.h> 39#include <asm-generic/irq.h>
37 40
41#ifdef CONFIG_NMI_WATCHDOG
42# define ARCH_HAS_NMI_WATCHDOG
43#endif
44
38#endif /* _BFIN_IRQ_H_ */ 45#endif /* _BFIN_IRQ_H_ */
diff --git a/arch/blackfin/include/asm/mmu_context.h b/arch/blackfin/include/asm/mmu_context.h
index ae8ef4ffd806..7f363d7e43a5 100644
--- a/arch/blackfin/include/asm/mmu_context.h
+++ b/arch/blackfin/include/asm/mmu_context.h
@@ -13,6 +13,7 @@
13#include <asm/page.h> 13#include <asm/page.h>
14#include <asm/pgalloc.h> 14#include <asm/pgalloc.h>
15#include <asm/cplbinit.h> 15#include <asm/cplbinit.h>
16#include <asm/sections.h>
16 17
17/* Note: L1 stacks are CPU-private things, so we bluntly disable this 18/* Note: L1 stacks are CPU-private things, so we bluntly disable this
18 feature in SMP mode, and use the per-CPU scratch SRAM bank only to 19 feature in SMP mode, and use the per-CPU scratch SRAM bank only to
@@ -117,9 +118,16 @@ static inline void protect_page(struct mm_struct *mm, unsigned long addr,
117 unsigned long flags) 118 unsigned long flags)
118{ 119{
119 unsigned long *mask = mm->context.page_rwx_mask; 120 unsigned long *mask = mm->context.page_rwx_mask;
120 unsigned long page = addr >> 12; 121 unsigned long page;
121 unsigned long idx = page >> 5; 122 unsigned long idx;
122 unsigned long bit = 1 << (page & 31); 123 unsigned long bit;
124
125 if (unlikely(addr >= ASYNC_BANK0_BASE && addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE))
126 page = (addr - (ASYNC_BANK0_BASE - _ramend)) >> 12;
127 else
128 page = addr >> 12;
129 idx = page >> 5;
130 bit = 1 << (page & 31);
123 131
124 if (flags & VM_READ) 132 if (flags & VM_READ)
125 mask[idx] |= bit; 133 mask[idx] |= bit;
diff --git a/arch/blackfin/include/asm/nmi.h b/arch/blackfin/include/asm/nmi.h
new file mode 100644
index 000000000000..b9caac4fcfd8
--- /dev/null
+++ b/arch/blackfin/include/asm/nmi.h
@@ -0,0 +1,12 @@
1/*
2 * Copyright 2010 Analog Devices Inc.
3 *
4 * Licensed under the GPL-2
5 */
6
7#ifndef _BFIN_NMI_H_
8#define _BFIN_NMI_H_
9
10#include <linux/nmi.h>
11
12#endif
diff --git a/arch/blackfin/include/asm/page.h b/arch/blackfin/include/asm/page.h
index 1d04e4078340..d0ce975bcd48 100644
--- a/arch/blackfin/include/asm/page.h
+++ b/arch/blackfin/include/asm/page.h
@@ -15,4 +15,7 @@
15 ((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \ 15 ((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \
16 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) 16 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
17 17
18#include <asm-generic/memory_model.h>
19#include <asm-generic/getorder.h>
20
18#endif 21#endif
diff --git a/arch/blackfin/include/asm/ptrace.h b/arch/blackfin/include/asm/ptrace.h
index b33a4488f498..aaa1c6c2bc19 100644
--- a/arch/blackfin/include/asm/ptrace.h
+++ b/arch/blackfin/include/asm/ptrace.h
@@ -24,6 +24,8 @@
24 24
25#ifndef __ASSEMBLY__ 25#ifndef __ASSEMBLY__
26 26
27struct task_struct;
28
27/* this struct defines the way the registers are stored on the 29/* this struct defines the way the registers are stored on the
28 stack during a system call. */ 30 stack during a system call. */
29 31
@@ -101,9 +103,30 @@ struct pt_regs {
101 master interrupt enable. */ 103 master interrupt enable. */
102#define user_mode(regs) (!(((regs)->ipend & ~0x10) & (((regs)->ipend & ~0x10) - 1))) 104#define user_mode(regs) (!(((regs)->ipend & ~0x10) & (((regs)->ipend & ~0x10) - 1)))
103#define instruction_pointer(regs) ((regs)->pc) 105#define instruction_pointer(regs) ((regs)->pc)
106#define user_stack_pointer(regs) ((regs)->usp)
104#define profile_pc(regs) instruction_pointer(regs) 107#define profile_pc(regs) instruction_pointer(regs)
105extern void show_regs(struct pt_regs *); 108extern void show_regs(struct pt_regs *);
106 109
110#define arch_has_single_step() (1)
111extern void user_enable_single_step(struct task_struct *child);
112extern void user_disable_single_step(struct task_struct *child);
113/* common code demands this function */
114#define ptrace_disable(child) user_disable_single_step(child)
115
116/*
117 * Get the address of the live pt_regs for the specified task.
118 * These are saved onto the top kernel stack when the process
119 * is not running.
120 *
121 * Note: if a user thread is execve'd from kernel space, the
122 * kernel stack will not be empty on entry to the kernel, so
123 * ptracing these tasks will fail.
124 */
125#define task_pt_regs(task) \
126 (struct pt_regs *) \
127 ((unsigned long)task_stack_page(task) + \
128 (THREAD_SIZE - sizeof(struct pt_regs)))
129
107#endif /* __KERNEL__ */ 130#endif /* __KERNEL__ */
108 131
109#endif /* __ASSEMBLY__ */ 132#endif /* __ASSEMBLY__ */
@@ -173,4 +196,6 @@ extern void show_regs(struct pt_regs *);
173#define PT_FDPIC_EXEC 232 196#define PT_FDPIC_EXEC 232
174#define PT_FDPIC_INTERP 236 197#define PT_FDPIC_INTERP 236
175 198
199#define PT_LAST_PSEUDO PT_FDPIC_INTERP
200
176#endif /* _BFIN_PTRACE_H */ 201#endif /* _BFIN_PTRACE_H */
diff --git a/arch/blackfin/include/asm/sections.h b/arch/blackfin/include/asm/sections.h
index 42f6c53c59c6..14a3e66d9167 100644
--- a/arch/blackfin/include/asm/sections.h
+++ b/arch/blackfin/include/asm/sections.h
@@ -21,6 +21,9 @@ extern unsigned long memory_start, memory_end, physical_mem_end;
21extern char _stext_l1[], _etext_l1[], _text_l1_lma[], __weak _text_l1_len[]; 21extern char _stext_l1[], _etext_l1[], _text_l1_lma[], __weak _text_l1_len[];
22extern char _sdata_l1[], _edata_l1[], _sbss_l1[], _ebss_l1[], 22extern char _sdata_l1[], _edata_l1[], _sbss_l1[], _ebss_l1[],
23 _data_l1_lma[], __weak _data_l1_len[]; 23 _data_l1_lma[], __weak _data_l1_len[];
24#ifdef CONFIG_ROMKERNEL
25extern char _data_lma[], _data_len[], _sinitdata[], _einitdata[], _init_data_lma[], _init_data_len[];
26#endif
24extern char _sdata_b_l1[], _edata_b_l1[], _sbss_b_l1[], _ebss_b_l1[], 27extern char _sdata_b_l1[], _edata_b_l1[], _sbss_b_l1[], _ebss_b_l1[],
25 _data_b_l1_lma[], __weak _data_b_l1_len[]; 28 _data_b_l1_lma[], __weak _data_b_l1_len[];
26extern char _stext_l2[], _etext_l2[], _sdata_l2[], _edata_l2[], 29extern char _stext_l2[], _etext_l2[], _sdata_l2[], _edata_l2[],
diff --git a/arch/blackfin/include/asm/smp.h b/arch/blackfin/include/asm/smp.h
index 6a0fe94b84a6..f5b537967116 100644
--- a/arch/blackfin/include/asm/smp.h
+++ b/arch/blackfin/include/asm/smp.h
@@ -22,8 +22,23 @@ extern char coreb_trampoline_start, coreb_trampoline_end;
22struct corelock_slot { 22struct corelock_slot {
23 int lock; 23 int lock;
24}; 24};
25extern struct corelock_slot corelock;
26
27#ifdef __ARCH_SYNC_CORE_ICACHE
28extern unsigned long icache_invld_count[NR_CPUS];
29#endif
30#ifdef __ARCH_SYNC_CORE_DCACHE
31extern unsigned long dcache_invld_count[NR_CPUS];
32#endif
25 33
26void smp_icache_flush_range_others(unsigned long start, 34void smp_icache_flush_range_others(unsigned long start,
27 unsigned long end); 35 unsigned long end);
36#ifdef CONFIG_HOTPLUG_CPU
37void coreb_sleep(u32 sic_iwr0, u32 sic_iwr1, u32 sic_iwr2);
38void cpu_die(void);
39void platform_cpu_die(void);
40int __cpu_disable(void);
41int __cpu_die(unsigned int cpu);
42#endif
28 43
29#endif /* !__ASM_BLACKFIN_SMP_H */ 44#endif /* !__ASM_BLACKFIN_SMP_H */
diff --git a/arch/blackfin/include/asm/syscall.h b/arch/blackfin/include/asm/syscall.h
new file mode 100644
index 000000000000..4921a4815cce
--- /dev/null
+++ b/arch/blackfin/include/asm/syscall.h
@@ -0,0 +1,96 @@
1/*
2 * Magic syscall break down functions
3 *
4 * Copyright 2010 Analog Devices Inc.
5 *
6 * Licensed under the GPL-2 or later.
7 */
8
9#ifndef __ASM_BLACKFIN_SYSCALL_H__
10#define __ASM_BLACKFIN_SYSCALL_H__
11
12/*
13 * Blackfin syscalls are simple:
14 * enter:
15 * p0: syscall number
16 * r{0,1,2,3,4,5}: syscall args 0,1,2,3,4,5
17 * exit:
18 * r0: return/error value
19 */
20
21#include <linux/err.h>
22#include <linux/sched.h>
23#include <asm/ptrace.h>
24
25static inline long
26syscall_get_nr(struct task_struct *task, struct pt_regs *regs)
27{
28 return regs->p0;
29}
30
31static inline void
32syscall_rollback(struct task_struct *task, struct pt_regs *regs)
33{
34 regs->p0 = regs->orig_p0;
35}
36
37static inline long
38syscall_get_error(struct task_struct *task, struct pt_regs *regs)
39{
40 return IS_ERR_VALUE(regs->r0) ? regs->r0 : 0;
41}
42
43static inline long
44syscall_get_return_value(struct task_struct *task, struct pt_regs *regs)
45{
46 return regs->r0;
47}
48
49static inline void
50syscall_set_return_value(struct task_struct *task, struct pt_regs *regs,
51 int error, long val)
52{
53 regs->r0 = error ? -error : val;
54}
55
56/**
57 * syscall_get_arguments()
58 * @task: unused
59 * @regs: the register layout to extract syscall arguments from
60 * @i: first syscall argument to extract
61 * @n: number of syscall arguments to extract
62 * @args: array to return the syscall arguments in
63 *
64 * args[0] gets i'th argument, args[n - 1] gets the i+n-1'th argument
65 */
66static inline void
67syscall_get_arguments(struct task_struct *task, struct pt_regs *regs,
68 unsigned int i, unsigned int n, unsigned long *args)
69{
70 /*
71 * Assume the ptrace layout doesn't change -- r5 is first in memory,
72 * then r4, ..., then r0. So we simply reverse the ptrace register
73 * array in memory to store into the args array.
74 */
75 long *aregs = &regs->r0 - i;
76
77 BUG_ON(i > 5 || i + n > 6);
78
79 while (n--)
80 *args++ = *aregs--;
81}
82
83/* See syscall_get_arguments() comments */
84static inline void
85syscall_set_arguments(struct task_struct *task, struct pt_regs *regs,
86 unsigned int i, unsigned int n, const unsigned long *args)
87{
88 long *aregs = &regs->r0 - i;
89
90 BUG_ON(i > 5 || i + n > 6);
91
92 while (n--)
93 *aregs-- = *args++;
94}
95
96#endif
diff --git a/arch/blackfin/include/asm/thread_info.h b/arch/blackfin/include/asm/thread_info.h
index a40d9368c38a..e9a5614cdbb1 100644
--- a/arch/blackfin/include/asm/thread_info.h
+++ b/arch/blackfin/include/asm/thread_info.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2004-2009 Analog Devices Inc. 2 * Copyright 2004-2010 Analog Devices Inc.
3 * 3 *
4 * Licensed under the GPL-2 or later. 4 * Licensed under the GPL-2 or later.
5 */ 5 */
@@ -17,7 +17,7 @@
17/* Thread Align Mask to reach to the top of the stack 17/* Thread Align Mask to reach to the top of the stack
18 * for any process 18 * for any process
19 */ 19 */
20#define ALIGN_PAGE_MASK 0xffffe000 20#define ALIGN_PAGE_MASK 0xffffe000
21 21
22/* 22/*
23 * Size of kernel stack for each process. This must be a power of 2... 23 * Size of kernel stack for each process. This must be a power of 2...
@@ -57,7 +57,7 @@ struct thread_info {
57 .exec_domain = &default_exec_domain, \ 57 .exec_domain = &default_exec_domain, \
58 .flags = 0, \ 58 .flags = 0, \
59 .cpu = 0, \ 59 .cpu = 0, \
60 .preempt_count = INIT_PREEMPT_COUNT, \ 60 .preempt_count = INIT_PREEMPT_COUNT, \
61 .restart_block = { \ 61 .restart_block = { \
62 .fn = do_no_restart_syscall, \ 62 .fn = do_no_restart_syscall, \
63 }, \ 63 }, \
@@ -73,8 +73,7 @@ __attribute_const__
73static inline struct thread_info *current_thread_info(void) 73static inline struct thread_info *current_thread_info(void)
74{ 74{
75 struct thread_info *ti; 75 struct thread_info *ti;
76 __asm__("%0 = sp;" : "=da"(ti) : 76 __asm__("%0 = sp;" : "=da"(ti));
77 );
78 return (struct thread_info *)((long)ti & ~((long)THREAD_SIZE-1)); 77 return (struct thread_info *)((long)ti & ~((long)THREAD_SIZE-1));
79} 78}
80 79
@@ -99,21 +98,23 @@ static inline struct thread_info *current_thread_info(void)
99#define TIF_NEED_RESCHED 2 /* rescheduling necessary */ 98#define TIF_NEED_RESCHED 2 /* rescheduling necessary */
100#define TIF_POLLING_NRFLAG 3 /* true if poll_idle() is polling 99#define TIF_POLLING_NRFLAG 3 /* true if poll_idle() is polling
101 TIF_NEED_RESCHED */ 100 TIF_NEED_RESCHED */
102#define TIF_MEMDIE 4 101#define TIF_MEMDIE 4
103#define TIF_RESTORE_SIGMASK 5 /* restore signal mask in do_signal() */ 102#define TIF_RESTORE_SIGMASK 5 /* restore signal mask in do_signal() */
104#define TIF_FREEZE 6 /* is freezing for suspend */ 103#define TIF_FREEZE 6 /* is freezing for suspend */
105#define TIF_IRQ_SYNC 7 /* sync pipeline stage */ 104#define TIF_IRQ_SYNC 7 /* sync pipeline stage */
106#define TIF_NOTIFY_RESUME 8 /* callback before returning to user */ 105#define TIF_NOTIFY_RESUME 8 /* callback before returning to user */
106#define TIF_SINGLESTEP 9
107 107
108/* as above, but as bit values */ 108/* as above, but as bit values */
109#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) 109#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
110#define _TIF_SIGPENDING (1<<TIF_SIGPENDING) 110#define _TIF_SIGPENDING (1<<TIF_SIGPENDING)
111#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) 111#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)
112#define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME)
113#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) 112#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
114#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK) 113#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK)
115#define _TIF_FREEZE (1<<TIF_FREEZE) 114#define _TIF_FREEZE (1<<TIF_FREEZE)
116#define _TIF_IRQ_SYNC (1<<TIF_IRQ_SYNC) 115#define _TIF_IRQ_SYNC (1<<TIF_IRQ_SYNC)
116#define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME)
117#define _TIF_SINGLESTEP (1<<TIF_SINGLESTEP)
117 118
118#define _TIF_WORK_MASK 0x0000FFFE /* work to do on interrupt/exception return */ 119#define _TIF_WORK_MASK 0x0000FFFE /* work to do on interrupt/exception return */
119 120
diff --git a/arch/blackfin/include/asm/time.h b/arch/blackfin/include/asm/time.h
index 589e937ed1eb..9ca7db844d10 100644
--- a/arch/blackfin/include/asm/time.h
+++ b/arch/blackfin/include/asm/time.h
@@ -23,9 +23,7 @@
23 */ 23 */
24 24
25#ifndef CONFIG_CPU_FREQ 25#ifndef CONFIG_CPU_FREQ
26#define TIME_SCALE 1 26# define TIME_SCALE 1
27#define __bfin_cycles_off (0)
28#define __bfin_cycles_mod (0)
29#else 27#else
30/* 28/*
31 * Blackfin CPU frequency scaling supports max Core Clock 1, 1/2 and 1/4 . 29 * Blackfin CPU frequency scaling supports max Core Clock 1, 1/2 and 1/4 .
@@ -33,9 +31,16 @@
33 * adjust the Core Timer Presale Register. This way we don't lose time. 31 * adjust the Core Timer Presale Register. This way we don't lose time.
34 */ 32 */
35#define TIME_SCALE 4 33#define TIME_SCALE 4
34
35# ifdef CONFIG_CYCLES_CLOCKSOURCE
36extern unsigned long long __bfin_cycles_off; 36extern unsigned long long __bfin_cycles_off;
37extern unsigned int __bfin_cycles_mod; 37extern unsigned int __bfin_cycles_mod;
38# endif
39#endif
40
41#if defined(CONFIG_TICKSOURCE_CORETMR)
42extern void bfin_coretmr_init(void);
43extern void bfin_coretmr_clockevent_init(void);
38#endif 44#endif
39 45
40extern void __init setup_core_timer(void);
41#endif 46#endif
diff --git a/arch/blackfin/kernel/Makefile b/arch/blackfin/kernel/Makefile
index a8ddbc8ed5af..346a421f1562 100644
--- a/arch/blackfin/kernel/Makefile
+++ b/arch/blackfin/kernel/Makefile
@@ -25,6 +25,7 @@ obj-$(CONFIG_CPLB_INFO) += cplbinfo.o
25obj-$(CONFIG_MODULES) += module.o 25obj-$(CONFIG_MODULES) += module.o
26obj-$(CONFIG_KGDB) += kgdb.o 26obj-$(CONFIG_KGDB) += kgdb.o
27obj-$(CONFIG_KGDB_TESTS) += kgdb_test.o 27obj-$(CONFIG_KGDB_TESTS) += kgdb_test.o
28obj-$(CONFIG_NMI_WATCHDOG) += nmi.o
28obj-$(CONFIG_EARLY_PRINTK) += early_printk.o 29obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
29obj-$(CONFIG_EARLY_PRINTK) += shadow_console.o 30obj-$(CONFIG_EARLY_PRINTK) += shadow_console.o
30obj-$(CONFIG_STACKTRACE) += stacktrace.o 31obj-$(CONFIG_STACKTRACE) += stacktrace.o
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c
index 924c00286bab..26403d1c9e65 100644
--- a/arch/blackfin/kernel/bfin_dma_5xx.c
+++ b/arch/blackfin/kernel/bfin_dma_5xx.c
@@ -91,7 +91,7 @@ late_initcall(proc_dma_init);
91 */ 91 */
92int request_dma(unsigned int channel, const char *device_id) 92int request_dma(unsigned int channel, const char *device_id)
93{ 93{
94 pr_debug("request_dma() : BEGIN \n"); 94 pr_debug("request_dma() : BEGIN\n");
95 95
96 if (device_id == NULL) 96 if (device_id == NULL)
97 printk(KERN_WARNING "request_dma(%u): no device_id given\n", channel); 97 printk(KERN_WARNING "request_dma(%u): no device_id given\n", channel);
@@ -107,7 +107,7 @@ int request_dma(unsigned int channel, const char *device_id)
107#endif 107#endif
108 108
109 if (atomic_cmpxchg(&dma_ch[channel].chan_status, 0, 1)) { 109 if (atomic_cmpxchg(&dma_ch[channel].chan_status, 0, 1)) {
110 pr_debug("DMA CHANNEL IN USE \n"); 110 pr_debug("DMA CHANNEL IN USE\n");
111 return -EBUSY; 111 return -EBUSY;
112 } 112 }
113 113
@@ -131,7 +131,7 @@ int request_dma(unsigned int channel, const char *device_id)
131 * you have to request DMA, before doing any operations on 131 * you have to request DMA, before doing any operations on
132 * descriptor/channel 132 * descriptor/channel
133 */ 133 */
134 pr_debug("request_dma() : END \n"); 134 pr_debug("request_dma() : END\n");
135 return 0; 135 return 0;
136} 136}
137EXPORT_SYMBOL(request_dma); 137EXPORT_SYMBOL(request_dma);
@@ -171,7 +171,7 @@ static void clear_dma_buffer(unsigned int channel)
171 171
172void free_dma(unsigned int channel) 172void free_dma(unsigned int channel)
173{ 173{
174 pr_debug("freedma() : BEGIN \n"); 174 pr_debug("freedma() : BEGIN\n");
175 BUG_ON(channel >= MAX_DMA_CHANNELS || 175 BUG_ON(channel >= MAX_DMA_CHANNELS ||
176 !atomic_read(&dma_ch[channel].chan_status)); 176 !atomic_read(&dma_ch[channel].chan_status));
177 177
@@ -185,7 +185,7 @@ void free_dma(unsigned int channel)
185 /* Clear the DMA Variable in the Channel */ 185 /* Clear the DMA Variable in the Channel */
186 atomic_set(&dma_ch[channel].chan_status, 0); 186 atomic_set(&dma_ch[channel].chan_status, 0);
187 187
188 pr_debug("freedma() : END \n"); 188 pr_debug("freedma() : END\n");
189} 189}
190EXPORT_SYMBOL(free_dma); 190EXPORT_SYMBOL(free_dma);
191 191
diff --git a/arch/blackfin/kernel/bfin_gpio.c b/arch/blackfin/kernel/bfin_gpio.c
index a174596cc009..e35e20f00d9b 100644
--- a/arch/blackfin/kernel/bfin_gpio.c
+++ b/arch/blackfin/kernel/bfin_gpio.c
@@ -1289,44 +1289,50 @@ __initcall(gpio_register_proc);
1289#endif 1289#endif
1290 1290
1291#ifdef CONFIG_GPIOLIB 1291#ifdef CONFIG_GPIOLIB
1292int bfin_gpiolib_direction_input(struct gpio_chip *chip, unsigned gpio) 1292static int bfin_gpiolib_direction_input(struct gpio_chip *chip, unsigned gpio)
1293{ 1293{
1294 return bfin_gpio_direction_input(gpio); 1294 return bfin_gpio_direction_input(gpio);
1295} 1295}
1296 1296
1297int bfin_gpiolib_direction_output(struct gpio_chip *chip, unsigned gpio, int level) 1297static int bfin_gpiolib_direction_output(struct gpio_chip *chip, unsigned gpio, int level)
1298{ 1298{
1299 return bfin_gpio_direction_output(gpio, level); 1299 return bfin_gpio_direction_output(gpio, level);
1300} 1300}
1301 1301
1302int bfin_gpiolib_get_value(struct gpio_chip *chip, unsigned gpio) 1302static int bfin_gpiolib_get_value(struct gpio_chip *chip, unsigned gpio)
1303{ 1303{
1304 return bfin_gpio_get_value(gpio); 1304 return bfin_gpio_get_value(gpio);
1305} 1305}
1306 1306
1307void bfin_gpiolib_set_value(struct gpio_chip *chip, unsigned gpio, int value) 1307static void bfin_gpiolib_set_value(struct gpio_chip *chip, unsigned gpio, int value)
1308{ 1308{
1309 return bfin_gpio_set_value(gpio, value); 1309 return bfin_gpio_set_value(gpio, value);
1310} 1310}
1311 1311
1312int bfin_gpiolib_gpio_request(struct gpio_chip *chip, unsigned gpio) 1312static int bfin_gpiolib_gpio_request(struct gpio_chip *chip, unsigned gpio)
1313{ 1313{
1314 return bfin_gpio_request(gpio, chip->label); 1314 return bfin_gpio_request(gpio, chip->label);
1315} 1315}
1316 1316
1317void bfin_gpiolib_gpio_free(struct gpio_chip *chip, unsigned gpio) 1317static void bfin_gpiolib_gpio_free(struct gpio_chip *chip, unsigned gpio)
1318{ 1318{
1319 return bfin_gpio_free(gpio); 1319 return bfin_gpio_free(gpio);
1320} 1320}
1321 1321
1322static int bfin_gpiolib_gpio_to_irq(struct gpio_chip *chip, unsigned gpio)
1323{
1324 return gpio + GPIO_IRQ_BASE;
1325}
1326
1322static struct gpio_chip bfin_chip = { 1327static struct gpio_chip bfin_chip = {
1323 .label = "Blackfin-GPIOlib", 1328 .label = "BFIN-GPIO",
1324 .direction_input = bfin_gpiolib_direction_input, 1329 .direction_input = bfin_gpiolib_direction_input,
1325 .get = bfin_gpiolib_get_value, 1330 .get = bfin_gpiolib_get_value,
1326 .direction_output = bfin_gpiolib_direction_output, 1331 .direction_output = bfin_gpiolib_direction_output,
1327 .set = bfin_gpiolib_set_value, 1332 .set = bfin_gpiolib_set_value,
1328 .request = bfin_gpiolib_gpio_request, 1333 .request = bfin_gpiolib_gpio_request,
1329 .free = bfin_gpiolib_gpio_free, 1334 .free = bfin_gpiolib_gpio_free,
1335 .to_irq = bfin_gpiolib_gpio_to_irq,
1330 .base = 0, 1336 .base = 0,
1331 .ngpio = MAX_BLACKFIN_GPIOS, 1337 .ngpio = MAX_BLACKFIN_GPIOS,
1332}; 1338};
diff --git a/arch/blackfin/kernel/cplb-mpu/cplbinit.c b/arch/blackfin/kernel/cplb-mpu/cplbinit.c
index 8d42b9e50dfa..30fd6417f069 100644
--- a/arch/blackfin/kernel/cplb-mpu/cplbinit.c
+++ b/arch/blackfin/kernel/cplb-mpu/cplbinit.c
@@ -64,6 +64,15 @@ void __init generate_cplb_tables_cpu(unsigned int cpu)
64 icplb_tbl[cpu][i_i++].data = i_data | (addr == 0 ? CPLB_USER_RD : 0); 64 icplb_tbl[cpu][i_i++].data = i_data | (addr == 0 ? CPLB_USER_RD : 0);
65 } 65 }
66 66
67#ifdef CONFIG_ROMKERNEL
68 /* Cover kernel XIP flash area */
69 addr = CONFIG_ROM_BASE & ~(4 * 1024 * 1024 - 1);
70 dcplb_tbl[cpu][i_d].addr = addr;
71 dcplb_tbl[cpu][i_d++].data = d_data | CPLB_USER_RD;
72 icplb_tbl[cpu][i_i].addr = addr;
73 icplb_tbl[cpu][i_i++].data = i_data | CPLB_USER_RD;
74#endif
75
67 /* Cover L1 memory. One 4M area for code and data each is enough. */ 76 /* Cover L1 memory. One 4M area for code and data each is enough. */
68#if L1_DATA_A_LENGTH > 0 || L1_DATA_B_LENGTH > 0 77#if L1_DATA_A_LENGTH > 0 || L1_DATA_B_LENGTH > 0
69 dcplb_tbl[cpu][i_d].addr = get_l1_data_a_start_cpu(cpu); 78 dcplb_tbl[cpu][i_d].addr = get_l1_data_a_start_cpu(cpu);
diff --git a/arch/blackfin/kernel/cplb-mpu/cplbmgr.c b/arch/blackfin/kernel/cplb-mpu/cplbmgr.c
index 930c01c06813..87b25b1b30ed 100644
--- a/arch/blackfin/kernel/cplb-mpu/cplbmgr.c
+++ b/arch/blackfin/kernel/cplb-mpu/cplbmgr.c
@@ -31,6 +31,12 @@ int nr_dcplb_miss[NR_CPUS], nr_icplb_miss[NR_CPUS];
31int nr_icplb_supv_miss[NR_CPUS], nr_dcplb_prot[NR_CPUS]; 31int nr_icplb_supv_miss[NR_CPUS], nr_dcplb_prot[NR_CPUS];
32int nr_cplb_flush[NR_CPUS]; 32int nr_cplb_flush[NR_CPUS];
33 33
34#ifdef CONFIG_EXCPT_IRQ_SYSC_L1
35#define MGR_ATTR __attribute__((l1_text))
36#else
37#define MGR_ATTR
38#endif
39
34/* 40/*
35 * Given the contents of the status register, return the index of the 41 * Given the contents of the status register, return the index of the
36 * CPLB that caused the fault. 42 * CPLB that caused the fault.
@@ -59,7 +65,7 @@ static int icplb_rr_index[NR_CPUS], dcplb_rr_index[NR_CPUS];
59/* 65/*
60 * Find an ICPLB entry to be evicted and return its index. 66 * Find an ICPLB entry to be evicted and return its index.
61 */ 67 */
62static int evict_one_icplb(unsigned int cpu) 68MGR_ATTR static int evict_one_icplb(unsigned int cpu)
63{ 69{
64 int i; 70 int i;
65 for (i = first_switched_icplb; i < MAX_CPLBS; i++) 71 for (i = first_switched_icplb; i < MAX_CPLBS; i++)
@@ -74,7 +80,7 @@ static int evict_one_icplb(unsigned int cpu)
74 return i; 80 return i;
75} 81}
76 82
77static int evict_one_dcplb(unsigned int cpu) 83MGR_ATTR static int evict_one_dcplb(unsigned int cpu)
78{ 84{
79 int i; 85 int i;
80 for (i = first_switched_dcplb; i < MAX_CPLBS; i++) 86 for (i = first_switched_dcplb; i < MAX_CPLBS; i++)
@@ -89,7 +95,7 @@ static int evict_one_dcplb(unsigned int cpu)
89 return i; 95 return i;
90} 96}
91 97
92static noinline int dcplb_miss(unsigned int cpu) 98MGR_ATTR static noinline int dcplb_miss(unsigned int cpu)
93{ 99{
94 unsigned long addr = bfin_read_DCPLB_FAULT_ADDR(); 100 unsigned long addr = bfin_read_DCPLB_FAULT_ADDR();
95 int status = bfin_read_DCPLB_STATUS(); 101 int status = bfin_read_DCPLB_STATUS();
@@ -114,10 +120,15 @@ static noinline int dcplb_miss(unsigned int cpu)
114 d_data = L2_DMEMORY; 120 d_data = L2_DMEMORY;
115 } else if (addr >= physical_mem_end) { 121 } else if (addr >= physical_mem_end) {
116 if (addr >= ASYNC_BANK0_BASE && addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE) { 122 if (addr >= ASYNC_BANK0_BASE && addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE) {
117 addr &= ~(4 * 1024 * 1024 - 1); 123 mask = current_rwx_mask[cpu];
118 d_data &= ~PAGE_SIZE_4KB; 124 if (mask) {
119 d_data |= PAGE_SIZE_4MB; 125 int page = (addr - (ASYNC_BANK0_BASE - _ramend)) >> PAGE_SHIFT;
120 d_data |= CPLB_USER_RD | CPLB_USER_WR; 126 int idx = page >> 5;
127 int bit = 1 << (page & 31);
128
129 if (mask[idx] & bit)
130 d_data |= CPLB_USER_RD;
131 }
121 } else if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH 132 } else if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH
122 && (status & (FAULT_RW | FAULT_USERSUPV)) == FAULT_USERSUPV) { 133 && (status & (FAULT_RW | FAULT_USERSUPV)) == FAULT_USERSUPV) {
123 addr &= ~(1 * 1024 * 1024 - 1); 134 addr &= ~(1 * 1024 * 1024 - 1);
@@ -126,7 +137,9 @@ static noinline int dcplb_miss(unsigned int cpu)
126 } else 137 } else
127 return CPLB_PROT_VIOL; 138 return CPLB_PROT_VIOL;
128 } else if (addr >= _ramend) { 139 } else if (addr >= _ramend) {
129 d_data |= CPLB_USER_RD | CPLB_USER_WR; 140 d_data |= CPLB_USER_RD | CPLB_USER_WR;
141 if (reserved_mem_dcache_on)
142 d_data |= CPLB_L1_CHBL;
130 } else { 143 } else {
131 mask = current_rwx_mask[cpu]; 144 mask = current_rwx_mask[cpu];
132 if (mask) { 145 if (mask) {
@@ -156,7 +169,7 @@ static noinline int dcplb_miss(unsigned int cpu)
156 return 0; 169 return 0;
157} 170}
158 171
159static noinline int icplb_miss(unsigned int cpu) 172MGR_ATTR static noinline int icplb_miss(unsigned int cpu)
160{ 173{
161 unsigned long addr = bfin_read_ICPLB_FAULT_ADDR(); 174 unsigned long addr = bfin_read_ICPLB_FAULT_ADDR();
162 int status = bfin_read_ICPLB_STATUS(); 175 int status = bfin_read_ICPLB_STATUS();
@@ -204,10 +217,19 @@ static noinline int icplb_miss(unsigned int cpu)
204 i_data = L2_IMEMORY; 217 i_data = L2_IMEMORY;
205 } else if (addr >= physical_mem_end) { 218 } else if (addr >= physical_mem_end) {
206 if (addr >= ASYNC_BANK0_BASE && addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE) { 219 if (addr >= ASYNC_BANK0_BASE && addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE) {
207 addr &= ~(4 * 1024 * 1024 - 1); 220 if (!(status & FAULT_USERSUPV)) {
208 i_data &= ~PAGE_SIZE_4KB; 221 unsigned long *mask = current_rwx_mask[cpu];
209 i_data |= PAGE_SIZE_4MB; 222
210 i_data |= CPLB_USER_RD; 223 if (mask) {
224 int page = (addr - (ASYNC_BANK0_BASE - _ramend)) >> PAGE_SHIFT;
225 int idx = page >> 5;
226 int bit = 1 << (page & 31);
227
228 mask += 2 * page_mask_nelts;
229 if (mask[idx] & bit)
230 i_data |= CPLB_USER_RD;
231 }
232 }
211 } else if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH 233 } else if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH
212 && (status & FAULT_USERSUPV)) { 234 && (status & FAULT_USERSUPV)) {
213 addr &= ~(1 * 1024 * 1024 - 1); 235 addr &= ~(1 * 1024 * 1024 - 1);
@@ -217,6 +239,8 @@ static noinline int icplb_miss(unsigned int cpu)
217 return CPLB_PROT_VIOL; 239 return CPLB_PROT_VIOL;
218 } else if (addr >= _ramend) { 240 } else if (addr >= _ramend) {
219 i_data |= CPLB_USER_RD; 241 i_data |= CPLB_USER_RD;
242 if (reserved_mem_icache_on)
243 i_data |= CPLB_L1_CHBL;
220 } else { 244 } else {
221 /* 245 /*
222 * Two cases to distinguish - a supervisor access must 246 * Two cases to distinguish - a supervisor access must
@@ -251,7 +275,7 @@ static noinline int icplb_miss(unsigned int cpu)
251 return 0; 275 return 0;
252} 276}
253 277
254static noinline int dcplb_protection_fault(unsigned int cpu) 278MGR_ATTR static noinline int dcplb_protection_fault(unsigned int cpu)
255{ 279{
256 int status = bfin_read_DCPLB_STATUS(); 280 int status = bfin_read_DCPLB_STATUS();
257 281
@@ -271,7 +295,7 @@ static noinline int dcplb_protection_fault(unsigned int cpu)
271 return CPLB_PROT_VIOL; 295 return CPLB_PROT_VIOL;
272} 296}
273 297
274int cplb_hdr(int seqstat, struct pt_regs *regs) 298MGR_ATTR int cplb_hdr(int seqstat, struct pt_regs *regs)
275{ 299{
276 int cause = seqstat & 0x3f; 300 int cause = seqstat & 0x3f;
277 unsigned int cpu = raw_smp_processor_id(); 301 unsigned int cpu = raw_smp_processor_id();
diff --git a/arch/blackfin/kernel/cplb-nompu/cplbinit.c b/arch/blackfin/kernel/cplb-nompu/cplbinit.c
index 282a7919821b..bfe75af4e8bd 100644
--- a/arch/blackfin/kernel/cplb-nompu/cplbinit.c
+++ b/arch/blackfin/kernel/cplb-nompu/cplbinit.c
@@ -56,6 +56,15 @@ void __init generate_cplb_tables_cpu(unsigned int cpu)
56 i_tbl[i_i++].data = SDRAM_IGENERIC | PAGE_SIZE_4MB; 56 i_tbl[i_i++].data = SDRAM_IGENERIC | PAGE_SIZE_4MB;
57 } 57 }
58 58
59#ifdef CONFIG_ROMKERNEL
60 /* Cover kernel XIP flash area */
61 addr = CONFIG_ROM_BASE & ~(4 * 1024 * 1024 - 1);
62 d_tbl[i_d].addr = addr;
63 d_tbl[i_d++].data = SDRAM_DGENERIC | PAGE_SIZE_4MB;
64 i_tbl[i_i].addr = addr;
65 i_tbl[i_i++].data = SDRAM_IGENERIC | PAGE_SIZE_4MB;
66#endif
67
59 /* Cover L1 memory. One 4M area for code and data each is enough. */ 68 /* Cover L1 memory. One 4M area for code and data each is enough. */
60 if (cpu == 0) { 69 if (cpu == 0) {
61 if (L1_DATA_A_LENGTH || L1_DATA_B_LENGTH) { 70 if (L1_DATA_A_LENGTH || L1_DATA_B_LENGTH) {
diff --git a/arch/blackfin/kernel/dma-mapping.c b/arch/blackfin/kernel/dma-mapping.c
index e937f323d82c..04ddcfeb7981 100644
--- a/arch/blackfin/kernel/dma-mapping.c
+++ b/arch/blackfin/kernel/dma-mapping.c
@@ -116,7 +116,7 @@ EXPORT_SYMBOL(dma_free_coherent);
116void __dma_sync(dma_addr_t addr, size_t size, 116void __dma_sync(dma_addr_t addr, size_t size,
117 enum dma_data_direction dir) 117 enum dma_data_direction dir)
118{ 118{
119 _dma_sync(addr, size, dir); 119 __dma_sync_inline(addr, size, dir);
120} 120}
121EXPORT_SYMBOL(__dma_sync); 121EXPORT_SYMBOL(__dma_sync);
122 122
diff --git a/arch/blackfin/kernel/entry.S b/arch/blackfin/kernel/entry.S
index f27dc2292e1b..686478f5f66b 100644
--- a/arch/blackfin/kernel/entry.S
+++ b/arch/blackfin/kernel/entry.S
@@ -44,7 +44,7 @@ ENTRY(_ret_from_fork)
44 sti r4; 44 sti r4;
45#endif /* CONFIG_IPIPE */ 45#endif /* CONFIG_IPIPE */
46 SP += -12; 46 SP += -12;
47 call _schedule_tail; 47 pseudo_long_call _schedule_tail, p5;
48 SP += 12; 48 SP += 12;
49 r0 = [sp + PT_IPEND]; 49 r0 = [sp + PT_IPEND];
50 cc = bittst(r0,1); 50 cc = bittst(r0,1);
@@ -79,7 +79,7 @@ ENTRY(_sys_vfork)
79 r0 += 24; 79 r0 += 24;
80 [--sp] = rets; 80 [--sp] = rets;
81 SP += -12; 81 SP += -12;
82 call _bfin_vfork; 82 pseudo_long_call _bfin_vfork, p2;
83 SP += 12; 83 SP += 12;
84 rets = [sp++]; 84 rets = [sp++];
85 rts; 85 rts;
@@ -90,7 +90,7 @@ ENTRY(_sys_clone)
90 r0 += 24; 90 r0 += 24;
91 [--sp] = rets; 91 [--sp] = rets;
92 SP += -12; 92 SP += -12;
93 call _bfin_clone; 93 pseudo_long_call _bfin_clone, p2;
94 SP += 12; 94 SP += 12;
95 rets = [sp++]; 95 rets = [sp++];
96 rts; 96 rts;
@@ -101,7 +101,7 @@ ENTRY(_sys_rt_sigreturn)
101 r0 += 24; 101 r0 += 24;
102 [--sp] = rets; 102 [--sp] = rets;
103 SP += -12; 103 SP += -12;
104 call _do_rt_sigreturn; 104 pseudo_long_call _do_rt_sigreturn, p2;
105 SP += 12; 105 SP += 12;
106 rets = [sp++]; 106 rets = [sp++];
107 rts; 107 rts;
diff --git a/arch/blackfin/kernel/ftrace-entry.S b/arch/blackfin/kernel/ftrace-entry.S
index 76dd4fbcd17a..d66446b572c0 100644
--- a/arch/blackfin/kernel/ftrace-entry.S
+++ b/arch/blackfin/kernel/ftrace-entry.S
@@ -1,7 +1,7 @@
1/* 1/*
2 * mcount and friends -- ftrace stuff 2 * mcount and friends -- ftrace stuff
3 * 3 *
4 * Copyright (C) 2009 Analog Devices Inc. 4 * Copyright (C) 2009-2010 Analog Devices Inc.
5 * Licensed under the GPL-2 or later. 5 * Licensed under the GPL-2 or later.
6 */ 6 */
7 7
@@ -21,6 +21,15 @@
21 * function will be waiting there. mmmm pie. 21 * function will be waiting there. mmmm pie.
22 */ 22 */
23ENTRY(__mcount) 23ENTRY(__mcount)
24#ifdef CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST
25 /* optional micro optimization: return if stopped */
26 p1.l = _function_trace_stop;
27 p1.h = _function_trace_stop;
28 r3 = [p1];
29 cc = r3 == 0;
30 if ! cc jump _ftrace_stub (bp);
31#endif
32
24 /* save third function arg early so we can do testing below */ 33 /* save third function arg early so we can do testing below */
25 [--sp] = r2; 34 [--sp] = r2;
26 35
@@ -106,9 +115,12 @@ ENTRY(_ftrace_graph_caller)
106 [--sp] = r1; 115 [--sp] = r1;
107 [--sp] = rets; 116 [--sp] = rets;
108 117
109 /* prepare_ftrace_return(unsigned long *parent, unsigned long self_addr) */ 118 /* prepare_ftrace_return(parent, self_addr, frame_pointer) */
110 r0 = sp; 119 r0 = sp; /* unsigned long *parent */
111 r1 = rets; 120 r1 = rets; /* unsigned long self_addr */
121#ifdef CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST
122 r2 = fp; /* unsigned long frame_pointer */
123#endif
112 r0 += 16; /* skip the 4 local regs on stack */ 124 r0 += 16; /* skip the 4 local regs on stack */
113 r1 += -MCOUNT_INSN_SIZE; 125 r1 += -MCOUNT_INSN_SIZE;
114 call _prepare_ftrace_return; 126 call _prepare_ftrace_return;
@@ -127,6 +139,9 @@ ENTRY(_return_to_handler)
127 [--sp] = r1; 139 [--sp] = r1;
128 140
129 /* get original return address */ 141 /* get original return address */
142#ifdef CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST
143 r0 = fp; /* Blackfin is sane, so omit this */
144#endif
130 call _ftrace_return_to_handler; 145 call _ftrace_return_to_handler;
131 rets = r0; 146 rets = r0;
132 147
diff --git a/arch/blackfin/kernel/ftrace.c b/arch/blackfin/kernel/ftrace.c
index f2c85ac6f2da..a61d948ea925 100644
--- a/arch/blackfin/kernel/ftrace.c
+++ b/arch/blackfin/kernel/ftrace.c
@@ -16,7 +16,8 @@
16 * Hook the return address and push it in the stack of return addrs 16 * Hook the return address and push it in the stack of return addrs
17 * in current thread info. 17 * in current thread info.
18 */ 18 */
19void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr) 19void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr,
20 unsigned long frame_pointer)
20{ 21{
21 struct ftrace_graph_ent trace; 22 struct ftrace_graph_ent trace;
22 unsigned long return_hooker = (unsigned long)&return_to_handler; 23 unsigned long return_hooker = (unsigned long)&return_to_handler;
@@ -24,7 +25,8 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
24 if (unlikely(atomic_read(&current->tracing_graph_pause))) 25 if (unlikely(atomic_read(&current->tracing_graph_pause)))
25 return; 26 return;
26 27
27 if (ftrace_push_return_trace(*parent, self_addr, &trace.depth, 0) == -EBUSY) 28 if (ftrace_push_return_trace(*parent, self_addr, &trace.depth,
29 frame_pointer) == -EBUSY)
28 return; 30 return;
29 31
30 trace.func = self_addr; 32 trace.func = self_addr;
diff --git a/arch/blackfin/kernel/init_task.c b/arch/blackfin/kernel/init_task.c
index 118c5b9dedac..d3970e8acd1a 100644
--- a/arch/blackfin/kernel/init_task.c
+++ b/arch/blackfin/kernel/init_task.c
@@ -28,5 +28,5 @@ EXPORT_SYMBOL(init_task);
28 * "init_task" linker map entry. 28 * "init_task" linker map entry.
29 */ 29 */
30union thread_union init_thread_union 30union thread_union init_thread_union
31 __attribute__ ((__section__(".init_task.data"))) = { 31 __init_task_data = {
32INIT_THREAD_INFO(init_task)}; 32INIT_THREAD_INFO(init_task)};
diff --git a/arch/blackfin/kernel/kgdb.c b/arch/blackfin/kernel/kgdb.c
index 34c7c3ed2c9c..2c501ceb1e55 100644
--- a/arch/blackfin/kernel/kgdb.c
+++ b/arch/blackfin/kernel/kgdb.c
@@ -145,7 +145,7 @@ void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs)
145#endif 145#endif
146} 146}
147 147
148struct hw_breakpoint { 148static struct hw_breakpoint {
149 unsigned int occupied:1; 149 unsigned int occupied:1;
150 unsigned int skip:1; 150 unsigned int skip:1;
151 unsigned int enabled:1; 151 unsigned int enabled:1;
@@ -155,7 +155,7 @@ struct hw_breakpoint {
155 unsigned int addr; 155 unsigned int addr;
156} breakinfo[HW_WATCHPOINT_NUM]; 156} breakinfo[HW_WATCHPOINT_NUM];
157 157
158int bfin_set_hw_break(unsigned long addr, int len, enum kgdb_bptype type) 158static int bfin_set_hw_break(unsigned long addr, int len, enum kgdb_bptype type)
159{ 159{
160 int breakno; 160 int breakno;
161 int bfin_type; 161 int bfin_type;
@@ -202,7 +202,7 @@ int bfin_set_hw_break(unsigned long addr, int len, enum kgdb_bptype type)
202 return -ENOSPC; 202 return -ENOSPC;
203} 203}
204 204
205int bfin_remove_hw_break(unsigned long addr, int len, enum kgdb_bptype type) 205static int bfin_remove_hw_break(unsigned long addr, int len, enum kgdb_bptype type)
206{ 206{
207 int breakno; 207 int breakno;
208 int bfin_type; 208 int bfin_type;
@@ -230,7 +230,7 @@ int bfin_remove_hw_break(unsigned long addr, int len, enum kgdb_bptype type)
230 return 0; 230 return 0;
231} 231}
232 232
233void bfin_remove_all_hw_break(void) 233static void bfin_remove_all_hw_break(void)
234{ 234{
235 int breakno; 235 int breakno;
236 236
@@ -242,7 +242,7 @@ void bfin_remove_all_hw_break(void)
242 breakinfo[breakno].type = TYPE_DATA_WATCHPOINT; 242 breakinfo[breakno].type = TYPE_DATA_WATCHPOINT;
243} 243}
244 244
245void bfin_correct_hw_break(void) 245static void bfin_correct_hw_break(void)
246{ 246{
247 int breakno; 247 int breakno;
248 unsigned int wpiactl = 0; 248 unsigned int wpiactl = 0;
diff --git a/arch/blackfin/kernel/nmi.c b/arch/blackfin/kernel/nmi.c
new file mode 100644
index 000000000000..0b5f72f17fd0
--- /dev/null
+++ b/arch/blackfin/kernel/nmi.c
@@ -0,0 +1,299 @@
1/*
2 * Blackfin nmi_watchdog Driver
3 *
4 * Originally based on bfin_wdt.c
5 * Copyright 2010-2010 Analog Devices Inc.
6 * Graff Yang <graf.yang@analog.com>
7 *
8 * Enter bugs at http://blackfin.uclinux.org/
9 *
10 * Licensed under the GPL-2 or later.
11 */
12
13#include <linux/bitops.h>
14#include <linux/hardirq.h>
15#include <linux/sysdev.h>
16#include <linux/pm.h>
17#include <linux/nmi.h>
18#include <linux/smp.h>
19#include <linux/timer.h>
20#include <asm/blackfin.h>
21#include <asm/atomic.h>
22#include <asm/cacheflush.h>
23#include <asm/bfin_watchdog.h>
24
25#define DRV_NAME "nmi-wdt"
26
27#define NMI_WDT_TIMEOUT 5 /* 5 seconds */
28#define NMI_CHECK_TIMEOUT (4 * HZ) /* 4 seconds in jiffies */
29static int nmi_wdt_cpu = 1;
30
31static unsigned int timeout = NMI_WDT_TIMEOUT;
32static int nmi_active;
33
34static unsigned short wdoga_ctl;
35static unsigned int wdoga_cnt;
36static struct corelock_slot saved_corelock;
37static atomic_t nmi_touched[NR_CPUS];
38static struct timer_list ntimer;
39
40enum {
41 COREA_ENTER_NMI = 0,
42 COREA_EXIT_NMI,
43 COREB_EXIT_NMI,
44
45 NMI_EVENT_NR,
46};
47static unsigned long nmi_event __attribute__ ((__section__(".l2.bss")));
48
49/* we are in nmi, non-atomic bit ops is safe */
50static inline void set_nmi_event(int event)
51{
52 __set_bit(event, &nmi_event);
53}
54
55static inline void wait_nmi_event(int event)
56{
57 while (!test_bit(event, &nmi_event))
58 barrier();
59 __clear_bit(event, &nmi_event);
60}
61
62static inline void send_corea_nmi(void)
63{
64 wdoga_ctl = bfin_read_WDOGA_CTL();
65 wdoga_cnt = bfin_read_WDOGA_CNT();
66
67 bfin_write_WDOGA_CTL(WDEN_DISABLE);
68 bfin_write_WDOGA_CNT(0);
69 bfin_write_WDOGA_CTL(WDEN_ENABLE | ICTL_NMI);
70}
71
72static inline void restore_corea_nmi(void)
73{
74 bfin_write_WDOGA_CTL(WDEN_DISABLE);
75 bfin_write_WDOGA_CTL(WDOG_EXPIRED | WDEN_DISABLE | ICTL_NONE);
76
77 bfin_write_WDOGA_CNT(wdoga_cnt);
78 bfin_write_WDOGA_CTL(wdoga_ctl);
79}
80
81static inline void save_corelock(void)
82{
83 saved_corelock = corelock;
84 corelock.lock = 0;
85}
86
87static inline void restore_corelock(void)
88{
89 corelock = saved_corelock;
90}
91
92
93static inline void nmi_wdt_keepalive(void)
94{
95 bfin_write_WDOGB_STAT(0);
96}
97
98static inline void nmi_wdt_stop(void)
99{
100 bfin_write_WDOGB_CTL(WDEN_DISABLE);
101}
102
103/* before calling this function, you must stop the WDT */
104static inline void nmi_wdt_clear(void)
105{
106 /* clear TRO bit, disable event generation */
107 bfin_write_WDOGB_CTL(WDOG_EXPIRED | WDEN_DISABLE | ICTL_NONE);
108}
109
110static inline void nmi_wdt_start(void)
111{
112 bfin_write_WDOGB_CTL(WDEN_ENABLE | ICTL_NMI);
113}
114
115static inline int nmi_wdt_running(void)
116{
117 return ((bfin_read_WDOGB_CTL() & WDEN_MASK) != WDEN_DISABLE);
118}
119
120static inline int nmi_wdt_set_timeout(unsigned long t)
121{
122 u32 cnt, max_t, sclk;
123 int run;
124
125 sclk = get_sclk();
126 max_t = -1 / sclk;
127 cnt = t * sclk;
128 if (t > max_t) {
129 pr_warning("NMI: timeout value is too large\n");
130 return -EINVAL;
131 }
132
133 run = nmi_wdt_running();
134 nmi_wdt_stop();
135 bfin_write_WDOGB_CNT(cnt);
136 if (run)
137 nmi_wdt_start();
138
139 timeout = t;
140
141 return 0;
142}
143
144int check_nmi_wdt_touched(void)
145{
146 unsigned int this_cpu = smp_processor_id();
147 unsigned int cpu;
148
149 cpumask_t mask = cpu_online_map;
150
151 if (!atomic_read(&nmi_touched[this_cpu]))
152 return 0;
153
154 atomic_set(&nmi_touched[this_cpu], 0);
155
156 cpu_clear(this_cpu, mask);
157 for_each_cpu_mask(cpu, mask) {
158 invalidate_dcache_range((unsigned long)(&nmi_touched[cpu]),
159 (unsigned long)(&nmi_touched[cpu]));
160 if (!atomic_read(&nmi_touched[cpu]))
161 return 0;
162 atomic_set(&nmi_touched[cpu], 0);
163 }
164
165 return 1;
166}
167
168static void nmi_wdt_timer(unsigned long data)
169{
170 if (check_nmi_wdt_touched())
171 nmi_wdt_keepalive();
172
173 mod_timer(&ntimer, jiffies + NMI_CHECK_TIMEOUT);
174}
175
176static int __init init_nmi_wdt(void)
177{
178 nmi_wdt_set_timeout(timeout);
179 nmi_wdt_start();
180 nmi_active = true;
181
182 init_timer(&ntimer);
183 ntimer.function = nmi_wdt_timer;
184 ntimer.expires = jiffies + NMI_CHECK_TIMEOUT;
185 add_timer(&ntimer);
186
187 pr_info("nmi_wdt: initialized: timeout=%d sec\n", timeout);
188 return 0;
189}
190device_initcall(init_nmi_wdt);
191
192void touch_nmi_watchdog(void)
193{
194 atomic_set(&nmi_touched[smp_processor_id()], 1);
195}
196
197/* Suspend/resume support */
198#ifdef CONFIG_PM
199static int nmi_wdt_suspend(struct sys_device *dev, pm_message_t state)
200{
201 nmi_wdt_stop();
202 return 0;
203}
204
205static int nmi_wdt_resume(struct sys_device *dev)
206{
207 if (nmi_active)
208 nmi_wdt_start();
209 return 0;
210}
211
212static struct sysdev_class nmi_sysclass = {
213 .name = DRV_NAME,
214 .resume = nmi_wdt_resume,
215 .suspend = nmi_wdt_suspend,
216};
217
218static struct sys_device device_nmi_wdt = {
219 .id = 0,
220 .cls = &nmi_sysclass,
221};
222
223static int __init init_nmi_wdt_sysfs(void)
224{
225 int error;
226
227 if (!nmi_active)
228 return 0;
229
230 error = sysdev_class_register(&nmi_sysclass);
231 if (!error)
232 error = sysdev_register(&device_nmi_wdt);
233 return error;
234}
235late_initcall(init_nmi_wdt_sysfs);
236
237#endif /* CONFIG_PM */
238
239
240asmlinkage notrace void do_nmi(struct pt_regs *fp)
241{
242 unsigned int cpu = smp_processor_id();
243 nmi_enter();
244
245 cpu_pda[cpu].__nmi_count += 1;
246
247 if (cpu == nmi_wdt_cpu) {
248 /* CoreB goes here first */
249
250 /* reload the WDOG_STAT */
251 nmi_wdt_keepalive();
252
253 /* clear nmi interrupt for CoreB */
254 nmi_wdt_stop();
255 nmi_wdt_clear();
256
257 /* trigger NMI interrupt of CoreA */
258 send_corea_nmi();
259
260 /* waiting CoreB to enter NMI */
261 wait_nmi_event(COREA_ENTER_NMI);
262
263 /* recover WDOGA's settings */
264 restore_corea_nmi();
265
266 save_corelock();
267
268 /* corelock is save/cleared, CoreA is dummping messages */
269
270 wait_nmi_event(COREA_EXIT_NMI);
271 } else {
272 /* OK, CoreA entered NMI */
273 set_nmi_event(COREA_ENTER_NMI);
274 }
275
276 pr_emerg("\nNMI Watchdog detected LOCKUP, dump for CPU %d\n", cpu);
277 dump_bfin_process(fp);
278 dump_bfin_mem(fp);
279 show_regs(fp);
280 dump_bfin_trace_buffer();
281 show_stack(current, (unsigned long *)fp);
282
283 if (cpu == nmi_wdt_cpu) {
284 pr_emerg("This fault is not recoverable, sorry!\n");
285
286 /* CoreA dump finished, restore the corelock */
287 restore_corelock();
288
289 set_nmi_event(COREB_EXIT_NMI);
290 } else {
291 /* CoreB dump finished, notice the CoreA we are done */
292 set_nmi_event(COREA_EXIT_NMI);
293
294 /* synchronize with CoreA */
295 wait_nmi_event(COREB_EXIT_NMI);
296 }
297
298 nmi_exit();
299}
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c
index b56b0e485e0b..29705cec91de 100644
--- a/arch/blackfin/kernel/process.c
+++ b/arch/blackfin/kernel/process.c
@@ -98,13 +98,6 @@ void cpu_idle(void)
98 } 98 }
99} 99}
100 100
101/* Fill in the fpu structure for a core dump. */
102
103int dump_fpu(struct pt_regs *regs, elf_fpregset_t * fpregs)
104{
105 return 1;
106}
107
108/* 101/*
109 * This gets run with P1 containing the 102 * This gets run with P1 containing the
110 * function to call, and R1 containing 103 * function to call, and R1 containing
diff --git a/arch/blackfin/kernel/ptrace.c b/arch/blackfin/kernel/ptrace.c
index 65567dc4b9f5..43eb969405d1 100644
--- a/arch/blackfin/kernel/ptrace.c
+++ b/arch/blackfin/kernel/ptrace.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * linux/kernel/ptrace.c is by Ross Biro 1/23/92, edited by Linus Torvalds 2 * linux/kernel/ptrace.c is by Ross Biro 1/23/92, edited by Linus Torvalds
3 * these modifications are Copyright 2004-2009 Analog Devices Inc. 3 * these modifications are Copyright 2004-2010 Analog Devices Inc.
4 * 4 *
5 * Licensed under the GPL-2 5 * Licensed under the GPL-2
6 */ 6 */
@@ -9,10 +9,13 @@
9#include <linux/sched.h> 9#include <linux/sched.h>
10#include <linux/mm.h> 10#include <linux/mm.h>
11#include <linux/smp.h> 11#include <linux/smp.h>
12#include <linux/elf.h>
12#include <linux/errno.h> 13#include <linux/errno.h>
13#include <linux/ptrace.h> 14#include <linux/ptrace.h>
14#include <linux/user.h> 15#include <linux/user.h>
16#include <linux/regset.h>
15#include <linux/signal.h> 17#include <linux/signal.h>
18#include <linux/tracehook.h>
16#include <linux/uaccess.h> 19#include <linux/uaccess.h>
17 20
18#include <asm/page.h> 21#include <asm/page.h>
@@ -25,90 +28,57 @@
25#include <asm/cacheflush.h> 28#include <asm/cacheflush.h>
26#include <asm/mem_map.h> 29#include <asm/mem_map.h>
27 30
28#define TEXT_OFFSET 0
29/* 31/*
30 * does not yet catch signals sent when the child dies. 32 * does not yet catch signals sent when the child dies.
31 * in exit.c or in signal.c. 33 * in exit.c or in signal.c.
32 */ 34 */
33 35
34/* determines which bits in the SYSCFG reg the user has access to. */
35/* 1 = access 0 = no access */
36#define SYSCFG_MASK 0x0007 /* SYSCFG reg */
37/* sets the trace bits. */
38#define TRACE_BITS 0x0001
39
40/* Find the stack offset for a register, relative to thread.esp0. */
41#define PT_REG(reg) ((long)&((struct pt_regs *)0)->reg)
42
43/*
44 * Get the address of the live pt_regs for the specified task.
45 * These are saved onto the top kernel stack when the process
46 * is not running.
47 *
48 * Note: if a user thread is execve'd from kernel space, the
49 * kernel stack will not be empty on entry to the kernel, so
50 * ptracing these tasks will fail.
51 */
52static inline struct pt_regs *get_user_regs(struct task_struct *task)
53{
54 return (struct pt_regs *)
55 ((unsigned long)task_stack_page(task) +
56 (THREAD_SIZE - sizeof(struct pt_regs)));
57}
58
59/*
60 * Get all user integer registers.
61 */
62static inline int ptrace_getregs(struct task_struct *tsk, void __user *uregs)
63{
64 struct pt_regs regs;
65 memcpy(&regs, get_user_regs(tsk), sizeof(regs));
66 regs.usp = tsk->thread.usp;
67 return copy_to_user(uregs, &regs, sizeof(struct pt_regs)) ? -EFAULT : 0;
68}
69
70/* Mapping from PT_xxx to the stack offset at which the register is
71 * saved. Notice that usp has no stack-slot and needs to be treated
72 * specially (see get_reg/put_reg below).
73 */
74
75/* 36/*
76 * Get contents of register REGNO in task TASK. 37 * Get contents of register REGNO in task TASK.
77 */ 38 */
78static inline long get_reg(struct task_struct *task, int regno) 39static inline long
40get_reg(struct task_struct *task, long regno, unsigned long __user *datap)
79{ 41{
80 unsigned char *reg_ptr; 42 long tmp;
43 struct pt_regs *regs = task_pt_regs(task);
81 44
82 struct pt_regs *regs = 45 if (regno & 3 || regno > PT_LAST_PSEUDO || regno < 0)
83 (struct pt_regs *)((unsigned long)task_stack_page(task) + 46 return -EIO;
84 (THREAD_SIZE - sizeof(struct pt_regs)));
85 reg_ptr = (char *)regs;
86 47
87 switch (regno) { 48 switch (regno) {
49 case PT_TEXT_ADDR:
50 tmp = task->mm->start_code;
51 break;
52 case PT_TEXT_END_ADDR:
53 tmp = task->mm->end_code;
54 break;
55 case PT_DATA_ADDR:
56 tmp = task->mm->start_data;
57 break;
88 case PT_USP: 58 case PT_USP:
89 return task->thread.usp; 59 tmp = task->thread.usp;
60 break;
90 default: 61 default:
91 if (regno <= 216) 62 if (regno < sizeof(*regs)) {
92 return *(long *)(reg_ptr + regno); 63 void *reg_ptr = regs;
64 tmp = *(long *)(reg_ptr + regno);
65 } else
66 return -EIO;
93 } 67 }
94 /* slight mystery ... never seems to come here but kernel misbehaves without this code! */
95 68
96 printk(KERN_WARNING "Request to get for unknown register %d\n", regno); 69 return put_user(tmp, datap);
97 return 0;
98} 70}
99 71
100/* 72/*
101 * Write contents of register REGNO in task TASK. 73 * Write contents of register REGNO in task TASK.
102 */ 74 */
103static inline int 75static inline int
104put_reg(struct task_struct *task, int regno, unsigned long data) 76put_reg(struct task_struct *task, long regno, unsigned long data)
105{ 77{
106 char *reg_ptr; 78 struct pt_regs *regs = task_pt_regs(task);
107 79
108 struct pt_regs *regs = 80 if (regno & 3 || regno > PT_LAST_PSEUDO || regno < 0)
109 (struct pt_regs *)((unsigned long)task_stack_page(task) + 81 return -EIO;
110 (THREAD_SIZE - sizeof(struct pt_regs)));
111 reg_ptr = (char *)regs;
112 82
113 switch (regno) { 83 switch (regno) {
114 case PT_PC: 84 case PT_PC:
@@ -125,10 +95,18 @@ put_reg(struct task_struct *task, int regno, unsigned long data)
125 regs->usp = data; 95 regs->usp = data;
126 task->thread.usp = data; 96 task->thread.usp = data;
127 break; 97 break;
98 case PT_SYSCFG: /* don't let userspace screw with this */
99 if ((data & ~1) != 0x6)
100 pr_warning("ptrace: ignore syscfg write of %#lx\n", data);
101 break; /* regs->syscfg = data; break; */
128 default: 102 default:
129 if (regno <= 216) 103 if (regno < sizeof(*regs)) {
130 *(long *)(reg_ptr + regno) = data; 104 void *reg_offset = regs;
105 *(long *)(reg_offset + regno) = data;
106 }
107 /* Ignore writes to pseudo registers */
131 } 108 }
109
132 return 0; 110 return 0;
133} 111}
134 112
@@ -160,24 +138,98 @@ static inline int is_user_addr_valid(struct task_struct *child,
160 return -EIO; 138 return -EIO;
161} 139}
162 140
163void ptrace_enable(struct task_struct *child) 141/*
142 * retrieve the contents of Blackfin userspace general registers
143 */
144static int genregs_get(struct task_struct *target,
145 const struct user_regset *regset,
146 unsigned int pos, unsigned int count,
147 void *kbuf, void __user *ubuf)
164{ 148{
165 unsigned long tmp; 149 struct pt_regs *regs = task_pt_regs(target);
166 tmp = get_reg(child, PT_SYSCFG) | (TRACE_BITS); 150 int ret;
167 put_reg(child, PT_SYSCFG, tmp); 151
152 /* This sucks ... */
153 regs->usp = target->thread.usp;
154
155 ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
156 regs, 0, sizeof(*regs));
157 if (ret < 0)
158 return ret;
159
160 return user_regset_copyout_zero(&pos, &count, &kbuf, &ubuf,
161 sizeof(*regs), -1);
168} 162}
169 163
170/* 164/*
171 * Called by kernel/ptrace.c when detaching.. 165 * update the contents of the Blackfin userspace general registers
172 * 166 */
173 * Make sure the single step bit is not set. 167static int genregs_set(struct task_struct *target,
168 const struct user_regset *regset,
169 unsigned int pos, unsigned int count,
170 const void *kbuf, const void __user *ubuf)
171{
172 struct pt_regs *regs = task_pt_regs(target);
173 int ret;
174
175 /* Don't let people set SYSCFG (it's at the end of pt_regs) */
176 ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
177 regs, 0, PT_SYSCFG);
178 if (ret < 0)
179 return ret;
180
181 /* This sucks ... */
182 target->thread.usp = regs->usp;
183 /* regs->retx = regs->pc; */
184
185 return user_regset_copyin_ignore(&pos, &count, &kbuf, &ubuf,
186 PT_SYSCFG, -1);
187}
188
189/*
190 * Define the register sets available on the Blackfin under Linux
174 */ 191 */
175void ptrace_disable(struct task_struct *child) 192enum bfin_regset {
193 REGSET_GENERAL,
194};
195
196static const struct user_regset bfin_regsets[] = {
197 [REGSET_GENERAL] = {
198 .core_note_type = NT_PRSTATUS,
199 .n = sizeof(struct pt_regs) / sizeof(long),
200 .size = sizeof(long),
201 .align = sizeof(long),
202 .get = genregs_get,
203 .set = genregs_set,
204 },
205};
206
207static const struct user_regset_view user_bfin_native_view = {
208 .name = "Blackfin",
209 .e_machine = EM_BLACKFIN,
210 .regsets = bfin_regsets,
211 .n = ARRAY_SIZE(bfin_regsets),
212};
213
214const struct user_regset_view *task_user_regset_view(struct task_struct *task)
215{
216 return &user_bfin_native_view;
217}
218
219void user_enable_single_step(struct task_struct *child)
220{
221 struct pt_regs *regs = task_pt_regs(child);
222 regs->syscfg |= SYSCFG_SSSTEP;
223
224 set_tsk_thread_flag(child, TIF_SINGLESTEP);
225}
226
227void user_disable_single_step(struct task_struct *child)
176{ 228{
177 unsigned long tmp; 229 struct pt_regs *regs = task_pt_regs(child);
178 /* make sure the single step bit is not set. */ 230 regs->syscfg &= ~SYSCFG_SSSTEP;
179 tmp = get_reg(child, PT_SYSCFG) & ~TRACE_BITS; 231
180 put_reg(child, PT_SYSCFG, tmp); 232 clear_tsk_thread_flag(child, TIF_SINGLESTEP);
181} 233}
182 234
183long arch_ptrace(struct task_struct *child, long request, long addr, long data) 235long arch_ptrace(struct task_struct *child, long request, long addr, long data)
@@ -240,40 +292,6 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
240 break; 292 break;
241 } 293 }
242 294
243 /* read the word at location addr in the USER area. */
244 case PTRACE_PEEKUSR:
245 {
246 unsigned long tmp;
247 ret = -EIO;
248 tmp = 0;
249 if ((addr & 3) || (addr > (sizeof(struct pt_regs) + 16))) {
250 printk(KERN_WARNING "ptrace error : PEEKUSR : temporarily returning "
251 "0 - %x sizeof(pt_regs) is %lx\n",
252 (int)addr, sizeof(struct pt_regs));
253 break;
254 }
255 if (addr == sizeof(struct pt_regs)) {
256 /* PT_TEXT_ADDR */
257 tmp = child->mm->start_code + TEXT_OFFSET;
258 } else if (addr == (sizeof(struct pt_regs) + 4)) {
259 /* PT_TEXT_END_ADDR */
260 tmp = child->mm->end_code;
261 } else if (addr == (sizeof(struct pt_regs) + 8)) {
262 /* PT_DATA_ADDR */
263 tmp = child->mm->start_data;
264#ifdef CONFIG_BINFMT_ELF_FDPIC
265 } else if (addr == (sizeof(struct pt_regs) + 12)) {
266 goto case_PTRACE_GETFDPIC_EXEC;
267 } else if (addr == (sizeof(struct pt_regs) + 16)) {
268 goto case_PTRACE_GETFDPIC_INTERP;
269#endif
270 } else {
271 tmp = get_reg(child, addr);
272 }
273 ret = put_user(tmp, datap);
274 break;
275 }
276
277#ifdef CONFIG_BINFMT_ELF_FDPIC 295#ifdef CONFIG_BINFMT_ELF_FDPIC
278 case PTRACE_GETFDPIC: { 296 case PTRACE_GETFDPIC: {
279 unsigned long tmp = 0; 297 unsigned long tmp = 0;
@@ -336,78 +354,36 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
336 break; 354 break;
337 } 355 }
338 356
339 case PTRACE_POKEUSR: /* write the word at location addr in the USER area */ 357 case PTRACE_PEEKUSR:
340 ret = -EIO; 358 switch (addr) {
341 if ((addr & 3) || (addr > (sizeof(struct pt_regs) + 16))) { 359#ifdef CONFIG_BINFMT_ELF_FDPIC /* backwards compat */
342 printk(KERN_WARNING "ptrace error : POKEUSR: temporarily returning 0\n"); 360 case PT_FDPIC_EXEC: goto case_PTRACE_GETFDPIC_EXEC;
343 break; 361 case PT_FDPIC_INTERP: goto case_PTRACE_GETFDPIC_INTERP;
344 } 362#endif
345 363 default:
346 if (addr >= (sizeof(struct pt_regs))) { 364 ret = get_reg(child, addr, datap);
347 ret = 0;
348 break;
349 }
350 if (addr == PT_SYSCFG) {
351 data &= SYSCFG_MASK;
352 data |= get_reg(child, PT_SYSCFG);
353 } 365 }
354 ret = put_reg(child, addr, data); 366 pr_debug("ptrace: PEEKUSR reg %li with %#lx = %i\n", addr, data, ret);
355 break; 367 break;
356 368
357 case PTRACE_SYSCALL: /* continue and stop at next (return from) syscall */ 369 case PTRACE_POKEUSR:
358 case PTRACE_CONT: /* restart after signal. */ 370 ret = put_reg(child, addr, data);
359 pr_debug("ptrace: syscall/cont\n"); 371 pr_debug("ptrace: POKEUSR reg %li with %li = %i\n", addr, data, ret);
360
361 ret = -EIO;
362 if (!valid_signal(data))
363 break;
364 if (request == PTRACE_SYSCALL)
365 set_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
366 else
367 clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
368 child->exit_code = data;
369 ptrace_disable(child);
370 pr_debug("ptrace: before wake_up_process\n");
371 wake_up_process(child);
372 ret = 0;
373 break;
374
375 /*
376 * make the child exit. Best I can do is send it a sigkill.
377 * perhaps it should be put in the status that it wants to
378 * exit.
379 */
380 case PTRACE_KILL:
381 ret = 0;
382 if (child->exit_state == EXIT_ZOMBIE) /* already dead */
383 break;
384 child->exit_code = SIGKILL;
385 ptrace_disable(child);
386 wake_up_process(child);
387 break;
388
389 case PTRACE_SINGLESTEP: /* set the trap flag. */
390 pr_debug("ptrace: single step\n");
391 ret = -EIO;
392 if (!valid_signal(data))
393 break;
394 clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
395 ptrace_enable(child);
396 child->exit_code = data;
397 wake_up_process(child);
398 ret = 0;
399 break; 372 break;
400 373
401 case PTRACE_GETREGS: 374 case PTRACE_GETREGS:
402 /* Get all gp regs from the child. */ 375 pr_debug("ptrace: PTRACE_GETREGS\n");
403 ret = ptrace_getregs(child, datap); 376 return copy_regset_to_user(child, &user_bfin_native_view,
404 break; 377 REGSET_GENERAL,
378 0, sizeof(struct pt_regs),
379 (void __user *)data);
405 380
406 case PTRACE_SETREGS: 381 case PTRACE_SETREGS:
407 printk(KERN_WARNING "ptrace: SETREGS: **** NOT IMPLEMENTED ***\n"); 382 pr_debug("ptrace: PTRACE_SETREGS\n");
408 /* Set all gp regs in the child. */ 383 return copy_regset_from_user(child, &user_bfin_native_view,
409 ret = 0; 384 REGSET_GENERAL,
410 break; 385 0, sizeof(struct pt_regs),
386 (const void __user *)data);
411 387
412 default: 388 default:
413 ret = ptrace_request(child, request, addr, data); 389 ret = ptrace_request(child, request, addr, data);
@@ -417,27 +393,21 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
417 return ret; 393 return ret;
418} 394}
419 395
420asmlinkage void syscall_trace(void) 396asmlinkage int syscall_trace_enter(struct pt_regs *regs)
421{ 397{
422 if (!test_thread_flag(TIF_SYSCALL_TRACE)) 398 int ret = 0;
423 return; 399
424 400 if (test_thread_flag(TIF_SYSCALL_TRACE))
425 if (!(current->ptrace & PT_PTRACED)) 401 ret = tracehook_report_syscall_entry(regs);
426 return; 402
427 403 return ret;
428 /* the 0x80 provides a way for the tracing parent to distinguish 404}
429 * between a syscall stop and SIGTRAP delivery 405
430 */ 406asmlinkage void syscall_trace_leave(struct pt_regs *regs)
431 ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD) 407{
432 ? 0x80 : 0)); 408 int step;
433 409
434 /* 410 step = test_thread_flag(TIF_SINGLESTEP);
435 * this isn't the same as continuing with a signal, but it will do 411 if (step || test_thread_flag(TIF_SYSCALL_TRACE))
436 * for normal use. strace only continues with a signal if the 412 tracehook_report_syscall_exit(regs, step);
437 * stopping signal is not SIGTRAP. -brl
438 */
439 if (current->exit_code) {
440 send_sig(current->exit_code, current, 1);
441 current->exit_code = 0;
442 }
443} 413}
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c
index 95448ae9c43a..8e2efceb364b 100644
--- a/arch/blackfin/kernel/setup.c
+++ b/arch/blackfin/kernel/setup.c
@@ -220,6 +220,16 @@ void __init bfin_relocate_l1_mem(void)
220 memcpy(_stext_l2, _l2_lma, l2_len); 220 memcpy(_stext_l2, _l2_lma, l2_len);
221} 221}
222 222
223#ifdef CONFIG_ROMKERNEL
224void __init bfin_relocate_xip_data(void)
225{
226 early_shadow_stamp();
227
228 memcpy(_sdata, _data_lma, (unsigned long)_data_len - THREAD_SIZE + sizeof(struct thread_info));
229 memcpy(_sinitdata, _init_data_lma, (unsigned long)_init_data_len);
230}
231#endif
232
223/* add_memory_region to memmap */ 233/* add_memory_region to memmap */
224static void __init add_memory_region(unsigned long long start, 234static void __init add_memory_region(unsigned long long start,
225 unsigned long long size, int type) 235 unsigned long long size, int type)
@@ -504,7 +514,7 @@ static __init void memory_setup(void)
504#endif 514#endif
505 unsigned long max_mem; 515 unsigned long max_mem;
506 516
507 _rambase = (unsigned long)_stext; 517 _rambase = CONFIG_BOOT_LOAD;
508 _ramstart = (unsigned long)_end; 518 _ramstart = (unsigned long)_end;
509 519
510 if (DMA_UNCACHED_REGION > (_ramend - _ramstart)) { 520 if (DMA_UNCACHED_REGION > (_ramend - _ramstart)) {
@@ -597,7 +607,12 @@ static __init void memory_setup(void)
597 } 607 }
598 608
599#ifdef CONFIG_MPU 609#ifdef CONFIG_MPU
610#if defined(CONFIG_ROMFS_ON_MTD) && defined(CONFIG_MTD_ROM)
611 page_mask_nelts = (((_ramend + ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE -
612 ASYNC_BANK0_BASE) >> PAGE_SHIFT) + 31) / 32;
613#else
600 page_mask_nelts = ((_ramend >> PAGE_SHIFT) + 31) / 32; 614 page_mask_nelts = ((_ramend >> PAGE_SHIFT) + 31) / 32;
615#endif
601 page_mask_order = get_order(3 * page_mask_nelts * sizeof(long)); 616 page_mask_order = get_order(3 * page_mask_nelts * sizeof(long));
602#endif 617#endif
603 618
@@ -630,7 +645,7 @@ static __init void memory_setup(void)
630 __bss_start, __bss_stop, 645 __bss_start, __bss_stop,
631 _sdata, _edata, 646 _sdata, _edata,
632 (void *)&init_thread_union, 647 (void *)&init_thread_union,
633 (void *)((int)(&init_thread_union) + 0x2000), 648 (void *)((int)(&init_thread_union) + THREAD_SIZE),
634 __init_begin, __init_end, 649 __init_begin, __init_end,
635 (void *)_ramstart, (void *)memory_end 650 (void *)_ramstart, (void *)memory_end
636#ifdef CONFIG_MTD_UCLINUX 651#ifdef CONFIG_MTD_UCLINUX
@@ -792,10 +807,17 @@ static inline int __init get_mem_size(void)
792 BUG(); 807 BUG();
793} 808}
794 809
810__attribute__((weak))
811void __init native_machine_early_platform_add_devices(void)
812{
813}
814
795void __init setup_arch(char **cmdline_p) 815void __init setup_arch(char **cmdline_p)
796{ 816{
797 unsigned long sclk, cclk; 817 unsigned long sclk, cclk;
798 818
819 native_machine_early_platform_add_devices();
820
799 enable_shadow_console(); 821 enable_shadow_console();
800 822
801 /* Check to make sure we are running on the right processor */ 823 /* Check to make sure we are running on the right processor */
@@ -1217,10 +1239,10 @@ static int show_cpuinfo(struct seq_file *m, void *v)
1217 dsup_banks, BFIN_DSUBBANKS, BFIN_DWAYS, 1239 dsup_banks, BFIN_DSUBBANKS, BFIN_DWAYS,
1218 BFIN_DLINES); 1240 BFIN_DLINES);
1219#ifdef __ARCH_SYNC_CORE_DCACHE 1241#ifdef __ARCH_SYNC_CORE_DCACHE
1220 seq_printf(m, "SMP Dcache Flushes\t: %lu\n\n", cpudata->dcache_invld_count); 1242 seq_printf(m, "SMP Dcache Flushes\t: %lu\n\n", dcache_invld_count[cpu_num]);
1221#endif 1243#endif
1222#ifdef __ARCH_SYNC_CORE_ICACHE 1244#ifdef __ARCH_SYNC_CORE_ICACHE
1223 seq_printf(m, "SMP Icache Flushes\t: %lu\n\n", cpudata->icache_invld_count); 1245 seq_printf(m, "SMP Icache Flushes\t: %lu\n\n", icache_invld_count[cpu_num]);
1224#endif 1246#endif
1225 1247
1226 if (cpu_num != num_possible_cpus() - 1) 1248 if (cpu_num != num_possible_cpus() - 1)
@@ -1249,8 +1271,8 @@ static int show_cpuinfo(struct seq_file *m, void *v)
1249 seq_printf(m, "board memory\t: %ld kB (0x%p -> 0x%p)\n", 1271 seq_printf(m, "board memory\t: %ld kB (0x%p -> 0x%p)\n",
1250 physical_mem_end >> 10, (void *)0, (void *)physical_mem_end); 1272 physical_mem_end >> 10, (void *)0, (void *)physical_mem_end);
1251 seq_printf(m, "kernel memory\t: %d kB (0x%p -> 0x%p)\n", 1273 seq_printf(m, "kernel memory\t: %d kB (0x%p -> 0x%p)\n",
1252 ((int)memory_end - (int)_stext) >> 10, 1274 ((int)memory_end - (int)_rambase) >> 10,
1253 _stext, 1275 (void *)_rambase,
1254 (void *)memory_end); 1276 (void *)memory_end);
1255 seq_printf(m, "\n"); 1277 seq_printf(m, "\n");
1256 1278
diff --git a/arch/blackfin/kernel/signal.c b/arch/blackfin/kernel/signal.c
index e0fd63e9e38a..d536f35d1f43 100644
--- a/arch/blackfin/kernel/signal.c
+++ b/arch/blackfin/kernel/signal.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright 2004-2009 Analog Devices Inc. 2 * Copyright 2004-2010 Analog Devices Inc.
3 * 3 *
4 * Licensed under the GPL-2 or later 4 * Licensed under the GPL-2 or later
5 */ 5 */
@@ -17,6 +17,7 @@
17#include <asm/cacheflush.h> 17#include <asm/cacheflush.h>
18#include <asm/ucontext.h> 18#include <asm/ucontext.h>
19#include <asm/fixed_code.h> 19#include <asm/fixed_code.h>
20#include <asm/syscall.h>
20 21
21#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) 22#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
22 23
@@ -50,6 +51,9 @@ rt_restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc, int *p
50 unsigned long usp = 0; 51 unsigned long usp = 0;
51 int err = 0; 52 int err = 0;
52 53
54 /* Always make any pending restarted system calls return -EINTR */
55 current_thread_info()->restart_block.fn = do_no_restart_syscall;
56
53#define RESTORE(x) err |= __get_user(regs->x, &sc->sc_##x) 57#define RESTORE(x) err |= __get_user(regs->x, &sc->sc_##x)
54 58
55 /* restore passed registers */ 59 /* restore passed registers */
@@ -206,16 +210,6 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t * info,
206 regs->r1 = (unsigned long)(&frame->info); 210 regs->r1 = (unsigned long)(&frame->info);
207 regs->r2 = (unsigned long)(&frame->uc); 211 regs->r2 = (unsigned long)(&frame->uc);
208 212
209 /*
210 * Clear the trace flag when entering the signal handler, but
211 * notify any tracer that was single-stepping it. The tracer
212 * may want to single-step inside the handler too.
213 */
214 if (regs->syscfg & TRACE_BITS) {
215 regs->syscfg &= ~TRACE_BITS;
216 ptrace_notify(SIGTRAP);
217 }
218
219 return 0; 213 return 0;
220 214
221 give_sigsegv: 215 give_sigsegv:
@@ -247,6 +241,11 @@ handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler)
247 regs->r0 = regs->orig_r0; 241 regs->r0 = regs->orig_r0;
248 regs->pc -= 2; 242 regs->pc -= 2;
249 break; 243 break;
244
245 case -ERESTART_RESTARTBLOCK:
246 regs->p0 = __NR_restart_syscall;
247 regs->pc -= 2;
248 break;
250 } 249 }
251} 250}
252 251
@@ -315,6 +314,9 @@ asmlinkage void do_signal(struct pt_regs *regs)
315 * clear the TIF_RESTORE_SIGMASK flag */ 314 * clear the TIF_RESTORE_SIGMASK flag */
316 if (test_thread_flag(TIF_RESTORE_SIGMASK)) 315 if (test_thread_flag(TIF_RESTORE_SIGMASK))
317 clear_thread_flag(TIF_RESTORE_SIGMASK); 316 clear_thread_flag(TIF_RESTORE_SIGMASK);
317
318 tracehook_signal_handler(signr, &info, &ka, regs,
319 test_thread_flag(TIF_SINGLESTEP));
318 } 320 }
319 321
320 return; 322 return;
diff --git a/arch/blackfin/kernel/time-ts.c b/arch/blackfin/kernel/time-ts.c
index 17c38c5b5b22..cb7a01d4f009 100644
--- a/arch/blackfin/kernel/time-ts.c
+++ b/arch/blackfin/kernel/time-ts.c
@@ -21,6 +21,7 @@
21#include <asm/blackfin.h> 21#include <asm/blackfin.h>
22#include <asm/time.h> 22#include <asm/time.h>
23#include <asm/gptimers.h> 23#include <asm/gptimers.h>
24#include <asm/nmi.h>
24 25
25/* Accelerators for sched_clock() 26/* Accelerators for sched_clock()
26 * convert from cycles(64bits) => nanoseconds (64bits) 27 * convert from cycles(64bits) => nanoseconds (64bits)
@@ -50,7 +51,11 @@
50 51
51static notrace cycle_t bfin_read_cycles(struct clocksource *cs) 52static notrace cycle_t bfin_read_cycles(struct clocksource *cs)
52{ 53{
54#ifdef CONFIG_CPU_FREQ
53 return __bfin_cycles_off + (get_cycles() << __bfin_cycles_mod); 55 return __bfin_cycles_off + (get_cycles() << __bfin_cycles_mod);
56#else
57 return get_cycles();
58#endif
54} 59}
55 60
56static struct clocksource bfin_cs_cycles = { 61static struct clocksource bfin_cs_cycles = {
@@ -132,7 +137,6 @@ static int __init bfin_cs_gptimer0_init(void)
132# define bfin_cs_gptimer0_init() 137# define bfin_cs_gptimer0_init()
133#endif 138#endif
134 139
135
136#if defined(CONFIG_GPTMR0_CLOCKSOURCE) || defined(CONFIG_CYCLES_CLOCKSOURCE) 140#if defined(CONFIG_GPTMR0_CLOCKSOURCE) || defined(CONFIG_CYCLES_CLOCKSOURCE)
137/* prefer to use cycles since it has higher rating */ 141/* prefer to use cycles since it has higher rating */
138notrace unsigned long long sched_clock(void) 142notrace unsigned long long sched_clock(void)
@@ -145,47 +149,8 @@ notrace unsigned long long sched_clock(void)
145} 149}
146#endif 150#endif
147 151
148#ifdef CONFIG_CORE_TIMER_IRQ_L1
149__attribute__((l1_text))
150#endif
151irqreturn_t timer_interrupt(int irq, void *dev_id);
152
153static int bfin_timer_set_next_event(unsigned long, \
154 struct clock_event_device *);
155
156static void bfin_timer_set_mode(enum clock_event_mode, \
157 struct clock_event_device *);
158
159static struct clock_event_device clockevent_bfin = {
160#if defined(CONFIG_TICKSOURCE_GPTMR0)
161 .name = "bfin_gptimer0",
162 .rating = 300,
163 .irq = IRQ_TIMER0,
164#else
165 .name = "bfin_core_timer",
166 .rating = 350,
167 .irq = IRQ_CORETMR,
168#endif
169 .shift = 32,
170 .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
171 .set_next_event = bfin_timer_set_next_event,
172 .set_mode = bfin_timer_set_mode,
173};
174
175static struct irqaction bfin_timer_irq = {
176#if defined(CONFIG_TICKSOURCE_GPTMR0)
177 .name = "Blackfin GPTimer0",
178#else
179 .name = "Blackfin CoreTimer",
180#endif
181 .flags = IRQF_DISABLED | IRQF_TIMER | \
182 IRQF_IRQPOLL | IRQF_PERCPU,
183 .handler = timer_interrupt,
184 .dev_id = &clockevent_bfin,
185};
186
187#if defined(CONFIG_TICKSOURCE_GPTMR0) 152#if defined(CONFIG_TICKSOURCE_GPTMR0)
188static int bfin_timer_set_next_event(unsigned long cycles, 153static int bfin_gptmr0_set_next_event(unsigned long cycles,
189 struct clock_event_device *evt) 154 struct clock_event_device *evt)
190{ 155{
191 disable_gptimers(TIMER0bit); 156 disable_gptimers(TIMER0bit);
@@ -196,7 +161,7 @@ static int bfin_timer_set_next_event(unsigned long cycles,
196 return 0; 161 return 0;
197} 162}
198 163
199static void bfin_timer_set_mode(enum clock_event_mode mode, 164static void bfin_gptmr0_set_mode(enum clock_event_mode mode,
200 struct clock_event_device *evt) 165 struct clock_event_device *evt)
201{ 166{
202 switch (mode) { 167 switch (mode) {
@@ -224,25 +189,65 @@ static void bfin_timer_set_mode(enum clock_event_mode mode,
224 } 189 }
225} 190}
226 191
227static void bfin_timer_ack(void) 192static void bfin_gptmr0_ack(void)
228{ 193{
229 set_gptimer_status(TIMER_GROUP1, TIMER_STATUS_TIMIL0); 194 set_gptimer_status(TIMER_GROUP1, TIMER_STATUS_TIMIL0);
230} 195}
231 196
232static void __init bfin_timer_init(void) 197static void __init bfin_gptmr0_init(void)
233{ 198{
234 disable_gptimers(TIMER0bit); 199 disable_gptimers(TIMER0bit);
235} 200}
236 201
237static unsigned long __init bfin_clockevent_check(void) 202#ifdef CONFIG_CORE_TIMER_IRQ_L1
203__attribute__((l1_text))
204#endif
205irqreturn_t bfin_gptmr0_interrupt(int irq, void *dev_id)
238{ 206{
239 setup_irq(IRQ_TIMER0, &bfin_timer_irq); 207 struct clock_event_device *evt = dev_id;
240 return get_sclk(); 208 smp_mb();
209 evt->event_handler(evt);
210 bfin_gptmr0_ack();
211 return IRQ_HANDLED;
241} 212}
242 213
243#else /* CONFIG_TICKSOURCE_CORETMR */ 214static struct irqaction gptmr0_irq = {
215 .name = "Blackfin GPTimer0",
216 .flags = IRQF_DISABLED | IRQF_TIMER | \
217 IRQF_IRQPOLL | IRQF_PERCPU,
218 .handler = bfin_gptmr0_interrupt,
219};
244 220
245static int bfin_timer_set_next_event(unsigned long cycles, 221static struct clock_event_device clockevent_gptmr0 = {
222 .name = "bfin_gptimer0",
223 .rating = 300,
224 .irq = IRQ_TIMER0,
225 .shift = 32,
226 .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
227 .set_next_event = bfin_gptmr0_set_next_event,
228 .set_mode = bfin_gptmr0_set_mode,
229};
230
231static void __init bfin_gptmr0_clockevent_init(struct clock_event_device *evt)
232{
233 unsigned long clock_tick;
234
235 clock_tick = get_sclk();
236 evt->mult = div_sc(clock_tick, NSEC_PER_SEC, evt->shift);
237 evt->max_delta_ns = clockevent_delta2ns(-1, evt);
238 evt->min_delta_ns = clockevent_delta2ns(100, evt);
239
240 evt->cpumask = cpumask_of(0);
241
242 clockevents_register_device(evt);
243}
244#endif /* CONFIG_TICKSOURCE_GPTMR0 */
245
246#if defined(CONFIG_TICKSOURCE_CORETMR)
247/* per-cpu local core timer */
248static DEFINE_PER_CPU(struct clock_event_device, coretmr_events);
249
250static int bfin_coretmr_set_next_event(unsigned long cycles,
246 struct clock_event_device *evt) 251 struct clock_event_device *evt)
247{ 252{
248 bfin_write_TCNTL(TMPWR); 253 bfin_write_TCNTL(TMPWR);
@@ -253,7 +258,7 @@ static int bfin_timer_set_next_event(unsigned long cycles,
253 return 0; 258 return 0;
254} 259}
255 260
256static void bfin_timer_set_mode(enum clock_event_mode mode, 261static void bfin_coretmr_set_mode(enum clock_event_mode mode,
257 struct clock_event_device *evt) 262 struct clock_event_device *evt)
258{ 263{
259 switch (mode) { 264 switch (mode) {
@@ -285,19 +290,13 @@ static void bfin_timer_set_mode(enum clock_event_mode mode,
285 } 290 }
286} 291}
287 292
288static void bfin_timer_ack(void) 293void bfin_coretmr_init(void)
289{
290}
291
292static void __init bfin_timer_init(void)
293{ 294{
294 /* power up the timer, but don't enable it just yet */ 295 /* power up the timer, but don't enable it just yet */
295 bfin_write_TCNTL(TMPWR); 296 bfin_write_TCNTL(TMPWR);
296 CSYNC(); 297 CSYNC();
297 298
298 /* 299 /* the TSCALE prescaler counter. */
299 * the TSCALE prescaler counter.
300 */
301 bfin_write_TSCALE(TIME_SCALE - 1); 300 bfin_write_TSCALE(TIME_SCALE - 1);
302 bfin_write_TPERIOD(0); 301 bfin_write_TPERIOD(0);
303 bfin_write_TCOUNT(0); 302 bfin_write_TCOUNT(0);
@@ -305,48 +304,54 @@ static void __init bfin_timer_init(void)
305 CSYNC(); 304 CSYNC();
306} 305}
307 306
308static unsigned long __init bfin_clockevent_check(void) 307#ifdef CONFIG_CORE_TIMER_IRQ_L1
309{ 308__attribute__((l1_text))
310 setup_irq(IRQ_CORETMR, &bfin_timer_irq); 309#endif
311 return get_cclk() / TIME_SCALE; 310irqreturn_t bfin_coretmr_interrupt(int irq, void *dev_id)
312}
313
314void __init setup_core_timer(void)
315{ 311{
316 bfin_timer_init(); 312 int cpu = smp_processor_id();
317 bfin_timer_set_mode(CLOCK_EVT_MODE_PERIODIC, NULL); 313 struct clock_event_device *evt = &per_cpu(coretmr_events, cpu);
318}
319#endif /* CONFIG_TICKSOURCE_GPTMR0 */
320 314
321/*
322 * timer_interrupt() needs to keep up the real-time clock,
323 * as well as call the "do_timer()" routine every clocktick
324 */
325irqreturn_t timer_interrupt(int irq, void *dev_id)
326{
327 struct clock_event_device *evt = dev_id;
328 smp_mb(); 315 smp_mb();
329 evt->event_handler(evt); 316 evt->event_handler(evt);
330 bfin_timer_ack();
331 return IRQ_HANDLED;
332}
333
334static int __init bfin_clockevent_init(void)
335{
336 unsigned long timer_clk;
337 317
338 timer_clk = bfin_clockevent_check(); 318 touch_nmi_watchdog();
339 319
340 bfin_timer_init(); 320 return IRQ_HANDLED;
321}
341 322
342 clockevent_bfin.mult = div_sc(timer_clk, NSEC_PER_SEC, clockevent_bfin.shift); 323static struct irqaction coretmr_irq = {
343 clockevent_bfin.max_delta_ns = clockevent_delta2ns(-1, &clockevent_bfin); 324 .name = "Blackfin CoreTimer",
344 clockevent_bfin.min_delta_ns = clockevent_delta2ns(100, &clockevent_bfin); 325 .flags = IRQF_DISABLED | IRQF_TIMER | \
345 clockevent_bfin.cpumask = cpumask_of(0); 326 IRQF_IRQPOLL | IRQF_PERCPU,
346 clockevents_register_device(&clockevent_bfin); 327 .handler = bfin_coretmr_interrupt,
328};
347 329
348 return 0; 330void bfin_coretmr_clockevent_init(void)
331{
332 unsigned long clock_tick;
333 unsigned int cpu = smp_processor_id();
334 struct clock_event_device *evt = &per_cpu(coretmr_events, cpu);
335
336 evt->name = "bfin_core_timer";
337 evt->rating = 350;
338 evt->irq = -1;
339 evt->shift = 32;
340 evt->features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT;
341 evt->set_next_event = bfin_coretmr_set_next_event;
342 evt->set_mode = bfin_coretmr_set_mode;
343
344 clock_tick = get_cclk() / TIME_SCALE;
345 evt->mult = div_sc(clock_tick, NSEC_PER_SEC, evt->shift);
346 evt->max_delta_ns = clockevent_delta2ns(-1, evt);
347 evt->min_delta_ns = clockevent_delta2ns(100, evt);
348
349 evt->cpumask = cpumask_of(cpu);
350
351 clockevents_register_device(evt);
349} 352}
353#endif /* CONFIG_TICKSOURCE_CORETMR */
354
350 355
351void __init time_init(void) 356void __init time_init(void)
352{ 357{
@@ -370,5 +375,21 @@ void __init time_init(void)
370 375
371 bfin_cs_cycles_init(); 376 bfin_cs_cycles_init();
372 bfin_cs_gptimer0_init(); 377 bfin_cs_gptimer0_init();
373 bfin_clockevent_init(); 378
379#if defined(CONFIG_TICKSOURCE_CORETMR)
380 bfin_coretmr_init();
381 setup_irq(IRQ_CORETMR, &coretmr_irq);
382 bfin_coretmr_clockevent_init();
383#endif
384
385#if defined(CONFIG_TICKSOURCE_GPTMR0)
386 bfin_gptmr0_init();
387 setup_irq(IRQ_TIMER0, &gptmr0_irq);
388 gptmr0_irq.dev_id = &clockevent_gptmr0;
389 bfin_gptmr0_clockevent_init(&clockevent_gptmr0);
390#endif
391
392#if !defined(CONFIG_TICKSOURCE_CORETMR) && !defined(CONFIG_TICKSOURCE_GPTMR0)
393# error at least one clock event device is required
394#endif
374} 395}
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c
index d3cbcd6bd985..ba70c4bc2699 100644
--- a/arch/blackfin/kernel/traps.c
+++ b/arch/blackfin/kernel/traps.c
@@ -138,6 +138,12 @@ static void decode_address(char *buf, unsigned long address)
138 if (!mm) 138 if (!mm)
139 continue; 139 continue;
140 140
141 if (!down_read_trylock(&mm->mmap_sem)) {
142 if (!in_atomic)
143 mmput(mm);
144 continue;
145 }
146
141 for (n = rb_first(&mm->mm_rb); n; n = rb_next(n)) { 147 for (n = rb_first(&mm->mm_rb); n; n = rb_next(n)) {
142 struct vm_area_struct *vma; 148 struct vm_area_struct *vma;
143 149
@@ -177,6 +183,7 @@ static void decode_address(char *buf, unsigned long address)
177 sprintf(buf, "[ %s vma:0x%lx-0x%lx]", 183 sprintf(buf, "[ %s vma:0x%lx-0x%lx]",
178 name, vma->vm_start, vma->vm_end); 184 name, vma->vm_start, vma->vm_end);
179 185
186 up_read(&mm->mmap_sem);
180 if (!in_atomic) 187 if (!in_atomic)
181 mmput(mm); 188 mmput(mm);
182 189
@@ -186,11 +193,16 @@ static void decode_address(char *buf, unsigned long address)
186 goto done; 193 goto done;
187 } 194 }
188 } 195 }
196
197 up_read(&mm->mmap_sem);
189 if (!in_atomic) 198 if (!in_atomic)
190 mmput(mm); 199 mmput(mm);
191 } 200 }
192 201
193 /* we were unable to find this address anywhere */ 202 /*
203 * we were unable to find this address anywhere,
204 * or some MMs were skipped because they were in use.
205 */
194 sprintf(buf, "/* kernel dynamic memory */"); 206 sprintf(buf, "/* kernel dynamic memory */");
195 207
196done: 208done:
@@ -248,9 +260,7 @@ asmlinkage notrace void trap_c(struct pt_regs *fp)
248#ifdef CONFIG_DEBUG_BFIN_HWTRACE_ON 260#ifdef CONFIG_DEBUG_BFIN_HWTRACE_ON
249 int j; 261 int j;
250#endif 262#endif
251#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO
252 unsigned int cpu = raw_smp_processor_id(); 263 unsigned int cpu = raw_smp_processor_id();
253#endif
254 const char *strerror = NULL; 264 const char *strerror = NULL;
255 int sig = 0; 265 int sig = 0;
256 siginfo_t info; 266 siginfo_t info;
@@ -639,7 +649,17 @@ asmlinkage notrace void trap_c(struct pt_regs *fp)
639 { 649 {
640 info.si_signo = sig; 650 info.si_signo = sig;
641 info.si_errno = 0; 651 info.si_errno = 0;
642 info.si_addr = (void __user *)fp->pc; 652 switch (trapnr) {
653 case VEC_CPLB_VL:
654 case VEC_MISALI_D:
655 case VEC_CPLB_M:
656 case VEC_CPLB_MHIT:
657 info.si_addr = (void __user *)cpu_pda[cpu].dcplb_fault_addr;
658 break;
659 default:
660 info.si_addr = (void __user *)fp->pc;
661 break;
662 }
643 force_sig_info(sig, &info, current); 663 force_sig_info(sig, &info, current);
644 } 664 }
645 665
@@ -712,7 +732,7 @@ static void decode_instruction(unsigned short *address)
712 verbose_printk("RTE"); 732 verbose_printk("RTE");
713 else if (opcode == 0x0025) 733 else if (opcode == 0x0025)
714 verbose_printk("EMUEXCPT"); 734 verbose_printk("EMUEXCPT");
715 else if (opcode == 0x0040 && opcode <= 0x0047) 735 else if (opcode >= 0x0040 && opcode <= 0x0047)
716 verbose_printk("STI R%i", opcode & 7); 736 verbose_printk("STI R%i", opcode & 7);
717 else if (opcode >= 0x0050 && opcode <= 0x0057) 737 else if (opcode >= 0x0050 && opcode <= 0x0057)
718 verbose_printk("JUMP (P%i)", opcode & 7); 738 verbose_printk("JUMP (P%i)", opcode & 7);
@@ -1096,7 +1116,7 @@ void dump_bfin_mem(struct pt_regs *fp)
1096 /* And the last RETI points to the current userspace context */ 1116 /* And the last RETI points to the current userspace context */
1097 if ((fp + 1)->pc >= current->mm->start_code && 1117 if ((fp + 1)->pc >= current->mm->start_code &&
1098 (fp + 1)->pc <= current->mm->end_code) { 1118 (fp + 1)->pc <= current->mm->end_code) {
1099 verbose_printk(KERN_NOTICE "It might be better to look around here : \n"); 1119 verbose_printk(KERN_NOTICE "It might be better to look around here :\n");
1100 verbose_printk(KERN_NOTICE "-------------------------------------------\n"); 1120 verbose_printk(KERN_NOTICE "-------------------------------------------\n");
1101 show_regs(fp + 1); 1121 show_regs(fp + 1);
1102 verbose_printk(KERN_NOTICE "-------------------------------------------\n"); 1122 verbose_printk(KERN_NOTICE "-------------------------------------------\n");
diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S
index 66799e763dc9..984c78172397 100644
--- a/arch/blackfin/kernel/vmlinux.lds.S
+++ b/arch/blackfin/kernel/vmlinux.lds.S
@@ -15,7 +15,12 @@ _jiffies = _jiffies_64;
15 15
16SECTIONS 16SECTIONS
17{ 17{
18#ifdef CONFIG_RAMKERNEL
18 . = CONFIG_BOOT_LOAD; 19 . = CONFIG_BOOT_LOAD;
20#else
21 . = CONFIG_ROM_BASE;
22#endif
23
19 /* Neither the text, ro_data or bss section need to be aligned 24 /* Neither the text, ro_data or bss section need to be aligned
20 * So pack them back to back 25 * So pack them back to back
21 */ 26 */
@@ -31,6 +36,12 @@ SECTIONS
31 LOCK_TEXT 36 LOCK_TEXT
32 IRQENTRY_TEXT 37 IRQENTRY_TEXT
33 KPROBES_TEXT 38 KPROBES_TEXT
39#ifdef CONFIG_ROMKERNEL
40 __sinittext = .;
41 INIT_TEXT
42 __einittext = .;
43 EXIT_TEXT
44#endif
34 *(.text.*) 45 *(.text.*)
35 *(.fixup) 46 *(.fixup)
36 47
@@ -50,8 +61,14 @@ SECTIONS
50 61
51 /* Just in case the first read only is a 32-bit access */ 62 /* Just in case the first read only is a 32-bit access */
52 RO_DATA(4) 63 RO_DATA(4)
64 __rodata_end = .;
53 65
66#ifdef CONFIG_ROMKERNEL
67 . = CONFIG_BOOT_LOAD;
68 .bss : AT(__rodata_end)
69#else
54 .bss : 70 .bss :
71#endif
55 { 72 {
56 . = ALIGN(4); 73 . = ALIGN(4);
57 ___bss_start = .; 74 ___bss_start = .;
@@ -67,7 +84,11 @@ SECTIONS
67 ___bss_stop = .; 84 ___bss_stop = .;
68 } 85 }
69 86
87#if defined(CONFIG_ROMKERNEL)
88 .data : AT(LOADADDR(.bss) + SIZEOF(.bss))
89#else
70 .data : 90 .data :
91#endif
71 { 92 {
72 __sdata = .; 93 __sdata = .;
73 /* This gets done first, so the glob doesn't suck it in */ 94 /* This gets done first, so the glob doesn't suck it in */
@@ -94,6 +115,8 @@ SECTIONS
94 115
95 __edata = .; 116 __edata = .;
96 } 117 }
118 __data_lma = LOADADDR(.data);
119 __data_len = SIZEOF(.data);
97 120
98 /* The init section should be last, so when we free it, it goes into 121 /* The init section should be last, so when we free it, it goes into
99 * the general memory pool, and (hopefully) will decrease fragmentation 122 * the general memory pool, and (hopefully) will decrease fragmentation
@@ -103,25 +126,58 @@ SECTIONS
103 . = ALIGN(PAGE_SIZE); 126 . = ALIGN(PAGE_SIZE);
104 ___init_begin = .; 127 ___init_begin = .;
105 128
129#ifdef CONFIG_RAMKERNEL
106 INIT_TEXT_SECTION(PAGE_SIZE) 130 INIT_TEXT_SECTION(PAGE_SIZE)
107 . = ALIGN(16);
108 INIT_DATA_SECTION(16)
109 PERCPU(4)
110 131
111 /* we have to discard exit text and such at runtime, not link time, to 132 /* We have to discard exit text and such at runtime, not link time, to
112 * handle embedded cross-section references (alt instructions, bug 133 * handle embedded cross-section references (alt instructions, bug
113 * table, eh_frame, etc...) 134 * table, eh_frame, etc...). We need all of our .text up front and
135 * .data after it for PCREL call issues.
114 */ 136 */
115 .exit.text : 137 .exit.text :
116 { 138 {
117 EXIT_TEXT 139 EXIT_TEXT
118 } 140 }
141
142 . = ALIGN(16);
143 INIT_DATA_SECTION(16)
144 PERCPU(4)
145
119 .exit.data : 146 .exit.data :
120 { 147 {
121 EXIT_DATA 148 EXIT_DATA
122 } 149 }
123 150
124 .text_l1 L1_CODE_START : AT(LOADADDR(.exit.data) + SIZEOF(.exit.data)) 151 .text_l1 L1_CODE_START : AT(LOADADDR(.exit.data) + SIZEOF(.exit.data))
152#else
153 .init.data : AT(__data_lma + __data_len)
154 {
155 __sinitdata = .;
156 INIT_DATA
157 INIT_SETUP(16)
158 INIT_CALLS
159 CON_INITCALL
160 SECURITY_INITCALL
161 INIT_RAM_FS
162
163 . = ALIGN(4);
164 ___per_cpu_load = .;
165 ___per_cpu_start = .;
166 *(.data.percpu.first)
167 *(.data.percpu.page_aligned)
168 *(.data.percpu)
169 *(.data.percpu.shared_aligned)
170 ___per_cpu_end = .;
171
172 EXIT_DATA
173 __einitdata = .;
174 }
175 __init_data_lma = LOADADDR(.init.data);
176 __init_data_len = SIZEOF(.init.data);
177 __init_data_end = .;
178
179 .text_l1 L1_CODE_START : AT(__init_data_lma + __init_data_len)
180#endif
125 { 181 {
126 . = ALIGN(4); 182 . = ALIGN(4);
127 __stext_l1 = .; 183 __stext_l1 = .;
@@ -202,7 +258,11 @@ SECTIONS
202 /* Force trailing alignment of our init section so that when we 258 /* Force trailing alignment of our init section so that when we
203 * free our init memory, we don't leave behind a partial page. 259 * free our init memory, we don't leave behind a partial page.
204 */ 260 */
261#ifdef CONFIG_RAMKERNEL
205 . = __l2_lma + __l2_len; 262 . = __l2_lma + __l2_len;
263#else
264 . = __init_data_end;
265#endif
206 . = ALIGN(PAGE_SIZE); 266 . = ALIGN(PAGE_SIZE);
207 ___init_end = .; 267 ___init_end = .;
208 268
diff --git a/arch/blackfin/mach-bf518/boards/Kconfig b/arch/blackfin/mach-bf518/boards/Kconfig
index 96163514ed22..252261ec04c4 100644
--- a/arch/blackfin/mach-bf518/boards/Kconfig
+++ b/arch/blackfin/mach-bf518/boards/Kconfig
@@ -9,4 +9,9 @@ config BFIN518F_EZBRD
9 help 9 help
10 BF518-EZBRD board support. 10 BF518-EZBRD board support.
11 11
12config BFIN518F_TCM
13 bool "Bluetechnix TCM-BF518"
14 help
15 Bluetechnix TCM-BF518 board support.
16
12endchoice 17endchoice
diff --git a/arch/blackfin/mach-bf518/boards/Makefile b/arch/blackfin/mach-bf518/boards/Makefile
index 172e859c3a7f..a9ef25c6b302 100644
--- a/arch/blackfin/mach-bf518/boards/Makefile
+++ b/arch/blackfin/mach-bf518/boards/Makefile
@@ -3,3 +3,4 @@
3# 3#
4 4
5obj-$(CONFIG_BFIN518F_EZBRD) += ezbrd.o 5obj-$(CONFIG_BFIN518F_EZBRD) += ezbrd.o
6obj-$(CONFIG_BFIN518F_TCM) += tcm-bf518.o
diff --git a/arch/blackfin/mach-bf518/boards/ezbrd.c b/arch/blackfin/mach-bf518/boards/ezbrd.c
index 01975c017116..44d6d5299022 100644
--- a/arch/blackfin/mach-bf518/boards/ezbrd.c
+++ b/arch/blackfin/mach-bf518/boards/ezbrd.c
@@ -382,30 +382,93 @@ static struct platform_device bfin_spi1_device = {
382#endif /* spi master and devices */ 382#endif /* spi master and devices */
383 383
384#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 384#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
385static struct resource bfin_uart_resources[] = {
386#ifdef CONFIG_SERIAL_BFIN_UART0 385#ifdef CONFIG_SERIAL_BFIN_UART0
386static struct resource bfin_uart0_resources[] = {
387 { 387 {
388 .start = 0xFFC00400, 388 .start = UART0_THR,
389 .end = 0xFFC004FF, 389 .end = UART0_GCTL+2,
390 .flags = IORESOURCE_MEM, 390 .flags = IORESOURCE_MEM,
391 }, 391 },
392 {
393 .start = IRQ_UART0_RX,
394 .end = IRQ_UART0_RX+1,
395 .flags = IORESOURCE_IRQ,
396 },
397 {
398 .start = IRQ_UART0_ERROR,
399 .end = IRQ_UART0_ERROR,
400 .flags = IORESOURCE_IRQ,
401 },
402 {
403 .start = CH_UART0_TX,
404 .end = CH_UART0_TX,
405 .flags = IORESOURCE_DMA,
406 },
407 {
408 .start = CH_UART0_RX,
409 .end = CH_UART0_RX,
410 .flags = IORESOURCE_DMA,
411 },
412};
413
414unsigned short bfin_uart0_peripherals[] = {
415 P_UART0_TX, P_UART0_RX, 0
416};
417
418static struct platform_device bfin_uart0_device = {
419 .name = "bfin-uart",
420 .id = 0,
421 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
422 .resource = bfin_uart0_resources,
423 .dev = {
424 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
425 },
426};
392#endif 427#endif
393#ifdef CONFIG_SERIAL_BFIN_UART1 428#ifdef CONFIG_SERIAL_BFIN_UART1
429static struct resource bfin_uart1_resources[] = {
394 { 430 {
395 .start = 0xFFC02000, 431 .start = UART1_THR,
396 .end = 0xFFC020FF, 432 .end = UART1_GCTL+2,
397 .flags = IORESOURCE_MEM, 433 .flags = IORESOURCE_MEM,
398 }, 434 },
399#endif 435 {
436 .start = IRQ_UART1_RX,
437 .end = IRQ_UART1_RX+1,
438 .flags = IORESOURCE_IRQ,
439 },
440 {
441 .start = IRQ_UART1_ERROR,
442 .end = IRQ_UART1_ERROR,
443 .flags = IORESOURCE_IRQ,
444 },
445 {
446 .start = CH_UART1_TX,
447 .end = CH_UART1_TX,
448 .flags = IORESOURCE_DMA,
449 },
450 {
451 .start = CH_UART1_RX,
452 .end = CH_UART1_RX,
453 .flags = IORESOURCE_DMA,
454 },
455};
456
457unsigned short bfin_uart1_peripherals[] = {
458 P_UART1_TX, P_UART1_RX, 0
400}; 459};
401 460
402static struct platform_device bfin_uart_device = { 461static struct platform_device bfin_uart1_device = {
403 .name = "bfin-uart", 462 .name = "bfin-uart",
404 .id = 1, 463 .id = 1,
405 .num_resources = ARRAY_SIZE(bfin_uart_resources), 464 .num_resources = ARRAY_SIZE(bfin_uart1_resources),
406 .resource = bfin_uart_resources, 465 .resource = bfin_uart1_resources,
466 .dev = {
467 .platform_data = &bfin_uart1_peripherals, /* Passed to driver */
468 },
407}; 469};
408#endif 470#endif
471#endif
409 472
410#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 473#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
411#ifdef CONFIG_BFIN_SIR0 474#ifdef CONFIG_BFIN_SIR0
@@ -499,16 +562,75 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
499}; 562};
500 563
501#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 564#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
565#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
566static struct resource bfin_sport0_uart_resources[] = {
567 {
568 .start = SPORT0_TCR1,
569 .end = SPORT0_MRCS3+4,
570 .flags = IORESOURCE_MEM,
571 },
572 {
573 .start = IRQ_SPORT0_RX,
574 .end = IRQ_SPORT0_RX+1,
575 .flags = IORESOURCE_IRQ,
576 },
577 {
578 .start = IRQ_SPORT0_ERROR,
579 .end = IRQ_SPORT0_ERROR,
580 .flags = IORESOURCE_IRQ,
581 },
582};
583
584unsigned short bfin_sport0_peripherals[] = {
585 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
586 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
587};
588
502static struct platform_device bfin_sport0_uart_device = { 589static struct platform_device bfin_sport0_uart_device = {
503 .name = "bfin-sport-uart", 590 .name = "bfin-sport-uart",
504 .id = 0, 591 .id = 0,
592 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
593 .resource = bfin_sport0_uart_resources,
594 .dev = {
595 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
596 },
597};
598#endif
599#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
600static struct resource bfin_sport1_uart_resources[] = {
601 {
602 .start = SPORT1_TCR1,
603 .end = SPORT1_MRCS3+4,
604 .flags = IORESOURCE_MEM,
605 },
606 {
607 .start = IRQ_SPORT1_RX,
608 .end = IRQ_SPORT1_RX+1,
609 .flags = IORESOURCE_IRQ,
610 },
611 {
612 .start = IRQ_SPORT1_ERROR,
613 .end = IRQ_SPORT1_ERROR,
614 .flags = IORESOURCE_IRQ,
615 },
616};
617
618unsigned short bfin_sport1_peripherals[] = {
619 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
620 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
505}; 621};
506 622
507static struct platform_device bfin_sport1_uart_device = { 623static struct platform_device bfin_sport1_uart_device = {
508 .name = "bfin-sport-uart", 624 .name = "bfin-sport-uart",
509 .id = 1, 625 .id = 1,
626 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
627 .resource = bfin_sport1_uart_resources,
628 .dev = {
629 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
630 },
510}; 631};
511#endif 632#endif
633#endif
512 634
513#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 635#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
514#include <linux/input.h> 636#include <linux/input.h>
@@ -593,7 +715,12 @@ static struct platform_device *stamp_devices[] __initdata = {
593#endif 715#endif
594 716
595#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 717#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
596 &bfin_uart_device, 718#ifdef CONFIG_SERIAL_BFIN_UART0
719 &bfin_uart0_device,
720#endif
721#ifdef CONFIG_SERIAL_BFIN_UART1
722 &bfin_uart1_device,
723#endif
597#endif 724#endif
598 725
599#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 726#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -610,9 +737,13 @@ static struct platform_device *stamp_devices[] __initdata = {
610#endif 737#endif
611 738
612#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 739#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
740#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
613 &bfin_sport0_uart_device, 741 &bfin_sport0_uart_device,
742#endif
743#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
614 &bfin_sport1_uart_device, 744 &bfin_sport1_uart_device,
615#endif 745#endif
746#endif
616 747
617#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 748#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
618 &bfin_device_gpiokeys, 749 &bfin_device_gpiokeys,
@@ -644,6 +775,33 @@ static int __init ezbrd_init(void)
644 775
645arch_initcall(ezbrd_init); 776arch_initcall(ezbrd_init);
646 777
778static struct platform_device *ezbrd_early_devices[] __initdata = {
779#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
780#ifdef CONFIG_SERIAL_BFIN_UART0
781 &bfin_uart0_device,
782#endif
783#ifdef CONFIG_SERIAL_BFIN_UART1
784 &bfin_uart1_device,
785#endif
786#endif
787
788#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
789#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
790 &bfin_sport0_uart_device,
791#endif
792#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
793 &bfin_sport1_uart_device,
794#endif
795#endif
796};
797
798void __init native_machine_early_platform_add_devices(void)
799{
800 printk(KERN_INFO "register early platform devices\n");
801 early_platform_add_devices(ezbrd_early_devices,
802 ARRAY_SIZE(ezbrd_early_devices));
803}
804
647void native_machine_restart(char *cmd) 805void native_machine_restart(char *cmd)
648{ 806{
649 /* workaround reboot hang when booting from SPI */ 807 /* workaround reboot hang when booting from SPI */
diff --git a/arch/blackfin/mach-bf518/boards/tcm-bf518.c b/arch/blackfin/mach-bf518/boards/tcm-bf518.c
new file mode 100644
index 000000000000..9b72e5cb21fe
--- /dev/null
+++ b/arch/blackfin/mach-bf518/boards/tcm-bf518.c
@@ -0,0 +1,753 @@
1/*
2 * Copyright 2004-2009 Analog Devices Inc.
3 * 2005 National ICT Australia (NICTA)
4 * Aidan Williams <aidan@nicta.com.au>
5 *
6 * Licensed under the GPL-2 or later.
7 */
8
9#include <linux/device.h>
10#include <linux/etherdevice.h>
11#include <linux/platform_device.h>
12#include <linux/mtd/mtd.h>
13#include <linux/mtd/partitions.h>
14#include <linux/mtd/physmap.h>
15#include <linux/spi/spi.h>
16#include <linux/spi/flash.h>
17
18#include <linux/i2c.h>
19#include <linux/irq.h>
20#include <linux/interrupt.h>
21#include <asm/dma.h>
22#include <asm/bfin5xx_spi.h>
23#include <asm/reboot.h>
24#include <asm/portmux.h>
25#include <asm/dpmc.h>
26#include <asm/bfin_sdh.h>
27#include <linux/spi/ad7877.h>
28#include <net/dsa.h>
29
30/*
31 * Name the Board for the /proc/cpuinfo
32 */
33const char bfin_board_name[] = "Bluetechnix TCM-BF518";
34
35/*
36 * Driver needs to know address, irq and flag pin.
37 */
38
39#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
40static struct mtd_partition tcm_partitions[] = {
41 {
42 .name = "bootloader(nor)",
43 .size = 0x40000,
44 .offset = 0,
45 },
46 {
47 .name = "linux(nor)",
48 .size = 0x1C0000,
49 .offset = MTDPART_OFS_APPEND,
50 }
51};
52
53static struct physmap_flash_data tcm_flash_data = {
54 .width = 2,
55 .parts = tcm_partitions,
56 .nr_parts = ARRAY_SIZE(tcm_partitions),
57};
58
59static struct resource tcm_flash_resource = {
60 .start = 0x20000000,
61 .end = 0x201fffff,
62 .flags = IORESOURCE_MEM,
63};
64
65static struct platform_device tcm_flash_device = {
66 .name = "physmap-flash",
67 .id = 0,
68 .dev = {
69 .platform_data = &tcm_flash_data,
70 },
71 .num_resources = 1,
72 .resource = &tcm_flash_resource,
73};
74#endif
75
76#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
77static struct platform_device rtc_device = {
78 .name = "rtc-bfin",
79 .id = -1,
80};
81#endif
82
83#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
84static struct platform_device bfin_mii_bus = {
85 .name = "bfin_mii_bus",
86};
87
88static struct platform_device bfin_mac_device = {
89 .name = "bfin_mac",
90 .dev.platform_data = &bfin_mii_bus,
91};
92#endif
93
94#if defined(CONFIG_MTD_M25P80) \
95 || defined(CONFIG_MTD_M25P80_MODULE)
96static struct mtd_partition bfin_spi_flash_partitions[] = {
97 {
98 .name = "bootloader(spi)",
99 .size = 0x00040000,
100 .offset = 0,
101 .mask_flags = MTD_CAP_ROM
102 }, {
103 .name = "linux kernel(spi)",
104 .size = MTDPART_SIZ_FULL,
105 .offset = MTDPART_OFS_APPEND,
106 }
107};
108
109static struct flash_platform_data bfin_spi_flash_data = {
110 .name = "m25p80",
111 .parts = bfin_spi_flash_partitions,
112 .nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions),
113 .type = "m25p16",
114};
115
116/* SPI flash chip (m25p64) */
117static struct bfin5xx_spi_chip spi_flash_chip_info = {
118 .enable_dma = 0, /* use dma transfer with this chip*/
119 .bits_per_word = 8,
120};
121#endif
122
123#if defined(CONFIG_BFIN_SPI_ADC) \
124 || defined(CONFIG_BFIN_SPI_ADC_MODULE)
125/* SPI ADC chip */
126static struct bfin5xx_spi_chip spi_adc_chip_info = {
127 .enable_dma = 1, /* use dma transfer with this chip*/
128 .bits_per_word = 16,
129};
130#endif
131
132#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
133static struct bfin5xx_spi_chip mmc_spi_chip_info = {
134 .enable_dma = 0,
135 .bits_per_word = 8,
136};
137#endif
138
139#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
140static struct bfin5xx_spi_chip spi_ad7877_chip_info = {
141 .enable_dma = 0,
142 .bits_per_word = 16,
143};
144
145static const struct ad7877_platform_data bfin_ad7877_ts_info = {
146 .model = 7877,
147 .vref_delay_usecs = 50, /* internal, no capacitor */
148 .x_plate_ohms = 419,
149 .y_plate_ohms = 486,
150 .pressure_max = 1000,
151 .pressure_min = 0,
152 .stopacq_polarity = 1,
153 .first_conversion_delay = 3,
154 .acquisition_time = 1,
155 .averaging = 1,
156 .pen_down_acc_interval = 1,
157};
158#endif
159
160#if defined(CONFIG_SND_SOC_WM8731) || defined(CONFIG_SND_SOC_WM8731_MODULE) \
161 && defined(CONFIG_SND_SOC_WM8731_SPI)
162static struct bfin5xx_spi_chip spi_wm8731_chip_info = {
163 .enable_dma = 0,
164 .bits_per_word = 16,
165};
166#endif
167
168#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
169static struct bfin5xx_spi_chip spidev_chip_info = {
170 .enable_dma = 0,
171 .bits_per_word = 8,
172};
173#endif
174
175static struct spi_board_info bfin_spi_board_info[] __initdata = {
176#if defined(CONFIG_MTD_M25P80) \
177 || defined(CONFIG_MTD_M25P80_MODULE)
178 {
179 /* the modalias must be the same as spi device driver name */
180 .modalias = "m25p80", /* Name of spi_driver for this device */
181 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */
182 .bus_num = 0, /* Framework bus number */
183 .chip_select = 2, /* SPI0_SSEL2 */
184 .platform_data = &bfin_spi_flash_data,
185 .controller_data = &spi_flash_chip_info,
186 .mode = SPI_MODE_3,
187 },
188#endif
189
190#if defined(CONFIG_BFIN_SPI_ADC) \
191 || defined(CONFIG_BFIN_SPI_ADC_MODULE)
192 {
193 .modalias = "bfin_spi_adc", /* Name of spi_driver for this device */
194 .max_speed_hz = 6250000, /* max spi clock (SCK) speed in HZ */
195 .bus_num = 0, /* Framework bus number */
196 .chip_select = 1, /* Framework chip select. */
197 .platform_data = NULL, /* No spi_driver specific config */
198 .controller_data = &spi_adc_chip_info,
199 },
200#endif
201
202#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
203 {
204 .modalias = "mmc_spi",
205 .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */
206 .bus_num = 0,
207 .chip_select = 5,
208 .controller_data = &mmc_spi_chip_info,
209 .mode = SPI_MODE_3,
210 },
211#endif
212#if defined(CONFIG_TOUCHSCREEN_AD7877) || defined(CONFIG_TOUCHSCREEN_AD7877_MODULE)
213 {
214 .modalias = "ad7877",
215 .platform_data = &bfin_ad7877_ts_info,
216 .irq = IRQ_PF8,
217 .max_speed_hz = 12500000, /* max spi clock (SCK) speed in HZ */
218 .bus_num = 0,
219 .chip_select = 2,
220 .controller_data = &spi_ad7877_chip_info,
221 },
222#endif
223#if defined(CONFIG_SND_SOC_WM8731) || defined(CONFIG_SND_SOC_WM8731_MODULE) \
224 && defined(CONFIG_SND_SOC_WM8731_SPI)
225 {
226 .modalias = "wm8731",
227 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
228 .bus_num = 0,
229 .chip_select = 5,
230 .controller_data = &spi_wm8731_chip_info,
231 .mode = SPI_MODE_0,
232 },
233#endif
234#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
235 {
236 .modalias = "spidev",
237 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
238 .bus_num = 0,
239 .chip_select = 1,
240 .controller_data = &spidev_chip_info,
241 },
242#endif
243#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
244 {
245 .modalias = "bfin-lq035q1-spi",
246 .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */
247 .bus_num = 0,
248 .chip_select = 1,
249 .controller_data = &lq035q1_spi_chip_info,
250 .mode = SPI_CPHA | SPI_CPOL,
251 },
252#endif
253};
254
255/* SPI controller data */
256#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
257/* SPI (0) */
258static struct bfin5xx_spi_master bfin_spi0_info = {
259 .num_chipselect = 6,
260 .enable_dma = 1, /* master has the ability to do dma transfer */
261 .pin_req = {P_SPI0_SCK, P_SPI0_MISO, P_SPI0_MOSI, 0},
262};
263
264static struct resource bfin_spi0_resource[] = {
265 [0] = {
266 .start = SPI0_REGBASE,
267 .end = SPI0_REGBASE + 0xFF,
268 .flags = IORESOURCE_MEM,
269 },
270 [1] = {
271 .start = CH_SPI0,
272 .end = CH_SPI0,
273 .flags = IORESOURCE_DMA,
274 },
275 [2] = {
276 .start = IRQ_SPI0,
277 .end = IRQ_SPI0,
278 .flags = IORESOURCE_IRQ,
279 },
280};
281
282static struct platform_device bfin_spi0_device = {
283 .name = "bfin-spi",
284 .id = 0, /* Bus number */
285 .num_resources = ARRAY_SIZE(bfin_spi0_resource),
286 .resource = bfin_spi0_resource,
287 .dev = {
288 .platform_data = &bfin_spi0_info, /* Passed to driver */
289 },
290};
291
292/* SPI (1) */
293static struct bfin5xx_spi_master bfin_spi1_info = {
294 .num_chipselect = 5,
295 .enable_dma = 1, /* master has the ability to do dma transfer */
296 .pin_req = {P_SPI1_SCK, P_SPI1_MISO, P_SPI1_MOSI, 0},
297};
298
299static struct resource bfin_spi1_resource[] = {
300 [0] = {
301 .start = SPI1_REGBASE,
302 .end = SPI1_REGBASE + 0xFF,
303 .flags = IORESOURCE_MEM,
304 },
305 [1] = {
306 .start = CH_SPI1,
307 .end = CH_SPI1,
308 .flags = IORESOURCE_DMA,
309 },
310 [2] = {
311 .start = IRQ_SPI1,
312 .end = IRQ_SPI1,
313 .flags = IORESOURCE_IRQ,
314 },
315};
316
317static struct platform_device bfin_spi1_device = {
318 .name = "bfin-spi",
319 .id = 1, /* Bus number */
320 .num_resources = ARRAY_SIZE(bfin_spi1_resource),
321 .resource = bfin_spi1_resource,
322 .dev = {
323 .platform_data = &bfin_spi1_info, /* Passed to driver */
324 },
325};
326#endif /* spi master and devices */
327
328#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
329#ifdef CONFIG_SERIAL_BFIN_UART0
330static struct resource bfin_uart0_resources[] = {
331 {
332 .start = UART0_THR,
333 .end = UART0_GCTL+2,
334 .flags = IORESOURCE_MEM,
335 },
336 {
337 .start = IRQ_UART0_RX,
338 .end = IRQ_UART0_RX+1,
339 .flags = IORESOURCE_IRQ,
340 },
341 {
342 .start = IRQ_UART0_ERROR,
343 .end = IRQ_UART0_ERROR,
344 .flags = IORESOURCE_IRQ,
345 },
346 {
347 .start = CH_UART0_TX,
348 .end = CH_UART0_TX,
349 .flags = IORESOURCE_DMA,
350 },
351 {
352 .start = CH_UART0_RX,
353 .end = CH_UART0_RX,
354 .flags = IORESOURCE_DMA,
355 },
356};
357
358unsigned short bfin_uart0_peripherals[] = {
359 P_UART0_TX, P_UART0_RX, 0
360};
361
362static struct platform_device bfin_uart0_device = {
363 .name = "bfin-uart",
364 .id = 0,
365 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
366 .resource = bfin_uart0_resources,
367 .dev = {
368 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
369 },
370};
371#endif
372#ifdef CONFIG_SERIAL_BFIN_UART1
373static struct resource bfin_uart1_resources[] = {
374 {
375 .start = UART1_THR,
376 .end = UART1_GCTL+2,
377 .flags = IORESOURCE_MEM,
378 },
379 {
380 .start = IRQ_UART1_RX,
381 .end = IRQ_UART1_RX+1,
382 .flags = IORESOURCE_IRQ,
383 },
384 {
385 .start = IRQ_UART1_ERROR,
386 .end = IRQ_UART1_ERROR,
387 .flags = IORESOURCE_IRQ,
388 },
389 {
390 .start = CH_UART1_TX,
391 .end = CH_UART1_TX,
392 .flags = IORESOURCE_DMA,
393 },
394 {
395 .start = CH_UART1_RX,
396 .end = CH_UART1_RX,
397 .flags = IORESOURCE_DMA,
398 },
399};
400
401unsigned short bfin_uart1_peripherals[] = {
402 P_UART1_TX, P_UART1_RX, 0
403};
404
405static struct platform_device bfin_uart1_device = {
406 .name = "bfin-uart",
407 .id = 1,
408 .num_resources = ARRAY_SIZE(bfin_uart1_resources),
409 .resource = bfin_uart1_resources,
410 .dev = {
411 .platform_data = &bfin_uart1_peripherals, /* Passed to driver */
412 },
413};
414#endif
415#endif
416
417#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
418#ifdef CONFIG_BFIN_SIR0
419static struct resource bfin_sir0_resources[] = {
420 {
421 .start = 0xFFC00400,
422 .end = 0xFFC004FF,
423 .flags = IORESOURCE_MEM,
424 },
425 {
426 .start = IRQ_UART0_RX,
427 .end = IRQ_UART0_RX+1,
428 .flags = IORESOURCE_IRQ,
429 },
430 {
431 .start = CH_UART0_RX,
432 .end = CH_UART0_RX+1,
433 .flags = IORESOURCE_DMA,
434 },
435};
436
437static struct platform_device bfin_sir0_device = {
438 .name = "bfin_sir",
439 .id = 0,
440 .num_resources = ARRAY_SIZE(bfin_sir0_resources),
441 .resource = bfin_sir0_resources,
442};
443#endif
444#ifdef CONFIG_BFIN_SIR1
445static struct resource bfin_sir1_resources[] = {
446 {
447 .start = 0xFFC02000,
448 .end = 0xFFC020FF,
449 .flags = IORESOURCE_MEM,
450 },
451 {
452 .start = IRQ_UART1_RX,
453 .end = IRQ_UART1_RX+1,
454 .flags = IORESOURCE_IRQ,
455 },
456 {
457 .start = CH_UART1_RX,
458 .end = CH_UART1_RX+1,
459 .flags = IORESOURCE_DMA,
460 },
461};
462
463static struct platform_device bfin_sir1_device = {
464 .name = "bfin_sir",
465 .id = 1,
466 .num_resources = ARRAY_SIZE(bfin_sir1_resources),
467 .resource = bfin_sir1_resources,
468};
469#endif
470#endif
471
472#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
473static struct resource bfin_twi0_resource[] = {
474 [0] = {
475 .start = TWI0_REGBASE,
476 .end = TWI0_REGBASE,
477 .flags = IORESOURCE_MEM,
478 },
479 [1] = {
480 .start = IRQ_TWI,
481 .end = IRQ_TWI,
482 .flags = IORESOURCE_IRQ,
483 },
484};
485
486static struct platform_device i2c_bfin_twi_device = {
487 .name = "i2c-bfin-twi",
488 .id = 0,
489 .num_resources = ARRAY_SIZE(bfin_twi0_resource),
490 .resource = bfin_twi0_resource,
491};
492#endif
493
494static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
495#if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE)
496 {
497 I2C_BOARD_INFO("pcf8574_lcd", 0x22),
498 },
499#endif
500#if defined(CONFIG_INPUT_PCF8574) || defined(CONFIG_INPUT_PCF8574_MODULE)
501 {
502 I2C_BOARD_INFO("pcf8574_keypad", 0x27),
503 .irq = IRQ_PF8,
504 },
505#endif
506};
507
508#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
509#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
510static struct resource bfin_sport0_uart_resources[] = {
511 {
512 .start = SPORT0_TCR1,
513 .end = SPORT0_MRCS3+4,
514 .flags = IORESOURCE_MEM,
515 },
516 {
517 .start = IRQ_SPORT0_RX,
518 .end = IRQ_SPORT0_RX+1,
519 .flags = IORESOURCE_IRQ,
520 },
521 {
522 .start = IRQ_SPORT0_ERROR,
523 .end = IRQ_SPORT0_ERROR,
524 .flags = IORESOURCE_IRQ,
525 },
526};
527
528unsigned short bfin_sport0_peripherals[] = {
529 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
530 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
531};
532
533static struct platform_device bfin_sport0_uart_device = {
534 .name = "bfin-sport-uart",
535 .id = 0,
536 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
537 .resource = bfin_sport0_uart_resources,
538 .dev = {
539 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
540 },
541};
542#endif
543#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
544static struct resource bfin_sport1_uart_resources[] = {
545 {
546 .start = SPORT1_TCR1,
547 .end = SPORT1_MRCS3+4,
548 .flags = IORESOURCE_MEM,
549 },
550 {
551 .start = IRQ_SPORT1_RX,
552 .end = IRQ_SPORT1_RX+1,
553 .flags = IORESOURCE_IRQ,
554 },
555 {
556 .start = IRQ_SPORT1_ERROR,
557 .end = IRQ_SPORT1_ERROR,
558 .flags = IORESOURCE_IRQ,
559 },
560};
561
562unsigned short bfin_sport1_peripherals[] = {
563 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
564 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
565};
566
567static struct platform_device bfin_sport1_uart_device = {
568 .name = "bfin-sport-uart",
569 .id = 1,
570 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
571 .resource = bfin_sport1_uart_resources,
572 .dev = {
573 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
574 },
575};
576#endif
577#endif
578
579#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
580#include <linux/input.h>
581#include <linux/gpio_keys.h>
582
583static struct gpio_keys_button bfin_gpio_keys_table[] = {
584 {BTN_0, GPIO_PG0, 1, "gpio-keys: BTN0"},
585 {BTN_1, GPIO_PG13, 1, "gpio-keys: BTN1"},
586};
587
588static struct gpio_keys_platform_data bfin_gpio_keys_data = {
589 .buttons = bfin_gpio_keys_table,
590 .nbuttons = ARRAY_SIZE(bfin_gpio_keys_table),
591};
592
593static struct platform_device bfin_device_gpiokeys = {
594 .name = "gpio-keys",
595 .dev = {
596 .platform_data = &bfin_gpio_keys_data,
597 },
598};
599#endif
600
601#if defined(CONFIG_SDH_BFIN) || defined(CONFIG_SDH_BFIN_MODULE)
602
603static struct bfin_sd_host bfin_sdh_data = {
604 .dma_chan = CH_RSI,
605 .irq_int0 = IRQ_RSI_INT0,
606 .pin_req = {P_RSI_DATA0, P_RSI_DATA1, P_RSI_DATA2, P_RSI_DATA3, P_RSI_CMD, P_RSI_CLK, 0},
607};
608
609static struct platform_device bf51x_sdh_device = {
610 .name = "bfin-sdh",
611 .id = 0,
612 .dev = {
613 .platform_data = &bfin_sdh_data,
614 },
615};
616#endif
617
618static const unsigned int cclk_vlev_datasheet[] =
619{
620 VRPAIR(VLEV_100, 400000000),
621 VRPAIR(VLEV_105, 426000000),
622 VRPAIR(VLEV_110, 500000000),
623 VRPAIR(VLEV_115, 533000000),
624 VRPAIR(VLEV_120, 600000000),
625};
626
627static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
628 .tuple_tab = cclk_vlev_datasheet,
629 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
630 .vr_settling_time = 25 /* us */,
631};
632
633static struct platform_device bfin_dpmc = {
634 .name = "bfin dpmc",
635 .dev = {
636 .platform_data = &bfin_dmpc_vreg_data,
637 },
638};
639
640static struct platform_device *tcm_devices[] __initdata = {
641
642 &bfin_dpmc,
643
644#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
645 &rtc_device,
646#endif
647
648#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
649 &bfin_mii_bus,
650 &bfin_mac_device,
651#endif
652
653#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
654 &bfin_spi0_device,
655 &bfin_spi1_device,
656#endif
657
658#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
659#ifdef CONFIG_SERIAL_BFIN_UART0
660 &bfin_uart0_device,
661#endif
662#ifdef CONFIG_SERIAL_BFIN_UART1
663 &bfin_uart1_device,
664#endif
665#endif
666
667#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
668#ifdef CONFIG_BFIN_SIR0
669 &bfin_sir0_device,
670#endif
671#ifdef CONFIG_BFIN_SIR1
672 &bfin_sir1_device,
673#endif
674#endif
675
676#if defined(CONFIG_I2C_BLACKFIN_TWI) || defined(CONFIG_I2C_BLACKFIN_TWI_MODULE)
677 &i2c_bfin_twi_device,
678#endif
679
680#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
681#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
682 &bfin_sport0_uart_device,
683#endif
684#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
685 &bfin_sport1_uart_device,
686#endif
687#endif
688
689#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
690 &bfin_device_gpiokeys,
691#endif
692
693#if defined(CONFIG_SDH_BFIN) || defined(CONFIG_SDH_BFIN_MODULE)
694 &bf51x_sdh_device,
695#endif
696
697#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
698 &tcm_flash_device,
699#endif
700};
701
702static int __init tcm_init(void)
703{
704 printk(KERN_INFO "%s(): registering device resources\n", __func__);
705 i2c_register_board_info(0, bfin_i2c_board_info,
706 ARRAY_SIZE(bfin_i2c_board_info));
707 platform_add_devices(tcm_devices, ARRAY_SIZE(tcm_devices));
708 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
709 return 0;
710}
711
712arch_initcall(tcm_init);
713
714static struct platform_device *tcm_early_devices[] __initdata = {
715#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
716#ifdef CONFIG_SERIAL_BFIN_UART0
717 &bfin_uart0_device,
718#endif
719#ifdef CONFIG_SERIAL_BFIN_UART1
720 &bfin_uart1_device,
721#endif
722#endif
723
724#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
725#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
726 &bfin_sport0_uart_device,
727#endif
728#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
729 &bfin_sport1_uart_device,
730#endif
731#endif
732};
733
734void __init native_machine_early_platform_add_devices(void)
735{
736 printk(KERN_INFO "register early platform devices\n");
737 early_platform_add_devices(tcm_early_devices,
738 ARRAY_SIZE(tcm_early_devices));
739}
740
741void native_machine_restart(char *cmd)
742{
743 /* workaround reboot hang when booting from SPI */
744 if ((bfin_read_SYSCR() & 0x7) == 0x3)
745 bfin_reset_boot_spi_cs(P_DEFAULT_BOOT_SPI_CS);
746}
747
748void bfin_get_ether_addr(char *addr)
749{
750 random_ether_addr(addr);
751 printk(KERN_WARNING "%s:%s: Setting Ethernet MAC to a random one\n", __FILE__, __func__);
752}
753EXPORT_SYMBOL(bfin_get_ether_addr);
diff --git a/arch/blackfin/mach-bf518/include/mach/irq.h b/arch/blackfin/mach-bf518/include/mach/irq.h
index 14e52ec7afa5..435e76e31aaa 100644
--- a/arch/blackfin/mach-bf518/include/mach/irq.h
+++ b/arch/blackfin/mach-bf518/include/mach/irq.h
@@ -151,7 +151,17 @@
151 151
152#define GPIO_IRQ_BASE IRQ_PF0 152#define GPIO_IRQ_BASE IRQ_PF0
153 153
154#define NR_IRQS (IRQ_PH15 + 1) 154#define IRQ_MAC_PHYINT 119 /* PHY_INT Interrupt */
155#define IRQ_MAC_MMCINT 120 /* MMC Counter Interrupt */
156#define IRQ_MAC_RXFSINT 121 /* RX Frame-Status Interrupt */
157#define IRQ_MAC_TXFSINT 122 /* TX Frame-Status Interrupt */
158#define IRQ_MAC_WAKEDET 123 /* Wake-Up Interrupt */
159#define IRQ_MAC_RXDMAERR 124 /* RX DMA Direction Error Interrupt */
160#define IRQ_MAC_TXDMAERR 125 /* TX DMA Direction Error Interrupt */
161#define IRQ_MAC_STMDONE 126 /* Station Mgt. Transfer Done Interrupt */
162
163#define NR_MACH_IRQS (IRQ_MAC_STMDONE + 1)
164#define NR_IRQS (NR_MACH_IRQS + NR_SPARE_IRQS)
155 165
156#define IVG7 7 166#define IVG7 7
157#define IVG8 8 167#define IVG8 8
diff --git a/arch/blackfin/mach-bf518/include/mach/mem_map.h b/arch/blackfin/mach-bf518/include/mach/mem_map.h
index 3c6777cb3532..073b5d73d391 100644
--- a/arch/blackfin/mach-bf518/include/mach/mem_map.h
+++ b/arch/blackfin/mach-bf518/include/mach/mem_map.h
@@ -41,7 +41,7 @@
41#define L1_DATA_A_START 0xFF800000 41#define L1_DATA_A_START 0xFF800000
42#define L1_DATA_B_START 0xFF900000 42#define L1_DATA_B_START 0xFF900000
43 43
44#define L1_CODE_LENGTH 0xC000 44#define L1_CODE_LENGTH 0x8000
45 45
46#ifdef CONFIG_BFIN_DCACHE 46#ifdef CONFIG_BFIN_DCACHE
47 47
diff --git a/arch/blackfin/mach-bf527/boards/Kconfig b/arch/blackfin/mach-bf527/boards/Kconfig
index df224d04e167..b14c28810a44 100644
--- a/arch/blackfin/mach-bf527/boards/Kconfig
+++ b/arch/blackfin/mach-bf527/boards/Kconfig
@@ -9,6 +9,11 @@ config BFIN527_EZKIT
9 help 9 help
10 BF527-EZKIT-LITE board support. 10 BF527-EZKIT-LITE board support.
11 11
12config BFIN527_EZKIT_V2
13 bool "BF527-EZKIT-V2"
14 help
15 BF527-EZKIT-LITE V2.1+ board support.
16
12config BFIN527_BLUETECHNIX_CM 17config BFIN527_BLUETECHNIX_CM
13 bool "Bluetechnix CM-BF527" 18 bool "Bluetechnix CM-BF527"
14 help 19 help
diff --git a/arch/blackfin/mach-bf527/boards/Makefile b/arch/blackfin/mach-bf527/boards/Makefile
index eb6ed3362f9f..51a5817c4a90 100644
--- a/arch/blackfin/mach-bf527/boards/Makefile
+++ b/arch/blackfin/mach-bf527/boards/Makefile
@@ -3,5 +3,6 @@
3# 3#
4 4
5obj-$(CONFIG_BFIN527_EZKIT) += ezkit.o 5obj-$(CONFIG_BFIN527_EZKIT) += ezkit.o
6obj-$(CONFIG_BFIN527_EZKIT_V2) += ezkit.o
6obj-$(CONFIG_BFIN527_BLUETECHNIX_CM) += cm_bf527.o 7obj-$(CONFIG_BFIN527_BLUETECHNIX_CM) += cm_bf527.o
7obj-$(CONFIG_BFIN526_EZBRD) += ezbrd.o 8obj-$(CONFIG_BFIN526_EZBRD) += ezbrd.o
diff --git a/arch/blackfin/mach-bf527/boards/cm_bf527.c b/arch/blackfin/mach-bf527/boards/cm_bf527.c
index 7ab0800e2914..ebe76d1e874a 100644
--- a/arch/blackfin/mach-bf527/boards/cm_bf527.c
+++ b/arch/blackfin/mach-bf527/boards/cm_bf527.c
@@ -18,7 +18,6 @@
18#include <linux/i2c.h> 18#include <linux/i2c.h>
19#include <linux/irq.h> 19#include <linux/irq.h>
20#include <linux/interrupt.h> 20#include <linux/interrupt.h>
21#include <linux/usb/sl811.h>
22#include <linux/usb/musb.h> 21#include <linux/usb/musb.h>
23#include <asm/dma.h> 22#include <asm/dma.h>
24#include <asm/bfin5xx_spi.h> 23#include <asm/bfin5xx_spi.h>
@@ -270,50 +269,6 @@ static struct platform_device dm9000_device = {
270}; 269};
271#endif 270#endif
272 271
273#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
274static struct resource sl811_hcd_resources[] = {
275 {
276 .start = 0x20340000,
277 .end = 0x20340000,
278 .flags = IORESOURCE_MEM,
279 }, {
280 .start = 0x20340004,
281 .end = 0x20340004,
282 .flags = IORESOURCE_MEM,
283 }, {
284 .start = CONFIG_USB_SL811_BFIN_IRQ,
285 .end = CONFIG_USB_SL811_BFIN_IRQ,
286 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
287 },
288};
289
290#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS)
291void sl811_port_power(struct device *dev, int is_on)
292{
293 gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS");
294 gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS, is_on);
295}
296#endif
297
298static struct sl811_platform_data sl811_priv = {
299 .potpg = 10,
300 .power = 250, /* == 500mA */
301#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS)
302 .port_power = &sl811_port_power,
303#endif
304};
305
306static struct platform_device sl811_hcd_device = {
307 .name = "sl811-hcd",
308 .id = 0,
309 .dev = {
310 .platform_data = &sl811_priv,
311 },
312 .num_resources = ARRAY_SIZE(sl811_hcd_resources),
313 .resource = sl811_hcd_resources,
314};
315#endif
316
317#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 272#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
318static struct platform_device bfin_mii_bus = { 273static struct platform_device bfin_mii_bus = {
319 .name = "bfin_mii_bus", 274 .name = "bfin_mii_bus",
@@ -384,8 +339,8 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = {
384}; 339};
385#endif 340#endif
386 341
387#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 342#if defined(CONFIG_SND_BLACKFIN_AD183X) \
388 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 343 || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
389static struct bfin5xx_spi_chip ad1836_spi_chip_info = { 344static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
390 .enable_dma = 0, 345 .enable_dma = 0,
391 .bits_per_word = 16, 346 .bits_per_word = 16,
@@ -462,8 +417,8 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
462 }, 417 },
463#endif 418#endif
464 419
465#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 420#if defined(CONFIG_SND_BLACKFIN_AD183X) \
466 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 421 || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
467 { 422 {
468 .modalias = "ad1836", 423 .modalias = "ad1836",
469 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 424 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
@@ -603,30 +558,105 @@ static struct platform_device cm_flash_device = {
603#endif 558#endif
604 559
605#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 560#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
606static struct resource bfin_uart_resources[] = {
607#ifdef CONFIG_SERIAL_BFIN_UART0 561#ifdef CONFIG_SERIAL_BFIN_UART0
562static struct resource bfin_uart0_resources[] = {
608 { 563 {
609 .start = 0xFFC00400, 564 .start = UART0_THR,
610 .end = 0xFFC004FF, 565 .end = UART0_GCTL+2,
611 .flags = IORESOURCE_MEM, 566 .flags = IORESOURCE_MEM,
612 }, 567 },
568 {
569 .start = IRQ_UART0_RX,
570 .end = IRQ_UART0_RX+1,
571 .flags = IORESOURCE_IRQ,
572 },
573 {
574 .start = IRQ_UART0_ERROR,
575 .end = IRQ_UART0_ERROR,
576 .flags = IORESOURCE_IRQ,
577 },
578 {
579 .start = CH_UART0_TX,
580 .end = CH_UART0_TX,
581 .flags = IORESOURCE_DMA,
582 },
583 {
584 .start = CH_UART0_RX,
585 .end = CH_UART0_RX,
586 .flags = IORESOURCE_DMA,
587 },
588};
589
590unsigned short bfin_uart0_peripherals[] = {
591 P_UART0_TX, P_UART0_RX, 0
592};
593
594static struct platform_device bfin_uart0_device = {
595 .name = "bfin-uart",
596 .id = 0,
597 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
598 .resource = bfin_uart0_resources,
599 .dev = {
600 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
601 },
602};
613#endif 603#endif
614#ifdef CONFIG_SERIAL_BFIN_UART1 604#ifdef CONFIG_SERIAL_BFIN_UART1
605static struct resource bfin_uart1_resources[] = {
615 { 606 {
616 .start = 0xFFC02000, 607 .start = UART1_THR,
617 .end = 0xFFC020FF, 608 .end = UART1_GCTL+2,
618 .flags = IORESOURCE_MEM, 609 .flags = IORESOURCE_MEM,
619 }, 610 },
611 {
612 .start = IRQ_UART1_RX,
613 .end = IRQ_UART1_RX+1,
614 .flags = IORESOURCE_IRQ,
615 },
616 {
617 .start = IRQ_UART1_ERROR,
618 .end = IRQ_UART1_ERROR,
619 .flags = IORESOURCE_IRQ,
620 },
621 {
622 .start = CH_UART1_TX,
623 .end = CH_UART1_TX,
624 .flags = IORESOURCE_DMA,
625 },
626 {
627 .start = CH_UART1_RX,
628 .end = CH_UART1_RX,
629 .flags = IORESOURCE_DMA,
630 },
631#ifdef CONFIG_BFIN_UART1_CTSRTS
632 { /* CTS pin */
633 .start = GPIO_PF9,
634 .end = GPIO_PF9,
635 .flags = IORESOURCE_IO,
636 },
637 { /* RTS pin */
638 .start = GPIO_PF10,
639 .end = GPIO_PF10,
640 .flags = IORESOURCE_IO,
641 },
620#endif 642#endif
621}; 643};
622 644
623static struct platform_device bfin_uart_device = { 645unsigned short bfin_uart1_peripherals[] = {
646 P_UART1_TX, P_UART1_RX, 0
647};
648
649static struct platform_device bfin_uart1_device = {
624 .name = "bfin-uart", 650 .name = "bfin-uart",
625 .id = 1, 651 .id = 1,
626 .num_resources = ARRAY_SIZE(bfin_uart_resources), 652 .num_resources = ARRAY_SIZE(bfin_uart1_resources),
627 .resource = bfin_uart_resources, 653 .resource = bfin_uart1_resources,
654 .dev = {
655 .platform_data = &bfin_uart1_peripherals, /* Passed to driver */
656 },
628}; 657};
629#endif 658#endif
659#endif
630 660
631#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 661#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
632#ifdef CONFIG_BFIN_SIR0 662#ifdef CONFIG_BFIN_SIR0
@@ -725,16 +755,75 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
725}; 755};
726 756
727#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 757#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
758#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
759static struct resource bfin_sport0_uart_resources[] = {
760 {
761 .start = SPORT0_TCR1,
762 .end = SPORT0_MRCS3+4,
763 .flags = IORESOURCE_MEM,
764 },
765 {
766 .start = IRQ_SPORT0_RX,
767 .end = IRQ_SPORT0_RX+1,
768 .flags = IORESOURCE_IRQ,
769 },
770 {
771 .start = IRQ_SPORT0_ERROR,
772 .end = IRQ_SPORT0_ERROR,
773 .flags = IORESOURCE_IRQ,
774 },
775};
776
777unsigned short bfin_sport0_peripherals[] = {
778 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
779 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
780};
781
728static struct platform_device bfin_sport0_uart_device = { 782static struct platform_device bfin_sport0_uart_device = {
729 .name = "bfin-sport-uart", 783 .name = "bfin-sport-uart",
730 .id = 0, 784 .id = 0,
785 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
786 .resource = bfin_sport0_uart_resources,
787 .dev = {
788 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
789 },
790};
791#endif
792#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
793static struct resource bfin_sport1_uart_resources[] = {
794 {
795 .start = SPORT1_TCR1,
796 .end = SPORT1_MRCS3+4,
797 .flags = IORESOURCE_MEM,
798 },
799 {
800 .start = IRQ_SPORT1_RX,
801 .end = IRQ_SPORT1_RX+1,
802 .flags = IORESOURCE_IRQ,
803 },
804 {
805 .start = IRQ_SPORT1_ERROR,
806 .end = IRQ_SPORT1_ERROR,
807 .flags = IORESOURCE_IRQ,
808 },
809};
810
811unsigned short bfin_sport1_peripherals[] = {
812 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
813 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
731}; 814};
732 815
733static struct platform_device bfin_sport1_uart_device = { 816static struct platform_device bfin_sport1_uart_device = {
734 .name = "bfin-sport-uart", 817 .name = "bfin-sport-uart",
735 .id = 1, 818 .id = 1,
819 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
820 .resource = bfin_sport1_uart_resources,
821 .dev = {
822 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
823 },
736}; 824};
737#endif 825#endif
826#endif
738 827
739#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 828#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
740#include <linux/input.h> 829#include <linux/input.h>
@@ -795,10 +884,6 @@ static struct platform_device *cmbf527_devices[] __initdata = {
795 &rtc_device, 884 &rtc_device,
796#endif 885#endif
797 886
798#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
799 &sl811_hcd_device,
800#endif
801
802#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) 887#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
803 &bfin_isp1760_device, 888 &bfin_isp1760_device,
804#endif 889#endif
@@ -829,7 +914,12 @@ static struct platform_device *cmbf527_devices[] __initdata = {
829#endif 914#endif
830 915
831#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 916#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
832 &bfin_uart_device, 917#ifdef CONFIG_SERIAL_BFIN_UART0
918 &bfin_uart0_device,
919#endif
920#ifdef CONFIG_SERIAL_BFIN_UART1
921 &bfin_uart1_device,
922#endif
833#endif 923#endif
834 924
835#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 925#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -846,9 +936,13 @@ static struct platform_device *cmbf527_devices[] __initdata = {
846#endif 936#endif
847 937
848#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 938#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
939#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
849 &bfin_sport0_uart_device, 940 &bfin_sport0_uart_device,
941#endif
942#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
850 &bfin_sport1_uart_device, 943 &bfin_sport1_uart_device,
851#endif 944#endif
945#endif
852 946
853#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 947#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
854 &bfin_device_gpiokeys, 948 &bfin_device_gpiokeys,
@@ -871,6 +965,33 @@ static int __init cm_init(void)
871 965
872arch_initcall(cm_init); 966arch_initcall(cm_init);
873 967
968static struct platform_device *cmbf527_early_devices[] __initdata = {
969#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
970#ifdef CONFIG_SERIAL_BFIN_UART0
971 &bfin_uart0_device,
972#endif
973#ifdef CONFIG_SERIAL_BFIN_UART1
974 &bfin_uart1_device,
975#endif
976#endif
977
978#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
979#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
980 &bfin_sport0_uart_device,
981#endif
982#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
983 &bfin_sport1_uart_device,
984#endif
985#endif
986};
987
988void __init native_machine_early_platform_add_devices(void)
989{
990 printk(KERN_INFO "register early platform devices\n");
991 early_platform_add_devices(cmbf527_early_devices,
992 ARRAY_SIZE(cmbf527_early_devices));
993}
994
874void native_machine_restart(char *cmd) 995void native_machine_restart(char *cmd)
875{ 996{
876 /* workaround reboot hang when booting from SPI */ 997 /* workaround reboot hang when booting from SPI */
diff --git a/arch/blackfin/mach-bf527/boards/ezbrd.c b/arch/blackfin/mach-bf527/boards/ezbrd.c
index cad23b15d83c..55069af4f67d 100644
--- a/arch/blackfin/mach-bf527/boards/ezbrd.c
+++ b/arch/blackfin/mach-bf527/boards/ezbrd.c
@@ -274,8 +274,8 @@ static const struct ad7879_platform_data bfin_ad7879_ts_info = {
274 .median = 2, /* do 8 measurements */ 274 .median = 2, /* do 8 measurements */
275 .averaging = 1, /* take the average of 4 middle samples */ 275 .averaging = 1, /* take the average of 4 middle samples */
276 .pen_down_acc_interval = 255, /* 9.4 ms */ 276 .pen_down_acc_interval = 255, /* 9.4 ms */
277 .gpio_output = 1, /* configure AUX/VBAT/GPIO as GPIO output */ 277 .gpio_export = 1, /* Export GPIO to gpiolib */
278 .gpio_default = 1, /* During initialization set GPIO = HIGH */ 278 .gpio_base = -1, /* Dynamic allocation */
279}; 279};
280#endif 280#endif
281 281
@@ -439,30 +439,105 @@ static struct platform_device bfin_spi0_device = {
439#endif /* spi master and devices */ 439#endif /* spi master and devices */
440 440
441#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 441#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
442static struct resource bfin_uart_resources[] = {
443#ifdef CONFIG_SERIAL_BFIN_UART0 442#ifdef CONFIG_SERIAL_BFIN_UART0
443static struct resource bfin_uart0_resources[] = {
444 { 444 {
445 .start = 0xFFC00400, 445 .start = UART0_THR,
446 .end = 0xFFC004FF, 446 .end = UART0_GCTL+2,
447 .flags = IORESOURCE_MEM, 447 .flags = IORESOURCE_MEM,
448 }, 448 },
449 {
450 .start = IRQ_UART0_RX,
451 .end = IRQ_UART0_RX+1,
452 .flags = IORESOURCE_IRQ,
453 },
454 {
455 .start = IRQ_UART0_ERROR,
456 .end = IRQ_UART0_ERROR,
457 .flags = IORESOURCE_IRQ,
458 },
459 {
460 .start = CH_UART0_TX,
461 .end = CH_UART0_TX,
462 .flags = IORESOURCE_DMA,
463 },
464 {
465 .start = CH_UART0_RX,
466 .end = CH_UART0_RX,
467 .flags = IORESOURCE_DMA,
468 },
469};
470
471unsigned short bfin_uart0_peripherals[] = {
472 P_UART0_TX, P_UART0_RX, 0
473};
474
475static struct platform_device bfin_uart0_device = {
476 .name = "bfin-uart",
477 .id = 0,
478 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
479 .resource = bfin_uart0_resources,
480 .dev = {
481 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
482 },
483};
449#endif 484#endif
450#ifdef CONFIG_SERIAL_BFIN_UART1 485#ifdef CONFIG_SERIAL_BFIN_UART1
486static struct resource bfin_uart1_resources[] = {
451 { 487 {
452 .start = 0xFFC02000, 488 .start = UART1_THR,
453 .end = 0xFFC020FF, 489 .end = UART1_GCTL+2,
454 .flags = IORESOURCE_MEM, 490 .flags = IORESOURCE_MEM,
455 }, 491 },
492 {
493 .start = IRQ_UART1_RX,
494 .end = IRQ_UART1_RX+1,
495 .flags = IORESOURCE_IRQ,
496 },
497 {
498 .start = IRQ_UART1_ERROR,
499 .end = IRQ_UART1_ERROR,
500 .flags = IORESOURCE_IRQ,
501 },
502 {
503 .start = CH_UART1_TX,
504 .end = CH_UART1_TX,
505 .flags = IORESOURCE_DMA,
506 },
507 {
508 .start = CH_UART1_RX,
509 .end = CH_UART1_RX,
510 .flags = IORESOURCE_DMA,
511 },
512#ifdef CONFIG_BFIN_UART1_CTSRTS
513 { /* CTS pin */
514 .start = GPIO_PG0,
515 .end = GPIO_PG0,
516 .flags = IORESOURCE_IO,
517 },
518 { /* RTS pin */
519 .start = GPIO_PF10,
520 .end = GPIO_PF10,
521 .flags = IORESOURCE_IO,
522 },
456#endif 523#endif
457}; 524};
458 525
459static struct platform_device bfin_uart_device = { 526unsigned short bfin_uart1_peripherals[] = {
527 P_UART1_TX, P_UART1_RX, 0
528};
529
530static struct platform_device bfin_uart1_device = {
460 .name = "bfin-uart", 531 .name = "bfin-uart",
461 .id = 1, 532 .id = 1,
462 .num_resources = ARRAY_SIZE(bfin_uart_resources), 533 .num_resources = ARRAY_SIZE(bfin_uart1_resources),
463 .resource = bfin_uart_resources, 534 .resource = bfin_uart1_resources,
535 .dev = {
536 .platform_data = &bfin_uart1_peripherals, /* Passed to driver */
537 },
464}; 538};
465#endif 539#endif
540#endif
466 541
467#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 542#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
468#ifdef CONFIG_BFIN_SIR0 543#ifdef CONFIG_BFIN_SIR0
@@ -556,16 +631,75 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
556}; 631};
557 632
558#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 633#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
634#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
635static struct resource bfin_sport0_uart_resources[] = {
636 {
637 .start = SPORT0_TCR1,
638 .end = SPORT0_MRCS3+4,
639 .flags = IORESOURCE_MEM,
640 },
641 {
642 .start = IRQ_SPORT0_RX,
643 .end = IRQ_SPORT0_RX+1,
644 .flags = IORESOURCE_IRQ,
645 },
646 {
647 .start = IRQ_SPORT0_ERROR,
648 .end = IRQ_SPORT0_ERROR,
649 .flags = IORESOURCE_IRQ,
650 },
651};
652
653unsigned short bfin_sport0_peripherals[] = {
654 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
655 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
656};
657
559static struct platform_device bfin_sport0_uart_device = { 658static struct platform_device bfin_sport0_uart_device = {
560 .name = "bfin-sport-uart", 659 .name = "bfin-sport-uart",
561 .id = 0, 660 .id = 0,
661 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
662 .resource = bfin_sport0_uart_resources,
663 .dev = {
664 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
665 },
666};
667#endif
668#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
669static struct resource bfin_sport1_uart_resources[] = {
670 {
671 .start = SPORT1_TCR1,
672 .end = SPORT1_MRCS3+4,
673 .flags = IORESOURCE_MEM,
674 },
675 {
676 .start = IRQ_SPORT1_RX,
677 .end = IRQ_SPORT1_RX+1,
678 .flags = IORESOURCE_IRQ,
679 },
680 {
681 .start = IRQ_SPORT1_ERROR,
682 .end = IRQ_SPORT1_ERROR,
683 .flags = IORESOURCE_IRQ,
684 },
685};
686
687unsigned short bfin_sport1_peripherals[] = {
688 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
689 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
562}; 690};
563 691
564static struct platform_device bfin_sport1_uart_device = { 692static struct platform_device bfin_sport1_uart_device = {
565 .name = "bfin-sport-uart", 693 .name = "bfin-sport-uart",
566 .id = 1, 694 .id = 1,
695 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
696 .resource = bfin_sport1_uart_resources,
697 .dev = {
698 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
699 },
567}; 700};
568#endif 701#endif
702#endif
569 703
570#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 704#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
571#include <linux/input.h> 705#include <linux/input.h>
@@ -615,9 +749,10 @@ static struct platform_device bfin_dpmc = {
615#include <asm/bfin-lq035q1.h> 749#include <asm/bfin-lq035q1.h>
616 750
617static struct bfin_lq035q1fb_disp_info bfin_lq035q1_data = { 751static struct bfin_lq035q1fb_disp_info bfin_lq035q1_data = {
618 .mode = LQ035_NORM | LQ035_RGB | LQ035_RL | LQ035_TB, 752 .mode = LQ035_NORM | LQ035_RGB | LQ035_RL | LQ035_TB,
619 .use_bl = 1, 753 .ppi_mode = USE_RGB565_16_BIT_PPI,
620 .gpio_bl = GPIO_PG12, 754 .use_bl = 1,
755 .gpio_bl = GPIO_PG12,
621}; 756};
622 757
623static struct resource bfin_lq035q1_resources[] = { 758static struct resource bfin_lq035q1_resources[] = {
@@ -665,7 +800,12 @@ static struct platform_device *stamp_devices[] __initdata = {
665#endif 800#endif
666 801
667#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 802#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
668 &bfin_uart_device, 803#ifdef CONFIG_SERIAL_BFIN_UART0
804 &bfin_uart0_device,
805#endif
806#ifdef CONFIG_SERIAL_BFIN_UART1
807 &bfin_uart1_device,
808#endif
669#endif 809#endif
670 810
671#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE) 811#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
@@ -686,9 +826,13 @@ static struct platform_device *stamp_devices[] __initdata = {
686#endif 826#endif
687 827
688#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 828#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
829#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
689 &bfin_sport0_uart_device, 830 &bfin_sport0_uart_device,
831#endif
832#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
690 &bfin_sport1_uart_device, 833 &bfin_sport1_uart_device,
691#endif 834#endif
835#endif
692 836
693#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 837#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
694 &bfin_device_gpiokeys, 838 &bfin_device_gpiokeys,
@@ -711,6 +855,33 @@ static int __init ezbrd_init(void)
711 855
712arch_initcall(ezbrd_init); 856arch_initcall(ezbrd_init);
713 857
858static struct platform_device *ezbrd_early_devices[] __initdata = {
859#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
860#ifdef CONFIG_SERIAL_BFIN_UART0
861 &bfin_uart0_device,
862#endif
863#ifdef CONFIG_SERIAL_BFIN_UART1
864 &bfin_uart1_device,
865#endif
866#endif
867
868#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
869#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
870 &bfin_sport0_uart_device,
871#endif
872#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
873 &bfin_sport1_uart_device,
874#endif
875#endif
876};
877
878void __init native_machine_early_platform_add_devices(void)
879{
880 printk(KERN_INFO "register early platform devices\n");
881 early_platform_add_devices(ezbrd_early_devices,
882 ARRAY_SIZE(ezbrd_early_devices));
883}
884
714void native_machine_restart(char *cmd) 885void native_machine_restart(char *cmd)
715{ 886{
716 /* workaround reboot hang when booting from SPI */ 887 /* workaround reboot hang when booting from SPI */
diff --git a/arch/blackfin/mach-bf527/boards/ezkit.c b/arch/blackfin/mach-bf527/boards/ezkit.c
index 5294fdd20732..923383386aa1 100644
--- a/arch/blackfin/mach-bf527/boards/ezkit.c
+++ b/arch/blackfin/mach-bf527/boards/ezkit.c
@@ -16,8 +16,9 @@
16#include <linux/i2c.h> 16#include <linux/i2c.h>
17#include <linux/irq.h> 17#include <linux/irq.h>
18#include <linux/interrupt.h> 18#include <linux/interrupt.h>
19#include <linux/usb/sl811.h>
20#include <linux/usb/musb.h> 19#include <linux/usb/musb.h>
20#include <linux/leds.h>
21#include <linux/input.h>
21#include <asm/dma.h> 22#include <asm/dma.h>
22#include <asm/bfin5xx_spi.h> 23#include <asm/bfin5xx_spi.h>
23#include <asm/reboot.h> 24#include <asm/reboot.h>
@@ -29,7 +30,11 @@
29/* 30/*
30 * Name the Board for the /proc/cpuinfo 31 * Name the Board for the /proc/cpuinfo
31 */ 32 */
33#ifdef CONFIG_BFIN527_EZKIT_V2
34const char bfin_board_name[] = "ADI BF527-EZKIT V2";
35#else
32const char bfin_board_name[] = "ADI BF527-EZKIT"; 36const char bfin_board_name[] = "ADI BF527-EZKIT";
37#endif
33 38
34/* 39/*
35 * Driver needs to know address, irq and flag pin. 40 * Driver needs to know address, irq and flag pin.
@@ -143,6 +148,33 @@ static struct platform_device bf52x_t350mcqb_device = {
143}; 148};
144#endif 149#endif
145 150
151#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
152#include <asm/bfin-lq035q1.h>
153
154static struct bfin_lq035q1fb_disp_info bfin_lq035q1_data = {
155 .mode = LQ035_NORM | LQ035_RGB | LQ035_RL | LQ035_TB,
156 .ppi_mode = USE_RGB565_8_BIT_PPI,
157};
158
159static struct resource bfin_lq035q1_resources[] = {
160 {
161 .start = IRQ_PPI_ERROR,
162 .end = IRQ_PPI_ERROR,
163 .flags = IORESOURCE_IRQ,
164 },
165};
166
167static struct platform_device bfin_lq035q1_device = {
168 .name = "bfin-lq035q1",
169 .id = -1,
170 .num_resources = ARRAY_SIZE(bfin_lq035q1_resources),
171 .resource = bfin_lq035q1_resources,
172 .dev = {
173 .platform_data = &bfin_lq035q1_data,
174 },
175};
176#endif
177
146#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) 178#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
147static struct mtd_partition ezkit_partitions[] = { 179static struct mtd_partition ezkit_partitions[] = {
148 { 180 {
@@ -326,50 +358,6 @@ static struct platform_device dm9000_device = {
326}; 358};
327#endif 359#endif
328 360
329#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
330static struct resource sl811_hcd_resources[] = {
331 {
332 .start = 0x20340000,
333 .end = 0x20340000,
334 .flags = IORESOURCE_MEM,
335 }, {
336 .start = 0x20340004,
337 .end = 0x20340004,
338 .flags = IORESOURCE_MEM,
339 }, {
340 .start = CONFIG_USB_SL811_BFIN_IRQ,
341 .end = CONFIG_USB_SL811_BFIN_IRQ,
342 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
343 },
344};
345
346#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS)
347void sl811_port_power(struct device *dev, int is_on)
348{
349 gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS");
350 gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS, is_on);
351}
352#endif
353
354static struct sl811_platform_data sl811_priv = {
355 .potpg = 10,
356 .power = 250, /* == 500mA */
357#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS)
358 .port_power = &sl811_port_power,
359#endif
360};
361
362static struct platform_device sl811_hcd_device = {
363 .name = "sl811-hcd",
364 .id = 0,
365 .dev = {
366 .platform_data = &sl811_priv,
367 },
368 .num_resources = ARRAY_SIZE(sl811_hcd_resources),
369 .resource = sl811_hcd_resources,
370};
371#endif
372
373#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 361#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
374static struct platform_device bfin_mii_bus = { 362static struct platform_device bfin_mii_bus = {
375 .name = "bfin_mii_bus", 363 .name = "bfin_mii_bus",
@@ -440,8 +428,8 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = {
440}; 428};
441#endif 429#endif
442 430
443#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 431#if defined(CONFIG_SND_BLACKFIN_AD183X) \
444 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 432 || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
445static struct bfin5xx_spi_chip ad1836_spi_chip_info = { 433static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
446 .enable_dma = 0, 434 .enable_dma = 0,
447 .bits_per_word = 16, 435 .bits_per_word = 16,
@@ -488,8 +476,7 @@ static const struct ad7879_platform_data bfin_ad7879_ts_info = {
488 .median = 2, /* do 8 measurements */ 476 .median = 2, /* do 8 measurements */
489 .averaging = 1, /* take the average of 4 middle samples */ 477 .averaging = 1, /* take the average of 4 middle samples */
490 .pen_down_acc_interval = 255, /* 9.4 ms */ 478 .pen_down_acc_interval = 255, /* 9.4 ms */
491 .gpio_output = 1, /* configure AUX/VBAT/GPIO as GPIO output */ 479 .gpio_export = 0, /* Export GPIO to gpiolib */
492 .gpio_default = 1, /* During initialization set GPIO = HIGH */
493}; 480};
494#endif 481#endif
495 482
@@ -500,14 +487,6 @@ static struct bfin5xx_spi_chip spi_ad7879_chip_info = {
500}; 487};
501#endif 488#endif
502 489
503#if defined(CONFIG_SND_SOC_WM8731) || defined(CONFIG_SND_SOC_WM8731_MODULE) \
504 && defined(CONFIG_SND_SOC_WM8731_SPI)
505static struct bfin5xx_spi_chip spi_wm8731_chip_info = {
506 .enable_dma = 0,
507 .bits_per_word = 16,
508};
509#endif
510
511#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) 490#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
512static struct bfin5xx_spi_chip spidev_chip_info = { 491static struct bfin5xx_spi_chip spidev_chip_info = {
513 .enable_dma = 0, 492 .enable_dma = 0,
@@ -515,6 +494,29 @@ static struct bfin5xx_spi_chip spidev_chip_info = {
515}; 494};
516#endif 495#endif
517 496
497#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
498static struct platform_device bfin_i2s = {
499 .name = "bfin-i2s",
500 .id = CONFIG_SND_BF5XX_SPORT_NUM,
501 /* TODO: add platform data here */
502};
503#endif
504
505#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
506static struct platform_device bfin_tdm = {
507 .name = "bfin-tdm",
508 .id = CONFIG_SND_BF5XX_SPORT_NUM,
509 /* TODO: add platform data here */
510};
511#endif
512
513#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
514static struct bfin5xx_spi_chip lq035q1_spi_chip_info = {
515 .enable_dma = 0,
516 .bits_per_word = 8,
517};
518#endif
519
518static struct spi_board_info bfin_spi_board_info[] __initdata = { 520static struct spi_board_info bfin_spi_board_info[] __initdata = {
519#if defined(CONFIG_MTD_M25P80) \ 521#if defined(CONFIG_MTD_M25P80) \
520 || defined(CONFIG_MTD_M25P80_MODULE) 522 || defined(CONFIG_MTD_M25P80_MODULE)
@@ -542,8 +544,8 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
542 }, 544 },
543#endif 545#endif
544 546
545#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 547#if defined(CONFIG_SND_BLACKFIN_AD183X) \
546 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 548 || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
547 { 549 {
548 .modalias = "ad1836", 550 .modalias = "ad1836",
549 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 551 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
@@ -586,17 +588,6 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
586 .mode = SPI_CPHA | SPI_CPOL, 588 .mode = SPI_CPHA | SPI_CPOL,
587 }, 589 },
588#endif 590#endif
589#if defined(CONFIG_SND_SOC_WM8731) || defined(CONFIG_SND_SOC_WM8731_MODULE) \
590 && defined(CONFIG_SND_SOC_WM8731_SPI)
591 {
592 .modalias = "wm8731",
593 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
594 .bus_num = 0,
595 .chip_select = 5,
596 .controller_data = &spi_wm8731_chip_info,
597 .mode = SPI_MODE_0,
598 },
599#endif
600#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) 591#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
601 { 592 {
602 .modalias = "spidev", 593 .modalias = "spidev",
@@ -606,6 +597,16 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
606 .controller_data = &spidev_chip_info, 597 .controller_data = &spidev_chip_info,
607 }, 598 },
608#endif 599#endif
600#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
601 {
602 .modalias = "bfin-lq035q1-spi",
603 .max_speed_hz = 20000000, /* max spi clock (SCK) speed in HZ */
604 .bus_num = 0,
605 .chip_select = 7,
606 .controller_data = &lq035q1_spi_chip_info,
607 .mode = SPI_CPHA | SPI_CPOL,
608 },
609#endif
609}; 610};
610 611
611#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 612#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
@@ -647,30 +648,105 @@ static struct platform_device bfin_spi0_device = {
647#endif /* spi master and devices */ 648#endif /* spi master and devices */
648 649
649#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 650#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
650static struct resource bfin_uart_resources[] = {
651#ifdef CONFIG_SERIAL_BFIN_UART0 651#ifdef CONFIG_SERIAL_BFIN_UART0
652static struct resource bfin_uart0_resources[] = {
652 { 653 {
653 .start = 0xFFC00400, 654 .start = UART0_THR,
654 .end = 0xFFC004FF, 655 .end = UART0_GCTL+2,
655 .flags = IORESOURCE_MEM, 656 .flags = IORESOURCE_MEM,
656 }, 657 },
658 {
659 .start = IRQ_UART0_RX,
660 .end = IRQ_UART0_RX+1,
661 .flags = IORESOURCE_IRQ,
662 },
663 {
664 .start = IRQ_UART0_ERROR,
665 .end = IRQ_UART0_ERROR,
666 .flags = IORESOURCE_IRQ,
667 },
668 {
669 .start = CH_UART0_TX,
670 .end = CH_UART0_TX,
671 .flags = IORESOURCE_DMA,
672 },
673 {
674 .start = CH_UART0_RX,
675 .end = CH_UART0_RX,
676 .flags = IORESOURCE_DMA,
677 },
678};
679
680unsigned short bfin_uart0_peripherals[] = {
681 P_UART0_TX, P_UART0_RX, 0
682};
683
684static struct platform_device bfin_uart0_device = {
685 .name = "bfin-uart",
686 .id = 0,
687 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
688 .resource = bfin_uart0_resources,
689 .dev = {
690 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
691 },
692};
657#endif 693#endif
658#ifdef CONFIG_SERIAL_BFIN_UART1 694#ifdef CONFIG_SERIAL_BFIN_UART1
695static struct resource bfin_uart1_resources[] = {
659 { 696 {
660 .start = 0xFFC02000, 697 .start = UART1_THR,
661 .end = 0xFFC020FF, 698 .end = UART1_GCTL+2,
662 .flags = IORESOURCE_MEM, 699 .flags = IORESOURCE_MEM,
663 }, 700 },
701 {
702 .start = IRQ_UART1_RX,
703 .end = IRQ_UART1_RX+1,
704 .flags = IORESOURCE_IRQ,
705 },
706 {
707 .start = IRQ_UART1_ERROR,
708 .end = IRQ_UART1_ERROR,
709 .flags = IORESOURCE_IRQ,
710 },
711 {
712 .start = CH_UART1_TX,
713 .end = CH_UART1_TX,
714 .flags = IORESOURCE_DMA,
715 },
716 {
717 .start = CH_UART1_RX,
718 .end = CH_UART1_RX,
719 .flags = IORESOURCE_DMA,
720 },
721#ifdef CONFIG_BFIN_UART1_CTSRTS
722 { /* CTS pin */
723 .start = GPIO_PF9,
724 .end = GPIO_PF9,
725 .flags = IORESOURCE_IO,
726 },
727 { /* RTS pin */
728 .start = GPIO_PF10,
729 .end = GPIO_PF10,
730 .flags = IORESOURCE_IO,
731 },
664#endif 732#endif
665}; 733};
666 734
667static struct platform_device bfin_uart_device = { 735unsigned short bfin_uart1_peripherals[] = {
736 P_UART1_TX, P_UART1_RX, 0
737};
738
739static struct platform_device bfin_uart1_device = {
668 .name = "bfin-uart", 740 .name = "bfin-uart",
669 .id = 1, 741 .id = 1,
670 .num_resources = ARRAY_SIZE(bfin_uart_resources), 742 .num_resources = ARRAY_SIZE(bfin_uart1_resources),
671 .resource = bfin_uart_resources, 743 .resource = bfin_uart1_resources,
744 .dev = {
745 .platform_data = &bfin_uart1_peripherals, /* Passed to driver */
746 },
672}; 747};
673#endif 748#endif
749#endif
674 750
675#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 751#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
676#ifdef CONFIG_BFIN_SIR0 752#ifdef CONFIG_BFIN_SIR0
@@ -749,6 +825,71 @@ static struct platform_device i2c_bfin_twi_device = {
749}; 825};
750#endif 826#endif
751 827
828#if defined(CONFIG_PMIC_ADP5520) || defined(CONFIG_PMIC_ADP5520_MODULE)
829#include <linux/mfd/adp5520.h>
830
831 /*
832 * ADP5520/5501 LEDs Data
833 */
834
835static struct led_info adp5520_leds[] = {
836 {
837 .name = "adp5520-led1",
838 .default_trigger = "none",
839 .flags = FLAG_ID_ADP5520_LED1_ADP5501_LED0 | ADP5520_LED_OFFT_600ms,
840 },
841};
842
843static struct adp5520_leds_platform_data adp5520_leds_data = {
844 .num_leds = ARRAY_SIZE(adp5520_leds),
845 .leds = adp5520_leds,
846 .fade_in = ADP5520_FADE_T_600ms,
847 .fade_out = ADP5520_FADE_T_600ms,
848 .led_on_time = ADP5520_LED_ONT_600ms,
849};
850
851 /*
852 * ADP5520 Keypad Data
853 */
854
855static const unsigned short adp5520_keymap[ADP5520_KEYMAPSIZE] = {
856 [ADP5520_KEY(3, 3)] = KEY_1,
857 [ADP5520_KEY(2, 3)] = KEY_2,
858 [ADP5520_KEY(1, 3)] = KEY_3,
859 [ADP5520_KEY(0, 3)] = KEY_UP,
860 [ADP5520_KEY(3, 2)] = KEY_4,
861 [ADP5520_KEY(2, 2)] = KEY_5,
862 [ADP5520_KEY(1, 2)] = KEY_6,
863 [ADP5520_KEY(0, 2)] = KEY_DOWN,
864 [ADP5520_KEY(3, 1)] = KEY_7,
865 [ADP5520_KEY(2, 1)] = KEY_8,
866 [ADP5520_KEY(1, 1)] = KEY_9,
867 [ADP5520_KEY(0, 1)] = KEY_DOT,
868 [ADP5520_KEY(3, 0)] = KEY_BACKSPACE,
869 [ADP5520_KEY(2, 0)] = KEY_0,
870 [ADP5520_KEY(1, 0)] = KEY_HELP,
871 [ADP5520_KEY(0, 0)] = KEY_ENTER,
872};
873
874static struct adp5520_keys_platform_data adp5520_keys_data = {
875 .rows_en_mask = ADP5520_ROW_R3 | ADP5520_ROW_R2 | ADP5520_ROW_R1 | ADP5520_ROW_R0,
876 .cols_en_mask = ADP5520_COL_C3 | ADP5520_COL_C2 | ADP5520_COL_C1 | ADP5520_COL_C0,
877 .keymap = adp5520_keymap,
878 .keymapsize = ARRAY_SIZE(adp5520_keymap),
879 .repeat = 0,
880};
881
882 /*
883 * ADP5520/5501 Multifuction Device Init Data
884 */
885
886static struct adp5520_platform_data adp5520_pdev_data = {
887 .leds = &adp5520_leds_data,
888 .keys = &adp5520_keys_data,
889};
890
891#endif
892
752static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 893static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
753#if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE) 894#if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE)
754 { 895 {
@@ -766,22 +907,99 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
766 I2C_BOARD_INFO("bfin-adv7393", 0x2B), 907 I2C_BOARD_INFO("bfin-adv7393", 0x2B),
767 }, 908 },
768#endif 909#endif
910#if defined(CONFIG_TOUCHSCREEN_AD7879_I2C) || defined(CONFIG_TOUCHSCREEN_AD7879_I2C_MODULE)
911 {
912 I2C_BOARD_INFO("ad7879", 0x2C),
913 .irq = IRQ_PF8,
914 .platform_data = (void *)&bfin_ad7879_ts_info,
915 },
916#endif
917#if defined(CONFIG_PMIC_ADP5520) || defined(CONFIG_PMIC_ADP5520_MODULE)
918 {
919 I2C_BOARD_INFO("pmic-adp5520", 0x32),
920 .irq = IRQ_PF9,
921 .platform_data = (void *)&adp5520_pdev_data,
922 },
923#endif
924#if defined(CONFIG_SND_SOC_SSM2602) || defined(CONFIG_SND_SOC_SSM2602_MODULE)
925 {
926 I2C_BOARD_INFO("ssm2602", 0x1b),
927 },
928#endif
769}; 929};
770 930
771#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 931#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
932#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
933static struct resource bfin_sport0_uart_resources[] = {
934 {
935 .start = SPORT0_TCR1,
936 .end = SPORT0_MRCS3+4,
937 .flags = IORESOURCE_MEM,
938 },
939 {
940 .start = IRQ_SPORT0_RX,
941 .end = IRQ_SPORT0_RX+1,
942 .flags = IORESOURCE_IRQ,
943 },
944 {
945 .start = IRQ_SPORT0_ERROR,
946 .end = IRQ_SPORT0_ERROR,
947 .flags = IORESOURCE_IRQ,
948 },
949};
950
951unsigned short bfin_sport0_peripherals[] = {
952 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
953 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
954};
955
772static struct platform_device bfin_sport0_uart_device = { 956static struct platform_device bfin_sport0_uart_device = {
773 .name = "bfin-sport-uart", 957 .name = "bfin-sport-uart",
774 .id = 0, 958 .id = 0,
959 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
960 .resource = bfin_sport0_uart_resources,
961 .dev = {
962 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
963 },
964};
965#endif
966#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
967static struct resource bfin_sport1_uart_resources[] = {
968 {
969 .start = SPORT1_TCR1,
970 .end = SPORT1_MRCS3+4,
971 .flags = IORESOURCE_MEM,
972 },
973 {
974 .start = IRQ_SPORT1_RX,
975 .end = IRQ_SPORT1_RX+1,
976 .flags = IORESOURCE_IRQ,
977 },
978 {
979 .start = IRQ_SPORT1_ERROR,
980 .end = IRQ_SPORT1_ERROR,
981 .flags = IORESOURCE_IRQ,
982 },
983};
984
985unsigned short bfin_sport1_peripherals[] = {
986 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
987 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
775}; 988};
776 989
777static struct platform_device bfin_sport1_uart_device = { 990static struct platform_device bfin_sport1_uart_device = {
778 .name = "bfin-sport-uart", 991 .name = "bfin-sport-uart",
779 .id = 1, 992 .id = 1,
993 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
994 .resource = bfin_sport1_uart_resources,
995 .dev = {
996 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
997 },
780}; 998};
781#endif 999#endif
1000#endif
782 1001
783#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 1002#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
784#include <linux/input.h>
785#include <linux/gpio_keys.h> 1003#include <linux/gpio_keys.h>
786 1004
787static struct gpio_keys_button bfin_gpio_keys_table[] = { 1005static struct gpio_keys_button bfin_gpio_keys_table[] = {
@@ -803,7 +1021,6 @@ static struct platform_device bfin_device_gpiokeys = {
803#endif 1021#endif
804 1022
805#if defined(CONFIG_INPUT_BFIN_ROTARY) || defined(CONFIG_INPUT_BFIN_ROTARY_MODULE) 1023#if defined(CONFIG_INPUT_BFIN_ROTARY) || defined(CONFIG_INPUT_BFIN_ROTARY_MODULE)
806#include <linux/input.h>
807#include <asm/bfin_rotary.h> 1024#include <asm/bfin_rotary.h>
808 1025
809static struct bfin_rotary_platform_data bfin_rotary_data = { 1026static struct bfin_rotary_platform_data bfin_rotary_data = {
@@ -872,10 +1089,6 @@ static struct platform_device *stamp_devices[] __initdata = {
872 &rtc_device, 1089 &rtc_device,
873#endif 1090#endif
874 1091
875#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
876 &sl811_hcd_device,
877#endif
878
879#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE) 1092#if defined(CONFIG_USB_ISP1760_HCD) || defined(CONFIG_USB_ISP1760_HCD_MODULE)
880 &bfin_isp1760_device, 1093 &bfin_isp1760_device,
881#endif 1094#endif
@@ -909,8 +1122,17 @@ static struct platform_device *stamp_devices[] __initdata = {
909 &bf52x_t350mcqb_device, 1122 &bf52x_t350mcqb_device,
910#endif 1123#endif
911 1124
1125#if defined(CONFIG_FB_BFIN_LQ035Q1) || defined(CONFIG_FB_BFIN_LQ035Q1_MODULE)
1126 &bfin_lq035q1_device,
1127#endif
1128
912#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 1129#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
913 &bfin_uart_device, 1130#ifdef CONFIG_SERIAL_BFIN_UART0
1131 &bfin_uart0_device,
1132#endif
1133#ifdef CONFIG_SERIAL_BFIN_UART1
1134 &bfin_uart1_device,
1135#endif
914#endif 1136#endif
915 1137
916#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 1138#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -927,9 +1149,13 @@ static struct platform_device *stamp_devices[] __initdata = {
927#endif 1149#endif
928 1150
929#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 1151#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
1152#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
930 &bfin_sport0_uart_device, 1153 &bfin_sport0_uart_device,
1154#endif
1155#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
931 &bfin_sport1_uart_device, 1156 &bfin_sport1_uart_device,
932#endif 1157#endif
1158#endif
933 1159
934#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 1160#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
935 &bfin_device_gpiokeys, 1161 &bfin_device_gpiokeys,
@@ -942,6 +1168,14 @@ static struct platform_device *stamp_devices[] __initdata = {
942#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) 1168#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
943 &ezkit_flash_device, 1169 &ezkit_flash_device,
944#endif 1170#endif
1171
1172#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
1173 &bfin_i2s,
1174#endif
1175
1176#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
1177 &bfin_tdm,
1178#endif
945}; 1179};
946 1180
947static int __init ezkit_init(void) 1181static int __init ezkit_init(void)
@@ -956,6 +1190,33 @@ static int __init ezkit_init(void)
956 1190
957arch_initcall(ezkit_init); 1191arch_initcall(ezkit_init);
958 1192
1193static struct platform_device *ezkit_early_devices[] __initdata = {
1194#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
1195#ifdef CONFIG_SERIAL_BFIN_UART0
1196 &bfin_uart0_device,
1197#endif
1198#ifdef CONFIG_SERIAL_BFIN_UART1
1199 &bfin_uart1_device,
1200#endif
1201#endif
1202
1203#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
1204#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
1205 &bfin_sport0_uart_device,
1206#endif
1207#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
1208 &bfin_sport1_uart_device,
1209#endif
1210#endif
1211};
1212
1213void __init native_machine_early_platform_add_devices(void)
1214{
1215 printk(KERN_INFO "register early platform devices\n");
1216 early_platform_add_devices(ezkit_early_devices,
1217 ARRAY_SIZE(ezkit_early_devices));
1218}
1219
959void native_machine_restart(char *cmd) 1220void native_machine_restart(char *cmd)
960{ 1221{
961 /* workaround reboot hang when booting from SPI */ 1222 /* workaround reboot hang when booting from SPI */
diff --git a/arch/blackfin/mach-bf527/include/mach/irq.h b/arch/blackfin/mach-bf527/include/mach/irq.h
index aa6579a64a2f..704d9253e41d 100644
--- a/arch/blackfin/mach-bf527/include/mach/irq.h
+++ b/arch/blackfin/mach-bf527/include/mach/irq.h
@@ -151,7 +151,17 @@
151 151
152#define GPIO_IRQ_BASE IRQ_PF0 152#define GPIO_IRQ_BASE IRQ_PF0
153 153
154#define NR_IRQS (IRQ_PH15+1) 154#define IRQ_MAC_PHYINT 119 /* PHY_INT Interrupt */
155#define IRQ_MAC_MMCINT 120 /* MMC Counter Interrupt */
156#define IRQ_MAC_RXFSINT 121 /* RX Frame-Status Interrupt */
157#define IRQ_MAC_TXFSINT 122 /* TX Frame-Status Interrupt */
158#define IRQ_MAC_WAKEDET 123 /* Wake-Up Interrupt */
159#define IRQ_MAC_RXDMAERR 124 /* RX DMA Direction Error Interrupt */
160#define IRQ_MAC_TXDMAERR 125 /* TX DMA Direction Error Interrupt */
161#define IRQ_MAC_STMDONE 126 /* Station Mgt. Transfer Done Interrupt */
162
163#define NR_MACH_IRQS (IRQ_MAC_STMDONE + 1)
164#define NR_IRQS (NR_MACH_IRQS + NR_SPARE_IRQS)
155 165
156#define IVG7 7 166#define IVG7 7
157#define IVG8 8 167#define IVG8 8
diff --git a/arch/blackfin/mach-bf533/boards/H8606.c b/arch/blackfin/mach-bf533/boards/H8606.c
index 4adceb0bdb6d..175371af0692 100644
--- a/arch/blackfin/mach-bf533/boards/H8606.c
+++ b/arch/blackfin/mach-bf533/boards/H8606.c
@@ -171,7 +171,7 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = {
171}; 171};
172#endif 172#endif
173 173
174#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 174#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
175static struct bfin5xx_spi_chip ad1836_spi_chip_info = { 175static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
176 .enable_dma = 0, 176 .enable_dma = 0,
177 .bits_per_word = 16, 177 .bits_per_word = 16,
@@ -206,7 +206,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
206 }, 206 },
207#endif 207#endif
208 208
209#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 209#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
210 { 210 {
211 .modalias = "ad1836", 211 .modalias = "ad1836",
212 .max_speed_hz = 16, 212 .max_speed_hz = 16,
@@ -257,21 +257,50 @@ static struct platform_device bfin_spi0_device = {
257#endif /* spi master and devices */ 257#endif /* spi master and devices */
258 258
259#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 259#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
260static struct resource bfin_uart_resources[] = { 260#ifdef CONFIG_SERIAL_BFIN_UART0
261static struct resource bfin_uart0_resources[] = {
261 { 262 {
262 .start = 0xFFC00400, 263 .start = BFIN_UART_THR,
263 .end = 0xFFC004FF, 264 .end = BFIN_UART_GCTL+2,
264 .flags = IORESOURCE_MEM, 265 .flags = IORESOURCE_MEM,
265 }, 266 },
267 {
268 .start = IRQ_UART0_RX,
269 .end = IRQ_UART0_RX + 1,
270 .flags = IORESOURCE_IRQ,
271 },
272 {
273 .start = IRQ_UART0_ERROR,
274 .end = IRQ_UART0_ERROR,
275 .flags = IORESOURCE_IRQ,
276 },
277 {
278 .start = CH_UART0_TX,
279 .end = CH_UART0_TX,
280 .flags = IORESOURCE_DMA,
281 },
282 {
283 .start = CH_UART0_RX,
284 .end = CH_UART0_RX,
285 .flags = IORESOURCE_DMA,
286 },
287};
288
289unsigned short bfin_uart0_peripherals[] = {
290 P_UART0_TX, P_UART0_RX, 0
266}; 291};
267 292
268static struct platform_device bfin_uart_device = { 293static struct platform_device bfin_uart0_device = {
269 .name = "bfin-uart", 294 .name = "bfin-uart",
270 .id = 1, 295 .id = 0,
271 .num_resources = ARRAY_SIZE(bfin_uart_resources), 296 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
272 .resource = bfin_uart_resources, 297 .resource = bfin_uart0_resources,
298 .dev = {
299 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
300 },
273}; 301};
274#endif 302#endif
303#endif
275 304
276#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 305#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
277#ifdef CONFIG_BFIN_SIR0 306#ifdef CONFIG_BFIN_SIR0
@@ -394,7 +423,9 @@ static struct platform_device *h8606_devices[] __initdata = {
394#endif 423#endif
395 424
396#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 425#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
397 &bfin_uart_device, 426#ifdef CONFIG_SERIAL_BFIN_UART0
427 &bfin_uart0_device,
428#endif
398#endif 429#endif
399 430
400#if defined(CONFIG_SERIAL_8250) || defined(CONFIG_SERIAL_8250_MODULE) 431#if defined(CONFIG_SERIAL_8250) || defined(CONFIG_SERIAL_8250_MODULE)
@@ -424,3 +455,18 @@ static int __init H8606_init(void)
424} 455}
425 456
426arch_initcall(H8606_init); 457arch_initcall(H8606_init);
458
459static struct platform_device *H8606_early_devices[] __initdata = {
460#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
461#ifdef CONFIG_SERIAL_BFIN_UART0
462 &bfin_uart0_device,
463#endif
464#endif
465};
466
467void __init native_machine_early_platform_add_devices(void)
468{
469 printk(KERN_INFO "register early platform devices\n");
470 early_platform_add_devices(H8606_early_devices,
471 ARRAY_SIZE(H8606_early_devices));
472}
diff --git a/arch/blackfin/mach-bf533/boards/blackstamp.c b/arch/blackfin/mach-bf533/boards/blackstamp.c
index b580884848d4..842b4fa76ea9 100644
--- a/arch/blackfin/mach-bf533/boards/blackstamp.c
+++ b/arch/blackfin/mach-bf533/boards/blackstamp.c
@@ -195,21 +195,50 @@ static struct platform_device bfin_spi0_device = {
195#endif /* spi master and devices */ 195#endif /* spi master and devices */
196 196
197#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 197#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
198static struct resource bfin_uart_resources[] = { 198#ifdef CONFIG_SERIAL_BFIN_UART0
199static struct resource bfin_uart0_resources[] = {
199 { 200 {
200 .start = 0xFFC00400, 201 .start = BFIN_UART_THR,
201 .end = 0xFFC004FF, 202 .end = BFIN_UART_GCTL+2,
202 .flags = IORESOURCE_MEM, 203 .flags = IORESOURCE_MEM,
203 }, 204 },
205 {
206 .start = IRQ_UART0_RX,
207 .end = IRQ_UART0_RX + 1,
208 .flags = IORESOURCE_IRQ,
209 },
210 {
211 .start = IRQ_UART0_ERROR,
212 .end = IRQ_UART0_ERROR,
213 .flags = IORESOURCE_IRQ,
214 },
215 {
216 .start = CH_UART0_TX,
217 .end = CH_UART0_TX,
218 .flags = IORESOURCE_DMA,
219 },
220 {
221 .start = CH_UART0_RX,
222 .end = CH_UART0_RX,
223 .flags = IORESOURCE_DMA,
224 },
225};
226
227unsigned short bfin_uart0_peripherals[] = {
228 P_UART0_TX, P_UART0_RX, 0
204}; 229};
205 230
206static struct platform_device bfin_uart_device = { 231static struct platform_device bfin_uart0_device = {
207 .name = "bfin-uart", 232 .name = "bfin-uart",
208 .id = 1, 233 .id = 0,
209 .num_resources = ARRAY_SIZE(bfin_uart_resources), 234 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
210 .resource = bfin_uart_resources, 235 .resource = bfin_uart0_resources,
236 .dev = {
237 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
238 },
211}; 239};
212#endif 240#endif
241#endif
213 242
214#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 243#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
215#ifdef CONFIG_BFIN_SIR0 244#ifdef CONFIG_BFIN_SIR0
@@ -241,16 +270,75 @@ static struct platform_device bfin_sir0_device = {
241#endif 270#endif
242 271
243#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 272#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
273#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
274static struct resource bfin_sport0_uart_resources[] = {
275 {
276 .start = SPORT0_TCR1,
277 .end = SPORT0_MRCS3+4,
278 .flags = IORESOURCE_MEM,
279 },
280 {
281 .start = IRQ_SPORT0_RX,
282 .end = IRQ_SPORT0_RX+1,
283 .flags = IORESOURCE_IRQ,
284 },
285 {
286 .start = IRQ_SPORT0_ERROR,
287 .end = IRQ_SPORT0_ERROR,
288 .flags = IORESOURCE_IRQ,
289 },
290};
291
292unsigned short bfin_sport0_peripherals[] = {
293 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
294 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
295};
296
244static struct platform_device bfin_sport0_uart_device = { 297static struct platform_device bfin_sport0_uart_device = {
245 .name = "bfin-sport-uart", 298 .name = "bfin-sport-uart",
246 .id = 0, 299 .id = 0,
300 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
301 .resource = bfin_sport0_uart_resources,
302 .dev = {
303 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
304 },
305};
306#endif
307#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
308static struct resource bfin_sport1_uart_resources[] = {
309 {
310 .start = SPORT1_TCR1,
311 .end = SPORT1_MRCS3+4,
312 .flags = IORESOURCE_MEM,
313 },
314 {
315 .start = IRQ_SPORT1_RX,
316 .end = IRQ_SPORT1_RX+1,
317 .flags = IORESOURCE_IRQ,
318 },
319 {
320 .start = IRQ_SPORT1_ERROR,
321 .end = IRQ_SPORT1_ERROR,
322 .flags = IORESOURCE_IRQ,
323 },
324};
325
326unsigned short bfin_sport1_peripherals[] = {
327 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
328 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
247}; 329};
248 330
249static struct platform_device bfin_sport1_uart_device = { 331static struct platform_device bfin_sport1_uart_device = {
250 .name = "bfin-sport-uart", 332 .name = "bfin-sport-uart",
251 .id = 1, 333 .id = 1,
334 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
335 .resource = bfin_sport1_uart_resources,
336 .dev = {
337 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
338 },
252}; 339};
253#endif 340#endif
341#endif
254 342
255#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 343#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
256#include <linux/input.h> 344#include <linux/input.h>
@@ -344,7 +432,9 @@ static struct platform_device *stamp_devices[] __initdata = {
344#endif 432#endif
345 433
346#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 434#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
347 &bfin_uart_device, 435#ifdef CONFIG_SERIAL_BFIN_UART0
436 &bfin_uart0_device,
437#endif
348#endif 438#endif
349 439
350#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 440#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -354,9 +444,13 @@ static struct platform_device *stamp_devices[] __initdata = {
354#endif 444#endif
355 445
356#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 446#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
447#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
357 &bfin_sport0_uart_device, 448 &bfin_sport0_uart_device,
449#endif
450#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
358 &bfin_sport1_uart_device, 451 &bfin_sport1_uart_device,
359#endif 452#endif
453#endif
360 454
361#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 455#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
362 &bfin_device_gpiokeys, 456 &bfin_device_gpiokeys,
@@ -392,3 +486,27 @@ static int __init blackstamp_init(void)
392} 486}
393 487
394arch_initcall(blackstamp_init); 488arch_initcall(blackstamp_init);
489
490static struct platform_device *stamp_early_devices[] __initdata = {
491#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
492#ifdef CONFIG_SERIAL_BFIN_UART0
493 &bfin_uart0_device,
494#endif
495#endif
496
497#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
498#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
499 &bfin_sport0_uart_device,
500#endif
501#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
502 &bfin_sport1_uart_device,
503#endif
504#endif
505};
506
507void __init native_machine_early_platform_add_devices(void)
508{
509 printk(KERN_INFO "register early platform devices\n");
510 early_platform_add_devices(stamp_early_devices,
511 ARRAY_SIZE(stamp_early_devices));
512}
diff --git a/arch/blackfin/mach-bf533/boards/cm_bf533.c b/arch/blackfin/mach-bf533/boards/cm_bf533.c
index 7fc3b860d4ae..fdcde61906dc 100644
--- a/arch/blackfin/mach-bf533/boards/cm_bf533.c
+++ b/arch/blackfin/mach-bf533/boards/cm_bf533.c
@@ -71,7 +71,7 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = {
71}; 71};
72#endif 72#endif
73 73
74#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 74#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
75static struct bfin5xx_spi_chip ad1836_spi_chip_info = { 75static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
76 .enable_dma = 0, 76 .enable_dma = 0,
77 .bits_per_word = 16, 77 .bits_per_word = 16,
@@ -110,7 +110,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
110 }, 110 },
111#endif 111#endif
112 112
113#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 113#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
114 { 114 {
115 .modalias = "ad1836", 115 .modalias = "ad1836",
116 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 116 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
@@ -242,21 +242,50 @@ static struct platform_device smsc911x_device = {
242#endif 242#endif
243 243
244#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 244#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
245static struct resource bfin_uart_resources[] = { 245#ifdef CONFIG_SERIAL_BFIN_UART0
246static struct resource bfin_uart0_resources[] = {
246 { 247 {
247 .start = 0xFFC00400, 248 .start = BFIN_UART_THR,
248 .end = 0xFFC004FF, 249 .end = BFIN_UART_GCTL+2,
249 .flags = IORESOURCE_MEM, 250 .flags = IORESOURCE_MEM,
250 }, 251 },
252 {
253 .start = IRQ_UART0_RX,
254 .end = IRQ_UART0_RX + 1,
255 .flags = IORESOURCE_IRQ,
256 },
257 {
258 .start = IRQ_UART0_ERROR,
259 .end = IRQ_UART0_ERROR,
260 .flags = IORESOURCE_IRQ,
261 },
262 {
263 .start = CH_UART0_TX,
264 .end = CH_UART0_TX,
265 .flags = IORESOURCE_DMA,
266 },
267 {
268 .start = CH_UART0_RX,
269 .end = CH_UART0_RX,
270 .flags = IORESOURCE_DMA,
271 },
272};
273
274unsigned short bfin_uart0_peripherals[] = {
275 P_UART0_TX, P_UART0_RX, 0
251}; 276};
252 277
253static struct platform_device bfin_uart_device = { 278static struct platform_device bfin_uart0_device = {
254 .name = "bfin-uart", 279 .name = "bfin-uart",
255 .id = 1, 280 .id = 0,
256 .num_resources = ARRAY_SIZE(bfin_uart_resources), 281 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
257 .resource = bfin_uart_resources, 282 .resource = bfin_uart0_resources,
283 .dev = {
284 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
285 },
258}; 286};
259#endif 287#endif
288#endif
260 289
261#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 290#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
262#ifdef CONFIG_BFIN_SIR0 291#ifdef CONFIG_BFIN_SIR0
@@ -288,16 +317,75 @@ static struct platform_device bfin_sir0_device = {
288#endif 317#endif
289 318
290#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 319#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
320#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
321static struct resource bfin_sport0_uart_resources[] = {
322 {
323 .start = SPORT0_TCR1,
324 .end = SPORT0_MRCS3+4,
325 .flags = IORESOURCE_MEM,
326 },
327 {
328 .start = IRQ_SPORT0_RX,
329 .end = IRQ_SPORT0_RX+1,
330 .flags = IORESOURCE_IRQ,
331 },
332 {
333 .start = IRQ_SPORT0_ERROR,
334 .end = IRQ_SPORT0_ERROR,
335 .flags = IORESOURCE_IRQ,
336 },
337};
338
339unsigned short bfin_sport0_peripherals[] = {
340 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
341 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
342};
343
291static struct platform_device bfin_sport0_uart_device = { 344static struct platform_device bfin_sport0_uart_device = {
292 .name = "bfin-sport-uart", 345 .name = "bfin-sport-uart",
293 .id = 0, 346 .id = 0,
347 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
348 .resource = bfin_sport0_uart_resources,
349 .dev = {
350 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
351 },
352};
353#endif
354#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
355static struct resource bfin_sport1_uart_resources[] = {
356 {
357 .start = SPORT1_TCR1,
358 .end = SPORT1_MRCS3+4,
359 .flags = IORESOURCE_MEM,
360 },
361 {
362 .start = IRQ_SPORT1_RX,
363 .end = IRQ_SPORT1_RX+1,
364 .flags = IORESOURCE_IRQ,
365 },
366 {
367 .start = IRQ_SPORT1_ERROR,
368 .end = IRQ_SPORT1_ERROR,
369 .flags = IORESOURCE_IRQ,
370 },
371};
372
373unsigned short bfin_sport1_peripherals[] = {
374 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
375 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
294}; 376};
295 377
296static struct platform_device bfin_sport1_uart_device = { 378static struct platform_device bfin_sport1_uart_device = {
297 .name = "bfin-sport-uart", 379 .name = "bfin-sport-uart",
298 .id = 1, 380 .id = 1,
381 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
382 .resource = bfin_sport1_uart_resources,
383 .dev = {
384 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
385 },
299}; 386};
300#endif 387#endif
388#endif
301 389
302#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 390#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
303static struct resource isp1362_hcd_resources[] = { 391static struct resource isp1362_hcd_resources[] = {
@@ -432,7 +520,9 @@ static struct platform_device *cm_bf533_devices[] __initdata = {
432 &bfin_dpmc, 520 &bfin_dpmc,
433 521
434#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 522#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
435 &bfin_uart_device, 523#ifdef CONFIG_SERIAL_BFIN_UART0
524 &bfin_uart0_device,
525#endif
436#endif 526#endif
437 527
438#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 528#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -442,9 +532,13 @@ static struct platform_device *cm_bf533_devices[] __initdata = {
442#endif 532#endif
443 533
444#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 534#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
535#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
445 &bfin_sport0_uart_device, 536 &bfin_sport0_uart_device,
537#endif
538#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
446 &bfin_sport1_uart_device, 539 &bfin_sport1_uart_device,
447#endif 540#endif
541#endif
448 542
449#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) 543#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
450 &rtc_device, 544 &rtc_device,
@@ -486,3 +580,27 @@ static int __init cm_bf533_init(void)
486} 580}
487 581
488arch_initcall(cm_bf533_init); 582arch_initcall(cm_bf533_init);
583
584static struct platform_device *cm_bf533_early_devices[] __initdata = {
585#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
586#ifdef CONFIG_SERIAL_BFIN_UART0
587 &bfin_uart0_device,
588#endif
589#endif
590
591#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
592#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
593 &bfin_sport0_uart_device,
594#endif
595#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
596 &bfin_sport1_uart_device,
597#endif
598#endif
599};
600
601void __init native_machine_early_platform_add_devices(void)
602{
603 printk(KERN_INFO "register early platform devices\n");
604 early_platform_add_devices(cm_bf533_early_devices,
605 ARRAY_SIZE(cm_bf533_early_devices));
606}
diff --git a/arch/blackfin/mach-bf533/boards/ezkit.c b/arch/blackfin/mach-bf533/boards/ezkit.c
index d4689dcc198e..739773cb7fc6 100644
--- a/arch/blackfin/mach-bf533/boards/ezkit.c
+++ b/arch/blackfin/mach-bf533/boards/ezkit.c
@@ -222,7 +222,7 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = {
222}; 222};
223#endif 223#endif
224 224
225#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 225#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
226static struct bfin5xx_spi_chip ad1836_spi_chip_info = { 226static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
227 .enable_dma = 0, 227 .enable_dma = 0,
228 .bits_per_word = 16, 228 .bits_per_word = 16,
@@ -261,7 +261,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
261 }, 261 },
262#endif 262#endif
263 263
264#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 264#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
265 { 265 {
266 .modalias = "ad1836", 266 .modalias = "ad1836",
267 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 267 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
@@ -320,21 +320,50 @@ static struct platform_device bfin_spi0_device = {
320#endif /* spi master and devices */ 320#endif /* spi master and devices */
321 321
322#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 322#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
323static struct resource bfin_uart_resources[] = { 323#ifdef CONFIG_SERIAL_BFIN_UART0
324static struct resource bfin_uart0_resources[] = {
324 { 325 {
325 .start = 0xFFC00400, 326 .start = BFIN_UART_THR,
326 .end = 0xFFC004FF, 327 .end = BFIN_UART_GCTL+2,
327 .flags = IORESOURCE_MEM, 328 .flags = IORESOURCE_MEM,
328 }, 329 },
330 {
331 .start = IRQ_UART0_RX,
332 .end = IRQ_UART0_RX + 1,
333 .flags = IORESOURCE_IRQ,
334 },
335 {
336 .start = IRQ_UART0_ERROR,
337 .end = IRQ_UART0_ERROR,
338 .flags = IORESOURCE_IRQ,
339 },
340 {
341 .start = CH_UART0_TX,
342 .end = CH_UART0_TX,
343 .flags = IORESOURCE_DMA,
344 },
345 {
346 .start = CH_UART0_RX,
347 .end = CH_UART0_RX,
348 .flags = IORESOURCE_DMA,
349 },
350};
351
352unsigned short bfin_uart0_peripherals[] = {
353 P_UART0_TX, P_UART0_RX, 0
329}; 354};
330 355
331static struct platform_device bfin_uart_device = { 356static struct platform_device bfin_uart0_device = {
332 .name = "bfin-uart", 357 .name = "bfin-uart",
333 .id = 1, 358 .id = 0,
334 .num_resources = ARRAY_SIZE(bfin_uart_resources), 359 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
335 .resource = bfin_uart_resources, 360 .resource = bfin_uart0_resources,
361 .dev = {
362 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
363 },
336}; 364};
337#endif 365#endif
366#endif
338 367
339#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 368#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
340#ifdef CONFIG_BFIN_SIR0 369#ifdef CONFIG_BFIN_SIR0
@@ -444,6 +473,30 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
444#endif 473#endif
445}; 474};
446 475
476#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
477static struct platform_device bfin_i2s = {
478 .name = "bfin-i2s",
479 .id = CONFIG_SND_BF5XX_SPORT_NUM,
480 /* TODO: add platform data here */
481};
482#endif
483
484#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
485static struct platform_device bfin_tdm = {
486 .name = "bfin-tdm",
487 .id = CONFIG_SND_BF5XX_SPORT_NUM,
488 /* TODO: add platform data here */
489};
490#endif
491
492#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
493static struct platform_device bfin_ac97 = {
494 .name = "bfin-ac97",
495 .id = CONFIG_SND_BF5XX_SPORT_NUM,
496 /* TODO: add platform data here */
497};
498#endif
499
447static struct platform_device *ezkit_devices[] __initdata = { 500static struct platform_device *ezkit_devices[] __initdata = {
448 501
449 &bfin_dpmc, 502 &bfin_dpmc,
@@ -471,7 +524,9 @@ static struct platform_device *ezkit_devices[] __initdata = {
471#endif 524#endif
472 525
473#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 526#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
474 &bfin_uart_device, 527#ifdef CONFIG_SERIAL_BFIN_UART0
528 &bfin_uart0_device,
529#endif
475#endif 530#endif
476 531
477#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 532#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -487,6 +542,18 @@ static struct platform_device *ezkit_devices[] __initdata = {
487#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE) 542#if defined(CONFIG_I2C_GPIO) || defined(CONFIG_I2C_GPIO_MODULE)
488 &i2c_gpio_device, 543 &i2c_gpio_device,
489#endif 544#endif
545
546#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
547 &bfin_i2s,
548#endif
549
550#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
551 &bfin_tdm,
552#endif
553
554#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
555 &bfin_ac97,
556#endif
490}; 557};
491 558
492static int __init ezkit_init(void) 559static int __init ezkit_init(void)
@@ -500,3 +567,18 @@ static int __init ezkit_init(void)
500} 567}
501 568
502arch_initcall(ezkit_init); 569arch_initcall(ezkit_init);
570
571static struct platform_device *ezkit_early_devices[] __initdata = {
572#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
573#ifdef CONFIG_SERIAL_BFIN_UART0
574 &bfin_uart0_device,
575#endif
576#endif
577};
578
579void __init native_machine_early_platform_add_devices(void)
580{
581 printk(KERN_INFO "register early platform devices\n");
582 early_platform_add_devices(ezkit_early_devices,
583 ARRAY_SIZE(ezkit_early_devices));
584}
diff --git a/arch/blackfin/mach-bf533/boards/ip0x.c b/arch/blackfin/mach-bf533/boards/ip0x.c
index 8ec42ba35b9e..7349970db978 100644
--- a/arch/blackfin/mach-bf533/boards/ip0x.c
+++ b/arch/blackfin/mach-bf533/boards/ip0x.c
@@ -19,6 +19,7 @@
19#include <linux/usb/isp1362.h> 19#include <linux/usb/isp1362.h>
20#endif 20#endif
21#include <asm/irq.h> 21#include <asm/irq.h>
22#include <asm/dma.h>
22#include <asm/bfin5xx_spi.h> 23#include <asm/bfin5xx_spi.h>
23#include <asm/portmux.h> 24#include <asm/portmux.h>
24 25
@@ -143,21 +144,50 @@ static struct platform_device spi_bfin_master_device = {
143#endif /* spi master and devices */ 144#endif /* spi master and devices */
144 145
145#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 146#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
146static struct resource bfin_uart_resources[] = { 147#ifdef CONFIG_SERIAL_BFIN_UART0
148static struct resource bfin_uart0_resources[] = {
147 { 149 {
148 .start = 0xFFC00400, 150 .start = BFIN_UART_THR,
149 .end = 0xFFC004FF, 151 .end = BFIN_UART_GCTL+2,
150 .flags = IORESOURCE_MEM, 152 .flags = IORESOURCE_MEM,
151 }, 153 },
154 {
155 .start = IRQ_UART0_RX,
156 .end = IRQ_UART0_RX + 1,
157 .flags = IORESOURCE_IRQ,
158 },
159 {
160 .start = IRQ_UART0_ERROR,
161 .end = IRQ_UART0_ERROR,
162 .flags = IORESOURCE_IRQ,
163 },
164 {
165 .start = CH_UART0_TX,
166 .end = CH_UART0_TX,
167 .flags = IORESOURCE_DMA,
168 },
169 {
170 .start = CH_UART0_RX,
171 .end = CH_UART0_RX,
172 .flags = IORESOURCE_DMA,
173 },
174};
175
176unsigned short bfin_uart0_peripherals[] = {
177 P_UART0_TX, P_UART0_RX, 0
152}; 178};
153 179
154static struct platform_device bfin_uart_device = { 180static struct platform_device bfin_uart0_device = {
155 .name = "bfin-uart", 181 .name = "bfin-uart",
156 .id = 1, 182 .id = 0,
157 .num_resources = ARRAY_SIZE(bfin_uart_resources), 183 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
158 .resource = bfin_uart_resources, 184 .resource = bfin_uart0_resources,
185 .dev = {
186 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
187 },
159}; 188};
160#endif 189#endif
190#endif
161 191
162#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 192#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
163#ifdef CONFIG_BFIN_SIR0 193#ifdef CONFIG_BFIN_SIR0
@@ -241,7 +271,9 @@ static struct platform_device *ip0x_devices[] __initdata = {
241#endif 271#endif
242 272
243#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 273#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
244 &bfin_uart_device, 274#ifdef CONFIG_SERIAL_BFIN_UART0
275 &bfin_uart0_device,
276#endif
245#endif 277#endif
246 278
247#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 279#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -276,3 +308,18 @@ static int __init ip0x_init(void)
276} 308}
277 309
278arch_initcall(ip0x_init); 310arch_initcall(ip0x_init);
311
312static struct platform_device *ip0x_early_devices[] __initdata = {
313#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
314#ifdef CONFIG_SERIAL_BFIN_UART0
315 &bfin_uart0_device,
316#endif
317#endif
318};
319
320void __init native_machine_early_platform_add_devices(void)
321{
322 printk(KERN_INFO "register early platform devices\n");
323 early_platform_add_devices(ip0x_early_devices,
324 ARRAY_SIZE(ip0x_early_devices));
325}
diff --git a/arch/blackfin/mach-bf533/boards/stamp.c b/arch/blackfin/mach-bf533/boards/stamp.c
index 6d68dcfa2da2..c457eaa60239 100644
--- a/arch/blackfin/mach-bf533/boards/stamp.c
+++ b/arch/blackfin/mach-bf533/boards/stamp.c
@@ -184,7 +184,7 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = {
184}; 184};
185#endif 185#endif
186 186
187#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 187#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
188static struct bfin5xx_spi_chip ad1836_spi_chip_info = { 188static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
189 .enable_dma = 0, 189 .enable_dma = 0,
190 .bits_per_word = 16, 190 .bits_per_word = 16,
@@ -251,7 +251,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
251 }, 251 },
252#endif 252#endif
253 253
254#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 254#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
255 { 255 {
256 .modalias = "ad1836", 256 .modalias = "ad1836",
257 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 257 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
@@ -322,21 +322,50 @@ static struct platform_device bfin_spi0_device = {
322#endif /* spi master and devices */ 322#endif /* spi master and devices */
323 323
324#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 324#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
325static struct resource bfin_uart_resources[] = { 325#ifdef CONFIG_SERIAL_BFIN_UART0
326static struct resource bfin_uart0_resources[] = {
326 { 327 {
327 .start = 0xFFC00400, 328 .start = BFIN_UART_THR,
328 .end = 0xFFC004FF, 329 .end = BFIN_UART_GCTL+2,
329 .flags = IORESOURCE_MEM, 330 .flags = IORESOURCE_MEM,
330 }, 331 },
332 {
333 .start = IRQ_UART0_RX,
334 .end = IRQ_UART0_RX + 1,
335 .flags = IORESOURCE_IRQ,
336 },
337 {
338 .start = IRQ_UART0_ERROR,
339 .end = IRQ_UART0_ERROR,
340 .flags = IORESOURCE_IRQ,
341 },
342 {
343 .start = CH_UART0_TX,
344 .end = CH_UART0_TX,
345 .flags = IORESOURCE_DMA,
346 },
347 {
348 .start = CH_UART0_RX,
349 .end = CH_UART0_RX,
350 .flags = IORESOURCE_DMA,
351 },
331}; 352};
332 353
333static struct platform_device bfin_uart_device = { 354unsigned short bfin_uart0_peripherals[] = {
355 P_UART0_TX, P_UART0_RX, 0
356};
357
358static struct platform_device bfin_uart0_device = {
334 .name = "bfin-uart", 359 .name = "bfin-uart",
335 .id = 1, 360 .id = 0,
336 .num_resources = ARRAY_SIZE(bfin_uart_resources), 361 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
337 .resource = bfin_uart_resources, 362 .resource = bfin_uart0_resources,
363 .dev = {
364 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
365 },
338}; 366};
339#endif 367#endif
368#endif
340 369
341#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 370#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
342#ifdef CONFIG_BFIN_SIR0 371#ifdef CONFIG_BFIN_SIR0
@@ -368,16 +397,75 @@ static struct platform_device bfin_sir0_device = {
368#endif 397#endif
369 398
370#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 399#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
400#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
401static struct resource bfin_sport0_uart_resources[] = {
402 {
403 .start = SPORT0_TCR1,
404 .end = SPORT0_MRCS3+4,
405 .flags = IORESOURCE_MEM,
406 },
407 {
408 .start = IRQ_SPORT0_RX,
409 .end = IRQ_SPORT0_RX+1,
410 .flags = IORESOURCE_IRQ,
411 },
412 {
413 .start = IRQ_SPORT0_ERROR,
414 .end = IRQ_SPORT0_ERROR,
415 .flags = IORESOURCE_IRQ,
416 },
417};
418
419unsigned short bfin_sport0_peripherals[] = {
420 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
421 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
422};
423
371static struct platform_device bfin_sport0_uart_device = { 424static struct platform_device bfin_sport0_uart_device = {
372 .name = "bfin-sport-uart", 425 .name = "bfin-sport-uart",
373 .id = 0, 426 .id = 0,
427 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
428 .resource = bfin_sport0_uart_resources,
429 .dev = {
430 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
431 },
432};
433#endif
434#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
435static struct resource bfin_sport1_uart_resources[] = {
436 {
437 .start = SPORT1_TCR1,
438 .end = SPORT1_MRCS3+4,
439 .flags = IORESOURCE_MEM,
440 },
441 {
442 .start = IRQ_SPORT1_RX,
443 .end = IRQ_SPORT1_RX+1,
444 .flags = IORESOURCE_IRQ,
445 },
446 {
447 .start = IRQ_SPORT1_ERROR,
448 .end = IRQ_SPORT1_ERROR,
449 .flags = IORESOURCE_IRQ,
450 },
451};
452
453unsigned short bfin_sport1_peripherals[] = {
454 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
455 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
374}; 456};
375 457
376static struct platform_device bfin_sport1_uart_device = { 458static struct platform_device bfin_sport1_uart_device = {
377 .name = "bfin-sport-uart", 459 .name = "bfin-sport-uart",
378 .id = 1, 460 .id = 1,
461 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
462 .resource = bfin_sport1_uart_resources,
463 .dev = {
464 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
465 },
379}; 466};
380#endif 467#endif
468#endif
381 469
382#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 470#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
383#include <linux/input.h> 471#include <linux/input.h>
@@ -474,6 +562,30 @@ static struct platform_device bfin_dpmc = {
474 }, 562 },
475}; 563};
476 564
565#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
566static struct platform_device bfin_i2s = {
567 .name = "bfin-i2s",
568 .id = CONFIG_SND_BF5XX_SPORT_NUM,
569 /* TODO: add platform data here */
570};
571#endif
572
573#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
574static struct platform_device bfin_tdm = {
575 .name = "bfin-tdm",
576 .id = CONFIG_SND_BF5XX_SPORT_NUM,
577 /* TODO: add platform data here */
578};
579#endif
580
581#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
582static struct platform_device bfin_ac97 = {
583 .name = "bfin-ac97",
584 .id = CONFIG_SND_BF5XX_SPORT_NUM,
585 /* TODO: add platform data here */
586};
587#endif
588
477static struct platform_device *stamp_devices[] __initdata = { 589static struct platform_device *stamp_devices[] __initdata = {
478 590
479 &bfin_dpmc, 591 &bfin_dpmc,
@@ -495,7 +607,9 @@ static struct platform_device *stamp_devices[] __initdata = {
495#endif 607#endif
496 608
497#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 609#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
498 &bfin_uart_device, 610#ifdef CONFIG_SERIAL_BFIN_UART0
611 &bfin_uart0_device,
612#endif
499#endif 613#endif
500 614
501#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 615#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -505,9 +619,13 @@ static struct platform_device *stamp_devices[] __initdata = {
505#endif 619#endif
506 620
507#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 621#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
622#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
508 &bfin_sport0_uart_device, 623 &bfin_sport0_uart_device,
624#endif
625#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
509 &bfin_sport1_uart_device, 626 &bfin_sport1_uart_device,
510#endif 627#endif
628#endif
511 629
512#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) 630#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
513 &bfin_device_gpiokeys, 631 &bfin_device_gpiokeys,
@@ -520,6 +638,18 @@ static struct platform_device *stamp_devices[] __initdata = {
520#if defined(CONFIG_MTD_BFIN_ASYNC) || defined(CONFIG_MTD_BFIN_ASYNC_MODULE) 638#if defined(CONFIG_MTD_BFIN_ASYNC) || defined(CONFIG_MTD_BFIN_ASYNC_MODULE)
521 &stamp_flash_device, 639 &stamp_flash_device,
522#endif 640#endif
641
642#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
643 &bfin_i2s,
644#endif
645
646#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
647 &bfin_tdm,
648#endif
649
650#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
651 &bfin_ac97,
652#endif
523}; 653};
524 654
525static int __init stamp_init(void) 655static int __init stamp_init(void)
@@ -548,6 +678,30 @@ static int __init stamp_init(void)
548 678
549arch_initcall(stamp_init); 679arch_initcall(stamp_init);
550 680
681static struct platform_device *stamp_early_devices[] __initdata = {
682#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
683#ifdef CONFIG_SERIAL_BFIN_UART0
684 &bfin_uart0_device,
685#endif
686#endif
687
688#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
689#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
690 &bfin_sport0_uart_device,
691#endif
692#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
693 &bfin_sport1_uart_device,
694#endif
695#endif
696};
697
698void __init native_machine_early_platform_add_devices(void)
699{
700 printk(KERN_INFO "register early platform devices\n");
701 early_platform_add_devices(stamp_early_devices,
702 ARRAY_SIZE(stamp_early_devices));
703}
704
551void native_machine_restart(char *cmd) 705void native_machine_restart(char *cmd)
552{ 706{
553 /* workaround pull up on cpld / flash pin not being strong enough */ 707 /* workaround pull up on cpld / flash pin not being strong enough */
diff --git a/arch/blackfin/mach-bf533/include/mach/irq.h b/arch/blackfin/mach-bf533/include/mach/irq.h
index c31498be0bbb..1f7e9765d954 100644
--- a/arch/blackfin/mach-bf533/include/mach/irq.h
+++ b/arch/blackfin/mach-bf533/include/mach/irq.h
@@ -104,7 +104,8 @@ Core Emulation **
104 104
105#define GPIO_IRQ_BASE IRQ_PF0 105#define GPIO_IRQ_BASE IRQ_PF0
106 106
107#define NR_IRQS (IRQ_PF15+1) 107#define NR_MACH_IRQS (IRQ_PF15 + 1)
108#define NR_IRQS (NR_MACH_IRQS + NR_SPARE_IRQS)
108 109
109#define IVG7 7 110#define IVG7 7
110#define IVG8 8 111#define IVG8 8
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537e.c b/arch/blackfin/mach-bf537/boards/cm_bf537e.c
index c85f4d770535..d35fc5fe4c2b 100644
--- a/arch/blackfin/mach-bf537/boards/cm_bf537e.c
+++ b/arch/blackfin/mach-bf537/boards/cm_bf537e.c
@@ -73,7 +73,7 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = {
73}; 73};
74#endif 74#endif
75 75
76#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 76#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
77static struct bfin5xx_spi_chip ad1836_spi_chip_info = { 77static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
78 .enable_dma = 0, 78 .enable_dma = 0,
79 .bits_per_word = 16, 79 .bits_per_word = 16,
@@ -112,7 +112,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
112 }, 112 },
113#endif 113#endif
114 114
115#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 115#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
116 { 116 {
117 .modalias = "ad1836", 117 .modalias = "ad1836",
118 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 118 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
@@ -329,8 +329,8 @@ static struct platform_device cm_flash_device = {
329#ifdef CONFIG_SERIAL_BFIN_UART0 329#ifdef CONFIG_SERIAL_BFIN_UART0
330static struct resource bfin_uart0_resources[] = { 330static struct resource bfin_uart0_resources[] = {
331 { 331 {
332 .start = 0xFFC00400, 332 .start = UART0_THR,
333 .end = 0xFFC004FF, 333 .end = UART0_GCTL+2,
334 .flags = IORESOURCE_MEM, 334 .flags = IORESOURCE_MEM,
335 }, 335 },
336 { 336 {
@@ -373,18 +373,25 @@ static struct resource bfin_uart0_resources[] = {
373#endif 373#endif
374}; 374};
375 375
376unsigned short bfin_uart0_peripherals[] = {
377 P_UART0_TX, P_UART0_RX, 0
378};
379
376static struct platform_device bfin_uart0_device = { 380static struct platform_device bfin_uart0_device = {
377 .name = "bfin-uart", 381 .name = "bfin-uart",
378 .id = 0, 382 .id = 0,
379 .num_resources = ARRAY_SIZE(bfin_uart0_resources), 383 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
380 .resource = bfin_uart0_resources, 384 .resource = bfin_uart0_resources,
385 .dev = {
386 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
387 },
381}; 388};
382#endif 389#endif
383#ifdef CONFIG_SERIAL_BFIN_UART1 390#ifdef CONFIG_SERIAL_BFIN_UART1
384static struct resource bfin_uart1_resources[] = { 391static struct resource bfin_uart1_resources[] = {
385 { 392 {
386 .start = 0xFFC02000, 393 .start = UART1_THR,
387 .end = 0xFFC020FF, 394 .end = UART1_GCTL+2,
388 .flags = IORESOURCE_MEM, 395 .flags = IORESOURCE_MEM,
389 }, 396 },
390 { 397 {
@@ -427,11 +434,18 @@ static struct resource bfin_uart1_resources[] = {
427#endif 434#endif
428}; 435};
429 436
437unsigned short bfin_uart1_peripherals[] = {
438 P_UART1_TX, P_UART1_RX, 0
439};
440
430static struct platform_device bfin_uart1_device = { 441static struct platform_device bfin_uart1_device = {
431 .name = "bfin-uart", 442 .name = "bfin-uart",
432 .id = 1, 443 .id = 1,
433 .num_resources = ARRAY_SIZE(bfin_uart1_resources), 444 .num_resources = ARRAY_SIZE(bfin_uart1_resources),
434 .resource = bfin_uart1_resources, 445 .resource = bfin_uart1_resources,
446 .dev = {
447 .platform_data = &bfin_uart1_peripherals, /* Passed to driver */
448 },
435}; 449};
436#endif 450#endif
437#endif 451#endif
@@ -512,16 +526,75 @@ static struct platform_device i2c_bfin_twi_device = {
512#endif 526#endif
513 527
514#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 528#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
529#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
530static struct resource bfin_sport0_uart_resources[] = {
531 {
532 .start = SPORT0_TCR1,
533 .end = SPORT0_MRCS3+4,
534 .flags = IORESOURCE_MEM,
535 },
536 {
537 .start = IRQ_SPORT0_RX,
538 .end = IRQ_SPORT0_RX+1,
539 .flags = IORESOURCE_IRQ,
540 },
541 {
542 .start = IRQ_SPORT0_ERROR,
543 .end = IRQ_SPORT0_ERROR,
544 .flags = IORESOURCE_IRQ,
545 },
546};
547
548unsigned short bfin_sport0_peripherals[] = {
549 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
550 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
551};
552
515static struct platform_device bfin_sport0_uart_device = { 553static struct platform_device bfin_sport0_uart_device = {
516 .name = "bfin-sport-uart", 554 .name = "bfin-sport-uart",
517 .id = 0, 555 .id = 0,
556 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
557 .resource = bfin_sport0_uart_resources,
558 .dev = {
559 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
560 },
561};
562#endif
563#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
564static struct resource bfin_sport1_uart_resources[] = {
565 {
566 .start = SPORT1_TCR1,
567 .end = SPORT1_MRCS3+4,
568 .flags = IORESOURCE_MEM,
569 },
570 {
571 .start = IRQ_SPORT1_RX,
572 .end = IRQ_SPORT1_RX+1,
573 .flags = IORESOURCE_IRQ,
574 },
575 {
576 .start = IRQ_SPORT1_ERROR,
577 .end = IRQ_SPORT1_ERROR,
578 .flags = IORESOURCE_IRQ,
579 },
580};
581
582unsigned short bfin_sport1_peripherals[] = {
583 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
584 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
518}; 585};
519 586
520static struct platform_device bfin_sport1_uart_device = { 587static struct platform_device bfin_sport1_uart_device = {
521 .name = "bfin-sport-uart", 588 .name = "bfin-sport-uart",
522 .id = 1, 589 .id = 1,
590 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
591 .resource = bfin_sport1_uart_resources,
592 .dev = {
593 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
594 },
523}; 595};
524#endif 596#endif
597#endif
525 598
526#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 599#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
527static struct platform_device bfin_mii_bus = { 600static struct platform_device bfin_mii_bus = {
@@ -633,9 +706,13 @@ static struct platform_device *cm_bf537e_devices[] __initdata = {
633#endif 706#endif
634 707
635#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 708#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
709#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
636 &bfin_sport0_uart_device, 710 &bfin_sport0_uart_device,
711#endif
712#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
637 &bfin_sport1_uart_device, 713 &bfin_sport1_uart_device,
638#endif 714#endif
715#endif
639 716
640#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 717#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
641 &isp1362_hcd_device, 718 &isp1362_hcd_device,
@@ -683,6 +760,33 @@ static int __init cm_bf537e_init(void)
683 760
684arch_initcall(cm_bf537e_init); 761arch_initcall(cm_bf537e_init);
685 762
763static struct platform_device *cm_bf537e_early_devices[] __initdata = {
764#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
765#ifdef CONFIG_SERIAL_BFIN_UART0
766 &bfin_uart0_device,
767#endif
768#ifdef CONFIG_SERIAL_BFIN_UART1
769 &bfin_uart1_device,
770#endif
771#endif
772
773#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
774#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
775 &bfin_sport0_uart_device,
776#endif
777#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
778 &bfin_sport1_uart_device,
779#endif
780#endif
781};
782
783void __init native_machine_early_platform_add_devices(void)
784{
785 printk(KERN_INFO "register early platform devices\n");
786 early_platform_add_devices(cm_bf537e_early_devices,
787 ARRAY_SIZE(cm_bf537e_early_devices));
788}
789
686void bfin_get_ether_addr(char *addr) 790void bfin_get_ether_addr(char *addr)
687{ 791{
688 random_ether_addr(addr); 792 random_ether_addr(addr);
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537u.c b/arch/blackfin/mach-bf537/boards/cm_bf537u.c
index ea11aa81340d..d464ad5b72b2 100644
--- a/arch/blackfin/mach-bf537/boards/cm_bf537u.c
+++ b/arch/blackfin/mach-bf537/boards/cm_bf537u.c
@@ -74,7 +74,7 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = {
74}; 74};
75#endif 75#endif
76 76
77#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 77#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
78static struct bfin5xx_spi_chip ad1836_spi_chip_info = { 78static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
79 .enable_dma = 0, 79 .enable_dma = 0,
80 .bits_per_word = 16, 80 .bits_per_word = 16,
@@ -113,7 +113,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
113 }, 113 },
114#endif 114#endif
115 115
116#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 116#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
117 { 117 {
118 .modalias = "ad1836", 118 .modalias = "ad1836",
119 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 119 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
@@ -327,25 +327,93 @@ static struct platform_device cm_flash_device = {
327#endif 327#endif
328 328
329#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 329#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
330static struct resource bfin_uart_resources[] = { 330#ifdef CONFIG_SERIAL_BFIN_UART0
331static struct resource bfin_uart0_resources[] = {
331 { 332 {
332 .start = 0xFFC00400, 333 .start = UART0_THR,
333 .end = 0xFFC004FF, 334 .end = UART0_GCTL+2,
334 .flags = IORESOURCE_MEM, 335 .flags = IORESOURCE_MEM,
335 }, { 336 },
336 .start = 0xFFC02000, 337 {
337 .end = 0xFFC020FF, 338 .start = IRQ_UART0_RX,
339 .end = IRQ_UART0_RX+1,
340 .flags = IORESOURCE_IRQ,
341 },
342 {
343 .start = IRQ_UART0_ERROR,
344 .end = IRQ_UART0_ERROR,
345 .flags = IORESOURCE_IRQ,
346 },
347 {
348 .start = CH_UART0_TX,
349 .end = CH_UART0_TX,
350 .flags = IORESOURCE_DMA,
351 },
352 {
353 .start = CH_UART0_RX,
354 .end = CH_UART0_RX,
355 .flags = IORESOURCE_DMA,
356 },
357};
358
359unsigned short bfin_uart0_peripherals[] = {
360 P_UART0_TX, P_UART0_RX, 0
361};
362
363static struct platform_device bfin_uart0_device = {
364 .name = "bfin-uart",
365 .id = 0,
366 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
367 .resource = bfin_uart0_resources,
368 .dev = {
369 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
370 },
371};
372#endif
373#ifdef CONFIG_SERIAL_BFIN_UART1
374static struct resource bfin_uart1_resources[] = {
375 {
376 .start = UART1_THR,
377 .end = UART1_GCTL+2,
338 .flags = IORESOURCE_MEM, 378 .flags = IORESOURCE_MEM,
339 }, 379 },
380 {
381 .start = IRQ_UART1_RX,
382 .end = IRQ_UART1_RX+1,
383 .flags = IORESOURCE_IRQ,
384 },
385 {
386 .start = IRQ_UART1_ERROR,
387 .end = IRQ_UART1_ERROR,
388 .flags = IORESOURCE_IRQ,
389 },
390 {
391 .start = CH_UART1_TX,
392 .end = CH_UART1_TX,
393 .flags = IORESOURCE_DMA,
394 },
395 {
396 .start = CH_UART1_RX,
397 .end = CH_UART1_RX,
398 .flags = IORESOURCE_DMA,
399 },
400};
401
402unsigned short bfin_uart1_peripherals[] = {
403 P_UART1_TX, P_UART1_RX, 0
340}; 404};
341 405
342static struct platform_device bfin_uart_device = { 406static struct platform_device bfin_uart1_device = {
343 .name = "bfin-uart", 407 .name = "bfin-uart",
344 .id = 1, 408 .id = 1,
345 .num_resources = ARRAY_SIZE(bfin_uart_resources), 409 .num_resources = ARRAY_SIZE(bfin_uart1_resources),
346 .resource = bfin_uart_resources, 410 .resource = bfin_uart1_resources,
411 .dev = {
412 .platform_data = &bfin_uart1_peripherals, /* Passed to driver */
413 },
347}; 414};
348#endif 415#endif
416#endif
349 417
350#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 418#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
351#ifdef CONFIG_BFIN_SIR0 419#ifdef CONFIG_BFIN_SIR0
@@ -423,16 +491,75 @@ static struct platform_device i2c_bfin_twi_device = {
423#endif 491#endif
424 492
425#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 493#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
494#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
495static struct resource bfin_sport0_uart_resources[] = {
496 {
497 .start = SPORT0_TCR1,
498 .end = SPORT0_MRCS3+4,
499 .flags = IORESOURCE_MEM,
500 },
501 {
502 .start = IRQ_SPORT0_RX,
503 .end = IRQ_SPORT0_RX+1,
504 .flags = IORESOURCE_IRQ,
505 },
506 {
507 .start = IRQ_SPORT0_ERROR,
508 .end = IRQ_SPORT0_ERROR,
509 .flags = IORESOURCE_IRQ,
510 },
511};
512
513unsigned short bfin_sport0_peripherals[] = {
514 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
515 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
516};
517
426static struct platform_device bfin_sport0_uart_device = { 518static struct platform_device bfin_sport0_uart_device = {
427 .name = "bfin-sport-uart", 519 .name = "bfin-sport-uart",
428 .id = 0, 520 .id = 0,
521 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
522 .resource = bfin_sport0_uart_resources,
523 .dev = {
524 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
525 },
526};
527#endif
528#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
529static struct resource bfin_sport1_uart_resources[] = {
530 {
531 .start = SPORT1_TCR1,
532 .end = SPORT1_MRCS3+4,
533 .flags = IORESOURCE_MEM,
534 },
535 {
536 .start = IRQ_SPORT1_RX,
537 .end = IRQ_SPORT1_RX+1,
538 .flags = IORESOURCE_IRQ,
539 },
540 {
541 .start = IRQ_SPORT1_ERROR,
542 .end = IRQ_SPORT1_ERROR,
543 .flags = IORESOURCE_IRQ,
544 },
545};
546
547unsigned short bfin_sport1_peripherals[] = {
548 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
549 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
429}; 550};
430 551
431static struct platform_device bfin_sport1_uart_device = { 552static struct platform_device bfin_sport1_uart_device = {
432 .name = "bfin-sport-uart", 553 .name = "bfin-sport-uart",
433 .id = 1, 554 .id = 1,
555 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
556 .resource = bfin_sport1_uart_resources,
557 .dev = {
558 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
559 },
434}; 560};
435#endif 561#endif
562#endif
436 563
437#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 564#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
438static struct platform_device bfin_mii_bus = { 565static struct platform_device bfin_mii_bus = {
@@ -522,7 +649,12 @@ static struct platform_device *cm_bf537u_devices[] __initdata = {
522#endif 649#endif
523 650
524#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 651#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
525 &bfin_uart_device, 652#ifdef CONFIG_SERIAL_BFIN_UART0
653 &bfin_uart0_device,
654#endif
655#ifdef CONFIG_SERIAL_BFIN_UART1
656 &bfin_uart1_device,
657#endif
526#endif 658#endif
527 659
528#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 660#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -539,9 +671,13 @@ static struct platform_device *cm_bf537u_devices[] __initdata = {
539#endif 671#endif
540 672
541#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 673#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
674#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
542 &bfin_sport0_uart_device, 675 &bfin_sport0_uart_device,
676#endif
677#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
543 &bfin_sport1_uart_device, 678 &bfin_sport1_uart_device,
544#endif 679#endif
680#endif
545 681
546#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 682#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
547 &isp1362_hcd_device, 683 &isp1362_hcd_device,
@@ -589,6 +725,33 @@ static int __init cm_bf537u_init(void)
589 725
590arch_initcall(cm_bf537u_init); 726arch_initcall(cm_bf537u_init);
591 727
728static struct platform_device *cm_bf537u_early_devices[] __initdata = {
729#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
730#ifdef CONFIG_SERIAL_BFIN_UART0
731 &bfin_uart0_device,
732#endif
733#ifdef CONFIG_SERIAL_BFIN_UART1
734 &bfin_uart1_device,
735#endif
736#endif
737
738#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
739#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
740 &bfin_sport0_uart_device,
741#endif
742#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
743 &bfin_sport1_uart_device,
744#endif
745#endif
746};
747
748void __init native_machine_early_platform_add_devices(void)
749{
750 printk(KERN_INFO "register early platform devices\n");
751 early_platform_add_devices(cm_bf537u_early_devices,
752 ARRAY_SIZE(cm_bf537u_early_devices));
753}
754
592void bfin_get_ether_addr(char *addr) 755void bfin_get_ether_addr(char *addr)
593{ 756{
594 random_ether_addr(addr); 757 random_ether_addr(addr);
diff --git a/arch/blackfin/mach-bf537/boards/minotaur.c b/arch/blackfin/mach-bf537/boards/minotaur.c
index 0da927252701..c489d602c590 100644
--- a/arch/blackfin/mach-bf537/boards/minotaur.c
+++ b/arch/blackfin/mach-bf537/boards/minotaur.c
@@ -211,25 +211,93 @@ static struct platform_device bfin_spi0_device = {
211#endif /* spi master and devices */ 211#endif /* spi master and devices */
212 212
213#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 213#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
214static struct resource bfin_uart_resources[] = { 214#ifdef CONFIG_SERIAL_BFIN_UART0
215static struct resource bfin_uart0_resources[] = {
215 { 216 {
216 .start = 0xFFC00400, 217 .start = UART0_THR,
217 .end = 0xFFC004FF, 218 .end = UART0_GCTL+2,
218 .flags = IORESOURCE_MEM, 219 .flags = IORESOURCE_MEM,
219 }, { 220 },
220 .start = 0xFFC02000, 221 {
221 .end = 0xFFC020FF, 222 .start = IRQ_UART0_RX,
223 .end = IRQ_UART0_RX+1,
224 .flags = IORESOURCE_IRQ,
225 },
226 {
227 .start = IRQ_UART0_ERROR,
228 .end = IRQ_UART0_ERROR,
229 .flags = IORESOURCE_IRQ,
230 },
231 {
232 .start = CH_UART0_TX,
233 .end = CH_UART0_TX,
234 .flags = IORESOURCE_DMA,
235 },
236 {
237 .start = CH_UART0_RX,
238 .end = CH_UART0_RX,
239 .flags = IORESOURCE_DMA,
240 },
241};
242
243unsigned short bfin_uart0_peripherals[] = {
244 P_UART0_TX, P_UART0_RX, 0
245};
246
247static struct platform_device bfin_uart0_device = {
248 .name = "bfin-uart",
249 .id = 0,
250 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
251 .resource = bfin_uart0_resources,
252 .dev = {
253 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
254 },
255};
256#endif
257#ifdef CONFIG_SERIAL_BFIN_UART1
258static struct resource bfin_uart1_resources[] = {
259 {
260 .start = UART1_THR,
261 .end = UART1_GCTL+2,
222 .flags = IORESOURCE_MEM, 262 .flags = IORESOURCE_MEM,
223 }, 263 },
264 {
265 .start = IRQ_UART1_RX,
266 .end = IRQ_UART1_RX+1,
267 .flags = IORESOURCE_IRQ,
268 },
269 {
270 .start = IRQ_UART1_ERROR,
271 .end = IRQ_UART1_ERROR,
272 .flags = IORESOURCE_IRQ,
273 },
274 {
275 .start = CH_UART1_TX,
276 .end = CH_UART1_TX,
277 .flags = IORESOURCE_DMA,
278 },
279 {
280 .start = CH_UART1_RX,
281 .end = CH_UART1_RX,
282 .flags = IORESOURCE_DMA,
283 },
284};
285
286unsigned short bfin_uart1_peripherals[] = {
287 P_UART1_TX, P_UART1_RX, 0
224}; 288};
225 289
226static struct platform_device bfin_uart_device = { 290static struct platform_device bfin_uart1_device = {
227 .name = "bfin-uart", 291 .name = "bfin-uart",
228 .id = 1, 292 .id = 1,
229 .num_resources = ARRAY_SIZE(bfin_uart_resources), 293 .num_resources = ARRAY_SIZE(bfin_uart1_resources),
230 .resource = bfin_uart_resources, 294 .resource = bfin_uart1_resources,
295 .dev = {
296 .platform_data = &bfin_uart1_peripherals, /* Passed to driver */
297 },
231}; 298};
232#endif 299#endif
300#endif
233 301
234#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 302#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
235#ifdef CONFIG_BFIN_SIR0 303#ifdef CONFIG_BFIN_SIR0
@@ -309,16 +377,75 @@ static struct platform_device i2c_bfin_twi_device = {
309#endif 377#endif
310 378
311#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 379#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
380#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
381static struct resource bfin_sport0_uart_resources[] = {
382 {
383 .start = SPORT0_TCR1,
384 .end = SPORT0_MRCS3+4,
385 .flags = IORESOURCE_MEM,
386 },
387 {
388 .start = IRQ_SPORT0_RX,
389 .end = IRQ_SPORT0_RX+1,
390 .flags = IORESOURCE_IRQ,
391 },
392 {
393 .start = IRQ_SPORT0_ERROR,
394 .end = IRQ_SPORT0_ERROR,
395 .flags = IORESOURCE_IRQ,
396 },
397};
398
399unsigned short bfin_sport0_peripherals[] = {
400 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
401 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
402};
403
312static struct platform_device bfin_sport0_uart_device = { 404static struct platform_device bfin_sport0_uart_device = {
313 .name = "bfin-sport-uart", 405 .name = "bfin-sport-uart",
314 .id = 0, 406 .id = 0,
407 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
408 .resource = bfin_sport0_uart_resources,
409 .dev = {
410 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
411 },
412};
413#endif
414#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
415static struct resource bfin_sport1_uart_resources[] = {
416 {
417 .start = SPORT1_TCR1,
418 .end = SPORT1_MRCS3+4,
419 .flags = IORESOURCE_MEM,
420 },
421 {
422 .start = IRQ_SPORT1_RX,
423 .end = IRQ_SPORT1_RX+1,
424 .flags = IORESOURCE_IRQ,
425 },
426 {
427 .start = IRQ_SPORT1_ERROR,
428 .end = IRQ_SPORT1_ERROR,
429 .flags = IORESOURCE_IRQ,
430 },
431};
432
433unsigned short bfin_sport1_peripherals[] = {
434 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
435 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
315}; 436};
316 437
317static struct platform_device bfin_sport1_uart_device = { 438static struct platform_device bfin_sport1_uart_device = {
318 .name = "bfin-sport-uart", 439 .name = "bfin-sport-uart",
319 .id = 1, 440 .id = 1,
441 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
442 .resource = bfin_sport1_uart_resources,
443 .dev = {
444 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
445 },
320}; 446};
321#endif 447#endif
448#endif
322 449
323static struct platform_device *minotaur_devices[] __initdata = { 450static struct platform_device *minotaur_devices[] __initdata = {
324#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) 451#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
@@ -343,7 +470,12 @@ static struct platform_device *minotaur_devices[] __initdata = {
343#endif 470#endif
344 471
345#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 472#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
346 &bfin_uart_device, 473#ifdef CONFIG_SERIAL_BFIN_UART0
474 &bfin_uart0_device,
475#endif
476#ifdef CONFIG_SERIAL_BFIN_UART1
477 &bfin_uart1_device,
478#endif
347#endif 479#endif
348 480
349#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 481#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -360,9 +492,13 @@ static struct platform_device *minotaur_devices[] __initdata = {
360#endif 492#endif
361 493
362#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 494#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
495#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
363 &bfin_sport0_uart_device, 496 &bfin_sport0_uart_device,
497#endif
498#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
364 &bfin_sport1_uart_device, 499 &bfin_sport1_uart_device,
365#endif 500#endif
501#endif
366 502
367}; 503};
368 504
@@ -380,6 +516,33 @@ static int __init minotaur_init(void)
380 516
381arch_initcall(minotaur_init); 517arch_initcall(minotaur_init);
382 518
519static struct platform_device *minotaur_early_devices[] __initdata = {
520#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
521#ifdef CONFIG_SERIAL_BFIN_UART0
522 &bfin_uart0_device,
523#endif
524#ifdef CONFIG_SERIAL_BFIN_UART1
525 &bfin_uart1_device,
526#endif
527#endif
528
529#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
530#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
531 &bfin_sport0_uart_device,
532#endif
533#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
534 &bfin_sport1_uart_device,
535#endif
536#endif
537};
538
539void __init native_machine_early_platform_add_devices(void)
540{
541 printk(KERN_INFO "register early platform devices\n");
542 early_platform_add_devices(minotaur_early_devices,
543 ARRAY_SIZE(minotaur_early_devices));
544}
545
383void native_machine_restart(char *cmd) 546void native_machine_restart(char *cmd)
384{ 547{
385 /* workaround reboot hang when booting from SPI */ 548 /* workaround reboot hang when booting from SPI */
diff --git a/arch/blackfin/mach-bf537/boards/pnav10.c b/arch/blackfin/mach-bf537/boards/pnav10.c
index 4e0afda472ab..812e8f991601 100644
--- a/arch/blackfin/mach-bf537/boards/pnav10.c
+++ b/arch/blackfin/mach-bf537/boards/pnav10.c
@@ -17,7 +17,6 @@
17#include <asm/dma.h> 17#include <asm/dma.h>
18#include <asm/bfin5xx_spi.h> 18#include <asm/bfin5xx_spi.h>
19#include <asm/portmux.h> 19#include <asm/portmux.h>
20#include <linux/usb/sl811.h>
21 20
22#include <linux/spi/ad7877.h> 21#include <linux/spi/ad7877.h>
23 22
@@ -99,51 +98,6 @@ static struct platform_device smc91x_device = {
99}; 98};
100#endif 99#endif
101 100
102#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
103static struct resource sl811_hcd_resources[] = {
104 {
105 .start = 0x20340000,
106 .end = 0x20340000,
107 .flags = IORESOURCE_MEM,
108 }, {
109 .start = 0x20340004,
110 .end = 0x20340004,
111 .flags = IORESOURCE_MEM,
112 }, {
113 .start = CONFIG_USB_SL811_BFIN_IRQ,
114 .end = CONFIG_USB_SL811_BFIN_IRQ,
115 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
116 },
117};
118
119#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS)
120void sl811_port_power(struct device *dev, int is_on)
121{
122 gpio_request(CONFIG_USB_SL811_BFIN_GPIO_VBUS, "usb:SL811_VBUS");
123 gpio_direction_output(CONFIG_USB_SL811_BFIN_GPIO_VBUS, is_on);
124
125}
126#endif
127
128static struct sl811_platform_data sl811_priv = {
129 .potpg = 10,
130 .power = 250, /* == 500mA */
131#if defined(CONFIG_USB_SL811_BFIN_USE_VBUS)
132 .port_power = &sl811_port_power,
133#endif
134};
135
136static struct platform_device sl811_hcd_device = {
137 .name = "sl811-hcd",
138 .id = 0,
139 .dev = {
140 .platform_data = &sl811_priv,
141 },
142 .num_resources = ARRAY_SIZE(sl811_hcd_resources),
143 .resource = sl811_hcd_resources,
144};
145#endif
146
147#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 101#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
148static struct platform_device bfin_mii_bus = { 102static struct platform_device bfin_mii_bus = {
149 .name = "bfin_mii_bus", 103 .name = "bfin_mii_bus",
@@ -221,8 +175,8 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = {
221}; 175};
222#endif 176#endif
223 177
224#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 178#if defined(CONFIG_SND_BLACKFIN_AD183X) \
225 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 179 || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
226static struct bfin5xx_spi_chip ad1836_spi_chip_info = { 180static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
227 .enable_dma = 0, 181 .enable_dma = 0,
228 .bits_per_word = 16, 182 .bits_per_word = 16,
@@ -284,8 +238,8 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
284 }, 238 },
285#endif 239#endif
286 240
287#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 241#if defined(CONFIG_SND_BLACKFIN_AD183X) \
288 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 242 || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
289 { 243 {
290 .modalias = "ad1836", 244 .modalias = "ad1836",
291 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 245 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
@@ -362,25 +316,93 @@ static struct platform_device bfin_fb_device = {
362#endif 316#endif
363 317
364#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 318#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
365static struct resource bfin_uart_resources[] = { 319#ifdef CONFIG_SERIAL_BFIN_UART0
320static struct resource bfin_uart0_resources[] = {
366 { 321 {
367 .start = 0xFFC00400, 322 .start = UART0_THR,
368 .end = 0xFFC004FF, 323 .end = UART0_GCTL+2,
369 .flags = IORESOURCE_MEM, 324 .flags = IORESOURCE_MEM,
370 }, { 325 },
371 .start = 0xFFC02000, 326 {
372 .end = 0xFFC020FF, 327 .start = IRQ_UART0_RX,
328 .end = IRQ_UART0_RX+1,
329 .flags = IORESOURCE_IRQ,
330 },
331 {
332 .start = IRQ_UART0_ERROR,
333 .end = IRQ_UART0_ERROR,
334 .flags = IORESOURCE_IRQ,
335 },
336 {
337 .start = CH_UART0_TX,
338 .end = CH_UART0_TX,
339 .flags = IORESOURCE_DMA,
340 },
341 {
342 .start = CH_UART0_RX,
343 .end = CH_UART0_RX,
344 .flags = IORESOURCE_DMA,
345 },
346};
347
348unsigned short bfin_uart0_peripherals[] = {
349 P_UART0_TX, P_UART0_RX, 0
350};
351
352static struct platform_device bfin_uart0_device = {
353 .name = "bfin-uart",
354 .id = 0,
355 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
356 .resource = bfin_uart0_resources,
357 .dev = {
358 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
359 },
360};
361#endif
362#ifdef CONFIG_SERIAL_BFIN_UART1
363static struct resource bfin_uart1_resources[] = {
364 {
365 .start = UART1_THR,
366 .end = UART1_GCTL+2,
373 .flags = IORESOURCE_MEM, 367 .flags = IORESOURCE_MEM,
374 }, 368 },
369 {
370 .start = IRQ_UART1_RX,
371 .end = IRQ_UART1_RX+1,
372 .flags = IORESOURCE_IRQ,
373 },
374 {
375 .start = IRQ_UART1_ERROR,
376 .end = IRQ_UART1_ERROR,
377 .flags = IORESOURCE_IRQ,
378 },
379 {
380 .start = CH_UART1_TX,
381 .end = CH_UART1_TX,
382 .flags = IORESOURCE_DMA,
383 },
384 {
385 .start = CH_UART1_RX,
386 .end = CH_UART1_RX,
387 .flags = IORESOURCE_DMA,
388 },
389};
390
391unsigned short bfin_uart1_peripherals[] = {
392 P_UART1_TX, P_UART1_RX, 0
375}; 393};
376 394
377static struct platform_device bfin_uart_device = { 395static struct platform_device bfin_uart1_device = {
378 .name = "bfin-uart", 396 .name = "bfin-uart",
379 .id = 1, 397 .id = 1,
380 .num_resources = ARRAY_SIZE(bfin_uart_resources), 398 .num_resources = ARRAY_SIZE(bfin_uart1_resources),
381 .resource = bfin_uart_resources, 399 .resource = bfin_uart1_resources,
400 .dev = {
401 .platform_data = &bfin_uart1_peripherals, /* Passed to driver */
402 },
382}; 403};
383#endif 404#endif
405#endif
384 406
385#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 407#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
386#ifdef CONFIG_BFIN_SIR0 408#ifdef CONFIG_BFIN_SIR0
@@ -446,10 +468,6 @@ static struct platform_device *stamp_devices[] __initdata = {
446 &rtc_device, 468 &rtc_device,
447#endif 469#endif
448 470
449#if defined(CONFIG_USB_SL811_HCD) || defined(CONFIG_USB_SL811_HCD_MODULE)
450 &sl811_hcd_device,
451#endif
452
453#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) 471#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
454 &smc91x_device, 472 &smc91x_device,
455#endif 473#endif
@@ -472,7 +490,12 @@ static struct platform_device *stamp_devices[] __initdata = {
472#endif 490#endif
473 491
474#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 492#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
475 &bfin_uart_device, 493#ifdef CONFIG_SERIAL_BFIN_UART0
494 &bfin_uart0_device,
495#endif
496#ifdef CONFIG_SERIAL_BFIN_UART1
497 &bfin_uart1_device,
498#endif
476#endif 499#endif
477 500
478#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 501#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -498,6 +521,24 @@ static int __init pnav_init(void)
498 521
499arch_initcall(pnav_init); 522arch_initcall(pnav_init);
500 523
524static struct platform_device *stamp_early_devices[] __initdata = {
525#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
526#ifdef CONFIG_SERIAL_BFIN_UART0
527 &bfin_uart0_device,
528#endif
529#ifdef CONFIG_SERIAL_BFIN_UART1
530 &bfin_uart1_device,
531#endif
532#endif
533};
534
535void __init native_machine_early_platform_add_devices(void)
536{
537 printk(KERN_INFO "register early platform devices\n");
538 early_platform_add_devices(stamp_early_devices,
539 ARRAY_SIZE(stamp_early_devices));
540}
541
501void bfin_get_ether_addr(char *addr) 542void bfin_get_ether_addr(char *addr)
502{ 543{
503 random_ether_addr(addr); 544 random_ether_addr(addr);
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index ac9b52e0087c..9eaf5b05c11e 100644
--- a/arch/blackfin/mach-bf537/boards/stamp.c
+++ b/arch/blackfin/mach-bf537/boards/stamp.c
@@ -20,10 +20,12 @@
20#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 20#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
21#include <linux/usb/isp1362.h> 21#include <linux/usb/isp1362.h>
22#endif 22#endif
23#include <linux/i2c.h>
24#include <linux/i2c/adp5588.h>
25#include <linux/etherdevice.h>
23#include <linux/ata_platform.h> 26#include <linux/ata_platform.h>
24#include <linux/irq.h> 27#include <linux/irq.h>
25#include <linux/interrupt.h> 28#include <linux/interrupt.h>
26#include <linux/i2c.h>
27#include <linux/usb/sl811.h> 29#include <linux/usb/sl811.h>
28#include <linux/spi/mmc_spi.h> 30#include <linux/spi/mmc_spi.h>
29#include <linux/leds.h> 31#include <linux/leds.h>
@@ -33,6 +35,14 @@
33#include <asm/reboot.h> 35#include <asm/reboot.h>
34#include <asm/portmux.h> 36#include <asm/portmux.h>
35#include <asm/dpmc.h> 37#include <asm/dpmc.h>
38#ifdef CONFIG_REGULATOR_ADP_SWITCH
39#include <linux/regulator/adp_switch.h>
40#endif
41#ifdef CONFIG_REGULATOR_AD5398
42#include <linux/regulator/ad5398.h>
43#endif
44#include <linux/regulator/consumer.h>
45#include <linux/regulator/userspace-consumer.h>
36 46
37/* 47/*
38 * Name the Board for the /proc/cpuinfo 48 * Name the Board for the /proc/cpuinfo
@@ -208,8 +218,8 @@ static struct resource sl811_hcd_resources[] = {
208 .end = 0x20340004, 218 .end = 0x20340004,
209 .flags = IORESOURCE_MEM, 219 .flags = IORESOURCE_MEM,
210 }, { 220 }, {
211 .start = CONFIG_USB_SL811_BFIN_IRQ, 221 .start = IRQ_PF4,
212 .end = CONFIG_USB_SL811_BFIN_IRQ, 222 .end = IRQ_PF4,
213 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, 223 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL,
214 }, 224 },
215}; 225};
@@ -454,6 +464,9 @@ static struct physmap_flash_data stamp_flash_data = {
454 .width = 2, 464 .width = 2,
455 .parts = stamp_partitions, 465 .parts = stamp_partitions,
456 .nr_parts = ARRAY_SIZE(stamp_partitions), 466 .nr_parts = ARRAY_SIZE(stamp_partitions),
467#ifdef CONFIG_ROMKERNEL
468 .probe_type = "map_rom",
469#endif
457}; 470};
458 471
459static struct resource stamp_flash_resource = { 472static struct resource stamp_flash_resource = {
@@ -515,20 +528,19 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = {
515}; 528};
516#endif 529#endif
517 530
518#if defined(CONFIG_SND_BF5XX_SOC_AD1836) \ 531#if defined(CONFIG_SND_BF5XX_SOC_AD183X) \
519 || defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE) 532 || defined(CONFIG_SND_BF5XX_SOC_AD183X_MODULE)
520static struct bfin5xx_spi_chip ad1836_spi_chip_info = { 533static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
521 .enable_dma = 0, 534 .enable_dma = 0,
522 .bits_per_word = 16, 535 .bits_per_word = 16,
523}; 536};
524#endif 537#endif
525 538
526#if defined(CONFIG_SND_BF5XX_SOC_AD1938) \ 539#if defined(CONFIG_SND_BF5XX_SOC_AD193X) \
527 || defined(CONFIG_SND_BF5XX_SOC_AD1938_MODULE) 540 || defined(CONFIG_SND_BF5XX_SOC_AD193X_MODULE)
528static struct bfin5xx_spi_chip ad1938_spi_chip_info = { 541static struct bfin5xx_spi_chip ad1938_spi_chip_info = {
529 .enable_dma = 0, 542 .enable_dma = 0,
530 .bits_per_word = 8, 543 .bits_per_word = 8,
531 .cs_gpio = GPIO_PF5,
532}; 544};
533#endif 545#endif
534 546
@@ -644,6 +656,42 @@ static struct ad714x_platform_data ad7142_i2c_platform_data = {
644}; 656};
645#endif 657#endif
646 658
659#if defined(CONFIG_AD2S90) || defined(CONFIG_AD2S90_MODULE)
660static struct bfin5xx_spi_chip ad2s90_spi_chip_info = {
661 .enable_dma = 0,
662 .bits_per_word = 16,
663};
664#endif
665
666#if defined(CONFIG_AD2S120X) || defined(CONFIG_AD2S120X_MODULE)
667unsigned short ad2s120x_platform_data[] = {
668 /* used as SAMPLE and RDVEL */
669 GPIO_PF5, GPIO_PF6, 0
670};
671
672static struct bfin5xx_spi_chip ad2s120x_spi_chip_info = {
673 .enable_dma = 0,
674 .bits_per_word = 16,
675};
676#endif
677
678#if defined(CONFIG_AD2S1210) || defined(CONFIG_AD2S1210_MODULE)
679unsigned short ad2s1210_platform_data[] = {
680 /* use as SAMPLE, A0, A1 */
681 GPIO_PF7, GPIO_PF8, GPIO_PF9,
682# if defined(CONFIG_AD2S1210_GPIO_INPUT) || defined(CONFIG_AD2S1210_GPIO_OUTPUT)
683 /* the RES0 and RES1 pins */
684 GPIO_PF4, GPIO_PF5,
685# endif
686 0,
687};
688
689static struct bfin5xx_spi_chip ad2s1210_spi_chip_info = {
690 .enable_dma = 0,
691 .bits_per_word = 8,
692};
693#endif
694
647#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) 695#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
648#define MMC_SPI_CARD_DETECT_INT IRQ_PF5 696#define MMC_SPI_CARD_DETECT_INT IRQ_PF5
649 697
@@ -686,11 +734,11 @@ static const struct ad7877_platform_data bfin_ad7877_ts_info = {
686 .y_plate_ohms = 486, 734 .y_plate_ohms = 486,
687 .pressure_max = 1000, 735 .pressure_max = 1000,
688 .pressure_min = 0, 736 .pressure_min = 0,
689 .stopacq_polarity = 1, 737 .stopacq_polarity = 1,
690 .first_conversion_delay = 3, 738 .first_conversion_delay = 3,
691 .acquisition_time = 1, 739 .acquisition_time = 1,
692 .averaging = 1, 740 .averaging = 1,
693 .pen_down_acc_interval = 1, 741 .pen_down_acc_interval = 1,
694}; 742};
695#endif 743#endif
696 744
@@ -701,13 +749,13 @@ static const struct ad7879_platform_data bfin_ad7879_ts_info = {
701 .x_plate_ohms = 620, /* 620 Ohm from the touch datasheet */ 749 .x_plate_ohms = 620, /* 620 Ohm from the touch datasheet */
702 .pressure_max = 10000, 750 .pressure_max = 10000,
703 .pressure_min = 0, 751 .pressure_min = 0,
704 .first_conversion_delay = 3, /* wait 512us before do a first conversion */ 752 .first_conversion_delay = 3, /* wait 512us before do a first conversion */
705 .acquisition_time = 1, /* 4us acquisition time per sample */ 753 .acquisition_time = 1, /* 4us acquisition time per sample */
706 .median = 2, /* do 8 measurements */ 754 .median = 2, /* do 8 measurements */
707 .averaging = 1, /* take the average of 4 middle samples */ 755 .averaging = 1, /* take the average of 4 middle samples */
708 .pen_down_acc_interval = 255, /* 9.4 ms */ 756 .pen_down_acc_interval = 255, /* 9.4 ms */
709 .gpio_output = 1, /* configure AUX/VBAT/GPIO as GPIO output */ 757 .gpio_export = 1, /* Export GPIO to gpiolib */
710 .gpio_default = 1, /* During initialization set GPIO = HIGH */ 758 .gpio_base = -1, /* Dynamic allocation */
711}; 759};
712#endif 760#endif
713 761
@@ -742,6 +790,11 @@ static const struct adxl34x_platform_data adxl34x_info = {
742/* .ev_code_act_inactivity = KEY_A,*/ /* EV_KEY */ 790/* .ev_code_act_inactivity = KEY_A,*/ /* EV_KEY */
743 .power_mode = ADXL_AUTO_SLEEP | ADXL_LINK, 791 .power_mode = ADXL_AUTO_SLEEP | ADXL_LINK,
744 .fifo_mode = ADXL_FIFO_STREAM, 792 .fifo_mode = ADXL_FIFO_STREAM,
793 .orientation_enable = ADXL_EN_ORIENTATION_3D,
794 .deadzone_angle = ADXL_DEADZONE_ANGLE_10p8,
795 .divisor_length = ADXL_LP_FILTER_DIVISOR_16,
796 /* EV_KEY {+Z, +Y, +X, -X, -Y, -Z} */
797 .ev_codes_orient_3d = {BTN_Z, BTN_Y, BTN_X, BTN_A, BTN_B, BTN_C},
745}; 798};
746#endif 799#endif
747 800
@@ -813,6 +866,35 @@ static struct adf702x_platform_data adf7021_platform_data = {
813 .adf702x_regs = adf7021_regs, 866 .adf702x_regs = adf7021_regs,
814 .tx_reg = TXREG, 867 .tx_reg = TXREG,
815}; 868};
869static inline void adf702x_mac_init(void)
870{
871 random_ether_addr(adf7021_platform_data.mac_addr);
872}
873#else
874static inline void adf702x_mac_init(void) {}
875#endif
876
877#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
878#include <linux/spi/ads7846.h>
879static struct bfin5xx_spi_chip ad7873_spi_chip_info = {
880 .bits_per_word = 8,
881};
882
883static int ads7873_get_pendown_state(void)
884{
885 return gpio_get_value(GPIO_PF6);
886}
887
888static struct ads7846_platform_data __initdata ad7873_pdata = {
889 .model = 7873, /* AD7873 */
890 .x_max = 0xfff,
891 .y_max = 0xfff,
892 .x_plate_ohms = 620,
893 .debounce_max = 1,
894 .debounce_rep = 0,
895 .debounce_tol = (~0),
896 .get_pendown_state = ads7873_get_pendown_state,
897};
816#endif 898#endif
817 899
818#if defined(CONFIG_MTD_DATAFLASH) \ 900#if defined(CONFIG_MTD_DATAFLASH) \
@@ -893,24 +975,25 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
893 }, 975 },
894#endif 976#endif
895 977
896#if defined(CONFIG_SND_BF5XX_SOC_AD1836) \ 978#if defined(CONFIG_SND_BF5XX_SOC_AD183X) \
897 || defined(CONFIG_SND_BF5XX_SOC_AD1836_MODULE) 979 || defined(CONFIG_SND_BF5XX_SOC_AD183X_MODULE)
898 { 980 {
899 .modalias = "ad1836", 981 .modalias = "ad183x",
900 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 982 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
901 .bus_num = 0, 983 .bus_num = 0,
902 .chip_select = 4,/* CONFIG_SND_BLACKFIN_SPI_PFBIT */ 984 .chip_select = 4,/* CONFIG_SND_BLACKFIN_SPI_PFBIT */
985 .platform_data = "ad1836", /* only includes chip name for the moment */
903 .controller_data = &ad1836_spi_chip_info, 986 .controller_data = &ad1836_spi_chip_info,
904 .mode = SPI_MODE_3, 987 .mode = SPI_MODE_3,
905 }, 988 },
906#endif 989#endif
907 990
908#if defined(CONFIG_SND_BF5XX_SOC_AD1938) || defined(CONFIG_SND_BF5XX_SOC_AD1938_MODULE) 991#if defined(CONFIG_SND_BF5XX_SOC_AD193X) || defined(CONFIG_SND_BF5XX_SOC_AD193X_MODULE)
909 { 992 {
910 .modalias = "ad1938", 993 .modalias = "ad193x",
911 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 994 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
912 .bus_num = 0, 995 .bus_num = 0,
913 .chip_select = 0,/* CONFIG_SND_BLACKFIN_SPI_PFBIT */ 996 .chip_select = 5,
914 .controller_data = &ad1938_spi_chip_info, 997 .controller_data = &ad1938_spi_chip_info,
915 .mode = SPI_MODE_3, 998 .mode = SPI_MODE_3,
916 }, 999 },
@@ -929,6 +1012,37 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
929 }, 1012 },
930#endif 1013#endif
931 1014
1015#if defined(CONFIG_AD2S90) || defined(CONFIG_AD2S90_MODULE)
1016 {
1017 .modalias = "ad2s90",
1018 .bus_num = 0,
1019 .chip_select = 3, /* change it for your board */
1020 .platform_data = NULL,
1021 .controller_data = &ad2s90_spi_chip_info,
1022 },
1023#endif
1024
1025#if defined(CONFIG_AD2S120X) || defined(CONFIG_AD2S120X_MODULE)
1026 {
1027 .modalias = "ad2s120x",
1028 .bus_num = 0,
1029 .chip_select = 4, /* CS, change it for your board */
1030 .platform_data = ad2s120x_platform_data,
1031 .controller_data = &ad2s120x_spi_chip_info,
1032 },
1033#endif
1034
1035#if defined(CONFIG_AD2S1210) || defined(CONFIG_AD2S1210_MODULE)
1036 {
1037 .modalias = "ad2s1210",
1038 .max_speed_hz = 8192000,
1039 .bus_num = 0,
1040 .chip_select = 4, /* CS, change it for your board */
1041 .platform_data = ad2s1210_platform_data,
1042 .controller_data = &ad2s1210_spi_chip_info,
1043 },
1044#endif
1045
932#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE) 1046#if defined(CONFIG_MMC_SPI) || defined(CONFIG_MMC_SPI_MODULE)
933 { 1047 {
934 .modalias = "mmc_spi", 1048 .modalias = "mmc_spi",
@@ -1016,7 +1130,18 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
1016 .mode = SPI_MODE_0, 1130 .mode = SPI_MODE_0,
1017 }, 1131 },
1018#endif 1132#endif
1019 1133#if defined(CONFIG_TOUCHSCREEN_ADS7846) || defined(CONFIG_TOUCHSCREEN_ADS7846_MODULE)
1134 {
1135 .modalias = "ads7846",
1136 .max_speed_hz = 2000000, /* max spi clock (SCK) speed in HZ */
1137 .bus_num = 0,
1138 .irq = IRQ_PF6,
1139 .chip_select = GPIO_PF10 + MAX_CTRL_CS, /* GPIO controlled SSEL */
1140 .controller_data = &ad7873_spi_chip_info,
1141 .platform_data = &ad7873_pdata,
1142 .mode = SPI_MODE_0,
1143 },
1144#endif
1020}; 1145};
1021 1146
1022#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 1147#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
@@ -1132,9 +1257,10 @@ static struct platform_device bfin_fb_device = {
1132#include <asm/bfin-lq035q1.h> 1257#include <asm/bfin-lq035q1.h>
1133 1258
1134static struct bfin_lq035q1fb_disp_info bfin_lq035q1_data = { 1259static struct bfin_lq035q1fb_disp_info bfin_lq035q1_data = {
1135 .mode = LQ035_NORM | LQ035_RGB | LQ035_RL | LQ035_TB, 1260 .mode = LQ035_NORM | LQ035_RGB | LQ035_RL | LQ035_TB,
1136 .use_bl = 0, /* let something else control the LCD Blacklight */ 1261 .ppi_mode = USE_RGB565_16_BIT_PPI,
1137 .gpio_bl = GPIO_PF7, 1262 .use_bl = 0, /* let something else control the LCD Blacklight */
1263 .gpio_bl = GPIO_PF7,
1138}; 1264};
1139 1265
1140static struct resource bfin_lq035q1_resources[] = { 1266static struct resource bfin_lq035q1_resources[] = {
@@ -1148,8 +1274,8 @@ static struct resource bfin_lq035q1_resources[] = {
1148static struct platform_device bfin_lq035q1_device = { 1274static struct platform_device bfin_lq035q1_device = {
1149 .name = "bfin-lq035q1", 1275 .name = "bfin-lq035q1",
1150 .id = -1, 1276 .id = -1,
1151 .num_resources = ARRAY_SIZE(bfin_lq035q1_resources), 1277 .num_resources = ARRAY_SIZE(bfin_lq035q1_resources),
1152 .resource = bfin_lq035q1_resources, 1278 .resource = bfin_lq035q1_resources,
1153 .dev = { 1279 .dev = {
1154 .platform_data = &bfin_lq035q1_data, 1280 .platform_data = &bfin_lq035q1_data,
1155 }, 1281 },
@@ -1157,30 +1283,105 @@ static struct platform_device bfin_lq035q1_device = {
1157#endif 1283#endif
1158 1284
1159#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 1285#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
1160static struct resource bfin_uart_resources[] = {
1161#ifdef CONFIG_SERIAL_BFIN_UART0 1286#ifdef CONFIG_SERIAL_BFIN_UART0
1287static struct resource bfin_uart0_resources[] = {
1162 { 1288 {
1163 .start = 0xFFC00400, 1289 .start = UART0_THR,
1164 .end = 0xFFC004FF, 1290 .end = UART0_GCTL+2,
1165 .flags = IORESOURCE_MEM, 1291 .flags = IORESOURCE_MEM,
1166 }, 1292 },
1293 {
1294 .start = IRQ_UART0_RX,
1295 .end = IRQ_UART0_RX+1,
1296 .flags = IORESOURCE_IRQ,
1297 },
1298 {
1299 .start = IRQ_UART0_ERROR,
1300 .end = IRQ_UART0_ERROR,
1301 .flags = IORESOURCE_IRQ,
1302 },
1303 {
1304 .start = CH_UART0_TX,
1305 .end = CH_UART0_TX,
1306 .flags = IORESOURCE_DMA,
1307 },
1308 {
1309 .start = CH_UART0_RX,
1310 .end = CH_UART0_RX,
1311 .flags = IORESOURCE_DMA,
1312 },
1313#ifdef CONFIG_BFIN_UART0_CTSRTS
1314 { /* CTS pin */
1315 .start = GPIO_PG7,
1316 .end = GPIO_PG7,
1317 .flags = IORESOURCE_IO,
1318 },
1319 { /* RTS pin */
1320 .start = GPIO_PG6,
1321 .end = GPIO_PG6,
1322 .flags = IORESOURCE_IO,
1323 },
1324#endif
1325};
1326
1327unsigned short bfin_uart0_peripherals[] = {
1328 P_UART0_TX, P_UART0_RX, 0
1329};
1330
1331static struct platform_device bfin_uart0_device = {
1332 .name = "bfin-uart",
1333 .id = 0,
1334 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
1335 .resource = bfin_uart0_resources,
1336 .dev = {
1337 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
1338 },
1339};
1167#endif 1340#endif
1168#ifdef CONFIG_SERIAL_BFIN_UART1 1341#ifdef CONFIG_SERIAL_BFIN_UART1
1342static struct resource bfin_uart1_resources[] = {
1169 { 1343 {
1170 .start = 0xFFC02000, 1344 .start = UART1_THR,
1171 .end = 0xFFC020FF, 1345 .end = UART1_GCTL+2,
1172 .flags = IORESOURCE_MEM, 1346 .flags = IORESOURCE_MEM,
1173 }, 1347 },
1174#endif 1348 {
1349 .start = IRQ_UART1_RX,
1350 .end = IRQ_UART1_RX+1,
1351 .flags = IORESOURCE_IRQ,
1352 },
1353 {
1354 .start = IRQ_UART1_ERROR,
1355 .end = IRQ_UART1_ERROR,
1356 .flags = IORESOURCE_IRQ,
1357 },
1358 {
1359 .start = CH_UART1_TX,
1360 .end = CH_UART1_TX,
1361 .flags = IORESOURCE_DMA,
1362 },
1363 {
1364 .start = CH_UART1_RX,
1365 .end = CH_UART1_RX,
1366 .flags = IORESOURCE_DMA,
1367 },
1368};
1369
1370unsigned short bfin_uart1_peripherals[] = {
1371 P_UART1_TX, P_UART1_RX, 0
1175}; 1372};
1176 1373
1177static struct platform_device bfin_uart_device = { 1374static struct platform_device bfin_uart1_device = {
1178 .name = "bfin-uart", 1375 .name = "bfin-uart",
1179 .id = 1, 1376 .id = 1,
1180 .num_resources = ARRAY_SIZE(bfin_uart_resources), 1377 .num_resources = ARRAY_SIZE(bfin_uart1_resources),
1181 .resource = bfin_uart_resources, 1378 .resource = bfin_uart1_resources,
1379 .dev = {
1380 .platform_data = &bfin_uart1_peripherals, /* Passed to driver */
1381 },
1182}; 1382};
1183#endif 1383#endif
1384#endif
1184 1385
1185#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 1386#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
1186#ifdef CONFIG_BFIN_SIR0 1387#ifdef CONFIG_BFIN_SIR0
@@ -1260,7 +1461,6 @@ static struct platform_device i2c_bfin_twi_device = {
1260#endif 1461#endif
1261 1462
1262#if defined(CONFIG_KEYBOARD_ADP5588) || defined(CONFIG_KEYBOARD_ADP5588_MODULE) 1463#if defined(CONFIG_KEYBOARD_ADP5588) || defined(CONFIG_KEYBOARD_ADP5588_MODULE)
1263#include <linux/i2c/adp5588.h>
1264static const unsigned short adp5588_keymap[ADP5588_KEYMAPSIZE] = { 1464static const unsigned short adp5588_keymap[ADP5588_KEYMAPSIZE] = {
1265 [0] = KEY_GRAVE, 1465 [0] = KEY_GRAVE,
1266 [1] = KEY_1, 1466 [1] = KEY_1,
@@ -1457,7 +1657,6 @@ static struct adp5520_platform_data adp5520_pdev_data = {
1457#endif 1657#endif
1458 1658
1459#if defined(CONFIG_GPIO_ADP5588) || defined(CONFIG_GPIO_ADP5588_MODULE) 1659#if defined(CONFIG_GPIO_ADP5588) || defined(CONFIG_GPIO_ADP5588_MODULE)
1460#include <linux/i2c/adp5588.h>
1461static struct adp5588_gpio_platform_data adp5588_gpio_data = { 1660static struct adp5588_gpio_platform_data adp5588_gpio_data = {
1462 .gpio_start = 50, 1661 .gpio_start = 50,
1463 .pullup_dis_mask = 0, 1662 .pullup_dis_mask = 0,
@@ -1516,6 +1715,101 @@ static struct adp8870_backlight_platform_data adp8870_pdata = {
1516}; 1715};
1517#endif 1716#endif
1518 1717
1718#if defined(CONFIG_BACKLIGHT_ADP8860) || defined(CONFIG_BACKLIGHT_ADP8860_MODULE)
1719#include <linux/i2c/adp8860.h>
1720static struct led_info adp8860_leds[] = {
1721 {
1722 .name = "adp8860-led7",
1723 .default_trigger = "none",
1724 .flags = ADP8860_LED_D7 | ADP8860_LED_OFFT_600ms,
1725 },
1726};
1727
1728static struct adp8860_backlight_platform_data adp8860_pdata = {
1729 .bl_led_assign = ADP8860_BL_D1 | ADP8860_BL_D2 | ADP8860_BL_D3 |
1730 ADP8860_BL_D4 | ADP8860_BL_D5 | ADP8860_BL_D6, /* 1 = Backlight 0 = Individual LED */
1731
1732 .bl_fade_in = ADP8860_FADE_T_1200ms, /* Backlight Fade-In Timer */
1733 .bl_fade_out = ADP8860_FADE_T_1200ms, /* Backlight Fade-Out Timer */
1734 .bl_fade_law = ADP8860_FADE_LAW_CUBIC1, /* fade-on/fade-off transfer characteristic */
1735
1736 .en_ambl_sens = 1, /* 1 = enable ambient light sensor */
1737 .abml_filt = ADP8860_BL_AMBL_FILT_320ms, /* Light sensor filter time */
1738
1739 .l1_daylight_max = ADP8860_BL_CUR_mA(20), /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
1740 .l1_daylight_dim = ADP8860_BL_CUR_mA(0), /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
1741 .l2_office_max = ADP8860_BL_CUR_mA(6), /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
1742 .l2_office_dim = ADP8860_BL_CUR_mA(0), /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
1743 .l3_dark_max = ADP8860_BL_CUR_mA(2), /* use BL_CUR_mA(I) 0 <= I <= 30 mA */
1744 .l3_dark_dim = ADP8860_BL_CUR_mA(0), /* typ = 0, use BL_CUR_mA(I) 0 <= I <= 30 mA */
1745
1746 .l2_trip = ADP8860_L2_COMP_CURR_uA(710), /* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
1747 .l2_hyst = ADP8860_L2_COMP_CURR_uA(73), /* use L2_COMP_CURR_uA(I) 0 <= I <= 1106 uA */
1748 .l3_trip = ADP8860_L3_COMP_CURR_uA(43), /* use L3_COMP_CURR_uA(I) 0 <= I <= 138 uA */
1749 .l3_hyst = ADP8860_L3_COMP_CURR_uA(11), /* use L3_COMP_CURR_uA(I) 0 <= I <= 138 uA */
1750
1751 .leds = adp8860_leds,
1752 .num_leds = ARRAY_SIZE(adp8860_leds),
1753 .led_fade_law = ADP8860_FADE_LAW_SQUARE, /* fade-on/fade-off transfer characteristic */
1754 .led_fade_in = ADP8860_FADE_T_600ms,
1755 .led_fade_out = ADP8860_FADE_T_600ms,
1756 .led_on_time = ADP8860_LED_ONT_200ms,
1757};
1758#endif
1759
1760#if defined(CONFIG_REGULATOR_AD5398) || defined(CONFIG_REGULATOR_AD5398_MODULE)
1761static struct regulator_consumer_supply ad5398_consumer = {
1762 .supply = "current",
1763};
1764
1765static struct regulator_init_data ad5398_regulator_data = {
1766 .constraints = {
1767 .name = "current range",
1768 .max_uA = 120000,
1769 .valid_ops_mask = REGULATOR_CHANGE_CURRENT | REGULATOR_CHANGE_STATUS,
1770 },
1771 .num_consumer_supplies = 1,
1772 .consumer_supplies = &ad5398_consumer,
1773};
1774
1775static struct ad5398_platform_data ad5398_i2c_platform_data = {
1776 .current_bits = 10,
1777 .current_offset = 4,
1778 .regulator_data = &ad5398_regulator_data,
1779};
1780
1781#if defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER) || \
1782 defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER_MODULE)
1783static struct platform_device ad5398_virt_consumer_device = {
1784 .name = "reg-virt-consumer",
1785 .id = 0,
1786 .dev = {
1787 .platform_data = "current", /* Passed to driver */
1788 },
1789};
1790#endif
1791#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
1792 defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
1793static struct regulator_bulk_data ad5398_bulk_data = {
1794 .supply = "current",
1795};
1796
1797static struct regulator_userspace_consumer_data ad5398_userspace_comsumer_data = {
1798 .name = "ad5398",
1799 .num_supplies = 1,
1800 .supplies = &ad5398_bulk_data,
1801};
1802
1803static struct platform_device ad5398_userspace_consumer_device = {
1804 .name = "reg-userspace-consumer",
1805 .id = 0,
1806 .dev = {
1807 .platform_data = &ad5398_userspace_comsumer_data,
1808 },
1809};
1810#endif
1811#endif
1812
1519static struct i2c_board_info __initdata bfin_i2c_board_info[] = { 1813static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
1520#if defined(CONFIG_INPUT_AD714X_I2C) || defined(CONFIG_INPUT_AD714X_I2C_MODULE) 1814#if defined(CONFIG_INPUT_AD714X_I2C) || defined(CONFIG_INPUT_AD714X_I2C_MODULE)
1521 { 1815 {
@@ -1524,6 +1818,52 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
1524 .platform_data = (void *)&ad7142_i2c_platform_data, 1818 .platform_data = (void *)&ad7142_i2c_platform_data,
1525 }, 1819 },
1526#endif 1820#endif
1821
1822#if defined(CONFIG_AD7150) || defined(CONFIG_AD7150_MODULE)
1823 {
1824 I2C_BOARD_INFO("ad7150", 0x48),
1825 .irq = IRQ_PG5, /* fixme: use real interrupt number */
1826 },
1827#endif
1828
1829#if defined(CONFIG_AD7152) || defined(CONFIG_AD7152_MODULE)
1830 {
1831 I2C_BOARD_INFO("ad7152", 0x48),
1832 },
1833#endif
1834
1835#if defined(CONFIG_AD774X) || defined(CONFIG_AD774X_MODULE)
1836 {
1837 I2C_BOARD_INFO("ad774x", 0x48),
1838 },
1839#endif
1840
1841#if defined(CONFIG_AD7414) || defined(CONFIG_AD7414_MODULE)
1842 {
1843 I2C_BOARD_INFO("ad7414", 0x9),
1844 .irq = IRQ_PG5,
1845 /*
1846 * platform_data pointer is borrwoed by the driver to
1847 * store custimer defined IRQ ALART level mode.
1848 * only IRQF_TRIGGER_HIGH and IRQF_TRIGGER_LOW are valid.
1849 */
1850 .platform_data = (void *)IRQF_TRIGGER_LOW,
1851 },
1852#endif
1853
1854#if defined(CONFIG_AD7416) || defined(CONFIG_AD7416_MODULE)
1855 {
1856 I2C_BOARD_INFO("ad7417", 0xb),
1857 .irq = IRQ_PG5,
1858 /*
1859 * platform_data pointer is borrwoed by the driver to
1860 * store custimer defined IRQ ALART level mode.
1861 * only IRQF_TRIGGER_HIGH and IRQF_TRIGGER_LOW are valid.
1862 */
1863 .platform_data = (void *)IRQF_TRIGGER_LOW,
1864 },
1865#endif
1866
1527#if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE) 1867#if defined(CONFIG_BFIN_TWI_LCD) || defined(CONFIG_BFIN_TWI_LCD_MODULE)
1528 { 1868 {
1529 I2C_BOARD_INFO("pcf8574_lcd", 0x22), 1869 I2C_BOARD_INFO("pcf8574_lcd", 0x22),
@@ -1595,24 +1935,105 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
1595 I2C_BOARD_INFO("adau1761", 0x38), 1935 I2C_BOARD_INFO("adau1761", 0x38),
1596 }, 1936 },
1597#endif 1937#endif
1938#if defined(CONFIG_SND_SOC_ADAU1361) || defined(CONFIG_SND_SOC_ADAU1361_MODULE)
1939 {
1940 I2C_BOARD_INFO("adau1361", 0x38),
1941 },
1942#endif
1598#if defined(CONFIG_AD525X_DPOT) || defined(CONFIG_AD525X_DPOT_MODULE) 1943#if defined(CONFIG_AD525X_DPOT) || defined(CONFIG_AD525X_DPOT_MODULE)
1599 { 1944 {
1600 I2C_BOARD_INFO("ad5258", 0x18), 1945 I2C_BOARD_INFO("ad5258", 0x18),
1601 }, 1946 },
1602#endif 1947#endif
1948#if defined(CONFIG_SND_SOC_SSM2602) || defined(CONFIG_SND_SOC_SSM2602_MODULE)
1949 {
1950 I2C_BOARD_INFO("ssm2602", 0x1b),
1951 },
1952#endif
1953#if defined(CONFIG_REGULATOR_AD5398) || defined(CONFIG_REGULATOR_AD5398_MODULE)
1954 {
1955 I2C_BOARD_INFO("ad5398", 0xC),
1956 .platform_data = (void *)&ad5398_i2c_platform_data,
1957 },
1958#endif
1959#if defined(CONFIG_BACKLIGHT_ADP8860) || defined(CONFIG_BACKLIGHT_ADP8860_MODULE)
1960 {
1961 I2C_BOARD_INFO("adp8860", 0x2A),
1962 .platform_data = (void *)&adp8860_pdata,
1963 },
1964#endif
1603}; 1965};
1604 1966
1605#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 1967#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
1968#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
1969static struct resource bfin_sport0_uart_resources[] = {
1970 {
1971 .start = SPORT0_TCR1,
1972 .end = SPORT0_MRCS3+4,
1973 .flags = IORESOURCE_MEM,
1974 },
1975 {
1976 .start = IRQ_SPORT0_RX,
1977 .end = IRQ_SPORT0_RX+1,
1978 .flags = IORESOURCE_IRQ,
1979 },
1980 {
1981 .start = IRQ_SPORT0_ERROR,
1982 .end = IRQ_SPORT0_ERROR,
1983 .flags = IORESOURCE_IRQ,
1984 },
1985};
1986
1987unsigned short bfin_sport0_peripherals[] = {
1988 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
1989 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
1990};
1991
1606static struct platform_device bfin_sport0_uart_device = { 1992static struct platform_device bfin_sport0_uart_device = {
1607 .name = "bfin-sport-uart", 1993 .name = "bfin-sport-uart",
1608 .id = 0, 1994 .id = 0,
1995 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
1996 .resource = bfin_sport0_uart_resources,
1997 .dev = {
1998 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
1999 },
2000};
2001#endif
2002#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
2003static struct resource bfin_sport1_uart_resources[] = {
2004 {
2005 .start = SPORT1_TCR1,
2006 .end = SPORT1_MRCS3+4,
2007 .flags = IORESOURCE_MEM,
2008 },
2009 {
2010 .start = IRQ_SPORT1_RX,
2011 .end = IRQ_SPORT1_RX+1,
2012 .flags = IORESOURCE_IRQ,
2013 },
2014 {
2015 .start = IRQ_SPORT1_ERROR,
2016 .end = IRQ_SPORT1_ERROR,
2017 .flags = IORESOURCE_IRQ,
2018 },
2019};
2020
2021unsigned short bfin_sport1_peripherals[] = {
2022 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
2023 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
1609}; 2024};
1610 2025
1611static struct platform_device bfin_sport1_uart_device = { 2026static struct platform_device bfin_sport1_uart_device = {
1612 .name = "bfin-sport-uart", 2027 .name = "bfin-sport-uart",
1613 .id = 1, 2028 .id = 1,
2029 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
2030 .resource = bfin_sport1_uart_resources,
2031 .dev = {
2032 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
2033 },
1614}; 2034};
1615#endif 2035#endif
2036#endif
1616 2037
1617#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 2038#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
1618#define CF_IDE_NAND_CARD_USE_HDD_INTERFACE 2039#define CF_IDE_NAND_CARD_USE_HDD_INTERFACE
@@ -1701,13 +2122,121 @@ static struct platform_device bfin_dpmc = {
1701 }, 2122 },
1702}; 2123};
1703 2124
2125#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
2126static struct platform_device bfin_i2s = {
2127 .name = "bfin-i2s",
2128 .id = CONFIG_SND_BF5XX_SPORT_NUM,
2129 /* TODO: add platform data here */
2130};
2131#endif
2132
1704#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE) 2133#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
1705static struct platform_device bfin_tdm = { 2134static struct platform_device bfin_tdm = {
1706 .name = "bfin-tdm", 2135 .name = "bfin-tdm",
2136 .id = CONFIG_SND_BF5XX_SPORT_NUM,
1707 /* TODO: add platform data here */ 2137 /* TODO: add platform data here */
1708}; 2138};
1709#endif 2139#endif
1710 2140
2141#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
2142static struct platform_device bfin_ac97 = {
2143 .name = "bfin-ac97",
2144 .id = CONFIG_SND_BF5XX_SPORT_NUM,
2145 /* TODO: add platform data here */
2146};
2147#endif
2148
2149#if defined(CONFIG_REGULATOR_ADP_SWITCH) || defined(CONFIG_REGULATOR_ADP_SWITCH_MODULE)
2150#define REGULATOR_ADP122 "adp122"
2151#define REGULATOR_ADP150 "adp150"
2152
2153static struct regulator_consumer_supply adp122_consumers = {
2154 .supply = REGULATOR_ADP122,
2155};
2156
2157static struct regulator_consumer_supply adp150_consumers = {
2158 .supply = REGULATOR_ADP150,
2159};
2160
2161static struct regulator_init_data adp_switch_regulator_data[] = {
2162 {
2163 .constraints = {
2164 .name = REGULATOR_ADP122,
2165 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
2166 .min_uA = 0,
2167 .max_uA = 300000,
2168 },
2169 .num_consumer_supplies = 1, /* only 1 */
2170 .consumer_supplies = &adp122_consumers,
2171 .driver_data = (void *)GPIO_PF2, /* gpio port only */
2172 },
2173 {
2174 .constraints = {
2175 .name = REGULATOR_ADP150,
2176 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
2177 .min_uA = 0,
2178 .max_uA = 150000,
2179 },
2180 .num_consumer_supplies = 1, /* only 1 */
2181 .consumer_supplies = &adp150_consumers,
2182 .driver_data = (void *)GPIO_PF3, /* gpio port only */
2183 },
2184};
2185
2186static struct adp_switch_platform_data adp_switch_pdata = {
2187 .regulator_num = ARRAY_SIZE(adp_switch_regulator_data),
2188 .regulator_data = adp_switch_regulator_data,
2189};
2190
2191static struct platform_device adp_switch_device = {
2192 .name = "adp_switch",
2193 .id = 0,
2194 .dev = {
2195 .platform_data = &adp_switch_pdata,
2196 },
2197};
2198
2199#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
2200 defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
2201static struct regulator_bulk_data adp122_bulk_data = {
2202 .supply = REGULATOR_ADP122,
2203};
2204
2205static struct regulator_userspace_consumer_data adp122_userspace_comsumer_data = {
2206 .name = REGULATOR_ADP122,
2207 .num_supplies = 1,
2208 .supplies = &adp122_bulk_data,
2209};
2210
2211static struct platform_device adp122_userspace_consumer_device = {
2212 .name = "reg-userspace-consumer",
2213 .id = 0,
2214 .dev = {
2215 .platform_data = &adp122_userspace_comsumer_data,
2216 },
2217};
2218
2219static struct regulator_bulk_data adp150_bulk_data = {
2220 .supply = REGULATOR_ADP150,
2221};
2222
2223static struct regulator_userspace_consumer_data adp150_userspace_comsumer_data = {
2224 .name = REGULATOR_ADP150,
2225 .num_supplies = 1,
2226 .supplies = &adp150_bulk_data,
2227};
2228
2229static struct platform_device adp150_userspace_consumer_device = {
2230 .name = "reg-userspace-consumer",
2231 .id = 1,
2232 .dev = {
2233 .platform_data = &adp150_userspace_comsumer_data,
2234 },
2235};
2236#endif
2237#endif
2238
2239
1711static struct platform_device *stamp_devices[] __initdata = { 2240static struct platform_device *stamp_devices[] __initdata = {
1712 2241
1713 &bfin_dpmc, 2242 &bfin_dpmc,
@@ -1771,7 +2300,12 @@ static struct platform_device *stamp_devices[] __initdata = {
1771#endif 2300#endif
1772 2301
1773#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 2302#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
1774 &bfin_uart_device, 2303#ifdef CONFIG_SERIAL_BFIN_UART0
2304 &bfin_uart0_device,
2305#endif
2306#ifdef CONFIG_SERIAL_BFIN_UART1
2307 &bfin_uart1_device,
2308#endif
1775#endif 2309#endif
1776 2310
1777#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 2311#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -1788,9 +2322,13 @@ static struct platform_device *stamp_devices[] __initdata = {
1788#endif 2322#endif
1789 2323
1790#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 2324#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
2325#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
1791 &bfin_sport0_uart_device, 2326 &bfin_sport0_uart_device,
2327#endif
2328#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
1792 &bfin_sport1_uart_device, 2329 &bfin_sport1_uart_device,
1793#endif 2330#endif
2331#endif
1794 2332
1795#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE) 2333#if defined(CONFIG_PATA_PLATFORM) || defined(CONFIG_PATA_PLATFORM_MODULE)
1796 &bfin_pata_device, 2334 &bfin_pata_device,
@@ -1808,18 +2346,46 @@ static struct platform_device *stamp_devices[] __initdata = {
1808 &stamp_flash_device, 2346 &stamp_flash_device,
1809#endif 2347#endif
1810 2348
2349#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
2350 &bfin_i2s,
2351#endif
2352
1811#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE) 2353#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
1812 &bfin_tdm, 2354 &bfin_tdm,
1813#endif 2355#endif
2356
2357#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
2358 &bfin_ac97,
2359#endif
2360#if defined(CONFIG_REGULATOR_AD5398) || defined(CONFIG_REGULATOR_AD5398_MODULE)
2361#if defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER) || \
2362 defined(CONFIG_REGULATOR_VIRTUAL_CONSUMER_MODULE)
2363 &ad5398_virt_consumer_device,
2364#endif
2365#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
2366 defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
2367 &ad5398_userspace_consumer_device,
2368#endif
2369#endif
2370
2371#if defined(CONFIG_REGULATOR_ADP_SWITCH) || defined(CONFIG_REGULATOR_ADP_SWITCH_MODULE)
2372 &adp_switch_device,
2373#if defined(CONFIG_REGULATOR_USERSPACE_CONSUMER) || \
2374 defined(CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE)
2375 &adp122_userspace_consumer_device,
2376 &adp150_userspace_consumer_device,
2377#endif
2378#endif
1814}; 2379};
1815 2380
1816static int __init stamp_init(void) 2381static int __init stamp_init(void)
1817{ 2382{
1818 printk(KERN_INFO "%s(): registering device resources\n", __func__); 2383 printk(KERN_INFO "%s(): registering device resources\n", __func__);
1819 i2c_register_board_info(0, bfin_i2c_board_info,
1820 ARRAY_SIZE(bfin_i2c_board_info));
1821 bfin_plat_nand_init(); 2384 bfin_plat_nand_init();
2385 adf702x_mac_init();
1822 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 2386 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
2387 i2c_register_board_info(0, bfin_i2c_board_info,
2388 ARRAY_SIZE(bfin_i2c_board_info));
1823 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info)); 2389 spi_register_board_info(bfin_spi_board_info, ARRAY_SIZE(bfin_spi_board_info));
1824 2390
1825 return 0; 2391 return 0;
@@ -1827,6 +2393,34 @@ static int __init stamp_init(void)
1827 2393
1828arch_initcall(stamp_init); 2394arch_initcall(stamp_init);
1829 2395
2396
2397static struct platform_device *stamp_early_devices[] __initdata = {
2398#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
2399#ifdef CONFIG_SERIAL_BFIN_UART0
2400 &bfin_uart0_device,
2401#endif
2402#ifdef CONFIG_SERIAL_BFIN_UART1
2403 &bfin_uart1_device,
2404#endif
2405#endif
2406
2407#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
2408#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
2409 &bfin_sport0_uart_device,
2410#endif
2411#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
2412 &bfin_sport1_uart_device,
2413#endif
2414#endif
2415};
2416
2417void __init native_machine_early_platform_add_devices(void)
2418{
2419 printk(KERN_INFO "register early platform devices\n");
2420 early_platform_add_devices(stamp_early_devices,
2421 ARRAY_SIZE(stamp_early_devices));
2422}
2423
1830void native_machine_restart(char *cmd) 2424void native_machine_restart(char *cmd)
1831{ 2425{
1832 /* workaround reboot hang when booting from SPI */ 2426 /* workaround reboot hang when booting from SPI */
diff --git a/arch/blackfin/mach-bf537/boards/tcm_bf537.c b/arch/blackfin/mach-bf537/boards/tcm_bf537.c
index 57163b65a4f5..4f0a2e72ce4c 100644
--- a/arch/blackfin/mach-bf537/boards/tcm_bf537.c
+++ b/arch/blackfin/mach-bf537/boards/tcm_bf537.c
@@ -74,7 +74,7 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = {
74}; 74};
75#endif 75#endif
76 76
77#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 77#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
78static struct bfin5xx_spi_chip ad1836_spi_chip_info = { 78static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
79 .enable_dma = 0, 79 .enable_dma = 0,
80 .bits_per_word = 16, 80 .bits_per_word = 16,
@@ -113,7 +113,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
113 }, 113 },
114#endif 114#endif
115 115
116#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 116#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
117 { 117 {
118 .modalias = "ad1836", 118 .modalias = "ad1836",
119 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 119 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
@@ -327,25 +327,93 @@ static struct platform_device cm_flash_device = {
327#endif 327#endif
328 328
329#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 329#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
330static struct resource bfin_uart_resources[] = { 330#ifdef CONFIG_SERIAL_BFIN_UART0
331static struct resource bfin_uart0_resources[] = {
331 { 332 {
332 .start = 0xFFC00400, 333 .start = UART0_THR,
333 .end = 0xFFC004FF, 334 .end = UART0_GCTL+2,
334 .flags = IORESOURCE_MEM, 335 .flags = IORESOURCE_MEM,
335 }, { 336 },
336 .start = 0xFFC02000, 337 {
337 .end = 0xFFC020FF, 338 .start = IRQ_UART0_RX,
339 .end = IRQ_UART0_RX+1,
340 .flags = IORESOURCE_IRQ,
341 },
342 {
343 .start = IRQ_UART0_ERROR,
344 .end = IRQ_UART0_ERROR,
345 .flags = IORESOURCE_IRQ,
346 },
347 {
348 .start = CH_UART0_TX,
349 .end = CH_UART0_TX,
350 .flags = IORESOURCE_DMA,
351 },
352 {
353 .start = CH_UART0_RX,
354 .end = CH_UART0_RX,
355 .flags = IORESOURCE_DMA,
356 },
357};
358
359unsigned short bfin_uart0_peripherals[] = {
360 P_UART0_TX, P_UART0_RX, 0
361};
362
363static struct platform_device bfin_uart0_device = {
364 .name = "bfin-uart",
365 .id = 0,
366 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
367 .resource = bfin_uart0_resources,
368 .dev = {
369 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
370 },
371};
372#endif
373#ifdef CONFIG_SERIAL_BFIN_UART1
374static struct resource bfin_uart1_resources[] = {
375 {
376 .start = UART1_THR,
377 .end = UART1_GCTL+2,
338 .flags = IORESOURCE_MEM, 378 .flags = IORESOURCE_MEM,
339 }, 379 },
380 {
381 .start = IRQ_UART1_RX,
382 .end = IRQ_UART1_RX+1,
383 .flags = IORESOURCE_IRQ,
384 },
385 {
386 .start = IRQ_UART1_ERROR,
387 .end = IRQ_UART1_ERROR,
388 .flags = IORESOURCE_IRQ,
389 },
390 {
391 .start = CH_UART1_TX,
392 .end = CH_UART1_TX,
393 .flags = IORESOURCE_DMA,
394 },
395 {
396 .start = CH_UART1_RX,
397 .end = CH_UART1_RX,
398 .flags = IORESOURCE_DMA,
399 },
400};
401
402unsigned short bfin_uart1_peripherals[] = {
403 P_UART1_TX, P_UART1_RX, 0
340}; 404};
341 405
342static struct platform_device bfin_uart_device = { 406static struct platform_device bfin_uart1_device = {
343 .name = "bfin-uart", 407 .name = "bfin-uart",
344 .id = 1, 408 .id = 1,
345 .num_resources = ARRAY_SIZE(bfin_uart_resources), 409 .num_resources = ARRAY_SIZE(bfin_uart1_resources),
346 .resource = bfin_uart_resources, 410 .resource = bfin_uart1_resources,
411 .dev = {
412 .platform_data = &bfin_uart1_peripherals, /* Passed to driver */
413 },
347}; 414};
348#endif 415#endif
416#endif
349 417
350#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 418#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
351#ifdef CONFIG_BFIN_SIR0 419#ifdef CONFIG_BFIN_SIR0
@@ -425,16 +493,75 @@ static struct platform_device i2c_bfin_twi_device = {
425#endif 493#endif
426 494
427#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 495#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
496#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
497static struct resource bfin_sport0_uart_resources[] = {
498 {
499 .start = SPORT0_TCR1,
500 .end = SPORT0_MRCS3+4,
501 .flags = IORESOURCE_MEM,
502 },
503 {
504 .start = IRQ_SPORT0_RX,
505 .end = IRQ_SPORT0_RX+1,
506 .flags = IORESOURCE_IRQ,
507 },
508 {
509 .start = IRQ_SPORT0_ERROR,
510 .end = IRQ_SPORT0_ERROR,
511 .flags = IORESOURCE_IRQ,
512 },
513};
514
515unsigned short bfin_sport0_peripherals[] = {
516 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
517 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
518};
519
428static struct platform_device bfin_sport0_uart_device = { 520static struct platform_device bfin_sport0_uart_device = {
429 .name = "bfin-sport-uart", 521 .name = "bfin-sport-uart",
430 .id = 0, 522 .id = 0,
523 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
524 .resource = bfin_sport0_uart_resources,
525 .dev = {
526 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
527 },
528};
529#endif
530#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
531static struct resource bfin_sport1_uart_resources[] = {
532 {
533 .start = SPORT1_TCR1,
534 .end = SPORT1_MRCS3+4,
535 .flags = IORESOURCE_MEM,
536 },
537 {
538 .start = IRQ_SPORT1_RX,
539 .end = IRQ_SPORT1_RX+1,
540 .flags = IORESOURCE_IRQ,
541 },
542 {
543 .start = IRQ_SPORT1_ERROR,
544 .end = IRQ_SPORT1_ERROR,
545 .flags = IORESOURCE_IRQ,
546 },
547};
548
549unsigned short bfin_sport1_peripherals[] = {
550 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
551 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
431}; 552};
432 553
433static struct platform_device bfin_sport1_uart_device = { 554static struct platform_device bfin_sport1_uart_device = {
434 .name = "bfin-sport-uart", 555 .name = "bfin-sport-uart",
435 .id = 1, 556 .id = 1,
557 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
558 .resource = bfin_sport1_uart_resources,
559 .dev = {
560 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
561 },
436}; 562};
437#endif 563#endif
564#endif
438 565
439#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) 566#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
440static struct platform_device bfin_mii_bus = { 567static struct platform_device bfin_mii_bus = {
@@ -524,7 +651,12 @@ static struct platform_device *cm_bf537_devices[] __initdata = {
524#endif 651#endif
525 652
526#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 653#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
527 &bfin_uart_device, 654#ifdef CONFIG_SERIAL_BFIN_UART0
655 &bfin_uart0_device,
656#endif
657#ifdef CONFIG_SERIAL_BFIN_UART1
658 &bfin_uart1_device,
659#endif
528#endif 660#endif
529 661
530#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 662#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -541,9 +673,13 @@ static struct platform_device *cm_bf537_devices[] __initdata = {
541#endif 673#endif
542 674
543#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 675#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
676#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
544 &bfin_sport0_uart_device, 677 &bfin_sport0_uart_device,
678#endif
679#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
545 &bfin_sport1_uart_device, 680 &bfin_sport1_uart_device,
546#endif 681#endif
682#endif
547 683
548#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 684#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
549 &isp1362_hcd_device, 685 &isp1362_hcd_device,
@@ -591,6 +727,33 @@ static int __init tcm_bf537_init(void)
591 727
592arch_initcall(tcm_bf537_init); 728arch_initcall(tcm_bf537_init);
593 729
730static struct platform_device *cm_bf537_early_devices[] __initdata = {
731#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
732#ifdef CONFIG_SERIAL_BFIN_UART0
733 &bfin_uart0_device,
734#endif
735#ifdef CONFIG_SERIAL_BFIN_UART1
736 &bfin_uart1_device,
737#endif
738#endif
739
740#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
741#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
742 &bfin_sport0_uart_device,
743#endif
744#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
745 &bfin_sport1_uart_device,
746#endif
747#endif
748};
749
750void __init native_machine_early_platform_add_devices(void)
751{
752 printk(KERN_INFO "register early platform devices\n");
753 early_platform_add_devices(cm_bf537_early_devices,
754 ARRAY_SIZE(cm_bf537_early_devices));
755}
756
594void bfin_get_ether_addr(char *addr) 757void bfin_get_ether_addr(char *addr)
595{ 758{
596 random_ether_addr(addr); 759 random_ether_addr(addr);
diff --git a/arch/blackfin/mach-bf537/include/mach/irq.h b/arch/blackfin/mach-bf537/include/mach/irq.h
index 0defa9457e7f..789a4f226f7b 100644
--- a/arch/blackfin/mach-bf537/include/mach/irq.h
+++ b/arch/blackfin/mach-bf537/include/mach/irq.h
@@ -134,7 +134,17 @@
134 134
135#define GPIO_IRQ_BASE IRQ_PF0 135#define GPIO_IRQ_BASE IRQ_PF0
136 136
137#define NR_IRQS (IRQ_PH15+1) 137#define IRQ_MAC_PHYINT 98 /* PHY_INT Interrupt */
138#define IRQ_MAC_MMCINT 99 /* MMC Counter Interrupt */
139#define IRQ_MAC_RXFSINT 100 /* RX Frame-Status Interrupt */
140#define IRQ_MAC_TXFSINT 101 /* TX Frame-Status Interrupt */
141#define IRQ_MAC_WAKEDET 102 /* Wake-Up Interrupt */
142#define IRQ_MAC_RXDMAERR 103 /* RX DMA Direction Error Interrupt */
143#define IRQ_MAC_TXDMAERR 104 /* TX DMA Direction Error Interrupt */
144#define IRQ_MAC_STMDONE 105 /* Station Mgt. Transfer Done Interrupt */
145
146#define NR_MACH_IRQS (IRQ_MAC_STMDONE + 1)
147#define NR_IRQS (NR_MACH_IRQS + NR_SPARE_IRQS)
138 148
139#define IVG7 7 149#define IVG7 7
140#define IVG8 8 150#define IVG8 8
diff --git a/arch/blackfin/mach-bf538/boards/ezkit.c b/arch/blackfin/mach-bf538/boards/ezkit.c
index c296bb1ed503..1a1f65855b03 100644
--- a/arch/blackfin/mach-bf538/boards/ezkit.c
+++ b/arch/blackfin/mach-bf538/boards/ezkit.c
@@ -41,37 +41,148 @@ static struct platform_device rtc_device = {
41#endif 41#endif
42 42
43#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 43#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
44static struct resource bfin_uart_resources[] = {
45#ifdef CONFIG_SERIAL_BFIN_UART0 44#ifdef CONFIG_SERIAL_BFIN_UART0
45static struct resource bfin_uart0_resources[] = {
46 { 46 {
47 .start = 0xFFC00400, 47 .start = UART0_THR,
48 .end = 0xFFC004FF, 48 .end = UART0_GCTL+2,
49 .flags = IORESOURCE_MEM, 49 .flags = IORESOURCE_MEM,
50 }, 50 },
51 {
52 .start = IRQ_UART0_RX,
53 .end = IRQ_UART0_RX+1,
54 .flags = IORESOURCE_IRQ,
55 },
56 {
57 .start = IRQ_UART0_ERROR,
58 .end = IRQ_UART0_ERROR,
59 .flags = IORESOURCE_IRQ,
60 },
61 {
62 .start = CH_UART0_TX,
63 .end = CH_UART0_TX,
64 .flags = IORESOURCE_DMA,
65 },
66 {
67 .start = CH_UART0_RX,
68 .end = CH_UART0_RX,
69 .flags = IORESOURCE_DMA,
70 },
71#ifdef CONFIG_BFIN_UART0_CTSRTS
72 { /* CTS pin */
73 .start = GPIO_PG7,
74 .end = GPIO_PG7,
75 .flags = IORESOURCE_IO,
76 },
77 { /* RTS pin */
78 .start = GPIO_PG6,
79 .end = GPIO_PG6,
80 .flags = IORESOURCE_IO,
81 },
82#endif
83};
84
85unsigned short bfin_uart0_peripherals[] = {
86 P_UART0_TX, P_UART0_RX, 0
87};
88
89static struct platform_device bfin_uart0_device = {
90 .name = "bfin-uart",
91 .id = 0,
92 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
93 .resource = bfin_uart0_resources,
94 .dev = {
95 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
96 },
97};
51#endif 98#endif
52#ifdef CONFIG_SERIAL_BFIN_UART1 99#ifdef CONFIG_SERIAL_BFIN_UART1
100static struct resource bfin_uart1_resources[] = {
53 { 101 {
54 .start = 0xFFC02000, 102 .start = UART1_THR,
55 .end = 0xFFC020FF, 103 .end = UART1_GCTL+2,
56 .flags = IORESOURCE_MEM, 104 .flags = IORESOURCE_MEM,
57 }, 105 },
106 {
107 .start = IRQ_UART1_RX,
108 .end = IRQ_UART1_RX+1,
109 .flags = IORESOURCE_IRQ,
110 },
111 {
112 .start = IRQ_UART1_ERROR,
113 .end = IRQ_UART1_ERROR,
114 .flags = IORESOURCE_IRQ,
115 },
116 {
117 .start = CH_UART1_TX,
118 .end = CH_UART1_TX,
119 .flags = IORESOURCE_DMA,
120 },
121 {
122 .start = CH_UART1_RX,
123 .end = CH_UART1_RX,
124 .flags = IORESOURCE_DMA,
125 },
126};
127
128unsigned short bfin_uart1_peripherals[] = {
129 P_UART1_TX, P_UART1_RX, 0
130};
131
132static struct platform_device bfin_uart1_device = {
133 .name = "bfin-uart",
134 .id = 1,
135 .num_resources = ARRAY_SIZE(bfin_uart1_resources),
136 .resource = bfin_uart1_resources,
137 .dev = {
138 .platform_data = &bfin_uart1_peripherals, /* Passed to driver */
139 },
140};
58#endif 141#endif
59#ifdef CONFIG_SERIAL_BFIN_UART2 142#ifdef CONFIG_SERIAL_BFIN_UART2
143static struct resource bfin_uart2_resources[] = {
60 { 144 {
61 .start = 0xFFC02100, 145 .start = UART2_THR,
62 .end = 0xFFC021FF, 146 .end = UART2_GCTL+2,
63 .flags = IORESOURCE_MEM, 147 .flags = IORESOURCE_MEM,
64 }, 148 },
65#endif 149 {
150 .start = IRQ_UART2_RX,
151 .end = IRQ_UART2_RX+1,
152 .flags = IORESOURCE_IRQ,
153 },
154 {
155 .start = IRQ_UART2_ERROR,
156 .end = IRQ_UART2_ERROR,
157 .flags = IORESOURCE_IRQ,
158 },
159 {
160 .start = CH_UART2_TX,
161 .end = CH_UART2_TX,
162 .flags = IORESOURCE_DMA,
163 },
164 {
165 .start = CH_UART2_RX,
166 .end = CH_UART2_RX,
167 .flags = IORESOURCE_DMA,
168 },
169};
170
171unsigned short bfin_uart2_peripherals[] = {
172 P_UART2_TX, P_UART2_RX, 0
66}; 173};
67 174
68static struct platform_device bfin_uart_device = { 175static struct platform_device bfin_uart2_device = {
69 .name = "bfin-uart", 176 .name = "bfin-uart",
70 .id = 1, 177 .id = 2,
71 .num_resources = ARRAY_SIZE(bfin_uart_resources), 178 .num_resources = ARRAY_SIZE(bfin_uart2_resources),
72 .resource = bfin_uart_resources, 179 .resource = bfin_uart2_resources,
180 .dev = {
181 .platform_data = &bfin_uart2_peripherals, /* Passed to driver */
182 },
73}; 183};
74#endif 184#endif
185#endif
75 186
76#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 187#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
77#ifdef CONFIG_BFIN_SIR0 188#ifdef CONFIG_BFIN_SIR0
@@ -151,6 +262,145 @@ static struct platform_device bfin_sir2_device = {
151#endif 262#endif
152#endif 263#endif
153 264
265#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
266#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
267static struct resource bfin_sport0_uart_resources[] = {
268 {
269 .start = SPORT0_TCR1,
270 .end = SPORT0_MRCS3+4,
271 .flags = IORESOURCE_MEM,
272 },
273 {
274 .start = IRQ_SPORT0_RX,
275 .end = IRQ_SPORT0_RX+1,
276 .flags = IORESOURCE_IRQ,
277 },
278 {
279 .start = IRQ_SPORT0_ERROR,
280 .end = IRQ_SPORT0_ERROR,
281 .flags = IORESOURCE_IRQ,
282 },
283};
284
285unsigned short bfin_sport0_peripherals[] = {
286 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
287 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
288};
289
290static struct platform_device bfin_sport0_uart_device = {
291 .name = "bfin-sport-uart",
292 .id = 0,
293 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
294 .resource = bfin_sport0_uart_resources,
295 .dev = {
296 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
297 },
298};
299#endif
300#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
301static struct resource bfin_sport1_uart_resources[] = {
302 {
303 .start = SPORT1_TCR1,
304 .end = SPORT1_MRCS3+4,
305 .flags = IORESOURCE_MEM,
306 },
307 {
308 .start = IRQ_SPORT1_RX,
309 .end = IRQ_SPORT1_RX+1,
310 .flags = IORESOURCE_IRQ,
311 },
312 {
313 .start = IRQ_SPORT1_ERROR,
314 .end = IRQ_SPORT1_ERROR,
315 .flags = IORESOURCE_IRQ,
316 },
317};
318
319unsigned short bfin_sport1_peripherals[] = {
320 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
321 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
322};
323
324static struct platform_device bfin_sport1_uart_device = {
325 .name = "bfin-sport-uart",
326 .id = 1,
327 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
328 .resource = bfin_sport1_uart_resources,
329 .dev = {
330 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
331 },
332};
333#endif
334#ifdef CONFIG_SERIAL_BFIN_SPORT2_UART
335static struct resource bfin_sport2_uart_resources[] = {
336 {
337 .start = SPORT2_TCR1,
338 .end = SPORT2_MRCS3+4,
339 .flags = IORESOURCE_MEM,
340 },
341 {
342 .start = IRQ_SPORT2_RX,
343 .end = IRQ_SPORT2_RX+1,
344 .flags = IORESOURCE_IRQ,
345 },
346 {
347 .start = IRQ_SPORT2_ERROR,
348 .end = IRQ_SPORT2_ERROR,
349 .flags = IORESOURCE_IRQ,
350 },
351};
352
353unsigned short bfin_sport2_peripherals[] = {
354 P_SPORT2_TFS, P_SPORT2_DTPRI, P_SPORT2_TSCLK, P_SPORT2_RFS,
355 P_SPORT2_DRPRI, P_SPORT2_RSCLK, P_SPORT2_DRSEC, P_SPORT2_DTSEC, 0
356};
357
358static struct platform_device bfin_sport2_uart_device = {
359 .name = "bfin-sport-uart",
360 .id = 2,
361 .num_resources = ARRAY_SIZE(bfin_sport2_uart_resources),
362 .resource = bfin_sport2_uart_resources,
363 .dev = {
364 .platform_data = &bfin_sport2_peripherals, /* Passed to driver */
365 },
366};
367#endif
368#ifdef CONFIG_SERIAL_BFIN_SPORT3_UART
369static struct resource bfin_sport3_uart_resources[] = {
370 {
371 .start = SPORT3_TCR1,
372 .end = SPORT3_MRCS3+4,
373 .flags = IORESOURCE_MEM,
374 },
375 {
376 .start = IRQ_SPORT3_RX,
377 .end = IRQ_SPORT3_RX+1,
378 .flags = IORESOURCE_IRQ,
379 },
380 {
381 .start = IRQ_SPORT3_ERROR,
382 .end = IRQ_SPORT3_ERROR,
383 .flags = IORESOURCE_IRQ,
384 },
385};
386
387unsigned short bfin_sport3_peripherals[] = {
388 P_SPORT3_TFS, P_SPORT3_DTPRI, P_SPORT3_TSCLK, P_SPORT3_RFS,
389 P_SPORT3_DRPRI, P_SPORT3_RSCLK, P_SPORT3_DRSEC, P_SPORT3_DTSEC, 0
390};
391
392static struct platform_device bfin_sport3_uart_device = {
393 .name = "bfin-sport-uart",
394 .id = 3,
395 .num_resources = ARRAY_SIZE(bfin_sport3_uart_resources),
396 .resource = bfin_sport3_uart_resources,
397 .dev = {
398 .platform_data = &bfin_sport3_peripherals, /* Passed to driver */
399 },
400};
401#endif
402#endif
403
154#if defined(CONFIG_CAN_BFIN) || defined(CONFIG_CAN_BFIN_MODULE) 404#if defined(CONFIG_CAN_BFIN) || defined(CONFIG_CAN_BFIN_MODULE)
155unsigned short bfin_can_peripherals[] = { 405unsigned short bfin_can_peripherals[] = {
156 P_CAN0_RX, P_CAN0_TX, 0 406 P_CAN0_RX, P_CAN0_TX, 0
@@ -268,8 +518,8 @@ static const struct ad7879_platform_data bfin_ad7879_ts_info = {
268 .median = 2, /* do 8 measurements */ 518 .median = 2, /* do 8 measurements */
269 .averaging = 1, /* take the average of 4 middle samples */ 519 .averaging = 1, /* take the average of 4 middle samples */
270 .pen_down_acc_interval = 255, /* 9.4 ms */ 520 .pen_down_acc_interval = 255, /* 9.4 ms */
271 .gpio_output = 1, /* configure AUX/VBAT/GPIO as GPIO output */ 521 .gpio_export = 1, /* Export GPIO to gpiolib */
272 .gpio_default = 1, /* During initialization set GPIO = HIGH */ 522 .gpio_base = -1, /* Dynamic allocation */
273}; 523};
274#endif 524#endif
275 525
@@ -284,9 +534,10 @@ static struct bfin5xx_spi_chip spi_ad7879_chip_info = {
284#include <asm/bfin-lq035q1.h> 534#include <asm/bfin-lq035q1.h>
285 535
286static struct bfin_lq035q1fb_disp_info bfin_lq035q1_data = { 536static struct bfin_lq035q1fb_disp_info bfin_lq035q1_data = {
287 .mode = LQ035_NORM | LQ035_RGB | LQ035_RL | LQ035_TB, 537 .mode = LQ035_NORM | LQ035_RGB | LQ035_RL | LQ035_TB,
288 .use_bl = 0, /* let something else control the LCD Blacklight */ 538 .ppi_mode = USE_RGB565_16_BIT_PPI,
289 .gpio_bl = GPIO_PF7, 539 .use_bl = 0, /* let something else control the LCD Blacklight */
540 .gpio_bl = GPIO_PF7,
290}; 541};
291 542
292static struct resource bfin_lq035q1_resources[] = { 543static struct resource bfin_lq035q1_resources[] = {
@@ -622,7 +873,15 @@ static struct platform_device *cm_bf538_devices[] __initdata = {
622#endif 873#endif
623 874
624#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 875#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
625 &bfin_uart_device, 876#ifdef CONFIG_SERIAL_BFIN_UART0
877 &bfin_uart0_device,
878#endif
879#ifdef CONFIG_SERIAL_BFIN_UART1
880 &bfin_uart1_device,
881#endif
882#ifdef CONFIG_SERIAL_BFIN_UART2
883 &bfin_uart2_device,
884#endif
626#endif 885#endif
627 886
628#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 887#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
@@ -648,6 +907,21 @@ static struct platform_device *cm_bf538_devices[] __initdata = {
648#endif 907#endif
649#endif 908#endif
650 909
910#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
911#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
912 &bfin_sport0_uart_device,
913#endif
914#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
915 &bfin_sport1_uart_device,
916#endif
917#ifdef CONFIG_SERIAL_BFIN_SPORT2_UART
918 &bfin_sport2_uart_device,
919#endif
920#ifdef CONFIG_SERIAL_BFIN_SPORT3_UART
921 &bfin_sport3_uart_device,
922#endif
923#endif
924
651#if defined(CONFIG_CAN_BFIN) || defined(CONFIG_CAN_BFIN_MODULE) 925#if defined(CONFIG_CAN_BFIN) || defined(CONFIG_CAN_BFIN_MODULE)
652 &bfin_can_device, 926 &bfin_can_device,
653#endif 927#endif
@@ -683,3 +957,39 @@ static int __init ezkit_init(void)
683} 957}
684 958
685arch_initcall(ezkit_init); 959arch_initcall(ezkit_init);
960
961static struct platform_device *ezkit_early_devices[] __initdata = {
962#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
963#ifdef CONFIG_SERIAL_BFIN_UART0
964 &bfin_uart0_device,
965#endif
966#ifdef CONFIG_SERIAL_BFIN_UART1
967 &bfin_uart1_device,
968#endif
969#ifdef CONFIG_SERIAL_BFIN_UART2
970 &bfin_uart2_device,
971#endif
972#endif
973
974#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
975#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
976 &bfin_sport0_uart_device,
977#endif
978#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
979 &bfin_sport1_uart_device,
980#endif
981#ifdef CONFIG_SERIAL_BFIN_SPORT2_UART
982 &bfin_sport2_uart_device,
983#endif
984#ifdef CONFIG_SERIAL_BFIN_SPORT3_UART
985 &bfin_sport3_uart_device,
986#endif
987#endif
988};
989
990void __init native_machine_early_platform_add_devices(void)
991{
992 printk(KERN_INFO "register early platform devices\n");
993 early_platform_add_devices(ezkit_early_devices,
994 ARRAY_SIZE(ezkit_early_devices));
995}
diff --git a/arch/blackfin/mach-bf538/include/mach/irq.h b/arch/blackfin/mach-bf538/include/mach/irq.h
index a4b7fcbc556b..7a479d224dc7 100644
--- a/arch/blackfin/mach-bf538/include/mach/irq.h
+++ b/arch/blackfin/mach-bf538/include/mach/irq.h
@@ -110,7 +110,8 @@
110 110
111#define GPIO_IRQ_BASE IRQ_PF0 111#define GPIO_IRQ_BASE IRQ_PF0
112 112
113#define NR_IRQS (IRQ_PF15+1) 113#define NR_MACH_IRQS (IRQ_PF15 + 1)
114#define NR_IRQS (NR_MACH_IRQS + NR_SPARE_IRQS)
114 115
115#define IVG7 7 116#define IVG7 7
116#define IVG8 8 117#define IVG8 8
diff --git a/arch/blackfin/mach-bf548/boards/cm_bf548.c b/arch/blackfin/mach-bf548/boards/cm_bf548.c
index ccdcd6da2e9f..f60c333fec66 100644
--- a/arch/blackfin/mach-bf548/boards/cm_bf548.c
+++ b/arch/blackfin/mach-bf548/boards/cm_bf548.c
@@ -127,44 +127,211 @@ static struct platform_device rtc_device = {
127#endif 127#endif
128 128
129#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 129#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
130static struct resource bfin_uart_resources[] = {
131#ifdef CONFIG_SERIAL_BFIN_UART0 130#ifdef CONFIG_SERIAL_BFIN_UART0
131static struct resource bfin_uart0_resources[] = {
132 { 132 {
133 .start = 0xFFC00400, 133 .start = UART0_DLL,
134 .end = 0xFFC004FF, 134 .end = UART0_RBR+2,
135 .flags = IORESOURCE_MEM, 135 .flags = IORESOURCE_MEM,
136 }, 136 },
137 {
138 .start = IRQ_UART0_RX,
139 .end = IRQ_UART0_RX+1,
140 .flags = IORESOURCE_IRQ,
141 },
142 {
143 .start = IRQ_UART0_ERROR,
144 .end = IRQ_UART0_ERROR,
145 .flags = IORESOURCE_IRQ,
146 },
147 {
148 .start = CH_UART0_TX,
149 .end = CH_UART0_TX,
150 .flags = IORESOURCE_DMA,
151 },
152 {
153 .start = CH_UART0_RX,
154 .end = CH_UART0_RX,
155 .flags = IORESOURCE_DMA,
156 },
157};
158
159unsigned short bfin_uart0_peripherals[] = {
160 P_UART0_TX, P_UART0_RX, 0
161};
162
163static struct platform_device bfin_uart0_device = {
164 .name = "bfin-uart",
165 .id = 0,
166 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
167 .resource = bfin_uart0_resources,
168 .dev = {
169 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
170 },
171};
137#endif 172#endif
138#ifdef CONFIG_SERIAL_BFIN_UART1 173#ifdef CONFIG_SERIAL_BFIN_UART1
174static struct resource bfin_uart1_resources[] = {
139 { 175 {
140 .start = 0xFFC02000, 176 .start = UART1_DLL,
141 .end = 0xFFC020FF, 177 .end = UART1_RBR+2,
142 .flags = IORESOURCE_MEM, 178 .flags = IORESOURCE_MEM,
143 }, 179 },
180 {
181 .start = IRQ_UART1_RX,
182 .end = IRQ_UART1_RX+1,
183 .flags = IORESOURCE_IRQ,
184 },
185 {
186 .start = IRQ_UART1_ERROR,
187 .end = IRQ_UART1_ERROR,
188 .flags = IORESOURCE_IRQ,
189 },
190 {
191 .start = CH_UART1_TX,
192 .end = CH_UART1_TX,
193 .flags = IORESOURCE_DMA,
194 },
195 {
196 .start = CH_UART1_RX,
197 .end = CH_UART1_RX,
198 .flags = IORESOURCE_DMA,
199 },
200#ifdef CONFIG_BFIN_UART1_CTSRTS
201 { /* CTS pin -- 0 means not supported */
202 .start = GPIO_PE10,
203 .end = GPIO_PE10,
204 .flags = IORESOURCE_IO,
205 },
206 { /* RTS pin -- 0 means not supported */
207 .start = GPIO_PE9,
208 .end = GPIO_PE9,
209 .flags = IORESOURCE_IO,
210 },
211#endif
212};
213
214unsigned short bfin_uart1_peripherals[] = {
215 P_UART1_TX, P_UART1_RX,
216#ifdef CONFIG_BFIN_UART1_CTSRTS
217 P_UART1_RTS, P_UART1_CTS,
218#endif
219 0
220};
221
222static struct platform_device bfin_uart1_device = {
223 .name = "bfin-uart",
224 .id = 1,
225 .num_resources = ARRAY_SIZE(bfin_uart1_resources),
226 .resource = bfin_uart1_resources,
227 .dev = {
228 .platform_data = &bfin_uart1_peripherals, /* Passed to driver */
229 },
230};
144#endif 231#endif
145#ifdef CONFIG_SERIAL_BFIN_UART2 232#ifdef CONFIG_SERIAL_BFIN_UART2
233static struct resource bfin_uart2_resources[] = {
146 { 234 {
147 .start = 0xFFC02100, 235 .start = UART2_DLL,
148 .end = 0xFFC021FF, 236 .end = UART2_RBR+2,
149 .flags = IORESOURCE_MEM, 237 .flags = IORESOURCE_MEM,
150 }, 238 },
239 {
240 .start = IRQ_UART2_RX,
241 .end = IRQ_UART2_RX+1,
242 .flags = IORESOURCE_IRQ,
243 },
244 {
245 .start = IRQ_UART2_ERROR,
246 .end = IRQ_UART2_ERROR,
247 .flags = IORESOURCE_IRQ,
248 },
249 {
250 .start = CH_UART2_TX,
251 .end = CH_UART2_TX,
252 .flags = IORESOURCE_DMA,
253 },
254 {
255 .start = CH_UART2_RX,
256 .end = CH_UART2_RX,
257 .flags = IORESOURCE_DMA,
258 },
259};
260
261unsigned short bfin_uart2_peripherals[] = {
262 P_UART2_TX, P_UART2_RX, 0
263};
264
265static struct platform_device bfin_uart2_device = {
266 .name = "bfin-uart",
267 .id = 2,
268 .num_resources = ARRAY_SIZE(bfin_uart2_resources),
269 .resource = bfin_uart2_resources,
270 .dev = {
271 .platform_data = &bfin_uart2_peripherals, /* Passed to driver */
272 },
273};
151#endif 274#endif
152#ifdef CONFIG_SERIAL_BFIN_UART3 275#ifdef CONFIG_SERIAL_BFIN_UART3
276static struct resource bfin_uart3_resources[] = {
153 { 277 {
154 .start = 0xFFC03100, 278 .start = UART3_DLL,
155 .end = 0xFFC031FF, 279 .end = UART3_RBR+2,
156 .flags = IORESOURCE_MEM, 280 .flags = IORESOURCE_MEM,
157 }, 281 },
282 {
283 .start = IRQ_UART3_RX,
284 .end = IRQ_UART3_RX+1,
285 .flags = IORESOURCE_IRQ,
286 },
287 {
288 .start = IRQ_UART3_ERROR,
289 .end = IRQ_UART3_ERROR,
290 .flags = IORESOURCE_IRQ,
291 },
292 {
293 .start = CH_UART3_TX,
294 .end = CH_UART3_TX,
295 .flags = IORESOURCE_DMA,
296 },
297 {
298 .start = CH_UART3_RX,
299 .end = CH_UART3_RX,
300 .flags = IORESOURCE_DMA,
301 },
302#ifdef CONFIG_BFIN_UART3_CTSRTS
303 { /* CTS pin -- 0 means not supported */
304 .start = GPIO_PB3,
305 .end = GPIO_PB3,
306 .flags = IORESOURCE_IO,
307 },
308 { /* RTS pin -- 0 means not supported */
309 .start = GPIO_PB2,
310 .end = GPIO_PB2,
311 .flags = IORESOURCE_IO,
312 },
158#endif 313#endif
159}; 314};
160 315
161static struct platform_device bfin_uart_device = { 316unsigned short bfin_uart3_peripherals[] = {
317 P_UART3_TX, P_UART3_RX,
318#ifdef CONFIG_BFIN_UART3_CTSRTS
319 P_UART3_RTS, P_UART3_CTS,
320#endif
321 0
322};
323
324static struct platform_device bfin_uart3_device = {
162 .name = "bfin-uart", 325 .name = "bfin-uart",
163 .id = 1, 326 .id = 3,
164 .num_resources = ARRAY_SIZE(bfin_uart_resources), 327 .num_resources = ARRAY_SIZE(bfin_uart3_resources),
165 .resource = bfin_uart_resources, 328 .resource = bfin_uart3_resources,
329 .dev = {
330 .platform_data = &bfin_uart3_peripherals, /* Passed to driver */
331 },
166}; 332};
167#endif 333#endif
334#endif
168 335
169#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 336#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
170#ifdef CONFIG_BFIN_SIR0 337#ifdef CONFIG_BFIN_SIR0
@@ -359,6 +526,145 @@ static struct platform_device musb_device = {
359}; 526};
360#endif 527#endif
361 528
529#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
530#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
531static struct resource bfin_sport0_uart_resources[] = {
532 {
533 .start = SPORT0_TCR1,
534 .end = SPORT0_MRCS3+4,
535 .flags = IORESOURCE_MEM,
536 },
537 {
538 .start = IRQ_SPORT0_RX,
539 .end = IRQ_SPORT0_RX+1,
540 .flags = IORESOURCE_IRQ,
541 },
542 {
543 .start = IRQ_SPORT0_ERROR,
544 .end = IRQ_SPORT0_ERROR,
545 .flags = IORESOURCE_IRQ,
546 },
547};
548
549unsigned short bfin_sport0_peripherals[] = {
550 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
551 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
552};
553
554static struct platform_device bfin_sport0_uart_device = {
555 .name = "bfin-sport-uart",
556 .id = 0,
557 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
558 .resource = bfin_sport0_uart_resources,
559 .dev = {
560 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
561 },
562};
563#endif
564#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
565static struct resource bfin_sport1_uart_resources[] = {
566 {
567 .start = SPORT1_TCR1,
568 .end = SPORT1_MRCS3+4,
569 .flags = IORESOURCE_MEM,
570 },
571 {
572 .start = IRQ_SPORT1_RX,
573 .end = IRQ_SPORT1_RX+1,
574 .flags = IORESOURCE_IRQ,
575 },
576 {
577 .start = IRQ_SPORT1_ERROR,
578 .end = IRQ_SPORT1_ERROR,
579 .flags = IORESOURCE_IRQ,
580 },
581};
582
583unsigned short bfin_sport1_peripherals[] = {
584 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
585 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
586};
587
588static struct platform_device bfin_sport1_uart_device = {
589 .name = "bfin-sport-uart",
590 .id = 1,
591 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
592 .resource = bfin_sport1_uart_resources,
593 .dev = {
594 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
595 },
596};
597#endif
598#ifdef CONFIG_SERIAL_BFIN_SPORT2_UART
599static struct resource bfin_sport2_uart_resources[] = {
600 {
601 .start = SPORT2_TCR1,
602 .end = SPORT2_MRCS3+4,
603 .flags = IORESOURCE_MEM,
604 },
605 {
606 .start = IRQ_SPORT2_RX,
607 .end = IRQ_SPORT2_RX+1,
608 .flags = IORESOURCE_IRQ,
609 },
610 {
611 .start = IRQ_SPORT2_ERROR,
612 .end = IRQ_SPORT2_ERROR,
613 .flags = IORESOURCE_IRQ,
614 },
615};
616
617unsigned short bfin_sport2_peripherals[] = {
618 P_SPORT2_TFS, P_SPORT2_DTPRI, P_SPORT2_TSCLK, P_SPORT2_RFS,
619 P_SPORT2_DRPRI, P_SPORT2_RSCLK, P_SPORT2_DRSEC, P_SPORT2_DTSEC, 0
620};
621
622static struct platform_device bfin_sport2_uart_device = {
623 .name = "bfin-sport-uart",
624 .id = 2,
625 .num_resources = ARRAY_SIZE(bfin_sport2_uart_resources),
626 .resource = bfin_sport2_uart_resources,
627 .dev = {
628 .platform_data = &bfin_sport2_peripherals, /* Passed to driver */
629 },
630};
631#endif
632#ifdef CONFIG_SERIAL_BFIN_SPORT3_UART
633static struct resource bfin_sport3_uart_resources[] = {
634 {
635 .start = SPORT3_TCR1,
636 .end = SPORT3_MRCS3+4,
637 .flags = IORESOURCE_MEM,
638 },
639 {
640 .start = IRQ_SPORT3_RX,
641 .end = IRQ_SPORT3_RX+1,
642 .flags = IORESOURCE_IRQ,
643 },
644 {
645 .start = IRQ_SPORT3_ERROR,
646 .end = IRQ_SPORT3_ERROR,
647 .flags = IORESOURCE_IRQ,
648 },
649};
650
651unsigned short bfin_sport3_peripherals[] = {
652 P_SPORT3_TFS, P_SPORT3_DTPRI, P_SPORT3_TSCLK, P_SPORT3_RFS,
653 P_SPORT3_DRPRI, P_SPORT3_RSCLK, P_SPORT3_DRSEC, P_SPORT3_DTSEC, 0
654};
655
656static struct platform_device bfin_sport3_uart_device = {
657 .name = "bfin-sport-uart",
658 .id = 3,
659 .num_resources = ARRAY_SIZE(bfin_sport3_uart_resources),
660 .resource = bfin_sport3_uart_resources,
661 .dev = {
662 .platform_data = &bfin_sport3_peripherals, /* Passed to driver */
663 },
664};
665#endif
666#endif
667
362#if defined(CONFIG_PATA_BF54X) || defined(CONFIG_PATA_BF54X_MODULE) 668#if defined(CONFIG_PATA_BF54X) || defined(CONFIG_PATA_BF54X_MODULE)
363static struct resource bfin_atapi_resources[] = { 669static struct resource bfin_atapi_resources[] = {
364 { 670 {
@@ -752,7 +1058,18 @@ static struct platform_device *cm_bf548_devices[] __initdata = {
752#endif 1058#endif
753 1059
754#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 1060#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
755 &bfin_uart_device, 1061#ifdef CONFIG_SERIAL_BFIN_UART0
1062 &bfin_uart0_device,
1063#endif
1064#ifdef CONFIG_SERIAL_BFIN_UART1
1065 &bfin_uart1_device,
1066#endif
1067#ifdef CONFIG_SERIAL_BFIN_UART2
1068 &bfin_uart2_device,
1069#endif
1070#ifdef CONFIG_SERIAL_BFIN_UART3
1071 &bfin_uart3_device,
1072#endif
756#endif 1073#endif
757 1074
758#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 1075#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -782,6 +1099,21 @@ static struct platform_device *cm_bf548_devices[] __initdata = {
782 &musb_device, 1099 &musb_device,
783#endif 1100#endif
784 1101
1102#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
1103#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
1104 &bfin_sport0_uart_device,
1105#endif
1106#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
1107 &bfin_sport1_uart_device,
1108#endif
1109#ifdef CONFIG_SERIAL_BFIN_SPORT2_UART
1110 &bfin_sport2_uart_device,
1111#endif
1112#ifdef CONFIG_SERIAL_BFIN_SPORT3_UART
1113 &bfin_sport3_uart_device,
1114#endif
1115#endif
1116
785#if defined(CONFIG_PATA_BF54X) || defined(CONFIG_PATA_BF54X_MODULE) 1117#if defined(CONFIG_PATA_BF54X) || defined(CONFIG_PATA_BF54X_MODULE)
786 &bfin_atapi_device, 1118 &bfin_atapi_device,
787#endif 1119#endif
@@ -833,3 +1165,42 @@ static int __init cm_bf548_init(void)
833} 1165}
834 1166
835arch_initcall(cm_bf548_init); 1167arch_initcall(cm_bf548_init);
1168
1169static struct platform_device *cm_bf548_early_devices[] __initdata = {
1170#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
1171#ifdef CONFIG_SERIAL_BFIN_UART0
1172 &bfin_uart0_device,
1173#endif
1174#ifdef CONFIG_SERIAL_BFIN_UART1
1175 &bfin_uart1_device,
1176#endif
1177#ifdef CONFIG_SERIAL_BFIN_UART2
1178 &bfin_uart2_device,
1179#endif
1180#ifdef CONFIG_SERIAL_BFIN_UART3
1181 &bfin_uart3_device,
1182#endif
1183#endif
1184
1185#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
1186#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
1187 &bfin_sport0_uart_device,
1188#endif
1189#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
1190 &bfin_sport1_uart_device,
1191#endif
1192#ifdef CONFIG_SERIAL_BFIN_SPORT2_UART
1193 &bfin_sport2_uart_device,
1194#endif
1195#ifdef CONFIG_SERIAL_BFIN_SPORT3_UART
1196 &bfin_sport3_uart_device,
1197#endif
1198#endif
1199};
1200
1201void __init native_machine_early_platform_add_devices(void)
1202{
1203 printk(KERN_INFO "register early platform devices\n");
1204 early_platform_add_devices(cm_bf548_early_devices,
1205 ARRAY_SIZE(cm_bf548_early_devices));
1206}
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c
index 60193f72777c..06919db00a74 100644
--- a/arch/blackfin/mach-bf548/boards/ezkit.c
+++ b/arch/blackfin/mach-bf548/boards/ezkit.c
@@ -232,44 +232,211 @@ static struct platform_device rtc_device = {
232#endif 232#endif
233 233
234#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 234#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
235static struct resource bfin_uart_resources[] = {
236#ifdef CONFIG_SERIAL_BFIN_UART0 235#ifdef CONFIG_SERIAL_BFIN_UART0
236static struct resource bfin_uart0_resources[] = {
237 { 237 {
238 .start = 0xFFC00400, 238 .start = UART0_DLL,
239 .end = 0xFFC004FF, 239 .end = UART0_RBR+2,
240 .flags = IORESOURCE_MEM, 240 .flags = IORESOURCE_MEM,
241 }, 241 },
242 {
243 .start = IRQ_UART0_RX,
244 .end = IRQ_UART0_RX+1,
245 .flags = IORESOURCE_IRQ,
246 },
247 {
248 .start = IRQ_UART0_ERROR,
249 .end = IRQ_UART0_ERROR,
250 .flags = IORESOURCE_IRQ,
251 },
252 {
253 .start = CH_UART0_TX,
254 .end = CH_UART0_TX,
255 .flags = IORESOURCE_DMA,
256 },
257 {
258 .start = CH_UART0_RX,
259 .end = CH_UART0_RX,
260 .flags = IORESOURCE_DMA,
261 },
262};
263
264unsigned short bfin_uart0_peripherals[] = {
265 P_UART0_TX, P_UART0_RX, 0
266};
267
268static struct platform_device bfin_uart0_device = {
269 .name = "bfin-uart",
270 .id = 0,
271 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
272 .resource = bfin_uart0_resources,
273 .dev = {
274 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
275 },
276};
242#endif 277#endif
243#ifdef CONFIG_SERIAL_BFIN_UART1 278#ifdef CONFIG_SERIAL_BFIN_UART1
279static struct resource bfin_uart1_resources[] = {
244 { 280 {
245 .start = 0xFFC02000, 281 .start = UART1_DLL,
246 .end = 0xFFC020FF, 282 .end = UART1_RBR+2,
247 .flags = IORESOURCE_MEM, 283 .flags = IORESOURCE_MEM,
248 }, 284 },
285 {
286 .start = IRQ_UART1_RX,
287 .end = IRQ_UART1_RX+1,
288 .flags = IORESOURCE_IRQ,
289 },
290 {
291 .start = IRQ_UART1_ERROR,
292 .end = IRQ_UART1_ERROR,
293 .flags = IORESOURCE_IRQ,
294 },
295 {
296 .start = CH_UART1_TX,
297 .end = CH_UART1_TX,
298 .flags = IORESOURCE_DMA,
299 },
300 {
301 .start = CH_UART1_RX,
302 .end = CH_UART1_RX,
303 .flags = IORESOURCE_DMA,
304 },
305#ifdef CONFIG_BFIN_UART1_CTSRTS
306 { /* CTS pin -- 0 means not supported */
307 .start = GPIO_PE10,
308 .end = GPIO_PE10,
309 .flags = IORESOURCE_IO,
310 },
311 { /* RTS pin -- 0 means not supported */
312 .start = GPIO_PE9,
313 .end = GPIO_PE9,
314 .flags = IORESOURCE_IO,
315 },
316#endif
317};
318
319unsigned short bfin_uart1_peripherals[] = {
320 P_UART1_TX, P_UART1_RX,
321#ifdef CONFIG_BFIN_UART1_CTSRTS
322 P_UART1_RTS, P_UART1_CTS,
323#endif
324 0
325};
326
327static struct platform_device bfin_uart1_device = {
328 .name = "bfin-uart",
329 .id = 1,
330 .num_resources = ARRAY_SIZE(bfin_uart1_resources),
331 .resource = bfin_uart1_resources,
332 .dev = {
333 .platform_data = &bfin_uart1_peripherals, /* Passed to driver */
334 },
335};
249#endif 336#endif
250#ifdef CONFIG_SERIAL_BFIN_UART2 337#ifdef CONFIG_SERIAL_BFIN_UART2
338static struct resource bfin_uart2_resources[] = {
251 { 339 {
252 .start = 0xFFC02100, 340 .start = UART2_DLL,
253 .end = 0xFFC021FF, 341 .end = UART2_RBR+2,
254 .flags = IORESOURCE_MEM, 342 .flags = IORESOURCE_MEM,
255 }, 343 },
344 {
345 .start = IRQ_UART2_RX,
346 .end = IRQ_UART2_RX+1,
347 .flags = IORESOURCE_IRQ,
348 },
349 {
350 .start = IRQ_UART2_ERROR,
351 .end = IRQ_UART2_ERROR,
352 .flags = IORESOURCE_IRQ,
353 },
354 {
355 .start = CH_UART2_TX,
356 .end = CH_UART2_TX,
357 .flags = IORESOURCE_DMA,
358 },
359 {
360 .start = CH_UART2_RX,
361 .end = CH_UART2_RX,
362 .flags = IORESOURCE_DMA,
363 },
364};
365
366unsigned short bfin_uart2_peripherals[] = {
367 P_UART2_TX, P_UART2_RX, 0
368};
369
370static struct platform_device bfin_uart2_device = {
371 .name = "bfin-uart",
372 .id = 2,
373 .num_resources = ARRAY_SIZE(bfin_uart2_resources),
374 .resource = bfin_uart2_resources,
375 .dev = {
376 .platform_data = &bfin_uart2_peripherals, /* Passed to driver */
377 },
378};
256#endif 379#endif
257#ifdef CONFIG_SERIAL_BFIN_UART3 380#ifdef CONFIG_SERIAL_BFIN_UART3
381static struct resource bfin_uart3_resources[] = {
258 { 382 {
259 .start = 0xFFC03100, 383 .start = UART3_DLL,
260 .end = 0xFFC031FF, 384 .end = UART3_RBR+2,
261 .flags = IORESOURCE_MEM, 385 .flags = IORESOURCE_MEM,
262 }, 386 },
387 {
388 .start = IRQ_UART3_RX,
389 .end = IRQ_UART3_RX+1,
390 .flags = IORESOURCE_IRQ,
391 },
392 {
393 .start = IRQ_UART3_ERROR,
394 .end = IRQ_UART3_ERROR,
395 .flags = IORESOURCE_IRQ,
396 },
397 {
398 .start = CH_UART3_TX,
399 .end = CH_UART3_TX,
400 .flags = IORESOURCE_DMA,
401 },
402 {
403 .start = CH_UART3_RX,
404 .end = CH_UART3_RX,
405 .flags = IORESOURCE_DMA,
406 },
407#ifdef CONFIG_BFIN_UART3_CTSRTS
408 { /* CTS pin -- 0 means not supported */
409 .start = GPIO_PB3,
410 .end = GPIO_PB3,
411 .flags = IORESOURCE_IO,
412 },
413 { /* RTS pin -- 0 means not supported */
414 .start = GPIO_PB2,
415 .end = GPIO_PB2,
416 .flags = IORESOURCE_IO,
417 },
263#endif 418#endif
264}; 419};
265 420
266static struct platform_device bfin_uart_device = { 421unsigned short bfin_uart3_peripherals[] = {
422 P_UART3_TX, P_UART3_RX,
423#ifdef CONFIG_BFIN_UART3_CTSRTS
424 P_UART3_RTS, P_UART3_CTS,
425#endif
426 0
427};
428
429static struct platform_device bfin_uart3_device = {
267 .name = "bfin-uart", 430 .name = "bfin-uart",
268 .id = 1, 431 .id = 3,
269 .num_resources = ARRAY_SIZE(bfin_uart_resources), 432 .num_resources = ARRAY_SIZE(bfin_uart3_resources),
270 .resource = bfin_uart_resources, 433 .resource = bfin_uart3_resources,
434 .dev = {
435 .platform_data = &bfin_uart3_peripherals, /* Passed to driver */
436 },
271}; 437};
272#endif 438#endif
439#endif
273 440
274#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 441#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
275#ifdef CONFIG_BFIN_SIR0 442#ifdef CONFIG_BFIN_SIR0
@@ -464,6 +631,145 @@ static struct platform_device musb_device = {
464}; 631};
465#endif 632#endif
466 633
634#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
635#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
636static struct resource bfin_sport0_uart_resources[] = {
637 {
638 .start = SPORT0_TCR1,
639 .end = SPORT0_MRCS3+4,
640 .flags = IORESOURCE_MEM,
641 },
642 {
643 .start = IRQ_SPORT0_RX,
644 .end = IRQ_SPORT0_RX+1,
645 .flags = IORESOURCE_IRQ,
646 },
647 {
648 .start = IRQ_SPORT0_ERROR,
649 .end = IRQ_SPORT0_ERROR,
650 .flags = IORESOURCE_IRQ,
651 },
652};
653
654unsigned short bfin_sport0_peripherals[] = {
655 P_SPORT0_TFS, P_SPORT0_DTPRI, P_SPORT0_TSCLK, P_SPORT0_RFS,
656 P_SPORT0_DRPRI, P_SPORT0_RSCLK, P_SPORT0_DRSEC, P_SPORT0_DTSEC, 0
657};
658
659static struct platform_device bfin_sport0_uart_device = {
660 .name = "bfin-sport-uart",
661 .id = 0,
662 .num_resources = ARRAY_SIZE(bfin_sport0_uart_resources),
663 .resource = bfin_sport0_uart_resources,
664 .dev = {
665 .platform_data = &bfin_sport0_peripherals, /* Passed to driver */
666 },
667};
668#endif
669#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
670static struct resource bfin_sport1_uart_resources[] = {
671 {
672 .start = SPORT1_TCR1,
673 .end = SPORT1_MRCS3+4,
674 .flags = IORESOURCE_MEM,
675 },
676 {
677 .start = IRQ_SPORT1_RX,
678 .end = IRQ_SPORT1_RX+1,
679 .flags = IORESOURCE_IRQ,
680 },
681 {
682 .start = IRQ_SPORT1_ERROR,
683 .end = IRQ_SPORT1_ERROR,
684 .flags = IORESOURCE_IRQ,
685 },
686};
687
688unsigned short bfin_sport1_peripherals[] = {
689 P_SPORT1_TFS, P_SPORT1_DTPRI, P_SPORT1_TSCLK, P_SPORT1_RFS,
690 P_SPORT1_DRPRI, P_SPORT1_RSCLK, P_SPORT1_DRSEC, P_SPORT1_DTSEC, 0
691};
692
693static struct platform_device bfin_sport1_uart_device = {
694 .name = "bfin-sport-uart",
695 .id = 1,
696 .num_resources = ARRAY_SIZE(bfin_sport1_uart_resources),
697 .resource = bfin_sport1_uart_resources,
698 .dev = {
699 .platform_data = &bfin_sport1_peripherals, /* Passed to driver */
700 },
701};
702#endif
703#ifdef CONFIG_SERIAL_BFIN_SPORT2_UART
704static struct resource bfin_sport2_uart_resources[] = {
705 {
706 .start = SPORT2_TCR1,
707 .end = SPORT2_MRCS3+4,
708 .flags = IORESOURCE_MEM,
709 },
710 {
711 .start = IRQ_SPORT2_RX,
712 .end = IRQ_SPORT2_RX+1,
713 .flags = IORESOURCE_IRQ,
714 },
715 {
716 .start = IRQ_SPORT2_ERROR,
717 .end = IRQ_SPORT2_ERROR,
718 .flags = IORESOURCE_IRQ,
719 },
720};
721
722unsigned short bfin_sport2_peripherals[] = {
723 P_SPORT2_TFS, P_SPORT2_DTPRI, P_SPORT2_TSCLK, P_SPORT2_RFS,
724 P_SPORT2_DRPRI, P_SPORT2_RSCLK, P_SPORT2_DRSEC, P_SPORT2_DTSEC, 0
725};
726
727static struct platform_device bfin_sport2_uart_device = {
728 .name = "bfin-sport-uart",
729 .id = 2,
730 .num_resources = ARRAY_SIZE(bfin_sport2_uart_resources),
731 .resource = bfin_sport2_uart_resources,
732 .dev = {
733 .platform_data = &bfin_sport2_peripherals, /* Passed to driver */
734 },
735};
736#endif
737#ifdef CONFIG_SERIAL_BFIN_SPORT3_UART
738static struct resource bfin_sport3_uart_resources[] = {
739 {
740 .start = SPORT3_TCR1,
741 .end = SPORT3_MRCS3+4,
742 .flags = IORESOURCE_MEM,
743 },
744 {
745 .start = IRQ_SPORT3_RX,
746 .end = IRQ_SPORT3_RX+1,
747 .flags = IORESOURCE_IRQ,
748 },
749 {
750 .start = IRQ_SPORT3_ERROR,
751 .end = IRQ_SPORT3_ERROR,
752 .flags = IORESOURCE_IRQ,
753 },
754};
755
756unsigned short bfin_sport3_peripherals[] = {
757 P_SPORT3_TFS, P_SPORT3_DTPRI, P_SPORT3_TSCLK, P_SPORT3_RFS,
758 P_SPORT3_DRPRI, P_SPORT3_RSCLK, P_SPORT3_DRSEC, P_SPORT3_DTSEC, 0
759};
760
761static struct platform_device bfin_sport3_uart_device = {
762 .name = "bfin-sport-uart",
763 .id = 3,
764 .num_resources = ARRAY_SIZE(bfin_sport3_uart_resources),
765 .resource = bfin_sport3_uart_resources,
766 .dev = {
767 .platform_data = &bfin_sport3_peripherals, /* Passed to driver */
768 },
769};
770#endif
771#endif
772
467#if defined(CONFIG_CAN_BFIN) || defined(CONFIG_CAN_BFIN_MODULE) 773#if defined(CONFIG_CAN_BFIN) || defined(CONFIG_CAN_BFIN_MODULE)
468unsigned short bfin_can_peripherals[] = { 774unsigned short bfin_can_peripherals[] = {
469 P_CAN0_RX, P_CAN0_TX, 0 775 P_CAN0_RX, P_CAN0_TX, 0
@@ -657,8 +963,8 @@ static struct bfin5xx_spi_chip spi_flash_chip_info = {
657}; 963};
658#endif 964#endif
659 965
660#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 966#if defined(CONFIG_SND_BLACKFIN_AD183X) \
661 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 967 || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
662static struct bfin5xx_spi_chip ad1836_spi_chip_info = { 968static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
663 .enable_dma = 0, 969 .enable_dma = 0,
664 .bits_per_word = 16, 970 .bits_per_word = 16,
@@ -714,8 +1020,8 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
714 .mode = SPI_MODE_3, 1020 .mode = SPI_MODE_3,
715 }, 1021 },
716#endif 1022#endif
717#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 1023#if defined(CONFIG_SND_BLACKFIN_AD183X) \
718 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 1024 || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
719 { 1025 {
720 .modalias = "ad1836", 1026 .modalias = "ad1836",
721 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 1027 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
@@ -951,6 +1257,30 @@ static struct platform_device bfin_dpmc = {
951 }, 1257 },
952}; 1258};
953 1259
1260#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
1261static struct platform_device bfin_i2s = {
1262 .name = "bfin-i2s",
1263 .id = CONFIG_SND_BF5XX_SPORT_NUM,
1264 /* TODO: add platform data here */
1265};
1266#endif
1267
1268#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
1269static struct platform_device bfin_tdm = {
1270 .name = "bfin-tdm",
1271 .id = CONFIG_SND_BF5XX_SPORT_NUM,
1272 /* TODO: add platform data here */
1273};
1274#endif
1275
1276#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
1277static struct platform_device bfin_ac97 = {
1278 .name = "bfin-ac97",
1279 .id = CONFIG_SND_BF5XX_SPORT_NUM,
1280 /* TODO: add platform data here */
1281};
1282#endif
1283
954static struct platform_device *ezkit_devices[] __initdata = { 1284static struct platform_device *ezkit_devices[] __initdata = {
955 1285
956 &bfin_dpmc, 1286 &bfin_dpmc,
@@ -960,7 +1290,18 @@ static struct platform_device *ezkit_devices[] __initdata = {
960#endif 1290#endif
961 1291
962#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 1292#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
963 &bfin_uart_device, 1293#ifdef CONFIG_SERIAL_BFIN_UART0
1294 &bfin_uart0_device,
1295#endif
1296#ifdef CONFIG_SERIAL_BFIN_UART1
1297 &bfin_uart1_device,
1298#endif
1299#ifdef CONFIG_SERIAL_BFIN_UART2
1300 &bfin_uart2_device,
1301#endif
1302#ifdef CONFIG_SERIAL_BFIN_UART3
1303 &bfin_uart3_device,
1304#endif
964#endif 1305#endif
965 1306
966#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 1307#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -994,6 +1335,21 @@ static struct platform_device *ezkit_devices[] __initdata = {
994 &bfin_isp1760_device, 1335 &bfin_isp1760_device,
995#endif 1336#endif
996 1337
1338#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
1339#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
1340 &bfin_sport0_uart_device,
1341#endif
1342#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
1343 &bfin_sport1_uart_device,
1344#endif
1345#ifdef CONFIG_SERIAL_BFIN_SPORT2_UART
1346 &bfin_sport2_uart_device,
1347#endif
1348#ifdef CONFIG_SERIAL_BFIN_SPORT3_UART
1349 &bfin_sport3_uart_device,
1350#endif
1351#endif
1352
997#if defined(CONFIG_CAN_BFIN) || defined(CONFIG_CAN_BFIN_MODULE) 1353#if defined(CONFIG_CAN_BFIN) || defined(CONFIG_CAN_BFIN_MODULE)
998 &bfin_can_device, 1354 &bfin_can_device,
999#endif 1355#endif
@@ -1037,6 +1393,18 @@ static struct platform_device *ezkit_devices[] __initdata = {
1037#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE) 1393#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
1038 &ezkit_flash_device, 1394 &ezkit_flash_device,
1039#endif 1395#endif
1396
1397#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
1398 &bfin_i2s,
1399#endif
1400
1401#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
1402 &bfin_tdm,
1403#endif
1404
1405#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
1406 &bfin_ac97,
1407#endif
1040}; 1408};
1041 1409
1042static int __init ezkit_init(void) 1410static int __init ezkit_init(void)
@@ -1058,3 +1426,42 @@ static int __init ezkit_init(void)
1058} 1426}
1059 1427
1060arch_initcall(ezkit_init); 1428arch_initcall(ezkit_init);
1429
1430static struct platform_device *ezkit_early_devices[] __initdata = {
1431#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
1432#ifdef CONFIG_SERIAL_BFIN_UART0
1433 &bfin_uart0_device,
1434#endif
1435#ifdef CONFIG_SERIAL_BFIN_UART1
1436 &bfin_uart1_device,
1437#endif
1438#ifdef CONFIG_SERIAL_BFIN_UART2
1439 &bfin_uart2_device,
1440#endif
1441#ifdef CONFIG_SERIAL_BFIN_UART3
1442 &bfin_uart3_device,
1443#endif
1444#endif
1445
1446#if defined(CONFIG_SERIAL_BFIN_SPORT_CONSOLE)
1447#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
1448 &bfin_sport0_uart_device,
1449#endif
1450#ifdef CONFIG_SERIAL_BFIN_SPORT1_UART
1451 &bfin_sport1_uart_device,
1452#endif
1453#ifdef CONFIG_SERIAL_BFIN_SPORT2_UART
1454 &bfin_sport2_uart_device,
1455#endif
1456#ifdef CONFIG_SERIAL_BFIN_SPORT3_UART
1457 &bfin_sport3_uart_device,
1458#endif
1459#endif
1460};
1461
1462void __init native_machine_early_platform_add_devices(void)
1463{
1464 printk(KERN_INFO "register early platform devices\n");
1465 early_platform_add_devices(ezkit_early_devices,
1466 ARRAY_SIZE(ezkit_early_devices));
1467}
diff --git a/arch/blackfin/mach-bf548/include/mach/irq.h b/arch/blackfin/mach-bf548/include/mach/irq.h
index 106db05684ae..1f99b51a3d56 100644
--- a/arch/blackfin/mach-bf548/include/mach/irq.h
+++ b/arch/blackfin/mach-bf548/include/mach/irq.h
@@ -317,7 +317,8 @@ Events (highest priority) EMU 0
317 317
318#define GPIO_IRQ_BASE IRQ_PA0 318#define GPIO_IRQ_BASE IRQ_PA0
319 319
320#define NR_IRQS (IRQ_PJ15+1) 320#define NR_MACH_IRQS (IRQ_PJ15 + 1)
321#define NR_IRQS (NR_MACH_IRQS + NR_SPARE_IRQS)
321 322
322/* For compatibility reasons with existing code */ 323/* For compatibility reasons with existing code */
323 324
diff --git a/arch/blackfin/mach-bf561/Makefile b/arch/blackfin/mach-bf561/Makefile
index 59e18afe28c6..b34029718318 100644
--- a/arch/blackfin/mach-bf561/Makefile
+++ b/arch/blackfin/mach-bf561/Makefile
@@ -6,3 +6,4 @@ obj-y := ints-priority.o dma.o
6 6
7obj-$(CONFIG_BF561_COREB) += coreb.o 7obj-$(CONFIG_BF561_COREB) += coreb.o
8obj-$(CONFIG_SMP) += smp.o secondary.o atomic.o 8obj-$(CONFIG_SMP) += smp.o secondary.o atomic.o
9obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
diff --git a/arch/blackfin/mach-bf561/boards/acvilon.c b/arch/blackfin/mach-bf561/boards/acvilon.c
index 07e8dc8770da..5163e2c383c5 100644
--- a/arch/blackfin/mach-bf561/boards/acvilon.c
+++ b/arch/blackfin/mach-bf561/boards/acvilon.c
@@ -176,7 +176,7 @@ static struct resource smsc911x_resources[] = {
176}; 176};
177 177
178static struct smsc911x_platform_config smsc911x_config = { 178static struct smsc911x_platform_config smsc911x_config = {
179 .flags = SMSC911X_USE_32BIT, 179 .flags = SMSC911X_USE_32BIT | SMSC911X_SAVE_MAC_ADDRESS,
180 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, 180 .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
181 .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN, 181 .irq_type = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
182 .phy_interface = PHY_INTERFACE_MODE_MII, 182 .phy_interface = PHY_INTERFACE_MODE_MII,
diff --git a/arch/blackfin/mach-bf561/boards/cm_bf561.c b/arch/blackfin/mach-bf561/boards/cm_bf561.c
index dfc8d5b77986..e127aedc1d7f 100644
--- a/arch/blackfin/mach-bf561/boards/cm_bf561.c
+++ b/arch/blackfin/mach-bf561/boards/cm_bf561.c
@@ -72,7 +72,7 @@ static struct bfin5xx_spi_chip spi_adc_chip_info = {
72}; 72};
73#endif 73#endif
74 74
75#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 75#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
76static struct bfin5xx_spi_chip ad1836_spi_chip_info = { 76static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
77 .enable_dma = 0, 77 .enable_dma = 0,
78 .bits_per_word = 16, 78 .bits_per_word = 16,
@@ -111,7 +111,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
111 }, 111 },
112#endif 112#endif
113 113
114#if defined(CONFIG_SND_BLACKFIN_AD1836) || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 114#if defined(CONFIG_SND_BLACKFIN_AD183X) || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
115 { 115 {
116 .modalias = "ad1836", 116 .modalias = "ad1836",
117 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 117 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
@@ -305,21 +305,50 @@ static struct platform_device isp1362_hcd_device = {
305#endif 305#endif
306 306
307#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 307#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
308static struct resource bfin_uart_resources[] = { 308#ifdef CONFIG_SERIAL_BFIN_UART0
309static struct resource bfin_uart0_resources[] = {
309 { 310 {
310 .start = 0xFFC00400, 311 .start = BFIN_UART_THR,
311 .end = 0xFFC004FF, 312 .end = BFIN_UART_GCTL+2,
312 .flags = IORESOURCE_MEM, 313 .flags = IORESOURCE_MEM,
313 }, 314 },
315 {
316 .start = IRQ_UART_RX,
317 .end = IRQ_UART_RX+1,
318 .flags = IORESOURCE_IRQ,
319 },
320 {
321 .start = IRQ_UART_ERROR,
322 .end = IRQ_UART_ERROR,
323 .flags = IORESOURCE_IRQ,
324 },
325 {
326 .start = CH_UART_TX,
327 .end = CH_UART_TX,
328 .flags = IORESOURCE_DMA,
329 },
330 {
331 .start = CH_UART_RX,
332 .end = CH_UART_RX,
333 .flags = IORESOURCE_DMA,
334 },
314}; 335};
315 336
316static struct platform_device bfin_uart_device = { 337unsigned short bfin_uart0_peripherals[] = {
338 P_UART0_TX, P_UART0_RX, 0
339};
340
341static struct platform_device bfin_uart0_device = {
317 .name = "bfin-uart", 342 .name = "bfin-uart",
318 .id = 1, 343 .id = 0,
319 .num_resources = ARRAY_SIZE(bfin_uart_resources), 344 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
320 .resource = bfin_uart_resources, 345 .resource = bfin_uart0_resources,
346 .dev = {
347 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
348 },
321}; 349};
322#endif 350#endif
351#endif
323 352
324#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 353#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
325#ifdef CONFIG_BFIN_SIR0 354#ifdef CONFIG_BFIN_SIR0
@@ -463,7 +492,9 @@ static struct platform_device *cm_bf561_devices[] __initdata = {
463#endif 492#endif
464 493
465#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 494#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
466 &bfin_uart_device, 495#ifdef CONFIG_SERIAL_BFIN_UART0
496 &bfin_uart0_device,
497#endif
467#endif 498#endif
468 499
469#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 500#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -516,3 +547,18 @@ static int __init cm_bf561_init(void)
516} 547}
517 548
518arch_initcall(cm_bf561_init); 549arch_initcall(cm_bf561_init);
550
551static struct platform_device *cm_bf561_early_devices[] __initdata = {
552#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
553#ifdef CONFIG_SERIAL_BFIN_UART0
554 &bfin_uart0_device,
555#endif
556#endif
557};
558
559void __init native_machine_early_platform_add_devices(void)
560{
561 printk(KERN_INFO "register early platform devices\n");
562 early_platform_add_devices(cm_bf561_early_devices,
563 ARRAY_SIZE(cm_bf561_early_devices));
564}
diff --git a/arch/blackfin/mach-bf561/boards/ezkit.c b/arch/blackfin/mach-bf561/boards/ezkit.c
index ffd3e6a80d1a..9b93e2f95791 100644
--- a/arch/blackfin/mach-bf561/boards/ezkit.c
+++ b/arch/blackfin/mach-bf561/boards/ezkit.c
@@ -160,21 +160,50 @@ static struct platform_device smc91x_device = {
160#endif 160#endif
161 161
162#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 162#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
163static struct resource bfin_uart_resources[] = { 163#ifdef CONFIG_SERIAL_BFIN_UART0
164static struct resource bfin_uart0_resources[] = {
164 { 165 {
165 .start = 0xFFC00400, 166 .start = BFIN_UART_THR,
166 .end = 0xFFC004FF, 167 .end = BFIN_UART_GCTL+2,
167 .flags = IORESOURCE_MEM, 168 .flags = IORESOURCE_MEM,
168 }, 169 },
170 {
171 .start = IRQ_UART_RX,
172 .end = IRQ_UART_RX+1,
173 .flags = IORESOURCE_IRQ,
174 },
175 {
176 .start = IRQ_UART_ERROR,
177 .end = IRQ_UART_ERROR,
178 .flags = IORESOURCE_IRQ,
179 },
180 {
181 .start = CH_UART_TX,
182 .end = CH_UART_TX,
183 .flags = IORESOURCE_DMA,
184 },
185 {
186 .start = CH_UART_RX,
187 .end = CH_UART_RX,
188 .flags = IORESOURCE_DMA,
189 },
169}; 190};
170 191
171static struct platform_device bfin_uart_device = { 192unsigned short bfin_uart0_peripherals[] = {
193 P_UART0_TX, P_UART0_RX, 0
194};
195
196static struct platform_device bfin_uart0_device = {
172 .name = "bfin-uart", 197 .name = "bfin-uart",
173 .id = 1, 198 .id = 0,
174 .num_resources = ARRAY_SIZE(bfin_uart_resources), 199 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
175 .resource = bfin_uart_resources, 200 .resource = bfin_uart0_resources,
201 .dev = {
202 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
203 },
176}; 204};
177#endif 205#endif
206#endif
178 207
179#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 208#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
180#ifdef CONFIG_BFIN_SIR0 209#ifdef CONFIG_BFIN_SIR0
@@ -245,8 +274,8 @@ static struct platform_device ezkit_flash_device = {
245}; 274};
246#endif 275#endif
247 276
248#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 277#if defined(CONFIG_SND_BLACKFIN_AD183X) \
249 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 278 || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
250static struct bfin5xx_spi_chip ad1836_spi_chip_info = { 279static struct bfin5xx_spi_chip ad1836_spi_chip_info = {
251 .enable_dma = 0, 280 .enable_dma = 0,
252 .bits_per_word = 16, 281 .bits_per_word = 16,
@@ -299,8 +328,8 @@ static struct platform_device bfin_spi0_device = {
299#endif 328#endif
300 329
301static struct spi_board_info bfin_spi_board_info[] __initdata = { 330static struct spi_board_info bfin_spi_board_info[] __initdata = {
302#if defined(CONFIG_SND_BLACKFIN_AD1836) \ 331#if defined(CONFIG_SND_BLACKFIN_AD183X) \
303 || defined(CONFIG_SND_BLACKFIN_AD1836_MODULE) 332 || defined(CONFIG_SND_BLACKFIN_AD183X_MODULE)
304 { 333 {
305 .modalias = "ad1836", 334 .modalias = "ad1836",
306 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */ 335 .max_speed_hz = 3125000, /* max spi clock (SCK) speed in HZ */
@@ -412,7 +441,9 @@ static struct platform_device *ezkit_devices[] __initdata = {
412#endif 441#endif
413 442
414#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 443#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
415 &bfin_uart_device, 444#ifdef CONFIG_SERIAL_BFIN_UART0
445 &bfin_uart0_device,
446#endif
416#endif 447#endif
417 448
418#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 449#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
@@ -458,3 +489,18 @@ static int __init ezkit_init(void)
458} 489}
459 490
460arch_initcall(ezkit_init); 491arch_initcall(ezkit_init);
492
493static struct platform_device *ezkit_early_devices[] __initdata = {
494#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
495#ifdef CONFIG_SERIAL_BFIN_UART0
496 &bfin_uart0_device,
497#endif
498#endif
499};
500
501void __init native_machine_early_platform_add_devices(void)
502{
503 printk(KERN_INFO "register early platform devices\n");
504 early_platform_add_devices(ezkit_early_devices,
505 ARRAY_SIZE(ezkit_early_devices));
506}
diff --git a/arch/blackfin/mach-bf561/boards/tepla.c b/arch/blackfin/mach-bf561/boards/tepla.c
index 8ba7252455e1..d3017e53686b 100644
--- a/arch/blackfin/mach-bf561/boards/tepla.c
+++ b/arch/blackfin/mach-bf561/boards/tepla.c
@@ -42,6 +42,52 @@ static struct platform_device smc91x_device = {
42 .resource = smc91x_resources, 42 .resource = smc91x_resources,
43}; 43};
44 44
45#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
46#ifdef CONFIG_SERIAL_BFIN_UART0
47static struct resource bfin_uart0_resources[] = {
48 {
49 .start = BFIN_UART_THR,
50 .end = BFIN_UART_GCTL+2,
51 .flags = IORESOURCE_MEM,
52 },
53 {
54 .start = IRQ_UART_RX,
55 .end = IRQ_UART_RX+1,
56 .flags = IORESOURCE_IRQ,
57 },
58 {
59 .start = IRQ_UART_ERROR,
60 .end = IRQ_UART_ERROR,
61 .flags = IORESOURCE_IRQ,
62 },
63 {
64 .start = CH_UART_TX,
65 .end = CH_UART_TX,
66 .flags = IORESOURCE_DMA,
67 },
68 {
69 .start = CH_UART_RX,
70 .end = CH_UART_RX,
71 .flags = IORESOURCE_DMA,
72 },
73};
74
75unsigned short bfin_uart0_peripherals[] = {
76 P_UART0_TX, P_UART0_RX, 0
77};
78
79static struct platform_device bfin_uart0_device = {
80 .name = "bfin-uart",
81 .id = 0,
82 .num_resources = ARRAY_SIZE(bfin_uart0_resources),
83 .resource = bfin_uart0_resources,
84 .dev = {
85 .platform_data = &bfin_uart0_peripherals, /* Passed to driver */
86 },
87};
88#endif
89#endif
90
45#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 91#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
46#ifdef CONFIG_BFIN_SIR0 92#ifdef CONFIG_BFIN_SIR0
47static struct resource bfin_sir0_resources[] = { 93static struct resource bfin_sir0_resources[] = {
@@ -73,6 +119,13 @@ static struct platform_device bfin_sir0_device = {
73 119
74static struct platform_device *tepla_devices[] __initdata = { 120static struct platform_device *tepla_devices[] __initdata = {
75 &smc91x_device, 121 &smc91x_device,
122
123#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
124#ifdef CONFIG_SERIAL_BFIN_UART0
125 &bfin_uart0_device,
126#endif
127#endif
128
76#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE) 129#if defined(CONFIG_BFIN_SIR) || defined(CONFIG_BFIN_SIR_MODULE)
77#ifdef CONFIG_BFIN_SIR0 130#ifdef CONFIG_BFIN_SIR0
78 &bfin_sir0_device, 131 &bfin_sir0_device,
@@ -87,3 +140,18 @@ static int __init tepla_init(void)
87} 140}
88 141
89arch_initcall(tepla_init); 142arch_initcall(tepla_init);
143
144static struct platform_device *tepla_early_devices[] __initdata = {
145#if defined(CONFIG_SERIAL_BFIN_CONSOLE) || defined(CONFIG_EARLY_PRINTK)
146#ifdef CONFIG_SERIAL_BFIN_UART0
147 &bfin_uart0_device,
148#endif
149#endif
150};
151
152void __init native_machine_early_platform_add_devices(void)
153{
154 printk(KERN_INFO "register early platform devices\n");
155 early_platform_add_devices(tepla_early_devices,
156 ARRAY_SIZE(tepla_early_devices));
157}
diff --git a/arch/blackfin/mach-bf561/hotplug.c b/arch/blackfin/mach-bf561/hotplug.c
new file mode 100644
index 000000000000..c95169b612dc
--- /dev/null
+++ b/arch/blackfin/mach-bf561/hotplug.c
@@ -0,0 +1,32 @@
1/*
2 * Copyright 2007-2009 Analog Devices Inc.
3 * Graff Yang <graf.yang@analog.com>
4 *
5 * Licensed under the GPL-2 or later.
6 */
7
8#include <asm/blackfin.h>
9#include <asm/smp.h>
10#define SIC_SYSIRQ(irq) (irq - (IRQ_CORETMR + 1))
11
12int hotplug_coreb;
13
14void platform_cpu_die(void)
15{
16 unsigned long iwr[2] = {0, 0};
17 unsigned long bank = SIC_SYSIRQ(IRQ_SUPPLE_0) / 32;
18 unsigned long bit = 1 << (SIC_SYSIRQ(IRQ_SUPPLE_0) % 32);
19
20 hotplug_coreb = 1;
21
22 iwr[bank] = bit;
23
24 /* disable core timer */
25 bfin_write_TCNTL(0);
26
27 /* clear ipi interrupt IRQ_SUPPLE_0 */
28 bfin_write_SICB_SYSCR(bfin_read_SICB_SYSCR() | (1 << (10 + 1)));
29 SSYNC();
30
31 coreb_sleep(iwr[0], iwr[1], 0);
32}
diff --git a/arch/blackfin/mach-bf561/include/mach/irq.h b/arch/blackfin/mach-bf561/include/mach/irq.h
index 7b208db267bf..c95566ade51b 100644
--- a/arch/blackfin/mach-bf561/include/mach/irq.h
+++ b/arch/blackfin/mach-bf561/include/mach/irq.h
@@ -265,7 +265,8 @@
265 265
266#define GPIO_IRQ_BASE IRQ_PF0 266#define GPIO_IRQ_BASE IRQ_PF0
267 267
268#define NR_IRQS (IRQ_PF47 + 1) 268#define NR_MACH_IRQS (IRQ_PF47 + 1)
269#define NR_IRQS (NR_MACH_IRQS + NR_SPARE_IRQS)
269 270
270#define IVG7 7 271#define IVG7 7
271#define IVG8 8 272#define IVG8 8
diff --git a/arch/blackfin/mach-bf561/include/mach/smp.h b/arch/blackfin/mach-bf561/include/mach/smp.h
index 390c7f4ae7b3..2c8c514dd386 100644
--- a/arch/blackfin/mach-bf561/include/mach/smp.h
+++ b/arch/blackfin/mach-bf561/include/mach/smp.h
@@ -25,4 +25,6 @@ void platform_send_ipi_cpu(unsigned int cpu);
25 25
26void platform_clear_ipi(unsigned int cpu); 26void platform_clear_ipi(unsigned int cpu);
27 27
28void bfin_local_timer_setup(void);
29
28#endif /* !_MACH_BF561_SMP */ 30#endif /* !_MACH_BF561_SMP */
diff --git a/arch/blackfin/mach-bf561/secondary.S b/arch/blackfin/mach-bf561/secondary.S
index 8e6050369c06..4624eebbf9c4 100644
--- a/arch/blackfin/mach-bf561/secondary.S
+++ b/arch/blackfin/mach-bf561/secondary.S
@@ -11,6 +11,7 @@
11#include <linux/init.h> 11#include <linux/init.h>
12#include <asm/blackfin.h> 12#include <asm/blackfin.h>
13#include <asm/asm-offsets.h> 13#include <asm/asm-offsets.h>
14#include <asm/trace.h>
14 15
15__INIT 16__INIT
16 17
@@ -62,6 +63,8 @@ ENTRY(_coreb_trampoline_start)
62 M2 = r0; 63 M2 = r0;
63 M3 = r0; 64 M3 = r0;
64 65
66 trace_buffer_init(p0,r0);
67
65 /* Turn off the icache */ 68 /* Turn off the icache */
66 p0.l = LO(IMEM_CONTROL); 69 p0.l = LO(IMEM_CONTROL);
67 p0.h = HI(IMEM_CONTROL); 70 p0.h = HI(IMEM_CONTROL);
@@ -159,6 +162,41 @@ ENTRY(_coreb_trampoline_start)
159ENDPROC(_coreb_trampoline_start) 162ENDPROC(_coreb_trampoline_start)
160ENTRY(_coreb_trampoline_end) 163ENTRY(_coreb_trampoline_end)
161 164
165.section ".text"
166ENTRY(_set_sicb_iwr)
167 P0.H = hi(SICB_IWR0);
168 P0.L = lo(SICB_IWR0);
169 P1.H = hi(SICB_IWR1);
170 P1.L = lo(SICB_IWR1);
171 [P0] = R0;
172 [P1] = R1;
173 SSYNC;
174 RTS;
175ENDPROC(_set_sicb_iwr)
176
177ENTRY(_coreb_sleep)
178 sp.l = lo(INITIAL_STACK);
179 sp.h = hi(INITIAL_STACK);
180 fp = sp;
181 usp = sp;
182
183 call _set_sicb_iwr;
184
185 CLI R2;
186 SSYNC;
187 IDLE;
188 STI R2;
189
190 R0 = IWR_DISABLE_ALL;
191 R1 = IWR_DISABLE_ALL;
192 call _set_sicb_iwr;
193
194 p0.h = hi(COREB_L1_CODE_START);
195 p0.l = lo(COREB_L1_CODE_START);
196 jump (p0);
197ENDPROC(_coreb_sleep)
198
199__CPUINIT
162ENTRY(_coreb_start) 200ENTRY(_coreb_start)
163 [--sp] = reti; 201 [--sp] = reti;
164 202
@@ -176,12 +214,20 @@ ENTRY(_coreb_start)
176 sp = [p0]; 214 sp = [p0];
177 usp = sp; 215 usp = sp;
178 fp = sp; 216 fp = sp;
217#ifdef CONFIG_HOTPLUG_CPU
218 p0.l = _hotplug_coreb;
219 p0.h = _hotplug_coreb;
220 r0 = [p0];
221 cc = BITTST(r0, 0);
222 if cc jump 3f;
223#endif
179 sp += -12; 224 sp += -12;
180 call _init_pda 225 call _init_pda
181 sp += 12; 226 sp += 12;
227#ifdef CONFIG_HOTPLUG_CPU
2283:
229#endif
182 call _secondary_start_kernel; 230 call _secondary_start_kernel;
183.L_exit: 231.L_exit:
184 jump.s .L_exit; 232 jump.s .L_exit;
185ENDPROC(_coreb_start) 233ENDPROC(_coreb_start)
186
187__FINIT
diff --git a/arch/blackfin/mach-bf561/smp.c b/arch/blackfin/mach-bf561/smp.c
index 0192532e96a2..3b9a4bf7dacc 100644
--- a/arch/blackfin/mach-bf561/smp.c
+++ b/arch/blackfin/mach-bf561/smp.c
@@ -11,11 +11,10 @@
11#include <linux/delay.h> 11#include <linux/delay.h>
12#include <asm/smp.h> 12#include <asm/smp.h>
13#include <asm/dma.h> 13#include <asm/dma.h>
14#include <asm/time.h>
14 15
15static DEFINE_SPINLOCK(boot_lock); 16static DEFINE_SPINLOCK(boot_lock);
16 17
17static cpumask_t cpu_callin_map;
18
19/* 18/*
20 * platform_init_cpus() - Tell the world about how many cores we 19 * platform_init_cpus() - Tell the world about how many cores we
21 * have. This is called while setting up the architecture support 20 * have. This is called while setting up the architecture support
@@ -66,13 +65,15 @@ void __cpuinit platform_secondary_init(unsigned int cpu)
66 bfin_write_SICB_IAR5(bfin_read_SICA_IAR5()); 65 bfin_write_SICB_IAR5(bfin_read_SICA_IAR5());
67 bfin_write_SICB_IAR6(bfin_read_SICA_IAR6()); 66 bfin_write_SICB_IAR6(bfin_read_SICA_IAR6());
68 bfin_write_SICB_IAR7(bfin_read_SICA_IAR7()); 67 bfin_write_SICB_IAR7(bfin_read_SICA_IAR7());
68 bfin_write_SICB_IWR0(IWR_DISABLE_ALL);
69 bfin_write_SICB_IWR1(IWR_DISABLE_ALL);
69 SSYNC(); 70 SSYNC();
70 71
71 /* Store CPU-private information to the cpu_data array. */ 72 /* Store CPU-private information to the cpu_data array. */
72 bfin_setup_cpudata(cpu); 73 bfin_setup_cpudata(cpu);
73 74
74 /* We are done with local CPU inits, unblock the boot CPU. */ 75 /* We are done with local CPU inits, unblock the boot CPU. */
75 cpu_set(cpu, cpu_callin_map); 76 set_cpu_online(cpu, true);
76 spin_lock(&boot_lock); 77 spin_lock(&boot_lock);
77 spin_unlock(&boot_lock); 78 spin_unlock(&boot_lock);
78} 79}
@@ -81,28 +82,28 @@ int __cpuinit platform_boot_secondary(unsigned int cpu, struct task_struct *idle
81{ 82{
82 unsigned long timeout; 83 unsigned long timeout;
83 84
84 /* CoreB already running?! */
85 BUG_ON((bfin_read_SICA_SYSCR() & COREB_SRAM_INIT) == 0);
86
87 printk(KERN_INFO "Booting Core B.\n"); 85 printk(KERN_INFO "Booting Core B.\n");
88 86
89 spin_lock(&boot_lock); 87 spin_lock(&boot_lock);
90 88
91 /* Kick CoreB, which should start execution from CORE_SRAM_BASE. */ 89 if ((bfin_read_SICA_SYSCR() & COREB_SRAM_INIT) == 0) {
92 SSYNC(); 90 /* CoreB already running, sending ipi to wakeup it */
93 bfin_write_SICA_SYSCR(bfin_read_SICA_SYSCR() & ~COREB_SRAM_INIT); 91 platform_send_ipi_cpu(cpu, IRQ_SUPPLE_0);
94 SSYNC(); 92 } else {
93 /* Kick CoreB, which should start execution from CORE_SRAM_BASE. */
94 bfin_write_SICA_SYSCR(bfin_read_SICA_SYSCR() & ~COREB_SRAM_INIT);
95 SSYNC();
96 }
95 97
96 timeout = jiffies + 1 * HZ; 98 timeout = jiffies + 1 * HZ;
97 while (time_before(jiffies, timeout)) { 99 while (time_before(jiffies, timeout)) {
98 if (cpu_isset(cpu, cpu_callin_map)) 100 if (cpu_online(cpu))
99 break; 101 break;
100 udelay(100); 102 udelay(100);
101 barrier(); 103 barrier();
102 } 104 }
103 105
104 if (cpu_isset(cpu, cpu_callin_map)) { 106 if (cpu_online(cpu)) {
105 cpu_set(cpu, cpu_online_map);
106 /* release the lock and let coreb run */ 107 /* release the lock and let coreb run */
107 spin_unlock(&boot_lock); 108 spin_unlock(&boot_lock);
108 return 0; 109 return 0;
@@ -147,3 +148,20 @@ void platform_clear_ipi(unsigned int cpu)
147 bfin_write_SICB_SYSCR(bfin_read_SICB_SYSCR() | (1 << (10 + cpu))); 148 bfin_write_SICB_SYSCR(bfin_read_SICB_SYSCR() | (1 << (10 + cpu)));
148 SSYNC(); 149 SSYNC();
149} 150}
151
152/*
153 * Setup core B's local core timer.
154 * In SMP, core timer is used for clock event device.
155 */
156void __cpuinit bfin_local_timer_setup(void)
157{
158#if defined(CONFIG_TICKSOURCE_CORETMR)
159 bfin_coretmr_init();
160 bfin_coretmr_clockevent_init();
161 get_irq_chip(IRQ_CORETMR)->unmask(IRQ_CORETMR);
162#else
163 /* Power down the core timer, just to play safe. */
164 bfin_write_TCNTL(0);
165#endif
166
167}
diff --git a/arch/blackfin/mach-common/cpufreq.c b/arch/blackfin/mach-common/cpufreq.c
index 777582897253..4391d03dc845 100644
--- a/arch/blackfin/mach-common/cpufreq.c
+++ b/arch/blackfin/mach-common/cpufreq.c
@@ -11,10 +11,13 @@
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/cpufreq.h> 12#include <linux/cpufreq.h>
13#include <linux/fs.h> 13#include <linux/fs.h>
14#include <linux/delay.h>
14#include <asm/blackfin.h> 15#include <asm/blackfin.h>
15#include <asm/time.h> 16#include <asm/time.h>
16#include <asm/dpmc.h> 17#include <asm/dpmc.h>
17 18
19#define CPUFREQ_CPU 0
20
18/* this is the table of CCLK frequencies, in Hz */ 21/* this is the table of CCLK frequencies, in Hz */
19/* .index is the entry in the auxillary dpm_state_table[] */ 22/* .index is the entry in the auxillary dpm_state_table[] */
20static struct cpufreq_frequency_table bfin_freq_table[] = { 23static struct cpufreq_frequency_table bfin_freq_table[] = {
@@ -41,64 +44,124 @@ static struct bfin_dpm_state {
41 unsigned int tscale; /* change the divider on the core timer interrupt */ 44 unsigned int tscale; /* change the divider on the core timer interrupt */
42} dpm_state_table[3]; 45} dpm_state_table[3];
43 46
47#if defined(CONFIG_CYCLES_CLOCKSOURCE)
44/* 48/*
45 normalized to maximum frequncy offset for CYCLES, 49 * normalized to maximum frequncy offset for CYCLES,
46 used in time-ts cycles clock source, but could be used 50 * used in time-ts cycles clock source, but could be used
47 somewhere also. 51 * somewhere also.
48 */ 52 */
49unsigned long long __bfin_cycles_off; 53unsigned long long __bfin_cycles_off;
50unsigned int __bfin_cycles_mod; 54unsigned int __bfin_cycles_mod;
55#endif
51 56
52/**************************************************************************/ 57/**************************************************************************/
58static void __init bfin_init_tables(unsigned long cclk, unsigned long sclk)
59{
53 60
54static unsigned int bfin_getfreq_khz(unsigned int cpu) 61 unsigned long csel, min_cclk;
62 int index;
63
64 /* Anomaly 273 seems to still exist on non-BF54x w/dcache turned on */
65#if ANOMALY_05000273 || ANOMALY_05000274 || \
66 (!defined(CONFIG_BF54x) && defined(CONFIG_BFIN_EXTMEM_DCACHEABLE))
67 min_cclk = sclk * 2;
68#else
69 min_cclk = sclk;
70#endif
71 csel = ((bfin_read_PLL_DIV() & CSEL) >> 4);
72
73 for (index = 0; (cclk >> index) >= min_cclk && csel <= 3; index++, csel++) {
74 bfin_freq_table[index].frequency = cclk >> index;
75 dpm_state_table[index].csel = csel << 4; /* Shift now into PLL_DIV bitpos */
76 dpm_state_table[index].tscale = (TIME_SCALE / (1 << csel)) - 1;
77
78 pr_debug("cpufreq: freq:%d csel:0x%x tscale:%d\n",
79 bfin_freq_table[index].frequency,
80 dpm_state_table[index].csel,
81 dpm_state_table[index].tscale);
82 }
83 return;
84}
85
86static void bfin_adjust_core_timer(void *info)
55{ 87{
56 /* The driver only support single cpu */ 88 unsigned int tscale;
57 if (cpu != 0) 89 unsigned int index = *(unsigned int *)info;
58 return -1;
59 90
60 return get_cclk() / 1000; 91 /* we have to adjust the core timer, because it is using cclk */
92 tscale = dpm_state_table[index].tscale;
93 bfin_write_TSCALE(tscale);
94 return;
61} 95}
62 96
97static unsigned int bfin_getfreq_khz(unsigned int cpu)
98{
99 /* Both CoreA/B have the same core clock */
100 return get_cclk() / 1000;
101}
63 102
64static int bfin_target(struct cpufreq_policy *policy, 103static int bfin_target(struct cpufreq_policy *poli,
65 unsigned int target_freq, unsigned int relation) 104 unsigned int target_freq, unsigned int relation)
66{ 105{
67 unsigned int index, plldiv, tscale; 106 unsigned int index, plldiv, cpu;
68 unsigned long flags, cclk_hz; 107 unsigned long flags, cclk_hz;
69 struct cpufreq_freqs freqs; 108 struct cpufreq_freqs freqs;
109 static unsigned long lpj_ref;
110 static unsigned int lpj_ref_freq;
111
112#if defined(CONFIG_CYCLES_CLOCKSOURCE)
70 cycles_t cycles; 113 cycles_t cycles;
114#endif
71 115
72 if (cpufreq_frequency_table_target(policy, bfin_freq_table, 116 for_each_online_cpu(cpu) {
73 target_freq, relation, &index)) 117 struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
74 return -EINVAL; 118
75 119 if (!policy)
76 cclk_hz = bfin_freq_table[index].frequency; 120 continue;
77 121
78 freqs.old = bfin_getfreq_khz(0); 122 if (cpufreq_frequency_table_target(policy, bfin_freq_table,
79 freqs.new = cclk_hz; 123 target_freq, relation, &index))
80 freqs.cpu = 0; 124 return -EINVAL;
81 125
82 pr_debug("cpufreq: changing cclk to %lu; target = %u, oldfreq = %u\n", 126 cclk_hz = bfin_freq_table[index].frequency;
83 cclk_hz, target_freq, freqs.old); 127
84 128 freqs.old = bfin_getfreq_khz(0);
85 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); 129 freqs.new = cclk_hz;
86 local_irq_save_hw(flags); 130 freqs.cpu = cpu;
87 plldiv = (bfin_read_PLL_DIV() & SSEL) | dpm_state_table[index].csel; 131
88 tscale = dpm_state_table[index].tscale; 132 pr_debug("cpufreq: changing cclk to %lu; target = %u, oldfreq = %u\n",
89 bfin_write_PLL_DIV(plldiv); 133 cclk_hz, target_freq, freqs.old);
90 /* we have to adjust the core timer, because it is using cclk */ 134
91 bfin_write_TSCALE(tscale); 135 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
92 cycles = get_cycles(); 136 if (cpu == CPUFREQ_CPU) {
93 SSYNC(); 137 local_irq_save_hw(flags);
94 cycles += 10; /* ~10 cycles we lose after get_cycles() */ 138 plldiv = (bfin_read_PLL_DIV() & SSEL) |
95 __bfin_cycles_off += (cycles << __bfin_cycles_mod) - (cycles << index); 139 dpm_state_table[index].csel;
96 __bfin_cycles_mod = index; 140 bfin_write_PLL_DIV(plldiv);
97 local_irq_restore_hw(flags); 141 on_each_cpu(bfin_adjust_core_timer, &index, 1);
98 /* TODO: just test case for cycles clock source, remove later */ 142#if defined(CONFIG_CYCLES_CLOCKSOURCE)
99 pr_debug("cpufreq: done\n"); 143 cycles = get_cycles();
100 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); 144 SSYNC();
145 cycles += 10; /* ~10 cycles we lose after get_cycles() */
146 __bfin_cycles_off +=
147 (cycles << __bfin_cycles_mod) - (cycles << index);
148 __bfin_cycles_mod = index;
149#endif
150 if (!lpj_ref_freq) {
151 lpj_ref = loops_per_jiffy;
152 lpj_ref_freq = freqs.old;
153 }
154 if (freqs.new != freqs.old) {
155 loops_per_jiffy = cpufreq_scale(lpj_ref,
156 lpj_ref_freq, freqs.new);
157 }
158 local_irq_restore_hw(flags);
159 }
160 /* TODO: just test case for cycles clock source, remove later */
161 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
162 }
101 163
164 pr_debug("cpufreq: done\n");
102 return 0; 165 return 0;
103} 166}
104 167
@@ -110,37 +173,16 @@ static int bfin_verify_speed(struct cpufreq_policy *policy)
110static int __init __bfin_cpu_init(struct cpufreq_policy *policy) 173static int __init __bfin_cpu_init(struct cpufreq_policy *policy)
111{ 174{
112 175
113 unsigned long cclk, sclk, csel, min_cclk; 176 unsigned long cclk, sclk;
114 int index;
115
116 if (policy->cpu != 0)
117 return -EINVAL;
118 177
119 cclk = get_cclk() / 1000; 178 cclk = get_cclk() / 1000;
120 sclk = get_sclk() / 1000; 179 sclk = get_sclk() / 1000;
121 180
122#if ANOMALY_05000273 || ANOMALY_05000274 || \ 181 if (policy->cpu == CPUFREQ_CPU)
123 (!defined(CONFIG_BF54x) && defined(CONFIG_BFIN_EXTMEM_DCACHEABLE)) 182 bfin_init_tables(cclk, sclk);
124 min_cclk = sclk * 2;
125#else
126 min_cclk = sclk;
127#endif
128 csel = ((bfin_read_PLL_DIV() & CSEL) >> 4);
129
130 for (index = 0; (cclk >> index) >= min_cclk && csel <= 3; index++, csel++) {
131 bfin_freq_table[index].frequency = cclk >> index;
132 dpm_state_table[index].csel = csel << 4; /* Shift now into PLL_DIV bitpos */
133 dpm_state_table[index].tscale = (TIME_SCALE / (1 << csel)) - 1;
134
135 pr_debug("cpufreq: freq:%d csel:0x%x tscale:%d\n",
136 bfin_freq_table[index].frequency,
137 dpm_state_table[index].csel,
138 dpm_state_table[index].tscale);
139 }
140 183
141 policy->cpuinfo.transition_latency = 50000; /* 50us assumed */ 184 policy->cpuinfo.transition_latency = 50000; /* 50us assumed */
142 185
143 /*Now ,only support one cpu */
144 policy->cur = cclk; 186 policy->cur = cclk;
145 cpufreq_frequency_table_get_attr(bfin_freq_table, policy->cpu); 187 cpufreq_frequency_table_get_attr(bfin_freq_table, policy->cpu);
146 return cpufreq_frequency_table_cpuinfo(policy, bfin_freq_table); 188 return cpufreq_frequency_table_cpuinfo(policy, bfin_freq_table);
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S
index 01b2f58dfb95..a5847f5d67c7 100644
--- a/arch/blackfin/mach-common/entry.S
+++ b/arch/blackfin/mach-common/entry.S
@@ -405,7 +405,7 @@ ENTRY(_double_fault)
405 405
406 r0 = sp; /* stack frame pt_regs pointer argument ==> r0 */ 406 r0 = sp; /* stack frame pt_regs pointer argument ==> r0 */
407 SP += -12; 407 SP += -12;
408 call _double_fault_c; 408 pseudo_long_call _double_fault_c, p5;
409 SP += 12; 409 SP += 12;
410.L_double_fault_panic: 410.L_double_fault_panic:
411 JUMP .L_double_fault_panic 411 JUMP .L_double_fault_panic
@@ -447,7 +447,7 @@ ENTRY(_exception_to_level5)
447 447
448 r0 = sp; /* stack frame pt_regs pointer argument ==> r0 */ 448 r0 = sp; /* stack frame pt_regs pointer argument ==> r0 */
449 SP += -12; 449 SP += -12;
450 call _trap_c; 450 pseudo_long_call _trap_c, p4;
451 SP += 12; 451 SP += 12;
452 452
453 /* If interrupts were off during the exception (IPEND[4] = 1), turn them off 453 /* If interrupts were off during the exception (IPEND[4] = 1), turn them off
@@ -482,6 +482,8 @@ ENTRY(_trap) /* Exception: 4th entry into system event table(supervisor mode)*/
482 [--sp] = ASTAT; 482 [--sp] = ASTAT;
483 [--sp] = (R7:6,P5:4); 483 [--sp] = (R7:6,P5:4);
484 484
485 ANOMALY_283_315_WORKAROUND(p5, r7)
486
485#ifdef CONFIG_EXACT_HWERR 487#ifdef CONFIG_EXACT_HWERR
486 /* Make sure all pending read/writes complete. This will ensure any 488 /* Make sure all pending read/writes complete. This will ensure any
487 * accesses which could cause hardware errors completes, and signal 489 * accesses which could cause hardware errors completes, and signal
@@ -492,8 +494,6 @@ ENTRY(_trap) /* Exception: 4th entry into system event table(supervisor mode)*/
492 ssync; 494 ssync;
493#endif 495#endif
494 496
495 ANOMALY_283_315_WORKAROUND(p5, r7)
496
497#ifdef CONFIG_DEBUG_DOUBLEFAULT 497#ifdef CONFIG_DEBUG_DOUBLEFAULT
498 /* 498 /*
499 * Save these registers, as they are only valid in exception context 499 * Save these registers, as they are only valid in exception context
@@ -551,7 +551,7 @@ ENTRY(_kernel_execve)
551 p0 = sp; 551 p0 = sp;
552 sp += -16; 552 sp += -16;
553 [sp + 12] = p0; 553 [sp + 12] = p0;
554 call _do_execve; 554 pseudo_long_call _do_execve, p5;
555 SP += 16; 555 SP += 16;
556 cc = r0 == 0; 556 cc = r0 == 0;
557 if ! cc jump .Lexecve_failed; 557 if ! cc jump .Lexecve_failed;
@@ -626,13 +626,6 @@ ENTRY(_system_call)
626 p0 = [sp + PT_ORIG_P0]; 626 p0 = [sp + PT_ORIG_P0];
627#endif /* CONFIG_IPIPE */ 627#endif /* CONFIG_IPIPE */
628 628
629 /* Check the System Call */
630 r7 = __NR_syscall;
631 /* System call number is passed in P0 */
632 r6 = p0;
633 cc = r6 < r7;
634 if ! cc jump .Lbadsys;
635
636 /* are we tracing syscalls?*/ 629 /* are we tracing syscalls?*/
637 r7 = sp; 630 r7 = sp;
638 r6.l = lo(ALIGN_PAGE_MASK); 631 r6.l = lo(ALIGN_PAGE_MASK);
@@ -642,6 +635,14 @@ ENTRY(_system_call)
642 r7 = [p2+TI_FLAGS]; 635 r7 = [p2+TI_FLAGS];
643 CC = BITTST(r7,TIF_SYSCALL_TRACE); 636 CC = BITTST(r7,TIF_SYSCALL_TRACE);
644 if CC JUMP _sys_trace; 637 if CC JUMP _sys_trace;
638 CC = BITTST(r7,TIF_SINGLESTEP);
639 if CC JUMP _sys_trace;
640
641 /* Make sure the system call # is valid */
642 p4 = __NR_syscall;
643 /* System call number is passed in P0 */
644 cc = p4 <= p0;
645 if cc jump .Lbadsys;
645 646
646 /* Execute the appropriate system call */ 647 /* Execute the appropriate system call */
647 648
@@ -704,7 +705,7 @@ ENTRY(_system_call)
704 sp += 4; 705 sp += 4;
705 706
706 SP += -12; 707 SP += -12;
707 call _schedule; 708 pseudo_long_call _schedule, p4;
708 SP += 12; 709 SP += 12;
709 710
710 jump .Lresume_userspace_1; 711 jump .Lresume_userspace_1;
@@ -723,7 +724,7 @@ ENTRY(_system_call)
723 724
724 r0 = sp; 725 r0 = sp;
725 SP += -12; 726 SP += -12;
726 call _do_notify_resume; 727 pseudo_long_call _do_notify_resume, p5;
727 SP += 12; 728 SP += 12;
728 729
729.Lsyscall_really_exit: 730.Lsyscall_really_exit:
@@ -736,11 +737,17 @@ ENDPROC(_system_call)
736 * this symbol need not be global anyways, so ... 737 * this symbol need not be global anyways, so ...
737 */ 738 */
738_sys_trace: 739_sys_trace:
739 call _syscall_trace; 740 r0 = sp;
740 741 pseudo_long_call _syscall_trace_enter, p5;
741 /* Execute the appropriate system call */
742 742
743 /* Make sure the system call # is valid */
743 p4 = [SP + PT_P0]; 744 p4 = [SP + PT_P0];
745 p3 = __NR_syscall;
746 cc = p3 <= p4;
747 r0 = -ENOSYS;
748 if cc jump .Lsys_trace_badsys;
749
750 /* Execute the appropriate system call */
744 p5.l = _sys_call_table; 751 p5.l = _sys_call_table;
745 p5.h = _sys_call_table; 752 p5.h = _sys_call_table;
746 p5 = p5 + (p4 << 2); 753 p5 = p5 + (p4 << 2);
@@ -758,9 +765,11 @@ _sys_trace:
758 SP += -12; 765 SP += -12;
759 call (p5); 766 call (p5);
760 SP += 24; 767 SP += 24;
768.Lsys_trace_badsys:
761 [sp + PT_R0] = r0; 769 [sp + PT_R0] = r0;
762 770
763 call _syscall_trace; 771 r0 = sp;
772 pseudo_long_call _syscall_trace_leave, p5;
764 jump .Lresume_userspace; 773 jump .Lresume_userspace;
765ENDPROC(_sys_trace) 774ENDPROC(_sys_trace)
766 775
@@ -966,6 +975,13 @@ ENTRY(_evt_evt14)
966#else 975#else
967 cli r0; 976 cli r0;
968#endif 977#endif
978#ifdef CONFIG_TRACE_IRQFLAGS
979 [--sp] = rets;
980 sp += -12;
981 call _trace_hardirqs_off;
982 sp += 12;
983 rets = [sp++];
984#endif
969 [--sp] = RETI; 985 [--sp] = RETI;
970 SP += 4; 986 SP += 4;
971 rts; 987 rts;
@@ -989,6 +1005,14 @@ ENTRY(_schedule_and_signal_from_int)
989 p1 = rets; 1005 p1 = rets;
990 [sp + PT_RESERVED] = p1; 1006 [sp + PT_RESERVED] = p1;
991 1007
1008#ifdef CONFIG_TRACE_IRQFLAGS
1009 /* trace_hardirqs_on() checks if all irqs are disabled. But here IRQ 15
1010 * is turned on, so disable all irqs. */
1011 cli r0;
1012 sp += -12;
1013 call _trace_hardirqs_on;
1014 sp += 12;
1015#endif
992#ifdef CONFIG_SMP 1016#ifdef CONFIG_SMP
993 GET_PDA(p0, r0); /* Fetch current PDA (can't migrate to other CPU here) */ 1017 GET_PDA(p0, r0); /* Fetch current PDA (can't migrate to other CPU here) */
994 r0 = [p0 + PDA_IRQFLAGS]; 1018 r0 = [p0 + PDA_IRQFLAGS];
@@ -1007,7 +1031,8 @@ ENTRY(_schedule_and_signal_from_int)
1007 1031
1008 r0 = sp; 1032 r0 = sp;
1009 sp += -12; 1033 sp += -12;
1010 call _finish_atomic_sections; 1034
1035 pseudo_long_call _finish_atomic_sections, p5;
1011 sp += 12; 1036 sp += 12;
1012 jump.s .Lresume_userspace; 1037 jump.s .Lresume_userspace;
1013ENDPROC(_schedule_and_signal_from_int) 1038ENDPROC(_schedule_and_signal_from_int)
@@ -1357,7 +1382,7 @@ ENTRY(_sys_call_table)
1357 .long _sys_newuname 1382 .long _sys_newuname
1358 .long _sys_ni_syscall /* old sys_modify_ldt */ 1383 .long _sys_ni_syscall /* old sys_modify_ldt */
1359 .long _sys_adjtimex 1384 .long _sys_adjtimex
1360 .long _sys_ni_syscall /* 125 */ /* sys_mprotect */ 1385 .long _sys_mprotect /* 125 */
1361 .long _sys_ni_syscall /* old sys_sigprocmask */ 1386 .long _sys_ni_syscall /* old sys_sigprocmask */
1362 .long _sys_ni_syscall /* old "creat_module" */ 1387 .long _sys_ni_syscall /* old "creat_module" */
1363 .long _sys_init_module 1388 .long _sys_init_module
@@ -1376,16 +1401,16 @@ ENTRY(_sys_call_table)
1376 .long _sys_getdents 1401 .long _sys_getdents
1377 .long _sys_ni_syscall /* sys_select */ 1402 .long _sys_ni_syscall /* sys_select */
1378 .long _sys_flock 1403 .long _sys_flock
1379 .long _sys_ni_syscall /* sys_msync */ 1404 .long _sys_msync
1380 .long _sys_readv /* 145 */ 1405 .long _sys_readv /* 145 */
1381 .long _sys_writev 1406 .long _sys_writev
1382 .long _sys_getsid 1407 .long _sys_getsid
1383 .long _sys_fdatasync 1408 .long _sys_fdatasync
1384 .long _sys_sysctl 1409 .long _sys_sysctl
1385 .long _sys_ni_syscall /* 150 */ /* sys_mlock */ 1410 .long _sys_mlock /* 150 */
1386 .long _sys_ni_syscall /* sys_munlock */ 1411 .long _sys_munlock
1387 .long _sys_ni_syscall /* sys_mlockall */ 1412 .long _sys_mlockall
1388 .long _sys_ni_syscall /* sys_munlockall */ 1413 .long _sys_munlockall
1389 .long _sys_sched_setparam 1414 .long _sys_sched_setparam
1390 .long _sys_sched_getparam /* 155 */ 1415 .long _sys_sched_getparam /* 155 */
1391 .long _sys_sched_setscheduler 1416 .long _sys_sched_setscheduler
@@ -1450,8 +1475,8 @@ ENTRY(_sys_call_table)
1450 .long _sys_setfsuid /* 215 */ 1475 .long _sys_setfsuid /* 215 */
1451 .long _sys_setfsgid 1476 .long _sys_setfsgid
1452 .long _sys_pivot_root 1477 .long _sys_pivot_root
1453 .long _sys_ni_syscall /* sys_mincore */ 1478 .long _sys_mincore
1454 .long _sys_ni_syscall /* sys_madvise */ 1479 .long _sys_madvise
1455 .long _sys_getdents64 /* 220 */ 1480 .long _sys_getdents64 /* 220 */
1456 .long _sys_fcntl64 1481 .long _sys_fcntl64
1457 .long _sys_ni_syscall /* reserved for TUX */ 1482 .long _sys_ni_syscall /* reserved for TUX */
@@ -1507,7 +1532,7 @@ ENTRY(_sys_call_table)
1507 .long _sys_utimes 1532 .long _sys_utimes
1508 .long _sys_fadvise64_64 1533 .long _sys_fadvise64_64
1509 .long _sys_ni_syscall /* vserver */ 1534 .long _sys_ni_syscall /* vserver */
1510 .long _sys_ni_syscall /* 275, mbind */ 1535 .long _sys_mbind /* 275 */
1511 .long _sys_ni_syscall /* get_mempolicy */ 1536 .long _sys_ni_syscall /* get_mempolicy */
1512 .long _sys_ni_syscall /* set_mempolicy */ 1537 .long _sys_ni_syscall /* set_mempolicy */
1513 .long _sys_mq_open 1538 .long _sys_mq_open
diff --git a/arch/blackfin/mach-common/head.S b/arch/blackfin/mach-common/head.S
index cab0a0031eee..4391621d9048 100644
--- a/arch/blackfin/mach-common/head.S
+++ b/arch/blackfin/mach-common/head.S
@@ -144,8 +144,8 @@ ENTRY(__start)
144#endif 144#endif
145 145
146 /* Initialize stack pointer */ 146 /* Initialize stack pointer */
147 sp.l = _init_thread_union; 147 sp.l = _init_thread_union + THREAD_SIZE;
148 sp.h = _init_thread_union; 148 sp.h = _init_thread_union + THREAD_SIZE;
149 fp = sp; 149 fp = sp;
150 usp = sp; 150 usp = sp;
151 151
@@ -186,6 +186,11 @@ ENTRY(__start)
186 186
187 /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */ 187 /* Put The Code for PLL Programming and SDRAM Programming in L1 ISRAM */
188 call _bfin_relocate_l1_mem; 188 call _bfin_relocate_l1_mem;
189
190#ifdef CONFIG_ROMKERNEL
191 call _bfin_relocate_xip_data;
192#endif
193
189#ifdef CONFIG_BFIN_KERNEL_CLOCK 194#ifdef CONFIG_BFIN_KERNEL_CLOCK
190 /* Only use on-chip scratch space for stack when absolutely required 195 /* Only use on-chip scratch space for stack when absolutely required
191 * to avoid Anomaly 05000227 ... we know the init_clocks() func only 196 * to avoid Anomaly 05000227 ... we know the init_clocks() func only
@@ -257,12 +262,7 @@ ENTRY(_real_start)
257 R0 = R7; 262 R0 = R7;
258 call _cmdline_init; 263 call _cmdline_init;
259 264
260 /* Load the current thread pointer and stack */ 265 sp += -12 + 4; /* +4 is for reti loading above */
261 p1 = THREAD_SIZE + 4 (z); /* +4 is for reti loading */
262 sp = sp + p1;
263 usp = sp;
264 fp = sp;
265 sp += -12;
266 call _init_pda 266 call _init_pda
267 sp += 12; 267 sp += 12;
268 jump.l _start_kernel; 268 jump.l _start_kernel;
diff --git a/arch/blackfin/mach-common/interrupt.S b/arch/blackfin/mach-common/interrupt.S
index 8085ff1cce00..cee62cf4acd4 100644
--- a/arch/blackfin/mach-common/interrupt.S
+++ b/arch/blackfin/mach-common/interrupt.S
@@ -88,6 +88,13 @@ __common_int_entry:
88#else 88#else
89 cli r1; 89 cli r1;
90#endif 90#endif
91#ifdef CONFIG_TRACE_IRQFLAGS
92 [--sp] = r0;
93 sp += -12;
94 call _trace_hardirqs_off;
95 sp += 12;
96 r0 = [sp++];
97#endif
91 [--sp] = RETI; /* orig_pc */ 98 [--sp] = RETI; /* orig_pc */
92 /* Clear all L registers. */ 99 /* Clear all L registers. */
93 r1 = 0 (x); 100 r1 = 0 (x);
@@ -109,10 +116,10 @@ __common_int_entry:
109 cc = r0 == 0; 116 cc = r0 == 0;
110 if cc jump .Lcommon_restore_context; 117 if cc jump .Lcommon_restore_context;
111#else /* CONFIG_IPIPE */ 118#else /* CONFIG_IPIPE */
112 call _do_irq; 119 pseudo_long_call _do_irq, p2;
113 SP += 12; 120 SP += 12;
114#endif /* CONFIG_IPIPE */ 121#endif /* CONFIG_IPIPE */
115 call _return_from_int; 122 pseudo_long_call _return_from_int, p2;
116.Lcommon_restore_context: 123.Lcommon_restore_context:
117 RESTORE_CONTEXT 124 RESTORE_CONTEXT
118 rti; 125 rti;
@@ -168,7 +175,7 @@ ENTRY(_evt_ivhw)
168 175
169 r0 = sp; /* stack frame pt_regs pointer argument ==> r0 */ 176 r0 = sp; /* stack frame pt_regs pointer argument ==> r0 */
170 SP += -12; 177 SP += -12;
171 call _trap_c; 178 pseudo_long_call _trap_c, p5;
172 SP += 12; 179 SP += 12;
173 180
174#ifdef EBIU_ERRMST 181#ifdef EBIU_ERRMST
@@ -179,7 +186,7 @@ ENTRY(_evt_ivhw)
179 w[p0] = r0.l; 186 w[p0] = r0.l;
180#endif 187#endif
181 188
182 call _ret_from_exception; 189 pseudo_long_call _ret_from_exception, p2;
183 190
184.Lcommon_restore_all_sys: 191.Lcommon_restore_all_sys:
185 RESTORE_ALL_SYS 192 RESTORE_ALL_SYS
@@ -187,12 +194,28 @@ ENTRY(_evt_ivhw)
187ENDPROC(_evt_ivhw) 194ENDPROC(_evt_ivhw)
188 195
189/* Interrupt routine for evt2 (NMI). 196/* Interrupt routine for evt2 (NMI).
190 * We don't actually use this, so just return.
191 * For inner circle type details, please see: 197 * For inner circle type details, please see:
192 * http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:nmi 198 * http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:nmi
193 */ 199 */
194ENTRY(_evt_nmi) 200ENTRY(_evt_nmi)
201#ifndef CONFIG_NMI_WATCHDOG
195.weak _evt_nmi 202.weak _evt_nmi
203#else
204 /* Not take account of CPLBs, this handler will not return */
205 SAVE_ALL_SYS
206 r0 = sp;
207 r1 = retn;
208 [sp + PT_PC] = r1;
209 trace_buffer_save(p4,r5);
210
211 ANOMALY_283_315_WORKAROUND(p4, r5)
212
213 SP += -12;
214 call _do_nmi;
215 SP += 12;
2161:
217 jump 1b;
218#endif
196 rtn; 219 rtn;
197ENDPROC(_evt_nmi) 220ENDPROC(_evt_nmi)
198 221
@@ -223,7 +246,7 @@ ENTRY(_evt_system_call)
223#ifdef CONFIG_FRAME_POINTER 246#ifdef CONFIG_FRAME_POINTER
224 fp = 0; 247 fp = 0;
225#endif 248#endif
226 call _system_call; 249 pseudo_long_call _system_call, p2;
227 jump .Lcommon_restore_context; 250 jump .Lcommon_restore_context;
228ENDPROC(_evt_system_call) 251ENDPROC(_evt_system_call)
229 252
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c
index 1873b2c1fede..7ad8878bfa18 100644
--- a/arch/blackfin/mach-common/ints-priority.c
+++ b/arch/blackfin/mach-common/ints-priority.c
@@ -28,6 +28,7 @@
28#include <asm/dpmc.h> 28#include <asm/dpmc.h>
29#include <asm/bfin5xx_spi.h> 29#include <asm/bfin5xx_spi.h>
30#include <asm/bfin_sport.h> 30#include <asm/bfin_sport.h>
31#include <asm/bfin_can.h>
31 32
32#define SIC_SYSIRQ(irq) (irq - (IRQ_CORETMR + 1)) 33#define SIC_SYSIRQ(irq) (irq - (IRQ_CORETMR + 1))
33 34
@@ -172,7 +173,12 @@ static void bfin_internal_mask_irq(unsigned int irq)
172 local_irq_restore_hw(flags); 173 local_irq_restore_hw(flags);
173} 174}
174 175
176#ifdef CONFIG_SMP
177static void bfin_internal_unmask_irq_affinity(unsigned int irq,
178 const struct cpumask *affinity)
179#else
175static void bfin_internal_unmask_irq(unsigned int irq) 180static void bfin_internal_unmask_irq(unsigned int irq)
181#endif
176{ 182{
177 unsigned long flags; 183 unsigned long flags;
178 184
@@ -185,16 +191,38 @@ static void bfin_internal_unmask_irq(unsigned int irq)
185 local_irq_save_hw(flags); 191 local_irq_save_hw(flags);
186 mask_bank = SIC_SYSIRQ(irq) / 32; 192 mask_bank = SIC_SYSIRQ(irq) / 32;
187 mask_bit = SIC_SYSIRQ(irq) % 32; 193 mask_bit = SIC_SYSIRQ(irq) % 32;
188 bfin_write_SIC_IMASK(mask_bank, bfin_read_SIC_IMASK(mask_bank) |
189 (1 << mask_bit));
190#ifdef CONFIG_SMP 194#ifdef CONFIG_SMP
191 bfin_write_SICB_IMASK(mask_bank, bfin_read_SICB_IMASK(mask_bank) | 195 if (cpumask_test_cpu(0, affinity))
192 (1 << mask_bit)); 196#endif
197 bfin_write_SIC_IMASK(mask_bank,
198 bfin_read_SIC_IMASK(mask_bank) |
199 (1 << mask_bit));
200#ifdef CONFIG_SMP
201 if (cpumask_test_cpu(1, affinity))
202 bfin_write_SICB_IMASK(mask_bank,
203 bfin_read_SICB_IMASK(mask_bank) |
204 (1 << mask_bit));
193#endif 205#endif
194#endif 206#endif
195 local_irq_restore_hw(flags); 207 local_irq_restore_hw(flags);
196} 208}
197 209
210#ifdef CONFIG_SMP
211static void bfin_internal_unmask_irq(unsigned int irq)
212{
213 struct irq_desc *desc = irq_to_desc(irq);
214 bfin_internal_unmask_irq_affinity(irq, desc->affinity);
215}
216
217static int bfin_internal_set_affinity(unsigned int irq, const struct cpumask *mask)
218{
219 bfin_internal_mask_irq(irq);
220 bfin_internal_unmask_irq_affinity(irq, mask);
221
222 return 0;
223}
224#endif
225
198#ifdef CONFIG_PM 226#ifdef CONFIG_PM
199int bfin_internal_set_wake(unsigned int irq, unsigned int state) 227int bfin_internal_set_wake(unsigned int irq, unsigned int state)
200{ 228{
@@ -224,11 +252,6 @@ int bfin_internal_set_wake(unsigned int irq, unsigned int state)
224 wakeup |= USBWE; 252 wakeup |= USBWE;
225 break; 253 break;
226#endif 254#endif
227#ifdef IRQ_KEY
228 case IRQ_KEY:
229 wakeup |= KPADWE;
230 break;
231#endif
232#ifdef CONFIG_BF54x 255#ifdef CONFIG_BF54x
233 case IRQ_CNT: 256 case IRQ_CNT:
234 wakeup |= ROTWE; 257 wakeup |= ROTWE;
@@ -270,6 +293,9 @@ static struct irq_chip bfin_internal_irqchip = {
270 .mask_ack = bfin_internal_mask_irq, 293 .mask_ack = bfin_internal_mask_irq,
271 .disable = bfin_internal_mask_irq, 294 .disable = bfin_internal_mask_irq,
272 .enable = bfin_internal_unmask_irq, 295 .enable = bfin_internal_unmask_irq,
296#ifdef CONFIG_SMP
297 .set_affinity = bfin_internal_set_affinity,
298#endif
273#ifdef CONFIG_PM 299#ifdef CONFIG_PM
274 .set_wake = bfin_internal_set_wake, 300 .set_wake = bfin_internal_set_wake,
275#endif 301#endif
@@ -294,7 +320,6 @@ static int error_int_mask;
294static void bfin_generic_error_mask_irq(unsigned int irq) 320static void bfin_generic_error_mask_irq(unsigned int irq)
295{ 321{
296 error_int_mask &= ~(1L << (irq - IRQ_PPI_ERROR)); 322 error_int_mask &= ~(1L << (irq - IRQ_PPI_ERROR));
297
298 if (!error_int_mask) 323 if (!error_int_mask)
299 bfin_internal_mask_irq(IRQ_GENERIC_ERROR); 324 bfin_internal_mask_irq(IRQ_GENERIC_ERROR);
300} 325}
@@ -385,6 +410,127 @@ static void bfin_demux_error_irq(unsigned int int_err_irq,
385} 410}
386#endif /* BF537_GENERIC_ERROR_INT_DEMUX */ 411#endif /* BF537_GENERIC_ERROR_INT_DEMUX */
387 412
413#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
414static int mac_stat_int_mask;
415
416static void bfin_mac_status_ack_irq(unsigned int irq)
417{
418 switch (irq) {
419 case IRQ_MAC_MMCINT:
420 bfin_write_EMAC_MMC_TIRQS(
421 bfin_read_EMAC_MMC_TIRQE() &
422 bfin_read_EMAC_MMC_TIRQS());
423 bfin_write_EMAC_MMC_RIRQS(
424 bfin_read_EMAC_MMC_RIRQE() &
425 bfin_read_EMAC_MMC_RIRQS());
426 break;
427 case IRQ_MAC_RXFSINT:
428 bfin_write_EMAC_RX_STKY(
429 bfin_read_EMAC_RX_IRQE() &
430 bfin_read_EMAC_RX_STKY());
431 break;
432 case IRQ_MAC_TXFSINT:
433 bfin_write_EMAC_TX_STKY(
434 bfin_read_EMAC_TX_IRQE() &
435 bfin_read_EMAC_TX_STKY());
436 break;
437 case IRQ_MAC_WAKEDET:
438 bfin_write_EMAC_WKUP_CTL(
439 bfin_read_EMAC_WKUP_CTL() | MPKS | RWKS);
440 break;
441 default:
442 /* These bits are W1C */
443 bfin_write_EMAC_SYSTAT(1L << (irq - IRQ_MAC_PHYINT));
444 break;
445 }
446}
447
448static void bfin_mac_status_mask_irq(unsigned int irq)
449{
450 mac_stat_int_mask &= ~(1L << (irq - IRQ_MAC_PHYINT));
451#ifdef BF537_GENERIC_ERROR_INT_DEMUX
452 switch (irq) {
453 case IRQ_MAC_PHYINT:
454 bfin_write_EMAC_SYSCTL(bfin_read_EMAC_SYSCTL() & ~PHYIE);
455 break;
456 default:
457 break;
458 }
459#else
460 if (!mac_stat_int_mask)
461 bfin_internal_mask_irq(IRQ_MAC_ERROR);
462#endif
463 bfin_mac_status_ack_irq(irq);
464}
465
466static void bfin_mac_status_unmask_irq(unsigned int irq)
467{
468#ifdef BF537_GENERIC_ERROR_INT_DEMUX
469 switch (irq) {
470 case IRQ_MAC_PHYINT:
471 bfin_write_EMAC_SYSCTL(bfin_read_EMAC_SYSCTL() | PHYIE);
472 break;
473 default:
474 break;
475 }
476#else
477 if (!mac_stat_int_mask)
478 bfin_internal_unmask_irq(IRQ_MAC_ERROR);
479#endif
480 mac_stat_int_mask |= 1L << (irq - IRQ_MAC_PHYINT);
481}
482
483#ifdef CONFIG_PM
484int bfin_mac_status_set_wake(unsigned int irq, unsigned int state)
485{
486#ifdef BF537_GENERIC_ERROR_INT_DEMUX
487 return bfin_internal_set_wake(IRQ_GENERIC_ERROR, state);
488#else
489 return bfin_internal_set_wake(IRQ_MAC_ERROR, state);
490#endif
491}
492#endif
493
494static struct irq_chip bfin_mac_status_irqchip = {
495 .name = "MACST",
496 .ack = bfin_ack_noop,
497 .mask_ack = bfin_mac_status_mask_irq,
498 .mask = bfin_mac_status_mask_irq,
499 .unmask = bfin_mac_status_unmask_irq,
500#ifdef CONFIG_PM
501 .set_wake = bfin_mac_status_set_wake,
502#endif
503};
504
505static void bfin_demux_mac_status_irq(unsigned int int_err_irq,
506 struct irq_desc *inta_desc)
507{
508 int i, irq = 0;
509 u32 status = bfin_read_EMAC_SYSTAT();
510
511 for (i = 0; i < (IRQ_MAC_STMDONE - IRQ_MAC_PHYINT); i++)
512 if (status & (1L << i)) {
513 irq = IRQ_MAC_PHYINT + i;
514 break;
515 }
516
517 if (irq) {
518 if (mac_stat_int_mask & (1L << (irq - IRQ_MAC_PHYINT))) {
519 bfin_handle_irq(irq);
520 } else {
521 bfin_mac_status_ack_irq(irq);
522 pr_debug("IRQ %d:"
523 " MASKED MAC ERROR INTERRUPT ASSERTED\n",
524 irq);
525 }
526 } else
527 printk(KERN_ERR
528 "%s : %s : LINE %d :\nIRQ ?: MAC ERROR"
529 " INTERRUPT ASSERTED BUT NO SOURCE FOUND\n",
530 __func__, __FILE__, __LINE__);
531}
532#endif
533
388static inline void bfin_set_irq_handler(unsigned irq, irq_flow_handler_t handle) 534static inline void bfin_set_irq_handler(unsigned irq, irq_flow_handler_t handle)
389{ 535{
390#ifdef CONFIG_IPIPE 536#ifdef CONFIG_IPIPE
@@ -1031,7 +1177,6 @@ int __init init_arch_irq(void)
1031#elif defined(CONFIG_BF538) || defined(CONFIG_BF539) 1177#elif defined(CONFIG_BF538) || defined(CONFIG_BF539)
1032 case IRQ_PORTF_INTA: 1178 case IRQ_PORTF_INTA:
1033#endif 1179#endif
1034
1035 set_irq_chained_handler(irq, 1180 set_irq_chained_handler(irq,
1036 bfin_demux_gpio_irq); 1181 bfin_demux_gpio_irq);
1037 break; 1182 break;
@@ -1040,29 +1185,36 @@ int __init init_arch_irq(void)
1040 set_irq_chained_handler(irq, bfin_demux_error_irq); 1185 set_irq_chained_handler(irq, bfin_demux_error_irq);
1041 break; 1186 break;
1042#endif 1187#endif
1043 1188#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
1044#ifdef CONFIG_SMP 1189 case IRQ_MAC_ERROR:
1045#ifdef CONFIG_TICKSOURCE_GPTMR0 1190 set_irq_chained_handler(irq, bfin_demux_mac_status_irq);
1046 case IRQ_TIMER0: 1191 break;
1047#endif
1048#ifdef CONFIG_TICKSOURCE_CORETMR
1049 case IRQ_CORETMR:
1050#endif 1192#endif
1193#ifdef CONFIG_SMP
1051 case IRQ_SUPPLE_0: 1194 case IRQ_SUPPLE_0:
1052 case IRQ_SUPPLE_1: 1195 case IRQ_SUPPLE_1:
1053 set_irq_handler(irq, handle_percpu_irq); 1196 set_irq_handler(irq, handle_percpu_irq);
1054 break; 1197 break;
1055#endif 1198#endif
1056 1199
1057#ifdef CONFIG_IPIPE 1200#ifdef CONFIG_TICKSOURCE_CORETMR
1058#ifndef CONFIG_TICKSOURCE_CORETMR 1201 case IRQ_CORETMR:
1059 case IRQ_TIMER0: 1202# ifdef CONFIG_SMP
1203 set_irq_handler(irq, handle_percpu_irq);
1204 break;
1205# else
1060 set_irq_handler(irq, handle_simple_irq); 1206 set_irq_handler(irq, handle_simple_irq);
1061 break; 1207 break;
1208# endif
1062#endif 1209#endif
1063 case IRQ_CORETMR: 1210
1211#ifdef CONFIG_TICKSOURCE_GPTMR0
1212 case IRQ_TIMER0:
1064 set_irq_handler(irq, handle_simple_irq); 1213 set_irq_handler(irq, handle_simple_irq);
1065 break; 1214 break;
1215#endif
1216
1217#ifdef CONFIG_IPIPE
1066 default: 1218 default:
1067 set_irq_handler(irq, handle_level_irq); 1219 set_irq_handler(irq, handle_level_irq);
1068 break; 1220 break;
@@ -1078,14 +1230,22 @@ int __init init_arch_irq(void)
1078 for (irq = IRQ_PPI_ERROR; irq <= IRQ_UART1_ERROR; irq++) 1230 for (irq = IRQ_PPI_ERROR; irq <= IRQ_UART1_ERROR; irq++)
1079 set_irq_chip_and_handler(irq, &bfin_generic_error_irqchip, 1231 set_irq_chip_and_handler(irq, &bfin_generic_error_irqchip,
1080 handle_level_irq); 1232 handle_level_irq);
1233#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
1234 set_irq_chained_handler(IRQ_MAC_ERROR, bfin_demux_mac_status_irq);
1235#endif
1081#endif 1236#endif
1082 1237
1238#if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE)
1239 for (irq = IRQ_MAC_PHYINT; irq <= IRQ_MAC_STMDONE; irq++)
1240 set_irq_chip_and_handler(irq, &bfin_mac_status_irqchip,
1241 handle_level_irq);
1242#endif
1083 /* if configured as edge, then will be changed to do_edge_IRQ */ 1243 /* if configured as edge, then will be changed to do_edge_IRQ */
1084 for (irq = GPIO_IRQ_BASE; irq < NR_IRQS; irq++) 1244 for (irq = GPIO_IRQ_BASE;
1245 irq < (GPIO_IRQ_BASE + MAX_BLACKFIN_GPIOS); irq++)
1085 set_irq_chip_and_handler(irq, &bfin_gpio_irqchip, 1246 set_irq_chip_and_handler(irq, &bfin_gpio_irqchip,
1086 handle_level_irq); 1247 handle_level_irq);
1087 1248
1088
1089 bfin_write_IMASK(0); 1249 bfin_write_IMASK(0);
1090 CSYNC(); 1250 CSYNC();
1091 ilat = bfin_read_ILAT(); 1251 ilat = bfin_read_ILAT();
diff --git a/arch/blackfin/mach-common/smp.c b/arch/blackfin/mach-common/smp.c
index 369e687582b7..7803f22d2ca7 100644
--- a/arch/blackfin/mach-common/smp.c
+++ b/arch/blackfin/mach-common/smp.c
@@ -122,9 +122,17 @@ static void ipi_call_function(unsigned int cpu, struct ipi_message *msg)
122 wait = msg->call_struct.wait; 122 wait = msg->call_struct.wait;
123 cpu_clear(cpu, msg->call_struct.pending); 123 cpu_clear(cpu, msg->call_struct.pending);
124 func(info); 124 func(info);
125 if (wait) 125 if (wait) {
126#ifdef __ARCH_SYNC_CORE_DCACHE
127 /*
128 * 'wait' usually means synchronization between CPUs.
129 * Invalidate D cache in case shared data was changed
130 * by func() to ensure cache coherence.
131 */
132 resync_core_dcache();
133#endif
126 cpu_clear(cpu, msg->call_struct.waitmask); 134 cpu_clear(cpu, msg->call_struct.waitmask);
127 else 135 } else
128 kfree(msg); 136 kfree(msg);
129} 137}
130 138
@@ -219,6 +227,13 @@ int smp_call_function(void (*func)(void *info), void *info, int wait)
219 blackfin_dcache_invalidate_range( 227 blackfin_dcache_invalidate_range(
220 (unsigned long)(&msg->call_struct.waitmask), 228 (unsigned long)(&msg->call_struct.waitmask),
221 (unsigned long)(&msg->call_struct.waitmask)); 229 (unsigned long)(&msg->call_struct.waitmask));
230#ifdef __ARCH_SYNC_CORE_DCACHE
231 /*
232 * Invalidate D cache in case shared data was changed by
233 * other processors to ensure cache coherence.
234 */
235 resync_core_dcache();
236#endif
222 kfree(msg); 237 kfree(msg);
223 } 238 }
224 return 0; 239 return 0;
@@ -261,6 +276,13 @@ int smp_call_function_single(int cpuid, void (*func) (void *info), void *info,
261 blackfin_dcache_invalidate_range( 276 blackfin_dcache_invalidate_range(
262 (unsigned long)(&msg->call_struct.waitmask), 277 (unsigned long)(&msg->call_struct.waitmask),
263 (unsigned long)(&msg->call_struct.waitmask)); 278 (unsigned long)(&msg->call_struct.waitmask));
279#ifdef __ARCH_SYNC_CORE_DCACHE
280 /*
281 * Invalidate D cache in case shared data was changed by
282 * other processors to ensure cache coherence.
283 */
284 resync_core_dcache();
285#endif
264 kfree(msg); 286 kfree(msg);
265 } 287 }
266 return 0; 288 return 0;
@@ -322,8 +344,11 @@ void smp_send_stop(void)
322 344
323int __cpuinit __cpu_up(unsigned int cpu) 345int __cpuinit __cpu_up(unsigned int cpu)
324{ 346{
325 struct task_struct *idle;
326 int ret; 347 int ret;
348 static struct task_struct *idle;
349
350 if (idle)
351 free_task(idle);
327 352
328 idle = fork_idle(cpu); 353 idle = fork_idle(cpu);
329 if (IS_ERR(idle)) { 354 if (IS_ERR(idle)) {
@@ -332,7 +357,6 @@ int __cpuinit __cpu_up(unsigned int cpu)
332 } 357 }
333 358
334 secondary_stack = task_stack_page(idle) + THREAD_SIZE; 359 secondary_stack = task_stack_page(idle) + THREAD_SIZE;
335 smp_wmb();
336 360
337 ret = platform_boot_secondary(cpu, idle); 361 ret = platform_boot_secondary(cpu, idle);
338 362
@@ -343,9 +367,6 @@ int __cpuinit __cpu_up(unsigned int cpu)
343 367
344static void __cpuinit setup_secondary(unsigned int cpu) 368static void __cpuinit setup_secondary(unsigned int cpu)
345{ 369{
346#if !defined(CONFIG_TICKSOURCE_GPTMR0)
347 struct irq_desc *timer_desc;
348#endif
349 unsigned long ilat; 370 unsigned long ilat;
350 371
351 bfin_write_IMASK(0); 372 bfin_write_IMASK(0);
@@ -360,17 +381,6 @@ static void __cpuinit setup_secondary(unsigned int cpu)
360 bfin_irq_flags |= IMASK_IVG15 | 381 bfin_irq_flags |= IMASK_IVG15 |
361 IMASK_IVG14 | IMASK_IVG13 | IMASK_IVG12 | IMASK_IVG11 | 382 IMASK_IVG14 | IMASK_IVG13 | IMASK_IVG12 | IMASK_IVG11 |
362 IMASK_IVG10 | IMASK_IVG9 | IMASK_IVG8 | IMASK_IVG7 | IMASK_IVGHW; 383 IMASK_IVG10 | IMASK_IVG9 | IMASK_IVG8 | IMASK_IVG7 | IMASK_IVGHW;
363
364#if defined(CONFIG_TICKSOURCE_GPTMR0)
365 /* Power down the core timer, just to play safe. */
366 bfin_write_TCNTL(0);
367
368 /* system timer0 has been setup by CoreA. */
369#else
370 timer_desc = irq_desc + IRQ_CORETMR;
371 setup_core_timer();
372 timer_desc->chip->enable(IRQ_CORETMR);
373#endif
374} 384}
375 385
376void __cpuinit secondary_start_kernel(void) 386void __cpuinit secondary_start_kernel(void)
@@ -405,7 +415,6 @@ void __cpuinit secondary_start_kernel(void)
405 atomic_inc(&mm->mm_users); 415 atomic_inc(&mm->mm_users);
406 atomic_inc(&mm->mm_count); 416 atomic_inc(&mm->mm_count);
407 current->active_mm = mm; 417 current->active_mm = mm;
408 BUG_ON(current->mm); /* Can't be, but better be safe than sorry. */
409 418
410 preempt_disable(); 419 preempt_disable();
411 420
@@ -413,6 +422,9 @@ void __cpuinit secondary_start_kernel(void)
413 422
414 platform_secondary_init(cpu); 423 platform_secondary_init(cpu);
415 424
425 /* setup local core timer */
426 bfin_local_timer_setup();
427
416 local_irq_enable(); 428 local_irq_enable();
417 429
418 /* 430 /*
@@ -462,25 +474,58 @@ void smp_icache_flush_range_others(unsigned long start, unsigned long end)
462EXPORT_SYMBOL_GPL(smp_icache_flush_range_others); 474EXPORT_SYMBOL_GPL(smp_icache_flush_range_others);
463 475
464#ifdef __ARCH_SYNC_CORE_ICACHE 476#ifdef __ARCH_SYNC_CORE_ICACHE
477unsigned long icache_invld_count[NR_CPUS];
465void resync_core_icache(void) 478void resync_core_icache(void)
466{ 479{
467 unsigned int cpu = get_cpu(); 480 unsigned int cpu = get_cpu();
468 blackfin_invalidate_entire_icache(); 481 blackfin_invalidate_entire_icache();
469 ++per_cpu(cpu_data, cpu).icache_invld_count; 482 icache_invld_count[cpu]++;
470 put_cpu(); 483 put_cpu();
471} 484}
472EXPORT_SYMBOL(resync_core_icache); 485EXPORT_SYMBOL(resync_core_icache);
473#endif 486#endif
474 487
475#ifdef __ARCH_SYNC_CORE_DCACHE 488#ifdef __ARCH_SYNC_CORE_DCACHE
489unsigned long dcache_invld_count[NR_CPUS];
476unsigned long barrier_mask __attribute__ ((__section__(".l2.bss"))); 490unsigned long barrier_mask __attribute__ ((__section__(".l2.bss")));
477 491
478void resync_core_dcache(void) 492void resync_core_dcache(void)
479{ 493{
480 unsigned int cpu = get_cpu(); 494 unsigned int cpu = get_cpu();
481 blackfin_invalidate_entire_dcache(); 495 blackfin_invalidate_entire_dcache();
482 ++per_cpu(cpu_data, cpu).dcache_invld_count; 496 dcache_invld_count[cpu]++;
483 put_cpu(); 497 put_cpu();
484} 498}
485EXPORT_SYMBOL(resync_core_dcache); 499EXPORT_SYMBOL(resync_core_dcache);
486#endif 500#endif
501
502#ifdef CONFIG_HOTPLUG_CPU
503int __cpuexit __cpu_disable(void)
504{
505 unsigned int cpu = smp_processor_id();
506
507 if (cpu == 0)
508 return -EPERM;
509
510 set_cpu_online(cpu, false);
511 return 0;
512}
513
514static DECLARE_COMPLETION(cpu_killed);
515
516int __cpuexit __cpu_die(unsigned int cpu)
517{
518 return wait_for_completion_timeout(&cpu_killed, 5000);
519}
520
521void cpu_die(void)
522{
523 complete(&cpu_killed);
524
525 atomic_dec(&init_mm.mm_users);
526 atomic_dec(&init_mm.mm_count);
527
528 local_irq_disable();
529 platform_cpu_die();
530}
531#endif
diff --git a/arch/blackfin/mm/isram-driver.c b/arch/blackfin/mm/isram-driver.c
index 84cdc5a1c139..9213e2357888 100644
--- a/arch/blackfin/mm/isram-driver.c
+++ b/arch/blackfin/mm/isram-driver.c
@@ -62,7 +62,7 @@ static void isram_write(const void *addr, uint64_t data)
62 uint32_t cmd; 62 uint32_t cmd;
63 unsigned long flags; 63 unsigned long flags;
64 64
65 if (addr >= (void *)(L1_CODE_START + L1_CODE_LENGTH)) 65 if (unlikely(addr >= (void *)(L1_CODE_START + L1_CODE_LENGTH)))
66 return; 66 return;
67 67
68 cmd = IADDR2DTEST(addr) | 2; /* write */ 68 cmd = IADDR2DTEST(addr) | 2; /* write */
@@ -93,7 +93,7 @@ static uint64_t isram_read(const void *addr)
93 unsigned long flags; 93 unsigned long flags;
94 uint64_t ret; 94 uint64_t ret;
95 95
96 if (addr > (void *)(L1_CODE_START + L1_CODE_LENGTH)) 96 if (unlikely(addr > (void *)(L1_CODE_START + L1_CODE_LENGTH)))
97 return 0; 97 return 0;
98 98
99 cmd = IADDR2DTEST(addr) | 0; /* read */ 99 cmd = IADDR2DTEST(addr) | 0; /* read */
@@ -120,7 +120,7 @@ static bool isram_check_addr(const void *addr, size_t n)
120{ 120{
121 if ((addr >= (void *)L1_CODE_START) && 121 if ((addr >= (void *)L1_CODE_START) &&
122 (addr < (void *)(L1_CODE_START + L1_CODE_LENGTH))) { 122 (addr < (void *)(L1_CODE_START + L1_CODE_LENGTH))) {
123 if ((addr + n) > (void *)(L1_CODE_START + L1_CODE_LENGTH)) { 123 if (unlikely((addr + n) > (void *)(L1_CODE_START + L1_CODE_LENGTH))) {
124 show_stack(NULL, NULL); 124 show_stack(NULL, NULL);
125 pr_err("copy involving %p length (%zu) too long\n", addr, n); 125 pr_err("copy involving %p length (%zu) too long\n", addr, n);
126 } 126 }
diff --git a/arch/blackfin/mm/sram-alloc.c b/arch/blackfin/mm/sram-alloc.c
index f068c11ea98f..5732da25ee2d 100644
--- a/arch/blackfin/mm/sram-alloc.c
+++ b/arch/blackfin/mm/sram-alloc.c
@@ -402,7 +402,7 @@ void *l1_data_A_sram_alloc(size_t size)
402 void *addr; 402 void *addr;
403 unsigned int cpu; 403 unsigned int cpu;
404 404
405 cpu = get_cpu(); 405 cpu = smp_processor_id();
406 /* add mutex operation */ 406 /* add mutex operation */
407 spin_lock_irqsave(&per_cpu(l1_data_sram_lock, cpu), flags); 407 spin_lock_irqsave(&per_cpu(l1_data_sram_lock, cpu), flags);
408 408
@@ -411,7 +411,6 @@ void *l1_data_A_sram_alloc(size_t size)
411 411
412 /* add mutex operation */ 412 /* add mutex operation */
413 spin_unlock_irqrestore(&per_cpu(l1_data_sram_lock, cpu), flags); 413 spin_unlock_irqrestore(&per_cpu(l1_data_sram_lock, cpu), flags);
414 put_cpu();
415 414
416 pr_debug("Allocated address in l1_data_A_sram_alloc is 0x%lx+0x%lx\n", 415 pr_debug("Allocated address in l1_data_A_sram_alloc is 0x%lx+0x%lx\n",
417 (long unsigned int)addr, size); 416 (long unsigned int)addr, size);
@@ -430,7 +429,7 @@ int l1_data_A_sram_free(const void *addr)
430 int ret; 429 int ret;
431 unsigned int cpu; 430 unsigned int cpu;
432 431
433 cpu = get_cpu(); 432 cpu = smp_processor_id();
434 /* add mutex operation */ 433 /* add mutex operation */
435 spin_lock_irqsave(&per_cpu(l1_data_sram_lock, cpu), flags); 434 spin_lock_irqsave(&per_cpu(l1_data_sram_lock, cpu), flags);
436 435
@@ -439,7 +438,6 @@ int l1_data_A_sram_free(const void *addr)
439 438
440 /* add mutex operation */ 439 /* add mutex operation */
441 spin_unlock_irqrestore(&per_cpu(l1_data_sram_lock, cpu), flags); 440 spin_unlock_irqrestore(&per_cpu(l1_data_sram_lock, cpu), flags);
442 put_cpu();
443 441
444 return ret; 442 return ret;
445#else 443#else
@@ -455,7 +453,7 @@ void *l1_data_B_sram_alloc(size_t size)
455 void *addr; 453 void *addr;
456 unsigned int cpu; 454 unsigned int cpu;
457 455
458 cpu = get_cpu(); 456 cpu = smp_processor_id();
459 /* add mutex operation */ 457 /* add mutex operation */
460 spin_lock_irqsave(&per_cpu(l1_data_sram_lock, cpu), flags); 458 spin_lock_irqsave(&per_cpu(l1_data_sram_lock, cpu), flags);
461 459
@@ -464,7 +462,6 @@ void *l1_data_B_sram_alloc(size_t size)
464 462
465 /* add mutex operation */ 463 /* add mutex operation */
466 spin_unlock_irqrestore(&per_cpu(l1_data_sram_lock, cpu), flags); 464 spin_unlock_irqrestore(&per_cpu(l1_data_sram_lock, cpu), flags);
467 put_cpu();
468 465
469 pr_debug("Allocated address in l1_data_B_sram_alloc is 0x%lx+0x%lx\n", 466 pr_debug("Allocated address in l1_data_B_sram_alloc is 0x%lx+0x%lx\n",
470 (long unsigned int)addr, size); 467 (long unsigned int)addr, size);
@@ -483,7 +480,7 @@ int l1_data_B_sram_free(const void *addr)
483 int ret; 480 int ret;
484 unsigned int cpu; 481 unsigned int cpu;
485 482
486 cpu = get_cpu(); 483 cpu = smp_processor_id();
487 /* add mutex operation */ 484 /* add mutex operation */
488 spin_lock_irqsave(&per_cpu(l1_data_sram_lock, cpu), flags); 485 spin_lock_irqsave(&per_cpu(l1_data_sram_lock, cpu), flags);
489 486
@@ -492,7 +489,6 @@ int l1_data_B_sram_free(const void *addr)
492 489
493 /* add mutex operation */ 490 /* add mutex operation */
494 spin_unlock_irqrestore(&per_cpu(l1_data_sram_lock, cpu), flags); 491 spin_unlock_irqrestore(&per_cpu(l1_data_sram_lock, cpu), flags);
495 put_cpu();
496 492
497 return ret; 493 return ret;
498#else 494#else
@@ -540,7 +536,7 @@ void *l1_inst_sram_alloc(size_t size)
540 void *addr; 536 void *addr;
541 unsigned int cpu; 537 unsigned int cpu;
542 538
543 cpu = get_cpu(); 539 cpu = smp_processor_id();
544 /* add mutex operation */ 540 /* add mutex operation */
545 spin_lock_irqsave(&per_cpu(l1_inst_sram_lock, cpu), flags); 541 spin_lock_irqsave(&per_cpu(l1_inst_sram_lock, cpu), flags);
546 542
@@ -549,7 +545,6 @@ void *l1_inst_sram_alloc(size_t size)
549 545
550 /* add mutex operation */ 546 /* add mutex operation */
551 spin_unlock_irqrestore(&per_cpu(l1_inst_sram_lock, cpu), flags); 547 spin_unlock_irqrestore(&per_cpu(l1_inst_sram_lock, cpu), flags);
552 put_cpu();
553 548
554 pr_debug("Allocated address in l1_inst_sram_alloc is 0x%lx+0x%lx\n", 549 pr_debug("Allocated address in l1_inst_sram_alloc is 0x%lx+0x%lx\n",
555 (long unsigned int)addr, size); 550 (long unsigned int)addr, size);
@@ -568,7 +563,7 @@ int l1_inst_sram_free(const void *addr)
568 int ret; 563 int ret;
569 unsigned int cpu; 564 unsigned int cpu;
570 565
571 cpu = get_cpu(); 566 cpu = smp_processor_id();
572 /* add mutex operation */ 567 /* add mutex operation */
573 spin_lock_irqsave(&per_cpu(l1_inst_sram_lock, cpu), flags); 568 spin_lock_irqsave(&per_cpu(l1_inst_sram_lock, cpu), flags);
574 569
@@ -577,7 +572,6 @@ int l1_inst_sram_free(const void *addr)
577 572
578 /* add mutex operation */ 573 /* add mutex operation */
579 spin_unlock_irqrestore(&per_cpu(l1_inst_sram_lock, cpu), flags); 574 spin_unlock_irqrestore(&per_cpu(l1_inst_sram_lock, cpu), flags);
580 put_cpu();
581 575
582 return ret; 576 return ret;
583#else 577#else
@@ -593,7 +587,7 @@ void *l1sram_alloc(size_t size)
593 void *addr; 587 void *addr;
594 unsigned int cpu; 588 unsigned int cpu;
595 589
596 cpu = get_cpu(); 590 cpu = smp_processor_id();
597 /* add mutex operation */ 591 /* add mutex operation */
598 spin_lock_irqsave(&per_cpu(l1sram_lock, cpu), flags); 592 spin_lock_irqsave(&per_cpu(l1sram_lock, cpu), flags);
599 593
@@ -602,7 +596,6 @@ void *l1sram_alloc(size_t size)
602 596
603 /* add mutex operation */ 597 /* add mutex operation */
604 spin_unlock_irqrestore(&per_cpu(l1sram_lock, cpu), flags); 598 spin_unlock_irqrestore(&per_cpu(l1sram_lock, cpu), flags);
605 put_cpu();
606 599
607 return addr; 600 return addr;
608} 601}
@@ -614,7 +607,7 @@ void *l1sram_alloc_max(size_t *psize)
614 void *addr; 607 void *addr;
615 unsigned int cpu; 608 unsigned int cpu;
616 609
617 cpu = get_cpu(); 610 cpu = smp_processor_id();
618 /* add mutex operation */ 611 /* add mutex operation */
619 spin_lock_irqsave(&per_cpu(l1sram_lock, cpu), flags); 612 spin_lock_irqsave(&per_cpu(l1sram_lock, cpu), flags);
620 613
@@ -623,7 +616,6 @@ void *l1sram_alloc_max(size_t *psize)
623 616
624 /* add mutex operation */ 617 /* add mutex operation */
625 spin_unlock_irqrestore(&per_cpu(l1sram_lock, cpu), flags); 618 spin_unlock_irqrestore(&per_cpu(l1sram_lock, cpu), flags);
626 put_cpu();
627 619
628 return addr; 620 return addr;
629} 621}
@@ -635,7 +627,7 @@ int l1sram_free(const void *addr)
635 int ret; 627 int ret;
636 unsigned int cpu; 628 unsigned int cpu;
637 629
638 cpu = get_cpu(); 630 cpu = smp_processor_id();
639 /* add mutex operation */ 631 /* add mutex operation */
640 spin_lock_irqsave(&per_cpu(l1sram_lock, cpu), flags); 632 spin_lock_irqsave(&per_cpu(l1sram_lock, cpu), flags);
641 633
@@ -644,7 +636,6 @@ int l1sram_free(const void *addr)
644 636
645 /* add mutex operation */ 637 /* add mutex operation */
646 spin_unlock_irqrestore(&per_cpu(l1sram_lock, cpu), flags); 638 spin_unlock_irqrestore(&per_cpu(l1sram_lock, cpu), flags);
647 put_cpu();
648 639
649 return ret; 640 return ret;
650} 641}
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index b008168ae946..203ec61c6d4c 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -14,6 +14,8 @@ config MICROBLAZE
14 select USB_ARCH_HAS_EHCI 14 select USB_ARCH_HAS_EHCI
15 select ARCH_WANT_OPTIONAL_GPIOLIB 15 select ARCH_WANT_OPTIONAL_GPIOLIB
16 select HAVE_OPROFILE 16 select HAVE_OPROFILE
17 select HAVE_DMA_ATTRS
18 select HAVE_DMA_API_DEBUG
17 select TRACING_SUPPORT 19 select TRACING_SUPPORT
18 20
19config SWAP 21config SWAP
@@ -76,9 +78,6 @@ config HAVE_LATENCYTOP_SUPPORT
76config PCI 78config PCI
77 def_bool n 79 def_bool n
78 80
79config NO_DMA
80 def_bool y
81
82config DTC 81config DTC
83 def_bool y 82 def_bool y
84 83
@@ -146,7 +145,6 @@ menu "Advanced setup"
146 145
147config ADVANCED_OPTIONS 146config ADVANCED_OPTIONS
148 bool "Prompt for advanced kernel configuration options" 147 bool "Prompt for advanced kernel configuration options"
149 depends on MMU
150 help 148 help
151 This option will enable prompting for a variety of advanced kernel 149 This option will enable prompting for a variety of advanced kernel
152 configuration options. These options can cause the kernel to not 150 configuration options. These options can cause the kernel to not
@@ -158,6 +156,15 @@ config ADVANCED_OPTIONS
158comment "Default settings for advanced configuration options are used" 156comment "Default settings for advanced configuration options are used"
159 depends on !ADVANCED_OPTIONS 157 depends on !ADVANCED_OPTIONS
160 158
159config XILINX_UNCACHED_SHADOW
160 bool "Are you using uncached shadow for RAM ?"
161 depends on ADVANCED_OPTIONS && !MMU
162 default n
163 help
164 This is needed to be able to allocate uncachable memory regions.
165 The feature requires the design to define the RAM memory controller
166 window to be twice as large as the actual physical memory.
167
161config HIGHMEM_START_BOOL 168config HIGHMEM_START_BOOL
162 bool "Set high memory pool address" 169 bool "Set high memory pool address"
163 depends on ADVANCED_OPTIONS && HIGHMEM 170 depends on ADVANCED_OPTIONS && HIGHMEM
@@ -175,7 +182,7 @@ config HIGHMEM_START
175 182
176config LOWMEM_SIZE_BOOL 183config LOWMEM_SIZE_BOOL
177 bool "Set maximum low memory" 184 bool "Set maximum low memory"
178 depends on ADVANCED_OPTIONS 185 depends on ADVANCED_OPTIONS && MMU
179 help 186 help
180 This option allows you to set the maximum amount of memory which 187 This option allows you to set the maximum amount of memory which
181 will be used as "low memory", that is, memory which the kernel can 188 will be used as "low memory", that is, memory which the kernel can
@@ -187,7 +194,6 @@ config LOWMEM_SIZE_BOOL
187 194
188config LOWMEM_SIZE 195config LOWMEM_SIZE
189 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL 196 hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
190 depends on MMU
191 default "0x30000000" 197 default "0x30000000"
192 198
193config KERNEL_START_BOOL 199config KERNEL_START_BOOL
@@ -208,7 +214,7 @@ config KERNEL_START
208 214
209config TASK_SIZE_BOOL 215config TASK_SIZE_BOOL
210 bool "Set custom user task size" 216 bool "Set custom user task size"
211 depends on ADVANCED_OPTIONS 217 depends on ADVANCED_OPTIONS && MMU
212 help 218 help
213 This option allows you to set the amount of virtual address space 219 This option allows you to set the amount of virtual address space
214 allocated to user tasks. This can be useful in optimizing the 220 allocated to user tasks. This can be useful in optimizing the
@@ -218,42 +224,34 @@ config TASK_SIZE_BOOL
218 224
219config TASK_SIZE 225config TASK_SIZE
220 hex "Size of user task space" if TASK_SIZE_BOOL 226 hex "Size of user task space" if TASK_SIZE_BOOL
221 depends on MMU
222 default "0x80000000" 227 default "0x80000000"
223 228
224config CONSISTENT_START_BOOL 229endmenu
225 bool "Set custom consistent memory pool address"
226 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
227 help
228 This option allows you to set the base virtual address
229 of the the consistent memory pool. This pool of virtual
230 memory is used to make consistent memory allocations.
231 230
232config CONSISTENT_START 231source "mm/Kconfig"
233 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
234 depends on MMU
235 default "0xff100000" if NOT_COHERENT_CACHE
236 232
237config CONSISTENT_SIZE_BOOL 233menu "Exectuable file formats"
238 bool "Set custom consistent memory pool size"
239 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
240 help
241 This option allows you to set the size of the the
242 consistent memory pool. This pool of virtual memory
243 is used to make consistent memory allocations.
244 234
245config CONSISTENT_SIZE 235source "fs/Kconfig.binfmt"
246 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
247 depends on MMU
248 default "0x00200000" if NOT_COHERENT_CACHE
249 236
250endmenu 237endmenu
251 238
252source "mm/Kconfig" 239menu "Bus Options"
253 240
254menu "Exectuable file formats" 241config PCI
242 bool "PCI support"
255 243
256source "fs/Kconfig.binfmt" 244config PCI_DOMAINS
245 def_bool PCI
246
247config PCI_SYSCALL
248 def_bool PCI
249
250config PCI_XILINX
251 bool "Xilinx PCI host bridge support"
252 depends on PCI
253
254source "drivers/pci/Kconfig"
257 255
258endmenu 256endmenu
259 257
diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile
index d2d6cfcb1a30..836832dd9b26 100644
--- a/arch/microblaze/Makefile
+++ b/arch/microblaze/Makefile
@@ -50,6 +50,7 @@ libs-y += $(LIBGCC)
50core-y += arch/microblaze/kernel/ 50core-y += arch/microblaze/kernel/
51core-y += arch/microblaze/mm/ 51core-y += arch/microblaze/mm/
52core-y += arch/microblaze/platform/ 52core-y += arch/microblaze/platform/
53core-$(CONFIG_PCI) += arch/microblaze/pci/
53 54
54drivers-$(CONFIG_OPROFILE) += arch/microblaze/oprofile/ 55drivers-$(CONFIG_OPROFILE) += arch/microblaze/oprofile/
55 56
diff --git a/arch/microblaze/include/asm/device.h b/arch/microblaze/include/asm/device.h
index 78a038452c0f..402b46e630f6 100644
--- a/arch/microblaze/include/asm/device.h
+++ b/arch/microblaze/include/asm/device.h
@@ -14,6 +14,10 @@ struct device_node;
14struct dev_archdata { 14struct dev_archdata {
15 /* Optional pointer to an OF device node */ 15 /* Optional pointer to an OF device node */
16 struct device_node *of_node; 16 struct device_node *of_node;
17
18 /* DMA operations on that device */
19 struct dma_map_ops *dma_ops;
20 void *dma_data;
17}; 21};
18 22
19struct pdev_archdata { 23struct pdev_archdata {
diff --git a/arch/microblaze/include/asm/dma-mapping.h b/arch/microblaze/include/asm/dma-mapping.h
index d00e40099165..18b3731c8509 100644
--- a/arch/microblaze/include/asm/dma-mapping.h
+++ b/arch/microblaze/include/asm/dma-mapping.h
@@ -1 +1,153 @@
1#include <asm-generic/dma-mapping-broken.h> 1/*
2 * Implements the generic device dma API for microblaze and the pci
3 *
4 * Copyright (C) 2009-2010 Michal Simek <monstr@monstr.eu>
5 * Copyright (C) 2009-2010 PetaLogix
6 *
7 * This file is subject to the terms and conditions of the GNU General
8 * Public License. See the file COPYING in the main directory of this
9 * archive for more details.
10 *
11 * This file is base on powerpc and x86 dma-mapping.h versions
12 * Copyright (C) 2004 IBM
13 */
14
15#ifndef _ASM_MICROBLAZE_DMA_MAPPING_H
16#define _ASM_MICROBLAZE_DMA_MAPPING_H
17
18/*
19 * See Documentation/PCI/PCI-DMA-mapping.txt and
20 * Documentation/DMA-API.txt for documentation.
21 */
22
23#include <linux/types.h>
24#include <linux/cache.h>
25#include <linux/mm.h>
26#include <linux/scatterlist.h>
27#include <linux/dma-debug.h>
28#include <linux/dma-attrs.h>
29#include <asm/io.h>
30#include <asm-generic/dma-coherent.h>
31
32#define DMA_ERROR_CODE (~(dma_addr_t)0x0)
33
34#define __dma_alloc_coherent(dev, gfp, size, handle) NULL
35#define __dma_free_coherent(size, addr) ((void)0)
36#define __dma_sync(addr, size, rw) ((void)0)
37
38static inline unsigned long device_to_mask(struct device *dev)
39{
40 if (dev->dma_mask && *dev->dma_mask)
41 return *dev->dma_mask;
42 /* Assume devices without mask can take 32 bit addresses */
43 return 0xfffffffful;
44}
45
46extern struct dma_map_ops *dma_ops;
47
48/*
49 * Available generic sets of operations
50 */
51extern struct dma_map_ops dma_direct_ops;
52
53static inline struct dma_map_ops *get_dma_ops(struct device *dev)
54{
55 /* We don't handle the NULL dev case for ISA for now. We could
56 * do it via an out of line call but it is not needed for now. The
57 * only ISA DMA device we support is the floppy and we have a hack
58 * in the floppy driver directly to get a device for us.
59 */
60 if (unlikely(!dev) || !dev->archdata.dma_ops)
61 return NULL;
62
63 return dev->archdata.dma_ops;
64}
65
66static inline void set_dma_ops(struct device *dev, struct dma_map_ops *ops)
67{
68 dev->archdata.dma_ops = ops;
69}
70
71static inline int dma_supported(struct device *dev, u64 mask)
72{
73 struct dma_map_ops *ops = get_dma_ops(dev);
74
75 if (unlikely(!ops))
76 return 0;
77 if (!ops->dma_supported)
78 return 1;
79 return ops->dma_supported(dev, mask);
80}
81
82#ifdef CONFIG_PCI
83/* We have our own implementation of pci_set_dma_mask() */
84#define HAVE_ARCH_PCI_SET_DMA_MASK
85
86#endif
87
88static inline int dma_set_mask(struct device *dev, u64 dma_mask)
89{
90 struct dma_map_ops *ops = get_dma_ops(dev);
91
92 if (unlikely(ops == NULL))
93 return -EIO;
94 if (ops->set_dma_mask)
95 return ops->set_dma_mask(dev, dma_mask);
96 if (!dev->dma_mask || !dma_supported(dev, dma_mask))
97 return -EIO;
98 *dev->dma_mask = dma_mask;
99 return 0;
100}
101
102#include <asm-generic/dma-mapping-common.h>
103
104static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
105{
106 struct dma_map_ops *ops = get_dma_ops(dev);
107 if (ops->mapping_error)
108 return ops->mapping_error(dev, dma_addr);
109
110 return (dma_addr == DMA_ERROR_CODE);
111}
112
113#define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
114#define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
115#define dma_is_consistent(d, h) (1)
116
117static inline void *dma_alloc_coherent(struct device *dev, size_t size,
118 dma_addr_t *dma_handle, gfp_t flag)
119{
120 struct dma_map_ops *ops = get_dma_ops(dev);
121 void *memory;
122
123 BUG_ON(!ops);
124
125 memory = ops->alloc_coherent(dev, size, dma_handle, flag);
126
127 debug_dma_alloc_coherent(dev, size, *dma_handle, memory);
128 return memory;
129}
130
131static inline void dma_free_coherent(struct device *dev, size_t size,
132 void *cpu_addr, dma_addr_t dma_handle)
133{
134 struct dma_map_ops *ops = get_dma_ops(dev);
135
136 BUG_ON(!ops);
137 debug_dma_free_coherent(dev, size, cpu_addr, dma_handle);
138 ops->free_coherent(dev, size, cpu_addr, dma_handle);
139}
140
141static inline int dma_get_cache_alignment(void)
142{
143 return L1_CACHE_BYTES;
144}
145
146static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size,
147 enum dma_data_direction direction)
148{
149 BUG_ON(direction == DMA_NONE);
150 __dma_sync(vaddr, size, (int)direction);
151}
152
153#endif /* _ASM_MICROBLAZE_DMA_MAPPING_H */
diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h
index 267c7c779e53..32d621a56aee 100644
--- a/arch/microblaze/include/asm/io.h
+++ b/arch/microblaze/include/asm/io.h
@@ -15,7 +15,23 @@
15#include <asm/page.h> 15#include <asm/page.h>
16#include <linux/types.h> 16#include <linux/types.h>
17#include <linux/mm.h> /* Get struct page {...} */ 17#include <linux/mm.h> /* Get struct page {...} */
18#include <asm-generic/iomap.h>
18 19
20#ifndef CONFIG_PCI
21#define _IO_BASE 0
22#define _ISA_MEM_BASE 0
23#define PCI_DRAM_OFFSET 0
24#else
25#define _IO_BASE isa_io_base
26#define _ISA_MEM_BASE isa_mem_base
27#define PCI_DRAM_OFFSET pci_dram_offset
28#endif
29
30extern unsigned long isa_io_base;
31extern unsigned long pci_io_base;
32extern unsigned long pci_dram_offset;
33
34extern resource_size_t isa_mem_base;
19 35
20#define IO_SPACE_LIMIT (0xFFFFFFFF) 36#define IO_SPACE_LIMIT (0xFFFFFFFF)
21 37
@@ -124,9 +140,6 @@ static inline void writel(unsigned int v, volatile void __iomem *addr)
124#define virt_to_phys(addr) ((unsigned long)__virt_to_phys(addr)) 140#define virt_to_phys(addr) ((unsigned long)__virt_to_phys(addr))
125#define virt_to_bus(addr) ((unsigned long)__virt_to_phys(addr)) 141#define virt_to_bus(addr) ((unsigned long)__virt_to_phys(addr))
126 142
127#define __page_address(page) \
128 (PAGE_OFFSET + (((page) - mem_map) << PAGE_SHIFT))
129#define page_to_phys(page) virt_to_phys((void *)__page_address(page))
130#define page_to_bus(page) (page_to_phys(page)) 143#define page_to_bus(page) (page_to_phys(page))
131#define bus_to_virt(addr) (phys_to_virt(addr)) 144#define bus_to_virt(addr) (phys_to_virt(addr))
132 145
@@ -227,15 +240,7 @@ static inline void __iomem *__ioremap(phys_addr_t address, unsigned long size,
227#define out_8(a, v) __raw_writeb((v), (a)) 240#define out_8(a, v) __raw_writeb((v), (a))
228#define in_8(a) __raw_readb(a) 241#define in_8(a) __raw_readb(a)
229 242
230/* FIXME */ 243#define ioport_map(port, nr) ((void __iomem *)(port))
231static inline void __iomem *ioport_map(unsigned long port, unsigned int len) 244#define ioport_unmap(addr)
232{
233 return (void __iomem *) (port);
234}
235
236static inline void ioport_unmap(void __iomem *addr)
237{
238 /* Nothing to do */
239}
240 245
241#endif /* _ASM_MICROBLAZE_IO_H */ 246#endif /* _ASM_MICROBLAZE_IO_H */
diff --git a/arch/microblaze/include/asm/irq.h b/arch/microblaze/include/asm/irq.h
index 90f050535ebe..31a35c33df63 100644
--- a/arch/microblaze/include/asm/irq.h
+++ b/arch/microblaze/include/asm/irq.h
@@ -14,6 +14,12 @@
14 14
15#include <linux/interrupt.h> 15#include <linux/interrupt.h>
16 16
17/* This type is the placeholder for a hardware interrupt number. It has to
18 * be big enough to enclose whatever representation is used by a given
19 * platform.
20 */
21typedef unsigned long irq_hw_number_t;
22
17extern unsigned int nr_irq; 23extern unsigned int nr_irq;
18 24
19#define NO_IRQ (-1) 25#define NO_IRQ (-1)
@@ -21,7 +27,8 @@ extern unsigned int nr_irq;
21struct pt_regs; 27struct pt_regs;
22extern void do_IRQ(struct pt_regs *regs); 28extern void do_IRQ(struct pt_regs *regs);
23 29
24/* irq_of_parse_and_map - Parse and Map an interrupt into linux virq space 30/**
31 * irq_of_parse_and_map - Parse and Map an interrupt into linux virq space
25 * @device: Device node of the device whose interrupt is to be mapped 32 * @device: Device node of the device whose interrupt is to be mapped
26 * @index: Index of the interrupt to map 33 * @index: Index of the interrupt to map
27 * 34 *
@@ -40,4 +47,32 @@ static inline void irq_dispose_mapping(unsigned int virq)
40 return; 47 return;
41} 48}
42 49
50struct irq_host;
51
52/**
53 * irq_create_mapping - Map a hardware interrupt into linux virq space
54 * @host: host owning this hardware interrupt or NULL for default host
55 * @hwirq: hardware irq number in that host space
56 *
57 * Only one mapping per hardware interrupt is permitted. Returns a linux
58 * virq number.
59 * If the sense/trigger is to be specified, set_irq_type() should be called
60 * on the number returned from that call.
61 */
62extern unsigned int irq_create_mapping(struct irq_host *host,
63 irq_hw_number_t hwirq);
64
65/**
66 * irq_create_of_mapping - Map a hardware interrupt into linux virq space
67 * @controller: Device node of the interrupt controller
68 * @inspec: Interrupt specifier from the device-tree
69 * @intsize: Size of the interrupt specifier from the device-tree
70 *
71 * This function is identical to irq_create_mapping except that it takes
72 * as input informations straight from the device-tree (typically the results
73 * of the of_irq_map_*() functions.
74 */
75extern unsigned int irq_create_of_mapping(struct device_node *controller,
76 u32 *intspec, unsigned int intsize);
77
43#endif /* _ASM_MICROBLAZE_IRQ_H */ 78#endif /* _ASM_MICROBLAZE_IRQ_H */
diff --git a/arch/microblaze/include/asm/page.h b/arch/microblaze/include/asm/page.h
index 9b66c0fa9a32..2dd1d04129e0 100644
--- a/arch/microblaze/include/asm/page.h
+++ b/arch/microblaze/include/asm/page.h
@@ -62,12 +62,6 @@ extern unsigned int __page_offset;
62#define PAGE_OFFSET CONFIG_KERNEL_START 62#define PAGE_OFFSET CONFIG_KERNEL_START
63 63
64/* 64/*
65 * MAP_NR -- given an address, calculate the index of the page struct which
66 * points to the address's page.
67 */
68#define MAP_NR(addr) (((unsigned long)(addr) - PAGE_OFFSET) >> PAGE_SHIFT)
69
70/*
71 * The basic type of a PTE - 32 bit physical addressing. 65 * The basic type of a PTE - 32 bit physical addressing.
72 */ 66 */
73typedef unsigned long pte_basic_t; 67typedef unsigned long pte_basic_t;
@@ -154,7 +148,11 @@ extern int page_is_ram(unsigned long pfn);
154# define pfn_to_virt(pfn) __va(pfn_to_phys((pfn))) 148# define pfn_to_virt(pfn) __va(pfn_to_phys((pfn)))
155 149
156# ifdef CONFIG_MMU 150# ifdef CONFIG_MMU
157# define virt_to_page(kaddr) (mem_map + MAP_NR(kaddr)) 151
152# define virt_to_page(kaddr) (pfn_to_page(__pa(kaddr) >> PAGE_SHIFT))
153# define page_to_virt(page) __va(page_to_pfn(page) << PAGE_SHIFT)
154# define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
155
158# else /* CONFIG_MMU */ 156# else /* CONFIG_MMU */
159# define virt_to_page(vaddr) (pfn_to_page(virt_to_pfn(vaddr))) 157# define virt_to_page(vaddr) (pfn_to_page(virt_to_pfn(vaddr)))
160# define page_to_virt(page) (pfn_to_virt(page_to_pfn(page))) 158# define page_to_virt(page) (pfn_to_virt(page_to_pfn(page)))
diff --git a/arch/microblaze/include/asm/pci-bridge.h b/arch/microblaze/include/asm/pci-bridge.h
index 7ad28f6f5f1a..0c77cda9f5d8 100644
--- a/arch/microblaze/include/asm/pci-bridge.h
+++ b/arch/microblaze/include/asm/pci-bridge.h
@@ -1 +1,196 @@
1#ifndef _ASM_MICROBLAZE_PCI_BRIDGE_H
2#define _ASM_MICROBLAZE_PCI_BRIDGE_H
3#ifdef __KERNEL__
4/*
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version
8 * 2 of the License, or (at your option) any later version.
9 */
1#include <linux/pci.h> 10#include <linux/pci.h>
11#include <linux/list.h>
12#include <linux/ioport.h>
13
14struct device_node;
15
16enum {
17 /* Force re-assigning all resources (ignore firmware
18 * setup completely)
19 */
20 PCI_REASSIGN_ALL_RSRC = 0x00000001,
21
22 /* Re-assign all bus numbers */
23 PCI_REASSIGN_ALL_BUS = 0x00000002,
24
25 /* Do not try to assign, just use existing setup */
26 PCI_PROBE_ONLY = 0x00000004,
27
28 /* Don't bother with ISA alignment unless the bridge has
29 * ISA forwarding enabled
30 */
31 PCI_CAN_SKIP_ISA_ALIGN = 0x00000008,
32
33 /* Enable domain numbers in /proc */
34 PCI_ENABLE_PROC_DOMAINS = 0x00000010,
35 /* ... except for domain 0 */
36 PCI_COMPAT_DOMAIN_0 = 0x00000020,
37};
38
39/*
40 * Structure of a PCI controller (host bridge)
41 */
42struct pci_controller {
43 struct pci_bus *bus;
44 char is_dynamic;
45 struct device_node *dn;
46 struct list_head list_node;
47 struct device *parent;
48
49 int first_busno;
50 int last_busno;
51
52 int self_busno;
53
54 void __iomem *io_base_virt;
55 resource_size_t io_base_phys;
56
57 resource_size_t pci_io_size;
58
59 /* Some machines (PReP) have a non 1:1 mapping of
60 * the PCI memory space in the CPU bus space
61 */
62 resource_size_t pci_mem_offset;
63
64 /* Some machines have a special region to forward the ISA
65 * "memory" cycles such as VGA memory regions. Left to 0
66 * if unsupported
67 */
68 resource_size_t isa_mem_phys;
69 resource_size_t isa_mem_size;
70
71 struct pci_ops *ops;
72 unsigned int __iomem *cfg_addr;
73 void __iomem *cfg_data;
74
75 /*
76 * Used for variants of PCI indirect handling and possible quirks:
77 * SET_CFG_TYPE - used on 4xx or any PHB that does explicit type0/1
78 * EXT_REG - provides access to PCI-e extended registers
79 * SURPRESS_PRIMARY_BUS - we surpress the setting of PCI_PRIMARY_BUS
80 * on Freescale PCI-e controllers since they used the PCI_PRIMARY_BUS
81 * to determine which bus number to match on when generating type0
82 * config cycles
83 * NO_PCIE_LINK - the Freescale PCI-e controllers have issues with
84 * hanging if we don't have link and try to do config cycles to
85 * anything but the PHB. Only allow talking to the PHB if this is
86 * set.
87 * BIG_ENDIAN - cfg_addr is a big endian register
88 * BROKEN_MRM - the 440EPx/GRx chips have an errata that causes hangs
89 * on the PLB4. Effectively disable MRM commands by setting this.
90 */
91#define INDIRECT_TYPE_SET_CFG_TYPE 0x00000001
92#define INDIRECT_TYPE_EXT_REG 0x00000002
93#define INDIRECT_TYPE_SURPRESS_PRIMARY_BUS 0x00000004
94#define INDIRECT_TYPE_NO_PCIE_LINK 0x00000008
95#define INDIRECT_TYPE_BIG_ENDIAN 0x00000010
96#define INDIRECT_TYPE_BROKEN_MRM 0x00000020
97 u32 indirect_type;
98
99 /* Currently, we limit ourselves to 1 IO range and 3 mem
100 * ranges since the common pci_bus structure can't handle more
101 */
102 struct resource io_resource;
103 struct resource mem_resources[3];
104 int global_number; /* PCI domain number */
105};
106
107static inline struct pci_controller *pci_bus_to_host(const struct pci_bus *bus)
108{
109 return bus->sysdata;
110}
111
112static inline int isa_vaddr_is_ioport(void __iomem *address)
113{
114 /* No specific ISA handling on ppc32 at this stage, it
115 * all goes through PCI
116 */
117 return 0;
118}
119
120/* These are used for config access before all the PCI probing
121 has been done. */
122extern int early_read_config_byte(struct pci_controller *hose, int bus,
123 int dev_fn, int where, u8 *val);
124extern int early_read_config_word(struct pci_controller *hose, int bus,
125 int dev_fn, int where, u16 *val);
126extern int early_read_config_dword(struct pci_controller *hose, int bus,
127 int dev_fn, int where, u32 *val);
128extern int early_write_config_byte(struct pci_controller *hose, int bus,
129 int dev_fn, int where, u8 val);
130extern int early_write_config_word(struct pci_controller *hose, int bus,
131 int dev_fn, int where, u16 val);
132extern int early_write_config_dword(struct pci_controller *hose, int bus,
133 int dev_fn, int where, u32 val);
134
135extern int early_find_capability(struct pci_controller *hose, int bus,
136 int dev_fn, int cap);
137
138extern void setup_indirect_pci(struct pci_controller *hose,
139 resource_size_t cfg_addr,
140 resource_size_t cfg_data, u32 flags);
141
142/* Get the PCI host controller for an OF device */
143extern struct pci_controller *pci_find_hose_for_OF_device(
144 struct device_node *node);
145
146/* Fill up host controller resources from the OF node */
147extern void pci_process_bridge_OF_ranges(struct pci_controller *hose,
148 struct device_node *dev, int primary);
149
150/* Allocate & free a PCI host bridge structure */
151extern struct pci_controller *pcibios_alloc_controller(struct device_node *dev);
152extern void pcibios_free_controller(struct pci_controller *phb);
153extern void pcibios_setup_phb_resources(struct pci_controller *hose);
154
155#ifdef CONFIG_PCI
156extern unsigned int pci_flags;
157
158static inline void pci_set_flags(int flags)
159{
160 pci_flags = flags;
161}
162
163static inline void pci_add_flags(int flags)
164{
165 pci_flags |= flags;
166}
167
168static inline int pci_has_flag(int flag)
169{
170 return pci_flags & flag;
171}
172
173extern struct list_head hose_list;
174
175extern unsigned long pci_address_to_pio(phys_addr_t address);
176extern int pcibios_vaddr_is_ioport(void __iomem *address);
177#else
178static inline unsigned long pci_address_to_pio(phys_addr_t address)
179{
180 return (unsigned long)-1;
181}
182static inline int pcibios_vaddr_is_ioport(void __iomem *address)
183{
184 return 0;
185}
186
187static inline void pci_set_flags(int flags) { }
188static inline void pci_add_flags(int flags) { }
189static inline int pci_has_flag(int flag)
190{
191 return 0;
192}
193#endif /* CONFIG_PCI */
194
195#endif /* __KERNEL__ */
196#endif /* _ASM_MICROBLAZE_PCI_BRIDGE_H */
diff --git a/arch/microblaze/include/asm/pci.h b/arch/microblaze/include/asm/pci.h
index 9f0df5faf2c8..bdd65aaee30d 100644
--- a/arch/microblaze/include/asm/pci.h
+++ b/arch/microblaze/include/asm/pci.h
@@ -1 +1,177 @@
1#include <asm-generic/pci.h> 1/*
2 * This program is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU General Public License
4 * as published by the Free Software Foundation; either version
5 * 2 of the License, or (at your option) any later version.
6 *
7 * Based on powerpc version
8 */
9
10#ifndef __ASM_MICROBLAZE_PCI_H
11#define __ASM_MICROBLAZE_PCI_H
12#ifdef __KERNEL__
13
14#include <linux/types.h>
15#include <linux/slab.h>
16#include <linux/string.h>
17#include <linux/dma-mapping.h>
18#include <linux/pci.h>
19
20#include <asm/scatterlist.h>
21#include <asm/io.h>
22#include <asm/prom.h>
23#include <asm/pci-bridge.h>
24
25#define PCIBIOS_MIN_IO 0x1000
26#define PCIBIOS_MIN_MEM 0x10000000
27
28struct pci_dev;
29
30/* Values for the `which' argument to sys_pciconfig_iobase syscall. */
31#define IOBASE_BRIDGE_NUMBER 0
32#define IOBASE_MEMORY 1
33#define IOBASE_IO 2
34#define IOBASE_ISA_IO 3
35#define IOBASE_ISA_MEM 4
36
37#define pcibios_scan_all_fns(a, b) 0
38
39/*
40 * Set this to 1 if you want the kernel to re-assign all PCI
41 * bus numbers (don't do that on ppc64 yet !)
42 */
43#define pcibios_assign_all_busses() \
44 (pci_has_flag(PCI_REASSIGN_ALL_BUS))
45
46static inline void pcibios_set_master(struct pci_dev *dev)
47{
48 /* No special bus mastering setup handling */
49}
50
51static inline void pcibios_penalize_isa_irq(int irq, int active)
52{
53 /* We don't do dynamic PCI IRQ allocation */
54}
55
56#ifdef CONFIG_PCI
57extern void set_pci_dma_ops(struct dma_map_ops *dma_ops);
58extern struct dma_map_ops *get_pci_dma_ops(void);
59#else /* CONFIG_PCI */
60#define set_pci_dma_ops(d)
61#define get_pci_dma_ops() NULL
62#endif
63
64#ifdef CONFIG_PCI
65static inline void pci_dma_burst_advice(struct pci_dev *pdev,
66 enum pci_dma_burst_strategy *strat,
67 unsigned long *strategy_parameter)
68{
69 *strat = PCI_DMA_BURST_INFINITY;
70 *strategy_parameter = ~0UL;
71}
72#endif
73
74extern int pci_domain_nr(struct pci_bus *bus);
75
76/* Decide whether to display the domain number in /proc */
77extern int pci_proc_domain(struct pci_bus *bus);
78
79struct vm_area_struct;
80/* Map a range of PCI memory or I/O space for a device into user space */
81int pci_mmap_page_range(struct pci_dev *pdev, struct vm_area_struct *vma,
82 enum pci_mmap_state mmap_state, int write_combine);
83
84/* Tell drivers/pci/proc.c that we have pci_mmap_page_range() */
85#define HAVE_PCI_MMAP 1
86
87extern int pci_legacy_read(struct pci_bus *bus, loff_t port, u32 *val,
88 size_t count);
89extern int pci_legacy_write(struct pci_bus *bus, loff_t port, u32 val,
90 size_t count);
91extern int pci_mmap_legacy_page_range(struct pci_bus *bus,
92 struct vm_area_struct *vma,
93 enum pci_mmap_state mmap_state);
94
95#define HAVE_PCI_LEGACY 1
96
97/* pci_unmap_{page,single} is a nop so... */
98#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME)
99#define DECLARE_PCI_UNMAP_LEN(LEN_NAME)
100#define pci_unmap_addr(PTR, ADDR_NAME) (0)
101#define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) do { } while (0)
102#define pci_unmap_len(PTR, LEN_NAME) (0)
103#define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0)
104
105/* The PCI address space does equal the physical memory
106 * address space (no IOMMU). The IDE and SCSI device layers use
107 * this boolean for bounce buffer decisions.
108 */
109#define PCI_DMA_BUS_IS_PHYS (1)
110
111extern void pcibios_resource_to_bus(struct pci_dev *dev,
112 struct pci_bus_region *region,
113 struct resource *res);
114
115extern void pcibios_bus_to_resource(struct pci_dev *dev,
116 struct resource *res,
117 struct pci_bus_region *region);
118
119static inline struct resource *pcibios_select_root(struct pci_dev *pdev,
120 struct resource *res)
121{
122 struct resource *root = NULL;
123
124 if (res->flags & IORESOURCE_IO)
125 root = &ioport_resource;
126 if (res->flags & IORESOURCE_MEM)
127 root = &iomem_resource;
128
129 return root;
130}
131
132extern void pcibios_claim_one_bus(struct pci_bus *b);
133
134extern void pcibios_finish_adding_to_bus(struct pci_bus *bus);
135
136extern void pcibios_resource_survey(void);
137
138extern struct pci_controller *init_phb_dynamic(struct device_node *dn);
139extern int remove_phb_dynamic(struct pci_controller *phb);
140
141extern struct pci_dev *of_create_pci_dev(struct device_node *node,
142 struct pci_bus *bus, int devfn);
143
144extern void of_scan_pci_bridge(struct device_node *node,
145 struct pci_dev *dev);
146
147extern void of_scan_bus(struct device_node *node, struct pci_bus *bus);
148extern void of_rescan_bus(struct device_node *node, struct pci_bus *bus);
149
150extern int pci_read_irq_line(struct pci_dev *dev);
151
152extern int pci_bus_find_capability(struct pci_bus *bus,
153 unsigned int devfn, int cap);
154
155struct file;
156extern pgprot_t pci_phys_mem_access_prot(struct file *file,
157 unsigned long pfn,
158 unsigned long size,
159 pgprot_t prot);
160
161#define HAVE_ARCH_PCI_RESOURCE_TO_USER
162extern void pci_resource_to_user(const struct pci_dev *dev, int bar,
163 const struct resource *rsrc,
164 resource_size_t *start, resource_size_t *end);
165
166extern void pcibios_setup_bus_devices(struct pci_bus *bus);
167extern void pcibios_setup_bus_self(struct pci_bus *bus);
168
169/* This part of code was originaly in xilinx-pci.h */
170#ifdef CONFIG_PCI_XILINX
171extern void __init xilinx_pci_init(void);
172#else
173static inline void __init xilinx_pci_init(void) { return; }
174#endif
175
176#endif /* __KERNEL__ */
177#endif /* __ASM_MICROBLAZE_PCI_H */
diff --git a/arch/microblaze/include/asm/pgalloc.h b/arch/microblaze/include/asm/pgalloc.h
index 7547f5064560..f44b0d696fe2 100644
--- a/arch/microblaze/include/asm/pgalloc.h
+++ b/arch/microblaze/include/asm/pgalloc.h
@@ -19,6 +19,7 @@
19#include <asm/io.h> 19#include <asm/io.h>
20#include <asm/page.h> 20#include <asm/page.h>
21#include <asm/cache.h> 21#include <asm/cache.h>
22#include <asm/pgtable.h>
22 23
23#define PGDIR_ORDER 0 24#define PGDIR_ORDER 0
24 25
@@ -111,7 +112,6 @@ static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
111 unsigned long address) 112 unsigned long address)
112{ 113{
113 pte_t *pte; 114 pte_t *pte;
114 extern int mem_init_done;
115 extern void *early_get_page(void); 115 extern void *early_get_page(void);
116 if (mem_init_done) { 116 if (mem_init_done) {
117 pte = (pte_t *)__get_free_page(GFP_KERNEL | 117 pte = (pte_t *)__get_free_page(GFP_KERNEL |
diff --git a/arch/microblaze/include/asm/pgtable.h b/arch/microblaze/include/asm/pgtable.h
index cc3a4dfc3eaa..dd2bb60651c7 100644
--- a/arch/microblaze/include/asm/pgtable.h
+++ b/arch/microblaze/include/asm/pgtable.h
@@ -16,6 +16,10 @@
16#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \ 16#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
17 remap_pfn_range(vma, vaddr, pfn, size, prot) 17 remap_pfn_range(vma, vaddr, pfn, size, prot)
18 18
19#ifndef __ASSEMBLY__
20extern int mem_init_done;
21#endif
22
19#ifndef CONFIG_MMU 23#ifndef CONFIG_MMU
20 24
21#define pgd_present(pgd) (1) /* pages are always present on non MMU */ 25#define pgd_present(pgd) (1) /* pages are always present on non MMU */
@@ -51,6 +55,8 @@ static inline int pte_file(pte_t pte) { return 0; }
51 55
52#define arch_enter_lazy_cpu_mode() do {} while (0) 56#define arch_enter_lazy_cpu_mode() do {} while (0)
53 57
58#define pgprot_noncached_wc(prot) prot
59
54#else /* CONFIG_MMU */ 60#else /* CONFIG_MMU */
55 61
56#include <asm-generic/4level-fixup.h> 62#include <asm-generic/4level-fixup.h>
@@ -68,7 +74,6 @@ static inline int pte_file(pte_t pte) { return 0; }
68 74
69extern unsigned long va_to_phys(unsigned long address); 75extern unsigned long va_to_phys(unsigned long address);
70extern pte_t *va_to_pte(unsigned long address); 76extern pte_t *va_to_pte(unsigned long address);
71extern unsigned long ioremap_bot, ioremap_base;
72 77
73/* 78/*
74 * The following only work if pte_present() is true. 79 * The following only work if pte_present() is true.
@@ -85,11 +90,25 @@ static inline pte_t pte_mkspecial(pte_t pte) { return pte; }
85#define VMALLOC_START (CONFIG_KERNEL_START + \ 90#define VMALLOC_START (CONFIG_KERNEL_START + \
86 max(32 * 1024 * 1024UL, memory_size)) 91 max(32 * 1024 * 1024UL, memory_size))
87#define VMALLOC_END ioremap_bot 92#define VMALLOC_END ioremap_bot
88#define VMALLOC_VMADDR(x) ((unsigned long)(x))
89 93
90#endif /* __ASSEMBLY__ */ 94#endif /* __ASSEMBLY__ */
91 95
92/* 96/*
97 * Macro to mark a page protection value as "uncacheable".
98 */
99
100#define _PAGE_CACHE_CTL (_PAGE_GUARDED | _PAGE_NO_CACHE | \
101 _PAGE_WRITETHRU)
102
103#define pgprot_noncached(prot) \
104 (__pgprot((pgprot_val(prot) & ~_PAGE_CACHE_CTL) | \
105 _PAGE_NO_CACHE | _PAGE_GUARDED))
106
107#define pgprot_noncached_wc(prot) \
108 (__pgprot((pgprot_val(prot) & ~_PAGE_CACHE_CTL) | \
109 _PAGE_NO_CACHE))
110
111/*
93 * The MicroBlaze MMU is identical to the PPC-40x MMU, and uses a hash 112 * The MicroBlaze MMU is identical to the PPC-40x MMU, and uses a hash
94 * table containing PTEs, together with a set of 16 segment registers, to 113 * table containing PTEs, together with a set of 16 segment registers, to
95 * define the virtual to physical address mapping. 114 * define the virtual to physical address mapping.
@@ -397,7 +416,7 @@ static inline unsigned long pte_update(pte_t *p, unsigned long clr,
397 mts rmsr, %2\n\ 416 mts rmsr, %2\n\
398 nop" 417 nop"
399 : "=&r" (old), "=&r" (tmp), "=&r" (msr), "=m" (*p) 418 : "=&r" (old), "=&r" (tmp), "=&r" (msr), "=m" (*p)
400 : "r" ((unsigned long)(p+1) - 4), "r" (clr), "r" (set), "m" (*p) 419 : "r" ((unsigned long)(p + 1) - 4), "r" (clr), "r" (set), "m" (*p)
401 : "cc"); 420 : "cc");
402 421
403 return old; 422 return old;
@@ -566,18 +585,11 @@ void mapin_ram(void);
566int map_page(unsigned long va, phys_addr_t pa, int flags); 585int map_page(unsigned long va, phys_addr_t pa, int flags);
567 586
568extern int mem_init_done; 587extern int mem_init_done;
569extern unsigned long ioremap_base;
570extern unsigned long ioremap_bot;
571 588
572asmlinkage void __init mmu_init(void); 589asmlinkage void __init mmu_init(void);
573 590
574void __init *early_get_page(void); 591void __init *early_get_page(void);
575 592
576void *consistent_alloc(int gfp, size_t size, dma_addr_t *dma_handle);
577void consistent_free(void *vaddr);
578void consistent_sync(void *vaddr, size_t size, int direction);
579void consistent_sync_page(struct page *page, unsigned long offset,
580 size_t size, int direction);
581#endif /* __ASSEMBLY__ */ 593#endif /* __ASSEMBLY__ */
582#endif /* __KERNEL__ */ 594#endif /* __KERNEL__ */
583 595
@@ -586,6 +598,14 @@ void consistent_sync_page(struct page *page, unsigned long offset,
586#ifndef __ASSEMBLY__ 598#ifndef __ASSEMBLY__
587#include <asm-generic/pgtable.h> 599#include <asm-generic/pgtable.h>
588 600
601extern unsigned long ioremap_bot, ioremap_base;
602
603void *consistent_alloc(int gfp, size_t size, dma_addr_t *dma_handle);
604void consistent_free(void *vaddr);
605void consistent_sync(void *vaddr, size_t size, int direction);
606void consistent_sync_page(struct page *page, unsigned long offset,
607 size_t size, int direction);
608
589void setup_memory(void); 609void setup_memory(void);
590#endif /* __ASSEMBLY__ */ 610#endif /* __ASSEMBLY__ */
591 611
diff --git a/arch/microblaze/include/asm/prom.h b/arch/microblaze/include/asm/prom.h
index 03f45a963204..e7d67a329bd7 100644
--- a/arch/microblaze/include/asm/prom.h
+++ b/arch/microblaze/include/asm/prom.h
@@ -31,6 +31,21 @@
31/* Other Prototypes */ 31/* Other Prototypes */
32extern int early_uartlite_console(void); 32extern int early_uartlite_console(void);
33 33
34#ifdef CONFIG_PCI
35/*
36 * PCI <-> OF matching functions
37 * (XXX should these be here?)
38 */
39struct pci_bus;
40struct pci_dev;
41extern int pci_device_from_OF_node(struct device_node *node,
42 u8 *bus, u8 *devfn);
43extern struct device_node *pci_busdev_to_OF_node(struct pci_bus *bus,
44 int devfn);
45extern struct device_node *pci_device_to_OF_node(struct pci_dev *dev);
46extern void pci_create_OF_bus_map(void);
47#endif
48
34/* 49/*
35 * OF address retreival & translation 50 * OF address retreival & translation
36 */ 51 */
diff --git a/arch/microblaze/include/asm/system.h b/arch/microblaze/include/asm/system.h
index 88fc92cdd8ce..48c4f0335e3f 100644
--- a/arch/microblaze/include/asm/system.h
+++ b/arch/microblaze/include/asm/system.h
@@ -88,6 +88,9 @@ void free_initmem(void);
88extern char *klimit; 88extern char *klimit;
89extern void ret_from_fork(void); 89extern void ret_from_fork(void);
90 90
91extern void *alloc_maybe_bootmem(size_t size, gfp_t mask);
92extern void *zalloc_maybe_bootmem(size_t size, gfp_t mask);
93
91#ifdef CONFIG_DEBUG_FS 94#ifdef CONFIG_DEBUG_FS
92extern struct dentry *of_debugfs_root; 95extern struct dentry *of_debugfs_root;
93#endif 96#endif
diff --git a/arch/microblaze/include/asm/tlbflush.h b/arch/microblaze/include/asm/tlbflush.h
index 10ec70cd8735..bcb8b41d55af 100644
--- a/arch/microblaze/include/asm/tlbflush.h
+++ b/arch/microblaze/include/asm/tlbflush.h
@@ -23,7 +23,7 @@
23extern void _tlbie(unsigned long address); 23extern void _tlbie(unsigned long address);
24extern void _tlbia(void); 24extern void _tlbia(void);
25 25
26#define __tlbia() _tlbia() 26#define __tlbia() { preempt_disable(); _tlbia(); preempt_enable(); }
27 27
28static inline void local_flush_tlb_all(void) 28static inline void local_flush_tlb_all(void)
29 { __tlbia(); } 29 { __tlbia(); }
diff --git a/arch/microblaze/kernel/Makefile b/arch/microblaze/kernel/Makefile
index b07594eccf9b..e51bc1520825 100644
--- a/arch/microblaze/kernel/Makefile
+++ b/arch/microblaze/kernel/Makefile
@@ -14,7 +14,7 @@ endif
14 14
15extra-y := head.o vmlinux.lds 15extra-y := head.o vmlinux.lds
16 16
17obj-y += exceptions.o \ 17obj-y += dma.o exceptions.o \
18 hw_exception_handler.o init_task.o intc.o irq.o of_device.o \ 18 hw_exception_handler.o init_task.o intc.o irq.o of_device.o \
19 of_platform.o process.o prom.o prom_parse.o ptrace.o \ 19 of_platform.o process.o prom.o prom_parse.o ptrace.o \
20 setup.o signal.o sys_microblaze.o timer.o traps.o reset.o 20 setup.o signal.o sys_microblaze.o timer.o traps.o reset.o
diff --git a/arch/microblaze/kernel/asm-offsets.c b/arch/microblaze/kernel/asm-offsets.c
index 7bc7b68f97db..0071260a672c 100644
--- a/arch/microblaze/kernel/asm-offsets.c
+++ b/arch/microblaze/kernel/asm-offsets.c
@@ -90,6 +90,7 @@ int main(int argc, char *argv[])
90 DEFINE(TI_FLAGS, offsetof(struct thread_info, flags)); 90 DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
91 DEFINE(TI_ADDR_LIMIT, offsetof(struct thread_info, addr_limit)); 91 DEFINE(TI_ADDR_LIMIT, offsetof(struct thread_info, addr_limit));
92 DEFINE(TI_CPU_CONTEXT, offsetof(struct thread_info, cpu_context)); 92 DEFINE(TI_CPU_CONTEXT, offsetof(struct thread_info, cpu_context));
93 DEFINE(TI_PREEMPT_COUNT, offsetof(struct thread_info, preempt_count));
93 BLANK(); 94 BLANK();
94 95
95 /* struct cpu_context */ 96 /* struct cpu_context */
diff --git a/arch/microblaze/kernel/cpu/cache.c b/arch/microblaze/kernel/cpu/cache.c
index 2a56bccce4e0..f04d8a86dead 100644
--- a/arch/microblaze/kernel/cpu/cache.c
+++ b/arch/microblaze/kernel/cpu/cache.c
@@ -15,25 +15,6 @@
15#include <asm/cpuinfo.h> 15#include <asm/cpuinfo.h>
16#include <asm/pvr.h> 16#include <asm/pvr.h>
17 17
18static inline void __invalidate_flush_icache(unsigned int addr)
19{
20 __asm__ __volatile__ ("wic %0, r0;" \
21 : : "r" (addr));
22}
23
24static inline void __flush_dcache(unsigned int addr)
25{
26 __asm__ __volatile__ ("wdc.flush %0, r0;" \
27 : : "r" (addr));
28}
29
30static inline void __invalidate_dcache(unsigned int baseaddr,
31 unsigned int offset)
32{
33 __asm__ __volatile__ ("wdc.clear %0, %1;" \
34 : : "r" (baseaddr), "r" (offset));
35}
36
37static inline void __enable_icache_msr(void) 18static inline void __enable_icache_msr(void)
38{ 19{
39 __asm__ __volatile__ (" msrset r0, %0; \ 20 __asm__ __volatile__ (" msrset r0, %0; \
@@ -148,9 +129,9 @@ do { \
148 int step = -line_length; \ 129 int step = -line_length; \
149 BUG_ON(step >= 0); \ 130 BUG_ON(step >= 0); \
150 \ 131 \
151 __asm__ __volatile__ (" 1: " #op " r0, %0; \ 132 __asm__ __volatile__ (" 1: " #op " r0, %0; \
152 bgtid %0, 1b; \ 133 bgtid %0, 1b; \
153 addk %0, %0, %1; \ 134 addk %0, %0, %1; \
154 " : : "r" (len), "r" (step) \ 135 " : : "r" (len), "r" (step) \
155 : "memory"); \ 136 : "memory"); \
156} while (0); 137} while (0);
@@ -162,9 +143,9 @@ do { \
162 int count = end - start; \ 143 int count = end - start; \
163 BUG_ON(count <= 0); \ 144 BUG_ON(count <= 0); \
164 \ 145 \
165 __asm__ __volatile__ (" 1: " #op " %0, %1; \ 146 __asm__ __volatile__ (" 1: " #op " %0, %1; \
166 bgtid %1, 1b; \ 147 bgtid %1, 1b; \
167 addk %1, %1, %2; \ 148 addk %1, %1, %2; \
168 " : : "r" (start), "r" (count), \ 149 " : : "r" (start), "r" (count), \
169 "r" (step) : "memory"); \ 150 "r" (step) : "memory"); \
170} while (0); 151} while (0);
@@ -175,7 +156,7 @@ do { \
175 int volatile temp; \ 156 int volatile temp; \
176 BUG_ON(end - start <= 0); \ 157 BUG_ON(end - start <= 0); \
177 \ 158 \
178 __asm__ __volatile__ (" 1: " #op " %1, r0; \ 159 __asm__ __volatile__ (" 1: " #op " %1, r0; \
179 cmpu %0, %1, %2; \ 160 cmpu %0, %1, %2; \
180 bgtid %0, 1b; \ 161 bgtid %0, 1b; \
181 addk %1, %1, %3; \ 162 addk %1, %1, %3; \
@@ -183,10 +164,14 @@ do { \
183 "r" (line_length) : "memory"); \ 164 "r" (line_length) : "memory"); \
184} while (0); 165} while (0);
185 166
167#define ASM_LOOP
168
186static void __flush_icache_range_msr_irq(unsigned long start, unsigned long end) 169static void __flush_icache_range_msr_irq(unsigned long start, unsigned long end)
187{ 170{
188 unsigned long flags; 171 unsigned long flags;
189 172#ifndef ASM_LOOP
173 int i;
174#endif
190 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, 175 pr_debug("%s: start 0x%x, end 0x%x\n", __func__,
191 (unsigned int)start, (unsigned int) end); 176 (unsigned int)start, (unsigned int) end);
192 177
@@ -196,8 +181,13 @@ static void __flush_icache_range_msr_irq(unsigned long start, unsigned long end)
196 local_irq_save(flags); 181 local_irq_save(flags);
197 __disable_icache_msr(); 182 __disable_icache_msr();
198 183
184#ifdef ASM_LOOP
199 CACHE_RANGE_LOOP_1(start, end, cpuinfo.icache_line_length, wic); 185 CACHE_RANGE_LOOP_1(start, end, cpuinfo.icache_line_length, wic);
200 186#else
187 for (i = start; i < end; i += cpuinfo.icache_line_length)
188 __asm__ __volatile__ ("wic %0, r0;" \
189 : : "r" (i));
190#endif
201 __enable_icache_msr(); 191 __enable_icache_msr();
202 local_irq_restore(flags); 192 local_irq_restore(flags);
203} 193}
@@ -206,7 +196,9 @@ static void __flush_icache_range_nomsr_irq(unsigned long start,
206 unsigned long end) 196 unsigned long end)
207{ 197{
208 unsigned long flags; 198 unsigned long flags;
209 199#ifndef ASM_LOOP
200 int i;
201#endif
210 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, 202 pr_debug("%s: start 0x%x, end 0x%x\n", __func__,
211 (unsigned int)start, (unsigned int) end); 203 (unsigned int)start, (unsigned int) end);
212 204
@@ -216,7 +208,13 @@ static void __flush_icache_range_nomsr_irq(unsigned long start,
216 local_irq_save(flags); 208 local_irq_save(flags);
217 __disable_icache_nomsr(); 209 __disable_icache_nomsr();
218 210
211#ifdef ASM_LOOP
219 CACHE_RANGE_LOOP_1(start, end, cpuinfo.icache_line_length, wic); 212 CACHE_RANGE_LOOP_1(start, end, cpuinfo.icache_line_length, wic);
213#else
214 for (i = start; i < end; i += cpuinfo.icache_line_length)
215 __asm__ __volatile__ ("wic %0, r0;" \
216 : : "r" (i));
217#endif
220 218
221 __enable_icache_nomsr(); 219 __enable_icache_nomsr();
222 local_irq_restore(flags); 220 local_irq_restore(flags);
@@ -225,25 +223,41 @@ static void __flush_icache_range_nomsr_irq(unsigned long start,
225static void __flush_icache_range_noirq(unsigned long start, 223static void __flush_icache_range_noirq(unsigned long start,
226 unsigned long end) 224 unsigned long end)
227{ 225{
226#ifndef ASM_LOOP
227 int i;
228#endif
228 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, 229 pr_debug("%s: start 0x%x, end 0x%x\n", __func__,
229 (unsigned int)start, (unsigned int) end); 230 (unsigned int)start, (unsigned int) end);
230 231
231 CACHE_LOOP_LIMITS(start, end, 232 CACHE_LOOP_LIMITS(start, end,
232 cpuinfo.icache_line_length, cpuinfo.icache_size); 233 cpuinfo.icache_line_length, cpuinfo.icache_size);
234#ifdef ASM_LOOP
233 CACHE_RANGE_LOOP_1(start, end, cpuinfo.icache_line_length, wic); 235 CACHE_RANGE_LOOP_1(start, end, cpuinfo.icache_line_length, wic);
236#else
237 for (i = start; i < end; i += cpuinfo.icache_line_length)
238 __asm__ __volatile__ ("wic %0, r0;" \
239 : : "r" (i));
240#endif
234} 241}
235 242
236static void __flush_icache_all_msr_irq(void) 243static void __flush_icache_all_msr_irq(void)
237{ 244{
238 unsigned long flags; 245 unsigned long flags;
239 246#ifndef ASM_LOOP
247 int i;
248#endif
240 pr_debug("%s\n", __func__); 249 pr_debug("%s\n", __func__);
241 250
242 local_irq_save(flags); 251 local_irq_save(flags);
243 __disable_icache_msr(); 252 __disable_icache_msr();
244 253#ifdef ASM_LOOP
245 CACHE_ALL_LOOP(cpuinfo.icache_size, cpuinfo.icache_line_length, wic); 254 CACHE_ALL_LOOP(cpuinfo.icache_size, cpuinfo.icache_line_length, wic);
246 255#else
256 for (i = 0; i < cpuinfo.icache_size;
257 i += cpuinfo.icache_line_length)
258 __asm__ __volatile__ ("wic %0, r0;" \
259 : : "r" (i));
260#endif
247 __enable_icache_msr(); 261 __enable_icache_msr();
248 local_irq_restore(flags); 262 local_irq_restore(flags);
249} 263}
@@ -251,35 +265,59 @@ static void __flush_icache_all_msr_irq(void)
251static void __flush_icache_all_nomsr_irq(void) 265static void __flush_icache_all_nomsr_irq(void)
252{ 266{
253 unsigned long flags; 267 unsigned long flags;
254 268#ifndef ASM_LOOP
269 int i;
270#endif
255 pr_debug("%s\n", __func__); 271 pr_debug("%s\n", __func__);
256 272
257 local_irq_save(flags); 273 local_irq_save(flags);
258 __disable_icache_nomsr(); 274 __disable_icache_nomsr();
259 275#ifdef ASM_LOOP
260 CACHE_ALL_LOOP(cpuinfo.icache_size, cpuinfo.icache_line_length, wic); 276 CACHE_ALL_LOOP(cpuinfo.icache_size, cpuinfo.icache_line_length, wic);
261 277#else
278 for (i = 0; i < cpuinfo.icache_size;
279 i += cpuinfo.icache_line_length)
280 __asm__ __volatile__ ("wic %0, r0;" \
281 : : "r" (i));
282#endif
262 __enable_icache_nomsr(); 283 __enable_icache_nomsr();
263 local_irq_restore(flags); 284 local_irq_restore(flags);
264} 285}
265 286
266static void __flush_icache_all_noirq(void) 287static void __flush_icache_all_noirq(void)
267{ 288{
289#ifndef ASM_LOOP
290 int i;
291#endif
268 pr_debug("%s\n", __func__); 292 pr_debug("%s\n", __func__);
293#ifdef ASM_LOOP
269 CACHE_ALL_LOOP(cpuinfo.icache_size, cpuinfo.icache_line_length, wic); 294 CACHE_ALL_LOOP(cpuinfo.icache_size, cpuinfo.icache_line_length, wic);
295#else
296 for (i = 0; i < cpuinfo.icache_size;
297 i += cpuinfo.icache_line_length)
298 __asm__ __volatile__ ("wic %0, r0;" \
299 : : "r" (i));
300#endif
270} 301}
271 302
272static void __invalidate_dcache_all_msr_irq(void) 303static void __invalidate_dcache_all_msr_irq(void)
273{ 304{
274 unsigned long flags; 305 unsigned long flags;
275 306#ifndef ASM_LOOP
307 int i;
308#endif
276 pr_debug("%s\n", __func__); 309 pr_debug("%s\n", __func__);
277 310
278 local_irq_save(flags); 311 local_irq_save(flags);
279 __disable_dcache_msr(); 312 __disable_dcache_msr();
280 313#ifdef ASM_LOOP
281 CACHE_ALL_LOOP(cpuinfo.dcache_size, cpuinfo.dcache_line_length, wdc); 314 CACHE_ALL_LOOP(cpuinfo.dcache_size, cpuinfo.dcache_line_length, wdc);
282 315#else
316 for (i = 0; i < cpuinfo.dcache_size;
317 i += cpuinfo.dcache_line_length)
318 __asm__ __volatile__ ("wdc %0, r0;" \
319 : : "r" (i));
320#endif
283 __enable_dcache_msr(); 321 __enable_dcache_msr();
284 local_irq_restore(flags); 322 local_irq_restore(flags);
285} 323}
@@ -287,60 +325,107 @@ static void __invalidate_dcache_all_msr_irq(void)
287static void __invalidate_dcache_all_nomsr_irq(void) 325static void __invalidate_dcache_all_nomsr_irq(void)
288{ 326{
289 unsigned long flags; 327 unsigned long flags;
290 328#ifndef ASM_LOOP
329 int i;
330#endif
291 pr_debug("%s\n", __func__); 331 pr_debug("%s\n", __func__);
292 332
293 local_irq_save(flags); 333 local_irq_save(flags);
294 __disable_dcache_nomsr(); 334 __disable_dcache_nomsr();
295 335#ifdef ASM_LOOP
296 CACHE_ALL_LOOP(cpuinfo.dcache_size, cpuinfo.dcache_line_length, wdc); 336 CACHE_ALL_LOOP(cpuinfo.dcache_size, cpuinfo.dcache_line_length, wdc);
297 337#else
338 for (i = 0; i < cpuinfo.dcache_size;
339 i += cpuinfo.dcache_line_length)
340 __asm__ __volatile__ ("wdc %0, r0;" \
341 : : "r" (i));
342#endif
298 __enable_dcache_nomsr(); 343 __enable_dcache_nomsr();
299 local_irq_restore(flags); 344 local_irq_restore(flags);
300} 345}
301 346
302static void __invalidate_dcache_all_noirq_wt(void) 347static void __invalidate_dcache_all_noirq_wt(void)
303{ 348{
349#ifndef ASM_LOOP
350 int i;
351#endif
304 pr_debug("%s\n", __func__); 352 pr_debug("%s\n", __func__);
353#ifdef ASM_LOOP
305 CACHE_ALL_LOOP(cpuinfo.dcache_size, cpuinfo.dcache_line_length, wdc) 354 CACHE_ALL_LOOP(cpuinfo.dcache_size, cpuinfo.dcache_line_length, wdc)
355#else
356 for (i = 0; i < cpuinfo.dcache_size;
357 i += cpuinfo.dcache_line_length)
358 __asm__ __volatile__ ("wdc %0, r0;" \
359 : : "r" (i));
360#endif
306} 361}
307 362
308/* FIXME this is weird - should be only wdc but not work 363/* FIXME this is weird - should be only wdc but not work
309 * MS: I am getting bus errors and other weird things */ 364 * MS: I am getting bus errors and other weird things */
310static void __invalidate_dcache_all_wb(void) 365static void __invalidate_dcache_all_wb(void)
311{ 366{
367#ifndef ASM_LOOP
368 int i;
369#endif
312 pr_debug("%s\n", __func__); 370 pr_debug("%s\n", __func__);
371#ifdef ASM_LOOP
313 CACHE_ALL_LOOP2(cpuinfo.dcache_size, cpuinfo.dcache_line_length, 372 CACHE_ALL_LOOP2(cpuinfo.dcache_size, cpuinfo.dcache_line_length,
314 wdc.clear) 373 wdc.clear)
374#else
375 for (i = 0; i < cpuinfo.dcache_size;
376 i += cpuinfo.dcache_line_length)
377 __asm__ __volatile__ ("wdc.clear %0, r0;" \
378 : : "r" (i));
379#endif
315} 380}
316 381
317static void __invalidate_dcache_range_wb(unsigned long start, 382static void __invalidate_dcache_range_wb(unsigned long start,
318 unsigned long end) 383 unsigned long end)
319{ 384{
385#ifndef ASM_LOOP
386 int i;
387#endif
320 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, 388 pr_debug("%s: start 0x%x, end 0x%x\n", __func__,
321 (unsigned int)start, (unsigned int) end); 389 (unsigned int)start, (unsigned int) end);
322 390
323 CACHE_LOOP_LIMITS(start, end, 391 CACHE_LOOP_LIMITS(start, end,
324 cpuinfo.dcache_line_length, cpuinfo.dcache_size); 392 cpuinfo.dcache_line_length, cpuinfo.dcache_size);
393#ifdef ASM_LOOP
325 CACHE_RANGE_LOOP_2(start, end, cpuinfo.dcache_line_length, wdc.clear); 394 CACHE_RANGE_LOOP_2(start, end, cpuinfo.dcache_line_length, wdc.clear);
395#else
396 for (i = start; i < end; i += cpuinfo.icache_line_length)
397 __asm__ __volatile__ ("wdc.clear %0, r0;" \
398 : : "r" (i));
399#endif
326} 400}
327 401
328static void __invalidate_dcache_range_nomsr_wt(unsigned long start, 402static void __invalidate_dcache_range_nomsr_wt(unsigned long start,
329 unsigned long end) 403 unsigned long end)
330{ 404{
405#ifndef ASM_LOOP
406 int i;
407#endif
331 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, 408 pr_debug("%s: start 0x%x, end 0x%x\n", __func__,
332 (unsigned int)start, (unsigned int) end); 409 (unsigned int)start, (unsigned int) end);
333 CACHE_LOOP_LIMITS(start, end, 410 CACHE_LOOP_LIMITS(start, end,
334 cpuinfo.dcache_line_length, cpuinfo.dcache_size); 411 cpuinfo.dcache_line_length, cpuinfo.dcache_size);
335 412
413#ifdef ASM_LOOP
336 CACHE_RANGE_LOOP_1(start, end, cpuinfo.dcache_line_length, wdc); 414 CACHE_RANGE_LOOP_1(start, end, cpuinfo.dcache_line_length, wdc);
415#else
416 for (i = start; i < end; i += cpuinfo.icache_line_length)
417 __asm__ __volatile__ ("wdc %0, r0;" \
418 : : "r" (i));
419#endif
337} 420}
338 421
339static void __invalidate_dcache_range_msr_irq_wt(unsigned long start, 422static void __invalidate_dcache_range_msr_irq_wt(unsigned long start,
340 unsigned long end) 423 unsigned long end)
341{ 424{
342 unsigned long flags; 425 unsigned long flags;
343 426#ifndef ASM_LOOP
427 int i;
428#endif
344 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, 429 pr_debug("%s: start 0x%x, end 0x%x\n", __func__,
345 (unsigned int)start, (unsigned int) end); 430 (unsigned int)start, (unsigned int) end);
346 CACHE_LOOP_LIMITS(start, end, 431 CACHE_LOOP_LIMITS(start, end,
@@ -349,7 +434,13 @@ static void __invalidate_dcache_range_msr_irq_wt(unsigned long start,
349 local_irq_save(flags); 434 local_irq_save(flags);
350 __disable_dcache_msr(); 435 __disable_dcache_msr();
351 436
437#ifdef ASM_LOOP
352 CACHE_RANGE_LOOP_1(start, end, cpuinfo.dcache_line_length, wdc); 438 CACHE_RANGE_LOOP_1(start, end, cpuinfo.dcache_line_length, wdc);
439#else
440 for (i = start; i < end; i += cpuinfo.icache_line_length)
441 __asm__ __volatile__ ("wdc %0, r0;" \
442 : : "r" (i));
443#endif
353 444
354 __enable_dcache_msr(); 445 __enable_dcache_msr();
355 local_irq_restore(flags); 446 local_irq_restore(flags);
@@ -359,7 +450,9 @@ static void __invalidate_dcache_range_nomsr_irq(unsigned long start,
359 unsigned long end) 450 unsigned long end)
360{ 451{
361 unsigned long flags; 452 unsigned long flags;
362 453#ifndef ASM_LOOP
454 int i;
455#endif
363 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, 456 pr_debug("%s: start 0x%x, end 0x%x\n", __func__,
364 (unsigned int)start, (unsigned int) end); 457 (unsigned int)start, (unsigned int) end);
365 458
@@ -369,7 +462,13 @@ static void __invalidate_dcache_range_nomsr_irq(unsigned long start,
369 local_irq_save(flags); 462 local_irq_save(flags);
370 __disable_dcache_nomsr(); 463 __disable_dcache_nomsr();
371 464
465#ifdef ASM_LOOP
372 CACHE_RANGE_LOOP_1(start, end, cpuinfo.dcache_line_length, wdc); 466 CACHE_RANGE_LOOP_1(start, end, cpuinfo.dcache_line_length, wdc);
467#else
468 for (i = start; i < end; i += cpuinfo.icache_line_length)
469 __asm__ __volatile__ ("wdc %0, r0;" \
470 : : "r" (i));
471#endif
373 472
374 __enable_dcache_nomsr(); 473 __enable_dcache_nomsr();
375 local_irq_restore(flags); 474 local_irq_restore(flags);
@@ -377,19 +476,38 @@ static void __invalidate_dcache_range_nomsr_irq(unsigned long start,
377 476
378static void __flush_dcache_all_wb(void) 477static void __flush_dcache_all_wb(void)
379{ 478{
479#ifndef ASM_LOOP
480 int i;
481#endif
380 pr_debug("%s\n", __func__); 482 pr_debug("%s\n", __func__);
483#ifdef ASM_LOOP
381 CACHE_ALL_LOOP(cpuinfo.dcache_size, cpuinfo.dcache_line_length, 484 CACHE_ALL_LOOP(cpuinfo.dcache_size, cpuinfo.dcache_line_length,
382 wdc.flush); 485 wdc.flush);
486#else
487 for (i = 0; i < cpuinfo.dcache_size;
488 i += cpuinfo.dcache_line_length)
489 __asm__ __volatile__ ("wdc.flush %0, r0;" \
490 : : "r" (i));
491#endif
383} 492}
384 493
385static void __flush_dcache_range_wb(unsigned long start, unsigned long end) 494static void __flush_dcache_range_wb(unsigned long start, unsigned long end)
386{ 495{
496#ifndef ASM_LOOP
497 int i;
498#endif
387 pr_debug("%s: start 0x%x, end 0x%x\n", __func__, 499 pr_debug("%s: start 0x%x, end 0x%x\n", __func__,
388 (unsigned int)start, (unsigned int) end); 500 (unsigned int)start, (unsigned int) end);
389 501
390 CACHE_LOOP_LIMITS(start, end, 502 CACHE_LOOP_LIMITS(start, end,
391 cpuinfo.dcache_line_length, cpuinfo.dcache_size); 503 cpuinfo.dcache_line_length, cpuinfo.dcache_size);
504#ifdef ASM_LOOP
392 CACHE_RANGE_LOOP_2(start, end, cpuinfo.dcache_line_length, wdc.flush); 505 CACHE_RANGE_LOOP_2(start, end, cpuinfo.dcache_line_length, wdc.flush);
506#else
507 for (i = start; i < end; i += cpuinfo.icache_line_length)
508 __asm__ __volatile__ ("wdc.flush %0, r0;" \
509 : : "r" (i));
510#endif
393} 511}
394 512
395/* struct for wb caches and for wt caches */ 513/* struct for wb caches and for wt caches */
@@ -493,7 +611,7 @@ const struct scache wt_nomsr_noirq = {
493#define CPUVER_7_20_A 0x0c 611#define CPUVER_7_20_A 0x0c
494#define CPUVER_7_20_D 0x0f 612#define CPUVER_7_20_D 0x0f
495 613
496#define INFO(s) printk(KERN_INFO "cache: " s " \n"); 614#define INFO(s) printk(KERN_INFO "cache: " s "\n");
497 615
498void microblaze_cache_init(void) 616void microblaze_cache_init(void)
499{ 617{
@@ -532,4 +650,9 @@ void microblaze_cache_init(void)
532 } 650 }
533 } 651 }
534 } 652 }
653 invalidate_dcache();
654 enable_dcache();
655
656 invalidate_icache();
657 enable_icache();
535} 658}
diff --git a/arch/microblaze/kernel/dma.c b/arch/microblaze/kernel/dma.c
new file mode 100644
index 000000000000..b1084974fccd
--- /dev/null
+++ b/arch/microblaze/kernel/dma.c
@@ -0,0 +1,156 @@
1/*
2 * Copyright (C) 2009-2010 PetaLogix
3 * Copyright (C) 2006 Benjamin Herrenschmidt, IBM Corporation
4 *
5 * Provide default implementations of the DMA mapping callbacks for
6 * directly mapped busses.
7 */
8
9#include <linux/device.h>
10#include <linux/dma-mapping.h>
11#include <linux/dma-debug.h>
12#include <asm/bug.h>
13#include <asm/cacheflush.h>
14
15/*
16 * Generic direct DMA implementation
17 *
18 * This implementation supports a per-device offset that can be applied if
19 * the address at which memory is visible to devices is not 0. Platform code
20 * can set archdata.dma_data to an unsigned long holding the offset. By
21 * default the offset is PCI_DRAM_OFFSET.
22 */
23static inline void __dma_sync_page(unsigned long paddr, unsigned long offset,
24 size_t size, enum dma_data_direction direction)
25{
26 switch (direction) {
27 case DMA_TO_DEVICE:
28 flush_dcache_range(paddr + offset, paddr + offset + size);
29 break;
30 case DMA_FROM_DEVICE:
31 invalidate_dcache_range(paddr + offset, paddr + offset + size);
32 break;
33 default:
34 BUG();
35 }
36}
37
38static unsigned long get_dma_direct_offset(struct device *dev)
39{
40 if (dev)
41 return (unsigned long)dev->archdata.dma_data;
42
43 return PCI_DRAM_OFFSET; /* FIXME Not sure if is correct */
44}
45
46#define NOT_COHERENT_CACHE
47
48static void *dma_direct_alloc_coherent(struct device *dev, size_t size,
49 dma_addr_t *dma_handle, gfp_t flag)
50{
51#ifdef NOT_COHERENT_CACHE
52 return consistent_alloc(flag, size, dma_handle);
53#else
54 void *ret;
55 struct page *page;
56 int node = dev_to_node(dev);
57
58 /* ignore region specifiers */
59 flag &= ~(__GFP_HIGHMEM);
60
61 page = alloc_pages_node(node, flag, get_order(size));
62 if (page == NULL)
63 return NULL;
64 ret = page_address(page);
65 memset(ret, 0, size);
66 *dma_handle = virt_to_phys(ret) + get_dma_direct_offset(dev);
67
68 return ret;
69#endif
70}
71
72static void dma_direct_free_coherent(struct device *dev, size_t size,
73 void *vaddr, dma_addr_t dma_handle)
74{
75#ifdef NOT_COHERENT_CACHE
76 consistent_free(vaddr);
77#else
78 free_pages((unsigned long)vaddr, get_order(size));
79#endif
80}
81
82static int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl,
83 int nents, enum dma_data_direction direction,
84 struct dma_attrs *attrs)
85{
86 struct scatterlist *sg;
87 int i;
88
89 /* FIXME this part of code is untested */
90 for_each_sg(sgl, sg, nents, i) {
91 sg->dma_address = sg_phys(sg) + get_dma_direct_offset(dev);
92 sg->dma_length = sg->length;
93 __dma_sync_page(page_to_phys(sg_page(sg)), sg->offset,
94 sg->length, direction);
95 }
96
97 return nents;
98}
99
100static void dma_direct_unmap_sg(struct device *dev, struct scatterlist *sg,
101 int nents, enum dma_data_direction direction,
102 struct dma_attrs *attrs)
103{
104}
105
106static int dma_direct_dma_supported(struct device *dev, u64 mask)
107{
108 return 1;
109}
110
111static inline dma_addr_t dma_direct_map_page(struct device *dev,
112 struct page *page,
113 unsigned long offset,
114 size_t size,
115 enum dma_data_direction direction,
116 struct dma_attrs *attrs)
117{
118 __dma_sync_page(page_to_phys(page), offset, size, direction);
119 return page_to_phys(page) + offset + get_dma_direct_offset(dev);
120}
121
122static inline void dma_direct_unmap_page(struct device *dev,
123 dma_addr_t dma_address,
124 size_t size,
125 enum dma_data_direction direction,
126 struct dma_attrs *attrs)
127{
128/* There is not necessary to do cache cleanup
129 *
130 * phys_to_virt is here because in __dma_sync_page is __virt_to_phys and
131 * dma_address is physical address
132 */
133 __dma_sync_page(dma_address, 0 , size, direction);
134}
135
136struct dma_map_ops dma_direct_ops = {
137 .alloc_coherent = dma_direct_alloc_coherent,
138 .free_coherent = dma_direct_free_coherent,
139 .map_sg = dma_direct_map_sg,
140 .unmap_sg = dma_direct_unmap_sg,
141 .dma_supported = dma_direct_dma_supported,
142 .map_page = dma_direct_map_page,
143 .unmap_page = dma_direct_unmap_page,
144};
145EXPORT_SYMBOL(dma_direct_ops);
146
147/* Number of entries preallocated for DMA-API debugging */
148#define PREALLOC_DMA_DEBUG_ENTRIES (1 << 16)
149
150static int __init dma_init(void)
151{
152 dma_debug_init(PREALLOC_DMA_DEBUG_ENTRIES);
153
154 return 0;
155}
156fs_initcall(dma_init);
diff --git a/arch/microblaze/kernel/entry.S b/arch/microblaze/kernel/entry.S
index 3bad4ff49471..c0ede25c5b99 100644
--- a/arch/microblaze/kernel/entry.S
+++ b/arch/microblaze/kernel/entry.S
@@ -305,7 +305,7 @@ C_ENTRY(_user_exception):
305 swi r11, r1, PTO+PT_R1; /* Store user SP. */ 305 swi r11, r1, PTO+PT_R1; /* Store user SP. */
306 addi r11, r0, 1; 306 addi r11, r0, 1;
307 swi r11, r0, TOPHYS(PER_CPU(KM)); /* Now we're in kernel-mode. */ 307 swi r11, r0, TOPHYS(PER_CPU(KM)); /* Now we're in kernel-mode. */
3082: lwi r31, r0, TOPHYS(PER_CPU(CURRENT_SAVE)); /* get saved current */ 3082: lwi CURRENT_TASK, r0, TOPHYS(PER_CPU(CURRENT_SAVE));
309 /* Save away the syscall number. */ 309 /* Save away the syscall number. */
310 swi r12, r1, PTO+PT_R0; 310 swi r12, r1, PTO+PT_R0;
311 tovirt(r1,r1) 311 tovirt(r1,r1)
@@ -322,8 +322,7 @@ C_ENTRY(_user_exception):
322 rtid r11, 0 322 rtid r11, 0
323 nop 323 nop
3243: 3243:
325 add r11, r0, CURRENT_TASK /* Get current task ptr into r11 */ 325 lwi r11, CURRENT_TASK, TS_THREAD_INFO /* get thread info */
326 lwi r11, r11, TS_THREAD_INFO /* get thread info */
327 lwi r11, r11, TI_FLAGS /* get flags in thread info */ 326 lwi r11, r11, TI_FLAGS /* get flags in thread info */
328 andi r11, r11, _TIF_WORK_SYSCALL_MASK 327 andi r11, r11, _TIF_WORK_SYSCALL_MASK
329 beqi r11, 4f 328 beqi r11, 4f
@@ -382,60 +381,50 @@ C_ENTRY(ret_from_trap):
382/* See if returning to kernel mode, if so, skip resched &c. */ 381/* See if returning to kernel mode, if so, skip resched &c. */
383 bnei r11, 2f; 382 bnei r11, 2f;
384 383
384 swi r3, r1, PTO + PT_R3
385 swi r4, r1, PTO + PT_R4
386
385 /* We're returning to user mode, so check for various conditions that 387 /* We're returning to user mode, so check for various conditions that
386 * trigger rescheduling. */ 388 * trigger rescheduling. */
387 # FIXME: Restructure all these flag checks. 389 /* FIXME: Restructure all these flag checks. */
388 add r11, r0, CURRENT_TASK; /* Get current task ptr into r11 */ 390 lwi r11, CURRENT_TASK, TS_THREAD_INFO; /* get thread info */
389 lwi r11, r11, TS_THREAD_INFO; /* get thread info */
390 lwi r11, r11, TI_FLAGS; /* get flags in thread info */ 391 lwi r11, r11, TI_FLAGS; /* get flags in thread info */
391 andi r11, r11, _TIF_WORK_SYSCALL_MASK 392 andi r11, r11, _TIF_WORK_SYSCALL_MASK
392 beqi r11, 1f 393 beqi r11, 1f
393 394
394 swi r3, r1, PTO + PT_R3
395 swi r4, r1, PTO + PT_R4
396 brlid r15, do_syscall_trace_leave 395 brlid r15, do_syscall_trace_leave
397 addik r5, r1, PTO + PT_R0 396 addik r5, r1, PTO + PT_R0
398 lwi r3, r1, PTO + PT_R3
399 lwi r4, r1, PTO + PT_R4
4001: 3971:
401
402 /* We're returning to user mode, so check for various conditions that 398 /* We're returning to user mode, so check for various conditions that
403 * trigger rescheduling. */ 399 * trigger rescheduling. */
404 /* Get current task ptr into r11 */ 400 /* get thread info from current task */
405 add r11, r0, CURRENT_TASK; /* Get current task ptr into r11 */ 401 lwi r11, CURRENT_TASK, TS_THREAD_INFO;
406 lwi r11, r11, TS_THREAD_INFO; /* get thread info */
407 lwi r11, r11, TI_FLAGS; /* get flags in thread info */ 402 lwi r11, r11, TI_FLAGS; /* get flags in thread info */
408 andi r11, r11, _TIF_NEED_RESCHED; 403 andi r11, r11, _TIF_NEED_RESCHED;
409 beqi r11, 5f; 404 beqi r11, 5f;
410 405
411 swi r3, r1, PTO + PT_R3; /* store syscall result */
412 swi r4, r1, PTO + PT_R4;
413 bralid r15, schedule; /* Call scheduler */ 406 bralid r15, schedule; /* Call scheduler */
414 nop; /* delay slot */ 407 nop; /* delay slot */
415 lwi r3, r1, PTO + PT_R3; /* restore syscall result */
416 lwi r4, r1, PTO + PT_R4;
417 408
418 /* Maybe handle a signal */ 409 /* Maybe handle a signal */
4195: add r11, r0, CURRENT_TASK; /* Get current task ptr into r11 */ 4105: /* get thread info from current task*/
420 lwi r11, r11, TS_THREAD_INFO; /* get thread info */ 411 lwi r11, CURRENT_TASK, TS_THREAD_INFO;
421 lwi r11, r11, TI_FLAGS; /* get flags in thread info */ 412 lwi r11, r11, TI_FLAGS; /* get flags in thread info */
422 andi r11, r11, _TIF_SIGPENDING; 413 andi r11, r11, _TIF_SIGPENDING;
423 beqi r11, 1f; /* Signals to handle, handle them */ 414 beqi r11, 1f; /* Signals to handle, handle them */
424 415
425 swi r3, r1, PTO + PT_R3; /* store syscall result */
426 swi r4, r1, PTO + PT_R4;
427 la r5, r1, PTO; /* Arg 1: struct pt_regs *regs */ 416 la r5, r1, PTO; /* Arg 1: struct pt_regs *regs */
428 add r6, r0, r0; /* Arg 2: sigset_t *oldset */
429 addi r7, r0, 1; /* Arg 3: int in_syscall */ 417 addi r7, r0, 1; /* Arg 3: int in_syscall */
430 bralid r15, do_signal; /* Handle any signals */ 418 bralid r15, do_signal; /* Handle any signals */
431 nop; 419 add r6, r0, r0; /* Arg 2: sigset_t *oldset */
420
421/* Finally, return to user state. */
4221:
432 lwi r3, r1, PTO + PT_R3; /* restore syscall result */ 423 lwi r3, r1, PTO + PT_R3; /* restore syscall result */
433 lwi r4, r1, PTO + PT_R4; 424 lwi r4, r1, PTO + PT_R4;
434 425
435/* Finally, return to user state. */ 426 swi r0, r0, PER_CPU(KM); /* Now officially in user state. */
4361: swi r0, r0, PER_CPU(KM); /* Now officially in user state. */ 427 swi CURRENT_TASK, r0, PER_CPU(CURRENT_SAVE); /* save current */
437 add r11, r0, CURRENT_TASK; /* Get current task ptr into r11 */
438 swi r11, r0, PER_CPU(CURRENT_SAVE); /* save current */
439 VM_OFF; 428 VM_OFF;
440 tophys(r1,r1); 429 tophys(r1,r1);
441 RESTORE_REGS; 430 RESTORE_REGS;
@@ -565,7 +554,7 @@ C_ENTRY(sys_rt_sigreturn_wrapper):
565 swi r11, r1, PTO+PT_R1; /* Store user SP. */ \ 554 swi r11, r1, PTO+PT_R1; /* Store user SP. */ \
566 addi r11, r0, 1; \ 555 addi r11, r0, 1; \
567 swi r11, r0, TOPHYS(PER_CPU(KM)); /* Now we're in kernel-mode.*/\ 556 swi r11, r0, TOPHYS(PER_CPU(KM)); /* Now we're in kernel-mode.*/\
5682: lwi r31, r0, TOPHYS(PER_CPU(CURRENT_SAVE)); /* get saved current */\ 5572: lwi CURRENT_TASK, r0, TOPHYS(PER_CPU(CURRENT_SAVE)); \
569 /* Save away the syscall number. */ \ 558 /* Save away the syscall number. */ \
570 swi r0, r1, PTO+PT_R0; \ 559 swi r0, r1, PTO+PT_R0; \
571 tovirt(r1,r1) 560 tovirt(r1,r1)
@@ -673,9 +662,7 @@ C_ENTRY(ret_from_exc):
673 662
674 /* We're returning to user mode, so check for various conditions that 663 /* We're returning to user mode, so check for various conditions that
675 trigger rescheduling. */ 664 trigger rescheduling. */
676 /* Get current task ptr into r11 */ 665 lwi r11, CURRENT_TASK, TS_THREAD_INFO; /* get thread info */
677 add r11, r0, CURRENT_TASK; /* Get current task ptr into r11 */
678 lwi r11, r11, TS_THREAD_INFO; /* get thread info */
679 lwi r11, r11, TI_FLAGS; /* get flags in thread info */ 666 lwi r11, r11, TI_FLAGS; /* get flags in thread info */
680 andi r11, r11, _TIF_NEED_RESCHED; 667 andi r11, r11, _TIF_NEED_RESCHED;
681 beqi r11, 5f; 668 beqi r11, 5f;
@@ -685,8 +672,7 @@ C_ENTRY(ret_from_exc):
685 nop; /* delay slot */ 672 nop; /* delay slot */
686 673
687 /* Maybe handle a signal */ 674 /* Maybe handle a signal */
6885: add r11, r0, CURRENT_TASK; /* Get current task ptr into r11 */ 6755: lwi r11, CURRENT_TASK, TS_THREAD_INFO; /* get thread info */
689 lwi r11, r11, TS_THREAD_INFO; /* get thread info */
690 lwi r11, r11, TI_FLAGS; /* get flags in thread info */ 676 lwi r11, r11, TI_FLAGS; /* get flags in thread info */
691 andi r11, r11, _TIF_SIGPENDING; 677 andi r11, r11, _TIF_SIGPENDING;
692 beqi r11, 1f; /* Signals to handle, handle them */ 678 beqi r11, 1f; /* Signals to handle, handle them */
@@ -705,15 +691,13 @@ C_ENTRY(ret_from_exc):
705 * store return registers separately because this macros is use 691 * store return registers separately because this macros is use
706 * for others exceptions */ 692 * for others exceptions */
707 la r5, r1, PTO; /* Arg 1: struct pt_regs *regs */ 693 la r5, r1, PTO; /* Arg 1: struct pt_regs *regs */
708 add r6, r0, r0; /* Arg 2: sigset_t *oldset */
709 addi r7, r0, 0; /* Arg 3: int in_syscall */ 694 addi r7, r0, 0; /* Arg 3: int in_syscall */
710 bralid r15, do_signal; /* Handle any signals */ 695 bralid r15, do_signal; /* Handle any signals */
711 nop; 696 add r6, r0, r0; /* Arg 2: sigset_t *oldset */
712 697
713/* Finally, return to user state. */ 698/* Finally, return to user state. */
7141: swi r0, r0, PER_CPU(KM); /* Now officially in user state. */ 6991: swi r0, r0, PER_CPU(KM); /* Now officially in user state. */
715 add r11, r0, CURRENT_TASK; /* Get current task ptr into r11 */ 700 swi CURRENT_TASK, r0, PER_CPU(CURRENT_SAVE); /* save current */
716 swi r11, r0, PER_CPU(CURRENT_SAVE); /* save current */
717 VM_OFF; 701 VM_OFF;
718 tophys(r1,r1); 702 tophys(r1,r1);
719 703
@@ -802,7 +786,7 @@ C_ENTRY(_interrupt):
802 swi r11, r0, TOPHYS(PER_CPU(KM)); 786 swi r11, r0, TOPHYS(PER_CPU(KM));
803 787
8042: 7882:
805 lwi r31, r0, TOPHYS(PER_CPU(CURRENT_SAVE)); 789 lwi CURRENT_TASK, r0, TOPHYS(PER_CPU(CURRENT_SAVE));
806 swi r0, r1, PTO + PT_R0; 790 swi r0, r1, PTO + PT_R0;
807 tovirt(r1,r1) 791 tovirt(r1,r1)
808 la r5, r1, PTO; 792 la r5, r1, PTO;
@@ -817,8 +801,7 @@ ret_from_irq:
817 lwi r11, r1, PTO + PT_MODE; 801 lwi r11, r1, PTO + PT_MODE;
818 bnei r11, 2f; 802 bnei r11, 2f;
819 803
820 add r11, r0, CURRENT_TASK; 804 lwi r11, CURRENT_TASK, TS_THREAD_INFO;
821 lwi r11, r11, TS_THREAD_INFO;
822 lwi r11, r11, TI_FLAGS; /* MS: get flags from thread info */ 805 lwi r11, r11, TI_FLAGS; /* MS: get flags from thread info */
823 andi r11, r11, _TIF_NEED_RESCHED; 806 andi r11, r11, _TIF_NEED_RESCHED;
824 beqi r11, 5f 807 beqi r11, 5f
@@ -826,8 +809,7 @@ ret_from_irq:
826 nop; /* delay slot */ 809 nop; /* delay slot */
827 810
828 /* Maybe handle a signal */ 811 /* Maybe handle a signal */
8295: add r11, r0, CURRENT_TASK; 8125: lwi r11, CURRENT_TASK, TS_THREAD_INFO; /* MS: get thread info */
830 lwi r11, r11, TS_THREAD_INFO; /* MS: get thread info */
831 lwi r11, r11, TI_FLAGS; /* get flags in thread info */ 813 lwi r11, r11, TI_FLAGS; /* get flags in thread info */
832 andi r11, r11, _TIF_SIGPENDING; 814 andi r11, r11, _TIF_SIGPENDING;
833 beqid r11, no_intr_resched 815 beqid r11, no_intr_resched
@@ -842,8 +824,7 @@ no_intr_resched:
842 /* Disable interrupts, we are now committed to the state restore */ 824 /* Disable interrupts, we are now committed to the state restore */
843 disable_irq 825 disable_irq
844 swi r0, r0, PER_CPU(KM); /* MS: Now officially in user state. */ 826 swi r0, r0, PER_CPU(KM); /* MS: Now officially in user state. */
845 add r11, r0, CURRENT_TASK; 827 swi CURRENT_TASK, r0, PER_CPU(CURRENT_SAVE);
846 swi r11, r0, PER_CPU(CURRENT_SAVE);
847 VM_OFF; 828 VM_OFF;
848 tophys(r1,r1); 829 tophys(r1,r1);
849 lwi r3, r1, PTO + PT_R3; /* MS: restore saved r3, r4 registers */ 830 lwi r3, r1, PTO + PT_R3; /* MS: restore saved r3, r4 registers */
@@ -853,7 +834,28 @@ no_intr_resched:
853 lwi r1, r1, PT_R1 - PT_SIZE; 834 lwi r1, r1, PT_R1 - PT_SIZE;
854 bri 6f; 835 bri 6f;
855/* MS: Return to kernel state. */ 836/* MS: Return to kernel state. */
8562: VM_OFF /* MS: turn off MMU */ 8372:
838#ifdef CONFIG_PREEMPT
839 lwi r11, CURRENT_TASK, TS_THREAD_INFO;
840 /* MS: get preempt_count from thread info */
841 lwi r5, r11, TI_PREEMPT_COUNT;
842 bgti r5, restore;
843
844 lwi r5, r11, TI_FLAGS; /* get flags in thread info */
845 andi r5, r5, _TIF_NEED_RESCHED;
846 beqi r5, restore /* if zero jump over */
847
848preempt:
849 /* interrupts are off that's why I am calling preempt_chedule_irq */
850 bralid r15, preempt_schedule_irq
851 nop
852 lwi r11, CURRENT_TASK, TS_THREAD_INFO; /* get thread info */
853 lwi r5, r11, TI_FLAGS; /* get flags in thread info */
854 andi r5, r5, _TIF_NEED_RESCHED;
855 bnei r5, preempt /* if non zero jump to resched */
856restore:
857#endif
858 VM_OFF /* MS: turn off MMU */
857 tophys(r1,r1) 859 tophys(r1,r1)
858 lwi r3, r1, PTO + PT_R3; /* MS: restore saved r3, r4 registers */ 860 lwi r3, r1, PTO + PT_R3; /* MS: restore saved r3, r4 registers */
859 lwi r4, r1, PTO + PT_R4; 861 lwi r4, r1, PTO + PT_R4;
@@ -915,7 +917,7 @@ C_ENTRY(_debug_exception):
915 swi r11, r1, PTO+PT_R1; /* Store user SP. */ 917 swi r11, r1, PTO+PT_R1; /* Store user SP. */
916 addi r11, r0, 1; 918 addi r11, r0, 1;
917 swi r11, r0, TOPHYS(PER_CPU(KM)); /* Now we're in kernel-mode. */ 919 swi r11, r0, TOPHYS(PER_CPU(KM)); /* Now we're in kernel-mode. */
9182: lwi r31, r0, TOPHYS(PER_CPU(CURRENT_SAVE)); /* get saved current */ 9202: lwi CURRENT_TASK, r0, TOPHYS(PER_CPU(CURRENT_SAVE));
919 /* Save away the syscall number. */ 921 /* Save away the syscall number. */
920 swi r0, r1, PTO+PT_R0; 922 swi r0, r1, PTO+PT_R0;
921 tovirt(r1,r1) 923 tovirt(r1,r1)
@@ -935,8 +937,7 @@ dbtrap_call: rtbd r11, 0;
935 bnei r11, 2f; 937 bnei r11, 2f;
936 938
937 /* Get current task ptr into r11 */ 939 /* Get current task ptr into r11 */
938 add r11, r0, CURRENT_TASK; /* Get current task ptr into r11 */ 940 lwi r11, CURRENT_TASK, TS_THREAD_INFO; /* get thread info */
939 lwi r11, r11, TS_THREAD_INFO; /* get thread info */
940 lwi r11, r11, TI_FLAGS; /* get flags in thread info */ 941 lwi r11, r11, TI_FLAGS; /* get flags in thread info */
941 andi r11, r11, _TIF_NEED_RESCHED; 942 andi r11, r11, _TIF_NEED_RESCHED;
942 beqi r11, 5f; 943 beqi r11, 5f;
@@ -949,8 +950,7 @@ dbtrap_call: rtbd r11, 0;
949 /* XXX m68knommu also checks TASK_STATE & TASK_COUNTER here. */ 950 /* XXX m68knommu also checks TASK_STATE & TASK_COUNTER here. */
950 951
951 /* Maybe handle a signal */ 952 /* Maybe handle a signal */
9525: add r11, r0, CURRENT_TASK; /* Get current task ptr into r11 */ 9535: lwi r11, CURRENT_TASK, TS_THREAD_INFO; /* get thread info */
953 lwi r11, r11, TS_THREAD_INFO; /* get thread info */
954 lwi r11, r11, TI_FLAGS; /* get flags in thread info */ 954 lwi r11, r11, TI_FLAGS; /* get flags in thread info */
955 andi r11, r11, _TIF_SIGPENDING; 955 andi r11, r11, _TIF_SIGPENDING;
956 beqi r11, 1f; /* Signals to handle, handle them */ 956 beqi r11, 1f; /* Signals to handle, handle them */
@@ -966,16 +966,14 @@ dbtrap_call: rtbd r11, 0;
966 (in a possibly modified form) after do_signal returns. */ 966 (in a possibly modified form) after do_signal returns. */
967 967
968 la r5, r1, PTO; /* Arg 1: struct pt_regs *regs */ 968 la r5, r1, PTO; /* Arg 1: struct pt_regs *regs */
969 add r6, r0, r0; /* Arg 2: sigset_t *oldset */
970 addi r7, r0, 0; /* Arg 3: int in_syscall */ 969 addi r7, r0, 0; /* Arg 3: int in_syscall */
971 bralid r15, do_signal; /* Handle any signals */ 970 bralid r15, do_signal; /* Handle any signals */
972 nop; 971 add r6, r0, r0; /* Arg 2: sigset_t *oldset */
973 972
974 973
975/* Finally, return to user state. */ 974/* Finally, return to user state. */
9761: swi r0, r0, PER_CPU(KM); /* Now officially in user state. */ 9751: swi r0, r0, PER_CPU(KM); /* Now officially in user state. */
977 add r11, r0, CURRENT_TASK; /* Get current task ptr into r11 */ 976 swi CURRENT_TASK, r0, PER_CPU(CURRENT_SAVE); /* save current */
978 swi r11, r0, PER_CPU(CURRENT_SAVE); /* save current */
979 VM_OFF; 977 VM_OFF;
980 tophys(r1,r1); 978 tophys(r1,r1);
981 979
@@ -1007,7 +1005,7 @@ DBTRAP_return: /* Make global symbol for debugging */
1007 1005
1008ENTRY(_switch_to) 1006ENTRY(_switch_to)
1009 /* prepare return value */ 1007 /* prepare return value */
1010 addk r3, r0, r31 1008 addk r3, r0, CURRENT_TASK
1011 1009
1012 /* save registers in cpu_context */ 1010 /* save registers in cpu_context */
1013 /* use r11 and r12, volatile registers, as temp register */ 1011 /* use r11 and r12, volatile registers, as temp register */
@@ -1051,10 +1049,10 @@ ENTRY(_switch_to)
1051 nop 1049 nop
1052 swi r12, r11, CC_FSR 1050 swi r12, r11, CC_FSR
1053 1051
1054 /* update r31, the current */ 1052 /* update r31, the current-give me pointer to task which will be next */
1055 lwi r31, r6, TI_TASK/* give me pointer to task which will be next */ 1053 lwi CURRENT_TASK, r6, TI_TASK
1056 /* stored it to current_save too */ 1054 /* stored it to current_save too */
1057 swi r31, r0, PER_CPU(CURRENT_SAVE) 1055 swi CURRENT_TASK, r0, PER_CPU(CURRENT_SAVE)
1058 1056
1059 /* get new process' cpu context and restore */ 1057 /* get new process' cpu context and restore */
1060 /* give me start where start context of next task */ 1058 /* give me start where start context of next task */
diff --git a/arch/microblaze/kernel/head.S b/arch/microblaze/kernel/head.S
index 30916193fcc7..cb7815cfe5ab 100644
--- a/arch/microblaze/kernel/head.S
+++ b/arch/microblaze/kernel/head.S
@@ -99,8 +99,8 @@ no_fdt_arg:
99 tophys(r4,r4) /* convert to phys address */ 99 tophys(r4,r4) /* convert to phys address */
100 ori r3, r0, COMMAND_LINE_SIZE - 1 /* number of loops */ 100 ori r3, r0, COMMAND_LINE_SIZE - 1 /* number of loops */
101_copy_command_line: 101_copy_command_line:
102 lbu r7, r5, r6 /* r7=r5+r6 - r5 contain pointer to command line */ 102 lbu r2, r5, r6 /* r7=r5+r6 - r5 contain pointer to command line */
103 sb r7, r4, r6 /* addr[r4+r6]= r7*/ 103 sb r2, r4, r6 /* addr[r4+r6]= r7*/
104 addik r6, r6, 1 /* increment counting */ 104 addik r6, r6, 1 /* increment counting */
105 bgtid r3, _copy_command_line /* loop for all entries */ 105 bgtid r3, _copy_command_line /* loop for all entries */
106 addik r3, r3, -1 /* descrement loop */ 106 addik r3, r3, -1 /* descrement loop */
@@ -136,6 +136,11 @@ _invalidate:
136 addik r3, r3, -1 136 addik r3, r3, -1
137 /* sync */ 137 /* sync */
138 138
139 /* Setup the kernel PID */
140 mts rpid,r0 /* Load the kernel PID */
141 nop
142 bri 4
143
139 /* 144 /*
140 * We should still be executing code at physical address area 145 * We should still be executing code at physical address area
141 * RAM_BASEADDR at this point. However, kernel code is at 146 * RAM_BASEADDR at this point. However, kernel code is at
@@ -146,10 +151,6 @@ _invalidate:
146 addik r3,r0, CONFIG_KERNEL_START /* Load the kernel virtual address */ 151 addik r3,r0, CONFIG_KERNEL_START /* Load the kernel virtual address */
147 tophys(r4,r3) /* Load the kernel physical address */ 152 tophys(r4,r3) /* Load the kernel physical address */
148 153
149 mts rpid,r0 /* Load the kernel PID */
150 nop
151 bri 4
152
153 /* 154 /*
154 * Configure and load two entries into TLB slots 0 and 1. 155 * Configure and load two entries into TLB slots 0 and 1.
155 * In case we are pinning TLBs, these are reserved in by the 156 * In case we are pinning TLBs, these are reserved in by the
diff --git a/arch/microblaze/kernel/irq.c b/arch/microblaze/kernel/irq.c
index 0f06034d1fe0..6f39e2c001f3 100644
--- a/arch/microblaze/kernel/irq.c
+++ b/arch/microblaze/kernel/irq.c
@@ -93,3 +93,18 @@ skip:
93 } 93 }
94 return 0; 94 return 0;
95} 95}
96
97/* MS: There is no any advance mapping mechanism. We are using simple 32bit
98 intc without any cascades or any connection that's why mapping is 1:1 */
99unsigned int irq_create_mapping(struct irq_host *host, irq_hw_number_t hwirq)
100{
101 return hwirq;
102}
103EXPORT_SYMBOL_GPL(irq_create_mapping);
104
105unsigned int irq_create_of_mapping(struct device_node *controller,
106 u32 *intspec, unsigned int intsize)
107{
108 return intspec[0];
109}
110EXPORT_SYMBOL_GPL(irq_create_of_mapping);
diff --git a/arch/microblaze/kernel/setup.c b/arch/microblaze/kernel/setup.c
index bb8c4b9ccb80..f974ec7aa357 100644
--- a/arch/microblaze/kernel/setup.c
+++ b/arch/microblaze/kernel/setup.c
@@ -22,7 +22,10 @@
22#include <linux/io.h> 22#include <linux/io.h>
23#include <linux/bug.h> 23#include <linux/bug.h>
24#include <linux/param.h> 24#include <linux/param.h>
25#include <linux/pci.h>
25#include <linux/cache.h> 26#include <linux/cache.h>
27#include <linux/of_platform.h>
28#include <linux/dma-mapping.h>
26#include <asm/cacheflush.h> 29#include <asm/cacheflush.h>
27#include <asm/entry.h> 30#include <asm/entry.h>
28#include <asm/cpuinfo.h> 31#include <asm/cpuinfo.h>
@@ -54,14 +57,10 @@ void __init setup_arch(char **cmdline_p)
54 57
55 microblaze_cache_init(); 58 microblaze_cache_init();
56 59
57 invalidate_dcache();
58 enable_dcache();
59
60 invalidate_icache();
61 enable_icache();
62
63 setup_memory(); 60 setup_memory();
64 61
62 xilinx_pci_init();
63
65#if defined(CONFIG_SELFMOD_INTC) || defined(CONFIG_SELFMOD_TIMER) 64#if defined(CONFIG_SELFMOD_INTC) || defined(CONFIG_SELFMOD_TIMER)
66 printk(KERN_NOTICE "Self modified code enable\n"); 65 printk(KERN_NOTICE "Self modified code enable\n");
67#endif 66#endif
@@ -188,3 +187,37 @@ static int microblaze_debugfs_init(void)
188} 187}
189arch_initcall(microblaze_debugfs_init); 188arch_initcall(microblaze_debugfs_init);
190#endif 189#endif
190
191static int dflt_bus_notify(struct notifier_block *nb,
192 unsigned long action, void *data)
193{
194 struct device *dev = data;
195
196 /* We are only intereted in device addition */
197 if (action != BUS_NOTIFY_ADD_DEVICE)
198 return 0;
199
200 set_dma_ops(dev, &dma_direct_ops);
201
202 return NOTIFY_DONE;
203}
204
205static struct notifier_block dflt_plat_bus_notifier = {
206 .notifier_call = dflt_bus_notify,
207 .priority = INT_MAX,
208};
209
210static struct notifier_block dflt_of_bus_notifier = {
211 .notifier_call = dflt_bus_notify,
212 .priority = INT_MAX,
213};
214
215static int __init setup_bus_notifier(void)
216{
217 bus_register_notifier(&platform_bus_type, &dflt_plat_bus_notifier);
218 bus_register_notifier(&of_platform_bus_type, &dflt_of_bus_notifier);
219
220 return 0;
221}
222
223arch_initcall(setup_bus_notifier);
diff --git a/arch/microblaze/mm/Makefile b/arch/microblaze/mm/Makefile
index 6c8a924d9e26..09c49ed87235 100644
--- a/arch/microblaze/mm/Makefile
+++ b/arch/microblaze/mm/Makefile
@@ -2,6 +2,6 @@
2# Makefile 2# Makefile
3# 3#
4 4
5obj-y := init.o 5obj-y := consistent.o init.o
6 6
7obj-$(CONFIG_MMU) += pgtable.o mmu_context.o fault.o 7obj-$(CONFIG_MMU) += pgtable.o mmu_context.o fault.o
diff --git a/arch/microblaze/mm/consistent.c b/arch/microblaze/mm/consistent.c
new file mode 100644
index 000000000000..a9b443e3fb98
--- /dev/null
+++ b/arch/microblaze/mm/consistent.c
@@ -0,0 +1,246 @@
1/*
2 * Microblaze support for cache consistent memory.
3 * Copyright (C) 2010 Michal Simek <monstr@monstr.eu>
4 * Copyright (C) 2010 PetaLogix
5 * Copyright (C) 2005 John Williams <jwilliams@itee.uq.edu.au>
6 *
7 * Based on PowerPC version derived from arch/arm/mm/consistent.c
8 * Copyright (C) 2001 Dan Malek (dmalek@jlc.net)
9 * Copyright (C) 2000 Russell King
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/signal.h>
18#include <linux/sched.h>
19#include <linux/kernel.h>
20#include <linux/errno.h>
21#include <linux/string.h>
22#include <linux/types.h>
23#include <linux/ptrace.h>
24#include <linux/mman.h>
25#include <linux/mm.h>
26#include <linux/swap.h>
27#include <linux/stddef.h>
28#include <linux/vmalloc.h>
29#include <linux/init.h>
30#include <linux/delay.h>
31#include <linux/bootmem.h>
32#include <linux/highmem.h>
33#include <linux/pci.h>
34#include <linux/interrupt.h>
35
36#include <asm/pgalloc.h>
37#include <linux/io.h>
38#include <linux/hardirq.h>
39#include <asm/mmu_context.h>
40#include <asm/mmu.h>
41#include <linux/uaccess.h>
42#include <asm/pgtable.h>
43#include <asm/cpuinfo.h>
44
45#ifndef CONFIG_MMU
46
47/* I have to use dcache values because I can't relate on ram size */
48#define UNCACHED_SHADOW_MASK (cpuinfo.dcache_high - cpuinfo.dcache_base + 1)
49
50/*
51 * Consistent memory allocators. Used for DMA devices that want to
52 * share uncached memory with the processor core.
53 * My crufty no-MMU approach is simple. In the HW platform we can optionally
54 * mirror the DDR up above the processor cacheable region. So, memory accessed
55 * in this mirror region will not be cached. It's alloced from the same
56 * pool as normal memory, but the handle we return is shifted up into the
57 * uncached region. This will no doubt cause big problems if memory allocated
58 * here is not also freed properly. -- JW
59 */
60void *consistent_alloc(int gfp, size_t size, dma_addr_t *dma_handle)
61{
62 struct page *page, *end, *free;
63 unsigned long order;
64 void *ret, *virt;
65
66 if (in_interrupt())
67 BUG();
68
69 size = PAGE_ALIGN(size);
70 order = get_order(size);
71
72 page = alloc_pages(gfp, order);
73 if (!page)
74 goto no_page;
75
76 /* We could do with a page_to_phys and page_to_bus here. */
77 virt = page_address(page);
78 ret = ioremap(virt_to_phys(virt), size);
79 if (!ret)
80 goto no_remap;
81
82 /*
83 * Here's the magic! Note if the uncached shadow is not implemented,
84 * it's up to the calling code to also test that condition and make
85 * other arranegments, such as manually flushing the cache and so on.
86 */
87#ifdef CONFIG_XILINX_UNCACHED_SHADOW
88 ret = (void *)((unsigned) ret | UNCACHED_SHADOW_MASK);
89#endif
90 /* dma_handle is same as physical (shadowed) address */
91 *dma_handle = (dma_addr_t)ret;
92
93 /*
94 * free wasted pages. We skip the first page since we know
95 * that it will have count = 1 and won't require freeing.
96 * We also mark the pages in use as reserved so that
97 * remap_page_range works.
98 */
99 page = virt_to_page(virt);
100 free = page + (size >> PAGE_SHIFT);
101 end = page + (1 << order);
102
103 for (; page < end; page++) {
104 init_page_count(page);
105 if (page >= free)
106 __free_page(page);
107 else
108 SetPageReserved(page);
109 }
110
111 return ret;
112no_remap:
113 __free_pages(page, order);
114no_page:
115 return NULL;
116}
117
118#else
119
120void *consistent_alloc(int gfp, size_t size, dma_addr_t *dma_handle)
121{
122 int order, err, i;
123 unsigned long page, va, flags;
124 phys_addr_t pa;
125 struct vm_struct *area;
126 void *ret;
127
128 if (in_interrupt())
129 BUG();
130
131 /* Only allocate page size areas. */
132 size = PAGE_ALIGN(size);
133 order = get_order(size);
134
135 page = __get_free_pages(gfp, order);
136 if (!page) {
137 BUG();
138 return NULL;
139 }
140
141 /*
142 * we need to ensure that there are no cachelines in use,
143 * or worse dirty in this area.
144 */
145 flush_dcache_range(virt_to_phys(page), virt_to_phys(page) + size);
146
147 /* Allocate some common virtual space to map the new pages. */
148 area = get_vm_area(size, VM_ALLOC);
149 if (area == NULL) {
150 free_pages(page, order);
151 return NULL;
152 }
153 va = (unsigned long) area->addr;
154 ret = (void *)va;
155
156 /* This gives us the real physical address of the first page. */
157 *dma_handle = pa = virt_to_bus((void *)page);
158
159 /* MS: This is the whole magic - use cache inhibit pages */
160 flags = _PAGE_KERNEL | _PAGE_NO_CACHE;
161
162 /*
163 * Set refcount=1 on all pages in an order>0
164 * allocation so that vfree() will actually
165 * free all pages that were allocated.
166 */
167 if (order > 0) {
168 struct page *rpage = virt_to_page(page);
169 for (i = 1; i < (1 << order); i++)
170 init_page_count(rpage+i);
171 }
172
173 err = 0;
174 for (i = 0; i < size && err == 0; i += PAGE_SIZE)
175 err = map_page(va+i, pa+i, flags);
176
177 if (err) {
178 vfree((void *)va);
179 return NULL;
180 }
181
182 return ret;
183}
184#endif /* CONFIG_MMU */
185EXPORT_SYMBOL(consistent_alloc);
186
187/*
188 * free page(s) as defined by the above mapping.
189 */
190void consistent_free(void *vaddr)
191{
192 if (in_interrupt())
193 BUG();
194
195 /* Clear SHADOW_MASK bit in address, and free as per usual */
196#ifdef CONFIG_XILINX_UNCACHED_SHADOW
197 vaddr = (void *)((unsigned)vaddr & ~UNCACHED_SHADOW_MASK);
198#endif
199 vfree(vaddr);
200}
201EXPORT_SYMBOL(consistent_free);
202
203/*
204 * make an area consistent.
205 */
206void consistent_sync(void *vaddr, size_t size, int direction)
207{
208 unsigned long start;
209 unsigned long end;
210
211 start = (unsigned long)vaddr;
212
213 /* Convert start address back down to unshadowed memory region */
214#ifdef CONFIG_XILINX_UNCACHED_SHADOW
215 start &= ~UNCACHED_SHADOW_MASK;
216#endif
217 end = start + size;
218
219 switch (direction) {
220 case PCI_DMA_NONE:
221 BUG();
222 case PCI_DMA_FROMDEVICE: /* invalidate only */
223 flush_dcache_range(start, end);
224 break;
225 case PCI_DMA_TODEVICE: /* writeback only */
226 flush_dcache_range(start, end);
227 break;
228 case PCI_DMA_BIDIRECTIONAL: /* writeback and invalidate */
229 flush_dcache_range(start, end);
230 break;
231 }
232}
233EXPORT_SYMBOL(consistent_sync);
234
235/*
236 * consistent_sync_page makes memory consistent. identical
237 * to consistent_sync, but takes a struct page instead of a
238 * virtual address
239 */
240void consistent_sync_page(struct page *page, unsigned long offset,
241 size_t size, int direction)
242{
243 unsigned long start = (unsigned long)page_address(page) + offset;
244 consistent_sync((void *)start, size, direction);
245}
246EXPORT_SYMBOL(consistent_sync_page);
diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c
index a57cedf36715..1608e2e1a44a 100644
--- a/arch/microblaze/mm/init.c
+++ b/arch/microblaze/mm/init.c
@@ -23,6 +23,9 @@
23#include <asm/sections.h> 23#include <asm/sections.h>
24#include <asm/tlb.h> 24#include <asm/tlb.h>
25 25
26/* Use for MMU and noMMU because of PCI generic code */
27int mem_init_done;
28
26#ifndef CONFIG_MMU 29#ifndef CONFIG_MMU
27unsigned int __page_offset; 30unsigned int __page_offset;
28EXPORT_SYMBOL(__page_offset); 31EXPORT_SYMBOL(__page_offset);
@@ -30,7 +33,6 @@ EXPORT_SYMBOL(__page_offset);
30#else 33#else
31DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); 34DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
32 35
33int mem_init_done;
34static int init_bootmem_done; 36static int init_bootmem_done;
35#endif /* CONFIG_MMU */ 37#endif /* CONFIG_MMU */
36 38
@@ -193,12 +195,6 @@ void free_initmem(void)
193 (unsigned long)(&__init_end)); 195 (unsigned long)(&__init_end));
194} 196}
195 197
196/* FIXME from arch/powerpc/mm/mem.c*/
197void show_mem(void)
198{
199 printk(KERN_NOTICE "%s\n", __func__);
200}
201
202void __init mem_init(void) 198void __init mem_init(void)
203{ 199{
204 high_memory = (void *)__va(memory_end); 200 high_memory = (void *)__va(memory_end);
@@ -208,9 +204,7 @@ void __init mem_init(void)
208 printk(KERN_INFO "Memory: %luk/%luk available\n", 204 printk(KERN_INFO "Memory: %luk/%luk available\n",
209 nr_free_pages() << (PAGE_SHIFT-10), 205 nr_free_pages() << (PAGE_SHIFT-10),
210 num_physpages << (PAGE_SHIFT-10)); 206 num_physpages << (PAGE_SHIFT-10));
211#ifdef CONFIG_MMU
212 mem_init_done = 1; 207 mem_init_done = 1;
213#endif
214} 208}
215 209
216#ifndef CONFIG_MMU 210#ifndef CONFIG_MMU
@@ -222,6 +216,10 @@ int ___range_ok(unsigned long addr, unsigned long size)
222} 216}
223EXPORT_SYMBOL(___range_ok); 217EXPORT_SYMBOL(___range_ok);
224 218
219int page_is_ram(unsigned long pfn)
220{
221 return __range_ok(pfn, 0);
222}
225#else 223#else
226int page_is_ram(unsigned long pfn) 224int page_is_ram(unsigned long pfn)
227{ 225{
@@ -349,4 +347,27 @@ void __init *early_get_page(void)
349 } 347 }
350 return p; 348 return p;
351} 349}
350
352#endif /* CONFIG_MMU */ 351#endif /* CONFIG_MMU */
352
353void * __init_refok alloc_maybe_bootmem(size_t size, gfp_t mask)
354{
355 if (mem_init_done)
356 return kmalloc(size, mask);
357 else
358 return alloc_bootmem(size);
359}
360
361void * __init_refok zalloc_maybe_bootmem(size_t size, gfp_t mask)
362{
363 void *p;
364
365 if (mem_init_done)
366 p = kzalloc(size, mask);
367 else {
368 p = alloc_bootmem(size);
369 if (p)
370 memset(p, 0, size);
371 }
372 return p;
373}
diff --git a/arch/microblaze/mm/pgtable.c b/arch/microblaze/mm/pgtable.c
index 2820081b21ab..63a6fd07c48f 100644
--- a/arch/microblaze/mm/pgtable.c
+++ b/arch/microblaze/mm/pgtable.c
@@ -103,7 +103,7 @@ static void __iomem *__ioremap(phys_addr_t addr, unsigned long size,
103 area = get_vm_area(size, VM_IOREMAP); 103 area = get_vm_area(size, VM_IOREMAP);
104 if (area == NULL) 104 if (area == NULL)
105 return NULL; 105 return NULL;
106 v = VMALLOC_VMADDR(area->addr); 106 v = (unsigned long) area->addr;
107 } else { 107 } else {
108 v = (ioremap_bot -= size); 108 v = (ioremap_bot -= size);
109 } 109 }
diff --git a/arch/microblaze/pci/Makefile b/arch/microblaze/pci/Makefile
new file mode 100644
index 000000000000..9889cc2e1294
--- /dev/null
+++ b/arch/microblaze/pci/Makefile
@@ -0,0 +1,6 @@
1#
2# Makefile
3#
4
5obj-$(CONFIG_PCI) += pci_32.o pci-common.o indirect_pci.o iomap.o
6obj-$(CONFIG_PCI_XILINX) += xilinx_pci.o
diff --git a/arch/microblaze/pci/indirect_pci.c b/arch/microblaze/pci/indirect_pci.c
new file mode 100644
index 000000000000..25f18f017f21
--- /dev/null
+++ b/arch/microblaze/pci/indirect_pci.c
@@ -0,0 +1,163 @@
1/*
2 * Support for indirect PCI bridges.
3 *
4 * Copyright (C) 1998 Gabriel Paubert.
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
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12#include <linux/kernel.h>
13#include <linux/pci.h>
14#include <linux/delay.h>
15#include <linux/string.h>
16#include <linux/init.h>
17
18#include <asm/io.h>
19#include <asm/prom.h>
20#include <asm/pci-bridge.h>
21
22static int
23indirect_read_config(struct pci_bus *bus, unsigned int devfn, int offset,
24 int len, u32 *val)
25{
26 struct pci_controller *hose = pci_bus_to_host(bus);
27 volatile void __iomem *cfg_data;
28 u8 cfg_type = 0;
29 u32 bus_no, reg;
30
31 if (hose->indirect_type & INDIRECT_TYPE_NO_PCIE_LINK) {
32 if (bus->number != hose->first_busno)
33 return PCIBIOS_DEVICE_NOT_FOUND;
34 if (devfn != 0)
35 return PCIBIOS_DEVICE_NOT_FOUND;
36 }
37
38 if (hose->indirect_type & INDIRECT_TYPE_SET_CFG_TYPE)
39 if (bus->number != hose->first_busno)
40 cfg_type = 1;
41
42 bus_no = (bus->number == hose->first_busno) ?
43 hose->self_busno : bus->number;
44
45 if (hose->indirect_type & INDIRECT_TYPE_EXT_REG)
46 reg = ((offset & 0xf00) << 16) | (offset & 0xfc);
47 else
48 reg = offset & 0xfc; /* Only 3 bits for function */
49
50 if (hose->indirect_type & INDIRECT_TYPE_BIG_ENDIAN)
51 out_be32(hose->cfg_addr, (0x80000000 | (bus_no << 16) |
52 (devfn << 8) | reg | cfg_type));
53 else
54 out_le32(hose->cfg_addr, (0x80000000 | (bus_no << 16) |
55 (devfn << 8) | reg | cfg_type));
56
57 /*
58 * Note: the caller has already checked that offset is
59 * suitably aligned and that len is 1, 2 or 4.
60 */
61 cfg_data = hose->cfg_data + (offset & 3); /* Only 3 bits for function */
62 switch (len) {
63 case 1:
64 *val = in_8(cfg_data);
65 break;
66 case 2:
67 *val = in_le16(cfg_data);
68 break;
69 default:
70 *val = in_le32(cfg_data);
71 break;
72 }
73 return PCIBIOS_SUCCESSFUL;
74}
75
76static int
77indirect_write_config(struct pci_bus *bus, unsigned int devfn, int offset,
78 int len, u32 val)
79{
80 struct pci_controller *hose = pci_bus_to_host(bus);
81 volatile void __iomem *cfg_data;
82 u8 cfg_type = 0;
83 u32 bus_no, reg;
84
85 if (hose->indirect_type & INDIRECT_TYPE_NO_PCIE_LINK) {
86 if (bus->number != hose->first_busno)
87 return PCIBIOS_DEVICE_NOT_FOUND;
88 if (devfn != 0)
89 return PCIBIOS_DEVICE_NOT_FOUND;
90 }
91
92 if (hose->indirect_type & INDIRECT_TYPE_SET_CFG_TYPE)
93 if (bus->number != hose->first_busno)
94 cfg_type = 1;
95
96 bus_no = (bus->number == hose->first_busno) ?
97 hose->self_busno : bus->number;
98
99 if (hose->indirect_type & INDIRECT_TYPE_EXT_REG)
100 reg = ((offset & 0xf00) << 16) | (offset & 0xfc);
101 else
102 reg = offset & 0xfc;
103
104 if (hose->indirect_type & INDIRECT_TYPE_BIG_ENDIAN)
105 out_be32(hose->cfg_addr, (0x80000000 | (bus_no << 16) |
106 (devfn << 8) | reg | cfg_type));
107 else
108 out_le32(hose->cfg_addr, (0x80000000 | (bus_no << 16) |
109 (devfn << 8) | reg | cfg_type));
110
111 /* surpress setting of PCI_PRIMARY_BUS */
112 if (hose->indirect_type & INDIRECT_TYPE_SURPRESS_PRIMARY_BUS)
113 if ((offset == PCI_PRIMARY_BUS) &&
114 (bus->number == hose->first_busno))
115 val &= 0xffffff00;
116
117 /* Workaround for PCI_28 Errata in 440EPx/GRx */
118 if ((hose->indirect_type & INDIRECT_TYPE_BROKEN_MRM) &&
119 offset == PCI_CACHE_LINE_SIZE) {
120 val = 0;
121 }
122
123 /*
124 * Note: the caller has already checked that offset is
125 * suitably aligned and that len is 1, 2 or 4.
126 */
127 cfg_data = hose->cfg_data + (offset & 3);
128 switch (len) {
129 case 1:
130 out_8(cfg_data, val);
131 break;
132 case 2:
133 out_le16(cfg_data, val);
134 break;
135 default:
136 out_le32(cfg_data, val);
137 break;
138 }
139
140 return PCIBIOS_SUCCESSFUL;
141}
142
143static struct pci_ops indirect_pci_ops = {
144 .read = indirect_read_config,
145 .write = indirect_write_config,
146};
147
148void __init
149setup_indirect_pci(struct pci_controller *hose,
150 resource_size_t cfg_addr,
151 resource_size_t cfg_data, u32 flags)
152{
153 resource_size_t base = cfg_addr & PAGE_MASK;
154 void __iomem *mbase;
155
156 mbase = ioremap(base, PAGE_SIZE);
157 hose->cfg_addr = mbase + (cfg_addr & ~PAGE_MASK);
158 if ((cfg_data & PAGE_MASK) != base)
159 mbase = ioremap(cfg_data & PAGE_MASK, PAGE_SIZE);
160 hose->cfg_data = mbase + (cfg_data & ~PAGE_MASK);
161 hose->ops = &indirect_pci_ops;
162 hose->indirect_type = flags;
163}
diff --git a/arch/microblaze/pci/iomap.c b/arch/microblaze/pci/iomap.c
new file mode 100644
index 000000000000..3fbf16f4e16c
--- /dev/null
+++ b/arch/microblaze/pci/iomap.c
@@ -0,0 +1,39 @@
1/*
2 * ppc64 "iomap" interface implementation.
3 *
4 * (C) Copyright 2004 Linus Torvalds
5 */
6#include <linux/init.h>
7#include <linux/pci.h>
8#include <linux/mm.h>
9#include <asm/io.h>
10#include <asm/pci-bridge.h>
11
12void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max)
13{
14 resource_size_t start = pci_resource_start(dev, bar);
15 resource_size_t len = pci_resource_len(dev, bar);
16 unsigned long flags = pci_resource_flags(dev, bar);
17
18 if (!len)
19 return NULL;
20 if (max && len > max)
21 len = max;
22 if (flags & IORESOURCE_IO)
23 return ioport_map(start, len);
24 if (flags & IORESOURCE_MEM)
25 return ioremap(start, len);
26 /* What? */
27 return NULL;
28}
29EXPORT_SYMBOL(pci_iomap);
30
31void pci_iounmap(struct pci_dev *dev, void __iomem *addr)
32{
33 if (isa_vaddr_is_ioport(addr))
34 return;
35 if (pcibios_vaddr_is_ioport(addr))
36 return;
37 iounmap(addr);
38}
39EXPORT_SYMBOL(pci_iounmap);
diff --git a/arch/microblaze/pci/pci-common.c b/arch/microblaze/pci/pci-common.c
new file mode 100644
index 000000000000..0be34350d733
--- /dev/null
+++ b/arch/microblaze/pci/pci-common.c
@@ -0,0 +1,1642 @@
1/*
2 * Contains common pci routines for ALL ppc platform
3 * (based on pci_32.c and pci_64.c)
4 *
5 * Port for PPC64 David Engebretsen, IBM Corp.
6 * Contains common pci routines for ppc64 platform, pSeries and iSeries brands.
7 *
8 * Copyright (C) 2003 Anton Blanchard <anton@au.ibm.com>, IBM
9 * Rework, based on alpha PCI code.
10 *
11 * Common pmac/prep/chrp pci routines. -- Cort
12 *
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation; either version
16 * 2 of the License, or (at your option) any later version.
17 */
18
19#include <linux/kernel.h>
20#include <linux/pci.h>
21#include <linux/string.h>
22#include <linux/init.h>
23#include <linux/bootmem.h>
24#include <linux/mm.h>
25#include <linux/list.h>
26#include <linux/syscalls.h>
27#include <linux/irq.h>
28#include <linux/vmalloc.h>
29
30#include <asm/processor.h>
31#include <asm/io.h>
32#include <asm/prom.h>
33#include <asm/pci-bridge.h>
34#include <asm/byteorder.h>
35
36static DEFINE_SPINLOCK(hose_spinlock);
37LIST_HEAD(hose_list);
38
39/* XXX kill that some day ... */
40static int global_phb_number; /* Global phb counter */
41
42/* ISA Memory physical address */
43resource_size_t isa_mem_base;
44
45/* Default PCI flags is 0 on ppc32, modified at boot on ppc64 */
46unsigned int pci_flags;
47
48static struct dma_map_ops *pci_dma_ops = &dma_direct_ops;
49
50void set_pci_dma_ops(struct dma_map_ops *dma_ops)
51{
52 pci_dma_ops = dma_ops;
53}
54
55struct dma_map_ops *get_pci_dma_ops(void)
56{
57 return pci_dma_ops;
58}
59EXPORT_SYMBOL(get_pci_dma_ops);
60
61int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
62{
63 return dma_set_mask(&dev->dev, mask);
64}
65
66int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
67{
68 int rc;
69
70 rc = dma_set_mask(&dev->dev, mask);
71 dev->dev.coherent_dma_mask = dev->dma_mask;
72
73 return rc;
74}
75
76struct pci_controller *pcibios_alloc_controller(struct device_node *dev)
77{
78 struct pci_controller *phb;
79
80 phb = zalloc_maybe_bootmem(sizeof(struct pci_controller), GFP_KERNEL);
81 if (!phb)
82 return NULL;
83 spin_lock(&hose_spinlock);
84 phb->global_number = global_phb_number++;
85 list_add_tail(&phb->list_node, &hose_list);
86 spin_unlock(&hose_spinlock);
87 phb->dn = dev;
88 phb->is_dynamic = mem_init_done;
89 return phb;
90}
91
92void pcibios_free_controller(struct pci_controller *phb)
93{
94 spin_lock(&hose_spinlock);
95 list_del(&phb->list_node);
96 spin_unlock(&hose_spinlock);
97
98 if (phb->is_dynamic)
99 kfree(phb);
100}
101
102static resource_size_t pcibios_io_size(const struct pci_controller *hose)
103{
104 return hose->io_resource.end - hose->io_resource.start + 1;
105}
106
107int pcibios_vaddr_is_ioport(void __iomem *address)
108{
109 int ret = 0;
110 struct pci_controller *hose;
111 resource_size_t size;
112
113 spin_lock(&hose_spinlock);
114 list_for_each_entry(hose, &hose_list, list_node) {
115 size = pcibios_io_size(hose);
116 if (address >= hose->io_base_virt &&
117 address < (hose->io_base_virt + size)) {
118 ret = 1;
119 break;
120 }
121 }
122 spin_unlock(&hose_spinlock);
123 return ret;
124}
125
126unsigned long pci_address_to_pio(phys_addr_t address)
127{
128 struct pci_controller *hose;
129 resource_size_t size;
130 unsigned long ret = ~0;
131
132 spin_lock(&hose_spinlock);
133 list_for_each_entry(hose, &hose_list, list_node) {
134 size = pcibios_io_size(hose);
135 if (address >= hose->io_base_phys &&
136 address < (hose->io_base_phys + size)) {
137 unsigned long base =
138 (unsigned long)hose->io_base_virt - _IO_BASE;
139 ret = base + (address - hose->io_base_phys);
140 break;
141 }
142 }
143 spin_unlock(&hose_spinlock);
144
145 return ret;
146}
147EXPORT_SYMBOL_GPL(pci_address_to_pio);
148
149/*
150 * Return the domain number for this bus.
151 */
152int pci_domain_nr(struct pci_bus *bus)
153{
154 struct pci_controller *hose = pci_bus_to_host(bus);
155
156 return hose->global_number;
157}
158EXPORT_SYMBOL(pci_domain_nr);
159
160/* This routine is meant to be used early during boot, when the
161 * PCI bus numbers have not yet been assigned, and you need to
162 * issue PCI config cycles to an OF device.
163 * It could also be used to "fix" RTAS config cycles if you want
164 * to set pci_assign_all_buses to 1 and still use RTAS for PCI
165 * config cycles.
166 */
167struct pci_controller *pci_find_hose_for_OF_device(struct device_node *node)
168{
169 while (node) {
170 struct pci_controller *hose, *tmp;
171 list_for_each_entry_safe(hose, tmp, &hose_list, list_node)
172 if (hose->dn == node)
173 return hose;
174 node = node->parent;
175 }
176 return NULL;
177}
178
179static ssize_t pci_show_devspec(struct device *dev,
180 struct device_attribute *attr, char *buf)
181{
182 struct pci_dev *pdev;
183 struct device_node *np;
184
185 pdev = to_pci_dev(dev);
186 np = pci_device_to_OF_node(pdev);
187 if (np == NULL || np->full_name == NULL)
188 return 0;
189 return sprintf(buf, "%s", np->full_name);
190}
191static DEVICE_ATTR(devspec, S_IRUGO, pci_show_devspec, NULL);
192
193/* Add sysfs properties */
194int pcibios_add_platform_entries(struct pci_dev *pdev)
195{
196 return device_create_file(&pdev->dev, &dev_attr_devspec);
197}
198
199char __devinit *pcibios_setup(char *str)
200{
201 return str;
202}
203
204/*
205 * Reads the interrupt pin to determine if interrupt is use by card.
206 * If the interrupt is used, then gets the interrupt line from the
207 * openfirmware and sets it in the pci_dev and pci_config line.
208 */
209int pci_read_irq_line(struct pci_dev *pci_dev)
210{
211 struct of_irq oirq;
212 unsigned int virq;
213
214 /* The current device-tree that iSeries generates from the HV
215 * PCI informations doesn't contain proper interrupt routing,
216 * and all the fallback would do is print out crap, so we
217 * don't attempt to resolve the interrupts here at all, some
218 * iSeries specific fixup does it.
219 *
220 * In the long run, we will hopefully fix the generated device-tree
221 * instead.
222 */
223 pr_debug("PCI: Try to map irq for %s...\n", pci_name(pci_dev));
224
225#ifdef DEBUG
226 memset(&oirq, 0xff, sizeof(oirq));
227#endif
228 /* Try to get a mapping from the device-tree */
229 if (of_irq_map_pci(pci_dev, &oirq)) {
230 u8 line, pin;
231
232 /* If that fails, lets fallback to what is in the config
233 * space and map that through the default controller. We
234 * also set the type to level low since that's what PCI
235 * interrupts are. If your platform does differently, then
236 * either provide a proper interrupt tree or don't use this
237 * function.
238 */
239 if (pci_read_config_byte(pci_dev, PCI_INTERRUPT_PIN, &pin))
240 return -1;
241 if (pin == 0)
242 return -1;
243 if (pci_read_config_byte(pci_dev, PCI_INTERRUPT_LINE, &line) ||
244 line == 0xff || line == 0) {
245 return -1;
246 }
247 pr_debug(" No map ! Using line %d (pin %d) from PCI config\n",
248 line, pin);
249
250 virq = irq_create_mapping(NULL, line);
251 if (virq != NO_IRQ)
252 set_irq_type(virq, IRQ_TYPE_LEVEL_LOW);
253 } else {
254 pr_debug(" Got one, spec %d cells (0x%08x 0x%08x...) on %s\n",
255 oirq.size, oirq.specifier[0], oirq.specifier[1],
256 oirq.controller ? oirq.controller->full_name :
257 "<default>");
258
259 virq = irq_create_of_mapping(oirq.controller, oirq.specifier,
260 oirq.size);
261 }
262 if (virq == NO_IRQ) {
263 pr_debug(" Failed to map !\n");
264 return -1;
265 }
266
267 pr_debug(" Mapped to linux irq %d\n", virq);
268
269 pci_dev->irq = virq;
270
271 return 0;
272}
273EXPORT_SYMBOL(pci_read_irq_line);
274
275/*
276 * Platform support for /proc/bus/pci/X/Y mmap()s,
277 * modelled on the sparc64 implementation by Dave Miller.
278 * -- paulus.
279 */
280
281/*
282 * Adjust vm_pgoff of VMA such that it is the physical page offset
283 * corresponding to the 32-bit pci bus offset for DEV requested by the user.
284 *
285 * Basically, the user finds the base address for his device which he wishes
286 * to mmap. They read the 32-bit value from the config space base register,
287 * add whatever PAGE_SIZE multiple offset they wish, and feed this into the
288 * offset parameter of mmap on /proc/bus/pci/XXX for that device.
289 *
290 * Returns negative error code on failure, zero on success.
291 */
292static struct resource *__pci_mmap_make_offset(struct pci_dev *dev,
293 resource_size_t *offset,
294 enum pci_mmap_state mmap_state)
295{
296 struct pci_controller *hose = pci_bus_to_host(dev->bus);
297 unsigned long io_offset = 0;
298 int i, res_bit;
299
300 if (hose == 0)
301 return NULL; /* should never happen */
302
303 /* If memory, add on the PCI bridge address offset */
304 if (mmap_state == pci_mmap_mem) {
305#if 0 /* See comment in pci_resource_to_user() for why this is disabled */
306 *offset += hose->pci_mem_offset;
307#endif
308 res_bit = IORESOURCE_MEM;
309 } else {
310 io_offset = (unsigned long)hose->io_base_virt - _IO_BASE;
311 *offset += io_offset;
312 res_bit = IORESOURCE_IO;
313 }
314
315 /*
316 * Check that the offset requested corresponds to one of the
317 * resources of the device.
318 */
319 for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
320 struct resource *rp = &dev->resource[i];
321 int flags = rp->flags;
322
323 /* treat ROM as memory (should be already) */
324 if (i == PCI_ROM_RESOURCE)
325 flags |= IORESOURCE_MEM;
326
327 /* Active and same type? */
328 if ((flags & res_bit) == 0)
329 continue;
330
331 /* In the range of this resource? */
332 if (*offset < (rp->start & PAGE_MASK) || *offset > rp->end)
333 continue;
334
335 /* found it! construct the final physical address */
336 if (mmap_state == pci_mmap_io)
337 *offset += hose->io_base_phys - io_offset;
338 return rp;
339 }
340
341 return NULL;
342}
343
344/*
345 * Set vm_page_prot of VMA, as appropriate for this architecture, for a pci
346 * device mapping.
347 */
348static pgprot_t __pci_mmap_set_pgprot(struct pci_dev *dev, struct resource *rp,
349 pgprot_t protection,
350 enum pci_mmap_state mmap_state,
351 int write_combine)
352{
353 pgprot_t prot = protection;
354
355 /* Write combine is always 0 on non-memory space mappings. On
356 * memory space, if the user didn't pass 1, we check for a
357 * "prefetchable" resource. This is a bit hackish, but we use
358 * this to workaround the inability of /sysfs to provide a write
359 * combine bit
360 */
361 if (mmap_state != pci_mmap_mem)
362 write_combine = 0;
363 else if (write_combine == 0) {
364 if (rp->flags & IORESOURCE_PREFETCH)
365 write_combine = 1;
366 }
367
368 return pgprot_noncached(prot);
369}
370
371/*
372 * This one is used by /dev/mem and fbdev who have no clue about the
373 * PCI device, it tries to find the PCI device first and calls the
374 * above routine
375 */
376pgprot_t pci_phys_mem_access_prot(struct file *file,
377 unsigned long pfn,
378 unsigned long size,
379 pgprot_t prot)
380{
381 struct pci_dev *pdev = NULL;
382 struct resource *found = NULL;
383 resource_size_t offset = ((resource_size_t)pfn) << PAGE_SHIFT;
384 int i;
385
386 if (page_is_ram(pfn))
387 return prot;
388
389 prot = pgprot_noncached(prot);
390 for_each_pci_dev(pdev) {
391 for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
392 struct resource *rp = &pdev->resource[i];
393 int flags = rp->flags;
394
395 /* Active and same type? */
396 if ((flags & IORESOURCE_MEM) == 0)
397 continue;
398 /* In the range of this resource? */
399 if (offset < (rp->start & PAGE_MASK) ||
400 offset > rp->end)
401 continue;
402 found = rp;
403 break;
404 }
405 if (found)
406 break;
407 }
408 if (found) {
409 if (found->flags & IORESOURCE_PREFETCH)
410 prot = pgprot_noncached_wc(prot);
411 pci_dev_put(pdev);
412 }
413
414 pr_debug("PCI: Non-PCI map for %llx, prot: %lx\n",
415 (unsigned long long)offset, pgprot_val(prot));
416
417 return prot;
418}
419
420/*
421 * Perform the actual remap of the pages for a PCI device mapping, as
422 * appropriate for this architecture. The region in the process to map
423 * is described by vm_start and vm_end members of VMA, the base physical
424 * address is found in vm_pgoff.
425 * The pci device structure is provided so that architectures may make mapping
426 * decisions on a per-device or per-bus basis.
427 *
428 * Returns a negative error code on failure, zero on success.
429 */
430int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
431 enum pci_mmap_state mmap_state, int write_combine)
432{
433 resource_size_t offset =
434 ((resource_size_t)vma->vm_pgoff) << PAGE_SHIFT;
435 struct resource *rp;
436 int ret;
437
438 rp = __pci_mmap_make_offset(dev, &offset, mmap_state);
439 if (rp == NULL)
440 return -EINVAL;
441
442 vma->vm_pgoff = offset >> PAGE_SHIFT;
443 vma->vm_page_prot = __pci_mmap_set_pgprot(dev, rp,
444 vma->vm_page_prot,
445 mmap_state, write_combine);
446
447 ret = remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
448 vma->vm_end - vma->vm_start, vma->vm_page_prot);
449
450 return ret;
451}
452
453/* This provides legacy IO read access on a bus */
454int pci_legacy_read(struct pci_bus *bus, loff_t port, u32 *val, size_t size)
455{
456 unsigned long offset;
457 struct pci_controller *hose = pci_bus_to_host(bus);
458 struct resource *rp = &hose->io_resource;
459 void __iomem *addr;
460
461 /* Check if port can be supported by that bus. We only check
462 * the ranges of the PHB though, not the bus itself as the rules
463 * for forwarding legacy cycles down bridges are not our problem
464 * here. So if the host bridge supports it, we do it.
465 */
466 offset = (unsigned long)hose->io_base_virt - _IO_BASE;
467 offset += port;
468
469 if (!(rp->flags & IORESOURCE_IO))
470 return -ENXIO;
471 if (offset < rp->start || (offset + size) > rp->end)
472 return -ENXIO;
473 addr = hose->io_base_virt + port;
474
475 switch (size) {
476 case 1:
477 *((u8 *)val) = in_8(addr);
478 return 1;
479 case 2:
480 if (port & 1)
481 return -EINVAL;
482 *((u16 *)val) = in_le16(addr);
483 return 2;
484 case 4:
485 if (port & 3)
486 return -EINVAL;
487 *((u32 *)val) = in_le32(addr);
488 return 4;
489 }
490 return -EINVAL;
491}
492
493/* This provides legacy IO write access on a bus */
494int pci_legacy_write(struct pci_bus *bus, loff_t port, u32 val, size_t size)
495{
496 unsigned long offset;
497 struct pci_controller *hose = pci_bus_to_host(bus);
498 struct resource *rp = &hose->io_resource;
499 void __iomem *addr;
500
501 /* Check if port can be supported by that bus. We only check
502 * the ranges of the PHB though, not the bus itself as the rules
503 * for forwarding legacy cycles down bridges are not our problem
504 * here. So if the host bridge supports it, we do it.
505 */
506 offset = (unsigned long)hose->io_base_virt - _IO_BASE;
507 offset += port;
508
509 if (!(rp->flags & IORESOURCE_IO))
510 return -ENXIO;
511 if (offset < rp->start || (offset + size) > rp->end)
512 return -ENXIO;
513 addr = hose->io_base_virt + port;
514
515 /* WARNING: The generic code is idiotic. It gets passed a pointer
516 * to what can be a 1, 2 or 4 byte quantity and always reads that
517 * as a u32, which means that we have to correct the location of
518 * the data read within those 32 bits for size 1 and 2
519 */
520 switch (size) {
521 case 1:
522 out_8(addr, val >> 24);
523 return 1;
524 case 2:
525 if (port & 1)
526 return -EINVAL;
527 out_le16(addr, val >> 16);
528 return 2;
529 case 4:
530 if (port & 3)
531 return -EINVAL;
532 out_le32(addr, val);
533 return 4;
534 }
535 return -EINVAL;
536}
537
538/* This provides legacy IO or memory mmap access on a bus */
539int pci_mmap_legacy_page_range(struct pci_bus *bus,
540 struct vm_area_struct *vma,
541 enum pci_mmap_state mmap_state)
542{
543 struct pci_controller *hose = pci_bus_to_host(bus);
544 resource_size_t offset =
545 ((resource_size_t)vma->vm_pgoff) << PAGE_SHIFT;
546 resource_size_t size = vma->vm_end - vma->vm_start;
547 struct resource *rp;
548
549 pr_debug("pci_mmap_legacy_page_range(%04x:%02x, %s @%llx..%llx)\n",
550 pci_domain_nr(bus), bus->number,
551 mmap_state == pci_mmap_mem ? "MEM" : "IO",
552 (unsigned long long)offset,
553 (unsigned long long)(offset + size - 1));
554
555 if (mmap_state == pci_mmap_mem) {
556 /* Hack alert !
557 *
558 * Because X is lame and can fail starting if it gets an error
559 * trying to mmap legacy_mem (instead of just moving on without
560 * legacy memory access) we fake it here by giving it anonymous
561 * memory, effectively behaving just like /dev/zero
562 */
563 if ((offset + size) > hose->isa_mem_size) {
564#ifdef CONFIG_MMU
565 printk(KERN_DEBUG
566 "Process %s (pid:%d) mapped non-existing PCI"
567 "legacy memory for 0%04x:%02x\n",
568 current->comm, current->pid, pci_domain_nr(bus),
569 bus->number);
570#endif
571 if (vma->vm_flags & VM_SHARED)
572 return shmem_zero_setup(vma);
573 return 0;
574 }
575 offset += hose->isa_mem_phys;
576 } else {
577 unsigned long io_offset = (unsigned long)hose->io_base_virt - \
578 _IO_BASE;
579 unsigned long roffset = offset + io_offset;
580 rp = &hose->io_resource;
581 if (!(rp->flags & IORESOURCE_IO))
582 return -ENXIO;
583 if (roffset < rp->start || (roffset + size) > rp->end)
584 return -ENXIO;
585 offset += hose->io_base_phys;
586 }
587 pr_debug(" -> mapping phys %llx\n", (unsigned long long)offset);
588
589 vma->vm_pgoff = offset >> PAGE_SHIFT;
590 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
591 return remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
592 vma->vm_end - vma->vm_start,
593 vma->vm_page_prot);
594}
595
596void pci_resource_to_user(const struct pci_dev *dev, int bar,
597 const struct resource *rsrc,
598 resource_size_t *start, resource_size_t *end)
599{
600 struct pci_controller *hose = pci_bus_to_host(dev->bus);
601 resource_size_t offset = 0;
602
603 if (hose == NULL)
604 return;
605
606 if (rsrc->flags & IORESOURCE_IO)
607 offset = (unsigned long)hose->io_base_virt - _IO_BASE;
608
609 /* We pass a fully fixed up address to userland for MMIO instead of
610 * a BAR value because X is lame and expects to be able to use that
611 * to pass to /dev/mem !
612 *
613 * That means that we'll have potentially 64 bits values where some
614 * userland apps only expect 32 (like X itself since it thinks only
615 * Sparc has 64 bits MMIO) but if we don't do that, we break it on
616 * 32 bits CHRPs :-(
617 *
618 * Hopefully, the sysfs insterface is immune to that gunk. Once X
619 * has been fixed (and the fix spread enough), we can re-enable the
620 * 2 lines below and pass down a BAR value to userland. In that case
621 * we'll also have to re-enable the matching code in
622 * __pci_mmap_make_offset().
623 *
624 * BenH.
625 */
626#if 0
627 else if (rsrc->flags & IORESOURCE_MEM)
628 offset = hose->pci_mem_offset;
629#endif
630
631 *start = rsrc->start - offset;
632 *end = rsrc->end - offset;
633}
634
635/**
636 * pci_process_bridge_OF_ranges - Parse PCI bridge resources from device tree
637 * @hose: newly allocated pci_controller to be setup
638 * @dev: device node of the host bridge
639 * @primary: set if primary bus (32 bits only, soon to be deprecated)
640 *
641 * This function will parse the "ranges" property of a PCI host bridge device
642 * node and setup the resource mapping of a pci controller based on its
643 * content.
644 *
645 * Life would be boring if it wasn't for a few issues that we have to deal
646 * with here:
647 *
648 * - We can only cope with one IO space range and up to 3 Memory space
649 * ranges. However, some machines (thanks Apple !) tend to split their
650 * space into lots of small contiguous ranges. So we have to coalesce.
651 *
652 * - We can only cope with all memory ranges having the same offset
653 * between CPU addresses and PCI addresses. Unfortunately, some bridges
654 * are setup for a large 1:1 mapping along with a small "window" which
655 * maps PCI address 0 to some arbitrary high address of the CPU space in
656 * order to give access to the ISA memory hole.
657 * The way out of here that I've chosen for now is to always set the
658 * offset based on the first resource found, then override it if we
659 * have a different offset and the previous was set by an ISA hole.
660 *
661 * - Some busses have IO space not starting at 0, which causes trouble with
662 * the way we do our IO resource renumbering. The code somewhat deals with
663 * it for 64 bits but I would expect problems on 32 bits.
664 *
665 * - Some 32 bits platforms such as 4xx can have physical space larger than
666 * 32 bits so we need to use 64 bits values for the parsing
667 */
668void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose,
669 struct device_node *dev,
670 int primary)
671{
672 const u32 *ranges;
673 int rlen;
674 int pna = of_n_addr_cells(dev);
675 int np = pna + 5;
676 int memno = 0, isa_hole = -1;
677 u32 pci_space;
678 unsigned long long pci_addr, cpu_addr, pci_next, cpu_next, size;
679 unsigned long long isa_mb = 0;
680 struct resource *res;
681
682 printk(KERN_INFO "PCI host bridge %s %s ranges:\n",
683 dev->full_name, primary ? "(primary)" : "");
684
685 /* Get ranges property */
686 ranges = of_get_property(dev, "ranges", &rlen);
687 if (ranges == NULL)
688 return;
689
690 /* Parse it */
691 pr_debug("Parsing ranges property...\n");
692 while ((rlen -= np * 4) >= 0) {
693 /* Read next ranges element */
694 pci_space = ranges[0];
695 pci_addr = of_read_number(ranges + 1, 2);
696 cpu_addr = of_translate_address(dev, ranges + 3);
697 size = of_read_number(ranges + pna + 3, 2);
698
699 pr_debug("pci_space: 0x%08x pci_addr:0x%016llx "
700 "cpu_addr:0x%016llx size:0x%016llx\n",
701 pci_space, pci_addr, cpu_addr, size);
702
703 ranges += np;
704
705 /* If we failed translation or got a zero-sized region
706 * (some FW try to feed us with non sensical zero sized regions
707 * such as power3 which look like some kind of attempt
708 * at exposing the VGA memory hole)
709 */
710 if (cpu_addr == OF_BAD_ADDR || size == 0)
711 continue;
712
713 /* Now consume following elements while they are contiguous */
714 for (; rlen >= np * sizeof(u32);
715 ranges += np, rlen -= np * 4) {
716 if (ranges[0] != pci_space)
717 break;
718 pci_next = of_read_number(ranges + 1, 2);
719 cpu_next = of_translate_address(dev, ranges + 3);
720 if (pci_next != pci_addr + size ||
721 cpu_next != cpu_addr + size)
722 break;
723 size += of_read_number(ranges + pna + 3, 2);
724 }
725
726 /* Act based on address space type */
727 res = NULL;
728 switch ((pci_space >> 24) & 0x3) {
729 case 1: /* PCI IO space */
730 printk(KERN_INFO
731 " IO 0x%016llx..0x%016llx -> 0x%016llx\n",
732 cpu_addr, cpu_addr + size - 1, pci_addr);
733
734 /* We support only one IO range */
735 if (hose->pci_io_size) {
736 printk(KERN_INFO
737 " \\--> Skipped (too many) !\n");
738 continue;
739 }
740 /* On 32 bits, limit I/O space to 16MB */
741 if (size > 0x01000000)
742 size = 0x01000000;
743
744 /* 32 bits needs to map IOs here */
745 hose->io_base_virt = ioremap(cpu_addr, size);
746
747 /* Expect trouble if pci_addr is not 0 */
748 if (primary)
749 isa_io_base =
750 (unsigned long)hose->io_base_virt;
751 /* pci_io_size and io_base_phys always represent IO
752 * space starting at 0 so we factor in pci_addr
753 */
754 hose->pci_io_size = pci_addr + size;
755 hose->io_base_phys = cpu_addr - pci_addr;
756
757 /* Build resource */
758 res = &hose->io_resource;
759 res->flags = IORESOURCE_IO;
760 res->start = pci_addr;
761 break;
762 case 2: /* PCI Memory space */
763 case 3: /* PCI 64 bits Memory space */
764 printk(KERN_INFO
765 " MEM 0x%016llx..0x%016llx -> 0x%016llx %s\n",
766 cpu_addr, cpu_addr + size - 1, pci_addr,
767 (pci_space & 0x40000000) ? "Prefetch" : "");
768
769 /* We support only 3 memory ranges */
770 if (memno >= 3) {
771 printk(KERN_INFO
772 " \\--> Skipped (too many) !\n");
773 continue;
774 }
775 /* Handles ISA memory hole space here */
776 if (pci_addr == 0) {
777 isa_mb = cpu_addr;
778 isa_hole = memno;
779 if (primary || isa_mem_base == 0)
780 isa_mem_base = cpu_addr;
781 hose->isa_mem_phys = cpu_addr;
782 hose->isa_mem_size = size;
783 }
784
785 /* We get the PCI/Mem offset from the first range or
786 * the, current one if the offset came from an ISA
787 * hole. If they don't match, bugger.
788 */
789 if (memno == 0 ||
790 (isa_hole >= 0 && pci_addr != 0 &&
791 hose->pci_mem_offset == isa_mb))
792 hose->pci_mem_offset = cpu_addr - pci_addr;
793 else if (pci_addr != 0 &&
794 hose->pci_mem_offset != cpu_addr - pci_addr) {
795 printk(KERN_INFO
796 " \\--> Skipped (offset mismatch) !\n");
797 continue;
798 }
799
800 /* Build resource */
801 res = &hose->mem_resources[memno++];
802 res->flags = IORESOURCE_MEM;
803 if (pci_space & 0x40000000)
804 res->flags |= IORESOURCE_PREFETCH;
805 res->start = cpu_addr;
806 break;
807 }
808 if (res != NULL) {
809 res->name = dev->full_name;
810 res->end = res->start + size - 1;
811 res->parent = NULL;
812 res->sibling = NULL;
813 res->child = NULL;
814 }
815 }
816
817 /* If there's an ISA hole and the pci_mem_offset is -not- matching
818 * the ISA hole offset, then we need to remove the ISA hole from
819 * the resource list for that brige
820 */
821 if (isa_hole >= 0 && hose->pci_mem_offset != isa_mb) {
822 unsigned int next = isa_hole + 1;
823 printk(KERN_INFO " Removing ISA hole at 0x%016llx\n", isa_mb);
824 if (next < memno)
825 memmove(&hose->mem_resources[isa_hole],
826 &hose->mem_resources[next],
827 sizeof(struct resource) * (memno - next));
828 hose->mem_resources[--memno].flags = 0;
829 }
830}
831
832/* Decide whether to display the domain number in /proc */
833int pci_proc_domain(struct pci_bus *bus)
834{
835 struct pci_controller *hose = pci_bus_to_host(bus);
836
837 if (!(pci_flags & PCI_ENABLE_PROC_DOMAINS))
838 return 0;
839 if (pci_flags & PCI_COMPAT_DOMAIN_0)
840 return hose->global_number != 0;
841 return 1;
842}
843
844void pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region,
845 struct resource *res)
846{
847 resource_size_t offset = 0, mask = (resource_size_t)-1;
848 struct pci_controller *hose = pci_bus_to_host(dev->bus);
849
850 if (!hose)
851 return;
852 if (res->flags & IORESOURCE_IO) {
853 offset = (unsigned long)hose->io_base_virt - _IO_BASE;
854 mask = 0xffffffffu;
855 } else if (res->flags & IORESOURCE_MEM)
856 offset = hose->pci_mem_offset;
857
858 region->start = (res->start - offset) & mask;
859 region->end = (res->end - offset) & mask;
860}
861EXPORT_SYMBOL(pcibios_resource_to_bus);
862
863void pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res,
864 struct pci_bus_region *region)
865{
866 resource_size_t offset = 0, mask = (resource_size_t)-1;
867 struct pci_controller *hose = pci_bus_to_host(dev->bus);
868
869 if (!hose)
870 return;
871 if (res->flags & IORESOURCE_IO) {
872 offset = (unsigned long)hose->io_base_virt - _IO_BASE;
873 mask = 0xffffffffu;
874 } else if (res->flags & IORESOURCE_MEM)
875 offset = hose->pci_mem_offset;
876 res->start = (region->start + offset) & mask;
877 res->end = (region->end + offset) & mask;
878}
879EXPORT_SYMBOL(pcibios_bus_to_resource);
880
881/* Fixup a bus resource into a linux resource */
882static void __devinit fixup_resource(struct resource *res, struct pci_dev *dev)
883{
884 struct pci_controller *hose = pci_bus_to_host(dev->bus);
885 resource_size_t offset = 0, mask = (resource_size_t)-1;
886
887 if (res->flags & IORESOURCE_IO) {
888 offset = (unsigned long)hose->io_base_virt - _IO_BASE;
889 mask = 0xffffffffu;
890 } else if (res->flags & IORESOURCE_MEM)
891 offset = hose->pci_mem_offset;
892
893 res->start = (res->start + offset) & mask;
894 res->end = (res->end + offset) & mask;
895}
896
897/* This header fixup will do the resource fixup for all devices as they are
898 * probed, but not for bridge ranges
899 */
900static void __devinit pcibios_fixup_resources(struct pci_dev *dev)
901{
902 struct pci_controller *hose = pci_bus_to_host(dev->bus);
903 int i;
904
905 if (!hose) {
906 printk(KERN_ERR "No host bridge for PCI dev %s !\n",
907 pci_name(dev));
908 return;
909 }
910 for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
911 struct resource *res = dev->resource + i;
912 if (!res->flags)
913 continue;
914 /* On platforms that have PCI_PROBE_ONLY set, we don't
915 * consider 0 as an unassigned BAR value. It's technically
916 * a valid value, but linux doesn't like it... so when we can
917 * re-assign things, we do so, but if we can't, we keep it
918 * around and hope for the best...
919 */
920 if (res->start == 0 && !(pci_flags & PCI_PROBE_ONLY)) {
921 pr_debug("PCI:%s Resource %d %016llx-%016llx [%x]" \
922 "is unassigned\n",
923 pci_name(dev), i,
924 (unsigned long long)res->start,
925 (unsigned long long)res->end,
926 (unsigned int)res->flags);
927 res->end -= res->start;
928 res->start = 0;
929 res->flags |= IORESOURCE_UNSET;
930 continue;
931 }
932
933 pr_debug("PCI:%s Resource %d %016llx-%016llx [%x] fixup...\n",
934 pci_name(dev), i,
935 (unsigned long long)res->start,\
936 (unsigned long long)res->end,
937 (unsigned int)res->flags);
938
939 fixup_resource(res, dev);
940
941 pr_debug("PCI:%s %016llx-%016llx\n",
942 pci_name(dev),
943 (unsigned long long)res->start,
944 (unsigned long long)res->end);
945 }
946}
947DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pcibios_fixup_resources);
948
949/* This function tries to figure out if a bridge resource has been initialized
950 * by the firmware or not. It doesn't have to be absolutely bullet proof, but
951 * things go more smoothly when it gets it right. It should covers cases such
952 * as Apple "closed" bridge resources and bare-metal pSeries unassigned bridges
953 */
954static int __devinit pcibios_uninitialized_bridge_resource(struct pci_bus *bus,
955 struct resource *res)
956{
957 struct pci_controller *hose = pci_bus_to_host(bus);
958 struct pci_dev *dev = bus->self;
959 resource_size_t offset;
960 u16 command;
961 int i;
962
963 /* We don't do anything if PCI_PROBE_ONLY is set */
964 if (pci_flags & PCI_PROBE_ONLY)
965 return 0;
966
967 /* Job is a bit different between memory and IO */
968 if (res->flags & IORESOURCE_MEM) {
969 /* If the BAR is non-0 (res != pci_mem_offset) then it's
970 * probably been initialized by somebody
971 */
972 if (res->start != hose->pci_mem_offset)
973 return 0;
974
975 /* The BAR is 0, let's check if memory decoding is enabled on
976 * the bridge. If not, we consider it unassigned
977 */
978 pci_read_config_word(dev, PCI_COMMAND, &command);
979 if ((command & PCI_COMMAND_MEMORY) == 0)
980 return 1;
981
982 /* Memory decoding is enabled and the BAR is 0. If any of
983 * the bridge resources covers that starting address (0 then
984 * it's good enough for us for memory
985 */
986 for (i = 0; i < 3; i++) {
987 if ((hose->mem_resources[i].flags & IORESOURCE_MEM) &&
988 hose->mem_resources[i].start == hose->pci_mem_offset)
989 return 0;
990 }
991
992 /* Well, it starts at 0 and we know it will collide so we may as
993 * well consider it as unassigned. That covers the Apple case.
994 */
995 return 1;
996 } else {
997 /* If the BAR is non-0, then we consider it assigned */
998 offset = (unsigned long)hose->io_base_virt - _IO_BASE;
999 if (((res->start - offset) & 0xfffffffful) != 0)
1000 return 0;
1001
1002 /* Here, we are a bit different than memory as typically IO
1003 * space starting at low addresses -is- valid. What we do
1004 * instead if that we consider as unassigned anything that
1005 * doesn't have IO enabled in the PCI command register,
1006 * and that's it.
1007 */
1008 pci_read_config_word(dev, PCI_COMMAND, &command);
1009 if (command & PCI_COMMAND_IO)
1010 return 0;
1011
1012 /* It's starting at 0 and IO is disabled in the bridge, consider
1013 * it unassigned
1014 */
1015 return 1;
1016 }
1017}
1018
1019/* Fixup resources of a PCI<->PCI bridge */
1020static void __devinit pcibios_fixup_bridge(struct pci_bus *bus)
1021{
1022 struct resource *res;
1023 int i;
1024
1025 struct pci_dev *dev = bus->self;
1026
1027 for (i = 0; i < PCI_BUS_NUM_RESOURCES; ++i) {
1028 res = bus->resource[i];
1029 if (!res)
1030 continue;
1031 if (!res->flags)
1032 continue;
1033 if (i >= 3 && bus->self->transparent)
1034 continue;
1035
1036 pr_debug("PCI:%s Bus rsrc %d %016llx-%016llx [%x] fixup...\n",
1037 pci_name(dev), i,
1038 (unsigned long long)res->start,\
1039 (unsigned long long)res->end,
1040 (unsigned int)res->flags);
1041
1042 /* Perform fixup */
1043 fixup_resource(res, dev);
1044
1045 /* Try to detect uninitialized P2P bridge resources,
1046 * and clear them out so they get re-assigned later
1047 */
1048 if (pcibios_uninitialized_bridge_resource(bus, res)) {
1049 res->flags = 0;
1050 pr_debug("PCI:%s (unassigned)\n",
1051 pci_name(dev));
1052 } else {
1053 pr_debug("PCI:%s %016llx-%016llx\n",
1054 pci_name(dev),
1055 (unsigned long long)res->start,
1056 (unsigned long long)res->end);
1057 }
1058 }
1059}
1060
1061void __devinit pcibios_setup_bus_self(struct pci_bus *bus)
1062{
1063 /* Fix up the bus resources for P2P bridges */
1064 if (bus->self != NULL)
1065 pcibios_fixup_bridge(bus);
1066}
1067
1068void __devinit pcibios_setup_bus_devices(struct pci_bus *bus)
1069{
1070 struct pci_dev *dev;
1071
1072 pr_debug("PCI: Fixup bus devices %d (%s)\n",
1073 bus->number, bus->self ? pci_name(bus->self) : "PHB");
1074
1075 list_for_each_entry(dev, &bus->devices, bus_list) {
1076 struct dev_archdata *sd = &dev->dev.archdata;
1077
1078 /* Setup OF node pointer in archdata */
1079 sd->of_node = pci_device_to_OF_node(dev);
1080
1081 /* Fixup NUMA node as it may not be setup yet by the generic
1082 * code and is needed by the DMA init
1083 */
1084 set_dev_node(&dev->dev, pcibus_to_node(dev->bus));
1085
1086 /* Hook up default DMA ops */
1087 sd->dma_ops = pci_dma_ops;
1088 sd->dma_data = (void *)PCI_DRAM_OFFSET;
1089
1090 /* Read default IRQs and fixup if necessary */
1091 pci_read_irq_line(dev);
1092 }
1093}
1094
1095void __devinit pcibios_fixup_bus(struct pci_bus *bus)
1096{
1097 /* When called from the generic PCI probe, read PCI<->PCI bridge
1098 * bases. This is -not- called when generating the PCI tree from
1099 * the OF device-tree.
1100 */
1101 if (bus->self != NULL)
1102 pci_read_bridge_bases(bus);
1103
1104 /* Now fixup the bus bus */
1105 pcibios_setup_bus_self(bus);
1106
1107 /* Now fixup devices on that bus */
1108 pcibios_setup_bus_devices(bus);
1109}
1110EXPORT_SYMBOL(pcibios_fixup_bus);
1111
1112static int skip_isa_ioresource_align(struct pci_dev *dev)
1113{
1114 if ((pci_flags & PCI_CAN_SKIP_ISA_ALIGN) &&
1115 !(dev->bus->bridge_ctl & PCI_BRIDGE_CTL_ISA))
1116 return 1;
1117 return 0;
1118}
1119
1120/*
1121 * We need to avoid collisions with `mirrored' VGA ports
1122 * and other strange ISA hardware, so we always want the
1123 * addresses to be allocated in the 0x000-0x0ff region
1124 * modulo 0x400.
1125 *
1126 * Why? Because some silly external IO cards only decode
1127 * the low 10 bits of the IO address. The 0x00-0xff region
1128 * is reserved for motherboard devices that decode all 16
1129 * bits, so it's ok to allocate at, say, 0x2800-0x28ff,
1130 * but we want to try to avoid allocating at 0x2900-0x2bff
1131 * which might have be mirrored at 0x0100-0x03ff..
1132 */
1133void pcibios_align_resource(void *data, struct resource *res,
1134 resource_size_t size, resource_size_t align)
1135{
1136 struct pci_dev *dev = data;
1137
1138 if (res->flags & IORESOURCE_IO) {
1139 resource_size_t start = res->start;
1140
1141 if (skip_isa_ioresource_align(dev))
1142 return;
1143 if (start & 0x300) {
1144 start = (start + 0x3ff) & ~0x3ff;
1145 res->start = start;
1146 }
1147 }
1148}
1149EXPORT_SYMBOL(pcibios_align_resource);
1150
1151/*
1152 * Reparent resource children of pr that conflict with res
1153 * under res, and make res replace those children.
1154 */
1155static int __init reparent_resources(struct resource *parent,
1156 struct resource *res)
1157{
1158 struct resource *p, **pp;
1159 struct resource **firstpp = NULL;
1160
1161 for (pp = &parent->child; (p = *pp) != NULL; pp = &p->sibling) {
1162 if (p->end < res->start)
1163 continue;
1164 if (res->end < p->start)
1165 break;
1166 if (p->start < res->start || p->end > res->end)
1167 return -1; /* not completely contained */
1168 if (firstpp == NULL)
1169 firstpp = pp;
1170 }
1171 if (firstpp == NULL)
1172 return -1; /* didn't find any conflicting entries? */
1173 res->parent = parent;
1174 res->child = *firstpp;
1175 res->sibling = *pp;
1176 *firstpp = res;
1177 *pp = NULL;
1178 for (p = res->child; p != NULL; p = p->sibling) {
1179 p->parent = res;
1180 pr_debug("PCI: Reparented %s [%llx..%llx] under %s\n",
1181 p->name,
1182 (unsigned long long)p->start,
1183 (unsigned long long)p->end, res->name);
1184 }
1185 return 0;
1186}
1187
1188/*
1189 * Handle resources of PCI devices. If the world were perfect, we could
1190 * just allocate all the resource regions and do nothing more. It isn't.
1191 * On the other hand, we cannot just re-allocate all devices, as it would
1192 * require us to know lots of host bridge internals. So we attempt to
1193 * keep as much of the original configuration as possible, but tweak it
1194 * when it's found to be wrong.
1195 *
1196 * Known BIOS problems we have to work around:
1197 * - I/O or memory regions not configured
1198 * - regions configured, but not enabled in the command register
1199 * - bogus I/O addresses above 64K used
1200 * - expansion ROMs left enabled (this may sound harmless, but given
1201 * the fact the PCI specs explicitly allow address decoders to be
1202 * shared between expansion ROMs and other resource regions, it's
1203 * at least dangerous)
1204 *
1205 * Our solution:
1206 * (1) Allocate resources for all buses behind PCI-to-PCI bridges.
1207 * This gives us fixed barriers on where we can allocate.
1208 * (2) Allocate resources for all enabled devices. If there is
1209 * a collision, just mark the resource as unallocated. Also
1210 * disable expansion ROMs during this step.
1211 * (3) Try to allocate resources for disabled devices. If the
1212 * resources were assigned correctly, everything goes well,
1213 * if they weren't, they won't disturb allocation of other
1214 * resources.
1215 * (4) Assign new addresses to resources which were either
1216 * not configured at all or misconfigured. If explicitly
1217 * requested by the user, configure expansion ROM address
1218 * as well.
1219 */
1220
1221void pcibios_allocate_bus_resources(struct pci_bus *bus)
1222{
1223 struct pci_bus *b;
1224 int i;
1225 struct resource *res, *pr;
1226
1227 pr_debug("PCI: Allocating bus resources for %04x:%02x...\n",
1228 pci_domain_nr(bus), bus->number);
1229
1230 for (i = 0; i < PCI_BUS_NUM_RESOURCES; ++i) {
1231 res = bus->resource[i];
1232 if (!res || !res->flags
1233 || res->start > res->end || res->parent)
1234 continue;
1235 if (bus->parent == NULL)
1236 pr = (res->flags & IORESOURCE_IO) ?
1237 &ioport_resource : &iomem_resource;
1238 else {
1239 /* Don't bother with non-root busses when
1240 * re-assigning all resources. We clear the
1241 * resource flags as if they were colliding
1242 * and as such ensure proper re-allocation
1243 * later.
1244 */
1245 if (pci_flags & PCI_REASSIGN_ALL_RSRC)
1246 goto clear_resource;
1247 pr = pci_find_parent_resource(bus->self, res);
1248 if (pr == res) {
1249 /* this happens when the generic PCI
1250 * code (wrongly) decides that this
1251 * bridge is transparent -- paulus
1252 */
1253 continue;
1254 }
1255 }
1256
1257 pr_debug("PCI: %s (bus %d) bridge rsrc %d: %016llx-%016llx "
1258 "[0x%x], parent %p (%s)\n",
1259 bus->self ? pci_name(bus->self) : "PHB",
1260 bus->number, i,
1261 (unsigned long long)res->start,
1262 (unsigned long long)res->end,
1263 (unsigned int)res->flags,
1264 pr, (pr && pr->name) ? pr->name : "nil");
1265
1266 if (pr && !(pr->flags & IORESOURCE_UNSET)) {
1267 if (request_resource(pr, res) == 0)
1268 continue;
1269 /*
1270 * Must be a conflict with an existing entry.
1271 * Move that entry (or entries) under the
1272 * bridge resource and try again.
1273 */
1274 if (reparent_resources(pr, res) == 0)
1275 continue;
1276 }
1277 printk(KERN_WARNING "PCI: Cannot allocate resource region "
1278 "%d of PCI bridge %d, will remap\n", i, bus->number);
1279clear_resource:
1280 res->flags = 0;
1281 }
1282
1283 list_for_each_entry(b, &bus->children, node)
1284 pcibios_allocate_bus_resources(b);
1285}
1286
1287static inline void __devinit alloc_resource(struct pci_dev *dev, int idx)
1288{
1289 struct resource *pr, *r = &dev->resource[idx];
1290
1291 pr_debug("PCI: Allocating %s: Resource %d: %016llx..%016llx [%x]\n",
1292 pci_name(dev), idx,
1293 (unsigned long long)r->start,
1294 (unsigned long long)r->end,
1295 (unsigned int)r->flags);
1296
1297 pr = pci_find_parent_resource(dev, r);
1298 if (!pr || (pr->flags & IORESOURCE_UNSET) ||
1299 request_resource(pr, r) < 0) {
1300 printk(KERN_WARNING "PCI: Cannot allocate resource region %d"
1301 " of device %s, will remap\n", idx, pci_name(dev));
1302 if (pr)
1303 pr_debug("PCI: parent is %p: %016llx-%016llx [%x]\n",
1304 pr,
1305 (unsigned long long)pr->start,
1306 (unsigned long long)pr->end,
1307 (unsigned int)pr->flags);
1308 /* We'll assign a new address later */
1309 r->flags |= IORESOURCE_UNSET;
1310 r->end -= r->start;
1311 r->start = 0;
1312 }
1313}
1314
1315static void __init pcibios_allocate_resources(int pass)
1316{
1317 struct pci_dev *dev = NULL;
1318 int idx, disabled;
1319 u16 command;
1320 struct resource *r;
1321
1322 for_each_pci_dev(dev) {
1323 pci_read_config_word(dev, PCI_COMMAND, &command);
1324 for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) {
1325 r = &dev->resource[idx];
1326 if (r->parent) /* Already allocated */
1327 continue;
1328 if (!r->flags || (r->flags & IORESOURCE_UNSET))
1329 continue; /* Not assigned at all */
1330 /* We only allocate ROMs on pass 1 just in case they
1331 * have been screwed up by firmware
1332 */
1333 if (idx == PCI_ROM_RESOURCE)
1334 disabled = 1;
1335 if (r->flags & IORESOURCE_IO)
1336 disabled = !(command & PCI_COMMAND_IO);
1337 else
1338 disabled = !(command & PCI_COMMAND_MEMORY);
1339 if (pass == disabled)
1340 alloc_resource(dev, idx);
1341 }
1342 if (pass)
1343 continue;
1344 r = &dev->resource[PCI_ROM_RESOURCE];
1345 if (r->flags) {
1346 /* Turn the ROM off, leave the resource region,
1347 * but keep it unregistered.
1348 */
1349 u32 reg;
1350 pci_read_config_dword(dev, dev->rom_base_reg, &reg);
1351 if (reg & PCI_ROM_ADDRESS_ENABLE) {
1352 pr_debug("PCI: Switching off ROM of %s\n",
1353 pci_name(dev));
1354 r->flags &= ~IORESOURCE_ROM_ENABLE;
1355 pci_write_config_dword(dev, dev->rom_base_reg,
1356 reg & ~PCI_ROM_ADDRESS_ENABLE);
1357 }
1358 }
1359 }
1360}
1361
1362static void __init pcibios_reserve_legacy_regions(struct pci_bus *bus)
1363{
1364 struct pci_controller *hose = pci_bus_to_host(bus);
1365 resource_size_t offset;
1366 struct resource *res, *pres;
1367 int i;
1368
1369 pr_debug("Reserving legacy ranges for domain %04x\n",
1370 pci_domain_nr(bus));
1371
1372 /* Check for IO */
1373 if (!(hose->io_resource.flags & IORESOURCE_IO))
1374 goto no_io;
1375 offset = (unsigned long)hose->io_base_virt - _IO_BASE;
1376 res = kzalloc(sizeof(struct resource), GFP_KERNEL);
1377 BUG_ON(res == NULL);
1378 res->name = "Legacy IO";
1379 res->flags = IORESOURCE_IO;
1380 res->start = offset;
1381 res->end = (offset + 0xfff) & 0xfffffffful;
1382 pr_debug("Candidate legacy IO: %pR\n", res);
1383 if (request_resource(&hose->io_resource, res)) {
1384 printk(KERN_DEBUG
1385 "PCI %04x:%02x Cannot reserve Legacy IO %pR\n",
1386 pci_domain_nr(bus), bus->number, res);
1387 kfree(res);
1388 }
1389
1390 no_io:
1391 /* Check for memory */
1392 offset = hose->pci_mem_offset;
1393 pr_debug("hose mem offset: %016llx\n", (unsigned long long)offset);
1394 for (i = 0; i < 3; i++) {
1395 pres = &hose->mem_resources[i];
1396 if (!(pres->flags & IORESOURCE_MEM))
1397 continue;
1398 pr_debug("hose mem res: %pR\n", pres);
1399 if ((pres->start - offset) <= 0xa0000 &&
1400 (pres->end - offset) >= 0xbffff)
1401 break;
1402 }
1403 if (i >= 3)
1404 return;
1405 res = kzalloc(sizeof(struct resource), GFP_KERNEL);
1406 BUG_ON(res == NULL);
1407 res->name = "Legacy VGA memory";
1408 res->flags = IORESOURCE_MEM;
1409 res->start = 0xa0000 + offset;
1410 res->end = 0xbffff + offset;
1411 pr_debug("Candidate VGA memory: %pR\n", res);
1412 if (request_resource(pres, res)) {
1413 printk(KERN_DEBUG
1414 "PCI %04x:%02x Cannot reserve VGA memory %pR\n",
1415 pci_domain_nr(bus), bus->number, res);
1416 kfree(res);
1417 }
1418}
1419
1420void __init pcibios_resource_survey(void)
1421{
1422 struct pci_bus *b;
1423
1424 /* Allocate and assign resources. If we re-assign everything, then
1425 * we skip the allocate phase
1426 */
1427 list_for_each_entry(b, &pci_root_buses, node)
1428 pcibios_allocate_bus_resources(b);
1429
1430 if (!(pci_flags & PCI_REASSIGN_ALL_RSRC)) {
1431 pcibios_allocate_resources(0);
1432 pcibios_allocate_resources(1);
1433 }
1434
1435 /* Before we start assigning unassigned resource, we try to reserve
1436 * the low IO area and the VGA memory area if they intersect the
1437 * bus available resources to avoid allocating things on top of them
1438 */
1439 if (!(pci_flags & PCI_PROBE_ONLY)) {
1440 list_for_each_entry(b, &pci_root_buses, node)
1441 pcibios_reserve_legacy_regions(b);
1442 }
1443
1444 /* Now, if the platform didn't decide to blindly trust the firmware,
1445 * we proceed to assigning things that were left unassigned
1446 */
1447 if (!(pci_flags & PCI_PROBE_ONLY)) {
1448 pr_debug("PCI: Assigning unassigned resources...\n");
1449 pci_assign_unassigned_resources();
1450 }
1451}
1452
1453#ifdef CONFIG_HOTPLUG
1454
1455/* This is used by the PCI hotplug driver to allocate resource
1456 * of newly plugged busses. We can try to consolidate with the
1457 * rest of the code later, for now, keep it as-is as our main
1458 * resource allocation function doesn't deal with sub-trees yet.
1459 */
1460void __devinit pcibios_claim_one_bus(struct pci_bus *bus)
1461{
1462 struct pci_dev *dev;
1463 struct pci_bus *child_bus;
1464
1465 list_for_each_entry(dev, &bus->devices, bus_list) {
1466 int i;
1467
1468 for (i = 0; i < PCI_NUM_RESOURCES; i++) {
1469 struct resource *r = &dev->resource[i];
1470
1471 if (r->parent || !r->start || !r->flags)
1472 continue;
1473
1474 pr_debug("PCI: Claiming %s: "
1475 "Resource %d: %016llx..%016llx [%x]\n",
1476 pci_name(dev), i,
1477 (unsigned long long)r->start,
1478 (unsigned long long)r->end,
1479 (unsigned int)r->flags);
1480
1481 pci_claim_resource(dev, i);
1482 }
1483 }
1484
1485 list_for_each_entry(child_bus, &bus->children, node)
1486 pcibios_claim_one_bus(child_bus);
1487}
1488EXPORT_SYMBOL_GPL(pcibios_claim_one_bus);
1489
1490
1491/* pcibios_finish_adding_to_bus
1492 *
1493 * This is to be called by the hotplug code after devices have been
1494 * added to a bus, this include calling it for a PHB that is just
1495 * being added
1496 */
1497void pcibios_finish_adding_to_bus(struct pci_bus *bus)
1498{
1499 pr_debug("PCI: Finishing adding to hotplug bus %04x:%02x\n",
1500 pci_domain_nr(bus), bus->number);
1501
1502 /* Allocate bus and devices resources */
1503 pcibios_allocate_bus_resources(bus);
1504 pcibios_claim_one_bus(bus);
1505
1506 /* Add new devices to global lists. Register in proc, sysfs. */
1507 pci_bus_add_devices(bus);
1508
1509 /* Fixup EEH */
1510 eeh_add_device_tree_late(bus);
1511}
1512EXPORT_SYMBOL_GPL(pcibios_finish_adding_to_bus);
1513
1514#endif /* CONFIG_HOTPLUG */
1515
1516int pcibios_enable_device(struct pci_dev *dev, int mask)
1517{
1518 return pci_enable_resources(dev, mask);
1519}
1520
1521void __devinit pcibios_setup_phb_resources(struct pci_controller *hose)
1522{
1523 struct pci_bus *bus = hose->bus;
1524 struct resource *res;
1525 int i;
1526
1527 /* Hookup PHB IO resource */
1528 bus->resource[0] = res = &hose->io_resource;
1529
1530 if (!res->flags) {
1531 printk(KERN_WARNING "PCI: I/O resource not set for host"
1532 " bridge %s (domain %d)\n",
1533 hose->dn->full_name, hose->global_number);
1534 /* Workaround for lack of IO resource only on 32-bit */
1535 res->start = (unsigned long)hose->io_base_virt - isa_io_base;
1536 res->end = res->start + IO_SPACE_LIMIT;
1537 res->flags = IORESOURCE_IO;
1538 }
1539
1540 pr_debug("PCI: PHB IO resource = %016llx-%016llx [%lx]\n",
1541 (unsigned long long)res->start,
1542 (unsigned long long)res->end,
1543 (unsigned long)res->flags);
1544
1545 /* Hookup PHB Memory resources */
1546 for (i = 0; i < 3; ++i) {
1547 res = &hose->mem_resources[i];
1548 if (!res->flags) {
1549 if (i > 0)
1550 continue;
1551 printk(KERN_ERR "PCI: Memory resource 0 not set for "
1552 "host bridge %s (domain %d)\n",
1553 hose->dn->full_name, hose->global_number);
1554
1555 /* Workaround for lack of MEM resource only on 32-bit */
1556 res->start = hose->pci_mem_offset;
1557 res->end = (resource_size_t)-1LL;
1558 res->flags = IORESOURCE_MEM;
1559
1560 }
1561 bus->resource[i+1] = res;
1562
1563 pr_debug("PCI: PHB MEM resource %d = %016llx-%016llx [%lx]\n",
1564 i, (unsigned long long)res->start,
1565 (unsigned long long)res->end,
1566 (unsigned long)res->flags);
1567 }
1568
1569 pr_debug("PCI: PHB MEM offset = %016llx\n",
1570 (unsigned long long)hose->pci_mem_offset);
1571 pr_debug("PCI: PHB IO offset = %08lx\n",
1572 (unsigned long)hose->io_base_virt - _IO_BASE);
1573}
1574
1575/*
1576 * Null PCI config access functions, for the case when we can't
1577 * find a hose.
1578 */
1579#define NULL_PCI_OP(rw, size, type) \
1580static int \
1581null_##rw##_config_##size(struct pci_dev *dev, int offset, type val) \
1582{ \
1583 return PCIBIOS_DEVICE_NOT_FOUND; \
1584}
1585
1586static int
1587null_read_config(struct pci_bus *bus, unsigned int devfn, int offset,
1588 int len, u32 *val)
1589{
1590 return PCIBIOS_DEVICE_NOT_FOUND;
1591}
1592
1593static int
1594null_write_config(struct pci_bus *bus, unsigned int devfn, int offset,
1595 int len, u32 val)
1596{
1597 return PCIBIOS_DEVICE_NOT_FOUND;
1598}
1599
1600static struct pci_ops null_pci_ops = {
1601 .read = null_read_config,
1602 .write = null_write_config,
1603};
1604
1605/*
1606 * These functions are used early on before PCI scanning is done
1607 * and all of the pci_dev and pci_bus structures have been created.
1608 */
1609static struct pci_bus *
1610fake_pci_bus(struct pci_controller *hose, int busnr)
1611{
1612 static struct pci_bus bus;
1613
1614 if (!hose)
1615 printk(KERN_ERR "Can't find hose for PCI bus %d!\n", busnr);
1616
1617 bus.number = busnr;
1618 bus.sysdata = hose;
1619 bus.ops = hose ? hose->ops : &null_pci_ops;
1620 return &bus;
1621}
1622
1623#define EARLY_PCI_OP(rw, size, type) \
1624int early_##rw##_config_##size(struct pci_controller *hose, int bus, \
1625 int devfn, int offset, type value) \
1626{ \
1627 return pci_bus_##rw##_config_##size(fake_pci_bus(hose, bus), \
1628 devfn, offset, value); \
1629}
1630
1631EARLY_PCI_OP(read, byte, u8 *)
1632EARLY_PCI_OP(read, word, u16 *)
1633EARLY_PCI_OP(read, dword, u32 *)
1634EARLY_PCI_OP(write, byte, u8)
1635EARLY_PCI_OP(write, word, u16)
1636EARLY_PCI_OP(write, dword, u32)
1637
1638int early_find_capability(struct pci_controller *hose, int bus, int devfn,
1639 int cap)
1640{
1641 return pci_bus_find_capability(fake_pci_bus(hose, bus), devfn, cap);
1642}
diff --git a/arch/microblaze/pci/pci_32.c b/arch/microblaze/pci/pci_32.c
new file mode 100644
index 000000000000..7e0c94f501cc
--- /dev/null
+++ b/arch/microblaze/pci/pci_32.c
@@ -0,0 +1,430 @@
1/*
2 * Common pmac/prep/chrp pci routines. -- Cort
3 */
4
5#include <linux/kernel.h>
6#include <linux/pci.h>
7#include <linux/delay.h>
8#include <linux/string.h>
9#include <linux/init.h>
10#include <linux/capability.h>
11#include <linux/sched.h>
12#include <linux/errno.h>
13#include <linux/bootmem.h>
14#include <linux/irq.h>
15#include <linux/list.h>
16#include <linux/of.h>
17
18#include <asm/processor.h>
19#include <asm/io.h>
20#include <asm/prom.h>
21#include <asm/sections.h>
22#include <asm/pci-bridge.h>
23#include <asm/byteorder.h>
24#include <asm/uaccess.h>
25
26#undef DEBUG
27
28unsigned long isa_io_base;
29unsigned long pci_dram_offset;
30int pcibios_assign_bus_offset = 1;
31
32static u8 *pci_to_OF_bus_map;
33
34/* By default, we don't re-assign bus numbers. We do this only on
35 * some pmacs
36 */
37static int pci_assign_all_buses;
38
39static int pci_bus_count;
40
41/*
42 * Functions below are used on OpenFirmware machines.
43 */
44static void
45make_one_node_map(struct device_node *node, u8 pci_bus)
46{
47 const int *bus_range;
48 int len;
49
50 if (pci_bus >= pci_bus_count)
51 return;
52 bus_range = of_get_property(node, "bus-range", &len);
53 if (bus_range == NULL || len < 2 * sizeof(int)) {
54 printk(KERN_WARNING "Can't get bus-range for %s, "
55 "assuming it starts at 0\n", node->full_name);
56 pci_to_OF_bus_map[pci_bus] = 0;
57 } else
58 pci_to_OF_bus_map[pci_bus] = bus_range[0];
59
60 for_each_child_of_node(node, node) {
61 struct pci_dev *dev;
62 const unsigned int *class_code, *reg;
63
64 class_code = of_get_property(node, "class-code", NULL);
65 if (!class_code ||
66 ((*class_code >> 8) != PCI_CLASS_BRIDGE_PCI &&
67 (*class_code >> 8) != PCI_CLASS_BRIDGE_CARDBUS))
68 continue;
69 reg = of_get_property(node, "reg", NULL);
70 if (!reg)
71 continue;
72 dev = pci_get_bus_and_slot(pci_bus, ((reg[0] >> 8) & 0xff));
73 if (!dev || !dev->subordinate) {
74 pci_dev_put(dev);
75 continue;
76 }
77 make_one_node_map(node, dev->subordinate->number);
78 pci_dev_put(dev);
79 }
80}
81
82void
83pcibios_make_OF_bus_map(void)
84{
85 int i;
86 struct pci_controller *hose, *tmp;
87 struct property *map_prop;
88 struct device_node *dn;
89
90 pci_to_OF_bus_map = kmalloc(pci_bus_count, GFP_KERNEL);
91 if (!pci_to_OF_bus_map) {
92 printk(KERN_ERR "Can't allocate OF bus map !\n");
93 return;
94 }
95
96 /* We fill the bus map with invalid values, that helps
97 * debugging.
98 */
99 for (i = 0; i < pci_bus_count; i++)
100 pci_to_OF_bus_map[i] = 0xff;
101
102 /* For each hose, we begin searching bridges */
103 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) {
104 struct device_node *node = hose->dn;
105
106 if (!node)
107 continue;
108 make_one_node_map(node, hose->first_busno);
109 }
110 dn = of_find_node_by_path("/");
111 map_prop = of_find_property(dn, "pci-OF-bus-map", NULL);
112 if (map_prop) {
113 BUG_ON(pci_bus_count > map_prop->length);
114 memcpy(map_prop->value, pci_to_OF_bus_map, pci_bus_count);
115 }
116 of_node_put(dn);
117#ifdef DEBUG
118 printk(KERN_INFO "PCI->OF bus map:\n");
119 for (i = 0; i < pci_bus_count; i++) {
120 if (pci_to_OF_bus_map[i] == 0xff)
121 continue;
122 printk(KERN_INFO "%d -> %d\n", i, pci_to_OF_bus_map[i]);
123 }
124#endif
125}
126
127typedef int (*pci_OF_scan_iterator)(struct device_node *node, void *data);
128
129static struct device_node *scan_OF_pci_childs(struct device_node *parent,
130 pci_OF_scan_iterator filter, void *data)
131{
132 struct device_node *node;
133 struct device_node *sub_node;
134
135 for_each_child_of_node(parent, node) {
136 const unsigned int *class_code;
137
138 if (filter(node, data)) {
139 of_node_put(node);
140 return node;
141 }
142
143 /* For PCI<->PCI bridges or CardBus bridges, we go down
144 * Note: some OFs create a parent node "multifunc-device" as
145 * a fake root for all functions of a multi-function device,
146 * we go down them as well.
147 */
148 class_code = of_get_property(node, "class-code", NULL);
149 if ((!class_code ||
150 ((*class_code >> 8) != PCI_CLASS_BRIDGE_PCI &&
151 (*class_code >> 8) != PCI_CLASS_BRIDGE_CARDBUS)) &&
152 strcmp(node->name, "multifunc-device"))
153 continue;
154 sub_node = scan_OF_pci_childs(node, filter, data);
155 if (sub_node) {
156 of_node_put(node);
157 return sub_node;
158 }
159 }
160 return NULL;
161}
162
163static struct device_node *scan_OF_for_pci_dev(struct device_node *parent,
164 unsigned int devfn)
165{
166 struct device_node *np, *cnp;
167 const u32 *reg;
168 unsigned int psize;
169
170 for_each_child_of_node(parent, np) {
171 reg = of_get_property(np, "reg", &psize);
172 if (reg && psize >= 4 && ((reg[0] >> 8) & 0xff) == devfn)
173 return np;
174
175 /* Note: some OFs create a parent node "multifunc-device" as
176 * a fake root for all functions of a multi-function device,
177 * we go down them as well. */
178 if (!strcmp(np->name, "multifunc-device")) {
179 cnp = scan_OF_for_pci_dev(np, devfn);
180 if (cnp)
181 return cnp;
182 }
183 }
184 return NULL;
185}
186
187
188static struct device_node *scan_OF_for_pci_bus(struct pci_bus *bus)
189{
190 struct device_node *parent, *np;
191
192 /* Are we a root bus ? */
193 if (bus->self == NULL || bus->parent == NULL) {
194 struct pci_controller *hose = pci_bus_to_host(bus);
195 if (hose == NULL)
196 return NULL;
197 return of_node_get(hose->dn);
198 }
199
200 /* not a root bus, we need to get our parent */
201 parent = scan_OF_for_pci_bus(bus->parent);
202 if (parent == NULL)
203 return NULL;
204
205 /* now iterate for children for a match */
206 np = scan_OF_for_pci_dev(parent, bus->self->devfn);
207 of_node_put(parent);
208
209 return np;
210}
211
212/*
213 * Scans the OF tree for a device node matching a PCI device
214 */
215struct device_node *
216pci_busdev_to_OF_node(struct pci_bus *bus, int devfn)
217{
218 struct device_node *parent, *np;
219
220 pr_debug("pci_busdev_to_OF_node(%d,0x%x)\n", bus->number, devfn);
221 parent = scan_OF_for_pci_bus(bus);
222 if (parent == NULL)
223 return NULL;
224 pr_debug(" parent is %s\n", parent ? parent->full_name : "<NULL>");
225 np = scan_OF_for_pci_dev(parent, devfn);
226 of_node_put(parent);
227 pr_debug(" result is %s\n", np ? np->full_name : "<NULL>");
228
229 /* XXX most callers don't release the returned node
230 * mostly because ppc64 doesn't increase the refcount,
231 * we need to fix that.
232 */
233 return np;
234}
235EXPORT_SYMBOL(pci_busdev_to_OF_node);
236
237struct device_node*
238pci_device_to_OF_node(struct pci_dev *dev)
239{
240 return pci_busdev_to_OF_node(dev->bus, dev->devfn);
241}
242EXPORT_SYMBOL(pci_device_to_OF_node);
243
244static int
245find_OF_pci_device_filter(struct device_node *node, void *data)
246{
247 return ((void *)node == data);
248}
249
250/*
251 * Returns the PCI device matching a given OF node
252 */
253int
254pci_device_from_OF_node(struct device_node *node, u8 *bus, u8 *devfn)
255{
256 const unsigned int *reg;
257 struct pci_controller *hose;
258 struct pci_dev *dev = NULL;
259
260 /* Make sure it's really a PCI device */
261 hose = pci_find_hose_for_OF_device(node);
262 if (!hose || !hose->dn)
263 return -ENODEV;
264 if (!scan_OF_pci_childs(hose->dn,
265 find_OF_pci_device_filter, (void *)node))
266 return -ENODEV;
267 reg = of_get_property(node, "reg", NULL);
268 if (!reg)
269 return -ENODEV;
270 *bus = (reg[0] >> 16) & 0xff;
271 *devfn = ((reg[0] >> 8) & 0xff);
272
273 /* Ok, here we need some tweak. If we have already renumbered
274 * all busses, we can't rely on the OF bus number any more.
275 * the pci_to_OF_bus_map is not enough as several PCI busses
276 * may match the same OF bus number.
277 */
278 if (!pci_to_OF_bus_map)
279 return 0;
280
281 for_each_pci_dev(dev)
282 if (pci_to_OF_bus_map[dev->bus->number] == *bus &&
283 dev->devfn == *devfn) {
284 *bus = dev->bus->number;
285 pci_dev_put(dev);
286 return 0;
287 }
288
289 return -ENODEV;
290}
291EXPORT_SYMBOL(pci_device_from_OF_node);
292
293/* We create the "pci-OF-bus-map" property now so it appears in the
294 * /proc device tree
295 */
296void __init
297pci_create_OF_bus_map(void)
298{
299 struct property *of_prop;
300 struct device_node *dn;
301
302 of_prop = (struct property *) alloc_bootmem(sizeof(struct property) + \
303 256);
304 if (!of_prop)
305 return;
306 dn = of_find_node_by_path("/");
307 if (dn) {
308 memset(of_prop, -1, sizeof(struct property) + 256);
309 of_prop->name = "pci-OF-bus-map";
310 of_prop->length = 256;
311 of_prop->value = &of_prop[1];
312 prom_add_property(dn, of_prop);
313 of_node_put(dn);
314 }
315}
316
317static void __devinit pcibios_scan_phb(struct pci_controller *hose)
318{
319 struct pci_bus *bus;
320 struct device_node *node = hose->dn;
321 unsigned long io_offset;
322 struct resource *res = &hose->io_resource;
323
324 pr_debug("PCI: Scanning PHB %s\n",
325 node ? node->full_name : "<NO NAME>");
326
327 /* Create an empty bus for the toplevel */
328 bus = pci_create_bus(hose->parent, hose->first_busno, hose->ops, hose);
329 if (bus == NULL) {
330 printk(KERN_ERR "Failed to create bus for PCI domain %04x\n",
331 hose->global_number);
332 return;
333 }
334 bus->secondary = hose->first_busno;
335 hose->bus = bus;
336
337 /* Fixup IO space offset */
338 io_offset = (unsigned long)hose->io_base_virt - isa_io_base;
339 res->start = (res->start + io_offset) & 0xffffffffu;
340 res->end = (res->end + io_offset) & 0xffffffffu;
341
342 /* Wire up PHB bus resources */
343 pcibios_setup_phb_resources(hose);
344
345 /* Scan children */
346 hose->last_busno = bus->subordinate = pci_scan_child_bus(bus);
347}
348
349static int __init pcibios_init(void)
350{
351 struct pci_controller *hose, *tmp;
352 int next_busno = 0;
353
354 printk(KERN_INFO "PCI: Probing PCI hardware\n");
355
356 if (pci_flags & PCI_REASSIGN_ALL_BUS) {
357 printk(KERN_INFO "setting pci_asign_all_busses\n");
358 pci_assign_all_buses = 1;
359 }
360
361 /* Scan all of the recorded PCI controllers. */
362 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) {
363 if (pci_assign_all_buses)
364 hose->first_busno = next_busno;
365 hose->last_busno = 0xff;
366 pcibios_scan_phb(hose);
367 printk(KERN_INFO "calling pci_bus_add_devices()\n");
368 pci_bus_add_devices(hose->bus);
369 if (pci_assign_all_buses || next_busno <= hose->last_busno)
370 next_busno = hose->last_busno + \
371 pcibios_assign_bus_offset;
372 }
373 pci_bus_count = next_busno;
374
375 /* OpenFirmware based machines need a map of OF bus
376 * numbers vs. kernel bus numbers since we may have to
377 * remap them.
378 */
379 if (pci_assign_all_buses)
380 pcibios_make_OF_bus_map();
381
382 /* Call common code to handle resource allocation */
383 pcibios_resource_survey();
384
385 return 0;
386}
387
388subsys_initcall(pcibios_init);
389
390static struct pci_controller*
391pci_bus_to_hose(int bus)
392{
393 struct pci_controller *hose, *tmp;
394
395 list_for_each_entry_safe(hose, tmp, &hose_list, list_node)
396 if (bus >= hose->first_busno && bus <= hose->last_busno)
397 return hose;
398 return NULL;
399}
400
401/* Provide information on locations of various I/O regions in physical
402 * memory. Do this on a per-card basis so that we choose the right
403 * root bridge.
404 * Note that the returned IO or memory base is a physical address
405 */
406
407long sys_pciconfig_iobase(long which, unsigned long bus, unsigned long devfn)
408{
409 struct pci_controller *hose;
410 long result = -EOPNOTSUPP;
411
412 hose = pci_bus_to_hose(bus);
413 if (!hose)
414 return -ENODEV;
415
416 switch (which) {
417 case IOBASE_BRIDGE_NUMBER:
418 return (long)hose->first_busno;
419 case IOBASE_MEMORY:
420 return (long)hose->pci_mem_offset;
421 case IOBASE_IO:
422 return (long)hose->io_base_phys;
423 case IOBASE_ISA_IO:
424 return (long)isa_io_base;
425 case IOBASE_ISA_MEM:
426 return (long)isa_mem_base;
427 }
428
429 return result;
430}
diff --git a/arch/microblaze/pci/xilinx_pci.c b/arch/microblaze/pci/xilinx_pci.c
new file mode 100644
index 000000000000..7869a41b0f94
--- /dev/null
+++ b/arch/microblaze/pci/xilinx_pci.c
@@ -0,0 +1,168 @@
1/*
2 * PCI support for Xilinx plbv46_pci soft-core which can be used on
3 * Xilinx Virtex ML410 / ML510 boards.
4 *
5 * Copyright 2009 Roderick Colenbrander
6 * Copyright 2009 Secret Lab Technologies Ltd.
7 *
8 * The pci bridge fixup code was copied from ppc4xx_pci.c and was written
9 * by Benjamin Herrenschmidt.
10 * Copyright 2007 Ben. Herrenschmidt <benh@kernel.crashing.org>, IBM Corp.
11 *
12 * This file is licensed under the terms of the GNU General Public License
13 * version 2. This program is licensed "as is" without any warranty of any
14 * kind, whether express or implied.
15 */
16
17#include <linux/ioport.h>
18#include <linux/of.h>
19#include <linux/pci.h>
20#include <asm/io.h>
21
22#define XPLB_PCI_ADDR 0x10c
23#define XPLB_PCI_DATA 0x110
24#define XPLB_PCI_BUS 0x114
25
26#define PCI_HOST_ENABLE_CMD (PCI_COMMAND_SERR | PCI_COMMAND_PARITY | \
27 PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY)
28
29static struct of_device_id xilinx_pci_match[] = {
30 { .compatible = "xlnx,plbv46-pci-1.03.a", },
31 {}
32};
33
34/**
35 * xilinx_pci_fixup_bridge - Block Xilinx PHB configuration.
36 */
37static void xilinx_pci_fixup_bridge(struct pci_dev *dev)
38{
39 struct pci_controller *hose;
40 int i;
41
42 if (dev->devfn || dev->bus->self)
43 return;
44
45 hose = pci_bus_to_host(dev->bus);
46 if (!hose)
47 return;
48
49 if (!of_match_node(xilinx_pci_match, hose->dn))
50 return;
51
52 /* Hide the PCI host BARs from the kernel as their content doesn't
53 * fit well in the resource management
54 */
55 for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
56 dev->resource[i].start = 0;
57 dev->resource[i].end = 0;
58 dev->resource[i].flags = 0;
59 }
60
61 dev_info(&dev->dev, "Hiding Xilinx plb-pci host bridge resources %s\n",
62 pci_name(dev));
63}
64DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, xilinx_pci_fixup_bridge);
65
66#ifdef DEBUG
67/**
68 * xilinx_pci_exclude_device - Don't do config access for non-root bus
69 *
70 * This is a hack. Config access to any bus other than bus 0 does not
71 * currently work on the ML510 so we prevent it here.
72 */
73static int
74xilinx_pci_exclude_device(struct pci_controller *hose, u_char bus, u8 devfn)
75{
76 return (bus != 0);
77}
78
79/**
80 * xilinx_early_pci_scan - List pci config space for available devices
81 *
82 * List pci devices in very early phase.
83 */
84void __init xilinx_early_pci_scan(struct pci_controller *hose)
85{
86 u32 bus = 0;
87 u32 val, dev, func, offset;
88
89 /* Currently we have only 2 device connected - up-to 32 devices */
90 for (dev = 0; dev < 2; dev++) {
91 /* List only first function number - up-to 8 functions */
92 for (func = 0; func < 1; func++) {
93 printk(KERN_INFO "%02x:%02x:%02x", bus, dev, func);
94 /* read the first 64 standardized bytes */
95 /* Up-to 192 bytes can be list of capabilities */
96 for (offset = 0; offset < 64; offset += 4) {
97 early_read_config_dword(hose, bus,
98 PCI_DEVFN(dev, func), offset, &val);
99 if (offset == 0 && val == 0xFFFFFFFF) {
100 printk(KERN_CONT "\nABSENT");
101 break;
102 }
103 if (!(offset % 0x10))
104 printk(KERN_CONT "\n%04x: ", offset);
105
106 printk(KERN_CONT "%08x ", val);
107 }
108 printk(KERN_INFO "\n");
109 }
110 }
111}
112#else
113void __init xilinx_early_pci_scan(struct pci_controller *hose)
114{
115}
116#endif
117
118/**
119 * xilinx_pci_init - Find and register a Xilinx PCI host bridge
120 */
121void __init xilinx_pci_init(void)
122{
123 struct pci_controller *hose;
124 struct resource r;
125 void __iomem *pci_reg;
126 struct device_node *pci_node;
127
128 pci_node = of_find_matching_node(NULL, xilinx_pci_match);
129 if (!pci_node)
130 return;
131
132 if (of_address_to_resource(pci_node, 0, &r)) {
133 pr_err("xilinx-pci: cannot resolve base address\n");
134 return;
135 }
136
137 hose = pcibios_alloc_controller(pci_node);
138 if (!hose) {
139 pr_err("xilinx-pci: pcibios_alloc_controller() failed\n");
140 return;
141 }
142
143 /* Setup config space */
144 setup_indirect_pci(hose, r.start + XPLB_PCI_ADDR,
145 r.start + XPLB_PCI_DATA,
146 INDIRECT_TYPE_SET_CFG_TYPE);
147
148 /* According to the xilinx plbv46_pci documentation the soft-core starts
149 * a self-init when the bus master enable bit is set. Without this bit
150 * set the pci bus can't be scanned.
151 */
152 early_write_config_word(hose, 0, 0, PCI_COMMAND, PCI_HOST_ENABLE_CMD);
153
154 /* Set the max latency timer to 255 */
155 early_write_config_byte(hose, 0, 0, PCI_LATENCY_TIMER, 0xff);
156
157 /* Set the max bus number to 255, and bus/subbus no's to 0 */
158 pci_reg = of_iomap(pci_node, 0);
159 out_be32(pci_reg + XPLB_PCI_BUS, 0x000000ff);
160 iounmap(pci_reg);
161
162 /* Register the host bridge with the linux kernel! */
163 pci_process_bridge_OF_ranges(hose, pci_node,
164 INDIRECT_TYPE_SET_CFG_TYPE);
165
166 pr_info("xilinx-pci: Registered PCI host bridge\n");
167 xilinx_early_pci_scan(hose);
168}
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 8a54eb8e3768..2e19500921f9 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -313,19 +313,6 @@ config 8XX_MINIMAL_FPEMU
313 313
314 It is recommended that you build a soft-float userspace instead. 314 It is recommended that you build a soft-float userspace instead.
315 315
316config IOMMU_VMERGE
317 bool "Enable IOMMU virtual merging"
318 depends on PPC64
319 default y
320 help
321 Cause IO segments sent to a device for DMA to be merged virtually
322 by the IOMMU when they happen to have been allocated contiguously.
323 This doesn't add pressure to the IOMMU allocator. However, some
324 drivers don't support getting large merged segments coming back
325 from *_map_sg().
326
327 Most drivers don't have this problem; it is safe to say Y here.
328
329config IOMMU_HELPER 316config IOMMU_HELPER
330 def_bool PPC64 317 def_bool PPC64
331 318
diff --git a/arch/powerpc/configs/52xx/cm5200_defconfig b/arch/powerpc/configs/52xx/cm5200_defconfig
index ff9bdb28197d..218d49b36a0c 100644
--- a/arch/powerpc/configs/52xx/cm5200_defconfig
+++ b/arch/powerpc/configs/52xx/cm5200_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.33-rc2 3# Linux kernel version: 2.6.34-rc1
4# Wed Dec 30 14:45:07 2009 4# Wed Mar 10 14:34:22 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -94,11 +94,6 @@ CONFIG_RCU_FANOUT=32
94# CONFIG_TREE_RCU_TRACE is not set 94# CONFIG_TREE_RCU_TRACE is not set
95# CONFIG_IKCONFIG is not set 95# CONFIG_IKCONFIG is not set
96CONFIG_LOG_BUF_SHIFT=14 96CONFIG_LOG_BUF_SHIFT=14
97CONFIG_GROUP_SCHED=y
98CONFIG_FAIR_GROUP_SCHED=y
99# CONFIG_RT_GROUP_SCHED is not set
100CONFIG_USER_SCHED=y
101# CONFIG_CGROUP_SCHED is not set
102# CONFIG_CGROUPS is not set 97# CONFIG_CGROUPS is not set
103CONFIG_SYSFS_DEPRECATED=y 98CONFIG_SYSFS_DEPRECATED=y
104CONFIG_SYSFS_DEPRECATED_V2=y 99CONFIG_SYSFS_DEPRECATED_V2=y
@@ -109,6 +104,7 @@ CONFIG_INITRAMFS_SOURCE=""
109CONFIG_RD_GZIP=y 104CONFIG_RD_GZIP=y
110# CONFIG_RD_BZIP2 is not set 105# CONFIG_RD_BZIP2 is not set
111# CONFIG_RD_LZMA is not set 106# CONFIG_RD_LZMA is not set
107# CONFIG_RD_LZO is not set
112# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 108# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
113CONFIG_SYSCTL=y 109CONFIG_SYSCTL=y
114CONFIG_ANON_INODES=y 110CONFIG_ANON_INODES=y
@@ -340,7 +336,6 @@ CONFIG_NET=y
340# Networking options 336# Networking options
341# 337#
342CONFIG_PACKET=y 338CONFIG_PACKET=y
343# CONFIG_PACKET_MMAP is not set
344CONFIG_UNIX=y 339CONFIG_UNIX=y
345CONFIG_XFRM=y 340CONFIG_XFRM=y
346CONFIG_XFRM_USER=y 341CONFIG_XFRM_USER=y
@@ -517,6 +512,8 @@ CONFIG_MTD_PHYSMAP_OF=y
517# UBI - Unsorted block images 512# UBI - Unsorted block images
518# 513#
519# CONFIG_MTD_UBI is not set 514# CONFIG_MTD_UBI is not set
515CONFIG_OF_FLATTREE=y
516CONFIG_OF_DYNAMIC=y
520CONFIG_OF_DEVICE=y 517CONFIG_OF_DEVICE=y
521CONFIG_OF_I2C=y 518CONFIG_OF_I2C=y
522CONFIG_OF_MDIO=y 519CONFIG_OF_MDIO=y
@@ -684,6 +681,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
684CONFIG_SERIAL_MPC52xx=y 681CONFIG_SERIAL_MPC52xx=y
685CONFIG_SERIAL_MPC52xx_CONSOLE=y 682CONFIG_SERIAL_MPC52xx_CONSOLE=y
686CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=57600 683CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=57600
684# CONFIG_SERIAL_TIMBERDALE is not set
687# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 685# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
688CONFIG_UNIX98_PTYS=y 686CONFIG_UNIX98_PTYS=y
689# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 687# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -714,6 +712,7 @@ CONFIG_I2C_HELPER_AUTO=y
714CONFIG_I2C_MPC=y 712CONFIG_I2C_MPC=y
715# CONFIG_I2C_OCORES is not set 713# CONFIG_I2C_OCORES is not set
716# CONFIG_I2C_SIMTEC is not set 714# CONFIG_I2C_SIMTEC is not set
715# CONFIG_I2C_XILINX is not set
717 716
718# 717#
719# External I2C/SMBus adapter drivers 718# External I2C/SMBus adapter drivers
@@ -754,6 +753,7 @@ CONFIG_WATCHDOG=y
754# Watchdog Device Drivers 753# Watchdog Device Drivers
755# 754#
756# CONFIG_SOFT_WATCHDOG is not set 755# CONFIG_SOFT_WATCHDOG is not set
756# CONFIG_MAX63XX_WATCHDOG is not set
757# CONFIG_MPC5200_WDT is not set 757# CONFIG_MPC5200_WDT is not set
758 758
759# 759#
@@ -771,18 +771,20 @@ CONFIG_SSB_POSSIBLE=y
771# Multifunction device drivers 771# Multifunction device drivers
772# 772#
773# CONFIG_MFD_CORE is not set 773# CONFIG_MFD_CORE is not set
774# CONFIG_MFD_88PM860X is not set
774# CONFIG_MFD_SM501 is not set 775# CONFIG_MFD_SM501 is not set
775# CONFIG_HTC_PASIC3 is not set 776# CONFIG_HTC_PASIC3 is not set
776# CONFIG_TWL4030_CORE is not set 777# CONFIG_TWL4030_CORE is not set
777# CONFIG_MFD_TMIO is not set 778# CONFIG_MFD_TMIO is not set
778# CONFIG_PMIC_DA903X is not set 779# CONFIG_PMIC_DA903X is not set
779# CONFIG_PMIC_ADP5520 is not set 780# CONFIG_PMIC_ADP5520 is not set
781# CONFIG_MFD_MAX8925 is not set
780# CONFIG_MFD_WM8400 is not set 782# CONFIG_MFD_WM8400 is not set
781# CONFIG_MFD_WM831X is not set 783# CONFIG_MFD_WM831X is not set
782# CONFIG_MFD_WM8350_I2C is not set 784# CONFIG_MFD_WM8350_I2C is not set
785# CONFIG_MFD_WM8994 is not set
783# CONFIG_MFD_PCF50633 is not set 786# CONFIG_MFD_PCF50633 is not set
784# CONFIG_AB3100_CORE is not set 787# CONFIG_AB3100_CORE is not set
785# CONFIG_MFD_88PM8607 is not set
786# CONFIG_REGULATOR is not set 788# CONFIG_REGULATOR is not set
787# CONFIG_MEDIA_SUPPORT is not set 789# CONFIG_MEDIA_SUPPORT is not set
788 790
@@ -813,7 +815,6 @@ CONFIG_USB=y
813CONFIG_USB_DEVICEFS=y 815CONFIG_USB_DEVICEFS=y
814# CONFIG_USB_DEVICE_CLASS is not set 816# CONFIG_USB_DEVICE_CLASS is not set
815# CONFIG_USB_DYNAMIC_MINORS is not set 817# CONFIG_USB_DYNAMIC_MINORS is not set
816# CONFIG_USB_SUSPEND is not set
817# CONFIG_USB_OTG is not set 818# CONFIG_USB_OTG is not set
818# CONFIG_USB_OTG_WHITELIST is not set 819# CONFIG_USB_OTG_WHITELIST is not set
819# CONFIG_USB_OTG_BLACKLIST_HUB is not set 820# CONFIG_USB_OTG_BLACKLIST_HUB is not set
@@ -891,7 +892,6 @@ CONFIG_USB_STORAGE=y
891# CONFIG_USB_RIO500 is not set 892# CONFIG_USB_RIO500 is not set
892# CONFIG_USB_LEGOTOWER is not set 893# CONFIG_USB_LEGOTOWER is not set
893# CONFIG_USB_LCD is not set 894# CONFIG_USB_LCD is not set
894# CONFIG_USB_BERRY_CHARGE is not set
895# CONFIG_USB_LED is not set 895# CONFIG_USB_LED is not set
896# CONFIG_USB_CYPRESS_CY7C63 is not set 896# CONFIG_USB_CYPRESS_CY7C63 is not set
897# CONFIG_USB_CYTHERM is not set 897# CONFIG_USB_CYTHERM is not set
@@ -903,7 +903,6 @@ CONFIG_USB_STORAGE=y
903# CONFIG_USB_IOWARRIOR is not set 903# CONFIG_USB_IOWARRIOR is not set
904# CONFIG_USB_TEST is not set 904# CONFIG_USB_TEST is not set
905# CONFIG_USB_ISIGHTFW is not set 905# CONFIG_USB_ISIGHTFW is not set
906# CONFIG_USB_VST is not set
907# CONFIG_USB_GADGET is not set 906# CONFIG_USB_GADGET is not set
908 907
909# 908#
@@ -1009,6 +1008,7 @@ CONFIG_JFFS2_ZLIB=y
1009# CONFIG_JFFS2_LZO is not set 1008# CONFIG_JFFS2_LZO is not set
1010CONFIG_JFFS2_RTIME=y 1009CONFIG_JFFS2_RTIME=y
1011# CONFIG_JFFS2_RUBIN is not set 1010# CONFIG_JFFS2_RUBIN is not set
1011# CONFIG_LOGFS is not set
1012CONFIG_CRAMFS=y 1012CONFIG_CRAMFS=y
1013# CONFIG_SQUASHFS is not set 1013# CONFIG_SQUASHFS is not set
1014# CONFIG_VXFS_FS is not set 1014# CONFIG_VXFS_FS is not set
diff --git a/arch/powerpc/configs/52xx/lite5200b_defconfig b/arch/powerpc/configs/52xx/lite5200b_defconfig
index 7b3f4d0ed404..90492ff25232 100644
--- a/arch/powerpc/configs/52xx/lite5200b_defconfig
+++ b/arch/powerpc/configs/52xx/lite5200b_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.33-rc2 3# Linux kernel version: 2.6.34-rc1
4# Wed Dec 30 14:45:09 2009 4# Wed Mar 10 14:34:24 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -95,11 +95,6 @@ CONFIG_RCU_FANOUT=32
95# CONFIG_TREE_RCU_TRACE is not set 95# CONFIG_TREE_RCU_TRACE is not set
96# CONFIG_IKCONFIG is not set 96# CONFIG_IKCONFIG is not set
97CONFIG_LOG_BUF_SHIFT=14 97CONFIG_LOG_BUF_SHIFT=14
98CONFIG_GROUP_SCHED=y
99# CONFIG_FAIR_GROUP_SCHED is not set
100# CONFIG_RT_GROUP_SCHED is not set
101CONFIG_USER_SCHED=y
102# CONFIG_CGROUP_SCHED is not set
103# CONFIG_CGROUPS is not set 98# CONFIG_CGROUPS is not set
104CONFIG_SYSFS_DEPRECATED=y 99CONFIG_SYSFS_DEPRECATED=y
105CONFIG_SYSFS_DEPRECATED_V2=y 100CONFIG_SYSFS_DEPRECATED_V2=y
@@ -110,6 +105,7 @@ CONFIG_INITRAMFS_SOURCE=""
110CONFIG_RD_GZIP=y 105CONFIG_RD_GZIP=y
111# CONFIG_RD_BZIP2 is not set 106# CONFIG_RD_BZIP2 is not set
112# CONFIG_RD_LZMA is not set 107# CONFIG_RD_LZMA is not set
108# CONFIG_RD_LZO is not set
113# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 109# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
114CONFIG_SYSCTL=y 110CONFIG_SYSCTL=y
115CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
@@ -317,6 +313,7 @@ CONFIG_SUSPEND=y
317CONFIG_SUSPEND_FREEZER=y 313CONFIG_SUSPEND_FREEZER=y
318# CONFIG_HIBERNATION is not set 314# CONFIG_HIBERNATION is not set
319# CONFIG_PM_RUNTIME is not set 315# CONFIG_PM_RUNTIME is not set
316CONFIG_PM_OPS=y
320CONFIG_SECCOMP=y 317CONFIG_SECCOMP=y
321CONFIG_ISA_DMA_API=y 318CONFIG_ISA_DMA_API=y
322 319
@@ -333,7 +330,6 @@ CONFIG_PCI_SYSCALL=y
333# CONFIG_PCIEPORTBUS is not set 330# CONFIG_PCIEPORTBUS is not set
334CONFIG_ARCH_SUPPORTS_MSI=y 331CONFIG_ARCH_SUPPORTS_MSI=y
335# CONFIG_PCI_MSI is not set 332# CONFIG_PCI_MSI is not set
336CONFIG_PCI_LEGACY=y
337# CONFIG_PCI_DEBUG is not set 333# CONFIG_PCI_DEBUG is not set
338# CONFIG_PCI_STUB is not set 334# CONFIG_PCI_STUB is not set
339# CONFIG_PCI_IOV is not set 335# CONFIG_PCI_IOV is not set
@@ -360,7 +356,6 @@ CONFIG_NET=y
360# Networking options 356# Networking options
361# 357#
362CONFIG_PACKET=y 358CONFIG_PACKET=y
363# CONFIG_PACKET_MMAP is not set
364CONFIG_UNIX=y 359CONFIG_UNIX=y
365CONFIG_XFRM=y 360CONFIG_XFRM=y
366CONFIG_XFRM_USER=m 361CONFIG_XFRM_USER=m
@@ -457,6 +452,8 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
457# CONFIG_SYS_HYPERVISOR is not set 452# CONFIG_SYS_HYPERVISOR is not set
458# CONFIG_CONNECTOR is not set 453# CONFIG_CONNECTOR is not set
459# CONFIG_MTD is not set 454# CONFIG_MTD is not set
455CONFIG_OF_FLATTREE=y
456CONFIG_OF_DYNAMIC=y
460CONFIG_OF_DEVICE=y 457CONFIG_OF_DEVICE=y
461CONFIG_OF_I2C=y 458CONFIG_OF_I2C=y
462CONFIG_OF_MDIO=y 459CONFIG_OF_MDIO=y
@@ -631,6 +628,7 @@ CONFIG_ATA_SFF=y
631# CONFIG_PATA_IT821X is not set 628# CONFIG_PATA_IT821X is not set
632# CONFIG_PATA_IT8213 is not set 629# CONFIG_PATA_IT8213 is not set
633# CONFIG_PATA_JMICRON is not set 630# CONFIG_PATA_JMICRON is not set
631# CONFIG_PATA_LEGACY is not set
634# CONFIG_PATA_TRIFLEX is not set 632# CONFIG_PATA_TRIFLEX is not set
635# CONFIG_PATA_MARVELL is not set 633# CONFIG_PATA_MARVELL is not set
636CONFIG_PATA_MPC52xx=y 634CONFIG_PATA_MPC52xx=y
@@ -668,7 +666,7 @@ CONFIG_PATA_MPC52xx=y
668# 666#
669 667
670# 668#
671# See the help texts for more information. 669# The newer stack is recommended.
672# 670#
673# CONFIG_FIREWIRE is not set 671# CONFIG_FIREWIRE is not set
674# CONFIG_IEEE1394 is not set 672# CONFIG_IEEE1394 is not set
@@ -768,6 +766,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
768# CONFIG_MLX4_CORE is not set 766# CONFIG_MLX4_CORE is not set
769# CONFIG_TEHUTI is not set 767# CONFIG_TEHUTI is not set
770# CONFIG_BNX2X is not set 768# CONFIG_BNX2X is not set
769# CONFIG_QLCNIC is not set
771# CONFIG_QLGE is not set 770# CONFIG_QLGE is not set
772# CONFIG_SFC is not set 771# CONFIG_SFC is not set
773# CONFIG_BE2NET is not set 772# CONFIG_BE2NET is not set
@@ -828,6 +827,7 @@ CONFIG_SERIAL_MPC52xx=y
828CONFIG_SERIAL_MPC52xx_CONSOLE=y 827CONFIG_SERIAL_MPC52xx_CONSOLE=y
829CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 828CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
830# CONFIG_SERIAL_JSM is not set 829# CONFIG_SERIAL_JSM is not set
830# CONFIG_SERIAL_TIMBERDALE is not set
831# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 831# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
832CONFIG_UNIX98_PTYS=y 832CONFIG_UNIX98_PTYS=y
833# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 833# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -879,6 +879,7 @@ CONFIG_I2C_HELPER_AUTO=y
879CONFIG_I2C_MPC=y 879CONFIG_I2C_MPC=y
880# CONFIG_I2C_OCORES is not set 880# CONFIG_I2C_OCORES is not set
881# CONFIG_I2C_SIMTEC is not set 881# CONFIG_I2C_SIMTEC is not set
882# CONFIG_I2C_XILINX is not set
882 883
883# 884#
884# External I2C/SMBus adapter drivers 885# External I2C/SMBus adapter drivers
@@ -924,18 +925,21 @@ CONFIG_SSB_POSSIBLE=y
924# Multifunction device drivers 925# Multifunction device drivers
925# 926#
926# CONFIG_MFD_CORE is not set 927# CONFIG_MFD_CORE is not set
928# CONFIG_MFD_88PM860X is not set
927# CONFIG_MFD_SM501 is not set 929# CONFIG_MFD_SM501 is not set
928# CONFIG_HTC_PASIC3 is not set 930# CONFIG_HTC_PASIC3 is not set
929# CONFIG_TWL4030_CORE is not set 931# CONFIG_TWL4030_CORE is not set
930# CONFIG_MFD_TMIO is not set 932# CONFIG_MFD_TMIO is not set
931# CONFIG_PMIC_DA903X is not set 933# CONFIG_PMIC_DA903X is not set
932# CONFIG_PMIC_ADP5520 is not set 934# CONFIG_PMIC_ADP5520 is not set
935# CONFIG_MFD_MAX8925 is not set
933# CONFIG_MFD_WM8400 is not set 936# CONFIG_MFD_WM8400 is not set
934# CONFIG_MFD_WM831X is not set 937# CONFIG_MFD_WM831X is not set
935# CONFIG_MFD_WM8350_I2C is not set 938# CONFIG_MFD_WM8350_I2C is not set
939# CONFIG_MFD_WM8994 is not set
936# CONFIG_MFD_PCF50633 is not set 940# CONFIG_MFD_PCF50633 is not set
937# CONFIG_AB3100_CORE is not set 941# CONFIG_AB3100_CORE is not set
938# CONFIG_MFD_88PM8607 is not set 942# CONFIG_LPC_SCH is not set
939# CONFIG_REGULATOR is not set 943# CONFIG_REGULATOR is not set
940# CONFIG_MEDIA_SUPPORT is not set 944# CONFIG_MEDIA_SUPPORT is not set
941 945
@@ -944,6 +948,7 @@ CONFIG_SSB_POSSIBLE=y
944# 948#
945# CONFIG_AGP is not set 949# CONFIG_AGP is not set
946CONFIG_VGA_ARB=y 950CONFIG_VGA_ARB=y
951CONFIG_VGA_ARB_MAX_GPUS=16
947# CONFIG_DRM is not set 952# CONFIG_DRM is not set
948# CONFIG_VGASTATE is not set 953# CONFIG_VGASTATE is not set
949CONFIG_VIDEO_OUTPUT_CONTROL=m 954CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1062,6 +1067,7 @@ CONFIG_MISC_FILESYSTEMS=y
1062# CONFIG_BEFS_FS is not set 1067# CONFIG_BEFS_FS is not set
1063# CONFIG_BFS_FS is not set 1068# CONFIG_BFS_FS is not set
1064# CONFIG_EFS_FS is not set 1069# CONFIG_EFS_FS is not set
1070# CONFIG_LOGFS is not set
1065# CONFIG_CRAMFS is not set 1071# CONFIG_CRAMFS is not set
1066# CONFIG_SQUASHFS is not set 1072# CONFIG_SQUASHFS is not set
1067# CONFIG_VXFS_FS is not set 1073# CONFIG_VXFS_FS is not set
diff --git a/arch/powerpc/configs/52xx/motionpro_defconfig b/arch/powerpc/configs/52xx/motionpro_defconfig
index eaae2d469aa0..dffc8cac825f 100644
--- a/arch/powerpc/configs/52xx/motionpro_defconfig
+++ b/arch/powerpc/configs/52xx/motionpro_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.33-rc2 3# Linux kernel version: 2.6.34-rc1
4# Wed Dec 30 14:45:08 2009 4# Wed Mar 10 14:34:23 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -94,11 +94,6 @@ CONFIG_RCU_FANOUT=32
94# CONFIG_TREE_RCU_TRACE is not set 94# CONFIG_TREE_RCU_TRACE is not set
95# CONFIG_IKCONFIG is not set 95# CONFIG_IKCONFIG is not set
96CONFIG_LOG_BUF_SHIFT=14 96CONFIG_LOG_BUF_SHIFT=14
97CONFIG_GROUP_SCHED=y
98CONFIG_FAIR_GROUP_SCHED=y
99# CONFIG_RT_GROUP_SCHED is not set
100CONFIG_USER_SCHED=y
101# CONFIG_CGROUP_SCHED is not set
102# CONFIG_CGROUPS is not set 97# CONFIG_CGROUPS is not set
103CONFIG_SYSFS_DEPRECATED=y 98CONFIG_SYSFS_DEPRECATED=y
104CONFIG_SYSFS_DEPRECATED_V2=y 99CONFIG_SYSFS_DEPRECATED_V2=y
@@ -109,6 +104,7 @@ CONFIG_INITRAMFS_SOURCE=""
109CONFIG_RD_GZIP=y 104CONFIG_RD_GZIP=y
110# CONFIG_RD_BZIP2 is not set 105# CONFIG_RD_BZIP2 is not set
111# CONFIG_RD_LZMA is not set 106# CONFIG_RD_LZMA is not set
107# CONFIG_RD_LZO is not set
112# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 108# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
113CONFIG_SYSCTL=y 109CONFIG_SYSCTL=y
114CONFIG_ANON_INODES=y 110CONFIG_ANON_INODES=y
@@ -341,7 +337,6 @@ CONFIG_NET=y
341# Networking options 337# Networking options
342# 338#
343CONFIG_PACKET=y 339CONFIG_PACKET=y
344# CONFIG_PACKET_MMAP is not set
345CONFIG_UNIX=y 340CONFIG_UNIX=y
346CONFIG_XFRM=y 341CONFIG_XFRM=y
347CONFIG_XFRM_USER=y 342CONFIG_XFRM_USER=y
@@ -518,6 +513,8 @@ CONFIG_MTD_ROM=y
518# UBI - Unsorted block images 513# UBI - Unsorted block images
519# 514#
520# CONFIG_MTD_UBI is not set 515# CONFIG_MTD_UBI is not set
516CONFIG_OF_FLATTREE=y
517CONFIG_OF_DYNAMIC=y
521CONFIG_OF_DEVICE=y 518CONFIG_OF_DEVICE=y
522CONFIG_OF_I2C=y 519CONFIG_OF_I2C=y
523CONFIG_OF_MDIO=y 520CONFIG_OF_MDIO=y
@@ -699,6 +696,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
699CONFIG_SERIAL_MPC52xx=y 696CONFIG_SERIAL_MPC52xx=y
700CONFIG_SERIAL_MPC52xx_CONSOLE=y 697CONFIG_SERIAL_MPC52xx_CONSOLE=y
701CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 698CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
699# CONFIG_SERIAL_TIMBERDALE is not set
702# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 700# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
703CONFIG_UNIX98_PTYS=y 701CONFIG_UNIX98_PTYS=y
704# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 702# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -728,6 +726,7 @@ CONFIG_I2C_HELPER_AUTO=y
728CONFIG_I2C_MPC=y 726CONFIG_I2C_MPC=y
729# CONFIG_I2C_OCORES is not set 727# CONFIG_I2C_OCORES is not set
730# CONFIG_I2C_SIMTEC is not set 728# CONFIG_I2C_SIMTEC is not set
729# CONFIG_I2C_XILINX is not set
731 730
732# 731#
733# External I2C/SMBus adapter drivers 732# External I2C/SMBus adapter drivers
@@ -773,10 +772,11 @@ CONFIG_HWMON=y
773# CONFIG_SENSORS_ADM1029 is not set 772# CONFIG_SENSORS_ADM1029 is not set
774# CONFIG_SENSORS_ADM1031 is not set 773# CONFIG_SENSORS_ADM1031 is not set
775# CONFIG_SENSORS_ADM9240 is not set 774# CONFIG_SENSORS_ADM9240 is not set
775# CONFIG_SENSORS_ADT7411 is not set
776# CONFIG_SENSORS_ADT7462 is not set 776# CONFIG_SENSORS_ADT7462 is not set
777# CONFIG_SENSORS_ADT7470 is not set 777# CONFIG_SENSORS_ADT7470 is not set
778# CONFIG_SENSORS_ADT7473 is not set
779# CONFIG_SENSORS_ADT7475 is not set 778# CONFIG_SENSORS_ADT7475 is not set
779# CONFIG_SENSORS_ASC7621 is not set
780# CONFIG_SENSORS_ATXP1 is not set 780# CONFIG_SENSORS_ATXP1 is not set
781# CONFIG_SENSORS_DS1621 is not set 781# CONFIG_SENSORS_DS1621 is not set
782# CONFIG_SENSORS_F71805F is not set 782# CONFIG_SENSORS_F71805F is not set
@@ -811,6 +811,7 @@ CONFIG_HWMON=y
811# CONFIG_SENSORS_SMSC47M192 is not set 811# CONFIG_SENSORS_SMSC47M192 is not set
812# CONFIG_SENSORS_SMSC47B397 is not set 812# CONFIG_SENSORS_SMSC47B397 is not set
813# CONFIG_SENSORS_ADS7828 is not set 813# CONFIG_SENSORS_ADS7828 is not set
814# CONFIG_SENSORS_AMC6821 is not set
814# CONFIG_SENSORS_THMC50 is not set 815# CONFIG_SENSORS_THMC50 is not set
815# CONFIG_SENSORS_TMP401 is not set 816# CONFIG_SENSORS_TMP401 is not set
816# CONFIG_SENSORS_TMP421 is not set 817# CONFIG_SENSORS_TMP421 is not set
@@ -831,6 +832,7 @@ CONFIG_WATCHDOG=y
831# Watchdog Device Drivers 832# Watchdog Device Drivers
832# 833#
833# CONFIG_SOFT_WATCHDOG is not set 834# CONFIG_SOFT_WATCHDOG is not set
835# CONFIG_MAX63XX_WATCHDOG is not set
834# CONFIG_MPC5200_WDT is not set 836# CONFIG_MPC5200_WDT is not set
835CONFIG_SSB_POSSIBLE=y 837CONFIG_SSB_POSSIBLE=y
836 838
@@ -843,18 +845,20 @@ CONFIG_SSB_POSSIBLE=y
843# Multifunction device drivers 845# Multifunction device drivers
844# 846#
845# CONFIG_MFD_CORE is not set 847# CONFIG_MFD_CORE is not set
848# CONFIG_MFD_88PM860X is not set
846# CONFIG_MFD_SM501 is not set 849# CONFIG_MFD_SM501 is not set
847# CONFIG_HTC_PASIC3 is not set 850# CONFIG_HTC_PASIC3 is not set
848# CONFIG_TWL4030_CORE is not set 851# CONFIG_TWL4030_CORE is not set
849# CONFIG_MFD_TMIO is not set 852# CONFIG_MFD_TMIO is not set
850# CONFIG_PMIC_DA903X is not set 853# CONFIG_PMIC_DA903X is not set
851# CONFIG_PMIC_ADP5520 is not set 854# CONFIG_PMIC_ADP5520 is not set
855# CONFIG_MFD_MAX8925 is not set
852# CONFIG_MFD_WM8400 is not set 856# CONFIG_MFD_WM8400 is not set
853# CONFIG_MFD_WM831X is not set 857# CONFIG_MFD_WM831X is not set
854# CONFIG_MFD_WM8350_I2C is not set 858# CONFIG_MFD_WM8350_I2C is not set
859# CONFIG_MFD_WM8994 is not set
855# CONFIG_MFD_PCF50633 is not set 860# CONFIG_MFD_PCF50633 is not set
856# CONFIG_AB3100_CORE is not set 861# CONFIG_AB3100_CORE is not set
857# CONFIG_MFD_88PM8607 is not set
858# CONFIG_REGULATOR is not set 862# CONFIG_REGULATOR is not set
859# CONFIG_MEDIA_SUPPORT is not set 863# CONFIG_MEDIA_SUPPORT is not set
860 864
@@ -1050,6 +1054,7 @@ CONFIG_JFFS2_ZLIB=y
1050# CONFIG_JFFS2_LZO is not set 1054# CONFIG_JFFS2_LZO is not set
1051CONFIG_JFFS2_RTIME=y 1055CONFIG_JFFS2_RTIME=y
1052# CONFIG_JFFS2_RUBIN is not set 1056# CONFIG_JFFS2_RUBIN is not set
1057# CONFIG_LOGFS is not set
1053CONFIG_CRAMFS=y 1058CONFIG_CRAMFS=y
1054# CONFIG_SQUASHFS is not set 1059# CONFIG_SQUASHFS is not set
1055# CONFIG_VXFS_FS is not set 1060# CONFIG_VXFS_FS is not set
diff --git a/arch/powerpc/configs/52xx/pcm030_defconfig b/arch/powerpc/configs/52xx/pcm030_defconfig
index 1742c0200b75..3cb2a522046a 100644
--- a/arch/powerpc/configs/52xx/pcm030_defconfig
+++ b/arch/powerpc/configs/52xx/pcm030_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.33-rc2 3# Linux kernel version: 2.6.34-rc1
4# Wed Dec 30 14:45:10 2009 4# Wed Mar 10 14:34:25 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -97,11 +97,6 @@ CONFIG_RCU_FANOUT=32
97CONFIG_IKCONFIG=y 97CONFIG_IKCONFIG=y
98CONFIG_IKCONFIG_PROC=y 98CONFIG_IKCONFIG_PROC=y
99CONFIG_LOG_BUF_SHIFT=14 99CONFIG_LOG_BUF_SHIFT=14
100CONFIG_GROUP_SCHED=y
101CONFIG_FAIR_GROUP_SCHED=y
102# CONFIG_RT_GROUP_SCHED is not set
103CONFIG_USER_SCHED=y
104# CONFIG_CGROUP_SCHED is not set
105# CONFIG_CGROUPS is not set 100# CONFIG_CGROUPS is not set
106CONFIG_SYSFS_DEPRECATED=y 101CONFIG_SYSFS_DEPRECATED=y
107CONFIG_SYSFS_DEPRECATED_V2=y 102CONFIG_SYSFS_DEPRECATED_V2=y
@@ -326,7 +321,6 @@ CONFIG_PCI_SYSCALL=y
326# CONFIG_PCIEPORTBUS is not set 321# CONFIG_PCIEPORTBUS is not set
327CONFIG_ARCH_SUPPORTS_MSI=y 322CONFIG_ARCH_SUPPORTS_MSI=y
328# CONFIG_PCI_MSI is not set 323# CONFIG_PCI_MSI is not set
329CONFIG_PCI_LEGACY=y
330# CONFIG_PCI_STUB is not set 324# CONFIG_PCI_STUB is not set
331# CONFIG_PCI_IOV is not set 325# CONFIG_PCI_IOV is not set
332# CONFIG_PCCARD is not set 326# CONFIG_PCCARD is not set
@@ -352,7 +346,6 @@ CONFIG_NET=y
352# Networking options 346# Networking options
353# 347#
354CONFIG_PACKET=y 348CONFIG_PACKET=y
355# CONFIG_PACKET_MMAP is not set
356CONFIG_UNIX=y 349CONFIG_UNIX=y
357# CONFIG_NET_KEY is not set 350# CONFIG_NET_KEY is not set
358CONFIG_INET=y 351CONFIG_INET=y
@@ -525,6 +518,8 @@ CONFIG_MTD_PHYSMAP=y
525# UBI - Unsorted block images 518# UBI - Unsorted block images
526# 519#
527# CONFIG_MTD_UBI is not set 520# CONFIG_MTD_UBI is not set
521CONFIG_OF_FLATTREE=y
522CONFIG_OF_DYNAMIC=y
528CONFIG_OF_DEVICE=y 523CONFIG_OF_DEVICE=y
529CONFIG_OF_I2C=y 524CONFIG_OF_I2C=y
530CONFIG_OF_MDIO=y 525CONFIG_OF_MDIO=y
@@ -610,6 +605,7 @@ CONFIG_ATA_SFF=y
610# CONFIG_PATA_IT821X is not set 605# CONFIG_PATA_IT821X is not set
611# CONFIG_PATA_IT8213 is not set 606# CONFIG_PATA_IT8213 is not set
612# CONFIG_PATA_JMICRON is not set 607# CONFIG_PATA_JMICRON is not set
608# CONFIG_PATA_LEGACY is not set
613# CONFIG_PATA_TRIFLEX is not set 609# CONFIG_PATA_TRIFLEX is not set
614# CONFIG_PATA_MARVELL is not set 610# CONFIG_PATA_MARVELL is not set
615CONFIG_PATA_MPC52xx=m 611CONFIG_PATA_MPC52xx=m
@@ -647,7 +643,7 @@ CONFIG_PATA_MPC52xx=m
647# 643#
648 644
649# 645#
650# See the help texts for more information. 646# The newer stack is recommended.
651# 647#
652# CONFIG_FIREWIRE is not set 648# CONFIG_FIREWIRE is not set
653# CONFIG_IEEE1394 is not set 649# CONFIG_IEEE1394 is not set
@@ -775,6 +771,7 @@ CONFIG_SERIAL_MPC52xx=y
775CONFIG_SERIAL_MPC52xx_CONSOLE=y 771CONFIG_SERIAL_MPC52xx_CONSOLE=y
776CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=9600 772CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=9600
777# CONFIG_SERIAL_JSM is not set 773# CONFIG_SERIAL_JSM is not set
774# CONFIG_SERIAL_TIMBERDALE is not set
778# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 775# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
779CONFIG_UNIX98_PTYS=y 776CONFIG_UNIX98_PTYS=y
780# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 777# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -824,6 +821,7 @@ CONFIG_I2C_HELPER_AUTO=y
824CONFIG_I2C_MPC=y 821CONFIG_I2C_MPC=y
825# CONFIG_I2C_OCORES is not set 822# CONFIG_I2C_OCORES is not set
826# CONFIG_I2C_SIMTEC is not set 823# CONFIG_I2C_SIMTEC is not set
824# CONFIG_I2C_XILINX is not set
827 825
828# 826#
829# External I2C/SMBus adapter drivers 827# External I2C/SMBus adapter drivers
@@ -870,18 +868,21 @@ CONFIG_SSB_POSSIBLE=y
870# Multifunction device drivers 868# Multifunction device drivers
871# 869#
872# CONFIG_MFD_CORE is not set 870# CONFIG_MFD_CORE is not set
871# CONFIG_MFD_88PM860X is not set
873# CONFIG_MFD_SM501 is not set 872# CONFIG_MFD_SM501 is not set
874# CONFIG_HTC_PASIC3 is not set 873# CONFIG_HTC_PASIC3 is not set
875# CONFIG_TWL4030_CORE is not set 874# CONFIG_TWL4030_CORE is not set
876# CONFIG_MFD_TMIO is not set 875# CONFIG_MFD_TMIO is not set
877# CONFIG_PMIC_DA903X is not set 876# CONFIG_PMIC_DA903X is not set
878# CONFIG_PMIC_ADP5520 is not set 877# CONFIG_PMIC_ADP5520 is not set
878# CONFIG_MFD_MAX8925 is not set
879# CONFIG_MFD_WM8400 is not set 879# CONFIG_MFD_WM8400 is not set
880# CONFIG_MFD_WM831X is not set 880# CONFIG_MFD_WM831X is not set
881# CONFIG_MFD_WM8350_I2C is not set 881# CONFIG_MFD_WM8350_I2C is not set
882# CONFIG_MFD_WM8994 is not set
882# CONFIG_MFD_PCF50633 is not set 883# CONFIG_MFD_PCF50633 is not set
883# CONFIG_AB3100_CORE is not set 884# CONFIG_AB3100_CORE is not set
884# CONFIG_MFD_88PM8607 is not set 885# CONFIG_LPC_SCH is not set
885# CONFIG_REGULATOR is not set 886# CONFIG_REGULATOR is not set
886# CONFIG_MEDIA_SUPPORT is not set 887# CONFIG_MEDIA_SUPPORT is not set
887 888
@@ -890,6 +891,7 @@ CONFIG_SSB_POSSIBLE=y
890# 891#
891# CONFIG_AGP is not set 892# CONFIG_AGP is not set
892CONFIG_VGA_ARB=y 893CONFIG_VGA_ARB=y
894CONFIG_VGA_ARB_MAX_GPUS=16
893# CONFIG_DRM is not set 895# CONFIG_DRM is not set
894# CONFIG_VGASTATE is not set 896# CONFIG_VGASTATE is not set
895# CONFIG_VIDEO_OUTPUT_CONTROL is not set 897# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -997,7 +999,6 @@ CONFIG_USB_STORAGE=m
997# CONFIG_USB_RIO500 is not set 999# CONFIG_USB_RIO500 is not set
998# CONFIG_USB_LEGOTOWER is not set 1000# CONFIG_USB_LEGOTOWER is not set
999# CONFIG_USB_LCD is not set 1001# CONFIG_USB_LCD is not set
1000# CONFIG_USB_BERRY_CHARGE is not set
1001# CONFIG_USB_LED is not set 1002# CONFIG_USB_LED is not set
1002# CONFIG_USB_CYPRESS_CY7C63 is not set 1003# CONFIG_USB_CYPRESS_CY7C63 is not set
1003# CONFIG_USB_CYTHERM is not set 1004# CONFIG_USB_CYTHERM is not set
@@ -1009,7 +1010,6 @@ CONFIG_USB_STORAGE=m
1009# CONFIG_USB_IOWARRIOR is not set 1010# CONFIG_USB_IOWARRIOR is not set
1010# CONFIG_USB_TEST is not set 1011# CONFIG_USB_TEST is not set
1011# CONFIG_USB_ISIGHTFW is not set 1012# CONFIG_USB_ISIGHTFW is not set
1012# CONFIG_USB_VST is not set
1013# CONFIG_USB_GADGET is not set 1013# CONFIG_USB_GADGET is not set
1014 1014
1015# 1015#
@@ -1172,6 +1172,7 @@ CONFIG_JFFS2_ZLIB=y
1172# CONFIG_JFFS2_LZO is not set 1172# CONFIG_JFFS2_LZO is not set
1173CONFIG_JFFS2_RTIME=y 1173CONFIG_JFFS2_RTIME=y
1174# CONFIG_JFFS2_RUBIN is not set 1174# CONFIG_JFFS2_RUBIN is not set
1175# CONFIG_LOGFS is not set
1175# CONFIG_CRAMFS is not set 1176# CONFIG_CRAMFS is not set
1176# CONFIG_SQUASHFS is not set 1177# CONFIG_SQUASHFS is not set
1177# CONFIG_VXFS_FS is not set 1178# CONFIG_VXFS_FS is not set
diff --git a/arch/powerpc/configs/52xx/tqm5200_defconfig b/arch/powerpc/configs/52xx/tqm5200_defconfig
index 3972438db719..96181c62abfa 100644
--- a/arch/powerpc/configs/52xx/tqm5200_defconfig
+++ b/arch/powerpc/configs/52xx/tqm5200_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.33-rc2 3# Linux kernel version: 2.6.34-rc1
4# Wed Dec 30 14:45:09 2009 4# Wed Mar 10 14:34:24 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -94,11 +94,6 @@ CONFIG_RCU_FANOUT=32
94# CONFIG_TREE_RCU_TRACE is not set 94# CONFIG_TREE_RCU_TRACE is not set
95# CONFIG_IKCONFIG is not set 95# CONFIG_IKCONFIG is not set
96CONFIG_LOG_BUF_SHIFT=14 96CONFIG_LOG_BUF_SHIFT=14
97CONFIG_GROUP_SCHED=y
98CONFIG_FAIR_GROUP_SCHED=y
99# CONFIG_RT_GROUP_SCHED is not set
100CONFIG_USER_SCHED=y
101# CONFIG_CGROUP_SCHED is not set
102# CONFIG_CGROUPS is not set 97# CONFIG_CGROUPS is not set
103CONFIG_SYSFS_DEPRECATED=y 98CONFIG_SYSFS_DEPRECATED=y
104CONFIG_SYSFS_DEPRECATED_V2=y 99CONFIG_SYSFS_DEPRECATED_V2=y
@@ -109,6 +104,7 @@ CONFIG_INITRAMFS_SOURCE=""
109CONFIG_RD_GZIP=y 104CONFIG_RD_GZIP=y
110# CONFIG_RD_BZIP2 is not set 105# CONFIG_RD_BZIP2 is not set
111# CONFIG_RD_LZMA is not set 106# CONFIG_RD_LZMA is not set
107# CONFIG_RD_LZO is not set
112# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 108# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
113CONFIG_SYSCTL=y 109CONFIG_SYSCTL=y
114CONFIG_ANON_INODES=y 110CONFIG_ANON_INODES=y
@@ -346,7 +342,6 @@ CONFIG_NET=y
346# Networking options 342# Networking options
347# 343#
348CONFIG_PACKET=y 344CONFIG_PACKET=y
349# CONFIG_PACKET_MMAP is not set
350CONFIG_UNIX=y 345CONFIG_UNIX=y
351CONFIG_XFRM=y 346CONFIG_XFRM=y
352CONFIG_XFRM_USER=y 347CONFIG_XFRM_USER=y
@@ -524,6 +519,8 @@ CONFIG_MTD_PHYSMAP_OF=y
524# UBI - Unsorted block images 519# UBI - Unsorted block images
525# 520#
526# CONFIG_MTD_UBI is not set 521# CONFIG_MTD_UBI is not set
522CONFIG_OF_FLATTREE=y
523CONFIG_OF_DYNAMIC=y
527CONFIG_OF_DEVICE=y 524CONFIG_OF_DEVICE=y
528CONFIG_OF_I2C=y 525CONFIG_OF_I2C=y
529CONFIG_OF_MDIO=y 526CONFIG_OF_MDIO=y
@@ -704,6 +701,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
704CONFIG_SERIAL_MPC52xx=y 701CONFIG_SERIAL_MPC52xx=y
705CONFIG_SERIAL_MPC52xx_CONSOLE=y 702CONFIG_SERIAL_MPC52xx_CONSOLE=y
706CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 703CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
704# CONFIG_SERIAL_TIMBERDALE is not set
707# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 705# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
708CONFIG_UNIX98_PTYS=y 706CONFIG_UNIX98_PTYS=y
709# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 707# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -733,6 +731,7 @@ CONFIG_I2C_HELPER_AUTO=y
733CONFIG_I2C_MPC=y 731CONFIG_I2C_MPC=y
734# CONFIG_I2C_OCORES is not set 732# CONFIG_I2C_OCORES is not set
735# CONFIG_I2C_SIMTEC is not set 733# CONFIG_I2C_SIMTEC is not set
734# CONFIG_I2C_XILINX is not set
736 735
737# 736#
738# External I2C/SMBus adapter drivers 737# External I2C/SMBus adapter drivers
@@ -780,10 +779,11 @@ CONFIG_HWMON=y
780# CONFIG_SENSORS_ADM1029 is not set 779# CONFIG_SENSORS_ADM1029 is not set
781# CONFIG_SENSORS_ADM1031 is not set 780# CONFIG_SENSORS_ADM1031 is not set
782# CONFIG_SENSORS_ADM9240 is not set 781# CONFIG_SENSORS_ADM9240 is not set
782# CONFIG_SENSORS_ADT7411 is not set
783# CONFIG_SENSORS_ADT7462 is not set 783# CONFIG_SENSORS_ADT7462 is not set
784# CONFIG_SENSORS_ADT7470 is not set 784# CONFIG_SENSORS_ADT7470 is not set
785# CONFIG_SENSORS_ADT7473 is not set
786# CONFIG_SENSORS_ADT7475 is not set 785# CONFIG_SENSORS_ADT7475 is not set
786# CONFIG_SENSORS_ASC7621 is not set
787# CONFIG_SENSORS_ATXP1 is not set 787# CONFIG_SENSORS_ATXP1 is not set
788# CONFIG_SENSORS_DS1621 is not set 788# CONFIG_SENSORS_DS1621 is not set
789# CONFIG_SENSORS_F71805F is not set 789# CONFIG_SENSORS_F71805F is not set
@@ -818,6 +818,7 @@ CONFIG_HWMON=y
818# CONFIG_SENSORS_SMSC47M192 is not set 818# CONFIG_SENSORS_SMSC47M192 is not set
819# CONFIG_SENSORS_SMSC47B397 is not set 819# CONFIG_SENSORS_SMSC47B397 is not set
820# CONFIG_SENSORS_ADS7828 is not set 820# CONFIG_SENSORS_ADS7828 is not set
821# CONFIG_SENSORS_AMC6821 is not set
821# CONFIG_SENSORS_THMC50 is not set 822# CONFIG_SENSORS_THMC50 is not set
822# CONFIG_SENSORS_TMP401 is not set 823# CONFIG_SENSORS_TMP401 is not set
823# CONFIG_SENSORS_TMP421 is not set 824# CONFIG_SENSORS_TMP421 is not set
@@ -838,6 +839,7 @@ CONFIG_WATCHDOG=y
838# Watchdog Device Drivers 839# Watchdog Device Drivers
839# 840#
840# CONFIG_SOFT_WATCHDOG is not set 841# CONFIG_SOFT_WATCHDOG is not set
842# CONFIG_MAX63XX_WATCHDOG is not set
841# CONFIG_MPC5200_WDT is not set 843# CONFIG_MPC5200_WDT is not set
842 844
843# 845#
@@ -855,18 +857,20 @@ CONFIG_SSB_POSSIBLE=y
855# Multifunction device drivers 857# Multifunction device drivers
856# 858#
857# CONFIG_MFD_CORE is not set 859# CONFIG_MFD_CORE is not set
860# CONFIG_MFD_88PM860X is not set
858# CONFIG_MFD_SM501 is not set 861# CONFIG_MFD_SM501 is not set
859# CONFIG_HTC_PASIC3 is not set 862# CONFIG_HTC_PASIC3 is not set
860# CONFIG_TWL4030_CORE is not set 863# CONFIG_TWL4030_CORE is not set
861# CONFIG_MFD_TMIO is not set 864# CONFIG_MFD_TMIO is not set
862# CONFIG_PMIC_DA903X is not set 865# CONFIG_PMIC_DA903X is not set
863# CONFIG_PMIC_ADP5520 is not set 866# CONFIG_PMIC_ADP5520 is not set
867# CONFIG_MFD_MAX8925 is not set
864# CONFIG_MFD_WM8400 is not set 868# CONFIG_MFD_WM8400 is not set
865# CONFIG_MFD_WM831X is not set 869# CONFIG_MFD_WM831X is not set
866# CONFIG_MFD_WM8350_I2C is not set 870# CONFIG_MFD_WM8350_I2C is not set
871# CONFIG_MFD_WM8994 is not set
867# CONFIG_MFD_PCF50633 is not set 872# CONFIG_MFD_PCF50633 is not set
868# CONFIG_AB3100_CORE is not set 873# CONFIG_AB3100_CORE is not set
869# CONFIG_MFD_88PM8607 is not set
870# CONFIG_REGULATOR is not set 874# CONFIG_REGULATOR is not set
871# CONFIG_MEDIA_SUPPORT is not set 875# CONFIG_MEDIA_SUPPORT is not set
872 876
@@ -897,7 +901,6 @@ CONFIG_USB=y
897CONFIG_USB_DEVICEFS=y 901CONFIG_USB_DEVICEFS=y
898# CONFIG_USB_DEVICE_CLASS is not set 902# CONFIG_USB_DEVICE_CLASS is not set
899# CONFIG_USB_DYNAMIC_MINORS is not set 903# CONFIG_USB_DYNAMIC_MINORS is not set
900# CONFIG_USB_SUSPEND is not set
901# CONFIG_USB_OTG is not set 904# CONFIG_USB_OTG is not set
902# CONFIG_USB_OTG_WHITELIST is not set 905# CONFIG_USB_OTG_WHITELIST is not set
903# CONFIG_USB_OTG_BLACKLIST_HUB is not set 906# CONFIG_USB_OTG_BLACKLIST_HUB is not set
@@ -975,7 +978,6 @@ CONFIG_USB_STORAGE=y
975# CONFIG_USB_RIO500 is not set 978# CONFIG_USB_RIO500 is not set
976# CONFIG_USB_LEGOTOWER is not set 979# CONFIG_USB_LEGOTOWER is not set
977# CONFIG_USB_LCD is not set 980# CONFIG_USB_LCD is not set
978# CONFIG_USB_BERRY_CHARGE is not set
979# CONFIG_USB_LED is not set 981# CONFIG_USB_LED is not set
980# CONFIG_USB_CYPRESS_CY7C63 is not set 982# CONFIG_USB_CYPRESS_CY7C63 is not set
981# CONFIG_USB_CYTHERM is not set 983# CONFIG_USB_CYTHERM is not set
@@ -987,7 +989,6 @@ CONFIG_USB_STORAGE=y
987# CONFIG_USB_IOWARRIOR is not set 989# CONFIG_USB_IOWARRIOR is not set
988# CONFIG_USB_TEST is not set 990# CONFIG_USB_TEST is not set
989# CONFIG_USB_ISIGHTFW is not set 991# CONFIG_USB_ISIGHTFW is not set
990# CONFIG_USB_VST is not set
991# CONFIG_USB_GADGET is not set 992# CONFIG_USB_GADGET is not set
992 993
993# 994#
@@ -1151,6 +1152,7 @@ CONFIG_JFFS2_ZLIB=y
1151# CONFIG_JFFS2_LZO is not set 1152# CONFIG_JFFS2_LZO is not set
1152CONFIG_JFFS2_RTIME=y 1153CONFIG_JFFS2_RTIME=y
1153# CONFIG_JFFS2_RUBIN is not set 1154# CONFIG_JFFS2_RUBIN is not set
1155# CONFIG_LOGFS is not set
1154CONFIG_CRAMFS=y 1156CONFIG_CRAMFS=y
1155# CONFIG_SQUASHFS is not set 1157# CONFIG_SQUASHFS is not set
1156# CONFIG_VXFS_FS is not set 1158# CONFIG_VXFS_FS is not set
diff --git a/arch/powerpc/configs/mpc5200_defconfig b/arch/powerpc/configs/mpc5200_defconfig
index 61cf73d0000f..7012ac0134f0 100644
--- a/arch/powerpc/configs/mpc5200_defconfig
+++ b/arch/powerpc/configs/mpc5200_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.33-rc2 3# Linux kernel version: 2.6.34-rc1
4# Wed Dec 30 15:08:52 2009 4# Wed Mar 10 14:38:54 2010
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -96,30 +96,37 @@ CONFIG_RCU_FANOUT=32
96# CONFIG_TREE_RCU_TRACE is not set 96# CONFIG_TREE_RCU_TRACE is not set
97# CONFIG_IKCONFIG is not set 97# CONFIG_IKCONFIG is not set
98CONFIG_LOG_BUF_SHIFT=14 98CONFIG_LOG_BUF_SHIFT=14
99# CONFIG_GROUP_SCHED is not set
100# CONFIG_CGROUPS is not set 99# CONFIG_CGROUPS is not set
101CONFIG_SYSFS_DEPRECATED=y 100CONFIG_SYSFS_DEPRECATED=y
102CONFIG_SYSFS_DEPRECATED_V2=y 101CONFIG_SYSFS_DEPRECATED_V2=y
103# CONFIG_RELAY is not set 102# CONFIG_RELAY is not set
104# CONFIG_NAMESPACES is not set 103CONFIG_NAMESPACES=y
104# CONFIG_UTS_NS is not set
105# CONFIG_IPC_NS is not set
106# CONFIG_USER_NS is not set
107# CONFIG_PID_NS is not set
108# CONFIG_NET_NS is not set
105CONFIG_BLK_DEV_INITRD=y 109CONFIG_BLK_DEV_INITRD=y
106CONFIG_INITRAMFS_SOURCE="" 110CONFIG_INITRAMFS_SOURCE=""
107CONFIG_RD_GZIP=y 111CONFIG_RD_GZIP=y
108# CONFIG_RD_BZIP2 is not set 112CONFIG_RD_BZIP2=y
109# CONFIG_RD_LZMA is not set 113CONFIG_RD_LZMA=y
114CONFIG_RD_LZO=y
110# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 115# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
111CONFIG_SYSCTL=y 116CONFIG_SYSCTL=y
112CONFIG_ANON_INODES=y 117CONFIG_ANON_INODES=y
113CONFIG_EMBEDDED=y 118# CONFIG_EMBEDDED is not set
114# CONFIG_SYSCTL_SYSCALL is not set 119CONFIG_SYSCTL_SYSCALL=y
115# CONFIG_KALLSYMS is not set 120CONFIG_KALLSYMS=y
121# CONFIG_KALLSYMS_ALL is not set
122# CONFIG_KALLSYMS_EXTRA_PASS is not set
116CONFIG_HOTPLUG=y 123CONFIG_HOTPLUG=y
117CONFIG_PRINTK=y 124CONFIG_PRINTK=y
118CONFIG_BUG=y 125CONFIG_BUG=y
119CONFIG_ELF_CORE=y 126CONFIG_ELF_CORE=y
120CONFIG_BASE_FULL=y 127CONFIG_BASE_FULL=y
121CONFIG_FUTEX=y 128CONFIG_FUTEX=y
122# CONFIG_EPOLL is not set 129CONFIG_EPOLL=y
123CONFIG_SIGNALFD=y 130CONFIG_SIGNALFD=y
124CONFIG_TIMERFD=y 131CONFIG_TIMERFD=y
125CONFIG_EVENTFD=y 132CONFIG_EVENTFD=y
@@ -141,6 +148,7 @@ CONFIG_SLUB=y
141# CONFIG_SLOB is not set 148# CONFIG_SLOB is not set
142# CONFIG_PROFILING is not set 149# CONFIG_PROFILING is not set
143CONFIG_HAVE_OPROFILE=y 150CONFIG_HAVE_OPROFILE=y
151# CONFIG_KPROBES is not set
144CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 152CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
145CONFIG_HAVE_IOREMAP_PROT=y 153CONFIG_HAVE_IOREMAP_PROT=y
146CONFIG_HAVE_KPROBES=y 154CONFIG_HAVE_KPROBES=y
@@ -320,6 +328,7 @@ CONFIG_SUSPEND=y
320CONFIG_SUSPEND_FREEZER=y 328CONFIG_SUSPEND_FREEZER=y
321# CONFIG_HIBERNATION is not set 329# CONFIG_HIBERNATION is not set
322# CONFIG_PM_RUNTIME is not set 330# CONFIG_PM_RUNTIME is not set
331CONFIG_PM_OPS=y
323CONFIG_SECCOMP=y 332CONFIG_SECCOMP=y
324CONFIG_ISA_DMA_API=y 333CONFIG_ISA_DMA_API=y
325 334
@@ -336,7 +345,6 @@ CONFIG_PCI_SYSCALL=y
336# CONFIG_PCIEPORTBUS is not set 345# CONFIG_PCIEPORTBUS is not set
337CONFIG_ARCH_SUPPORTS_MSI=y 346CONFIG_ARCH_SUPPORTS_MSI=y
338# CONFIG_PCI_MSI is not set 347# CONFIG_PCI_MSI is not set
339CONFIG_PCI_LEGACY=y
340# CONFIG_PCI_DEBUG is not set 348# CONFIG_PCI_DEBUG is not set
341# CONFIG_PCI_STUB is not set 349# CONFIG_PCI_STUB is not set
342# CONFIG_PCI_IOV is not set 350# CONFIG_PCI_IOV is not set
@@ -363,7 +371,6 @@ CONFIG_NET=y
363# Networking options 371# Networking options
364# 372#
365CONFIG_PACKET=y 373CONFIG_PACKET=y
366# CONFIG_PACKET_MMAP is not set
367CONFIG_UNIX=y 374CONFIG_UNIX=y
368CONFIG_XFRM=y 375CONFIG_XFRM=y
369CONFIG_XFRM_USER=m 376CONFIG_XFRM_USER=m
@@ -454,7 +461,9 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
454# CONFIG_DEVTMPFS is not set 461# CONFIG_DEVTMPFS is not set
455CONFIG_STANDALONE=y 462CONFIG_STANDALONE=y
456CONFIG_PREVENT_FIRMWARE_BUILD=y 463CONFIG_PREVENT_FIRMWARE_BUILD=y
457# CONFIG_FW_LOADER is not set 464CONFIG_FW_LOADER=y
465CONFIG_FIRMWARE_IN_KERNEL=y
466CONFIG_EXTRA_FIRMWARE=""
458# CONFIG_DEBUG_DRIVER is not set 467# CONFIG_DEBUG_DRIVER is not set
459# CONFIG_DEBUG_DEVRES is not set 468# CONFIG_DEBUG_DEVRES is not set
460# CONFIG_SYS_HYPERVISOR is not set 469# CONFIG_SYS_HYPERVISOR is not set
@@ -554,6 +563,8 @@ CONFIG_MTD_UBI_BEB_RESERVE=1
554# UBI debugging options 563# UBI debugging options
555# 564#
556# CONFIG_MTD_UBI_DEBUG is not set 565# CONFIG_MTD_UBI_DEBUG is not set
566CONFIG_OF_FLATTREE=y
567CONFIG_OF_DYNAMIC=y
557CONFIG_OF_DEVICE=y 568CONFIG_OF_DEVICE=y
558CONFIG_OF_GPIO=y 569CONFIG_OF_GPIO=y
559CONFIG_OF_I2C=y 570CONFIG_OF_I2C=y
@@ -732,6 +743,7 @@ CONFIG_ATA_SFF=y
732# CONFIG_PATA_IT821X is not set 743# CONFIG_PATA_IT821X is not set
733# CONFIG_PATA_IT8213 is not set 744# CONFIG_PATA_IT8213 is not set
734# CONFIG_PATA_JMICRON is not set 745# CONFIG_PATA_JMICRON is not set
746# CONFIG_PATA_LEGACY is not set
735# CONFIG_PATA_TRIFLEX is not set 747# CONFIG_PATA_TRIFLEX is not set
736# CONFIG_PATA_MARVELL is not set 748# CONFIG_PATA_MARVELL is not set
737CONFIG_PATA_MPC52xx=y 749CONFIG_PATA_MPC52xx=y
@@ -770,7 +782,7 @@ CONFIG_PATA_PLATFORM=y
770# 782#
771 783
772# 784#
773# See the help texts for more information. 785# The newer stack is recommended.
774# 786#
775# CONFIG_FIREWIRE is not set 787# CONFIG_FIREWIRE is not set
776# CONFIG_IEEE1394 is not set 788# CONFIG_IEEE1394 is not set
@@ -929,6 +941,7 @@ CONFIG_SERIAL_MPC52xx=y
929CONFIG_SERIAL_MPC52xx_CONSOLE=y 941CONFIG_SERIAL_MPC52xx_CONSOLE=y
930CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 942CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200
931# CONFIG_SERIAL_JSM is not set 943# CONFIG_SERIAL_JSM is not set
944# CONFIG_SERIAL_TIMBERDALE is not set
932# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set 945# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
933CONFIG_UNIX98_PTYS=y 946CONFIG_UNIX98_PTYS=y
934# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set 947# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
@@ -981,6 +994,7 @@ CONFIG_I2C_ALGOBIT=y
981CONFIG_I2C_MPC=y 994CONFIG_I2C_MPC=y
982# CONFIG_I2C_OCORES is not set 995# CONFIG_I2C_OCORES is not set
983# CONFIG_I2C_SIMTEC is not set 996# CONFIG_I2C_SIMTEC is not set
997# CONFIG_I2C_XILINX is not set
984 998
985# 999#
986# External I2C/SMBus adapter drivers 1000# External I2C/SMBus adapter drivers
@@ -1010,9 +1024,9 @@ CONFIG_SPI_MASTER=y
1010# 1024#
1011# SPI Master Controller Drivers 1025# SPI Master Controller Drivers
1012# 1026#
1013# CONFIG_SPI_BITBANG is not set 1027CONFIG_SPI_BITBANG=m
1014# CONFIG_SPI_GPIO is not set 1028CONFIG_SPI_GPIO=m
1015# CONFIG_SPI_MPC52xx is not set 1029CONFIG_SPI_MPC52xx=m
1016CONFIG_SPI_MPC52xx_PSC=m 1030CONFIG_SPI_MPC52xx_PSC=m
1017# CONFIG_SPI_XILINX is not set 1031# CONFIG_SPI_XILINX is not set
1018# CONFIG_SPI_DESIGNWARE is not set 1032# CONFIG_SPI_DESIGNWARE is not set
@@ -1036,14 +1050,18 @@ CONFIG_GPIOLIB=y
1036# 1050#
1037# Memory mapped GPIO expanders: 1051# Memory mapped GPIO expanders:
1038# 1052#
1053# CONFIG_GPIO_IT8761E is not set
1039# CONFIG_GPIO_XILINX is not set 1054# CONFIG_GPIO_XILINX is not set
1055# CONFIG_GPIO_SCH is not set
1040 1056
1041# 1057#
1042# I2C GPIO expanders: 1058# I2C GPIO expanders:
1043# 1059#
1060# CONFIG_GPIO_MAX7300 is not set
1044# CONFIG_GPIO_MAX732X is not set 1061# CONFIG_GPIO_MAX732X is not set
1045# CONFIG_GPIO_PCA953X is not set 1062# CONFIG_GPIO_PCA953X is not set
1046# CONFIG_GPIO_PCF857X is not set 1063# CONFIG_GPIO_PCF857X is not set
1064# CONFIG_GPIO_ADP5588 is not set
1047 1065
1048# 1066#
1049# PCI GPIO expanders: 1067# PCI GPIO expanders:
@@ -1080,10 +1098,11 @@ CONFIG_HWMON=y
1080# CONFIG_SENSORS_ADM1029 is not set 1098# CONFIG_SENSORS_ADM1029 is not set
1081# CONFIG_SENSORS_ADM1031 is not set 1099# CONFIG_SENSORS_ADM1031 is not set
1082# CONFIG_SENSORS_ADM9240 is not set 1100# CONFIG_SENSORS_ADM9240 is not set
1101# CONFIG_SENSORS_ADT7411 is not set
1083# CONFIG_SENSORS_ADT7462 is not set 1102# CONFIG_SENSORS_ADT7462 is not set
1084# CONFIG_SENSORS_ADT7470 is not set 1103# CONFIG_SENSORS_ADT7470 is not set
1085# CONFIG_SENSORS_ADT7473 is not set
1086# CONFIG_SENSORS_ADT7475 is not set 1104# CONFIG_SENSORS_ADT7475 is not set
1105# CONFIG_SENSORS_ASC7621 is not set
1087# CONFIG_SENSORS_ATXP1 is not set 1106# CONFIG_SENSORS_ATXP1 is not set
1088# CONFIG_SENSORS_DS1621 is not set 1107# CONFIG_SENSORS_DS1621 is not set
1089# CONFIG_SENSORS_I5K_AMB is not set 1108# CONFIG_SENSORS_I5K_AMB is not set
@@ -1123,6 +1142,7 @@ CONFIG_HWMON=y
1123# CONFIG_SENSORS_SMSC47M192 is not set 1142# CONFIG_SENSORS_SMSC47M192 is not set
1124# CONFIG_SENSORS_SMSC47B397 is not set 1143# CONFIG_SENSORS_SMSC47B397 is not set
1125# CONFIG_SENSORS_ADS7828 is not set 1144# CONFIG_SENSORS_ADS7828 is not set
1145# CONFIG_SENSORS_AMC6821 is not set
1126# CONFIG_SENSORS_THMC50 is not set 1146# CONFIG_SENSORS_THMC50 is not set
1127# CONFIG_SENSORS_TMP401 is not set 1147# CONFIG_SENSORS_TMP401 is not set
1128# CONFIG_SENSORS_TMP421 is not set 1148# CONFIG_SENSORS_TMP421 is not set
@@ -1147,6 +1167,7 @@ CONFIG_WATCHDOG=y
1147# Watchdog Device Drivers 1167# Watchdog Device Drivers
1148# 1168#
1149# CONFIG_SOFT_WATCHDOG is not set 1169# CONFIG_SOFT_WATCHDOG is not set
1170# CONFIG_MAX63XX_WATCHDOG is not set
1150# CONFIG_ALIM7101_WDT is not set 1171# CONFIG_ALIM7101_WDT is not set
1151# CONFIG_MPC5200_WDT is not set 1172# CONFIG_MPC5200_WDT is not set
1152# CONFIG_WATCHDOG_RTAS is not set 1173# CONFIG_WATCHDOG_RTAS is not set
@@ -1172,22 +1193,27 @@ CONFIG_SSB_POSSIBLE=y
1172# Multifunction device drivers 1193# Multifunction device drivers
1173# 1194#
1174# CONFIG_MFD_CORE is not set 1195# CONFIG_MFD_CORE is not set
1196# CONFIG_MFD_88PM860X is not set
1175# CONFIG_MFD_SM501 is not set 1197# CONFIG_MFD_SM501 is not set
1176# CONFIG_HTC_PASIC3 is not set 1198# CONFIG_HTC_PASIC3 is not set
1199# CONFIG_HTC_I2CPLD is not set
1177# CONFIG_TPS65010 is not set 1200# CONFIG_TPS65010 is not set
1178# CONFIG_TWL4030_CORE is not set 1201# CONFIG_TWL4030_CORE is not set
1179# CONFIG_MFD_TMIO is not set 1202# CONFIG_MFD_TMIO is not set
1180# CONFIG_PMIC_DA903X is not set 1203# CONFIG_PMIC_DA903X is not set
1181# CONFIG_PMIC_ADP5520 is not set 1204# CONFIG_PMIC_ADP5520 is not set
1205# CONFIG_MFD_MAX8925 is not set
1182# CONFIG_MFD_WM8400 is not set 1206# CONFIG_MFD_WM8400 is not set
1183# CONFIG_MFD_WM831X is not set 1207# CONFIG_MFD_WM831X is not set
1184# CONFIG_MFD_WM8350_I2C is not set 1208# CONFIG_MFD_WM8350_I2C is not set
1209# CONFIG_MFD_WM8994 is not set
1185# CONFIG_MFD_PCF50633 is not set 1210# CONFIG_MFD_PCF50633 is not set
1186# CONFIG_MFD_MC13783 is not set 1211# CONFIG_MFD_MC13783 is not set
1187# CONFIG_AB3100_CORE is not set 1212# CONFIG_AB3100_CORE is not set
1188# CONFIG_EZX_PCAP is not set 1213# CONFIG_EZX_PCAP is not set
1189# CONFIG_MFD_88PM8607 is not set
1190# CONFIG_AB4500_CORE is not set 1214# CONFIG_AB4500_CORE is not set
1215# CONFIG_MFD_TIMBERDALE is not set
1216# CONFIG_LPC_SCH is not set
1191# CONFIG_REGULATOR is not set 1217# CONFIG_REGULATOR is not set
1192# CONFIG_MEDIA_SUPPORT is not set 1218# CONFIG_MEDIA_SUPPORT is not set
1193 1219
@@ -1196,6 +1222,7 @@ CONFIG_SSB_POSSIBLE=y
1196# 1222#
1197# CONFIG_AGP is not set 1223# CONFIG_AGP is not set
1198CONFIG_VGA_ARB=y 1224CONFIG_VGA_ARB=y
1225CONFIG_VGA_ARB_MAX_GPUS=16
1199CONFIG_DRM=y 1226CONFIG_DRM=y
1200# CONFIG_DRM_TDFX is not set 1227# CONFIG_DRM_TDFX is not set
1201# CONFIG_DRM_R128 is not set 1228# CONFIG_DRM_R128 is not set
@@ -1309,32 +1336,46 @@ CONFIG_USB_HID=y
1309# 1336#
1310# Special HID drivers 1337# Special HID drivers
1311# 1338#
1339# CONFIG_HID_3M_PCT is not set
1312CONFIG_HID_A4TECH=y 1340CONFIG_HID_A4TECH=y
1313# CONFIG_HID_APPLE is not set 1341CONFIG_HID_APPLE=y
1314CONFIG_HID_BELKIN=y 1342CONFIG_HID_BELKIN=y
1315CONFIG_HID_CHERRY=y 1343CONFIG_HID_CHERRY=y
1316# CONFIG_HID_CHICONY is not set 1344CONFIG_HID_CHICONY=y
1317CONFIG_HID_CYPRESS=y 1345CONFIG_HID_CYPRESS=y
1318# CONFIG_HID_DRAGONRISE is not set 1346CONFIG_HID_DRAGONRISE=y
1347# CONFIG_DRAGONRISE_FF is not set
1319CONFIG_HID_EZKEY=y 1348CONFIG_HID_EZKEY=y
1320# CONFIG_HID_KYE is not set 1349CONFIG_HID_KYE=y
1321# CONFIG_HID_GYRATION is not set 1350CONFIG_HID_GYRATION=y
1322# CONFIG_HID_TWINHAN is not set 1351CONFIG_HID_TWINHAN=y
1323# CONFIG_HID_KENSINGTON is not set 1352CONFIG_HID_KENSINGTON=y
1324# CONFIG_HID_LOGITECH is not set 1353CONFIG_HID_LOGITECH=y
1325# CONFIG_HID_MICROSOFT is not set 1354# CONFIG_LOGITECH_FF is not set
1326# CONFIG_HID_MONTEREY is not set 1355# CONFIG_LOGIRUMBLEPAD2_FF is not set
1356# CONFIG_LOGIG940_FF is not set
1357CONFIG_HID_MICROSOFT=y
1358# CONFIG_HID_MOSART is not set
1359CONFIG_HID_MONTEREY=y
1327# CONFIG_HID_NTRIG is not set 1360# CONFIG_HID_NTRIG is not set
1328# CONFIG_HID_PANTHERLORD is not set 1361CONFIG_HID_ORTEK=y
1329# CONFIG_HID_PETALYNX is not set 1362CONFIG_HID_PANTHERLORD=y
1330# CONFIG_HID_SAMSUNG is not set 1363# CONFIG_PANTHERLORD_FF is not set
1331# CONFIG_HID_SONY is not set 1364CONFIG_HID_PETALYNX=y
1332# CONFIG_HID_SUNPLUS is not set 1365# CONFIG_HID_QUANTA is not set
1333# CONFIG_HID_GREENASIA is not set 1366CONFIG_HID_SAMSUNG=y
1334# CONFIG_HID_SMARTJOYPLUS is not set 1367CONFIG_HID_SONY=y
1335# CONFIG_HID_TOPSEED is not set 1368# CONFIG_HID_STANTUM is not set
1336# CONFIG_HID_THRUSTMASTER is not set 1369CONFIG_HID_SUNPLUS=y
1337# CONFIG_HID_ZEROPLUS is not set 1370CONFIG_HID_GREENASIA=y
1371# CONFIG_GREENASIA_FF is not set
1372CONFIG_HID_SMARTJOYPLUS=y
1373# CONFIG_SMARTJOYPLUS_FF is not set
1374CONFIG_HID_TOPSEED=y
1375CONFIG_HID_THRUSTMASTER=y
1376# CONFIG_THRUSTMASTER_FF is not set
1377CONFIG_HID_ZEROPLUS=y
1378# CONFIG_ZEROPLUS_FF is not set
1338CONFIG_USB_SUPPORT=y 1379CONFIG_USB_SUPPORT=y
1339CONFIG_USB_ARCH_HAS_HCD=y 1380CONFIG_USB_ARCH_HAS_HCD=y
1340CONFIG_USB_ARCH_HAS_OHCI=y 1381CONFIG_USB_ARCH_HAS_OHCI=y
@@ -1349,10 +1390,7 @@ CONFIG_USB=y
1349CONFIG_USB_DEVICEFS=y 1390CONFIG_USB_DEVICEFS=y
1350# CONFIG_USB_DEVICE_CLASS is not set 1391# CONFIG_USB_DEVICE_CLASS is not set
1351# CONFIG_USB_DYNAMIC_MINORS is not set 1392# CONFIG_USB_DYNAMIC_MINORS is not set
1352# CONFIG_USB_SUSPEND is not set
1353# CONFIG_USB_OTG is not set 1393# CONFIG_USB_OTG is not set
1354# CONFIG_USB_OTG_WHITELIST is not set
1355# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1356CONFIG_USB_MON=y 1394CONFIG_USB_MON=y
1357# CONFIG_USB_WUSB is not set 1395# CONFIG_USB_WUSB is not set
1358# CONFIG_USB_WUSB_CBAF is not set 1396# CONFIG_USB_WUSB_CBAF is not set
@@ -1433,7 +1471,6 @@ CONFIG_USB_STORAGE=y
1433# CONFIG_USB_RIO500 is not set 1471# CONFIG_USB_RIO500 is not set
1434# CONFIG_USB_LEGOTOWER is not set 1472# CONFIG_USB_LEGOTOWER is not set
1435# CONFIG_USB_LCD is not set 1473# CONFIG_USB_LCD is not set
1436# CONFIG_USB_BERRY_CHARGE is not set
1437# CONFIG_USB_LED is not set 1474# CONFIG_USB_LED is not set
1438# CONFIG_USB_CYPRESS_CY7C63 is not set 1475# CONFIG_USB_CYPRESS_CY7C63 is not set
1439# CONFIG_USB_CYTHERM is not set 1476# CONFIG_USB_CYTHERM is not set
@@ -1445,7 +1482,6 @@ CONFIG_USB_STORAGE=y
1445# CONFIG_USB_IOWARRIOR is not set 1482# CONFIG_USB_IOWARRIOR is not set
1446# CONFIG_USB_TEST is not set 1483# CONFIG_USB_TEST is not set
1447# CONFIG_USB_ISIGHTFW is not set 1484# CONFIG_USB_ISIGHTFW is not set
1448# CONFIG_USB_VST is not set
1449# CONFIG_USB_GADGET is not set 1485# CONFIG_USB_GADGET is not set
1450 1486
1451# 1487#
@@ -1636,6 +1672,7 @@ CONFIG_UBIFS_FS=m
1636CONFIG_UBIFS_FS_LZO=y 1672CONFIG_UBIFS_FS_LZO=y
1637CONFIG_UBIFS_FS_ZLIB=y 1673CONFIG_UBIFS_FS_ZLIB=y
1638# CONFIG_UBIFS_FS_DEBUG is not set 1674# CONFIG_UBIFS_FS_DEBUG is not set
1675# CONFIG_LOGFS is not set
1639CONFIG_CRAMFS=y 1676CONFIG_CRAMFS=y
1640# CONFIG_SQUASHFS is not set 1677# CONFIG_SQUASHFS is not set
1641# CONFIG_VXFS_FS is not set 1678# CONFIG_VXFS_FS is not set
@@ -1730,8 +1767,11 @@ CONFIG_CRC32=y
1730CONFIG_ZLIB_INFLATE=y 1767CONFIG_ZLIB_INFLATE=y
1731CONFIG_ZLIB_DEFLATE=y 1768CONFIG_ZLIB_DEFLATE=y
1732CONFIG_LZO_COMPRESS=m 1769CONFIG_LZO_COMPRESS=m
1733CONFIG_LZO_DECOMPRESS=m 1770CONFIG_LZO_DECOMPRESS=y
1734CONFIG_DECOMPRESS_GZIP=y 1771CONFIG_DECOMPRESS_GZIP=y
1772CONFIG_DECOMPRESS_BZIP2=y
1773CONFIG_DECOMPRESS_LZMA=y
1774CONFIG_DECOMPRESS_LZO=y
1735CONFIG_HAS_IOMEM=y 1775CONFIG_HAS_IOMEM=y
1736CONFIG_HAS_IOPORT=y 1776CONFIG_HAS_IOPORT=y
1737CONFIG_HAS_DMA=y 1777CONFIG_HAS_DMA=y
@@ -1776,11 +1816,11 @@ CONFIG_SCHED_DEBUG=y
1776# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1816# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1777# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1817# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1778# CONFIG_DEBUG_KOBJECT is not set 1818# CONFIG_DEBUG_KOBJECT is not set
1779# CONFIG_DEBUG_BUGVERBOSE is not set 1819CONFIG_DEBUG_BUGVERBOSE=y
1780CONFIG_DEBUG_INFO=y 1820CONFIG_DEBUG_INFO=y
1781# CONFIG_DEBUG_VM is not set 1821# CONFIG_DEBUG_VM is not set
1782# CONFIG_DEBUG_WRITECOUNT is not set 1822# CONFIG_DEBUG_WRITECOUNT is not set
1783# CONFIG_DEBUG_MEMORY_INIT is not set 1823CONFIG_DEBUG_MEMORY_INIT=y
1784# CONFIG_DEBUG_LIST is not set 1824# CONFIG_DEBUG_LIST is not set
1785# CONFIG_DEBUG_SG is not set 1825# CONFIG_DEBUG_SG is not set
1786# CONFIG_DEBUG_NOTIFIERS is not set 1826# CONFIG_DEBUG_NOTIFIERS is not set
diff --git a/arch/powerpc/include/asm/ppc-opcode.h b/arch/powerpc/include/asm/ppc-opcode.h
index aea714797590..d553bbeb726c 100644
--- a/arch/powerpc/include/asm/ppc-opcode.h
+++ b/arch/powerpc/include/asm/ppc-opcode.h
@@ -25,7 +25,7 @@
25#define PPC_INST_LDARX 0x7c0000a8 25#define PPC_INST_LDARX 0x7c0000a8
26#define PPC_INST_LSWI 0x7c0004aa 26#define PPC_INST_LSWI 0x7c0004aa
27#define PPC_INST_LSWX 0x7c00042a 27#define PPC_INST_LSWX 0x7c00042a
28#define PPC_INST_LWARX 0x7c000029 28#define PPC_INST_LWARX 0x7c000028
29#define PPC_INST_LWSYNC 0x7c2004ac 29#define PPC_INST_LWSYNC 0x7c2004ac
30#define PPC_INST_LXVD2X 0x7c000698 30#define PPC_INST_LXVD2X 0x7c000698
31#define PPC_INST_MCRXR 0x7c000400 31#define PPC_INST_MCRXR 0x7c000400
@@ -62,8 +62,8 @@
62#define __PPC_T_TLB(t) (((t) & 0x3) << 21) 62#define __PPC_T_TLB(t) (((t) & 0x3) << 21)
63#define __PPC_WC(w) (((w) & 0x3) << 21) 63#define __PPC_WC(w) (((w) & 0x3) << 21)
64/* 64/*
65 * Only use the larx hint bit on 64bit CPUs. Once we verify it doesn't have 65 * Only use the larx hint bit on 64bit CPUs. e500v1/v2 based CPUs will treat a
66 * any side effects on all 32bit processors, we can do this all the time. 66 * larx with EH set as an illegal instruction.
67 */ 67 */
68#ifdef CONFIG_PPC64 68#ifdef CONFIG_PPC64
69#define __PPC_EH(eh) (((eh) & 0x1) << 0) 69#define __PPC_EH(eh) (((eh) & 0x1) << 0)
diff --git a/arch/powerpc/include/asm/syscall.h b/arch/powerpc/include/asm/syscall.h
index efa7f0b879f3..23913e902fc3 100644
--- a/arch/powerpc/include/asm/syscall.h
+++ b/arch/powerpc/include/asm/syscall.h
@@ -30,7 +30,7 @@ static inline void syscall_rollback(struct task_struct *task,
30static inline long syscall_get_error(struct task_struct *task, 30static inline long syscall_get_error(struct task_struct *task,
31 struct pt_regs *regs) 31 struct pt_regs *regs)
32{ 32{
33 return (regs->ccr & 0x1000) ? -regs->gpr[3] : 0; 33 return (regs->ccr & 0x10000000) ? -regs->gpr[3] : 0;
34} 34}
35 35
36static inline long syscall_get_return_value(struct task_struct *task, 36static inline long syscall_get_return_value(struct task_struct *task,
@@ -44,10 +44,10 @@ static inline void syscall_set_return_value(struct task_struct *task,
44 int error, long val) 44 int error, long val)
45{ 45{
46 if (error) { 46 if (error) {
47 regs->ccr |= 0x1000L; 47 regs->ccr |= 0x10000000L;
48 regs->gpr[3] = -error; 48 regs->gpr[3] = -error;
49 } else { 49 } else {
50 regs->ccr &= ~0x1000L; 50 regs->ccr &= ~0x10000000L;
51 regs->gpr[3] = val; 51 regs->gpr[3] = val;
52 } 52 }
53} 53}
diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S
index 25793bb0e782..725526547994 100644
--- a/arch/powerpc/kernel/head_fsl_booke.S
+++ b/arch/powerpc/kernel/head_fsl_booke.S
@@ -747,9 +747,6 @@ finish_tlb_load:
747#else 747#else
748 rlwimi r12, r11, 26, 27, 31 /* extract WIMGE from pte */ 748 rlwimi r12, r11, 26, 27, 31 /* extract WIMGE from pte */
749#endif 749#endif
750#ifdef CONFIG_SMP
751 ori r12, r12, MAS2_M
752#endif
753 mtspr SPRN_MAS2, r12 750 mtspr SPRN_MAS2, r12
754 751
755#ifdef CONFIG_PTE_64BIT 752#ifdef CONFIG_PTE_64BIT
@@ -887,13 +884,17 @@ KernelSPE:
887 lwz r3,_MSR(r1) 884 lwz r3,_MSR(r1)
888 oris r3,r3,MSR_SPE@h 885 oris r3,r3,MSR_SPE@h
889 stw r3,_MSR(r1) /* enable use of SPE after return */ 886 stw r3,_MSR(r1) /* enable use of SPE after return */
887#ifdef CONFIG_PRINTK
890 lis r3,87f@h 888 lis r3,87f@h
891 ori r3,r3,87f@l 889 ori r3,r3,87f@l
892 mr r4,r2 /* current */ 890 mr r4,r2 /* current */
893 lwz r5,_NIP(r1) 891 lwz r5,_NIP(r1)
894 bl printk 892 bl printk
893#endif
895 b ret_from_except 894 b ret_from_except
895#ifdef CONFIG_PRINTK
89687: .string "SPE used in kernel (task=%p, pc=%x) \n" 89687: .string "SPE used in kernel (task=%p, pc=%x) \n"
897#endif
897 .align 4,0 898 .align 4,0
898 899
899#endif /* CONFIG_SPE */ 900#endif /* CONFIG_SPE */
diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c
index 5547ae6e6b0b..ec94f906ea43 100644
--- a/arch/powerpc/kernel/iommu.c
+++ b/arch/powerpc/kernel/iommu.c
@@ -42,12 +42,7 @@
42 42
43#define DBG(...) 43#define DBG(...)
44 44
45#ifdef CONFIG_IOMMU_VMERGE 45static int novmerge;
46static int novmerge = 0;
47#else
48static int novmerge = 1;
49#endif
50
51static int protect4gb = 1; 46static int protect4gb = 1;
52 47
53static void __iommu_free(struct iommu_table *, dma_addr_t, unsigned int); 48static void __iommu_free(struct iommu_table *, dma_addr_t, unsigned int);
diff --git a/arch/powerpc/kernel/perf_event.c b/arch/powerpc/kernel/perf_event.c
index 5120bd44f69a..08460a2e9f41 100644
--- a/arch/powerpc/kernel/perf_event.c
+++ b/arch/powerpc/kernel/perf_event.c
@@ -1287,7 +1287,7 @@ static void perf_event_interrupt(struct pt_regs *regs)
1287 irq_exit(); 1287 irq_exit();
1288} 1288}
1289 1289
1290void hw_perf_event_setup(int cpu) 1290static void power_pmu_setup(int cpu)
1291{ 1291{
1292 struct cpu_hw_events *cpuhw = &per_cpu(cpu_hw_events, cpu); 1292 struct cpu_hw_events *cpuhw = &per_cpu(cpu_hw_events, cpu);
1293 1293
@@ -1297,6 +1297,23 @@ void hw_perf_event_setup(int cpu)
1297 cpuhw->mmcr[0] = MMCR0_FC; 1297 cpuhw->mmcr[0] = MMCR0_FC;
1298} 1298}
1299 1299
1300static int __cpuinit
1301power_pmu_notifier(struct notifier_block *self, unsigned long action, void *hcpu)
1302{
1303 unsigned int cpu = (long)hcpu;
1304
1305 switch (action & ~CPU_TASKS_FROZEN) {
1306 case CPU_UP_PREPARE:
1307 power_pmu_setup(cpu);
1308 break;
1309
1310 default:
1311 break;
1312 }
1313
1314 return NOTIFY_OK;
1315}
1316
1300int register_power_pmu(struct power_pmu *pmu) 1317int register_power_pmu(struct power_pmu *pmu)
1301{ 1318{
1302 if (ppmu) 1319 if (ppmu)
@@ -1314,5 +1331,7 @@ int register_power_pmu(struct power_pmu *pmu)
1314 freeze_events_kernel = MMCR0_FCHV; 1331 freeze_events_kernel = MMCR0_FCHV;
1315#endif /* CONFIG_PPC64 */ 1332#endif /* CONFIG_PPC64 */
1316 1333
1334 perf_cpu_notifier(power_pmu_notifier);
1335
1317 return 0; 1336 return 0;
1318} 1337}
diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c
index b152de3e64d4..8f58986c2ad9 100644
--- a/arch/powerpc/kernel/setup_32.c
+++ b/arch/powerpc/kernel/setup_32.c
@@ -39,7 +39,6 @@
39#include <asm/serial.h> 39#include <asm/serial.h>
40#include <asm/udbg.h> 40#include <asm/udbg.h>
41#include <asm/mmu_context.h> 41#include <asm/mmu_context.h>
42#include <asm/swiotlb.h>
43 42
44#include "setup.h" 43#include "setup.h"
45 44
@@ -343,11 +342,6 @@ void __init setup_arch(char **cmdline_p)
343 ppc_md.setup_arch(); 342 ppc_md.setup_arch();
344 if ( ppc_md.progress ) ppc_md.progress("arch: exit", 0x3eab); 343 if ( ppc_md.progress ) ppc_md.progress("arch: exit", 0x3eab);
345 344
346#ifdef CONFIG_SWIOTLB
347 if (ppc_swiotlb_enable)
348 swiotlb_init(1);
349#endif
350
351 paging_init(); 345 paging_init();
352 346
353 /* Initialize the MMU context management stuff */ 347 /* Initialize the MMU context management stuff */
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
index 63547394048c..914389158a9b 100644
--- a/arch/powerpc/kernel/setup_64.c
+++ b/arch/powerpc/kernel/setup_64.c
@@ -61,7 +61,6 @@
61#include <asm/xmon.h> 61#include <asm/xmon.h>
62#include <asm/udbg.h> 62#include <asm/udbg.h>
63#include <asm/kexec.h> 63#include <asm/kexec.h>
64#include <asm/swiotlb.h>
65#include <asm/mmu_context.h> 64#include <asm/mmu_context.h>
66 65
67#include "setup.h" 66#include "setup.h"
@@ -541,11 +540,6 @@ void __init setup_arch(char **cmdline_p)
541 if (ppc_md.setup_arch) 540 if (ppc_md.setup_arch)
542 ppc_md.setup_arch(); 541 ppc_md.setup_arch();
543 542
544#ifdef CONFIG_SWIOTLB
545 if (ppc_swiotlb_enable)
546 swiotlb_init(1);
547#endif
548
549 paging_init(); 543 paging_init();
550 544
551 /* Initialize the MMU context management stuff */ 545 /* Initialize the MMU context management stuff */
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 311224cdb7ad..448f972b22f5 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -48,6 +48,7 @@
48#include <asm/sparsemem.h> 48#include <asm/sparsemem.h>
49#include <asm/vdso.h> 49#include <asm/vdso.h>
50#include <asm/fixmap.h> 50#include <asm/fixmap.h>
51#include <asm/swiotlb.h>
51 52
52#include "mmu_decl.h" 53#include "mmu_decl.h"
53 54
@@ -320,6 +321,11 @@ void __init mem_init(void)
320 struct page *page; 321 struct page *page;
321 unsigned long reservedpages = 0, codesize, initsize, datasize, bsssize; 322 unsigned long reservedpages = 0, codesize, initsize, datasize, bsssize;
322 323
324#ifdef CONFIG_SWIOTLB
325 if (ppc_swiotlb_enable)
326 swiotlb_init(1);
327#endif
328
323 num_physpages = lmb.memory.size >> PAGE_SHIFT; 329 num_physpages = lmb.memory.size >> PAGE_SHIFT;
324 high_memory = (void *) __va(max_low_pfn * PAGE_SIZE); 330 high_memory = (void *) __va(max_low_pfn * PAGE_SIZE);
325 331
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
index 072b948b2e2d..5d7cc88dae6b 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
@@ -711,7 +711,11 @@ static int __devinit mpc52xx_gpt_wdt_init(void)
711 return 0; 711 return 0;
712} 712}
713 713
714#define mpc52xx_gpt_wdt_setup(x, y) (0) 714static inline int mpc52xx_gpt_wdt_setup(struct mpc52xx_gpt_priv *gpt,
715 const u32 *period)
716{
717 return 0;
718}
715 719
716#endif /* CONFIG_MPC5200_WDT */ 720#endif /* CONFIG_MPC5200_WDT */
717 721
diff --git a/arch/sh/include/asm/mmu.h b/arch/sh/include/asm/mmu.h
index 19fe84550b49..56e4418c19b9 100644
--- a/arch/sh/include/asm/mmu.h
+++ b/arch/sh/include/asm/mmu.h
@@ -66,6 +66,13 @@ int pmb_unmap(void __iomem *addr);
66 66
67#else 67#else
68 68
69static inline int
70pmb_bolt_mapping(unsigned long virt, phys_addr_t phys,
71 unsigned long size, pgprot_t prot)
72{
73 return -EINVAL;
74}
75
69static inline void __iomem * 76static inline void __iomem *
70pmb_remap_caller(phys_addr_t phys, unsigned long size, 77pmb_remap_caller(phys_addr_t phys, unsigned long size,
71 pgprot_t prot, void *caller) 78 pgprot_t prot, void *caller)
diff --git a/arch/sh/kernel/perf_event.c b/arch/sh/kernel/perf_event.c
index 7ff0943e7a08..9f253e9cce01 100644
--- a/arch/sh/kernel/perf_event.c
+++ b/arch/sh/kernel/perf_event.c
@@ -275,13 +275,30 @@ const struct pmu *hw_perf_event_init(struct perf_event *event)
275 return &pmu; 275 return &pmu;
276} 276}
277 277
278void hw_perf_event_setup(int cpu) 278static void sh_pmu_setup(int cpu)
279{ 279{
280 struct cpu_hw_events *cpuhw = &per_cpu(cpu_hw_events, cpu); 280 struct cpu_hw_events *cpuhw = &per_cpu(cpu_hw_events, cpu);
281 281
282 memset(cpuhw, 0, sizeof(struct cpu_hw_events)); 282 memset(cpuhw, 0, sizeof(struct cpu_hw_events));
283} 283}
284 284
285static int __cpuinit
286sh_pmu_notifier(struct notifier_block *self, unsigned long action, void *hcpu)
287{
288 unsigned int cpu = (long)hcpu;
289
290 switch (action & ~CPU_TASKS_FROZEN) {
291 case CPU_UP_PREPARE:
292 sh_pmu_setup(cpu);
293 break;
294
295 default:
296 break;
297 }
298
299 return NOTIFY_OK;
300}
301
285void hw_perf_enable(void) 302void hw_perf_enable(void)
286{ 303{
287 if (!sh_pmu_initialized()) 304 if (!sh_pmu_initialized())
@@ -308,5 +325,6 @@ int register_sh_pmu(struct sh_pmu *pmu)
308 325
309 WARN_ON(pmu->num_events > MAX_HWEVENTS); 326 WARN_ON(pmu->num_events > MAX_HWEVENTS);
310 327
328 perf_cpu_notifier(sh_pmu_notifier);
311 return 0; 329 return 0;
312} 330}
diff --git a/arch/sh/mm/uncached.c b/arch/sh/mm/uncached.c
index cf20a5c5136a..8a4eca551fc0 100644
--- a/arch/sh/mm/uncached.c
+++ b/arch/sh/mm/uncached.c
@@ -1,6 +1,8 @@
1#include <linux/init.h> 1#include <linux/init.h>
2#include <linux/module.h>
2#include <asm/sizes.h> 3#include <asm/sizes.h>
3#include <asm/page.h> 4#include <asm/page.h>
5#include <asm/addrspace.h>
4 6
5/* 7/*
6 * This is the offset of the uncached section from its cached alias. 8 * This is the offset of the uncached section from its cached alias.
@@ -15,15 +17,22 @@
15unsigned long cached_to_uncached = SZ_512M; 17unsigned long cached_to_uncached = SZ_512M;
16unsigned long uncached_size = SZ_512M; 18unsigned long uncached_size = SZ_512M;
17unsigned long uncached_start, uncached_end; 19unsigned long uncached_start, uncached_end;
20EXPORT_SYMBOL(uncached_start);
21EXPORT_SYMBOL(uncached_end);
18 22
19int virt_addr_uncached(unsigned long kaddr) 23int virt_addr_uncached(unsigned long kaddr)
20{ 24{
21 return (kaddr >= uncached_start) && (kaddr < uncached_end); 25 return (kaddr >= uncached_start) && (kaddr < uncached_end);
22} 26}
27EXPORT_SYMBOL(virt_addr_uncached);
23 28
24void __init uncached_init(void) 29void __init uncached_init(void)
25{ 30{
31#ifdef CONFIG_29BIT
32 uncached_start = P2SEG;
33#else
26 uncached_start = memory_end; 34 uncached_start = memory_end;
35#endif
27 uncached_end = uncached_start + uncached_size; 36 uncached_end = uncached_start + uncached_size;
28} 37}
29 38
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
index 42aafd11e170..60398a0d947c 100644
--- a/arch/x86/kernel/cpu/perf_event.c
+++ b/arch/x86/kernel/cpu/perf_event.c
@@ -133,8 +133,8 @@ struct x86_pmu {
133 int (*handle_irq)(struct pt_regs *); 133 int (*handle_irq)(struct pt_regs *);
134 void (*disable_all)(void); 134 void (*disable_all)(void);
135 void (*enable_all)(void); 135 void (*enable_all)(void);
136 void (*enable)(struct hw_perf_event *, int); 136 void (*enable)(struct perf_event *);
137 void (*disable)(struct hw_perf_event *, int); 137 void (*disable)(struct perf_event *);
138 unsigned eventsel; 138 unsigned eventsel;
139 unsigned perfctr; 139 unsigned perfctr;
140 u64 (*event_map)(int); 140 u64 (*event_map)(int);
@@ -157,6 +157,11 @@ struct x86_pmu {
157 void (*put_event_constraints)(struct cpu_hw_events *cpuc, 157 void (*put_event_constraints)(struct cpu_hw_events *cpuc,
158 struct perf_event *event); 158 struct perf_event *event);
159 struct event_constraint *event_constraints; 159 struct event_constraint *event_constraints;
160
161 void (*cpu_prepare)(int cpu);
162 void (*cpu_starting)(int cpu);
163 void (*cpu_dying)(int cpu);
164 void (*cpu_dead)(int cpu);
160}; 165};
161 166
162static struct x86_pmu x86_pmu __read_mostly; 167static struct x86_pmu x86_pmu __read_mostly;
@@ -165,8 +170,7 @@ static DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events) = {
165 .enabled = 1, 170 .enabled = 1,
166}; 171};
167 172
168static int x86_perf_event_set_period(struct perf_event *event, 173static int x86_perf_event_set_period(struct perf_event *event);
169 struct hw_perf_event *hwc, int idx);
170 174
171/* 175/*
172 * Generalized hw caching related hw_event table, filled 176 * Generalized hw caching related hw_event table, filled
@@ -189,11 +193,12 @@ static u64 __read_mostly hw_cache_event_ids
189 * Returns the delta events processed. 193 * Returns the delta events processed.
190 */ 194 */
191static u64 195static u64
192x86_perf_event_update(struct perf_event *event, 196x86_perf_event_update(struct perf_event *event)
193 struct hw_perf_event *hwc, int idx)
194{ 197{
198 struct hw_perf_event *hwc = &event->hw;
195 int shift = 64 - x86_pmu.event_bits; 199 int shift = 64 - x86_pmu.event_bits;
196 u64 prev_raw_count, new_raw_count; 200 u64 prev_raw_count, new_raw_count;
201 int idx = hwc->idx;
197 s64 delta; 202 s64 delta;
198 203
199 if (idx == X86_PMC_IDX_FIXED_BTS) 204 if (idx == X86_PMC_IDX_FIXED_BTS)
@@ -293,7 +298,7 @@ static inline bool bts_available(void)
293 return x86_pmu.enable_bts != NULL; 298 return x86_pmu.enable_bts != NULL;
294} 299}
295 300
296static inline void init_debug_store_on_cpu(int cpu) 301static void init_debug_store_on_cpu(int cpu)
297{ 302{
298 struct debug_store *ds = per_cpu(cpu_hw_events, cpu).ds; 303 struct debug_store *ds = per_cpu(cpu_hw_events, cpu).ds;
299 304
@@ -305,7 +310,7 @@ static inline void init_debug_store_on_cpu(int cpu)
305 (u32)((u64)(unsigned long)ds >> 32)); 310 (u32)((u64)(unsigned long)ds >> 32));
306} 311}
307 312
308static inline void fini_debug_store_on_cpu(int cpu) 313static void fini_debug_store_on_cpu(int cpu)
309{ 314{
310 if (!per_cpu(cpu_hw_events, cpu).ds) 315 if (!per_cpu(cpu_hw_events, cpu).ds)
311 return; 316 return;
@@ -638,7 +643,7 @@ static int x86_schedule_events(struct cpu_hw_events *cpuc, int n, int *assign)
638 if (test_bit(hwc->idx, used_mask)) 643 if (test_bit(hwc->idx, used_mask))
639 break; 644 break;
640 645
641 set_bit(hwc->idx, used_mask); 646 __set_bit(hwc->idx, used_mask);
642 if (assign) 647 if (assign)
643 assign[i] = hwc->idx; 648 assign[i] = hwc->idx;
644 } 649 }
@@ -687,7 +692,7 @@ static int x86_schedule_events(struct cpu_hw_events *cpuc, int n, int *assign)
687 if (j == X86_PMC_IDX_MAX) 692 if (j == X86_PMC_IDX_MAX)
688 break; 693 break;
689 694
690 set_bit(j, used_mask); 695 __set_bit(j, used_mask);
691 696
692 if (assign) 697 if (assign)
693 assign[i] = j; 698 assign[i] = j;
@@ -780,6 +785,7 @@ static inline int match_prev_assignment(struct hw_perf_event *hwc,
780 hwc->last_tag == cpuc->tags[i]; 785 hwc->last_tag == cpuc->tags[i];
781} 786}
782 787
788static int x86_pmu_start(struct perf_event *event);
783static void x86_pmu_stop(struct perf_event *event); 789static void x86_pmu_stop(struct perf_event *event);
784 790
785void hw_perf_enable(void) 791void hw_perf_enable(void)
@@ -796,6 +802,7 @@ void hw_perf_enable(void)
796 return; 802 return;
797 803
798 if (cpuc->n_added) { 804 if (cpuc->n_added) {
805 int n_running = cpuc->n_events - cpuc->n_added;
799 /* 806 /*
800 * apply assignment obtained either from 807 * apply assignment obtained either from
801 * hw_perf_group_sched_in() or x86_pmu_enable() 808 * hw_perf_group_sched_in() or x86_pmu_enable()
@@ -803,8 +810,7 @@ void hw_perf_enable(void)
803 * step1: save events moving to new counters 810 * step1: save events moving to new counters
804 * step2: reprogram moved events into new counters 811 * step2: reprogram moved events into new counters
805 */ 812 */
806 for (i = 0; i < cpuc->n_events; i++) { 813 for (i = 0; i < n_running; i++) {
807
808 event = cpuc->event_list[i]; 814 event = cpuc->event_list[i];
809 hwc = &event->hw; 815 hwc = &event->hw;
810 816
@@ -819,29 +825,18 @@ void hw_perf_enable(void)
819 continue; 825 continue;
820 826
821 x86_pmu_stop(event); 827 x86_pmu_stop(event);
822
823 hwc->idx = -1;
824 } 828 }
825 829
826 for (i = 0; i < cpuc->n_events; i++) { 830 for (i = 0; i < cpuc->n_events; i++) {
827
828 event = cpuc->event_list[i]; 831 event = cpuc->event_list[i];
829 hwc = &event->hw; 832 hwc = &event->hw;
830 833
831 if (hwc->idx == -1) { 834 if (!match_prev_assignment(hwc, cpuc, i))
832 x86_assign_hw_event(event, cpuc, i); 835 x86_assign_hw_event(event, cpuc, i);
833 x86_perf_event_set_period(event, hwc, hwc->idx); 836 else if (i < n_running)
834 } 837 continue;
835 /*
836 * need to mark as active because x86_pmu_disable()
837 * clear active_mask and events[] yet it preserves
838 * idx
839 */
840 set_bit(hwc->idx, cpuc->active_mask);
841 cpuc->events[hwc->idx] = event;
842 838
843 x86_pmu.enable(hwc, hwc->idx); 839 x86_pmu_start(event);
844 perf_event_update_userpage(event);
845 } 840 }
846 cpuc->n_added = 0; 841 cpuc->n_added = 0;
847 perf_events_lapic_init(); 842 perf_events_lapic_init();
@@ -853,15 +848,16 @@ void hw_perf_enable(void)
853 x86_pmu.enable_all(); 848 x86_pmu.enable_all();
854} 849}
855 850
856static inline void __x86_pmu_enable_event(struct hw_perf_event *hwc, int idx) 851static inline void __x86_pmu_enable_event(struct hw_perf_event *hwc)
857{ 852{
858 (void)checking_wrmsrl(hwc->config_base + idx, 853 (void)checking_wrmsrl(hwc->config_base + hwc->idx,
859 hwc->config | ARCH_PERFMON_EVENTSEL_ENABLE); 854 hwc->config | ARCH_PERFMON_EVENTSEL_ENABLE);
860} 855}
861 856
862static inline void x86_pmu_disable_event(struct hw_perf_event *hwc, int idx) 857static inline void x86_pmu_disable_event(struct perf_event *event)
863{ 858{
864 (void)checking_wrmsrl(hwc->config_base + idx, hwc->config); 859 struct hw_perf_event *hwc = &event->hw;
860 (void)checking_wrmsrl(hwc->config_base + hwc->idx, hwc->config);
865} 861}
866 862
867static DEFINE_PER_CPU(u64 [X86_PMC_IDX_MAX], pmc_prev_left); 863static DEFINE_PER_CPU(u64 [X86_PMC_IDX_MAX], pmc_prev_left);
@@ -871,12 +867,12 @@ static DEFINE_PER_CPU(u64 [X86_PMC_IDX_MAX], pmc_prev_left);
871 * To be called with the event disabled in hw: 867 * To be called with the event disabled in hw:
872 */ 868 */
873static int 869static int
874x86_perf_event_set_period(struct perf_event *event, 870x86_perf_event_set_period(struct perf_event *event)
875 struct hw_perf_event *hwc, int idx)
876{ 871{
872 struct hw_perf_event *hwc = &event->hw;
877 s64 left = atomic64_read(&hwc->period_left); 873 s64 left = atomic64_read(&hwc->period_left);
878 s64 period = hwc->sample_period; 874 s64 period = hwc->sample_period;
879 int err, ret = 0; 875 int err, ret = 0, idx = hwc->idx;
880 876
881 if (idx == X86_PMC_IDX_FIXED_BTS) 877 if (idx == X86_PMC_IDX_FIXED_BTS)
882 return 0; 878 return 0;
@@ -922,11 +918,11 @@ x86_perf_event_set_period(struct perf_event *event,
922 return ret; 918 return ret;
923} 919}
924 920
925static void x86_pmu_enable_event(struct hw_perf_event *hwc, int idx) 921static void x86_pmu_enable_event(struct perf_event *event)
926{ 922{
927 struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); 923 struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
928 if (cpuc->enabled) 924 if (cpuc->enabled)
929 __x86_pmu_enable_event(hwc, idx); 925 __x86_pmu_enable_event(&event->hw);
930} 926}
931 927
932/* 928/*
@@ -962,34 +958,32 @@ static int x86_pmu_enable(struct perf_event *event)
962 memcpy(cpuc->assign, assign, n*sizeof(int)); 958 memcpy(cpuc->assign, assign, n*sizeof(int));
963 959
964 cpuc->n_events = n; 960 cpuc->n_events = n;
965 cpuc->n_added = n - n0; 961 cpuc->n_added += n - n0;
966 962
967 return 0; 963 return 0;
968} 964}
969 965
970static int x86_pmu_start(struct perf_event *event) 966static int x86_pmu_start(struct perf_event *event)
971{ 967{
972 struct hw_perf_event *hwc = &event->hw; 968 struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
969 int idx = event->hw.idx;
973 970
974 if (hwc->idx == -1) 971 if (idx == -1)
975 return -EAGAIN; 972 return -EAGAIN;
976 973
977 x86_perf_event_set_period(event, hwc, hwc->idx); 974 x86_perf_event_set_period(event);
978 x86_pmu.enable(hwc, hwc->idx); 975 cpuc->events[idx] = event;
976 __set_bit(idx, cpuc->active_mask);
977 x86_pmu.enable(event);
978 perf_event_update_userpage(event);
979 979
980 return 0; 980 return 0;
981} 981}
982 982
983static void x86_pmu_unthrottle(struct perf_event *event) 983static void x86_pmu_unthrottle(struct perf_event *event)
984{ 984{
985 struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); 985 int ret = x86_pmu_start(event);
986 struct hw_perf_event *hwc = &event->hw; 986 WARN_ON_ONCE(ret);
987
988 if (WARN_ON_ONCE(hwc->idx >= X86_PMC_IDX_MAX ||
989 cpuc->events[hwc->idx] != event))
990 return;
991
992 x86_pmu.enable(hwc, hwc->idx);
993} 987}
994 988
995void perf_event_print_debug(void) 989void perf_event_print_debug(void)
@@ -1049,18 +1043,16 @@ static void x86_pmu_stop(struct perf_event *event)
1049 struct hw_perf_event *hwc = &event->hw; 1043 struct hw_perf_event *hwc = &event->hw;
1050 int idx = hwc->idx; 1044 int idx = hwc->idx;
1051 1045
1052 /* 1046 if (!__test_and_clear_bit(idx, cpuc->active_mask))
1053 * Must be done before we disable, otherwise the nmi handler 1047 return;
1054 * could reenable again: 1048
1055 */ 1049 x86_pmu.disable(event);
1056 clear_bit(idx, cpuc->active_mask);
1057 x86_pmu.disable(hwc, idx);
1058 1050
1059 /* 1051 /*
1060 * Drain the remaining delta count out of a event 1052 * Drain the remaining delta count out of a event
1061 * that we are disabling: 1053 * that we are disabling:
1062 */ 1054 */
1063 x86_perf_event_update(event, hwc, idx); 1055 x86_perf_event_update(event);
1064 1056
1065 cpuc->events[idx] = NULL; 1057 cpuc->events[idx] = NULL;
1066} 1058}
@@ -1108,7 +1100,7 @@ static int x86_pmu_handle_irq(struct pt_regs *regs)
1108 event = cpuc->events[idx]; 1100 event = cpuc->events[idx];
1109 hwc = &event->hw; 1101 hwc = &event->hw;
1110 1102
1111 val = x86_perf_event_update(event, hwc, idx); 1103 val = x86_perf_event_update(event);
1112 if (val & (1ULL << (x86_pmu.event_bits - 1))) 1104 if (val & (1ULL << (x86_pmu.event_bits - 1)))
1113 continue; 1105 continue;
1114 1106
@@ -1118,11 +1110,11 @@ static int x86_pmu_handle_irq(struct pt_regs *regs)
1118 handled = 1; 1110 handled = 1;
1119 data.period = event->hw.last_period; 1111 data.period = event->hw.last_period;
1120 1112
1121 if (!x86_perf_event_set_period(event, hwc, idx)) 1113 if (!x86_perf_event_set_period(event))
1122 continue; 1114 continue;
1123 1115
1124 if (perf_event_overflow(event, 1, &data, regs)) 1116 if (perf_event_overflow(event, 1, &data, regs))
1125 x86_pmu.disable(hwc, idx); 1117 x86_pmu_stop(event);
1126 } 1118 }
1127 1119
1128 if (handled) 1120 if (handled)
@@ -1309,7 +1301,7 @@ int hw_perf_group_sched_in(struct perf_event *leader,
1309 memcpy(cpuc->assign, assign, n0*sizeof(int)); 1301 memcpy(cpuc->assign, assign, n0*sizeof(int));
1310 1302
1311 cpuc->n_events = n0; 1303 cpuc->n_events = n0;
1312 cpuc->n_added = n1; 1304 cpuc->n_added += n1;
1313 ctx->nr_active += n1; 1305 ctx->nr_active += n1;
1314 1306
1315 /* 1307 /*
@@ -1337,6 +1329,39 @@ undo:
1337#include "perf_event_p6.c" 1329#include "perf_event_p6.c"
1338#include "perf_event_intel.c" 1330#include "perf_event_intel.c"
1339 1331
1332static int __cpuinit
1333x86_pmu_notifier(struct notifier_block *self, unsigned long action, void *hcpu)
1334{
1335 unsigned int cpu = (long)hcpu;
1336
1337 switch (action & ~CPU_TASKS_FROZEN) {
1338 case CPU_UP_PREPARE:
1339 if (x86_pmu.cpu_prepare)
1340 x86_pmu.cpu_prepare(cpu);
1341 break;
1342
1343 case CPU_STARTING:
1344 if (x86_pmu.cpu_starting)
1345 x86_pmu.cpu_starting(cpu);
1346 break;
1347
1348 case CPU_DYING:
1349 if (x86_pmu.cpu_dying)
1350 x86_pmu.cpu_dying(cpu);
1351 break;
1352
1353 case CPU_DEAD:
1354 if (x86_pmu.cpu_dead)
1355 x86_pmu.cpu_dead(cpu);
1356 break;
1357
1358 default:
1359 break;
1360 }
1361
1362 return NOTIFY_OK;
1363}
1364
1340static void __init pmu_check_apic(void) 1365static void __init pmu_check_apic(void)
1341{ 1366{
1342 if (cpu_has_apic) 1367 if (cpu_has_apic)
@@ -1415,11 +1440,13 @@ void __init init_hw_perf_events(void)
1415 pr_info("... max period: %016Lx\n", x86_pmu.max_period); 1440 pr_info("... max period: %016Lx\n", x86_pmu.max_period);
1416 pr_info("... fixed-purpose events: %d\n", x86_pmu.num_events_fixed); 1441 pr_info("... fixed-purpose events: %d\n", x86_pmu.num_events_fixed);
1417 pr_info("... event mask: %016Lx\n", perf_event_mask); 1442 pr_info("... event mask: %016Lx\n", perf_event_mask);
1443
1444 perf_cpu_notifier(x86_pmu_notifier);
1418} 1445}
1419 1446
1420static inline void x86_pmu_read(struct perf_event *event) 1447static inline void x86_pmu_read(struct perf_event *event)
1421{ 1448{
1422 x86_perf_event_update(event, &event->hw, event->hw.idx); 1449 x86_perf_event_update(event);
1423} 1450}
1424 1451
1425static const struct pmu pmu = { 1452static const struct pmu pmu = {
@@ -1675,28 +1702,16 @@ struct perf_callchain_entry *perf_callchain(struct pt_regs *regs)
1675 return entry; 1702 return entry;
1676} 1703}
1677 1704
1678void hw_perf_event_setup_online(int cpu) 1705#ifdef CONFIG_EVENT_TRACING
1706void perf_arch_fetch_caller_regs(struct pt_regs *regs, unsigned long ip, int skip)
1679{ 1707{
1680 init_debug_store_on_cpu(cpu); 1708 regs->ip = ip;
1681 1709 /*
1682 switch (boot_cpu_data.x86_vendor) { 1710 * perf_arch_fetch_caller_regs adds another call, we need to increment
1683 case X86_VENDOR_AMD: 1711 * the skip level
1684 amd_pmu_cpu_online(cpu); 1712 */
1685 break; 1713 regs->bp = rewind_frame_pointer(skip + 1);
1686 default: 1714 regs->cs = __KERNEL_CS;
1687 return; 1715 local_save_flags(regs->flags);
1688 }
1689}
1690
1691void hw_perf_event_setup_offline(int cpu)
1692{
1693 init_debug_store_on_cpu(cpu);
1694
1695 switch (boot_cpu_data.x86_vendor) {
1696 case X86_VENDOR_AMD:
1697 amd_pmu_cpu_offline(cpu);
1698 break;
1699 default:
1700 return;
1701 }
1702} 1716}
1717#endif
diff --git a/arch/x86/kernel/cpu/perf_event_amd.c b/arch/x86/kernel/cpu/perf_event_amd.c
index 8f3dbfda3c4f..b87e0b6970cb 100644
--- a/arch/x86/kernel/cpu/perf_event_amd.c
+++ b/arch/x86/kernel/cpu/perf_event_amd.c
@@ -271,28 +271,6 @@ done:
271 return &emptyconstraint; 271 return &emptyconstraint;
272} 272}
273 273
274static __initconst struct x86_pmu amd_pmu = {
275 .name = "AMD",
276 .handle_irq = x86_pmu_handle_irq,
277 .disable_all = x86_pmu_disable_all,
278 .enable_all = x86_pmu_enable_all,
279 .enable = x86_pmu_enable_event,
280 .disable = x86_pmu_disable_event,
281 .eventsel = MSR_K7_EVNTSEL0,
282 .perfctr = MSR_K7_PERFCTR0,
283 .event_map = amd_pmu_event_map,
284 .raw_event = amd_pmu_raw_event,
285 .max_events = ARRAY_SIZE(amd_perfmon_event_map),
286 .num_events = 4,
287 .event_bits = 48,
288 .event_mask = (1ULL << 48) - 1,
289 .apic = 1,
290 /* use highest bit to detect overflow */
291 .max_period = (1ULL << 47) - 1,
292 .get_event_constraints = amd_get_event_constraints,
293 .put_event_constraints = amd_put_event_constraints
294};
295
296static struct amd_nb *amd_alloc_nb(int cpu, int nb_id) 274static struct amd_nb *amd_alloc_nb(int cpu, int nb_id)
297{ 275{
298 struct amd_nb *nb; 276 struct amd_nb *nb;
@@ -309,7 +287,7 @@ static struct amd_nb *amd_alloc_nb(int cpu, int nb_id)
309 * initialize all possible NB constraints 287 * initialize all possible NB constraints
310 */ 288 */
311 for (i = 0; i < x86_pmu.num_events; i++) { 289 for (i = 0; i < x86_pmu.num_events; i++) {
312 set_bit(i, nb->event_constraints[i].idxmsk); 290 __set_bit(i, nb->event_constraints[i].idxmsk);
313 nb->event_constraints[i].weight = 1; 291 nb->event_constraints[i].weight = 1;
314 } 292 }
315 return nb; 293 return nb;
@@ -370,14 +348,41 @@ static void amd_pmu_cpu_offline(int cpu)
370 348
371 raw_spin_lock(&amd_nb_lock); 349 raw_spin_lock(&amd_nb_lock);
372 350
373 if (--cpuhw->amd_nb->refcnt == 0) 351 if (cpuhw->amd_nb) {
374 kfree(cpuhw->amd_nb); 352 if (--cpuhw->amd_nb->refcnt == 0)
353 kfree(cpuhw->amd_nb);
375 354
376 cpuhw->amd_nb = NULL; 355 cpuhw->amd_nb = NULL;
356 }
377 357
378 raw_spin_unlock(&amd_nb_lock); 358 raw_spin_unlock(&amd_nb_lock);
379} 359}
380 360
361static __initconst struct x86_pmu amd_pmu = {
362 .name = "AMD",
363 .handle_irq = x86_pmu_handle_irq,
364 .disable_all = x86_pmu_disable_all,
365 .enable_all = x86_pmu_enable_all,
366 .enable = x86_pmu_enable_event,
367 .disable = x86_pmu_disable_event,
368 .eventsel = MSR_K7_EVNTSEL0,
369 .perfctr = MSR_K7_PERFCTR0,
370 .event_map = amd_pmu_event_map,
371 .raw_event = amd_pmu_raw_event,
372 .max_events = ARRAY_SIZE(amd_perfmon_event_map),
373 .num_events = 4,
374 .event_bits = 48,
375 .event_mask = (1ULL << 48) - 1,
376 .apic = 1,
377 /* use highest bit to detect overflow */
378 .max_period = (1ULL << 47) - 1,
379 .get_event_constraints = amd_get_event_constraints,
380 .put_event_constraints = amd_put_event_constraints,
381
382 .cpu_prepare = amd_pmu_cpu_online,
383 .cpu_dead = amd_pmu_cpu_offline,
384};
385
381static __init int amd_pmu_init(void) 386static __init int amd_pmu_init(void)
382{ 387{
383 /* Performance-monitoring supported from K7 and later: */ 388 /* Performance-monitoring supported from K7 and later: */
@@ -390,11 +395,6 @@ static __init int amd_pmu_init(void)
390 memcpy(hw_cache_event_ids, amd_hw_cache_event_ids, 395 memcpy(hw_cache_event_ids, amd_hw_cache_event_ids,
391 sizeof(hw_cache_event_ids)); 396 sizeof(hw_cache_event_ids));
392 397
393 /*
394 * explicitly initialize the boot cpu, other cpus will get
395 * the cpu hotplug callbacks from smp_init()
396 */
397 amd_pmu_cpu_online(smp_processor_id());
398 return 0; 398 return 0;
399} 399}
400 400
@@ -405,12 +405,4 @@ static int amd_pmu_init(void)
405 return 0; 405 return 0;
406} 406}
407 407
408static void amd_pmu_cpu_online(int cpu)
409{
410}
411
412static void amd_pmu_cpu_offline(int cpu)
413{
414}
415
416#endif 408#endif
diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
index 44b60c852107..84bfde64a337 100644
--- a/arch/x86/kernel/cpu/perf_event_intel.c
+++ b/arch/x86/kernel/cpu/perf_event_intel.c
@@ -548,9 +548,9 @@ static inline void intel_pmu_ack_status(u64 ack)
548} 548}
549 549
550static inline void 550static inline void
551intel_pmu_disable_fixed(struct hw_perf_event *hwc, int __idx) 551intel_pmu_disable_fixed(struct hw_perf_event *hwc)
552{ 552{
553 int idx = __idx - X86_PMC_IDX_FIXED; 553 int idx = hwc->idx - X86_PMC_IDX_FIXED;
554 u64 ctrl_val, mask; 554 u64 ctrl_val, mask;
555 555
556 mask = 0xfULL << (idx * 4); 556 mask = 0xfULL << (idx * 4);
@@ -621,26 +621,28 @@ static void intel_pmu_drain_bts_buffer(void)
621} 621}
622 622
623static inline void 623static inline void
624intel_pmu_disable_event(struct hw_perf_event *hwc, int idx) 624intel_pmu_disable_event(struct perf_event *event)
625{ 625{
626 if (unlikely(idx == X86_PMC_IDX_FIXED_BTS)) { 626 struct hw_perf_event *hwc = &event->hw;
627
628 if (unlikely(hwc->idx == X86_PMC_IDX_FIXED_BTS)) {
627 intel_pmu_disable_bts(); 629 intel_pmu_disable_bts();
628 intel_pmu_drain_bts_buffer(); 630 intel_pmu_drain_bts_buffer();
629 return; 631 return;
630 } 632 }
631 633
632 if (unlikely(hwc->config_base == MSR_ARCH_PERFMON_FIXED_CTR_CTRL)) { 634 if (unlikely(hwc->config_base == MSR_ARCH_PERFMON_FIXED_CTR_CTRL)) {
633 intel_pmu_disable_fixed(hwc, idx); 635 intel_pmu_disable_fixed(hwc);
634 return; 636 return;
635 } 637 }
636 638
637 x86_pmu_disable_event(hwc, idx); 639 x86_pmu_disable_event(event);
638} 640}
639 641
640static inline void 642static inline void
641intel_pmu_enable_fixed(struct hw_perf_event *hwc, int __idx) 643intel_pmu_enable_fixed(struct hw_perf_event *hwc)
642{ 644{
643 int idx = __idx - X86_PMC_IDX_FIXED; 645 int idx = hwc->idx - X86_PMC_IDX_FIXED;
644 u64 ctrl_val, bits, mask; 646 u64 ctrl_val, bits, mask;
645 int err; 647 int err;
646 648
@@ -670,9 +672,11 @@ intel_pmu_enable_fixed(struct hw_perf_event *hwc, int __idx)
670 err = checking_wrmsrl(hwc->config_base, ctrl_val); 672 err = checking_wrmsrl(hwc->config_base, ctrl_val);
671} 673}
672 674
673static void intel_pmu_enable_event(struct hw_perf_event *hwc, int idx) 675static void intel_pmu_enable_event(struct perf_event *event)
674{ 676{
675 if (unlikely(idx == X86_PMC_IDX_FIXED_BTS)) { 677 struct hw_perf_event *hwc = &event->hw;
678
679 if (unlikely(hwc->idx == X86_PMC_IDX_FIXED_BTS)) {
676 if (!__get_cpu_var(cpu_hw_events).enabled) 680 if (!__get_cpu_var(cpu_hw_events).enabled)
677 return; 681 return;
678 682
@@ -681,11 +685,11 @@ static void intel_pmu_enable_event(struct hw_perf_event *hwc, int idx)
681 } 685 }
682 686
683 if (unlikely(hwc->config_base == MSR_ARCH_PERFMON_FIXED_CTR_CTRL)) { 687 if (unlikely(hwc->config_base == MSR_ARCH_PERFMON_FIXED_CTR_CTRL)) {
684 intel_pmu_enable_fixed(hwc, idx); 688 intel_pmu_enable_fixed(hwc);
685 return; 689 return;
686 } 690 }
687 691
688 __x86_pmu_enable_event(hwc, idx); 692 __x86_pmu_enable_event(hwc);
689} 693}
690 694
691/* 695/*
@@ -694,14 +698,8 @@ static void intel_pmu_enable_event(struct hw_perf_event *hwc, int idx)
694 */ 698 */
695static int intel_pmu_save_and_restart(struct perf_event *event) 699static int intel_pmu_save_and_restart(struct perf_event *event)
696{ 700{
697 struct hw_perf_event *hwc = &event->hw; 701 x86_perf_event_update(event);
698 int idx = hwc->idx; 702 return x86_perf_event_set_period(event);
699 int ret;
700
701 x86_perf_event_update(event, hwc, idx);
702 ret = x86_perf_event_set_period(event, hwc, idx);
703
704 return ret;
705} 703}
706 704
707static void intel_pmu_reset(void) 705static void intel_pmu_reset(void)
@@ -745,11 +743,11 @@ static int intel_pmu_handle_irq(struct pt_regs *regs)
745 743
746 cpuc = &__get_cpu_var(cpu_hw_events); 744 cpuc = &__get_cpu_var(cpu_hw_events);
747 745
748 perf_disable(); 746 intel_pmu_disable_all();
749 intel_pmu_drain_bts_buffer(); 747 intel_pmu_drain_bts_buffer();
750 status = intel_pmu_get_status(); 748 status = intel_pmu_get_status();
751 if (!status) { 749 if (!status) {
752 perf_enable(); 750 intel_pmu_enable_all();
753 return 0; 751 return 0;
754 } 752 }
755 753
@@ -759,8 +757,7 @@ again:
759 WARN_ONCE(1, "perfevents: irq loop stuck!\n"); 757 WARN_ONCE(1, "perfevents: irq loop stuck!\n");
760 perf_event_print_debug(); 758 perf_event_print_debug();
761 intel_pmu_reset(); 759 intel_pmu_reset();
762 perf_enable(); 760 goto done;
763 return 1;
764 } 761 }
765 762
766 inc_irq_stat(apic_perf_irqs); 763 inc_irq_stat(apic_perf_irqs);
@@ -768,7 +765,6 @@ again:
768 for_each_set_bit(bit, (unsigned long *)&status, X86_PMC_IDX_MAX) { 765 for_each_set_bit(bit, (unsigned long *)&status, X86_PMC_IDX_MAX) {
769 struct perf_event *event = cpuc->events[bit]; 766 struct perf_event *event = cpuc->events[bit];
770 767
771 clear_bit(bit, (unsigned long *) &status);
772 if (!test_bit(bit, cpuc->active_mask)) 768 if (!test_bit(bit, cpuc->active_mask))
773 continue; 769 continue;
774 770
@@ -778,7 +774,7 @@ again:
778 data.period = event->hw.last_period; 774 data.period = event->hw.last_period;
779 775
780 if (perf_event_overflow(event, 1, &data, regs)) 776 if (perf_event_overflow(event, 1, &data, regs))
781 intel_pmu_disable_event(&event->hw, bit); 777 x86_pmu_stop(event);
782 } 778 }
783 779
784 intel_pmu_ack_status(ack); 780 intel_pmu_ack_status(ack);
@@ -790,8 +786,8 @@ again:
790 if (status) 786 if (status)
791 goto again; 787 goto again;
792 788
793 perf_enable(); 789done:
794 790 intel_pmu_enable_all();
795 return 1; 791 return 1;
796} 792}
797 793
@@ -870,7 +866,10 @@ static __initconst struct x86_pmu intel_pmu = {
870 .max_period = (1ULL << 31) - 1, 866 .max_period = (1ULL << 31) - 1,
871 .enable_bts = intel_pmu_enable_bts, 867 .enable_bts = intel_pmu_enable_bts,
872 .disable_bts = intel_pmu_disable_bts, 868 .disable_bts = intel_pmu_disable_bts,
873 .get_event_constraints = intel_get_event_constraints 869 .get_event_constraints = intel_get_event_constraints,
870
871 .cpu_starting = init_debug_store_on_cpu,
872 .cpu_dying = fini_debug_store_on_cpu,
874}; 873};
875 874
876static __init int intel_pmu_init(void) 875static __init int intel_pmu_init(void)
diff --git a/arch/x86/kernel/cpu/perf_event_p6.c b/arch/x86/kernel/cpu/perf_event_p6.c
index a4e67b99d91c..a330485d14da 100644
--- a/arch/x86/kernel/cpu/perf_event_p6.c
+++ b/arch/x86/kernel/cpu/perf_event_p6.c
@@ -77,27 +77,29 @@ static void p6_pmu_enable_all(void)
77} 77}
78 78
79static inline void 79static inline void
80p6_pmu_disable_event(struct hw_perf_event *hwc, int idx) 80p6_pmu_disable_event(struct perf_event *event)
81{ 81{
82 struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); 82 struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
83 struct hw_perf_event *hwc = &event->hw;
83 u64 val = P6_NOP_EVENT; 84 u64 val = P6_NOP_EVENT;
84 85
85 if (cpuc->enabled) 86 if (cpuc->enabled)
86 val |= ARCH_PERFMON_EVENTSEL_ENABLE; 87 val |= ARCH_PERFMON_EVENTSEL_ENABLE;
87 88
88 (void)checking_wrmsrl(hwc->config_base + idx, val); 89 (void)checking_wrmsrl(hwc->config_base + hwc->idx, val);
89} 90}
90 91
91static void p6_pmu_enable_event(struct hw_perf_event *hwc, int idx) 92static void p6_pmu_enable_event(struct perf_event *event)
92{ 93{
93 struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); 94 struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
95 struct hw_perf_event *hwc = &event->hw;
94 u64 val; 96 u64 val;
95 97
96 val = hwc->config; 98 val = hwc->config;
97 if (cpuc->enabled) 99 if (cpuc->enabled)
98 val |= ARCH_PERFMON_EVENTSEL_ENABLE; 100 val |= ARCH_PERFMON_EVENTSEL_ENABLE;
99 101
100 (void)checking_wrmsrl(hwc->config_base + idx, val); 102 (void)checking_wrmsrl(hwc->config_base + hwc->idx, val);
101} 103}
102 104
103static __initconst struct x86_pmu p6_pmu = { 105static __initconst struct x86_pmu p6_pmu = {
diff --git a/arch/x86/kernel/dumpstack.h b/arch/x86/kernel/dumpstack.h
index 4fd1420faffa..29e5f7c845b2 100644
--- a/arch/x86/kernel/dumpstack.h
+++ b/arch/x86/kernel/dumpstack.h
@@ -29,4 +29,19 @@ struct stack_frame {
29 struct stack_frame *next_frame; 29 struct stack_frame *next_frame;
30 unsigned long return_address; 30 unsigned long return_address;
31}; 31};
32
33static inline unsigned long rewind_frame_pointer(int n)
34{
35 struct stack_frame *frame;
36
37 get_bp(frame);
38
39#ifdef CONFIG_FRAME_POINTER
40 while (n--)
41 frame = frame->next_frame;
32#endif 42#endif
43
44 return (unsigned long)frame;
45}
46
47#endif /* DUMPSTACK_H */
diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c
index d5e2a2ebb627..272c9f1f05f3 100644
--- a/arch/x86/kernel/dumpstack_64.c
+++ b/arch/x86/kernel/dumpstack_64.c
@@ -208,7 +208,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
208 if (in_irq_stack(stack, irq_stack, irq_stack_end)) { 208 if (in_irq_stack(stack, irq_stack, irq_stack_end)) {
209 if (ops->stack(data, "IRQ") < 0) 209 if (ops->stack(data, "IRQ") < 0)
210 break; 210 break;
211 bp = print_context_stack(tinfo, stack, bp, 211 bp = ops->walk_stack(tinfo, stack, bp,
212 ops, data, irq_stack_end, &graph); 212 ops, data, irq_stack_end, &graph);
213 /* 213 /*
214 * We link to the next stack (which would be 214 * We link to the next stack (which would be
@@ -229,7 +229,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
229 /* 229 /*
230 * This handles the process stack: 230 * This handles the process stack:
231 */ 231 */
232 bp = print_context_stack(tinfo, stack, bp, ops, data, NULL, &graph); 232 bp = ops->walk_stack(tinfo, stack, bp, ops, data, NULL, &graph);
233 put_cpu(); 233 put_cpu();
234} 234}
235EXPORT_SYMBOL(dump_trace); 235EXPORT_SYMBOL(dump_trace);