aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin
diff options
context:
space:
mode:
Diffstat (limited to 'arch/blackfin')
-rw-r--r--arch/blackfin/Kconfig30
-rw-r--r--arch/blackfin/configs/BF527-EZKIT_defconfig348
-rw-r--r--arch/blackfin/configs/BF548-EZKIT_defconfig416
-rw-r--r--arch/blackfin/configs/IP0X_defconfig2
-rw-r--r--arch/blackfin/kernel/asm-offsets.c3
-rw-r--r--arch/blackfin/kernel/bfin_dma_5xx.c11
-rw-r--r--arch/blackfin/kernel/bfin_gpio.c19
-rw-r--r--arch/blackfin/kernel/bfin_ksyms.c2
-rw-r--r--arch/blackfin/kernel/fixed_code.S2
-rw-r--r--arch/blackfin/kernel/init_task.c1
-rw-r--r--arch/blackfin/kernel/module.c37
-rw-r--r--arch/blackfin/kernel/process.c2
-rw-r--r--arch/blackfin/kernel/ptrace.c4
-rw-r--r--arch/blackfin/kernel/signal.c13
-rw-r--r--arch/blackfin/kernel/time-ts.c10
-rw-r--r--arch/blackfin/kernel/traps.c20
-rw-r--r--arch/blackfin/lib/checksum.c21
-rw-r--r--arch/blackfin/lib/ins.S21
-rw-r--r--arch/blackfin/lib/outs.S16
-rw-r--r--arch/blackfin/mach-bf527/boards/ezkit.c102
-rw-r--r--arch/blackfin/mach-bf533/boards/cm_bf533.c33
-rw-r--r--arch/blackfin/mach-bf533/boards/ezkit.c31
-rw-r--r--arch/blackfin/mach-bf533/boards/stamp.c55
-rw-r--r--arch/blackfin/mach-bf537/boards/cm_bf537.c33
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c31
-rw-r--r--arch/blackfin/mach-bf548/boards/cm_bf548.c34
-rw-r--r--arch/blackfin/mach-bf548/boards/ezkit.c32
-rw-r--r--arch/blackfin/mach-bf561/boards/cm_bf561.c32
-rw-r--r--arch/blackfin/mach-bf561/boards/ezkit.c31
-rw-r--r--arch/blackfin/mach-common/Makefile5
-rw-r--r--arch/blackfin/mach-common/cpufreq.c26
-rw-r--r--arch/blackfin/mach-common/dpmc.c137
-rw-r--r--arch/blackfin/mach-common/dpmc_modes.S (renamed from arch/blackfin/mach-common/dpmc.S)27
-rw-r--r--arch/blackfin/mach-common/entry.S113
34 files changed, 1204 insertions, 496 deletions
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index 795d0ac67c21..b87634e75f20 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -479,16 +479,6 @@ comment "Memory Setup"
479 479
480comment "Misc" 480comment "Misc"
481 481
482config ENET_FLASH_PIN
483 int "PF port/pin used for flash and ethernet sharing"
484 depends on (BFIN533_STAMP)
485 default 0
486 help
487 PF port/pin used for flash and ethernet sharing to allow other PF
488 pins to be used on other platforms without having to touch common
489 code.
490 For example: PF0 --> 0,PF1 --> 1,PF2 --> 2, etc.
491
492choice 482choice
493 prompt "Blackfin Exception Scratch Register" 483 prompt "Blackfin Exception Scratch Register"
494 default BFIN_SCRATCH_REG_RETN 484 default BFIN_SCRATCH_REG_RETN
@@ -695,6 +685,8 @@ choice
695 prompt "Uncached SDRAM region" 685 prompt "Uncached SDRAM region"
696 default DMA_UNCACHED_1M 686 default DMA_UNCACHED_1M
697 depends on BFIN_DMA_5XX 687 depends on BFIN_DMA_5XX
688config DMA_UNCACHED_4M
689 bool "Enable 4M DMA region"
698config DMA_UNCACHED_2M 690config DMA_UNCACHED_2M
699 bool "Enable 2M DMA region" 691 bool "Enable 2M DMA region"
700config DMA_UNCACHED_1M 692config DMA_UNCACHED_1M
@@ -832,6 +824,7 @@ config BANK_0
832config BANK_1 824config BANK_1
833 hex "Bank 1" 825 hex "Bank 1"
834 default 0x7BB0 826 default 0x7BB0
827 default 0x5558 if BF54x
835 828
836config BANK_2 829config BANK_2
837 hex "Bank 2" 830 hex "Bank 2"
@@ -963,21 +956,22 @@ endchoice
963 956
964endmenu 957endmenu
965 958
966if (BF537 || BF533 || BF54x)
967
968menu "CPU Frequency scaling" 959menu "CPU Frequency scaling"
969 960
970source "drivers/cpufreq/Kconfig" 961source "drivers/cpufreq/Kconfig"
971 962
972config CPU_FREQ 963config CPU_VOLTAGE
973 bool 964 bool "CPU Voltage scaling"
965 depends on EXPERIMENTAL
966 depends on CPU_FREQ
974 default n 967 default n
975 help 968 help
976 If you want to enable this option, you should select the 969 Say Y here if you want CPU voltage scaling according to the CPU frequency.
977 DPMC driver from Character Devices. 970 This option violates the PLL BYPASS recommendation in the Blackfin Processor
978endmenu 971 manuals. There is a theoretical risk that during VDDINT transitions
972 the PLL may unlock.
979 973
980endif 974endmenu
981 975
982source "net/Kconfig" 976source "net/Kconfig"
983 977
diff --git a/arch/blackfin/configs/BF527-EZKIT_defconfig b/arch/blackfin/configs/BF527-EZKIT_defconfig
index 64876dfc2e55..5e6fb9d8e50f 100644
--- a/arch/blackfin/configs/BF527-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF527-EZKIT_defconfig
@@ -1,6 +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.22.16 3# Linux kernel version: 2.6.24.7
4# Fri May 16 10:02:29 2008
4# 5#
5# CONFIG_MMU is not set 6# CONFIG_MMU is not set
6# CONFIG_FPU is not set 7# CONFIG_FPU is not set
@@ -13,35 +14,34 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=y 14CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_HARDIRQS=y 15CONFIG_GENERIC_HARDIRQS=y
15CONFIG_GENERIC_IRQ_PROBE=y 16CONFIG_GENERIC_IRQ_PROBE=y
16CONFIG_GENERIC_TIME=y
17CONFIG_GENERIC_GPIO=y 17CONFIG_GENERIC_GPIO=y
18CONFIG_FORCE_MAX_ZONEORDER=14 18CONFIG_FORCE_MAX_ZONEORDER=14
19CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
21 21
22# 22#
23# Code maturity level options 23# General setup
24# 24#
25CONFIG_EXPERIMENTAL=y 25CONFIG_EXPERIMENTAL=y
26CONFIG_BROKEN_ON_SMP=y 26CONFIG_BROKEN_ON_SMP=y
27CONFIG_INIT_ENV_ARG_LIMIT=32 27CONFIG_INIT_ENV_ARG_LIMIT=32
28
29#
30# General setup
31#
32CONFIG_LOCALVERSION="" 28CONFIG_LOCALVERSION=""
33CONFIG_LOCALVERSION_AUTO=y 29CONFIG_LOCALVERSION_AUTO=y
34CONFIG_SYSVIPC=y 30CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
36CONFIG_SYSVIPC_SYSCTL=y 31CONFIG_SYSVIPC_SYSCTL=y
37# CONFIG_POSIX_MQUEUE is not set 32# CONFIG_POSIX_MQUEUE is not set
38# CONFIG_BSD_PROCESS_ACCT is not set 33# CONFIG_BSD_PROCESS_ACCT is not set
39# CONFIG_TASKSTATS is not set 34# CONFIG_TASKSTATS is not set
40# CONFIG_UTS_NS is not set 35# CONFIG_USER_NS is not set
36# CONFIG_PID_NS is not set
41# CONFIG_AUDIT is not set 37# CONFIG_AUDIT is not set
42CONFIG_IKCONFIG=y 38CONFIG_IKCONFIG=y
43CONFIG_IKCONFIG_PROC=y 39CONFIG_IKCONFIG_PROC=y
44CONFIG_LOG_BUF_SHIFT=14 40CONFIG_LOG_BUF_SHIFT=14
41# CONFIG_CGROUPS is not set
42CONFIG_FAIR_GROUP_SCHED=y
43CONFIG_FAIR_USER_SCHED=y
44# CONFIG_FAIR_CGROUP_SCHED is not set
45CONFIG_SYSFS_DEPRECATED=y 45CONFIG_SYSFS_DEPRECATED=y
46# CONFIG_RELAY is not set 46# CONFIG_RELAY is not set
47CONFIG_BLK_DEV_INITRD=y 47CONFIG_BLK_DEV_INITRD=y
@@ -64,32 +64,24 @@ CONFIG_EPOLL=y
64CONFIG_SIGNALFD=y 64CONFIG_SIGNALFD=y
65CONFIG_EVENTFD=y 65CONFIG_EVENTFD=y
66CONFIG_VM_EVENT_COUNTERS=y 66CONFIG_VM_EVENT_COUNTERS=y
67CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
68# CONFIG_NP2 is not set
69CONFIG_SLAB=y 67CONFIG_SLAB=y
70# CONFIG_SLUB is not set 68# CONFIG_SLUB is not set
71# CONFIG_SLOB is not set 69# CONFIG_SLOB is not set
70CONFIG_SLABINFO=y
72CONFIG_RT_MUTEXES=y 71CONFIG_RT_MUTEXES=y
73CONFIG_TINY_SHMEM=y 72CONFIG_TINY_SHMEM=y
74CONFIG_BASE_SMALL=0 73CONFIG_BASE_SMALL=0
75
76#
77# Loadable module support
78#
79CONFIG_MODULES=y 74CONFIG_MODULES=y
80CONFIG_MODULE_UNLOAD=y 75CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODULE_FORCE_UNLOAD is not set 76# CONFIG_MODULE_FORCE_UNLOAD is not set
82# CONFIG_MODVERSIONS is not set 77# CONFIG_MODVERSIONS is not set
83# CONFIG_MODULE_SRCVERSION_ALL is not set 78# CONFIG_MODULE_SRCVERSION_ALL is not set
84CONFIG_KMOD=y 79CONFIG_KMOD=y
85
86#
87# Block layer
88#
89CONFIG_BLOCK=y 80CONFIG_BLOCK=y
90# CONFIG_LBD is not set 81# CONFIG_LBD is not set
91# CONFIG_BLK_DEV_IO_TRACE is not set 82# CONFIG_BLK_DEV_IO_TRACE is not set
92# CONFIG_LSF is not set 83# CONFIG_LSF is not set
84# CONFIG_BLK_DEV_BSG is not set
93 85
94# 86#
95# IO Schedulers 87# IO Schedulers
@@ -141,7 +133,6 @@ CONFIG_BF_REV_0_0=y
141# CONFIG_BF_REV_ANY is not set 133# CONFIG_BF_REV_ANY is not set
142# CONFIG_BF_REV_NONE is not set 134# CONFIG_BF_REV_NONE is not set
143CONFIG_BF52x=y 135CONFIG_BF52x=y
144CONFIG_BFIN_SINGLE_CORE=y
145CONFIG_MEM_MT48LC32M16A2TG_75=y 136CONFIG_MEM_MT48LC32M16A2TG_75=y
146CONFIG_BFIN527_EZKIT=y 137CONFIG_BFIN527_EZKIT=y
147 138
@@ -227,12 +218,14 @@ CONFIG_IRQ_USB_DMA=11
227# Board customizations 218# Board customizations
228# 219#
229# CONFIG_CMDLINE_BOOL is not set 220# CONFIG_CMDLINE_BOOL is not set
221CONFIG_BOOT_LOAD=0x1000
230 222
231# 223#
232# Clock/PLL Setup 224# Clock/PLL Setup
233# 225#
234CONFIG_CLKIN_HZ=25000000 226CONFIG_CLKIN_HZ=25000000
235# CONFIG_BFIN_KERNEL_CLOCK is not set 227# CONFIG_BFIN_KERNEL_CLOCK is not set
228CONFIG_MAX_MEM_SIZE=512
236CONFIG_MAX_VCO_HZ=600000000 229CONFIG_MAX_VCO_HZ=600000000
237CONFIG_MIN_VCO_HZ=50000000 230CONFIG_MIN_VCO_HZ=50000000
238CONFIG_MAX_SCLK_HZ=133333333 231CONFIG_MAX_SCLK_HZ=133333333
@@ -246,13 +239,17 @@ CONFIG_HZ_250=y
246# CONFIG_HZ_300 is not set 239# CONFIG_HZ_300 is not set
247# CONFIG_HZ_1000 is not set 240# CONFIG_HZ_1000 is not set
248CONFIG_HZ=250 241CONFIG_HZ=250
242CONFIG_GENERIC_TIME=y
243CONFIG_GENERIC_CLOCKEVENTS=y
244# CONFIG_CYCLES_CLOCKSOURCE is not set
245# CONFIG_TICK_ONESHOT is not set
246# CONFIG_NO_HZ is not set
247# CONFIG_HIGH_RES_TIMERS is not set
248CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
249 249
250# 250#
251# Memory Setup 251# Misc
252# 252#
253CONFIG_MAX_MEM_SIZE=512
254CONFIG_MEM_ADD_WIDTH=10
255CONFIG_BOOT_LOAD=0x1000
256CONFIG_BFIN_SCRATCH_REG_RETN=y 253CONFIG_BFIN_SCRATCH_REG_RETN=y
257# CONFIG_BFIN_SCRATCH_REG_RETE is not set 254# CONFIG_BFIN_SCRATCH_REG_RETE is not set
258# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set 255# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set
@@ -288,12 +285,14 @@ CONFIG_FLATMEM_MANUAL=y
288CONFIG_FLATMEM=y 285CONFIG_FLATMEM=y
289CONFIG_FLAT_NODE_MEM_MAP=y 286CONFIG_FLAT_NODE_MEM_MAP=y
290# CONFIG_SPARSEMEM_STATIC is not set 287# CONFIG_SPARSEMEM_STATIC is not set
288# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
291CONFIG_SPLIT_PTLOCK_CPUS=4 289CONFIG_SPLIT_PTLOCK_CPUS=4
292# CONFIG_RESOURCES_64BIT is not set 290# CONFIG_RESOURCES_64BIT is not set
293CONFIG_ZONE_DMA_FLAG=1 291CONFIG_ZONE_DMA_FLAG=1
294CONFIG_LARGE_ALLOCS=y 292CONFIG_VIRT_TO_BUS=y
295# CONFIG_BFIN_GPTIMERS is not set 293# CONFIG_BFIN_GPTIMERS is not set
296CONFIG_BFIN_DMA_5XX=y 294CONFIG_BFIN_DMA_5XX=y
295# CONFIG_DMA_UNCACHED_4M is not set
297# CONFIG_DMA_UNCACHED_2M is not set 296# CONFIG_DMA_UNCACHED_2M is not set
298CONFIG_DMA_UNCACHED_1M=y 297CONFIG_DMA_UNCACHED_1M=y
299# CONFIG_DMA_UNCACHED_NONE is not set 298# CONFIG_DMA_UNCACHED_NONE is not set
@@ -338,10 +337,6 @@ CONFIG_BANK_3=0xFFC0
338# 337#
339# CONFIG_PCI is not set 338# CONFIG_PCI is not set
340# CONFIG_ARCH_SUPPORTS_MSI is not set 339# CONFIG_ARCH_SUPPORTS_MSI is not set
341
342#
343# PCCARD (PCMCIA/CardBus) support
344#
345# CONFIG_PCCARD is not set 340# CONFIG_PCCARD is not set
346 341
347# 342#
@@ -357,9 +352,15 @@ CONFIG_BINFMT_ZFLAT=y
357# Power management options 352# Power management options
358# 353#
359# CONFIG_PM is not set 354# CONFIG_PM is not set
355CONFIG_SUSPEND_UP_POSSIBLE=y
360# CONFIG_PM_WAKEUP_BY_GPIO is not set 356# CONFIG_PM_WAKEUP_BY_GPIO is not set
361 357
362# 358#
359# CPU Frequency scaling
360#
361# CONFIG_CPU_FREQ is not set
362
363#
363# Networking 364# Networking
364# 365#
365CONFIG_NET=y 366CONFIG_NET=y
@@ -395,6 +396,7 @@ CONFIG_SYN_COOKIES=y
395CONFIG_INET_XFRM_MODE_TRANSPORT=y 396CONFIG_INET_XFRM_MODE_TRANSPORT=y
396CONFIG_INET_XFRM_MODE_TUNNEL=y 397CONFIG_INET_XFRM_MODE_TUNNEL=y
397CONFIG_INET_XFRM_MODE_BEET=y 398CONFIG_INET_XFRM_MODE_BEET=y
399# CONFIG_INET_LRO is not set
398CONFIG_INET_DIAG=y 400CONFIG_INET_DIAG=y
399CONFIG_INET_TCP_DIAG=y 401CONFIG_INET_TCP_DIAG=y
400# CONFIG_TCP_CONG_ADVANCED is not set 402# CONFIG_TCP_CONG_ADVANCED is not set
@@ -421,10 +423,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
421# CONFIG_LAPB is not set 423# CONFIG_LAPB is not set
422# CONFIG_ECONET is not set 424# CONFIG_ECONET is not set
423# CONFIG_WAN_ROUTER is not set 425# CONFIG_WAN_ROUTER is not set
424
425#
426# QoS and/or fair queueing
427#
428# CONFIG_NET_SCHED is not set 426# CONFIG_NET_SCHED is not set
429 427
430# 428#
@@ -444,6 +442,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
444# CONFIG_MAC80211 is not set 442# CONFIG_MAC80211 is not set
445# CONFIG_IEEE80211 is not set 443# CONFIG_IEEE80211 is not set
446# CONFIG_RFKILL is not set 444# CONFIG_RFKILL is not set
445# CONFIG_NET_9P is not set
447 446
448# 447#
449# Device Drivers 448# Device Drivers
@@ -452,14 +451,11 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
452# 451#
453# Generic Driver Options 452# Generic Driver Options
454# 453#
454CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
455CONFIG_STANDALONE=y 455CONFIG_STANDALONE=y
456CONFIG_PREVENT_FIRMWARE_BUILD=y 456CONFIG_PREVENT_FIRMWARE_BUILD=y
457# CONFIG_FW_LOADER is not set 457# CONFIG_FW_LOADER is not set
458# CONFIG_SYS_HYPERVISOR is not set 458# CONFIG_SYS_HYPERVISOR is not set
459
460#
461# Connector - unified userspace <-> kernelspace linker
462#
463# CONFIG_CONNECTOR is not set 459# CONFIG_CONNECTOR is not set
464CONFIG_MTD=y 460CONFIG_MTD=y
465# CONFIG_MTD_DEBUG is not set 461# CONFIG_MTD_DEBUG is not set
@@ -479,6 +475,7 @@ CONFIG_MTD_BLOCK=y
479# CONFIG_INFTL is not set 475# CONFIG_INFTL is not set
480# CONFIG_RFD_FTL is not set 476# CONFIG_RFD_FTL is not set
481# CONFIG_SSFDC is not set 477# CONFIG_SSFDC is not set
478# CONFIG_MTD_OOPS is not set
482 479
483# 480#
484# RAM/ROM/Flash chip drivers 481# RAM/ROM/Flash chip drivers
@@ -542,39 +539,27 @@ CONFIG_MTD_NAND_IDS=m
542# CONFIG_MTD_NAND_DISKONCHIP is not set 539# CONFIG_MTD_NAND_DISKONCHIP is not set
543# CONFIG_MTD_NAND_NANDSIM is not set 540# CONFIG_MTD_NAND_NANDSIM is not set
544# CONFIG_MTD_NAND_PLATFORM is not set 541# CONFIG_MTD_NAND_PLATFORM is not set
542# CONFIG_MTD_ALAUDA is not set
545# CONFIG_MTD_ONENAND is not set 543# CONFIG_MTD_ONENAND is not set
546 544
547# 545#
548# UBI - Unsorted block images 546# UBI - Unsorted block images
549# 547#
550# CONFIG_MTD_UBI is not set 548# CONFIG_MTD_UBI is not set
551
552#
553# Parallel port support
554#
555# CONFIG_PARPORT is not set 549# CONFIG_PARPORT is not set
556 550CONFIG_BLK_DEV=y
557#
558# Plug and Play support
559#
560# CONFIG_PNPACPI is not set
561
562#
563# Block devices
564#
565# CONFIG_BLK_DEV_COW_COMMON is not set 551# CONFIG_BLK_DEV_COW_COMMON is not set
566# CONFIG_BLK_DEV_LOOP is not set 552# CONFIG_BLK_DEV_LOOP is not set
567# CONFIG_BLK_DEV_NBD is not set 553# CONFIG_BLK_DEV_NBD is not set
554# CONFIG_BLK_DEV_UB is not set
568CONFIG_BLK_DEV_RAM=y 555CONFIG_BLK_DEV_RAM=y
569CONFIG_BLK_DEV_RAM_COUNT=16 556CONFIG_BLK_DEV_RAM_COUNT=16
570CONFIG_BLK_DEV_RAM_SIZE=4096 557CONFIG_BLK_DEV_RAM_SIZE=4096
571CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 558CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
572# CONFIG_CDROM_PKTCDVD is not set 559# CONFIG_CDROM_PKTCDVD is not set
573# CONFIG_ATA_OVER_ETH is not set 560# CONFIG_ATA_OVER_ETH is not set
574 561CONFIG_MISC_DEVICES=y
575# 562# CONFIG_EEPROM_93CX6 is not set
576# Misc devices
577#
578# CONFIG_IDE is not set 563# CONFIG_IDE is not set
579 564
580# 565#
@@ -582,22 +567,18 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
582# 567#
583# CONFIG_RAID_ATTRS is not set 568# CONFIG_RAID_ATTRS is not set
584# CONFIG_SCSI is not set 569# CONFIG_SCSI is not set
570# CONFIG_SCSI_DMA is not set
585# CONFIG_SCSI_NETLINK is not set 571# CONFIG_SCSI_NETLINK is not set
586# CONFIG_ATA is not set 572# CONFIG_ATA is not set
587
588#
589# Multi-device support (RAID and LVM)
590#
591# CONFIG_MD is not set 573# CONFIG_MD is not set
592
593#
594# Network device support
595#
596CONFIG_NETDEVICES=y 574CONFIG_NETDEVICES=y
575# CONFIG_NETDEVICES_MULTIQUEUE is not set
597# CONFIG_DUMMY is not set 576# CONFIG_DUMMY is not set
598# CONFIG_BONDING is not set 577# CONFIG_BONDING is not set
578# CONFIG_MACVLAN is not set
599# CONFIG_EQUALIZER is not set 579# CONFIG_EQUALIZER is not set
600# CONFIG_TUN is not set 580# CONFIG_TUN is not set
581# CONFIG_VETH is not set
601CONFIG_PHYLIB=y 582CONFIG_PHYLIB=y
602 583
603# 584#
@@ -611,21 +592,24 @@ CONFIG_PHYLIB=y
611# CONFIG_VITESSE_PHY is not set 592# CONFIG_VITESSE_PHY is not set
612# CONFIG_SMSC_PHY is not set 593# CONFIG_SMSC_PHY is not set
613# CONFIG_BROADCOM_PHY is not set 594# CONFIG_BROADCOM_PHY is not set
595# CONFIG_ICPLUS_PHY is not set
614# CONFIG_FIXED_PHY is not set 596# CONFIG_FIXED_PHY is not set
615 597# CONFIG_MDIO_BITBANG is not set
616#
617# Ethernet (10 or 100Mbit)
618#
619CONFIG_NET_ETHERNET=y 598CONFIG_NET_ETHERNET=y
620CONFIG_MII=y 599CONFIG_MII=y
621# CONFIG_SMC91X is not set
622CONFIG_BFIN_MAC=y 600CONFIG_BFIN_MAC=y
623CONFIG_BFIN_MAC_USE_L1=y 601CONFIG_BFIN_MAC_USE_L1=y
624CONFIG_BFIN_TX_DESC_NUM=10 602CONFIG_BFIN_TX_DESC_NUM=10
625CONFIG_BFIN_RX_DESC_NUM=20 603CONFIG_BFIN_RX_DESC_NUM=20
626CONFIG_BFIN_MAC_RMII=y 604CONFIG_BFIN_MAC_RMII=y
605# CONFIG_SMC91X is not set
627# CONFIG_SMSC911X is not set 606# CONFIG_SMSC911X is not set
628# CONFIG_DM9000 is not set 607# CONFIG_DM9000 is not set
608# CONFIG_IBM_NEW_EMAC_ZMII is not set
609# CONFIG_IBM_NEW_EMAC_RGMII is not set
610# CONFIG_IBM_NEW_EMAC_TAH is not set
611# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
612# CONFIG_B44 is not set
629CONFIG_NETDEV_1000=y 613CONFIG_NETDEV_1000=y
630# CONFIG_AX88180 is not set 614# CONFIG_AX88180 is not set
631CONFIG_NETDEV_10000=y 615CONFIG_NETDEV_10000=y
@@ -635,6 +619,15 @@ CONFIG_NETDEV_10000=y
635# 619#
636# CONFIG_WLAN_PRE80211 is not set 620# CONFIG_WLAN_PRE80211 is not set
637# CONFIG_WLAN_80211 is not set 621# CONFIG_WLAN_80211 is not set
622
623#
624# USB Network Adapters
625#
626# CONFIG_USB_CATC is not set
627# CONFIG_USB_KAWETH is not set
628# CONFIG_USB_PEGASUS is not set
629# CONFIG_USB_RTL8150 is not set
630# CONFIG_USB_USBNET is not set
638# CONFIG_WAN is not set 631# CONFIG_WAN is not set
639# CONFIG_PPP is not set 632# CONFIG_PPP is not set
640# CONFIG_SLIP is not set 633# CONFIG_SLIP is not set
@@ -642,15 +635,7 @@ CONFIG_NETDEV_10000=y
642# CONFIG_NETCONSOLE is not set 635# CONFIG_NETCONSOLE is not set
643# CONFIG_NETPOLL is not set 636# CONFIG_NETPOLL is not set
644# CONFIG_NET_POLL_CONTROLLER is not set 637# CONFIG_NET_POLL_CONTROLLER is not set
645
646#
647# ISDN subsystem
648#
649# CONFIG_ISDN is not set 638# CONFIG_ISDN is not set
650
651#
652# Telephony Support
653#
654# CONFIG_PHONE is not set 639# CONFIG_PHONE is not set
655 640
656# 641#
@@ -665,7 +650,6 @@ CONFIG_INPUT=y
665# 650#
666# CONFIG_INPUT_MOUSEDEV is not set 651# CONFIG_INPUT_MOUSEDEV is not set
667# CONFIG_INPUT_JOYDEV is not set 652# CONFIG_INPUT_JOYDEV is not set
668# CONFIG_INPUT_TSDEV is not set
669# CONFIG_INPUT_EVDEV is not set 653# CONFIG_INPUT_EVDEV is not set
670# CONFIG_INPUT_EVBUG is not set 654# CONFIG_INPUT_EVBUG is not set
671 655
@@ -697,7 +681,6 @@ CONFIG_INPUT_MISC=y
697# 681#
698# CONFIG_AD9960 is not set 682# CONFIG_AD9960 is not set
699# CONFIG_SPI_ADC_BF533 is not set 683# CONFIG_SPI_ADC_BF533 is not set
700# CONFIG_BF5xx_PFLAGS is not set
701# CONFIG_BF5xx_PPIFCD is not set 684# CONFIG_BF5xx_PPIFCD is not set
702# CONFIG_BFIN_SIMPLE_TIMER is not set 685# CONFIG_BFIN_SIMPLE_TIMER is not set
703# CONFIG_BF5xx_PPI is not set 686# CONFIG_BF5xx_PPI is not set
@@ -706,7 +689,7 @@ CONFIG_BFIN_OTP=y
706# CONFIG_BFIN_SPORT is not set 689# CONFIG_BFIN_SPORT is not set
707# CONFIG_BFIN_TIMER_LATENCY is not set 690# CONFIG_BFIN_TIMER_LATENCY is not set
708# CONFIG_TWI_LCD is not set 691# CONFIG_TWI_LCD is not set
709# CONFIG_AD5304 is not set 692# CONFIG_SIMPLE_GPIO is not set
710# CONFIG_VT is not set 693# CONFIG_VT is not set
711# CONFIG_SERIAL_NONSTANDARD is not set 694# CONFIG_SERIAL_NONSTANDARD is not set
712 695
@@ -735,27 +718,11 @@ CONFIG_UNIX98_PTYS=y
735# CAN, the car bus and industrial fieldbus 718# CAN, the car bus and industrial fieldbus
736# 719#
737# CONFIG_CAN4LINUX is not set 720# CONFIG_CAN4LINUX is not set
738
739#
740# IPMI
741#
742# CONFIG_IPMI_HANDLER is not set 721# CONFIG_IPMI_HANDLER is not set
743CONFIG_WATCHDOG=y
744# CONFIG_WATCHDOG_NOWAYOUT is not set
745
746#
747# Watchdog Device Drivers
748#
749# CONFIG_SOFT_WATCHDOG is not set
750CONFIG_BFIN_WDT=y
751CONFIG_HW_RANDOM=y 722CONFIG_HW_RANDOM=y
752# CONFIG_GEN_RTC is not set 723# CONFIG_GEN_RTC is not set
753# CONFIG_R3964 is not set 724# CONFIG_R3964 is not set
754# CONFIG_RAW_DRIVER is not set 725# CONFIG_RAW_DRIVER is not set
755
756#
757# TPM devices
758#
759# CONFIG_TCG_TPM is not set 726# CONFIG_TCG_TPM is not set
760CONFIG_I2C=y 727CONFIG_I2C=y
761CONFIG_I2C_BOARDINFO=y 728CONFIG_I2C_BOARDINFO=y
@@ -777,21 +744,24 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=50
777# CONFIG_I2C_OCORES is not set 744# CONFIG_I2C_OCORES is not set
778# CONFIG_I2C_PARPORT_LIGHT is not set 745# CONFIG_I2C_PARPORT_LIGHT is not set
779# CONFIG_I2C_SIMTEC is not set 746# CONFIG_I2C_SIMTEC is not set
747# CONFIG_I2C_TAOS_EVM is not set
780# CONFIG_I2C_STUB is not set 748# CONFIG_I2C_STUB is not set
749# CONFIG_I2C_TINY_USB is not set
781 750
782# 751#
783# Miscellaneous I2C Chip support 752# Miscellaneous I2C Chip support
784# 753#
785# CONFIG_SENSORS_DS1337 is not set 754# CONFIG_SENSORS_DS1337 is not set
786# CONFIG_SENSORS_DS1374 is not set 755# CONFIG_SENSORS_DS1374 is not set
756# CONFIG_DS1682 is not set
787# CONFIG_SENSORS_AD5252 is not set 757# CONFIG_SENSORS_AD5252 is not set
788# CONFIG_SENSORS_EEPROM is not set 758# CONFIG_SENSORS_EEPROM is not set
789# CONFIG_SENSORS_PCF8574 is not set 759# CONFIG_SENSORS_PCF8574 is not set
790# CONFIG_SENSORS_PCF8575 is not set 760# CONFIG_SENSORS_PCF8575 is not set
791# CONFIG_SENSORS_PCA9543 is not set
792# CONFIG_SENSORS_PCA9539 is not set 761# CONFIG_SENSORS_PCA9539 is not set
793# CONFIG_SENSORS_PCF8591 is not set 762# CONFIG_SENSORS_PCF8591 is not set
794# CONFIG_SENSORS_MAX6875 is not set 763# CONFIG_SENSORS_MAX6875 is not set
764# CONFIG_SENSORS_TSL2550 is not set
795# CONFIG_I2C_DEBUG_CORE is not set 765# CONFIG_I2C_DEBUG_CORE is not set
796# CONFIG_I2C_DEBUG_ALGO is not set 766# CONFIG_I2C_DEBUG_ALGO is not set
797# CONFIG_I2C_DEBUG_BUS is not set 767# CONFIG_I2C_DEBUG_BUS is not set
@@ -814,14 +784,11 @@ CONFIG_SPI_BFIN=y
814# 784#
815# CONFIG_SPI_AT25 is not set 785# CONFIG_SPI_AT25 is not set
816# CONFIG_SPI_SPIDEV is not set 786# CONFIG_SPI_SPIDEV is not set
817 787# CONFIG_SPI_TLE62X0 is not set
818#
819# Dallas's 1-wire bus
820#
821# CONFIG_W1 is not set 788# CONFIG_W1 is not set
789# CONFIG_POWER_SUPPLY is not set
822CONFIG_HWMON=y 790CONFIG_HWMON=y
823# CONFIG_HWMON_VID is not set 791# CONFIG_HWMON_VID is not set
824# CONFIG_SENSORS_ABITUGURU is not set
825# CONFIG_SENSORS_AD7418 is not set 792# CONFIG_SENSORS_AD7418 is not set
826# CONFIG_SENSORS_ADM1021 is not set 793# CONFIG_SENSORS_ADM1021 is not set
827# CONFIG_SENSORS_ADM1025 is not set 794# CONFIG_SENSORS_ADM1025 is not set
@@ -829,12 +796,12 @@ CONFIG_HWMON=y
829# CONFIG_SENSORS_ADM1029 is not set 796# CONFIG_SENSORS_ADM1029 is not set
830# CONFIG_SENSORS_ADM1031 is not set 797# CONFIG_SENSORS_ADM1031 is not set
831# CONFIG_SENSORS_ADM9240 is not set 798# CONFIG_SENSORS_ADM9240 is not set
832# CONFIG_SENSORS_ASB100 is not set 799# CONFIG_SENSORS_ADT7470 is not set
833# CONFIG_SENSORS_ATXP1 is not set 800# CONFIG_SENSORS_ATXP1 is not set
834# CONFIG_SENSORS_DS1621 is not set 801# CONFIG_SENSORS_DS1621 is not set
835# CONFIG_SENSORS_F71805F is not set 802# CONFIG_SENSORS_F71805F is not set
836# CONFIG_SENSORS_FSCHER is not set 803# CONFIG_SENSORS_F71882FG is not set
837# CONFIG_SENSORS_FSCPOS is not set 804# CONFIG_SENSORS_F75375S is not set
838# CONFIG_SENSORS_GL518SM is not set 805# CONFIG_SENSORS_GL518SM is not set
839# CONFIG_SENSORS_GL520SM is not set 806# CONFIG_SENSORS_GL520SM is not set
840# CONFIG_SENSORS_IT87 is not set 807# CONFIG_SENSORS_IT87 is not set
@@ -849,13 +816,16 @@ CONFIG_HWMON=y
849# CONFIG_SENSORS_LM87 is not set 816# CONFIG_SENSORS_LM87 is not set
850# CONFIG_SENSORS_LM90 is not set 817# CONFIG_SENSORS_LM90 is not set
851# CONFIG_SENSORS_LM92 is not set 818# CONFIG_SENSORS_LM92 is not set
819# CONFIG_SENSORS_LM93 is not set
852# CONFIG_SENSORS_MAX1619 is not set 820# CONFIG_SENSORS_MAX1619 is not set
853# CONFIG_SENSORS_MAX6650 is not set 821# CONFIG_SENSORS_MAX6650 is not set
854# CONFIG_SENSORS_PC87360 is not set 822# CONFIG_SENSORS_PC87360 is not set
855# CONFIG_SENSORS_PC87427 is not set 823# CONFIG_SENSORS_PC87427 is not set
824# CONFIG_SENSORS_DME1737 is not set
856# CONFIG_SENSORS_SMSC47M1 is not set 825# CONFIG_SENSORS_SMSC47M1 is not set
857# CONFIG_SENSORS_SMSC47M192 is not set 826# CONFIG_SENSORS_SMSC47M192 is not set
858# CONFIG_SENSORS_SMSC47B397 is not set 827# CONFIG_SENSORS_SMSC47B397 is not set
828# CONFIG_SENSORS_THMC50 is not set
859# CONFIG_SENSORS_VT1211 is not set 829# CONFIG_SENSORS_VT1211 is not set
860# CONFIG_SENSORS_W83781D is not set 830# CONFIG_SENSORS_W83781D is not set
861# CONFIG_SENSORS_W83791D is not set 831# CONFIG_SENSORS_W83791D is not set
@@ -865,6 +835,25 @@ CONFIG_HWMON=y
865# CONFIG_SENSORS_W83627HF is not set 835# CONFIG_SENSORS_W83627HF is not set
866# CONFIG_SENSORS_W83627EHF is not set 836# CONFIG_SENSORS_W83627EHF is not set
867# CONFIG_HWMON_DEBUG_CHIP is not set 837# CONFIG_HWMON_DEBUG_CHIP is not set
838CONFIG_WATCHDOG=y
839# CONFIG_WATCHDOG_NOWAYOUT is not set
840
841#
842# Watchdog Device Drivers
843#
844# CONFIG_SOFT_WATCHDOG is not set
845CONFIG_BFIN_WDT=y
846
847#
848# USB-based Watchdog Cards
849#
850# CONFIG_USBPCWATCHDOG is not set
851
852#
853# Sonics Silicon Backplane
854#
855CONFIG_SSB_POSSIBLE=y
856# CONFIG_SSB is not set
868 857
869# 858#
870# Multifunction device drivers 859# Multifunction device drivers
@@ -881,72 +870,133 @@ CONFIG_HWMON=y
881# 870#
882# Graphics support 871# Graphics support
883# 872#
873# CONFIG_VGASTATE is not set
874# CONFIG_VIDEO_OUTPUT_CONTROL is not set
875# CONFIG_FB is not set
884# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 876# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
885 877
886# 878#
887# Display device support 879# Display device support
888# 880#
889# CONFIG_DISPLAY_SUPPORT is not set 881# CONFIG_DISPLAY_SUPPORT is not set
890# CONFIG_VGASTATE is not set
891# CONFIG_FB is not set
892 882
893# 883#
894# Sound 884# Sound
895# 885#
896# CONFIG_SOUND is not set 886# CONFIG_SOUND is not set
897 887CONFIG_HID_SUPPORT=y
898#
899# HID Devices
900#
901CONFIG_HID=y 888CONFIG_HID=y
902# CONFIG_HID_DEBUG is not set 889# CONFIG_HID_DEBUG is not set
890# CONFIG_HIDRAW is not set
903 891
904# 892#
905# USB support 893# USB Input Devices
906# 894#
895CONFIG_USB_HID=y
896# CONFIG_USB_HIDINPUT_POWERBOOK is not set
897# CONFIG_HID_FF is not set
898# CONFIG_USB_HIDDEV is not set
899CONFIG_USB_SUPPORT=y
907CONFIG_USB_ARCH_HAS_HCD=y 900CONFIG_USB_ARCH_HAS_HCD=y
908# CONFIG_USB_ARCH_HAS_OHCI is not set 901# CONFIG_USB_ARCH_HAS_OHCI is not set
909# CONFIG_USB_ARCH_HAS_EHCI is not set 902# CONFIG_USB_ARCH_HAS_EHCI is not set
910# CONFIG_USB is not set 903CONFIG_USB=y
904# CONFIG_USB_DEBUG is not set
905
906#
907# Miscellaneous USB options
908#
909# CONFIG_USB_DEVICEFS is not set
910CONFIG_USB_DEVICE_CLASS=y
911# CONFIG_USB_DYNAMIC_MINORS is not set
912# CONFIG_USB_OTG is not set
913# CONFIG_USB_OTG_WHITELIST is not set
914CONFIG_USB_OTG_BLACKLIST_HUB=y
915
916#
917# USB Host Controller Drivers
918#
919# CONFIG_USB_ISP116X_HCD is not set
920# CONFIG_USB_ISP1362_HCD is not set
921# CONFIG_USB_ISP1760_HCD is not set
922# CONFIG_USB_SL811_HCD is not set
923# CONFIG_USB_R8A66597_HCD is not set
924CONFIG_USB_MUSB_HDRC=y
925CONFIG_USB_MUSB_SOC=y
911 926
912# 927#
913# Enable Host or Gadget support to see Inventra options 928# Blackfin high speed USB support
914# 929#
930CONFIG_USB_MUSB_HOST=y
931# CONFIG_USB_MUSB_PERIPHERAL is not set
932# CONFIG_USB_MUSB_OTG is not set
933CONFIG_USB_MUSB_HDRC_HCD=y
934CONFIG_MUSB_PIO_ONLY=y
935CONFIG_USB_MUSB_LOGLEVEL=0
936
937#
938# USB Device Class drivers
939#
940# CONFIG_USB_ACM is not set
941# CONFIG_USB_PRINTER is not set
915 942
916# 943#
917# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 944# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
918# 945#
919 946
920# 947#
921# USB Gadget Support 948# may also be needed; see USB_STORAGE Help for more information
922# 949#
923# CONFIG_USB_GADGET is not set 950# CONFIG_USB_LIBUSUAL is not set
924# CONFIG_MMC is not set
925 951
926# 952#
927# LED devices 953# USB Imaging devices
928# 954#
929# CONFIG_NEW_LEDS is not set 955# CONFIG_USB_MDC800 is not set
956CONFIG_USB_MON=y
930 957
931# 958#
932# LED drivers 959# USB port drivers
933# 960#
934 961
935# 962#
936# LED Triggers 963# USB Serial Converter support
937# 964#
965# CONFIG_USB_SERIAL is not set
938 966
939# 967#
940# InfiniBand support 968# USB Miscellaneous drivers
941# 969#
970# CONFIG_USB_EMI62 is not set
971# CONFIG_USB_EMI26 is not set
972# CONFIG_USB_ADUTUX is not set
973# CONFIG_USB_AUERSWALD is not set
974# CONFIG_USB_RIO500 is not set
975# CONFIG_USB_LEGOTOWER is not set
976# CONFIG_USB_LCD is not set
977# CONFIG_USB_BERRY_CHARGE is not set
978# CONFIG_USB_LED is not set
979# CONFIG_USB_CYPRESS_CY7C63 is not set
980# CONFIG_USB_CYTHERM is not set
981# CONFIG_USB_PHIDGET is not set
982# CONFIG_USB_IDMOUSE is not set
983# CONFIG_USB_FTDI_ELAN is not set
984# CONFIG_USB_APPLEDISPLAY is not set
985# CONFIG_USB_SISUSBVGA is not set
986# CONFIG_USB_LD is not set
987# CONFIG_USB_TRANCEVIBRATOR is not set
988# CONFIG_USB_IOWARRIOR is not set
942 989
943# 990#
944# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 991# USB DSL modem support
945# 992#
946 993
947# 994#
948# Real Time Clock 995# USB Gadget Support
949# 996#
997# CONFIG_USB_GADGET is not set
998# CONFIG_MMC is not set
999# CONFIG_NEW_LEDS is not set
950CONFIG_RTC_LIB=y 1000CONFIG_RTC_LIB=y
951CONFIG_RTC_CLASS=y 1001CONFIG_RTC_CLASS=y
952CONFIG_RTC_HCTOSYS=y 1002CONFIG_RTC_HCTOSYS=y
@@ -966,6 +1016,7 @@ CONFIG_RTC_INTF_DEV=y
966# I2C RTC drivers 1016# I2C RTC drivers
967# 1017#
968# CONFIG_RTC_DRV_DS1307 is not set 1018# CONFIG_RTC_DRV_DS1307 is not set
1019# CONFIG_RTC_DRV_DS1374 is not set
969# CONFIG_RTC_DRV_DS1672 is not set 1020# CONFIG_RTC_DRV_DS1672 is not set
970# CONFIG_RTC_DRV_MAX6900 is not set 1021# CONFIG_RTC_DRV_MAX6900 is not set
971# CONFIG_RTC_DRV_RS5C372 is not set 1022# CONFIG_RTC_DRV_RS5C372 is not set
@@ -973,6 +1024,7 @@ CONFIG_RTC_INTF_DEV=y
973# CONFIG_RTC_DRV_X1205 is not set 1024# CONFIG_RTC_DRV_X1205 is not set
974# CONFIG_RTC_DRV_PCF8563 is not set 1025# CONFIG_RTC_DRV_PCF8563 is not set
975# CONFIG_RTC_DRV_PCF8583 is not set 1026# CONFIG_RTC_DRV_PCF8583 is not set
1027# CONFIG_RTC_DRV_M41T80 is not set
976 1028
977# 1029#
978# SPI RTC drivers 1030# SPI RTC drivers
@@ -984,8 +1036,10 @@ CONFIG_RTC_INTF_DEV=y
984# Platform RTC drivers 1036# Platform RTC drivers
985# 1037#
986# CONFIG_RTC_DRV_DS1553 is not set 1038# CONFIG_RTC_DRV_DS1553 is not set
1039# CONFIG_RTC_DRV_STK17TA8 is not set
987# CONFIG_RTC_DRV_DS1742 is not set 1040# CONFIG_RTC_DRV_DS1742 is not set
988# CONFIG_RTC_DRV_M48T86 is not set 1041# CONFIG_RTC_DRV_M48T86 is not set
1042# CONFIG_RTC_DRV_M48T59 is not set
989# CONFIG_RTC_DRV_V3020 is not set 1043# CONFIG_RTC_DRV_V3020 is not set
990 1044
991# 1045#
@@ -994,22 +1048,9 @@ CONFIG_RTC_INTF_DEV=y
994CONFIG_RTC_DRV_BFIN=y 1048CONFIG_RTC_DRV_BFIN=y
995 1049
996# 1050#
997# DMA Engine support 1051# Userspace I/O
998#
999# CONFIG_DMA_ENGINE is not set
1000
1001#
1002# DMA Clients
1003# 1052#
1004 1053# CONFIG_UIO is not set
1005#
1006# DMA Devices
1007#
1008
1009#
1010# PBX support
1011#
1012# CONFIG_PBX is not set
1013 1054
1014# 1055#
1015# File systems 1056# File systems
@@ -1054,7 +1095,6 @@ CONFIG_PROC_SYSCTL=y
1054CONFIG_SYSFS=y 1095CONFIG_SYSFS=y
1055# CONFIG_TMPFS is not set 1096# CONFIG_TMPFS is not set
1056# CONFIG_HUGETLB_PAGE is not set 1097# CONFIG_HUGETLB_PAGE is not set
1057CONFIG_RAMFS=y
1058# CONFIG_CONFIGFS_FS is not set 1098# CONFIG_CONFIGFS_FS is not set
1059 1099
1060# 1100#
@@ -1080,10 +1120,12 @@ CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
1080CONFIG_JFFS2_FS=m 1120CONFIG_JFFS2_FS=m
1081CONFIG_JFFS2_FS_DEBUG=0 1121CONFIG_JFFS2_FS_DEBUG=0
1082CONFIG_JFFS2_FS_WRITEBUFFER=y 1122CONFIG_JFFS2_FS_WRITEBUFFER=y
1123# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1083# CONFIG_JFFS2_SUMMARY is not set 1124# CONFIG_JFFS2_SUMMARY is not set
1084# CONFIG_JFFS2_FS_XATTR is not set 1125# CONFIG_JFFS2_FS_XATTR is not set
1085# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 1126# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1086CONFIG_JFFS2_ZLIB=y 1127CONFIG_JFFS2_ZLIB=y
1128# CONFIG_JFFS2_LZO is not set
1087CONFIG_JFFS2_RTIME=y 1129CONFIG_JFFS2_RTIME=y
1088# CONFIG_JFFS2_RUBIN is not set 1130# CONFIG_JFFS2_RUBIN is not set
1089# CONFIG_CRAMFS is not set 1131# CONFIG_CRAMFS is not set
@@ -1092,10 +1134,7 @@ CONFIG_JFFS2_RTIME=y
1092# CONFIG_QNX4FS_FS is not set 1134# CONFIG_QNX4FS_FS is not set
1093# CONFIG_SYSV_FS is not set 1135# CONFIG_SYSV_FS is not set
1094# CONFIG_UFS_FS is not set 1136# CONFIG_UFS_FS is not set
1095 1137CONFIG_NETWORK_FILESYSTEMS=y
1096#
1097# Network File Systems
1098#
1099CONFIG_NFS_FS=m 1138CONFIG_NFS_FS=m
1100CONFIG_NFS_V3=y 1139CONFIG_NFS_V3=y
1101# CONFIG_NFS_V3_ACL is not set 1140# CONFIG_NFS_V3_ACL is not set
@@ -1115,17 +1154,12 @@ CONFIG_SMB_FS=m
1115# CONFIG_NCP_FS is not set 1154# CONFIG_NCP_FS is not set
1116# CONFIG_CODA_FS is not set 1155# CONFIG_CODA_FS is not set
1117# CONFIG_AFS_FS is not set 1156# CONFIG_AFS_FS is not set
1118# CONFIG_9P_FS is not set
1119 1157
1120# 1158#
1121# Partition Types 1159# Partition Types
1122# 1160#
1123# CONFIG_PARTITION_ADVANCED is not set 1161# CONFIG_PARTITION_ADVANCED is not set
1124CONFIG_MSDOS_PARTITION=y 1162CONFIG_MSDOS_PARTITION=y
1125
1126#
1127# Native Language Support
1128#
1129CONFIG_NLS=m 1163CONFIG_NLS=m
1130CONFIG_NLS_DEFAULT="iso8859-1" 1164CONFIG_NLS_DEFAULT="iso8859-1"
1131# CONFIG_NLS_CODEPAGE_437 is not set 1165# CONFIG_NLS_CODEPAGE_437 is not set
@@ -1166,21 +1200,16 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1166# CONFIG_NLS_KOI8_R is not set 1200# CONFIG_NLS_KOI8_R is not set
1167# CONFIG_NLS_KOI8_U is not set 1201# CONFIG_NLS_KOI8_U is not set
1168# CONFIG_NLS_UTF8 is not set 1202# CONFIG_NLS_UTF8 is not set
1169
1170#
1171# Distributed Lock Manager
1172#
1173# CONFIG_DLM is not set 1203# CONFIG_DLM is not set
1174 1204CONFIG_INSTRUMENTATION=y
1175#
1176# Profiling support
1177#
1178# CONFIG_PROFILING is not set 1205# CONFIG_PROFILING is not set
1206# CONFIG_MARKERS is not set
1179 1207
1180# 1208#
1181# Kernel hacking 1209# Kernel hacking
1182# 1210#
1183# CONFIG_PRINTK_TIME is not set 1211# CONFIG_PRINTK_TIME is not set
1212CONFIG_ENABLE_WARN_DEPRECATED=y
1184CONFIG_ENABLE_MUST_CHECK=y 1213CONFIG_ENABLE_MUST_CHECK=y
1185# CONFIG_MAGIC_SYSRQ is not set 1214# CONFIG_MAGIC_SYSRQ is not set
1186# CONFIG_UNUSED_SYMBOLS is not set 1215# CONFIG_UNUSED_SYMBOLS is not set
@@ -1188,6 +1217,7 @@ CONFIG_DEBUG_FS=y
1188# CONFIG_HEADERS_CHECK is not set 1217# CONFIG_HEADERS_CHECK is not set
1189# CONFIG_DEBUG_KERNEL is not set 1218# CONFIG_DEBUG_KERNEL is not set
1190# CONFIG_DEBUG_BUGVERBOSE is not set 1219# CONFIG_DEBUG_BUGVERBOSE is not set
1220# CONFIG_SAMPLES is not set
1191CONFIG_DEBUG_MMRS=y 1221CONFIG_DEBUG_MMRS=y
1192CONFIG_DEBUG_HUNT_FOR_ZERO=y 1222CONFIG_DEBUG_HUNT_FOR_ZERO=y
1193CONFIG_DEBUG_BFIN_HWTRACE_ON=y 1223CONFIG_DEBUG_BFIN_HWTRACE_ON=y
@@ -1207,11 +1237,8 @@ CONFIG_ACCESS_CHECK=y
1207# CONFIG_KEYS is not set 1237# CONFIG_KEYS is not set
1208CONFIG_SECURITY=y 1238CONFIG_SECURITY=y
1209# CONFIG_SECURITY_NETWORK is not set 1239# CONFIG_SECURITY_NETWORK is not set
1210CONFIG_SECURITY_CAPABILITIES=m 1240# CONFIG_SECURITY_CAPABILITIES is not set
1211 1241# CONFIG_SECURITY_ROOTPLUG is not set
1212#
1213# Cryptographic options
1214#
1215# CONFIG_CRYPTO is not set 1242# CONFIG_CRYPTO is not set
1216 1243
1217# 1244#
@@ -1222,6 +1249,7 @@ CONFIG_CRC_CCITT=m
1222# CONFIG_CRC16 is not set 1249# CONFIG_CRC16 is not set
1223# CONFIG_CRC_ITU_T is not set 1250# CONFIG_CRC_ITU_T is not set
1224CONFIG_CRC32=y 1251CONFIG_CRC32=y
1252# CONFIG_CRC7 is not set
1225# CONFIG_LIBCRC32C is not set 1253# CONFIG_LIBCRC32C is not set
1226CONFIG_ZLIB_INFLATE=y 1254CONFIG_ZLIB_INFLATE=y
1227CONFIG_ZLIB_DEFLATE=m 1255CONFIG_ZLIB_DEFLATE=m
diff --git a/arch/blackfin/configs/BF548-EZKIT_defconfig b/arch/blackfin/configs/BF548-EZKIT_defconfig
index 5bfdfb287d13..1ff2ff4b49aa 100644
--- a/arch/blackfin/configs/BF548-EZKIT_defconfig
+++ b/arch/blackfin/configs/BF548-EZKIT_defconfig
@@ -1,6 +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.22.16 3# Linux kernel version: 2.6.24.7
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
@@ -13,35 +13,34 @@ CONFIG_GENERIC_FIND_NEXT_BIT=y
13CONFIG_GENERIC_HWEIGHT=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_TIME=y
17CONFIG_GENERIC_GPIO=y 16CONFIG_GENERIC_GPIO=y
18CONFIG_FORCE_MAX_ZONEORDER=14 17CONFIG_FORCE_MAX_ZONEORDER=14
19CONFIG_GENERIC_CALIBRATE_DELAY=y 18CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
21 20
22# 21#
23# Code maturity level options 22# General setup
24# 23#
25CONFIG_EXPERIMENTAL=y 24CONFIG_EXPERIMENTAL=y
26CONFIG_BROKEN_ON_SMP=y 25CONFIG_BROKEN_ON_SMP=y
27CONFIG_INIT_ENV_ARG_LIMIT=32 26CONFIG_INIT_ENV_ARG_LIMIT=32
28
29#
30# General setup
31#
32CONFIG_LOCALVERSION="" 27CONFIG_LOCALVERSION=""
33CONFIG_LOCALVERSION_AUTO=y 28CONFIG_LOCALVERSION_AUTO=y
34CONFIG_SYSVIPC=y 29CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
36CONFIG_SYSVIPC_SYSCTL=y 30CONFIG_SYSVIPC_SYSCTL=y
37# CONFIG_POSIX_MQUEUE is not set 31# CONFIG_POSIX_MQUEUE is not set
38# CONFIG_BSD_PROCESS_ACCT is not set 32# CONFIG_BSD_PROCESS_ACCT is not set
39# CONFIG_TASKSTATS is not set 33# CONFIG_TASKSTATS is not set
40# CONFIG_UTS_NS is not set 34# CONFIG_USER_NS is not set
35# CONFIG_PID_NS is not set
41# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
42CONFIG_IKCONFIG=y 37CONFIG_IKCONFIG=y
43CONFIG_IKCONFIG_PROC=y 38CONFIG_IKCONFIG_PROC=y
44CONFIG_LOG_BUF_SHIFT=14 39CONFIG_LOG_BUF_SHIFT=14
40# CONFIG_CGROUPS is not set
41CONFIG_FAIR_GROUP_SCHED=y
42CONFIG_FAIR_USER_SCHED=y
43# CONFIG_FAIR_CGROUP_SCHED is not set
45CONFIG_SYSFS_DEPRECATED=y 44CONFIG_SYSFS_DEPRECATED=y
46# CONFIG_RELAY is not set 45# CONFIG_RELAY is not set
47CONFIG_BLK_DEV_INITRD=y 46CONFIG_BLK_DEV_INITRD=y
@@ -64,32 +63,24 @@ CONFIG_EPOLL=y
64CONFIG_SIGNALFD=y 63CONFIG_SIGNALFD=y
65CONFIG_EVENTFD=y 64CONFIG_EVENTFD=y
66CONFIG_VM_EVENT_COUNTERS=y 65CONFIG_VM_EVENT_COUNTERS=y
67CONFIG_BIG_ORDER_ALLOC_NOFAIL_MAGIC=3
68# CONFIG_NP2 is not set
69CONFIG_SLAB=y 66CONFIG_SLAB=y
70# CONFIG_SLUB is not set 67# CONFIG_SLUB is not set
71# CONFIG_SLOB is not set 68# CONFIG_SLOB is not set
69CONFIG_SLABINFO=y
72CONFIG_RT_MUTEXES=y 70CONFIG_RT_MUTEXES=y
73CONFIG_TINY_SHMEM=y 71CONFIG_TINY_SHMEM=y
74CONFIG_BASE_SMALL=0 72CONFIG_BASE_SMALL=0
75
76#
77# Loadable module support
78#
79CONFIG_MODULES=y 73CONFIG_MODULES=y
80CONFIG_MODULE_UNLOAD=y 74CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODULE_FORCE_UNLOAD is not set 75# CONFIG_MODULE_FORCE_UNLOAD is not set
82# CONFIG_MODVERSIONS is not set 76# CONFIG_MODVERSIONS is not set
83# CONFIG_MODULE_SRCVERSION_ALL is not set 77# CONFIG_MODULE_SRCVERSION_ALL is not set
84CONFIG_KMOD=y 78CONFIG_KMOD=y
85
86#
87# Block layer
88#
89CONFIG_BLOCK=y 79CONFIG_BLOCK=y
90# CONFIG_LBD is not set 80# CONFIG_LBD is not set
91# CONFIG_BLK_DEV_IO_TRACE is not set 81# CONFIG_BLK_DEV_IO_TRACE is not set
92# CONFIG_LSF is not set 82# CONFIG_LSF is not set
83# CONFIG_BLK_DEV_BSG is not set
93 84
94# 85#
95# IO Schedulers 86# IO Schedulers
@@ -141,7 +132,6 @@ CONFIG_BF_REV_0_0=y
141# CONFIG_BF_REV_ANY is not set 132# CONFIG_BF_REV_ANY is not set
142# CONFIG_BF_REV_NONE is not set 133# CONFIG_BF_REV_NONE is not set
143CONFIG_BF54x=y 134CONFIG_BF54x=y
144CONFIG_BFIN_SINGLE_CORE=y
145CONFIG_IRQ_PLL_WAKEUP=7 135CONFIG_IRQ_PLL_WAKEUP=7
146CONFIG_IRQ_RTC=8 136CONFIG_IRQ_RTC=8
147CONFIG_IRQ_SPORT0_RX=9 137CONFIG_IRQ_SPORT0_RX=9
@@ -169,6 +159,7 @@ CONFIG_IRQ_TIMER8=11
169CONFIG_IRQ_TIMER9=11 159CONFIG_IRQ_TIMER9=11
170CONFIG_IRQ_TIMER10=11 160CONFIG_IRQ_TIMER10=11
171CONFIG_BFIN548_EZKIT=y 161CONFIG_BFIN548_EZKIT=y
162# CONFIG_BFIN548_BLUETECHNIX_CM is not set
172 163
173# 164#
174# BF548 Specific Configuration 165# BF548 Specific Configuration
@@ -262,12 +253,14 @@ CONFIG_PINT3_ASSIGN=0x02020303
262# Board customizations 253# Board customizations
263# 254#
264# CONFIG_CMDLINE_BOOL is not set 255# CONFIG_CMDLINE_BOOL is not set
256CONFIG_BOOT_LOAD=0x1000
265 257
266# 258#
267# Clock/PLL Setup 259# Clock/PLL Setup
268# 260#
269CONFIG_CLKIN_HZ=25000000 261CONFIG_CLKIN_HZ=25000000
270# CONFIG_BFIN_KERNEL_CLOCK is not set 262# CONFIG_BFIN_KERNEL_CLOCK is not set
263CONFIG_MAX_MEM_SIZE=512
271CONFIG_MAX_VCO_HZ=600000000 264CONFIG_MAX_VCO_HZ=600000000
272CONFIG_MIN_VCO_HZ=50000000 265CONFIG_MIN_VCO_HZ=50000000
273CONFIG_MAX_SCLK_HZ=133333333 266CONFIG_MAX_SCLK_HZ=133333333
@@ -281,14 +274,17 @@ CONFIG_HZ_250=y
281# CONFIG_HZ_300 is not set 274# CONFIG_HZ_300 is not set
282# CONFIG_HZ_1000 is not set 275# CONFIG_HZ_1000 is not set
283CONFIG_HZ=250 276CONFIG_HZ=250
277CONFIG_GENERIC_TIME=y
278CONFIG_GENERIC_CLOCKEVENTS=y
279# CONFIG_CYCLES_CLOCKSOURCE is not set
280# CONFIG_TICK_ONESHOT is not set
281# CONFIG_NO_HZ is not set
282# CONFIG_HIGH_RES_TIMERS is not set
283CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
284 284
285# 285#
286# Memory Setup 286# Misc
287# 287#
288CONFIG_MAX_MEM_SIZE=512
289# CONFIG_MEM_MT46V32M16_6T is not set
290CONFIG_MEM_MT46V32M16_5B=y
291CONFIG_BOOT_LOAD=0x1000
292CONFIG_BFIN_SCRATCH_REG_RETN=y 288CONFIG_BFIN_SCRATCH_REG_RETN=y
293# CONFIG_BFIN_SCRATCH_REG_RETE is not set 289# CONFIG_BFIN_SCRATCH_REG_RETE is not set
294# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set 290# CONFIG_BFIN_SCRATCH_REG_CYCLES is not set
@@ -324,12 +320,14 @@ CONFIG_FLATMEM_MANUAL=y
324CONFIG_FLATMEM=y 320CONFIG_FLATMEM=y
325CONFIG_FLAT_NODE_MEM_MAP=y 321CONFIG_FLAT_NODE_MEM_MAP=y
326# CONFIG_SPARSEMEM_STATIC is not set 322# CONFIG_SPARSEMEM_STATIC is not set
323# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
327CONFIG_SPLIT_PTLOCK_CPUS=4 324CONFIG_SPLIT_PTLOCK_CPUS=4
328# CONFIG_RESOURCES_64BIT is not set 325# CONFIG_RESOURCES_64BIT is not set
329CONFIG_ZONE_DMA_FLAG=1 326CONFIG_ZONE_DMA_FLAG=1
330CONFIG_LARGE_ALLOCS=y 327CONFIG_VIRT_TO_BUS=y
331# CONFIG_BFIN_GPTIMERS is not set 328# CONFIG_BFIN_GPTIMERS is not set
332CONFIG_BFIN_DMA_5XX=y 329CONFIG_BFIN_DMA_5XX=y
330# CONFIG_DMA_UNCACHED_4M is not set
333CONFIG_DMA_UNCACHED_2M=y 331CONFIG_DMA_UNCACHED_2M=y
334# CONFIG_DMA_UNCACHED_1M is not set 332# CONFIG_DMA_UNCACHED_1M is not set
335# CONFIG_DMA_UNCACHED_NONE is not set 333# CONFIG_DMA_UNCACHED_NONE is not set
@@ -377,10 +375,6 @@ CONFIG_EBIU_FCTLVAL=0x6
377# 375#
378# CONFIG_PCI is not set 376# CONFIG_PCI is not set
379# CONFIG_ARCH_SUPPORTS_MSI is not set 377# CONFIG_ARCH_SUPPORTS_MSI is not set
380
381#
382# PCCARD (PCMCIA/CardBus) support
383#
384# CONFIG_PCCARD is not set 378# CONFIG_PCCARD is not set
385 379
386# 380#
@@ -396,6 +390,7 @@ CONFIG_BINFMT_ZFLAT=y
396# Power management options 390# Power management options
397# 391#
398# CONFIG_PM is not set 392# CONFIG_PM is not set
393CONFIG_SUSPEND_UP_POSSIBLE=y
399# CONFIG_PM_WAKEUP_BY_GPIO is not set 394# CONFIG_PM_WAKEUP_BY_GPIO is not set
400 395
401# 396#
@@ -439,6 +434,7 @@ CONFIG_SYN_COOKIES=y
439CONFIG_INET_XFRM_MODE_TRANSPORT=y 434CONFIG_INET_XFRM_MODE_TRANSPORT=y
440CONFIG_INET_XFRM_MODE_TUNNEL=y 435CONFIG_INET_XFRM_MODE_TUNNEL=y
441CONFIG_INET_XFRM_MODE_BEET=y 436CONFIG_INET_XFRM_MODE_BEET=y
437# CONFIG_INET_LRO is not set
442CONFIG_INET_DIAG=y 438CONFIG_INET_DIAG=y
443CONFIG_INET_TCP_DIAG=y 439CONFIG_INET_TCP_DIAG=y
444# CONFIG_TCP_CONG_ADVANCED is not set 440# CONFIG_TCP_CONG_ADVANCED is not set
@@ -465,10 +461,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
465# CONFIG_LAPB is not set 461# CONFIG_LAPB is not set
466# CONFIG_ECONET is not set 462# CONFIG_ECONET is not set
467# CONFIG_WAN_ROUTER is not set 463# CONFIG_WAN_ROUTER is not set
468
469#
470# QoS and/or fair queueing
471#
472# CONFIG_NET_SCHED is not set 464# CONFIG_NET_SCHED is not set
473 465
474# 466#
@@ -488,6 +480,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
488# CONFIG_MAC80211 is not set 480# CONFIG_MAC80211 is not set
489# CONFIG_IEEE80211 is not set 481# CONFIG_IEEE80211 is not set
490# CONFIG_RFKILL is not set 482# CONFIG_RFKILL is not set
483# CONFIG_NET_9P is not set
491 484
492# 485#
493# Device Drivers 486# Device Drivers
@@ -496,14 +489,11 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
496# 489#
497# Generic Driver Options 490# Generic Driver Options
498# 491#
492CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
499CONFIG_STANDALONE=y 493CONFIG_STANDALONE=y
500CONFIG_PREVENT_FIRMWARE_BUILD=y 494CONFIG_PREVENT_FIRMWARE_BUILD=y
501# CONFIG_FW_LOADER is not set 495# CONFIG_FW_LOADER is not set
502# CONFIG_SYS_HYPERVISOR is not set 496# CONFIG_SYS_HYPERVISOR is not set
503
504#
505# Connector - unified userspace <-> kernelspace linker
506#
507# CONFIG_CONNECTOR is not set 497# CONFIG_CONNECTOR is not set
508CONFIG_MTD=y 498CONFIG_MTD=y
509# CONFIG_MTD_DEBUG is not set 499# CONFIG_MTD_DEBUG is not set
@@ -523,6 +513,7 @@ CONFIG_MTD_BLOCK=y
523# CONFIG_INFTL is not set 513# CONFIG_INFTL is not set
524# CONFIG_RFD_FTL is not set 514# CONFIG_RFD_FTL is not set
525# CONFIG_SSFDC is not set 515# CONFIG_SSFDC is not set
516# CONFIG_MTD_OOPS is not set
526 517
527# 518#
528# RAM/ROM/Flash chip drivers 519# RAM/ROM/Flash chip drivers
@@ -587,39 +578,27 @@ CONFIG_MTD_NAND_BF5XX_HWECC=y
587# CONFIG_MTD_NAND_DISKONCHIP is not set 578# CONFIG_MTD_NAND_DISKONCHIP is not set
588# CONFIG_MTD_NAND_NANDSIM is not set 579# CONFIG_MTD_NAND_NANDSIM is not set
589# CONFIG_MTD_NAND_PLATFORM is not set 580# CONFIG_MTD_NAND_PLATFORM is not set
581# CONFIG_MTD_ALAUDA is not set
590# CONFIG_MTD_ONENAND is not set 582# CONFIG_MTD_ONENAND is not set
591 583
592# 584#
593# UBI - Unsorted block images 585# UBI - Unsorted block images
594# 586#
595# CONFIG_MTD_UBI is not set 587# CONFIG_MTD_UBI is not set
596
597#
598# Parallel port support
599#
600# CONFIG_PARPORT is not set 588# CONFIG_PARPORT is not set
601 589CONFIG_BLK_DEV=y
602#
603# Plug and Play support
604#
605# CONFIG_PNPACPI is not set
606
607#
608# Block devices
609#
610# CONFIG_BLK_DEV_COW_COMMON is not set 590# CONFIG_BLK_DEV_COW_COMMON is not set
611# CONFIG_BLK_DEV_LOOP is not set 591# CONFIG_BLK_DEV_LOOP is not set
612# CONFIG_BLK_DEV_NBD is not set 592# CONFIG_BLK_DEV_NBD is not set
593# CONFIG_BLK_DEV_UB is not set
613CONFIG_BLK_DEV_RAM=y 594CONFIG_BLK_DEV_RAM=y
614CONFIG_BLK_DEV_RAM_COUNT=16 595CONFIG_BLK_DEV_RAM_COUNT=16
615CONFIG_BLK_DEV_RAM_SIZE=4096 596CONFIG_BLK_DEV_RAM_SIZE=4096
616CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 597CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
617# CONFIG_CDROM_PKTCDVD is not set 598# CONFIG_CDROM_PKTCDVD is not set
618# CONFIG_ATA_OVER_ETH is not set 599# CONFIG_ATA_OVER_ETH is not set
619 600CONFIG_MISC_DEVICES=y
620# 601# CONFIG_EEPROM_93CX6 is not set
621# Misc devices
622#
623# CONFIG_IDE is not set 602# CONFIG_IDE is not set
624 603
625# 604#
@@ -627,6 +606,7 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
627# 606#
628# CONFIG_RAID_ATTRS is not set 607# CONFIG_RAID_ATTRS is not set
629CONFIG_SCSI=y 608CONFIG_SCSI=y
609CONFIG_SCSI_DMA=y
630# CONFIG_SCSI_TGT is not set 610# CONFIG_SCSI_TGT is not set
631# CONFIG_SCSI_NETLINK is not set 611# CONFIG_SCSI_NETLINK is not set
632CONFIG_SCSI_PROC_FS=y 612CONFIG_SCSI_PROC_FS=y
@@ -657,43 +637,35 @@ CONFIG_SCSI_WAIT_SCAN=m
657# CONFIG_SCSI_SPI_ATTRS is not set 637# CONFIG_SCSI_SPI_ATTRS is not set
658# CONFIG_SCSI_FC_ATTRS is not set 638# CONFIG_SCSI_FC_ATTRS is not set
659# CONFIG_SCSI_ISCSI_ATTRS is not set 639# CONFIG_SCSI_ISCSI_ATTRS is not set
660# CONFIG_SCSI_SAS_ATTRS is not set
661# CONFIG_SCSI_SAS_LIBSAS is not set 640# CONFIG_SCSI_SAS_LIBSAS is not set
662 641# CONFIG_SCSI_SRP_ATTRS is not set
663# 642CONFIG_SCSI_LOWLEVEL=y
664# SCSI low-level drivers
665#
666# CONFIG_ISCSI_TCP is not set 643# CONFIG_ISCSI_TCP is not set
667# CONFIG_SCSI_DEBUG is not set 644# CONFIG_SCSI_DEBUG is not set
668CONFIG_ATA=y 645CONFIG_ATA=y
669# CONFIG_ATA_NONSTANDARD is not set 646# CONFIG_ATA_NONSTANDARD is not set
670# CONFIG_PATA_PLATFORM is not set 647# CONFIG_PATA_PLATFORM is not set
671CONFIG_PATA_BF54X=y 648CONFIG_PATA_BF54X=y
672CONFIG_PATA_BF54X_DMA=y
673
674#
675# Multi-device support (RAID and LVM)
676#
677# CONFIG_MD is not set 649# CONFIG_MD is not set
678
679#
680# Network device support
681#
682CONFIG_NETDEVICES=y 650CONFIG_NETDEVICES=y
651# CONFIG_NETDEVICES_MULTIQUEUE is not set
683# CONFIG_DUMMY is not set 652# CONFIG_DUMMY is not set
684# CONFIG_BONDING is not set 653# CONFIG_BONDING is not set
654# CONFIG_MACVLAN is not set
685# CONFIG_EQUALIZER is not set 655# CONFIG_EQUALIZER is not set
686# CONFIG_TUN is not set 656# CONFIG_TUN is not set
657# CONFIG_VETH is not set
687# CONFIG_PHYLIB is not set 658# CONFIG_PHYLIB is not set
688
689#
690# Ethernet (10 or 100Mbit)
691#
692CONFIG_NET_ETHERNET=y 659CONFIG_NET_ETHERNET=y
693CONFIG_MII=y 660CONFIG_MII=y
694# CONFIG_SMC91X is not set 661# CONFIG_SMC91X is not set
695CONFIG_SMSC911X=y 662CONFIG_SMSC911X=y
696# CONFIG_DM9000 is not set 663# CONFIG_DM9000 is not set
664# CONFIG_IBM_NEW_EMAC_ZMII is not set
665# CONFIG_IBM_NEW_EMAC_RGMII is not set
666# CONFIG_IBM_NEW_EMAC_TAH is not set
667# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
668# CONFIG_B44 is not set
697CONFIG_NETDEV_1000=y 669CONFIG_NETDEV_1000=y
698# CONFIG_AX88180 is not set 670# CONFIG_AX88180 is not set
699CONFIG_NETDEV_10000=y 671CONFIG_NETDEV_10000=y
@@ -703,6 +675,15 @@ CONFIG_NETDEV_10000=y
703# 675#
704# CONFIG_WLAN_PRE80211 is not set 676# CONFIG_WLAN_PRE80211 is not set
705# CONFIG_WLAN_80211 is not set 677# CONFIG_WLAN_80211 is not set
678
679#
680# USB Network Adapters
681#
682# CONFIG_USB_CATC is not set
683# CONFIG_USB_KAWETH is not set
684# CONFIG_USB_PEGASUS is not set
685# CONFIG_USB_RTL8150 is not set
686# CONFIG_USB_USBNET is not set
706# CONFIG_WAN is not set 687# CONFIG_WAN is not set
707# CONFIG_PPP is not set 688# CONFIG_PPP is not set
708# CONFIG_SLIP is not set 689# CONFIG_SLIP is not set
@@ -710,15 +691,7 @@ CONFIG_NETDEV_10000=y
710# CONFIG_NETCONSOLE is not set 691# CONFIG_NETCONSOLE is not set
711# CONFIG_NETPOLL is not set 692# CONFIG_NETPOLL is not set
712# CONFIG_NET_POLL_CONTROLLER is not set 693# CONFIG_NET_POLL_CONTROLLER is not set
713
714#
715# ISDN subsystem
716#
717# CONFIG_ISDN is not set 694# CONFIG_ISDN is not set
718
719#
720# Telephony Support
721#
722# CONFIG_PHONE is not set 695# CONFIG_PHONE is not set
723 696
724# 697#
@@ -733,9 +706,6 @@ CONFIG_INPUT=y
733# 706#
734# CONFIG_INPUT_MOUSEDEV is not set 707# CONFIG_INPUT_MOUSEDEV is not set
735# CONFIG_INPUT_JOYDEV is not set 708# CONFIG_INPUT_JOYDEV is not set
736CONFIG_INPUT_TSDEV=m
737CONFIG_INPUT_TSDEV_SCREEN_X=240
738CONFIG_INPUT_TSDEV_SCREEN_Y=320
739CONFIG_INPUT_EVDEV=m 709CONFIG_INPUT_EVDEV=m
740CONFIG_INPUT_EVBUG=m 710CONFIG_INPUT_EVBUG=m
741 711
@@ -758,6 +728,7 @@ CONFIG_KEYBOARD_BFIN=y
758CONFIG_INPUT_TOUCHSCREEN=y 728CONFIG_INPUT_TOUCHSCREEN=y
759# CONFIG_TOUCHSCREEN_ADS7846 is not set 729# CONFIG_TOUCHSCREEN_ADS7846 is not set
760CONFIG_TOUCHSCREEN_AD7877=m 730CONFIG_TOUCHSCREEN_AD7877=m
731# CONFIG_TOUCHSCREEN_FUJITSU is not set
761# CONFIG_TOUCHSCREEN_GUNZE is not set 732# CONFIG_TOUCHSCREEN_GUNZE is not set
762# CONFIG_TOUCHSCREEN_ELO is not set 733# CONFIG_TOUCHSCREEN_ELO is not set
763# CONFIG_TOUCHSCREEN_MTOUCH is not set 734# CONFIG_TOUCHSCREEN_MTOUCH is not set
@@ -787,7 +758,6 @@ CONFIG_INPUT_MISC=y
787# 758#
788# CONFIG_AD9960 is not set 759# CONFIG_AD9960 is not set
789# CONFIG_SPI_ADC_BF533 is not set 760# CONFIG_SPI_ADC_BF533 is not set
790# CONFIG_BF5xx_PFLAGS is not set
791# CONFIG_BF5xx_PPIFCD is not set 761# CONFIG_BF5xx_PPIFCD is not set
792# CONFIG_BFIN_SIMPLE_TIMER is not set 762# CONFIG_BFIN_SIMPLE_TIMER is not set
793# CONFIG_BF5xx_PPI is not set 763# CONFIG_BF5xx_PPI is not set
@@ -796,7 +766,7 @@ CONFIG_BFIN_OTP=y
796# CONFIG_BFIN_SPORT is not set 766# CONFIG_BFIN_SPORT is not set
797# CONFIG_BFIN_TIMER_LATENCY is not set 767# CONFIG_BFIN_TIMER_LATENCY is not set
798# CONFIG_TWI_LCD is not set 768# CONFIG_TWI_LCD is not set
799# CONFIG_AD5304 is not set 769# CONFIG_SIMPLE_GPIO is not set
800CONFIG_VT=y 770CONFIG_VT=y
801CONFIG_VT_CONSOLE=y 771CONFIG_VT_CONSOLE=y
802CONFIG_HW_CONSOLE=y 772CONFIG_HW_CONSOLE=y
@@ -830,27 +800,11 @@ CONFIG_UNIX98_PTYS=y
830# CAN, the car bus and industrial fieldbus 800# CAN, the car bus and industrial fieldbus
831# 801#
832# CONFIG_CAN4LINUX is not set 802# CONFIG_CAN4LINUX is not set
833
834#
835# IPMI
836#
837# CONFIG_IPMI_HANDLER is not set 803# CONFIG_IPMI_HANDLER is not set
838CONFIG_WATCHDOG=y
839# CONFIG_WATCHDOG_NOWAYOUT is not set
840
841#
842# Watchdog Device Drivers
843#
844# CONFIG_SOFT_WATCHDOG is not set
845CONFIG_BFIN_WDT=y
846CONFIG_HW_RANDOM=y 804CONFIG_HW_RANDOM=y
847# CONFIG_GEN_RTC is not set 805# CONFIG_GEN_RTC is not set
848# CONFIG_R3964 is not set 806# CONFIG_R3964 is not set
849# CONFIG_RAW_DRIVER is not set 807# CONFIG_RAW_DRIVER is not set
850
851#
852# TPM devices
853#
854# CONFIG_TCG_TPM is not set 808# CONFIG_TCG_TPM is not set
855CONFIG_I2C=y 809CONFIG_I2C=y
856CONFIG_I2C_BOARDINFO=y 810CONFIG_I2C_BOARDINFO=y
@@ -872,21 +826,24 @@ CONFIG_I2C_BLACKFIN_TWI_CLK_KHZ=50
872# CONFIG_I2C_OCORES is not set 826# CONFIG_I2C_OCORES is not set
873# CONFIG_I2C_PARPORT_LIGHT is not set 827# CONFIG_I2C_PARPORT_LIGHT is not set
874# CONFIG_I2C_SIMTEC is not set 828# CONFIG_I2C_SIMTEC is not set
829# CONFIG_I2C_TAOS_EVM is not set
875# CONFIG_I2C_STUB is not set 830# CONFIG_I2C_STUB is not set
831# CONFIG_I2C_TINY_USB is not set
876 832
877# 833#
878# Miscellaneous I2C Chip support 834# Miscellaneous I2C Chip support
879# 835#
880# CONFIG_SENSORS_DS1337 is not set 836# CONFIG_SENSORS_DS1337 is not set
881# CONFIG_SENSORS_DS1374 is not set 837# CONFIG_SENSORS_DS1374 is not set
838# CONFIG_DS1682 is not set
882# CONFIG_SENSORS_AD5252 is not set 839# CONFIG_SENSORS_AD5252 is not set
883# CONFIG_SENSORS_EEPROM is not set 840# CONFIG_SENSORS_EEPROM is not set
884# CONFIG_SENSORS_PCF8574 is not set 841# CONFIG_SENSORS_PCF8574 is not set
885# CONFIG_SENSORS_PCF8575 is not set 842# CONFIG_SENSORS_PCF8575 is not set
886# CONFIG_SENSORS_PCA9543 is not set
887# CONFIG_SENSORS_PCA9539 is not set 843# CONFIG_SENSORS_PCA9539 is not set
888# CONFIG_SENSORS_PCF8591 is not set 844# CONFIG_SENSORS_PCF8591 is not set
889# CONFIG_SENSORS_MAX6875 is not set 845# CONFIG_SENSORS_MAX6875 is not set
846# CONFIG_SENSORS_TSL2550 is not set
890# CONFIG_I2C_DEBUG_CORE is not set 847# CONFIG_I2C_DEBUG_CORE is not set
891# CONFIG_I2C_DEBUG_ALGO is not set 848# CONFIG_I2C_DEBUG_ALGO is not set
892# CONFIG_I2C_DEBUG_BUS is not set 849# CONFIG_I2C_DEBUG_BUS is not set
@@ -909,14 +866,11 @@ CONFIG_SPI_BFIN=y
909# 866#
910# CONFIG_SPI_AT25 is not set 867# CONFIG_SPI_AT25 is not set
911# CONFIG_SPI_SPIDEV is not set 868# CONFIG_SPI_SPIDEV is not set
912 869# CONFIG_SPI_TLE62X0 is not set
913#
914# Dallas's 1-wire bus
915#
916# CONFIG_W1 is not set 870# CONFIG_W1 is not set
871# CONFIG_POWER_SUPPLY is not set
917CONFIG_HWMON=y 872CONFIG_HWMON=y
918# CONFIG_HWMON_VID is not set 873# CONFIG_HWMON_VID is not set
919# CONFIG_SENSORS_ABITUGURU is not set
920# CONFIG_SENSORS_AD7418 is not set 874# CONFIG_SENSORS_AD7418 is not set
921# CONFIG_SENSORS_ADM1021 is not set 875# CONFIG_SENSORS_ADM1021 is not set
922# CONFIG_SENSORS_ADM1025 is not set 876# CONFIG_SENSORS_ADM1025 is not set
@@ -924,12 +878,12 @@ CONFIG_HWMON=y
924# CONFIG_SENSORS_ADM1029 is not set 878# CONFIG_SENSORS_ADM1029 is not set
925# CONFIG_SENSORS_ADM1031 is not set 879# CONFIG_SENSORS_ADM1031 is not set
926# CONFIG_SENSORS_ADM9240 is not set 880# CONFIG_SENSORS_ADM9240 is not set
927# CONFIG_SENSORS_ASB100 is not set 881# CONFIG_SENSORS_ADT7470 is not set
928# CONFIG_SENSORS_ATXP1 is not set 882# CONFIG_SENSORS_ATXP1 is not set
929# CONFIG_SENSORS_DS1621 is not set 883# CONFIG_SENSORS_DS1621 is not set
930# CONFIG_SENSORS_F71805F is not set 884# CONFIG_SENSORS_F71805F is not set
931# CONFIG_SENSORS_FSCHER is not set 885# CONFIG_SENSORS_F71882FG is not set
932# CONFIG_SENSORS_FSCPOS is not set 886# CONFIG_SENSORS_F75375S is not set
933# CONFIG_SENSORS_GL518SM is not set 887# CONFIG_SENSORS_GL518SM is not set
934# CONFIG_SENSORS_GL520SM is not set 888# CONFIG_SENSORS_GL520SM is not set
935# CONFIG_SENSORS_IT87 is not set 889# CONFIG_SENSORS_IT87 is not set
@@ -944,13 +898,16 @@ CONFIG_HWMON=y
944# CONFIG_SENSORS_LM87 is not set 898# CONFIG_SENSORS_LM87 is not set
945# CONFIG_SENSORS_LM90 is not set 899# CONFIG_SENSORS_LM90 is not set
946# CONFIG_SENSORS_LM92 is not set 900# CONFIG_SENSORS_LM92 is not set
901# CONFIG_SENSORS_LM93 is not set
947# CONFIG_SENSORS_MAX1619 is not set 902# CONFIG_SENSORS_MAX1619 is not set
948# CONFIG_SENSORS_MAX6650 is not set 903# CONFIG_SENSORS_MAX6650 is not set
949# CONFIG_SENSORS_PC87360 is not set 904# CONFIG_SENSORS_PC87360 is not set
950# CONFIG_SENSORS_PC87427 is not set 905# CONFIG_SENSORS_PC87427 is not set
906# CONFIG_SENSORS_DME1737 is not set
951# CONFIG_SENSORS_SMSC47M1 is not set 907# CONFIG_SENSORS_SMSC47M1 is not set
952# CONFIG_SENSORS_SMSC47M192 is not set 908# CONFIG_SENSORS_SMSC47M192 is not set
953# CONFIG_SENSORS_SMSC47B397 is not set 909# CONFIG_SENSORS_SMSC47B397 is not set
910# CONFIG_SENSORS_THMC50 is not set
954# CONFIG_SENSORS_VT1211 is not set 911# CONFIG_SENSORS_VT1211 is not set
955# CONFIG_SENSORS_W83781D is not set 912# CONFIG_SENSORS_W83781D is not set
956# CONFIG_SENSORS_W83791D is not set 913# CONFIG_SENSORS_W83791D is not set
@@ -960,6 +917,25 @@ CONFIG_HWMON=y
960# CONFIG_SENSORS_W83627HF is not set 917# CONFIG_SENSORS_W83627HF is not set
961# CONFIG_SENSORS_W83627EHF is not set 918# CONFIG_SENSORS_W83627EHF is not set
962# CONFIG_HWMON_DEBUG_CHIP is not set 919# CONFIG_HWMON_DEBUG_CHIP is not set
920CONFIG_WATCHDOG=y
921# CONFIG_WATCHDOG_NOWAYOUT is not set
922
923#
924# Watchdog Device Drivers
925#
926# CONFIG_SOFT_WATCHDOG is not set
927CONFIG_BFIN_WDT=y
928
929#
930# USB-based Watchdog Cards
931#
932# CONFIG_USBPCWATCHDOG is not set
933
934#
935# Sonics Silicon Backplane
936#
937CONFIG_SSB_POSSIBLE=y
938# CONFIG_SSB is not set
963 939
964# 940#
965# Multifunction device drivers 941# Multifunction device drivers
@@ -972,23 +948,20 @@ CONFIG_HWMON=y
972# CONFIG_VIDEO_DEV is not set 948# CONFIG_VIDEO_DEV is not set
973# CONFIG_DVB_CORE is not set 949# CONFIG_DVB_CORE is not set
974CONFIG_DAB=y 950CONFIG_DAB=y
951# CONFIG_USB_DABUSB is not set
975 952
976# 953#
977# Graphics support 954# Graphics support
978# 955#
979# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
980
981#
982# Display device support
983#
984# CONFIG_DISPLAY_SUPPORT is not set
985# CONFIG_VGASTATE is not set 956# CONFIG_VGASTATE is not set
957# CONFIG_VIDEO_OUTPUT_CONTROL is not set
986CONFIG_FB=y 958CONFIG_FB=y
987CONFIG_FIRMWARE_EDID=y 959CONFIG_FIRMWARE_EDID=y
988# CONFIG_FB_DDC is not set 960# CONFIG_FB_DDC is not set
989CONFIG_FB_CFB_FILLRECT=y 961CONFIG_FB_CFB_FILLRECT=y
990CONFIG_FB_CFB_COPYAREA=y 962CONFIG_FB_CFB_COPYAREA=y
991CONFIG_FB_CFB_IMAGEBLIT=y 963CONFIG_FB_CFB_IMAGEBLIT=y
964# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
992# CONFIG_FB_SYS_FILLRECT is not set 965# CONFIG_FB_SYS_FILLRECT is not set
993# CONFIG_FB_SYS_COPYAREA is not set 966# CONFIG_FB_SYS_COPYAREA is not set
994# CONFIG_FB_SYS_IMAGEBLIT is not set 967# CONFIG_FB_SYS_IMAGEBLIT is not set
@@ -1003,18 +976,24 @@ CONFIG_FB_DEFERRED_IO=y
1003# 976#
1004# Frame buffer hardware drivers 977# Frame buffer hardware drivers
1005# 978#
1006# CONFIG_FB_BFIN_7171 is not set
1007# CONFIG_FB_BFIN_7393 is not set
1008CONFIG_FB_BF54X_LQ043=y 979CONFIG_FB_BF54X_LQ043=y
1009# CONFIG_FB_BFIN_T350MCQB is not set 980# CONFIG_FB_BFIN_T350MCQB is not set
981# CONFIG_FB_BFIN_7393 is not set
1010# CONFIG_FB_S1D13XXX is not set 982# CONFIG_FB_S1D13XXX is not set
1011# CONFIG_FB_VIRTUAL is not set 983# CONFIG_FB_VIRTUAL is not set
984# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
985
986#
987# Display device support
988#
989# CONFIG_DISPLAY_SUPPORT is not set
1012 990
1013# 991#
1014# Console display driver support 992# Console display driver support
1015# 993#
1016CONFIG_DUMMY_CONSOLE=y 994CONFIG_DUMMY_CONSOLE=y
1017CONFIG_FRAMEBUFFER_CONSOLE=y 995CONFIG_FRAMEBUFFER_CONSOLE=y
996# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
1018# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set 997# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
1019CONFIG_FONTS=y 998CONFIG_FONTS=y
1020# CONFIG_FONT_8x8 is not set 999# CONFIG_FONT_8x8 is not set
@@ -1065,10 +1044,21 @@ CONFIG_SND_VERBOSE_PROCFS=y
1065# CONFIG_SND_MPU401 is not set 1044# CONFIG_SND_MPU401 is not set
1066 1045
1067# 1046#
1047# SPI devices
1048#
1049
1050#
1068# ALSA Blackfin devices 1051# ALSA Blackfin devices
1069# 1052#
1070# CONFIG_SND_BLACKFIN_AD1836 is not set 1053# CONFIG_SND_BLACKFIN_AD1836 is not set
1071# CONFIG_SND_BFIN_AD73311 is not set 1054# CONFIG_SND_BFIN_AD73311 is not set
1055# CONFIG_SND_BFIN_AD73322 is not set
1056
1057#
1058# USB devices
1059#
1060# CONFIG_SND_USB_AUDIO is not set
1061# CONFIG_SND_USB_CAIAQ is not set
1072 1062
1073# 1063#
1074# System on Chip audio support 1064# System on Chip audio support
@@ -1084,6 +1074,10 @@ CONFIG_SND_BF5XX_SOC_BF548_EZKIT=y
1084CONFIG_SND_BF5XX_SPORT_NUM=0 1074CONFIG_SND_BF5XX_SPORT_NUM=0
1085CONFIG_SND_BF5XX_HAVE_COLD_RESET=y 1075CONFIG_SND_BF5XX_HAVE_COLD_RESET=y
1086CONFIG_SND_BF5XX_RESET_GPIO_NUM=19 1076CONFIG_SND_BF5XX_RESET_GPIO_NUM=19
1077
1078#
1079# SoC Audio support for SuperH
1080#
1087CONFIG_SND_SOC_AD1980=y 1081CONFIG_SND_SOC_AD1980=y
1088 1082
1089# 1083#
@@ -1091,72 +1085,152 @@ CONFIG_SND_SOC_AD1980=y
1091# 1085#
1092# CONFIG_SOUND_PRIME is not set 1086# CONFIG_SOUND_PRIME is not set
1093CONFIG_AC97_BUS=y 1087CONFIG_AC97_BUS=y
1094 1088CONFIG_HID_SUPPORT=y
1095# 1089CONFIG_HID=y
1096# HID Devices
1097#
1098CONFIG_HID=m
1099# CONFIG_HID_DEBUG is not set 1090# CONFIG_HID_DEBUG is not set
1091# CONFIG_HIDRAW is not set
1100 1092
1101# 1093#
1102# USB support 1094# USB Input Devices
1103# 1095#
1096CONFIG_USB_HID=y
1097# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1098# CONFIG_HID_FF is not set
1099# CONFIG_USB_HIDDEV is not set
1100CONFIG_USB_SUPPORT=y
1104CONFIG_USB_ARCH_HAS_HCD=y 1101CONFIG_USB_ARCH_HAS_HCD=y
1105# CONFIG_USB_ARCH_HAS_OHCI is not set 1102# CONFIG_USB_ARCH_HAS_OHCI is not set
1106# CONFIG_USB_ARCH_HAS_EHCI is not set 1103# CONFIG_USB_ARCH_HAS_EHCI is not set
1107# CONFIG_USB is not set 1104CONFIG_USB=y
1105# CONFIG_USB_DEBUG is not set
1106
1107#
1108# Miscellaneous USB options
1109#
1110# CONFIG_USB_DEVICEFS is not set
1111CONFIG_USB_DEVICE_CLASS=y
1112# CONFIG_USB_DYNAMIC_MINORS is not set
1113# CONFIG_USB_OTG is not set
1114# CONFIG_USB_OTG_WHITELIST is not set
1115CONFIG_USB_OTG_BLACKLIST_HUB=y
1108 1116
1109# 1117#
1110# Enable Host or Gadget support to see Inventra options 1118# USB Host Controller Drivers
1111# 1119#
1120# CONFIG_USB_ISP116X_HCD is not set
1121# CONFIG_USB_ISP1362_HCD is not set
1122# CONFIG_USB_ISP1760_HCD is not set
1123# CONFIG_USB_SL811_HCD is not set
1124# CONFIG_USB_R8A66597_HCD is not set
1125CONFIG_USB_MUSB_HDRC=y
1126CONFIG_USB_MUSB_SOC=y
1127
1128#
1129# Blackfin high speed USB support
1130#
1131CONFIG_USB_MUSB_HOST=y
1132# CONFIG_USB_MUSB_PERIPHERAL is not set
1133# CONFIG_USB_MUSB_OTG is not set
1134CONFIG_USB_MUSB_HDRC_HCD=y
1135# CONFIG_MUSB_PIO_ONLY is not set
1136# CONFIG_USB_INVENTRA_DMA is not set
1137# CONFIG_USB_TI_CPPI_DMA is not set
1138CONFIG_USB_MUSB_LOGLEVEL=0
1139
1140#
1141# USB Device Class drivers
1142#
1143# CONFIG_USB_ACM is not set
1144# CONFIG_USB_PRINTER is not set
1112 1145
1113# 1146#
1114# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1147# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1115# 1148#
1116 1149
1117# 1150#
1118# USB Gadget Support 1151# may also be needed; see USB_STORAGE Help for more information
1119# 1152#
1120# CONFIG_USB_GADGET is not set 1153CONFIG_USB_STORAGE=m
1121CONFIG_MMC=m 1154# CONFIG_USB_STORAGE_DEBUG is not set
1122# CONFIG_MMC_DEBUG is not set 1155# CONFIG_USB_STORAGE_DATAFAB is not set
1123# CONFIG_MMC_UNSAFE_RESUME is not set 1156# CONFIG_USB_STORAGE_FREECOM is not set
1157# CONFIG_USB_STORAGE_ISD200 is not set
1158# CONFIG_USB_STORAGE_DPCM is not set
1159# CONFIG_USB_STORAGE_USBAT is not set
1160# CONFIG_USB_STORAGE_SDDR09 is not set
1161# CONFIG_USB_STORAGE_SDDR55 is not set
1162# CONFIG_USB_STORAGE_JUMPSHOT is not set
1163# CONFIG_USB_STORAGE_ALAUDA is not set
1164# CONFIG_USB_STORAGE_ONETOUCH is not set
1165# CONFIG_USB_STORAGE_KARMA is not set
1166# CONFIG_USB_LIBUSUAL is not set
1124 1167
1125# 1168#
1126# MMC/SD Card Drivers 1169# USB Imaging devices
1127# 1170#
1128CONFIG_MMC_BLOCK=m 1171# CONFIG_USB_MDC800 is not set
1172# CONFIG_USB_MICROTEK is not set
1173CONFIG_USB_MON=y
1129 1174
1130# 1175#
1131# MMC/SD Host Controller Drivers 1176# USB port drivers
1132# 1177#
1133CONFIG_SDH_BFIN=m
1134# CONFIG_SPI_MMC is not set
1135 1178
1136# 1179#
1137# LED devices 1180# USB Serial Converter support
1138# 1181#
1139# CONFIG_NEW_LEDS is not set 1182# CONFIG_USB_SERIAL is not set
1140 1183
1141# 1184#
1142# LED drivers 1185# USB Miscellaneous drivers
1143# 1186#
1187# CONFIG_USB_EMI62 is not set
1188# CONFIG_USB_EMI26 is not set
1189# CONFIG_USB_ADUTUX is not set
1190# CONFIG_USB_AUERSWALD is not set
1191# CONFIG_USB_RIO500 is not set
1192# CONFIG_USB_LEGOTOWER is not set
1193# CONFIG_USB_LCD is not set
1194# CONFIG_USB_BERRY_CHARGE is not set
1195# CONFIG_USB_LED is not set
1196# CONFIG_USB_CYPRESS_CY7C63 is not set
1197# CONFIG_USB_CYTHERM is not set
1198# CONFIG_USB_PHIDGET is not set
1199# CONFIG_USB_IDMOUSE is not set
1200# CONFIG_USB_FTDI_ELAN is not set
1201# CONFIG_USB_APPLEDISPLAY is not set
1202# CONFIG_USB_SISUSBVGA is not set
1203# CONFIG_USB_LD is not set
1204# CONFIG_USB_TRANCEVIBRATOR is not set
1205# CONFIG_USB_IOWARRIOR is not set
1144 1206
1145# 1207#
1146# LED Triggers 1208# USB DSL modem support
1147# 1209#
1148 1210
1149# 1211#
1150# InfiniBand support 1212# USB Gadget Support
1151# 1213#
1214# CONFIG_USB_GADGET is not set
1215CONFIG_MMC=m
1216# CONFIG_MMC_DEBUG is not set
1217# CONFIG_MMC_UNSAFE_RESUME is not set
1152 1218
1153# 1219#
1154# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 1220# MMC/SD Card Drivers
1155# 1221#
1222CONFIG_MMC_BLOCK=m
1223CONFIG_MMC_BLOCK_BOUNCE=y
1224# CONFIG_SDIO_UART is not set
1156 1225
1157# 1226#
1158# Real Time Clock 1227# MMC/SD Host Controller Drivers
1159# 1228#
1229CONFIG_SDH_BFIN=m
1230# CONFIG_SDH_BFIN_MISSING_CMD_PULLUP_WORKAROUND is not set
1231# CONFIG_MMC_SPI is not set
1232# CONFIG_SPI_MMC is not set
1233# CONFIG_NEW_LEDS is not set
1160CONFIG_RTC_LIB=y 1234CONFIG_RTC_LIB=y
1161CONFIG_RTC_CLASS=y 1235CONFIG_RTC_CLASS=y
1162CONFIG_RTC_HCTOSYS=y 1236CONFIG_RTC_HCTOSYS=y
@@ -1176,6 +1250,7 @@ CONFIG_RTC_INTF_DEV=y
1176# I2C RTC drivers 1250# I2C RTC drivers
1177# 1251#
1178# CONFIG_RTC_DRV_DS1307 is not set 1252# CONFIG_RTC_DRV_DS1307 is not set
1253# CONFIG_RTC_DRV_DS1374 is not set
1179# CONFIG_RTC_DRV_DS1672 is not set 1254# CONFIG_RTC_DRV_DS1672 is not set
1180# CONFIG_RTC_DRV_MAX6900 is not set 1255# CONFIG_RTC_DRV_MAX6900 is not set
1181# CONFIG_RTC_DRV_RS5C372 is not set 1256# CONFIG_RTC_DRV_RS5C372 is not set
@@ -1183,6 +1258,7 @@ CONFIG_RTC_INTF_DEV=y
1183# CONFIG_RTC_DRV_X1205 is not set 1258# CONFIG_RTC_DRV_X1205 is not set
1184# CONFIG_RTC_DRV_PCF8563 is not set 1259# CONFIG_RTC_DRV_PCF8563 is not set
1185# CONFIG_RTC_DRV_PCF8583 is not set 1260# CONFIG_RTC_DRV_PCF8583 is not set
1261# CONFIG_RTC_DRV_M41T80 is not set
1186 1262
1187# 1263#
1188# SPI RTC drivers 1264# SPI RTC drivers
@@ -1194,8 +1270,10 @@ CONFIG_RTC_INTF_DEV=y
1194# Platform RTC drivers 1270# Platform RTC drivers
1195# 1271#
1196# CONFIG_RTC_DRV_DS1553 is not set 1272# CONFIG_RTC_DRV_DS1553 is not set
1273# CONFIG_RTC_DRV_STK17TA8 is not set
1197# CONFIG_RTC_DRV_DS1742 is not set 1274# CONFIG_RTC_DRV_DS1742 is not set
1198# CONFIG_RTC_DRV_M48T86 is not set 1275# CONFIG_RTC_DRV_M48T86 is not set
1276# CONFIG_RTC_DRV_M48T59 is not set
1199# CONFIG_RTC_DRV_V3020 is not set 1277# CONFIG_RTC_DRV_V3020 is not set
1200 1278
1201# 1279#
@@ -1204,22 +1282,9 @@ CONFIG_RTC_INTF_DEV=y
1204CONFIG_RTC_DRV_BFIN=y 1282CONFIG_RTC_DRV_BFIN=y
1205 1283
1206# 1284#
1207# DMA Engine support 1285# Userspace I/O
1208#
1209# CONFIG_DMA_ENGINE is not set
1210
1211#
1212# DMA Clients
1213# 1286#
1214 1287# CONFIG_UIO is not set
1215#
1216# DMA Devices
1217#
1218
1219#
1220# PBX support
1221#
1222# CONFIG_PBX is not set
1223 1288
1224# 1289#
1225# File systems 1290# File systems
@@ -1280,7 +1345,6 @@ CONFIG_PROC_SYSCTL=y
1280CONFIG_SYSFS=y 1345CONFIG_SYSFS=y
1281# CONFIG_TMPFS is not set 1346# CONFIG_TMPFS is not set
1282# CONFIG_HUGETLB_PAGE is not set 1347# CONFIG_HUGETLB_PAGE is not set
1283CONFIG_RAMFS=y
1284# CONFIG_CONFIGFS_FS is not set 1348# CONFIG_CONFIGFS_FS is not set
1285 1349
1286# 1350#
@@ -1306,10 +1370,12 @@ CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y
1306CONFIG_JFFS2_FS=m 1370CONFIG_JFFS2_FS=m
1307CONFIG_JFFS2_FS_DEBUG=0 1371CONFIG_JFFS2_FS_DEBUG=0
1308CONFIG_JFFS2_FS_WRITEBUFFER=y 1372CONFIG_JFFS2_FS_WRITEBUFFER=y
1373# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1309# CONFIG_JFFS2_SUMMARY is not set 1374# CONFIG_JFFS2_SUMMARY is not set
1310# CONFIG_JFFS2_FS_XATTR is not set 1375# CONFIG_JFFS2_FS_XATTR is not set
1311# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 1376# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1312CONFIG_JFFS2_ZLIB=y 1377CONFIG_JFFS2_ZLIB=y
1378# CONFIG_JFFS2_LZO is not set
1313CONFIG_JFFS2_RTIME=y 1379CONFIG_JFFS2_RTIME=y
1314# CONFIG_JFFS2_RUBIN is not set 1380# CONFIG_JFFS2_RUBIN is not set
1315# CONFIG_CRAMFS is not set 1381# CONFIG_CRAMFS is not set
@@ -1318,10 +1384,7 @@ CONFIG_JFFS2_RTIME=y
1318# CONFIG_QNX4FS_FS is not set 1384# CONFIG_QNX4FS_FS is not set
1319# CONFIG_SYSV_FS is not set 1385# CONFIG_SYSV_FS is not set
1320# CONFIG_UFS_FS is not set 1386# CONFIG_UFS_FS is not set
1321 1387CONFIG_NETWORK_FILESYSTEMS=y
1322#
1323# Network File Systems
1324#
1325CONFIG_NFS_FS=m 1388CONFIG_NFS_FS=m
1326CONFIG_NFS_V3=y 1389CONFIG_NFS_V3=y
1327# CONFIG_NFS_V3_ACL is not set 1390# CONFIG_NFS_V3_ACL is not set
@@ -1352,7 +1415,6 @@ CONFIG_CIFS=y
1352# CONFIG_NCP_FS is not set 1415# CONFIG_NCP_FS is not set
1353# CONFIG_CODA_FS is not set 1416# CONFIG_CODA_FS is not set
1354# CONFIG_AFS_FS is not set 1417# CONFIG_AFS_FS is not set
1355# CONFIG_9P_FS is not set
1356 1418
1357# 1419#
1358# Partition Types 1420# Partition Types
@@ -1375,10 +1437,6 @@ CONFIG_MSDOS_PARTITION=y
1375# CONFIG_KARMA_PARTITION is not set 1437# CONFIG_KARMA_PARTITION is not set
1376# CONFIG_EFI_PARTITION is not set 1438# CONFIG_EFI_PARTITION is not set
1377# CONFIG_SYSV68_PARTITION is not set 1439# CONFIG_SYSV68_PARTITION is not set
1378
1379#
1380# Native Language Support
1381#
1382CONFIG_NLS=y 1440CONFIG_NLS=y
1383CONFIG_NLS_DEFAULT="iso8859-1" 1441CONFIG_NLS_DEFAULT="iso8859-1"
1384CONFIG_NLS_CODEPAGE_437=m 1442CONFIG_NLS_CODEPAGE_437=m
@@ -1419,21 +1477,16 @@ CONFIG_NLS_ISO8859_15=m
1419CONFIG_NLS_KOI8_R=m 1477CONFIG_NLS_KOI8_R=m
1420CONFIG_NLS_KOI8_U=m 1478CONFIG_NLS_KOI8_U=m
1421CONFIG_NLS_UTF8=m 1479CONFIG_NLS_UTF8=m
1422
1423#
1424# Distributed Lock Manager
1425#
1426# CONFIG_DLM is not set 1480# CONFIG_DLM is not set
1427 1481CONFIG_INSTRUMENTATION=y
1428#
1429# Profiling support
1430#
1431# CONFIG_PROFILING is not set 1482# CONFIG_PROFILING is not set
1483# CONFIG_MARKERS is not set
1432 1484
1433# 1485#
1434# Kernel hacking 1486# Kernel hacking
1435# 1487#
1436# CONFIG_PRINTK_TIME is not set 1488# CONFIG_PRINTK_TIME is not set
1489CONFIG_ENABLE_WARN_DEPRECATED=y
1437CONFIG_ENABLE_MUST_CHECK=y 1490CONFIG_ENABLE_MUST_CHECK=y
1438# CONFIG_MAGIC_SYSRQ is not set 1491# CONFIG_MAGIC_SYSRQ is not set
1439# CONFIG_UNUSED_SYMBOLS is not set 1492# CONFIG_UNUSED_SYMBOLS is not set
@@ -1441,6 +1494,7 @@ CONFIG_DEBUG_FS=y
1441# CONFIG_HEADERS_CHECK is not set 1494# CONFIG_HEADERS_CHECK is not set
1442# CONFIG_DEBUG_KERNEL is not set 1495# CONFIG_DEBUG_KERNEL is not set
1443# CONFIG_DEBUG_BUGVERBOSE is not set 1496# CONFIG_DEBUG_BUGVERBOSE is not set
1497# CONFIG_SAMPLES is not set
1444CONFIG_DEBUG_MMRS=y 1498CONFIG_DEBUG_MMRS=y
1445CONFIG_DEBUG_HUNT_FOR_ZERO=y 1499CONFIG_DEBUG_HUNT_FOR_ZERO=y
1446CONFIG_DEBUG_BFIN_HWTRACE_ON=y 1500CONFIG_DEBUG_BFIN_HWTRACE_ON=y
@@ -1460,11 +1514,8 @@ CONFIG_ACCESS_CHECK=y
1460# CONFIG_KEYS is not set 1514# CONFIG_KEYS is not set
1461CONFIG_SECURITY=y 1515CONFIG_SECURITY=y
1462# CONFIG_SECURITY_NETWORK is not set 1516# CONFIG_SECURITY_NETWORK is not set
1463CONFIG_SECURITY_CAPABILITIES=m 1517# CONFIG_SECURITY_CAPABILITIES is not set
1464 1518# CONFIG_SECURITY_ROOTPLUG is not set
1465#
1466# Cryptographic options
1467#
1468# CONFIG_CRYPTO is not set 1519# CONFIG_CRYPTO is not set
1469 1520
1470# 1521#
@@ -1475,6 +1526,7 @@ CONFIG_CRC_CCITT=m
1475# CONFIG_CRC16 is not set 1526# CONFIG_CRC16 is not set
1476# CONFIG_CRC_ITU_T is not set 1527# CONFIG_CRC_ITU_T is not set
1477CONFIG_CRC32=y 1528CONFIG_CRC32=y
1529# CONFIG_CRC7 is not set
1478# CONFIG_LIBCRC32C is not set 1530# CONFIG_LIBCRC32C is not set
1479CONFIG_ZLIB_INFLATE=y 1531CONFIG_ZLIB_INFLATE=y
1480CONFIG_ZLIB_DEFLATE=m 1532CONFIG_ZLIB_DEFLATE=m
diff --git a/arch/blackfin/configs/IP0X_defconfig b/arch/blackfin/configs/IP0X_defconfig
index 5f6ff04a86c3..4384a670a8b8 100644
--- a/arch/blackfin/configs/IP0X_defconfig
+++ b/arch/blackfin/configs/IP0X_defconfig
@@ -212,7 +212,7 @@ CONFIG_HZ=250
212# 212#
213# Memory Setup 213# Memory Setup
214# 214#
215CONFIG_MEM_SIZE=64 215CONFIG_MAX_MEM_SIZE=64
216CONFIG_MEM_ADD_WIDTH=10 216CONFIG_MEM_ADD_WIDTH=10
217 217
218# 218#
diff --git a/arch/blackfin/kernel/asm-offsets.c b/arch/blackfin/kernel/asm-offsets.c
index 721f15f3cebf..881afe9082c7 100644
--- a/arch/blackfin/kernel/asm-offsets.c
+++ b/arch/blackfin/kernel/asm-offsets.c
@@ -56,9 +56,6 @@ int main(void)
56 /* offsets into the thread struct */ 56 /* offsets into the thread struct */
57 DEFINE(THREAD_KSP, offsetof(struct thread_struct, ksp)); 57 DEFINE(THREAD_KSP, offsetof(struct thread_struct, ksp));
58 DEFINE(THREAD_USP, offsetof(struct thread_struct, usp)); 58 DEFINE(THREAD_USP, offsetof(struct thread_struct, usp));
59 DEFINE(THREAD_SR, offsetof(struct thread_struct, seqstat));
60 DEFINE(PT_SR, offsetof(struct thread_struct, seqstat));
61 DEFINE(THREAD_ESP0, offsetof(struct thread_struct, esp0));
62 DEFINE(THREAD_PC, offsetof(struct thread_struct, pc)); 59 DEFINE(THREAD_PC, offsetof(struct thread_struct, pc));
63 DEFINE(KERNEL_STACK_SIZE, THREAD_SIZE); 60 DEFINE(KERNEL_STACK_SIZE, THREAD_SIZE);
64 61
diff --git a/arch/blackfin/kernel/bfin_dma_5xx.c b/arch/blackfin/kernel/bfin_dma_5xx.c
index fd5448d6107c..d54f19085f37 100644
--- a/arch/blackfin/kernel/bfin_dma_5xx.c
+++ b/arch/blackfin/kernel/bfin_dma_5xx.c
@@ -90,6 +90,17 @@ int request_dma(unsigned int channel, char *device_id)
90{ 90{
91 91
92 pr_debug("request_dma() : BEGIN \n"); 92 pr_debug("request_dma() : BEGIN \n");
93
94#if defined(CONFIG_BF561) && ANOMALY_05000182
95 if (channel >= CH_IMEM_STREAM0_DEST && channel <= CH_IMEM_STREAM1_DEST) {
96 if (get_cclk() > 500000000) {
97 printk(KERN_WARNING
98 "Request IMDMA failed due to ANOMALY 05000182\n");
99 return -EFAULT;
100 }
101 }
102#endif
103
93 mutex_lock(&(dma_ch[channel].dmalock)); 104 mutex_lock(&(dma_ch[channel].dmalock));
94 105
95 if ((dma_ch[channel].chan_status == DMA_CHANNEL_REQUESTED) 106 if ((dma_ch[channel].chan_status == DMA_CHANNEL_REQUESTED)
diff --git a/arch/blackfin/kernel/bfin_gpio.c b/arch/blackfin/kernel/bfin_gpio.c
index 7e8eaf4a31bb..b6d89d1644cc 100644
--- a/arch/blackfin/kernel/bfin_gpio.c
+++ b/arch/blackfin/kernel/bfin_gpio.c
@@ -1130,6 +1130,25 @@ void bfin_gpio_irq_prepare(unsigned gpio)
1130 1130
1131#else 1131#else
1132 1132
1133int gpio_get_value(unsigned gpio)
1134{
1135 unsigned long flags;
1136 int ret;
1137
1138 if (unlikely(get_gpio_edge(gpio))) {
1139 local_irq_save(flags);
1140 set_gpio_edge(gpio, 0);
1141 ret = get_gpio_data(gpio);
1142 set_gpio_edge(gpio, 1);
1143 local_irq_restore(flags);
1144
1145 return ret;
1146 } else
1147 return get_gpio_data(gpio);
1148}
1149EXPORT_SYMBOL(gpio_get_value);
1150
1151
1133int gpio_direction_input(unsigned gpio) 1152int gpio_direction_input(unsigned gpio)
1134{ 1153{
1135 unsigned long flags; 1154 unsigned long flags;
diff --git a/arch/blackfin/kernel/bfin_ksyms.c b/arch/blackfin/kernel/bfin_ksyms.c
index 053edff6c0d8..4367330909b2 100644
--- a/arch/blackfin/kernel/bfin_ksyms.c
+++ b/arch/blackfin/kernel/bfin_ksyms.c
@@ -90,7 +90,9 @@ EXPORT_SYMBOL(__umodsi3);
90EXPORT_SYMBOL(outsb); 90EXPORT_SYMBOL(outsb);
91EXPORT_SYMBOL(insb); 91EXPORT_SYMBOL(insb);
92EXPORT_SYMBOL(outsw); 92EXPORT_SYMBOL(outsw);
93EXPORT_SYMBOL(outsw_8);
93EXPORT_SYMBOL(insw); 94EXPORT_SYMBOL(insw);
95EXPORT_SYMBOL(insw_8);
94EXPORT_SYMBOL(outsl); 96EXPORT_SYMBOL(outsl);
95EXPORT_SYMBOL(insl); 97EXPORT_SYMBOL(insl);
96EXPORT_SYMBOL(insl_16); 98EXPORT_SYMBOL(insl_16);
diff --git a/arch/blackfin/kernel/fixed_code.S b/arch/blackfin/kernel/fixed_code.S
index 5ed47228a390..4b03ba025488 100644
--- a/arch/blackfin/kernel/fixed_code.S
+++ b/arch/blackfin/kernel/fixed_code.S
@@ -1,6 +1,6 @@
1/* 1/*
2 * This file contains sequences of code that will be copied to a 2 * This file contains sequences of code that will be copied to a
3 * fixed location, defined in <asm/atomic_seq.h>. The interrupt 3 * fixed location, defined in <asm/fixed_code.h>. The interrupt
4 * handlers ensure that these sequences appear to be atomic when 4 * handlers ensure that these sequences appear to be atomic when
5 * executed from userspace. 5 * executed from userspace.
6 * These are aligned to 16 bytes, so that we have some space to replace 6 * These are aligned to 16 bytes, so that we have some space to replace
diff --git a/arch/blackfin/kernel/init_task.c b/arch/blackfin/kernel/init_task.c
index c640154030e2..6bdba7b21109 100644
--- a/arch/blackfin/kernel/init_task.c
+++ b/arch/blackfin/kernel/init_task.c
@@ -34,7 +34,6 @@
34#include <linux/fs.h> 34#include <linux/fs.h>
35 35
36static struct fs_struct init_fs = INIT_FS; 36static struct fs_struct init_fs = INIT_FS;
37static struct files_struct init_files = INIT_FILES;
38static struct signal_struct init_signals = INIT_SIGNALS(init_signals); 37static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
39static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); 38static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
40 39
diff --git a/arch/blackfin/kernel/module.c b/arch/blackfin/kernel/module.c
index 8b9fe29d03f4..14a42848f37f 100644
--- a/arch/blackfin/kernel/module.c
+++ b/arch/blackfin/kernel/module.c
@@ -160,6 +160,13 @@ int
160module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs, 160module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
161 char *secstrings, struct module *mod) 161 char *secstrings, struct module *mod)
162{ 162{
163 /*
164 * XXX: sechdrs are vmalloced in kernel/module.c
165 * and would be vfreed just after module is loaded,
166 * so we hack to keep the only information we needed
167 * in mod->arch to correctly free L1 I/D sram later.
168 * NOTE: this breaks the semantic of mod->arch structure.
169 */
163 Elf_Shdr *s, *sechdrs_end = sechdrs + hdr->e_shnum; 170 Elf_Shdr *s, *sechdrs_end = sechdrs + hdr->e_shnum;
164 void *dest = NULL; 171 void *dest = NULL;
165 172
@@ -167,8 +174,8 @@ module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
167 if ((strcmp(".l1.text", secstrings + s->sh_name) == 0) || 174 if ((strcmp(".l1.text", secstrings + s->sh_name) == 0) ||
168 ((strcmp(".text", secstrings + s->sh_name) == 0) && 175 ((strcmp(".text", secstrings + s->sh_name) == 0) &&
169 (hdr->e_flags & FLG_CODE_IN_L1) && (s->sh_size > 0))) { 176 (hdr->e_flags & FLG_CODE_IN_L1) && (s->sh_size > 0))) {
170 mod->arch.text_l1 = s;
171 dest = l1_inst_sram_alloc(s->sh_size); 177 dest = l1_inst_sram_alloc(s->sh_size);
178 mod->arch.text_l1 = dest;
172 if (dest == NULL) { 179 if (dest == NULL) {
173 printk(KERN_ERR 180 printk(KERN_ERR
174 "module %s: L1 instruction memory allocation failed\n", 181 "module %s: L1 instruction memory allocation failed\n",
@@ -182,8 +189,8 @@ module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
182 if ((strcmp(".l1.data", secstrings + s->sh_name) == 0) || 189 if ((strcmp(".l1.data", secstrings + s->sh_name) == 0) ||
183 ((strcmp(".data", secstrings + s->sh_name) == 0) && 190 ((strcmp(".data", secstrings + s->sh_name) == 0) &&
184 (hdr->e_flags & FLG_DATA_IN_L1) && (s->sh_size > 0))) { 191 (hdr->e_flags & FLG_DATA_IN_L1) && (s->sh_size > 0))) {
185 mod->arch.data_a_l1 = s;
186 dest = l1_data_sram_alloc(s->sh_size); 192 dest = l1_data_sram_alloc(s->sh_size);
193 mod->arch.data_a_l1 = dest;
187 if (dest == NULL) { 194 if (dest == NULL) {
188 printk(KERN_ERR 195 printk(KERN_ERR
189 "module %s: L1 data memory allocation failed\n", 196 "module %s: L1 data memory allocation failed\n",
@@ -197,8 +204,8 @@ module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
197 if (strcmp(".l1.bss", secstrings + s->sh_name) == 0 || 204 if (strcmp(".l1.bss", secstrings + s->sh_name) == 0 ||
198 ((strcmp(".bss", secstrings + s->sh_name) == 0) && 205 ((strcmp(".bss", secstrings + s->sh_name) == 0) &&
199 (hdr->e_flags & FLG_DATA_IN_L1) && (s->sh_size > 0))) { 206 (hdr->e_flags & FLG_DATA_IN_L1) && (s->sh_size > 0))) {
200 mod->arch.bss_a_l1 = s;
201 dest = l1_data_sram_alloc(s->sh_size); 207 dest = l1_data_sram_alloc(s->sh_size);
208 mod->arch.bss_a_l1 = dest;
202 if (dest == NULL) { 209 if (dest == NULL) {
203 printk(KERN_ERR 210 printk(KERN_ERR
204 "module %s: L1 data memory allocation failed\n", 211 "module %s: L1 data memory allocation failed\n",
@@ -210,8 +217,8 @@ module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
210 s->sh_addr = (unsigned long)dest; 217 s->sh_addr = (unsigned long)dest;
211 } 218 }
212 if (strcmp(".l1.data.B", secstrings + s->sh_name) == 0) { 219 if (strcmp(".l1.data.B", secstrings + s->sh_name) == 0) {
213 mod->arch.data_b_l1 = s;
214 dest = l1_data_B_sram_alloc(s->sh_size); 220 dest = l1_data_B_sram_alloc(s->sh_size);
221 mod->arch.data_b_l1 = dest;
215 if (dest == NULL) { 222 if (dest == NULL) {
216 printk(KERN_ERR 223 printk(KERN_ERR
217 "module %s: L1 data memory allocation failed\n", 224 "module %s: L1 data memory allocation failed\n",
@@ -223,8 +230,8 @@ module_frob_arch_sections(Elf_Ehdr * hdr, Elf_Shdr * sechdrs,
223 s->sh_addr = (unsigned long)dest; 230 s->sh_addr = (unsigned long)dest;
224 } 231 }
225 if (strcmp(".l1.bss.B", secstrings + s->sh_name) == 0) { 232 if (strcmp(".l1.bss.B", secstrings + s->sh_name) == 0) {
226 mod->arch.bss_b_l1 = s;
227 dest = l1_data_B_sram_alloc(s->sh_size); 233 dest = l1_data_B_sram_alloc(s->sh_size);
234 mod->arch.bss_b_l1 = dest;
228 if (dest == NULL) { 235 if (dest == NULL) {
229 printk(KERN_ERR 236 printk(KERN_ERR
230 "module %s: L1 data memory allocation failed\n", 237 "module %s: L1 data memory allocation failed\n",
@@ -416,14 +423,14 @@ module_finalize(const Elf_Ehdr * hdr,
416 423
417void module_arch_cleanup(struct module *mod) 424void module_arch_cleanup(struct module *mod)
418{ 425{
419 if ((mod->arch.text_l1) && (mod->arch.text_l1->sh_addr)) 426 if (mod->arch.text_l1)
420 l1_inst_sram_free((void *)mod->arch.text_l1->sh_addr); 427 l1_inst_sram_free((void *)mod->arch.text_l1);
421 if ((mod->arch.data_a_l1) && (mod->arch.data_a_l1->sh_addr)) 428 if (mod->arch.data_a_l1)
422 l1_data_sram_free((void *)mod->arch.data_a_l1->sh_addr); 429 l1_data_sram_free((void *)mod->arch.data_a_l1);
423 if ((mod->arch.bss_a_l1) && (mod->arch.bss_a_l1->sh_addr)) 430 if (mod->arch.bss_a_l1)
424 l1_data_sram_free((void *)mod->arch.bss_a_l1->sh_addr); 431 l1_data_sram_free((void *)mod->arch.bss_a_l1);
425 if ((mod->arch.data_b_l1) && (mod->arch.data_b_l1->sh_addr)) 432 if (mod->arch.data_b_l1)
426 l1_data_B_sram_free((void *)mod->arch.data_b_l1->sh_addr); 433 l1_data_B_sram_free((void *)mod->arch.data_b_l1);
427 if ((mod->arch.bss_b_l1) && (mod->arch.bss_b_l1->sh_addr)) 434 if (mod->arch.bss_b_l1)
428 l1_data_B_sram_free((void *)mod->arch.bss_b_l1->sh_addr); 435 l1_data_B_sram_free((void *)mod->arch.bss_b_l1);
429} 436}
diff --git a/arch/blackfin/kernel/process.c b/arch/blackfin/kernel/process.c
index be9fdd00d7cb..53c2cd255441 100644
--- a/arch/blackfin/kernel/process.c
+++ b/arch/blackfin/kernel/process.c
@@ -245,7 +245,7 @@ unsigned long get_wchan(struct task_struct *p)
245 245
246void finish_atomic_sections (struct pt_regs *regs) 246void finish_atomic_sections (struct pt_regs *regs)
247{ 247{
248 int __user *up0 = (int __user *)&regs->p0; 248 int __user *up0 = (int __user *)regs->p0;
249 249
250 if (regs->pc < ATOMIC_SEQS_START || regs->pc >= ATOMIC_SEQS_END) 250 if (regs->pc < ATOMIC_SEQS_START || regs->pc >= ATOMIC_SEQS_END)
251 return; 251 return;
diff --git a/arch/blackfin/kernel/ptrace.c b/arch/blackfin/kernel/ptrace.c
index b4f062c172c6..f51ab088098e 100644
--- a/arch/blackfin/kernel/ptrace.c
+++ b/arch/blackfin/kernel/ptrace.c
@@ -185,8 +185,8 @@ void ptrace_disable(struct task_struct *child)
185{ 185{
186 unsigned long tmp; 186 unsigned long tmp;
187 /* make sure the single step bit is not set. */ 187 /* make sure the single step bit is not set. */
188 tmp = get_reg(child, PT_SR) & ~(TRACE_BITS << 16); 188 tmp = get_reg(child, PT_SYSCFG) & ~TRACE_BITS;
189 put_reg(child, PT_SR, tmp); 189 put_reg(child, PT_SYSCFG, tmp);
190} 190}
191 191
192long arch_ptrace(struct task_struct *child, long request, long addr, long data) 192long arch_ptrace(struct task_struct *child, long request, long addr, long data)
diff --git a/arch/blackfin/kernel/signal.c b/arch/blackfin/kernel/signal.c
index cb9d883d493c..dbc3bbf846be 100644
--- a/arch/blackfin/kernel/signal.c
+++ b/arch/blackfin/kernel/signal.c
@@ -42,6 +42,9 @@
42 42
43#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) 43#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
44 44
45/* Location of the trace bit in SYSCFG. */
46#define TRACE_BITS 0x0001
47
45struct fdpic_func_descriptor { 48struct fdpic_func_descriptor {
46 unsigned long text; 49 unsigned long text;
47 unsigned long GOT; 50 unsigned long GOT;
@@ -225,6 +228,16 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t * info,
225 regs->r1 = (unsigned long)(&frame->info); 228 regs->r1 = (unsigned long)(&frame->info);
226 regs->r2 = (unsigned long)(&frame->uc); 229 regs->r2 = (unsigned long)(&frame->uc);
227 230
231 /*
232 * Clear the trace flag when entering the signal handler, but
233 * notify any tracer that was single-stepping it. The tracer
234 * may want to single-step inside the handler too.
235 */
236 if (regs->syscfg & TRACE_BITS) {
237 regs->syscfg &= ~TRACE_BITS;
238 ptrace_notify(SIGTRAP);
239 }
240
228 return 0; 241 return 0;
229 242
230 give_sigsegv: 243 give_sigsegv:
diff --git a/arch/blackfin/kernel/time-ts.c b/arch/blackfin/kernel/time-ts.c
index 4482c47c09e5..e887efc86c29 100644
--- a/arch/blackfin/kernel/time-ts.c
+++ b/arch/blackfin/kernel/time-ts.c
@@ -60,7 +60,7 @@ static inline unsigned long long cycles_2_ns(cycle_t cyc)
60 60
61static cycle_t read_cycles(void) 61static cycle_t read_cycles(void)
62{ 62{
63 return get_cycles(); 63 return __bfin_cycles_off + (get_cycles() << __bfin_cycles_mod);
64} 64}
65 65
66unsigned long long sched_clock(void) 66unsigned long long sched_clock(void)
@@ -117,7 +117,7 @@ static void bfin_timer_set_mode(enum clock_event_mode mode,
117 break; 117 break;
118 } 118 }
119 case CLOCK_EVT_MODE_ONESHOT: 119 case CLOCK_EVT_MODE_ONESHOT:
120 bfin_write_TSCALE(0); 120 bfin_write_TSCALE(TIME_SCALE - 1);
121 bfin_write_TCOUNT(0); 121 bfin_write_TCOUNT(0);
122 bfin_write_TCNTL(TMPWR | TMREN); 122 bfin_write_TCNTL(TMPWR | TMREN);
123 CSYNC(); 123 CSYNC();
@@ -183,10 +183,14 @@ irqreturn_t timer_interrupt(int irq, void *dev_id)
183 183
184static int __init bfin_clockevent_init(void) 184static int __init bfin_clockevent_init(void)
185{ 185{
186 unsigned long timer_clk;
187
188 timer_clk = get_cclk() / TIME_SCALE;
189
186 setup_irq(IRQ_CORETMR, &bfin_timer_irq); 190 setup_irq(IRQ_CORETMR, &bfin_timer_irq);
187 bfin_timer_init(); 191 bfin_timer_init();
188 192
189 clockevent_bfin.mult = div_sc(get_cclk(), NSEC_PER_SEC, clockevent_bfin.shift); 193 clockevent_bfin.mult = div_sc(timer_clk, NSEC_PER_SEC, clockevent_bfin.shift);
190 clockevent_bfin.max_delta_ns = clockevent_delta2ns(-1, &clockevent_bfin); 194 clockevent_bfin.max_delta_ns = clockevent_delta2ns(-1, &clockevent_bfin);
191 clockevent_bfin.min_delta_ns = clockevent_delta2ns(100, &clockevent_bfin); 195 clockevent_bfin.min_delta_ns = clockevent_delta2ns(100, &clockevent_bfin);
192 clockevents_register_device(&clockevent_bfin); 196 clockevents_register_device(&clockevent_bfin);
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c
index 5b847070dae5..7bfbd958980c 100644
--- a/arch/blackfin/kernel/traps.c
+++ b/arch/blackfin/kernel/traps.c
@@ -364,13 +364,13 @@ asmlinkage void trap_c(struct pt_regs *fp)
364 /* 0x27 - Data CPLB Multiple Hits - Linux Trap Zero, handled here */ 364 /* 0x27 - Data CPLB Multiple Hits - Linux Trap Zero, handled here */
365 case VEC_CPLB_MHIT: 365 case VEC_CPLB_MHIT:
366 info.si_code = ILL_CPLB_MULHIT; 366 info.si_code = ILL_CPLB_MULHIT;
367#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO
368 sig = SIGSEGV; 367 sig = SIGSEGV;
369 printk(KERN_NOTICE "NULL pointer access (probably)\n"); 368#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO
370#else 369 if (saved_dcplb_fault_addr < (void *)FIXED_CODE_START)
371 sig = SIGILL; 370 printk(KERN_NOTICE "NULL pointer access\n");
372 printk(KERN_NOTICE EXC_0x27(KERN_NOTICE)); 371 else
373#endif 372#endif
373 printk(KERN_NOTICE EXC_0x27(KERN_NOTICE));
374 CHK_DEBUGGER_TRAP(); 374 CHK_DEBUGGER_TRAP();
375 break; 375 break;
376 /* 0x28 - Emulation Watchpoint, handled here */ 376 /* 0x28 - Emulation Watchpoint, handled here */
@@ -419,13 +419,13 @@ asmlinkage void trap_c(struct pt_regs *fp)
419 /* 0x2D - Instruction CPLB Multiple Hits, handled here */ 419 /* 0x2D - Instruction CPLB Multiple Hits, handled here */
420 case VEC_CPLB_I_MHIT: 420 case VEC_CPLB_I_MHIT:
421 info.si_code = ILL_CPLB_MULHIT; 421 info.si_code = ILL_CPLB_MULHIT;
422#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO
423 sig = SIGSEGV; 422 sig = SIGSEGV;
424 printk(KERN_NOTICE "Jump to address 0 - 0x0fff\n"); 423#ifdef CONFIG_DEBUG_HUNT_FOR_ZERO
425#else 424 if (saved_icplb_fault_addr < (void *)FIXED_CODE_START)
426 sig = SIGILL; 425 printk(KERN_NOTICE "Jump to NULL address\n");
427 printk(KERN_NOTICE EXC_0x2D(KERN_NOTICE)); 426 else
428#endif 427#endif
428 printk(KERN_NOTICE EXC_0x2D(KERN_NOTICE));
429 CHK_DEBUGGER_TRAP(); 429 CHK_DEBUGGER_TRAP();
430 break; 430 break;
431 /* 0x2E - Illegal use of Supervisor Resource, handled here */ 431 /* 0x2E - Illegal use of Supervisor Resource, handled here */
diff --git a/arch/blackfin/lib/checksum.c b/arch/blackfin/lib/checksum.c
index 42768e0c80ca..5c87505165d3 100644
--- a/arch/blackfin/lib/checksum.c
+++ b/arch/blackfin/lib/checksum.c
@@ -72,9 +72,9 @@ static unsigned short do_csum(const unsigned char *buff, int len)
72 * This is a version of ip_compute_csum() optimized for IP headers, 72 * This is a version of ip_compute_csum() optimized for IP headers,
73 * which always checksum on 4 octet boundaries. 73 * which always checksum on 4 octet boundaries.
74 */ 74 */
75unsigned short ip_fast_csum(unsigned char *iph, unsigned int ihl) 75__sum16 ip_fast_csum(unsigned char *iph, unsigned int ihl)
76{ 76{
77 return ~do_csum(iph, ihl * 4); 77 return (__force __sum16)~do_csum(iph, ihl * 4);
78} 78}
79 79
80/* 80/*
@@ -89,7 +89,7 @@ unsigned short ip_fast_csum(unsigned char *iph, unsigned int ihl)
89 * 89 *
90 * it's best to have buff aligned on a 32-bit boundary 90 * it's best to have buff aligned on a 32-bit boundary
91 */ 91 */
92unsigned int csum_partial(const unsigned char *buff, int len, unsigned int sum) 92__wsum csum_partial(const void *buff, int len, __wsum sum)
93{ 93{
94 /* 94 /*
95 * Just in case we get nasty checksum data... 95 * Just in case we get nasty checksum data...
@@ -109,22 +109,22 @@ unsigned int csum_partial(const unsigned char *buff, int len, unsigned int sum)
109 * this routine is used for miscellaneous IP-like checksums, mainly 109 * this routine is used for miscellaneous IP-like checksums, mainly
110 * in icmp.c 110 * in icmp.c
111 */ 111 */
112unsigned short ip_compute_csum(const unsigned char *buff, int len) 112__sum16 ip_compute_csum(const void *buff, int len)
113{ 113{
114 return ~do_csum(buff, len); 114 return (__force __sum16)~do_csum(buff, len);
115} 115}
116 116
117/* 117/*
118 * copy from fs while checksumming, otherwise like csum_partial 118 * copy from fs while checksumming, otherwise like csum_partial
119 */ 119 */
120 120
121unsigned int 121__wsum
122csum_partial_copy_from_user(const unsigned char *src, unsigned char *dst, 122csum_partial_copy_from_user(const void __user *src, void *dst,
123 int len, int sum, int *csum_err) 123 int len, __wsum sum, int *csum_err)
124{ 124{
125 if (csum_err) 125 if (csum_err)
126 *csum_err = 0; 126 *csum_err = 0;
127 memcpy(dst, src, len); 127 memcpy(dst, (__force void *)src, len);
128 return csum_partial(dst, len, sum); 128 return csum_partial(dst, len, sum);
129} 129}
130 130
@@ -132,8 +132,7 @@ csum_partial_copy_from_user(const unsigned char *src, unsigned char *dst,
132 * copy from ds while checksumming, otherwise like csum_partial 132 * copy from ds while checksumming, otherwise like csum_partial
133 */ 133 */
134 134
135unsigned int csum_partial_copy(const unsigned char *src, unsigned char *dst, 135__wsum csum_partial_copy(const void *src, void *dst, int len, __wsum sum)
136 int len, int sum)
137{ 136{
138 memcpy(dst, src, len); 137 memcpy(dst, src, len);
139 return csum_partial(dst, len, sum); 138 return csum_partial(dst, len, sum);
diff --git a/arch/blackfin/lib/ins.S b/arch/blackfin/lib/ins.S
index df7b8833a0c5..eba2343b1b59 100644
--- a/arch/blackfin/lib/ins.S
+++ b/arch/blackfin/lib/ins.S
@@ -7,7 +7,7 @@
7 * Description: Implementation of ins{bwl} for BlackFin processors using zero overhead loops. 7 * Description: Implementation of ins{bwl} for BlackFin processors using zero overhead loops.
8 * 8 *
9 * Modified: 9 * Modified:
10 * Copyright 2004-2006 Analog Devices Inc. 10 * Copyright 2004-2008 Analog Devices Inc.
11 * Copyright (C) 2005 Bas Vermeulen, BuyWays BV <bas@buyways.nl> 11 * Copyright (C) 2005 Bas Vermeulen, BuyWays BV <bas@buyways.nl>
12 * 12 *
13 * Bugs: Enter bugs at http://blackfin.uclinux.org/ 13 * Bugs: Enter bugs at http://blackfin.uclinux.org/
@@ -63,6 +63,23 @@ ENTRY(_insw)
63 RTS; 63 RTS;
64ENDPROC(_insw) 64ENDPROC(_insw)
65 65
66ENTRY(_insw_8)
67 P0 = R0; /* P0 = port */
68 cli R3;
69 P1 = R1; /* P1 = address */
70 P2 = R2; /* P2 = count */
71 SSYNC;
72 LSETUP( .Lword8_loop_s, .Lword8_loop_e) LC0 = P2;
73.Lword8_loop_s: R0 = W[P0];
74 B[P1++] = R0;
75 R0 = R0 >> 8;
76 B[P1++] = R0;
77 NOP;
78.Lword8_loop_e: NOP;
79 sti R3;
80 RTS;
81ENDPROC(_insw_8)
82
66ENTRY(_insb) 83ENTRY(_insb)
67 P0 = R0; /* P0 = port */ 84 P0 = R0; /* P0 = port */
68 cli R3; 85 cli R3;
@@ -78,8 +95,6 @@ ENTRY(_insb)
78 RTS; 95 RTS;
79ENDPROC(_insb) 96ENDPROC(_insb)
80 97
81
82
83ENTRY(_insl_16) 98ENTRY(_insl_16)
84 P0 = R0; /* P0 = port */ 99 P0 = R0; /* P0 = port */
85 cli R3; 100 cli R3;
diff --git a/arch/blackfin/lib/outs.S b/arch/blackfin/lib/outs.S
index 4c3da8ae094e..3daf96035bf6 100644
--- a/arch/blackfin/lib/outs.S
+++ b/arch/blackfin/lib/outs.S
@@ -7,7 +7,7 @@
7 * Description: Implementation of outs{bwl} for BlackFin processors using zero overhead loops. 7 * Description: Implementation of outs{bwl} for BlackFin processors using zero overhead loops.
8 * 8 *
9 * Modified: Copyright (C) 2005 Bas Vermeulen, BuyWays BV <bas@buyways.nl> 9 * Modified: Copyright (C) 2005 Bas Vermeulen, BuyWays BV <bas@buyways.nl>
10 * Copyright 2004-2006 Analog Devices Inc. 10 * Copyright 2004-2008 Analog Devices Inc.
11 * 11 *
12 * Bugs: Enter bugs at http://blackfin.uclinux.org/ 12 * Bugs: Enter bugs at http://blackfin.uclinux.org/
13 * 13 *
@@ -63,3 +63,17 @@ ENTRY(_outsb)
63.Lbyte_loop_e: B[P0] = R0; 63.Lbyte_loop_e: B[P0] = R0;
64 RTS; 64 RTS;
65ENDPROC(_outsb) 65ENDPROC(_outsb)
66
67ENTRY(_outsw_8)
68 P0 = R0; /* P0 = port */
69 P1 = R1; /* P1 = address */
70 P2 = R2; /* P2 = count */
71
72 LSETUP( .Lword8_loop_s, .Lword8_loop_e) LC0 = P2;
73.Lword8_loop_s: R1 = B[P1++];
74 R0 = B[P1++];
75 R0 = R0 << 8;
76 R0 = R0 + R1;
77.Lword8_loop_e: W[P0] = R0;
78 RTS;
79ENDPROC(_outsw)
diff --git a/arch/blackfin/mach-bf527/boards/ezkit.c b/arch/blackfin/mach-bf527/boards/ezkit.c
index 583d53811f03..bb6d58c931de 100644
--- a/arch/blackfin/mach-bf527/boards/ezkit.c
+++ b/arch/blackfin/mach-bf527/boards/ezkit.c
@@ -32,12 +32,14 @@
32#include <linux/platform_device.h> 32#include <linux/platform_device.h>
33#include <linux/mtd/mtd.h> 33#include <linux/mtd/mtd.h>
34#include <linux/mtd/partitions.h> 34#include <linux/mtd/partitions.h>
35#include <linux/mtd/physmap.h>
35#include <linux/spi/spi.h> 36#include <linux/spi/spi.h>
36#include <linux/spi/flash.h> 37#include <linux/spi/flash.h>
37#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) 38#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
38#include <linux/usb/isp1362.h> 39#include <linux/usb/isp1362.h>
39#endif 40#endif
40#include <linux/ata_platform.h> 41#include <linux/ata_platform.h>
42#include <linux/i2c.h>
41#include <linux/irq.h> 43#include <linux/irq.h>
42#include <linux/interrupt.h> 44#include <linux/interrupt.h>
43#include <linux/usb/sl811.h> 45#include <linux/usb/sl811.h>
@@ -50,6 +52,7 @@
50#include <asm/reboot.h> 52#include <asm/reboot.h>
51#include <asm/nand.h> 53#include <asm/nand.h>
52#include <asm/portmux.h> 54#include <asm/portmux.h>
55#include <asm/dpmc.h>
53#include <linux/spi/ad7877.h> 56#include <linux/spi/ad7877.h>
54 57
55/* 58/*
@@ -171,6 +174,46 @@ static struct platform_device bf52x_t350mcqb_device = {
171}; 174};
172#endif 175#endif
173 176
177#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
178static struct mtd_partition ezkit_partitions[] = {
179 {
180 .name = "Bootloader",
181 .size = 0x40000,
182 .offset = 0,
183 }, {
184 .name = "Kernel",
185 .size = 0x1C0000,
186 .offset = MTDPART_OFS_APPEND,
187 }, {
188 .name = "RootFS",
189 .size = MTDPART_SIZ_FULL,
190 .offset = MTDPART_OFS_APPEND,
191 }
192};
193
194static struct physmap_flash_data ezkit_flash_data = {
195 .width = 2,
196 .parts = ezkit_partitions,
197 .nr_parts = ARRAY_SIZE(ezkit_partitions),
198};
199
200static struct resource ezkit_flash_resource = {
201 .start = 0x20000000,
202 .end = 0x203fffff,
203 .flags = IORESOURCE_MEM,
204};
205
206static struct platform_device ezkit_flash_device = {
207 .name = "physmap-flash",
208 .id = 0,
209 .dev = {
210 .platform_data = &ezkit_flash_data,
211 },
212 .num_resources = 1,
213 .resource = &ezkit_flash_resource,
214};
215#endif
216
174#if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE) 217#if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE)
175static struct mtd_partition partition_info[] = { 218static struct mtd_partition partition_info[] = {
176 { 219 {
@@ -420,11 +463,7 @@ static struct mtd_partition bfin_spi_flash_partitions[] = {
420 .offset = 0, 463 .offset = 0,
421 .mask_flags = MTD_CAP_ROM 464 .mask_flags = MTD_CAP_ROM
422 }, { 465 }, {
423 .name = "kernel", 466 .name = "linux kernel",
424 .size = 0xe0000,
425 .offset = MTDPART_OFS_APPEND,
426 }, {
427 .name = "file system",
428 .size = MTDPART_SIZ_FULL, 467 .size = MTDPART_SIZ_FULL,
429 .offset = MTDPART_OFS_APPEND, 468 .offset = MTDPART_OFS_APPEND,
430 } 469 }
@@ -434,7 +473,7 @@ static struct flash_platform_data bfin_spi_flash_data = {
434 .name = "m25p80", 473 .name = "m25p80",
435 .parts = bfin_spi_flash_partitions, 474 .parts = bfin_spi_flash_partitions,
436 .nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions), 475 .nr_parts = ARRAY_SIZE(bfin_spi_flash_partitions),
437 .type = "m25p64", 476 .type = "m25p16",
438}; 477};
439 478
440/* SPI flash chip (m25p64) */ 479/* SPI flash chip (m25p64) */
@@ -755,6 +794,22 @@ static struct platform_device i2c_bfin_twi_device = {
755}; 794};
756#endif 795#endif
757 796
797#ifdef CONFIG_I2C_BOARDINFO
798static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
799#if defined(CONFIG_TWI_LCD) || defined(CONFIG_TWI_LCD_MODULE)
800 {
801 I2C_BOARD_INFO("pcf8574_lcd", 0x22),
802 },
803#endif
804#if defined(CONFIG_TWI_KEYPAD) || defined(CONFIG_TWI_KEYPAD_MODULE)
805 {
806 I2C_BOARD_INFO("pcf8574_keypad", 0x27),
807 .irq = IRQ_PF8,
808 },
809#endif
810};
811#endif
812
758#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 813#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
759static struct platform_device bfin_sport0_uart_device = { 814static struct platform_device bfin_sport0_uart_device = {
760 .name = "bfin-sport-uart", 815 .name = "bfin-sport-uart",
@@ -839,7 +894,32 @@ static struct platform_device bfin_gpios_device = {
839 .resource = &bfin_gpios_resources, 894 .resource = &bfin_gpios_resources,
840}; 895};
841 896
897static const unsigned int cclk_vlev_datasheet[] =
898{
899 VRPAIR(VLEV_100, 400000000),
900 VRPAIR(VLEV_105, 426000000),
901 VRPAIR(VLEV_110, 500000000),
902 VRPAIR(VLEV_115, 533000000),
903 VRPAIR(VLEV_120, 600000000),
904};
905
906static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
907 .tuple_tab = cclk_vlev_datasheet,
908 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
909 .vr_settling_time = 25 /* us */,
910};
911
912static struct platform_device bfin_dpmc = {
913 .name = "bfin dpmc",
914 .dev = {
915 .platform_data = &bfin_dmpc_vreg_data,
916 },
917};
918
842static struct platform_device *stamp_devices[] __initdata = { 919static struct platform_device *stamp_devices[] __initdata = {
920
921 &bfin_dpmc,
922
843#if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE) 923#if defined(CONFIG_MTD_NAND_BF5XX) || defined(CONFIG_MTD_NAND_BF5XX_MODULE)
844 &bf5xx_nand_device, 924 &bf5xx_nand_device,
845#endif 925#endif
@@ -921,12 +1001,22 @@ static struct platform_device *stamp_devices[] __initdata = {
921 &bfin_device_gpiokeys, 1001 &bfin_device_gpiokeys,
922#endif 1002#endif
923 1003
1004#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
1005 &ezkit_flash_device,
1006#endif
1007
924 &bfin_gpios_device, 1008 &bfin_gpios_device,
925}; 1009};
926 1010
927static int __init stamp_init(void) 1011static int __init stamp_init(void)
928{ 1012{
929 printk(KERN_INFO "%s(): registering device resources\n", __func__); 1013 printk(KERN_INFO "%s(): registering device resources\n", __func__);
1014
1015#ifdef CONFIG_I2C_BOARDINFO
1016 i2c_register_board_info(0, bfin_i2c_board_info,
1017 ARRAY_SIZE(bfin_i2c_board_info));
1018#endif
1019
930 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices)); 1020 platform_add_devices(stamp_devices, ARRAY_SIZE(stamp_devices));
931#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE) 1021#if defined(CONFIG_SPI_BFIN) || defined(CONFIG_SPI_BFIN_MODULE)
932 spi_register_board_info(bfin_spi_board_info, 1022 spi_register_board_info(bfin_spi_board_info,
diff --git a/arch/blackfin/mach-bf533/boards/cm_bf533.c b/arch/blackfin/mach-bf533/boards/cm_bf533.c
index a03149c72681..ed2b0b8f5dc9 100644
--- a/arch/blackfin/mach-bf533/boards/cm_bf533.c
+++ b/arch/blackfin/mach-bf533/boards/cm_bf533.c
@@ -33,12 +33,15 @@
33#include <linux/mtd/partitions.h> 33#include <linux/mtd/partitions.h>
34#include <linux/spi/spi.h> 34#include <linux/spi/spi.h>
35#include <linux/spi/flash.h> 35#include <linux/spi/flash.h>
36#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
36#include <linux/usb/isp1362.h> 37#include <linux/usb/isp1362.h>
38#endif
37#include <linux/ata_platform.h> 39#include <linux/ata_platform.h>
38#include <linux/irq.h> 40#include <linux/irq.h>
39#include <asm/dma.h> 41#include <asm/dma.h>
40#include <asm/bfin5xx_spi.h> 42#include <asm/bfin5xx_spi.h>
41#include <asm/portmux.h> 43#include <asm/portmux.h>
44#include <asm/dpmc.h>
42 45
43/* 46/*
44 * Name the Board for the /proc/cpuinfo 47 * Name the Board for the /proc/cpuinfo
@@ -341,7 +344,37 @@ static struct platform_device bfin_pata_device = {
341}; 344};
342#endif 345#endif
343 346
347static const unsigned int cclk_vlev_datasheet[] =
348{
349 VRPAIR(VLEV_085, 250000000),
350 VRPAIR(VLEV_090, 376000000),
351 VRPAIR(VLEV_095, 426000000),
352 VRPAIR(VLEV_100, 426000000),
353 VRPAIR(VLEV_105, 476000000),
354 VRPAIR(VLEV_110, 476000000),
355 VRPAIR(VLEV_115, 476000000),
356 VRPAIR(VLEV_120, 600000000),
357 VRPAIR(VLEV_125, 600000000),
358 VRPAIR(VLEV_130, 600000000),
359};
360
361static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
362 .tuple_tab = cclk_vlev_datasheet,
363 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
364 .vr_settling_time = 25 /* us */,
365};
366
367static struct platform_device bfin_dpmc = {
368 .name = "bfin dpmc",
369 .dev = {
370 .platform_data = &bfin_dmpc_vreg_data,
371 },
372};
373
344static struct platform_device *cm_bf533_devices[] __initdata = { 374static struct platform_device *cm_bf533_devices[] __initdata = {
375
376 &bfin_dpmc,
377
345#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE) 378#if defined(CONFIG_SERIAL_BFIN) || defined(CONFIG_SERIAL_BFIN_MODULE)
346 &bfin_uart_device, 379 &bfin_uart_device,
347#endif 380#endif
diff --git a/arch/blackfin/mach-bf533/boards/ezkit.c b/arch/blackfin/mach-bf533/boards/ezkit.c
index 08a7943949ae..9d28415163ea 100644
--- a/arch/blackfin/mach-bf533/boards/ezkit.c
+++ b/arch/blackfin/mach-bf533/boards/ezkit.c
@@ -42,6 +42,7 @@
42#include <asm/dma.h> 42#include <asm/dma.h>
43#include <asm/bfin5xx_spi.h> 43#include <asm/bfin5xx_spi.h>
44#include <asm/portmux.h> 44#include <asm/portmux.h>
45#include <asm/dpmc.h>
45 46
46/* 47/*
47 * Name the Board for the /proc/cpuinfo 48 * Name the Board for the /proc/cpuinfo
@@ -350,7 +351,37 @@ static struct platform_device i2c_gpio_device = {
350}; 351};
351#endif 352#endif
352 353
354static const unsigned int cclk_vlev_datasheet[] =
355{
356 VRPAIR(VLEV_085, 250000000),
357 VRPAIR(VLEV_090, 376000000),
358 VRPAIR(VLEV_095, 426000000),
359 VRPAIR(VLEV_100, 426000000),
360 VRPAIR(VLEV_105, 476000000),
361 VRPAIR(VLEV_110, 476000000),
362 VRPAIR(VLEV_115, 476000000),
363 VRPAIR(VLEV_120, 600000000),
364 VRPAIR(VLEV_125, 600000000),
365 VRPAIR(VLEV_130, 600000000),
366};
367
368static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
369 .tuple_tab = cclk_vlev_datasheet,
370 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
371 .vr_settling_time = 25 /* us */,
372};
373
374static struct platform_device bfin_dpmc = {
375 .name = "bfin dpmc",
376 .dev = {
377 .platform_data = &bfin_dmpc_vreg_data,
378 },
379};
380
353static struct platform_device *ezkit_devices[] __initdata = { 381static struct platform_device *ezkit_devices[] __initdata = {
382
383 &bfin_dpmc,
384
354#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) 385#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
355 &smc91x_device, 386 &smc91x_device,
356#endif 387#endif
diff --git a/arch/blackfin/mach-bf533/boards/stamp.c b/arch/blackfin/mach-bf533/boards/stamp.c
index 024f418ae543..ec05b236dc3f 100644
--- a/arch/blackfin/mach-bf533/boards/stamp.c
+++ b/arch/blackfin/mach-bf533/boards/stamp.c
@@ -45,6 +45,7 @@
45#include <asm/bfin5xx_spi.h> 45#include <asm/bfin5xx_spi.h>
46#include <asm/reboot.h> 46#include <asm/reboot.h>
47#include <asm/portmux.h> 47#include <asm/portmux.h>
48#include <asm/dpmc.h>
48 49
49/* 50/*
50 * Name the Board for the /proc/cpuinfo 51 * Name the Board for the /proc/cpuinfo
@@ -110,7 +111,7 @@ static struct platform_device net2272_bfin_device = {
110}; 111};
111#endif 112#endif
112 113
113#if defined(CONFIG_MTD_BF5xx) || defined(CONFIG_MTD_BF5xx_MODULE) 114#if defined(CONFIG_MTD_BFIN_ASYNC) || defined(CONFIG_MTD_BFIN_ASYNC_MODULE)
114static struct mtd_partition stamp_partitions[] = { 115static struct mtd_partition stamp_partitions[] = {
115 { 116 {
116 .name = "Bootloader", 117 .name = "Bootloader",
@@ -140,13 +141,17 @@ static struct resource stamp_flash_resource[] = {
140 .end = 0x203fffff, 141 .end = 0x203fffff,
141 .flags = IORESOURCE_MEM, 142 .flags = IORESOURCE_MEM,
142 }, { 143 }, {
143 .start = CONFIG_ENET_FLASH_PIN, 144 .start = 0x7BB07BB0, /* AMBCTL0 setting when accessing flash */
145 .end = 0x7BB07BB0, /* AMBCTL1 setting when accessing flash */
146 .flags = IORESOURCE_MEM,
147 }, {
148 .start = GPIO_PF0,
144 .flags = IORESOURCE_IRQ, 149 .flags = IORESOURCE_IRQ,
145 } 150 }
146}; 151};
147 152
148static struct platform_device stamp_flash_device = { 153static struct platform_device stamp_flash_device = {
149 .name = "BF5xx-Flash", 154 .name = "bfin-async-flash",
150 .id = 0, 155 .id = 0,
151 .dev = { 156 .dev = {
152 .platform_data = &stamp_flash_data, 157 .platform_data = &stamp_flash_data,
@@ -516,7 +521,37 @@ static struct i2c_board_info __initdata bfin_i2c_board_info[] = {
516}; 521};
517#endif 522#endif
518 523
524static const unsigned int cclk_vlev_datasheet[] =
525{
526 VRPAIR(VLEV_085, 250000000),
527 VRPAIR(VLEV_090, 376000000),
528 VRPAIR(VLEV_095, 426000000),
529 VRPAIR(VLEV_100, 426000000),
530 VRPAIR(VLEV_105, 476000000),
531 VRPAIR(VLEV_110, 476000000),
532 VRPAIR(VLEV_115, 476000000),
533 VRPAIR(VLEV_120, 600000000),
534 VRPAIR(VLEV_125, 600000000),
535 VRPAIR(VLEV_130, 600000000),
536};
537
538static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
539 .tuple_tab = cclk_vlev_datasheet,
540 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
541 .vr_settling_time = 25 /* us */,
542};
543
544static struct platform_device bfin_dpmc = {
545 .name = "bfin dpmc",
546 .dev = {
547 .platform_data = &bfin_dmpc_vreg_data,
548 },
549};
550
519static struct platform_device *stamp_devices[] __initdata = { 551static struct platform_device *stamp_devices[] __initdata = {
552
553 &bfin_dpmc,
554
520#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) 555#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
521 &rtc_device, 556 &rtc_device,
522#endif 557#endif
@@ -564,7 +599,7 @@ static struct platform_device *stamp_devices[] __initdata = {
564 599
565 &bfin_gpios_device, 600 &bfin_gpios_device,
566 601
567#if defined(CONFIG_MTD_BF5xx) || defined(CONFIG_MTD_BF5xx_MODULE) 602#if defined(CONFIG_MTD_BFIN_ASYNC) || defined(CONFIG_MTD_BFIN_ASYNC_MODULE)
568 &stamp_flash_device, 603 &stamp_flash_device,
569#endif 604#endif
570}; 605};
@@ -586,8 +621,8 @@ static int __init stamp_init(void)
586 621
587#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) 622#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
588 /* setup BF533_STAMP CPLD to route AMS3 to Ethernet MAC */ 623 /* setup BF533_STAMP CPLD to route AMS3 to Ethernet MAC */
589 bfin_write_FIO_DIR(bfin_read_FIO_DIR() | (1 << CONFIG_ENET_FLASH_PIN)); 624 bfin_write_FIO_DIR(bfin_read_FIO_DIR() | PF0);
590 bfin_write_FIO_FLAG_S(1 << CONFIG_ENET_FLASH_PIN); 625 bfin_write_FIO_FLAG_S(PF0);
591 SSYNC(); 626 SSYNC();
592#endif 627#endif
593 628
@@ -605,8 +640,8 @@ arch_initcall(stamp_init);
605 640
606void native_machine_restart(char *cmd) 641void native_machine_restart(char *cmd)
607{ 642{
608#define BIT_TO_SET (1 << CONFIG_ENET_FLASH_PIN) 643 /* workaround pull up on cpld / flash pin not being strong enough */
609 bfin_write_FIO_INEN(~BIT_TO_SET); 644 bfin_write_FIO_INEN(~PF0);
610 bfin_write_FIO_DIR(BIT_TO_SET); 645 bfin_write_FIO_DIR(PF0);
611 bfin_write_FIO_FLAG_C(BIT_TO_SET); 646 bfin_write_FIO_FLAG_C(PF0);
612} 647}
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537.c b/arch/blackfin/mach-bf537/boards/cm_bf537.c
index d8a23cd9b9ed..73f2142875e2 100644
--- a/arch/blackfin/mach-bf537/boards/cm_bf537.c
+++ b/arch/blackfin/mach-bf537/boards/cm_bf537.c
@@ -35,12 +35,15 @@
35#include <linux/mtd/partitions.h> 35#include <linux/mtd/partitions.h>
36#include <linux/spi/spi.h> 36#include <linux/spi/spi.h>
37#include <linux/spi/flash.h> 37#include <linux/spi/flash.h>
38#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
38#include <linux/usb/isp1362.h> 39#include <linux/usb/isp1362.h>
40#endif
39#include <linux/ata_platform.h> 41#include <linux/ata_platform.h>
40#include <linux/irq.h> 42#include <linux/irq.h>
41#include <asm/dma.h> 43#include <asm/dma.h>
42#include <asm/bfin5xx_spi.h> 44#include <asm/bfin5xx_spi.h>
43#include <asm/portmux.h> 45#include <asm/portmux.h>
46#include <asm/dpmc.h>
44 47
45/* 48/*
46 * Name the Board for the /proc/cpuinfo 49 * Name the Board for the /proc/cpuinfo
@@ -428,7 +431,37 @@ static struct platform_device bfin_pata_device = {
428}; 431};
429#endif 432#endif
430 433
434static const unsigned int cclk_vlev_datasheet[] =
435{
436 VRPAIR(VLEV_085, 250000000),
437 VRPAIR(VLEV_090, 376000000),
438 VRPAIR(VLEV_095, 426000000),
439 VRPAIR(VLEV_100, 426000000),
440 VRPAIR(VLEV_105, 476000000),
441 VRPAIR(VLEV_110, 476000000),
442 VRPAIR(VLEV_115, 476000000),
443 VRPAIR(VLEV_120, 500000000),
444 VRPAIR(VLEV_125, 533000000),
445 VRPAIR(VLEV_130, 600000000),
446};
447
448static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
449 .tuple_tab = cclk_vlev_datasheet,
450 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
451 .vr_settling_time = 25 /* us */,
452};
453
454static struct platform_device bfin_dpmc = {
455 .name = "bfin dpmc",
456 .dev = {
457 .platform_data = &bfin_dmpc_vreg_data,
458 },
459};
460
431static struct platform_device *cm_bf537_devices[] __initdata = { 461static struct platform_device *cm_bf537_devices[] __initdata = {
462
463 &bfin_dpmc,
464
432#if defined(CONFIG_FB_HITACHI_TX09) || defined(CONFIG_FB_HITACHI_TX09_MODULE) 465#if defined(CONFIG_FB_HITACHI_TX09) || defined(CONFIG_FB_HITACHI_TX09_MODULE)
433 &hitachi_fb_device, 466 &hitachi_fb_device,
434#endif 467#endif
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index d3727b7c2d7d..9a756d1f3d73 100644
--- a/arch/blackfin/mach-bf537/boards/stamp.c
+++ b/arch/blackfin/mach-bf537/boards/stamp.c
@@ -47,6 +47,7 @@
47#include <asm/bfin5xx_spi.h> 47#include <asm/bfin5xx_spi.h>
48#include <asm/reboot.h> 48#include <asm/reboot.h>
49#include <asm/portmux.h> 49#include <asm/portmux.h>
50#include <asm/dpmc.h>
50#include <linux/spi/ad7877.h> 51#include <linux/spi/ad7877.h>
51 52
52/* 53/*
@@ -817,7 +818,37 @@ static struct platform_device bfin_pata_device = {
817}; 818};
818#endif 819#endif
819 820
821static const unsigned int cclk_vlev_datasheet[] =
822{
823 VRPAIR(VLEV_085, 250000000),
824 VRPAIR(VLEV_090, 376000000),
825 VRPAIR(VLEV_095, 426000000),
826 VRPAIR(VLEV_100, 426000000),
827 VRPAIR(VLEV_105, 476000000),
828 VRPAIR(VLEV_110, 476000000),
829 VRPAIR(VLEV_115, 476000000),
830 VRPAIR(VLEV_120, 500000000),
831 VRPAIR(VLEV_125, 533000000),
832 VRPAIR(VLEV_130, 600000000),
833};
834
835static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
836 .tuple_tab = cclk_vlev_datasheet,
837 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
838 .vr_settling_time = 25 /* us */,
839};
840
841static struct platform_device bfin_dpmc = {
842 .name = "bfin dpmc",
843 .dev = {
844 .platform_data = &bfin_dmpc_vreg_data,
845 },
846};
847
820static struct platform_device *stamp_devices[] __initdata = { 848static struct platform_device *stamp_devices[] __initdata = {
849
850 &bfin_dpmc,
851
821#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE) 852#if defined(CONFIG_BFIN_CFPCMCIA) || defined(CONFIG_BFIN_CFPCMCIA_MODULE)
822 &bfin_pcmcia_cf_device, 853 &bfin_pcmcia_cf_device,
823#endif 854#endif
diff --git a/arch/blackfin/mach-bf548/boards/cm_bf548.c b/arch/blackfin/mach-bf548/boards/cm_bf548.c
index e3e8479fffb5..3b74f96d3590 100644
--- a/arch/blackfin/mach-bf548/boards/cm_bf548.c
+++ b/arch/blackfin/mach-bf548/boards/cm_bf548.c
@@ -36,7 +36,9 @@
36#include <linux/spi/flash.h> 36#include <linux/spi/flash.h>
37#include <linux/irq.h> 37#include <linux/irq.h>
38#include <linux/interrupt.h> 38#include <linux/interrupt.h>
39#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
39#include <linux/usb/musb.h> 40#include <linux/usb/musb.h>
41#endif
40#include <asm/bfin5xx_spi.h> 42#include <asm/bfin5xx_spi.h>
41#include <asm/cplb.h> 43#include <asm/cplb.h>
42#include <asm/dma.h> 44#include <asm/dma.h>
@@ -44,6 +46,7 @@
44#include <asm/nand.h> 46#include <asm/nand.h>
45#include <asm/portmux.h> 47#include <asm/portmux.h>
46#include <asm/mach/bf54x_keys.h> 48#include <asm/mach/bf54x_keys.h>
49#include <asm/dpmc.h>
47#include <linux/input.h> 50#include <linux/input.h>
48#include <linux/spi/ad7877.h> 51#include <linux/spi/ad7877.h>
49 52
@@ -590,7 +593,38 @@ static struct platform_device bfin_device_gpiokeys = {
590}; 593};
591#endif 594#endif
592 595
596static const unsigned int cclk_vlev_datasheet[] =
597{
598/*
599 * Internal VLEV BF54XSBBC1533
600 ****temporarily using these values until data sheet is updated
601 */
602 VRPAIR(VLEV_085, 150000000),
603 VRPAIR(VLEV_090, 250000000),
604 VRPAIR(VLEV_110, 276000000),
605 VRPAIR(VLEV_115, 301000000),
606 VRPAIR(VLEV_120, 525000000),
607 VRPAIR(VLEV_125, 550000000),
608 VRPAIR(VLEV_130, 600000000),
609};
610
611static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
612 .tuple_tab = cclk_vlev_datasheet,
613 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
614 .vr_settling_time = 25 /* us */,
615};
616
617static struct platform_device bfin_dpmc = {
618 .name = "bfin dpmc",
619 .dev = {
620 .platform_data = &bfin_dmpc_vreg_data,
621 },
622};
623
593static struct platform_device *cm_bf548_devices[] __initdata = { 624static struct platform_device *cm_bf548_devices[] __initdata = {
625
626 &bfin_dpmc,
627
594#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) 628#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
595 &rtc_device, 629 &rtc_device,
596#endif 630#endif
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c
index b00f68ac6bc9..d1682bb37509 100644
--- a/arch/blackfin/mach-bf548/boards/ezkit.c
+++ b/arch/blackfin/mach-bf548/boards/ezkit.c
@@ -46,6 +46,7 @@
46#include <asm/dma.h> 46#include <asm/dma.h>
47#include <asm/gpio.h> 47#include <asm/gpio.h>
48#include <asm/nand.h> 48#include <asm/nand.h>
49#include <asm/dpmc.h>
49#include <asm/portmux.h> 50#include <asm/portmux.h>
50#include <asm/mach/bf54x_keys.h> 51#include <asm/mach/bf54x_keys.h>
51#include <linux/input.h> 52#include <linux/input.h>
@@ -689,7 +690,38 @@ static struct platform_device bfin_gpios_device = {
689 .resource = &bfin_gpios_resources, 690 .resource = &bfin_gpios_resources,
690}; 691};
691 692
693static const unsigned int cclk_vlev_datasheet[] =
694{
695/*
696 * Internal VLEV BF54XSBBC1533
697 ****temporarily using these values until data sheet is updated
698 */
699 VRPAIR(VLEV_085, 150000000),
700 VRPAIR(VLEV_090, 250000000),
701 VRPAIR(VLEV_110, 276000000),
702 VRPAIR(VLEV_115, 301000000),
703 VRPAIR(VLEV_120, 525000000),
704 VRPAIR(VLEV_125, 550000000),
705 VRPAIR(VLEV_130, 600000000),
706};
707
708static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
709 .tuple_tab = cclk_vlev_datasheet,
710 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
711 .vr_settling_time = 25 /* us */,
712};
713
714static struct platform_device bfin_dpmc = {
715 .name = "bfin dpmc",
716 .dev = {
717 .platform_data = &bfin_dmpc_vreg_data,
718 },
719};
720
692static struct platform_device *ezkit_devices[] __initdata = { 721static struct platform_device *ezkit_devices[] __initdata = {
722
723 &bfin_dpmc,
724
693#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE) 725#if defined(CONFIG_RTC_DRV_BFIN) || defined(CONFIG_RTC_DRV_BFIN_MODULE)
694 &rtc_device, 726 &rtc_device,
695#endif 727#endif
diff --git a/arch/blackfin/mach-bf561/boards/cm_bf561.c b/arch/blackfin/mach-bf561/boards/cm_bf561.c
index 9fd580952fd8..466ef5929a25 100644
--- a/arch/blackfin/mach-bf561/boards/cm_bf561.c
+++ b/arch/blackfin/mach-bf561/boards/cm_bf561.c
@@ -33,12 +33,15 @@
33#include <linux/mtd/partitions.h> 33#include <linux/mtd/partitions.h>
34#include <linux/spi/spi.h> 34#include <linux/spi/spi.h>
35#include <linux/spi/flash.h> 35#include <linux/spi/flash.h>
36#if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE)
36#include <linux/usb/isp1362.h> 37#include <linux/usb/isp1362.h>
38#endif
37#include <linux/ata_platform.h> 39#include <linux/ata_platform.h>
38#include <linux/irq.h> 40#include <linux/irq.h>
39#include <asm/dma.h> 41#include <asm/dma.h>
40#include <asm/bfin5xx_spi.h> 42#include <asm/bfin5xx_spi.h>
41#include <asm/portmux.h> 43#include <asm/portmux.h>
44#include <asm/dpmc.h>
42 45
43/* 46/*
44 * Name the Board for the /proc/cpuinfo 47 * Name the Board for the /proc/cpuinfo
@@ -339,8 +342,37 @@ static struct platform_device bfin_pata_device = {
339}; 342};
340#endif 343#endif
341 344
345static const unsigned int cclk_vlev_datasheet[] =
346{
347 VRPAIR(VLEV_085, 250000000),
348 VRPAIR(VLEV_090, 300000000),
349 VRPAIR(VLEV_095, 313000000),
350 VRPAIR(VLEV_100, 350000000),
351 VRPAIR(VLEV_105, 400000000),
352 VRPAIR(VLEV_110, 444000000),
353 VRPAIR(VLEV_115, 450000000),
354 VRPAIR(VLEV_120, 475000000),
355 VRPAIR(VLEV_125, 500000000),
356 VRPAIR(VLEV_130, 600000000),
357};
358
359static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
360 .tuple_tab = cclk_vlev_datasheet,
361 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
362 .vr_settling_time = 25 /* us */,
363};
364
365static struct platform_device bfin_dpmc = {
366 .name = "bfin dpmc",
367 .dev = {
368 .platform_data = &bfin_dmpc_vreg_data,
369 },
370};
371
342static struct platform_device *cm_bf561_devices[] __initdata = { 372static struct platform_device *cm_bf561_devices[] __initdata = {
343 373
374 &bfin_dpmc,
375
344#if defined(CONFIG_FB_HITACHI_TX09) || defined(CONFIG_FB_HITACHI_TX09_MODULE) 376#if defined(CONFIG_FB_HITACHI_TX09) || defined(CONFIG_FB_HITACHI_TX09_MODULE)
345 &hitachi_fb_device, 377 &hitachi_fb_device,
346#endif 378#endif
diff --git a/arch/blackfin/mach-bf561/boards/ezkit.c b/arch/blackfin/mach-bf561/boards/ezkit.c
index 0d74b7d99209..61d8f7648b24 100644
--- a/arch/blackfin/mach-bf561/boards/ezkit.c
+++ b/arch/blackfin/mach-bf561/boards/ezkit.c
@@ -39,6 +39,7 @@
39#include <asm/dma.h> 39#include <asm/dma.h>
40#include <asm/bfin5xx_spi.h> 40#include <asm/bfin5xx_spi.h>
41#include <asm/portmux.h> 41#include <asm/portmux.h>
42#include <asm/dpmc.h>
42 43
43/* 44/*
44 * Name the Board for the /proc/cpuinfo 45 * Name the Board for the /proc/cpuinfo
@@ -443,7 +444,37 @@ static struct platform_device i2c_gpio_device = {
443}; 444};
444#endif 445#endif
445 446
447static const unsigned int cclk_vlev_datasheet[] =
448{
449 VRPAIR(VLEV_085, 250000000),
450 VRPAIR(VLEV_090, 300000000),
451 VRPAIR(VLEV_095, 313000000),
452 VRPAIR(VLEV_100, 350000000),
453 VRPAIR(VLEV_105, 400000000),
454 VRPAIR(VLEV_110, 444000000),
455 VRPAIR(VLEV_115, 450000000),
456 VRPAIR(VLEV_120, 475000000),
457 VRPAIR(VLEV_125, 500000000),
458 VRPAIR(VLEV_130, 600000000),
459};
460
461static struct bfin_dpmc_platform_data bfin_dmpc_vreg_data = {
462 .tuple_tab = cclk_vlev_datasheet,
463 .tabsize = ARRAY_SIZE(cclk_vlev_datasheet),
464 .vr_settling_time = 25 /* us */,
465};
466
467static struct platform_device bfin_dpmc = {
468 .name = "bfin dpmc",
469 .dev = {
470 .platform_data = &bfin_dmpc_vreg_data,
471 },
472};
473
446static struct platform_device *ezkit_devices[] __initdata = { 474static struct platform_device *ezkit_devices[] __initdata = {
475
476 &bfin_dpmc,
477
447#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE) 478#if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)
448 &smc91x_device, 479 &smc91x_device,
449#endif 480#endif
diff --git a/arch/blackfin/mach-common/Makefile b/arch/blackfin/mach-common/Makefile
index 393081e9b680..422bfee34adc 100644
--- a/arch/blackfin/mach-common/Makefile
+++ b/arch/blackfin/mach-common/Makefile
@@ -6,5 +6,6 @@ obj-y := \
6 cache.o cacheinit.o entry.o \ 6 cache.o cacheinit.o entry.o \
7 interrupt.o lock.o irqpanic.o arch_checks.o ints-priority.o 7 interrupt.o lock.o irqpanic.o arch_checks.o ints-priority.o
8 8
9obj-$(CONFIG_PM) += pm.o dpmc.o 9obj-$(CONFIG_PM) += pm.o dpmc_modes.o
10obj-$(CONFIG_CPU_FREQ) += cpufreq.o 10obj-$(CONFIG_CPU_FREQ) += cpufreq.o
11obj-$(CONFIG_CPU_VOLTAGE) += dpmc.o
diff --git a/arch/blackfin/mach-common/cpufreq.c b/arch/blackfin/mach-common/cpufreq.c
index ed81e00d20e1..75cdad291e88 100644
--- a/arch/blackfin/mach-common/cpufreq.c
+++ b/arch/blackfin/mach-common/cpufreq.c
@@ -62,6 +62,14 @@ static struct bfin_dpm_state {
62 unsigned int tscale; /* change the divider on the core timer interrupt */ 62 unsigned int tscale; /* change the divider on the core timer interrupt */
63} dpm_state_table[3]; 63} dpm_state_table[3];
64 64
65/*
66 normalized to maximum frequncy offset for CYCLES,
67 used in time-ts cycles clock source, but could be used
68 somewhere also.
69 */
70unsigned long long __bfin_cycles_off;
71unsigned int __bfin_cycles_mod;
72
65/**************************************************************************/ 73/**************************************************************************/
66 74
67static unsigned int bfin_getfreq(unsigned int cpu) 75static unsigned int bfin_getfreq(unsigned int cpu)
@@ -80,6 +88,7 @@ static int bfin_target(struct cpufreq_policy *policy,
80 unsigned int index, plldiv, tscale; 88 unsigned int index, plldiv, tscale;
81 unsigned long flags, cclk_hz; 89 unsigned long flags, cclk_hz;
82 struct cpufreq_freqs freqs; 90 struct cpufreq_freqs freqs;
91 cycles_t cycles;
83 92
84 if (cpufreq_frequency_table_target(policy, bfin_freq_table, 93 if (cpufreq_frequency_table_target(policy, bfin_freq_table,
85 target_freq, relation, &index)) 94 target_freq, relation, &index))
@@ -101,8 +110,14 @@ static int bfin_target(struct cpufreq_policy *policy,
101 bfin_write_PLL_DIV(plldiv); 110 bfin_write_PLL_DIV(plldiv);
102 /* we have to adjust the core timer, because it is using cclk */ 111 /* we have to adjust the core timer, because it is using cclk */
103 bfin_write_TSCALE(tscale); 112 bfin_write_TSCALE(tscale);
113 cycles = get_cycles();
104 SSYNC(); 114 SSYNC();
115 cycles += 10; /* ~10 cycles we loose after get_cycles() */
116 __bfin_cycles_off += (cycles << __bfin_cycles_mod) - (cycles << index);
117 __bfin_cycles_mod = index;
105 local_irq_restore(flags); 118 local_irq_restore(flags);
119 /* TODO: just test case for cycles clock source, remove later */
120 pr_debug("cpufreq: done\n");
106 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); 121 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
107 122
108 return 0; 123 return 0;
@@ -119,22 +134,13 @@ static int __init __bfin_cpu_init(struct cpufreq_policy *policy)
119 unsigned long cclk, sclk, csel, min_cclk; 134 unsigned long cclk, sclk, csel, min_cclk;
120 int index; 135 int index;
121 136
122#ifdef CONFIG_CYCLES_CLOCKSOURCE
123/*
124 * Clocksource CYCLES is still CONTINUOUS but not longer MONOTONIC in case we enable
125 * CPU frequency scaling, since CYCLES runs off Core Clock.
126 */
127 printk(KERN_WARNING "CPU frequency scaling not supported: Clocksource not suitable\n"
128 return -ENODEV;
129#endif
130
131 if (policy->cpu != 0) 137 if (policy->cpu != 0)
132 return -EINVAL; 138 return -EINVAL;
133 139
134 cclk = get_cclk(); 140 cclk = get_cclk();
135 sclk = get_sclk(); 141 sclk = get_sclk();
136 142
137#if ANOMALY_05000273 143#if ANOMALY_05000273 || (!defined(CONFIG_BF54x) && defined(CONFIG_BFIN_DCACHE))
138 min_cclk = sclk * 2; 144 min_cclk = sclk * 2;
139#else 145#else
140 min_cclk = sclk; 146 min_cclk = sclk;
diff --git a/arch/blackfin/mach-common/dpmc.c b/arch/blackfin/mach-common/dpmc.c
new file mode 100644
index 000000000000..02c7efd1bcf4
--- /dev/null
+++ b/arch/blackfin/mach-common/dpmc.c
@@ -0,0 +1,137 @@
1/*
2 * Copyright 2008 Analog Devices Inc.
3 *
4 * Licensed under the GPL-2 or later.
5 */
6
7#include <linux/cdev.h>
8#include <linux/device.h>
9#include <linux/errno.h>
10#include <linux/fs.h>
11#include <linux/kernel.h>
12#include <linux/module.h>
13#include <linux/platform_device.h>
14#include <linux/types.h>
15#include <linux/cpufreq.h>
16
17#include <asm/delay.h>
18#include <asm/dpmc.h>
19
20#define DRIVER_NAME "bfin dpmc"
21
22#define dprintk(msg...) \
23 cpufreq_debug_printk(CPUFREQ_DEBUG_DRIVER, DRIVER_NAME, msg)
24
25struct bfin_dpmc_platform_data *pdata;
26
27/**
28 * bfin_set_vlev - Update VLEV field in VR_CTL Reg.
29 * Avoid BYPASS sequence
30 */
31static void bfin_set_vlev(unsigned int vlev)
32{
33 unsigned pll_lcnt;
34
35 pll_lcnt = bfin_read_PLL_LOCKCNT();
36
37 bfin_write_PLL_LOCKCNT(1);
38 bfin_write_VR_CTL((bfin_read_VR_CTL() & ~VLEV) | vlev);
39 bfin_write_PLL_LOCKCNT(pll_lcnt);
40}
41
42/**
43 * bfin_get_vlev - Get CPU specific VLEV from platform device data
44 */
45static unsigned int bfin_get_vlev(unsigned int freq)
46{
47 int i;
48
49 if (!pdata)
50 goto err_out;
51
52 freq >>= 16;
53
54 for (i = 0; i < pdata->tabsize; i++)
55 if (freq <= (pdata->tuple_tab[i] & 0xFFFF))
56 return pdata->tuple_tab[i] >> 16;
57
58err_out:
59 printk(KERN_WARNING "DPMC: No suitable CCLK VDDINT voltage pair found\n");
60 return VLEV_120;
61}
62
63#ifdef CONFIG_CPU_FREQ
64static int
65vreg_cpufreq_notifier(struct notifier_block *nb, unsigned long val, void *data)
66{
67 struct cpufreq_freqs *freq = data;
68
69 if (val == CPUFREQ_PRECHANGE && freq->old < freq->new) {
70 bfin_set_vlev(bfin_get_vlev(freq->new));
71 udelay(pdata->vr_settling_time); /* Wait until Volatge settled */
72
73 } else if (val == CPUFREQ_POSTCHANGE && freq->old > freq->new)
74 bfin_set_vlev(bfin_get_vlev(freq->new));
75
76 return 0;
77}
78
79static struct notifier_block vreg_cpufreq_notifier_block = {
80 .notifier_call = vreg_cpufreq_notifier
81};
82#endif /* CONFIG_CPU_FREQ */
83
84/**
85 * bfin_dpmc_probe -
86 *
87 */
88static int __devinit bfin_dpmc_probe(struct platform_device *pdev)
89{
90 if (pdev->dev.platform_data)
91 pdata = pdev->dev.platform_data;
92 else
93 return -EINVAL;
94
95 return cpufreq_register_notifier(&vreg_cpufreq_notifier_block,
96 CPUFREQ_TRANSITION_NOTIFIER);
97}
98
99/**
100 * bfin_dpmc_remove -
101 */
102static int __devexit bfin_dpmc_remove(struct platform_device *pdev)
103{
104 pdata = NULL;
105 return cpufreq_unregister_notifier(&vreg_cpufreq_notifier_block,
106 CPUFREQ_TRANSITION_NOTIFIER);
107}
108
109struct platform_driver bfin_dpmc_device_driver = {
110 .probe = bfin_dpmc_probe,
111 .remove = __devexit_p(bfin_dpmc_remove),
112 .driver = {
113 .name = DRIVER_NAME,
114 }
115};
116
117/**
118 * bfin_dpmc_init - Init driver
119 */
120static int __init bfin_dpmc_init(void)
121{
122 return platform_driver_register(&bfin_dpmc_device_driver);
123}
124module_init(bfin_dpmc_init);
125
126/**
127 * bfin_dpmc_exit - break down driver
128 */
129static void __exit bfin_dpmc_exit(void)
130{
131 platform_driver_unregister(&bfin_dpmc_device_driver);
132}
133module_exit(bfin_dpmc_exit);
134
135MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>");
136MODULE_DESCRIPTION("cpu power management driver for Blackfin");
137MODULE_LICENSE("GPL");
diff --git a/arch/blackfin/mach-common/dpmc.S b/arch/blackfin/mach-common/dpmc_modes.S
index 9d45aa3265b1..b7981d31c392 100644
--- a/arch/blackfin/mach-common/dpmc.S
+++ b/arch/blackfin/mach-common/dpmc_modes.S
@@ -1,30 +1,7 @@
1/* 1/*
2 * File: arch/blackfin/mach-common/dpmc.S 2 * Copyright 2004-2008 Analog Devices Inc.
3 * Based on:
4 * Author: LG Soft India
5 * 3 *
6 * Created: ? 4 * Licensed under the GPL-2 or later.
7 * Description: Watchdog Timer APIs
8 *
9 * Modified:
10 * Copyright 2004-2006 Analog Devices Inc.
11 *
12 * Bugs: Enter bugs at http://blackfin.uclinux.org/
13 *
14 * This program is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation; either version 2 of the License, or
17 * (at your option) any later version.
18 *
19 * This program is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public License
25 * along with this program; if not, see the file COPYING, or write
26 * to the Free Software Foundation, Inc.,
27 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
28 */ 5 */
29 6
30#include <linux/linkage.h> 7#include <linux/linkage.h>
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S
index f2fb87e9a46e..038f70e0be65 100644
--- a/arch/blackfin/mach-common/entry.S
+++ b/arch/blackfin/mach-common/entry.S
@@ -151,26 +151,62 @@ ENTRY(_ex_soft_bp)
151ENDPROC(_ex_soft_bp) 151ENDPROC(_ex_soft_bp)
152 152
153ENTRY(_ex_single_step) 153ENTRY(_ex_single_step)
154 /* If we just returned from an interrupt, the single step event is
155 for the RTI instruction. */
154 r7 = retx; 156 r7 = retx;
155 r6 = reti; 157 r6 = reti;
156 cc = r7 == r6; 158 cc = r7 == r6;
157 if cc jump _bfin_return_from_exception 159 if cc jump _bfin_return_from_exception;
158 r7 = syscfg;
159 bitclr (r7, 0);
160 syscfg = R7;
161 160
161 /* If we were in user mode, do the single step normally. */
162 p5.l = lo(IPEND); 162 p5.l = lo(IPEND);
163 p5.h = hi(IPEND); 163 p5.h = hi(IPEND);
164 r6 = [p5]; 164 r6 = [p5];
165 cc = bittst(r6, 5); 165 r7 = 0xffe0 (z);
166 if !cc jump _ex_trap_c; 166 r7 = r7 & r6;
167 p4.l = lo(EVT5); 167 cc = r7 == 0;
168 p4.h = hi(EVT5); 168 if !cc jump 1f;
169 r6.h = _exception_to_level5; 169
170 r6.l = _exception_to_level5; 170 /* Single stepping only a single instruction, so clear the trace
171 r7 = [p4]; 171 * bit here. */
172 cc = r6 == r7; 172 r7 = syscfg;
173 if !cc jump _ex_trap_c; 173 bitclr (r7, 0);
174 syscfg = R7;
175 jump _ex_trap_c;
176
1771:
178 /*
179 * We were in an interrupt handler. By convention, all of them save
180 * SYSCFG with their first instruction, so by checking whether our
181 * RETX points at the entry point, we can determine whether to allow
182 * a single step, or whether to clear SYSCFG.
183 *
184 * First, find out the interrupt level and the event vector for it.
185 */
186 p5.l = lo(EVT0);
187 p5.h = hi(EVT0);
188 p5 += -4;
1892:
190 r7 = rot r7 by -1;
191 p5 += 4;
192 if !cc jump 2b;
193
194 /* What we actually do is test for the _second_ instruction in the
195 * IRQ handler. That way, if there are insns following the restore
196 * of SYSCFG after leaving the handler, we will not turn off SYSCFG
197 * for them. */
198
199 r7 = [p5];
200 r7 += 2;
201 r6 = RETX;
202 cc = R7 == R6;
203 if !cc jump _bfin_return_from_exception;
204
205 r7 = syscfg;
206 bitclr (r7, 0);
207 syscfg = R7;
208
209 /* Fall through to _bfin_return_from_exception. */
174ENDPROC(_ex_single_step) 210ENDPROC(_ex_single_step)
175 211
176ENTRY(_bfin_return_from_exception) 212ENTRY(_bfin_return_from_exception)
@@ -234,20 +270,26 @@ ENTRY(_ex_trap_c)
234 p5.l = _saved_icplb_fault_addr; 270 p5.l = _saved_icplb_fault_addr;
235 [p5] = r7; 271 [p5] = r7;
236 272
237 p4.l = __retx; 273 p4.l = _excpt_saved_stuff;
238 p4.h = __retx; 274 p4.h = _excpt_saved_stuff;
275
239 r6 = retx; 276 r6 = retx;
240 [p4] = r6; 277 [p4] = r6;
241 p4.l = lo(SAFE_USER_INSTRUCTION); 278
242 p4.h = hi(SAFE_USER_INSTRUCTION); 279 r6 = SYSCFG;
243 retx = p4; 280 [p4 + 4] = r6;
281 BITCLR(r6, 0);
282 SYSCFG = r6;
244 283
245 /* Disable all interrupts, but make sure level 5 is enabled so 284 /* Disable all interrupts, but make sure level 5 is enabled so
246 * we can switch to that level. Save the old mask. */ 285 * we can switch to that level. Save the old mask. */
247 cli r6; 286 cli r6;
248 p4.l = _excpt_saved_imask; 287 [p4 + 8] = r6;
249 p4.h = _excpt_saved_imask; 288
250 [p4] = r6; 289 p4.l = lo(SAFE_USER_INSTRUCTION);
290 p4.h = hi(SAFE_USER_INSTRUCTION);
291 retx = p4;
292
251 r6 = 0x3f; 293 r6 = 0x3f;
252 sti r6; 294 sti r6;
253 295
@@ -295,6 +337,11 @@ ENTRY(_double_fault)
295 */ 337 */
296 SAVE_ALL_SYS 338 SAVE_ALL_SYS
297 339
340 /* The dumping functions expect the return address in the RETI
341 * slot. */
342 r6 = retx;
343 [sp + PT_PC] = r6;
344
298 r0 = sp; /* stack frame pt_regs pointer argument ==> r0 */ 345 r0 = sp; /* stack frame pt_regs pointer argument ==> r0 */
299 SP += -12; 346 SP += -12;
300 call _double_fault_c; 347 call _double_fault_c;
@@ -307,16 +354,17 @@ ENDPROC(_double_fault)
307ENTRY(_exception_to_level5) 354ENTRY(_exception_to_level5)
308 SAVE_ALL_SYS 355 SAVE_ALL_SYS
309 356
310 p4.l = __retx; 357 p4.l = _excpt_saved_stuff;
311 p4.h = __retx; 358 p4.h = _excpt_saved_stuff;
312 r6 = [p4]; 359 r6 = [p4];
313 [sp + PT_PC] = r6; 360 [sp + PT_PC] = r6;
314 361
362 r6 = [p4 + 4];
363 [sp + PT_SYSCFG] = r6;
364
315 /* Restore interrupt mask. We haven't pushed RETI, so this 365 /* Restore interrupt mask. We haven't pushed RETI, so this
316 * doesn't enable interrupts until we return from this handler. */ 366 * doesn't enable interrupts until we return from this handler. */
317 p4.l = _excpt_saved_imask; 367 r6 = [p4 + 8];
318 p4.h = _excpt_saved_imask;
319 r6 = [p4];
320 sti r6; 368 sti r6;
321 369
322 /* Restore the hardware error vector. */ 370 /* Restore the hardware error vector. */
@@ -1344,7 +1392,14 @@ ENTRY(_sys_call_table)
1344 .rept NR_syscalls-(.-_sys_call_table)/4 1392 .rept NR_syscalls-(.-_sys_call_table)/4
1345 .long _sys_ni_syscall 1393 .long _sys_ni_syscall
1346 .endr 1394 .endr
1347_excpt_saved_imask: 1395
1396 /*
1397 * Used to save the real RETX, IMASK and SYSCFG when temporarily
1398 * storing safe values across the transition from exception to IRQ5.
1399 */
1400_excpt_saved_stuff:
1401 .long 0;
1402 .long 0;
1348 .long 0; 1403 .long 0;
1349 1404
1350_exception_stack: 1405_exception_stack:
@@ -1358,7 +1413,3 @@ _exception_stack_top:
1358_last_cplb_fault_retx: 1413_last_cplb_fault_retx:
1359 .long 0; 1414 .long 0;
1360#endif 1415#endif
1361 /* Used to save the real RETX when temporarily storing a safe
1362 * return address. */
1363__retx:
1364 .long 0;