avr32: remove support for AVR32 architecture
authorHans-Christian Noren Egtvedt <egtvedt@samfundet.no>
Sun, 26 Feb 2017 11:56:39 +0000 (12:56 +0100)
committerHans-Christian Noren Egtvedt <egtvedt@samfundet.no>
Mon, 1 May 2017 07:27:15 +0000 (09:27 +0200)
This patch drops support for AVR32 architecture from the Linux kernel.

The AVR32 architecture is not keeping up with the development of the
kernel, and since it shares so much of the drivers with Atmel ARM SoC,
it is starting to hinder these drivers to develop swiftly.

Also, all AVR32 AP7 SoC processors are end of lifed from Atmel (now
Microchip).

Finally, the GCC toolchain is stuck at version 4.2.x, and has not
received any patches since the last release from Atmel;
4.2.4-atmel.1.1.3.avr32linux.1. When building kernel v4.10, this
toolchain is no longer able to properly link the network stack.

Haavard and I have came to the conclusion that we feel keeping AVR32 on
life support offers more obstacles for Atmel ARMs, than it gives joy to
AVR32 users. I also suspect there are very few AVR32 users left today,
if anybody at all.

Signed-off-by: Hans-Christian Noren Egtvedt <egtvedt@samfundet.no>
Signed-off-by: HÃ¥vard Skinnemoen <hskinnemoen@gmail.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Acked-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>
226 files changed:
CREDITS
MAINTAINERS
arch/avr32/Kconfig [deleted file]
arch/avr32/Kconfig.debug [deleted file]
arch/avr32/Makefile [deleted file]
arch/avr32/boards/atngw100/Kconfig [deleted file]
arch/avr32/boards/atngw100/Kconfig_mrmt [deleted file]
arch/avr32/boards/atngw100/Makefile [deleted file]
arch/avr32/boards/atngw100/evklcd10x.c [deleted file]
arch/avr32/boards/atngw100/flash.c [deleted file]
arch/avr32/boards/atngw100/mrmt.c [deleted file]
arch/avr32/boards/atngw100/setup.c [deleted file]
arch/avr32/boards/atstk1000/Kconfig [deleted file]
arch/avr32/boards/atstk1000/Makefile [deleted file]
arch/avr32/boards/atstk1000/atstk1000.h [deleted file]
arch/avr32/boards/atstk1000/atstk1002.c [deleted file]
arch/avr32/boards/atstk1000/atstk1003.c [deleted file]
arch/avr32/boards/atstk1000/atstk1004.c [deleted file]
arch/avr32/boards/atstk1000/flash.c [deleted file]
arch/avr32/boards/atstk1000/setup.c [deleted file]
arch/avr32/boards/favr-32/Kconfig [deleted file]
arch/avr32/boards/favr-32/Makefile [deleted file]
arch/avr32/boards/favr-32/flash.c [deleted file]
arch/avr32/boards/favr-32/setup.c [deleted file]
arch/avr32/boards/hammerhead/Kconfig [deleted file]
arch/avr32/boards/hammerhead/Makefile [deleted file]
arch/avr32/boards/hammerhead/flash.c [deleted file]
arch/avr32/boards/hammerhead/flash.h [deleted file]
arch/avr32/boards/hammerhead/setup.c [deleted file]
arch/avr32/boards/merisc/Kconfig [deleted file]
arch/avr32/boards/merisc/Makefile [deleted file]
arch/avr32/boards/merisc/display.c [deleted file]
arch/avr32/boards/merisc/flash.c [deleted file]
arch/avr32/boards/merisc/merisc.h [deleted file]
arch/avr32/boards/merisc/merisc_sysfs.c [deleted file]
arch/avr32/boards/merisc/setup.c [deleted file]
arch/avr32/boards/mimc200/Makefile [deleted file]
arch/avr32/boards/mimc200/flash.c [deleted file]
arch/avr32/boards/mimc200/setup.c [deleted file]
arch/avr32/boot/images/.gitignore [deleted file]
arch/avr32/boot/images/Makefile [deleted file]
arch/avr32/boot/u-boot/Makefile [deleted file]
arch/avr32/boot/u-boot/empty.S [deleted file]
arch/avr32/boot/u-boot/head.S [deleted file]
arch/avr32/configs/atngw100_defconfig [deleted file]
arch/avr32/configs/atngw100_evklcd100_defconfig [deleted file]
arch/avr32/configs/atngw100_evklcd101_defconfig [deleted file]
arch/avr32/configs/atngw100_mrmt_defconfig [deleted file]
arch/avr32/configs/atngw100mkii_defconfig [deleted file]
arch/avr32/configs/atngw100mkii_evklcd100_defconfig [deleted file]
arch/avr32/configs/atngw100mkii_evklcd101_defconfig [deleted file]
arch/avr32/configs/atstk1002_defconfig [deleted file]
arch/avr32/configs/atstk1003_defconfig [deleted file]
arch/avr32/configs/atstk1004_defconfig [deleted file]
arch/avr32/configs/atstk1006_defconfig [deleted file]
arch/avr32/configs/favr-32_defconfig [deleted file]
arch/avr32/configs/hammerhead_defconfig [deleted file]
arch/avr32/configs/merisc_defconfig [deleted file]
arch/avr32/configs/mimc200_defconfig [deleted file]
arch/avr32/include/asm/Kbuild [deleted file]
arch/avr32/include/asm/addrspace.h [deleted file]
arch/avr32/include/asm/asm-offsets.h [deleted file]
arch/avr32/include/asm/asm.h [deleted file]
arch/avr32/include/asm/atomic.h [deleted file]
arch/avr32/include/asm/barrier.h [deleted file]
arch/avr32/include/asm/bitops.h [deleted file]
arch/avr32/include/asm/bug.h [deleted file]
arch/avr32/include/asm/bugs.h [deleted file]
arch/avr32/include/asm/cache.h [deleted file]
arch/avr32/include/asm/cacheflush.h [deleted file]
arch/avr32/include/asm/checksum.h [deleted file]
arch/avr32/include/asm/cmpxchg.h [deleted file]
arch/avr32/include/asm/current.h [deleted file]
arch/avr32/include/asm/dma-mapping.h [deleted file]
arch/avr32/include/asm/dma.h [deleted file]
arch/avr32/include/asm/elf.h [deleted file]
arch/avr32/include/asm/fb.h [deleted file]
arch/avr32/include/asm/ftrace.h [deleted file]
arch/avr32/include/asm/gpio.h [deleted file]
arch/avr32/include/asm/hardirq.h [deleted file]
arch/avr32/include/asm/hw_irq.h [deleted file]
arch/avr32/include/asm/io.h [deleted file]
arch/avr32/include/asm/irq.h [deleted file]
arch/avr32/include/asm/irqflags.h [deleted file]
arch/avr32/include/asm/kdebug.h [deleted file]
arch/avr32/include/asm/kmap_types.h [deleted file]
arch/avr32/include/asm/kprobes.h [deleted file]
arch/avr32/include/asm/linkage.h [deleted file]
arch/avr32/include/asm/mmu.h [deleted file]
arch/avr32/include/asm/mmu_context.h [deleted file]
arch/avr32/include/asm/module.h [deleted file]
arch/avr32/include/asm/ocd.h [deleted file]
arch/avr32/include/asm/page.h [deleted file]
arch/avr32/include/asm/pci.h [deleted file]
arch/avr32/include/asm/pgalloc.h [deleted file]
arch/avr32/include/asm/pgtable-2level.h [deleted file]
arch/avr32/include/asm/pgtable.h [deleted file]
arch/avr32/include/asm/processor.h [deleted file]
arch/avr32/include/asm/ptrace.h [deleted file]
arch/avr32/include/asm/serial.h [deleted file]
arch/avr32/include/asm/setup.h [deleted file]
arch/avr32/include/asm/shmparam.h [deleted file]
arch/avr32/include/asm/signal.h [deleted file]
arch/avr32/include/asm/string.h [deleted file]
arch/avr32/include/asm/switch_to.h [deleted file]
arch/avr32/include/asm/syscalls.h [deleted file]
arch/avr32/include/asm/sysreg.h [deleted file]
arch/avr32/include/asm/termios.h [deleted file]
arch/avr32/include/asm/thread_info.h [deleted file]
arch/avr32/include/asm/timex.h [deleted file]
arch/avr32/include/asm/tlb.h [deleted file]
arch/avr32/include/asm/tlbflush.h [deleted file]
arch/avr32/include/asm/traps.h [deleted file]
arch/avr32/include/asm/types.h [deleted file]
arch/avr32/include/asm/uaccess.h [deleted file]
arch/avr32/include/asm/ucontext.h [deleted file]
arch/avr32/include/asm/unaligned.h [deleted file]
arch/avr32/include/asm/unistd.h [deleted file]
arch/avr32/include/asm/user.h [deleted file]
arch/avr32/include/uapi/asm/Kbuild [deleted file]
arch/avr32/include/uapi/asm/auxvec.h [deleted file]
arch/avr32/include/uapi/asm/byteorder.h [deleted file]
arch/avr32/include/uapi/asm/cachectl.h [deleted file]
arch/avr32/include/uapi/asm/msgbuf.h [deleted file]
arch/avr32/include/uapi/asm/posix_types.h [deleted file]
arch/avr32/include/uapi/asm/ptrace.h [deleted file]
arch/avr32/include/uapi/asm/sembuf.h [deleted file]
arch/avr32/include/uapi/asm/setup.h [deleted file]
arch/avr32/include/uapi/asm/shmbuf.h [deleted file]
arch/avr32/include/uapi/asm/sigcontext.h [deleted file]
arch/avr32/include/uapi/asm/signal.h [deleted file]
arch/avr32/include/uapi/asm/socket.h [deleted file]
arch/avr32/include/uapi/asm/sockios.h [deleted file]
arch/avr32/include/uapi/asm/stat.h [deleted file]
arch/avr32/include/uapi/asm/swab.h [deleted file]
arch/avr32/include/uapi/asm/termbits.h [deleted file]
arch/avr32/include/uapi/asm/termios.h [deleted file]
arch/avr32/include/uapi/asm/types.h [deleted file]
arch/avr32/include/uapi/asm/unistd.h [deleted file]
arch/avr32/kernel/.gitignore [deleted file]
arch/avr32/kernel/Makefile [deleted file]
arch/avr32/kernel/asm-offsets.c [deleted file]
arch/avr32/kernel/avr32_ksyms.c [deleted file]
arch/avr32/kernel/cpu.c [deleted file]
arch/avr32/kernel/entry-avr32b.S [deleted file]
arch/avr32/kernel/head.S [deleted file]
arch/avr32/kernel/irq.c [deleted file]
arch/avr32/kernel/kprobes.c [deleted file]
arch/avr32/kernel/module.c [deleted file]
arch/avr32/kernel/nmi_debug.c [deleted file]
arch/avr32/kernel/ocd.c [deleted file]
arch/avr32/kernel/process.c [deleted file]
arch/avr32/kernel/ptrace.c [deleted file]
arch/avr32/kernel/setup.c [deleted file]
arch/avr32/kernel/signal.c [deleted file]
arch/avr32/kernel/stacktrace.c [deleted file]
arch/avr32/kernel/switch_to.S [deleted file]
arch/avr32/kernel/syscall-stubs.S [deleted file]
arch/avr32/kernel/syscall_table.S [deleted file]
arch/avr32/kernel/time.c [deleted file]
arch/avr32/kernel/traps.c [deleted file]
arch/avr32/kernel/vmlinux.lds.S [deleted file]
arch/avr32/lib/Makefile [deleted file]
arch/avr32/lib/__avr32_asr64.S [deleted file]
arch/avr32/lib/__avr32_lsl64.S [deleted file]
arch/avr32/lib/__avr32_lsr64.S [deleted file]
arch/avr32/lib/clear_user.S [deleted file]
arch/avr32/lib/copy_user.S [deleted file]
arch/avr32/lib/csum_partial.S [deleted file]
arch/avr32/lib/csum_partial_copy_generic.S [deleted file]
arch/avr32/lib/delay.c [deleted file]
arch/avr32/lib/findbit.S [deleted file]
arch/avr32/lib/io-readsb.S [deleted file]
arch/avr32/lib/io-readsl.S [deleted file]
arch/avr32/lib/io-readsw.S [deleted file]
arch/avr32/lib/io-writesb.S [deleted file]
arch/avr32/lib/io-writesl.S [deleted file]
arch/avr32/lib/io-writesw.S [deleted file]
arch/avr32/lib/memcpy.S [deleted file]
arch/avr32/lib/memset.S [deleted file]
arch/avr32/lib/strncpy_from_user.S [deleted file]
arch/avr32/lib/strnlen_user.S [deleted file]
arch/avr32/mach-at32ap/Kconfig [deleted file]
arch/avr32/mach-at32ap/Makefile [deleted file]
arch/avr32/mach-at32ap/at32ap700x.c [deleted file]
arch/avr32/mach-at32ap/clock.c [deleted file]
arch/avr32/mach-at32ap/clock.h [deleted file]
arch/avr32/mach-at32ap/extint.c [deleted file]
arch/avr32/mach-at32ap/hmatrix.c [deleted file]
arch/avr32/mach-at32ap/hsmc.c [deleted file]
arch/avr32/mach-at32ap/hsmc.h [deleted file]
arch/avr32/mach-at32ap/include/mach/at32ap700x.h [deleted file]
arch/avr32/mach-at32ap/include/mach/board.h [deleted file]
arch/avr32/mach-at32ap/include/mach/chip.h [deleted file]
arch/avr32/mach-at32ap/include/mach/cpu.h [deleted file]
arch/avr32/mach-at32ap/include/mach/gpio.h [deleted file]
arch/avr32/mach-at32ap/include/mach/hmatrix.h [deleted file]
arch/avr32/mach-at32ap/include/mach/init.h [deleted file]
arch/avr32/mach-at32ap/include/mach/io.h [deleted file]
arch/avr32/mach-at32ap/include/mach/irq.h [deleted file]
arch/avr32/mach-at32ap/include/mach/pm.h [deleted file]
arch/avr32/mach-at32ap/include/mach/portmux.h [deleted file]
arch/avr32/mach-at32ap/include/mach/smc.h [deleted file]
arch/avr32/mach-at32ap/include/mach/sram.h [deleted file]
arch/avr32/mach-at32ap/intc.c [deleted file]
arch/avr32/mach-at32ap/intc.h [deleted file]
arch/avr32/mach-at32ap/pdc.c [deleted file]
arch/avr32/mach-at32ap/pio.c [deleted file]
arch/avr32/mach-at32ap/pio.h [deleted file]
arch/avr32/mach-at32ap/pm-at32ap700x.S [deleted file]
arch/avr32/mach-at32ap/pm.c [deleted file]
arch/avr32/mach-at32ap/pm.h [deleted file]
arch/avr32/mach-at32ap/sdramc.h [deleted file]
arch/avr32/mm/Makefile [deleted file]
arch/avr32/mm/cache.c [deleted file]
arch/avr32/mm/clear_page.S [deleted file]
arch/avr32/mm/copy_page.S [deleted file]
arch/avr32/mm/dma-coherent.c [deleted file]
arch/avr32/mm/fault.c [deleted file]
arch/avr32/mm/init.c [deleted file]
arch/avr32/mm/ioremap.c [deleted file]
arch/avr32/mm/tlb.c [deleted file]
arch/avr32/oprofile/Makefile [deleted file]
arch/avr32/oprofile/backtrace.c [deleted file]
arch/avr32/oprofile/op_model_avr32.c [deleted file]
include/uapi/linux/elf-em.h

diff --git a/CREDITS b/CREDITS
index c5626bf06264e41e136fbe0c0420881e72de0ce2..5d09c26d69cdc0f4709cf48f5f3ff6195d53e85d 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -1034,6 +1034,10 @@ S: 2037 Walnut #6
 S: Boulder, Colorado 80302
 S: USA
 
+N: Hans-Christian Noren Egtvedt
+E: egtvedt@samfundet.no
+D: AVR32 architecture maintainer.
+
 N: Heiko Eißfeldt
 E: heiko@colossus.escape.de heiko@unifix.de
 D: verify_area stuff, generic SCSI fixes
@@ -3398,6 +3402,10 @@ S: Suite 101
 S: Markham, Ontario L3R 2Z6
 S: Canada
 
+N: Haavard Skinnemoen
+M: Haavard Skinnemoen <hskinnemoen@gmail.com>
+D: AVR32 architecture port to Linux and maintainer.
+
 N: Rick Sladkey
 E: jrs@world.std.com
 D: utility hacker: Emacs, NFS server, mount, kmem-ps, UPS debugger, strace, GDB
index 38d3e4ed7208bb3969abcbfc76c4e68fd90d12f5..91c5fdbe56740428c3630059cdeedd298e0808f0 100644 (file)
@@ -2327,21 +2327,6 @@ S:       Maintained
 F:     drivers/auxdisplay/
 F:     include/linux/cfag12864b.h
 
-AVR32 ARCHITECTURE
-M:     Haavard Skinnemoen <hskinnemoen@gmail.com>
-M:     Hans-Christian Egtvedt <egtvedt@samfundet.no>
-W:     http://www.atmel.com/products/AVR32/
-W:     http://mirror.egtvedt.no/avr32linux.org/
-W:     http://avrfreaks.net/
-S:     Maintained
-F:     arch/avr32/
-
-AVR32/AT32AP MACHINE SUPPORT
-M:     Haavard Skinnemoen <hskinnemoen@gmail.com>
-M:     Hans-Christian Egtvedt <egtvedt@samfundet.no>
-S:     Maintained
-F:     arch/avr32/mach-at32ap/
-
 AX.25 NETWORK LAYER
 M:     Ralf Baechle <ralf@linux-mips.org>
 L:     linux-hams@vger.kernel.org
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
deleted file mode 100644 (file)
index 7e75d45..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-config AVR32
-       def_bool y
-       # With EXPERT=n, we get lots of stuff automatically selected
-       # that we usually don't need on AVR32.
-       select EXPERT
-       select HAVE_CLK
-       select HAVE_EXIT_THREAD
-       select HAVE_OPROFILE
-       select HAVE_KPROBES
-       select VIRT_TO_BUS
-       select GENERIC_IRQ_PROBE
-       select GENERIC_ATOMIC64
-       select HARDIRQS_SW_RESEND
-       select GENERIC_IRQ_SHOW
-       select ARCH_HAVE_CUSTOM_GPIO_H
-       select ARCH_WANT_IPC_PARSE_VERSION
-       select ARCH_HAVE_NMI_SAFE_CMPXCHG
-       select GENERIC_CLOCKEVENTS
-       select HAVE_MOD_ARCH_SPECIFIC
-       select MODULES_USE_ELF_RELA
-       select HAVE_NMI
-       help
-         AVR32 is a high-performance 32-bit RISC microprocessor core,
-         designed for cost-sensitive embedded applications, with particular
-         emphasis on low power consumption and high code density.
-
-         There is an AVR32 Linux project with a web page at
-         http://avr32linux.org/.
-
-config STACKTRACE_SUPPORT
-       def_bool y
-
-config LOCKDEP_SUPPORT
-       def_bool y
-
-config TRACE_IRQFLAGS_SUPPORT
-       def_bool y
-
-config RWSEM_GENERIC_SPINLOCK
-       def_bool y
-
-config RWSEM_XCHGADD_ALGORITHM
-       def_bool n
-
-config ARCH_HAS_ILOG2_U32
-       def_bool n
-
-config ARCH_HAS_ILOG2_U64
-       def_bool n
-
-config GENERIC_HWEIGHT
-       def_bool y
-
-config GENERIC_CALIBRATE_DELAY
-       def_bool y
-
-config GENERIC_BUG
-       def_bool y
-       depends on BUG
-
-source "init/Kconfig"
-
-source "kernel/Kconfig.freezer"
-
-menu "System Type and features"
-
-config SUBARCH_AVR32B
-       bool
-config MMU
-       bool
-config PERFORMANCE_COUNTERS
-       bool
-
-config PLATFORM_AT32AP
-       bool
-       select SUBARCH_AVR32B
-       select MMU
-       select PERFORMANCE_COUNTERS
-       select GPIOLIB
-       select GENERIC_ALLOCATOR
-       select HAVE_FB_ATMEL
-
-#
-# CPU types
-#
-
-# AP7000 derivatives
-config CPU_AT32AP700X
-       bool
-       select PLATFORM_AT32AP
-config CPU_AT32AP7000
-       bool
-       select CPU_AT32AP700X
-config CPU_AT32AP7001
-       bool
-       select CPU_AT32AP700X
-config CPU_AT32AP7002
-       bool
-       select CPU_AT32AP700X
-
-# AP700X boards
-config BOARD_ATNGW100_COMMON
-       bool
-       select CPU_AT32AP7000
-
-choice
-       prompt "AVR32 board type"
-       default BOARD_ATSTK1000
-
-config BOARD_ATSTK1000
-       bool "ATSTK1000 evaluation board"
-
-config BOARD_ATNGW100_MKI
-       bool "ATNGW100 Network Gateway"
-       select BOARD_ATNGW100_COMMON
-
-config BOARD_ATNGW100_MKII
-       bool "ATNGW100 mkII Network Gateway"
-       select BOARD_ATNGW100_COMMON
-
-config BOARD_HAMMERHEAD
-       bool "Hammerhead board"
-       select CPU_AT32AP7000
-       select USB_ARCH_HAS_HCD
-       help
-         The Hammerhead platform is built around an AVR32 32-bit microcontroller from Atmel.
-         It offers versatile peripherals, such as ethernet, usb device, usb host etc.
-
-         The board also incorporates a power supply and is a Power over Ethernet (PoE) Powered
-         Device (PD).
-
-         Additionally, a Cyclone III FPGA from Altera is integrated on the board. The FPGA is
-         mapped into the 32-bit AVR memory bus. The FPGA offers two DDR2 SDRAM interfaces, which
-         will cover even the most exceptional need of memory bandwidth. Together with the onboard
-         video decoder the board is ready for video processing.
-
-         For more information see: http://www.miromico.ch/index.php/hammerhead.html 
-
-config BOARD_FAVR_32
-       bool "Favr-32 LCD-board"
-       select CPU_AT32AP7000
-
-config BOARD_MERISC
-       bool "Merisc board"
-       select CPU_AT32AP7000
-       help
-         Merisc is the family name for a range of AVR32-based boards.
-
-         The boards are designed to be used in a man-machine
-         interfacing environment, utilizing a touch-based graphical
-         user interface. They host a vast range of I/O peripherals as
-         well as a large SDRAM & Flash memory bank.
-
-         For more information see: http://www.martinsson.se/merisc
-
-config BOARD_MIMC200
-       bool "MIMC200 CPU board"
-       select CPU_AT32AP7000
-endchoice
-
-source "arch/avr32/boards/atstk1000/Kconfig"
-source "arch/avr32/boards/atngw100/Kconfig"
-source "arch/avr32/boards/hammerhead/Kconfig"
-source "arch/avr32/boards/favr-32/Kconfig"
-source "arch/avr32/boards/merisc/Kconfig"
-
-choice
-       prompt "Boot loader type"
-       default LOADER_U_BOOT
-
-config LOADER_U_BOOT
-       bool "U-Boot (or similar) bootloader"
-endchoice
-
-source "arch/avr32/mach-at32ap/Kconfig"
-
-config LOAD_ADDRESS
-       hex
-       default 0x10000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y
-
-config ENTRY_ADDRESS
-       hex
-       default 0x90000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y
-
-config PHYS_OFFSET
-       hex
-       default 0x10000000 if CPU_AT32AP700X=y
-
-source "kernel/Kconfig.preempt"
-
-config QUICKLIST
-       def_bool y
-
-config ARCH_HAVE_MEMORY_PRESENT
-       def_bool n
-
-config NEED_NODE_MEMMAP_SIZE
-       def_bool n
-
-config ARCH_FLATMEM_ENABLE
-       def_bool y
-
-config ARCH_DISCONTIGMEM_ENABLE
-       def_bool n
-
-config ARCH_SPARSEMEM_ENABLE
-       def_bool n
-
-config NODES_SHIFT
-       int
-       default "2"
-       depends on NEED_MULTIPLE_NODES
-
-source "mm/Kconfig"
-
-config OWNERSHIP_TRACE
-       bool "Ownership trace support"
-       default y
-       help
-         Say Y to generate an Ownership Trace message on every context switch,
-         enabling Nexus-compliant debuggers to keep track of the PID of the
-         currently executing task.
-
-config NMI_DEBUGGING
-       bool "NMI Debugging"
-       default n
-       help
-         Say Y here and pass the nmi_debug command-line parameter to
-         the kernel to turn on NMI debugging. Depending on the value
-         of the nmi_debug option, various pieces of information will
-         be dumped to the console when a Non-Maskable Interrupt
-         happens.
-
-# FPU emulation goes here
-
-source "kernel/Kconfig.hz"
-
-config CMDLINE
-       string "Default kernel command line"
-       default ""
-       help
-         If you don't have a boot loader capable of passing a command line string
-         to the kernel, you may specify one here. As a minimum, you should specify
-         the memory size and the root device (e.g., mem=8M, root=/dev/nfs).
-
-endmenu
-
-menu "Power management options"
-
-source "kernel/power/Kconfig"
-
-config ARCH_SUSPEND_POSSIBLE
-       def_bool y
-
-menu "CPU Frequency scaling"
-source "drivers/cpufreq/Kconfig"
-endmenu
-
-endmenu
-
-menu "Bus options"
-
-config PCI
-       bool
-
-source "drivers/pci/Kconfig"
-
-source "drivers/pcmcia/Kconfig"
-
-endmenu
-
-menu "Executable file formats"
-source "fs/Kconfig.binfmt"
-endmenu
-
-source "net/Kconfig"
-
-source "drivers/Kconfig"
-
-source "fs/Kconfig"
-
-source "arch/avr32/Kconfig.debug"
-
-source "security/Kconfig"
-
-source "crypto/Kconfig"
-
-source "lib/Kconfig"
diff --git a/arch/avr32/Kconfig.debug b/arch/avr32/Kconfig.debug
deleted file mode 100644 (file)
index 2283933..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-menu "Kernel hacking"
-
-config TRACE_IRQFLAGS_SUPPORT
-       bool
-       default y
-
-source "lib/Kconfig.debug"
-
-endmenu
diff --git a/arch/avr32/Makefile b/arch/avr32/Makefile
deleted file mode 100644 (file)
index dba48a5..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-#
-# This file is subject to the terms and conditions of the GNU General Public
-# License.  See the file "COPYING" in the main directory of this archive
-# for more details.
-#
-# Copyright (C) 2004-2006 Atmel Corporation.
-
-# Default target when executing plain make
-.PHONY: all
-all: uImage vmlinux.elf
-
-KBUILD_DEFCONFIG       := atstk1002_defconfig
-
-KBUILD_CFLAGS  += -pipe -fno-builtin -mno-pic -D__linux__
-KBUILD_AFLAGS  += -mrelax -mno-pic
-KBUILD_CFLAGS_MODULE += -mno-relax
-LDFLAGS_vmlinux        += --relax
-
-cpuflags-$(CONFIG_PLATFORM_AT32AP)     += -march=ap
-
-KBUILD_CFLAGS  += $(cpuflags-y)
-KBUILD_AFLAGS  += $(cpuflags-y)
-
-CHECKFLAGS     += -D__avr32__ -D__BIG_ENDIAN
-
-machine-$(CONFIG_PLATFORM_AT32AP) := at32ap
-machdirs       := $(patsubst %,arch/avr32/mach-%/, $(machine-y))
-
-KBUILD_CPPFLAGS        += $(patsubst %,-I$(srctree)/%include,$(machdirs))
-
-head-$(CONFIG_LOADER_U_BOOT)           += arch/avr32/boot/u-boot/head.o
-head-y                                 += arch/avr32/kernel/head.o
-core-y                                 += $(machdirs)
-core-$(CONFIG_BOARD_ATSTK1000)         += arch/avr32/boards/atstk1000/
-core-$(CONFIG_BOARD_ATNGW100_COMMON)   += arch/avr32/boards/atngw100/
-core-$(CONFIG_BOARD_HAMMERHEAD)                += arch/avr32/boards/hammerhead/
-core-$(CONFIG_BOARD_FAVR_32)           += arch/avr32/boards/favr-32/
-core-$(CONFIG_BOARD_MERISC)            += arch/avr32/boards/merisc/
-core-$(CONFIG_BOARD_MIMC200)           += arch/avr32/boards/mimc200/
-core-$(CONFIG_LOADER_U_BOOT)           += arch/avr32/boot/u-boot/
-core-y                                 += arch/avr32/kernel/
-core-y                                 += arch/avr32/mm/
-drivers-$(CONFIG_OPROFILE)             += arch/avr32/oprofile/
-libs-y                                 += arch/avr32/lib/
-
-BOOT_TARGETS := vmlinux.elf vmlinux.bin uImage uImage.srec
-
-.PHONY: $(BOOT_TARGETS) install
-
-boot := arch/$(ARCH)/boot/images
-
-             KBUILD_IMAGE := $(boot)/uImage
-vmlinux.elf: KBUILD_IMAGE := $(boot)/vmlinux.elf
-vmlinux.cso: KBUILD_IMAGE := $(boot)/vmlinux.cso
-uImage.srec: KBUILD_IMAGE := $(boot)/uImage.srec
-uImage:      KBUILD_IMAGE := $(boot)/uImage
-
-quiet_cmd_listing = LST     $@
-      cmd_listing = avr32-linux-objdump $(OBJDUMPFLAGS) -lS $< > $@
-quiet_cmd_disasm  = DIS     $@
-      cmd_disasm  = avr32-linux-objdump $(OBJDUMPFLAGS) -d $< > $@
-
-vmlinux.elf vmlinux.bin uImage.srec uImage vmlinux.cso: vmlinux
-       $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
-
-install: vmlinux
-       $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) $@
-
-vmlinux.s: vmlinux
-       $(call if_changed,disasm)
-
-vmlinux.lst: vmlinux
-       $(call if_changed,listing)
-
-CLEAN_FILES += vmlinux.s vmlinux.lst
-
-archclean:
-       $(Q)$(MAKE) $(clean)=$(boot)
-
-define archhelp
-  @echo '* vmlinux.elf         - ELF image with load address 0'
-  @echo '  vmlinux.cso         - PathFinder CSO image'
-  @echo '* uImage              - Create a bootable image for U-Boot'
-endef
diff --git a/arch/avr32/boards/atngw100/Kconfig b/arch/avr32/boards/atngw100/Kconfig
deleted file mode 100644 (file)
index 4e55617..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-# NGW100 customization
-
-if BOARD_ATNGW100_COMMON
-
-config BOARD_ATNGW100_MKII_LCD
-       bool "Enable ATNGW100 mkII LCD interface"
-       depends on BOARD_ATNGW100_MKII
-       help
-         This enables the LCD controller (LCDC) in the AT32AP7000. Since the
-         LCDC is multiplexed with MACB1 (LAN) Ethernet port, only one can be
-         enabled at a time.
-
-         This choice enables the LCDC and disables the MACB1 interface marked
-         LAN on the PCB.
-
-choice
-       prompt "Select an NGW100 add-on board to support"
-       default BOARD_ATNGW100_ADDON_NONE
-
-config BOARD_ATNGW100_ADDON_NONE
-       bool "None"
-
-config BOARD_ATNGW100_EVKLCD10X
-       bool "EVKLCD10X addon board"
-       depends on BOARD_ATNGW100_MKI || BOARD_ATNGW100_MKII_LCD
-       help
-         This enables support for the EVKLCD100 (QVGA) or EVKLCD101 (VGA)
-         addon board for the NGW100 and NGW100 mkII. By enabling this the LCD
-         controller and AC97 controller is added as platform devices.
-
-config BOARD_ATNGW100_MRMT
-       bool "Mediama RMT1/2 add-on board"
-       help
-         This enables support for the Mediama RMT1 or RMT2 board.
-         RMT provides LCD support, AC97 codec and other
-         optional peripherals to the Atmel NGW100.
-
-         This choice disables the detect pin and the write-protect pin for the
-         MCI platform device, since it conflicts with the LCD platform device.
-         The MCI pins can be reenabled by editing the "add device function" but
-         this may break the setup for other displays that use these pins.
-
-endchoice
-
-choice
-       prompt "LCD panel resolution on EVKLCD10X"
-       depends on BOARD_ATNGW100_EVKLCD10X
-       default BOARD_ATNGW100_EVKLCD10X_VGA
-
-config BOARD_ATNGW100_EVKLCD10X_QVGA
-       bool "QVGA (320x240)"
-
-config BOARD_ATNGW100_EVKLCD10X_VGA
-       bool "VGA (640x480)"
-
-config BOARD_ATNGW100_EVKLCD10X_POW_QVGA
-       bool "Powertip QVGA (320x240)"
-
-endchoice
-
-if BOARD_ATNGW100_MRMT
-source "arch/avr32/boards/atngw100/Kconfig_mrmt"
-endif
-
-endif  # BOARD_ATNGW100_COMMON
diff --git a/arch/avr32/boards/atngw100/Kconfig_mrmt b/arch/avr32/boards/atngw100/Kconfig_mrmt
deleted file mode 100644 (file)
index 9a199a2..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-# RMT for NGW100 customization
-
-choice
-       prompt "RMT Version"
-       help
-         Select the RMTx board version.
-
-config BOARD_MRMT_REV1
-       bool "RMT1"
-config BOARD_MRMT_REV2
-       bool "RMT2"
-
-endchoice
-
-config BOARD_MRMT_AC97
-       bool "Enable AC97 CODEC"
-       help
-         Enable the UCB1400 AC97 CODEC driver.
-
-choice
-       prompt "Touchscreen Driver"
-       default BOARD_MRMT_ADS7846_TS
-
-config BOARD_MRMT_UCB1400_TS
-       bool "Use UCB1400 Touchscreen"
-
-config BOARD_MRMT_ADS7846_TS
-       bool "Use ADS7846 Touchscreen"
-
-endchoice
-
-choice
-       prompt "RMTx LCD Selection"
-       default BOARD_MRMT_LCD_DISABLE
-
-config BOARD_MRMT_LCD_DISABLE
-       bool "LCD Disabled"
-
-config BOARD_MRMT_LCD_LQ043T3DX0X
-       bool "Sharp LQ043T3DX0x or compatible"
-       help
-         If using RMT2, be sure to load the resistor pack selectors accordingly
-
-if BOARD_MRMT_REV2
-config BOARD_MRMT_LCD_KWH043GM08
-       bool "Formike KWH043GM08 or compatible"
-       help
-         Be sure to load the RMT2 resistor pack selectors accordingly
-endif
-
-endchoice
-
-if !BOARD_MRMT_LCD_DISABLE
-config BOARD_MRMT_BL_PWM
-       bool "Use PWM control for LCD Backlight"
-       help
-               Use PWM driver for controlling LCD Backlight.
-               Otherwise, LCD Backlight is always on.
-endif
-
-config BOARD_MRMT_RTC_I2C
-       bool "Use External RTC on I2C Bus"
-       help
-               RMT1 has an optional RTC device on the I2C bus.
-               It is a SII S35390A.  Be sure to select the
-               matching RTC driver.
-
-choice
-       prompt "Wireless Module on ttyS2"
-       default BOARD_MRMT_WIRELESS_ZB
-
-config BOARD_MRMT_WIRELESS_ZB
-       bool "Use ZigBee/802.15.4 Module"
-
-config BOARD_MRMT_WIRELESS_BT
-       bool "Use Bluetooth (HCI) Module"
-
-config BOARD_MRMT_WIRELESS_NONE
-       bool "Not Installed"
-endchoice
diff --git a/arch/avr32/boards/atngw100/Makefile b/arch/avr32/boards/atngw100/Makefile
deleted file mode 100644 (file)
index f4ebe42..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-obj-y                                  += setup.o flash.o
-obj-$(CONFIG_BOARD_ATNGW100_EVKLCD10X) += evklcd10x.o
-obj-$(CONFIG_BOARD_ATNGW100_MRMT)      += mrmt.o
diff --git a/arch/avr32/boards/atngw100/evklcd10x.c b/arch/avr32/boards/atngw100/evklcd10x.c
deleted file mode 100644 (file)
index 64919b0..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Board-specific setup code for the ATEVKLCD10X addon board to the ATNGW100
- * Network Gateway
- *
- * Copyright (C) 2008 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 as published by
- * the Free Software Foundation.
- */
-
-#include <linux/init.h>
-#include <linux/linkage.h>
-#include <linux/gpio.h>
-#include <linux/fb.h>
-#include <linux/platform_device.h>
-
-#include <video/atmel_lcdc.h>
-
-#include <asm/setup.h>
-
-#include <mach/at32ap700x.h>
-#include <mach/portmux.h>
-#include <mach/board.h>
-
-#include <sound/atmel-ac97c.h>
-
-static struct ac97c_platform_data __initdata ac97c0_data = {
-       .reset_pin = GPIO_PIN_PB(19),
-};
-
-#ifdef CONFIG_BOARD_ATNGW100_EVKLCD10X_VGA
-static struct fb_videomode __initdata tcg057vglad_modes[] = {
-       {
-               .name           = "640x480 @ 50",
-               .refresh        = 50,
-               .xres           = 640,          .yres           = 480,
-               .pixclock       = KHZ2PICOS(25180),
-
-               .left_margin    = 64,           .right_margin   = 96,
-               .upper_margin   = 34,           .lower_margin   = 11,
-               .hsync_len      = 64,           .vsync_len      = 15,
-
-               .sync           = 0,
-               .vmode          = FB_VMODE_NONINTERLACED,
-       },
-};
-
-static struct fb_monspecs __initdata atevklcd10x_default_monspecs = {
-       .manufacturer           = "KYO",
-       .monitor                = "TCG057VGLAD",
-       .modedb                 = tcg057vglad_modes,
-       .modedb_len             = ARRAY_SIZE(tcg057vglad_modes),
-       .hfmin                  = 19948,
-       .hfmax                  = 31478,
-       .vfmin                  = 50,
-       .vfmax                  = 67,
-       .dclkmax                = 28330000,
-};
-
-static struct atmel_lcdfb_pdata __initdata atevklcd10x_lcdc_data = {
-       .default_bpp            = 16,
-       .default_dmacon         = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
-       .default_lcdcon2        = (ATMEL_LCDC_DISTYPE_TFT
-                                  | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE
-                                  | ATMEL_LCDC_MEMOR_BIG),
-       .default_monspecs       = &atevklcd10x_default_monspecs,
-       .guard_time             = 2,
-};
-#elif CONFIG_BOARD_ATNGW100_EVKLCD10X_QVGA
-static struct fb_videomode __initdata tcg057qvlad_modes[] = {
-       {
-               .name           = "320x240 @ 50",
-               .refresh        = 50,
-               .xres           = 320,          .yres           = 240,
-               .pixclock       = KHZ2PICOS(6300),
-
-               .left_margin    = 34,           .right_margin   = 46,
-               .upper_margin   = 7,            .lower_margin   = 15,
-               .hsync_len      = 64,           .vsync_len      = 12,
-
-               .sync           = 0,
-               .vmode          = FB_VMODE_NONINTERLACED,
-       },
-};
-
-static struct fb_monspecs __initdata atevklcd10x_default_monspecs = {
-       .manufacturer           = "KYO",
-       .monitor                = "TCG057QVLAD",
-       .modedb                 = tcg057qvlad_modes,
-       .modedb_len             = ARRAY_SIZE(tcg057qvlad_modes),
-       .hfmin                  = 19948,
-       .hfmax                  = 31478,
-       .vfmin                  = 50,
-       .vfmax                  = 67,
-       .dclkmax                = 7000000,
-};
-
-static struct atmel_lcdfb_pdata __initdata atevklcd10x_lcdc_data = {
-       .default_bpp            = 16,
-       .default_dmacon         = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
-       .default_lcdcon2        = (ATMEL_LCDC_DISTYPE_TFT
-                                  | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE
-                                  | ATMEL_LCDC_MEMOR_BIG),
-       .default_monspecs       = &atevklcd10x_default_monspecs,
-       .guard_time             = 2,
-};
-#elif CONFIG_BOARD_ATNGW100_EVKLCD10X_POW_QVGA
-static struct fb_videomode __initdata ph320240t_modes[] = {
-       {
-               .name           = "320x240 @ 60",
-               .refresh        = 60,
-               .xres           = 320,          .yres           = 240,
-               .pixclock       = KHZ2PICOS(6300),
-
-               .left_margin    = 38,           .right_margin   = 20,
-               .upper_margin   = 15,           .lower_margin   = 5,
-               .hsync_len      = 30,           .vsync_len      = 3,
-
-               .sync           = 0,
-               .vmode          = FB_VMODE_NONINTERLACED,
-       },
-};
-
-static struct fb_monspecs __initdata atevklcd10x_default_monspecs = {
-       .manufacturer           = "POW",
-       .monitor                = "PH320240T",
-       .modedb                 = ph320240t_modes,
-       .modedb_len             = ARRAY_SIZE(ph320240t_modes),
-       .hfmin                  = 14400,
-       .hfmax                  = 21600,
-       .vfmin                  = 50,
-       .vfmax                  = 90,
-       .dclkmax                = 6400000,
-};
-
-static struct atmel_lcdfb_pdata __initdata atevklcd10x_lcdc_data = {
-       .default_bpp            = 16,
-       .default_dmacon         = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
-       .default_lcdcon2        = (ATMEL_LCDC_DISTYPE_TFT
-                                  | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE
-                                  | ATMEL_LCDC_MEMOR_BIG),
-       .default_monspecs       = &atevklcd10x_default_monspecs,
-       .guard_time             = 2,
-};
-#endif
-
-static void atevklcd10x_lcdc_power_control(struct atmel_lcdfb_pdata *pdata, int on)
-{
-       gpio_set_value(GPIO_PIN_PB(15), on);
-}
-
-static int __init atevklcd10x_init(void)
-{
-       /* PB15 is connected to the enable line on the boost regulator
-        * controlling the backlight for the LCD panel.
-        */
-       at32_select_gpio(GPIO_PIN_PB(15), AT32_GPIOF_OUTPUT);
-       gpio_request(GPIO_PIN_PB(15), "backlight");
-       gpio_direction_output(GPIO_PIN_PB(15), 0);
-
-       atevklcd10x_lcdc_data.atmel_lcdfb_power_control =
-               atevklcd10x_lcdc_power_control;
-
-       at32_add_device_lcdc(0, &atevklcd10x_lcdc_data,
-                       fbmem_start, fbmem_size,
-#ifdef CONFIG_BOARD_ATNGW100_MKII
-                       ATMEL_LCDC_PRI_18BIT | ATMEL_LCDC_PC_DVAL
-#else
-                       ATMEL_LCDC_ALT_18BIT | ATMEL_LCDC_PE_DVAL
-#endif
-                       );
-
-       at32_add_device_ac97c(0, &ac97c0_data, AC97C_BOTH);
-
-       return 0;
-}
-postcore_initcall(atevklcd10x_init);
diff --git a/arch/avr32/boards/atngw100/flash.c b/arch/avr32/boards/atngw100/flash.c
deleted file mode 100644 (file)
index 55ccc9c..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * ATNGW100 board-specific flash initialization
- *
- * Copyright (C) 2005-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/partitions.h>
-#include <linux/mtd/physmap.h>
-
-#include <mach/smc.h>
-
-static struct smc_timing flash_timing __initdata = {
-       .ncs_read_setup         = 0,
-       .nrd_setup              = 40,
-       .ncs_write_setup        = 0,
-       .nwe_setup              = 10,
-
-       .ncs_read_pulse         = 80,
-       .nrd_pulse              = 40,
-       .ncs_write_pulse        = 65,
-       .nwe_pulse              = 55,
-
-       .read_cycle             = 120,
-       .write_cycle            = 120,
-};
-
-static struct smc_config flash_config __initdata = {
-       .bus_width              = 2,
-       .nrd_controlled         = 1,
-       .nwe_controlled         = 1,
-       .byte_write             = 1,
-};
-
-static struct mtd_partition flash_parts[] = {
-       {
-               .name           = "u-boot",
-               .offset         = 0x00000000,
-               .size           = 0x00020000,           /* 128 KiB */
-               .mask_flags     = MTD_WRITEABLE,
-       },
-       {
-               .name           = "root",
-               .offset         = 0x00020000,
-               .size           = 0x007d0000,
-       },
-       {
-               .name           = "env",
-               .offset         = 0x007f0000,
-               .size           = 0x00010000,
-               .mask_flags     = MTD_WRITEABLE,
-       },
-};
-
-static struct physmap_flash_data flash_data = {
-       .width          = 2,
-       .nr_parts       = ARRAY_SIZE(flash_parts),
-       .parts          = flash_parts,
-};
-
-static struct resource flash_resource = {
-       .start          = 0x00000000,
-       .end            = 0x007fffff,
-       .flags          = IORESOURCE_MEM,
-};
-
-static struct platform_device flash_device = {
-       .name           = "physmap-flash",
-       .id             = 0,
-       .resource       = &flash_resource,
-       .num_resources  = 1,
-       .dev            = {
-               .platform_data = &flash_data,
-       },
-};
-
-/* This needs to be called after the SMC has been initialized */
-static int __init atngw100_flash_init(void)
-{
-       int ret;
-
-       smc_set_timing(&flash_config, &flash_timing);
-       ret = smc_set_configuration(0, &flash_config);
-       if (ret < 0) {
-               printk(KERN_ERR "atngw100: failed to set NOR flash timing\n");
-               return ret;
-       }
-
-       platform_device_register(&flash_device);
-
-       return 0;
-}
-device_initcall(atngw100_flash_init);
diff --git a/arch/avr32/boards/atngw100/mrmt.c b/arch/avr32/boards/atngw100/mrmt.c
deleted file mode 100644 (file)
index 99b0a79..0000000
+++ /dev/null
@@ -1,382 +0,0 @@
-/*
- * Board-specific setup code for Remote Media Terminal 1 (RMT1)
- * add-on board for the ATNGW100 Network Gateway
- *
- * Copyright (C) 2008 Mediama Technologies
- * Based on ATNGW100 Network Gateway (Copyright (C) Atmel)
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/gpio.h>
-#include <linux/init.h>
-#include <linux/irq.h>
-#include <linux/linkage.h>
-#include <linux/platform_device.h>
-#include <linux/types.h>
-#include <linux/fb.h>
-#include <linux/leds.h>
-#include <linux/pwm.h>
-#include <linux/leds_pwm.h>
-#include <linux/input.h>
-#include <linux/gpio_keys.h>
-#include <linux/spi/spi.h>
-#include <linux/spi/ads7846.h>
-
-#include <video/atmel_lcdc.h>
-#include <sound/atmel-ac97c.h>
-
-#include <asm/delay.h>
-#include <asm/io.h>
-#include <asm/setup.h>
-
-#include <mach/at32ap700x.h>
-#include <mach/board.h>
-#include <mach/init.h>
-#include <mach/portmux.h>
-
-/* Define board-specifoic GPIO assignments */
-#define PIN_LCD_BL     GPIO_PIN_PA(28)
-#define PWM_CH_BL      0       /* Must match with GPIO pin definition */
-#define PIN_LCD_DISP   GPIO_PIN_PA(31)
-#define        PIN_AC97_RST_N  GPIO_PIN_PA(30)
-#define PB_EXTINT_BASE 25
-#define TS_IRQ         0
-#define PIN_TS_EXTINT  GPIO_PIN_PB(PB_EXTINT_BASE+TS_IRQ)
-#define PIN_PB_LEFT    GPIO_PIN_PB(11)
-#define PIN_PB_RIGHT   GPIO_PIN_PB(12)
-#define PIN_PWR_SW_N   GPIO_PIN_PB(14)
-#define PIN_PWR_ON     GPIO_PIN_PB(13)
-#define PIN_ZB_RST_N   GPIO_PIN_PA(21)
-#define PIN_BT_RST     GPIO_PIN_PA(22)
-#define PIN_LED_SYS    GPIO_PIN_PA(16)
-#define PIN_LED_A      GPIO_PIN_PA(19)
-#define PIN_LED_B      GPIO_PIN_PE(19)
-
-#ifdef CONFIG_BOARD_MRMT_LCD_LQ043T3DX0X
-/* Sharp LQ043T3DX0x (or compatible) panel */
-static struct fb_videomode __initdata lcd_fb_modes[] = {
-       {
-               .name           = "480x272 @ 59.94Hz",
-               .refresh        = 59.94,
-               .xres           = 480,          .yres           = 272,
-               .pixclock       = KHZ2PICOS(9000),
-
-               .left_margin    = 2,            .right_margin   = 2,
-               .upper_margin   = 3,            .lower_margin   = 9,
-               .hsync_len      = 41,           .vsync_len      = 1,
-
-               .sync           = 0,
-               .vmode          = FB_VMODE_NONINTERLACED,
-       },
-};
-
-static struct fb_monspecs __initdata lcd_fb_default_monspecs = {
-       .manufacturer           = "SHA",
-       .monitor                = "LQ043T3DX02",
-       .modedb                 = lcd_fb_modes,
-       .modedb_len             = ARRAY_SIZE(lcd_fb_modes),
-       .hfmin                  = 14915,
-       .hfmax                  = 17638,
-       .vfmin                  = 53,
-       .vfmax                  = 61,
-       .dclkmax                = 9260000,
-};
-
-static struct atmel_lcdfb_pdata __initdata rmt_lcdc_data = {
-       .default_bpp            = 24,
-       .default_dmacon         = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
-       .default_lcdcon2        = (ATMEL_LCDC_DISTYPE_TFT
-                                  | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE
-                                  | ATMEL_LCDC_INVCLK_NORMAL
-                                  | ATMEL_LCDC_MEMOR_BIG),
-       .lcd_wiring_mode        = ATMEL_LCDC_WIRING_RGB,
-       .default_monspecs       = &lcd_fb_default_monspecs,
-       .guard_time             = 2,
-};
-#endif
-
-#ifdef CONFIG_BOARD_MRMT_LCD_KWH043GM08
-/* Sharp KWH043GM08-Fxx (or compatible) panel */
-static struct fb_videomode __initdata lcd_fb_modes[] = {
-       {
-               .name           = "480x272 @ 59.94Hz",
-               .refresh        = 59.94,
-               .xres           = 480,          .yres           = 272,
-               .pixclock       = KHZ2PICOS(9000),
-
-               .left_margin    = 2,            .right_margin   = 2,
-               .upper_margin   = 3,            .lower_margin   = 9,
-               .hsync_len      = 41,           .vsync_len      = 1,
-
-               .sync           = 0,
-               .vmode          = FB_VMODE_NONINTERLACED,
-       },
-};
-
-static struct fb_monspecs __initdata lcd_fb_default_monspecs = {
-       .manufacturer           = "FOR",
-       .monitor                = "KWH043GM08",
-       .modedb                 = lcd_fb_modes,
-       .modedb_len             = ARRAY_SIZE(lcd_fb_modes),
-       .hfmin                  = 14915,
-       .hfmax                  = 17638,
-       .vfmin                  = 53,
-       .vfmax                  = 61,
-       .dclkmax                = 9260000,
-};
-
-static struct atmel_lcdfb_pdata __initdata rmt_lcdc_data = {
-       .default_bpp            = 24,
-       .default_dmacon         = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
-       .default_lcdcon2        = (ATMEL_LCDC_DISTYPE_TFT
-                                  | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE
-                                  | ATMEL_LCDC_INVCLK_INVERTED
-                                  | ATMEL_LCDC_MEMOR_BIG),
-       .lcd_wiring_mode        = ATMEL_LCDC_WIRING_RGB,
-       .default_monspecs       = &lcd_fb_default_monspecs,
-       .guard_time             = 2,
-};
-#endif
-
-#ifdef CONFIG_BOARD_MRMT_AC97
-static struct ac97c_platform_data __initdata ac97c0_data = {
-       .reset_pin              = PIN_AC97_RST_N,
-};
-#endif
-
-#ifdef CONFIG_BOARD_MRMT_UCB1400_TS
-/* NOTE: IRQ assignment relies on kernel module parameter */
-static struct platform_device rmt_ts_device = {
-       .name   = "ucb1400_ts",
-       .id     = -1,
-};
-#endif
-
-#ifdef CONFIG_BOARD_MRMT_BL_PWM
-/* PWM LEDs: LCD Backlight, etc */
-static struct pwm_lookup pwm_lookup[] = {
-       PWM_LOOKUP("at91sam9rl-pwm", PWM_CH_BL, "leds_pwm", "ds1",
-                  5000, PWM_POLARITY_INVERSED),
-};
-
-static struct led_pwm pwm_leds[] = {
-       {
-               .name = "backlight",
-               .max_brightness = 255,
-       },
-};
-
-static struct led_pwm_platform_data pwm_data = {
-       .num_leds       = ARRAY_SIZE(pwm_leds),
-       .leds           = pwm_leds,
-};
-
-static struct platform_device leds_pwm = {
-       .name   = "leds_pwm",
-       .id     = -1,
-       .dev    = {
-               .platform_data = &pwm_data,
-       },
-};
-#endif
-
-#ifdef CONFIG_BOARD_MRMT_ADS7846_TS
-static int ads7846_pendown_state(void)
-{
-       return !gpio_get_value( PIN_TS_EXTINT );        /* PENIRQ.*/
-}
-
-static struct ads7846_platform_data ads_info = {
-       .model                          = 7846,
-       .keep_vref_on                   = 0,    /* Use external VREF pin */
-       .vref_delay_usecs               = 0,
-       .vref_mv                        = 3300, /* VREF = 3.3V */
-       .settle_delay_usecs             = 800,
-       .penirq_recheck_delay_usecs     = 800,
-       .x_plate_ohms                   = 750,
-       .y_plate_ohms                   = 300,
-       .pressure_max                   = 4096,
-       .debounce_max                   = 1,
-       .debounce_rep                   = 0,
-       .debounce_tol                   = (~0),
-       .get_pendown_state              = ads7846_pendown_state,
-       .filter                         = NULL,
-       .filter_init                    = NULL,
-};
-
-static struct spi_board_info spi01_board_info[] __initdata = {
-       {
-               .modalias       = "ads7846",
-               .max_speed_hz   = 31250*26,
-               .bus_num        = 0,
-               .chip_select    = 1,
-               .platform_data  = &ads_info,
-               .irq            = AT32_EXTINT(TS_IRQ),
-       },
-};
-#endif
-
-/* GPIO Keys: left, right, power, etc */
-static const struct gpio_keys_button rmt_gpio_keys_buttons[] = {
-       [0] = {
-               .type           = EV_KEY,
-               .code           = KEY_POWER,
-               .gpio           = PIN_PWR_SW_N,
-               .active_low     = 1,
-               .desc           = "power button",
-       },
-       [1] = {
-               .type           = EV_KEY,
-               .code           = KEY_LEFT,
-               .gpio           = PIN_PB_LEFT,
-               .active_low     = 1,
-               .desc           = "left button",
-       },
-       [2] = {
-               .type           = EV_KEY,
-               .code           = KEY_RIGHT,
-               .gpio           = PIN_PB_RIGHT,
-               .active_low     = 1,
-               .desc           = "right button",
-       },
-};
-
-static const struct gpio_keys_platform_data rmt_gpio_keys_data = {
-       .nbuttons =     ARRAY_SIZE(rmt_gpio_keys_buttons),
-       .buttons =      (void *) rmt_gpio_keys_buttons,
-};
-
-static struct platform_device rmt_gpio_keys = {
-       .name =         "gpio-keys",
-       .id =           -1,
-       .dev = {
-               .platform_data = (void *) &rmt_gpio_keys_data,
-       }
-};
-
-#ifdef CONFIG_BOARD_MRMT_RTC_I2C
-static struct i2c_board_info __initdata mrmt1_i2c_rtc = {
-       I2C_BOARD_INFO("s35390a", 0x30),
-       .irq            = 0,
-};
-#endif
-
-static void mrmt_power_off(void)
-{
-       /* PWR_ON=0 will force power off */
-       gpio_set_value( PIN_PWR_ON, 0 );
-}
-
-static int __init mrmt1_init(void)
-{
-       gpio_set_value( PIN_PWR_ON, 1 );        /* Ensure PWR_ON is enabled */
-
-       pm_power_off = mrmt_power_off;
-
-       /* Setup USARTS (other than console) */
-       at32_map_usart(2, 1, 0);        /* USART 2: /dev/ttyS1, RMT1:DB9M */
-       at32_map_usart(3, 2, ATMEL_USART_RTS | ATMEL_USART_CTS);
-                       /* USART 3: /dev/ttyS2, RMT1:Wireless, w/ RTS/CTS */
-       at32_add_device_usart(1);
-       at32_add_device_usart(2);
-
-       /* Select GPIO Key pins */
-       at32_select_gpio( PIN_PWR_SW_N, AT32_GPIOF_DEGLITCH);
-       at32_select_gpio( PIN_PB_LEFT, AT32_GPIOF_DEGLITCH);
-       at32_select_gpio( PIN_PB_RIGHT, AT32_GPIOF_DEGLITCH);
-       platform_device_register(&rmt_gpio_keys);
-
-#ifdef CONFIG_BOARD_MRMT_RTC_I2C
-       i2c_register_board_info(0, &mrmt1_i2c_rtc, 1);
-#endif
-
-#ifndef CONFIG_BOARD_MRMT_LCD_DISABLE
-       /* User "alternate" LCDC inferface on Port E & D */
-       /* NB: exclude LCDC_CC pin, as NGW100 reserves it for other use */
-       at32_add_device_lcdc(0, &rmt_lcdc_data,
-               fbmem_start, fbmem_size,
-               (ATMEL_LCDC_ALT_24BIT | ATMEL_LCDC_PE_DVAL ) );
-#endif
-
-#ifdef CONFIG_BOARD_MRMT_AC97
-       at32_add_device_ac97c(0, &ac97c0_data, AC97C_BOTH);
-#endif
-
-#ifdef CONFIG_BOARD_MRMT_ADS7846_TS
-       /* Select the Touchscreen interrupt pin mode */
-       at32_select_periph( GPIO_PIOB_BASE, 1 << (PB_EXTINT_BASE+TS_IRQ),
-                       GPIO_PERIPH_A, AT32_GPIOF_DEGLITCH);
-       irq_set_irq_type(AT32_EXTINT(TS_IRQ), IRQ_TYPE_EDGE_FALLING);
-       at32_spi_setup_slaves(0,spi01_board_info,ARRAY_SIZE(spi01_board_info));
-       spi_register_board_info(spi01_board_info,ARRAY_SIZE(spi01_board_info));
-#endif
-
-#ifdef CONFIG_BOARD_MRMT_UCB1400_TS
-       /* Select the Touchscreen interrupt pin mode */
-       at32_select_periph( GPIO_PIOB_BASE, 1 << (PB_EXTINT_BASE+TS_IRQ),
-                       GPIO_PERIPH_A, AT32_GPIOF_DEGLITCH);
-       platform_device_register(&rmt_ts_device);
-#endif
-
-       at32_select_gpio( PIN_LCD_DISP, AT32_GPIOF_OUTPUT );
-       gpio_request( PIN_LCD_DISP, "LCD_DISP" );
-       gpio_direction_output( PIN_LCD_DISP, 0 );       /* LCD DISP */
-#ifdef CONFIG_BOARD_MRMT_LCD_DISABLE
-       /* Keep Backlight and DISP off */
-       at32_select_gpio( PIN_LCD_BL, AT32_GPIOF_OUTPUT );
-       gpio_request( PIN_LCD_BL, "LCD_BL" );
-       gpio_direction_output( PIN_LCD_BL, 0 );         /* Backlight */
-#else
-       gpio_set_value( PIN_LCD_DISP, 1 );      /* DISP asserted first */
-#ifdef CONFIG_BOARD_MRMT_BL_PWM
-       /* Use PWM for Backlight controls */
-       at32_add_device_pwm(1 << PWM_CH_BL);
-       pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup));
-       platform_device_register(&leds_pwm);
-#else
-       /* Backlight always on */
-       udelay( 1 );
-       at32_select_gpio( PIN_LCD_BL, AT32_GPIOF_OUTPUT );
-       gpio_request( PIN_LCD_BL, "LCD_BL" );
-       gpio_direction_output( PIN_LCD_BL, 1 );
-#endif
-#endif
-
-       /* Make sure BT and Zigbee modules in reset */
-       at32_select_gpio( PIN_BT_RST, AT32_GPIOF_OUTPUT );
-       gpio_request( PIN_BT_RST, "BT_RST" );
-       gpio_direction_output( PIN_BT_RST, 1 );
-       /* BT Module in Reset */
-
-       at32_select_gpio( PIN_ZB_RST_N, AT32_GPIOF_OUTPUT );
-       gpio_request( PIN_ZB_RST_N, "ZB_RST_N" );
-       gpio_direction_output( PIN_ZB_RST_N, 0 );
-       /* XBee Module in Reset */
-
-#ifdef CONFIG_BOARD_MRMT_WIRELESS_ZB
-       udelay( 1000 );
-       /* Unreset the XBee Module */
-       gpio_set_value( PIN_ZB_RST_N, 1 );
-#endif
-#ifdef CONFIG_BOARD_MRMT_WIRELESS_BT
-       udelay( 1000 );
-       /* Unreset the BT Module */
-       gpio_set_value( PIN_BT_RST, 0 );
-#endif
-
-       return 0;
-}
-arch_initcall(mrmt1_init);
-
-static int __init mrmt1_early_init(void)
-{
-       /* To maintain power-on signal in case boot loader did not already */
-       at32_select_gpio( PIN_PWR_ON, AT32_GPIOF_OUTPUT );
-       gpio_request( PIN_PWR_ON, "PIN_PWR_ON" );
-       gpio_direction_output( PIN_PWR_ON, 1 );
-
-       return 0;
-}
-core_initcall(mrmt1_early_init);
diff --git a/arch/avr32/boards/atngw100/setup.c b/arch/avr32/boards/atngw100/setup.c
deleted file mode 100644 (file)
index afeae89..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Board-specific setup code for the ATNGW100 Network Gateway
- *
- * Copyright (C) 2005-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/clk.h>
-#include <linux/etherdevice.h>
-#include <linux/gpio.h>
-#include <linux/irq.h>
-#include <linux/i2c.h>
-#include <linux/i2c-gpio.h>
-#include <linux/init.h>
-#include <linux/linkage.h>
-#include <linux/platform_device.h>
-#include <linux/types.h>
-#include <linux/leds.h>
-#include <linux/spi/spi.h>
-#include <linux/atmel-mci.h>
-#include <linux/usb/atmel_usba_udc.h>
-
-#include <asm/io.h>
-#include <asm/setup.h>
-
-#include <mach/at32ap700x.h>
-#include <mach/board.h>
-#include <mach/init.h>
-#include <mach/portmux.h>
-
-/* Oscillator frequencies. These are board-specific */
-unsigned long at32_board_osc_rates[3] = {
-       [0] = 32768,    /* 32.768 kHz on RTC osc */
-       [1] = 20000000, /* 20 MHz on osc0 */
-       [2] = 12000000, /* 12 MHz on osc1 */
-};
-
-/*
- * The ATNGW100 mkII is very similar to the ATNGW100. Both have the AT32AP7000
- * chip on board; the difference is that the ATNGW100 mkII has 128 MB 32-bit
- * SDRAM (the ATNGW100 has 32 MB 16-bit SDRAM) and 256 MB 16-bit NAND flash
- * (the ATNGW100 has none.)
- *
- * The RAM difference is handled by the boot loader, so the only difference we
- * end up handling here is the NAND flash, EBI pin reservation and if LCDC or
- * MACB1 should be enabled.
- */
-#ifdef CONFIG_BOARD_ATNGW100_MKII
-#include <linux/mtd/partitions.h>
-#include <mach/smc.h>
-
-static struct smc_timing nand_timing __initdata = {
-       .ncs_read_setup         = 0,
-       .nrd_setup              = 10,
-       .ncs_write_setup        = 0,
-       .nwe_setup              = 10,
-
-       .ncs_read_pulse         = 30,
-       .nrd_pulse              = 15,
-       .ncs_write_pulse        = 30,
-       .nwe_pulse              = 15,
-
-       .read_cycle             = 30,
-       .write_cycle            = 30,
-
-       .ncs_read_recover       = 0,
-       .nrd_recover            = 15,
-       .ncs_write_recover      = 0,
-       /* WE# high -> RE# low min 60 ns */
-       .nwe_recover            = 50,
-};
-
-static struct smc_config nand_config __initdata = {
-       .bus_width              = 2,
-       .nrd_controlled         = 1,
-       .nwe_controlled         = 1,
-       .nwait_mode             = 0,
-       .byte_write             = 0,
-       .tdf_cycles             = 2,
-       .tdf_mode               = 0,
-};
-
-static struct mtd_partition nand_partitions[] = {
-       {
-               .name           = "main",
-               .offset         = 0x00000000,
-               .size           = MTDPART_SIZ_FULL,
-       },
-};
-
-
-static struct atmel_nand_data atngw100mkii_nand_data __initdata = {
-       .cle            = 21,
-       .ale            = 22,
-       .rdy_pin        = GPIO_PIN_PB(28),
-       .enable_pin     = GPIO_PIN_PE(23),
-       .bus_width_16   = true,
-       .ecc_mode       = NAND_ECC_SOFT,
-       .parts          = nand_partitions,
-       .num_parts      = ARRAY_SIZE(nand_partitions),
-};
-#endif
-
-/* Initialized by bootloader-specific startup code. */
-struct tag *bootloader_tags __initdata;
-
-struct eth_addr {
-       u8 addr[6];
-};
-static struct eth_addr __initdata hw_addr[2];
-static struct macb_platform_data __initdata eth_data[2];
-
-static struct spi_board_info spi0_board_info[] __initdata = {
-       {
-               .modalias       = "mtd_dataflash",
-               .max_speed_hz   = 8000000,
-               .chip_select    = 0,
-       },
-};
-
-static struct mci_platform_data __initdata mci0_data = {
-       .slot[0] = {
-               .bus_width      = 4,
-#if defined(CONFIG_BOARD_ATNGW100_MKII)
-               .detect_pin     = GPIO_PIN_PC(25),
-               .wp_pin         = GPIO_PIN_PE(22),
-#else
-               .detect_pin     = GPIO_PIN_PC(25),
-               .wp_pin         = GPIO_PIN_PE(0),
-#endif
-       },
-};
-
-static struct usba_platform_data atngw100_usba_data __initdata = {
-#if defined(CONFIG_BOARD_ATNGW100_MKII)
-       .vbus_pin       = GPIO_PIN_PE(26),
-#else
-       .vbus_pin       = -ENODEV,
-#endif
-};
-
-/*
- * The next two functions should go away as the boot loader is
- * supposed to initialize the macb address registers with a valid
- * ethernet address. But we need to keep it around for a while until
- * we can be reasonably sure the boot loader does this.
- *
- * The phy_id is ignored as the driver will probe for it.
- */
-static int __init parse_tag_ethernet(struct tag *tag)
-{
-       int i;
-
-       i = tag->u.ethernet.mac_index;
-       if (i < ARRAY_SIZE(hw_addr))
-               memcpy(hw_addr[i].addr, tag->u.ethernet.hw_address,
-                      sizeof(hw_addr[i].addr));
-
-       return 0;
-}
-__tagtable(ATAG_ETHERNET, parse_tag_ethernet);
-
-static void __init set_hw_addr(struct platform_device *pdev)
-{
-       struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       const u8 *addr;
-       void __iomem *regs;
-       struct clk *pclk;
-
-       if (!res)
-               return;
-       if (pdev->id >= ARRAY_SIZE(hw_addr))
-               return;
-
-       addr = hw_addr[pdev->id].addr;
-       if (!is_valid_ether_addr(addr))
-               return;
-
-       /*
-        * Since this is board-specific code, we'll cheat and use the
-        * physical address directly as we happen to know that it's
-        * the same as the virtual address.
-        */
-       regs = (void __iomem __force *)res->start;
-       pclk = clk_get(&pdev->dev, "pclk");
-       if (IS_ERR(pclk))
-               return;
-
-       clk_enable(pclk);
-       __raw_writel((addr[3] << 24) | (addr[2] << 16)
-                    | (addr[1] << 8) | addr[0], regs + 0x98);
-       __raw_writel((addr[5] << 8) | addr[4], regs + 0x9c);
-       clk_disable(pclk);
-       clk_put(pclk);
-}
-
-void __init setup_board(void)
-{
-       at32_map_usart(1, 0, 0);        /* USART 1: /dev/ttyS0, DB9 */
-       at32_setup_serial_console(0);
-}
-
-static const struct gpio_led ngw_leds[] = {
-       { .name = "sys", .gpio = GPIO_PIN_PA(16), .active_low = 1,
-               .default_trigger = "heartbeat",
-       },
-       { .name = "a", .gpio = GPIO_PIN_PA(19), .active_low = 1, },
-       { .name = "b", .gpio = GPIO_PIN_PE(19), .active_low = 1, },
-};
-
-static const struct gpio_led_platform_data ngw_led_data = {
-       .num_leds =     ARRAY_SIZE(ngw_leds),
-       .leds =         (void *) ngw_leds,
-};
-
-static struct platform_device ngw_gpio_leds = {
-       .name =         "leds-gpio",
-       .id =           -1,
-       .dev = {
-               .platform_data = (void *) &ngw_led_data,
-       }
-};
-
-static struct i2c_gpio_platform_data i2c_gpio_data = {
-       .sda_pin                = GPIO_PIN_PA(6),
-       .scl_pin                = GPIO_PIN_PA(7),
-       .sda_is_open_drain      = 1,
-       .scl_is_open_drain      = 1,
-       .udelay                 = 2,    /* close to 100 kHz */
-};
-
-static struct platform_device i2c_gpio_device = {
-       .name           = "i2c-gpio",
-       .id             = 0,
-       .dev            = {
-               .platform_data  = &i2c_gpio_data,
-       },
-};
-
-static struct i2c_board_info __initdata i2c_info[] = {
-       /* NOTE:  original ATtiny24 firmware is at address 0x0b */
-};
-
-static int __init atngw100_init(void)
-{
-       unsigned        i;
-
-       /*
-        * ATNGW100 mkII uses 32-bit SDRAM interface. Reserve the
-        * SDRAM-specific pins so that nobody messes with them.
-        */
-#ifdef CONFIG_BOARD_ATNGW100_MKII
-       at32_reserve_pin(GPIO_PIOE_BASE, ATMEL_EBI_PE_DATA_ALL);
-
-       smc_set_timing(&nand_config, &nand_timing);
-       smc_set_configuration(3, &nand_config);
-       at32_add_device_nand(0, &atngw100mkii_nand_data);
-#endif
-
-       at32_add_device_usart(0);
-
-       set_hw_addr(at32_add_device_eth(0, &eth_data[0]));
-#ifndef CONFIG_BOARD_ATNGW100_MKII_LCD
-       set_hw_addr(at32_add_device_eth(1, &eth_data[1]));
-#endif
-
-       at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info));
-       at32_add_device_mci(0, &mci0_data);
-       at32_add_device_usba(0, &atngw100_usba_data);
-
-       for (i = 0; i < ARRAY_SIZE(ngw_leds); i++) {
-               at32_select_gpio(ngw_leds[i].gpio,
-                               AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH);
-       }
-       platform_device_register(&ngw_gpio_leds);
-
-       /* all these i2c/smbus pins should have external pullups for
-        * open-drain sharing among all I2C devices.  SDA and SCL do;
-        * PB28/EXTINT3 (ATNGW100) and PE21 (ATNGW100 mkII) doesn't; it should
-        * be SMBALERT# (for PMBus), but it's not available off-board.
-        */
-#ifdef CONFIG_BOARD_ATNGW100_MKII
-       at32_select_periph(GPIO_PIOE_BASE, 1 << 21, 0, AT32_GPIOF_PULLUP);
-#else
-       at32_select_periph(GPIO_PIOB_BASE, 1 << 28, 0, AT32_GPIOF_PULLUP);
-#endif
-       at32_select_gpio(i2c_gpio_data.sda_pin,
-               AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH);
-       at32_select_gpio(i2c_gpio_data.scl_pin,
-               AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH);
-       platform_device_register(&i2c_gpio_device);
-       i2c_register_board_info(0, i2c_info, ARRAY_SIZE(i2c_info));
-
-       return 0;
-}
-postcore_initcall(atngw100_init);
-
-static int __init atngw100_arch_init(void)
-{
-       /* PB30 (ATNGW100) and PE30 (ATNGW100 mkII) is the otherwise unused
-        * jumper on the mainboard, with an external pullup; the jumper grounds
-        * it. Use it however you like, including letting U-Boot or Linux tweak
-        * boot sequences.
-        */
-#ifdef CONFIG_BOARD_ATNGW100_MKII
-       at32_select_gpio(GPIO_PIN_PE(30), 0);
-       gpio_request(GPIO_PIN_PE(30), "j15");
-       gpio_direction_input(GPIO_PIN_PE(30));
-       gpio_export(GPIO_PIN_PE(30), false);
-#else
-       at32_select_gpio(GPIO_PIN_PB(30), 0);
-       gpio_request(GPIO_PIN_PB(30), "j15");
-       gpio_direction_input(GPIO_PIN_PB(30));
-       gpio_export(GPIO_PIN_PB(30), false);
-#endif
-
-       /* set_irq_type() after the arch_initcall for EIC has run, and
-        * before the I2C subsystem could try using this IRQ.
-        */
-       return irq_set_irq_type(AT32_EXTINT(3), IRQ_TYPE_EDGE_FALLING);
-}
-arch_initcall(atngw100_arch_init);
diff --git a/arch/avr32/boards/atstk1000/Kconfig b/arch/avr32/boards/atstk1000/Kconfig
deleted file mode 100644 (file)
index 8dc4821..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-# STK1000 customization
-
-if BOARD_ATSTK1000
-
-choice
-       prompt "ATSTK1000 CPU daughterboard type"
-       default BOARD_ATSTK1002
-
-config BOARD_ATSTK1002
-       bool "ATSTK1002"
-       select CPU_AT32AP7000
-
-config BOARD_ATSTK1003
-       bool "ATSTK1003"
-       select CPU_AT32AP7001
-
-config BOARD_ATSTK1004
-       bool "ATSTK1004"
-       select CPU_AT32AP7002
-
-config BOARD_ATSTK1006
-       bool "ATSTK1006"
-       select CPU_AT32AP7000
-
-endchoice
-
-
-config BOARD_ATSTK100X_CUSTOM
-       bool "Non-default STK1002/STK1003/STK1004 jumper settings"
-       help
-         You will normally leave the jumpers on the CPU card at their
-         default settings.  If you need to use certain peripherals,
-         you will need to change some of those jumpers.
-
-if BOARD_ATSTK100X_CUSTOM
-
-config BOARD_ATSTK100X_SW1_CUSTOM
-       bool "SW1: use SSC1 (not SPI0)"
-       help
-         This also prevents using the external DAC as an audio interface,
-         and means you can't initialize the on-board QVGA display.
-
-config BOARD_ATSTK100X_SW2_CUSTOM
-       bool "SW2: use IRDA or TIMER0 (not UART-A, MMC/SD, and PS2-A)"
-       help
-         If you change this you'll want an updated boot loader putting
-         the console on UART-C not UART-A.
-
-config BOARD_ATSTK100X_SW3_CUSTOM
-       bool "SW3: use TIMER1 (not SSC0 and GCLK)"
-       help
-         This also prevents using the external DAC as an audio interface.
-
-config BOARD_ATSTK100X_SW4_CUSTOM
-       bool "SW4: use ISI/Camera (not GPIOs, SPI1, and PS2-B)"
-       help
-         To use the camera interface you'll need a custom card (on the
-         PCI-format connector) connect a video sensor.
-
-config BOARD_ATSTK1002_SW5_CUSTOM
-       bool "SW5: use MACB1 (not LCDC)"
-       depends on BOARD_ATSTK1002
-
-config BOARD_ATSTK1002_SW6_CUSTOM
-       bool "SW6: more GPIOs (not MACB0)"
-       depends on BOARD_ATSTK1002
-
-endif  # custom
-
-config BOARD_ATSTK100X_SPI1
-       bool "Configure SPI1 controller"
-       depends on !BOARD_ATSTK100X_SW4_CUSTOM
-       help
-         All the signals for the second SPI controller are available on
-         GPIO lines and accessed through the J1 jumper block.  Say "y"
-         here to configure that SPI controller.
-
-config BOARD_ATSTK1000_J2_LED
-       bool
-       default BOARD_ATSTK1000_J2_LED8 || BOARD_ATSTK1000_J2_RGB
-
-choice
-       prompt "LEDs connected to J2:"
-       depends on LEDS_GPIO && !BOARD_ATSTK100X_SW4_CUSTOM
-       optional
-       help
-         Select this if you have jumpered the J2 jumper block to the
-         LED0..LED7 amber leds, or to the RGB leds, using a ten-pin
-         IDC cable.  A default "heartbeat" trigger is provided, but
-         you can of course override this.
-
-config BOARD_ATSTK1000_J2_LED8
-       bool "LED0..LED7"
-       help
-         Select this if J2 is jumpered to LED0..LED7 amber leds.
-
-config BOARD_ATSTK1000_J2_RGB
-       bool "RGB leds"
-       help
-         Select this if J2 is jumpered to the RGB leds.
-
-endchoice
-
-config BOARD_ATSTK1000_EXTDAC
-       bool
-       depends on !BOARD_ATSTK100X_SW1_CUSTOM && !BOARD_ATSTK100X_SW3_CUSTOM
-       default y
-
-endif  # stk 1000
diff --git a/arch/avr32/boards/atstk1000/Makefile b/arch/avr32/boards/atstk1000/Makefile
deleted file mode 100644 (file)
index edecee0..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-obj-y                          += setup.o flash.o
-obj-$(CONFIG_BOARD_ATSTK1002)  += atstk1002.o
-obj-$(CONFIG_BOARD_ATSTK1003)  += atstk1003.o
-obj-$(CONFIG_BOARD_ATSTK1004)  += atstk1004.o
-obj-$(CONFIG_BOARD_ATSTK1006)  += atstk1002.o
diff --git a/arch/avr32/boards/atstk1000/atstk1000.h b/arch/avr32/boards/atstk1000/atstk1000.h
deleted file mode 100644 (file)
index 653cc09..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * ATSTK1000 setup code: Daughterboard interface
- *
- * Copyright (C) 2007 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ARCH_AVR32_BOARDS_ATSTK1000_ATSTK1000_H
-#define __ARCH_AVR32_BOARDS_ATSTK1000_ATSTK1000_H
-
-extern struct atmel_lcdfb_pdata atstk1000_lcdc_data;
-
-void atstk1000_setup_j2_leds(void);
-
-#endif /* __ARCH_AVR32_BOARDS_ATSTK1000_ATSTK1000_H */
diff --git a/arch/avr32/boards/atstk1000/atstk1002.c b/arch/avr32/boards/atstk1000/atstk1002.c
deleted file mode 100644 (file)
index 6c80aba..0000000
+++ /dev/null
@@ -1,330 +0,0 @@
-/*
- * ATSTK1002/ATSTK1006 daughterboard-specific init code
- *
- * Copyright (C) 2005-2007 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/clk.h>
-#include <linux/etherdevice.h>
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/platform_device.h>
-#include <linux/string.h>
-#include <linux/types.h>
-#include <linux/spi/spi.h>
-#include <linux/spi/at73c213.h>
-#include <linux/atmel-mci.h>
-
-#include <video/atmel_lcdc.h>
-
-#include <asm/io.h>
-#include <asm/setup.h>
-
-#include <mach/at32ap700x.h>
-#include <mach/board.h>
-#include <mach/init.h>
-#include <mach/portmux.h>
-
-#include "atstk1000.h"
-
-/* Oscillator frequencies. These are board specific */
-unsigned long at32_board_osc_rates[3] = {
-       [0] = 32768,    /* 32.768 kHz on RTC osc */
-       [1] = 20000000, /* 20 MHz on osc0 */
-       [2] = 12000000, /* 12 MHz on osc1 */
-};
-
-/*
- * The ATSTK1006 daughterboard is very similar to the ATSTK1002. Both
- * have the AT32AP7000 chip on board; the difference is that the
- * STK1006 has 128 MB SDRAM (the STK1002 uses the 8 MB SDRAM chip on
- * the STK1000 motherboard) and 256 MB NAND flash (the STK1002 has
- * none.)
- *
- * The RAM difference is handled by the boot loader, so the only
- * difference we end up handling here is the NAND flash.
- */
-#ifdef CONFIG_BOARD_ATSTK1006
-#include <linux/mtd/partitions.h>
-#include <mach/smc.h>
-
-static struct smc_timing nand_timing __initdata = {
-       .ncs_read_setup         = 0,
-       .nrd_setup              = 10,
-       .ncs_write_setup        = 0,
-       .nwe_setup              = 10,
-
-       .ncs_read_pulse         = 30,
-       .nrd_pulse              = 15,
-       .ncs_write_pulse        = 30,
-       .nwe_pulse              = 15,
-
-       .read_cycle             = 30,
-       .write_cycle            = 30,
-
-       .ncs_read_recover       = 0,
-       .nrd_recover            = 15,
-       .ncs_write_recover      = 0,
-       /* WE# high -> RE# low min 60 ns */
-       .nwe_recover            = 50,
-};
-
-static struct smc_config nand_config __initdata = {
-       .bus_width              = 1,
-       .nrd_controlled         = 1,
-       .nwe_controlled         = 1,
-       .nwait_mode             = 0,
-       .byte_write             = 0,
-       .tdf_cycles             = 2,
-       .tdf_mode               = 0,
-};
-
-static struct mtd_partition nand_partitions[] = {
-       {
-               .name           = "main",
-               .offset         = 0x00000000,
-               .size           = MTDPART_SIZ_FULL,
-       },
-};
-
-static struct atmel_nand_data atstk1006_nand_data __initdata = {
-       .cle            = 21,
-       .ale            = 22,
-       .rdy_pin        = GPIO_PIN_PB(30),
-       .enable_pin     = GPIO_PIN_PB(29),
-       .ecc_mode       = NAND_ECC_SOFT,
-       .parts          = nand_partitions,
-       .num_parts      = ARRAY_SIZE(nand_partitions),
-};
-#endif
-
-struct eth_addr {
-       u8 addr[6];
-};
-
-static struct eth_addr __initdata hw_addr[2];
-static struct macb_platform_data __initdata eth_data[2] = {
-       {
-               /*
-                * The MDIO pullups on STK1000 are a bit too weak for
-                * the autodetection to work properly, so we have to
-                * mask out everything but the correct address.
-                */
-               .phy_mask       = ~(1U << 16),
-       },
-       {
-               .phy_mask       = ~(1U << 17),
-       },
-};
-
-#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
-static struct at73c213_board_info at73c213_data = {
-       .ssc_id         = 0,
-       .shortname      = "AVR32 STK1000 external DAC",
-};
-#endif
-
-#ifndef CONFIG_BOARD_ATSTK100X_SW1_CUSTOM
-static struct spi_board_info spi0_board_info[] __initdata = {
-#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
-       {
-               /* AT73C213 */
-               .modalias       = "at73c213",
-               .max_speed_hz   = 200000,
-               .chip_select    = 0,
-               .mode           = SPI_MODE_1,
-               .platform_data  = &at73c213_data,
-       },
-#endif
-       {
-               /* QVGA display */
-               .modalias       = "ltv350qv",
-               .max_speed_hz   = 16000000,
-               .chip_select    = 1,
-               .mode           = SPI_MODE_3,
-       },
-};
-#endif
-
-#ifdef CONFIG_BOARD_ATSTK100X_SPI1
-static struct spi_board_info spi1_board_info[] __initdata = { {
-       /* patch in custom entries here */
-} };
-#endif
-
-/*
- * The next two functions should go away as the boot loader is
- * supposed to initialize the macb address registers with a valid
- * ethernet address. But we need to keep it around for a while until
- * we can be reasonably sure the boot loader does this.
- *
- * The phy_id is ignored as the driver will probe for it.
- */
-static int __init parse_tag_ethernet(struct tag *tag)
-{
-       int i;
-
-       i = tag->u.ethernet.mac_index;
-       if (i < ARRAY_SIZE(hw_addr))
-               memcpy(hw_addr[i].addr, tag->u.ethernet.hw_address,
-                      sizeof(hw_addr[i].addr));
-
-       return 0;
-}
-__tagtable(ATAG_ETHERNET, parse_tag_ethernet);
-
-static void __init set_hw_addr(struct platform_device *pdev)
-{
-       struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       const u8 *addr;
-       void __iomem *regs;
-       struct clk *pclk;
-
-       if (!res)
-               return;
-       if (pdev->id >= ARRAY_SIZE(hw_addr))
-               return;
-
-       addr = hw_addr[pdev->id].addr;
-       if (!is_valid_ether_addr(addr))
-               return;
-
-       /*
-        * Since this is board-specific code, we'll cheat and use the
-        * physical address directly as we happen to know that it's
-        * the same as the virtual address.
-        */
-       regs = (void __iomem __force *)res->start;
-       pclk = clk_get(&pdev->dev, "pclk");
-       if (IS_ERR(pclk))
-               return;
-
-       clk_enable(pclk);
-       __raw_writel((addr[3] << 24) | (addr[2] << 16)
-                    | (addr[1] << 8) | addr[0], regs + 0x98);
-       __raw_writel((addr[5] << 8) | addr[4], regs + 0x9c);
-       clk_disable(pclk);
-       clk_put(pclk);
-}
-
-#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
-static void __init atstk1002_setup_extdac(void)
-{
-       struct clk *gclk;
-       struct clk *pll;
-
-       gclk = clk_get(NULL, "gclk0");
-       if (IS_ERR(gclk))
-               goto err_gclk;
-       pll = clk_get(NULL, "pll0");
-       if (IS_ERR(pll))
-               goto err_pll;
-
-       if (clk_set_parent(gclk, pll)) {
-               pr_debug("STK1000: failed to set pll0 as parent for DAC clock\n");
-               goto err_set_clk;
-       }
-
-       at32_select_periph(GPIO_PIOA_BASE, (1 << 30), GPIO_PERIPH_A, 0);
-       at73c213_data.dac_clk = gclk;
-
-err_set_clk:
-       clk_put(pll);
-err_pll:
-       clk_put(gclk);
-err_gclk:
-       return;
-}
-#else
-static void __init atstk1002_setup_extdac(void)
-{
-
-}
-#endif /* CONFIG_BOARD_ATSTK1000_EXTDAC */
-
-void __init setup_board(void)
-{
-#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
-       at32_map_usart(0, 1, 0);        /* USART 0/B: /dev/ttyS1, IRDA */
-#else
-       at32_map_usart(1, 0, 0);        /* USART 1/A: /dev/ttyS0, DB9 */
-#endif
-       /* USART 2/unused: expansion connector */
-       at32_map_usart(3, 2, 0);        /* USART 3/C: /dev/ttyS2, DB9 */
-
-       at32_setup_serial_console(0);
-}
-
-#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
-
-static struct mci_platform_data __initdata mci0_data = {
-       .slot[0] = {
-               .bus_width      = 4,
-
-/* MMC card detect requires MACB0 *NOT* be used */
-#ifdef CONFIG_BOARD_ATSTK1002_SW6_CUSTOM
-               .detect_pin     = GPIO_PIN_PC(14), /* gpio30/sdcd */
-               .wp_pin         = GPIO_PIN_PC(15), /* gpio31/sdwp */
-#else
-               .detect_pin     = -ENODEV,
-               .wp_pin         = -ENODEV,
-#endif /* SW6 for sd{cd,wp} routing */
-       },
-};
-
-#endif /* SW2 for MMC signal routing */
-
-static int __init atstk1002_init(void)
-{
-       /*
-        * ATSTK1000 uses 32-bit SDRAM interface. Reserve the
-        * SDRAM-specific pins so that nobody messes with them.
-        */
-       at32_reserve_pin(GPIO_PIOE_BASE, ATMEL_EBI_PE_DATA_ALL);
-
-#ifdef CONFIG_BOARD_ATSTK1006
-       smc_set_timing(&nand_config, &nand_timing);
-       smc_set_configuration(3, &nand_config);
-       at32_add_device_nand(0, &atstk1006_nand_data);
-#endif
-
-#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
-       at32_add_device_usart(1);
-#else
-       at32_add_device_usart(0);
-#endif
-       at32_add_device_usart(2);
-
-#ifndef CONFIG_BOARD_ATSTK1002_SW6_CUSTOM
-       set_hw_addr(at32_add_device_eth(0, &eth_data[0]));
-#endif
-#ifndef CONFIG_BOARD_ATSTK100X_SW1_CUSTOM
-       at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info));
-#endif
-#ifdef CONFIG_BOARD_ATSTK100X_SPI1
-       at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
-#endif
-#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
-       at32_add_device_mci(0, &mci0_data);
-#endif
-#ifdef CONFIG_BOARD_ATSTK1002_SW5_CUSTOM
-       set_hw_addr(at32_add_device_eth(1, &eth_data[1]));
-#else
-       at32_add_device_lcdc(0, &atstk1000_lcdc_data,
-                            fbmem_start, fbmem_size,
-                            ATMEL_LCDC_PRI_24BIT | ATMEL_LCDC_PRI_CONTROL);
-#endif
-       at32_add_device_usba(0, NULL);
-#ifndef CONFIG_BOARD_ATSTK100X_SW3_CUSTOM
-       at32_add_device_ssc(0, ATMEL_SSC_TX);
-#endif
-
-       atstk1000_setup_j2_leds();
-       atstk1002_setup_extdac();
-
-       return 0;
-}
-postcore_initcall(atstk1002_init);
diff --git a/arch/avr32/boards/atstk1000/atstk1003.c b/arch/avr32/boards/atstk1000/atstk1003.c
deleted file mode 100644 (file)
index ff7e232..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * ATSTK1003 daughterboard-specific init code
- *
- * Copyright (C) 2007 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/clk.h>
-#include <linux/err.h>
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/platform_device.h>
-#include <linux/string.h>
-#include <linux/types.h>
-
-#include <linux/spi/at73c213.h>
-#include <linux/spi/spi.h>
-#include <linux/atmel-mci.h>
-
-#include <asm/setup.h>
-
-#include <mach/at32ap700x.h>
-#include <mach/board.h>
-#include <mach/init.h>
-#include <mach/portmux.h>
-
-#include "atstk1000.h"
-
-/* Oscillator frequencies. These are board specific */
-unsigned long at32_board_osc_rates[3] = {
-       [0] = 32768,    /* 32.768 kHz on RTC osc */
-       [1] = 20000000, /* 20 MHz on osc0 */
-       [2] = 12000000, /* 12 MHz on osc1 */
-};
-
-#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
-static struct at73c213_board_info at73c213_data = {
-       .ssc_id         = 0,
-       .shortname      = "AVR32 STK1000 external DAC",
-};
-#endif
-
-#ifndef CONFIG_BOARD_ATSTK100X_SW1_CUSTOM
-static struct spi_board_info spi0_board_info[] __initdata = {
-#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
-       {
-               /* AT73C213 */
-               .modalias       = "at73c213",
-               .max_speed_hz   = 200000,
-               .chip_select    = 0,
-               .mode           = SPI_MODE_1,
-               .platform_data  = &at73c213_data,
-       },
-#endif
-       /*
-        * We can control the LTV350QV LCD panel, but it isn't much
-        * point since we don't have an LCD controller...
-        */
-};
-#endif
-
-#ifdef CONFIG_BOARD_ATSTK100X_SPI1
-static struct spi_board_info spi1_board_info[] __initdata = { {
-       /* patch in custom entries here */
-} };
-#endif
-
-#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
-static struct mci_platform_data __initdata mci0_data = {
-       .slot[0] = {
-               .bus_width      = 4,
-               .detect_pin     = -ENODEV,
-               .wp_pin         = -ENODEV,
-       },
-};
-#endif
-
-#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
-static void __init atstk1003_setup_extdac(void)
-{
-       struct clk *gclk;
-       struct clk *pll;
-
-       gclk = clk_get(NULL, "gclk0");
-       if (IS_ERR(gclk))
-               goto err_gclk;
-       pll = clk_get(NULL, "pll0");
-       if (IS_ERR(pll))
-               goto err_pll;
-
-       if (clk_set_parent(gclk, pll)) {
-               pr_debug("STK1000: failed to set pll0 as parent for DAC clock\n");
-               goto err_set_clk;
-       }
-
-       at32_select_periph(GPIO_PIOA_BASE, (1 << 30), GPIO_PERIPH_A, 0);
-       at73c213_data.dac_clk = gclk;
-
-err_set_clk:
-       clk_put(pll);
-err_pll:
-       clk_put(gclk);
-err_gclk:
-       return;
-}
-#else
-static void __init atstk1003_setup_extdac(void)
-{
-
-}
-#endif /* CONFIG_BOARD_ATSTK1000_EXTDAC */
-
-void __init setup_board(void)
-{
-#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
-       at32_map_usart(0, 1, 0);        /* USART 0/B: /dev/ttyS1, IRDA */
-#else
-       at32_map_usart(1, 0, 0);        /* USART 1/A: /dev/ttyS0, DB9 */
-#endif
-       /* USART 2/unused: expansion connector */
-       at32_map_usart(3, 2, 0);        /* USART 3/C: /dev/ttyS2, DB9 */
-
-       at32_setup_serial_console(0);
-}
-
-static int __init atstk1003_init(void)
-{
-       /*
-        * ATSTK1000 uses 32-bit SDRAM interface. Reserve the
-        * SDRAM-specific pins so that nobody messes with them.
-        */
-       at32_reserve_pin(GPIO_PIOE_BASE, ATMEL_EBI_PE_DATA_ALL);
-
-#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
-       at32_add_device_usart(1);
-#else
-       at32_add_device_usart(0);
-#endif
-       at32_add_device_usart(2);
-
-#ifndef CONFIG_BOARD_ATSTK100X_SW1_CUSTOM
-       at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info));
-#endif
-#ifdef CONFIG_BOARD_ATSTK100X_SPI1
-       at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
-#endif
-#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
-       at32_add_device_mci(0, &mci0_data);
-#endif
-       at32_add_device_usba(0, NULL);
-#ifndef CONFIG_BOARD_ATSTK100X_SW3_CUSTOM
-       at32_add_device_ssc(0, ATMEL_SSC_TX);
-#endif
-
-       atstk1000_setup_j2_leds();
-       atstk1003_setup_extdac();
-
-       return 0;
-}
-postcore_initcall(atstk1003_init);
diff --git a/arch/avr32/boards/atstk1000/atstk1004.c b/arch/avr32/boards/atstk1000/atstk1004.c
deleted file mode 100644 (file)
index 69a9f0f..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * ATSTK1003 daughterboard-specific init code
- *
- * Copyright (C) 2007 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/clk.h>
-#include <linux/err.h>
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/platform_device.h>
-#include <linux/string.h>
-#include <linux/types.h>
-
-#include <linux/spi/at73c213.h>
-#include <linux/spi/spi.h>
-#include <linux/atmel-mci.h>
-
-#include <video/atmel_lcdc.h>
-
-#include <asm/setup.h>
-
-#include <mach/at32ap700x.h>
-#include <mach/board.h>
-#include <mach/init.h>
-#include <mach/portmux.h>
-
-#include "atstk1000.h"
-
-/* Oscillator frequencies. These are board specific */
-unsigned long at32_board_osc_rates[3] = {
-       [0] = 32768,    /* 32.768 kHz on RTC osc */
-       [1] = 20000000, /* 20 MHz on osc0 */
-       [2] = 12000000, /* 12 MHz on osc1 */
-};
-
-#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
-static struct at73c213_board_info at73c213_data = {
-       .ssc_id         = 0,
-       .shortname      = "AVR32 STK1000 external DAC",
-};
-#endif
-
-#ifndef CONFIG_BOARD_ATSTK100X_SW1_CUSTOM
-static struct spi_board_info spi0_board_info[] __initdata = {
-#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
-       {
-               /* AT73C213 */
-               .modalias       = "at73c213",
-               .max_speed_hz   = 200000,
-               .chip_select    = 0,
-               .mode           = SPI_MODE_1,
-               .platform_data  = &at73c213_data,
-       },
-#endif
-       {
-               /* QVGA display */
-               .modalias       = "ltv350qv",
-               .max_speed_hz   = 16000000,
-               .chip_select    = 1,
-               .mode           = SPI_MODE_3,
-       },
-};
-#endif
-
-#ifdef CONFIG_BOARD_ATSTK100X_SPI1
-static struct spi_board_info spi1_board_info[] __initdata = { {
-       /* patch in custom entries here */
-} };
-#endif
-
-#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
-static struct mci_platform_data __initdata mci0_data = {
-       .slot[0] = {
-               .bus_width      = 4,
-               .detect_pin     = -ENODEV,
-               .wp_pin         = -ENODEV,
-       },
-};
-#endif
-
-#ifdef CONFIG_BOARD_ATSTK1000_EXTDAC
-static void __init atstk1004_setup_extdac(void)
-{
-       struct clk *gclk;
-       struct clk *pll;
-
-       gclk = clk_get(NULL, "gclk0");
-       if (IS_ERR(gclk))
-               goto err_gclk;
-       pll = clk_get(NULL, "pll0");
-       if (IS_ERR(pll))
-               goto err_pll;
-
-       if (clk_set_parent(gclk, pll)) {
-               pr_debug("STK1000: failed to set pll0 as parent for DAC clock\n");
-               goto err_set_clk;
-       }
-
-       at32_select_periph(GPIO_PIOA_BASE, (1 << 30), GPIO_PERIPH_A, 0);
-       at73c213_data.dac_clk = gclk;
-
-err_set_clk:
-       clk_put(pll);
-err_pll:
-       clk_put(gclk);
-err_gclk:
-       return;
-}
-#else
-static void __init atstk1004_setup_extdac(void)
-{
-
-}
-#endif /* CONFIG_BOARD_ATSTK1000_EXTDAC */
-
-void __init setup_board(void)
-{
-#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
-       at32_map_usart(0, 1, 0);        /* USART 0/B: /dev/ttyS1, IRDA */
-#else
-       at32_map_usart(1, 0, 0);        /* USART 1/A: /dev/ttyS0, DB9 */
-#endif
-       /* USART 2/unused: expansion connector */
-       at32_map_usart(3, 2, 0);        /* USART 3/C: /dev/ttyS2, DB9 */
-
-       at32_setup_serial_console(0);
-}
-
-static int __init atstk1004_init(void)
-{
-#ifdef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
-       at32_add_device_usart(1);
-#else
-       at32_add_device_usart(0);
-#endif
-       at32_add_device_usart(2);
-
-#ifndef CONFIG_BOARD_ATSTK100X_SW1_CUSTOM
-       at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info));
-#endif
-#ifdef CONFIG_BOARD_ATSTK100X_SPI1
-       at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
-#endif
-#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
-       at32_add_device_mci(0, &mci0_data);
-#endif
-       at32_add_device_lcdc(0, &atstk1000_lcdc_data,
-                            fbmem_start, fbmem_size,
-                            ATMEL_LCDC_PRI_24BIT | ATMEL_LCDC_PRI_CONTROL);
-       at32_add_device_usba(0, NULL);
-#ifndef CONFIG_BOARD_ATSTK100X_SW3_CUSTOM
-       at32_add_device_ssc(0, ATMEL_SSC_TX);
-#endif
-
-       atstk1000_setup_j2_leds();
-       atstk1004_setup_extdac();
-
-       return 0;
-}
-postcore_initcall(atstk1004_init);
diff --git a/arch/avr32/boards/atstk1000/flash.c b/arch/avr32/boards/atstk1000/flash.c
deleted file mode 100644 (file)
index 6e4d561..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * ATSTK1000 board-specific flash initialization
- *
- * Copyright (C) 2005-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/partitions.h>
-#include <linux/mtd/physmap.h>
-
-#include <mach/smc.h>
-
-static struct smc_timing flash_timing __initdata = {
-       .ncs_read_setup         = 0,
-       .nrd_setup              = 40,
-       .ncs_write_setup        = 0,
-       .nwe_setup              = 10,
-
-       .ncs_read_pulse         = 80,
-       .nrd_pulse              = 40,
-       .ncs_write_pulse        = 65,
-       .nwe_pulse              = 55,
-
-       .read_cycle             = 120,
-       .write_cycle            = 120,
-};
-
-static struct smc_config flash_config __initdata = {
-       .bus_width              = 2,
-       .nrd_controlled         = 1,
-       .nwe_controlled         = 1,
-       .byte_write             = 1,
-};
-
-static struct mtd_partition flash_parts[] = {
-       {
-               .name           = "u-boot",
-               .offset         = 0x00000000,
-               .size           = 0x00020000,           /* 128 KiB */
-               .mask_flags     = MTD_WRITEABLE,
-       },
-       {
-               .name           = "root",
-               .offset         = 0x00020000,
-               .size           = 0x007d0000,
-       },
-       {
-               .name           = "env",
-               .offset         = 0x007f0000,
-               .size           = 0x00010000,
-               .mask_flags     = MTD_WRITEABLE,
-       },
-};
-
-static struct physmap_flash_data flash_data = {
-       .width          = 2,
-       .nr_parts       = ARRAY_SIZE(flash_parts),
-       .parts          = flash_parts,
-};
-
-static struct resource flash_resource = {
-       .start          = 0x00000000,
-       .end            = 0x007fffff,
-       .flags          = IORESOURCE_MEM,
-};
-
-static struct platform_device flash_device = {
-       .name           = "physmap-flash",
-       .id             = 0,
-       .resource       = &flash_resource,
-       .num_resources  = 1,
-       .dev            = {
-               .platform_data = &flash_data,
-       },
-};
-
-/* This needs to be called after the SMC has been initialized */
-static int __init atstk1000_flash_init(void)
-{
-       int ret;
-
-       smc_set_timing(&flash_config, &flash_timing);
-       ret = smc_set_configuration(0, &flash_config);
-       if (ret < 0) {
-               printk(KERN_ERR "atstk1000: failed to set NOR flash timing\n");
-               return ret;
-       }
-
-       platform_device_register(&flash_device);
-
-       return 0;
-}
-device_initcall(atstk1000_flash_init);
diff --git a/arch/avr32/boards/atstk1000/setup.c b/arch/avr32/boards/atstk1000/setup.c
deleted file mode 100644 (file)
index b6b88f5..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * ATSTK1000 board-specific setup code.
- *
- * Copyright (C) 2005-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/bootmem.h>
-#include <linux/fb.h>
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/types.h>
-#include <linux/linkage.h>
-
-#include <video/atmel_lcdc.h>
-
-#include <asm/setup.h>
-
-#include <mach/at32ap700x.h>
-#include <mach/board.h>
-#include <mach/portmux.h>
-
-#include "atstk1000.h"
-
-/* Initialized by bootloader-specific startup code. */
-struct tag *bootloader_tags __initdata;
-
-static struct fb_videomode __initdata ltv350qv_modes[] = {
-       {
-               .name           = "320x240 @ 75",
-               .refresh        = 75,
-               .xres           = 320,          .yres           = 240,
-               .pixclock       = KHZ2PICOS(6891),
-
-               .left_margin    = 17,           .right_margin   = 33,
-               .upper_margin   = 10,           .lower_margin   = 10,
-               .hsync_len      = 16,           .vsync_len      = 1,
-
-               .sync           = 0,
-               .vmode          = FB_VMODE_NONINTERLACED,
-       },
-};
-
-static struct fb_monspecs __initdata atstk1000_default_monspecs = {
-       .manufacturer           = "SNG",
-       .monitor                = "LTV350QV",
-       .modedb                 = ltv350qv_modes,
-       .modedb_len             = ARRAY_SIZE(ltv350qv_modes),
-       .hfmin                  = 14820,
-       .hfmax                  = 22230,
-       .vfmin                  = 60,
-       .vfmax                  = 90,
-       .dclkmax                = 30000000,
-};
-
-struct atmel_lcdfb_pdata __initdata atstk1000_lcdc_data = {
-       .default_bpp            = 24,
-       .default_dmacon         = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
-       .default_lcdcon2        = (ATMEL_LCDC_DISTYPE_TFT
-                                  | ATMEL_LCDC_INVCLK
-                                  | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE
-                                  | ATMEL_LCDC_MEMOR_BIG),
-       .default_monspecs       = &atstk1000_default_monspecs,
-       .guard_time             = 2,
-};
-
-#ifdef CONFIG_BOARD_ATSTK1000_J2_LED
-#include <linux/leds.h>
-
-static struct gpio_led stk1000_j2_led[] = {
-#ifdef CONFIG_BOARD_ATSTK1000_J2_LED8
-#define LEDSTRING "J2 jumpered to LED8"
-       { .name = "led0:amber", .gpio = GPIO_PIN_PB( 8), },
-       { .name = "led1:amber", .gpio = GPIO_PIN_PB( 9), },
-       { .name = "led2:amber", .gpio = GPIO_PIN_PB(10), },
-       { .name = "led3:amber", .gpio = GPIO_PIN_PB(13), },
-       { .name = "led4:amber", .gpio = GPIO_PIN_PB(14), },
-       { .name = "led5:amber", .gpio = GPIO_PIN_PB(15), },
-       { .name = "led6:amber", .gpio = GPIO_PIN_PB(16), },
-       { .name = "led7:amber", .gpio = GPIO_PIN_PB(30),
-                       .default_trigger = "heartbeat", },
-#else  /* RGB */
-#define LEDSTRING "J2 jumpered to RGB LEDs"
-       { .name = "r1:red",     .gpio = GPIO_PIN_PB( 8), },
-       { .name = "g1:green",   .gpio = GPIO_PIN_PB(10), },
-       { .name = "b1:blue",    .gpio = GPIO_PIN_PB(14), },
-
-       { .name = "r2:red",     .gpio = GPIO_PIN_PB( 9),
-                       .default_trigger = "heartbeat", },
-       { .name = "g2:green",   .gpio = GPIO_PIN_PB(13), },
-       { .name = "b2:blue",    .gpio = GPIO_PIN_PB(15),
-                       .default_trigger = "heartbeat", },
-       /* PB16, PB30 unused */
-#endif
-};
-
-static struct gpio_led_platform_data stk1000_j2_led_data = {
-       .num_leds       = ARRAY_SIZE(stk1000_j2_led),
-       .leds           = stk1000_j2_led,
-};
-
-static struct platform_device stk1000_j2_led_dev = {
-       .name           = "leds-gpio",
-       .id             = 2,    /* gpio block J2 */
-       .dev            = {
-               .platform_data  = &stk1000_j2_led_data,
-       },
-};
-
-void __init atstk1000_setup_j2_leds(void)
-{
-       unsigned        i;
-
-       for (i = 0; i < ARRAY_SIZE(stk1000_j2_led); i++)
-               at32_select_gpio(stk1000_j2_led[i].gpio, AT32_GPIOF_OUTPUT);
-
-       printk("STK1000: " LEDSTRING "\n");
-       platform_device_register(&stk1000_j2_led_dev);
-}
-#else /* CONFIG_BOARD_ATSTK1000_J2_LED */
-void __init atstk1000_setup_j2_leds(void)
-{
-
-}
-#endif /* CONFIG_BOARD_ATSTK1000_J2_LED */
diff --git a/arch/avr32/boards/favr-32/Kconfig b/arch/avr32/boards/favr-32/Kconfig
deleted file mode 100644 (file)
index 2c83d1d..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# Favr-32 customization
-
-if BOARD_FAVR_32
-
-config BOARD_FAVR32_ABDAC_RATE
-       int "DAC target rate"
-       default 44100
-       range 32000 50000
-       help
-         Specify the target rate the internal DAC should try to match. This
-         will use PLL1 to generate a frequency as close as possible to this
-         rate.
-
-         Must be within the range 32000 to 50000, which should be suitable to
-         generate most other frequencies in power of 2 steps.
-
-         Ex:
-               48000 will also suit 24000 and 12000
-               44100 will also suit 22050 and 11025
-               32000 will also suit 16000 and 8000
-
-endif # BOARD_FAVR_32
diff --git a/arch/avr32/boards/favr-32/Makefile b/arch/avr32/boards/favr-32/Makefile
deleted file mode 100644 (file)
index 234f215..0000000
+++ /dev/null
@@ -1 +0,0 @@
-obj-y  += setup.o flash.o
diff --git a/arch/avr32/boards/favr-32/flash.c b/arch/avr32/boards/favr-32/flash.c
deleted file mode 100644 (file)
index 604bbd5..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Favr-32 board-specific flash initialization
- *
- * Copyright (C) 2008 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/partitions.h>
-#include <linux/mtd/physmap.h>
-
-#include <mach/smc.h>
-
-static struct smc_timing flash_timing __initdata = {
-       .ncs_read_setup         = 0,
-       .nrd_setup              = 40,
-       .ncs_write_setup        = 0,
-       .nwe_setup              = 10,
-
-       .ncs_read_pulse         = 80,
-       .nrd_pulse              = 40,
-       .ncs_write_pulse        = 65,
-       .nwe_pulse              = 55,
-
-       .read_cycle             = 120,
-       .write_cycle            = 120,
-};
-
-static struct smc_config flash_config __initdata = {
-       .bus_width              = 2,
-       .nrd_controlled         = 1,
-       .nwe_controlled         = 1,
-       .byte_write             = 1,
-};
-
-static struct mtd_partition flash_parts[] = {
-       {
-               .name           = "u-boot",
-               .offset         = 0x00000000,
-               .size           = 0x00020000,           /* 128 KiB */
-               .mask_flags     = MTD_WRITEABLE,
-       },
-       {
-               .name           = "root",
-               .offset         = 0x00020000,
-               .size           = 0x007d0000,
-       },
-       {
-               .name           = "env",
-               .offset         = 0x007f0000,
-               .size           = 0x00010000,
-               .mask_flags     = MTD_WRITEABLE,
-       },
-};
-
-static struct physmap_flash_data flash_data = {
-       .width          = 2,
-       .nr_parts       = ARRAY_SIZE(flash_parts),
-       .parts          = flash_parts,
-};
-
-static struct resource flash_resource = {
-       .start          = 0x00000000,
-       .end            = 0x007fffff,
-       .flags          = IORESOURCE_MEM,
-};
-
-static struct platform_device flash_device = {
-       .name           = "physmap-flash",
-       .id             = 0,
-       .resource       = &flash_resource,
-       .num_resources  = 1,
-       .dev            = {
-               .platform_data = &flash_data,
-       },
-};
-
-/* This needs to be called after the SMC has been initialized */
-static int __init favr32_flash_init(void)
-{
-       int ret;
-
-       smc_set_timing(&flash_config, &flash_timing);
-       ret = smc_set_configuration(0, &flash_config);
-       if (ret < 0) {
-               printk(KERN_ERR "Favr-32: failed to set NOR flash timing\n");
-               return ret;
-       }
-
-       platform_device_register(&flash_device);
-
-       return 0;
-}
-device_initcall(favr32_flash_init);
diff --git a/arch/avr32/boards/favr-32/setup.c b/arch/avr32/boards/favr-32/setup.c
deleted file mode 100644 (file)
index 234cb07..0000000
+++ /dev/null
@@ -1,366 +0,0 @@
-/*
- * Favr-32 board-specific setup code.
- *
- * Copyright (C) 2008 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/clk.h>
-#include <linux/etherdevice.h>
-#include <linux/bootmem.h>
-#include <linux/fb.h>
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/types.h>
-#include <linux/linkage.h>
-#include <linux/gpio.h>
-#include <linux/leds.h>
-#include <linux/atmel-mci.h>
-#include <linux/pwm.h>
-#include <linux/pwm_backlight.h>
-#include <linux/regulator/fixed.h>
-#include <linux/regulator/machine.h>
-#include <linux/spi/spi.h>
-#include <linux/spi/ads7846.h>
-
-#include <sound/atmel-abdac.h>
-
-#include <video/atmel_lcdc.h>
-
-#include <asm/setup.h>
-
-#include <mach/at32ap700x.h>
-#include <mach/init.h>
-#include <mach/board.h>
-#include <mach/portmux.h>
-
-#define PWM_BL_CH 2
-
-/* Oscillator frequencies. These are board-specific */
-unsigned long at32_board_osc_rates[3] = {
-       [0] = 32768,    /* 32.768 kHz on RTC osc */
-       [1] = 20000000, /* 20 MHz on osc0 */
-       [2] = 12000000, /* 12 MHz on osc1 */
-};
-
-/* Initialized by bootloader-specific startup code. */
-struct tag *bootloader_tags __initdata;
-
-static struct atmel_abdac_pdata __initdata abdac0_data = {
-};
-
-struct eth_addr {
-       u8 addr[6];
-};
-static struct eth_addr __initdata hw_addr[1];
-static struct macb_platform_data __initdata eth_data[1] = {
-       {
-               .phy_mask       = ~(1U << 1),
-       },
-};
-
-static int ads7843_get_pendown_state(void)
-{
-       return !gpio_get_value(GPIO_PIN_PB(3));
-}
-
-static struct ads7846_platform_data ads7843_data = {
-       .model                  = 7843,
-       .get_pendown_state      = ads7843_get_pendown_state,
-       .pressure_max           = 255,
-       /*
-        * Values below are for debounce filtering, these can be experimented
-        * with further.
-        */
-       .debounce_max           = 20,
-       .debounce_rep           = 4,
-       .debounce_tol           = 5,
-
-       .keep_vref_on           = true,
-       .settle_delay_usecs     = 500,
-       .penirq_recheck_delay_usecs = 100,
-};
-
-static struct spi_board_info __initdata spi1_board_info[] = {
-       {
-               /* ADS7843 touch controller */
-               .modalias       = "ads7846",
-               .max_speed_hz   = 2000000,
-               .chip_select    = 0,
-               .bus_num        = 1,
-               .platform_data  = &ads7843_data,
-       },
-};
-
-static struct mci_platform_data __initdata mci0_data = {
-       .slot[0] = {
-               .bus_width      = 4,
-               .detect_pin     = -ENODEV,
-               .wp_pin         = -ENODEV,
-       },
-};
-
-static struct fb_videomode __initdata lb104v03_modes[] = {
-       {
-               .name           = "640x480 @ 50",
-               .refresh        = 50,
-               .xres           = 640,          .yres           = 480,
-               .pixclock       = KHZ2PICOS(25100),
-
-               .left_margin    = 90,           .right_margin   = 70,
-               .upper_margin   = 30,           .lower_margin   = 15,
-               .hsync_len      = 12,           .vsync_len      = 2,
-
-               .sync           = 0,
-               .vmode          = FB_VMODE_NONINTERLACED,
-       },
-};
-
-static struct fb_monspecs __initdata favr32_default_monspecs = {
-       .manufacturer           = "LG",
-       .monitor                = "LB104V03",
-       .modedb                 = lb104v03_modes,
-       .modedb_len             = ARRAY_SIZE(lb104v03_modes),
-       .hfmin                  = 27273,
-       .hfmax                  = 31111,
-       .vfmin                  = 45,
-       .vfmax                  = 60,
-       .dclkmax                = 28000000,
-};
-
-struct atmel_lcdfb_pdata __initdata favr32_lcdc_data = {
-       .default_bpp            = 16,
-       .default_dmacon         = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
-       .default_lcdcon2        = (ATMEL_LCDC_DISTYPE_TFT
-                                  | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE
-                                  | ATMEL_LCDC_MEMOR_BIG),
-       .default_monspecs       = &favr32_default_monspecs,
-       .guard_time             = 2,
-};
-
-static struct gpio_led favr32_leds[] = {
-       {
-               .name            = "green",
-               .gpio            = GPIO_PIN_PE(19),
-               .default_trigger = "heartbeat",
-               .active_low      = 1,
-       },
-       {
-               .name            = "red",
-               .gpio            = GPIO_PIN_PE(20),
-               .active_low      = 1,
-       },
-};
-
-static struct gpio_led_platform_data favr32_led_data = {
-       .num_leds       = ARRAY_SIZE(favr32_leds),
-       .leds           = favr32_leds,
-};
-
-static struct platform_device favr32_led_dev = {
-       .name           = "leds-gpio",
-       .id             = 0,
-       .dev            = {
-               .platform_data  = &favr32_led_data,
-       },
-};
-
-/*
- * The next two functions should go away as the boot loader is
- * supposed to initialize the macb address registers with a valid
- * ethernet address. But we need to keep it around for a while until
- * we can be reasonably sure the boot loader does this.
- *
- * The phy_id is ignored as the driver will probe for it.
- */
-static int __init parse_tag_ethernet(struct tag *tag)
-{
-       int i;
-
-       i = tag->u.ethernet.mac_index;
-       if (i < ARRAY_SIZE(hw_addr))
-               memcpy(hw_addr[i].addr, tag->u.ethernet.hw_address,
-                      sizeof(hw_addr[i].addr));
-
-       return 0;
-}
-__tagtable(ATAG_ETHERNET, parse_tag_ethernet);
-
-static void __init set_hw_addr(struct platform_device *pdev)
-{
-       struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       const u8 *addr;
-       void __iomem *regs;
-       struct clk *pclk;
-
-       if (!res)
-               return;
-       if (pdev->id >= ARRAY_SIZE(hw_addr))
-               return;
-
-       addr = hw_addr[pdev->id].addr;
-       if (!is_valid_ether_addr(addr))
-               return;
-
-       /*
-        * Since this is board-specific code, we'll cheat and use the
-        * physical address directly as we happen to know that it's
-        * the same as the virtual address.
-        */
-       regs = (void __iomem __force *)res->start;
-       pclk = clk_get(&pdev->dev, "pclk");
-       if (IS_ERR(pclk))
-               return;
-
-       clk_enable(pclk);
-       __raw_writel((addr[3] << 24) | (addr[2] << 16)
-                    | (addr[1] << 8) | addr[0], regs + 0x98);
-       __raw_writel((addr[5] << 8) | addr[4], regs + 0x9c);
-       clk_disable(pclk);
-       clk_put(pclk);
-}
-
-void __init favr32_setup_leds(void)
-{
-       unsigned i;
-
-       for (i = 0; i < ARRAY_SIZE(favr32_leds); i++)
-               at32_select_gpio(favr32_leds[i].gpio, AT32_GPIOF_OUTPUT);
-
-       platform_device_register(&favr32_led_dev);
-}
-
-static struct pwm_lookup pwm_lookup[] = {
-       PWM_LOOKUP("at91sam9rl-pwm", PWM_BL_CH, "pwm-backlight.0", NULL,
-                  5000, PWM_POLARITY_INVERSED),
-};
-
-static struct regulator_consumer_supply fixed_power_consumers[] = {
-       REGULATOR_SUPPLY("power", "pwm-backlight.0"),
-};
-
-static struct platform_pwm_backlight_data pwm_bl_data = {
-       .enable_gpio            = GPIO_PIN_PA(28),
-       .max_brightness         = 255,
-       .dft_brightness         = 255,
-       .lth_brightness         = 50,
-};
-
-static struct platform_device pwm_bl_device = {
-       .name = "pwm-backlight",
-       .dev = {
-               .platform_data = &pwm_bl_data,
-       },
-};
-
-static void __init favr32_setup_atmel_pwm_bl(void)
-{
-       pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup));
-       regulator_register_always_on(0, "fixed", fixed_power_consumers,
-                                   ARRAY_SIZE(fixed_power_consumers), 3300000);
-       platform_device_register(&pwm_bl_device);
-       at32_select_gpio(pwm_bl_data.enable_gpio, 0);
-}
-
-void __init setup_board(void)
-{
-       at32_map_usart(3, 0, 0);        /* USART 3 => /dev/ttyS0 */
-       at32_setup_serial_console(0);
-}
-
-static int __init set_abdac_rate(struct platform_device *pdev)
-{
-       int retval;
-       struct clk *osc1;
-       struct clk *pll1;
-       struct clk *abdac;
-
-       if (pdev == NULL)
-               return -ENXIO;
-
-       osc1 = clk_get(NULL, "osc1");
-       if (IS_ERR(osc1)) {
-               retval = PTR_ERR(osc1);
-               goto out;
-       }
-
-       pll1 = clk_get(NULL, "pll1");
-       if (IS_ERR(pll1)) {
-               retval = PTR_ERR(pll1);
-               goto out_osc1;
-       }
-
-       abdac = clk_get(&pdev->dev, "sample_clk");
-       if (IS_ERR(abdac)) {
-               retval = PTR_ERR(abdac);
-               goto out_pll1;
-       }
-
-       retval = clk_set_parent(pll1, osc1);
-       if (retval != 0)
-               goto out_abdac;
-
-       /*
-        * Rate is 32000 to 50000 and ABDAC oversamples 256x. Multiply, in
-        * power of 2, to a value above 80 MHz. Power of 2 so it is possible
-        * for the generic clock to divide it down again and 80 MHz is the
-        * lowest frequency for the PLL.
-        */
-       retval = clk_round_rate(pll1,
-                       CONFIG_BOARD_FAVR32_ABDAC_RATE * 256 * 16);
-       if (retval <= 0) {
-               retval = -EINVAL;
-               goto out_abdac;
-       }
-
-       retval = clk_set_rate(pll1, retval);
-       if (retval != 0)
-               goto out_abdac;
-
-       retval = clk_set_parent(abdac, pll1);
-       if (retval != 0)
-               goto out_abdac;
-
-out_abdac:
-       clk_put(abdac);
-out_pll1:
-       clk_put(pll1);
-out_osc1:
-       clk_put(osc1);
-out:
-       return retval;
-}
-
-static int __init favr32_init(void)
-{
-       /*
-        * Favr-32 uses 32-bit SDRAM interface. Reserve the SDRAM-specific
-        * pins so that nobody messes with them.
-        */
-       at32_reserve_pin(GPIO_PIOE_BASE, ATMEL_EBI_PE_DATA_ALL);
-
-       at32_select_gpio(GPIO_PIN_PB(3), 0);    /* IRQ from ADS7843 */
-
-       at32_add_device_usart(0);
-
-       set_hw_addr(at32_add_device_eth(0, &eth_data[0]));
-
-       spi1_board_info[0].irq = gpio_to_irq(GPIO_PIN_PB(3));
-
-       set_abdac_rate(at32_add_device_abdac(0, &abdac0_data));
-
-       at32_add_device_pwm(1 << PWM_BL_CH);
-       at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
-       at32_add_device_mci(0, &mci0_data);
-       at32_add_device_usba(0, NULL);
-       at32_add_device_lcdc(0, &favr32_lcdc_data, fbmem_start, fbmem_size, 0);
-
-       favr32_setup_leds();
-
-       favr32_setup_atmel_pwm_bl();
-
-       return 0;
-}
-postcore_initcall(favr32_init);
diff --git a/arch/avr32/boards/hammerhead/Kconfig b/arch/avr32/boards/hammerhead/Kconfig
deleted file mode 100644 (file)
index 5c13d78..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-# Hammerhead customization
-
-if BOARD_HAMMERHEAD
-
-config BOARD_HAMMERHEAD_USB
-       bool "Philips ISP116x-hcd USB support"
-       help
-         This enables USB support for Hammerheads internal ISP116x
-         controller from Philips.
-
-         Choose 'Y' here if you want to have your board USB driven.
-
-config BOARD_HAMMERHEAD_LCD
-       bool "Atmel AT91/AT32 LCD support"
-       help
-         This enables LCD support for the Hammerhead board. You may
-         also add support for framebuffer devices (AT91/AT32 LCD Controller)
-         and framebuffer console support to get the most out of your LCD.
-
-         Choose 'Y' here if you have ordered a Corona daugther board and
-         want to have support for your Hantronix HDA-351T-LV LCD.
-
-config BOARD_HAMMERHEAD_SND
-       bool "Atmel AC97 Sound support"
-       help
-         This enables Sound support for the Hammerhead board. You may
-         also go through the ALSA settings to get it working.
-
-         Choose 'Y' here if you have ordered a Corona daugther board and
-         want to make your board funky.
-
-config BOARD_HAMMERHEAD_FPGA
-       bool "Hammerhead FPGA Support"
-       default y
-       help
-         This adds support for the Cyclone III FPGA from Altera
-         found on Miromico's Hammerhead board.
-
-         Choose 'Y' here if you want to have FPGA support enabled.
-         You will have to choose the "Hammerhead FPGA Device Support" in
-         Device Drivers->Misc to be able to use FPGA functionality.
-
-endif  # BOARD_ATNGW100
diff --git a/arch/avr32/boards/hammerhead/Makefile b/arch/avr32/boards/hammerhead/Makefile
deleted file mode 100644 (file)
index c740aa1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-obj-y                          += setup.o flash.o
diff --git a/arch/avr32/boards/hammerhead/flash.c b/arch/avr32/boards/hammerhead/flash.c
deleted file mode 100644 (file)
index e86280c..0000000
+++ /dev/null
@@ -1,381 +0,0 @@
-/*
- * Hammerhead board-specific flash initialization
- *
- * Copyright (C) 2008 Miromico AG
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/partitions.h>
-#include <linux/mtd/physmap.h>
-#include <linux/usb/isp116x.h>
-#include <linux/dma-mapping.h>
-#include <linux/delay.h>
-
-#include <mach/portmux.h>
-#include <mach/at32ap700x.h>
-#include <mach/smc.h>
-
-#include "../../mach-at32ap/clock.h"
-#include "flash.h"
-
-
-#define HAMMERHEAD_USB_PERIPH_GCLK0    0x40000000
-#define HAMMERHEAD_USB_PERIPH_CS2      0x02000000
-#define HAMMERHEAD_USB_PERIPH_EXTINT0  0x02000000
-
-#define HAMMERHEAD_FPGA_PERIPH_MOSI    0x00000002
-#define HAMMERHEAD_FPGA_PERIPH_SCK     0x00000020
-#define HAMMERHEAD_FPGA_PERIPH_EXTINT3 0x10000000
-
-static struct smc_timing flash_timing __initdata = {
-       .ncs_read_setup         = 0,
-       .nrd_setup              = 40,
-       .ncs_write_setup        = 0,
-       .nwe_setup              = 10,
-
-       .ncs_read_pulse         = 80,
-       .nrd_pulse              = 40,
-       .ncs_write_pulse        = 65,
-       .nwe_pulse              = 55,
-
-       .read_cycle             = 120,
-       .write_cycle            = 120,
-};
-
-static struct smc_config flash_config __initdata = {
-       .bus_width              = 2,
-       .nrd_controlled         = 1,
-       .nwe_controlled         = 1,
-       .byte_write             = 1,
-};
-
-static struct mtd_partition flash_parts[] = {
-       {
-               .name           = "u-boot",
-               .offset         = 0x00000000,
-               .size           = 0x00020000,           /* 128 KiB */
-               .mask_flags     = MTD_WRITEABLE,
-       },
-       {
-               .name           = "root",
-               .offset         = 0x00020000,
-               .size           = 0x007d0000,
-       },
-       {
-               .name           = "env",
-               .offset         = 0x007f0000,
-               .size           = 0x00010000,
-               .mask_flags     = MTD_WRITEABLE,
-       },
-};
-
-static struct physmap_flash_data flash_data = {
-       .width          = 2,
-       .nr_parts       = ARRAY_SIZE(flash_parts),
-       .parts          = flash_parts,
-};
-
-static struct resource flash_resource = {
-       .start          = 0x00000000,
-       .end            = 0x007fffff,
-       .flags          = IORESOURCE_MEM,
-};
-
-static struct platform_device flash_device = {
-       .name           = "physmap-flash",
-       .id             = 0,
-       .resource       = &flash_resource,
-       .num_resources  = 1,
-       .dev            = { .platform_data = &flash_data, },
-};
-
-#ifdef CONFIG_BOARD_HAMMERHEAD_USB
-
-static struct smc_timing isp1160_timing __initdata = {
-       .ncs_read_setup         = 75,
-       .nrd_setup              = 75,
-       .ncs_write_setup        = 75,
-       .nwe_setup              = 75,
-
-
-       /* We use conservative timing settings, as the minimal settings aren't
-          stable. There may be room for tweaking. */
-       .ncs_read_pulse         = 75,  /* min. 33ns */
-       .nrd_pulse              = 75,  /* min. 33ns */
-       .ncs_write_pulse        = 75,  /* min. 26ns */
-       .nwe_pulse              = 75,  /* min. 26ns */
-
-       .read_cycle             = 225, /* min. 143ns */
-       .write_cycle            = 225, /* min. 136ns */
-};
-
-static struct smc_config isp1160_config __initdata = {
-       .bus_width              = 2,
-       .nrd_controlled         = 1,
-       .nwe_controlled         = 1,
-       .byte_write             = 0,
-};
-
-/*
- * The platform delay function is only used to enforce the strange
- * read to write delay. This can not be configured in the SMC. All other
- * timings are controlled by the SMC (see timings obove)
- * So in isp116x-hcd.c we should comment out USE_PLATFORM_DELAY
- */
-void isp116x_delay(struct device *dev, int delay)
-{
-       if (delay > 150)
-               ndelay(delay - 150);
-}
-
-static struct  isp116x_platform_data isp1160_data = {
-       .sel15Kres              = 1,    /* use internal downstream resistors */
-       .oc_enable              = 0,    /* external overcurrent detection */
-       .int_edge_triggered     = 0,    /* interrupt is level triggered */
-       .int_act_high           = 0,    /* interrupt is active low */
-       .delay = isp116x_delay,         /* platform delay function */
-};
-
-static struct resource isp1160_resource[] = {
-       {
-               .start          = 0x08000000,
-               .end            = 0x08000001,
-               .flags          = IORESOURCE_MEM,
-       },
-       {
-               .start          = 0x08000002,
-               .end            = 0x08000003,
-               .flags          = IORESOURCE_MEM,
-       },
-       {
-               .start          = 64,
-               .flags          = IORESOURCE_IRQ,
-       },
-};
-
-static struct platform_device isp1160_device = {
-       .name           = "isp116x-hcd",
-       .id             = 0,
-       .resource       = isp1160_resource,
-       .num_resources  = 3,
-       .dev            = {
-               .platform_data = &isp1160_data,
-       },
-};
-#endif
-
-#ifdef CONFIG_BOARD_HAMMERHEAD_USB
-static int __init hammerhead_usbh_init(void)
-{
-       struct clk *gclk;
-       struct clk *osc;
-
-       int ret;
-
-       /* setup smc for usbh */
-       smc_set_timing(&isp1160_config, &isp1160_timing);
-       ret = smc_set_configuration(2, &isp1160_config);
-
-       if (ret < 0) {
-               printk(KERN_ERR
-                      "hammerhead: failed to set ISP1160 USBH timing\n");
-               return ret;
-       }
-
-       /* setup gclk0 to run from osc1 */
-       gclk = clk_get(NULL, "gclk0");
-       if (IS_ERR(gclk)) {
-               ret = PTR_ERR(gclk);
-               goto err_gclk;
-       }
-
-       osc = clk_get(NULL, "osc1");
-       if (IS_ERR(osc)) {
-               ret = PTR_ERR(osc);
-               goto err_osc;
-       }
-
-       ret = clk_set_parent(gclk, osc);
-       if (ret < 0) {
-               pr_debug("hammerhead: failed to set osc1 for USBH clock\n");
-               goto err_set_clk;
-       }
-
-       /* set clock to 6MHz */
-       clk_set_rate(gclk, 6000000);
-
-       /* and enable */
-       clk_enable(gclk);
-
-       /* select GCLK0 peripheral function */
-       at32_select_periph(GPIO_PIOA_BASE, HAMMERHEAD_USB_PERIPH_GCLK0,
-                          GPIO_PERIPH_A, 0);
-
-       /* enable CS2 peripheral function */
-       at32_select_periph(GPIO_PIOE_BASE, HAMMERHEAD_USB_PERIPH_CS2,
-                          GPIO_PERIPH_A, 0);
-
-       /* H_WAKEUP must be driven low */
-       at32_select_gpio(GPIO_PIN_PA(8), AT32_GPIOF_OUTPUT);
-
-       /* Select EXTINT0 for PB25 */
-       at32_select_periph(GPIO_PIOB_BASE, HAMMERHEAD_USB_PERIPH_EXTINT0,
-                          GPIO_PERIPH_A, 0);
-
-       /* register usbh device driver */
-       platform_device_register(&isp1160_device);
-
- err_set_clk:
-       clk_put(osc);
- err_osc:
-       clk_put(gclk);
- err_gclk:
-       return ret;
-}
-#endif
-
-#ifdef CONFIG_BOARD_HAMMERHEAD_FPGA
-static struct smc_timing fpga_timing __initdata = {
-       .ncs_read_setup         = 16,
-       .nrd_setup              = 32,
-       .ncs_read_pulse         = 48,
-       .nrd_pulse              = 32,
-       .read_cycle             = 64,
-
-       .ncs_write_setup        = 16,
-       .nwe_setup              = 16,
-       .ncs_write_pulse        = 32,
-       .nwe_pulse              = 32,
-       .write_cycle            = 64,
-};
-
-static struct smc_config fpga_config __initdata = {
-       .bus_width              = 4,
-       .nrd_controlled         = 1,
-       .nwe_controlled         = 1,
-       .byte_write             = 0,
-};
-
-static struct resource hh_fpga0_resource[] = {
-       {
-               .start          = 0xffe00400,
-               .end            = 0xffe00400 + 0x3ff,
-               .flags          = IORESOURCE_MEM,
-       },
-       {
-               .start          = 4,
-               .end            = 4,
-               .flags          = IORESOURCE_IRQ,
-       },
-       {
-               .start          = 0x0c000000,
-               .end            = 0x0c000100,
-               .flags          = IORESOURCE_MEM,
-       },
-       {
-               .start          = 67,
-               .end            = 67,
-               .flags          = IORESOURCE_IRQ,
-       },
-};
-
-static u64 hh_fpga0_dma_mask = DMA_BIT_MASK(32);
-static struct platform_device hh_fpga0_device = {
-       .name           = "hh_fpga",
-       .id             = 0,
-       .dev            = {
-               .dma_mask = &hh_fpga0_dma_mask,
-               .coherent_dma_mask = DMA_BIT_MASK(32),
-       },
-       .resource       = hh_fpga0_resource,
-       .num_resources  = ARRAY_SIZE(hh_fpga0_resource),
-};
-
-static struct clk hh_fpga0_spi_clk = {
-       .name           = "spi_clk",
-       .dev            = &hh_fpga0_device.dev,
-       .mode           = pba_clk_mode,
-       .get_rate       = pba_clk_get_rate,
-       .index          = 1,
-};
-
-struct platform_device *__init at32_add_device_hh_fpga(void)
-{
-       /* Select peripheral functionallity for SPI SCK and MOSI */
-       at32_select_periph(GPIO_PIOB_BASE, HAMMERHEAD_FPGA_PERIPH_SCK,
-                          GPIO_PERIPH_B, 0);
-       at32_select_periph(GPIO_PIOB_BASE, HAMMERHEAD_FPGA_PERIPH_MOSI,
-                          GPIO_PERIPH_B, 0);
-
-       /* reserve all other needed gpio
-        * We have on board pull ups, so there is no need
-        * to enable gpio pull ups */
-       /* INIT_DONE (input) */
-       at32_select_gpio(GPIO_PIN_PB(0), 0);
-
-       /* nSTATUS (input) */
-       at32_select_gpio(GPIO_PIN_PB(2), 0);
-
-       /* nCONFIG (output, low) */
-       at32_select_gpio(GPIO_PIN_PB(3), AT32_GPIOF_OUTPUT);
-
-       /* CONF_DONE (input) */
-       at32_select_gpio(GPIO_PIN_PB(4), 0);
-
-       /* Select EXTINT3 for PB28 (Interrupt from FPGA) */
-       at32_select_periph(GPIO_PIOB_BASE, HAMMERHEAD_FPGA_PERIPH_EXTINT3,
-                          GPIO_PERIPH_A, 0);
-
-       /* Get our parent clock */
-       hh_fpga0_spi_clk.parent = clk_get(NULL, "pba");
-       clk_put(hh_fpga0_spi_clk.parent);
-
-       /* Register clock in at32 clock tree */
-       at32_clk_register(&hh_fpga0_spi_clk);
-
-       platform_device_register(&hh_fpga0_device);
-       return &hh_fpga0_device;
-}
-#endif
-
-/* This needs to be called after the SMC has been initialized */
-static int __init hammerhead_flash_init(void)
-{
-       int ret;
-
-       smc_set_timing(&flash_config, &flash_timing);
-       ret = smc_set_configuration(0, &flash_config);
-
-       if (ret < 0) {
-               printk(KERN_ERR "hammerhead: failed to set NOR flash timing\n");
-               return ret;
-       }
-
-       platform_device_register(&flash_device);
-
-#ifdef CONFIG_BOARD_HAMMERHEAD_USB
-       hammerhead_usbh_init();
-#endif
-
-#ifdef CONFIG_BOARD_HAMMERHEAD_FPGA
-       /* Setup SMC for FPGA interface */
-       smc_set_timing(&fpga_config, &fpga_timing);
-       ret = smc_set_configuration(3, &fpga_config);
-#endif
-
-
-       if (ret < 0) {
-               printk(KERN_ERR "hammerhead: failed to set FPGA timing\n");
-               return ret;
-       }
-
-       return 0;
-}
-
-device_initcall(hammerhead_flash_init);
diff --git a/arch/avr32/boards/hammerhead/flash.h b/arch/avr32/boards/hammerhead/flash.h
deleted file mode 100644 (file)
index ea70c62..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __BOARDS_HAMMERHEAD_FLASH_H
-#define __BOARDS_HAMMERHEAD_FLASH_H
-
-struct platform_device *at32_add_device_hh_fpga(void);
-
-#endif /* __BOARDS_HAMMERHEAD_FLASH_H */
diff --git a/arch/avr32/boards/hammerhead/setup.c b/arch/avr32/boards/hammerhead/setup.c
deleted file mode 100644 (file)
index dc0e317..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * Board-specific setup code for the Miromico Hammerhead board
- *
- * Copyright (C) 2008 Miromico AG
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/atmel-mci.h>
-#include <linux/clk.h>
-#include <linux/fb.h>
-#include <linux/etherdevice.h>
-#include <linux/i2c.h>
-#include <linux/i2c-gpio.h>
-#include <linux/init.h>
-#include <linux/linkage.h>
-#include <linux/platform_device.h>
-#include <linux/types.h>
-#include <linux/spi/spi.h>
-
-#include <video/atmel_lcdc.h>
-
-#include <linux/io.h>
-#include <asm/setup.h>
-
-#include <mach/at32ap700x.h>
-#include <mach/board.h>
-#include <mach/init.h>
-#include <mach/portmux.h>
-
-#include <sound/atmel-ac97c.h>
-
-#include "../../mach-at32ap/clock.h"
-#include "flash.h"
-
-/* Oscillator frequencies. These are board-specific */
-unsigned long at32_board_osc_rates[3] = {
-       [0] = 32768,    /* 32.768 kHz on RTC osc */
-       [1] = 25000000, /* 25MHz on osc0 */
-       [2] = 12000000, /* 12 MHz on osc1 */
-};
-
-/* Initialized by bootloader-specific startup code. */
-struct tag *bootloader_tags __initdata;
-
-#ifdef CONFIG_BOARD_HAMMERHEAD_LCD
-static struct fb_videomode __initdata hda350tlv_modes[] = {
-       {
-               .name           = "320x240 @ 75",
-               .refresh        = 75,
-               .xres           = 320,
-               .yres           = 240,
-               .pixclock       = KHZ2PICOS(6891),
-
-               .left_margin    = 48,
-               .right_margin   = 18,
-               .upper_margin   = 18,
-               .lower_margin   = 4,
-               .hsync_len      = 20,
-               .vsync_len      = 2,
-
-               .sync           = 0,
-               .vmode          = FB_VMODE_NONINTERLACED,
-       },
-};
-
-static struct fb_monspecs __initdata hammerhead_hda350t_monspecs = {
-       .manufacturer           = "HAN",
-       .monitor                = "HDA350T-LV",
-       .modedb                 = hda350tlv_modes,
-       .modedb_len             = ARRAY_SIZE(hda350tlv_modes),
-       .hfmin                  = 14900,
-       .hfmax                  = 22350,
-       .vfmin                  = 60,
-       .vfmax                  = 90,
-       .dclkmax                = 10000000,
-};
-
-struct atmel_lcdfb_pdata __initdata hammerhead_lcdc_data = {
-       .default_bpp            = 24,
-       .default_dmacon         = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
-       .default_lcdcon2        = (ATMEL_LCDC_DISTYPE_TFT
-                                  | ATMEL_LCDC_INVCLK
-                                  | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE
-                                  | ATMEL_LCDC_MEMOR_BIG),
-       .default_monspecs       = &hammerhead_hda350t_monspecs,
-       .guard_time             = 2,
-};
-#endif
-
-static struct mci_platform_data __initdata mci0_data = {
-       .slot[0] = {
-               .bus_width      = 4,
-               .detect_pin     = -ENODEV,
-               .wp_pin         = -ENODEV,
-       },
-};
-
-struct eth_addr {
-       u8 addr[6];
-};
-
-static struct eth_addr __initdata hw_addr[1];
-static struct macb_platform_data __initdata eth_data[1];
-
-/*
- * The next two functions should go away as the boot loader is
- * supposed to initialize the macb address registers with a valid
- * ethernet address. But we need to keep it around for a while until
- * we can be reasonably sure the boot loader does this.
- *
- * The phy_id is ignored as the driver will probe for it.
- */
-static int __init parse_tag_ethernet(struct tag *tag)
-{
-       int i = tag->u.ethernet.mac_index;
-
-       if (i < ARRAY_SIZE(hw_addr))
-               memcpy(hw_addr[i].addr, tag->u.ethernet.hw_address,
-                      sizeof(hw_addr[i].addr));
-
-       return 0;
-}
-__tagtable(ATAG_ETHERNET, parse_tag_ethernet);
-
-static void __init set_hw_addr(struct platform_device *pdev)
-{
-       struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       const u8 *addr;
-       void __iomem *regs;
-       struct clk *pclk;
-
-       if (!res)
-               return;
-
-       if (pdev->id >= ARRAY_SIZE(hw_addr))
-               return;
-
-       addr = hw_addr[pdev->id].addr;
-
-       if (!is_valid_ether_addr(addr))
-               return;
-
-       /*
-        * Since this is board-specific code, we'll cheat and use the
-        * physical address directly as we happen to know that it's
-        * the same as the virtual address.
-        */
-       regs = (void __iomem __force *)res->start;
-       pclk = clk_get(&pdev->dev, "pclk");
-
-       if (IS_ERR(pclk))
-               return;
-
-       clk_enable(pclk);
-
-       __raw_writel((addr[3] << 24) | (addr[2] << 16) | (addr[1] << 8) |
-                    addr[0], regs + 0x98);
-       __raw_writel((addr[5] << 8) | addr[4], regs + 0x9c);
-
-       clk_disable(pclk);
-       clk_put(pclk);
-}
-
-void __init setup_board(void)
-{
-       at32_map_usart(1, 0, 0);        /* USART 1: /dev/ttyS0, DB9 */
-       at32_setup_serial_console(0);
-}
-
-static struct i2c_gpio_platform_data i2c_gpio_data = {
-       .sda_pin                = GPIO_PIN_PA(6),
-       .scl_pin                = GPIO_PIN_PA(7),
-       .sda_is_open_drain      = 1,
-       .scl_is_open_drain      = 1,
-       .udelay                 = 2,    /* close to 100 kHz */
-};
-
-static struct platform_device i2c_gpio_device = {
-       .name           = "i2c-gpio",
-       .id             = 0,
-       .dev            = { .platform_data = &i2c_gpio_data, },
-};
-
-static struct i2c_board_info __initdata i2c_info[] = {};
-
-#ifdef CONFIG_BOARD_HAMMERHEAD_SND
-static struct ac97c_platform_data ac97c_data = {
-       .reset_pin = GPIO_PIN_PA(16),
-};
-#endif
-
-static int __init hammerhead_init(void)
-{
-       /*
-        * Hammerhead uses 32-bit SDRAM interface. Reserve the
-        * SDRAM-specific pins so that nobody messes with them.
-        */
-       at32_reserve_pin(GPIO_PIOE_BASE, ATMEL_EBI_PE_DATA_ALL);
-
-       at32_add_device_usart(0);
-
-       /* Reserve PB29 (GCLK3). This pin is used as clock source
-        * for ETH PHY (25MHz). GCLK3 setup is done by U-Boot.
-        */
-       at32_reserve_pin(GPIO_PIOB_BASE, (1<<29));
-
-       /*
-        * Hammerhead uses only one ethernet port, so we don't set
-        * address of second port
-        */
-       set_hw_addr(at32_add_device_eth(0, &eth_data[0]));
-
-#ifdef CONFIG_BOARD_HAMMERHEAD_FPGA
-       at32_add_device_hh_fpga();
-#endif
-       at32_add_device_mci(0, &mci0_data);
-
-#ifdef CONFIG_BOARD_HAMMERHEAD_USB
-       at32_add_device_usba(0, NULL);
-#endif
-#ifdef CONFIG_BOARD_HAMMERHEAD_LCD
-       at32_add_device_lcdc(0, &hammerhead_lcdc_data, fbmem_start,
-                            fbmem_size, ATMEL_LCDC_PRI_24BIT);
-#endif
-
-       at32_select_gpio(i2c_gpio_data.sda_pin,
-                        AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT |
-                        AT32_GPIOF_HIGH);
-       at32_select_gpio(i2c_gpio_data.scl_pin,
-                        AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT |
-                        AT32_GPIOF_HIGH);
-       platform_device_register(&i2c_gpio_device);
-       i2c_register_board_info(0, i2c_info, ARRAY_SIZE(i2c_info));
-
-#ifdef CONFIG_BOARD_HAMMERHEAD_SND
-       at32_add_device_ac97c(0, &ac97c_data, AC97C_BOTH);
-#endif
-
-       /* Select the Touchscreen interrupt pin mode */
-       at32_select_periph(GPIO_PIOB_BASE, 0x08000000, GPIO_PERIPH_A, 0);
-
-       return 0;
-}
-
-postcore_initcall(hammerhead_init);
diff --git a/arch/avr32/boards/merisc/Kconfig b/arch/avr32/boards/merisc/Kconfig
deleted file mode 100644 (file)
index 7e04327..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# Merisc customization
-
-if BOARD_MERISC
-
-endif  # BOARD_MERISC
diff --git a/arch/avr32/boards/merisc/Makefile b/arch/avr32/boards/merisc/Makefile
deleted file mode 100644 (file)
index d24c787..0000000
+++ /dev/null
@@ -1 +0,0 @@
-obj-y                                  += setup.o flash.o display.o merisc_sysfs.o
diff --git a/arch/avr32/boards/merisc/display.c b/arch/avr32/boards/merisc/display.c
deleted file mode 100644 (file)
index e7683ee..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Display setup code for the Merisc board
- *
- * Copyright (C) 2008 Martinsson Elektronik AB
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/fb.h>
-#include <video/atmel_lcdc.h>
-#include <asm/setup.h>
-#include <mach/board.h>
-#include "merisc.h"
-
-static struct fb_videomode merisc_fb_videomode[] = {
-       {
-               .refresh        = 44,
-               .xres           = 640,
-               .yres           = 480,
-               .left_margin    = 96,
-               .right_margin   = 96,
-               .upper_margin   = 34,
-               .lower_margin   = 8,
-               .hsync_len      = 64,
-               .vsync_len      = 64,
-               .name           = "640x480 @ 44",
-               .pixclock       = KHZ2PICOS(25180),
-               .sync           = 0,
-               .vmode          = FB_VMODE_NONINTERLACED,
-       },
-};
-
-static struct fb_monspecs merisc_fb_monspecs = {
-       .manufacturer   = "Kyo",
-       .monitor        = "TCG075VG2AD",
-       .modedb         = merisc_fb_videomode,
-       .modedb_len     = ARRAY_SIZE(merisc_fb_videomode),
-       .hfmin          = 30000,
-       .hfmax          = 33333,
-       .vfmin          = 60,
-       .vfmax          = 90,
-       .dclkmax        = 30000000,
-};
-
-struct atmel_lcdfb_pdata merisc_lcdc_data = {
-       .default_bpp            = 24,
-       .default_dmacon         = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
-       .default_lcdcon2        = (ATMEL_LCDC_DISTYPE_TFT
-                                  | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE
-                                  | ATMEL_LCDC_MEMOR_BIG),
-       .default_monspecs       = &merisc_fb_monspecs,
-       .guard_time             = 2,
-};
-
-static int __init merisc_display_init(void)
-{
-       at32_add_device_lcdc(0, &merisc_lcdc_data, fbmem_start,
-                            fbmem_size, 0);
-
-       return 0;
-}
-device_initcall(merisc_display_init);
diff --git a/arch/avr32/boards/merisc/flash.c b/arch/avr32/boards/merisc/flash.c
deleted file mode 100644 (file)
index 8e856fd..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Merisc board-specific flash initialization
- *
- * Copyright (C) 2008 Martinsson Elektronik AB
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/partitions.h>
-#include <linux/mtd/physmap.h>
-#include <mach/smc.h>
-
-/* Will be translated to units of 14.3 ns, rounded up */
-static struct smc_timing flash_timing __initdata = {
-       .ncs_read_setup         = 1 * 14,
-       .nrd_setup              = 5 * 14,
-       .ncs_write_setup        = 1 * 14,
-       .nwe_setup              = 2 * 14,
-
-       .ncs_read_pulse         = 12 * 14,
-       .nrd_pulse              = 7 * 14,
-       .ncs_write_pulse        = 8 * 14,
-       .nwe_pulse              = 4 * 14,
-
-       .read_cycle             = 14 * 14,
-       .write_cycle            = 10 * 14,
-};
-
-static struct smc_config flash_config __initdata = {
-       .bus_width      = 2,
-       .nrd_controlled = 1,
-       .nwe_controlled = 1,
-       .byte_write     = 1,
-       .tdf_cycles     = 3,
-};
-
-static struct mtd_partition flash_0_parts[] = {
-       {
-               .name           = "boot",
-               .offset         = 0x00000000,
-               .size           = 0x00060000,
-               .mask_flags     = 0,
-       },
-       {
-               .name           = "kernel",
-               .offset         = 0x00060000,
-               .size           = 0x00200000,
-               .mask_flags     = 0,
-       },
-       {
-               .name           = "root",
-               .offset         = 0x00260000,
-               .size           = MTDPART_SIZ_FULL,
-               .mask_flags     = 0,
-       },
-};
-
-static struct mtd_partition flash_1_parts[] = {
-       {
-               .name           = "2ndflash",
-               .offset         = 0x00000000,
-               .size           = MTDPART_SIZ_FULL,
-               .mask_flags     = 0,
-       },
-};
-
-static struct physmap_flash_data flash_data[] = {
-       {
-               .width          = 2,
-               .nr_parts       = ARRAY_SIZE(flash_0_parts),
-               .parts          = flash_0_parts,
-       },
-       {
-               .width          = 2,
-               .nr_parts       = ARRAY_SIZE(flash_1_parts),
-               .parts          = flash_1_parts,
-       }
-};
-
-static struct resource flash_resource[] = {
-       {
-               .start          = 0x00000000,
-               .end            = 0x03ffffff,
-               .flags          = IORESOURCE_MEM,
-       },
-       {
-               .start          = 0x04000000,
-               .end            = 0x07ffffff,
-               .flags          = IORESOURCE_MEM,
-       },
-};
-
-static struct platform_device flash_device[] = {
-       {
-               .name           = "physmap-flash",
-               .id             = 0,
-               .resource       = &flash_resource[0],
-               .num_resources  = 1,
-               .dev            = {
-                       .platform_data  = &flash_data[0],
-               },
-       },
-       {
-               .name           = "physmap-flash",
-               .id             = 1,
-               .resource       = &flash_resource[1],
-               .num_resources  = 1,
-               .dev            = {
-                       .platform_data  = &flash_data[1],
-               },
-       },
-};
-
-static int __init merisc_flash_init(void)
-{
-       int ret;
-       smc_set_timing(&flash_config, &flash_timing);
-
-       ret = smc_set_configuration(0, &flash_config);
-       if (ret < 0) {
-               printk(KERN_ERR "Merisc: failed to set NOR flash timing #0\n");
-               return ret;
-       }
-
-       ret = smc_set_configuration(4, &flash_config);
-       if (ret < 0) {
-               printk(KERN_ERR "Merisc: failed to set NOR flash timing #1\n");
-               return ret;
-       }
-
-       platform_device_register(&flash_device[0]);
-       platform_device_register(&flash_device[1]);
-       return 0;
-}
-device_initcall(merisc_flash_init);
diff --git a/arch/avr32/boards/merisc/merisc.h b/arch/avr32/boards/merisc/merisc.h
deleted file mode 100644 (file)
index 50ffb2f..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Merisc exports
- *
- * Copyright (C) 2008 Martinsson Elektronik AB
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ARCH_AVR32_BOARDS_MERISC_MERISC_H
-#define __ARCH_AVR32_BOARDS_MERISC_MERISC_H
-
-const char *merisc_revision(void);
-const char *merisc_model(void);
-
-extern struct class merisc_class;
-
-#endif /* __ARCH_AVR32_BOARDS_MERISC_MERISC_H */
diff --git a/arch/avr32/boards/merisc/merisc_sysfs.c b/arch/avr32/boards/merisc/merisc_sysfs.c
deleted file mode 100644 (file)
index 5a25231..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Merisc sysfs exports
- *
- * Copyright (C) 2008 Martinsson Elektronik AB
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/module.h>
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/list.h>
-#include <linux/spinlock.h>
-#include <linux/device.h>
-#include <linux/timer.h>
-#include <linux/err.h>
-#include <linux/ctype.h>
-#include "merisc.h"
-
-static ssize_t merisc_model_show(struct class *class, char *buf)
-{
-       ssize_t ret = 0;
-
-       sprintf(buf, "%s\n", merisc_model());
-       ret = strlen(buf) + 1;
-
-       return ret;
-}
-
-static ssize_t merisc_revision_show(struct class *class, char *buf)
-{
-       ssize_t ret = 0;
-
-       sprintf(buf, "%s\n", merisc_revision());
-       ret = strlen(buf) + 1;
-
-       return ret;
-}
-
-static struct class_attribute merisc_class_attrs[] = {
-       __ATTR(model, S_IRUGO, merisc_model_show, NULL),
-       __ATTR(revision, S_IRUGO, merisc_revision_show, NULL),
-       __ATTR_NULL,
-};
-
-struct class merisc_class = {
-       .name =         "merisc",
-       .owner =        THIS_MODULE,
-       .class_attrs =  merisc_class_attrs,
-};
-
-static int __init merisc_sysfs_init(void)
-{
-       int status;
-
-       status = class_register(&merisc_class);
-       if (status < 0)
-               return status;
-
-       return 0;
-}
-
-postcore_initcall(merisc_sysfs_init);
diff --git a/arch/avr32/boards/merisc/setup.c b/arch/avr32/boards/merisc/setup.c
deleted file mode 100644 (file)
index 718a6d7..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
- * Board-specific setup code for the Merisc
- *
- * Copyright (C) 2008 Martinsson Elektronik AB
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/clk.h>
-#include <linux/etherdevice.h>
-#include <linux/i2c.h>
-#include <linux/i2c-gpio.h>
-#include <linux/gpio.h>
-#include <linux/init.h>
-#include <linux/linkage.h>
-#include <linux/platform_device.h>
-#include <linux/types.h>
-#include <linux/leds.h>
-#include <linux/spi/spi.h>
-#include <linux/spi/ads7846.h>
-#include <linux/irq.h>
-#include <linux/fb.h>
-#include <linux/atmel-mci.h>
-#include <linux/pwm.h>
-#include <linux/leds_pwm.h>
-
-#include <asm/io.h>
-#include <asm/setup.h>
-
-#include <mach/at32ap700x.h>
-#include <mach/board.h>
-#include <mach/init.h>
-#include <mach/portmux.h>
-
-#include "merisc.h"
-
-/* Holds the autodetected board model and revision */
-static int merisc_board_id;
-
-/* Initialized by bootloader-specific startup code. */
-struct tag *bootloader_tags __initdata;
-
-/* Oscillator frequencies. These are board specific */
-unsigned long at32_board_osc_rates[3] = {
-       [0]     = 32768,        /* 32.768 kHz on RTC osc */
-       [1]     = 20000000,     /* 20 MHz on osc0 */
-       [2]     = 12000000,     /* 12 MHz on osc1 */
-};
-
-struct eth_addr {
-       u8 addr[6];
-};
-
-static struct eth_addr __initdata hw_addr[2];
-static struct macb_platform_data __initdata eth_data[2];
-
-static int ads7846_get_pendown_state_PB26(void)
-{
-       return !gpio_get_value(GPIO_PIN_PB(26));
-}
-
-static int ads7846_get_pendown_state_PB28(void)
-{
-       return !gpio_get_value(GPIO_PIN_PB(28));
-}
-
-static struct ads7846_platform_data __initdata ads7846_data = {
-       .model                          = 7846,
-       .vref_delay_usecs               = 100,
-       .vref_mv                        = 0,
-       .keep_vref_on                   = 0,
-       .settle_delay_usecs             = 150,
-       .penirq_recheck_delay_usecs     = 1,
-       .x_plate_ohms                   = 800,
-       .debounce_rep                   = 4,
-       .debounce_max                   = 10,
-       .debounce_tol                   = 50,
-       .get_pendown_state              = ads7846_get_pendown_state_PB26,
-       .filter_init                    = NULL,
-       .filter                         = NULL,
-       .filter_cleanup                 = NULL,
-};
-
-static struct spi_board_info __initdata spi0_board_info[] = {
-       {
-               .modalias       = "ads7846",
-               .max_speed_hz   = 3250000,
-               .chip_select    = 0,
-               .bus_num        = 0,
-               .platform_data  = &ads7846_data,
-               .mode           = SPI_MODE_0,
-       },
-};
-
-static struct mci_platform_data __initdata mci0_data = {
-       .slot[0] = {
-               .bus_width              = 4,
-               .detect_pin             = GPIO_PIN_PE(19),
-               .wp_pin                 = GPIO_PIN_PE(20),
-               .detect_is_active_high  = true,
-       },
-};
-
-static int __init parse_tag_ethernet(struct tag *tag)
-{
-       int i;
-
-       i = tag->u.ethernet.mac_index;
-       if (i < ARRAY_SIZE(hw_addr)) {
-               memcpy(hw_addr[i].addr, tag->u.ethernet.hw_address,
-                      sizeof(hw_addr[i].addr));
-       }
-
-       return 0;
-}
-__tagtable(ATAG_ETHERNET, parse_tag_ethernet);
-
-static void __init set_hw_addr(struct platform_device *pdev)
-{
-       struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       const u8 *addr;
-       void __iomem *regs;
-       struct clk *pclk;
-
-       if (!res)
-               return;
-
-       if (pdev->id >= ARRAY_SIZE(hw_addr))
-               return;
-
-       addr = hw_addr[pdev->id].addr;
-       if (!is_valid_ether_addr(addr))
-               return;
-
-       regs = (void __iomem __force *)res->start;
-       pclk = clk_get(&pdev->dev, "pclk");
-       if (IS_ERR(pclk))
-               return;
-
-       clk_enable(pclk);
-       __raw_writel((addr[3] << 24) | (addr[2] << 16)
-                    | (addr[1] << 8) | addr[0], regs + 0x98);
-       __raw_writel((addr[5] << 8) | addr[4], regs + 0x9c);
-       clk_disable(pclk);
-       clk_put(pclk);
-}
-
-static struct i2c_gpio_platform_data i2c_gpio_data = {
-       .sda_pin                = GPIO_PIN_PA(6),
-       .scl_pin                = GPIO_PIN_PA(7),
-       .sda_is_open_drain      = 1,
-       .scl_is_open_drain      = 1,
-       .udelay                 = 2,
-};
-
-static struct platform_device i2c_gpio_device = {
-       .name   = "i2c-gpio",
-       .id     = 0,
-       .dev    = {
-               .platform_data  = &i2c_gpio_data,
-       },
-};
-
-static struct i2c_board_info __initdata i2c_info[] = {
-       {
-               I2C_BOARD_INFO("pcf8563", 0x51)
-       },
-};
-
-#if IS_ENABLED(CONFIG_LEDS_PWM)
-static struct pwm_lookup pwm_lookup[] = {
-       PWM_LOOKUP("at91sam9rl-pwm", 0, "leds_pwm", "backlight",
-                  5000, PWM_POLARITY_NORMAL),
-};
-
-static struct led_pwm pwm_leds[] = {
-       {
-               .name   = "backlight",
-               .max_brightness = 255,
-       },
-};
-
-static struct led_pwm_platform_data pwm_data = {
-       .num_leds       = ARRAY_SIZE(pwm_leds),
-       .leds           = pwm_leds,
-};
-
-static struct platform_device leds_pwm = {
-       .name   = "leds_pwm",
-       .id     = -1,
-       .dev    = {
-               .platform_data = &pwm_data,
-       },
-};
-#endif
-
-const char *merisc_model(void)
-{
-       switch (merisc_board_id) {
-       case 0:
-       case 1:
-               return "500-01";
-       case 2:
-               return "BT";
-       default:
-               return "Unknown";
-       }
-}
-
-const char *merisc_revision(void)
-{
-       switch (merisc_board_id) {
-       case 0:
-               return "B";
-       case 1:
-               return "D";
-       case 2:
-               return "A";
-       default:
-               return "Unknown";
-       }
-}
-
-static void detect_merisc_board_id(void)
-{
-       /* Board ID pins MUST be set as input or the board may be damaged */
-       at32_select_gpio(GPIO_PIN_PA(24), AT32_GPIOF_PULLUP);
-       at32_select_gpio(GPIO_PIN_PA(25), AT32_GPIOF_PULLUP);
-       at32_select_gpio(GPIO_PIN_PA(26), AT32_GPIOF_PULLUP);
-       at32_select_gpio(GPIO_PIN_PA(27), AT32_GPIOF_PULLUP);
-
-       merisc_board_id = !gpio_get_value(GPIO_PIN_PA(24)) +
-               !gpio_get_value(GPIO_PIN_PA(25)) * 2 +
-               !gpio_get_value(GPIO_PIN_PA(26)) * 4 +
-               !gpio_get_value(GPIO_PIN_PA(27)) * 8;
-}
-
-void __init setup_board(void)
-{
-       at32_map_usart(0, 0, 0);
-       at32_map_usart(1, 1, 0);
-       at32_map_usart(3, 3, 0);
-       at32_setup_serial_console(1);
-}
-
-static int __init merisc_init(void)
-{
-       detect_merisc_board_id();
-
-       printk(KERN_NOTICE "BOARD: Merisc %s revision %s\n", merisc_model(),
-              merisc_revision());
-
-       /* Reserve pins for SDRAM */
-       at32_reserve_pin(GPIO_PIOE_BASE, ATMEL_EBI_PE_DATA_ALL | (1 << 26));
-
-       if (merisc_board_id >= 1)
-               at32_map_usart(2, 2, 0);
-
-       at32_add_device_usart(0);
-       at32_add_device_usart(1);
-       if (merisc_board_id >= 1)
-               at32_add_device_usart(2);
-       at32_add_device_usart(3);
-       set_hw_addr(at32_add_device_eth(0, &eth_data[0]));
-
-       /* ADS7846 PENIRQ */
-       if (merisc_board_id == 0) {
-               ads7846_data.get_pendown_state = ads7846_get_pendown_state_PB26;
-               at32_select_periph(GPIO_PIOB_BASE, 1 << 26,
-                                  GPIO_PERIPH_A, AT32_GPIOF_PULLUP);
-               spi0_board_info[0].irq = AT32_EXTINT(1);
-       } else {
-               ads7846_data.get_pendown_state = ads7846_get_pendown_state_PB28;
-               at32_select_periph(GPIO_PIOB_BASE, 1 << 28, GPIO_PERIPH_A,
-                                  AT32_GPIOF_PULLUP);
-               spi0_board_info[0].irq = AT32_EXTINT(3);
-       }
-
-       /* ADS7846 busy pin */
-       at32_select_gpio(GPIO_PIN_PA(4), AT32_GPIOF_PULLUP);
-
-       at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info));
-
-       at32_add_device_mci(0, &mci0_data);
-
-#if IS_ENABLED(CONFIG_LEDS_PWM)
-       pwm_add_table(pwm_lookup, ARRAY_SIZE(pwm_lookup));
-       at32_add_device_pwm((1 << 0) | (1 << 2));
-       platform_device_register(&leds_pwm);
-#else
-       at32_add_device_pwm((1 << 2));
-#endif
-
-       at32_select_gpio(i2c_gpio_data.sda_pin,
-               AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH);
-       at32_select_gpio(i2c_gpio_data.scl_pin,
-               AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH);
-       platform_device_register(&i2c_gpio_device);
-
-       i2c_register_board_info(0, i2c_info, ARRAY_SIZE(i2c_info));
-
-       return 0;
-}
-postcore_initcall(merisc_init);
diff --git a/arch/avr32/boards/mimc200/Makefile b/arch/avr32/boards/mimc200/Makefile
deleted file mode 100644 (file)
index c740aa1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-obj-y                          += setup.o flash.o
diff --git a/arch/avr32/boards/mimc200/flash.c b/arch/avr32/boards/mimc200/flash.c
deleted file mode 100644 (file)
index d83d650..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * MIMC200 board-specific flash initialization
- *
- * Copyright (C) 2008 Mercury IMC Ltd
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/mtd/mtd.h>
-#include <linux/mtd/partitions.h>
-#include <linux/mtd/physmap.h>
-
-#include <mach/smc.h>
-
-static struct smc_timing flash_timing __initdata = {
-       .ncs_read_setup         = 0,
-       .nrd_setup              = 15,
-       .ncs_write_setup        = 0,
-       .nwe_setup              = 0,
-
-       .ncs_read_pulse         = 115,
-       .nrd_pulse              = 110,
-       .ncs_write_pulse        = 60,
-       .nwe_pulse              = 60,
-
-       .read_cycle             = 115,
-       .write_cycle            = 100,
-};
-
-static struct smc_config flash_config __initdata = {
-       .bus_width              = 2,
-       .nrd_controlled         = 1,
-       .nwe_controlled         = 1,
-       .byte_write             = 1,
-};
-
-/* system flash definition */
-
-static struct mtd_partition flash_parts_system[] = {
-       {
-               .name           = "u-boot",
-               .offset         = 0x00000000,
-               .size           = 0x00020000,           /* 128 KiB */
-               .mask_flags     = MTD_WRITEABLE,
-       },
-       {
-               .name           = "root",
-               .offset         = 0x00020000,
-               .size           = 0x007c0000,
-       },
-       {
-               .name           = "splash",
-               .offset         = 0x007e0000,
-               .size           = 0x00010000,           /* 64KiB */
-       },
-       {
-               .name           = "env",
-               .offset         = 0x007f0000,
-               .size           = 0x00010000,
-               .mask_flags     = MTD_WRITEABLE,
-       },
-};
-
-static struct physmap_flash_data flash_system = {
-       .width          = 2,
-       .nr_parts       = ARRAY_SIZE(flash_parts_system),
-       .parts          = flash_parts_system,
-};
-
-static struct resource flash_resource_system = {
-       .start          = 0x00000000,
-       .end            = 0x007fffff,
-       .flags          = IORESOURCE_MEM,
-};
-
-static struct platform_device flash_device_system = {
-       .name           = "physmap-flash",
-       .id             = 0,
-       .resource       = &flash_resource_system,
-       .num_resources  = 1,
-       .dev            = {
-               .platform_data = &flash_system,
-       },
-};
-
-/* data flash definition */
-
-static struct mtd_partition flash_parts_data[] = {
-       {
-               .name           = "data",
-               .offset         = 0x00000000,
-               .size           = 0x00800000,
-       },
-};
-
-static struct physmap_flash_data flash_data = {
-       .width          = 2,
-       .nr_parts       = ARRAY_SIZE(flash_parts_data),
-       .parts          = flash_parts_data,
-};
-
-static struct resource flash_resource_data = {
-       .start          = 0x08000000,
-       .end            = 0x087fffff,
-       .flags          = IORESOURCE_MEM,
-};
-
-static struct platform_device flash_device_data = {
-       .name           = "physmap-flash",
-       .id             = 1,
-       .resource       = &flash_resource_data,
-       .num_resources  = 1,
-       .dev            = {
-               .platform_data = &flash_data,
-       },
-};
-
-/* This needs to be called after the SMC has been initialized */
-static int __init mimc200_flash_init(void)
-{
-       int ret;
-
-       smc_set_timing(&flash_config, &flash_timing);
-       ret = smc_set_configuration(0, &flash_config);
-       if (ret < 0) {
-               printk(KERN_ERR "mimc200: failed to set 'System' NOR flash timing\n");
-               return ret;
-       }
-       ret = smc_set_configuration(1, &flash_config);
-       if (ret < 0) {
-               printk(KERN_ERR "mimc200: failed to set 'Data' NOR flash timing\n");
-               return ret;
-       }
-
-       platform_device_register(&flash_device_system);
-       platform_device_register(&flash_device_data);
-
-       return 0;
-}
-device_initcall(mimc200_flash_init);
diff --git a/arch/avr32/boards/mimc200/setup.c b/arch/avr32/boards/mimc200/setup.c
deleted file mode 100644 (file)
index 1cb8e9c..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Board-specific setup code for the MIMC200
- *
- * Copyright (C) 2008 Mercury IMC Ltd
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-extern struct atmel_lcdfb_pdata mimc200_lcdc_data;
-
-#include <linux/clk.h>
-#include <linux/etherdevice.h>
-#include <linux/i2c-gpio.h>
-#include <linux/init.h>
-#include <linux/linkage.h>
-#include <linux/platform_device.h>
-#include <linux/types.h>
-#include <linux/leds.h>
-#include <linux/spi/spi.h>
-#include <linux/spi/eeprom.h>
-
-#include <video/atmel_lcdc.h>
-#include <linux/fb.h>
-
-#include <linux/atmel-mci.h>
-#include <linux/io.h>
-#include <asm/setup.h>
-
-#include <mach/at32ap700x.h>
-#include <mach/board.h>
-#include <mach/init.h>
-#include <mach/portmux.h>
-
-/* Oscillator frequencies. These are board-specific */
-unsigned long at32_board_osc_rates[3] = {
-       [0] = 32768,    /* 32.768 kHz on RTC osc */
-       [1] = 10000000, /* 10 MHz on osc0 */
-       [2] = 12000000, /* 12 MHz on osc1 */
-};
-
-/* Initialized by bootloader-specific startup code. */
-struct tag *bootloader_tags __initdata;
-
-static struct fb_videomode __initdata pt0434827_modes[] = {
-       {
-               .name           = "480x272 @ 72",
-               .refresh        = 72,
-               .xres           = 480,          .yres           = 272,
-               .pixclock       = KHZ2PICOS(10000),
-
-               .left_margin    = 1,            .right_margin   = 1,
-               .upper_margin   = 12,           .lower_margin   = 1,
-               .hsync_len      = 42,           .vsync_len      = 1,
-
-               .sync           = 0,
-               .vmode          = FB_VMODE_NONINTERLACED,
-       },
-};
-
-static struct fb_monspecs __initdata mimc200_default_monspecs = {
-       .manufacturer           = "PT",
-       .monitor                = "PT0434827-A401",
-       .modedb                 = pt0434827_modes,
-       .modedb_len             = ARRAY_SIZE(pt0434827_modes),
-       .hfmin                  = 14820,
-       .hfmax                  = 22230,
-       .vfmin                  = 60,
-       .vfmax                  = 85,
-       .dclkmax                = 25200000,
-};
-
-struct atmel_lcdfb_pdata __initdata mimc200_lcdc_data = {
-       .default_bpp            = 16,
-       .default_dmacon         = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
-       .default_lcdcon2        = (ATMEL_LCDC_DISTYPE_TFT
-                                  | ATMEL_LCDC_INVCLK
-                                  | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE
-                                  | ATMEL_LCDC_MEMOR_BIG),
-       .default_monspecs       = &mimc200_default_monspecs,
-       .guard_time             = 2,
-};
-
-struct eth_addr {
-       u8 addr[6];
-};
-static struct eth_addr __initdata hw_addr[2];
-static struct macb_platform_data __initdata eth_data[2];
-
-static struct spi_eeprom eeprom_25lc010 = {
-               .name = "25lc010",
-               .byte_len = 128,
-               .page_size = 16,
-               .flags = EE_ADDR1,
-};
-
-static struct spi_board_info spi0_board_info[] __initdata = {
-       {
-               .modalias       = "rtc-ds1390",
-               .max_speed_hz   = 4000000,
-               .chip_select    = 2,
-       },
-       {
-               .modalias       = "at25",
-               .max_speed_hz   = 1000000,
-               .chip_select    = 1,
-               .mode           = SPI_MODE_3,
-               .platform_data  = &eeprom_25lc010,
-       },
-};
-
-static struct mci_platform_data __initdata mci0_data = {
-       .slot[0] = {
-               .bus_width      = 4,
-               .detect_pin     = GPIO_PIN_PA(26),
-               .wp_pin         = GPIO_PIN_PA(27),
-       },
-};
-
-/*
- * The next two functions should go away as the boot loader is
- * supposed to initialize the macb address registers with a valid
- * ethernet address. But we need to keep it around for a while until
- * we can be reasonably sure the boot loader does this.
- *
- * The phy_id is ignored as the driver will probe for it.
- */
-static int __init parse_tag_ethernet(struct tag *tag)
-{
-       int i;
-
-       i = tag->u.ethernet.mac_index;
-       if (i < ARRAY_SIZE(hw_addr))
-               memcpy(hw_addr[i].addr, tag->u.ethernet.hw_address,
-                      sizeof(hw_addr[i].addr));
-
-       return 0;
-}
-__tagtable(ATAG_ETHERNET, parse_tag_ethernet);
-
-static void __init set_hw_addr(struct platform_device *pdev)
-{
-       struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       const u8 *addr;
-       void __iomem *regs;
-       struct clk *pclk;
-
-       if (!res)
-               return;
-       if (pdev->id >= ARRAY_SIZE(hw_addr))
-               return;
-
-       addr = hw_addr[pdev->id].addr;
-       if (!is_valid_ether_addr(addr))
-               return;
-
-       /*
-        * Since this is board-specific code, we'll cheat and use the
-        * physical address directly as we happen to know that it's
-        * the same as the virtual address.
-        */
-       regs = (void __iomem __force *)res->start;
-       pclk = clk_get(&pdev->dev, "pclk");
-       if (IS_ERR(pclk))
-               return;
-
-       clk_enable(pclk);
-       __raw_writel((addr[3] << 24) | (addr[2] << 16)
-                    | (addr[1] << 8) | addr[0], regs + 0x98);
-       __raw_writel((addr[5] << 8) | addr[4], regs + 0x9c);
-       clk_disable(pclk);
-       clk_put(pclk);
-}
-
-void __init setup_board(void)
-{
-       at32_map_usart(0, 0, 0);        /* USART 0: /dev/ttyS0 (TTL --> Altera) */
-       at32_map_usart(1, 1, 0);        /* USART 1: /dev/ttyS1 (RS232) */
-       at32_map_usart(2, 2, 0);        /* USART 2: /dev/ttyS2 (RS485) */
-       at32_map_usart(3, 3, 0);        /* USART 3: /dev/ttyS3 (RS422 Multidrop) */
-}
-
-static struct i2c_gpio_platform_data i2c_gpio_data = {
-       .sda_pin                = GPIO_PIN_PA(6),
-       .scl_pin                = GPIO_PIN_PA(7),
-       .sda_is_open_drain      = 1,
-       .scl_is_open_drain      = 1,
-       .udelay                 = 2,    /* close to 100 kHz */
-};
-
-static struct platform_device i2c_gpio_device = {
-       .name           = "i2c-gpio",
-       .id             = 0,
-       .dev            = {
-       .platform_data  = &i2c_gpio_data,
-       },
-};
-
-static struct i2c_board_info __initdata i2c_info[] = {
-};
-
-static int __init mimc200_init(void)
-{
-       /*
-        * MIMC200 uses 16-bit SDRAM interface, so we don't need to
-        * reserve any pins for it.
-        */
-
-       at32_add_device_usart(0);
-       at32_add_device_usart(1);
-       at32_add_device_usart(2);
-       at32_add_device_usart(3);
-
-       set_hw_addr(at32_add_device_eth(0, &eth_data[0]));
-       set_hw_addr(at32_add_device_eth(1, &eth_data[1]));
-
-       at32_add_device_spi(0, spi0_board_info, ARRAY_SIZE(spi0_board_info));
-       at32_add_device_mci(0, &mci0_data);
-       at32_add_device_usba(0, NULL);
-
-       at32_select_periph(GPIO_PIOB_BASE, 1 << 28, 0, AT32_GPIOF_PULLUP);
-       at32_select_gpio(i2c_gpio_data.sda_pin,
-               AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH);
-       at32_select_gpio(i2c_gpio_data.scl_pin,
-               AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH);
-       platform_device_register(&i2c_gpio_device);
-       i2c_register_board_info(0, i2c_info, ARRAY_SIZE(i2c_info));
-
-       at32_add_device_lcdc(0, &mimc200_lcdc_data,
-                            fbmem_start, fbmem_size,
-                            ATMEL_LCDC_CONTROL | ATMEL_LCDC_ALT_CONTROL | ATMEL_LCDC_ALT_24B_DATA);
-
-       return 0;
-}
-postcore_initcall(mimc200_init);
diff --git a/arch/avr32/boot/images/.gitignore b/arch/avr32/boot/images/.gitignore
deleted file mode 100644 (file)
index 64ea9d0..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-uImage
-uImage.srec
-vmlinux.cso
-sfdwarf.log
diff --git a/arch/avr32/boot/images/Makefile b/arch/avr32/boot/images/Makefile
deleted file mode 100644 (file)
index 2a3b539..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#
-# Copyright (C) 2004-2006 Atmel Corporation
-#
-# This file is subject to the terms and conditions of the GNU General Public
-# License.  See the file "COPYING" in the main directory of this archive
-# for more details.
-#
-
-extra-y                := vmlinux.bin vmlinux.gz
-
-OBJCOPYFLAGS_vmlinux.bin := -O binary -R .note.gnu.build-id
-$(obj)/vmlinux.bin: vmlinux FORCE
-       $(call if_changed,objcopy)
-
-$(obj)/vmlinux.gz: $(obj)/vmlinux.bin FORCE
-       $(call if_changed,gzip)
-
-UIMAGE_LOADADDR = $(CONFIG_LOAD_ADDRESS)
-UIMAGE_ENTRYADDR = $(CONFIG_ENTRY_ADDRESS)
-UIMAGE_COMPRESSION = gzip
-
-targets += uImage uImage.srec
-$(obj)/uImage: $(obj)/vmlinux.gz
-       $(call if_changed,uimage)
-       @echo '  Image $@ is ready'
-
-OBJCOPYFLAGS_uImage.srec := -I binary -O srec
-$(obj)/uImage.srec: $(obj)/uImage
-       $(call if_changed,objcopy)
-
-OBJCOPYFLAGS_vmlinux.elf := --change-section-lma .text-0x80000000 \
-                           --change-section-lma __ex_table-0x80000000 \
-                           --change-section-lma .rodata-0x80000000 \
-                           --change-section-lma .data-0x80000000 \
-                           --change-section-lma .init-0x80000000 \
-                           --change-section-lma .bss-0x80000000 \
-                           --change-section-lma __param-0x80000000 \
-                           --change-section-lma __ksymtab-0x80000000 \
-                           --change-section-lma __ksymtab_gpl-0x80000000 \
-                           --change-section-lma __kcrctab-0x80000000 \
-                           --change-section-lma __kcrctab_gpl-0x80000000 \
-                           --change-section-lma __ksymtab_strings-0x80000000 \
-                           --set-start 0xa0000000
-$(obj)/vmlinux.elf: vmlinux FORCE
-       $(call if_changed,objcopy)
-
-quiet_cmd_sfdwarf = SFDWARF $@
-      cmd_sfdwarf = sfdwarf $< TO $@ GNUAVR IW $(SFDWARF_FLAGS) > $(obj)/sfdwarf.log
-
-$(obj)/vmlinux.cso: $(obj)/vmlinux.elf FORCE
-       $(call if_changed,sfdwarf)
-
-install: $(BOOTIMAGE)
-       sh $(srctree)/install-kernel.sh $<
-
-# Generated files to be removed upon make clean
-clean-files    := vmlinux.elf vmlinux.bin vmlinux.gz uImage uImage.srec
diff --git a/arch/avr32/boot/u-boot/Makefile b/arch/avr32/boot/u-boot/Makefile
deleted file mode 100644 (file)
index 125ddc9..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-extra-y                := head.o
-
-obj-y          := empty.o
diff --git a/arch/avr32/boot/u-boot/empty.S b/arch/avr32/boot/u-boot/empty.S
deleted file mode 100644 (file)
index 8ac91a5..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* Empty file */
diff --git a/arch/avr32/boot/u-boot/head.S b/arch/avr32/boot/u-boot/head.S
deleted file mode 100644 (file)
index 2ffc298..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Startup code for use with the u-boot bootloader.
- *
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <asm/setup.h>
-#include <asm/thread_info.h>
-#include <asm/sysreg.h>
-
-       /*
-        * The kernel is loaded where we want it to be and all caches
-        * have just been flushed. We get two parameters from u-boot:
-        *
-        * r12 contains a magic number (ATAG_MAGIC)
-        * r11 points to a tag table providing information about
-        *     the system.
-        */
-       .section .init.text,"ax"
-       .global _start
-_start:
-       /* Initialize .bss */
-       lddpc   r2, bss_start_addr
-       lddpc   r3, end_addr
-       mov     r0, 0
-       mov     r1, 0
-1:      st.d    r2++, r0
-       cp      r2, r3
-       brlo    1b
-
-       /* Initialize status register */
-       lddpc   r0, init_sr
-       mtsr    SYSREG_SR, r0
-
-       /* Set initial stack pointer */
-       lddpc   sp, stack_addr
-       sub     sp, -THREAD_SIZE
-
-#ifdef CONFIG_FRAME_POINTER
-       /* Mark last stack frame */
-       mov     lr, 0
-       mov     r7, 0
-#endif
-
-       /* Check if the boot loader actually provided a tag table */
-       lddpc   r0, magic_number
-       cp.w    r12, r0
-       brne    no_tag_table
-
-       /*
-        * Save the tag table address for later use. This must be done
-        * _after_ .bss has been initialized...
-        */
-       lddpc   r0, tag_table_addr
-       st.w    r0[0], r11
-
-       /* Jump to loader-independent setup code */
-       rjmp    kernel_entry
-
-       .align  2
-magic_number:
-       .long   ATAG_MAGIC
-tag_table_addr:
-       .long   bootloader_tags
-bss_start_addr:
-       .long   __bss_start
-end_addr:
-       .long   _end
-init_sr:
-       .long   0x007f0000      /* Supervisor mode, everything masked */
-stack_addr:
-       .long   init_thread_union
-panic_addr:
-       .long   panic
-
-no_tag_table:
-       sub     r12, pc, (. - 2f)
-       /* branch to panic() which can be far away with that construct */
-       lddpc   pc, panic_addr
-2:     .asciz  "Boot loader didn't provide correct magic number\n"
diff --git a/arch/avr32/configs/atngw100_defconfig b/arch/avr32/configs/atngw100_defconfig
deleted file mode 100644 (file)
index ce00300..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=m
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_BOARD_ATNGW100_MKI=y
-# CONFIG_OWNERSHIP_TRACE is not set
-CONFIG_NMI_DEBUGGING=y
-CONFIG_CPU_FREQ=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_AVR32_AT32AP_CPUFREQ=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=y
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=y
-CONFIG_INET_ESP=y
-CONFIG_INET_IPCOMP=y
-# CONFIG_INET_LRO is not set
-CONFIG_IPV6=y
-CONFIG_INET6_AH=y
-CONFIG_INET6_ESP=y
-CONFIG_INET6_IPCOMP=y
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_ADVANCED is not set
-CONFIG_NETFILTER_XTABLES=y
-CONFIG_BRIDGE=m
-CONFIG_VLAN_8021Q=m
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_DATAFLASH=y
-CONFIG_MTD_UBI=y
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=m
-CONFIG_ATMEL_TCLIB=y
-CONFIG_NETDEVICES=y
-CONFIG_TUN=m
-CONFIG_MACB=y
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPP_ASYNC=m
-# CONFIG_INPUT is not set
-# CONFIG_SERIO is not set
-# CONFIG_VT is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=m
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_GPIO=m
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_SPI_SPIDEV=m
-CONFIG_GPIO_SYSFS=y
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_AT32AP700X_WDT=y
-CONFIG_USB_GADGET=y
-CONFIG_USB_GADGET_VBUS_DRAW=350
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_MMC=y
-CONFIG_MMC_TEST=m
-CONFIG_MMC_ATMELMCI=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_AT32AP700X=y
-CONFIG_DMADEVICES=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-# CONFIG_EXT3_FS_XATTR is not set
-CONFIG_EXT4_FS=y
-# CONFIG_DNOTIFY is not set
-CONFIG_FUSE_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=850
-CONFIG_PROC_KCORE=y
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_UBIFS_FS=y
-CONFIG_NFS_FS=y
-CONFIG_ROOT_NFS=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-CONFIG_CIFS=m
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_UTF8=m
-CONFIG_DEBUG_FS=y
-CONFIG_FRAME_POINTER=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DETECT_HUNG_TASK=y
diff --git a/arch/avr32/configs/atngw100_evklcd100_defconfig b/arch/avr32/configs/atngw100_evklcd100_defconfig
deleted file mode 100644 (file)
index 01ff632..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=m
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_BOARD_ATNGW100_MKI=y
-CONFIG_BOARD_ATNGW100_EVKLCD10X=y
-CONFIG_BOARD_ATNGW100_EVKLCD10X_QVGA=y
-# CONFIG_OWNERSHIP_TRACE is not set
-CONFIG_NMI_DEBUGGING=y
-CONFIG_CPU_FREQ=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_AVR32_AT32AP_CPUFREQ=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=y
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=y
-CONFIG_INET_ESP=y
-CONFIG_INET_IPCOMP=y
-# CONFIG_INET_LRO is not set
-CONFIG_IPV6=y
-CONFIG_INET6_AH=y
-CONFIG_INET6_ESP=y
-CONFIG_INET6_IPCOMP=y
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_ADVANCED is not set
-CONFIG_NETFILTER_XTABLES=y
-CONFIG_BRIDGE=m
-CONFIG_VLAN_8021Q=m
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_DATAFLASH=y
-CONFIG_MTD_UBI=y
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=m
-CONFIG_ATMEL_TCLIB=y
-CONFIG_NETDEVICES=y
-CONFIG_TUN=m
-CONFIG_MACB=y
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPP_ASYNC=m
-# CONFIG_INPUT_MOUSEDEV is not set
-CONFIG_INPUT_EVDEV=m
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_WM97XX=m
-# CONFIG_SERIO is not set
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=m
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_GPIO=m
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_SPI_SPIDEV=m
-CONFIG_GPIO_SYSFS=y
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_AT32AP700X_WDT=y
-CONFIG_FB=y
-CONFIG_FB_ATMEL=y
-CONFIG_SOUND=y
-CONFIG_SND=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_HRTIMER=y
-# CONFIG_SND_SUPPORT_OLD_API is not set
-# CONFIG_SND_DRIVERS is not set
-CONFIG_SND_ATMEL_AC97C=m
-# CONFIG_SND_SPI is not set
-CONFIG_USB_GADGET=y
-CONFIG_USB_GADGET_VBUS_DRAW=350
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_MMC=y
-CONFIG_MMC_TEST=m
-CONFIG_MMC_ATMELMCI=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_AT32AP700X=y
-CONFIG_DMADEVICES=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-# CONFIG_EXT3_FS_XATTR is not set
-CONFIG_EXT4_FS=y
-# CONFIG_DNOTIFY is not set
-CONFIG_FUSE_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=850
-CONFIG_PROC_KCORE=y
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_UBIFS_FS=y
-CONFIG_NFS_FS=y
-CONFIG_ROOT_NFS=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-CONFIG_CIFS=m
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_UTF8=m
-CONFIG_DEBUG_FS=y
-CONFIG_FRAME_POINTER=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DETECT_HUNG_TASK=y
diff --git a/arch/avr32/configs/atngw100_evklcd101_defconfig b/arch/avr32/configs/atngw100_evklcd101_defconfig
deleted file mode 100644 (file)
index c4021df..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=m
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_BOARD_ATNGW100_MKI=y
-CONFIG_BOARD_ATNGW100_EVKLCD10X=y
-# CONFIG_OWNERSHIP_TRACE is not set
-CONFIG_NMI_DEBUGGING=y
-CONFIG_CPU_FREQ=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_AVR32_AT32AP_CPUFREQ=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=y
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=y
-CONFIG_INET_ESP=y
-CONFIG_INET_IPCOMP=y
-# CONFIG_INET_LRO is not set
-CONFIG_IPV6=y
-CONFIG_INET6_AH=y
-CONFIG_INET6_ESP=y
-CONFIG_INET6_IPCOMP=y
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_ADVANCED is not set
-CONFIG_NETFILTER_XTABLES=y
-CONFIG_BRIDGE=m
-CONFIG_VLAN_8021Q=m
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_DATAFLASH=y
-CONFIG_MTD_UBI=y
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=m
-CONFIG_ATMEL_TCLIB=y
-CONFIG_NETDEVICES=y
-CONFIG_TUN=m
-CONFIG_MACB=y
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPP_ASYNC=m
-# CONFIG_INPUT_MOUSEDEV is not set
-CONFIG_INPUT_EVDEV=m
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_WM97XX=m
-# CONFIG_SERIO is not set
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=m
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_GPIO=m
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_SPI_SPIDEV=m
-CONFIG_GPIO_SYSFS=y
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_AT32AP700X_WDT=y
-CONFIG_FB=y
-CONFIG_FB_ATMEL=y
-CONFIG_SOUND=y
-CONFIG_SND=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_HRTIMER=y
-# CONFIG_SND_SUPPORT_OLD_API is not set
-# CONFIG_SND_DRIVERS is not set
-CONFIG_SND_ATMEL_AC97C=m
-# CONFIG_SND_SPI is not set
-CONFIG_USB_GADGET=y
-CONFIG_USB_GADGET_VBUS_DRAW=350
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_MMC=y
-CONFIG_MMC_TEST=m
-CONFIG_MMC_ATMELMCI=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_AT32AP700X=y
-CONFIG_DMADEVICES=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-# CONFIG_EXT3_FS_XATTR is not set
-CONFIG_EXT4_FS=y
-# CONFIG_DNOTIFY is not set
-CONFIG_FUSE_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=850
-CONFIG_PROC_KCORE=y
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_UBIFS_FS=y
-CONFIG_NFS_FS=y
-CONFIG_ROOT_NFS=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-CONFIG_CIFS=m
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_UTF8=m
-CONFIG_DEBUG_FS=y
-CONFIG_FRAME_POINTER=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DETECT_HUNG_TASK=y
diff --git a/arch/avr32/configs/atngw100_mrmt_defconfig b/arch/avr32/configs/atngw100_mrmt_defconfig
deleted file mode 100644 (file)
index ffcc28d..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_SLUB_DEBUG is not set
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-# CONFIG_OWNERSHIP_TRACE is not set
-# CONFIG_SUSPEND is not set
-CONFIG_PM=y
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_AVR32_AT32AP_CPUFREQ=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_SYN_COOKIES=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_LRO is not set
-# CONFIG_IPV6 is not set
-CONFIG_BT=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_HIDP=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_DATAFLASH=y
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_NETDEVICES=y
-CONFIG_MACB=y
-# CONFIG_INPUT_MOUSEDEV is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_KEYBOARD_ATKBD is not set
-CONFIG_KEYBOARD_GPIO=y
-# CONFIG_INPUT_MOUSE is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_ADS7846=m
-# CONFIG_SERIO is not set
-CONFIG_VT_HW_CONSOLE_BINDING=y
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_GPIO=y
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_SPI_SPIDEV=y
-CONFIG_WATCHDOG=y
-CONFIG_AT32AP700X_WDT=y
-CONFIG_FB=y
-CONFIG_FB_ATMEL=y
-CONFIG_LCD_CLASS_DEVICE=y
-CONFIG_SOUND=m
-CONFIG_SND=m
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-# CONFIG_SND_SUPPORT_OLD_API is not set
-# CONFIG_SND_VERBOSE_PROCFS is not set
-CONFIG_SND_ATMEL_AC97C=m
-# CONFIG_SND_SPI is not set
-CONFIG_USB_GADGET=m
-CONFIG_USB_GADGET_DEBUG_FILES=y
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_MMC=y
-CONFIG_MMC_ATMELMCI=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_PWM=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_AT32AP700X=m
-CONFIG_DMADEVICES=y
-CONFIG_UIO=y
-CONFIG_PWM=y
-CONFIG_PWM_ATMEL=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-# CONFIG_DNOTIFY is not set
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=850
-CONFIG_NTFS_FS=m
-CONFIG_NTFS_RW=y
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_NFS_FS=y
-CONFIG_ROOT_NFS=y
-CONFIG_CIFS=m
-CONFIG_CIFS_STATS=y
-CONFIG_CIFS_WEAK_PW_HASH=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_850=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_UTF8=y
-CONFIG_DEBUG_FS=y
-CONFIG_FRAME_POINTER=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_CRC_CCITT=y
diff --git a/arch/avr32/configs/atngw100mkii_defconfig b/arch/avr32/configs/atngw100mkii_defconfig
deleted file mode 100644 (file)
index 0496264..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=m
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_BOARD_ATNGW100_MKII=y
-# CONFIG_OWNERSHIP_TRACE is not set
-CONFIG_NMI_DEBUGGING=y
-CONFIG_CPU_FREQ=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_AVR32_AT32AP_CPUFREQ=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=y
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=y
-CONFIG_INET_ESP=y
-CONFIG_INET_IPCOMP=y
-# CONFIG_INET_LRO is not set
-CONFIG_IPV6=y
-CONFIG_INET6_AH=y
-CONFIG_INET6_ESP=y
-CONFIG_INET6_IPCOMP=y
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_ADVANCED is not set
-CONFIG_NETFILTER_XTABLES=y
-CONFIG_BRIDGE=m
-CONFIG_VLAN_8021Q=m
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_INTELEXT=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_DATAFLASH=y
-CONFIG_MTD_NAND=y
-CONFIG_MTD_NAND_ATMEL=y
-CONFIG_MTD_UBI=y
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=m
-CONFIG_ATMEL_TCLIB=y
-CONFIG_NETDEVICES=y
-CONFIG_TUN=m
-CONFIG_MACB=y
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPP_ASYNC=m
-# CONFIG_INPUT is not set
-# CONFIG_SERIO is not set
-# CONFIG_VT is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=m
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_GPIO=m
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_SPI_SPIDEV=m
-CONFIG_GPIO_SYSFS=y
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_AT32AP700X_WDT=y
-CONFIG_USB_GADGET=y
-CONFIG_USB_GADGET_VBUS_DRAW=350
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_MMC=y
-CONFIG_MMC_TEST=m
-CONFIG_MMC_ATMELMCI=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_AT32AP700X=y
-CONFIG_DMADEVICES=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-# CONFIG_EXT3_FS_XATTR is not set
-CONFIG_EXT4_FS=y
-# CONFIG_DNOTIFY is not set
-CONFIG_FUSE_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=850
-CONFIG_PROC_KCORE=y
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_UBIFS_FS=y
-CONFIG_NFS_FS=y
-CONFIG_ROOT_NFS=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-CONFIG_CIFS=m
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_UTF8=m
-CONFIG_DEBUG_FS=y
-CONFIG_FRAME_POINTER=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DETECT_HUNG_TASK=y
diff --git a/arch/avr32/configs/atngw100mkii_evklcd100_defconfig b/arch/avr32/configs/atngw100mkii_evklcd100_defconfig
deleted file mode 100644 (file)
index 89c2cda..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=m
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_BOARD_ATNGW100_MKII=y
-CONFIG_BOARD_ATNGW100_MKII_LCD=y
-CONFIG_BOARD_ATNGW100_EVKLCD10X=y
-CONFIG_BOARD_ATNGW100_EVKLCD10X_QVGA=y
-# CONFIG_OWNERSHIP_TRACE is not set
-CONFIG_NMI_DEBUGGING=y
-CONFIG_CPU_FREQ=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_AVR32_AT32AP_CPUFREQ=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=y
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=y
-CONFIG_INET_ESP=y
-CONFIG_INET_IPCOMP=y
-# CONFIG_INET_LRO is not set
-CONFIG_IPV6=y
-CONFIG_INET6_AH=y
-CONFIG_INET6_ESP=y
-CONFIG_INET6_IPCOMP=y
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_ADVANCED is not set
-CONFIG_NETFILTER_XTABLES=y
-CONFIG_BRIDGE=m
-CONFIG_VLAN_8021Q=m
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_INTELEXT=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_DATAFLASH=y
-CONFIG_MTD_NAND=y
-CONFIG_MTD_NAND_ATMEL=y
-CONFIG_MTD_UBI=y
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=m
-CONFIG_ATMEL_TCLIB=y
-CONFIG_NETDEVICES=y
-CONFIG_TUN=m
-CONFIG_MACB=y
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPP_ASYNC=m
-# CONFIG_INPUT_MOUSEDEV is not set
-CONFIG_INPUT_EVDEV=m
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_WM97XX=m
-# CONFIG_SERIO is not set
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=m
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_GPIO=m
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_SPI_SPIDEV=m
-CONFIG_GPIO_SYSFS=y
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_AT32AP700X_WDT=y
-CONFIG_FB=y
-CONFIG_FB_ATMEL=y
-CONFIG_SOUND=y
-CONFIG_SND=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_HRTIMER=y
-# CONFIG_SND_SUPPORT_OLD_API is not set
-# CONFIG_SND_DRIVERS is not set
-CONFIG_SND_ATMEL_AC97C=m
-# CONFIG_SND_SPI is not set
-CONFIG_USB_GADGET=y
-CONFIG_USB_GADGET_VBUS_DRAW=350
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_MMC=y
-CONFIG_MMC_TEST=m
-CONFIG_MMC_ATMELMCI=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_AT32AP700X=y
-CONFIG_DMADEVICES=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-# CONFIG_EXT3_FS_XATTR is not set
-CONFIG_EXT4_FS=y
-# CONFIG_DNOTIFY is not set
-CONFIG_FUSE_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=850
-CONFIG_PROC_KCORE=y
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_UBIFS_FS=y
-CONFIG_NFS_FS=y
-CONFIG_ROOT_NFS=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-CONFIG_CIFS=m
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_UTF8=m
-CONFIG_DEBUG_FS=y
-CONFIG_FRAME_POINTER=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DETECT_HUNG_TASK=y
diff --git a/arch/avr32/configs/atngw100mkii_evklcd101_defconfig b/arch/avr32/configs/atngw100mkii_evklcd101_defconfig
deleted file mode 100644 (file)
index 1b4d4a8..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=m
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_BOARD_ATNGW100_MKII=y
-CONFIG_BOARD_ATNGW100_MKII_LCD=y
-CONFIG_BOARD_ATNGW100_EVKLCD10X=y
-# CONFIG_OWNERSHIP_TRACE is not set
-CONFIG_NMI_DEBUGGING=y
-CONFIG_CPU_FREQ=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_AVR32_AT32AP_CPUFREQ=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=y
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=y
-CONFIG_INET_ESP=y
-CONFIG_INET_IPCOMP=y
-# CONFIG_INET_LRO is not set
-CONFIG_IPV6=y
-CONFIG_INET6_AH=y
-CONFIG_INET6_ESP=y
-CONFIG_INET6_IPCOMP=y
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_ADVANCED is not set
-CONFIG_NETFILTER_XTABLES=y
-CONFIG_BRIDGE=m
-CONFIG_VLAN_8021Q=m
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_INTELEXT=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_DATAFLASH=y
-CONFIG_MTD_NAND=y
-CONFIG_MTD_NAND_ATMEL=y
-CONFIG_MTD_UBI=y
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=m
-CONFIG_ATMEL_TCLIB=y
-CONFIG_NETDEVICES=y
-CONFIG_TUN=m
-CONFIG_MACB=y
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPP_ASYNC=m
-# CONFIG_INPUT_MOUSEDEV is not set
-CONFIG_INPUT_EVDEV=m
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_WM97XX=m
-# CONFIG_SERIO is not set
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=m
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_GPIO=m
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_SPI_SPIDEV=m
-CONFIG_GPIO_SYSFS=y
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_AT32AP700X_WDT=y
-CONFIG_FB=y
-CONFIG_FB_ATMEL=y
-CONFIG_SOUND=y
-CONFIG_SND=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_HRTIMER=y
-# CONFIG_SND_SUPPORT_OLD_API is not set
-# CONFIG_SND_DRIVERS is not set
-CONFIG_SND_ATMEL_AC97C=m
-# CONFIG_SND_SPI is not set
-CONFIG_USB_GADGET=y
-CONFIG_USB_GADGET_VBUS_DRAW=350
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_MMC=y
-CONFIG_MMC_TEST=m
-CONFIG_MMC_ATMELMCI=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_AT32AP700X=y
-CONFIG_DMADEVICES=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-# CONFIG_EXT3_FS_XATTR is not set
-CONFIG_EXT4_FS=y
-# CONFIG_DNOTIFY is not set
-CONFIG_FUSE_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=850
-CONFIG_PROC_KCORE=y
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_UBIFS_FS=y
-CONFIG_NFS_FS=y
-CONFIG_ROOT_NFS=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-CONFIG_CIFS=m
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_UTF8=m
-CONFIG_DEBUG_FS=y
-CONFIG_FRAME_POINTER=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DETECT_HUNG_TASK=y
diff --git a/arch/avr32/configs/atstk1002_defconfig b/arch/avr32/configs/atstk1002_defconfig
deleted file mode 100644 (file)
index 9b8b52e..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=m
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-# CONFIG_OWNERSHIP_TRACE is not set
-CONFIG_NMI_DEBUGGING=y
-CONFIG_CPU_FREQ=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_AVR32_AT32AP_CPUFREQ=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=m
-CONFIG_NET_KEY=m
-CONFIG_INET=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IPGRE=m
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-# CONFIG_INET_LRO is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_TUNNEL=m
-CONFIG_BRIDGE=m
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_UBI=y
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=m
-CONFIG_ATMEL_TCLIB=y
-CONFIG_ATMEL_SSC=m
-# CONFIG_SCSI_PROC_FS is not set
-CONFIG_BLK_DEV_SD=m
-CONFIG_BLK_DEV_SR=m
-# CONFIG_SCSI_LOWLEVEL is not set
-CONFIG_ATA=m
-# CONFIG_SATA_PMP is not set
-CONFIG_PATA_AT32=m
-CONFIG_NETDEVICES=y
-CONFIG_TUN=m
-CONFIG_MACB=y
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_ASYNC=m
-CONFIG_INPUT=m
-CONFIG_INPUT_EVDEV=m
-# CONFIG_KEYBOARD_ATKBD is not set
-CONFIG_KEYBOARD_GPIO=m
-# CONFIG_MOUSE_PS2 is not set
-CONFIG_MOUSE_GPIO=m
-# CONFIG_SERIO is not set
-# CONFIG_VT is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=m
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_GPIO=m
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_SPI_SPIDEV=m
-CONFIG_GPIO_SYSFS=y
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_AT32AP700X_WDT=y
-CONFIG_FB=y
-CONFIG_FB_ATMEL=y
-CONFIG_LCD_CLASS_DEVICE=y
-CONFIG_LCD_LTV350QV=y
-CONFIG_SOUND=m
-CONFIG_SND=m
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-# CONFIG_SND_SUPPORT_OLD_API is not set
-# CONFIG_SND_VERBOSE_PROCFS is not set
-CONFIG_SND_AT73C213=m
-CONFIG_USB_GADGET=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_MMC=y
-CONFIG_MMC_TEST=m
-CONFIG_MMC_ATMELMCI=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_PWM=m
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_AT32AP700X=y
-CONFIG_DMADEVICES=y
-CONFIG_PWM=y
-CONFIG_PWM_ATMEL=m
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-# CONFIG_EXT3_FS_XATTR is not set
-CONFIG_EXT4_FS=y
-# CONFIG_DNOTIFY is not set
-CONFIG_FUSE_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=850
-CONFIG_PROC_KCORE=y
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_UBIFS_FS=y
-CONFIG_NFS_FS=y
-CONFIG_ROOT_NFS=y
-CONFIG_CIFS=m
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_UTF8=m
-CONFIG_DEBUG_FS=y
-CONFIG_FRAME_POINTER=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DETECT_HUNG_TASK=y
diff --git a/arch/avr32/configs/atstk1003_defconfig b/arch/avr32/configs/atstk1003_defconfig
deleted file mode 100644 (file)
index ccce1a0..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=m
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_BOARD_ATSTK1003=y
-# CONFIG_OWNERSHIP_TRACE is not set
-CONFIG_NMI_DEBUGGING=y
-CONFIG_CPU_FREQ=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_AVR32_AT32AP_CPUFREQ=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_LRO is not set
-# CONFIG_INET_DIAG is not set
-# CONFIG_IPV6 is not set
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_UBI=y
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=m
-CONFIG_ATMEL_TCLIB=y
-CONFIG_ATMEL_SSC=m
-# CONFIG_SCSI_PROC_FS is not set
-CONFIG_BLK_DEV_SD=m
-CONFIG_BLK_DEV_SR=m
-# CONFIG_SCSI_LOWLEVEL is not set
-CONFIG_ATA=m
-# CONFIG_SATA_PMP is not set
-CONFIG_PATA_AT32=m
-CONFIG_NETDEVICES=y
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_ASYNC=m
-CONFIG_INPUT=m
-CONFIG_INPUT_EVDEV=m
-# CONFIG_KEYBOARD_ATKBD is not set
-CONFIG_KEYBOARD_GPIO=m
-# CONFIG_MOUSE_PS2 is not set
-CONFIG_MOUSE_GPIO=m
-# CONFIG_SERIO is not set
-# CONFIG_VT is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=m
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_GPIO=m
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_SPI_SPIDEV=m
-CONFIG_GPIO_SYSFS=y
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_AT32AP700X_WDT=y
-CONFIG_SOUND=m
-CONFIG_SND=m
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-# CONFIG_SND_DRIVERS is not set
-CONFIG_SND_AT73C213=m
-CONFIG_USB_GADGET=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_MMC=y
-CONFIG_MMC_TEST=m
-CONFIG_MMC_ATMELMCI=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_PWM=m
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_AT32AP700X=y
-CONFIG_DMADEVICES=y
-CONFIG_PWM=y
-CONFIG_PWM_ATMEL=m
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-# CONFIG_EXT3_FS_XATTR is not set
-CONFIG_EXT4_FS=y
-# CONFIG_DNOTIFY is not set
-CONFIG_FUSE_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=850
-CONFIG_PROC_KCORE=y
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_UBIFS_FS=y
-# CONFIG_NETWORK_FILESYSTEMS is not set
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_UTF8=m
-CONFIG_DEBUG_FS=y
-CONFIG_FRAME_POINTER=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DETECT_HUNG_TASK=y
diff --git a/arch/avr32/configs/atstk1004_defconfig b/arch/avr32/configs/atstk1004_defconfig
deleted file mode 100644 (file)
index e64288f..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=m
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_BOARD_ATSTK1004=y
-# CONFIG_OWNERSHIP_TRACE is not set
-CONFIG_NMI_DEBUGGING=y
-CONFIG_CPU_FREQ=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_AVR32_AT32AP_CPUFREQ=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_LRO is not set
-# CONFIG_INET_DIAG is not set
-# CONFIG_IPV6 is not set
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_UBI=y
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=m
-CONFIG_ATMEL_TCLIB=y
-CONFIG_ATMEL_SSC=m
-# CONFIG_SCSI_PROC_FS is not set
-CONFIG_BLK_DEV_SD=m
-CONFIG_BLK_DEV_SR=m
-# CONFIG_SCSI_LOWLEVEL is not set
-CONFIG_ATA=m
-# CONFIG_SATA_PMP is not set
-CONFIG_PATA_AT32=m
-CONFIG_NETDEVICES=y
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_ASYNC=m
-CONFIG_INPUT=m
-CONFIG_INPUT_EVDEV=m
-# CONFIG_KEYBOARD_ATKBD is not set
-CONFIG_KEYBOARD_GPIO=m
-# CONFIG_MOUSE_PS2 is not set
-CONFIG_MOUSE_GPIO=m
-# CONFIG_SERIO is not set
-# CONFIG_VT is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=m
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_GPIO=m
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_SPI_SPIDEV=m
-CONFIG_GPIO_SYSFS=y
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_AT32AP700X_WDT=y
-CONFIG_FB=y
-CONFIG_FB_ATMEL=y
-CONFIG_LCD_CLASS_DEVICE=y
-CONFIG_LCD_LTV350QV=y
-CONFIG_USB_GADGET=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_MMC=y
-CONFIG_MMC_TEST=m
-CONFIG_MMC_ATMELMCI=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_PWM=m
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_AT32AP700X=y
-CONFIG_DMADEVICES=y
-CONFIG_PWM=y
-CONFIG_PWM_ATMEL=m
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-# CONFIG_EXT3_FS_XATTR is not set
-CONFIG_EXT4_FS=y
-# CONFIG_DNOTIFY is not set
-CONFIG_FUSE_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=850
-CONFIG_PROC_KCORE=y
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_UBIFS_FS=y
-# CONFIG_NETWORK_FILESYSTEMS is not set
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_UTF8=m
-CONFIG_DEBUG_FS=y
-CONFIG_FRAME_POINTER=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DETECT_HUNG_TASK=y
diff --git a/arch/avr32/configs/atstk1006_defconfig b/arch/avr32/configs/atstk1006_defconfig
deleted file mode 100644 (file)
index 7d669f7..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=m
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_BOARD_ATSTK1006=y
-# CONFIG_OWNERSHIP_TRACE is not set
-CONFIG_NMI_DEBUGGING=y
-CONFIG_CPU_FREQ=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_AVR32_AT32AP_CPUFREQ=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=m
-CONFIG_NET_KEY=m
-CONFIG_INET=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IPGRE=m
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-# CONFIG_INET_LRO is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_TUNNEL=m
-CONFIG_BRIDGE=m
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_NAND=y
-CONFIG_MTD_NAND_ATMEL=y
-CONFIG_MTD_UBI=y
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=m
-CONFIG_ATMEL_TCLIB=y
-CONFIG_ATMEL_SSC=m
-# CONFIG_SCSI_PROC_FS is not set
-CONFIG_BLK_DEV_SD=m
-CONFIG_BLK_DEV_SR=m
-# CONFIG_SCSI_LOWLEVEL is not set
-CONFIG_ATA=m
-# CONFIG_SATA_PMP is not set
-CONFIG_PATA_AT32=m
-CONFIG_NETDEVICES=y
-CONFIG_TUN=m
-CONFIG_MACB=y
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_ASYNC=m
-CONFIG_INPUT=m
-CONFIG_INPUT_EVDEV=m
-# CONFIG_KEYBOARD_ATKBD is not set
-CONFIG_KEYBOARD_GPIO=m
-# CONFIG_MOUSE_PS2 is not set
-CONFIG_MOUSE_GPIO=m
-# CONFIG_SERIO is not set
-# CONFIG_VT is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=m
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_GPIO=m
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_SPI_SPIDEV=m
-CONFIG_GPIO_SYSFS=y
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_AT32AP700X_WDT=y
-CONFIG_FB=y
-CONFIG_FB_ATMEL=y
-CONFIG_LCD_CLASS_DEVICE=y
-CONFIG_LCD_LTV350QV=y
-CONFIG_SOUND=m
-CONFIG_SND=m
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-# CONFIG_SND_SUPPORT_OLD_API is not set
-# CONFIG_SND_VERBOSE_PROCFS is not set
-CONFIG_SND_AT73C213=m
-CONFIG_USB_GADGET=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_MMC=y
-CONFIG_MMC_TEST=m
-CONFIG_MMC_ATMELMCI=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_PWM=m
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_AT32AP700X=y
-CONFIG_DMADEVICES=y
-CONFIG_PWM=y
-CONFIG_PWM_ATMEL=m
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-# CONFIG_EXT3_FS_XATTR is not set
-CONFIG_EXT4_FS=y
-# CONFIG_DNOTIFY is not set
-CONFIG_FUSE_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=850
-CONFIG_PROC_KCORE=y
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_UBIFS_FS=y
-CONFIG_NFS_FS=y
-CONFIG_ROOT_NFS=y
-CONFIG_CIFS=m
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_UTF8=m
-CONFIG_DEBUG_FS=y
-CONFIG_FRAME_POINTER=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DETECT_HUNG_TASK=y
diff --git a/arch/avr32/configs/favr-32_defconfig b/arch/avr32/configs/favr-32_defconfig
deleted file mode 100644 (file)
index 560c52f..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=m
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_BOARD_FAVR_32=y
-# CONFIG_OWNERSHIP_TRACE is not set
-CONFIG_NMI_DEBUGGING=y
-CONFIG_CPU_FREQ=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_AVR32_AT32AP_CPUFREQ=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=m
-CONFIG_NET_KEY=m
-CONFIG_INET=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_NET_IPIP=m
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-# CONFIG_INET_LRO is not set
-CONFIG_IPV6=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_TUNNEL=m
-CONFIG_BRIDGE=m
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_RAM=m
-CONFIG_ATMEL_TCLIB=y
-CONFIG_ATMEL_SSC=m
-CONFIG_NETDEVICES=y
-CONFIG_MACB=y
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_ASYNC=m
-CONFIG_INPUT_MOUSEDEV=m
-CONFIG_INPUT_EVDEV=m
-# CONFIG_KEYBOARD_ATKBD is not set
-CONFIG_KEYBOARD_GPIO=m
-# CONFIG_MOUSE_PS2 is not set
-CONFIG_MOUSE_GPIO=m
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_ADS7846=m
-# CONFIG_SERIO is not set
-# CONFIG_CONSOLE_TRANSLATIONS is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=m
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_GPIO=m
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_SPI_SPIDEV=m
-CONFIG_GPIO_SYSFS=y
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_AT32AP700X_WDT=y
-CONFIG_FB=y
-CONFIG_FB_ATMEL=y
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_BACKLIGHT_PWM=m
-CONFIG_SOUND=m
-CONFIG_SOUND_PRIME=m
-CONFIG_USB_GADGET=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_MMC=y
-CONFIG_MMC_ATMELMCI=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_AT32AP700X=y
-CONFIG_DMADEVICES=y
-CONFIG_PWM=y
-CONFIG_PWM_ATMEL=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_FS_XATTR is not set
-# CONFIG_DNOTIFY is not set
-CONFIG_FUSE_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_PROC_KCORE=y
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-# CONFIG_JFFS2_FS_WRITEBUFFER is not set
-CONFIG_NFS_FS=y
-CONFIG_ROOT_NFS=y
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_UTF8=m
-CONFIG_DEBUG_FS=y
-CONFIG_FRAME_POINTER=y
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_CRYPTO_HW is not set
diff --git a/arch/avr32/configs/hammerhead_defconfig b/arch/avr32/configs/hammerhead_defconfig
deleted file mode 100644 (file)
index d57fadb..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=m
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_BOARD_HAMMERHEAD=y
-CONFIG_BOARD_HAMMERHEAD_USB=y
-CONFIG_BOARD_HAMMERHEAD_LCD=y
-CONFIG_BOARD_HAMMERHEAD_SND=y
-# CONFIG_BOARD_HAMMERHEAD_FPGA is not set
-# CONFIG_OWNERSHIP_TRACE is not set
-CONFIG_CPU_FREQ=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_AVR32_AT32AP_CPUFREQ=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=y
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=y
-CONFIG_INET_ESP=y
-CONFIG_INET_IPCOMP=y
-# CONFIG_INET_LRO is not set
-# CONFIG_IPV6 is not set
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_ADVANCED is not set
-CONFIG_NETFILTER_XTABLES=y
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_DATAFLASH=y
-CONFIG_BLK_DEV_RAM=m
-CONFIG_ATMEL_TCLIB=y
-CONFIG_SCSI=m
-CONFIG_BLK_DEV_SD=m
-CONFIG_NETDEVICES=y
-CONFIG_MACB=y
-CONFIG_INPUT_FF_MEMLESS=m
-CONFIG_INPUT_EVDEV=m
-CONFIG_INPUT_TOUCHSCREEN=y
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=m
-CONFIG_I2C_CHARDEV=m
-CONFIG_I2C_GPIO=m
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_SPI_SPIDEV=m
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_AT32AP700X_WDT=y
-CONFIG_FB=y
-CONFIG_FB_ATMEL=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_SOUND=m
-CONFIG_SND=m
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_SEQUENCER_OSS=y
-# CONFIG_SND_SUPPORT_OLD_API is not set
-CONFIG_HID_A4TECH=m
-CONFIG_HID_APPLE=m
-CONFIG_HID_BELKIN=m
-CONFIG_HID_CHERRY=m
-CONFIG_HID_CHICONY=m
-CONFIG_HID_CYPRESS=m
-CONFIG_HID_EZKEY=m
-CONFIG_HID_GYRATION=m
-CONFIG_HID_LOGITECH=m
-CONFIG_HID_MICROSOFT=m
-CONFIG_HID_MONTEREY=m
-CONFIG_HID_PANTHERLORD=m
-CONFIG_HID_PETALYNX=m
-CONFIG_HID_SAMSUNG=m
-CONFIG_HID_SUNPLUS=m
-CONFIG_USB=m
-CONFIG_USB_MON=m
-CONFIG_USB_ISP116X_HCD=m
-CONFIG_USB_STORAGE=m
-CONFIG_USB_GADGET=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_MMC=m
-CONFIG_MMC_ATMELMCI=m
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_AT32AP700X=y
-CONFIG_EXT2_FS=m
-# CONFIG_DNOTIFY is not set
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=850
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_NFS_FS=y
-CONFIG_ROOT_NFS=y
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_UTF8=m
-CONFIG_FRAME_POINTER=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_CRYPTO_ECB=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_ARC4=m
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-CONFIG_CRC_CCITT=m
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC7=m
diff --git a/arch/avr32/configs/merisc_defconfig b/arch/avr32/configs/merisc_defconfig
deleted file mode 100644 (file)
index e6a9cb7..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_BASE_FULL is not set
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_BOARD_MERISC=y
-CONFIG_AP700X_32_BIT_SMC=y
-# CONFIG_OWNERSHIP_TRACE is not set
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=y
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=y
-CONFIG_INET_ESP=y
-CONFIG_INET_IPCOMP=y
-# CONFIG_INET_LRO is not set
-# CONFIG_IPV6 is not set
-CONFIG_CAN=y
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_JEDECPROBE=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_ABSENT=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_BLOCK2MTD=y
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_ATMEL_SSC=y
-CONFIG_SCSI=y
-CONFIG_BLK_DEV_SD=y
-# CONFIG_SCSI_LOWLEVEL is not set
-CONFIG_NETDEVICES=y
-CONFIG_MACB=y
-# CONFIG_INPUT_MOUSEDEV is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_KEYBOARD_ATKBD is not set
-# CONFIG_INPUT_MOUSE is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_ADS7846=y
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_UINPUT=y
-# CONFIG_SERIO is not set
-# CONFIG_CONSOLE_TRANSLATIONS is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_GPIO=y
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_SPI_SPIDEV=y
-CONFIG_GPIO_SYSFS=y
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_FB=y
-CONFIG_FB_ATMEL=y
-# CONFIG_LCD_CLASS_DEVICE is not set
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_LOGO=y
-CONFIG_MMC=y
-CONFIG_MMC_ATMELMCI=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_PWM=y
-CONFIG_RTC_CLASS=y
-# CONFIG_RTC_HCTOSYS is not set
-CONFIG_RTC_DRV_PCF8563=y
-CONFIG_DMADEVICES=y
-CONFIG_UIO=y
-CONFIG_PWM=y
-CONFIG_PWM_ATMEL=m
-CONFIG_EXT2_FS=y
-# CONFIG_DNOTIFY is not set
-CONFIG_FUSE_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_WBUF_VERIFY=y
-CONFIG_CRAMFS=y
-CONFIG_NFS_FS=y
-CONFIG_ROOT_NFS=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_850=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_UTF8=y
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-# CONFIG_CRYPTO_HW is not set
diff --git a/arch/avr32/configs/mimc200_defconfig b/arch/avr32/configs/mimc200_defconfig
deleted file mode 100644 (file)
index 49c7e89..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SYSVIPC=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_BASE_FULL is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_PROFILING=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_IOSCHED_DEADLINE is not set
-CONFIG_BOARD_MIMC200=y
-# CONFIG_OWNERSHIP_TRACE is not set
-CONFIG_NMI_DEBUGGING=y
-CONFIG_CPU_FREQ=y
-# CONFIG_CPU_FREQ_STAT is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_AVR32_AT32AP_CPUFREQ=y
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM_USER=y
-CONFIG_NET_KEY=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=y
-CONFIG_INET_ESP=y
-CONFIG_INET_IPCOMP=y
-# CONFIG_INET_LRO is not set
-CONFIG_INET6_AH=y
-CONFIG_INET6_ESP=y
-CONFIG_INET6_IPCOMP=y
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_CMDLINE_PARTS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_MTD_CFI=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_DATAFLASH=y
-CONFIG_ATMEL_TCLIB=y
-CONFIG_EEPROM_AT24=y
-CONFIG_EEPROM_AT25=y
-CONFIG_NETDEVICES=y
-CONFIG_MACB=y
-# CONFIG_INPUT is not set
-# CONFIG_SERIO is not set
-# CONFIG_VT is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_ATMEL=y
-CONFIG_SERIAL_ATMEL_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_GPIO=y
-CONFIG_SPI=y
-CONFIG_SPI_ATMEL=y
-CONFIG_GPIO_SYSFS=y
-# CONFIG_HWMON is not set
-CONFIG_WATCHDOG=y
-CONFIG_AT32AP700X_WDT=y
-CONFIG_FB=y
-CONFIG_FB_ATMEL=y
-# CONFIG_USB_SUPPORT is not set
-CONFIG_MMC=y
-CONFIG_MMC_TEST=y
-CONFIG_MMC_ATMELMCI=y
-CONFIG_MMC_SPI=y
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-CONFIG_LEDS_GPIO=y
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_DS1390=y
-CONFIG_DMADEVICES=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_FS_XATTR is not set
-# CONFIG_DNOTIFY is not set
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=850
-CONFIG_TMPFS=y
-CONFIG_CONFIGFS_FS=y
-CONFIG_JFFS2_FS=y
-CONFIG_NFS_FS=y
-CONFIG_ROOT_NFS=y
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_850=y
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_UTF8=y
-CONFIG_FRAME_POINTER=y
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_PCBC=y
-CONFIG_CRYPTO_ARC4=y
-CONFIG_CRC_CCITT=y
diff --git a/arch/avr32/include/asm/Kbuild b/arch/avr32/include/asm/Kbuild
deleted file mode 100644 (file)
index 3d7ef2c..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-
-generic-y += clkdev.h
-generic-y += delay.h
-generic-y += device.h
-generic-y += div64.h
-generic-y += emergency-restart.h
-generic-y += exec.h
-generic-y += futex.h
-generic-y += irq_regs.h
-generic-y += irq_work.h
-generic-y += local.h
-generic-y += local64.h
-generic-y += mcs_spinlock.h
-generic-y += mm-arch-hooks.h
-generic-y += param.h
-generic-y += percpu.h
-generic-y += preempt.h
-generic-y += sections.h
-generic-y += topology.h
-generic-y += trace_clock.h
-generic-y += vga.h
-generic-y += word-at-a-time.h
-generic-y += xor.h
diff --git a/arch/avr32/include/asm/addrspace.h b/arch/avr32/include/asm/addrspace.h
deleted file mode 100644 (file)
index 5a47a79..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Definitions for the address spaces of the AVR32 CPUs. Heavily based on
- * include/asm-sh/addrspace.h
- *
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_ADDRSPACE_H
-#define __ASM_AVR32_ADDRSPACE_H
-
-#ifdef CONFIG_MMU
-
-/* Memory segments when segmentation is enabled */
-#define P0SEG          0x00000000
-#define P1SEG          0x80000000
-#define P2SEG          0xa0000000
-#define P3SEG          0xc0000000
-#define P4SEG          0xe0000000
-
-/* Returns the privileged segment base of a given address */
-#define PXSEG(a)       (((unsigned long)(a)) & 0xe0000000)
-
-/* Returns the physical address of a PnSEG (n=1,2) address */
-#define PHYSADDR(a)    (((unsigned long)(a)) & 0x1fffffff)
-
-/*
- * Map an address to a certain privileged segment
- */
-#define P1SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) \
-                                     | P1SEG))
-#define P2SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) \
-                                     | P2SEG))
-#define P3SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) \
-                                     | P3SEG))
-#define P4SEGADDR(a) ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) \
-                                     | P4SEG))
-
-#endif /* CONFIG_MMU */
-
-#endif /* __ASM_AVR32_ADDRSPACE_H */
diff --git a/arch/avr32/include/asm/asm-offsets.h b/arch/avr32/include/asm/asm-offsets.h
deleted file mode 100644 (file)
index d370ee3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <generated/asm-offsets.h>
diff --git a/arch/avr32/include/asm/asm.h b/arch/avr32/include/asm/asm.h
deleted file mode 100644 (file)
index a2c64f4..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_ASM_H__
-#define __ASM_AVR32_ASM_H__
-
-#include <asm/sysreg.h>
-#include <asm/asm-offsets.h>
-#include <asm/thread_info.h>
-
-#define mask_interrupts                ssrf    SYSREG_GM_OFFSET
-#define mask_exceptions                ssrf    SYSREG_EM_OFFSET
-#define unmask_interrupts      csrf    SYSREG_GM_OFFSET
-#define unmask_exceptions      csrf    SYSREG_EM_OFFSET
-
-#ifdef CONFIG_FRAME_POINTER
-       .macro  save_fp
-       st.w    --sp, r7
-       .endm
-       .macro  restore_fp
-       ld.w    r7, sp++
-       .endm
-       .macro  zero_fp
-       mov     r7, 0
-       .endm
-#else
-       .macro  save_fp
-       .endm
-       .macro  restore_fp
-       .endm
-       .macro  zero_fp
-       .endm
-#endif
-       .macro  get_thread_info reg
-       mov     \reg, sp
-       andl    \reg, ~(THREAD_SIZE - 1) & 0xffff
-       .endm
-
-       /* Save and restore registers */
-       .macro  save_min sr, tmp=lr
-       pushm   lr
-       mfsr    \tmp, \sr
-       zero_fp
-       st.w    --sp, \tmp
-       .endm
-
-       .macro  restore_min sr, tmp=lr
-       ld.w    \tmp, sp++
-       mtsr    \sr, \tmp
-       popm    lr
-       .endm
-
-       .macro  save_half sr, tmp=lr
-       save_fp
-       pushm   r8-r9,r10,r11,r12,lr
-       zero_fp
-       mfsr    \tmp, \sr
-       st.w    --sp, \tmp
-       .endm
-
-       .macro  restore_half sr, tmp=lr
-       ld.w    \tmp, sp++
-       mtsr    \sr, \tmp
-       popm    r8-r9,r10,r11,r12,lr
-       restore_fp
-       .endm
-
-       .macro  save_full_user sr, tmp=lr
-       stmts   --sp, r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,sp,lr
-       st.w    --sp, lr
-       zero_fp
-       mfsr    \tmp, \sr
-       st.w    --sp, \tmp
-       .endm
-
-       .macro  restore_full_user sr, tmp=lr
-       ld.w    \tmp, sp++
-       mtsr    \sr, \tmp
-       ld.w    lr, sp++
-       ldmts   sp++, r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,sp,lr
-       .endm
-
-       /* uaccess macros */
-       .macro branch_if_kernel scratch, label
-       get_thread_info \scratch
-       ld.w    \scratch, \scratch[TI_flags]
-       bld     \scratch, TIF_USERSPACE
-       brcc    \label
-       .endm
-
-       .macro ret_if_privileged scratch, addr, size, ret
-       sub     \scratch, \size, 1
-       add     \scratch, \addr
-       retcs   \ret
-       retmi   \ret
-       .endm
-
-#endif /* __ASM_AVR32_ASM_H__ */
diff --git a/arch/avr32/include/asm/atomic.h b/arch/avr32/include/asm/atomic.h
deleted file mode 100644 (file)
index 3d5ce38..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * Atomic operations that C can't guarantee us.  Useful for
- * resource counting etc.
- *
- * But use these as seldom as possible since they are slower than
- * regular operations.
- *
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_ATOMIC_H
-#define __ASM_AVR32_ATOMIC_H
-
-#include <linux/types.h>
-#include <asm/cmpxchg.h>
-
-#define ATOMIC_INIT(i)  { (i) }
-
-#define atomic_read(v)         READ_ONCE((v)->counter)
-#define atomic_set(v, i)       WRITE_ONCE(((v)->counter), (i))
-
-#define ATOMIC_OP_RETURN(op, asm_op, asm_con)                          \
-static inline int __atomic_##op##_return(int i, atomic_t *v)           \
-{                                                                      \
-       int result;                                                     \
-                                                                       \
-       asm volatile(                                                   \
-               "/* atomic_" #op "_return */\n"                         \
-               "1:     ssrf    5\n"                                    \
-               "       ld.w    %0, %2\n"                               \
-               "       " #asm_op "     %0, %3\n"                       \
-               "       stcond  %1, %0\n"                               \
-               "       brne    1b"                                     \
-               : "=&r" (result), "=o" (v->counter)                     \
-               : "m" (v->counter), #asm_con (i)                        \
-               : "cc");                                                \
-                                                                       \
-       return result;                                                  \
-}
-
-#define ATOMIC_FETCH_OP(op, asm_op, asm_con)                           \
-static inline int __atomic_fetch_##op(int i, atomic_t *v)              \
-{                                                                      \
-       int result, val;                                                \
-                                                                       \
-       asm volatile(                                                   \
-               "/* atomic_fetch_" #op " */\n"                          \
-               "1:     ssrf    5\n"                                    \
-               "       ld.w    %0, %3\n"                               \
-               "       mov     %1, %0\n"                               \
-               "       " #asm_op "     %1, %4\n"                       \
-               "       stcond  %2, %1\n"                               \
-               "       brne    1b"                                     \
-               : "=&r" (result), "=&r" (val), "=o" (v->counter)        \
-               : "m" (v->counter), #asm_con (i)                        \
-               : "cc");                                                \
-                                                                       \
-       return result;                                                  \
-}
-
-ATOMIC_OP_RETURN(sub, sub, rKs21)
-ATOMIC_OP_RETURN(add, add, r)
-ATOMIC_FETCH_OP (sub, sub, rKs21)
-ATOMIC_FETCH_OP (add, add, r)
-
-#define ATOMIC_OPS(op, asm_op)                                         \
-ATOMIC_OP_RETURN(op, asm_op, r)                                                \
-static inline void atomic_##op(int i, atomic_t *v)                     \
-{                                                                      \
-       (void)__atomic_##op##_return(i, v);                             \
-}                                                                      \
-ATOMIC_FETCH_OP(op, asm_op, r)                                         \
-static inline int atomic_fetch_##op(int i, atomic_t *v)                \
-{                                                                      \
-       return __atomic_fetch_##op(i, v);                               \
-}
-
-ATOMIC_OPS(and, and)
-ATOMIC_OPS(or, or)
-ATOMIC_OPS(xor, eor)
-
-#undef ATOMIC_OPS
-#undef ATOMIC_FETCH_OP
-#undef ATOMIC_OP_RETURN
-
-/*
- * Probably found the reason why we want to use sub with the signed 21-bit
- * limit, it uses one less register than the add instruction that can add up to
- * 32-bit values.
- *
- * Both instructions are 32-bit, to use a 16-bit instruction the immediate is
- * very small; 4 bit.
- *
- * sub 32-bit, type IV, takes a register and subtracts a 21-bit immediate.
- * add 32-bit, type II, adds two register values together.
- */
-#define IS_21BIT_CONST(i)                                              \
-       (__builtin_constant_p(i) && ((i) >= -1048575) && ((i) <= 1048576))
-
-/*
- * atomic_add_return - add integer to atomic variable
- * @i: integer value to add
- * @v: pointer of type atomic_t
- *
- * Atomically adds @i to @v. Returns the resulting value.
- */
-static inline int atomic_add_return(int i, atomic_t *v)
-{
-       if (IS_21BIT_CONST(i))
-               return __atomic_sub_return(-i, v);
-
-       return __atomic_add_return(i, v);
-}
-
-static inline int atomic_fetch_add(int i, atomic_t *v)
-{
-       if (IS_21BIT_CONST(i))
-               return __atomic_fetch_sub(-i, v);
-
-       return __atomic_fetch_add(i, v);
-}
-
-/*
- * atomic_sub_return - subtract the atomic variable
- * @i: integer value to subtract
- * @v: pointer of type atomic_t
- *
- * Atomically subtracts @i from @v. Returns the resulting value.
- */
-static inline int atomic_sub_return(int i, atomic_t *v)
-{
-       if (IS_21BIT_CONST(i))
-               return __atomic_sub_return(i, v);
-
-       return __atomic_add_return(-i, v);
-}
-
-static inline int atomic_fetch_sub(int i, atomic_t *v)
-{
-       if (IS_21BIT_CONST(i))
-               return __atomic_fetch_sub(i, v);
-
-       return __atomic_fetch_add(-i, v);
-}
-
-/*
- * __atomic_add_unless - add unless the number is a given value
- * @v: pointer of type atomic_t
- * @a: the amount to add to v...
- * @u: ...unless v is equal to u.
- *
- * Atomically adds @a to @v, so long as it was not @u.
- * Returns the old value of @v.
-*/
-static inline int __atomic_add_unless(atomic_t *v, int a, int u)
-{
-       int tmp, old = atomic_read(v);
-
-       if (IS_21BIT_CONST(a)) {
-               asm volatile(
-                       "/* __atomic_sub_unless */\n"
-                       "1:     ssrf    5\n"
-                       "       ld.w    %0, %2\n"
-                       "       cp.w    %0, %4\n"
-                       "       breq    1f\n"
-                       "       sub     %0, %3\n"
-                       "       stcond  %1, %0\n"
-                       "       brne    1b\n"
-                       "1:"
-                       : "=&r"(tmp), "=o"(v->counter)
-                       : "m"(v->counter), "rKs21"(-a), "rKs21"(u)
-                       : "cc", "memory");
-       } else {
-               asm volatile(
-                       "/* __atomic_add_unless */\n"
-                       "1:     ssrf    5\n"
-                       "       ld.w    %0, %2\n"
-                       "       cp.w    %0, %4\n"
-                       "       breq    1f\n"
-                       "       add     %0, %3\n"
-                       "       stcond  %1, %0\n"
-                       "       brne    1b\n"
-                       "1:"
-                       : "=&r"(tmp), "=o"(v->counter)
-                       : "m"(v->counter), "r"(a), "ir"(u)
-                       : "cc", "memory");
-       }
-
-       return old;
-}
-
-#undef IS_21BIT_CONST
-
-/*
- * atomic_sub_if_positive - conditionally subtract integer from atomic variable
- * @i: integer value to subtract
- * @v: pointer of type atomic_t
- *
- * Atomically test @v and subtract @i if @v is greater or equal than @i.
- * The function returns the old value of @v minus @i.
- */
-static inline int atomic_sub_if_positive(int i, atomic_t *v)
-{
-       int result;
-
-       asm volatile(
-               "/* atomic_sub_if_positive */\n"
-               "1:     ssrf    5\n"
-               "       ld.w    %0, %2\n"
-               "       sub     %0, %3\n"
-               "       brlt    1f\n"
-               "       stcond  %1, %0\n"
-               "       brne    1b\n"
-               "1:"
-               : "=&r"(result), "=o"(v->counter)
-               : "m"(v->counter), "ir"(i)
-               : "cc", "memory");
-
-       return result;
-}
-
-#define atomic_xchg(v, new)    (xchg(&((v)->counter), new))
-#define atomic_cmpxchg(v, o, n)        (cmpxchg(&((v)->counter), (o), (n)))
-
-#define atomic_sub(i, v)       (void)atomic_sub_return(i, v)
-#define atomic_add(i, v)       (void)atomic_add_return(i, v)
-#define atomic_dec(v)          atomic_sub(1, (v))
-#define atomic_inc(v)          atomic_add(1, (v))
-
-#define atomic_dec_return(v)   atomic_sub_return(1, v)
-#define atomic_inc_return(v)   atomic_add_return(1, v)
-
-#define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0)
-#define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0)
-#define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0)
-#define atomic_add_negative(i, v) (atomic_add_return(i, v) < 0)
-
-#define atomic_dec_if_positive(v) atomic_sub_if_positive(1, v)
-
-#endif /*  __ASM_AVR32_ATOMIC_H */
diff --git a/arch/avr32/include/asm/barrier.h b/arch/avr32/include/asm/barrier.h
deleted file mode 100644 (file)
index 7151007..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_BARRIER_H
-#define __ASM_AVR32_BARRIER_H
-
-/*
- * Weirdest thing ever.. no full barrier, but it has a write barrier!
- */
-#define wmb()  asm volatile("sync 0" : : : "memory")
-
-#ifdef CONFIG_SMP
-# error "The AVR32 port does not support SMP"
-#endif
-
-#include <asm-generic/barrier.h>
-
-#endif /* __ASM_AVR32_BARRIER_H */
diff --git a/arch/avr32/include/asm/bitops.h b/arch/avr32/include/asm/bitops.h
deleted file mode 100644 (file)
index 910d537..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_BITOPS_H
-#define __ASM_AVR32_BITOPS_H
-
-#ifndef _LINUX_BITOPS_H
-#error only <linux/bitops.h> can be included directly
-#endif
-
-#include <asm/byteorder.h>
-#include <asm/barrier.h>
-
-/*
- * set_bit - Atomically set a bit in memory
- * @nr: the bit to set
- * @addr: the address to start counting from
- *
- * This function is atomic and may not be reordered.  See __set_bit()
- * if you do not require the atomic guarantees.
- *
- * Note that @nr may be almost arbitrarily large; this function is not
- * restricted to acting on a single-word quantity.
- */
-static inline void set_bit(int nr, volatile void * addr)
-{
-       unsigned long *p = ((unsigned long *)addr) + nr / BITS_PER_LONG;
-       unsigned long tmp;
-
-       if (__builtin_constant_p(nr)) {
-               asm volatile(
-                       "1:     ssrf    5\n"
-                       "       ld.w    %0, %2\n"
-                       "       sbr     %0, %3\n"
-                       "       stcond  %1, %0\n"
-                       "       brne    1b"
-                       : "=&r"(tmp), "=o"(*p)
-                       : "m"(*p), "i"(nr)
-                       : "cc");
-       } else {
-               unsigned long mask = 1UL << (nr % BITS_PER_LONG);
-               asm volatile(
-                       "1:     ssrf    5\n"
-                       "       ld.w    %0, %2\n"
-                       "       or      %0, %3\n"
-                       "       stcond  %1, %0\n"
-                       "       brne    1b"
-                       : "=&r"(tmp), "=o"(*p)
-                       : "m"(*p), "r"(mask)
-                       : "cc");
-       }
-}
-
-/*
- * clear_bit - Clears a bit in memory
- * @nr: Bit to clear
- * @addr: Address to start counting from
- *
- * clear_bit() is atomic and may not be reordered.  However, it does
- * not contain a memory barrier, so if it is used for locking purposes,
- * you should call smp_mb__before_atomic() and/or smp_mb__after_atomic()
- * in order to ensure changes are visible on other processors.
- */
-static inline void clear_bit(int nr, volatile void * addr)
-{
-       unsigned long *p = ((unsigned long *)addr) + nr / BITS_PER_LONG;
-       unsigned long tmp;
-
-       if (__builtin_constant_p(nr)) {
-               asm volatile(
-                       "1:     ssrf    5\n"
-                       "       ld.w    %0, %2\n"
-                       "       cbr     %0, %3\n"
-                       "       stcond  %1, %0\n"
-                       "       brne    1b"
-                       : "=&r"(tmp), "=o"(*p)
-                       : "m"(*p), "i"(nr)
-                       : "cc");
-       } else {
-               unsigned long mask = 1UL << (nr % BITS_PER_LONG);
-               asm volatile(
-                       "1:     ssrf    5\n"
-                       "       ld.w    %0, %2\n"
-                       "       andn    %0, %3\n"
-                       "       stcond  %1, %0\n"
-                       "       brne    1b"
-                       : "=&r"(tmp), "=o"(*p)
-                       : "m"(*p), "r"(mask)
-                       : "cc");
-       }
-}
-
-/*
- * change_bit - Toggle a bit in memory
- * @nr: Bit to change
- * @addr: Address to start counting from
- *
- * change_bit() is atomic and may not be reordered.
- * Note that @nr may be almost arbitrarily large; this function is not
- * restricted to acting on a single-word quantity.
- */
-static inline void change_bit(int nr, volatile void * addr)
-{
-       unsigned long *p = ((unsigned long *)addr) + nr / BITS_PER_LONG;
-       unsigned long mask = 1UL << (nr % BITS_PER_LONG);
-       unsigned long tmp;
-
-       asm volatile(
-               "1:     ssrf    5\n"
-               "       ld.w    %0, %2\n"
-               "       eor     %0, %3\n"
-               "       stcond  %1, %0\n"
-               "       brne    1b"
-               : "=&r"(tmp), "=o"(*p)
-               : "m"(*p), "r"(mask)
-               : "cc");
-}
-
-/*
- * test_and_set_bit - Set a bit and return its old value
- * @nr: Bit to set
- * @addr: Address to count from
- *
- * This operation is atomic and cannot be reordered.
- * It also implies a memory barrier.
- */
-static inline int test_and_set_bit(int nr, volatile void * addr)
-{
-       unsigned long *p = ((unsigned long *)addr) + nr / BITS_PER_LONG;
-       unsigned long mask = 1UL << (nr % BITS_PER_LONG);
-       unsigned long tmp, old;
-
-       if (__builtin_constant_p(nr)) {
-               asm volatile(
-                       "1:     ssrf    5\n"
-                       "       ld.w    %0, %3\n"
-                       "       mov     %2, %0\n"
-                       "       sbr     %0, %4\n"
-                       "       stcond  %1, %0\n"
-                       "       brne    1b"
-                       : "=&r"(tmp), "=o"(*p), "=&r"(old)
-                       : "m"(*p), "i"(nr)
-                       : "memory", "cc");
-       } else {
-               asm volatile(
-                       "1:     ssrf    5\n"
-                       "       ld.w    %2, %3\n"
-                       "       or      %0, %2, %4\n"
-                       "       stcond  %1, %0\n"
-                       "       brne    1b"
-                       : "=&r"(tmp), "=o"(*p), "=&r"(old)
-                       : "m"(*p), "r"(mask)
-                       : "memory", "cc");
-       }
-
-       return (old & mask) != 0;
-}
-
-/*
- * test_and_clear_bit - Clear a bit and return its old value
- * @nr: Bit to clear
- * @addr: Address to count from
- *
- * This operation is atomic and cannot be reordered.
- * It also implies a memory barrier.
- */
-static inline int test_and_clear_bit(int nr, volatile void * addr)
-{
-       unsigned long *p = ((unsigned long *)addr) + nr / BITS_PER_LONG;
-       unsigned long mask = 1UL << (nr % BITS_PER_LONG);
-       unsigned long tmp, old;
-
-       if (__builtin_constant_p(nr)) {
-               asm volatile(
-                       "1:     ssrf    5\n"
-                       "       ld.w    %0, %3\n"
-                       "       mov     %2, %0\n"
-                       "       cbr     %0, %4\n"
-                       "       stcond  %1, %0\n"
-                       "       brne    1b"
-                       : "=&r"(tmp), "=o"(*p), "=&r"(old)
-                       : "m"(*p), "i"(nr)
-                       : "memory", "cc");
-       } else {
-               asm volatile(
-                       "1:     ssrf    5\n"
-                       "       ld.w    %0, %3\n"
-                       "       mov     %2, %0\n"
-                       "       andn    %0, %4\n"
-                       "       stcond  %1, %0\n"
-                       "       brne    1b"
-                       : "=&r"(tmp), "=o"(*p), "=&r"(old)
-                       : "m"(*p), "r"(mask)
-                       : "memory", "cc");
-       }
-
-       return (old & mask) != 0;
-}
-
-/*
- * test_and_change_bit - Change a bit and return its old value
- * @nr: Bit to change
- * @addr: Address to count from
- *
- * This operation is atomic and cannot be reordered.
- * It also implies a memory barrier.
- */
-static inline int test_and_change_bit(int nr, volatile void * addr)
-{
-       unsigned long *p = ((unsigned long *)addr) + nr / BITS_PER_LONG;
-       unsigned long mask = 1UL << (nr % BITS_PER_LONG);
-       unsigned long tmp, old;
-
-       asm volatile(
-               "1:     ssrf    5\n"
-               "       ld.w    %2, %3\n"
-               "       eor     %0, %2, %4\n"
-               "       stcond  %1, %0\n"
-               "       brne    1b"
-               : "=&r"(tmp), "=o"(*p), "=&r"(old)
-               : "m"(*p), "r"(mask)
-               : "memory", "cc");
-
-       return (old & mask) != 0;
-}
-
-#include <asm-generic/bitops/non-atomic.h>
-
-/* Find First bit Set */
-static inline unsigned long __ffs(unsigned long word)
-{
-       unsigned long result;
-
-       asm("brev %1\n\t"
-           "clz %0,%1"
-           : "=r"(result), "=&r"(word)
-           : "1"(word));
-       return result;
-}
-
-/* Find First Zero */
-static inline unsigned long ffz(unsigned long word)
-{
-       return __ffs(~word);
-}
-
-/* Find Last bit Set */
-static inline int fls(unsigned long word)
-{
-       unsigned long result;
-
-       asm("clz %0,%1" : "=r"(result) : "r"(word));
-       return 32 - result;
-}
-
-static inline int __fls(unsigned long word)
-{
-       return fls(word) - 1;
-}
-
-unsigned long find_first_zero_bit(const unsigned long *addr,
-                                 unsigned long size);
-#define find_first_zero_bit find_first_zero_bit
-
-unsigned long find_next_zero_bit(const unsigned long *addr,
-                                unsigned long size,
-                                unsigned long offset);
-#define find_next_zero_bit find_next_zero_bit
-
-unsigned long find_first_bit(const unsigned long *addr,
-                            unsigned long size);
-#define find_first_bit find_first_bit
-
-unsigned long find_next_bit(const unsigned long *addr,
-                                unsigned long size,
-                                unsigned long offset);
-#define find_next_bit find_next_bit
-
-/*
- * ffs: find first bit set. This is defined the same way as
- * the libc and compiler builtin ffs routines, therefore
- * differs in spirit from the above ffz (man ffs).
- *
- * The difference is that bit numbering starts at 1, and if no bit is set,
- * the function returns 0.
- */
-static inline int ffs(unsigned long word)
-{
-       if(word == 0)
-               return 0;
-       return __ffs(word) + 1;
-}
-
-#include <asm-generic/bitops/fls64.h>
-#include <asm-generic/bitops/sched.h>
-#include <asm-generic/bitops/hweight.h>
-#include <asm-generic/bitops/lock.h>
-
-extern unsigned long find_next_zero_bit_le(const void *addr,
-               unsigned long size, unsigned long offset);
-#define find_next_zero_bit_le find_next_zero_bit_le
-
-extern unsigned long find_next_bit_le(const void *addr,
-               unsigned long size, unsigned long offset);
-#define find_next_bit_le find_next_bit_le
-
-#include <asm-generic/bitops/le.h>
-#include <asm-generic/bitops/ext2-atomic.h>
-
-#endif /* __ASM_AVR32_BITOPS_H */
diff --git a/arch/avr32/include/asm/bug.h b/arch/avr32/include/asm/bug.h
deleted file mode 100644 (file)
index 85a92d0..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_BUG_H
-#define __ASM_AVR32_BUG_H
-
-#ifdef CONFIG_BUG
-
-/*
- * According to our Chief Architect, this compact opcode is very
- * unlikely to ever be implemented.
- */
-#define AVR32_BUG_OPCODE       0x5df0
-
-#ifdef CONFIG_DEBUG_BUGVERBOSE
-
-#define _BUG_OR_WARN(flags)                                            \
-       asm volatile(                                                   \
-               "1:     .hword  %0\n"                                   \
-               "       .section __bug_table,\"a\",@progbits\n"         \
-               "2:     .long   1b\n"                                   \
-               "       .long   %1\n"                                   \
-               "       .short  %2\n"                                   \
-               "       .short  %3\n"                                   \
-               "       .org    2b + %4\n"                              \
-               "       .previous"                                      \
-               :                                                       \
-               : "i"(AVR32_BUG_OPCODE), "i"(__FILE__),                 \
-                 "i"(__LINE__), "i"(flags),                            \
-                 "i"(sizeof(struct bug_entry)))
-
-#else
-
-#define _BUG_OR_WARN(flags)                                            \
-       asm volatile(                                                   \
-               "1:     .hword  %0\n"                                   \
-               "       .section __bug_table,\"a\",@progbits\n"         \
-               "2:     .long   1b\n"                                   \
-               "       .short  %1\n"                                   \
-               "       .org    2b + %2\n"                              \
-               "       .previous"                                      \
-               :                                                       \
-               : "i"(AVR32_BUG_OPCODE), "i"(flags),                    \
-                 "i"(sizeof(struct bug_entry)))
-
-#endif /* CONFIG_DEBUG_BUGVERBOSE */
-
-#define BUG()                                                          \
-       do {                                                            \
-               _BUG_OR_WARN(0);                                        \
-               unreachable();                                          \
-       } while (0)
-
-#define WARN_ON(condition)                                                     \
-       ({                                                              \
-               int __ret_warn_on = !!(condition);                      \
-               if (unlikely(__ret_warn_on))                            \
-                       _BUG_OR_WARN(BUGFLAG_WARNING);                  \
-               unlikely(__ret_warn_on);                                \
-       })
-
-#define HAVE_ARCH_BUG
-#define HAVE_ARCH_WARN_ON
-
-#endif /* CONFIG_BUG */
-
-#include <asm-generic/bug.h>
-
-struct pt_regs;
-void die(const char *str, struct pt_regs *regs, long err);
-void _exception(long signr, struct pt_regs *regs, int code,
-               unsigned long addr);
-
-#endif /* __ASM_AVR32_BUG_H */
diff --git a/arch/avr32/include/asm/bugs.h b/arch/avr32/include/asm/bugs.h
deleted file mode 100644 (file)
index 278661b..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * This is included by init/main.c to check for architecture-dependent bugs.
- *
- * Needs:
- *      void check_bugs(void);
- */
-#ifndef __ASM_AVR32_BUGS_H
-#define __ASM_AVR32_BUGS_H
-
-static void __init check_bugs(void)
-{
-       boot_cpu_data.loops_per_jiffy = loops_per_jiffy;
-}
-
-#endif /* __ASM_AVR32_BUGS_H */
diff --git a/arch/avr32/include/asm/cache.h b/arch/avr32/include/asm/cache.h
deleted file mode 100644 (file)
index c3a58a1..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef __ASM_AVR32_CACHE_H
-#define __ASM_AVR32_CACHE_H
-
-#define L1_CACHE_SHIFT 5
-#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
-
-/*
- * Memory returned by kmalloc() may be used for DMA, so we must make
- * sure that all such allocations are cache aligned. Otherwise,
- * unrelated code may cause parts of the buffer to be read into the
- * cache before the transfer is done, causing old data to be seen by
- * the CPU.
- */
-#define ARCH_DMA_MINALIGN      L1_CACHE_BYTES
-
-#ifndef __ASSEMBLER__
-struct cache_info {
-       unsigned int ways;
-       unsigned int sets;
-       unsigned int linesz;
-};
-#endif /* __ASSEMBLER */
-
-/* Cache operation constants */
-#define ICACHE_FLUSH           0x00
-#define ICACHE_INVALIDATE      0x01
-#define ICACHE_LOCK            0x02
-#define ICACHE_UNLOCK          0x03
-#define ICACHE_PREFETCH                0x04
-
-#define DCACHE_FLUSH           0x08
-#define DCACHE_LOCK            0x09
-#define DCACHE_UNLOCK          0x0a
-#define DCACHE_INVALIDATE      0x0b
-#define DCACHE_CLEAN           0x0c
-#define DCACHE_CLEAN_INVAL     0x0d
-
-#endif /* __ASM_AVR32_CACHE_H */
diff --git a/arch/avr32/include/asm/cacheflush.h b/arch/avr32/include/asm/cacheflush.h
deleted file mode 100644 (file)
index 96e5382..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_CACHEFLUSH_H
-#define __ASM_AVR32_CACHEFLUSH_H
-
-/* Keep includes the same across arches.  */
-#include <linux/mm.h>
-
-#define CACHE_OP_ICACHE_INVALIDATE     0x01
-#define CACHE_OP_DCACHE_INVALIDATE     0x0b
-#define CACHE_OP_DCACHE_CLEAN          0x0c
-#define CACHE_OP_DCACHE_CLEAN_INVAL    0x0d
-
-/*
- * Invalidate any cacheline containing virtual address vaddr without
- * writing anything back to memory.
- *
- * Note that this function may corrupt unrelated data structures when
- * applied on buffers that are not cacheline aligned in both ends.
- */
-static inline void invalidate_dcache_line(void *vaddr)
-{
-       asm volatile("cache %0[0], %1"
-                    :
-                    : "r"(vaddr), "n"(CACHE_OP_DCACHE_INVALIDATE)
-                    : "memory");
-}
-
-/*
- * Make sure any cacheline containing virtual address vaddr is written
- * to memory.
- */
-static inline void clean_dcache_line(void *vaddr)
-{
-       asm volatile("cache %0[0], %1"
-                    :
-                    : "r"(vaddr), "n"(CACHE_OP_DCACHE_CLEAN)
-                    : "memory");
-}
-
-/*
- * Make sure any cacheline containing virtual address vaddr is written
- * to memory and then invalidate it.
- */
-static inline void flush_dcache_line(void *vaddr)
-{
-       asm volatile("cache %0[0], %1"
-                    :
-                    : "r"(vaddr), "n"(CACHE_OP_DCACHE_CLEAN_INVAL)
-                    : "memory");
-}
-
-/*
- * Invalidate any instruction cacheline containing virtual address
- * vaddr.
- */
-static inline void invalidate_icache_line(void *vaddr)
-{
-       asm volatile("cache %0[0], %1"
-                    :
-                    : "r"(vaddr), "n"(CACHE_OP_ICACHE_INVALIDATE)
-                    : "memory");
-}
-
-/*
- * Applies the above functions on all lines that are touched by the
- * specified virtual address range.
- */
-void invalidate_dcache_region(void *start, size_t len);
-void clean_dcache_region(void *start, size_t len);
-void flush_dcache_region(void *start, size_t len);
-void invalidate_icache_region(void *start, size_t len);
-
-/*
- * Make sure any pending writes are completed before continuing.
- */
-#define flush_write_buffer() asm volatile("sync 0" : : : "memory")
-
-/*
- * The following functions are called when a virtual mapping changes.
- * We do not need to flush anything in this case.
- */
-#define flush_cache_all()                      do { } while (0)
-#define flush_cache_mm(mm)                     do { } while (0)
-#define flush_cache_dup_mm(mm)                 do { } while (0)
-#define flush_cache_range(vma, start, end)     do { } while (0)
-#define flush_cache_page(vma, vmaddr, pfn)     do { } while (0)
-#define flush_cache_vmap(start, end)           do { } while (0)
-#define flush_cache_vunmap(start, end)         do { } while (0)
-
-/*
- * I think we need to implement this one to be able to reliably
- * execute pages from RAMDISK. However, if we implement the
- * flush_dcache_*() functions, it might not be needed anymore.
- *
- * #define flush_icache_page(vma, page)                do { } while (0)
- */
-extern void flush_icache_page(struct vm_area_struct *vma, struct page *page);
-
-/*
- * These are (I think) related to D-cache aliasing.  We might need to
- * do something here, but only for certain configurations.  No such
- * configurations exist at this time.
- */
-#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 0
-#define flush_dcache_page(page)                        do { } while (0)
-#define flush_dcache_mmap_lock(page)           do { } while (0)
-#define flush_dcache_mmap_unlock(page)         do { } while (0)
-
-/*
- * These are for I/D cache coherency. In this case, we do need to
- * flush with all configurations.
- */
-extern void flush_icache_range(unsigned long start, unsigned long end);
-
-extern void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
-               unsigned long vaddr, void *dst, const void *src,
-               unsigned long len);
-
-static inline void copy_from_user_page(struct vm_area_struct *vma,
-               struct page *page, unsigned long vaddr, void *dst,
-               const void *src, unsigned long len)
-{
-       memcpy(dst, src, len);
-}
-
-#endif /* __ASM_AVR32_CACHEFLUSH_H */
diff --git a/arch/avr32/include/asm/checksum.h b/arch/avr32/include/asm/checksum.h
deleted file mode 100644 (file)
index 4ab7d5b..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_CHECKSUM_H
-#define __ASM_AVR32_CHECKSUM_H
-
-/*
- * computes the checksum of a memory block at buff, length len,
- * and adds in "sum" (32-bit)
- *
- * returns a 32-bit number suitable for feeding into itself
- * or csum_tcpudp_magic
- *
- * this function must be called with even lengths, except
- * for the last fragment, which may be odd
- *
- * it's best to have buff aligned on a 32-bit boundary
- */
-__wsum csum_partial(const void *buff, int len, __wsum sum);
-
-/*
- * the same as csum_partial, but copies from src while it
- * checksums, and handles user-space pointer exceptions correctly, when needed.
- *
- * here even more important to align src and dst on a 32-bit (or even
- * better 64-bit) boundary
- */
-__wsum csum_partial_copy_generic(const void *src, void *dst, int len,
-                                      __wsum sum, int *src_err_ptr,
-                                      int *dst_err_ptr);
-
-/*
- *     Note: when you get a NULL pointer exception here this means someone
- *     passed in an incorrect kernel address to one of these functions.
- *
- *     If you use these functions directly please don't forget the
- *     access_ok().
- */
-static inline
-__wsum csum_partial_copy_nocheck(const void *src, void *dst,
-                                      int len, __wsum sum)
-{
-       return csum_partial_copy_generic(src, dst, len, sum, NULL, NULL);
-}
-
-static inline
-__wsum csum_partial_copy_from_user(const void __user *src, void *dst,
-                                         int len, __wsum sum, int *err_ptr)
-{
-       return csum_partial_copy_generic((const void __force *)src, dst, len,
-                                        sum, err_ptr, NULL);
-}
-
-/*
- *     This is a version of ip_compute_csum() optimized for IP headers,
- *     which always checksum on 4 octet boundaries.
- */
-static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
-{
-       unsigned int sum, tmp;
-
-       __asm__ __volatile__(
-               "       ld.w    %0, %1++\n"
-               "       ld.w    %3, %1++\n"
-               "       sub     %2, 4\n"
-               "       add     %0, %3\n"
-               "       ld.w    %3, %1++\n"
-               "       adc     %0, %0, %3\n"
-               "       ld.w    %3, %1++\n"
-               "       adc     %0, %0, %3\n"
-               "       acr     %0\n"
-               "1:     ld.w    %3, %1++\n"
-               "       add     %0, %3\n"
-               "       acr     %0\n"
-               "       sub     %2, 1\n"
-               "       brne    1b\n"
-               "       lsl     %3, %0, 16\n"
-               "       andl    %0, 0\n"
-               "       mov     %2, 0xffff\n"
-               "       add     %0, %3\n"
-               "       adc     %0, %0, %2\n"
-               "       com     %0\n"
-               "       lsr     %0, 16\n"
-               : "=r"(sum), "=r"(iph), "=r"(ihl), "=r"(tmp)
-               : "1"(iph), "2"(ihl)
-               : "memory", "cc");
-       return (__force __sum16)sum;
-}
-
-/*
- *     Fold a partial checksum
- */
-
-static inline __sum16 csum_fold(__wsum sum)
-{
-       unsigned int tmp;
-
-       asm("   bfextu  %1, %0, 0, 16\n"
-           "   lsr     %0, 16\n"
-           "   add     %0, %1\n"
-           "   bfextu  %1, %0, 16, 16\n"
-           "   add     %0, %1"
-           : "=&r"(sum), "=&r"(tmp)
-           : "0"(sum));
-
-       return (__force __sum16)~sum;
-}
-
-static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
-                                       __u32 len, __u8 proto,
-                                       __wsum sum)
-{
-       asm("   add     %0, %1\n"
-           "   adc     %0, %0, %2\n"
-           "   adc     %0, %0, %3\n"
-           "   acr     %0"
-           : "=r"(sum)
-           : "r"(daddr), "r"(saddr), "r"(len + proto),
-             "0"(sum)
-           : "cc");
-
-       return sum;
-}
-
-/*
- * computes the checksum of the TCP/UDP pseudo-header
- * returns a 16-bit checksum, already complemented
- */
-static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
-                                       __u32 len, __u8 proto,
-                                       __wsum sum)
-{
-       return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
-}
-
-/*
- * this routine is used for miscellaneous IP-like checksums, mainly
- * in icmp.c
- */
-
-static inline __sum16 ip_compute_csum(const void *buff, int len)
-{
-    return csum_fold(csum_partial(buff, len, 0));
-}
-
-#endif /* __ASM_AVR32_CHECKSUM_H */
diff --git a/arch/avr32/include/asm/cmpxchg.h b/arch/avr32/include/asm/cmpxchg.h
deleted file mode 100644 (file)
index 572739b..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Atomic operations that C can't guarantee us.  Useful for
- * resource counting etc.
- *
- * But use these as seldom as possible since they are slower than
- * regular operations.
- *
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_CMPXCHG_H
-#define __ASM_AVR32_CMPXCHG_H
-
-#define xchg(ptr,x) \
-       ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
-
-extern void __xchg_called_with_bad_pointer(void);
-
-static inline unsigned long xchg_u32(u32 val, volatile u32 *m)
-{
-       u32 ret;
-
-       asm volatile("xchg %[ret], %[m], %[val]"
-                       : [ret] "=&r"(ret), "=m"(*m)
-                       : "m"(*m), [m] "r"(m), [val] "r"(val)
-                       : "memory");
-       return ret;
-}
-
-static inline unsigned long __xchg(unsigned long x,
-                                      volatile void *ptr,
-                                      int size)
-{
-       switch(size) {
-       case 4:
-               return xchg_u32(x, ptr);
-       default:
-               __xchg_called_with_bad_pointer();
-               return x;
-       }
-}
-
-static inline unsigned long __cmpxchg_u32(volatile int *m, unsigned long old,
-                                         unsigned long new)
-{
-       __u32 ret;
-
-       asm volatile(
-               "1:     ssrf    5\n"
-               "       ld.w    %[ret], %[m]\n"
-               "       cp.w    %[ret], %[old]\n"
-               "       brne    2f\n"
-               "       stcond  %[m], %[new]\n"
-               "       brne    1b\n"
-               "2:\n"
-               : [ret] "=&r"(ret), [m] "=m"(*m)
-               : "m"(m), [old] "Ks21r"(old), [new] "r"(new)
-               : "memory", "cc");
-       return ret;
-}
-
-extern unsigned long __cmpxchg_u64_unsupported_on_32bit_kernels(
-        volatile int * m, unsigned long old, unsigned long new);
-#define __cmpxchg_u64 __cmpxchg_u64_unsupported_on_32bit_kernels
-
-/* This function doesn't exist, so you'll get a linker error
-   if something tries to do an invalid cmpxchg().  */
-extern void __cmpxchg_called_with_bad_pointer(void);
-
-static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
-                                     unsigned long new, int size)
-{
-       switch (size) {
-       case 4:
-               return __cmpxchg_u32(ptr, old, new);
-       case 8:
-               return __cmpxchg_u64(ptr, old, new);
-       }
-
-       __cmpxchg_called_with_bad_pointer();
-       return old;
-}
-
-#define cmpxchg(ptr, old, new)                                 \
-       ((typeof(*(ptr)))__cmpxchg((ptr), (unsigned long)(old), \
-                                  (unsigned long)(new),        \
-                                  sizeof(*(ptr))))
-
-#include <asm-generic/cmpxchg-local.h>
-
-static inline unsigned long __cmpxchg_local(volatile void *ptr,
-                                     unsigned long old,
-                                     unsigned long new, int size)
-{
-       switch (size) {
-       case 4:
-               return __cmpxchg_u32(ptr, old, new);
-       default:
-               return __cmpxchg_local_generic(ptr, old, new, size);
-       }
-
-       return old;
-}
-
-#define cmpxchg_local(ptr, old, new)                                   \
-       ((typeof(*(ptr)))__cmpxchg_local((ptr), (unsigned long)(old),   \
-                                  (unsigned long)(new),                \
-                                  sizeof(*(ptr))))
-
-#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
-
-#endif /* __ASM_AVR32_CMPXCHG_H */
diff --git a/arch/avr32/include/asm/current.h b/arch/avr32/include/asm/current.h
deleted file mode 100644 (file)
index c7b0549..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef __ASM_AVR32_CURRENT_H
-#define __ASM_AVR32_CURRENT_H
-
-#include <linux/thread_info.h>
-
-struct task_struct;
-
-inline static struct task_struct * get_current(void)
-{
-       return current_thread_info()->task;
-}
-
-#define current get_current()
-
-#endif /* __ASM_AVR32_CURRENT_H */
diff --git a/arch/avr32/include/asm/dma-mapping.h b/arch/avr32/include/asm/dma-mapping.h
deleted file mode 100644 (file)
index 7388451..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __ASM_AVR32_DMA_MAPPING_H
-#define __ASM_AVR32_DMA_MAPPING_H
-
-extern void dma_cache_sync(struct device *dev, void *vaddr, size_t size,
-       int direction);
-
-extern const struct dma_map_ops avr32_dma_ops;
-
-static inline const struct dma_map_ops *get_arch_dma_ops(struct bus_type *bus)
-{
-       return &avr32_dma_ops;
-}
-
-#endif /* __ASM_AVR32_DMA_MAPPING_H */
diff --git a/arch/avr32/include/asm/dma.h b/arch/avr32/include/asm/dma.h
deleted file mode 100644 (file)
index 9e91205..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __ASM_AVR32_DMA_H
-#define __ASM_AVR32_DMA_H
-
-/* The maximum address that we can perform a DMA transfer to on this platform.
- * Not really applicable to AVR32, but some functions need it. */
-#define MAX_DMA_ADDRESS                0xffffffff
-
-#endif /* __ASM_AVR32_DMA_H */
diff --git a/arch/avr32/include/asm/elf.h b/arch/avr32/include/asm/elf.h
deleted file mode 100644 (file)
index 0388ece..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-#ifndef __ASM_AVR32_ELF_H
-#define __ASM_AVR32_ELF_H
-
-/* AVR32 relocation numbers */
-#define R_AVR32_NONE           0
-#define R_AVR32_32             1
-#define R_AVR32_16             2
-#define R_AVR32_8              3
-#define R_AVR32_32_PCREL       4
-#define R_AVR32_16_PCREL       5
-#define R_AVR32_8_PCREL                6
-#define R_AVR32_DIFF32         7
-#define R_AVR32_DIFF16         8
-#define R_AVR32_DIFF8          9
-#define R_AVR32_GOT32          10
-#define R_AVR32_GOT16          11
-#define R_AVR32_GOT8           12
-#define R_AVR32_21S            13
-#define R_AVR32_16U            14
-#define R_AVR32_16S            15
-#define R_AVR32_8S             16
-#define R_AVR32_8S_EXT         17
-#define R_AVR32_22H_PCREL      18
-#define R_AVR32_18W_PCREL      19
-#define R_AVR32_16B_PCREL      20
-#define R_AVR32_16N_PCREL      21
-#define R_AVR32_14UW_PCREL     22
-#define R_AVR32_11H_PCREL      23
-#define R_AVR32_10UW_PCREL     24
-#define R_AVR32_9H_PCREL       25
-#define R_AVR32_9UW_PCREL      26
-#define R_AVR32_HI16           27
-#define R_AVR32_LO16           28
-#define R_AVR32_GOTPC          29
-#define R_AVR32_GOTCALL                30
-#define R_AVR32_LDA_GOT                31
-#define R_AVR32_GOT21S         32
-#define R_AVR32_GOT18SW                33
-#define R_AVR32_GOT16S         34
-#define R_AVR32_GOT7UW         35
-#define R_AVR32_32_CPENT       36
-#define R_AVR32_CPCALL         37
-#define R_AVR32_16_CP          38
-#define R_AVR32_9W_CP          39
-#define R_AVR32_RELATIVE       40
-#define R_AVR32_GLOB_DAT       41
-#define R_AVR32_JMP_SLOT       42
-#define R_AVR32_ALIGN          43
-
-/*
- * ELF register definitions..
- */
-
-#include <asm/ptrace.h>
-#include <asm/user.h>
-
-typedef unsigned long elf_greg_t;
-
-#define ELF_NGREG (sizeof (struct pt_regs) / sizeof (elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
-typedef struct user_fpu_struct elf_fpregset_t;
-
-/*
- * This is used to ensure we don't load something for the wrong architecture.
- */
-#define elf_check_arch(x) ( (x)->e_machine == EM_AVR32 )
-
-/*
- * These are used to set parameters in the core dumps.
- */
-#define ELF_CLASS      ELFCLASS32
-#ifdef __LITTLE_ENDIAN__
-#define ELF_DATA       ELFDATA2LSB
-#else
-#define ELF_DATA       ELFDATA2MSB
-#endif
-#define ELF_ARCH       EM_AVR32
-
-#define ELF_EXEC_PAGESIZE      4096
-
-/* This is the location that an ET_DYN program is loaded if exec'ed.  Typical
-   use of this is to invoke "./ld.so someprog" to test out a new version of
-   the loader.  We need to make sure that it is out of the way of the program
-   that it will "exec", and that there is sufficient room for the brk.  */
-
-#define ELF_ET_DYN_BASE         (TASK_SIZE / 3 * 2)
-
-
-/* This yields a mask that user programs can use to figure out what
-   instruction set this CPU supports.  This could be done in user space,
-   but it's not easy, and we've already done it here.  */
-
-#define ELF_HWCAP      (0)
-
-/* This yields a string that ld.so will use to load implementation
-   specific libraries for optimization.  This is more specific in
-   intent than poking at uname or /proc/cpuinfo.
-
-   For the moment, we have only optimizations for the Intel generations,
-   but that could change... */
-
-#define ELF_PLATFORM  (NULL)
-
-#endif /* __ASM_AVR32_ELF_H */
diff --git a/arch/avr32/include/asm/fb.h b/arch/avr32/include/asm/fb.h
deleted file mode 100644 (file)
index 41baf84..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef _ASM_FB_H_
-#define _ASM_FB_H_
-
-#include <linux/fb.h>
-#include <linux/fs.h>
-#include <asm/page.h>
-
-static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
-                               unsigned long off)
-{
-       vma->vm_page_prot = __pgprot((pgprot_val(vma->vm_page_prot)
-                                     & ~_PAGE_CACHABLE)
-                                    | (_PAGE_BUFFER | _PAGE_DIRTY));
-}
-
-static inline int fb_is_primary_device(struct fb_info *info)
-{
-       return 0;
-}
-
-#endif /* _ASM_FB_H_ */
diff --git a/arch/avr32/include/asm/ftrace.h b/arch/avr32/include/asm/ftrace.h
deleted file mode 100644 (file)
index 40a8c17..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/avr32/include/asm/gpio.h b/arch/avr32/include/asm/gpio.h
deleted file mode 100644 (file)
index b771f71..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __ASM_AVR32_GPIO_H
-#define __ASM_AVR32_GPIO_H
-
-#include <mach/gpio.h>
-
-#endif /* __ASM_AVR32_GPIO_H */
diff --git a/arch/avr32/include/asm/hardirq.h b/arch/avr32/include/asm/hardirq.h
deleted file mode 100644 (file)
index 9e36e3f..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __ASM_AVR32_HARDIRQ_H
-#define __ASM_AVR32_HARDIRQ_H
-#ifndef __ASSEMBLY__
-#include <asm-generic/hardirq.h>
-#endif /* __ASSEMBLY__ */
-#endif /* __ASM_AVR32_HARDIRQ_H */
diff --git a/arch/avr32/include/asm/hw_irq.h b/arch/avr32/include/asm/hw_irq.h
deleted file mode 100644 (file)
index a36f9fc..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef __ASM_AVR32_HW_IRQ_H
-#define __ASM_AVR32_HW_IRQ_H
-
-static inline void hw_resend_irq(struct irq_chip *h, unsigned int i)
-{
-       /* Nothing to do */
-}
-
-#endif /* __ASM_AVR32_HW_IRQ_H */
diff --git a/arch/avr32/include/asm/io.h b/arch/avr32/include/asm/io.h
deleted file mode 100644 (file)
index f855646..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-#ifndef __ASM_AVR32_IO_H
-#define __ASM_AVR32_IO_H
-
-#include <linux/bug.h>
-#include <linux/kernel.h>
-#include <linux/string.h>
-#include <linux/types.h>
-
-#include <asm/addrspace.h>
-#include <asm/byteorder.h>
-
-#include <mach/io.h>
-
-/* virt_to_phys will only work when address is in P1 or P2 */
-static __inline__ unsigned long virt_to_phys(volatile void *address)
-{
-       return PHYSADDR(address);
-}
-
-static __inline__ void * phys_to_virt(unsigned long address)
-{
-       return (void *)P1SEGADDR(address);
-}
-
-#define cached_to_phys(addr)   ((unsigned long)PHYSADDR(addr))
-#define uncached_to_phys(addr) ((unsigned long)PHYSADDR(addr))
-#define phys_to_cached(addr)   ((void *)P1SEGADDR(addr))
-#define phys_to_uncached(addr) ((void *)P2SEGADDR(addr))
-
-/*
- * Generic IO read/write.  These perform native-endian accesses.  Note
- * that some architectures will want to re-define __raw_{read,write}w.
- */
-extern void __raw_writesb(void __iomem *addr, const void *data, int bytelen);
-extern void __raw_writesw(void __iomem *addr, const void *data, int wordlen);
-extern void __raw_writesl(void __iomem *addr, const void *data, int longlen);
-
-extern void __raw_readsb(const void __iomem *addr, void *data, int bytelen);
-extern void __raw_readsw(const void __iomem *addr, void *data, int wordlen);
-extern void __raw_readsl(const void __iomem *addr, void *data, int longlen);
-
-static inline void __raw_writeb(u8 v, volatile void __iomem *addr)
-{
-       *(volatile u8 __force *)addr = v;
-}
-static inline void __raw_writew(u16 v, volatile void __iomem *addr)
-{
-       *(volatile u16 __force *)addr = v;
-}
-static inline void __raw_writel(u32 v, volatile void __iomem *addr)
-{
-       *(volatile u32 __force *)addr = v;
-}
-
-static inline u8 __raw_readb(const volatile void __iomem *addr)
-{
-       return *(const volatile u8 __force *)addr;
-}
-static inline u16 __raw_readw(const volatile void __iomem *addr)
-{
-       return *(const volatile u16 __force *)addr;
-}
-static inline u32 __raw_readl(const volatile void __iomem *addr)
-{
-       return *(const volatile u32 __force *)addr;
-}
-
-/* Convert I/O port address to virtual address */
-#ifndef __io
-# define __io(p)       ((void *)phys_to_uncached(p))
-#endif
-
-/*
- * Not really sure about the best way to slow down I/O on
- * AVR32. Defining it as a no-op until we have an actual test case.
- */
-#define SLOW_DOWN_IO   do { } while (0)
-
-#define __BUILD_MEMORY_SINGLE(pfx, bwl, type)                          \
-static inline void                                                     \
-pfx##write##bwl(type val, volatile void __iomem *addr)                 \
-{                                                                      \
-       volatile type *__addr;                                          \
-       type __val;                                                     \
-                                                                       \
-       __addr = (void *)__swizzle_addr_##bwl((unsigned long)(addr));   \
-       __val = pfx##ioswab##bwl(__addr, val);                          \
-                                                                       \
-       BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long));             \
-                                                                       \
-       *__addr = __val;                                                \
-}                                                                      \
-                                                                       \
-static inline type pfx##read##bwl(const volatile void __iomem *addr)   \
-{                                                                      \
-       volatile type *__addr;                                          \
-       type __val;                                                     \
-                                                                       \
-       __addr = (void *)__swizzle_addr_##bwl((unsigned long)(addr));   \
-                                                                       \
-       BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long));             \
-                                                                       \
-       __val = *__addr;                                                \
-       return pfx##ioswab##bwl(__addr, __val);                         \
-}
-
-#define __BUILD_IOPORT_SINGLE(pfx, bwl, type, p, slow)                 \
-static inline void pfx##out##bwl##p(type val, unsigned long port)      \
-{                                                                      \
-       volatile type *__addr;                                          \
-       type __val;                                                     \
-                                                                       \
-       __addr = __io(__swizzle_addr_##bwl(port));                      \
-       __val = pfx##ioswab##bwl(__addr, val);                          \
-                                                                       \
-       BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long));             \
-                                                                       \
-       *__addr = __val;                                                \
-       slow;                                                           \
-}                                                                      \
-                                                                       \
-static inline type pfx##in##bwl##p(unsigned long port)                 \
-{                                                                      \
-       volatile type *__addr;                                          \
-       type __val;                                                     \
-                                                                       \
-       __addr = __io(__swizzle_addr_##bwl(port));                      \
-                                                                       \
-       BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long));             \
-                                                                       \
-       __val = *__addr;                                                \
-       slow;                                                           \
-                                                                       \
-       return pfx##ioswab##bwl(__addr, __val);                         \
-}
-
-#define __BUILD_MEMORY_PFX(bus, bwl, type)                             \
-       __BUILD_MEMORY_SINGLE(bus, bwl, type)
-
-#define BUILDIO_MEM(bwl, type)                                         \
-       __BUILD_MEMORY_PFX(, bwl, type)                                 \
-       __BUILD_MEMORY_PFX(__mem_, bwl, type)
-
-#define __BUILD_IOPORT_PFX(bus, bwl, type)                             \
-       __BUILD_IOPORT_SINGLE(bus, bwl, type, ,)                        \
-       __BUILD_IOPORT_SINGLE(bus, bwl, type, _p, SLOW_DOWN_IO)
-
-#define BUILDIO_IOPORT(bwl, type)                                      \
-       __BUILD_IOPORT_PFX(, bwl, type)                                 \
-       __BUILD_IOPORT_PFX(__mem_, bwl, type)
-
-BUILDIO_MEM(b, u8)
-BUILDIO_MEM(w, u16)
-BUILDIO_MEM(l, u32)
-
-BUILDIO_IOPORT(b, u8)
-BUILDIO_IOPORT(w, u16)
-BUILDIO_IOPORT(l, u32)
-
-#define readb_relaxed                  readb
-#define readw_relaxed                  readw
-#define readl_relaxed                  readl
-
-#define readb_be                       __raw_readb
-#define readw_be                       __raw_readw
-#define readl_be                       __raw_readl
-
-#define writeb_relaxed                 writeb
-#define writew_relaxed                 writew
-#define writel_relaxed                 writel
-
-#define writeb_be                      __raw_writeb
-#define writew_be                      __raw_writew
-#define writel_be                      __raw_writel
-
-#define __BUILD_MEMORY_STRING(bwl, type)                               \
-static inline void writes##bwl(volatile void __iomem *addr,            \
-                              const void *data, unsigned int count)    \
-{                                                                      \
-       const type *__data = data;                                      \
-                                                                       \
-       while (count--)                                                 \
-               __mem_write##bwl(*__data++, addr);                      \
-}                                                                      \
-                                                                       \
-static inline void reads##bwl(const volatile void __iomem *addr,       \
-                             void *data, unsigned int count)           \
-{                                                                      \
-       type *__data = data;                                            \
-                                                                       \
-       while (count--)                                                 \
-               *__data++ = __mem_read##bwl(addr);                      \
-}
-
-#define __BUILD_IOPORT_STRING(bwl, type)                               \
-static inline void outs##bwl(unsigned long port, const void *data,     \
-                            unsigned int count)                        \
-{                                                                      \
-       const type *__data = data;                                      \
-                                                                       \
-       while (count--)                                                 \
-               __mem_out##bwl(*__data++, port);                        \
-}                                                                      \
-                                                                       \
-static inline void ins##bwl(unsigned long port, void *data,            \
-                          unsigned int count)                          \
-{                                                                      \
-       type *__data = data;                                            \
-                                                                       \
-       while (count--)                                                 \
-               *__data++ = __mem_in##bwl(port);                        \
-}
-
-#define BUILDSTRING(bwl, type)                                         \
-       __BUILD_MEMORY_STRING(bwl, type)                                \
-       __BUILD_IOPORT_STRING(bwl, type)
-
-BUILDSTRING(b, u8)
-BUILDSTRING(w, u16)
-BUILDSTRING(l, u32)
-
-/*
- * io{read,write}{8,16,32} macros in both le (for PCI style consumers) and native be
- */
-#ifndef ioread8
-
-#define ioread8(p)             ((unsigned int)readb(p))
-
-#define ioread16(p)            ((unsigned int)readw(p))
-#define ioread16be(p)          ((unsigned int)__raw_readw(p))
-
-#define ioread32(p)            ((unsigned int)readl(p))
-#define ioread32be(p)          ((unsigned int)__raw_readl(p))
-
-#define iowrite8(v,p)          writeb(v, p)
-
-#define iowrite16(v,p)         writew(v, p)
-#define iowrite16be(v,p)       __raw_writew(v, p)
-
-#define iowrite32(v,p)         writel(v, p)
-#define iowrite32be(v,p)       __raw_writel(v, p)
-
-#define ioread8_rep(p,d,c)     readsb(p,d,c)
-#define ioread16_rep(p,d,c)    readsw(p,d,c)
-#define ioread32_rep(p,d,c)    readsl(p,d,c)
-
-#define iowrite8_rep(p,s,c)    writesb(p,s,c)
-#define iowrite16_rep(p,s,c)   writesw(p,s,c)
-#define iowrite32_rep(p,s,c)   writesl(p,s,c)
-
-#endif
-
-static inline void memcpy_fromio(void * to, const volatile void __iomem *from,
-                                unsigned long count)
-{
-       memcpy(to, (const void __force *)from, count);
-}
-
-static inline void  memcpy_toio(volatile void __iomem *to, const void * from,
-                               unsigned long count)
-{
-       memcpy((void __force *)to, from, count);
-}
-
-static inline void memset_io(volatile void __iomem *addr, unsigned char val,
-                            unsigned long count)
-{
-       memset((void __force *)addr, val, count);
-}
-
-#define mmiowb()
-
-#define IO_SPACE_LIMIT 0xffffffff
-
-extern void __iomem *__ioremap(unsigned long offset, size_t size,
-                              unsigned long flags);
-extern void __iounmap(void __iomem *addr);
-
-/*
- * ioremap     -   map bus memory into CPU space
- * @offset     bus address of the memory
- * @size       size of the resource to map
- *
- * ioremap performs a platform specific sequence of operations to make
- * bus memory CPU accessible via the readb/.../writel functions and
- * the other mmio helpers. The returned address is not guaranteed to
- * be usable directly as a virtual address.
- */
-#define ioremap(offset, size)                  \
-       __ioremap((offset), (size), 0)
-
-#define ioremap_nocache(offset, size)          \
-       __ioremap((offset), (size), 0)
-
-#define iounmap(addr)                          \
-       __iounmap(addr)
-
-#define ioremap_wc ioremap_nocache
-#define ioremap_wt ioremap_nocache
-#define ioremap_uc ioremap_nocache
-
-#define cached(addr) P1SEGADDR(addr)
-#define uncached(addr) P2SEGADDR(addr)
-
-#define virt_to_bus virt_to_phys
-#define bus_to_virt phys_to_virt
-#define page_to_bus page_to_phys
-#define bus_to_page phys_to_page
-
-/*
- * Create a virtual mapping cookie for an IO port range.  There exists
- * no such thing as port-based I/O on AVR32, so a regular ioremap()
- * should do what we need.
- */
-#define ioport_map(port, nr)   ioremap(port, nr)
-#define ioport_unmap(port)     iounmap(port)
-
-/*
- * Convert a physical pointer to a virtual kernel pointer for /dev/mem
- * access
- */
-#define xlate_dev_mem_ptr(p)    __va(p)
-
-/*
- * Convert a virtual cached pointer to an uncached pointer
- */
-#define xlate_dev_kmem_ptr(p)   p
-
-#endif /* __ASM_AVR32_IO_H */
diff --git a/arch/avr32/include/asm/irq.h b/arch/avr32/include/asm/irq.h
deleted file mode 100644 (file)
index 6fa8913..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef __ASM_AVR32_IRQ_H
-#define __ASM_AVR32_IRQ_H
-
-#define NR_INTERNAL_IRQS       64
-
-#include <mach/irq.h>
-
-#ifndef NR_IRQS
-#define NR_IRQS                        (NR_INTERNAL_IRQS)
-#endif
-
-#define irq_canonicalize(i)    (i)
-
-#ifndef __ASSEMBLER__
-int nmi_enable(void);
-void nmi_disable(void);
-
-/*
- * Returns a bitmask of pending interrupts in a group.
- */
-extern unsigned long intc_get_pending(unsigned int group);
-#endif
-
-#endif /* __ASM_AVR32_IOCTLS_H */
diff --git a/arch/avr32/include/asm/irqflags.h b/arch/avr32/include/asm/irqflags.h
deleted file mode 100644 (file)
index 006e948..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_IRQFLAGS_H
-#define __ASM_AVR32_IRQFLAGS_H
-
-#include <linux/types.h>
-#include <asm/sysreg.h>
-
-static inline unsigned long arch_local_save_flags(void)
-{
-       return sysreg_read(SR);
-}
-
-/*
- * This will restore ALL status register flags, not only the interrupt
- * mask flag.
- *
- * The empty asm statement informs the compiler of this fact while
- * also serving as a barrier.
- */
-static inline void arch_local_irq_restore(unsigned long flags)
-{
-       sysreg_write(SR, flags);
-       asm volatile("" : : : "memory", "cc");
-}
-
-static inline void arch_local_irq_disable(void)
-{
-       asm volatile("ssrf %0" : : "n"(SYSREG_GM_OFFSET) : "memory");
-}
-
-static inline void arch_local_irq_enable(void)
-{
-       asm volatile("csrf %0" : : "n"(SYSREG_GM_OFFSET) : "memory");
-}
-
-static inline bool arch_irqs_disabled_flags(unsigned long flags)
-{
-       return (flags & SYSREG_BIT(GM)) != 0;
-}
-
-static inline bool arch_irqs_disabled(void)
-{
-       return arch_irqs_disabled_flags(arch_local_save_flags());
-}
-
-static inline unsigned long arch_local_irq_save(void)
-{
-       unsigned long flags = arch_local_save_flags();
-
-       arch_local_irq_disable();
-
-       return flags;
-}
-
-#endif /* __ASM_AVR32_IRQFLAGS_H */
diff --git a/arch/avr32/include/asm/kdebug.h b/arch/avr32/include/asm/kdebug.h
deleted file mode 100644 (file)
index f930ce2..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __ASM_AVR32_KDEBUG_H
-#define __ASM_AVR32_KDEBUG_H
-
-/* Grossly misnamed. */
-enum die_val {
-       DIE_BREAKPOINT,
-       DIE_SSTEP,
-       DIE_NMI,
-       DIE_OOPS,
-};
-
-#endif /* __ASM_AVR32_KDEBUG_H */
diff --git a/arch/avr32/include/asm/kmap_types.h b/arch/avr32/include/asm/kmap_types.h
deleted file mode 100644 (file)
index 479330b..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef __ASM_AVR32_KMAP_TYPES_H
-#define __ASM_AVR32_KMAP_TYPES_H
-
-#ifdef CONFIG_DEBUG_HIGHMEM
-# define KM_TYPE_NR 29
-#else
-# define KM_TYPE_NR 14
-#endif
-
-#endif /* __ASM_AVR32_KMAP_TYPES_H */
diff --git a/arch/avr32/include/asm/kprobes.h b/arch/avr32/include/asm/kprobes.h
deleted file mode 100644 (file)
index 28dfc61..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Kernel Probes (KProbes)
- *
- * Copyright (C) 2005-2006 Atmel Corporation
- * Copyright (C) IBM Corporation, 2002, 2004
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_KPROBES_H
-#define __ASM_AVR32_KPROBES_H
-
-#include <asm-generic/kprobes.h>
-
-#define BREAKPOINT_INSTRUCTION 0xd673  /* breakpoint */
-
-#ifdef CONFIG_KPROBES
-#include <linux/types.h>
-
-typedef u16    kprobe_opcode_t;
-#define MAX_INSN_SIZE          2
-#define MAX_STACK_SIZE         64      /* 32 would probably be OK */
-
-#define kretprobe_blacklist_size 0
-
-#define arch_remove_kprobe(p)  do { } while (0)
-
-/* Architecture specific copy of original instruction */
-struct arch_specific_insn {
-       kprobe_opcode_t insn[MAX_INSN_SIZE];
-};
-
-struct prev_kprobe {
-       struct kprobe *kp;
-       unsigned int status;
-};
-
-/* per-cpu kprobe control block */
-struct kprobe_ctlblk {
-       unsigned int kprobe_status;
-       struct prev_kprobe prev_kprobe;
-       struct pt_regs jprobe_saved_regs;
-       char jprobes_stack[MAX_STACK_SIZE];
-};
-
-extern int kprobe_fault_handler(struct pt_regs *regs, int trapnr);
-extern int kprobe_exceptions_notify(struct notifier_block *self,
-                                   unsigned long val, void *data);
-
-#define flush_insn_slot(p)     do { } while (0)
-
-#endif /* CONFIG_KPROBES */
-#endif /* __ASM_AVR32_KPROBES_H */
diff --git a/arch/avr32/include/asm/linkage.h b/arch/avr32/include/asm/linkage.h
deleted file mode 100644 (file)
index f7b285e..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef __ASM_LINKAGE_H
-#define __ASM_LINKAGE_H
-
-#define __ALIGN .balign 2
-#define __ALIGN_STR ".balign 2"
-
-#endif /* __ASM_LINKAGE_H */
diff --git a/arch/avr32/include/asm/mmu.h b/arch/avr32/include/asm/mmu.h
deleted file mode 100644 (file)
index 60c2d26..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef __ASM_AVR32_MMU_H
-#define __ASM_AVR32_MMU_H
-
-/* Default "unsigned long" context */
-typedef unsigned long mm_context_t;
-
-#define MMU_ITLB_ENTRIES       64
-#define MMU_DTLB_ENTRIES       64
-
-#endif /* __ASM_AVR32_MMU_H */
diff --git a/arch/avr32/include/asm/mmu_context.h b/arch/avr32/include/asm/mmu_context.h
deleted file mode 100644 (file)
index cd87abb..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * ASID handling taken from SH implementation.
- *   Copyright (C) 1999 Niibe Yutaka
- *   Copyright (C) 2003 Paul Mundt
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_MMU_CONTEXT_H
-#define __ASM_AVR32_MMU_CONTEXT_H
-
-#include <linux/mm_types.h>
-
-#include <asm/tlbflush.h>
-#include <asm/sysreg.h>
-#include <asm-generic/mm_hooks.h>
-
-/*
- * The MMU "context" consists of two things:
- *    (a) TLB cache version
- *    (b) ASID (Address Space IDentifier)
- */
-#define MMU_CONTEXT_ASID_MASK          0x000000ff
-#define MMU_CONTEXT_VERSION_MASK       0xffffff00
-#define MMU_CONTEXT_FIRST_VERSION       0x00000100
-#define NO_CONTEXT                     0
-
-#define MMU_NO_ASID                    0x100
-
-/* Virtual Page Number mask */
-#define MMU_VPN_MASK   0xfffff000
-
-/* Cache of MMU context last used */
-extern unsigned long mmu_context_cache;
-
-/*
- * Get MMU context if needed
- */
-static inline void
-get_mmu_context(struct mm_struct *mm)
-{
-       unsigned long mc = mmu_context_cache;
-
-       if (((mm->context ^ mc) & MMU_CONTEXT_VERSION_MASK) == 0)
-               /* It's up to date, do nothing */
-               return;
-
-       /* It's old, we need to get new context with new version */
-       mc = ++mmu_context_cache;
-       if (!(mc & MMU_CONTEXT_ASID_MASK)) {
-               /*
-                * We have exhausted all ASIDs of this version.
-                * Flush the TLB and start new cycle.
-                */
-               flush_tlb_all();
-               /*
-                * Fix version. Note that we avoid version #0
-                * to distinguish NO_CONTEXT.
-                */
-               if (!mc)
-                       mmu_context_cache = mc = MMU_CONTEXT_FIRST_VERSION;
-       }
-       mm->context = mc;
-}
-
-/*
- * Initialize the context related info for a new mm_struct
- * instance.
- */
-static inline int init_new_context(struct task_struct *tsk,
-                                      struct mm_struct *mm)
-{
-       mm->context = NO_CONTEXT;
-       return 0;
-}
-
-/*
- * Destroy context related info for an mm_struct that is about
- * to be put to rest.
- */
-static inline void destroy_context(struct mm_struct *mm)
-{
-       /* Do nothing */
-}
-
-static inline void set_asid(unsigned long asid)
-{
-       /* XXX: We're destroying TLBEHI[8:31] */
-       sysreg_write(TLBEHI, asid & MMU_CONTEXT_ASID_MASK);
-       cpu_sync_pipeline();
-}
-
-static inline unsigned long get_asid(void)
-{
-       unsigned long asid;
-
-       asid = sysreg_read(TLBEHI);
-       return asid & MMU_CONTEXT_ASID_MASK;
-}
-
-static inline void activate_context(struct mm_struct *mm)
-{
-       get_mmu_context(mm);
-       set_asid(mm->context & MMU_CONTEXT_ASID_MASK);
-}
-
-static inline void switch_mm(struct mm_struct *prev,
-                                struct mm_struct *next,
-                                struct task_struct *tsk)
-{
-       if (likely(prev != next)) {
-               unsigned long __pgdir = (unsigned long)next->pgd;
-
-               sysreg_write(PTBR, __pgdir);
-               activate_context(next);
-       }
-}
-
-#define deactivate_mm(tsk,mm) do { } while(0)
-
-#define activate_mm(prev, next) switch_mm((prev), (next), NULL)
-
-static inline void
-enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
-{
-}
-
-
-static inline void enable_mmu(void)
-{
-       sysreg_write(MMUCR, (SYSREG_BIT(MMUCR_S)
-                            | SYSREG_BIT(E)
-                            | SYSREG_BIT(MMUCR_I)));
-       nop(); nop(); nop(); nop(); nop(); nop(); nop(); nop();
-
-       if (mmu_context_cache == NO_CONTEXT)
-               mmu_context_cache = MMU_CONTEXT_FIRST_VERSION;
-
-       set_asid(mmu_context_cache & MMU_CONTEXT_ASID_MASK);
-}
-
-static inline void disable_mmu(void)
-{
-       sysreg_write(MMUCR, SYSREG_BIT(MMUCR_S));
-}
-
-#endif /* __ASM_AVR32_MMU_CONTEXT_H */
diff --git a/arch/avr32/include/asm/module.h b/arch/avr32/include/asm/module.h
deleted file mode 100644 (file)
index 3f083d3..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __ASM_AVR32_MODULE_H
-#define __ASM_AVR32_MODULE_H
-
-#include <asm-generic/module.h>
-
-struct mod_arch_syminfo {
-       unsigned long got_offset;
-       int got_initialized;
-};
-
-struct mod_arch_specific {
-       /* Starting offset of got in the module core memory. */
-       unsigned long got_offset;
-       /* Size of the got. */
-       unsigned long got_size;
-       /* Number of symbols in syminfo. */
-       int nsyms;
-       /* Additional symbol information (got offsets). */
-       struct mod_arch_syminfo *syminfo;
-};
-
-#define MODULE_PROC_FAMILY "AVR32v1"
-
-#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY
-
-#endif /* __ASM_AVR32_MODULE_H */
diff --git a/arch/avr32/include/asm/ocd.h b/arch/avr32/include/asm/ocd.h
deleted file mode 100644 (file)
index 6bef094..0000000
+++ /dev/null
@@ -1,543 +0,0 @@
-/*
- * AVR32 OCD Interface and register definitions
- *
- * Copyright (C) 2004-2007 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_OCD_H
-#define __ASM_AVR32_OCD_H
-
-/* OCD Register offsets. Abbreviations used below:
- *
- *      BP      Breakpoint
- *      Comm    Communication
- *      DT      Data Trace
- *      PC      Program Counter
- *      PID     Process ID
- *      R/W     Read/Write
- *      WP      Watchpoint
- */
-#define OCD_DID                                0x0000  /* Device ID */
-#define OCD_DC                         0x0008  /* Development Control */
-#define OCD_DS                         0x0010  /* Development Status */
-#define OCD_RWCS                       0x001c  /* R/W Access Control */
-#define OCD_RWA                                0x0024  /* R/W Access Address */
-#define OCD_RWD                                0x0028  /* R/W Access Data */
-#define OCD_WT                         0x002c  /* Watchpoint Trigger */
-#define OCD_DTC                                0x0034  /* Data Trace Control */
-#define OCD_DTSA0                      0x0038  /* DT Start Addr Channel 0 */
-#define OCD_DTSA1                      0x003c  /* DT Start Addr Channel 1 */
-#define OCD_DTEA0                      0x0048  /* DT End Addr Channel 0 */
-#define OCD_DTEA1                      0x004c  /* DT End Addr Channel 1 */
-#define OCD_BWC0A                      0x0058  /* PC BP/WP Control 0A */
-#define OCD_BWC0B                      0x005c  /* PC BP/WP Control 0B */
-#define OCD_BWC1A                      0x0060  /* PC BP/WP Control 1A */
-#define OCD_BWC1B                      0x0064  /* PC BP/WP Control 1B */
-#define OCD_BWC2A                      0x0068  /* PC BP/WP Control 2A */
-#define OCD_BWC2B                      0x006c  /* PC BP/WP Control 2B */
-#define OCD_BWC3A                      0x0070  /* Data BP/WP Control 3A */
-#define OCD_BWC3B                      0x0074  /* Data BP/WP Control 3B */
-#define OCD_BWA0A                      0x0078  /* PC BP/WP Address 0A */
-#define OCD_BWA0B                      0x007c  /* PC BP/WP Address 0B */
-#define OCD_BWA1A                      0x0080  /* PC BP/WP Address 1A */
-#define OCD_BWA1B                      0x0084  /* PC BP/WP Address 1B */
-#define OCD_BWA2A                      0x0088  /* PC BP/WP Address 2A */
-#define OCD_BWA2B                      0x008c  /* PC BP/WP Address 2B */
-#define OCD_BWA3A                      0x0090  /* Data BP/WP Address 3A */
-#define OCD_BWA3B                      0x0094  /* Data BP/WP Address 3B */
-#define OCD_NXCFG                      0x0100  /* Nexus Configuration */
-#define OCD_DINST                      0x0104  /* Debug Instruction */
-#define OCD_DPC                                0x0108  /* Debug Program Counter */
-#define OCD_CPUCM                      0x010c  /* CPU Control Mask */
-#define OCD_DCCPU                      0x0110  /* Debug Comm CPU */
-#define OCD_DCEMU                      0x0114  /* Debug Comm Emulator */
-#define OCD_DCSR                       0x0118  /* Debug Comm Status */
-#define OCD_PID                                0x011c  /* Ownership Trace PID */
-#define OCD_EPC0                       0x0120  /* Event Pair Control 0 */
-#define OCD_EPC1                       0x0124  /* Event Pair Control 1 */
-#define OCD_EPC2                       0x0128  /* Event Pair Control 2 */
-#define OCD_EPC3                       0x012c  /* Event Pair Control 3 */
-#define OCD_AXC                                0x0130  /* AUX port Control */
-
-/* Bits in DID */
-#define OCD_DID_MID_START              1
-#define OCD_DID_MID_SIZE               11
-#define OCD_DID_PN_START               12
-#define OCD_DID_PN_SIZE                        16
-#define OCD_DID_RN_START               28
-#define OCD_DID_RN_SIZE                        4
-
-/* Bits in DC */
-#define OCD_DC_TM_START                        0
-#define OCD_DC_TM_SIZE                 2
-#define OCD_DC_EIC_START               3
-#define OCD_DC_EIC_SIZE                        2
-#define OCD_DC_OVC_START               5
-#define OCD_DC_OVC_SIZE                        3
-#define OCD_DC_SS_BIT                  8
-#define OCD_DC_DBR_BIT                 12
-#define OCD_DC_DBE_BIT                 13
-#define OCD_DC_EOS_START               20
-#define OCD_DC_EOS_SIZE                        2
-#define OCD_DC_SQA_BIT                 22
-#define OCD_DC_IRP_BIT                 23
-#define OCD_DC_IFM_BIT                 24
-#define OCD_DC_TOZ_BIT                 25
-#define OCD_DC_TSR_BIT                 26
-#define OCD_DC_RID_BIT                 27
-#define OCD_DC_ORP_BIT                 28
-#define OCD_DC_MM_BIT                  29
-#define OCD_DC_RES_BIT                 30
-#define OCD_DC_ABORT_BIT               31
-
-/* Bits in DS */
-#define OCD_DS_SSS_BIT                 0
-#define OCD_DS_SWB_BIT                 1
-#define OCD_DS_HWB_BIT                 2
-#define OCD_DS_HWE_BIT                 3
-#define OCD_DS_STP_BIT                 4
-#define OCD_DS_DBS_BIT                 5
-#define OCD_DS_BP_START                        8
-#define OCD_DS_BP_SIZE                 8
-#define OCD_DS_INC_BIT                 24
-#define OCD_DS_BOZ_BIT                 25
-#define OCD_DS_DBA_BIT                 26
-#define OCD_DS_EXB_BIT                 27
-#define OCD_DS_NTBF_BIT                        28
-
-/* Bits in RWCS */
-#define OCD_RWCS_DV_BIT                        0
-#define OCD_RWCS_ERR_BIT               1
-#define OCD_RWCS_CNT_START             2
-#define OCD_RWCS_CNT_SIZE              14
-#define OCD_RWCS_CRC_BIT               19
-#define OCD_RWCS_NTBC_START            20
-#define OCD_RWCS_NTBC_SIZE             2
-#define OCD_RWCS_NTE_BIT               22
-#define OCD_RWCS_NTAP_BIT              23
-#define OCD_RWCS_WRAPPED_BIT           24
-#define OCD_RWCS_CCTRL_START           25
-#define OCD_RWCS_CCTRL_SIZE            2
-#define OCD_RWCS_SZ_START              27
-#define OCD_RWCS_SZ_SIZE               3
-#define OCD_RWCS_RW_BIT                        30
-#define OCD_RWCS_AC_BIT                        31
-
-/* Bits in RWA */
-#define OCD_RWA_RWA_START              0
-#define OCD_RWA_RWA_SIZE               32
-
-/* Bits in RWD */
-#define OCD_RWD_RWD_START              0
-#define OCD_RWD_RWD_SIZE               32
-
-/* Bits in WT */
-#define OCD_WT_DTE_START               20
-#define OCD_WT_DTE_SIZE                        3
-#define OCD_WT_DTS_START               23
-#define OCD_WT_DTS_SIZE                        3
-#define OCD_WT_PTE_START               26
-#define OCD_WT_PTE_SIZE                        3
-#define OCD_WT_PTS_START               29
-#define OCD_WT_PTS_SIZE                        3
-
-/* Bits in DTC */
-#define OCD_DTC_T0WP_BIT               0
-#define OCD_DTC_T1WP_BIT               1
-#define OCD_DTC_ASID0EN_BIT            2
-#define OCD_DTC_ASID0_START            3
-#define OCD_DTC_ASID0_SIZE             8
-#define OCD_DTC_ASID1EN_BIT            11
-#define OCD_DTC_ASID1_START            12
-#define OCD_DTC_ASID1_SIZE             8
-#define OCD_DTC_RWT1_START             28
-#define OCD_DTC_RWT1_SIZE              2
-#define OCD_DTC_RWT0_START             30
-#define OCD_DTC_RWT0_SIZE              2
-
-/* Bits in DTSA0 */
-#define OCD_DTSA0_DTSA_START           0
-#define OCD_DTSA0_DTSA_SIZE            32
-
-/* Bits in DTSA1 */
-#define OCD_DTSA1_DTSA_START           0
-#define OCD_DTSA1_DTSA_SIZE            32
-
-/* Bits in DTEA0 */
-#define OCD_DTEA0_DTEA_START           0
-#define OCD_DTEA0_DTEA_SIZE            32
-
-/* Bits in DTEA1 */
-#define OCD_DTEA1_DTEA_START           0
-#define OCD_DTEA1_DTEA_SIZE            32
-
-/* Bits in BWC0A */
-#define OCD_BWC0A_ASIDEN_BIT           0
-#define OCD_BWC0A_ASID_START           1
-#define OCD_BWC0A_ASID_SIZE            8
-#define OCD_BWC0A_EOC_BIT              14
-#define OCD_BWC0A_AME_BIT              25
-#define OCD_BWC0A_BWE_START            30
-#define OCD_BWC0A_BWE_SIZE             2
-
-/* Bits in BWC0B */
-#define OCD_BWC0B_ASIDEN_BIT           0
-#define OCD_BWC0B_ASID_START           1
-#define OCD_BWC0B_ASID_SIZE            8
-#define OCD_BWC0B_EOC_BIT              14
-#define OCD_BWC0B_AME_BIT              25
-#define OCD_BWC0B_BWE_START            30
-#define OCD_BWC0B_BWE_SIZE             2
-
-/* Bits in BWC1A */
-#define OCD_BWC1A_ASIDEN_BIT           0
-#define OCD_BWC1A_ASID_START           1
-#define OCD_BWC1A_ASID_SIZE            8
-#define OCD_BWC1A_EOC_BIT              14
-#define OCD_BWC1A_AME_BIT              25
-#define OCD_BWC1A_BWE_START            30
-#define OCD_BWC1A_BWE_SIZE             2
-
-/* Bits in BWC1B */
-#define OCD_BWC1B_ASIDEN_BIT           0
-#define OCD_BWC1B_ASID_START           1
-#define OCD_BWC1B_ASID_SIZE            8
-#define OCD_BWC1B_EOC_BIT              14
-#define OCD_BWC1B_AME_BIT              25
-#define OCD_BWC1B_BWE_START            30
-#define OCD_BWC1B_BWE_SIZE             2
-
-/* Bits in BWC2A */
-#define OCD_BWC2A_ASIDEN_BIT           0
-#define OCD_BWC2A_ASID_START           1
-#define OCD_BWC2A_ASID_SIZE            8
-#define OCD_BWC2A_EOC_BIT              14
-#define OCD_BWC2A_AMB_START            20
-#define OCD_BWC2A_AMB_SIZE             5
-#define OCD_BWC2A_AME_BIT              25
-#define OCD_BWC2A_BWE_START            30
-#define OCD_BWC2A_BWE_SIZE             2
-
-/* Bits in BWC2B */
-#define OCD_BWC2B_ASIDEN_BIT           0
-#define OCD_BWC2B_ASID_START           1
-#define OCD_BWC2B_ASID_SIZE            8
-#define OCD_BWC2B_EOC_BIT              14
-#define OCD_BWC2B_AME_BIT              25
-#define OCD_BWC2B_BWE_START            30
-#define OCD_BWC2B_BWE_SIZE             2
-
-/* Bits in BWC3A */
-#define OCD_BWC3A_ASIDEN_BIT           0
-#define OCD_BWC3A_ASID_START           1
-#define OCD_BWC3A_ASID_SIZE            8
-#define OCD_BWC3A_SIZE_START           9
-#define OCD_BWC3A_SIZE_SIZE            3
-#define OCD_BWC3A_EOC_BIT              14
-#define OCD_BWC3A_BWO_START            16
-#define OCD_BWC3A_BWO_SIZE             2
-#define OCD_BWC3A_BME_START            20
-#define OCD_BWC3A_BME_SIZE             4
-#define OCD_BWC3A_BRW_START            28
-#define OCD_BWC3A_BRW_SIZE             2
-#define OCD_BWC3A_BWE_START            30
-#define OCD_BWC3A_BWE_SIZE             2
-
-/* Bits in BWC3B */
-#define OCD_BWC3B_ASIDEN_BIT           0
-#define OCD_BWC3B_ASID_START           1
-#define OCD_BWC3B_ASID_SIZE            8
-#define OCD_BWC3B_SIZE_START           9
-#define OCD_BWC3B_SIZE_SIZE            3
-#define OCD_BWC3B_EOC_BIT              14
-#define OCD_BWC3B_BWO_START            16
-#define OCD_BWC3B_BWO_SIZE             2
-#define OCD_BWC3B_BME_START            20
-#define OCD_BWC3B_BME_SIZE             4
-#define OCD_BWC3B_BRW_START            28
-#define OCD_BWC3B_BRW_SIZE             2
-#define OCD_BWC3B_BWE_START            30
-#define OCD_BWC3B_BWE_SIZE             2
-
-/* Bits in BWA0A */
-#define OCD_BWA0A_BWA_START            0
-#define OCD_BWA0A_BWA_SIZE             32
-
-/* Bits in BWA0B */
-#define OCD_BWA0B_BWA_START            0
-#define OCD_BWA0B_BWA_SIZE             32
-
-/* Bits in BWA1A */
-#define OCD_BWA1A_BWA_START            0
-#define OCD_BWA1A_BWA_SIZE             32
-
-/* Bits in BWA1B */
-#define OCD_BWA1B_BWA_START            0
-#define OCD_BWA1B_BWA_SIZE             32
-
-/* Bits in BWA2A */
-#define OCD_BWA2A_BWA_START            0
-#define OCD_BWA2A_BWA_SIZE             32
-
-/* Bits in BWA2B */
-#define OCD_BWA2B_BWA_START            0
-#define OCD_BWA2B_BWA_SIZE             32
-
-/* Bits in BWA3A */
-#define OCD_BWA3A_BWA_START            0
-#define OCD_BWA3A_BWA_SIZE             32
-
-/* Bits in BWA3B */
-#define OCD_BWA3B_BWA_START            0
-#define OCD_BWA3B_BWA_SIZE             32
-
-/* Bits in NXCFG */
-#define OCD_NXCFG_NXARCH_START         0
-#define OCD_NXCFG_NXARCH_SIZE          4
-#define OCD_NXCFG_NXOCD_START          4
-#define OCD_NXCFG_NXOCD_SIZE           4
-#define OCD_NXCFG_NXPCB_START          8
-#define OCD_NXCFG_NXPCB_SIZE           4
-#define OCD_NXCFG_NXDB_START           12
-#define OCD_NXCFG_NXDB_SIZE            4
-#define OCD_NXCFG_MXMSEO_BIT           16
-#define OCD_NXCFG_NXMDO_START          17
-#define OCD_NXCFG_NXMDO_SIZE           4
-#define OCD_NXCFG_NXPT_BIT             21
-#define OCD_NXCFG_NXOT_BIT             22
-#define OCD_NXCFG_NXDWT_BIT            23
-#define OCD_NXCFG_NXDRT_BIT            24
-#define OCD_NXCFG_NXDTC_START          25
-#define OCD_NXCFG_NXDTC_SIZE           3
-#define OCD_NXCFG_NXDMA_BIT            28
-
-/* Bits in DINST */
-#define OCD_DINST_DINST_START          0
-#define OCD_DINST_DINST_SIZE           32
-
-/* Bits in CPUCM */
-#define OCD_CPUCM_BEM_BIT              1
-#define OCD_CPUCM_FEM_BIT              2
-#define OCD_CPUCM_REM_BIT              3
-#define OCD_CPUCM_IBEM_BIT             4
-#define OCD_CPUCM_IEEM_BIT             5
-
-/* Bits in DCCPU */
-#define OCD_DCCPU_DATA_START           0
-#define OCD_DCCPU_DATA_SIZE            32
-
-/* Bits in DCEMU */
-#define OCD_DCEMU_DATA_START           0
-#define OCD_DCEMU_DATA_SIZE            32
-
-/* Bits in DCSR */
-#define OCD_DCSR_CPUD_BIT              0
-#define OCD_DCSR_EMUD_BIT              1
-
-/* Bits in PID */
-#define OCD_PID_PROCESS_START          0
-#define OCD_PID_PROCESS_SIZE           32
-
-/* Bits in EPC0 */
-#define OCD_EPC0_RNG_START             0
-#define OCD_EPC0_RNG_SIZE              2
-#define OCD_EPC0_CE_BIT                        4
-#define OCD_EPC0_ECNT_START            16
-#define OCD_EPC0_ECNT_SIZE             16
-
-/* Bits in EPC1 */
-#define OCD_EPC1_RNG_START             0
-#define OCD_EPC1_RNG_SIZE              2
-#define OCD_EPC1_ATB_BIT               5
-#define OCD_EPC1_AM_BIT                        6
-
-/* Bits in EPC2 */
-#define OCD_EPC2_RNG_START             0
-#define OCD_EPC2_RNG_SIZE              2
-#define OCD_EPC2_DB_START              2
-#define OCD_EPC2_DB_SIZE               2
-
-/* Bits in EPC3 */
-#define OCD_EPC3_RNG_START             0
-#define OCD_EPC3_RNG_SIZE              2
-#define OCD_EPC3_DWE_BIT               2
-
-/* Bits in AXC */
-#define OCD_AXC_DIV_START              0
-#define OCD_AXC_DIV_SIZE               4
-#define OCD_AXC_AXE_BIT                        8
-#define OCD_AXC_AXS_BIT                        9
-#define OCD_AXC_DDR_BIT                        10
-#define OCD_AXC_LS_BIT                 11
-#define OCD_AXC_REX_BIT                        12
-#define OCD_AXC_REXTEN_BIT             13
-
-/* Constants for DC:EIC */
-#define OCD_EIC_PROGRAM_AND_DATA_TRACE 0
-#define OCD_EIC_BREAKPOINT             1
-#define OCD_EIC_NOP                    2
-
-/* Constants for DC:OVC */
-#define OCD_OVC_OVERRUN                        0
-#define OCD_OVC_DELAY_CPU_BTM          1
-#define OCD_OVC_DELAY_CPU_DTM          2
-#define OCD_OVC_DELAY_CPU_BTM_DTM      3
-
-/* Constants for DC:EOS */
-#define OCD_EOS_NOP                    0
-#define OCD_EOS_DEBUG_MODE             1
-#define OCD_EOS_BREAKPOINT_WATCHPOINT  2
-#define OCD_EOS_THQ                    3
-
-/* Constants for RWCS:NTBC */
-#define OCD_NTBC_OVERWRITE             0
-#define OCD_NTBC_DISABLE               1
-#define OCD_NTBC_BREAKPOINT            2
-
-/* Constants for RWCS:CCTRL */
-#define OCD_CCTRL_AUTO                 0
-#define OCD_CCTRL_CACHED               1
-#define OCD_CCTRL_UNCACHED             2
-
-/* Constants for RWCS:SZ */
-#define OCD_SZ_BYTE                    0
-#define OCD_SZ_HALFWORD                        1
-#define OCD_SZ_WORD                    2
-
-/* Constants for WT:PTS */
-#define OCD_PTS_DISABLED               0
-#define OCD_PTS_PROGRAM_0B             1
-#define OCD_PTS_PROGRAM_1A             2
-#define OCD_PTS_PROGRAM_1B             3
-#define OCD_PTS_PROGRAM_2A             4
-#define OCD_PTS_PROGRAM_2B             5
-#define OCD_PTS_DATA_3A                        6
-#define OCD_PTS_DATA_3B                        7
-
-/* Constants for DTC:RWT1 */
-#define OCD_RWT1_NO_TRACE              0
-#define OCD_RWT1_DATA_READ             1
-#define OCD_RWT1_DATA_WRITE            2
-#define OCD_RWT1_DATA_READ_WRITE       3
-
-/* Constants for DTC:RWT0 */
-#define OCD_RWT0_NO_TRACE              0
-#define OCD_RWT0_DATA_READ             1
-#define OCD_RWT0_DATA_WRITE            2
-#define OCD_RWT0_DATA_READ_WRITE       3
-
-/* Constants for BWC0A:BWE */
-#define OCD_BWE_DISABLED               0
-#define OCD_BWE_BREAKPOINT_ENABLED     1
-#define OCD_BWE_WATCHPOINT_ENABLED     3
-
-/* Constants for BWC0B:BWE */
-#define OCD_BWE_DISABLED               0
-#define OCD_BWE_BREAKPOINT_ENABLED     1
-#define OCD_BWE_WATCHPOINT_ENABLED     3
-
-/* Constants for BWC1A:BWE */
-#define OCD_BWE_DISABLED               0
-#define OCD_BWE_BREAKPOINT_ENABLED     1
-#define OCD_BWE_WATCHPOINT_ENABLED     3
-
-/* Constants for BWC1B:BWE */
-#define OCD_BWE_DISABLED               0
-#define OCD_BWE_BREAKPOINT_ENABLED     1
-#define OCD_BWE_WATCHPOINT_ENABLED     3
-
-/* Constants for BWC2A:BWE */
-#define OCD_BWE_DISABLED               0
-#define OCD_BWE_BREAKPOINT_ENABLED     1
-#define OCD_BWE_WATCHPOINT_ENABLED     3
-
-/* Constants for BWC2B:BWE */
-#define OCD_BWE_DISABLED               0
-#define OCD_BWE_BREAKPOINT_ENABLED     1
-#define OCD_BWE_WATCHPOINT_ENABLED     3
-
-/* Constants for BWC3A:SIZE */
-#define OCD_SIZE_BYTE_ACCESS           4
-#define OCD_SIZE_HALFWORD_ACCESS       5
-#define OCD_SIZE_WORD_ACCESS           6
-#define OCD_SIZE_DOUBLE_WORD_ACCESS    7
-
-/* Constants for BWC3A:BRW */
-#define OCD_BRW_READ_BREAK             0
-#define OCD_BRW_WRITE_BREAK            1
-#define OCD_BRW_ANY_ACCES_BREAK                2
-
-/* Constants for BWC3A:BWE */
-#define OCD_BWE_DISABLED               0
-#define OCD_BWE_BREAKPOINT_ENABLED     1
-#define OCD_BWE_WATCHPOINT_ENABLED     3
-
-/* Constants for BWC3B:SIZE */
-#define OCD_SIZE_BYTE_ACCESS           4
-#define OCD_SIZE_HALFWORD_ACCESS       5
-#define OCD_SIZE_WORD_ACCESS           6
-#define OCD_SIZE_DOUBLE_WORD_ACCESS    7
-
-/* Constants for BWC3B:BRW */
-#define OCD_BRW_READ_BREAK             0
-#define OCD_BRW_WRITE_BREAK            1
-#define OCD_BRW_ANY_ACCES_BREAK                2
-
-/* Constants for BWC3B:BWE */
-#define OCD_BWE_DISABLED               0
-#define OCD_BWE_BREAKPOINT_ENABLED     1
-#define OCD_BWE_WATCHPOINT_ENABLED     3
-
-/* Constants for EPC0:RNG */
-#define OCD_RNG_DISABLED               0
-#define OCD_RNG_EXCLUSIVE              1
-#define OCD_RNG_INCLUSIVE              2
-
-/* Constants for EPC1:RNG */
-#define OCD_RNG_DISABLED               0
-#define OCD_RNG_EXCLUSIVE              1
-#define OCD_RNG_INCLUSIVE              2
-
-/* Constants for EPC2:RNG */
-#define OCD_RNG_DISABLED               0
-#define OCD_RNG_EXCLUSIVE              1
-#define OCD_RNG_INCLUSIVE              2
-
-/* Constants for EPC2:DB */
-#define OCD_DB_DISABLED                        0
-#define OCD_DB_CHAINED_B               1
-#define OCD_DB_CHAINED_A               2
-#define OCD_DB_AHAINED_A_AND_B         3
-
-/* Constants for EPC3:RNG */
-#define OCD_RNG_DISABLED               0
-#define OCD_RNG_EXCLUSIVE              1
-#define OCD_RNG_INCLUSIVE              2
-
-#ifndef __ASSEMBLER__
-
-/* Register access macros */
-static inline unsigned long __ocd_read(unsigned int reg)
-{
-       return __builtin_mfdr(reg);
-}
-
-static inline void __ocd_write(unsigned int reg, unsigned long value)
-{
-       __builtin_mtdr(reg, value);
-}
-
-#define ocd_read(reg)                  __ocd_read(OCD_##reg)
-#define ocd_write(reg, value)          __ocd_write(OCD_##reg, value)
-
-struct task_struct;
-
-void ocd_enable(struct task_struct *child);
-void ocd_disable(struct task_struct *child);
-
-#endif /* !__ASSEMBLER__ */
-
-#endif /* __ASM_AVR32_OCD_H */
diff --git a/arch/avr32/include/asm/page.h b/arch/avr32/include/asm/page.h
deleted file mode 100644 (file)
index c5d2a3e..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_PAGE_H
-#define __ASM_AVR32_PAGE_H
-
-#include <linux/const.h>
-
-/* PAGE_SHIFT determines the page size */
-#define PAGE_SHIFT     12
-#define PAGE_SIZE      (_AC(1, UL) << PAGE_SHIFT)
-#define PAGE_MASK      (~(PAGE_SIZE-1))
-#define PTE_MASK       PAGE_MASK
-
-#ifndef __ASSEMBLY__
-
-#include <asm/addrspace.h>
-
-extern void clear_page(void *to);
-extern void copy_page(void *to, void *from);
-
-#define clear_user_page(page, vaddr, pg)       clear_page(page)
-#define copy_user_page(to, from, vaddr, pg)    copy_page(to, from)
-
-/*
- * These are used to make use of C type-checking..
- */
-typedef struct { unsigned long pte; } pte_t;
-typedef struct { unsigned long pgd; } pgd_t;
-typedef struct { unsigned long pgprot; } pgprot_t;
-typedef struct page *pgtable_t;
-
-#define pte_val(x)             ((x).pte)
-#define pgd_val(x)             ((x).pgd)
-#define pgprot_val(x)          ((x).pgprot)
-
-#define __pte(x)               ((pte_t) { (x) })
-#define __pgd(x)               ((pgd_t) { (x) })
-#define __pgprot(x)            ((pgprot_t) { (x) })
-
-/* FIXME: These should be removed soon */
-extern unsigned long memory_start, memory_end;
-
-/* Pure 2^n version of get_order */
-static inline int get_order(unsigned long size)
-{
-       unsigned lz;
-
-       size = (size - 1) >> PAGE_SHIFT;
-       asm("clz %0, %1" : "=r"(lz) : "r"(size));
-       return 32 - lz;
-}
-
-#endif /* !__ASSEMBLY__ */
-
-/*
- * The hardware maps the virtual addresses 0x80000000 -> 0x9fffffff
- * permanently to the physical addresses 0x00000000 -> 0x1fffffff when
- * segmentation is enabled. We want to make use of this in order to
- * minimize TLB pressure.
- */
-#define PAGE_OFFSET            (0x80000000UL)
-
-/*
- * ALSA uses virt_to_page() on DMA pages, which I'm not entirely sure
- * is a good idea. Anyway, we can't simply subtract PAGE_OFFSET here
- * in that case, so we'll have to mask out the three most significant
- * bits of the address instead...
- *
- * What's the difference between __pa() and virt_to_phys() anyway?
- */
-#define __pa(x)                PHYSADDR(x)
-#define __va(x)                ((void *)(P1SEGADDR(x)))
-
-#define MAP_NR(addr)   (((unsigned long)(addr) - PAGE_OFFSET) >> PAGE_SHIFT)
-
-#define phys_to_page(phys)     (pfn_to_page(phys >> PAGE_SHIFT))
-#define page_to_phys(page)     (page_to_pfn(page) << PAGE_SHIFT)
-
-#ifndef CONFIG_NEED_MULTIPLE_NODES
-
-#define ARCH_PFN_OFFSET                (CONFIG_PHYS_OFFSET >> PAGE_SHIFT)
-
-#define pfn_valid(pfn)         ((pfn) >= ARCH_PFN_OFFSET && (pfn) < (ARCH_PFN_OFFSET + max_mapnr))
-#endif /* CONFIG_NEED_MULTIPLE_NODES */
-
-#define virt_to_page(kaddr)    pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
-#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
-
-#define VM_DATA_DEFAULT_FLAGS  (VM_READ | VM_WRITE |   \
-                                VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
-
-/*
- * Memory above this physical address will be considered highmem.
- */
-#define HIGHMEM_START          0x20000000UL
-
-#include <asm-generic/memory_model.h>
-
-#endif /* __ASM_AVR32_PAGE_H */
diff --git a/arch/avr32/include/asm/pci.h b/arch/avr32/include/asm/pci.h
deleted file mode 100644 (file)
index 0f5f134..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef __ASM_AVR32_PCI_H__
-#define __ASM_AVR32_PCI_H__
-
-/* We don't support PCI yet, but some drivers require this file anyway */
-
-#define PCI_DMA_BUS_IS_PHYS    (1)
-
-#endif /* __ASM_AVR32_PCI_H__ */
diff --git a/arch/avr32/include/asm/pgalloc.h b/arch/avr32/include/asm/pgalloc.h
deleted file mode 100644 (file)
index db039cb..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_PGALLOC_H
-#define __ASM_AVR32_PGALLOC_H
-
-#include <linux/mm.h>
-#include <linux/quicklist.h>
-#include <asm/page.h>
-#include <asm/pgtable.h>
-
-#define QUICK_PGD      0       /* Preserve kernel mappings over free */
-#define QUICK_PT       1       /* Zero on free */
-
-static inline void pmd_populate_kernel(struct mm_struct *mm,
-                                      pmd_t *pmd, pte_t *pte)
-{
-       set_pmd(pmd, __pmd((unsigned long)pte));
-}
-
-static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
-                                   pgtable_t pte)
-{
-       set_pmd(pmd, __pmd((unsigned long)page_address(pte)));
-}
-#define pmd_pgtable(pmd) pmd_page(pmd)
-
-static inline void pgd_ctor(void *x)
-{
-       pgd_t *pgd = x;
-
-       memcpy(pgd + USER_PTRS_PER_PGD,
-               swapper_pg_dir + USER_PTRS_PER_PGD,
-               (PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t));
-}
-
-/*
- * Allocate and free page tables
- */
-static inline pgd_t *pgd_alloc(struct mm_struct *mm)
-{
-       return quicklist_alloc(QUICK_PGD, GFP_KERNEL, pgd_ctor);
-}
-
-static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
-{
-       quicklist_free(QUICK_PGD, NULL, pgd);
-}
-
-static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
-                                         unsigned long address)
-{
-       return quicklist_alloc(QUICK_PT, GFP_KERNEL, NULL);
-}
-
-static inline pgtable_t pte_alloc_one(struct mm_struct *mm,
-                                        unsigned long address)
-{
-       struct page *page;
-       void *pg;
-
-       pg = quicklist_alloc(QUICK_PT, GFP_KERNEL, NULL);
-       if (!pg)
-               return NULL;
-
-       page = virt_to_page(pg);
-       if (!pgtable_page_ctor(page)) {
-               quicklist_free(QUICK_PT, NULL, pg);
-               return NULL;
-       }
-
-       return page;
-}
-
-static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
-{
-       quicklist_free(QUICK_PT, NULL, pte);
-}
-
-static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
-{
-       pgtable_page_dtor(pte);
-       quicklist_free_page(QUICK_PT, NULL, pte);
-}
-
-#define __pte_free_tlb(tlb,pte,addr)                   \
-do {                                                   \
-       pgtable_page_dtor(pte);                         \
-       tlb_remove_page((tlb), pte);                    \
-} while (0)
-
-static inline void check_pgt_cache(void)
-{
-       quicklist_trim(QUICK_PGD, NULL, 25, 16);
-       quicklist_trim(QUICK_PT, NULL, 25, 16);
-}
-
-#endif /* __ASM_AVR32_PGALLOC_H */
diff --git a/arch/avr32/include/asm/pgtable-2level.h b/arch/avr32/include/asm/pgtable-2level.h
deleted file mode 100644 (file)
index d5b1c63..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_PGTABLE_2LEVEL_H
-#define __ASM_AVR32_PGTABLE_2LEVEL_H
-
-#define __ARCH_USE_5LEVEL_HACK
-#include <asm-generic/pgtable-nopmd.h>
-
-/*
- * Traditional 2-level paging structure
- */
-#define PGDIR_SHIFT    22
-#define PTRS_PER_PGD   1024
-
-#define PTRS_PER_PTE   1024
-
-#ifndef __ASSEMBLY__
-#define pte_ERROR(e) \
-       printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, pte_val(e))
-#define pgd_ERROR(e) \
-       printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e))
-
-/*
- * Certain architectures need to do special things when PTEs
- * within a page table are directly modified.  Thus, the following
- * hook is made available.
- */
-#define set_pte(pteptr, pteval) (*(pteptr) = pteval)
-#define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep, pteval)
-
-/*
- * (pmds are folded into pgds so this doesn't get actually called,
- * but the define is needed for a generic inline function.)
- */
-#define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval)
-
-#define pte_pfn(x)             ((unsigned long)(((x).pte >> PAGE_SHIFT)))
-#define pfn_pte(pfn, prot)     __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot))
-#define pfn_pmd(pfn, prot)     __pmd(((pfn) << PAGE_SHIFT) | pgprot_val(prot))
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* __ASM_AVR32_PGTABLE_2LEVEL_H */
diff --git a/arch/avr32/include/asm/pgtable.h b/arch/avr32/include/asm/pgtable.h
deleted file mode 100644 (file)
index 3580066..0000000
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_PGTABLE_H
-#define __ASM_AVR32_PGTABLE_H
-
-#include <asm/addrspace.h>
-
-#ifndef __ASSEMBLY__
-#include <linux/sched.h>
-
-#endif /* !__ASSEMBLY__ */
-
-/*
- * Use two-level page tables just as the i386 (without PAE)
- */
-#include <asm/pgtable-2level.h>
-
-/*
- * The following code might need some cleanup when the values are
- * final...
- */
-#define PMD_SIZE       (1UL << PMD_SHIFT)
-#define PMD_MASK       (~(PMD_SIZE-1))
-#define PGDIR_SIZE     (1UL << PGDIR_SHIFT)
-#define PGDIR_MASK     (~(PGDIR_SIZE-1))
-
-#define USER_PTRS_PER_PGD      (TASK_SIZE / PGDIR_SIZE)
-#define FIRST_USER_ADDRESS     0UL
-
-#ifndef __ASSEMBLY__
-extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
-extern void paging_init(void);
-
-/*
- * ZERO_PAGE is a global shared page that is always zero: used for
- * zero-mapped memory areas etc.
- */
-extern struct page *empty_zero_page;
-#define ZERO_PAGE(vaddr) (empty_zero_page)
-
-/*
- * Just any arbitrary offset to the start of the vmalloc VM area: the
- * current 8 MiB value just means that there will be a 8 MiB "hole"
- * after the uncached physical memory (P2 segment) until the vmalloc
- * area starts. That means that any out-of-bounds memory accesses will
- * hopefully be caught; we don't know if the end of the P1/P2 segments
- * are actually used for anything, but it is anyway safer to let the
- * MMU catch these kinds of errors than to rely on the memory bus.
- *
- * A "hole" of the same size is added to the end of the P3 segment as
- * well. It might seem wasteful to use 16 MiB of virtual address space
- * on this, but we do have 512 MiB of it...
- *
- * The vmalloc() routines leave a hole of 4 KiB between each vmalloced
- * area for the same reason.
- */
-#define VMALLOC_OFFSET (8 * 1024 * 1024)
-#define VMALLOC_START  (P3SEG + VMALLOC_OFFSET)
-#define VMALLOC_END    (P4SEG - VMALLOC_OFFSET)
-#endif /* !__ASSEMBLY__ */
-
-/*
- * Page flags. Some of these flags are not directly supported by
- * hardware, so we have to emulate them.
- */
-#define _TLBEHI_BIT_VALID      9
-#define _TLBEHI_VALID          (1 << _TLBEHI_BIT_VALID)
-
-#define _PAGE_BIT_WT           0  /* W-bit   : write-through */
-#define _PAGE_BIT_DIRTY                1  /* D-bit   : page changed */
-#define _PAGE_BIT_SZ0          2  /* SZ0-bit : Size of page */
-#define _PAGE_BIT_SZ1          3  /* SZ1-bit : Size of page */
-#define _PAGE_BIT_EXECUTE      4  /* X-bit   : execute access allowed */
-#define _PAGE_BIT_RW           5  /* AP0-bit : write access allowed */
-#define _PAGE_BIT_USER         6  /* AP1-bit : user space access allowed */
-#define _PAGE_BIT_BUFFER       7  /* B-bit   : bufferable */
-#define _PAGE_BIT_GLOBAL       8  /* G-bit   : global (ignore ASID) */
-#define _PAGE_BIT_CACHABLE     9  /* C-bit   : cachable */
-
-/* If we drop support for 1K pages, we get two extra bits */
-#define _PAGE_BIT_PRESENT      10
-#define _PAGE_BIT_ACCESSED     11 /* software: page was accessed */
-
-#define _PAGE_WT               (1 << _PAGE_BIT_WT)
-#define _PAGE_DIRTY            (1 << _PAGE_BIT_DIRTY)
-#define _PAGE_EXECUTE          (1 << _PAGE_BIT_EXECUTE)
-#define _PAGE_RW               (1 << _PAGE_BIT_RW)
-#define _PAGE_USER             (1 << _PAGE_BIT_USER)
-#define _PAGE_BUFFER           (1 << _PAGE_BIT_BUFFER)
-#define _PAGE_GLOBAL           (1 << _PAGE_BIT_GLOBAL)
-#define _PAGE_CACHABLE         (1 << _PAGE_BIT_CACHABLE)
-
-/* Software flags */
-#define _PAGE_ACCESSED         (1 << _PAGE_BIT_ACCESSED)
-#define _PAGE_PRESENT          (1 << _PAGE_BIT_PRESENT)
-
-/*
- * Page types, i.e. sizes. _PAGE_TYPE_NONE corresponds to what is
- * usually called _PAGE_PROTNONE on other architectures.
- *
- * XXX: Find out if _PAGE_PROTNONE is equivalent with !_PAGE_USER. If
- * so, we can encode all possible page sizes (although we can't really
- * support 1K pages anyway due to the _PAGE_PRESENT and _PAGE_ACCESSED
- * bits)
- *
- */
-#define _PAGE_TYPE_MASK                ((1 << _PAGE_BIT_SZ0) | (1 << _PAGE_BIT_SZ1))
-#define _PAGE_TYPE_NONE                (0 << _PAGE_BIT_SZ0)
-#define _PAGE_TYPE_SMALL       (1 << _PAGE_BIT_SZ0)
-#define _PAGE_TYPE_MEDIUM      (2 << _PAGE_BIT_SZ0)
-#define _PAGE_TYPE_LARGE       (3 << _PAGE_BIT_SZ0)
-
-/*
- * Mask which drop software flags. We currently can't handle more than
- * 512 MiB of physical memory, so we can use bits 29-31 for other
- * stuff.  With a fixed 4K page size, we can use bits 10-11 as well as
- * bits 2-3 (SZ)
- */
-#define _PAGE_FLAGS_HARDWARE_MASK      0xfffff3ff
-
-#define _PAGE_FLAGS_CACHE_MASK (_PAGE_CACHABLE | _PAGE_BUFFER | _PAGE_WT)
-
-/* Flags that may be modified by software */
-#define _PAGE_CHG_MASK         (PTE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY \
-                                | _PAGE_FLAGS_CACHE_MASK)
-
-#define _PAGE_FLAGS_READ       (_PAGE_CACHABLE | _PAGE_BUFFER)
-#define _PAGE_FLAGS_WRITE      (_PAGE_FLAGS_READ | _PAGE_RW | _PAGE_DIRTY)
-
-#define _PAGE_NORMAL(x)        __pgprot((x) | _PAGE_PRESENT | _PAGE_TYPE_SMALL \
-                                | _PAGE_ACCESSED)
-
-#define PAGE_NONE      (_PAGE_ACCESSED | _PAGE_TYPE_NONE)
-#define PAGE_READ      (_PAGE_FLAGS_READ | _PAGE_USER)
-#define PAGE_EXEC      (_PAGE_FLAGS_READ | _PAGE_EXECUTE | _PAGE_USER)
-#define PAGE_WRITE     (_PAGE_FLAGS_WRITE | _PAGE_USER)
-#define PAGE_KERNEL    _PAGE_NORMAL(_PAGE_FLAGS_WRITE | _PAGE_EXECUTE | _PAGE_GLOBAL)
-#define PAGE_KERNEL_RO _PAGE_NORMAL(_PAGE_FLAGS_READ | _PAGE_EXECUTE | _PAGE_GLOBAL)
-
-#define _PAGE_P(x)     _PAGE_NORMAL((x) & ~(_PAGE_RW | _PAGE_DIRTY))
-#define _PAGE_S(x)     _PAGE_NORMAL(x)
-
-#define PAGE_COPY      _PAGE_P(PAGE_WRITE | PAGE_READ)
-#define PAGE_SHARED    _PAGE_S(PAGE_WRITE | PAGE_READ)
-
-#ifndef __ASSEMBLY__
-/*
- * The hardware supports flags for write- and execute access. Read is
- * always allowed if the page is loaded into the TLB, so the "-w-",
- * "--x" and "-wx" mappings are implemented as "rw-", "r-x" and "rwx",
- * respectively.
- *
- * The "---" case is handled by software; the page will simply not be
- * loaded into the TLB if the page type is _PAGE_TYPE_NONE.
- */
-
-#define __P000 __pgprot(PAGE_NONE)
-#define __P001 _PAGE_P(PAGE_READ)
-#define __P010 _PAGE_P(PAGE_WRITE)
-#define __P011 _PAGE_P(PAGE_WRITE | PAGE_READ)
-#define __P100 _PAGE_P(PAGE_EXEC)
-#define __P101 _PAGE_P(PAGE_EXEC | PAGE_READ)
-#define __P110 _PAGE_P(PAGE_EXEC | PAGE_WRITE)
-#define __P111 _PAGE_P(PAGE_EXEC | PAGE_WRITE | PAGE_READ)
-
-#define __S000 __pgprot(PAGE_NONE)
-#define __S001 _PAGE_S(PAGE_READ)
-#define __S010 _PAGE_S(PAGE_WRITE)
-#define __S011 _PAGE_S(PAGE_WRITE | PAGE_READ)
-#define __S100 _PAGE_S(PAGE_EXEC)
-#define __S101 _PAGE_S(PAGE_EXEC | PAGE_READ)
-#define __S110 _PAGE_S(PAGE_EXEC | PAGE_WRITE)
-#define __S111 _PAGE_S(PAGE_EXEC | PAGE_WRITE | PAGE_READ)
-
-#define pte_none(x)    (!pte_val(x))
-#define pte_present(x) (pte_val(x) & _PAGE_PRESENT)
-
-#define pte_clear(mm,addr,xp)                                  \
-       do {                                                    \
-               set_pte_at(mm, addr, xp, __pte(0));             \
-       } while (0)
-
-/*
- * The following only work if pte_present() is true.
- * Undefined behaviour if not..
- */
-static inline int pte_write(pte_t pte)
-{
-       return pte_val(pte) & _PAGE_RW;
-}
-static inline int pte_dirty(pte_t pte)
-{
-       return pte_val(pte) & _PAGE_DIRTY;
-}
-static inline int pte_young(pte_t pte)
-{
-       return pte_val(pte) & _PAGE_ACCESSED;
-}
-static inline int pte_special(pte_t pte)
-{
-       return 0;
-}
-
-/* Mutator functions for PTE bits */
-static inline pte_t pte_wrprotect(pte_t pte)
-{
-       set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_RW));
-       return pte;
-}
-static inline pte_t pte_mkclean(pte_t pte)
-{
-       set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_DIRTY));
-       return pte;
-}
-static inline pte_t pte_mkold(pte_t pte)
-{
-       set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_ACCESSED));
-       return pte;
-}
-static inline pte_t pte_mkwrite(pte_t pte)
-{
-       set_pte(&pte, __pte(pte_val(pte) | _PAGE_RW));
-       return pte;
-}
-static inline pte_t pte_mkdirty(pte_t pte)
-{
-       set_pte(&pte, __pte(pte_val(pte) | _PAGE_DIRTY));
-       return pte;
-}
-static inline pte_t pte_mkyoung(pte_t pte)
-{
-       set_pte(&pte, __pte(pte_val(pte) | _PAGE_ACCESSED));
-       return pte;
-}
-static inline pte_t pte_mkspecial(pte_t pte)
-{
-       return pte;
-}
-
-#define pmd_none(x)    (!pmd_val(x))
-#define pmd_present(x) (pmd_val(x))
-
-static inline void pmd_clear(pmd_t *pmdp)
-{
-       set_pmd(pmdp, __pmd(0));
-}
-
-#define        pmd_bad(x)      (pmd_val(x) & ~PAGE_MASK)
-
-/*
- * Permanent address of a page. We don't support highmem, so this is
- * trivial.
- */
-#define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))
-#define pte_page(x)    (pfn_to_page(pte_pfn(x)))
-
-/*
- * Mark the prot value as uncacheable and unbufferable
- */
-#define pgprot_noncached(prot)                                         \
-       __pgprot(pgprot_val(prot) & ~(_PAGE_BUFFER | _PAGE_CACHABLE))
-
-/*
- * Mark the prot value as uncacheable but bufferable
- */
-#define pgprot_writecombine(prot)                                      \
-       __pgprot((pgprot_val(prot) & ~_PAGE_CACHABLE) | _PAGE_BUFFER)
-
-/*
- * Conversion functions: convert a page and protection to a page entry,
- * and a page entry and page directory to the page they refer to.
- *
- * extern pte_t mk_pte(struct page *page, pgprot_t pgprot)
- */
-#define mk_pte(page, pgprot)   pfn_pte(page_to_pfn(page), (pgprot))
-
-static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
-{
-       set_pte(&pte, __pte((pte_val(pte) & _PAGE_CHG_MASK)
-                           | pgprot_val(newprot)));
-       return pte;
-}
-
-#define page_pte(page) page_pte_prot(page, __pgprot(0))
-
-#define pmd_page_vaddr(pmd)    pmd_val(pmd)
-#define pmd_page(pmd)          (virt_to_page(pmd_val(pmd)))
-
-/* to find an entry in a page-table-directory. */
-#define pgd_index(address)     (((address) >> PGDIR_SHIFT)     \
-                                & (PTRS_PER_PGD - 1))
-#define pgd_offset(mm, address)        ((mm)->pgd + pgd_index(address))
-
-/* to find an entry in a kernel page-table-directory */
-#define pgd_offset_k(address)  pgd_offset(&init_mm, address)
-
-/* Find an entry in the third-level page table.. */
-#define pte_index(address)                             \
-       ((address >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
-#define pte_offset(dir, address)                                       \
-       ((pte_t *) pmd_page_vaddr(*(dir)) + pte_index(address))
-#define pte_offset_kernel(dir, address)                                        \
-       ((pte_t *) pmd_page_vaddr(*(dir)) + pte_index(address))
-#define pte_offset_map(dir, address) pte_offset_kernel(dir, address)
-#define pte_unmap(pte)         do { } while (0)
-
-struct vm_area_struct;
-extern void update_mmu_cache(struct vm_area_struct * vma,
-                            unsigned long address, pte_t *ptep);
-
-/*
- * Encode and decode a swap entry
- *
- * Constraints:
- *   _PAGE_TYPE_* at bits 2-3 (for emulating _PAGE_PROTNONE)
- *   _PAGE_PRESENT at bit 10
- *
- * We encode the type into bits 4-9 and offset into bits 11-31. This
- * gives us a 21 bits offset, or 2**21 * 4K = 8G usable swap space per
- * device, and 64 possible types.
- *
- * NOTE: We should set ZEROs at the position of _PAGE_PRESENT
- *       and _PAGE_PROTNONE bits
- */
-#define __swp_type(x)          (((x).val >> 4) & 0x3f)
-#define __swp_offset(x)                ((x).val >> 11)
-#define __swp_entry(type, offset) ((swp_entry_t) { ((type) << 4) | ((offset) << 11) })
-#define __pte_to_swp_entry(pte)        ((swp_entry_t) { pte_val(pte) })
-#define __swp_entry_to_pte(x)  ((pte_t) { (x).val })
-
-typedef pte_t *pte_addr_t;
-
-#define kern_addr_valid(addr)  (1)
-
-/* No page table caches to initialize (?) */
-#define pgtable_cache_init()   do { } while(0)
-
-#include <asm-generic/pgtable.h>
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* __ASM_AVR32_PGTABLE_H */
diff --git a/arch/avr32/include/asm/processor.h b/arch/avr32/include/asm/processor.h
deleted file mode 100644 (file)
index 972adcc..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_PROCESSOR_H
-#define __ASM_AVR32_PROCESSOR_H
-
-#include <asm/page.h>
-#include <asm/cache.h>
-
-#define TASK_SIZE      0x80000000
-
-#ifdef __KERNEL__
-#define STACK_TOP      TASK_SIZE
-#define STACK_TOP_MAX  STACK_TOP
-#endif
-
-#ifndef __ASSEMBLY__
-
-static inline void *current_text_addr(void)
-{
-       register void *pc asm("pc");
-       return pc;
-}
-
-enum arch_type {
-       ARCH_AVR32A,
-       ARCH_AVR32B,
-       ARCH_MAX
-};
-
-enum cpu_type {
-       CPU_MORGAN,
-       CPU_AT32AP,
-       CPU_MAX
-};
-
-enum tlb_config {
-       TLB_NONE,
-       TLB_SPLIT,
-       TLB_UNIFIED,
-       TLB_INVALID
-};
-
-#define AVR32_FEATURE_RMW      (1 << 0)
-#define AVR32_FEATURE_DSP      (1 << 1)
-#define AVR32_FEATURE_SIMD     (1 << 2)
-#define AVR32_FEATURE_OCD      (1 << 3)
-#define AVR32_FEATURE_PCTR     (1 << 4)
-#define AVR32_FEATURE_JAVA     (1 << 5)
-#define AVR32_FEATURE_FPU      (1 << 6)
-
-struct avr32_cpuinfo {
-       struct clk *clk;
-       unsigned long loops_per_jiffy;
-       enum arch_type arch_type;
-       enum cpu_type cpu_type;
-       unsigned short arch_revision;
-       unsigned short cpu_revision;
-       enum tlb_config tlb_config;
-       unsigned long features;
-       u32 device_id;
-
-       struct cache_info icache;
-       struct cache_info dcache;
-};
-
-static inline unsigned int avr32_get_manufacturer_id(struct avr32_cpuinfo *cpu)
-{
-       return (cpu->device_id >> 1) & 0x7f;
-}
-static inline unsigned int avr32_get_product_number(struct avr32_cpuinfo *cpu)
-{
-       return (cpu->device_id >> 12) & 0xffff;
-}
-static inline unsigned int avr32_get_chip_revision(struct avr32_cpuinfo *cpu)
-{
-       return (cpu->device_id >> 28) & 0x0f;
-}
-
-extern struct avr32_cpuinfo boot_cpu_data;
-
-/* No SMP support so far */
-#define current_cpu_data boot_cpu_data
-
-/* This decides where the kernel will search for a free chunk of vm
- * space during mmap's
- */
-#define TASK_UNMAPPED_BASE     (PAGE_ALIGN(TASK_SIZE / 3))
-
-#define cpu_relax()            barrier()
-#define cpu_sync_pipeline()    asm volatile("sub pc, -2" : : : "memory")
-
-struct cpu_context {
-       unsigned long sr;
-       unsigned long pc;
-       unsigned long ksp;      /* Kernel stack pointer */
-       unsigned long r7;
-       unsigned long r6;
-       unsigned long r5;
-       unsigned long r4;
-       unsigned long r3;
-       unsigned long r2;
-       unsigned long r1;
-       unsigned long r0;
-};
-
-/* This struct contains the CPU context as stored by switch_to() */
-struct thread_struct {
-       struct cpu_context cpu_context;
-       unsigned long single_step_addr;
-       u16 single_step_insn;
-};
-
-#define INIT_THREAD {                                          \
-       .cpu_context = {                                        \
-               .ksp = sizeof(init_stack) + (long)&init_stack,  \
-       },                                                      \
-}
-
-/*
- * Do necessary setup to start up a newly executed thread.
- */
-#define start_thread(regs, new_pc, new_sp)      \
-       do {                                     \
-               memset(regs, 0, sizeof(*regs));  \
-               regs->sr = MODE_USER;            \
-               regs->pc = new_pc & ~1;          \
-               regs->sp = new_sp;               \
-       } while(0)
-
-struct task_struct;
-
-/* Free all resources held by a thread */
-extern void release_thread(struct task_struct *);
-
-/* Return saved PC of a blocked thread */
-#define thread_saved_pc(tsk)    ((tsk)->thread.cpu_context.pc)
-
-struct pt_regs;
-extern unsigned long get_wchan(struct task_struct *p);
-extern void show_regs_log_lvl(struct pt_regs *regs, const char *log_lvl);
-extern void show_stack_log_lvl(struct task_struct *tsk, unsigned long sp,
-                              struct pt_regs *regs, const char *log_lvl);
-
-#define task_pt_regs(p) \
-       ((struct pt_regs *)(THREAD_SIZE + task_stack_page(p)) - 1)
-
-#define KSTK_EIP(tsk)  ((tsk)->thread.cpu_context.pc)
-#define KSTK_ESP(tsk)  ((tsk)->thread.cpu_context.ksp)
-
-#define ARCH_HAS_PREFETCH
-
-static inline void prefetch(const void *x)
-{
-       const char *c = x;
-       asm volatile("pref %0" : : "r"(c));
-}
-#define PREFETCH_STRIDE        L1_CACHE_BYTES
-
-#endif /* __ASSEMBLY__ */
-
-#endif /* __ASM_AVR32_PROCESSOR_H */
diff --git a/arch/avr32/include/asm/ptrace.h b/arch/avr32/include/asm/ptrace.h
deleted file mode 100644 (file)
index 630e4f9..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_PTRACE_H
-#define __ASM_AVR32_PTRACE_H
-
-#include <uapi/asm/ptrace.h>
-
-#ifndef __ASSEMBLY__
-
-#include <asm/ocd.h>
-
-#define arch_has_single_step()         (1)
-
-#define arch_ptrace_attach(child)       ocd_enable(child)
-
-#define user_mode(regs)                 (((regs)->sr & MODE_MASK) == MODE_USER)
-#define instruction_pointer(regs)       ((regs)->pc)
-#define profile_pc(regs)                instruction_pointer(regs)
-#define user_stack_pointer(regs)       ((regs)->sp)
-
-static __inline__ int valid_user_regs(struct pt_regs *regs)
-{
-       /*
-        * Some of the Java bits might be acceptable if/when we
-        * implement some support for that stuff...
-        */
-       if ((regs->sr & 0xffff0000) == 0)
-               return 1;
-
-       /*
-        * Force status register flags to be sane and report this
-        * illegal behaviour...
-        */
-       regs->sr &= 0x0000ffff;
-       return 0;
-}
-
-
-#endif /* ! __ASSEMBLY__ */
-#endif /* __ASM_AVR32_PTRACE_H */
diff --git a/arch/avr32/include/asm/serial.h b/arch/avr32/include/asm/serial.h
deleted file mode 100644 (file)
index 5ecaebc..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _ASM_SERIAL_H
-#define _ASM_SERIAL_H
-
-/*
- * This assumes you have a 1.8432 MHz clock for your UART.
- *
- * It'd be nice if someone built a serial card with a 24.576 MHz
- * clock, since the 16550A is capable of handling a top speed of 1.5
- * megabits/second; but this requires the faster clock.
- */
-#define BASE_BAUD (1843200 / 16)
-
-#endif /* _ASM_SERIAL_H */
diff --git a/arch/avr32/include/asm/setup.h b/arch/avr32/include/asm/setup.h
deleted file mode 100644 (file)
index 73490ae..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * Based on linux/include/asm-arm/setup.h
- *   Copyright (C) 1997-1999 Russell King
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_SETUP_H__
-#define __ASM_AVR32_SETUP_H__
-
-#include <uapi/asm/setup.h>
-
-
-/* Magic number indicating that a tag table is present */
-#define ATAG_MAGIC     0xa2a25441
-
-#ifndef __ASSEMBLY__
-
-/*
- * Generic memory range, used by several tags.
- *
- *   addr is always physical.
- *   size is measured in bytes.
- *   next is for use by the OS, e.g. for grouping regions into
- *        linked lists.
- */
-struct tag_mem_range {
-       u32                     addr;
-       u32                     size;
-       struct tag_mem_range *  next;
-};
-
-/* The list ends with an ATAG_NONE node. */
-#define ATAG_NONE      0x00000000
-
-struct tag_header {
-       u32 size;
-       u32 tag;
-};
-
-/* The list must start with an ATAG_CORE node */
-#define ATAG_CORE      0x54410001
-
-struct tag_core {
-       u32 flags;
-       u32 pagesize;
-       u32 rootdev;
-};
-
-/* it is allowed to have multiple ATAG_MEM nodes */
-#define ATAG_MEM       0x54410002
-/* ATAG_MEM uses tag_mem_range */
-
-/* command line: \0 terminated string */
-#define ATAG_CMDLINE   0x54410003
-
-struct tag_cmdline {
-       char    cmdline[1];     /* this is the minimum size */
-};
-
-/* Ramdisk image (may be compressed) */
-#define ATAG_RDIMG     0x54410004
-/* ATAG_RDIMG uses tag_mem_range */
-
-/* Information about various clocks present in the system */
-#define ATAG_CLOCK     0x54410005
-
-struct tag_clock {
-       u32     clock_id;       /* Which clock are we talking about? */
-       u32     clock_flags;    /* Special features */
-       u64     clock_hz;       /* Clock speed in Hz */
-};
-
-/* The clock types we know about */
-#define CLOCK_BOOTCPU  0
-
-/* Memory reserved for the system (e.g. the bootloader) */
-#define ATAG_RSVD_MEM  0x54410006
-/* ATAG_RSVD_MEM uses tag_mem_range */
-
-/* Ethernet information */
-
-#define ATAG_ETHERNET  0x54410007
-
-struct tag_ethernet {
-       u8      mac_index;
-       u8      mii_phy_addr;
-       u8      hw_address[6];
-};
-
-#define ETH_INVALID_PHY        0xff
-
-/* board information */
-#define ATAG_BOARDINFO 0x54410008
-
-struct tag_boardinfo {
-       u32     board_number;
-};
-
-struct tag {
-       struct tag_header hdr;
-       union {
-               struct tag_core core;
-               struct tag_mem_range mem_range;
-               struct tag_cmdline cmdline;
-               struct tag_clock clock;
-               struct tag_ethernet ethernet;
-               struct tag_boardinfo boardinfo;
-       } u;
-};
-
-struct tagtable {
-       u32     tag;
-       int     (*parse)(struct tag *);
-};
-
-#define __tag __used __attribute__((__section__(".taglist.init")))
-#define __tagtable(tag, fn)                                            \
-       static struct tagtable __tagtable_##fn __tag = { tag, fn }
-
-#define tag_member_present(tag,member)                                 \
-       ((unsigned long)(&((struct tag *)0L)->member + 1)               \
-        <= (tag)->hdr.size * 4)
-
-#define tag_next(t)    ((struct tag *)((u32 *)(t) + (t)->hdr.size))
-#define tag_size(type) ((sizeof(struct tag_header) + sizeof(struct type)) >> 2)
-
-#define for_each_tag(t,base)                                           \
-       for (t = base; t->hdr.size; t = tag_next(t))
-
-extern struct tag *bootloader_tags;
-
-extern resource_size_t fbmem_start;
-extern resource_size_t fbmem_size;
-extern u32 board_number;
-
-void setup_processor(void);
-
-#endif /* !__ASSEMBLY__ */
-
-#endif /* __ASM_AVR32_SETUP_H__ */
diff --git a/arch/avr32/include/asm/shmparam.h b/arch/avr32/include/asm/shmparam.h
deleted file mode 100644 (file)
index 3681266..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __ASM_AVR32_SHMPARAM_H
-#define __ASM_AVR32_SHMPARAM_H
-
-#define SHMLBA PAGE_SIZE       /* attach addr a multiple of this */
-
-#endif /* __ASM_AVR32_SHMPARAM_H */
diff --git a/arch/avr32/include/asm/signal.h b/arch/avr32/include/asm/signal.h
deleted file mode 100644 (file)
index d875eb6..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_SIGNAL_H
-#define __ASM_AVR32_SIGNAL_H
-
-#include <uapi/asm/signal.h>
-
-/* Most things should be clean enough to redefine this at will, if care
-   is taken to make libc match.  */
-
-#define _NSIG          64
-#define _NSIG_BPW      32
-#define _NSIG_WORDS    (_NSIG / _NSIG_BPW)
-
-typedef unsigned long old_sigset_t;            /* at least 32 bits */
-
-typedef struct {
-       unsigned long sig[_NSIG_WORDS];
-} sigset_t;
-
-#define __ARCH_HAS_SA_RESTORER
-
-#include <asm/sigcontext.h>
-#undef __HAVE_ARCH_SIG_BITOPS
-
-#endif
diff --git a/arch/avr32/include/asm/string.h b/arch/avr32/include/asm/string.h
deleted file mode 100644 (file)
index c91a623..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_STRING_H
-#define __ASM_AVR32_STRING_H
-
-#define __HAVE_ARCH_MEMSET
-extern void *memset(void *b, int c, size_t len);
-
-#define __HAVE_ARCH_MEMCPY
-extern void *memcpy(void *to, const void *from, size_t len);
-
-#endif /* __ASM_AVR32_STRING_H */
diff --git a/arch/avr32/include/asm/switch_to.h b/arch/avr32/include/asm/switch_to.h
deleted file mode 100644 (file)
index 6f00581..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_SWITCH_TO_H
-#define __ASM_AVR32_SWITCH_TO_H
-
-/*
- * Help PathFinder and other Nexus-compliant debuggers keep track of
- * the current PID by emitting an Ownership Trace Message each time we
- * switch task.
- */
-#ifdef CONFIG_OWNERSHIP_TRACE
-#include <asm/ocd.h>
-#define ocd_switch(prev, next)                         \
-       do {                                            \
-               ocd_write(PID, prev->pid);              \
-               ocd_write(PID, next->pid);              \
-       } while(0)
-#else
-#define ocd_switch(prev, next)
-#endif
-
-/*
- * switch_to(prev, next, last) should switch from task `prev' to task
- * `next'. `prev' will never be the same as `next'.
- *
- * We just delegate everything to the __switch_to assembly function,
- * which is implemented in arch/avr32/kernel/switch_to.S
- *
- * mb() tells GCC not to cache `current' across this call.
- */
-struct cpu_context;
-struct task_struct;
-extern struct task_struct *__switch_to(struct task_struct *,
-                                      struct cpu_context *,
-                                      struct cpu_context *);
-#define switch_to(prev, next, last)                                    \
-       do {                                                            \
-               ocd_switch(prev, next);                                 \
-               last = __switch_to(prev, &prev->thread.cpu_context + 1, \
-                                  &next->thread.cpu_context);          \
-       } while (0)
-
-
-#endif /* __ASM_AVR32_SWITCH_TO_H */
diff --git a/arch/avr32/include/asm/syscalls.h b/arch/avr32/include/asm/syscalls.h
deleted file mode 100644 (file)
index 244f2ac..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * syscalls.h - Linux syscall interfaces (arch-specific)
- *
- * Copyright (c) 2008 Jaswinder Singh
- *
- * This file is released under the GPLv2.
- * See the file COPYING for more details.
- */
-
-#ifndef _ASM_AVR32_SYSCALLS_H
-#define _ASM_AVR32_SYSCALLS_H
-
-#include <linux/compiler.h>
-#include <linux/linkage.h>
-#include <linux/types.h>
-#include <linux/signal.h>
-
-/* mm/cache.c */
-asmlinkage int sys_cacheflush(int, void __user *, size_t);
-
-#endif /* _ASM_AVR32_SYSCALLS_H */
diff --git a/arch/avr32/include/asm/sysreg.h b/arch/avr32/include/asm/sysreg.h
deleted file mode 100644 (file)
index d4e0950..0000000
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * AVR32 System Registers
- *
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_SYSREG_H
-#define __ASM_AVR32_SYSREG_H
-
-/* sysreg register offsets */
-#define SYSREG_SR                              0x0000
-#define SYSREG_EVBA                            0x0004
-#define SYSREG_ACBA                            0x0008
-#define SYSREG_CPUCR                           0x000c
-#define SYSREG_ECR                             0x0010
-#define SYSREG_RSR_SUP                         0x0014
-#define SYSREG_RSR_INT0                                0x0018
-#define SYSREG_RSR_INT1                                0x001c
-#define SYSREG_RSR_INT2                                0x0020
-#define SYSREG_RSR_INT3                                0x0024
-#define SYSREG_RSR_EX                          0x0028
-#define SYSREG_RSR_NMI                         0x002c
-#define SYSREG_RSR_DBG                         0x0030
-#define SYSREG_RAR_SUP                         0x0034
-#define SYSREG_RAR_INT0                                0x0038
-#define SYSREG_RAR_INT1                                0x003c
-#define SYSREG_RAR_INT2                                0x0040
-#define SYSREG_RAR_INT3                                0x0044
-#define SYSREG_RAR_EX                          0x0048
-#define SYSREG_RAR_NMI                         0x004c
-#define SYSREG_RAR_DBG                         0x0050
-#define SYSREG_JECR                            0x0054
-#define SYSREG_JOSP                            0x0058
-#define SYSREG_JAVA_LV0                                0x005c
-#define SYSREG_JAVA_LV1                                0x0060
-#define SYSREG_JAVA_LV2                                0x0064
-#define SYSREG_JAVA_LV3                                0x0068
-#define SYSREG_JAVA_LV4                                0x006c
-#define SYSREG_JAVA_LV5                                0x0070
-#define SYSREG_JAVA_LV6                                0x0074
-#define SYSREG_JAVA_LV7                                0x0078
-#define SYSREG_JTBA                            0x007c
-#define SYSREG_JBCR                            0x0080
-#define SYSREG_CONFIG0                         0x0100
-#define SYSREG_CONFIG1                         0x0104
-#define SYSREG_COUNT                           0x0108
-#define SYSREG_COMPARE                         0x010c
-#define SYSREG_TLBEHI                          0x0110
-#define SYSREG_TLBELO                          0x0114
-#define SYSREG_PTBR                            0x0118
-#define SYSREG_TLBEAR                          0x011c
-#define SYSREG_MMUCR                           0x0120
-#define SYSREG_TLBARLO                         0x0124
-#define SYSREG_TLBARHI                         0x0128
-#define SYSREG_PCCNT                           0x012c
-#define SYSREG_PCNT0                           0x0130
-#define SYSREG_PCNT1                           0x0134
-#define SYSREG_PCCR                            0x0138
-#define SYSREG_BEAR                            0x013c
-#define SYSREG_SABAL                           0x0300
-#define SYSREG_SABAH                           0x0304
-#define SYSREG_SABD                            0x0308
-
-/* Bitfields in SR */
-#define SYSREG_SR_C_OFFSET                     0
-#define SYSREG_SR_C_SIZE                       1
-#define SYSREG_Z_OFFSET                                1
-#define SYSREG_Z_SIZE                          1
-#define SYSREG_SR_N_OFFSET                     2
-#define SYSREG_SR_N_SIZE                       1
-#define SYSREG_SR_V_OFFSET                     3
-#define SYSREG_SR_V_SIZE                       1
-#define SYSREG_Q_OFFSET                                4
-#define SYSREG_Q_SIZE                          1
-#define SYSREG_L_OFFSET                                5
-#define SYSREG_L_SIZE                          1
-#define SYSREG_T_OFFSET                                14
-#define SYSREG_T_SIZE                          1
-#define SYSREG_SR_R_OFFSET                     15
-#define SYSREG_SR_R_SIZE                       1
-#define SYSREG_GM_OFFSET                       16
-#define SYSREG_GM_SIZE                         1
-#define SYSREG_I0M_OFFSET                      17
-#define SYSREG_I0M_SIZE                                1
-#define SYSREG_I1M_OFFSET                      18
-#define SYSREG_I1M_SIZE                                1
-#define SYSREG_I2M_OFFSET                      19
-#define SYSREG_I2M_SIZE                                1
-#define SYSREG_I3M_OFFSET                      20
-#define SYSREG_I3M_SIZE                                1
-#define SYSREG_EM_OFFSET                       21
-#define SYSREG_EM_SIZE                         1
-#define SYSREG_MODE_OFFSET                     22
-#define SYSREG_MODE_SIZE                       3
-#define SYSREG_M0_OFFSET                       22
-#define SYSREG_M0_SIZE                         1
-#define SYSREG_M1_OFFSET                       23
-#define SYSREG_M1_SIZE                         1
-#define SYSREG_M2_OFFSET                       24
-#define SYSREG_M2_SIZE                         1
-#define SYSREG_SR_D_OFFSET                     26
-#define SYSREG_SR_D_SIZE                       1
-#define SYSREG_DM_OFFSET                       27
-#define SYSREG_DM_SIZE                         1
-#define SYSREG_SR_J_OFFSET                     28
-#define SYSREG_SR_J_SIZE                       1
-#define SYSREG_H_OFFSET                                29
-#define SYSREG_H_SIZE                          1
-
-/* Bitfields in CPUCR */
-#define SYSREG_BI_OFFSET                       0
-#define SYSREG_BI_SIZE                         1
-#define SYSREG_BE_OFFSET                       1
-#define SYSREG_BE_SIZE                         1
-#define SYSREG_FE_OFFSET                       2
-#define SYSREG_FE_SIZE                         1
-#define SYSREG_RE_OFFSET                       3
-#define SYSREG_RE_SIZE                         1
-#define SYSREG_IBE_OFFSET                      4
-#define SYSREG_IBE_SIZE                                1
-#define SYSREG_IEE_OFFSET                      5
-#define SYSREG_IEE_SIZE                                1
-
-/* Bitfields in CONFIG0 */
-#define SYSREG_CONFIG0_R_OFFSET                        0
-#define SYSREG_CONFIG0_R_SIZE                  1
-#define SYSREG_CONFIG0_D_OFFSET                        1
-#define SYSREG_CONFIG0_D_SIZE                  1
-#define SYSREG_CONFIG0_S_OFFSET                        2
-#define SYSREG_CONFIG0_S_SIZE                  1
-#define SYSREG_CONFIG0_O_OFFSET                        3
-#define SYSREG_CONFIG0_O_SIZE                  1
-#define SYSREG_CONFIG0_P_OFFSET                        4
-#define SYSREG_CONFIG0_P_SIZE                  1
-#define SYSREG_CONFIG0_J_OFFSET                        5
-#define SYSREG_CONFIG0_J_SIZE                  1
-#define SYSREG_CONFIG0_F_OFFSET                        6
-#define SYSREG_CONFIG0_F_SIZE                  1
-#define SYSREG_MMUT_OFFSET                     7
-#define SYSREG_MMUT_SIZE                       3
-#define SYSREG_AR_OFFSET                       10
-#define SYSREG_AR_SIZE                         3
-#define SYSREG_AT_OFFSET                       13
-#define SYSREG_AT_SIZE                         3
-#define SYSREG_PROCESSORREVISION_OFFSET                16
-#define SYSREG_PROCESSORREVISION_SIZE          8
-#define SYSREG_PROCESSORID_OFFSET              24
-#define SYSREG_PROCESSORID_SIZE                        8
-
-/* Bitfields in CONFIG1 */
-#define SYSREG_DASS_OFFSET                     0
-#define SYSREG_DASS_SIZE                       3
-#define SYSREG_DLSZ_OFFSET                     3
-#define SYSREG_DLSZ_SIZE                       3
-#define SYSREG_DSET_OFFSET                     6
-#define SYSREG_DSET_SIZE                       4
-#define SYSREG_IASS_OFFSET                     10
-#define SYSREG_IASS_SIZE                       3
-#define SYSREG_ILSZ_OFFSET                     13
-#define SYSREG_ILSZ_SIZE                       3
-#define SYSREG_ISET_OFFSET                     16
-#define SYSREG_ISET_SIZE                       4
-#define SYSREG_DMMUSZ_OFFSET                   20
-#define SYSREG_DMMUSZ_SIZE                     6
-#define SYSREG_IMMUSZ_OFFSET                   26
-#define SYSREG_IMMUSZ_SIZE                     6
-
-/* Bitfields in TLBEHI */
-#define SYSREG_ASID_OFFSET                     0
-#define SYSREG_ASID_SIZE                       8
-#define SYSREG_TLBEHI_I_OFFSET                 8
-#define SYSREG_TLBEHI_I_SIZE                   1
-#define SYSREG_TLBEHI_V_OFFSET                 9
-#define SYSREG_TLBEHI_V_SIZE                   1
-#define SYSREG_VPN_OFFSET                      10
-#define SYSREG_VPN_SIZE                                22
-
-/* Bitfields in TLBELO */
-#define SYSREG_W_OFFSET                                0
-#define SYSREG_W_SIZE                          1
-#define SYSREG_TLBELO_D_OFFSET                 1
-#define SYSREG_TLBELO_D_SIZE                   1
-#define SYSREG_SZ_OFFSET                       2
-#define SYSREG_SZ_SIZE                         2
-#define SYSREG_AP_OFFSET                       4
-#define SYSREG_AP_SIZE                         3
-#define SYSREG_B_OFFSET                                7
-#define SYSREG_B_SIZE                          1
-#define SYSREG_G_OFFSET                                8
-#define SYSREG_G_SIZE                          1
-#define SYSREG_TLBELO_C_OFFSET                 9
-#define SYSREG_TLBELO_C_SIZE                   1
-#define SYSREG_PFN_OFFSET                      10
-#define SYSREG_PFN_SIZE                                22
-
-/* Bitfields in MMUCR */
-#define SYSREG_E_OFFSET                                0
-#define SYSREG_E_SIZE                          1
-#define SYSREG_M_OFFSET                                1
-#define SYSREG_M_SIZE                          1
-#define SYSREG_MMUCR_I_OFFSET                  2
-#define SYSREG_MMUCR_I_SIZE                    1
-#define SYSREG_MMUCR_N_OFFSET                  3
-#define SYSREG_MMUCR_N_SIZE                    1
-#define SYSREG_MMUCR_S_OFFSET                  4
-#define SYSREG_MMUCR_S_SIZE                    1
-#define SYSREG_DLA_OFFSET                      8
-#define SYSREG_DLA_SIZE                                6
-#define SYSREG_DRP_OFFSET                      14
-#define SYSREG_DRP_SIZE                                6
-#define SYSREG_ILA_OFFSET                      20
-#define SYSREG_ILA_SIZE                                6
-#define SYSREG_IRP_OFFSET                      26
-#define SYSREG_IRP_SIZE                                6
-
-/* Bitfields in PCCR */
-#define SYSREG_PCCR_E_OFFSET                   0
-#define SYSREG_PCCR_E_SIZE                     1
-#define SYSREG_PCCR_R_OFFSET                   1
-#define SYSREG_PCCR_R_SIZE                     1
-#define SYSREG_PCCR_C_OFFSET                   2
-#define SYSREG_PCCR_C_SIZE                     1
-#define SYSREG_PCCR_S_OFFSET                   3
-#define SYSREG_PCCR_S_SIZE                     1
-#define SYSREG_IEC_OFFSET                      4
-#define SYSREG_IEC_SIZE                                1
-#define SYSREG_IE0_OFFSET                      5
-#define SYSREG_IE0_SIZE                                1
-#define SYSREG_IE1_OFFSET                      6
-#define SYSREG_IE1_SIZE                                1
-#define SYSREG_FC_OFFSET                       8
-#define SYSREG_FC_SIZE                         1
-#define SYSREG_F0_OFFSET                       9
-#define SYSREG_F0_SIZE                         1
-#define SYSREG_F1_OFFSET                       10
-#define SYSREG_F1_SIZE                         1
-#define SYSREG_CONF0_OFFSET                    12
-#define SYSREG_CONF0_SIZE                      6
-#define SYSREG_CONF1_OFFSET                    18
-#define SYSREG_CONF1_SIZE                      6
-
-/* Constants for ECR */
-#define ECR_UNRECOVERABLE                      0
-#define ECR_TLB_MULTIPLE                       1
-#define ECR_BUS_ERROR_WRITE                    2
-#define ECR_BUS_ERROR_READ                     3
-#define ECR_NMI                                        4
-#define ECR_ADDR_ALIGN_X                       5
-#define ECR_PROTECTION_X                       6
-#define ECR_DEBUG                              7
-#define ECR_ILLEGAL_OPCODE                     8
-#define ECR_UNIMPL_INSTRUCTION                 9
-#define ECR_PRIVILEGE_VIOLATION                        10
-#define ECR_FPE                                        11
-#define ECR_COPROC_ABSENT                      12
-#define ECR_ADDR_ALIGN_R                       13
-#define ECR_ADDR_ALIGN_W                       14
-#define ECR_PROTECTION_R                       15
-#define ECR_PROTECTION_W                       16
-#define ECR_DTLB_MODIFIED                      17
-#define ECR_TLB_MISS_X                         20
-#define ECR_TLB_MISS_R                         24
-#define ECR_TLB_MISS_W                         28
-
-/* Bit manipulation macros */
-#define SYSREG_BIT(name)                               \
-       (1 << SYSREG_##name##_OFFSET)
-#define SYSREG_BF(name,value)                          \
-       (((value) & ((1 << SYSREG_##name##_SIZE) - 1))  \
-        << SYSREG_##name##_OFFSET)
-#define SYSREG_BFEXT(name,value)\
-       (((value) >> SYSREG_##name##_OFFSET)            \
-        & ((1 << SYSREG_##name##_SIZE) - 1))
-#define SYSREG_BFINS(name,value,old)                   \
-       (((old) & ~(((1 << SYSREG_##name##_SIZE) - 1)   \
-                   << SYSREG_##name##_OFFSET))         \
-        | SYSREG_BF(name,value))
-
-/* Register access macros */
-#ifdef __CHECKER__
-extern unsigned long __builtin_mfsr(unsigned long reg);
-extern void __builtin_mtsr(unsigned long reg, unsigned long value);
-#endif
-
-#define sysreg_read(reg)               __builtin_mfsr(SYSREG_##reg)
-#define sysreg_write(reg, value)       __builtin_mtsr(SYSREG_##reg, value)
-
-#endif /* __ASM_AVR32_SYSREG_H */
diff --git a/arch/avr32/include/asm/termios.h b/arch/avr32/include/asm/termios.h
deleted file mode 100644 (file)
index 9d59437..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_TERMIOS_H
-#define __ASM_AVR32_TERMIOS_H
-
-#include <uapi/asm/termios.h>
-
-/*     intr=^C         quit=^\         erase=del       kill=^U
-       eof=^D          vtime=\0        vmin=\1         sxtc=\0
-       start=^Q        stop=^S         susp=^Z         eol=\0
-       reprint=^R      discard=^U      werase=^W       lnext=^V
-       eol2=\0
-*/
-#define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0"
-
-#include <asm-generic/termios-base.h>
-
-#endif /* __ASM_AVR32_TERMIOS_H */
diff --git a/arch/avr32/include/asm/thread_info.h b/arch/avr32/include/asm/thread_info.h
deleted file mode 100644 (file)
index d4d3079..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_THREAD_INFO_H
-#define __ASM_AVR32_THREAD_INFO_H
-
-#include <asm/page.h>
-
-#define THREAD_SIZE_ORDER      1
-#define THREAD_SIZE            (PAGE_SIZE << THREAD_SIZE_ORDER)
-
-#ifndef __ASSEMBLY__
-#include <asm/types.h>
-
-struct task_struct;
-
-struct thread_info {
-       struct task_struct      *task;          /* main task structure */
-       unsigned long           flags;          /* low level flags */
-       __u32                   cpu;
-       __s32                   preempt_count;  /* 0 => preemptable, <0 => BUG */
-       __u32                   rar_saved;      /* return address... */
-       __u32                   rsr_saved;      /* ...and status register
-                                                  saved by debug handler
-                                                  when setting up
-                                                  trampoline */
-       __u8                    supervisor_stack[0];
-};
-
-#define INIT_THREAD_INFO(tsk)                                          \
-{                                                                      \
-       .task           = &tsk,                                         \
-       .flags          = 0,                                            \
-       .cpu            = 0,                                            \
-       .preempt_count  = INIT_PREEMPT_COUNT,                           \
-}
-
-#define init_thread_info       (init_thread_union.thread_info)
-#define init_stack             (init_thread_union.stack)
-
-/*
- * Get the thread information struct from C.
- * We do the usual trick and use the lower end of the stack for this
- */
-static inline struct thread_info *current_thread_info(void)
-{
-       unsigned long addr = ~(THREAD_SIZE - 1);
-
-       asm("and %0, sp" : "=r"(addr) : "0"(addr));
-       return (struct thread_info *)addr;
-}
-
-#define get_thread_info(ti) get_task_struct((ti)->task)
-#define put_thread_info(ti) put_task_struct((ti)->task)
-
-#endif /* !__ASSEMBLY__ */
-
-/*
- * Thread information flags
- * - these are process state flags that various assembly files may need to access
- * - pending work-to-be-done flags are in LSW
- * - other flags in MSW
- */
-#define TIF_SYSCALL_TRACE       0       /* syscall trace active */
-#define TIF_SIGPENDING          1       /* signal pending */
-#define TIF_NEED_RESCHED        2       /* rescheduling necessary */
-#define TIF_BREAKPOINT         4       /* enter monitor mode on return */
-#define TIF_SINGLE_STEP                5       /* single step in progress */
-#define TIF_MEMDIE             6       /* is terminating due to OOM killer */
-#define TIF_RESTORE_SIGMASK    7       /* restore signal mask in do_signal */
-#define TIF_CPU_GOING_TO_SLEEP 8       /* CPU is entering sleep 0 mode */
-#define TIF_NOTIFY_RESUME      9       /* callback before returning to user */
-#define TIF_DEBUG              30      /* debugging enabled */
-#define TIF_USERSPACE          31      /* true if FS sets userspace */
-
-#define _TIF_SYSCALL_TRACE     (1 << TIF_SYSCALL_TRACE)
-#define _TIF_SIGPENDING                (1 << TIF_SIGPENDING)
-#define _TIF_NEED_RESCHED      (1 << TIF_NEED_RESCHED)
-#define _TIF_BREAKPOINT                (1 << TIF_BREAKPOINT)
-#define _TIF_SINGLE_STEP       (1 << TIF_SINGLE_STEP)
-#define _TIF_MEMDIE            (1 << TIF_MEMDIE)
-#define _TIF_CPU_GOING_TO_SLEEP (1 << TIF_CPU_GOING_TO_SLEEP)
-#define _TIF_NOTIFY_RESUME     (1 << TIF_NOTIFY_RESUME)
-
-/* Note: The masks below must never span more than 16 bits! */
-
-/* work to do on interrupt/exception return */
-#define _TIF_WORK_MASK                         \
-       (_TIF_SIGPENDING                        \
-        | _TIF_NOTIFY_RESUME                   \
-        | _TIF_NEED_RESCHED                    \
-        | _TIF_BREAKPOINT)
-
-/* work to do on any return to userspace */
-#define _TIF_ALLWORK_MASK      (_TIF_WORK_MASK | _TIF_SYSCALL_TRACE)
-/* work to do on return from debug mode */
-#define _TIF_DBGWORK_MASK      (_TIF_WORK_MASK & ~_TIF_BREAKPOINT)
-
-#endif /* __ASM_AVR32_THREAD_INFO_H */
diff --git a/arch/avr32/include/asm/timex.h b/arch/avr32/include/asm/timex.h
deleted file mode 100644 (file)
index 187dcf3..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_TIMEX_H
-#define __ASM_AVR32_TIMEX_H
-
-/*
- * This is the frequency of the timer used for Linux's timer interrupt.
- * The value should be defined as accurate as possible or under certain
- * circumstances Linux timekeeping might become inaccurate or fail.
- *
- * For many system the exact clockrate of the timer isn't known but due to
- * the way this value is used we can get away with a wrong value as long
- * as this value is:
- *
- *  - a multiple of HZ
- *  - a divisor of the actual rate
- *
- * 500000 is a good such cheat value.
- *
- * The obscure number 1193182 is the same as used by the original i8254
- * time in legacy PC hardware; the chip is never found in AVR32 systems.
- */
-#define CLOCK_TICK_RATE                500000  /* Underlying HZ */
-
-typedef unsigned long cycles_t;
-
-static inline cycles_t get_cycles (void)
-{
-       return 0;
-}
-
-#define ARCH_HAS_READ_CURRENT_TIMER
-
-#endif /* __ASM_AVR32_TIMEX_H */
diff --git a/arch/avr32/include/asm/tlb.h b/arch/avr32/include/asm/tlb.h
deleted file mode 100644 (file)
index 5c55f9c..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_TLB_H
-#define __ASM_AVR32_TLB_H
-
-#define tlb_start_vma(tlb, vma) \
-       flush_cache_range(vma, vma->vm_start, vma->vm_end)
-
-#define tlb_end_vma(tlb, vma) \
-       flush_tlb_range(vma, vma->vm_start, vma->vm_end)
-
-#define __tlb_remove_tlb_entry(tlb, pte, address) do { } while(0)
-
-/*
- * Flush whole TLB for MM
- */
-#define tlb_flush(tlb) flush_tlb_mm((tlb)->mm)
-
-#include <asm-generic/tlb.h>
-
-/*
- * For debugging purposes
- */
-extern void show_dtlb_entry(unsigned int index);
-extern void dump_dtlb(void);
-
-#endif /* __ASM_AVR32_TLB_H */
diff --git a/arch/avr32/include/asm/tlbflush.h b/arch/avr32/include/asm/tlbflush.h
deleted file mode 100644 (file)
index bf90a78..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_TLBFLUSH_H
-#define __ASM_AVR32_TLBFLUSH_H
-
-#include <asm/mmu.h>
-
-/*
- * TLB flushing:
- *
- *  - flush_tlb() flushes the current mm struct TLBs
- *  - flush_tlb_all() flushes all processes' TLB entries
- *  - flush_tlb_mm(mm) flushes the specified mm context TLBs
- *  - flush_tlb_page(vma, vmaddr) flushes one page
- *  - flush_tlb_range(vma, start, end) flushes a range of pages
- *  - flush_tlb_kernel_range(start, end) flushes a range of kernel pages
- */
-extern void flush_tlb(void);
-extern void flush_tlb_all(void);
-extern void flush_tlb_mm(struct mm_struct *mm);
-extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
-                           unsigned long end);
-extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page);
-
-extern void flush_tlb_kernel_range(unsigned long start, unsigned long end);
-
-#endif /* __ASM_AVR32_TLBFLUSH_H */
diff --git a/arch/avr32/include/asm/traps.h b/arch/avr32/include/asm/traps.h
deleted file mode 100644 (file)
index 6a8fb94..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_TRAPS_H
-#define __ASM_AVR32_TRAPS_H
-
-#include <linux/list.h>
-
-struct undef_hook {
-       struct list_head node;
-       u32 insn_mask;
-       u32 insn_val;
-       int (*fn)(struct pt_regs *regs, u32 insn);
-};
-
-void register_undef_hook(struct undef_hook *hook);
-void unregister_undef_hook(struct undef_hook *hook);
-
-#endif /* __ASM_AVR32_TRAPS_H */
diff --git a/arch/avr32/include/asm/types.h b/arch/avr32/include/asm/types.h
deleted file mode 100644 (file)
index 5932405..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_TYPES_H
-#define __ASM_AVR32_TYPES_H
-
-#include <uapi/asm/types.h>
-
-/*
- * These aren't exported outside the kernel to avoid name space clashes
- */
-
-#define BITS_PER_LONG 32
-
-#endif /* __ASM_AVR32_TYPES_H */
diff --git a/arch/avr32/include/asm/uaccess.h b/arch/avr32/include/asm/uaccess.h
deleted file mode 100644 (file)
index b1ec1fa..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_UACCESS_H
-#define __ASM_AVR32_UACCESS_H
-
-#include <linux/errno.h>
-#include <linux/sched.h>
-
-#define VERIFY_READ    0
-#define VERIFY_WRITE   1
-
-typedef struct {
-       unsigned int is_user_space;
-} mm_segment_t;
-
-/*
- * The fs value determines whether argument validity checking should be
- * performed or not.  If get_fs() == USER_DS, checking is performed, with
- * get_fs() == KERNEL_DS, checking is bypassed.
- *
- * For historical reasons (Data Segment Register?), these macros are misnamed.
- */
-#define MAKE_MM_SEG(s) ((mm_segment_t) { (s) })
-#define segment_eq(a, b)       ((a).is_user_space == (b).is_user_space)
-
-#define USER_ADDR_LIMIT 0x80000000
-
-#define KERNEL_DS      MAKE_MM_SEG(0)
-#define USER_DS                MAKE_MM_SEG(1)
-
-#define get_ds()       (KERNEL_DS)
-
-static inline mm_segment_t get_fs(void)
-{
-       return MAKE_MM_SEG(test_thread_flag(TIF_USERSPACE));
-}
-
-static inline void set_fs(mm_segment_t s)
-{
-       if (s.is_user_space)
-               set_thread_flag(TIF_USERSPACE);
-       else
-               clear_thread_flag(TIF_USERSPACE);
-}
-
-/*
- * Test whether a block of memory is a valid user space address.
- * Returns 0 if the range is valid, nonzero otherwise.
- *
- * We do the following checks:
- *   1. Is the access from kernel space?
- *   2. Does (addr + size) set the carry bit?
- *   3. Is (addr + size) a negative number (i.e. >= 0x80000000)?
- *
- * If yes on the first check, access is granted.
- * If no on any of the others, access is denied.
- */
-#define __range_ok(addr, size)                                         \
-       (test_thread_flag(TIF_USERSPACE)                                \
-        && (((unsigned long)(addr) >= 0x80000000)                      \
-            || ((unsigned long)(size) > 0x80000000)                    \
-            || (((unsigned long)(addr) + (unsigned long)(size)) > 0x80000000)))
-
-#define access_ok(type, addr, size) (likely(__range_ok(addr, size) == 0))
-
-/* Generic arbitrary sized copy. Return the number of bytes NOT copied */
-extern __kernel_size_t __copy_user(void *to, const void *from,
-                                  __kernel_size_t n);
-
-extern __kernel_size_t copy_to_user(void __user *to, const void *from,
-                                   __kernel_size_t n);
-extern __kernel_size_t ___copy_from_user(void *to, const void __user *from,
-                                     __kernel_size_t n);
-
-static inline __kernel_size_t __copy_to_user(void __user *to, const void *from,
-                                            __kernel_size_t n)
-{
-       return __copy_user((void __force *)to, from, n);
-}
-static inline __kernel_size_t __copy_from_user(void *to,
-                                              const void __user *from,
-                                              __kernel_size_t n)
-{
-       return __copy_user(to, (const void __force *)from, n);
-}
-static inline __kernel_size_t copy_from_user(void *to,
-                                              const void __user *from,
-                                              __kernel_size_t n)
-{
-       size_t res = ___copy_from_user(to, from, n);
-       if (unlikely(res))
-               memset(to + (n - res), 0, res);
-       return res;
-}
-
-#define __copy_to_user_inatomic __copy_to_user
-#define __copy_from_user_inatomic __copy_from_user
-
-/*
- * put_user: - Write a simple value into user space.
- * @x:   Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
- * Context: User context only. This function may sleep if pagefaults are
- *          enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space.  It supports simple types like char and int, but not larger
- * data types like structures or arrays.
- *
- * @ptr must have pointer-to-simple-variable type, and @x must be assignable
- * to the result of dereferencing @ptr.
- *
- * Returns zero on success, or -EFAULT on error.
- */
-#define put_user(x, ptr)       \
-       __put_user_check((x), (ptr), sizeof(*(ptr)))
-
-/*
- * get_user: - Get a simple variable from user space.
- * @x:   Variable to store result.
- * @ptr: Source address, in user space.
- *
- * Context: User context only. This function may sleep if pagefaults are
- *          enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space.  It supports simple types like char and int, but not larger
- * data types like structures or arrays.
- *
- * @ptr must have pointer-to-simple-variable type, and the result of
- * dereferencing @ptr must be assignable to @x without a cast.
- *
- * Returns zero on success, or -EFAULT on error.
- * On error, the variable @x is set to zero.
- */
-#define get_user(x, ptr) \
-       __get_user_check((x), (ptr), sizeof(*(ptr)))
-
-/*
- * __put_user: - Write a simple value into user space, with less checking.
- * @x:   Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
- * Context: User context only. This function may sleep if pagefaults are
- *          enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space.  It supports simple types like char and int, but not larger
- * data types like structures or arrays.
- *
- * @ptr must have pointer-to-simple-variable type, and @x must be assignable
- * to the result of dereferencing @ptr.
- *
- * Caller must check the pointer with access_ok() before calling this
- * function.
- *
- * Returns zero on success, or -EFAULT on error.
- */
-#define __put_user(x, ptr) \
-       __put_user_nocheck((x), (ptr), sizeof(*(ptr)))
-
-/*
- * __get_user: - Get a simple variable from user space, with less checking.
- * @x:   Variable to store result.
- * @ptr: Source address, in user space.
- *
- * Context: User context only. This function may sleep if pagefaults are
- *          enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space.  It supports simple types like char and int, but not larger
- * data types like structures or arrays.
- *
- * @ptr must have pointer-to-simple-variable type, and the result of
- * dereferencing @ptr must be assignable to @x without a cast.
- *
- * Caller must check the pointer with access_ok() before calling this
- * function.
- *
- * Returns zero on success, or -EFAULT on error.
- * On error, the variable @x is set to zero.
- */
-#define __get_user(x, ptr) \
-       __get_user_nocheck((x), (ptr), sizeof(*(ptr)))
-
-extern int __get_user_bad(void);
-extern int __put_user_bad(void);
-
-#define __get_user_nocheck(x, ptr, size)                               \
-({                                                                     \
-       unsigned long __gu_val = 0;                                     \
-       int __gu_err = 0;                                               \
-                                                                       \
-       switch (size) {                                                 \
-       case 1: __get_user_asm("ub", __gu_val, ptr, __gu_err); break;   \
-       case 2: __get_user_asm("uh", __gu_val, ptr, __gu_err); break;   \
-       case 4: __get_user_asm("w", __gu_val, ptr, __gu_err); break;    \
-       default: __gu_err = __get_user_bad(); break;                    \
-       }                                                               \
-                                                                       \
-       x = (__force typeof(*(ptr)))__gu_val;                           \
-       __gu_err;                                                       \
-})
-
-#define __get_user_check(x, ptr, size)                                 \
-({                                                                     \
-       unsigned long __gu_val = 0;                                     \
-       const typeof(*(ptr)) __user * __gu_addr = (ptr);                \
-       int __gu_err = 0;                                               \
-                                                                       \
-       if (access_ok(VERIFY_READ, __gu_addr, size)) {                  \
-               switch (size) {                                         \
-               case 1:                                                 \
-                       __get_user_asm("ub", __gu_val, __gu_addr,       \
-                                      __gu_err);                       \
-                       break;                                          \
-               case 2:                                                 \
-                       __get_user_asm("uh", __gu_val, __gu_addr,       \
-                                      __gu_err);                       \
-                       break;                                          \
-               case 4:                                                 \
-                       __get_user_asm("w", __gu_val, __gu_addr,        \
-                                      __gu_err);                       \
-                       break;                                          \
-               default:                                                \
-                       __gu_err = __get_user_bad();                    \
-                       break;                                          \
-               }                                                       \
-       } else {                                                        \
-               __gu_err = -EFAULT;                                     \
-       }                                                               \
-       x = (__force typeof(*(ptr)))__gu_val;                           \
-       __gu_err;                                                       \
-})
-
-#define __get_user_asm(suffix, __gu_val, ptr, __gu_err)                        \
-       asm volatile(                                                   \
-               "1:     ld." suffix "   %1, %3                  \n"     \
-               "2:                                             \n"     \
-               "       .subsection 1                           \n"     \
-               "3:     mov     %0, %4                          \n"     \
-               "       rjmp    2b                              \n"     \
-               "       .subsection 0                           \n"     \
-               "       .section __ex_table, \"a\"              \n"     \
-               "       .long   1b, 3b                          \n"     \
-               "       .previous                               \n"     \
-               : "=r"(__gu_err), "=r"(__gu_val)                        \
-               : "0"(__gu_err), "m"(*(ptr)), "i"(-EFAULT))
-
-#define __put_user_nocheck(x, ptr, size)                               \
-({                                                                     \
-       typeof(*(ptr)) __pu_val;                                        \
-       int __pu_err = 0;                                               \
-                                                                       \
-       __pu_val = (x);                                                 \
-       switch (size) {                                                 \
-       case 1: __put_user_asm("b", ptr, __pu_val, __pu_err); break;    \
-       case 2: __put_user_asm("h", ptr, __pu_val, __pu_err); break;    \
-       case 4: __put_user_asm("w", ptr, __pu_val, __pu_err); break;    \
-       case 8: __put_user_asm("d", ptr, __pu_val, __pu_err); break;    \
-       default: __pu_err = __put_user_bad(); break;                    \
-       }                                                               \
-       __pu_err;                                                       \
-})
-
-#define __put_user_check(x, ptr, size)                                 \
-({                                                                     \
-       typeof(*(ptr)) __pu_val;                                        \
-       typeof(*(ptr)) __user *__pu_addr = (ptr);                       \
-       int __pu_err = 0;                                               \
-                                                                       \
-       __pu_val = (x);                                                 \
-       if (access_ok(VERIFY_WRITE, __pu_addr, size)) {                 \
-               switch (size) {                                         \
-               case 1:                                                 \
-                       __put_user_asm("b", __pu_addr, __pu_val,        \
-                                      __pu_err);                       \
-                       break;                                          \
-               case 2:                                                 \
-                       __put_user_asm("h", __pu_addr, __pu_val,        \
-                                      __pu_err);                       \
-                       break;                                          \
-               case 4:                                                 \
-                       __put_user_asm("w", __pu_addr, __pu_val,        \
-                                      __pu_err);                       \
-                       break;                                          \
-               case 8:                                                 \
-                       __put_user_asm("d", __pu_addr, __pu_val,        \
-                                      __pu_err);                       \
-                       break;                                          \
-               default:                                                \
-                       __pu_err = __put_user_bad();                    \
-                       break;                                          \
-               }                                                       \
-       } else {                                                        \
-               __pu_err = -EFAULT;                                     \
-       }                                                               \
-       __pu_err;                                                       \
-})
-
-#define __put_user_asm(suffix, ptr, __pu_val, __gu_err)                        \
-       asm volatile(                                                   \
-               "1:     st." suffix "   %1, %3                  \n"     \
-               "2:                                             \n"     \
-               "       .subsection 1                           \n"     \
-               "3:     mov     %0, %4                          \n"     \
-               "       rjmp    2b                              \n"     \
-               "       .subsection 0                           \n"     \
-               "       .section __ex_table, \"a\"              \n"     \
-               "       .long   1b, 3b                          \n"     \
-               "       .previous                               \n"     \
-               : "=r"(__gu_err), "=m"(*(ptr))                          \
-               : "0"(__gu_err), "r"(__pu_val), "i"(-EFAULT))
-
-extern __kernel_size_t clear_user(void __user *addr, __kernel_size_t size);
-extern __kernel_size_t __clear_user(void __user *addr, __kernel_size_t size);
-
-extern long strncpy_from_user(char *dst, const char __user *src, long count);
-extern long __strncpy_from_user(char *dst, const char __user *src, long count);
-
-extern long strnlen_user(const char __user *__s, long __n);
-extern long __strnlen_user(const char __user *__s, long __n);
-
-#define strlen_user(s) strnlen_user(s, ~0UL >> 1)
-
-struct exception_table_entry
-{
-       unsigned long insn, fixup;
-};
-
-#endif /* __ASM_AVR32_UACCESS_H */
diff --git a/arch/avr32/include/asm/ucontext.h b/arch/avr32/include/asm/ucontext.h
deleted file mode 100644 (file)
index ac7259c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __ASM_AVR32_UCONTEXT_H
-#define __ASM_AVR32_UCONTEXT_H
-
-struct ucontext {
-       unsigned long           uc_flags;
-       struct ucontext *       uc_link;
-       stack_t                 uc_stack;
-       struct sigcontext       uc_mcontext;
-       sigset_t                uc_sigmask;
-};
-
-#endif /* __ASM_AVR32_UCONTEXT_H */
diff --git a/arch/avr32/include/asm/unaligned.h b/arch/avr32/include/asm/unaligned.h
deleted file mode 100644 (file)
index 0418772..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef _ASM_AVR32_UNALIGNED_H
-#define _ASM_AVR32_UNALIGNED_H
-
-/*
- * AVR32 can handle some unaligned accesses, depending on the
- * implementation.  The AVR32 AP implementation can handle unaligned
- * words, but halfwords must be halfword-aligned, and doublewords must
- * be word-aligned.
- *
- * However, swapped word loads must be word-aligned so we can't
- * optimize word loads in general.
- */
-
-#include <linux/unaligned/be_struct.h>
-#include <linux/unaligned/le_byteshift.h>
-#include <linux/unaligned/generic.h>
-
-#define get_unaligned  __get_unaligned_be
-#define put_unaligned  __put_unaligned_be
-
-#endif /* _ASM_AVR32_UNALIGNED_H */
diff --git a/arch/avr32/include/asm/unistd.h b/arch/avr32/include/asm/unistd.h
deleted file mode 100644 (file)
index 2011bee..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_UNISTD_H
-#define __ASM_AVR32_UNISTD_H
-
-#include <uapi/asm/unistd.h>
-
-#define NR_syscalls            321
-
-/* Old stuff */
-#define __IGNORE_uselib
-#define __IGNORE_mmap
-
-/* NUMA stuff */
-#define __IGNORE_mbind
-#define __IGNORE_get_mempolicy
-#define __IGNORE_set_mempolicy
-#define __IGNORE_migrate_pages
-#define __IGNORE_move_pages
-
-/* SMP stuff */
-#define __IGNORE_getcpu
-
-#define __ARCH_WANT_STAT64
-#define __ARCH_WANT_SYS_ALARM
-#define __ARCH_WANT_SYS_GETHOSTNAME
-#define __ARCH_WANT_SYS_PAUSE
-#define __ARCH_WANT_SYS_TIME
-#define __ARCH_WANT_SYS_UTIME
-#define __ARCH_WANT_SYS_WAITPID
-#define __ARCH_WANT_SYS_FADVISE64
-#define __ARCH_WANT_SYS_GETPGRP
-#define __ARCH_WANT_SYS_LLSEEK
-#define __ARCH_WANT_SYS_GETPGRP
-#define __ARCH_WANT_SYS_FORK
-#define __ARCH_WANT_SYS_VFORK
-#define __ARCH_WANT_SYS_CLONE
-
-#endif /* __ASM_AVR32_UNISTD_H */
diff --git a/arch/avr32/include/asm/user.h b/arch/avr32/include/asm/user.h
deleted file mode 100644 (file)
index 7e9152f..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Note: We may not need these definitions for AVR32, as we don't
- * support a.out.
- */
-#ifndef __ASM_AVR32_USER_H
-#define __ASM_AVR32_USER_H
-
-#include <linux/types.h>
-#include <asm/ptrace.h>
-#include <asm/page.h>
-
-/*
- * Core file format: The core file is written in such a way that gdb
- * can understand it and provide useful information to the user (under
- * linux we use the `trad-core' bfd).  The file contents are as follows:
- *
- *  upage: 1 page consisting of a user struct that tells gdb
- *     what is present in the file.  Directly after this is a
- *     copy of the task_struct, which is currently not used by gdb,
- *     but it may come in handy at some point.  All of the registers
- *     are stored as part of the upage.  The upage should always be
- *     only one page long.
- *  data: The data segment follows next.  We use current->end_text to
- *     current->brk to pick up all of the user variables, plus any memory
- *     that may have been sbrk'ed.  No attempt is made to determine if a
- *     page is demand-zero or if a page is totally unused, we just cover
- *     the entire range.  All of the addresses are rounded in such a way
- *     that an integral number of pages is written.
- *  stack: We need the stack information in order to get a meaningful
- *     backtrace.  We need to write the data from usp to
- *     current->start_stack, so we round each of these in order to be able
- *     to write an integer number of pages.
- */
-
-struct user_fpu_struct {
-       /* We have no FPU (yet) */
-};
-
-struct user {
-       struct pt_regs  regs;                   /* entire machine state */
-       size_t          u_tsize;                /* text size (pages) */
-       size_t          u_dsize;                /* data size (pages) */
-       size_t          u_ssize;                /* stack size (pages) */
-       unsigned long   start_code;             /* text starting address */
-       unsigned long   start_data;             /* data starting address */
-       unsigned long   start_stack;            /* stack starting address */
-       long int        signal;                 /* signal causing core dump */
-       unsigned long   u_ar0;                  /* help gdb find registers */
-       unsigned long   magic;                  /* identifies a core file */
-       char            u_comm[32];             /* user command name */
-};
-
-#define NBPG                   PAGE_SIZE
-#define UPAGES                 1
-#define HOST_TEXT_START_ADDR   (u.start_code)
-#define HOST_DATA_START_ADDR   (u.start_data)
-#define HOST_STACK_END_ADDR    (u.start_stack + u.u_ssize * NBPG)
-
-#endif /* __ASM_AVR32_USER_H */
diff --git a/arch/avr32/include/uapi/asm/Kbuild b/arch/avr32/include/uapi/asm/Kbuild
deleted file mode 100644 (file)
index 08d8a3d..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-# UAPI Header export list
-include include/uapi/asm-generic/Kbuild.asm
-
-header-y += auxvec.h
-header-y += byteorder.h
-header-y += cachectl.h
-header-y += msgbuf.h
-header-y += param.h
-header-y += posix_types.h
-header-y += ptrace.h
-header-y += sembuf.h
-header-y += setup.h
-header-y += shmbuf.h
-header-y += sigcontext.h
-header-y += signal.h
-header-y += socket.h
-header-y += sockios.h
-header-y += stat.h
-header-y += swab.h
-header-y += termbits.h
-header-y += termios.h
-header-y += types.h
-header-y += unistd.h
-generic-y += bitsperlong.h
-generic-y += errno.h
-generic-y += fcntl.h
-generic-y += ioctl.h
-generic-y += ioctls.h
-generic-y += ipcbuf.h
-generic-y += kvm_para.h
-generic-y += mman.h
-generic-y += param.h
-generic-y += poll.h
-generic-y += resource.h
-generic-y += siginfo.h
-generic-y += statfs.h
diff --git a/arch/avr32/include/uapi/asm/auxvec.h b/arch/avr32/include/uapi/asm/auxvec.h
deleted file mode 100644 (file)
index 4f02da3..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef _UAPI__ASM_AVR32_AUXVEC_H
-#define _UAPI__ASM_AVR32_AUXVEC_H
-
-#endif /* _UAPI__ASM_AVR32_AUXVEC_H */
diff --git a/arch/avr32/include/uapi/asm/byteorder.h b/arch/avr32/include/uapi/asm/byteorder.h
deleted file mode 100644 (file)
index 71242f0..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- * AVR32 endian-conversion functions.
- */
-#ifndef _UAPI__ASM_AVR32_BYTEORDER_H
-#define _UAPI__ASM_AVR32_BYTEORDER_H
-
-#include <linux/byteorder/big_endian.h>
-
-#endif /* _UAPI__ASM_AVR32_BYTEORDER_H */
diff --git a/arch/avr32/include/uapi/asm/cachectl.h b/arch/avr32/include/uapi/asm/cachectl.h
deleted file mode 100644 (file)
index 573a958..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _UAPI__ASM_AVR32_CACHECTL_H
-#define _UAPI__ASM_AVR32_CACHECTL_H
-
-/*
- * Operations that can be performed through the cacheflush system call
- */
-
-/* Clean the data cache, then invalidate the icache */
-#define CACHE_IFLUSH   0
-
-#endif /* _UAPI__ASM_AVR32_CACHECTL_H */
diff --git a/arch/avr32/include/uapi/asm/msgbuf.h b/arch/avr32/include/uapi/asm/msgbuf.h
deleted file mode 100644 (file)
index 9eae6ef..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef _UAPI__ASM_AVR32_MSGBUF_H
-#define _UAPI__ASM_AVR32_MSGBUF_H
-
-/*
- * The msqid64_ds structure for i386 architecture.
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * Pad space is left for:
- * - 64-bit time_t to solve y2038 problem
- * - 2 miscellaneous 32-bit values
- */
-
-struct msqid64_ds {
-       struct ipc64_perm msg_perm;
-       __kernel_time_t msg_stime;      /* last msgsnd time */
-       unsigned long   __unused1;
-       __kernel_time_t msg_rtime;      /* last msgrcv time */
-       unsigned long   __unused2;
-       __kernel_time_t msg_ctime;      /* last change time */
-       unsigned long   __unused3;
-       unsigned long  msg_cbytes;      /* current number of bytes on queue */
-       unsigned long  msg_qnum;        /* number of messages in queue */
-       unsigned long  msg_qbytes;      /* max number of bytes on queue */
-       __kernel_pid_t msg_lspid;       /* pid of last msgsnd */
-       __kernel_pid_t msg_lrpid;       /* last receive pid */
-       unsigned long  __unused4;
-       unsigned long  __unused5;
-};
-
-#endif /* _UAPI__ASM_AVR32_MSGBUF_H */
diff --git a/arch/avr32/include/uapi/asm/posix_types.h b/arch/avr32/include/uapi/asm/posix_types.h
deleted file mode 100644 (file)
index 5b813a8..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef _UAPI__ASM_AVR32_POSIX_TYPES_H
-#define _UAPI__ASM_AVR32_POSIX_TYPES_H
-
-/*
- * This file is generally used by user-level software, so you need to
- * be a little careful about namespace pollution etc.  Also, we cannot
- * assume GCC is being used.
- */
-
-typedef unsigned short  __kernel_mode_t;
-#define __kernel_mode_t __kernel_mode_t
-
-typedef unsigned short  __kernel_ipc_pid_t;
-#define __kernel_ipc_pid_t __kernel_ipc_pid_t
-
-typedef unsigned long  __kernel_size_t;
-typedef long           __kernel_ssize_t;
-typedef int             __kernel_ptrdiff_t;
-#define __kernel_size_t __kernel_size_t
-
-typedef unsigned short  __kernel_old_uid_t;
-typedef unsigned short  __kernel_old_gid_t;
-#define __kernel_old_uid_t __kernel_old_uid_t
-
-typedef unsigned short  __kernel_old_dev_t;
-#define __kernel_old_dev_t __kernel_old_dev_t
-
-#include <asm-generic/posix_types.h>
-
-#endif /* _UAPI__ASM_AVR32_POSIX_TYPES_H */
diff --git a/arch/avr32/include/uapi/asm/ptrace.h b/arch/avr32/include/uapi/asm/ptrace.h
deleted file mode 100644 (file)
index fe8c162..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef _UAPI__ASM_AVR32_PTRACE_H
-#define _UAPI__ASM_AVR32_PTRACE_H
-
-#define PTRACE_GETREGS         12
-#define PTRACE_SETREGS         13
-
-/*
- * Status Register bits
- */
-#define SR_H           0x20000000
-#define SR_J           0x10000000
-#define SR_DM          0x08000000
-#define SR_D           0x04000000
-#define MODE_NMI       0x01c00000
-#define MODE_EXCEPTION 0x01800000
-#define MODE_INT3      0x01400000
-#define MODE_INT2      0x01000000
-#define MODE_INT1      0x00c00000
-#define MODE_INT0      0x00800000
-#define MODE_SUPERVISOR        0x00400000
-#define MODE_USER      0x00000000
-#define MODE_MASK      0x01c00000
-#define SR_EM          0x00200000
-#define SR_I3M         0x00100000
-#define SR_I2M         0x00080000
-#define SR_I1M         0x00040000
-#define SR_I0M         0x00020000
-#define SR_GM          0x00010000
-
-#define SR_H_BIT       29
-#define SR_J_BIT       28
-#define SR_DM_BIT      27
-#define SR_D_BIT       26
-#define MODE_SHIFT     22
-#define SR_EM_BIT      21
-#define SR_I3M_BIT     20
-#define SR_I2M_BIT     19
-#define SR_I1M_BIT     18
-#define SR_I0M_BIT     17
-#define SR_GM_BIT      16
-
-/* The user-visible part */
-#define SR_L           0x00000020
-#define SR_Q           0x00000010
-#define SR_V           0x00000008
-#define SR_N           0x00000004
-#define SR_Z           0x00000002
-#define SR_C           0x00000001
-
-#define SR_L_BIT       5
-#define SR_Q_BIT       4
-#define SR_V_BIT       3
-#define SR_N_BIT       2
-#define SR_Z_BIT       1
-#define SR_C_BIT       0
-
-/*
- * The order is defined by the stmts instruction. r0 is stored first,
- * so it gets the highest address.
- *
- * Registers 0-12 are general-purpose registers (r12 is normally used for
- * the function return value).
- * Register 13 is the stack pointer
- * Register 14 is the link register
- * Register 15 is the program counter (retrieved from the RAR sysreg)
- */
-#define FRAME_SIZE_FULL 72
-#define REG_R12_ORIG   68
-#define REG_R0         64
-#define REG_R1         60
-#define REG_R2         56
-#define REG_R3         52
-#define REG_R4         48
-#define REG_R5         44
-#define REG_R6         40
-#define REG_R7         36
-#define REG_R8         32
-#define REG_R9         28
-#define REG_R10                24
-#define REG_R11                20
-#define REG_R12                16
-#define REG_SP         12
-#define REG_LR          8
-
-#define FRAME_SIZE_MIN  8
-#define REG_PC          4
-#define REG_SR          0
-
-#ifndef __ASSEMBLY__
-struct pt_regs {
-       /* These are always saved */
-       unsigned long sr;
-       unsigned long pc;
-
-       /* These are sometimes saved */
-       unsigned long lr;
-       unsigned long sp;
-       unsigned long r12;
-       unsigned long r11;
-       unsigned long r10;
-       unsigned long r9;
-       unsigned long r8;
-       unsigned long r7;
-       unsigned long r6;
-       unsigned long r5;
-       unsigned long r4;
-       unsigned long r3;
-       unsigned long r2;
-       unsigned long r1;
-       unsigned long r0;
-
-       /* Only saved on system call */
-       unsigned long r12_orig;
-};
-
-
-#endif /* ! __ASSEMBLY__ */
-
-#endif /* _UAPI__ASM_AVR32_PTRACE_H */
diff --git a/arch/avr32/include/uapi/asm/sembuf.h b/arch/avr32/include/uapi/asm/sembuf.h
deleted file mode 100644 (file)
index 6c6f7cf..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _UAPI__ASM_AVR32_SEMBUF_H
-#define _UAPI__ASM_AVR32_SEMBUF_H
-
-/*
-* The semid64_ds structure for AVR32 architecture.
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * Pad space is left for:
- * - 64-bit time_t to solve y2038 problem
- * - 2 miscellaneous 32-bit values
- */
-
-struct semid64_ds {
-        struct ipc64_perm sem_perm;             /* permissions .. see ipc.h */
-        __kernel_time_t sem_otime;              /* last semop time */
-        unsigned long   __unused1;
-        __kernel_time_t sem_ctime;              /* last change time */
-        unsigned long   __unused2;
-        unsigned long   sem_nsems;              /* no. of semaphores in array */
-        unsigned long   __unused3;
-        unsigned long   __unused4;
-};
-
-#endif /* _UAPI__ASM_AVR32_SEMBUF_H */
diff --git a/arch/avr32/include/uapi/asm/setup.h b/arch/avr32/include/uapi/asm/setup.h
deleted file mode 100644 (file)
index a654df7..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * Based on linux/include/asm-arm/setup.h
- *   Copyright (C) 1997-1999 Russell King
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef _UAPI__ASM_AVR32_SETUP_H__
-#define _UAPI__ASM_AVR32_SETUP_H__
-
-#define COMMAND_LINE_SIZE 256
-
-#endif /* _UAPI__ASM_AVR32_SETUP_H__ */
diff --git a/arch/avr32/include/uapi/asm/shmbuf.h b/arch/avr32/include/uapi/asm/shmbuf.h
deleted file mode 100644 (file)
index b94cf8b..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef _UAPI__ASM_AVR32_SHMBUF_H
-#define _UAPI__ASM_AVR32_SHMBUF_H
-
-/*
- * The shmid64_ds structure for i386 architecture.
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * Pad space is left for:
- * - 64-bit time_t to solve y2038 problem
- * - 2 miscellaneous 32-bit values
- */
-
-struct shmid64_ds {
-       struct ipc64_perm       shm_perm;       /* operation perms */
-       size_t                  shm_segsz;      /* size of segment (bytes) */
-       __kernel_time_t         shm_atime;      /* last attach time */
-       unsigned long           __unused1;
-       __kernel_time_t         shm_dtime;      /* last detach time */
-       unsigned long           __unused2;
-       __kernel_time_t         shm_ctime;      /* last change time */
-       unsigned long           __unused3;
-       __kernel_pid_t          shm_cpid;       /* pid of creator */
-       __kernel_pid_t          shm_lpid;       /* pid of last operator */
-       unsigned long           shm_nattch;     /* no. of current attaches */
-       unsigned long           __unused4;
-       unsigned long           __unused5;
-};
-
-struct shminfo64 {
-       unsigned long   shmmax;
-       unsigned long   shmmin;
-       unsigned long   shmmni;
-       unsigned long   shmseg;
-       unsigned long   shmall;
-       unsigned long   __unused1;
-       unsigned long   __unused2;
-       unsigned long   __unused3;
-       unsigned long   __unused4;
-};
-
-#endif /* _UAPI__ASM_AVR32_SHMBUF_H */
diff --git a/arch/avr32/include/uapi/asm/sigcontext.h b/arch/avr32/include/uapi/asm/sigcontext.h
deleted file mode 100644 (file)
index 27e56bf..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef _UAPI__ASM_AVR32_SIGCONTEXT_H
-#define _UAPI__ASM_AVR32_SIGCONTEXT_H
-
-struct sigcontext {
-       unsigned long   oldmask;
-
-       /* CPU registers */
-       unsigned long   sr;
-       unsigned long   pc;
-       unsigned long   lr;
-       unsigned long   sp;
-       unsigned long   r12;
-       unsigned long   r11;
-       unsigned long   r10;
-       unsigned long   r9;
-       unsigned long   r8;
-       unsigned long   r7;
-       unsigned long   r6;
-       unsigned long   r5;
-       unsigned long   r4;
-       unsigned long   r3;
-       unsigned long   r2;
-       unsigned long   r1;
-       unsigned long   r0;
-};
-
-#endif /* _UAPI__ASM_AVR32_SIGCONTEXT_H */
diff --git a/arch/avr32/include/uapi/asm/signal.h b/arch/avr32/include/uapi/asm/signal.h
deleted file mode 100644 (file)
index ffe8c77..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef _UAPI__ASM_AVR32_SIGNAL_H
-#define _UAPI__ASM_AVR32_SIGNAL_H
-
-#include <linux/types.h>
-
-/* Avoid too many header ordering problems.  */
-struct siginfo;
-
-#ifndef __KERNEL__
-/* Here we must cater to libcs that poke about in kernel headers.  */
-
-#define NSIG           32
-typedef unsigned long sigset_t;
-
-#endif /* __KERNEL__ */
-
-#define SIGHUP          1
-#define SIGINT          2
-#define SIGQUIT                 3
-#define SIGILL          4
-#define SIGTRAP                 5
-#define SIGABRT                 6
-#define SIGIOT          6
-#define SIGBUS          7
-#define SIGFPE          8
-#define SIGKILL                 9
-#define SIGUSR1                10
-#define SIGSEGV                11
-#define SIGUSR2                12
-#define SIGPIPE                13
-#define SIGALRM                14
-#define SIGTERM                15
-#define SIGSTKFLT      16
-#define SIGCHLD                17
-#define SIGCONT                18
-#define SIGSTOP                19
-#define SIGTSTP                20
-#define SIGTTIN                21
-#define SIGTTOU                22
-#define SIGURG         23
-#define SIGXCPU                24
-#define SIGXFSZ                25
-#define SIGVTALRM      26
-#define SIGPROF                27
-#define SIGWINCH       28
-#define SIGIO          29
-#define SIGPOLL                SIGIO
-/*
-#define SIGLOST                29
-*/
-#define SIGPWR         30
-#define SIGSYS         31
-#define        SIGUNUSED       31
-
-/* These should not be considered constants from userland.  */
-#define SIGRTMIN       32
-#define SIGRTMAX       (_NSIG-1)
-
-/*
- * SA_FLAGS values:
- *
- * SA_NOCLDSTOP                flag to turn off SIGCHLD when children stop.
- * SA_NOCLDWAIT                flag on SIGCHLD to inhibit zombies.
- * SA_SIGINFO          deliver the signal with SIGINFO structs
- * SA_ONSTACK          indicates that a registered stack_t will be used.
- * SA_RESTART          flag to get restarting signals (which were the default long ago)
- * SA_NODEFER          prevents the current signal from being masked in the handler.
- * SA_RESETHAND                clears the handler when the signal is delivered.
- *
- * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
- * Unix names RESETHAND and NODEFER respectively.
- */
-#define SA_NOCLDSTOP   0x00000001
-#define SA_NOCLDWAIT   0x00000002
-#define SA_SIGINFO     0x00000004
-#define SA_RESTORER    0x04000000
-#define SA_ONSTACK     0x08000000
-#define SA_RESTART     0x10000000
-#define SA_NODEFER     0x40000000
-#define SA_RESETHAND   0x80000000
-
-#define SA_NOMASK      SA_NODEFER
-#define SA_ONESHOT     SA_RESETHAND
-
-#define MINSIGSTKSZ    2048
-#define SIGSTKSZ       8192
-
-#include <asm-generic/signal-defs.h>
-
-#ifndef __KERNEL__
-/* Here we must cater to libcs that poke about in kernel headers.  */
-
-struct sigaction {
-       union {
-               __sighandler_t _sa_handler;
-               void (*_sa_sigaction)(int, struct siginfo *, void *);
-       } _u;
-       sigset_t sa_mask;
-       unsigned long sa_flags;
-       void (*sa_restorer)(void);
-};
-
-#define sa_handler     _u._sa_handler
-#define sa_sigaction   _u._sa_sigaction
-
-#endif /* __KERNEL__ */
-
-typedef struct sigaltstack {
-       void __user *ss_sp;
-       int ss_flags;
-       size_t ss_size;
-} stack_t;
-
-#endif /* _UAPI__ASM_AVR32_SIGNAL_H */
diff --git a/arch/avr32/include/uapi/asm/socket.h b/arch/avr32/include/uapi/asm/socket.h
deleted file mode 100644 (file)
index 5a65042..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-#ifndef _UAPI__ASM_AVR32_SOCKET_H
-#define _UAPI__ASM_AVR32_SOCKET_H
-
-#include <asm/sockios.h>
-
-/* For setsockopt(2) */
-#define SOL_SOCKET     1
-
-#define SO_DEBUG       1
-#define SO_REUSEADDR   2
-#define SO_TYPE                3
-#define SO_ERROR       4
-#define SO_DONTROUTE   5
-#define SO_BROADCAST   6
-#define SO_SNDBUF      7
-#define SO_RCVBUF      8
-#define SO_SNDBUFFORCE 32
-#define SO_RCVBUFFORCE 33
-#define SO_KEEPALIVE   9
-#define SO_OOBINLINE   10
-#define SO_NO_CHECK    11
-#define SO_PRIORITY    12
-#define SO_LINGER      13
-#define SO_BSDCOMPAT   14
-#define SO_REUSEPORT   15
-#define SO_PASSCRED    16
-#define SO_PEERCRED    17
-#define SO_RCVLOWAT    18
-#define SO_SNDLOWAT    19
-#define SO_RCVTIMEO    20
-#define SO_SNDTIMEO    21
-
-/* Security levels - as per NRL IPv6 - don't actually do anything */
-#define SO_SECURITY_AUTHENTICATION             22
-#define SO_SECURITY_ENCRYPTION_TRANSPORT       23
-#define SO_SECURITY_ENCRYPTION_NETWORK         24
-
-#define SO_BINDTODEVICE        25
-
-/* Socket filtering */
-#define SO_ATTACH_FILTER        26
-#define SO_DETACH_FILTER        27
-#define SO_GET_FILTER          SO_ATTACH_FILTER
-
-#define SO_PEERNAME            28
-#define SO_TIMESTAMP           29
-#define SCM_TIMESTAMP          SO_TIMESTAMP
-
-#define SO_ACCEPTCONN          30
-
-#define SO_PEERSEC             31
-#define SO_PASSSEC             34
-#define SO_TIMESTAMPNS         35
-#define SCM_TIMESTAMPNS                SO_TIMESTAMPNS
-
-#define SO_MARK                        36
-
-#define SO_TIMESTAMPING                37
-#define SCM_TIMESTAMPING       SO_TIMESTAMPING
-
-#define SO_PROTOCOL            38
-#define SO_DOMAIN              39
-
-#define SO_RXQ_OVFL             40
-
-#define SO_WIFI_STATUS         41
-#define SCM_WIFI_STATUS                SO_WIFI_STATUS
-#define SO_PEEK_OFF            42
-
-/* Instruct lower device to use last 4-bytes of skb data as FCS */
-#define SO_NOFCS               43
-
-#define SO_LOCK_FILTER         44
-
-#define SO_SELECT_ERR_QUEUE    45
-
-#define SO_BUSY_POLL           46
-
-#define SO_MAX_PACING_RATE     47
-
-#define SO_BPF_EXTENSIONS      48
-
-#define SO_INCOMING_CPU                49
-
-#define SO_ATTACH_BPF          50
-#define SO_DETACH_BPF          SO_DETACH_FILTER
-
-#define SO_ATTACH_REUSEPORT_CBPF       51
-#define SO_ATTACH_REUSEPORT_EBPF       52
-
-#define SO_CNX_ADVICE          53
-
-#define SCM_TIMESTAMPING_OPT_STATS     54
-
-#endif /* _UAPI__ASM_AVR32_SOCKET_H */
diff --git a/arch/avr32/include/uapi/asm/sockios.h b/arch/avr32/include/uapi/asm/sockios.h
deleted file mode 100644 (file)
index d047854..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef _UAPI__ASM_AVR32_SOCKIOS_H
-#define _UAPI__ASM_AVR32_SOCKIOS_H
-
-/* Socket-level I/O control calls. */
-#define FIOSETOWN      0x8901
-#define SIOCSPGRP      0x8902
-#define FIOGETOWN      0x8903
-#define SIOCGPGRP      0x8904
-#define SIOCATMARK     0x8905
-#define SIOCGSTAMP     0x8906          /* Get stamp (timeval) */
-#define SIOCGSTAMPNS   0x8907          /* Get stamp (timespec) */
-
-#endif /* _UAPI__ASM_AVR32_SOCKIOS_H */
diff --git a/arch/avr32/include/uapi/asm/stat.h b/arch/avr32/include/uapi/asm/stat.h
deleted file mode 100644 (file)
index c06acef..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef _UAPI__ASM_AVR32_STAT_H
-#define _UAPI__ASM_AVR32_STAT_H
-
-struct __old_kernel_stat {
-        unsigned short st_dev;
-        unsigned short st_ino;
-        unsigned short st_mode;
-        unsigned short st_nlink;
-        unsigned short st_uid;
-        unsigned short st_gid;
-        unsigned short st_rdev;
-        unsigned long  st_size;
-        unsigned long  st_atime;
-        unsigned long  st_mtime;
-        unsigned long  st_ctime;
-};
-
-struct stat {
-        unsigned long st_dev;
-        unsigned long st_ino;
-        unsigned short st_mode;
-        unsigned short st_nlink;
-        unsigned short st_uid;
-        unsigned short st_gid;
-        unsigned long  st_rdev;
-        unsigned long  st_size;
-        unsigned long  st_blksize;
-        unsigned long  st_blocks;
-        unsigned long  st_atime;
-        unsigned long  st_atime_nsec;
-        unsigned long  st_mtime;
-        unsigned long  st_mtime_nsec;
-        unsigned long  st_ctime;
-        unsigned long  st_ctime_nsec;
-        unsigned long  __unused4;
-        unsigned long  __unused5;
-};
-
-#define STAT_HAVE_NSEC 1
-
-struct stat64 {
-       unsigned long long st_dev;
-
-       unsigned long long st_ino;
-       unsigned int    st_mode;
-       unsigned int    st_nlink;
-
-       unsigned long   st_uid;
-       unsigned long   st_gid;
-
-       unsigned long long st_rdev;
-
-       long long       st_size;
-       unsigned long   __pad1;         /* align 64-bit st_blocks */
-       unsigned long   st_blksize;
-
-       unsigned long long st_blocks;   /* Number 512-byte blocks allocated. */
-
-       unsigned long   st_atime;
-       unsigned long   st_atime_nsec;
-
-       unsigned long   st_mtime;
-       unsigned long   st_mtime_nsec;
-
-       unsigned long   st_ctime;
-       unsigned long   st_ctime_nsec;
-
-       unsigned long   __unused1;
-       unsigned long   __unused2;
-};
-
-#endif /* _UAPI__ASM_AVR32_STAT_H */
diff --git a/arch/avr32/include/uapi/asm/swab.h b/arch/avr32/include/uapi/asm/swab.h
deleted file mode 100644 (file)
index 1a03549..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * AVR32 byteswapping functions.
- */
-#ifndef _UAPI__ASM_AVR32_SWAB_H
-#define _UAPI__ASM_AVR32_SWAB_H
-
-#include <linux/types.h>
-#include <linux/compiler.h>
-
-#define __SWAB_64_THRU_32__
-
-#ifdef __CHECKER__
-extern unsigned long __builtin_bswap_32(unsigned long x);
-extern unsigned short __builtin_bswap_16(unsigned short x);
-#endif
-
-/*
- * avr32-linux-gcc versions earlier than 4.2 improperly sign-extends
- * the result.
- */
-#if !(__GNUC__ == 4 && __GNUC_MINOR__ < 2)
-static inline __attribute_const__ __u16 __arch_swab16(__u16 val)
-{
-       return __builtin_bswap_16(val);
-}
-#define __arch_swab16 __arch_swab16
-
-static inline __attribute_const__ __u32 __arch_swab32(__u32 val)
-{
-       return __builtin_bswap_32(val);
-}
-#define __arch_swab32 __arch_swab32
-#endif
-
-#endif /* _UAPI__ASM_AVR32_SWAB_H */
diff --git a/arch/avr32/include/uapi/asm/termbits.h b/arch/avr32/include/uapi/asm/termbits.h
deleted file mode 100644 (file)
index 32789cc..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-#ifndef _UAPI__ASM_AVR32_TERMBITS_H
-#define _UAPI__ASM_AVR32_TERMBITS_H
-
-#include <linux/posix_types.h>
-
-typedef unsigned char  cc_t;
-typedef unsigned int   speed_t;
-typedef unsigned int   tcflag_t;
-
-#define NCCS 19
-struct termios {
-       tcflag_t c_iflag;               /* input mode flags */
-       tcflag_t c_oflag;               /* output mode flags */
-       tcflag_t c_cflag;               /* control mode flags */
-       tcflag_t c_lflag;               /* local mode flags */
-       cc_t c_line;                    /* line discipline */
-       cc_t c_cc[NCCS];                /* control characters */
-};
-
-struct termios2 {
-       tcflag_t c_iflag;               /* input mode flags */
-       tcflag_t c_oflag;               /* output mode flags */
-       tcflag_t c_cflag;               /* control mode flags */
-       tcflag_t c_lflag;               /* local mode flags */
-       cc_t c_line;                    /* line discipline */
-       cc_t c_cc[NCCS];                /* control characters */
-       speed_t c_ispeed;               /* input speed */
-       speed_t c_ospeed;               /* output speed */
-};
-
-struct ktermios {
-       tcflag_t c_iflag;               /* input mode flags */
-       tcflag_t c_oflag;               /* output mode flags */
-       tcflag_t c_cflag;               /* control mode flags */
-       tcflag_t c_lflag;               /* local mode flags */
-       cc_t c_line;                    /* line discipline */
-       cc_t c_cc[NCCS];                /* control characters */
-       speed_t c_ispeed;               /* input speed */
-       speed_t c_ospeed;               /* output speed */
-};
-
-/* c_cc characters */
-#define VINTR 0
-#define VQUIT 1
-#define VERASE 2
-#define VKILL 3
-#define VEOF 4
-#define VTIME 5
-#define VMIN 6
-#define VSWTC 7
-#define VSTART 8
-#define VSTOP 9
-#define VSUSP 10
-#define VEOL 11
-#define VREPRINT 12
-#define VDISCARD 13
-#define VWERASE 14
-#define VLNEXT 15
-#define VEOL2 16
-
-/* c_iflag bits */
-#define IGNBRK 0000001
-#define BRKINT 0000002
-#define IGNPAR 0000004
-#define PARMRK 0000010
-#define INPCK  0000020
-#define ISTRIP 0000040
-#define INLCR  0000100
-#define IGNCR  0000200
-#define ICRNL  0000400
-#define IUCLC  0001000
-#define IXON   0002000
-#define IXANY  0004000
-#define IXOFF  0010000
-#define IMAXBEL        0020000
-#define IUTF8  0040000
-
-/* c_oflag bits */
-#define OPOST  0000001
-#define OLCUC  0000002
-#define ONLCR  0000004
-#define OCRNL  0000010
-#define ONOCR  0000020
-#define ONLRET 0000040
-#define OFILL  0000100
-#define OFDEL  0000200
-#define NLDLY  0000400
-#define   NL0  0000000
-#define   NL1  0000400
-#define CRDLY  0003000
-#define   CR0  0000000
-#define   CR1  0001000
-#define   CR2  0002000
-#define   CR3  0003000
-#define TABDLY 0014000
-#define   TAB0 0000000
-#define   TAB1 0004000
-#define   TAB2 0010000
-#define   TAB3 0014000
-#define   XTABS        0014000
-#define BSDLY  0020000
-#define   BS0  0000000
-#define   BS1  0020000
-#define VTDLY  0040000
-#define   VT0  0000000
-#define   VT1  0040000
-#define FFDLY  0100000
-#define   FF0  0000000
-#define   FF1  0100000
-
-/* c_cflag bit meaning */
-#define CBAUD  0010017
-#define  B0    0000000         /* hang up */
-#define  B50   0000001
-#define  B75   0000002
-#define  B110  0000003
-#define  B134  0000004
-#define  B150  0000005
-#define  B200  0000006
-#define  B300  0000007
-#define  B600  0000010
-#define  B1200 0000011
-#define  B1800 0000012
-#define  B2400 0000013
-#define  B4800 0000014
-#define  B9600 0000015
-#define  B19200        0000016
-#define  B38400        0000017
-#define EXTA B19200
-#define EXTB B38400
-#define CSIZE  0000060
-#define   CS5  0000000
-#define   CS6  0000020
-#define   CS7  0000040
-#define   CS8  0000060
-#define CSTOPB 0000100
-#define CREAD  0000200
-#define PARENB 0000400
-#define PARODD 0001000
-#define HUPCL  0002000
-#define CLOCAL 0004000
-#define CBAUDEX 0010000
-#define    B57600 0010001
-#define   B115200 0010002
-#define   B230400 0010003
-#define   B460800 0010004
-#define   B500000 0010005
-#define   B576000 0010006
-#define   B921600 0010007
-#define  B1000000 0010010
-#define  B1152000 0010011
-#define  B1500000 0010012
-#define  B2000000 0010013
-#define  B2500000 0010014
-#define  B3000000 0010015
-#define  B3500000 0010016
-#define  B4000000 0010017
-#define CIBAUD   002003600000  /* input baud rate (not used) */
-#define CMSPAR   010000000000          /* mark or space (stick) parity */
-#define CRTSCTS          020000000000          /* flow control */
-
-/* c_lflag bits */
-#define ISIG   0000001
-#define ICANON 0000002
-#define XCASE  0000004
-#define ECHO   0000010
-#define ECHOE  0000020
-#define ECHOK  0000040
-#define ECHONL 0000100
-#define NOFLSH 0000200
-#define TOSTOP 0000400
-#define ECHOCTL        0001000
-#define ECHOPRT        0002000
-#define ECHOKE 0004000
-#define FLUSHO 0010000
-#define PENDIN 0040000
-#define IEXTEN 0100000
-#define EXTPROC        0200000
-
-/* tcflow() and TCXONC use these */
-#define        TCOOFF          0
-#define        TCOON           1
-#define        TCIOFF          2
-#define        TCION           3
-
-/* tcflush() and TCFLSH use these */
-#define        TCIFLUSH        0
-#define        TCOFLUSH        1
-#define        TCIOFLUSH       2
-
-/* tcsetattr uses these */
-#define        TCSANOW         0
-#define        TCSADRAIN       1
-#define        TCSAFLUSH       2
-
-#endif /* _UAPI__ASM_AVR32_TERMBITS_H */
diff --git a/arch/avr32/include/uapi/asm/termios.h b/arch/avr32/include/uapi/asm/termios.h
deleted file mode 100644 (file)
index c8a0081..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef _UAPI__ASM_AVR32_TERMIOS_H
-#define _UAPI__ASM_AVR32_TERMIOS_H
-
-#include <asm/termbits.h>
-#include <asm/ioctls.h>
-
-struct winsize {
-       unsigned short ws_row;
-       unsigned short ws_col;
-       unsigned short ws_xpixel;
-       unsigned short ws_ypixel;
-};
-
-#define NCC 8
-struct termio {
-       unsigned short c_iflag;         /* input mode flags */
-       unsigned short c_oflag;         /* output mode flags */
-       unsigned short c_cflag;         /* control mode flags */
-       unsigned short c_lflag;         /* local mode flags */
-       unsigned char c_line;           /* line discipline */
-       unsigned char c_cc[NCC];        /* control characters */
-};
-
-/* modem lines */
-#define TIOCM_LE       0x001
-#define TIOCM_DTR      0x002
-#define TIOCM_RTS      0x004
-#define TIOCM_ST       0x008
-#define TIOCM_SR       0x010
-#define TIOCM_CTS      0x020
-#define TIOCM_CAR      0x040
-#define TIOCM_RNG      0x080
-#define TIOCM_DSR      0x100
-#define TIOCM_CD       TIOCM_CAR
-#define TIOCM_RI       TIOCM_RNG
-#define TIOCM_OUT1     0x2000
-#define TIOCM_OUT2     0x4000
-#define TIOCM_LOOP     0x8000
-
-/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
-
-#endif /* _UAPI__ASM_AVR32_TERMIOS_H */
diff --git a/arch/avr32/include/uapi/asm/types.h b/arch/avr32/include/uapi/asm/types.h
deleted file mode 100644 (file)
index 7c986c4..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef _UAPI__ASM_AVR32_TYPES_H
-#define _UAPI__ASM_AVR32_TYPES_H
-
-#include <asm-generic/int-ll64.h>
-
-#endif /* _UAPI__ASM_AVR32_TYPES_H */
diff --git a/arch/avr32/include/uapi/asm/unistd.h b/arch/avr32/include/uapi/asm/unistd.h
deleted file mode 100644 (file)
index 236505d..0000000
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef _UAPI__ASM_AVR32_UNISTD_H
-#define _UAPI__ASM_AVR32_UNISTD_H
-
-/*
- * This file contains the system call numbers.
- */
-
-#define __NR_restart_syscall    0
-#define __NR_exit               1
-#define __NR_fork               2
-#define __NR_read               3
-#define __NR_write              4
-#define __NR_open               5
-#define __NR_close              6
-#define __NR_umask              7
-#define __NR_creat              8
-#define __NR_link               9
-#define __NR_unlink             10
-#define __NR_execve             11
-#define __NR_chdir              12
-#define __NR_time               13
-#define __NR_mknod              14
-#define __NR_chmod              15
-#define __NR_chown              16
-#define __NR_lchown             17
-#define __NR_lseek              18
-#define __NR__llseek            19
-#define __NR_getpid             20
-#define __NR_mount              21
-#define __NR_umount2            22
-#define __NR_setuid             23
-#define __NR_getuid             24
-#define __NR_stime              25
-#define __NR_ptrace             26
-#define __NR_alarm              27
-#define __NR_pause              28
-#define __NR_utime              29
-#define __NR_stat               30
-#define __NR_fstat              31
-#define __NR_lstat              32
-#define __NR_access             33
-#define __NR_chroot             34
-#define __NR_sync               35
-#define __NR_fsync              36
-#define __NR_kill               37
-#define __NR_rename             38
-#define __NR_mkdir              39
-#define __NR_rmdir              40
-#define __NR_dup                41
-#define __NR_pipe               42
-#define __NR_times              43
-#define __NR_clone              44
-#define __NR_brk                45
-#define __NR_setgid             46
-#define __NR_getgid             47
-#define __NR_getcwd             48
-#define __NR_geteuid            49
-#define __NR_getegid            50
-#define __NR_acct               51
-#define __NR_setfsuid           52
-#define __NR_setfsgid           53
-#define __NR_ioctl              54
-#define __NR_fcntl              55
-#define __NR_setpgid            56
-#define __NR_mremap             57
-#define __NR_setresuid          58
-#define __NR_getresuid          59
-#define __NR_setreuid           60
-#define __NR_setregid           61
-#define __NR_ustat              62
-#define __NR_dup2               63
-#define __NR_getppid            64
-#define __NR_getpgrp            65
-#define __NR_setsid             66
-#define __NR_rt_sigaction       67
-#define __NR_rt_sigreturn       68
-#define __NR_rt_sigprocmask     69
-#define __NR_rt_sigpending      70
-#define __NR_rt_sigtimedwait    71
-#define __NR_rt_sigqueueinfo    72
-#define __NR_rt_sigsuspend      73
-#define __NR_sethostname        74
-#define __NR_setrlimit          75
-#define __NR_getrlimit          76 /* SuS compliant getrlimit */
-#define __NR_getrusage          77
-#define __NR_gettimeofday       78
-#define __NR_settimeofday       79
-#define __NR_getgroups          80
-#define __NR_setgroups          81
-#define __NR_select             82
-#define __NR_symlink            83
-#define __NR_fchdir             84
-#define __NR_readlink           85
-#define __NR_pread              86
-#define __NR_pwrite             87
-#define __NR_swapon             88
-#define __NR_reboot             89
-#define __NR_mmap2              90
-#define __NR_munmap             91
-#define __NR_truncate           92
-#define __NR_ftruncate          93
-#define __NR_fchmod             94
-#define __NR_fchown             95
-#define __NR_getpriority        96
-#define __NR_setpriority        97
-#define __NR_wait4              98
-#define __NR_statfs             99
-#define __NR_fstatfs            100
-#define __NR_vhangup            101
-#define __NR_sigaltstack        102
-#define __NR_syslog             103
-#define __NR_setitimer          104
-#define __NR_getitimer          105
-#define __NR_swapoff            106
-#define __NR_sysinfo            107
-/* 108 was __NR_ipc for a little while */
-#define __NR_sendfile           109
-#define __NR_setdomainname      110
-#define __NR_uname              111
-#define __NR_adjtimex           112
-#define __NR_mprotect           113
-#define __NR_vfork              114
-#define __NR_init_module        115
-#define __NR_delete_module      116
-#define __NR_quotactl           117
-#define __NR_getpgid            118
-#define __NR_bdflush            119
-#define __NR_sysfs              120
-#define __NR_personality        121
-#define __NR_afs_syscall        122 /* Syscall for Andrew File System */
-#define __NR_getdents           123
-#define __NR_flock              124
-#define __NR_msync              125
-#define __NR_readv              126
-#define __NR_writev             127
-#define __NR_getsid             128
-#define __NR_fdatasync          129
-#define __NR__sysctl            130
-#define __NR_mlock              131
-#define __NR_munlock            132
-#define __NR_mlockall           133
-#define __NR_munlockall         134
-#define __NR_sched_setparam     135
-#define __NR_sched_getparam     136
-#define __NR_sched_setscheduler 137
-#define __NR_sched_getscheduler 138
-#define __NR_sched_yield        139
-#define __NR_sched_get_priority_max     140
-#define __NR_sched_get_priority_min     141
-#define __NR_sched_rr_get_interval      142
-#define __NR_nanosleep          143
-#define __NR_poll               144
-#define __NR_nfsservctl         145
-#define __NR_setresgid          146
-#define __NR_getresgid          147
-#define __NR_prctl              148
-#define __NR_socket             149
-#define __NR_bind               150
-#define __NR_connect            151
-#define __NR_listen             152
-#define __NR_accept             153
-#define __NR_getsockname        154
-#define __NR_getpeername        155
-#define __NR_socketpair         156
-#define __NR_send               157
-#define __NR_recv               158
-#define __NR_sendto             159
-#define __NR_recvfrom           160
-#define __NR_shutdown           161
-#define __NR_setsockopt         162
-#define __NR_getsockopt         163
-#define __NR_sendmsg            164
-#define __NR_recvmsg            165
-#define __NR_truncate64         166
-#define __NR_ftruncate64        167
-#define __NR_stat64             168
-#define __NR_lstat64            169
-#define __NR_fstat64            170
-#define __NR_pivot_root         171
-#define __NR_mincore            172
-#define __NR_madvise            173
-#define __NR_getdents64         174
-#define __NR_fcntl64            175
-#define __NR_gettid             176
-#define __NR_readahead          177
-#define __NR_setxattr           178
-#define __NR_lsetxattr          179
-#define __NR_fsetxattr          180
-#define __NR_getxattr           181
-#define __NR_lgetxattr          182
-#define __NR_fgetxattr          183
-#define __NR_listxattr          184
-#define __NR_llistxattr         185
-#define __NR_flistxattr         186
-#define __NR_removexattr        187
-#define __NR_lremovexattr       188
-#define __NR_fremovexattr       189
-#define __NR_tkill              190
-#define __NR_sendfile64         191
-#define __NR_futex              192
-#define __NR_sched_setaffinity  193
-#define __NR_sched_getaffinity  194
-#define __NR_capget             195
-#define __NR_capset             196
-#define __NR_io_setup           197
-#define __NR_io_destroy         198
-#define __NR_io_getevents       199
-#define __NR_io_submit          200
-#define __NR_io_cancel          201
-#define __NR_fadvise64          202
-#define __NR_exit_group         203
-#define __NR_lookup_dcookie     204
-#define __NR_epoll_create       205
-#define __NR_epoll_ctl          206
-#define __NR_epoll_wait         207
-#define __NR_remap_file_pages   208
-#define __NR_set_tid_address    209
-#define __NR_timer_create       210
-#define __NR_timer_settime      211
-#define __NR_timer_gettime      212
-#define __NR_timer_getoverrun   213
-#define __NR_timer_delete       214
-#define __NR_clock_settime      215
-#define __NR_clock_gettime      216
-#define __NR_clock_getres       217
-#define __NR_clock_nanosleep    218
-#define __NR_statfs64           219
-#define __NR_fstatfs64          220
-#define __NR_tgkill             221
-/* 222 reserved for tux */
-#define __NR_utimes             223
-#define __NR_fadvise64_64       224
-#define __NR_cacheflush         225
-#define __NR_vserver            226
-#define __NR_mq_open            227
-#define __NR_mq_unlink          228
-#define __NR_mq_timedsend       229
-#define __NR_mq_timedreceive    230
-#define __NR_mq_notify          231
-#define __NR_mq_getsetattr      232
-#define __NR_kexec_load         233
-#define __NR_waitid             234
-#define __NR_add_key            235
-#define __NR_request_key        236
-#define __NR_keyctl             237
-#define __NR_ioprio_set         238
-#define __NR_ioprio_get         239
-#define __NR_inotify_init       240
-#define __NR_inotify_add_watch  241
-#define __NR_inotify_rm_watch   242
-#define __NR_openat             243
-#define __NR_mkdirat            244
-#define __NR_mknodat            245
-#define __NR_fchownat           246
-#define __NR_futimesat          247
-#define __NR_fstatat64          248
-#define __NR_unlinkat           249
-#define __NR_renameat           250
-#define __NR_linkat             251
-#define __NR_symlinkat          252
-#define __NR_readlinkat         253
-#define __NR_fchmodat           254
-#define __NR_faccessat          255
-#define __NR_pselect6           256
-#define __NR_ppoll              257
-#define __NR_unshare            258
-#define __NR_set_robust_list    259
-#define __NR_get_robust_list    260
-#define __NR_splice             261
-#define __NR_sync_file_range    262
-#define __NR_tee                263
-#define __NR_vmsplice           264
-#define __NR_epoll_pwait        265
-#define __NR_msgget             266
-#define __NR_msgsnd             267
-#define __NR_msgrcv             268
-#define __NR_msgctl             269
-#define __NR_semget             270
-#define __NR_semop              271
-#define __NR_semctl             272
-#define __NR_semtimedop         273
-#define __NR_shmat              274
-#define __NR_shmget             275
-#define __NR_shmdt              276
-#define __NR_shmctl             277
-#define __NR_utimensat          278
-#define __NR_signalfd           279
-/* 280 was __NR_timerfd */
-#define __NR_eventfd            281
-/* 282 was half-implemented __NR_recvmmsg */
-#define __NR_setns              283
-#define __NR_pread64            284
-#define __NR_pwrite64           285
-#define __NR_timerfd_create     286
-#define __NR_fallocate          287
-#define __NR_timerfd_settime    288
-#define __NR_timerfd_gettime    289
-#define __NR_signalfd4          290
-#define __NR_eventfd2           291
-#define __NR_epoll_create1      292
-#define __NR_dup3               293
-#define __NR_pipe2              294
-#define __NR_inotify_init1      295
-#define __NR_preadv             296
-#define __NR_pwritev            297
-#define __NR_rt_tgsigqueueinfo  298
-#define __NR_perf_event_open    299
-#define __NR_recvmmsg           300
-#define __NR_fanotify_init      301
-#define __NR_fanotify_mark      302
-#define __NR_prlimit64          303
-#define __NR_name_to_handle_at  304
-#define __NR_open_by_handle_at  305
-#define __NR_clock_adjtime      306
-#define __NR_syncfs             307
-#define __NR_sendmmsg           308
-#define __NR_process_vm_readv   309
-#define __NR_process_vm_writev  310
-#define __NR_kcmp               311
-#define __NR_finit_module       312
-#define __NR_sched_setattr      313
-#define __NR_sched_getattr      314
-#define __NR_renameat2          315
-#define __NR_seccomp            316
-#define __NR_getrandom          317
-#define __NR_memfd_create       318
-#define __NR_bpf                319
-#define __NR_execveat           320
-#define __NR_accept4            321
-#define __NR_userfaultfd        322
-#define __NR_membarrier         323
-#define __NR_mlock2             324
-#define __NR_copy_file_range    325
-#define __NR_preadv2            326
-#define __NR_pwritev2           327
-#define __NR_pkey_mprotect      328
-#define __NR_pkey_alloc         329
-#define __NR_pkey_free          330
-
-#endif /* _UAPI__ASM_AVR32_UNISTD_H */
diff --git a/arch/avr32/kernel/.gitignore b/arch/avr32/kernel/.gitignore
deleted file mode 100644 (file)
index c5f676c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-vmlinux.lds
diff --git a/arch/avr32/kernel/Makefile b/arch/avr32/kernel/Makefile
deleted file mode 100644 (file)
index 119a2e4..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#
-# Makefile for the Linux/AVR32 kernel.
-#
-
-extra-y                                := head.o vmlinux.lds
-
-obj-$(CONFIG_SUBARCH_AVR32B)   += entry-avr32b.o
-obj-y                          += syscall_table.o syscall-stubs.o irq.o
-obj-y                          += setup.o traps.o ocd.o ptrace.o
-obj-y                          += signal.o process.o time.o
-obj-y                          += switch_to.o cpu.o
-obj-$(CONFIG_MODULES)          += module.o avr32_ksyms.o
-obj-$(CONFIG_KPROBES)          += kprobes.o
-obj-$(CONFIG_STACKTRACE)       += stacktrace.o
-obj-$(CONFIG_NMI_DEBUGGING)    += nmi_debug.o
diff --git a/arch/avr32/kernel/asm-offsets.c b/arch/avr32/kernel/asm-offsets.c
deleted file mode 100644 (file)
index 2c9764f..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Generate definitions needed by assembly language modules.
- * This code generates raw asm output which is post-processed
- * to extract and format the required data.
- */
-
-#include <linux/mm.h>
-#include <linux/sched.h>
-#include <linux/thread_info.h>
-#include <linux/kbuild.h>
-
-void foo(void)
-{
-       OFFSET(TI_task, thread_info, task);
-       OFFSET(TI_flags, thread_info, flags);
-       OFFSET(TI_cpu, thread_info, cpu);
-       OFFSET(TI_preempt_count, thread_info, preempt_count);
-       OFFSET(TI_rar_saved, thread_info, rar_saved);
-       OFFSET(TI_rsr_saved, thread_info, rsr_saved);
-       BLANK();
-       OFFSET(TSK_active_mm, task_struct, active_mm);
-       BLANK();
-       OFFSET(MM_pgd, mm_struct, pgd);
-}
diff --git a/arch/avr32/kernel/avr32_ksyms.c b/arch/avr32/kernel/avr32_ksyms.c
deleted file mode 100644 (file)
index 0d05fd0..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Export AVR32-specific functions for loadable modules.
- *
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/delay.h>
-#include <linux/io.h>
-#include <linux/module.h>
-
-#include <asm/checksum.h>
-#include <linux/uaccess.h>
-
-/*
- * GCC functions
- */
-extern unsigned long long __avr32_lsl64(unsigned long long u, unsigned long b);
-extern unsigned long long __avr32_lsr64(unsigned long long u, unsigned long b);
-extern unsigned long long __avr32_asr64(unsigned long long u, unsigned long b);
-EXPORT_SYMBOL(__avr32_lsl64);
-EXPORT_SYMBOL(__avr32_lsr64);
-EXPORT_SYMBOL(__avr32_asr64);
-
-/*
- * String functions
- */
-EXPORT_SYMBOL(memset);
-EXPORT_SYMBOL(memcpy);
-
-EXPORT_SYMBOL(clear_page);
-EXPORT_SYMBOL(copy_page);
-
-/*
- * Userspace access stuff.
- */
-EXPORT_SYMBOL(___copy_from_user);
-EXPORT_SYMBOL(copy_to_user);
-EXPORT_SYMBOL(__copy_user);
-EXPORT_SYMBOL(strncpy_from_user);
-EXPORT_SYMBOL(__strncpy_from_user);
-EXPORT_SYMBOL(clear_user);
-EXPORT_SYMBOL(__clear_user);
-EXPORT_SYMBOL(strnlen_user);
-
-EXPORT_SYMBOL(csum_partial);
-EXPORT_SYMBOL(csum_partial_copy_generic);
-
-/* Delay loops (lib/delay.S) */
-EXPORT_SYMBOL(__ndelay);
-EXPORT_SYMBOL(__udelay);
-EXPORT_SYMBOL(__const_udelay);
-
-/* Bit operations (lib/findbit.S) */
-EXPORT_SYMBOL(find_first_zero_bit);
-EXPORT_SYMBOL(find_next_zero_bit);
-EXPORT_SYMBOL(find_first_bit);
-EXPORT_SYMBOL(find_next_bit);
-EXPORT_SYMBOL(find_next_bit_le);
-EXPORT_SYMBOL(find_next_zero_bit_le);
-
-/* I/O primitives (lib/io-*.S) */
-EXPORT_SYMBOL(__raw_readsb);
-EXPORT_SYMBOL(__raw_readsw);
-EXPORT_SYMBOL(__raw_readsl);
-EXPORT_SYMBOL(__raw_writesb);
-EXPORT_SYMBOL(__raw_writesw);
-EXPORT_SYMBOL(__raw_writesl);
diff --git a/arch/avr32/kernel/cpu.c b/arch/avr32/kernel/cpu.c
deleted file mode 100644 (file)
index 0341ae2..0000000
+++ /dev/null
@@ -1,410 +0,0 @@
-/*
- * Copyright (C) 2005-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/init.h>
-#include <linux/device.h>
-#include <linux/seq_file.h>
-#include <linux/cpu.h>
-#include <linux/module.h>
-#include <linux/percpu.h>
-#include <linux/param.h>
-#include <linux/errno.h>
-#include <linux/clk.h>
-
-#include <asm/setup.h>
-#include <asm/sysreg.h>
-
-static DEFINE_PER_CPU(struct cpu, cpu_devices);
-
-#ifdef CONFIG_PERFORMANCE_COUNTERS
-
-/*
- * XXX: If/when a SMP-capable implementation of AVR32 will ever be
- * made, we must make sure that the code executes on the correct CPU.
- */
-static ssize_t show_pc0event(struct device *dev,
-                       struct device_attribute *attr, char *buf)
-{
-       unsigned long pccr;
-
-       pccr = sysreg_read(PCCR);
-       return sprintf(buf, "0x%lx\n", (pccr >> 12) & 0x3f);
-}
-static ssize_t store_pc0event(struct device *dev,
-                       struct device_attribute *attr, const char *buf,
-                             size_t count)
-{
-       unsigned long val;
-       int ret;
-
-       ret = kstrtoul(buf, 0, &val);
-       if (ret)
-               return ret;
-       if (val > 0x3f)
-               return -EINVAL;
-       val = (val << 12) | (sysreg_read(PCCR) & 0xfffc0fff);
-       sysreg_write(PCCR, val);
-       return count;
-}
-static ssize_t show_pc0count(struct device *dev,
-                       struct device_attribute *attr, char *buf)
-{
-       unsigned long pcnt0;
-
-       pcnt0 = sysreg_read(PCNT0);
-       return sprintf(buf, "%lu\n", pcnt0);
-}
-static ssize_t store_pc0count(struct device *dev,
-                               struct device_attribute *attr,
-                               const char *buf, size_t count)
-{
-       unsigned long val;
-       int ret;
-
-       ret = kstrtoul(buf, 0, &val);
-       if (ret)
-               return ret;
-       sysreg_write(PCNT0, val);
-
-       return count;
-}
-
-static ssize_t show_pc1event(struct device *dev,
-                               struct device_attribute *attr, char *buf)
-{
-       unsigned long pccr;
-
-       pccr = sysreg_read(PCCR);
-       return sprintf(buf, "0x%lx\n", (pccr >> 18) & 0x3f);
-}
-static ssize_t store_pc1event(struct device *dev,
-                             struct device_attribute *attr, const char *buf,
-                             size_t count)
-{
-       unsigned long val;
-       int ret;
-
-       ret = kstrtoul(buf, 0, &val);
-       if (ret)
-               return ret;
-       if (val > 0x3f)
-               return -EINVAL;
-       val = (val << 18) | (sysreg_read(PCCR) & 0xff03ffff);
-       sysreg_write(PCCR, val);
-       return count;
-}
-static ssize_t show_pc1count(struct device *dev,
-                               struct device_attribute *attr, char *buf)
-{
-       unsigned long pcnt1;
-
-       pcnt1 = sysreg_read(PCNT1);
-       return sprintf(buf, "%lu\n", pcnt1);
-}
-static ssize_t store_pc1count(struct device *dev,
-                               struct device_attribute *attr, const char *buf,
-                             size_t count)
-{
-       unsigned long val;
-       int ret;
-
-       ret = kstrtoul(buf, 0, &val);
-       if (ret)
-               return ret;
-       sysreg_write(PCNT1, val);
-
-       return count;
-}
-
-static ssize_t show_pccycles(struct device *dev,
-                               struct device_attribute *attr, char *buf)
-{
-       unsigned long pccnt;
-
-       pccnt = sysreg_read(PCCNT);
-       return sprintf(buf, "%lu\n", pccnt);
-}
-static ssize_t store_pccycles(struct device *dev,
-                               struct device_attribute *attr, const char *buf,
-                             size_t count)
-{
-       unsigned long val;
-       int ret;
-
-       ret = kstrtoul(buf, 0, &val);
-       if (ret)
-               return ret;
-       sysreg_write(PCCNT, val);
-
-       return count;
-}
-
-static ssize_t show_pcenable(struct device *dev,
-                       struct device_attribute *attr, char *buf)
-{
-       unsigned long pccr;
-
-       pccr = sysreg_read(PCCR);
-       return sprintf(buf, "%c\n", (pccr & 1)?'1':'0');
-}
-static ssize_t store_pcenable(struct device *dev,
-                             struct device_attribute *attr, const char *buf,
-                             size_t count)
-{
-       unsigned long pccr, val;
-       int ret;
-
-       ret = kstrtoul(buf, 0, &val);
-       if (ret)
-               return ret;
-       if (val)
-               val = 1;
-
-       pccr = sysreg_read(PCCR);
-       pccr = (pccr & ~1UL) | val;
-       sysreg_write(PCCR, pccr);
-
-       return count;
-}
-
-static DEVICE_ATTR(pc0event, 0600, show_pc0event, store_pc0event);
-static DEVICE_ATTR(pc0count, 0600, show_pc0count, store_pc0count);
-static DEVICE_ATTR(pc1event, 0600, show_pc1event, store_pc1event);
-static DEVICE_ATTR(pc1count, 0600, show_pc1count, store_pc1count);
-static DEVICE_ATTR(pccycles, 0600, show_pccycles, store_pccycles);
-static DEVICE_ATTR(pcenable, 0600, show_pcenable, store_pcenable);
-
-#endif /* CONFIG_PERFORMANCE_COUNTERS */
-
-static int __init topology_init(void)
-{
-       int cpu;
-
-       for_each_possible_cpu(cpu) {
-               struct cpu *c = &per_cpu(cpu_devices, cpu);
-
-               register_cpu(c, cpu);
-
-#ifdef CONFIG_PERFORMANCE_COUNTERS
-               device_create_file(&c->dev, &dev_attr_pc0event);
-               device_create_file(&c->dev, &dev_attr_pc0count);
-               device_create_file(&c->dev, &dev_attr_pc1event);
-               device_create_file(&c->dev, &dev_attr_pc1count);
-               device_create_file(&c->dev, &dev_attr_pccycles);
-               device_create_file(&c->dev, &dev_attr_pcenable);
-#endif
-       }
-
-       return 0;
-}
-
-subsys_initcall(topology_init);
-
-struct chip_id_map {
-       u16     mid;
-       u16     pn;
-       const char *name;
-};
-
-static const struct chip_id_map chip_names[] = {
-       { .mid = 0x1f, .pn = 0x1e82, .name = "AT32AP700x" },
-};
-#define NR_CHIP_NAMES ARRAY_SIZE(chip_names)
-
-static const char *cpu_names[] = {
-       "Morgan",
-       "AP7",
-};
-#define NR_CPU_NAMES ARRAY_SIZE(cpu_names)
-
-static const char *arch_names[] = {
-       "AVR32A",
-       "AVR32B",
-};
-#define NR_ARCH_NAMES ARRAY_SIZE(arch_names)
-
-static const char *mmu_types[] = {
-       "No MMU",
-       "ITLB and DTLB",
-       "Shared TLB",
-       "MPU"
-};
-
-static const char *cpu_feature_flags[] = {
-       "rmw", "dsp", "simd", "ocd", "perfctr", "java", "fpu",
-};
-
-static const char *get_chip_name(struct avr32_cpuinfo *cpu)
-{
-       unsigned int i;
-       unsigned int mid = avr32_get_manufacturer_id(cpu);
-       unsigned int pn = avr32_get_product_number(cpu);
-
-       for (i = 0; i < NR_CHIP_NAMES; i++) {
-               if (chip_names[i].mid == mid && chip_names[i].pn == pn)
-                       return chip_names[i].name;
-       }
-
-       return "(unknown)";
-}
-
-void __init setup_processor(void)
-{
-       unsigned long config0, config1;
-       unsigned long features;
-       unsigned cpu_id, cpu_rev, arch_id, arch_rev, mmu_type;
-       unsigned device_id;
-       unsigned tmp;
-       unsigned i;
-
-       config0 = sysreg_read(CONFIG0);
-       config1 = sysreg_read(CONFIG1);
-       cpu_id = SYSREG_BFEXT(PROCESSORID, config0);
-       cpu_rev = SYSREG_BFEXT(PROCESSORREVISION, config0);
-       arch_id = SYSREG_BFEXT(AT, config0);
-       arch_rev = SYSREG_BFEXT(AR, config0);
-       mmu_type = SYSREG_BFEXT(MMUT, config0);
-
-       device_id = ocd_read(DID);
-
-       boot_cpu_data.arch_type = arch_id;
-       boot_cpu_data.cpu_type = cpu_id;
-       boot_cpu_data.arch_revision = arch_rev;
-       boot_cpu_data.cpu_revision = cpu_rev;
-       boot_cpu_data.tlb_config = mmu_type;
-       boot_cpu_data.device_id = device_id;
-
-       tmp = SYSREG_BFEXT(ILSZ, config1);
-       if (tmp) {
-               boot_cpu_data.icache.ways = 1 << SYSREG_BFEXT(IASS, config1);
-               boot_cpu_data.icache.sets = 1 << SYSREG_BFEXT(ISET, config1);
-               boot_cpu_data.icache.linesz = 1 << (tmp + 1);
-       }
-       tmp = SYSREG_BFEXT(DLSZ, config1);
-       if (tmp) {
-               boot_cpu_data.dcache.ways = 1 << SYSREG_BFEXT(DASS, config1);
-               boot_cpu_data.dcache.sets = 1 << SYSREG_BFEXT(DSET, config1);
-               boot_cpu_data.dcache.linesz = 1 << (tmp + 1);
-       }
-
-       if ((cpu_id >= NR_CPU_NAMES) || (arch_id >= NR_ARCH_NAMES)) {
-               printk ("Unknown CPU configuration (ID %02x, arch %02x), "
-                       "continuing anyway...\n",
-                       cpu_id, arch_id);
-               return;
-       }
-
-       printk ("CPU: %s chip revision %c\n", get_chip_name(&boot_cpu_data),
-                       avr32_get_chip_revision(&boot_cpu_data) + 'A');
-       printk ("CPU: %s [%02x] core revision %d (%s arch revision %d)\n",
-               cpu_names[cpu_id], cpu_id, cpu_rev,
-               arch_names[arch_id], arch_rev);
-       printk ("CPU: MMU configuration: %s\n", mmu_types[mmu_type]);
-
-       printk ("CPU: features:");
-       features = 0;
-       if (config0 & SYSREG_BIT(CONFIG0_R))
-               features |= AVR32_FEATURE_RMW;
-       if (config0 & SYSREG_BIT(CONFIG0_D))
-               features |= AVR32_FEATURE_DSP;
-       if (config0 & SYSREG_BIT(CONFIG0_S))
-               features |= AVR32_FEATURE_SIMD;
-       if (config0 & SYSREG_BIT(CONFIG0_O))
-               features |= AVR32_FEATURE_OCD;
-       if (config0 & SYSREG_BIT(CONFIG0_P))
-               features |= AVR32_FEATURE_PCTR;
-       if (config0 & SYSREG_BIT(CONFIG0_J))
-               features |= AVR32_FEATURE_JAVA;
-       if (config0 & SYSREG_BIT(CONFIG0_F))
-               features |= AVR32_FEATURE_FPU;
-
-       for (i = 0; i < ARRAY_SIZE(cpu_feature_flags); i++)
-               if (features & (1 << i))
-                       printk(" %s", cpu_feature_flags[i]);
-
-       printk("\n");
-       boot_cpu_data.features = features;
-}
-
-#ifdef CONFIG_PROC_FS
-static int c_show(struct seq_file *m, void *v)
-{
-       unsigned int icache_size, dcache_size;
-       unsigned int cpu = smp_processor_id();
-       unsigned int freq;
-       unsigned int i;
-
-       icache_size = boot_cpu_data.icache.ways *
-               boot_cpu_data.icache.sets *
-               boot_cpu_data.icache.linesz;
-       dcache_size = boot_cpu_data.dcache.ways *
-               boot_cpu_data.dcache.sets *
-               boot_cpu_data.dcache.linesz;
-
-       seq_printf(m, "processor\t: %d\n", cpu);
-
-       seq_printf(m, "chip type\t: %s revision %c\n",
-                       get_chip_name(&boot_cpu_data),
-                       avr32_get_chip_revision(&boot_cpu_data) + 'A');
-       if (boot_cpu_data.arch_type < NR_ARCH_NAMES)
-               seq_printf(m, "cpu arch\t: %s revision %d\n",
-                          arch_names[boot_cpu_data.arch_type],
-                          boot_cpu_data.arch_revision);
-       if (boot_cpu_data.cpu_type < NR_CPU_NAMES)
-               seq_printf(m, "cpu core\t: %s revision %d\n",
-                          cpu_names[boot_cpu_data.cpu_type],
-                          boot_cpu_data.cpu_revision);
-
-       freq = (clk_get_rate(boot_cpu_data.clk) + 500) / 1000;
-       seq_printf(m, "cpu MHz\t\t: %u.%03u\n", freq / 1000, freq % 1000);
-
-       seq_printf(m, "i-cache\t\t: %dK (%u ways x %u sets x %u)\n",
-                  icache_size >> 10,
-                  boot_cpu_data.icache.ways,
-                  boot_cpu_data.icache.sets,
-                  boot_cpu_data.icache.linesz);
-       seq_printf(m, "d-cache\t\t: %dK (%u ways x %u sets x %u)\n",
-                  dcache_size >> 10,
-                  boot_cpu_data.dcache.ways,
-                  boot_cpu_data.dcache.sets,
-                  boot_cpu_data.dcache.linesz);
-
-       seq_printf(m, "features\t:");
-       for (i = 0; i < ARRAY_SIZE(cpu_feature_flags); i++)
-               if (boot_cpu_data.features & (1 << i))
-                       seq_printf(m, " %s", cpu_feature_flags[i]);
-
-       seq_printf(m, "\nbogomips\t: %lu.%02lu\n",
-                  boot_cpu_data.loops_per_jiffy / (500000/HZ),
-                  (boot_cpu_data.loops_per_jiffy / (5000/HZ)) % 100);
-
-       return 0;
-}
-
-static void *c_start(struct seq_file *m, loff_t *pos)
-{
-       return *pos < 1 ? (void *)1 : NULL;
-}
-
-static void *c_next(struct seq_file *m, void *v, loff_t *pos)
-{
-       ++*pos;
-       return NULL;
-}
-
-static void c_stop(struct seq_file *m, void *v)
-{
-
-}
-
-const struct seq_operations cpuinfo_op = {
-       .start  = c_start,
-       .next   = c_next,
-       .stop   = c_stop,
-       .show   = c_show
-};
-#endif /* CONFIG_PROC_FS */
diff --git a/arch/avr32/kernel/entry-avr32b.S b/arch/avr32/kernel/entry-avr32b.S
deleted file mode 100644 (file)
index 7301f48..0000000
+++ /dev/null
@@ -1,877 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-/*
- * This file contains the low-level entry-points into the kernel, that is,
- * exception handlers, debug trap handlers, interrupt handlers and the
- * system call handler.
- */
-#include <linux/errno.h>
-
-#include <asm/asm.h>
-#include <asm/hardirq.h>
-#include <asm/irq.h>
-#include <asm/ocd.h>
-#include <asm/page.h>
-#include <asm/pgtable.h>
-#include <asm/ptrace.h>
-#include <asm/sysreg.h>
-#include <asm/thread_info.h>
-#include <asm/unistd.h>
-
-#ifdef CONFIG_PREEMPT
-# define preempt_stop          mask_interrupts
-#else
-# define preempt_stop
-# define fault_resume_kernel   fault_restore_all
-#endif
-
-#define __MASK(x)      ((1 << (x)) - 1)
-#define IRQ_MASK       ((__MASK(SOFTIRQ_BITS) << SOFTIRQ_SHIFT) | \
-                        (__MASK(HARDIRQ_BITS) << HARDIRQ_SHIFT))
-
-       .section .ex.text,"ax",@progbits
-       .align  2
-exception_vectors:
-       bral    handle_critical
-       .align  2
-       bral    handle_critical
-       .align  2
-       bral    do_bus_error_write
-       .align  2
-       bral    do_bus_error_read
-       .align  2
-       bral    do_nmi_ll
-       .align  2
-       bral    handle_address_fault
-       .align  2
-       bral    handle_protection_fault
-       .align  2
-       bral    handle_debug
-       .align  2
-       bral    do_illegal_opcode_ll
-       .align  2
-       bral    do_illegal_opcode_ll
-       .align  2
-       bral    do_illegal_opcode_ll
-       .align  2
-       bral    do_fpe_ll
-       .align  2
-       bral    do_illegal_opcode_ll
-       .align  2
-       bral    handle_address_fault
-       .align  2
-       bral    handle_address_fault
-       .align  2
-       bral    handle_protection_fault
-       .align  2
-       bral    handle_protection_fault
-       .align  2
-       bral    do_dtlb_modified
-
-#define        tlbmiss_save    pushm   r0-r3
-#define tlbmiss_restore        popm    r0-r3
-
-       .org    0x50
-       .global itlb_miss
-itlb_miss:
-       tlbmiss_save
-       rjmp    tlb_miss_common
-
-       .org    0x60
-dtlb_miss_read:
-       tlbmiss_save
-       rjmp    tlb_miss_common
-
-       .org    0x70
-dtlb_miss_write:
-       tlbmiss_save
-
-       .global tlb_miss_common
-       .align  2
-tlb_miss_common:
-       mfsr    r0, SYSREG_TLBEAR
-       mfsr    r1, SYSREG_PTBR
-
-       /*
-        * First level lookup: The PGD contains virtual pointers to
-        * the second-level page tables, but they may be NULL if not
-        * present.
-        */
-pgtbl_lookup:
-       lsr     r2, r0, PGDIR_SHIFT
-       ld.w    r3, r1[r2 << 2]
-       bfextu  r1, r0, PAGE_SHIFT, PGDIR_SHIFT - PAGE_SHIFT
-       cp.w    r3, 0
-       breq    page_table_not_present
-
-       /* Second level lookup */
-       ld.w    r2, r3[r1 << 2]
-       mfsr    r0, SYSREG_TLBARLO
-       bld     r2, _PAGE_BIT_PRESENT
-       brcc    page_not_present
-
-       /* Mark the page as accessed */
-       sbr     r2, _PAGE_BIT_ACCESSED
-       st.w    r3[r1 << 2], r2
-
-       /* Drop software flags */
-       andl    r2, _PAGE_FLAGS_HARDWARE_MASK & 0xffff
-       mtsr    SYSREG_TLBELO, r2
-
-       /* Figure out which entry we want to replace */
-       mfsr    r1, SYSREG_MMUCR
-       clz     r2, r0
-       brcc    1f
-       mov     r3, -1                  /* All entries have been accessed, */
-       mov     r2, 0                   /* so start at 0 */
-       mtsr    SYSREG_TLBARLO, r3      /* and reset TLBAR */
-
-1:     bfins   r1, r2, SYSREG_DRP_OFFSET, SYSREG_DRP_SIZE
-       mtsr    SYSREG_MMUCR, r1
-       tlbw
-
-       tlbmiss_restore
-       rete
-
-       /* The slow path of the TLB miss handler */
-       .align  2
-page_table_not_present:
-       /* Do we need to synchronize with swapper_pg_dir? */
-       bld     r0, 31
-       brcs    sync_with_swapper_pg_dir
-
-page_not_present:
-       tlbmiss_restore
-       sub     sp, 4
-       stmts   --sp, r0-lr
-       call    save_full_context_ex
-       mfsr    r12, SYSREG_ECR
-       mov     r11, sp
-       call    do_page_fault
-       rjmp    ret_from_exception
-
-       .align  2
-sync_with_swapper_pg_dir:
-       /*
-        * If swapper_pg_dir contains a non-NULL second-level page
-        * table pointer, copy it into the current PGD. If not, we
-        * must handle it as a full-blown page fault.
-        *
-        * Jumping back to pgtbl_lookup causes an unnecessary lookup,
-        * but it is guaranteed to be a cache hit, it won't happen
-        * very often, and we absolutely do not want to sacrifice any
-        * performance in the fast path in order to improve this.
-        */
-       mov     r1, lo(swapper_pg_dir)
-       orh     r1, hi(swapper_pg_dir)
-       ld.w    r3, r1[r2 << 2]
-       cp.w    r3, 0
-       breq    page_not_present
-       mfsr    r1, SYSREG_PTBR
-       st.w    r1[r2 << 2], r3
-       rjmp    pgtbl_lookup
-
-       /*
-        * We currently have two bytes left at this point until we
-        * crash into the system call handler...
-        *
-        * Don't worry, the assembler will let us know.
-        */
-
-
-       /* ---                    System Call                    --- */
-
-       .org    0x100
-system_call:
-#ifdef CONFIG_PREEMPT
-       mask_interrupts
-#endif
-       pushm   r12             /* r12_orig */
-       stmts   --sp, r0-lr
-
-       mfsr    r0, SYSREG_RAR_SUP
-       mfsr    r1, SYSREG_RSR_SUP
-#ifdef CONFIG_PREEMPT
-       unmask_interrupts
-#endif
-       zero_fp
-       stm     --sp, r0-r1
-
-       /* check for syscall tracing */
-       get_thread_info r0
-       ld.w    r1, r0[TI_flags]
-       bld     r1, TIF_SYSCALL_TRACE
-       brcs    syscall_trace_enter
-
-syscall_trace_cont:
-       cp.w    r8, NR_syscalls
-       brhs    syscall_badsys
-
-       lddpc   lr, syscall_table_addr
-       ld.w    lr, lr[r8 << 2]
-       mov     r8, r5          /* 5th argument (6th is pushed by stub) */
-       icall   lr
-
-       .global syscall_return
-syscall_return:
-       get_thread_info r0
-       mask_interrupts         /* make sure we don't miss an interrupt
-                                  setting need_resched or sigpending
-                                  between sampling and the rets */
-
-       /* Store the return value so that the correct value is loaded below */
-       stdsp   sp[REG_R12], r12
-
-       ld.w    r1, r0[TI_flags]
-       andl    r1, _TIF_ALLWORK_MASK, COH
-       brne    syscall_exit_work
-
-syscall_exit_cont:
-       popm    r8-r9
-       mtsr    SYSREG_RAR_SUP, r8
-       mtsr    SYSREG_RSR_SUP, r9
-       ldmts   sp++, r0-lr
-       sub     sp, -4          /* r12_orig */
-       rets
-
-       .align  2
-syscall_table_addr:
-       .long   sys_call_table
-
-syscall_badsys:
-       mov     r12, -ENOSYS
-       rjmp    syscall_return
-
-       .global ret_from_fork
-ret_from_fork:
-       call   schedule_tail
-       mov     r12, 0
-       rjmp    syscall_return
-
-       .global ret_from_kernel_thread
-ret_from_kernel_thread:
-       call   schedule_tail
-       mov     r12, r0
-       mov     lr, r2  /* syscall_return */
-       mov     pc, r1
-
-syscall_trace_enter:
-       pushm   r8-r12
-       call    syscall_trace
-       popm    r8-r12
-       rjmp    syscall_trace_cont
-
-syscall_exit_work:
-       bld     r1, TIF_SYSCALL_TRACE
-       brcc    1f
-       unmask_interrupts
-       call    syscall_trace
-       mask_interrupts
-       ld.w    r1, r0[TI_flags]
-
-1:     bld     r1, TIF_NEED_RESCHED
-       brcc    2f
-       unmask_interrupts
-       call    schedule
-       mask_interrupts
-       ld.w    r1, r0[TI_flags]
-       rjmp    1b
-
-2:     mov     r2, _TIF_SIGPENDING | _TIF_NOTIFY_RESUME
-       tst     r1, r2
-       breq    3f
-       unmask_interrupts
-       mov     r12, sp
-       mov     r11, r0
-       call    do_notify_resume
-       mask_interrupts
-       ld.w    r1, r0[TI_flags]
-       rjmp    1b
-
-3:     bld     r1, TIF_BREAKPOINT
-       brcc    syscall_exit_cont
-       rjmp    enter_monitor_mode
-
-       /* This function expects to find offending PC in SYSREG_RAR_EX */
-       .type   save_full_context_ex, @function
-       .align  2
-save_full_context_ex:
-       mfsr    r11, SYSREG_RAR_EX
-       sub     r9, pc, . - debug_trampoline
-       mfsr    r8, SYSREG_RSR_EX
-       cp.w    r9, r11
-       breq    3f
-       mov     r12, r8
-       andh    r8, (MODE_MASK >> 16), COH
-       brne    2f
-
-1:     pushm   r11, r12        /* PC and SR */
-       unmask_exceptions
-       ret     r12
-
-2:     sub     r10, sp, -(FRAME_SIZE_FULL - REG_LR)
-       stdsp   sp[4], r10      /* replace saved SP */
-       rjmp    1b
-
-       /*
-        * The debug handler set up a trampoline to make us
-        * automatically enter monitor mode upon return, but since
-        * we're saving the full context, we must assume that the
-        * exception handler might want to alter the return address
-        * and/or status register. So we need to restore the original
-        * context and enter monitor mode manually after the exception
-        * has been handled.
-        */
-3:     get_thread_info r8
-       ld.w    r11, r8[TI_rar_saved]
-       ld.w    r12, r8[TI_rsr_saved]
-       rjmp    1b
-       .size   save_full_context_ex, . - save_full_context_ex
-
-       /* Low-level exception handlers */
-handle_critical:
-       /*
-        * AT32AP700x errata:
-        *
-        * After a Java stack overflow or underflow trap, any CPU
-        * memory access may cause erratic behavior. This will happen
-        * when the four least significant bits of the JOSP system
-        * register contains any value between 9 and 15 (inclusive).
-        *
-        * Possible workarounds:
-        *   - Don't use the Java Extension Module
-        *   - Ensure that the stack overflow and underflow trap
-        *     handlers do not do any memory access or trigger any
-        *     exceptions before the overflow/underflow condition is
-        *     cleared (by incrementing or decrementing the JOSP)
-        *   - Make sure that JOSP does not contain any problematic
-        *     value before doing any exception or interrupt
-        *     processing.
-        *   - Set up a critical exception handler which writes a
-        *     known-to-be-safe value, e.g. 4, to JOSP before doing
-        *     any further processing.
-        *
-        * We'll use the last workaround for now since we cannot
-        * guarantee that user space processes don't use Java mode.
-        * Non-well-behaving userland will be terminated with extreme
-        * prejudice.
-        */
-#ifdef CONFIG_CPU_AT32AP700X
-       /*
-        * There's a chance we can't touch memory, so temporarily
-        * borrow PTBR to save the stack pointer while we fix things
-        * up...
-        */
-       mtsr    SYSREG_PTBR, sp
-       mov     sp, 4
-       mtsr    SYSREG_JOSP, sp
-       mfsr    sp, SYSREG_PTBR
-       sub     pc, -2
-
-       /* Push most of pt_regs on stack. We'll do the rest later */
-       sub     sp, 4
-       pushm   r0-r12
-
-       /* PTBR mirrors current_thread_info()->task->active_mm->pgd */
-       get_thread_info r0
-       ld.w    r1, r0[TI_task]
-       ld.w    r2, r1[TSK_active_mm]
-       ld.w    r3, r2[MM_pgd]
-       mtsr    SYSREG_PTBR, r3
-#else
-       sub     sp, 4
-       pushm   r0-r12
-#endif
-       sub     r0, sp, -(14 * 4)
-       mov     r1, lr
-       mfsr    r2, SYSREG_RAR_EX
-       mfsr    r3, SYSREG_RSR_EX
-       pushm   r0-r3
-
-       mfsr    r12, SYSREG_ECR
-       mov     r11, sp
-       call    do_critical_exception
-
-       /* We should never get here... */
-bad_return:
-       sub     r12, pc, (. - 1f)
-       lddpc   pc, 2f
-       .align  2
-1:     .asciz  "Return from critical exception!"
-2:     .long   panic
-
-       .align  1
-do_bus_error_write:
-       sub     sp, 4
-       stmts   --sp, r0-lr
-       call    save_full_context_ex
-       mov     r11, 1
-       rjmp    1f
-
-do_bus_error_read:
-       sub     sp, 4
-       stmts   --sp, r0-lr
-       call    save_full_context_ex
-       mov     r11, 0
-1:     mfsr    r12, SYSREG_BEAR
-       mov     r10, sp
-       call    do_bus_error
-       rjmp    ret_from_exception
-
-       .align  1
-do_nmi_ll:
-       sub     sp, 4
-       stmts   --sp, r0-lr
-       mfsr    r9, SYSREG_RSR_NMI
-       mfsr    r8, SYSREG_RAR_NMI
-       bfextu  r0, r9, MODE_SHIFT, 3
-       brne    2f
-
-1:     pushm   r8, r9  /* PC and SR */
-       mfsr    r12, SYSREG_ECR
-       mov     r11, sp
-       call    do_nmi
-       popm    r8-r9
-       mtsr    SYSREG_RAR_NMI, r8
-       tst     r0, r0
-       mtsr    SYSREG_RSR_NMI, r9
-       brne    3f
-
-       ldmts   sp++, r0-lr
-       sub     sp, -4          /* skip r12_orig */
-       rete
-
-2:     sub     r10, sp, -(FRAME_SIZE_FULL - REG_LR)
-       stdsp   sp[4], r10      /* replace saved SP */
-       rjmp    1b
-
-3:     popm    lr
-       sub     sp, -4          /* skip sp */
-       popm    r0-r12
-       sub     sp, -4          /* skip r12_orig */
-       rete
-
-handle_address_fault:
-       sub     sp, 4
-       stmts   --sp, r0-lr
-       call    save_full_context_ex
-       mfsr    r12, SYSREG_ECR
-       mov     r11, sp
-       call    do_address_exception
-       rjmp    ret_from_exception
-
-handle_protection_fault:
-       sub     sp, 4
-       stmts   --sp, r0-lr
-       call    save_full_context_ex
-       mfsr    r12, SYSREG_ECR
-       mov     r11, sp
-       call    do_page_fault
-       rjmp    ret_from_exception
-
-       .align  1
-do_illegal_opcode_ll:
-       sub     sp, 4
-       stmts   --sp, r0-lr
-       call    save_full_context_ex
-       mfsr    r12, SYSREG_ECR
-       mov     r11, sp
-       call    do_illegal_opcode
-       rjmp    ret_from_exception
-
-do_dtlb_modified:
-       pushm   r0-r3
-       mfsr    r1, SYSREG_TLBEAR
-       mfsr    r0, SYSREG_PTBR
-       lsr     r2, r1, PGDIR_SHIFT
-       ld.w    r0, r0[r2 << 2]
-       lsl     r1, (32 - PGDIR_SHIFT)
-       lsr     r1, (32 - PGDIR_SHIFT) + PAGE_SHIFT
-
-       /* Translate to virtual address in P1 */
-       andl    r0, 0xf000
-       sbr     r0, 31
-       add     r2, r0, r1 << 2
-       ld.w    r3, r2[0]
-       sbr     r3, _PAGE_BIT_DIRTY
-       mov     r0, r3
-       st.w    r2[0], r3
-
-       /* The page table is up-to-date. Update the TLB entry as well */
-       andl    r0, lo(_PAGE_FLAGS_HARDWARE_MASK)
-       mtsr    SYSREG_TLBELO, r0
-
-       /* MMUCR[DRP] is updated automatically, so let's go... */
-       tlbw
-
-       popm    r0-r3
-       rete
-
-do_fpe_ll:
-       sub     sp, 4
-       stmts   --sp, r0-lr
-       call    save_full_context_ex
-       unmask_interrupts
-       mov     r12, 26
-       mov     r11, sp
-       call    do_fpe
-       rjmp    ret_from_exception
-
-ret_from_exception:
-       mask_interrupts
-       lddsp   r4, sp[REG_SR]
-
-       andh    r4, (MODE_MASK >> 16), COH
-       brne    fault_resume_kernel
-
-       get_thread_info r0
-       ld.w    r1, r0[TI_flags]
-       andl    r1, _TIF_WORK_MASK, COH
-       brne    fault_exit_work
-
-fault_resume_user:
-       popm    r8-r9
-       mask_exceptions
-       mtsr    SYSREG_RAR_EX, r8
-       mtsr    SYSREG_RSR_EX, r9
-       ldmts   sp++, r0-lr
-       sub     sp, -4
-       rete
-
-fault_resume_kernel:
-#ifdef CONFIG_PREEMPT
-       get_thread_info r0
-       ld.w    r2, r0[TI_preempt_count]
-       cp.w    r2, 0
-       brne    1f
-       ld.w    r1, r0[TI_flags]
-       bld     r1, TIF_NEED_RESCHED
-       brcc    1f
-       lddsp   r4, sp[REG_SR]
-       bld     r4, SYSREG_GM_OFFSET
-       brcs    1f
-       call    preempt_schedule_irq
-1:
-#endif
-
-       popm    r8-r9
-       mask_exceptions
-       mfsr    r1, SYSREG_SR
-       mtsr    SYSREG_RAR_EX, r8
-       mtsr    SYSREG_RSR_EX, r9
-       popm    lr
-       sub     sp, -4          /* ignore SP */
-       popm    r0-r12
-       sub     sp, -4          /* ignore r12_orig */
-       rete
-
-irq_exit_work:
-       /* Switch to exception mode so that we can share the same code. */
-       mfsr    r8, SYSREG_SR
-       cbr     r8, SYSREG_M0_OFFSET
-       orh     r8, hi(SYSREG_BIT(M1) | SYSREG_BIT(M2))
-       mtsr    SYSREG_SR, r8
-       sub     pc, -2
-       get_thread_info r0
-       ld.w    r1, r0[TI_flags]
-
-fault_exit_work:
-       bld     r1, TIF_NEED_RESCHED
-       brcc    1f
-       unmask_interrupts
-       call    schedule
-       mask_interrupts
-       ld.w    r1, r0[TI_flags]
-       rjmp    fault_exit_work
-
-1:     mov     r2, _TIF_SIGPENDING | _TIF_NOTIFY_RESUME
-       tst     r1, r2
-       breq    2f
-       unmask_interrupts
-       mov     r12, sp
-       mov     r11, r0
-       call    do_notify_resume
-       mask_interrupts
-       ld.w    r1, r0[TI_flags]
-       rjmp    fault_exit_work
-
-2:     bld     r1, TIF_BREAKPOINT
-       brcc    fault_resume_user
-       rjmp    enter_monitor_mode
-
-       .section .kprobes.text, "ax", @progbits
-       .type   handle_debug, @function
-handle_debug:
-       sub     sp, 4           /* r12_orig */
-       stmts   --sp, r0-lr
-       mfsr    r8, SYSREG_RAR_DBG
-       mfsr    r9, SYSREG_RSR_DBG
-       unmask_exceptions
-       pushm   r8-r9
-       bfextu  r9, r9, SYSREG_MODE_OFFSET, SYSREG_MODE_SIZE
-       brne    debug_fixup_regs
-
-.Ldebug_fixup_cont:
-#ifdef CONFIG_TRACE_IRQFLAGS
-       call    trace_hardirqs_off
-#endif
-       mov     r12, sp
-       call    do_debug
-       mov     sp, r12
-
-       lddsp   r2, sp[REG_SR]
-       bfextu  r3, r2, SYSREG_MODE_OFFSET, SYSREG_MODE_SIZE
-       brne    debug_resume_kernel
-
-       get_thread_info r0
-       ld.w    r1, r0[TI_flags]
-       mov     r2, _TIF_DBGWORK_MASK
-       tst     r1, r2
-       brne    debug_exit_work
-
-       bld     r1, TIF_SINGLE_STEP
-       brcc    1f
-       mfdr    r4, OCD_DC
-       sbr     r4, OCD_DC_SS_BIT
-       mtdr    OCD_DC, r4
-
-1:     popm    r10,r11
-       mask_exceptions
-       mtsr    SYSREG_RSR_DBG, r11
-       mtsr    SYSREG_RAR_DBG, r10
-#ifdef CONFIG_TRACE_IRQFLAGS
-       call    trace_hardirqs_on
-1:
-#endif
-       ldmts   sp++, r0-lr
-       sub     sp, -4
-       retd
-       .size   handle_debug, . - handle_debug
-
-       /* Mode of the trapped context is in r9 */
-       .type   debug_fixup_regs, @function
-debug_fixup_regs:
-       mfsr    r8, SYSREG_SR
-       mov     r10, r8
-       bfins   r8, r9, SYSREG_MODE_OFFSET, SYSREG_MODE_SIZE
-       mtsr    SYSREG_SR, r8
-       sub     pc, -2
-       stdsp   sp[REG_LR], lr
-       mtsr    SYSREG_SR, r10
-       sub     pc, -2
-       sub     r8, sp, -FRAME_SIZE_FULL
-       stdsp   sp[REG_SP], r8
-       rjmp    .Ldebug_fixup_cont
-       .size   debug_fixup_regs, . - debug_fixup_regs
-
-       .type   debug_resume_kernel, @function
-debug_resume_kernel:
-       mask_exceptions
-       popm    r10, r11
-       mtsr    SYSREG_RAR_DBG, r10
-       mtsr    SYSREG_RSR_DBG, r11
-#ifdef CONFIG_TRACE_IRQFLAGS
-       bld     r11, SYSREG_GM_OFFSET
-       brcc    1f
-       call    trace_hardirqs_on
-1:
-#endif
-       mfsr    r2, SYSREG_SR
-       mov     r1, r2
-       bfins   r2, r3, SYSREG_MODE_OFFSET, SYSREG_MODE_SIZE
-       mtsr    SYSREG_SR, r2
-       sub     pc, -2
-       popm    lr
-       mtsr    SYSREG_SR, r1
-       sub     pc, -2
-       sub     sp, -4          /* skip SP */
-       popm    r0-r12
-       sub     sp, -4
-       retd
-       .size   debug_resume_kernel, . - debug_resume_kernel
-
-       .type   debug_exit_work, @function
-debug_exit_work:
-       /*
-        * We must return from Monitor Mode using a retd, and we must
-        * not schedule since that involves the D bit in SR getting
-        * cleared by something other than the debug hardware. This
-        * may cause undefined behaviour according to the Architecture
-        * manual.
-        *
-        * So we fix up the return address and status and return to a
-        * stub below in Exception mode. From there, we can follow the
-        * normal exception return path.
-        *
-        * The real return address and status registers are stored on
-        * the stack in the way the exception return path understands,
-        * so no need to fix anything up there.
-        */
-       sub     r8, pc, . - fault_exit_work
-       mtsr    SYSREG_RAR_DBG, r8
-       mov     r9, 0
-       orh     r9, hi(SR_EM | SR_GM | MODE_EXCEPTION)
-       mtsr    SYSREG_RSR_DBG, r9
-       sub     pc, -2
-       retd
-       .size   debug_exit_work, . - debug_exit_work
-
-       .set    rsr_int0,       SYSREG_RSR_INT0
-       .set    rsr_int1,       SYSREG_RSR_INT1
-       .set    rsr_int2,       SYSREG_RSR_INT2
-       .set    rsr_int3,       SYSREG_RSR_INT3
-       .set    rar_int0,       SYSREG_RAR_INT0
-       .set    rar_int1,       SYSREG_RAR_INT1
-       .set    rar_int2,       SYSREG_RAR_INT2
-       .set    rar_int3,       SYSREG_RAR_INT3
-
-       .macro  IRQ_LEVEL level
-       .type   irq_level\level, @function
-irq_level\level:
-       sub     sp, 4           /* r12_orig */
-       stmts   --sp,r0-lr
-       mfsr    r8, rar_int\level
-       mfsr    r9, rsr_int\level
-
-#ifdef CONFIG_PREEMPT
-       sub     r11, pc, (. - system_call)
-       cp.w    r11, r8
-       breq    4f
-#endif
-
-       pushm   r8-r9
-
-       mov     r11, sp
-       mov     r12, \level
-
-       call    do_IRQ
-
-       lddsp   r4, sp[REG_SR]
-       bfextu  r4, r4, SYSREG_M0_OFFSET, 3
-       cp.w    r4, MODE_SUPERVISOR >> SYSREG_M0_OFFSET
-       breq    2f
-       cp.w    r4, MODE_USER >> SYSREG_M0_OFFSET
-#ifdef CONFIG_PREEMPT
-       brne    3f
-#else
-       brne    1f
-#endif
-
-       get_thread_info r0
-       ld.w    r1, r0[TI_flags]
-       andl    r1, _TIF_WORK_MASK, COH
-       brne    irq_exit_work
-
-1:
-#ifdef CONFIG_TRACE_IRQFLAGS
-       call    trace_hardirqs_on
-#endif
-       popm    r8-r9
-       mtsr    rar_int\level, r8
-       mtsr    rsr_int\level, r9
-       ldmts   sp++,r0-lr
-       sub     sp, -4          /* ignore r12_orig */
-       rete
-
-#ifdef CONFIG_PREEMPT
-4:     mask_interrupts
-       mfsr    r8, rsr_int\level
-       sbr     r8, 16
-       mtsr    rsr_int\level, r8
-       ldmts   sp++, r0-lr
-       sub     sp, -4          /* ignore r12_orig */
-       rete
-#endif
-
-2:     get_thread_info r0
-       ld.w    r1, r0[TI_flags]
-       bld     r1, TIF_CPU_GOING_TO_SLEEP
-#ifdef CONFIG_PREEMPT
-       brcc    3f
-#else
-       brcc    1b
-#endif
-       sub     r1, pc, . - cpu_idle_skip_sleep
-       stdsp   sp[REG_PC], r1
-#ifdef CONFIG_PREEMPT
-3:     get_thread_info r0
-       ld.w    r2, r0[TI_preempt_count]
-       cp.w    r2, 0
-       brne    1b
-       ld.w    r1, r0[TI_flags]
-       bld     r1, TIF_NEED_RESCHED
-       brcc    1b
-       lddsp   r4, sp[REG_SR]
-       bld     r4, SYSREG_GM_OFFSET
-       brcs    1b
-       call    preempt_schedule_irq
-#endif
-       rjmp    1b
-       .endm
-
-       .section .irq.text,"ax",@progbits
-
-       .global irq_level0
-       .global irq_level1
-       .global irq_level2
-       .global irq_level3
-       IRQ_LEVEL 0
-       IRQ_LEVEL 1
-       IRQ_LEVEL 2
-       IRQ_LEVEL 3
-
-       .section .kprobes.text, "ax", @progbits
-       .type   enter_monitor_mode, @function
-enter_monitor_mode:
-       /*
-        * We need to enter monitor mode to do a single step. The
-        * monitor code will alter the return address so that we
-        * return directly to the user instead of returning here.
-        */
-       breakpoint
-       rjmp    breakpoint_failed
-
-       .size   enter_monitor_mode, . - enter_monitor_mode
-
-       .type   debug_trampoline, @function
-       .global debug_trampoline
-debug_trampoline:
-       /*
-        * Save the registers on the stack so that the monitor code
-        * can find them easily.
-        */
-       sub     sp, 4           /* r12_orig */
-       stmts   --sp, r0-lr
-       get_thread_info r0
-       ld.w    r8, r0[TI_rar_saved]
-       ld.w    r9, r0[TI_rsr_saved]
-       pushm   r8-r9
-
-       /*
-        * The monitor code will alter the return address so we don't
-        * return here.
-        */
-       breakpoint
-       rjmp    breakpoint_failed
-       .size   debug_trampoline, . - debug_trampoline
-
-       .type breakpoint_failed, @function
-breakpoint_failed:
-       /*
-        * Something went wrong. Perhaps the debug hardware isn't
-        * enabled?
-        */
-       lda.w   r12, msg_breakpoint_failed
-       mov     r11, sp
-       mov     r10, 9          /* SIGKILL */
-       call    die
-1:     rjmp    1b
-
-msg_breakpoint_failed:
-       .asciz  "Failed to enter Debug Mode"
diff --git a/arch/avr32/kernel/head.S b/arch/avr32/kernel/head.S
deleted file mode 100644 (file)
index 59eae6d..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Non-board-specific low-level startup code
- *
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/linkage.h>
-
-#include <asm/page.h>
-
-       .section .init.text,"ax"
-       .global kernel_entry
-kernel_entry:
-       /* Start the show */
-       lddpc   pc, kernel_start_addr
-
-       .align  2
-kernel_start_addr:
-       .long   start_kernel
diff --git a/arch/avr32/kernel/irq.c b/arch/avr32/kernel/irq.c
deleted file mode 100644 (file)
index 900e49b..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * Based on arch/i386/kernel/irq.c
- *   Copyright (C) 1992, 1998 Linus Torvalds, Ingo Molnar
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/interrupt.h>
-#include <linux/irq.h>
-#include <linux/kernel_stat.h>
-#include <linux/proc_fs.h>
-#include <linux/seq_file.h>
-#include <linux/device.h>
-
-/* May be overridden by platform code */
-int __weak nmi_enable(void)
-{
-       return -ENOSYS;
-}
-
-void __weak nmi_disable(void)
-{
-
-}
diff --git a/arch/avr32/kernel/kprobes.c b/arch/avr32/kernel/kprobes.c
deleted file mode 100644 (file)
index a94ece4..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
- *  Kernel Probes (KProbes)
- *
- * Copyright (C) 2005-2006 Atmel Corporation
- *
- * Based on arch/ppc64/kernel/kprobes.c
- *  Copyright (C) IBM Corporation, 2002, 2004
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/kprobes.h>
-#include <linux/ptrace.h>
-
-#include <asm/cacheflush.h>
-#include <linux/kdebug.h>
-#include <asm/ocd.h>
-
-DEFINE_PER_CPU(struct kprobe *, current_kprobe);
-static unsigned long kprobe_status;
-static struct pt_regs jprobe_saved_regs;
-
-struct kretprobe_blackpoint kretprobe_blacklist[] = {{NULL, NULL}};
-
-int __kprobes arch_prepare_kprobe(struct kprobe *p)
-{
-       int ret = 0;
-
-       if ((unsigned long)p->addr & 0x01) {
-               printk("Attempt to register kprobe at an unaligned address\n");
-               ret = -EINVAL;
-       }
-
-       /* XXX: Might be a good idea to check if p->addr is a valid
-        * kernel address as well... */
-
-       if (!ret) {
-               pr_debug("copy kprobe at %p\n", p->addr);
-               memcpy(p->ainsn.insn, p->addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
-               p->opcode = *p->addr;
-       }
-
-       return ret;
-}
-
-void __kprobes arch_arm_kprobe(struct kprobe *p)
-{
-       pr_debug("arming kprobe at %p\n", p->addr);
-       ocd_enable(NULL);
-       *p->addr = BREAKPOINT_INSTRUCTION;
-       flush_icache_range((unsigned long)p->addr,
-                          (unsigned long)p->addr + sizeof(kprobe_opcode_t));
-}
-
-void __kprobes arch_disarm_kprobe(struct kprobe *p)
-{
-       pr_debug("disarming kprobe at %p\n", p->addr);
-       ocd_disable(NULL);
-       *p->addr = p->opcode;
-       flush_icache_range((unsigned long)p->addr,
-                          (unsigned long)p->addr + sizeof(kprobe_opcode_t));
-}
-
-static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs)
-{
-       unsigned long dc;
-
-       pr_debug("preparing to singlestep over %p (PC=%08lx)\n",
-                p->addr, regs->pc);
-
-       BUG_ON(!(sysreg_read(SR) & SYSREG_BIT(SR_D)));
-
-       dc = ocd_read(DC);
-       dc |= 1 << OCD_DC_SS_BIT;
-       ocd_write(DC, dc);
-
-       /*
-        * We must run the instruction from its original location
-        * since it may actually reference PC.
-        *
-        * TODO: Do the instruction replacement directly in icache.
-        */
-       *p->addr = p->opcode;
-       flush_icache_range((unsigned long)p->addr,
-                          (unsigned long)p->addr + sizeof(kprobe_opcode_t));
-}
-
-static void __kprobes resume_execution(struct kprobe *p, struct pt_regs *regs)
-{
-       unsigned long dc;
-
-       pr_debug("resuming execution at PC=%08lx\n", regs->pc);
-
-       dc = ocd_read(DC);
-       dc &= ~(1 << OCD_DC_SS_BIT);
-       ocd_write(DC, dc);
-
-       *p->addr = BREAKPOINT_INSTRUCTION;
-       flush_icache_range((unsigned long)p->addr,
-                          (unsigned long)p->addr + sizeof(kprobe_opcode_t));
-}
-
-static void __kprobes set_current_kprobe(struct kprobe *p)
-{
-       __this_cpu_write(current_kprobe, p);
-}
-
-static int __kprobes kprobe_handler(struct pt_regs *regs)
-{
-       struct kprobe *p;
-       void *addr = (void *)regs->pc;
-       int ret = 0;
-
-       pr_debug("kprobe_handler: kprobe_running=%p\n",
-                kprobe_running());
-
-       /*
-        * We don't want to be preempted for the entire
-        * duration of kprobe processing
-        */
-       preempt_disable();
-
-       /* Check that we're not recursing */
-       if (kprobe_running()) {
-               p = get_kprobe(addr);
-               if (p) {
-                       if (kprobe_status == KPROBE_HIT_SS) {
-                               printk("FIXME: kprobe hit while single-stepping!\n");
-                               goto no_kprobe;
-                       }
-
-                       printk("FIXME: kprobe hit while handling another kprobe\n");
-                       goto no_kprobe;
-               } else {
-                       p = kprobe_running();
-                       if (p->break_handler && p->break_handler(p, regs))
-                               goto ss_probe;
-               }
-               /* If it's not ours, can't be delete race, (we hold lock). */
-               goto no_kprobe;
-       }
-
-       p = get_kprobe(addr);
-       if (!p)
-               goto no_kprobe;
-
-       kprobe_status = KPROBE_HIT_ACTIVE;
-       set_current_kprobe(p);
-       if (p->pre_handler && p->pre_handler(p, regs))
-               /* handler has already set things up, so skip ss setup */
-               return 1;
-
-ss_probe:
-       prepare_singlestep(p, regs);
-       kprobe_status = KPROBE_HIT_SS;
-       return 1;
-
-no_kprobe:
-       preempt_enable_no_resched();
-       return ret;
-}
-
-static int __kprobes post_kprobe_handler(struct pt_regs *regs)
-{
-       struct kprobe *cur = kprobe_running();
-
-       pr_debug("post_kprobe_handler, cur=%p\n", cur);
-
-       if (!cur)
-               return 0;
-
-       if (cur->post_handler) {
-               kprobe_status = KPROBE_HIT_SSDONE;
-               cur->post_handler(cur, regs, 0);
-       }
-
-       resume_execution(cur, regs);
-       reset_current_kprobe();
-       preempt_enable_no_resched();
-
-       return 1;
-}
-
-int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr)
-{
-       struct kprobe *cur = kprobe_running();
-
-       pr_debug("kprobe_fault_handler: trapnr=%d\n", trapnr);
-
-       if (cur->fault_handler && cur->fault_handler(cur, regs, trapnr))
-               return 1;
-
-       if (kprobe_status & KPROBE_HIT_SS) {
-               resume_execution(cur, regs);
-               preempt_enable_no_resched();
-       }
-       return 0;
-}
-
-/*
- * Wrapper routine to for handling exceptions.
- */
-int __kprobes kprobe_exceptions_notify(struct notifier_block *self,
-                                      unsigned long val, void *data)
-{
-       struct die_args *args = (struct die_args *)data;
-       int ret = NOTIFY_DONE;
-
-       pr_debug("kprobe_exceptions_notify: val=%lu, data=%p\n",
-                val, data);
-
-       switch (val) {
-       case DIE_BREAKPOINT:
-               if (kprobe_handler(args->regs))
-                       ret = NOTIFY_STOP;
-               break;
-       case DIE_SSTEP:
-               if (post_kprobe_handler(args->regs))
-                       ret = NOTIFY_STOP;
-               break;
-       default:
-               break;
-       }
-
-       return ret;
-}
-
-int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs)
-{
-       struct jprobe *jp = container_of(p, struct jprobe, kp);
-
-       memcpy(&jprobe_saved_regs, regs, sizeof(struct pt_regs));
-
-       /*
-        * TODO: We should probably save some of the stack here as
-        * well, since gcc may pass arguments on the stack for certain
-        * functions (lots of arguments, large aggregates, varargs)
-        */
-
-       /* setup return addr to the jprobe handler routine */
-       regs->pc = (unsigned long)jp->entry;
-       return 1;
-}
-
-void __kprobes jprobe_return(void)
-{
-       asm volatile("breakpoint" ::: "memory");
-}
-
-int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs)
-{
-       /*
-        * FIXME - we should ideally be validating that we got here 'cos
-        * of the "trap" in jprobe_return() above, before restoring the
-        * saved regs...
-        */
-       memcpy(regs, &jprobe_saved_regs, sizeof(struct pt_regs));
-       return 1;
-}
-
-int __init arch_init_kprobes(void)
-{
-       /* TODO: Register kretprobe trampoline */
-       return 0;
-}
diff --git a/arch/avr32/kernel/module.c b/arch/avr32/kernel/module.c
deleted file mode 100644 (file)
index 2b4c54c..0000000
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- * AVR32-specific kernel module loader
- *
- * Copyright (C) 2005-2006 Atmel Corporation
- *
- * GOT initialization parts are based on the s390 version
- *   Copyright (C) 2002, 2003 IBM Deutschland Entwicklung GmbH,
- *                            IBM Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/bug.h>
-#include <linux/elf.h>
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/moduleloader.h>
-#include <linux/vmalloc.h>
-
-void module_arch_freeing_init(struct module *mod)
-{
-       vfree(mod->arch.syminfo);
-       mod->arch.syminfo = NULL;
-}
-
-static inline int check_rela(Elf32_Rela *rela, struct module *module,
-                            char *strings, Elf32_Sym *symbols)
-{
-       struct mod_arch_syminfo *info;
-
-       info = module->arch.syminfo + ELF32_R_SYM(rela->r_info);
-       switch (ELF32_R_TYPE(rela->r_info)) {
-       case R_AVR32_GOT32:
-       case R_AVR32_GOT16:
-       case R_AVR32_GOT8:
-       case R_AVR32_GOT21S:
-       case R_AVR32_GOT18SW:   /* mcall */
-       case R_AVR32_GOT16S:    /* ld.w */
-               if (rela->r_addend != 0) {
-                       printk(KERN_ERR
-                              "GOT relocation against %s at offset %u with addend\n",
-                              strings + symbols[ELF32_R_SYM(rela->r_info)].st_name,
-                              rela->r_offset);
-                       return -ENOEXEC;
-               }
-               if (info->got_offset == -1UL) {
-                       info->got_offset = module->arch.got_size;
-                       module->arch.got_size += sizeof(void *);
-               }
-               pr_debug("GOT[%3lu] %s\n", info->got_offset,
-                        strings + symbols[ELF32_R_SYM(rela->r_info)].st_name);
-               break;
-       }
-
-       return 0;
-}
-
-int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
-                             char *secstrings, struct module *module)
-{
-       Elf32_Shdr *symtab;
-       Elf32_Sym *symbols;
-       Elf32_Rela *rela;
-       char *strings;
-       int nrela, i, j;
-       int ret;
-
-       /* Find the symbol table */
-       symtab = NULL;
-       for (i = 0; i < hdr->e_shnum; i++)
-               switch (sechdrs[i].sh_type) {
-               case SHT_SYMTAB:
-                       symtab = &sechdrs[i];
-                       break;
-               }
-       if (!symtab) {
-               printk(KERN_ERR "module %s: no symbol table\n", module->name);
-               return -ENOEXEC;
-       }
-
-       /* Allocate room for one syminfo structure per symbol. */
-       module->arch.nsyms = symtab->sh_size / sizeof(Elf_Sym);
-       module->arch.syminfo = vmalloc(module->arch.nsyms
-                                  * sizeof(struct mod_arch_syminfo));
-       if (!module->arch.syminfo)
-               return -ENOMEM;
-
-       symbols = (void *)hdr + symtab->sh_offset;
-       strings = (void *)hdr + sechdrs[symtab->sh_link].sh_offset;
-       for (i = 0; i < module->arch.nsyms; i++) {
-               if (symbols[i].st_shndx == SHN_UNDEF &&
-                   strcmp(strings + symbols[i].st_name,
-                          "_GLOBAL_OFFSET_TABLE_") == 0)
-                       /* "Define" it as absolute. */
-                       symbols[i].st_shndx = SHN_ABS;
-               module->arch.syminfo[i].got_offset = -1UL;
-               module->arch.syminfo[i].got_initialized = 0;
-       }
-
-       /* Allocate GOT entries for symbols that need it. */
-       module->arch.got_size = 0;
-       for (i = 0; i < hdr->e_shnum; i++) {
-               if (sechdrs[i].sh_type != SHT_RELA)
-                       continue;
-               nrela = sechdrs[i].sh_size / sizeof(Elf32_Rela);
-               rela = (void *)hdr + sechdrs[i].sh_offset;
-               for (j = 0; j < nrela; j++) {
-                       ret = check_rela(rela + j, module,
-                                        strings, symbols);
-                       if (ret)
-                               goto out_free_syminfo;
-               }
-       }
-
-       /*
-        * Increase core size to make room for GOT and set start
-        * offset for GOT.
-        */
-       module->core_layout.size = ALIGN(module->core_layout.size, 4);
-       module->arch.got_offset = module->core_layout.size;
-       module->core_layout.size += module->arch.got_size;
-
-       return 0;
-
-out_free_syminfo:
-       vfree(module->arch.syminfo);
-       module->arch.syminfo = NULL;
-
-       return ret;
-}
-
-static inline int reloc_overflow(struct module *module, const char *reloc_name,
-                                Elf32_Addr relocation)
-{
-       printk(KERN_ERR "module %s: Value %lx does not fit relocation %s\n",
-              module->name, (unsigned long)relocation, reloc_name);
-       return -ENOEXEC;
-}
-
-#define get_u16(loc)           (*((uint16_t *)loc))
-#define put_u16(loc, val)      (*((uint16_t *)loc) = (val))
-
-int apply_relocate_add(Elf32_Shdr *sechdrs, const char *strtab,
-                      unsigned int symindex, unsigned int relindex,
-                      struct module *module)
-{
-       Elf32_Shdr *symsec = sechdrs + symindex;
-       Elf32_Shdr *relsec = sechdrs + relindex;
-       Elf32_Shdr *dstsec = sechdrs + relsec->sh_info;
-       Elf32_Rela *rel = (void *)relsec->sh_addr;
-       unsigned int i;
-       int ret = 0;
-
-       for (i = 0; i < relsec->sh_size / sizeof(Elf32_Rela); i++, rel++) {
-               struct mod_arch_syminfo *info;
-               Elf32_Sym *sym;
-               Elf32_Addr relocation;
-               uint32_t *location;
-               uint32_t value;
-
-               location = (void *)dstsec->sh_addr + rel->r_offset;
-               sym = (Elf32_Sym *)symsec->sh_addr + ELF32_R_SYM(rel->r_info);
-               relocation = sym->st_value + rel->r_addend;
-
-               info = module->arch.syminfo + ELF32_R_SYM(rel->r_info);
-
-               /* Initialize GOT entry if necessary */
-               switch (ELF32_R_TYPE(rel->r_info)) {
-               case R_AVR32_GOT32:
-               case R_AVR32_GOT16:
-               case R_AVR32_GOT8:
-               case R_AVR32_GOT21S:
-               case R_AVR32_GOT18SW:
-               case R_AVR32_GOT16S:
-                       if (!info->got_initialized) {
-                               Elf32_Addr *gotent;
-
-                               gotent = (module->core_layout.base
-                                         + module->arch.got_offset
-                                         + info->got_offset);
-                               *gotent = relocation;
-                               info->got_initialized = 1;
-                       }
-
-                       relocation = info->got_offset;
-                       break;
-               }
-
-               switch (ELF32_R_TYPE(rel->r_info)) {
-               case R_AVR32_32:
-               case R_AVR32_32_CPENT:
-                       *location = relocation;
-                       break;
-               case R_AVR32_22H_PCREL:
-                       relocation -= (Elf32_Addr)location;
-                       if ((relocation & 0xffe00001) != 0
-                           && (relocation & 0xffc00001) != 0xffc00000)
-                               return reloc_overflow(module,
-                                                     "R_AVR32_22H_PCREL",
-                                                     relocation);
-                       relocation >>= 1;
-
-                       value = *location;
-                       value = ((value & 0xe1ef0000)
-                                | (relocation & 0xffff)
-                                | ((relocation & 0x10000) << 4)
-                                | ((relocation & 0x1e0000) << 8));
-                       *location = value;
-                       break;
-               case R_AVR32_11H_PCREL:
-                       relocation -= (Elf32_Addr)location;
-                       if ((relocation & 0xfffffc01) != 0
-                           && (relocation & 0xfffff801) != 0xfffff800)
-                               return reloc_overflow(module,
-                                                     "R_AVR32_11H_PCREL",
-                                                     relocation);
-                       value = get_u16(location);
-                       value = ((value & 0xf00c)
-                                | ((relocation & 0x1fe) << 3)
-                                | ((relocation & 0x600) >> 9));
-                       put_u16(location, value);
-                       break;
-               case R_AVR32_9H_PCREL:
-                       relocation -= (Elf32_Addr)location;
-                       if ((relocation & 0xffffff01) != 0
-                           && (relocation & 0xfffffe01) != 0xfffffe00)
-                               return reloc_overflow(module,
-                                                     "R_AVR32_9H_PCREL",
-                                                     relocation);
-                       value = get_u16(location);
-                       value = ((value & 0xf00f)
-                                | ((relocation & 0x1fe) << 3));
-                       put_u16(location, value);
-                       break;
-               case R_AVR32_9UW_PCREL:
-                       relocation -= ((Elf32_Addr)location) & 0xfffffffc;
-                       if ((relocation & 0xfffffc03) != 0)
-                               return reloc_overflow(module,
-                                                     "R_AVR32_9UW_PCREL",
-                                                     relocation);
-                       value = get_u16(location);
-                       value = ((value & 0xf80f)
-                                | ((relocation & 0x1fc) << 2));
-                       put_u16(location, value);
-                       break;
-               case R_AVR32_GOTPC:
-                       /*
-                        * R6 = PC - (PC - GOT)
-                        *
-                        * At this point, relocation contains the
-                        * value of PC.  Just subtract the value of
-                        * GOT, and we're done.
-                        */
-                       pr_debug("GOTPC: PC=0x%x, got_offset=0x%lx, core=0x%p\n",
-                                relocation, module->arch.got_offset,
-                                module->core_layout.base);
-                       relocation -= ((unsigned long)module->core_layout.base
-                                      + module->arch.got_offset);
-                       *location = relocation;
-                       break;
-               case R_AVR32_GOT18SW:
-                       if ((relocation & 0xfffe0003) != 0
-                           && (relocation & 0xfffc0000) != 0xfffc0000)
-                               return reloc_overflow(module, "R_AVR32_GOT18SW",
-                                                    relocation);
-                       relocation >>= 2;
-                       /* fall through */
-               case R_AVR32_GOT16S:
-                       if ((relocation & 0xffff8000) != 0
-                           && (relocation & 0xffff0000) != 0xffff0000)
-                               return reloc_overflow(module, "R_AVR32_GOT16S",
-                                                     relocation);
-                       pr_debug("GOT reloc @ 0x%x -> %u\n",
-                                rel->r_offset, relocation);
-                       value = *location;
-                       value = ((value & 0xffff0000)
-                                | (relocation & 0xffff));
-                       *location = value;
-                       break;
-
-               default:
-                       printk(KERN_ERR "module %s: Unknown relocation: %u\n",
-                              module->name, ELF32_R_TYPE(rel->r_info));
-                       return -ENOEXEC;
-               }
-       }
-
-       return ret;
-}
diff --git a/arch/avr32/kernel/nmi_debug.c b/arch/avr32/kernel/nmi_debug.c
deleted file mode 100644 (file)
index 2582304..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2007 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/delay.h>
-#include <linux/kdebug.h>
-#include <linux/notifier.h>
-#include <linux/sched.h>
-#include <linux/sched/debug.h>
-
-#include <asm/irq.h>
-
-enum nmi_action {
-       NMI_SHOW_STATE  = 1 << 0,
-       NMI_SHOW_REGS   = 1 << 1,
-       NMI_DIE         = 1 << 2,
-       NMI_DEBOUNCE    = 1 << 3,
-};
-
-static unsigned long nmi_actions;
-
-static int nmi_debug_notify(struct notifier_block *self,
-               unsigned long val, void *data)
-{
-       struct die_args *args = data;
-
-       if (likely(val != DIE_NMI))
-               return NOTIFY_DONE;
-
-       if (nmi_actions & NMI_SHOW_STATE)
-               show_state();
-       if (nmi_actions & NMI_SHOW_REGS)
-               show_regs(args->regs);
-       if (nmi_actions & NMI_DEBOUNCE)
-               mdelay(10);
-       if (nmi_actions & NMI_DIE)
-               return NOTIFY_BAD;
-
-       return NOTIFY_OK;
-}
-
-static struct notifier_block nmi_debug_nb = {
-       .notifier_call = nmi_debug_notify,
-};
-
-static int __init nmi_debug_setup(char *str)
-{
-       char *p, *sep;
-
-       register_die_notifier(&nmi_debug_nb);
-       if (nmi_enable()) {
-               printk(KERN_WARNING "Unable to enable NMI.\n");
-               return 0;
-       }
-
-       if (*str != '=')
-               return 0;
-
-       for (p = str + 1; *p; p = sep + 1) {
-               sep = strchr(p, ',');
-               if (sep)
-                       *sep = 0;
-               if (strcmp(p, "state") == 0)
-                       nmi_actions |= NMI_SHOW_STATE;
-               else if (strcmp(p, "regs") == 0)
-                       nmi_actions |= NMI_SHOW_REGS;
-               else if (strcmp(p, "debounce") == 0)
-                       nmi_actions |= NMI_DEBOUNCE;
-               else if (strcmp(p, "die") == 0)
-                       nmi_actions |= NMI_DIE;
-               else
-                       printk(KERN_WARNING "NMI: Unrecognized action `%s'\n",
-                               p);
-               if (!sep)
-                       break;
-       }
-
-       return 0;
-}
-__setup("nmi_debug", nmi_debug_setup);
diff --git a/arch/avr32/kernel/ocd.c b/arch/avr32/kernel/ocd.c
deleted file mode 100644 (file)
index 1b0245d..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright (C) 2007 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/init.h>
-#include <linux/sched.h>
-#include <linux/spinlock.h>
-
-#include <asm/ocd.h>
-
-static long ocd_count;
-static spinlock_t ocd_lock;
-
-/**
- * ocd_enable - enable on-chip debugging
- * @child: task to be debugged
- *
- * If @child is non-NULL, ocd_enable() first checks if debugging has
- * already been enabled for @child, and if it has, does nothing.
- *
- * If @child is NULL (e.g. when debugging the kernel), or debugging
- * has not already been enabled for it, ocd_enable() increments the
- * reference count and enables the debugging hardware.
- */
-void ocd_enable(struct task_struct *child)
-{
-       u32 dc;
-
-       if (child)
-               pr_debug("ocd_enable: child=%s [%u]\n",
-                               child->comm, child->pid);
-       else
-               pr_debug("ocd_enable (no child)\n");
-
-       if (!child || !test_and_set_tsk_thread_flag(child, TIF_DEBUG)) {
-               spin_lock(&ocd_lock);
-               ocd_count++;
-               dc = ocd_read(DC);
-               dc |= (1 << OCD_DC_MM_BIT) | (1 << OCD_DC_DBE_BIT);
-               ocd_write(DC, dc);
-               spin_unlock(&ocd_lock);
-       }
-}
-
-/**
- * ocd_disable - disable on-chip debugging
- * @child: task that was being debugged, but isn't anymore
- *
- * If @child is non-NULL, ocd_disable() checks if debugging is enabled
- * for @child, and if it isn't, does nothing.
- *
- * If @child is NULL (e.g. when debugging the kernel), or debugging is
- * enabled, ocd_disable() decrements the reference count, and if it
- * reaches zero, disables the debugging hardware.
- */
-void ocd_disable(struct task_struct *child)
-{
-       u32 dc;
-
-       if (!child)
-               pr_debug("ocd_disable (no child)\n");
-       else if (test_tsk_thread_flag(child, TIF_DEBUG))
-               pr_debug("ocd_disable: child=%s [%u]\n",
-                               child->comm, child->pid);
-
-       if (!child || test_and_clear_tsk_thread_flag(child, TIF_DEBUG)) {
-               spin_lock(&ocd_lock);
-               ocd_count--;
-
-               WARN_ON(ocd_count < 0);
-
-               if (ocd_count <= 0) {
-                       dc = ocd_read(DC);
-                       dc &= ~((1 << OCD_DC_MM_BIT) | (1 << OCD_DC_DBE_BIT));
-                       ocd_write(DC, dc);
-               }
-               spin_unlock(&ocd_lock);
-       }
-}
-
-#ifdef CONFIG_DEBUG_FS
-#include <linux/debugfs.h>
-#include <linux/module.h>
-
-static struct dentry *ocd_debugfs_root;
-static struct dentry *ocd_debugfs_DC;
-static struct dentry *ocd_debugfs_DS;
-static struct dentry *ocd_debugfs_count;
-
-static int ocd_DC_get(void *data, u64 *val)
-{
-       *val = ocd_read(DC);
-       return 0;
-}
-static int ocd_DC_set(void *data, u64 val)
-{
-       ocd_write(DC, val);
-       return 0;
-}
-DEFINE_SIMPLE_ATTRIBUTE(fops_DC, ocd_DC_get, ocd_DC_set, "0x%08llx\n");
-
-static int ocd_DS_get(void *data, u64 *val)
-{
-       *val = ocd_read(DS);
-       return 0;
-}
-DEFINE_SIMPLE_ATTRIBUTE(fops_DS, ocd_DS_get, NULL, "0x%08llx\n");
-
-static int ocd_count_get(void *data, u64 *val)
-{
-       *val = ocd_count;
-       return 0;
-}
-DEFINE_SIMPLE_ATTRIBUTE(fops_count, ocd_count_get, NULL, "%lld\n");
-
-static void ocd_debugfs_init(void)
-{
-       struct dentry *root;
-
-       root = debugfs_create_dir("ocd", NULL);
-       if (IS_ERR(root) || !root)
-               goto err_root;
-       ocd_debugfs_root = root;
-
-       ocd_debugfs_DC = debugfs_create_file("DC", S_IRUSR | S_IWUSR,
-                               root, NULL, &fops_DC);
-       if (!ocd_debugfs_DC)
-               goto err_DC;
-
-       ocd_debugfs_DS = debugfs_create_file("DS", S_IRUSR, root,
-                               NULL, &fops_DS);
-       if (!ocd_debugfs_DS)
-               goto err_DS;
-
-       ocd_debugfs_count = debugfs_create_file("count", S_IRUSR, root,
-                               NULL, &fops_count);
-       if (!ocd_debugfs_count)
-               goto err_count;
-
-       return;
-
-err_count:
-       debugfs_remove(ocd_debugfs_DS);
-err_DS:
-       debugfs_remove(ocd_debugfs_DC);
-err_DC:
-       debugfs_remove(ocd_debugfs_root);
-err_root:
-       printk(KERN_WARNING "OCD: Failed to create debugfs entries\n");
-}
-#else
-static inline void ocd_debugfs_init(void)
-{
-
-}
-#endif
-
-static int __init ocd_init(void)
-{
-       spin_lock_init(&ocd_lock);
-       ocd_debugfs_init();
-       return 0;
-}
-arch_initcall(ocd_init);
diff --git a/arch/avr32/kernel/process.c b/arch/avr32/kernel/process.c
deleted file mode 100644 (file)
index ad0dfcc..0000000
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/sched.h>
-#include <linux/sched/debug.h>
-#include <linux/sched/task.h>
-#include <linux/sched/task_stack.h>
-#include <linux/module.h>
-#include <linux/kallsyms.h>
-#include <linux/fs.h>
-#include <linux/pm.h>
-#include <linux/ptrace.h>
-#include <linux/slab.h>
-#include <linux/reboot.h>
-#include <linux/tick.h>
-#include <linux/uaccess.h>
-#include <linux/unistd.h>
-
-#include <asm/sysreg.h>
-#include <asm/ocd.h>
-#include <asm/syscalls.h>
-
-#include <mach/pm.h>
-
-void (*pm_power_off)(void);
-EXPORT_SYMBOL(pm_power_off);
-
-/*
- * This file handles the architecture-dependent parts of process handling..
- */
-
-void arch_cpu_idle(void)
-{
-       cpu_enter_idle();
-}
-
-void machine_halt(void)
-{
-       /*
-        * Enter Stop mode. The 32 kHz oscillator will keep running so
-        * the RTC will keep the time properly and the system will
-        * boot quickly.
-        */
-       asm volatile("sleep 3\n\t"
-                    "sub pc, -2");
-}
-
-void machine_power_off(void)
-{
-       if (pm_power_off)
-               pm_power_off();
-}
-
-void machine_restart(char *cmd)
-{
-       ocd_write(DC, (1 << OCD_DC_DBE_BIT));
-       ocd_write(DC, (1 << OCD_DC_RES_BIT));
-       while (1) ;
-}
-
-/*
- * Free current thread data structures etc
- */
-void exit_thread(struct task_struct *tsk)
-{
-       ocd_disable(tsk);
-}
-
-void flush_thread(void)
-{
-       /* nothing to do */
-}
-
-void release_thread(struct task_struct *dead_task)
-{
-       /* do nothing */
-}
-
-static void dump_mem(const char *str, const char *log_lvl,
-                    unsigned long bottom, unsigned long top)
-{
-       unsigned long p;
-       int i;
-
-       printk("%s%s(0x%08lx to 0x%08lx)\n", log_lvl, str, bottom, top);
-
-       for (p = bottom & ~31; p < top; ) {
-               printk("%s%04lx: ", log_lvl, p & 0xffff);
-
-               for (i = 0; i < 8; i++, p += 4) {
-                       unsigned int val;
-
-                       if (p < bottom || p >= top)
-                               printk("         ");
-                       else {
-                               if (__get_user(val, (unsigned int __user *)p)) {
-                                       printk("\n");
-                                       goto out;
-                               }
-                               printk("%08x ", val);
-                       }
-               }
-               printk("\n");
-       }
-
-out:
-       return;
-}
-
-static inline int valid_stack_ptr(struct thread_info *tinfo, unsigned long p)
-{
-       return (p > (unsigned long)tinfo)
-               && (p < (unsigned long)tinfo + THREAD_SIZE - 3);
-}
-
-#ifdef CONFIG_FRAME_POINTER
-static void show_trace_log_lvl(struct task_struct *tsk, unsigned long *sp,
-                              struct pt_regs *regs, const char *log_lvl)
-{
-       unsigned long lr, fp;
-       struct thread_info *tinfo;
-
-       if (regs)
-               fp = regs->r7;
-       else if (tsk == current)
-               asm("mov %0, r7" : "=r"(fp));
-       else
-               fp = tsk->thread.cpu_context.r7;
-
-       /*
-        * Walk the stack as long as the frame pointer (a) is within
-        * the kernel stack of the task, and (b) it doesn't move
-        * downwards.
-        */
-       tinfo = task_thread_info(tsk);
-       printk("%sCall trace:\n", log_lvl);
-       while (valid_stack_ptr(tinfo, fp)) {
-               unsigned long new_fp;
-
-               lr = *(unsigned long *)fp;
-#ifdef CONFIG_KALLSYMS
-               printk("%s [<%08lx>] ", log_lvl, lr);
-#else
-               printk(" [<%08lx>] ", lr);
-#endif
-               print_symbol("%s\n", lr);
-
-               new_fp = *(unsigned long *)(fp + 4);
-               if (new_fp <= fp)
-                       break;
-               fp = new_fp;
-       }
-       printk("\n");
-}
-#else
-static void show_trace_log_lvl(struct task_struct *tsk, unsigned long *sp,
-                              struct pt_regs *regs, const char *log_lvl)
-{
-       unsigned long addr;
-
-       printk("%sCall trace:\n", log_lvl);
-
-       while (!kstack_end(sp)) {
-               addr = *sp++;
-               if (kernel_text_address(addr)) {
-#ifdef CONFIG_KALLSYMS
-                       printk("%s [<%08lx>] ", log_lvl, addr);
-#else
-                       printk(" [<%08lx>] ", addr);
-#endif
-                       print_symbol("%s\n", addr);
-               }
-       }
-       printk("\n");
-}
-#endif
-
-void show_stack_log_lvl(struct task_struct *tsk, unsigned long sp,
-                       struct pt_regs *regs, const char *log_lvl)
-{
-       struct thread_info *tinfo;
-
-       if (sp == 0) {
-               if (tsk)
-                       sp = tsk->thread.cpu_context.ksp;
-               else
-                       sp = (unsigned long)&tinfo;
-       }
-       if (!tsk)
-               tsk = current;
-
-       tinfo = task_thread_info(tsk);
-
-       if (valid_stack_ptr(tinfo, sp)) {
-               dump_mem("Stack: ", log_lvl, sp,
-                        THREAD_SIZE + (unsigned long)tinfo);
-               show_trace_log_lvl(tsk, (unsigned long *)sp, regs, log_lvl);
-       }
-}
-
-void show_stack(struct task_struct *tsk, unsigned long *stack)
-{
-       show_stack_log_lvl(tsk, (unsigned long)stack, NULL, "");
-}
-
-static const char *cpu_modes[] = {
-       "Application", "Supervisor", "Interrupt level 0", "Interrupt level 1",
-       "Interrupt level 2", "Interrupt level 3", "Exception", "NMI"
-};
-
-void show_regs_log_lvl(struct pt_regs *regs, const char *log_lvl)
-{
-       unsigned long sp = regs->sp;
-       unsigned long lr = regs->lr;
-       unsigned long mode = (regs->sr & MODE_MASK) >> MODE_SHIFT;
-
-       show_regs_print_info(log_lvl);
-
-       if (!user_mode(regs)) {
-               sp = (unsigned long)regs + FRAME_SIZE_FULL;
-
-               printk("%s", log_lvl);
-               print_symbol("PC is at %s\n", instruction_pointer(regs));
-               printk("%s", log_lvl);
-               print_symbol("LR is at %s\n", lr);
-       }
-
-       printk("%spc : [<%08lx>]    lr : [<%08lx>]    %s\n"
-              "%ssp : %08lx  r12: %08lx  r11: %08lx\n",
-              log_lvl, instruction_pointer(regs), lr, print_tainted(),
-              log_lvl, sp, regs->r12, regs->r11);
-       printk("%sr10: %08lx  r9 : %08lx  r8 : %08lx\n",
-              log_lvl, regs->r10, regs->r9, regs->r8);
-       printk("%sr7 : %08lx  r6 : %08lx  r5 : %08lx  r4 : %08lx\n",
-              log_lvl, regs->r7, regs->r6, regs->r5, regs->r4);
-       printk("%sr3 : %08lx  r2 : %08lx  r1 : %08lx  r0 : %08lx\n",
-              log_lvl, regs->r3, regs->r2, regs->r1, regs->r0);
-       printk("%sFlags: %c%c%c%c%c\n", log_lvl,
-              regs->sr & SR_Q ? 'Q' : 'q',
-              regs->sr & SR_V ? 'V' : 'v',
-              regs->sr & SR_N ? 'N' : 'n',
-              regs->sr & SR_Z ? 'Z' : 'z',
-              regs->sr & SR_C ? 'C' : 'c');
-       printk("%sMode bits: %c%c%c%c%c%c%c%c%c%c\n", log_lvl,
-              regs->sr & SR_H ? 'H' : 'h',
-              regs->sr & SR_J ? 'J' : 'j',
-              regs->sr & SR_DM ? 'M' : 'm',
-              regs->sr & SR_D ? 'D' : 'd',
-              regs->sr & SR_EM ? 'E' : 'e',
-              regs->sr & SR_I3M ? '3' : '.',
-              regs->sr & SR_I2M ? '2' : '.',
-              regs->sr & SR_I1M ? '1' : '.',
-              regs->sr & SR_I0M ? '0' : '.',
-              regs->sr & SR_GM ? 'G' : 'g');
-       printk("%sCPU Mode: %s\n", log_lvl, cpu_modes[mode]);
-}
-
-void show_regs(struct pt_regs *regs)
-{
-       unsigned long sp = regs->sp;
-
-       if (!user_mode(regs))
-               sp = (unsigned long)regs + FRAME_SIZE_FULL;
-
-       show_regs_log_lvl(regs, "");
-       show_trace_log_lvl(current, (unsigned long *)sp, regs, "");
-}
-EXPORT_SYMBOL(show_regs);
-
-/* Fill in the fpu structure for a core dump. This is easy -- we don't have any */
-int dump_fpu(struct pt_regs *regs, elf_fpregset_t *fpu)
-{
-       /* Not valid */
-       return 0;
-}
-
-asmlinkage void ret_from_fork(void);
-asmlinkage void ret_from_kernel_thread(void);
-asmlinkage void syscall_return(void);
-
-int copy_thread(unsigned long clone_flags, unsigned long usp,
-               unsigned long arg,
-               struct task_struct *p)
-{
-       struct pt_regs *childregs = task_pt_regs(p);
-
-       if (unlikely(p->flags & PF_KTHREAD)) {
-               memset(childregs, 0, sizeof(struct pt_regs));
-               p->thread.cpu_context.r0 = arg;
-               p->thread.cpu_context.r1 = usp; /* fn */
-               p->thread.cpu_context.r2 = (unsigned long)syscall_return;
-               p->thread.cpu_context.pc = (unsigned long)ret_from_kernel_thread;
-               childregs->sr = MODE_SUPERVISOR;
-       } else {
-               *childregs = *current_pt_regs();
-               if (usp)
-                       childregs->sp = usp;
-               childregs->r12 = 0; /* Set return value for child */
-               p->thread.cpu_context.pc = (unsigned long)ret_from_fork;
-       }
-
-       p->thread.cpu_context.sr = MODE_SUPERVISOR | SR_GM;
-       p->thread.cpu_context.ksp = (unsigned long)childregs;
-
-       clear_tsk_thread_flag(p, TIF_DEBUG);
-       if ((clone_flags & CLONE_PTRACE) && test_thread_flag(TIF_DEBUG))
-               ocd_enable(p);
-
-       return 0;
-}
-
-/*
- * This function is supposed to answer the question "who called
- * schedule()?"
- */
-unsigned long get_wchan(struct task_struct *p)
-{
-       unsigned long pc;
-       unsigned long stack_page;
-
-       if (!p || p == current || p->state == TASK_RUNNING)
-               return 0;
-
-       stack_page = (unsigned long)task_stack_page(p);
-       BUG_ON(!stack_page);
-
-       /*
-        * The stored value of PC is either the address right after
-        * the call to __switch_to() or ret_from_fork.
-        */
-       pc = thread_saved_pc(p);
-       if (in_sched_functions(pc)) {
-#ifdef CONFIG_FRAME_POINTER
-               unsigned long fp = p->thread.cpu_context.r7;
-               BUG_ON(fp < stack_page || fp > (THREAD_SIZE + stack_page));
-               pc = *(unsigned long *)fp;
-#else
-               /*
-                * We depend on the frame size of schedule here, which
-                * is actually quite ugly. It might be possible to
-                * determine the frame size automatically at build
-                * time by doing this:
-                *   - compile sched/core.c
-                *   - disassemble the resulting sched.o
-                *   - look for 'sub sp,??' shortly after '<schedule>:'
-                */
-               unsigned long sp = p->thread.cpu_context.ksp + 16;
-               BUG_ON(sp < stack_page || sp > (THREAD_SIZE + stack_page));
-               pc = *(unsigned long *)sp;
-#endif
-       }
-
-       return pc;
-}
diff --git a/arch/avr32/kernel/ptrace.c b/arch/avr32/kernel/ptrace.c
deleted file mode 100644 (file)
index 41a14e9..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#undef DEBUG
-#include <linux/kernel.h>
-#include <linux/sched.h>
-#include <linux/sched/task_stack.h>
-#include <linux/mm.h>
-#include <linux/ptrace.h>
-#include <linux/errno.h>
-#include <linux/user.h>
-#include <linux/security.h>
-#include <linux/unistd.h>
-#include <linux/notifier.h>
-
-#include <asm/traps.h>
-#include <linux/uaccess.h>
-#include <asm/ocd.h>
-#include <asm/mmu_context.h>
-#include <linux/kdebug.h>
-
-static struct pt_regs *get_user_regs(struct task_struct *tsk)
-{
-       return (struct pt_regs *)((unsigned long)task_stack_page(tsk) +
-                                 THREAD_SIZE - sizeof(struct pt_regs));
-}
-
-void user_enable_single_step(struct task_struct *tsk)
-{
-       pr_debug("user_enable_single_step: pid=%u, PC=0x%08lx, SR=0x%08lx\n",
-                tsk->pid, task_pt_regs(tsk)->pc, task_pt_regs(tsk)->sr);
-
-       /*
-        * We can't schedule in Debug mode, so when TIF_BREAKPOINT is
-        * set, the system call or exception handler will do a
-        * breakpoint to enter monitor mode before returning to
-        * userspace.
-        *
-        * The monitor code will then notice that TIF_SINGLE_STEP is
-        * set and return to userspace with single stepping enabled.
-        * The CPU will then enter monitor mode again after exactly
-        * one instruction has been executed, and the monitor code
-        * will then send a SIGTRAP to the process.
-        */
-       set_tsk_thread_flag(tsk, TIF_BREAKPOINT);
-       set_tsk_thread_flag(tsk, TIF_SINGLE_STEP);
-}
-
-void user_disable_single_step(struct task_struct *child)
-{
-       /* XXX(hch): a no-op here seems wrong.. */
-}
-
-/*
- * Called by kernel/ptrace.c when detaching
- *
- * Make sure any single step bits, etc. are not set
- */
-void ptrace_disable(struct task_struct *child)
-{
-       clear_tsk_thread_flag(child, TIF_SINGLE_STEP);
-       clear_tsk_thread_flag(child, TIF_BREAKPOINT);
-       ocd_disable(child);
-}
-
-/*
- * Read the word at offset "offset" into the task's "struct user". We
- * actually access the pt_regs struct stored on the kernel stack.
- */
-static int ptrace_read_user(struct task_struct *tsk, unsigned long offset,
-                           unsigned long __user *data)
-{
-       unsigned long *regs;
-       unsigned long value;
-
-       if (offset & 3 || offset >= sizeof(struct user)) {
-               printk("ptrace_read_user: invalid offset 0x%08lx\n", offset);
-               return -EIO;
-       }
-
-       regs = (unsigned long *)get_user_regs(tsk);
-
-       value = 0;
-       if (offset < sizeof(struct pt_regs))
-               value = regs[offset / sizeof(regs[0])];
-
-       pr_debug("ptrace_read_user(%s[%u], %#lx, %p) -> %#lx\n",
-                tsk->comm, tsk->pid, offset, data, value);
-
-       return put_user(value, data);
-}
-
-/*
- * Write the word "value" to offset "offset" into the task's "struct
- * user". We actually access the pt_regs struct stored on the kernel
- * stack.
- */
-static int ptrace_write_user(struct task_struct *tsk, unsigned long offset,
-                            unsigned long value)
-{
-       unsigned long *regs;
-
-       pr_debug("ptrace_write_user(%s[%u], %#lx, %#lx)\n",
-                       tsk->comm, tsk->pid, offset, value);
-
-       if (offset & 3 || offset >= sizeof(struct user)) {
-               pr_debug("  invalid offset 0x%08lx\n", offset);
-               return -EIO;
-       }
-
-       if (offset >= sizeof(struct pt_regs))
-               return 0;
-
-       regs = (unsigned long *)get_user_regs(tsk);
-       regs[offset / sizeof(regs[0])] = value;
-
-       return 0;
-}
-
-static int ptrace_getregs(struct task_struct *tsk, void __user *uregs)
-{
-       struct pt_regs *regs = get_user_regs(tsk);
-
-       return copy_to_user(uregs, regs, sizeof(*regs)) ? -EFAULT : 0;
-}
-
-static int ptrace_setregs(struct task_struct *tsk, const void __user *uregs)
-{
-       struct pt_regs newregs;
-       int ret;
-
-       ret = -EFAULT;
-       if (copy_from_user(&newregs, uregs, sizeof(newregs)) == 0) {
-               struct pt_regs *regs = get_user_regs(tsk);
-
-               ret = -EINVAL;
-               if (valid_user_regs(&newregs)) {
-                       *regs = newregs;
-                       ret = 0;
-               }
-       }
-
-       return ret;
-}
-
-long arch_ptrace(struct task_struct *child, long request,
-                unsigned long addr, unsigned long data)
-{
-       int ret;
-       void __user *datap = (void __user *) data;
-
-       switch (request) {
-       /* Read the word at location addr in the child process */
-       case PTRACE_PEEKTEXT:
-       case PTRACE_PEEKDATA:
-               ret = generic_ptrace_peekdata(child, addr, data);
-               break;
-
-       case PTRACE_PEEKUSR:
-               ret = ptrace_read_user(child, addr, datap);
-               break;
-
-       /* Write the word in data at location addr */
-       case PTRACE_POKETEXT:
-       case PTRACE_POKEDATA:
-               ret = generic_ptrace_pokedata(child, addr, data);
-               break;
-
-       case PTRACE_POKEUSR:
-               ret = ptrace_write_user(child, addr, data);
-               break;
-
-       case PTRACE_GETREGS:
-               ret = ptrace_getregs(child, datap);
-               break;
-
-       case PTRACE_SETREGS:
-               ret = ptrace_setregs(child, datap);
-               break;
-
-       default:
-               ret = ptrace_request(child, request, addr, data);
-               break;
-       }
-
-       return ret;
-}
-
-asmlinkage void syscall_trace(void)
-{
-       if (!test_thread_flag(TIF_SYSCALL_TRACE))
-               return;
-       if (!(current->ptrace & PT_PTRACED))
-               return;
-
-       /* The 0x80 provides a way for the tracing parent to
-        * distinguish between a syscall stop and SIGTRAP delivery */
-       ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD)
-                                ? 0x80 : 0));
-
-       /*
-        * this isn't the same as continuing with a signal, but it
-        * will do for normal use.  strace only continues with a
-        * signal if the stopping signal is not SIGTRAP.  -brl
-        */
-       if (current->exit_code) {
-               pr_debug("syscall_trace: sending signal %d to PID %u\n",
-                        current->exit_code, current->pid);
-               send_sig(current->exit_code, current, 1);
-               current->exit_code = 0;
-       }
-}
-
-/*
- * debug_trampoline() is an assembly stub which will store all user
- * registers on the stack and execute a breakpoint instruction.
- *
- * If we single-step into an exception handler which runs with
- * interrupts disabled the whole time so it doesn't have to check for
- * pending work, its return address will be modified so that it ends
- * up returning to debug_trampoline.
- *
- * If the exception handler decides to store the user context and
- * enable interrupts after all, it will restore the original return
- * address and status register value. Before it returns, it will
- * notice that TIF_BREAKPOINT is set and execute a breakpoint
- * instruction.
- */
-extern void debug_trampoline(void);
-
-asmlinkage struct pt_regs *do_debug(struct pt_regs *regs)
-{
-       struct thread_info      *ti;
-       unsigned long           trampoline_addr;
-       u32                     status;
-       u32                     ctrl;
-       int                     code;
-
-       status = ocd_read(DS);
-       ti = current_thread_info();
-       code = TRAP_BRKPT;
-
-       pr_debug("do_debug: status=0x%08x PC=0x%08lx SR=0x%08lx tif=0x%08lx\n",
-                       status, regs->pc, regs->sr, ti->flags);
-
-       if (!user_mode(regs)) {
-               unsigned long   die_val = DIE_BREAKPOINT;
-
-               if (status & (1 << OCD_DS_SSS_BIT))
-                       die_val = DIE_SSTEP;
-
-               if (notify_die(die_val, "ptrace", regs, 0, 0, SIGTRAP)
-                               == NOTIFY_STOP)
-                       return regs;
-
-               if ((status & (1 << OCD_DS_SWB_BIT))
-                               && test_and_clear_ti_thread_flag(
-                                       ti, TIF_BREAKPOINT)) {
-                       /*
-                        * Explicit breakpoint from trampoline or
-                        * exception/syscall/interrupt handler.
-                        *
-                        * The real saved regs are on the stack right
-                        * after the ones we saved on entry.
-                        */
-                       regs++;
-                       pr_debug("  -> TIF_BREAKPOINT done, adjusted regs:"
-                                       "PC=0x%08lx SR=0x%08lx\n",
-                                       regs->pc, regs->sr);
-                       BUG_ON(!user_mode(regs));
-
-                       if (test_thread_flag(TIF_SINGLE_STEP)) {
-                               pr_debug("Going to do single step...\n");
-                               return regs;
-                       }
-
-                       /*
-                        * No TIF_SINGLE_STEP means we're done
-                        * stepping over a syscall. Do the trap now.
-                        */
-                       code = TRAP_TRACE;
-               } else if ((status & (1 << OCD_DS_SSS_BIT))
-                               && test_ti_thread_flag(ti, TIF_SINGLE_STEP)) {
-
-                       pr_debug("Stepped into something, "
-                                       "setting TIF_BREAKPOINT...\n");
-                       set_ti_thread_flag(ti, TIF_BREAKPOINT);
-
-                       /*
-                        * We stepped into an exception, interrupt or
-                        * syscall handler. Some exception handlers
-                        * don't check for pending work, so we need to
-                        * set up a trampoline just in case.
-                        *
-                        * The exception entry code will undo the
-                        * trampoline stuff if it does a full context
-                        * save (which also means that it'll check for
-                        * pending work later.)
-                        */
-                       if ((regs->sr & MODE_MASK) == MODE_EXCEPTION) {
-                               trampoline_addr
-                                       = (unsigned long)&debug_trampoline;
-
-                               pr_debug("Setting up trampoline...\n");
-                               ti->rar_saved = sysreg_read(RAR_EX);
-                               ti->rsr_saved = sysreg_read(RSR_EX);
-                               sysreg_write(RAR_EX, trampoline_addr);
-                               sysreg_write(RSR_EX, (MODE_EXCEPTION
-                                                       | SR_EM | SR_GM));
-                               BUG_ON(ti->rsr_saved & MODE_MASK);
-                       }
-
-                       /*
-                        * If we stepped into a system call, we
-                        * shouldn't do a single step after we return
-                        * since the return address is right after the
-                        * "scall" instruction we were told to step
-                        * over.
-                        */
-                       if ((regs->sr & MODE_MASK) == MODE_SUPERVISOR) {
-                               pr_debug("Supervisor; no single step\n");
-                               clear_ti_thread_flag(ti, TIF_SINGLE_STEP);
-                       }
-
-                       ctrl = ocd_read(DC);
-                       ctrl &= ~(1 << OCD_DC_SS_BIT);
-                       ocd_write(DC, ctrl);
-
-                       return regs;
-               } else {
-                       printk(KERN_ERR "Unexpected OCD_DS value: 0x%08x\n",
-                                       status);
-                       printk(KERN_ERR "Thread flags: 0x%08lx\n", ti->flags);
-                       die("Unhandled debug trap in kernel mode",
-                                       regs, SIGTRAP);
-               }
-       } else if (status & (1 << OCD_DS_SSS_BIT)) {
-               /* Single step in user mode */
-               code = TRAP_TRACE;
-
-               ctrl = ocd_read(DC);
-               ctrl &= ~(1 << OCD_DC_SS_BIT);
-               ocd_write(DC, ctrl);
-       }
-
-       pr_debug("Sending SIGTRAP: code=%d PC=0x%08lx SR=0x%08lx\n",
-                       code, regs->pc, regs->sr);
-
-       clear_thread_flag(TIF_SINGLE_STEP);
-       _exception(SIGTRAP, regs, code, instruction_pointer(regs));
-
-       return regs;
-}
diff --git a/arch/avr32/kernel/setup.c b/arch/avr32/kernel/setup.c
deleted file mode 100644 (file)
index e692889..0000000
+++ /dev/null
@@ -1,609 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/clk.h>
-#include <linux/init.h>
-#include <linux/initrd.h>
-#include <linux/sched.h>
-#include <linux/console.h>
-#include <linux/ioport.h>
-#include <linux/bootmem.h>
-#include <linux/fs.h>
-#include <linux/module.h>
-#include <linux/pfn.h>
-#include <linux/root_dev.h>
-#include <linux/cpu.h>
-#include <linux/kernel.h>
-
-#include <asm/sections.h>
-#include <asm/processor.h>
-#include <asm/pgtable.h>
-#include <asm/setup.h>
-#include <asm/sysreg.h>
-
-#include <mach/board.h>
-#include <mach/init.h>
-
-extern int root_mountflags;
-
-/*
- * Initialize loops_per_jiffy as 5000000 (500MIPS).
- * Better make it too large than too small...
- */
-struct avr32_cpuinfo boot_cpu_data = {
-       .loops_per_jiffy = 5000000
-};
-EXPORT_SYMBOL(boot_cpu_data);
-
-static char __initdata command_line[COMMAND_LINE_SIZE];
-
-/*
- * Standard memory resources
- */
-static struct resource __initdata kernel_data = {
-       .name   = "Kernel data",
-       .start  = 0,
-       .end    = 0,
-       .flags  = IORESOURCE_SYSTEM_RAM,
-};
-static struct resource __initdata kernel_code = {
-       .name   = "Kernel code",
-       .start  = 0,
-       .end    = 0,
-       .flags  = IORESOURCE_SYSTEM_RAM,
-       .sibling = &kernel_data,
-};
-
-/*
- * Available system RAM and reserved regions as singly linked
- * lists. These lists are traversed using the sibling pointer in
- * struct resource and are kept sorted at all times.
- */
-static struct resource *__initdata system_ram;
-static struct resource *__initdata reserved = &kernel_code;
-
-/*
- * We need to allocate these before the bootmem allocator is up and
- * running, so we need this "cache". 32 entries are probably enough
- * for all but the most insanely complex systems.
- */
-static struct resource __initdata res_cache[32];
-static unsigned int __initdata res_cache_next_free;
-
-static void __init resource_init(void)
-{
-       struct resource *mem, *res;
-       struct resource *new;
-
-       kernel_code.start = __pa(init_mm.start_code);
-
-       for (mem = system_ram; mem; mem = mem->sibling) {
-               new = alloc_bootmem_low(sizeof(struct resource));
-               memcpy(new, mem, sizeof(struct resource));
-
-               new->sibling = NULL;
-               if (request_resource(&iomem_resource, new))
-                       printk(KERN_WARNING "Bad RAM resource %08x-%08x\n",
-                              mem->start, mem->end);
-       }
-
-       for (res = reserved; res; res = res->sibling) {
-               new = alloc_bootmem_low(sizeof(struct resource));
-               memcpy(new, res, sizeof(struct resource));
-
-               new->sibling = NULL;
-               if (insert_resource(&iomem_resource, new))
-                       printk(KERN_WARNING
-                              "Bad reserved resource %s (%08x-%08x)\n",
-                              res->name, res->start, res->end);
-       }
-}
-
-static void __init
-add_physical_memory(resource_size_t start, resource_size_t end)
-{
-       struct resource *new, *next, **pprev;
-
-       for (pprev = &system_ram, next = system_ram; next;
-            pprev = &next->sibling, next = next->sibling) {
-               if (end < next->start)
-                       break;
-               if (start <= next->end) {
-                       printk(KERN_WARNING
-                              "Warning: Physical memory map is broken\n");
-                       printk(KERN_WARNING
-                              "Warning: %08x-%08x overlaps %08x-%08x\n",
-                              start, end, next->start, next->end);
-                       return;
-               }
-       }
-
-       if (res_cache_next_free >= ARRAY_SIZE(res_cache)) {
-               printk(KERN_WARNING
-                      "Warning: Failed to add physical memory %08x-%08x\n",
-                      start, end);
-               return;
-       }
-
-       new = &res_cache[res_cache_next_free++];
-       new->start = start;
-       new->end = end;
-       new->name = "System RAM";
-       new->flags = IORESOURCE_SYSTEM_RAM;
-
-       *pprev = new;
-}
-
-static int __init
-add_reserved_region(resource_size_t start, resource_size_t end,
-                   const char *name)
-{
-       struct resource *new, *next, **pprev;
-
-       if (end < start)
-               return -EINVAL;
-
-       if (res_cache_next_free >= ARRAY_SIZE(res_cache))
-               return -ENOMEM;
-
-       for (pprev = &reserved, next = reserved; next;
-            pprev = &next->sibling, next = next->sibling) {
-               if (end < next->start)
-                       break;
-               if (start <= next->end)
-                       return -EBUSY;
-       }
-
-       new = &res_cache[res_cache_next_free++];
-       new->start = start;
-       new->end = end;
-       new->name = name;
-       new->sibling = next;
-       new->flags = IORESOURCE_MEM;
-
-       *pprev = new;
-
-       return 0;
-}
-
-static unsigned long __init
-find_free_region(const struct resource *mem, resource_size_t size,
-                resource_size_t align)
-{
-       struct resource *res;
-       unsigned long target;
-
-       target = ALIGN(mem->start, align);
-       for (res = reserved; res; res = res->sibling) {
-               if ((target + size) <= res->start)
-                       break;
-               if (target <= res->end)
-                       target = ALIGN(res->end + 1, align);
-       }
-
-       if ((target + size) > (mem->end + 1))
-               return mem->end + 1;
-
-       return target;
-}
-
-static int __init
-alloc_reserved_region(resource_size_t *start, resource_size_t size,
-                     resource_size_t align, const char *name)
-{
-       struct resource *mem;
-       resource_size_t target;
-       int ret;
-
-       for (mem = system_ram; mem; mem = mem->sibling) {
-               target = find_free_region(mem, size, align);
-               if (target <= mem->end) {
-                       ret = add_reserved_region(target, target + size - 1,
-                                                 name);
-                       if (!ret)
-                               *start = target;
-                       return ret;
-               }
-       }
-
-       return -ENOMEM;
-}
-
-/*
- * Early framebuffer allocation. Works as follows:
- *   - If fbmem_size is zero, nothing will be allocated or reserved.
- *   - If fbmem_start is zero when setup_bootmem() is called,
- *     a block of fbmem_size bytes will be reserved before bootmem
- *     initialization. It will be aligned to the largest page size
- *     that fbmem_size is a multiple of.
- *   - If fbmem_start is nonzero, an area of size fbmem_size will be
- *     reserved at the physical address fbmem_start if possible. If
- *     it collides with other reserved memory, a different block of
- *     same size will be allocated, just as if fbmem_start was zero.
- *
- * Board-specific code may use these variables to set up platform data
- * for the framebuffer driver if fbmem_size is nonzero.
- */
-resource_size_t __initdata fbmem_start;
-resource_size_t __initdata fbmem_size;
-
-/*
- * "fbmem=xxx[kKmM]" allocates the specified amount of boot memory for
- * use as framebuffer.
- *
- * "fbmem=xxx[kKmM]@yyy[kKmM]" defines a memory region of size xxx and
- * starting at yyy to be reserved for use as framebuffer.
- *
- * The kernel won't verify that the memory region starting at yyy
- * actually contains usable RAM.
- */
-static int __init early_parse_fbmem(char *p)
-{
-       int ret;
-       unsigned long align;
-
-       fbmem_size = memparse(p, &p);
-       if (*p == '@') {
-               fbmem_start = memparse(p + 1, &p);
-               ret = add_reserved_region(fbmem_start,
-                                         fbmem_start + fbmem_size - 1,
-                                         "Framebuffer");
-               if (ret) {
-                       printk(KERN_WARNING
-                              "Failed to reserve framebuffer memory\n");
-                       fbmem_start = 0;
-               }
-       }
-
-       if (!fbmem_start) {
-               if ((fbmem_size & 0x000fffffUL) == 0)
-                       align = 0x100000;       /* 1 MiB */
-               else if ((fbmem_size & 0x0000ffffUL) == 0)
-                       align = 0x10000;        /* 64 KiB */
-               else
-                       align = 0x1000;         /* 4 KiB */
-
-               ret = alloc_reserved_region(&fbmem_start, fbmem_size,
-                                           align, "Framebuffer");
-               if (ret) {
-                       printk(KERN_WARNING
-                              "Failed to allocate framebuffer memory\n");
-                       fbmem_size = 0;
-               } else {
-                       memset(__va(fbmem_start), 0, fbmem_size);
-               }
-       }
-
-       return 0;
-}
-early_param("fbmem", early_parse_fbmem);
-
-/*
- * Pick out the memory size.  We look for mem=size@start,
- * where start and size are "size[KkMmGg]"
- */
-static int __init early_mem(char *p)
-{
-       resource_size_t size, start;
-
-       start = system_ram->start;
-       size  = memparse(p, &p);
-       if (*p == '@')
-               start = memparse(p + 1, &p);
-
-       system_ram->start = start;
-       system_ram->end = system_ram->start + size - 1;
-       return 0;
-}
-early_param("mem", early_mem);
-
-static int __init parse_tag_core(struct tag *tag)
-{
-       if (tag->hdr.size > 2) {
-               if ((tag->u.core.flags & 1) == 0)
-                       root_mountflags &= ~MS_RDONLY;
-               ROOT_DEV = new_decode_dev(tag->u.core.rootdev);
-       }
-       return 0;
-}
-__tagtable(ATAG_CORE, parse_tag_core);
-
-static int __init parse_tag_mem(struct tag *tag)
-{
-       unsigned long start, end;
-
-       /*
-        * Ignore zero-sized entries. If we're running standalone, the
-        * SDRAM code may emit such entries if something goes
-        * wrong...
-        */
-       if (tag->u.mem_range.size == 0)
-               return 0;
-
-       start = tag->u.mem_range.addr;
-       end = tag->u.mem_range.addr + tag->u.mem_range.size - 1;
-
-       add_physical_memory(start, end);
-       return 0;
-}
-__tagtable(ATAG_MEM, parse_tag_mem);
-
-static int __init parse_tag_rdimg(struct tag *tag)
-{
-#ifdef CONFIG_BLK_DEV_INITRD
-       struct tag_mem_range *mem = &tag->u.mem_range;
-       int ret;
-
-       if (initrd_start) {
-               printk(KERN_WARNING
-                      "Warning: Only the first initrd image will be used\n");
-               return 0;
-       }
-
-       ret = add_reserved_region(mem->addr, mem->addr + mem->size - 1,
-                                 "initrd");
-       if (ret) {
-               printk(KERN_WARNING
-                      "Warning: Failed to reserve initrd memory\n");
-               return ret;
-       }
-
-       initrd_start = (unsigned long)__va(mem->addr);
-       initrd_end = initrd_start + mem->size;
-#else
-       printk(KERN_WARNING "RAM disk image present, but "
-              "no initrd support in kernel, ignoring\n");
-#endif
-
-       return 0;
-}
-__tagtable(ATAG_RDIMG, parse_tag_rdimg);
-
-static int __init parse_tag_rsvd_mem(struct tag *tag)
-{
-       struct tag_mem_range *mem = &tag->u.mem_range;
-
-       return add_reserved_region(mem->addr, mem->addr + mem->size - 1,
-                                  "Reserved");
-}
-__tagtable(ATAG_RSVD_MEM, parse_tag_rsvd_mem);
-
-static int __init parse_tag_cmdline(struct tag *tag)
-{
-       strlcpy(boot_command_line, tag->u.cmdline.cmdline, COMMAND_LINE_SIZE);
-       return 0;
-}
-__tagtable(ATAG_CMDLINE, parse_tag_cmdline);
-
-static int __init parse_tag_clock(struct tag *tag)
-{
-       /*
-        * We'll figure out the clocks by peeking at the system
-        * manager regs directly.
-        */
-       return 0;
-}
-__tagtable(ATAG_CLOCK, parse_tag_clock);
-
-/*
- * The board_number correspond to the bd->bi_board_number in U-Boot. This
- * parameter is only available during initialisation and can be used in some
- * kind of board identification.
- */
-u32 __initdata board_number;
-
-static int __init parse_tag_boardinfo(struct tag *tag)
-{
-       board_number = tag->u.boardinfo.board_number;
-
-       return 0;
-}
-__tagtable(ATAG_BOARDINFO, parse_tag_boardinfo);
-
-/*
- * Scan the tag table for this tag, and call its parse function. The
- * tag table is built by the linker from all the __tagtable
- * declarations.
- */
-static int __init parse_tag(struct tag *tag)
-{
-       extern struct tagtable __tagtable_begin, __tagtable_end;
-       struct tagtable *t;
-
-       for (t = &__tagtable_begin; t < &__tagtable_end; t++)
-               if (tag->hdr.tag == t->tag) {
-                       t->parse(tag);
-                       break;
-               }
-
-       return t < &__tagtable_end;
-}
-
-/*
- * Parse all tags in the list we got from the boot loader
- */
-static void __init parse_tags(struct tag *t)
-{
-       for (; t->hdr.tag != ATAG_NONE; t = tag_next(t))
-               if (!parse_tag(t))
-                       printk(KERN_WARNING
-                              "Ignoring unrecognised tag 0x%08x\n",
-                              t->hdr.tag);
-}
-
-/*
- * Find a free memory region large enough for storing the
- * bootmem bitmap.
- */
-static unsigned long __init
-find_bootmap_pfn(const struct resource *mem)
-{
-       unsigned long bootmap_pages, bootmap_len;
-       unsigned long node_pages = PFN_UP(resource_size(mem));
-       unsigned long bootmap_start;
-
-       bootmap_pages = bootmem_bootmap_pages(node_pages);
-       bootmap_len = bootmap_pages << PAGE_SHIFT;
-
-       /*
-        * Find a large enough region without reserved pages for
-        * storing the bootmem bitmap. We can take advantage of the
-        * fact that all lists have been sorted.
-        *
-        * We have to check that we don't collide with any reserved
-        * regions, which includes the kernel image and any RAMDISK
-        * images.
-        */
-       bootmap_start = find_free_region(mem, bootmap_len, PAGE_SIZE);
-
-       return bootmap_start >> PAGE_SHIFT;
-}
-
-#define MAX_LOWMEM     HIGHMEM_START
-#define MAX_LOWMEM_PFN PFN_DOWN(MAX_LOWMEM)
-
-static void __init setup_bootmem(void)
-{
-       unsigned bootmap_size;
-       unsigned long first_pfn, bootmap_pfn, pages;
-       unsigned long max_pfn, max_low_pfn;
-       unsigned node = 0;
-       struct resource *res;
-
-       printk(KERN_INFO "Physical memory:\n");
-       for (res = system_ram; res; res = res->sibling)
-               printk("  %08x-%08x\n", res->start, res->end);
-       printk(KERN_INFO "Reserved memory:\n");
-       for (res = reserved; res; res = res->sibling)
-               printk("  %08x-%08x: %s\n",
-                      res->start, res->end, res->name);
-
-       nodes_clear(node_online_map);
-
-       if (system_ram->sibling)
-               printk(KERN_WARNING "Only using first memory bank\n");
-
-       for (res = system_ram; res; res = NULL) {
-               first_pfn = PFN_UP(res->start);
-               max_low_pfn = max_pfn = PFN_DOWN(res->end + 1);
-               bootmap_pfn = find_bootmap_pfn(res);
-               if (bootmap_pfn > max_pfn)
-                       panic("No space for bootmem bitmap!\n");
-
-               if (max_low_pfn > MAX_LOWMEM_PFN) {
-                       max_low_pfn = MAX_LOWMEM_PFN;
-#ifndef CONFIG_HIGHMEM
-                       /*
-                        * Lowmem is memory that can be addressed
-                        * directly through P1/P2
-                        */
-                       printk(KERN_WARNING
-                              "Node %u: Only %ld MiB of memory will be used.\n",
-                              node, MAX_LOWMEM >> 20);
-                       printk(KERN_WARNING "Use a HIGHMEM enabled kernel.\n");
-#else
-#error HIGHMEM is not supported by AVR32 yet
-#endif
-               }
-
-               /* Initialize the boot-time allocator with low memory only. */
-               bootmap_size = init_bootmem_node(NODE_DATA(node), bootmap_pfn,
-                                                first_pfn, max_low_pfn);
-
-               /*
-                * Register fully available RAM pages with the bootmem
-                * allocator.
-                */
-               pages = max_low_pfn - first_pfn;
-               free_bootmem_node (NODE_DATA(node), PFN_PHYS(first_pfn),
-                                  PFN_PHYS(pages));
-
-               /* Reserve space for the bootmem bitmap... */
-               reserve_bootmem_node(NODE_DATA(node),
-                                    PFN_PHYS(bootmap_pfn),
-                                    bootmap_size,
-                                    BOOTMEM_DEFAULT);
-
-               /* ...and any other reserved regions. */
-               for (res = reserved; res; res = res->sibling) {
-                       if (res->start > PFN_PHYS(max_pfn))
-                               break;
-
-                       /*
-                        * resource_init will complain about partial
-                        * overlaps, so we'll just ignore such
-                        * resources for now.
-                        */
-                       if (res->start >= PFN_PHYS(first_pfn)
-                           && res->end < PFN_PHYS(max_pfn))
-                               reserve_bootmem_node(NODE_DATA(node),
-                                                    res->start,
-                                                    resource_size(res),
-                                                    BOOTMEM_DEFAULT);
-               }
-
-               node_set_online(node);
-       }
-}
-
-void __init setup_arch (char **cmdline_p)
-{
-       struct clk *cpu_clk;
-
-       init_mm.start_code = (unsigned long)_stext;
-       init_mm.end_code = (unsigned long)_etext;
-       init_mm.end_data = (unsigned long)_edata;
-       init_mm.brk = (unsigned long)_end;
-
-       /*
-        * Include .init section to make allocations easier. It will
-        * be removed before the resource is actually requested.
-        */
-       kernel_code.start = __pa(__init_begin);
-       kernel_code.end = __pa(init_mm.end_code - 1);
-       kernel_data.start = __pa(init_mm.end_code);
-       kernel_data.end = __pa(init_mm.brk - 1);
-
-       parse_tags(bootloader_tags);
-
-       setup_processor();
-       setup_platform();
-       setup_board();
-
-       cpu_clk = clk_get(NULL, "cpu");
-       if (IS_ERR(cpu_clk)) {
-               printk(KERN_WARNING "Warning: Unable to get CPU clock\n");
-       } else {
-               unsigned long cpu_hz = clk_get_rate(cpu_clk);
-
-               /*
-                * Well, duh, but it's probably a good idea to
-                * increment the use count.
-                */
-               clk_enable(cpu_clk);
-
-               boot_cpu_data.clk = cpu_clk;
-               boot_cpu_data.loops_per_jiffy = cpu_hz * 4;
-               printk("CPU: Running at %lu.%03lu MHz\n",
-                      ((cpu_hz + 500) / 1000) / 1000,
-                      ((cpu_hz + 500) / 1000) % 1000);
-       }
-
-       strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
-       *cmdline_p = command_line;
-       parse_early_param();
-
-       setup_bootmem();
-
-#ifdef CONFIG_VT
-       conswitchp = &dummy_con;
-#endif
-
-       paging_init();
-       resource_init();
-}
diff --git a/arch/avr32/kernel/signal.c b/arch/avr32/kernel/signal.c
deleted file mode 100644 (file)
index b5fcc49..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * Based on linux/arch/sh/kernel/signal.c
- *  Copyright (C) 1999, 2000  Niibe Yutaka & Kaz Kojima
- *  Copyright (C) 1991, 1992  Linus Torvalds
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/sched.h>
-#include <linux/mm.h>
-#include <linux/errno.h>
-#include <linux/ptrace.h>
-#include <linux/unistd.h>
-#include <linux/tracehook.h>
-
-#include <linux/uaccess.h>
-#include <asm/ucontext.h>
-#include <asm/syscalls.h>
-
-struct rt_sigframe
-{
-       struct siginfo info;
-       struct ucontext uc;
-       unsigned long retcode;
-};
-
-static int
-restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc)
-{
-       int err = 0;
-
-#define COPY(x)                err |= __get_user(regs->x, &sc->x)
-       COPY(sr);
-       COPY(pc);
-       COPY(lr);
-       COPY(sp);
-       COPY(r12);
-       COPY(r11);
-       COPY(r10);
-       COPY(r9);
-       COPY(r8);
-       COPY(r7);
-       COPY(r6);
-       COPY(r5);
-       COPY(r4);
-       COPY(r3);
-       COPY(r2);
-       COPY(r1);
-       COPY(r0);
-#undef COPY
-
-       /*
-        * Don't allow anyone to pretend they're running in supervisor
-        * mode or something...
-        */
-       err |= !valid_user_regs(regs);
-
-       return err;
-}
-
-
-asmlinkage int sys_rt_sigreturn(struct pt_regs *regs)
-{
-       struct rt_sigframe __user *frame;
-       sigset_t set;
-
-       /* Always make any pending restarted system calls return -EINTR */
-       current->restart_block.fn = do_no_restart_syscall;
-
-       frame = (struct rt_sigframe __user *)regs->sp;
-       pr_debug("SIG return: frame = %p\n", frame);
-
-       if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
-               goto badframe;
-
-       if (__copy_from_user(&set, &frame->uc.uc_sigmask, sizeof(set)))
-               goto badframe;
-
-       set_current_blocked(&set);
-
-       if (restore_sigcontext(regs, &frame->uc.uc_mcontext))
-               goto badframe;
-
-       if (restore_altstack(&frame->uc.uc_stack))
-               goto badframe;
-
-       pr_debug("Context restored: pc = %08lx, lr = %08lx, sp = %08lx\n",
-                regs->pc, regs->lr, regs->sp);
-
-       return regs->r12;
-
-badframe:
-       force_sig(SIGSEGV, current);
-       return 0;
-}
-
-static int
-setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs)
-{
-       int err = 0;
-
-#define COPY(x)                err |= __put_user(regs->x, &sc->x)
-       COPY(sr);
-       COPY(pc);
-       COPY(lr);
-       COPY(sp);
-       COPY(r12);
-       COPY(r11);
-       COPY(r10);
-       COPY(r9);
-       COPY(r8);
-       COPY(r7);
-       COPY(r6);
-       COPY(r5);
-       COPY(r4);
-       COPY(r3);
-       COPY(r2);
-       COPY(r1);
-       COPY(r0);
-#undef COPY
-
-       return err;
-}
-
-static inline void __user *
-get_sigframe(struct ksignal *ksig, struct pt_regs *regs, int framesize)
-{
-       unsigned long sp = sigsp(regs->sp, ksig);
-
-       return (void __user *)((sp - framesize) & ~3);
-}
-
-static int
-setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs)
-{
-       struct rt_sigframe __user *frame;
-       int err = 0;
-
-       frame = get_sigframe(ksig, regs, sizeof(*frame));
-       err = -EFAULT;
-       if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame)))
-               goto out;
-
-       /*
-        * Set up the return code:
-        *
-        *      mov     r8, __NR_rt_sigreturn
-        *      scall
-        *
-        * Note: This will blow up since we're using a non-executable
-        * stack. Better use SA_RESTORER.
-        */
-#if __NR_rt_sigreturn > 127
-# error __NR_rt_sigreturn must be < 127 to fit in a short mov
-#endif
-       err = __put_user(0x3008d733 | (__NR_rt_sigreturn << 20),
-                        &frame->retcode);
-
-       err |= copy_siginfo_to_user(&frame->info, &ksig->info);
-
-       /* Set up the ucontext */
-       err |= __put_user(0, &frame->uc.uc_flags);
-       err |= __put_user(NULL, &frame->uc.uc_link);
-       err |= __save_altstack(&frame->uc.uc_stack, regs->sp);
-       err |= setup_sigcontext(&frame->uc.uc_mcontext, regs);
-       err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
-
-       if (err)
-               goto out;
-
-       regs->r12 = ksig->sig;
-       regs->r11 = (unsigned long) &frame->info;
-       regs->r10 = (unsigned long) &frame->uc;
-       regs->sp = (unsigned long) frame;
-       if (ksig->ka.sa.sa_flags & SA_RESTORER)
-               regs->lr = (unsigned long)ksig->ka.sa.sa_restorer;
-       else {
-               printk(KERN_NOTICE "[%s:%d] did not set SA_RESTORER\n",
-                      current->comm, current->pid);
-               regs->lr = (unsigned long) &frame->retcode;
-       }
-
-       pr_debug("SIG deliver [%s:%d]: sig=%d sp=0x%lx pc=0x%lx->0x%p lr=0x%lx\n",
-                current->comm, current->pid, ksig->sig, regs->sp,
-                regs->pc, ksig->ka.sa.sa_handler, regs->lr);
-
-       regs->pc = (unsigned long)ksig->ka.sa.sa_handler;
-
-out:
-       return err;
-}
-
-static inline void setup_syscall_restart(struct pt_regs *regs)
-{
-       if (regs->r12 == -ERESTART_RESTARTBLOCK)
-               regs->r8 = __NR_restart_syscall;
-       else
-               regs->r12 = regs->r12_orig;
-       regs->pc -= 2;
-}
-
-static inline void
-handle_signal(struct ksignal *ksig, struct pt_regs *regs, int syscall)
-{
-       int ret;
-
-       /*
-        * Set up the stack frame
-        */
-       ret = setup_rt_frame(ksig, sigmask_to_save(), regs);
-
-       /*
-        * Check that the resulting registers are sane
-        */
-       ret |= !valid_user_regs(regs);
-
-       /*
-        * Block the signal if we were successful.
-        */
-       signal_setup_done(ret, ksig, 0);
-}
-
-/*
- * Note that 'init' is a special process: it doesn't get signals it
- * doesn't want to handle. Thus you cannot kill init even with a
- * SIGKILL even by mistake.
- */
-static void do_signal(struct pt_regs *regs, int syscall)
-{
-       struct ksignal ksig;
-
-       /*
-        * We want the common case to go fast, which is why we may in
-        * certain cases get here from kernel mode. Just return
-        * without doing anything if so.
-        */
-       if (!user_mode(regs))
-               return;
-
-       get_signal(&ksig);
-       if (syscall) {
-               switch (regs->r12) {
-               case -ERESTART_RESTARTBLOCK:
-               case -ERESTARTNOHAND:
-                       if (ksig.sig > 0) {
-                               regs->r12 = -EINTR;
-                               break;
-                       }
-                       /* fall through */
-               case -ERESTARTSYS:
-                       if (ksig.sig > 0 && !(ksig.ka.sa.sa_flags & SA_RESTART)) {
-                               regs->r12 = -EINTR;
-                               break;
-                       }
-                       /* fall through */
-               case -ERESTARTNOINTR:
-                       setup_syscall_restart(regs);
-               }
-       }
-
-       if (!ksig.sig) {
-               /* No signal to deliver -- put the saved sigmask back */
-               restore_saved_sigmask();
-               return;
-       }
-
-       handle_signal(&ksig, regs, syscall);
-}
-
-asmlinkage void do_notify_resume(struct pt_regs *regs, struct thread_info *ti)
-{
-       int syscall = 0;
-
-       if ((sysreg_read(SR) & MODE_MASK) == MODE_SUPERVISOR)
-               syscall = 1;
-
-       if (ti->flags & _TIF_SIGPENDING)
-               do_signal(regs, syscall);
-
-       if (ti->flags & _TIF_NOTIFY_RESUME) {
-               clear_thread_flag(TIF_NOTIFY_RESUME);
-               tracehook_notify_resume(regs);
-       }
-}
diff --git a/arch/avr32/kernel/stacktrace.c b/arch/avr32/kernel/stacktrace.c
deleted file mode 100644 (file)
index f8cc995..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Stack trace management functions
- *
- * Copyright (C) 2007 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/sched.h>
-#include <linux/sched/task_stack.h>
-#include <linux/stacktrace.h>
-#include <linux/thread_info.h>
-#include <linux/module.h>
-
-register unsigned long current_frame_pointer asm("r7");
-
-struct stackframe {
-       unsigned long lr;
-       unsigned long fp;
-};
-
-/*
- * Save stack-backtrace addresses into a stack_trace buffer.
- */
-void save_stack_trace(struct stack_trace *trace)
-{
-       unsigned long low, high;
-       unsigned long fp;
-       struct stackframe *frame;
-       int skip = trace->skip;
-
-       low = (unsigned long)task_stack_page(current);
-       high = low + THREAD_SIZE;
-       fp = current_frame_pointer;
-
-       while (fp >= low && fp <= (high - 8)) {
-               frame = (struct stackframe *)fp;
-
-               if (skip) {
-                       skip--;
-               } else {
-                       trace->entries[trace->nr_entries++] = frame->lr;
-                       if (trace->nr_entries >= trace->max_entries)
-                               break;
-               }
-
-               /*
-                * The next frame must be at a higher address than the
-                * current frame.
-                */
-               low = fp + 8;
-               fp = frame->fp;
-       }
-}
-EXPORT_SYMBOL_GPL(save_stack_trace);
diff --git a/arch/avr32/kernel/switch_to.S b/arch/avr32/kernel/switch_to.S
deleted file mode 100644 (file)
index a48d046..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <asm/sysreg.h>
-
-       .text
-       .global __switch_to
-       .type   __switch_to, @function
-
-       /* Switch thread context from "prev" to "next", returning "last"
-        *   r12 :      prev
-        *   r11 :      &prev->thread + 1
-        *   r10 :      &next->thread
-        */
-__switch_to:
-       stm     --r11, r0,r1,r2,r3,r4,r5,r6,r7,sp,lr
-       mfsr    r9, SYSREG_SR
-       st.w    --r11, r9
-       ld.w    r8, r10++
-       /*
-        * schedule() may have been called from a mode with a different
-        * set of registers. Make sure we don't lose anything here.
-        */
-       pushm   r10,r12
-       mtsr    SYSREG_SR, r8
-       frs                     /* flush the return stack */
-       sub     pc, -2          /* flush the pipeline */
-       popm    r10,r12
-       ldm     r10++, r0,r1,r2,r3,r4,r5,r6,r7,sp,pc
-       .size   __switch_to, . - __switch_to
diff --git a/arch/avr32/kernel/syscall-stubs.S b/arch/avr32/kernel/syscall-stubs.S
deleted file mode 100644 (file)
index cb25653..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (C) 2005-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-/*
- * Stubs for syscalls that require access to pt_regs or that take more
- * than five parameters.
- */
-
-#define ARG6   r3
-
-       .text
-       .global __sys_rt_sigsuspend
-       .type   __sys_rt_sigsuspend,@function
-__sys_rt_sigsuspend:
-       mov     r10, sp
-       rjmp    sys_rt_sigsuspend
-
-       .global __sys_rt_sigreturn
-       .type   __sys_rt_sigreturn,@function
-__sys_rt_sigreturn:
-       mov     r12, sp
-       rjmp    sys_rt_sigreturn
-
-       .global __sys_mmap2
-       .type   __sys_mmap2,@function
-__sys_mmap2:
-       pushm   lr
-       st.w    --sp, ARG6
-       call    sys_mmap_pgoff
-       sub     sp, -4
-       popm    pc
-
-       .global __sys_sendto
-       .type   __sys_sendto,@function
-__sys_sendto:
-       pushm   lr
-       st.w    --sp, ARG6
-       call    sys_sendto
-       sub     sp, -4
-       popm    pc
-
-       .global __sys_recvfrom
-       .type   __sys_recvfrom,@function
-__sys_recvfrom:
-       pushm   lr
-       st.w    --sp, ARG6
-       call    sys_recvfrom
-       sub     sp, -4
-       popm    pc
-
-       .global __sys_pselect6
-       .type   __sys_pselect6,@function
-__sys_pselect6:
-       pushm   lr
-       st.w    --sp, ARG6
-       call    sys_pselect6
-       sub     sp, -4
-       popm    pc
-
-       .global __sys_splice
-       .type   __sys_splice,@function
-__sys_splice:
-       pushm   lr
-       st.w    --sp, ARG6
-       call    sys_splice
-       sub     sp, -4
-       popm    pc
-
-       .global __sys_epoll_pwait
-       .type   __sys_epoll_pwait,@function
-__sys_epoll_pwait:
-       pushm   lr
-       st.w    --sp, ARG6
-       call    sys_epoll_pwait
-       sub     sp, -4
-       popm    pc
-
-       .global __sys_sync_file_range
-       .type   __sys_sync_file_range,@function
-__sys_sync_file_range:
-       pushm   lr
-       st.w    --sp, ARG6
-       call    sys_sync_file_range
-       sub     sp, -4
-       popm    pc
-
-       .global __sys_fallocate
-       .type   __sys_fallocate,@function
-__sys_fallocate:
-       pushm   lr
-       st.w    --sp, ARG6
-       call    sys_fallocate
-       sub     sp, -4
-       popm    pc
-
-       .global __sys_fanotify_mark
-       .type   __sys_fanotify_mark,@function
-__sys_fanotify_mark:
-       pushm   lr
-       st.w    --sp, ARG6
-       call    sys_fanotify_mark
-       sub     sp, -4
-       popm    pc
-
-       .global __sys_process_vm_readv
-       .type   __sys_process_vm_readv,@function
-__sys_process_vm_readv:
-       pushm   lr
-       st.w    --sp, ARG6
-       call    sys_process_vm_readv
-       sub     sp, -4
-       popm    pc
-
-       .global __sys_process_vm_writev
-       .type   __sys_process_vm_writev,@function
-__sys_process_vm_writev:
-       pushm   lr
-       st.w    --sp, ARG6
-       call    sys_process_vm_writev
-       sub     sp, -4
-       popm    pc
-
-       .global __sys_copy_file_range
-       .type   __sys_copy_file_range,@function
-__sys_copy_file_range:
-       pushm   lr
-       st.w    --sp, ARG6
-       call    sys_copy_file_range
-       sub     sp, -4
-       popm    pc
-
-       .global __sys_preadv2
-       .type   __sys_preadv2,@function
-__sys_preadv2:
-       pushm   lr
-       st.w    --sp, ARG6
-       call    sys_preadv2
-       sub     sp, -4
-       popm    pc
-
-       .global __sys_pwritev2
-       .type   __sys_pwritev2,@function
-__sys_pwritev2:
-       pushm   lr
-       st.w    --sp, ARG6
-       call    sys_pwritev2
-       sub     sp, -4
-       popm    pc
diff --git a/arch/avr32/kernel/syscall_table.S b/arch/avr32/kernel/syscall_table.S
deleted file mode 100644 (file)
index 774ce57..0000000
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
- * AVR32 system call table
- *
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-       .section .rodata,"a",@progbits
-       .type sys_call_table,@object
-       .global sys_call_table
-       .align 2
-sys_call_table:
-       .long sys_restart_syscall
-       .long sys_exit
-       .long sys_fork
-       .long sys_read
-       .long sys_write
-       .long sys_open
-       .long sys_close
-       .long sys_umask
-       .long sys_creat
-       .long sys_link
-       .long sys_unlink /* 10 */
-       .long sys_execve
-       .long sys_chdir
-       .long sys_time
-       .long sys_mknod
-       .long sys_chmod
-       .long sys_chown
-       .long sys_lchown
-       .long sys_lseek
-       .long sys_llseek
-       .long sys_getpid /* 20 */
-       .long sys_mount
-       .long sys_umount
-       .long sys_setuid
-       .long sys_getuid
-       .long sys_stime
-       .long sys_ptrace
-       .long sys_alarm
-       .long sys_pause
-       .long sys_utime
-       .long sys_newstat /* 30 */
-       .long sys_newfstat
-       .long sys_newlstat
-       .long sys_access
-       .long sys_chroot
-       .long sys_sync
-       .long sys_fsync
-       .long sys_kill
-       .long sys_rename
-       .long sys_mkdir
-       .long sys_rmdir /* 40 */
-       .long sys_dup
-       .long sys_pipe
-       .long sys_times
-       .long sys_clone
-       .long sys_brk
-       .long sys_setgid
-       .long sys_getgid
-       .long sys_getcwd
-       .long sys_geteuid
-       .long sys_getegid /* 50 */
-       .long sys_acct
-       .long sys_setfsuid
-       .long sys_setfsgid
-       .long sys_ioctl
-       .long sys_fcntl
-       .long sys_setpgid
-       .long sys_mremap
-       .long sys_setresuid
-       .long sys_getresuid
-       .long sys_setreuid /* 60 */
-       .long sys_setregid
-       .long sys_ustat
-       .long sys_dup2
-       .long sys_getppid
-       .long sys_getpgrp
-       .long sys_setsid
-       .long sys_rt_sigaction
-       .long __sys_rt_sigreturn
-       .long sys_rt_sigprocmask
-       .long sys_rt_sigpending /* 70 */
-       .long sys_rt_sigtimedwait
-       .long sys_rt_sigqueueinfo
-       .long __sys_rt_sigsuspend
-       .long sys_sethostname
-       .long sys_setrlimit
-       .long sys_getrlimit
-       .long sys_getrusage
-       .long sys_gettimeofday
-       .long sys_settimeofday
-       .long sys_getgroups /* 80 */
-       .long sys_setgroups
-       .long sys_select
-       .long sys_symlink
-       .long sys_fchdir
-       .long sys_readlink
-       .long sys_pread64
-       .long sys_pwrite64
-       .long sys_swapon
-       .long sys_reboot
-       .long __sys_mmap2 /* 90 */
-       .long sys_munmap
-       .long sys_truncate
-       .long sys_ftruncate
-       .long sys_fchmod
-       .long sys_fchown
-       .long sys_getpriority
-       .long sys_setpriority
-       .long sys_wait4
-       .long sys_statfs
-       .long sys_fstatfs /* 100 */
-       .long sys_vhangup
-       .long sys_sigaltstack
-       .long sys_syslog
-       .long sys_setitimer
-       .long sys_getitimer
-       .long sys_swapoff
-       .long sys_sysinfo
-       .long sys_ni_syscall /* was sys_ipc briefly */
-       .long sys_sendfile
-       .long sys_setdomainname /* 110 */
-       .long sys_newuname
-       .long sys_adjtimex
-       .long sys_mprotect
-       .long sys_vfork
-       .long sys_init_module
-       .long sys_delete_module
-       .long sys_quotactl
-       .long sys_getpgid
-       .long sys_bdflush
-       .long sys_sysfs /* 120 */
-       .long sys_personality
-       .long sys_ni_syscall /* reserved for afs_syscall */
-       .long sys_getdents
-       .long sys_flock
-       .long sys_msync
-       .long sys_readv
-       .long sys_writev
-       .long sys_getsid
-       .long sys_fdatasync
-       .long sys_sysctl /* 130 */
-       .long sys_mlock
-       .long sys_munlock
-       .long sys_mlockall
-       .long sys_munlockall
-       .long sys_sched_setparam
-       .long sys_sched_getparam
-       .long sys_sched_setscheduler
-       .long sys_sched_getscheduler
-       .long sys_sched_yield
-       .long sys_sched_get_priority_max  /* 140 */
-       .long sys_sched_get_priority_min
-       .long sys_sched_rr_get_interval
-       .long sys_nanosleep
-       .long sys_poll
-       .long sys_ni_syscall /* 145 was nfsservctl */
-       .long sys_setresgid
-       .long sys_getresgid
-       .long sys_prctl
-       .long sys_socket
-       .long sys_bind /* 150 */
-       .long sys_connect
-       .long sys_listen
-       .long sys_accept
-       .long sys_getsockname
-       .long sys_getpeername
-       .long sys_socketpair
-       .long sys_send
-       .long sys_recv
-       .long __sys_sendto
-       .long __sys_recvfrom /* 160 */
-       .long sys_shutdown
-       .long sys_setsockopt
-       .long sys_getsockopt
-       .long sys_sendmsg
-       .long sys_recvmsg
-       .long sys_truncate64
-       .long sys_ftruncate64
-       .long sys_stat64
-       .long sys_lstat64
-       .long sys_fstat64 /* 170 */
-       .long sys_pivot_root
-       .long sys_mincore
-       .long sys_madvise
-       .long sys_getdents64
-       .long sys_fcntl64
-       .long sys_gettid
-       .long sys_readahead
-       .long sys_setxattr
-       .long sys_lsetxattr
-       .long sys_fsetxattr /* 180 */
-       .long sys_getxattr
-       .long sys_lgetxattr
-       .long sys_fgetxattr
-       .long sys_listxattr
-       .long sys_llistxattr
-       .long sys_flistxattr
-       .long sys_removexattr
-       .long sys_lremovexattr
-       .long sys_fremovexattr
-       .long sys_tkill /* 190 */
-       .long sys_sendfile64
-       .long sys_futex
-       .long sys_sched_setaffinity
-       .long sys_sched_getaffinity
-       .long sys_capget
-       .long sys_capset
-       .long sys_io_setup
-       .long sys_io_destroy
-       .long sys_io_getevents
-       .long sys_io_submit /* 200 */
-       .long sys_io_cancel
-       .long sys_fadvise64
-       .long sys_exit_group
-       .long sys_lookup_dcookie
-       .long sys_epoll_create
-       .long sys_epoll_ctl
-       .long sys_epoll_wait
-       .long sys_remap_file_pages
-       .long sys_set_tid_address
-       .long sys_timer_create /* 210 */
-       .long sys_timer_settime
-       .long sys_timer_gettime
-       .long sys_timer_getoverrun
-       .long sys_timer_delete
-       .long sys_clock_settime
-       .long sys_clock_gettime
-       .long sys_clock_getres
-       .long sys_clock_nanosleep
-       .long sys_statfs64
-       .long sys_fstatfs64 /* 220 */
-       .long sys_tgkill
-       .long sys_ni_syscall /* reserved for TUX */
-       .long sys_utimes
-       .long sys_fadvise64_64
-       .long sys_cacheflush
-       .long sys_ni_syscall /* sys_vserver */
-       .long sys_mq_open
-       .long sys_mq_unlink
-       .long sys_mq_timedsend
-       .long sys_mq_timedreceive /* 230 */
-       .long sys_mq_notify
-       .long sys_mq_getsetattr
-       .long sys_kexec_load
-       .long sys_waitid
-       .long sys_add_key
-       .long sys_request_key
-       .long sys_keyctl
-       .long sys_ioprio_set
-       .long sys_ioprio_get
-       .long sys_inotify_init /* 240 */
-       .long sys_inotify_add_watch
-       .long sys_inotify_rm_watch
-       .long sys_openat
-       .long sys_mkdirat
-       .long sys_mknodat
-       .long sys_fchownat
-       .long sys_futimesat
-       .long sys_fstatat64
-       .long sys_unlinkat
-       .long sys_renameat /* 250 */
-       .long sys_linkat
-       .long sys_symlinkat
-       .long sys_readlinkat
-       .long sys_fchmodat
-       .long sys_faccessat
-       .long __sys_pselect6
-       .long sys_ppoll
-       .long sys_unshare
-       .long sys_set_robust_list
-       .long sys_get_robust_list /* 260 */
-       .long __sys_splice
-       .long __sys_sync_file_range
-       .long sys_tee
-       .long sys_vmsplice
-       .long __sys_epoll_pwait
-       .long sys_msgget
-       .long sys_msgsnd
-       .long sys_msgrcv
-       .long sys_msgctl
-       .long sys_semget /* 270 */
-       .long sys_semop
-       .long sys_semctl
-       .long sys_semtimedop
-       .long sys_shmat
-       .long sys_shmget
-       .long sys_shmdt
-       .long sys_shmctl
-       .long sys_utimensat
-       .long sys_signalfd
-       .long sys_ni_syscall /* 280, was sys_timerfd */
-       .long sys_eventfd
-       .long sys_ni_syscall /* 282, was half-implemented recvmmsg */
-       .long sys_setns
-       .long sys_pread64
-       .long sys_pwrite64
-       .long sys_timerfd_create
-       .long __sys_fallocate
-       .long sys_timerfd_settime
-       .long sys_timerfd_gettime
-       .long sys_signalfd4 /* 290 */
-       .long sys_eventfd2
-       .long sys_epoll_create1
-       .long sys_dup3
-       .long sys_pipe2
-       .long sys_inotify_init1
-       .long sys_preadv
-       .long sys_pwritev
-       .long sys_rt_tgsigqueueinfo
-       .long sys_perf_event_open
-       .long sys_recvmmsg /* 300 */
-       .long sys_fanotify_init
-       .long __sys_fanotify_mark
-       .long sys_prlimit64
-       .long sys_name_to_handle_at
-       .long sys_open_by_handle_at
-       .long sys_clock_adjtime
-       .long sys_syncfs
-       .long sys_sendmmsg
-       .long __sys_process_vm_readv
-       .long __sys_process_vm_writev /* 310 */
-       .long sys_kcmp
-       .long sys_finit_module
-       .long sys_sched_setattr
-       .long sys_sched_getattr
-       .long sys_renameat2
-       .long sys_seccomp
-       .long sys_getrandom
-       .long sys_memfd_create
-       .long sys_bpf
-       .long sys_execveat /* 320 */
-       .long sys_accept4
-       .long sys_userfaultfd
-       .long sys_membarrier
-       .long sys_mlock2
-       .long __sys_copy_file_range
-       .long __sys_preadv2
-       .long __sys_pwritev2
-       .long sys_pkey_mprotect
-       .long sys_pkey_alloc
-       .long sys_pkey_free /* 330 */
-       .long sys_ni_syscall /* r8 is saturated at nr_syscalls */
diff --git a/arch/avr32/kernel/time.c b/arch/avr32/kernel/time.c
deleted file mode 100644 (file)
index 4d9b696..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) 2004-2007 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/clk.h>
-#include <linux/clockchips.h>
-#include <linux/init.h>
-#include <linux/interrupt.h>
-#include <linux/irq.h>
-#include <linux/kernel.h>
-#include <linux/time.h>
-#include <linux/cpu.h>
-
-#include <asm/sysreg.h>
-
-#include <mach/pm.h>
-
-static bool disable_cpu_idle_poll;
-
-static u64 read_cycle_count(struct clocksource *cs)
-{
-       return (u64)sysreg_read(COUNT);
-}
-
-/*
- * The architectural cycle count registers are a fine clocksource unless
- * the system idle loop use sleep states like "idle":  the CPU cycles
- * measured by COUNT (and COMPARE) don't happen during sleep states.
- * Their duration also changes if cpufreq changes the CPU clock rate.
- * So we rate the clocksource using COUNT as very low quality.
- */
-static struct clocksource counter = {
-       .name           = "avr32_counter",
-       .rating         = 50,
-       .read           = read_cycle_count,
-       .mask           = CLOCKSOURCE_MASK(32),
-       .flags          = CLOCK_SOURCE_IS_CONTINUOUS,
-};
-
-static irqreturn_t timer_interrupt(int irq, void *dev_id)
-{
-       struct clock_event_device *evdev = dev_id;
-
-       if (unlikely(!(intc_get_pending(0) & 1)))
-               return IRQ_NONE;
-
-       /*
-        * Disable the interrupt until the clockevent subsystem
-        * reprograms it.
-        */
-       sysreg_write(COMPARE, 0);
-
-       evdev->event_handler(evdev);
-       return IRQ_HANDLED;
-}
-
-static struct irqaction timer_irqaction = {
-       .handler        = timer_interrupt,
-       /* Oprofile uses the same irq as the timer, so allow it to be shared */
-       .flags          = IRQF_TIMER | IRQF_SHARED,
-       .name           = "avr32_comparator",
-};
-
-static int comparator_next_event(unsigned long delta,
-               struct clock_event_device *evdev)
-{
-       unsigned long   flags;
-
-       raw_local_irq_save(flags);
-
-       /* The time to read COUNT then update COMPARE must be less
-        * than the min_delta_ns value for this clockevent source.
-        */
-       sysreg_write(COMPARE, (sysreg_read(COUNT) + delta) ? : 1);
-
-       raw_local_irq_restore(flags);
-
-       return 0;
-}
-
-static int comparator_shutdown(struct clock_event_device *evdev)
-{
-       pr_debug("%s: %s\n", __func__, evdev->name);
-       sysreg_write(COMPARE, 0);
-
-       if (disable_cpu_idle_poll) {
-               disable_cpu_idle_poll = false;
-               /*
-                * Only disable idle poll if we have forced that
-                * in a previous call.
-                */
-               cpu_idle_poll_ctrl(false);
-       }
-       return 0;
-}
-
-static int comparator_set_oneshot(struct clock_event_device *evdev)
-{
-       pr_debug("%s: %s\n", __func__, evdev->name);
-
-       disable_cpu_idle_poll = true;
-       /*
-        * If we're using the COUNT and COMPARE registers we
-        * need to force idle poll.
-        */
-       cpu_idle_poll_ctrl(true);
-
-       return 0;
-}
-
-static struct clock_event_device comparator = {
-       .name                   = "avr32_comparator",
-       .features               = CLOCK_EVT_FEAT_ONESHOT,
-       .shift                  = 16,
-       .rating                 = 50,
-       .set_next_event         = comparator_next_event,
-       .set_state_shutdown     = comparator_shutdown,
-       .set_state_oneshot      = comparator_set_oneshot,
-       .tick_resume            = comparator_set_oneshot,
-};
-
-void read_persistent_clock(struct timespec *ts)
-{
-       ts->tv_sec = mktime(2007, 1, 1, 0, 0, 0);
-       ts->tv_nsec = 0;
-}
-
-void __init time_init(void)
-{
-       unsigned long counter_hz;
-       int ret;
-
-       /* figure rate for counter */
-       counter_hz = clk_get_rate(boot_cpu_data.clk);
-       ret = clocksource_register_hz(&counter, counter_hz);
-       if (ret)
-               pr_debug("timer: could not register clocksource: %d\n", ret);
-
-       /* setup COMPARE clockevent */
-       comparator.mult = div_sc(counter_hz, NSEC_PER_SEC, comparator.shift);
-       comparator.max_delta_ns = clockevent_delta2ns((u32)~0, &comparator);
-       comparator.min_delta_ns = clockevent_delta2ns(50, &comparator) + 1;
-       comparator.cpumask = cpumask_of(0);
-
-       sysreg_write(COMPARE, 0);
-       timer_irqaction.dev_id = &comparator;
-
-       ret = setup_irq(0, &timer_irqaction);
-       if (ret)
-               pr_debug("timer: could not request IRQ 0: %d\n", ret);
-       else {
-               clockevents_register_device(&comparator);
-
-               pr_info("%s: irq 0, %lu.%03lu MHz\n", comparator.name,
-                               ((counter_hz + 500) / 1000) / 1000,
-                               ((counter_hz + 500) / 1000) % 1000);
-       }
-}
diff --git a/arch/avr32/kernel/traps.c b/arch/avr32/kernel/traps.c
deleted file mode 100644 (file)
index 50b5413..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/bug.h>
-#include <linux/hardirq.h>
-#include <linux/init.h>
-#include <linux/kallsyms.h>
-#include <linux/kdebug.h>
-#include <linux/extable.h>
-#include <linux/module.h>      /* print_modules */
-#include <linux/notifier.h>
-#include <linux/sched/signal.h>
-#include <linux/uaccess.h>
-
-#include <asm/addrspace.h>
-#include <asm/mmu_context.h>
-#include <asm/ocd.h>
-#include <asm/sysreg.h>
-#include <asm/traps.h>
-
-static DEFINE_SPINLOCK(die_lock);
-
-void die(const char *str, struct pt_regs *regs, long err)
-{
-       static int die_counter;
-
-       console_verbose();
-       spin_lock_irq(&die_lock);
-       bust_spinlocks(1);
-
-       printk(KERN_ALERT "Oops: %s, sig: %ld [#%d]\n",
-              str, err, ++die_counter);
-
-       printk(KERN_EMERG);
-
-#ifdef CONFIG_PREEMPT
-       printk(KERN_CONT "PREEMPT ");
-#endif
-#ifdef CONFIG_FRAME_POINTER
-       printk(KERN_CONT "FRAME_POINTER ");
-#endif
-       if (current_cpu_data.features & AVR32_FEATURE_OCD) {
-               unsigned long did = ocd_read(DID);
-               printk(KERN_CONT "chip: 0x%03lx:0x%04lx rev %lu\n",
-                      (did >> 1) & 0x7ff,
-                      (did >> 12) & 0x7fff,
-                      (did >> 28) & 0xf);
-       } else {
-               printk(KERN_CONT "cpu: arch %u r%u / core %u r%u\n",
-                      current_cpu_data.arch_type,
-                      current_cpu_data.arch_revision,
-                      current_cpu_data.cpu_type,
-                      current_cpu_data.cpu_revision);
-       }
-
-       print_modules();
-       show_regs_log_lvl(regs, KERN_EMERG);
-       show_stack_log_lvl(current, regs->sp, regs, KERN_EMERG);
-       bust_spinlocks(0);
-       add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
-       spin_unlock_irq(&die_lock);
-
-       if (in_interrupt())
-               panic("Fatal exception in interrupt");
-
-       if (panic_on_oops)
-               panic("Fatal exception");
-
-       do_exit(err);
-}
-
-void _exception(long signr, struct pt_regs *regs, int code,
-               unsigned long addr)
-{
-       siginfo_t info;
-
-       if (!user_mode(regs)) {
-               const struct exception_table_entry *fixup;
-
-               /* Are we prepared to handle this kernel fault? */
-               fixup = search_exception_tables(regs->pc);
-               if (fixup) {
-                       regs->pc = fixup->fixup;
-                       return;
-               }
-               die("Unhandled exception in kernel mode", regs, signr);
-       }
-
-       memset(&info, 0, sizeof(info));
-       info.si_signo = signr;
-       info.si_code = code;
-       info.si_addr = (void __user *)addr;
-       force_sig_info(signr, &info, current);
-}
-
-asmlinkage void do_nmi(unsigned long ecr, struct pt_regs *regs)
-{
-       int ret;
-
-       nmi_enter();
-
-       ret = notify_die(DIE_NMI, "NMI", regs, 0, ecr, SIGINT);
-       switch (ret) {
-       case NOTIFY_OK:
-       case NOTIFY_STOP:
-               break;
-       case NOTIFY_BAD:
-               die("Fatal Non-Maskable Interrupt", regs, SIGINT);
-       default:
-               printk(KERN_ALERT "Got NMI, but nobody cared. Disabling...\n");
-               nmi_disable();
-               break;
-       }
-       nmi_exit();
-}
-
-asmlinkage void do_critical_exception(unsigned long ecr, struct pt_regs *regs)
-{
-       die("Critical exception", regs, SIGKILL);
-}
-
-asmlinkage void do_address_exception(unsigned long ecr, struct pt_regs *regs)
-{
-       _exception(SIGBUS, regs, BUS_ADRALN, regs->pc);
-}
-
-/* This way of handling undefined instructions is stolen from ARM */
-static LIST_HEAD(undef_hook);
-static DEFINE_SPINLOCK(undef_lock);
-
-void register_undef_hook(struct undef_hook *hook)
-{
-       spin_lock_irq(&undef_lock);
-       list_add(&hook->node, &undef_hook);
-       spin_unlock_irq(&undef_lock);
-}
-
-void unregister_undef_hook(struct undef_hook *hook)
-{
-       spin_lock_irq(&undef_lock);
-       list_del(&hook->node);
-       spin_unlock_irq(&undef_lock);
-}
-
-static int do_cop_absent(u32 insn)
-{
-       int cop_nr;
-       u32 cpucr;
-
-       if ((insn & 0xfdf00000) == 0xf1900000)
-               /* LDC0 */
-               cop_nr = 0;
-       else
-               cop_nr = (insn >> 13) & 0x7;
-
-       /* Try enabling the coprocessor */
-       cpucr = sysreg_read(CPUCR);
-       cpucr |= (1 << (24 + cop_nr));
-       sysreg_write(CPUCR, cpucr);
-
-       cpucr = sysreg_read(CPUCR);
-       if (!(cpucr & (1 << (24 + cop_nr))))
-               return -ENODEV;
-
-       return 0;
-}
-
-#ifdef CONFIG_BUG
-int is_valid_bugaddr(unsigned long pc)
-{
-       unsigned short opcode;
-
-       if (pc < PAGE_OFFSET)
-               return 0;
-       if (probe_kernel_address((u16 *)pc, opcode))
-               return 0;
-
-       return opcode == AVR32_BUG_OPCODE;
-}
-#endif
-
-asmlinkage void do_illegal_opcode(unsigned long ecr, struct pt_regs *regs)
-{
-       u32 insn;
-       struct undef_hook *hook;
-       void __user *pc;
-       long code;
-
-#ifdef CONFIG_BUG
-       if (!user_mode(regs) && (ecr == ECR_ILLEGAL_OPCODE)) {
-               enum bug_trap_type type;
-
-               type = report_bug(regs->pc, regs);
-               switch (type) {
-               case BUG_TRAP_TYPE_NONE:
-                       break;
-               case BUG_TRAP_TYPE_WARN:
-                       regs->pc += 2;
-                       return;
-               case BUG_TRAP_TYPE_BUG:
-                       die("Kernel BUG", regs, SIGKILL);
-               }
-       }
-#endif
-
-       local_irq_enable();
-
-       if (user_mode(regs)) {
-               pc = (void __user *)instruction_pointer(regs);
-               if (get_user(insn, (u32 __user *)pc))
-                       goto invalid_area;
-
-               if (ecr == ECR_COPROC_ABSENT && !do_cop_absent(insn))
-                       return;
-
-               spin_lock_irq(&undef_lock);
-               list_for_each_entry(hook, &undef_hook, node) {
-                       if ((insn & hook->insn_mask) == hook->insn_val) {
-                               if (hook->fn(regs, insn) == 0) {
-                                       spin_unlock_irq(&undef_lock);
-                                       return;
-                               }
-                       }
-               }
-               spin_unlock_irq(&undef_lock);
-       }
-
-       switch (ecr) {
-       case ECR_PRIVILEGE_VIOLATION:
-               code = ILL_PRVOPC;
-               break;
-       case ECR_COPROC_ABSENT:
-               code = ILL_COPROC;
-               break;
-       default:
-               code = ILL_ILLOPC;
-               break;
-       }
-
-       _exception(SIGILL, regs, code, regs->pc);
-       return;
-
-invalid_area:
-       _exception(SIGSEGV, regs, SEGV_MAPERR, regs->pc);
-}
-
-asmlinkage void do_fpe(unsigned long ecr, struct pt_regs *regs)
-{
-       /* We have no FPU yet */
-       _exception(SIGILL, regs, ILL_COPROC, regs->pc);
-}
-
-
-void __init trap_init(void)
-{
-
-}
diff --git a/arch/avr32/kernel/vmlinux.lds.S b/arch/avr32/kernel/vmlinux.lds.S
deleted file mode 100644 (file)
index 17f2730..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * AVR32 linker script for the Linux kernel
- *
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#define LOAD_OFFSET 0x00000000
-#include <asm-generic/vmlinux.lds.h>
-#include <asm/cache.h>
-#include <asm/thread_info.h>
-
-OUTPUT_FORMAT("elf32-avr32", "elf32-avr32", "elf32-avr32")
-OUTPUT_ARCH(avr32)
-ENTRY(_start)
-
-/* Big endian */
-jiffies = jiffies_64 + 4;
-
-SECTIONS
-{
-       . = CONFIG_ENTRY_ADDRESS;
-       .init           : AT(ADDR(.init) - LOAD_OFFSET) {
-               _text = .;
-               __init_begin = .;
-                       _sinittext = .;
-                       *(.text.reset)
-                       INIT_TEXT
-                       /*
-                        * .exit.text is discarded at runtime, not
-                        * link time, to deal with references from
-                        * __bug_table
-                        */
-                       EXIT_TEXT
-                       _einittext = .;
-               . = ALIGN(4);
-               __tagtable_begin = .;
-                       *(.taglist.init)
-               __tagtable_end = .;
-       }
-       INIT_DATA_SECTION(16)
-       . = ALIGN(PAGE_SIZE);
-       __init_end = .;
-
-       .text           : AT(ADDR(.text) - LOAD_OFFSET) {
-               _evba = .;
-               _stext = .;
-               *(.ex.text)
-               *(.irq.text)
-               KPROBES_TEXT
-               TEXT_TEXT
-               SCHED_TEXT
-               CPUIDLE_TEXT
-               LOCK_TEXT
-               *(.fixup)
-               *(.gnu.warning)
-               _etext = .;
-       } = 0xd703d703
-
-       EXCEPTION_TABLE(4)
-       RODATA
-
-       .data           : AT(ADDR(.data) - LOAD_OFFSET) {
-               _data = .;
-               _sdata = .;
-
-               INIT_TASK_DATA(THREAD_SIZE)
-               PAGE_ALIGNED_DATA(PAGE_SIZE);
-               CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES)
-               *(.data.rel*)
-               DATA_DATA
-               CONSTRUCTORS
-
-               _edata = .;
-       }
-
-       BSS_SECTION(0, 8, 8)
-       _end = .;
-
-       DWARF_DEBUG
-
-       /* When something in the kernel is NOT compiled as a module, the module
-        * cleanup code and data are put into these segments. Both can then be
-        * thrown away, as cleanup code is never called unless it's a module.
-        */
-       DISCARDS
-}
diff --git a/arch/avr32/lib/Makefile b/arch/avr32/lib/Makefile
deleted file mode 100644 (file)
index 084d95b..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-# Makefile for AVR32-specific library files
-#
-
-lib-y  := copy_user.o clear_user.o
-lib-y  += strncpy_from_user.o strnlen_user.o
-lib-y  += delay.o memset.o memcpy.o findbit.o
-lib-y  += csum_partial.o csum_partial_copy_generic.o
-lib-y  += io-readsw.o io-readsl.o io-writesw.o io-writesl.o
-lib-y  += io-readsb.o io-writesb.o
-lib-y  += __avr32_lsl64.o __avr32_lsr64.o __avr32_asr64.o
diff --git a/arch/avr32/lib/__avr32_asr64.S b/arch/avr32/lib/__avr32_asr64.S
deleted file mode 100644 (file)
index 368b6bc..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2005-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-       /*
-        * DWtype __avr32_asr64(DWtype u, word_type b)
-        */
-       .text
-       .global __avr32_asr64
-       .type   __avr32_asr64,@function
-__avr32_asr64:
-       cp.w    r12, 0
-       reteq   r12
-
-       rsub    r9, r12, 32
-       brle    1f
-
-       lsl     r8, r11, r9
-       lsr     r10, r10, r12
-       asr     r11, r11, r12
-       or      r10, r8
-       retal   r12
-
-1:     neg     r9
-       asr     r10, r11, r9
-       asr     r11, 31
-       retal   r12
diff --git a/arch/avr32/lib/__avr32_lsl64.S b/arch/avr32/lib/__avr32_lsl64.S
deleted file mode 100644 (file)
index f1dbc2b..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2005-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-       /*
-        * DWtype __avr32_lsl64(DWtype u, word_type b)
-        */
-       .text
-       .global __avr32_lsl64
-       .type   __avr32_lsl64,@function
-__avr32_lsl64:
-       cp.w    r12, 0
-       reteq   r12
-
-       rsub    r9, r12, 32
-       brle    1f
-
-       lsr     r8, r10, r9
-       lsl     r10, r10, r12
-       lsl     r11, r11, r12
-       or      r11, r8
-       retal   r12
-
-1:     neg     r9
-       lsl     r11, r10, r9
-       mov     r10, 0
-       retal   r12
diff --git a/arch/avr32/lib/__avr32_lsr64.S b/arch/avr32/lib/__avr32_lsr64.S
deleted file mode 100644 (file)
index e65bb7f..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2005-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-       /*
-        * DWtype __avr32_lsr64(DWtype u, word_type b)
-        */
-       .text
-       .global __avr32_lsr64
-       .type   __avr32_lsr64,@function
-__avr32_lsr64:
-       cp.w    r12, 0
-       reteq   r12
-
-       rsub    r9, r12, 32
-       brle    1f
-
-       lsl     r8, r11, r9
-       lsr     r11, r11, r12
-       lsr     r10, r10, r12
-       or      r10, r8
-       retal   r12
-
-1:     neg     r9
-       lsr     r10, r11, r9
-       mov     r11, 0
-       retal   r12
diff --git a/arch/avr32/lib/clear_user.S b/arch/avr32/lib/clear_user.S
deleted file mode 100644 (file)
index d8991b6..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <asm/page.h>
-#include <asm/thread_info.h>
-#include <asm/asm.h>
-
-       .text
-       .align  1
-       .global clear_user
-       .type   clear_user, "function"
-clear_user:
-       branch_if_kernel r8, __clear_user
-       ret_if_privileged r8, r12, r11, r11
-
-       .global __clear_user
-       .type   __clear_user, "function"
-__clear_user:
-       mov     r9, r12
-       mov     r8, 0
-       andl    r9, 3, COH
-       brne    5f
-
-1:     sub     r11, 4
-       brlt    2f
-
-10:    st.w    r12++, r8
-       sub     r11, 4
-       brge    10b
-
-2:     sub     r11, -4
-       reteq   0
-
-       /* Unaligned count or address */
-       bld     r11, 1
-       brcc    12f
-11:    st.h    r12++, r8
-       sub     r11, 2
-       reteq   0
-12:    st.b    r12++, r8
-       retal   0
-
-       /* Unaligned address */
-5:     cp.w    r11, 4
-       brlt    2b
-
-       lsl     r9, 2
-       add     pc, pc, r9
-13:    st.b    r12++, r8
-       sub     r11, 1
-14:    st.b    r12++, r8
-       sub     r11, 1
-15:    st.b    r12++, r8
-       sub     r11, 1
-       rjmp    1b
-
-       .size   clear_user, . - clear_user
-       .size   __clear_user, . - __clear_user
-
-       .section .fixup, "ax"
-       .align  1
-18:    sub     r11, -4
-19:    retal   r11
-
-       .section __ex_table, "a"
-       .align  2
-       .long   10b, 18b
-       .long   11b, 19b
-       .long   12b, 19b
-       .long   13b, 19b
-       .long   14b, 19b
-       .long   15b, 19b
diff --git a/arch/avr32/lib/copy_user.S b/arch/avr32/lib/copy_user.S
deleted file mode 100644 (file)
index 0753734..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copy to/from userspace with optional address space checking.
- *
- * Copyright 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <asm/page.h>
-#include <asm/thread_info.h>
-#include <asm/asm.h>
-
-       /*
-        * __kernel_size_t
-        * __copy_user(void *to, const void *from, __kernel_size_t n)
-        *
-        * Returns the number of bytes not copied. Might be off by
-        * max 3 bytes if we get a fault in the main loop.
-        *
-        * The address-space checking functions simply fall through to
-        * the non-checking version.
-        */
-       .text
-       .align  1
-       .global ___copy_from_user
-       .type   ___copy_from_user, @function
-___copy_from_user:
-       branch_if_kernel r8, __copy_user
-       ret_if_privileged r8, r11, r10, r10
-       rjmp    __copy_user
-       .size   ___copy_from_user, . - ___copy_from_user
-
-       .global copy_to_user
-       .type   copy_to_user, @function
-copy_to_user:
-       branch_if_kernel r8, __copy_user
-       ret_if_privileged r8, r12, r10, r10
-       .size   copy_to_user, . - copy_to_user
-
-       .global __copy_user
-       .type   __copy_user, @function
-__copy_user:
-       mov     r9, r11
-       andl    r9, 3, COH
-       brne    6f
-
-       /* At this point, from is word-aligned */
-1:     sub     r10, 4
-       brlt    3f
-
-2:
-10:    ld.w    r8, r11++
-11:    st.w    r12++, r8
-       sub     r10, 4
-       brge    2b
-
-3:     sub     r10, -4
-       reteq   0
-
-       /*
-        * Handle unaligned count. Need to be careful with r10 here so
-        * that we return the correct value even if we get a fault
-        */
-4:
-20:    ld.ub   r8, r11++
-21:    st.b    r12++, r8
-       sub     r10, 1
-       reteq   0
-22:    ld.ub   r8, r11++
-23:    st.b    r12++, r8
-       sub     r10, 1
-       reteq   0
-24:    ld.ub   r8, r11++
-25:    st.b    r12++, r8
-       retal   0
-
-       /* Handle unaligned from-pointer */
-6:     cp.w    r10, 4
-       brlt    4b
-       rsub    r9, r9, 4
-
-30:    ld.ub   r8, r11++
-31:    st.b    r12++, r8
-       sub     r10, 1
-       sub     r9, 1
-       breq    1b
-32:    ld.ub   r8, r11++
-33:    st.b    r12++, r8
-       sub     r10, 1
-       sub     r9, 1
-       breq    1b
-34:    ld.ub   r8, r11++
-35:    st.b    r12++, r8
-       sub     r10, 1
-       rjmp    1b
-       .size   __copy_user, . - __copy_user
-
-       .section .fixup,"ax"
-       .align  1
-19:    sub     r10, -4
-29:    retal   r10
-
-       .section __ex_table,"a"
-       .align  2
-       .long   10b, 19b
-       .long   11b, 19b
-       .long   20b, 29b
-       .long   21b, 29b
-       .long   22b, 29b
-       .long   23b, 29b
-       .long   24b, 29b
-       .long   25b, 29b
-       .long   30b, 29b
-       .long   31b, 29b
-       .long   32b, 29b
-       .long   33b, 29b
-       .long   34b, 29b
-       .long   35b, 29b
diff --git a/arch/avr32/lib/csum_partial.S b/arch/avr32/lib/csum_partial.S
deleted file mode 100644 (file)
index 6a262b5..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-       /*
-        * unsigned int csum_partial(const unsigned char *buff,
-        *                           int len, unsigned int sum)
-        */
-       .text
-       .global csum_partial
-       .type   csum_partial,"function"
-       .align  1
-csum_partial:
-       /* checksum complete words, aligned or not */
-3:     sub     r11, 4
-       brlt    5f
-4:     ld.w    r9, r12++
-       add     r10, r9
-       acr     r10
-       sub     r11, 4
-       brge    4b
-
-       /* return if we had a whole number of words */
-5:     sub     r11, -4
-       reteq   r10
-
-       /* checksum any remaining bytes at the end */
-       mov     r9, 0
-       mov     r8, 0
-       cp      r11, 2
-       brlt    6f
-       ld.uh   r9, r12++
-       sub     r11, 2
-       breq    7f
-       lsl     r9, 16
-6:     ld.ub   r8, r12++
-       lsl     r8, 8
-7:     or      r9, r8
-       add     r10, r9
-       acr     r10
-
-       retal   r10
-       .size   csum_partial, . - csum_partial
diff --git a/arch/avr32/lib/csum_partial_copy_generic.S b/arch/avr32/lib/csum_partial_copy_generic.S
deleted file mode 100644 (file)
index a3a0f9b..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <asm/errno.h>
-#include <asm/asm.h>
-
-       /*
-        * unsigned int csum_partial_copy_generic(const char *src, char *dst, int len
-        *                                        int sum, int *src_err_ptr,
-        *                                        int *dst_err_ptr)
-        *
-        * Copy src to dst while checksumming, otherwise like csum_partial.
-        */
-
-       .macro ld_src size, reg, ptr
-9999:  ld.\size \reg, \ptr
-       .section __ex_table, "a"
-       .long   9999b, fixup_ld_src
-       .previous
-       .endm
-
-       .macro st_dst size, ptr, reg
-9999:  st.\size \ptr, \reg
-       .section __ex_table, "a"
-       .long   9999b, fixup_st_dst
-       .previous
-       .endm
-
-       .text
-       .global csum_partial_copy_generic
-       .type   csum_partial_copy_generic,"function"
-       .align  1
-csum_partial_copy_generic:
-       pushm   r4-r7,lr
-
-       /* The inner loop */
-1:     sub     r10, 4
-       brlt    5f
-2:     ld_src  w, r5, r12++
-       st_dst  w, r11++, r5
-       add     r9, r5
-       acr     r9
-       sub     r10, 4
-       brge    2b
-
-       /* return if we had a whole number of words */
-5:     sub     r10, -4
-       brne    7f
-
-6:     mov     r12, r9
-       popm    r4-r7,pc
-
-       /* handle additional bytes at the tail */
-7:     mov     r5, 0
-       mov     r4, 32
-8:     ld_src  ub, r6, r12++
-       st_dst  b, r11++, r6
-       lsl     r5, 8
-       sub     r4, 8
-       bfins   r5, r6, 0, 8
-       sub     r10, 1
-       brne    8b
-
-       lsl     r5, r5, r4
-       add     r9, r5
-       acr     r9
-       rjmp    6b
-
-       /* Exception handler */
-       .section .fixup,"ax"
-       .align  1
-fixup_ld_src:
-       mov     r9, -EFAULT
-       cp.w    r8, 0
-       breq    1f
-       st.w    r8[0], r9
-
-1:     /*
-        * TODO: zero the complete destination - computing the rest
-        * is too much work
-        */
-
-       mov     r9, 0
-       rjmp    6b
-
-fixup_st_dst:
-       mov     r9, -EFAULT
-       lddsp   r8, sp[20]
-       cp.w    r8, 0
-       breq    1f
-       st.w    r8[0], r9
-1:     mov     r9, 0
-       rjmp    6b
-
-       .previous
diff --git a/arch/avr32/lib/delay.c b/arch/avr32/lib/delay.c
deleted file mode 100644 (file)
index c2f4a07..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *      Precise Delay Loops for avr32
- *
- *      Copyright (C) 1993 Linus Torvalds
- *      Copyright (C) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
- *     Copyright (C) 2005-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/delay.h>
-#include <linux/module.h>
-#include <linux/timex.h>
-#include <linux/param.h>
-#include <linux/types.h>
-#include <linux/init.h>
-
-#include <asm/processor.h>
-#include <asm/sysreg.h>
-
-int read_current_timer(unsigned long *timer_value)
-{
-       *timer_value = sysreg_read(COUNT);
-       return 0;
-}
-
-void __delay(unsigned long loops)
-{
-       unsigned bclock, now;
-
-       bclock = sysreg_read(COUNT);
-       do {
-               now = sysreg_read(COUNT);
-       } while ((now - bclock) < loops);
-}
-
-inline void __const_udelay(unsigned long xloops)
-{
-       unsigned long long loops;
-
-       asm("mulu.d %0, %1, %2"
-           : "=r"(loops)
-           : "r"(current_cpu_data.loops_per_jiffy * HZ), "r"(xloops));
-       __delay(loops >> 32);
-}
-
-void __udelay(unsigned long usecs)
-{
-       __const_udelay(usecs * 0x000010c7); /* 2**32 / 1000000 (rounded up) */
-}
-
-void __ndelay(unsigned long nsecs)
-{
-       __const_udelay(nsecs * 0x00005); /* 2**32 / 1000000000 (rounded up) */
-}
diff --git a/arch/avr32/lib/findbit.S b/arch/avr32/lib/findbit.S
deleted file mode 100644 (file)
index b935864..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright (C) 2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/linkage.h>
-
-       .text
-       /*
-        * unsigned long find_first_zero_bit(const unsigned long *addr,
-        *                                   unsigned long size)
-        */
-ENTRY(find_first_zero_bit)
-       cp.w    r11, 0
-       reteq   r11
-       mov     r9, r11
-1:     ld.w    r8, r12[0]
-       com     r8
-       brne    .L_found
-       sub     r12, -4
-       sub     r9, 32
-       brgt    1b
-       retal   r11
-
-       /*
-        * unsigned long find_next_zero_bit(const unsigned long *addr,
-        *                                  unsigned long size,
-        *                                  unsigned long offset)
-        */
-ENTRY(find_next_zero_bit)
-       lsr     r8, r10, 5
-       sub     r9, r11, r10
-       retle   r11
-
-       lsl     r8, 2
-       add     r12, r8
-       andl    r10, 31, COH
-       breq    1f
-
-       /* offset is not word-aligned. Handle the first (32 - r10) bits */
-       ld.w    r8, r12[0]
-       com     r8
-       sub     r12, -4
-       lsr     r8, r8, r10
-       brne    .L_found
-
-       /* r9 = r9 - (32 - r10) = r9 + r10 - 32 */
-       add     r9, r10
-       sub     r9, 32
-       retle   r11
-
-       /* Main loop. offset must be word-aligned */
-1:     ld.w    r8, r12[0]
-       com     r8
-       brne    .L_found
-       sub     r12, -4
-       sub     r9, 32
-       brgt    1b
-       retal   r11
-
-       /* Common return path for when a bit is actually found. */
-.L_found:
-       brev    r8
-       clz     r10, r8
-       rsub    r9, r11
-       add     r10, r9
-
-       /* XXX: If we don't have to return exactly "size" when the bit
-          is not found, we may drop this "min" thing */
-       min     r12, r11, r10
-       retal   r12
-
-       /*
-        * unsigned long find_first_bit(const unsigned long *addr,
-        *                              unsigned long size)
-        */
-ENTRY(find_first_bit)
-       cp.w    r11, 0
-       reteq   r11
-       mov     r9, r11
-1:     ld.w    r8, r12[0]
-       cp.w    r8, 0
-       brne    .L_found
-       sub     r12, -4
-       sub     r9, 32
-       brgt    1b
-       retal   r11
-
-       /*
-        * unsigned long find_next_bit(const unsigned long *addr,
-        *                             unsigned long size,
-        *                             unsigned long offset)
-        */
-ENTRY(find_next_bit)
-       lsr     r8, r10, 5
-       sub     r9, r11, r10
-       retle   r11
-
-       lsl     r8, 2
-       add     r12, r8
-       andl    r10, 31, COH
-       breq    1f
-
-       /* offset is not word-aligned. Handle the first (32 - r10) bits */
-       ld.w    r8, r12[0]
-       sub     r12, -4
-       lsr     r8, r8, r10
-       brne    .L_found
-
-       /* r9 = r9 - (32 - r10) = r9 + r10 - 32 */
-       add     r9, r10
-       sub     r9, 32
-       retle   r11
-
-       /* Main loop. offset must be word-aligned */
-1:     ld.w    r8, r12[0]
-       cp.w    r8, 0
-       brne    .L_found
-       sub     r12, -4
-       sub     r9, 32
-       brgt    1b
-       retal   r11
-
-ENTRY(find_next_bit_le)
-       lsr     r8, r10, 5
-       sub     r9, r11, r10
-       retle   r11
-
-       lsl     r8, 2
-       add     r12, r8
-       andl    r10, 31, COH
-       breq    1f
-
-       /* offset is not word-aligned. Handle the first (32 - r10) bits */
-       ldswp.w r8, r12[0]
-       sub     r12, -4
-       lsr     r8, r8, r10
-       brne    .L_found
-
-       /* r9 = r9 - (32 - r10) = r9 + r10 - 32 */
-       add     r9, r10
-       sub     r9, 32
-       retle   r11
-
-       /* Main loop. offset must be word-aligned */
-1:     ldswp.w r8, r12[0]
-       cp.w    r8, 0
-       brne    .L_found
-       sub     r12, -4
-       sub     r9, 32
-       brgt    1b
-       retal   r11
-
-ENTRY(find_next_zero_bit_le)
-       lsr     r8, r10, 5
-       sub     r9, r11, r10
-       retle   r11
-
-       lsl     r8, 2
-       add     r12, r8
-       andl    r10, 31, COH
-       breq    1f
-
-       /* offset is not word-aligned. Handle the first (32 - r10) bits */
-       ldswp.w r8, r12[0]
-       sub     r12, -4
-       com     r8
-       lsr     r8, r8, r10
-       brne    .L_found
-
-       /* r9 = r9 - (32 - r10) = r9 + r10 - 32 */
-       add     r9, r10
-       sub     r9, 32
-       retle   r11
-
-       /* Main loop. offset must be word-aligned */
-1:     ldswp.w r8, r12[0]
-       com     r8
-       brne    .L_found
-       sub     r12, -4
-       sub     r9, 32
-       brgt    1b
-       retal   r11
diff --git a/arch/avr32/lib/io-readsb.S b/arch/avr32/lib/io-readsb.S
deleted file mode 100644 (file)
index cb2d869..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-       .text
-.Lnot_word_aligned:
-1:     ld.ub   r8, r12[0]
-       sub     r10, 1
-       st.b    r11++, r8
-       reteq   r12
-       tst     r11, r9
-       brne    1b
-
-       /* fall through */
-
-       .global __raw_readsb
-       .type   __raw_readsb,@function
-__raw_readsb:
-       cp.w    r10, 0
-       mov     r9, 3
-       reteq   r12
-
-       tst     r11, r9
-       brne    .Lnot_word_aligned
-
-       sub     r10, 4
-       brlt    2f
-
-1:     ldins.b r8:t, r12[0]
-       ldins.b r8:u, r12[0]
-       ldins.b r8:l, r12[0]
-       ldins.b r8:b, r12[0]
-       st.w    r11++, r8
-       sub     r10, 4
-       brge    1b
-
-2:     sub     r10, -4
-       reteq   r12
-
-3:     ld.ub   r8, r12[0]
-       sub     r10, 1
-       st.b    r11++, r8
-       brne    3b
-
-       retal   r12
diff --git a/arch/avr32/lib/io-readsl.S b/arch/avr32/lib/io-readsl.S
deleted file mode 100644 (file)
index b103511..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-       .global __raw_readsl
-       .type   __raw_readsl,@function
-__raw_readsl:
-       cp.w    r10, 0
-       reteq   r12
-
-       /*
-        * If r11 isn't properly aligned, we might get an exception on
-        * some implementations. But there's not much we can do about it.
-        */
-1:     ld.w    r8, r12[0]
-       sub     r10, 1
-       st.w    r11++, r8
-       brne    1b
-
-       retal   r12
diff --git a/arch/avr32/lib/io-readsw.S b/arch/avr32/lib/io-readsw.S
deleted file mode 100644 (file)
index 456be99..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-.Lnot_word_aligned:
-       /*
-        * Bad alignment will cause a hardware exception, which is as
-        * good as anything. No need for us to check for proper alignment.
-        */
-       ld.uh   r8, r12[0]
-       sub     r10, 1
-       st.h    r11++, r8
-
-       /* fall through */
-
-       .global __raw_readsw
-       .type   __raw_readsw,@function
-__raw_readsw:
-       cp.w    r10, 0
-       reteq   r12
-       mov     r9, 3
-       tst     r11, r9
-       brne    .Lnot_word_aligned
-
-       sub     r10, 2
-       brlt    2f
-
-1:     ldins.h r8:t, r12[0]
-       ldins.h r8:b, r12[0]
-       st.w    r11++, r8
-       sub     r10, 2
-       brge    1b
-
-2:     sub     r10, -2
-       reteq   r12
-
-       ld.uh   r8, r12[0]
-       st.h    r11++, r8
-       retal   r12
diff --git a/arch/avr32/lib/io-writesb.S b/arch/avr32/lib/io-writesb.S
deleted file mode 100644 (file)
index b4ebaac..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-       .text
-.Lnot_word_aligned:
-1:     ld.ub   r8, r11++
-       sub     r10, 1
-       st.b    r12[0], r8
-       reteq   r12
-       tst     r11, r9
-       brne    1b
-
-       /* fall through */
-
-       .global __raw_writesb
-       .type   __raw_writesb,@function
-__raw_writesb:
-       cp.w    r10, 0
-       mov     r9, 3
-       reteq   r12
-
-       tst     r11, r9
-       brne    .Lnot_word_aligned
-
-       sub     r10, 4
-       brlt    2f
-
-1:     ld.w    r8, r11++
-       bfextu  r9, r8, 24, 8
-       st.b    r12[0], r9
-       bfextu  r9, r8, 16, 8
-       st.b    r12[0], r9
-       bfextu  r9, r8, 8, 8
-       st.b    r12[0], r9
-       st.b    r12[0], r8
-       sub     r10, 4
-       brge    1b
-
-2:     sub     r10, -4
-       reteq   r12
-
-3:     ld.ub   r8, r11++
-       sub     r10, 1
-       st.b    r12[0], r8
-       brne    3b
-
-       retal   r12
diff --git a/arch/avr32/lib/io-writesl.S b/arch/avr32/lib/io-writesl.S
deleted file mode 100644 (file)
index 22138b3..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-       .global __raw_writesl
-       .type   __raw_writesl,@function
-__raw_writesl:
-       cp.w    r10, 0
-       reteq   r12
-
-1:     ld.w    r8, r11++
-       sub     r10, 1
-       st.w    r12[0], r8
-       brne    1b
-
-       retal   r12
diff --git a/arch/avr32/lib/io-writesw.S b/arch/avr32/lib/io-writesw.S
deleted file mode 100644 (file)
index 8c4a53f..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-.Lnot_word_aligned:
-       ld.uh   r8, r11++
-       sub     r10, 1
-       st.h    r12[0], r8
-
-       .global __raw_writesw
-       .type   __raw_writesw,@function
-__raw_writesw:
-       cp.w    r10, 0
-       mov     r9, 3
-       reteq   r12
-       tst     r11, r9
-       brne    .Lnot_word_aligned
-
-       sub     r10, 2
-       brlt    2f
-
-1:     ld.w    r8, r11++
-       bfextu  r9, r8, 16, 16
-       st.h    r12[0], r9
-       st.h    r12[0], r8
-       sub     r10, 2
-       brge    1b
-
-2:     sub     r10, -2
-       reteq   r12
-
-       ld.uh   r8, r11++
-       st.h    r12[0], r8
-       retal   r12
diff --git a/arch/avr32/lib/memcpy.S b/arch/avr32/lib/memcpy.S
deleted file mode 100644 (file)
index c2ca49d..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-       /*
-        * void *memcpy(void *to, const void *from, unsigned long n)
-        *
-        * This implementation does word-aligned loads in the main loop,
-        * possibly sacrificing alignment of stores.
-        *
-        * Hopefully, in most cases, both "to" and "from" will be
-        * word-aligned to begin with.
-        */
-       .text
-       .global memcpy
-       .type   memcpy, @function
-memcpy:
-       mov     r9, r11
-       andl    r9, 3, COH
-       brne    1f
-
-       /* At this point, "from" is word-aligned */
-2:     mov     r9, r12
-5:     sub     r10, 4
-       brlt    4f
-
-3:     ld.w    r8, r11++
-       sub     r10, 4
-       st.w    r12++, r8
-       brge    3b
-
-4:     neg     r10
-       reteq   r9
-
-       /* Handle unaligned count */
-       lsl     r10, 2
-       add     pc, pc, r10
-       ld.ub   r8, r11++
-       st.b    r12++, r8
-       ld.ub   r8, r11++
-       st.b    r12++, r8
-       ld.ub   r8, r11++
-       st.b    r12++, r8
-       retal   r9
-
-       /* Handle unaligned "from" pointer */
-1:     sub     r10, 4
-       movlt   r9, r12
-       brlt    4b
-       add     r10, r9
-       lsl     r9, 2
-       add     pc, pc, r9
-       ld.ub   r8, r11++
-       st.b    r12++, r8
-       ld.ub   r8, r11++
-       st.b    r12++, r8
-       ld.ub   r8, r11++
-       st.b    r12++, r8
-       mov     r8, r12
-       add     pc, pc, r9
-       sub     r8, 1
-       nop
-       sub     r8, 1
-       nop
-       sub     r8, 1
-       nop
-       mov     r9, r8
-       rjmp    5b
diff --git a/arch/avr32/lib/memset.S b/arch/avr32/lib/memset.S
deleted file mode 100644 (file)
index 40da32c..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * Based on linux/arch/arm/lib/memset.S
- *   Copyright (C) 1995-2000 Russell King
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * ASM optimised string functions
- */
-#include <asm/asm.h>
-
-       /*
-        * r12: void *b
-        * r11: int c
-        * r10: size_t len
-        *
-        * Returns b in r12
-        */
-       .text
-       .global memset
-       .type   memset, @function
-       .align  5
-memset:
-       mov     r9, r12
-       mov     r8, r12
-       or      r11, r11, r11 << 8
-       andl    r9, 3, COH
-       brne    1f
-
-2:     or      r11, r11, r11 << 16
-       sub     r10, 4
-       brlt    5f
-
-       /* Let's do some real work */
-4:     st.w    r8++, r11
-       sub     r10, 4
-       brge    4b
-
-       /*
-        * When we get here, we've got less than 4 bytes to set. r10
-        * might be negative.
-        */
-5:     sub     r10, -4
-       reteq   r12
-
-       /* Fastpath ends here, exactly 32 bytes from memset */
-
-       /* Handle unaligned count or pointer */
-       bld     r10, 1
-       brcc    6f
-       st.b    r8++, r11
-       st.b    r8++, r11
-       bld     r10, 0
-       retcc   r12
-6:     st.b    r8++, r11
-       retal   r12
-
-       /* Handle unaligned pointer */
-1:     sub     r10, 4
-       brlt    5b
-       add     r10, r9
-       lsl     r9, 1
-       add     pc, r9
-       st.b    r8++, r11
-       st.b    r8++, r11
-       st.b    r8++, r11
-       rjmp    2b
-
-       .size   memset, . - memset
diff --git a/arch/avr32/lib/strncpy_from_user.S b/arch/avr32/lib/strncpy_from_user.S
deleted file mode 100644 (file)
index 72bd505..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copy to/from userspace with optional address space checking.
- *
- * Copyright 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/errno.h>
-
-#include <asm/page.h>
-#include <asm/thread_info.h>
-#include <asm/asm.h>
-
-       /*
-        * long strncpy_from_user(char *dst, const char *src, long count)
-        *
-        * On success, returns the length of the string, not including
-        * the terminating NUL.
-        *
-        * If the string is longer than count, returns count
-        *
-        * If userspace access fails, returns -EFAULT
-        */
-       .text
-       .align  1
-       .global strncpy_from_user
-       .type   strncpy_from_user, "function"
-strncpy_from_user:
-       mov     r9, -EFAULT
-       branch_if_kernel r8, __strncpy_from_user
-       ret_if_privileged r8, r11, r10, r9
-
-       .global __strncpy_from_user
-       .type   __strncpy_from_user, "function"
-__strncpy_from_user:
-       cp.w    r10, 0
-       reteq   0
-
-       mov     r9, r10
-
-1:     ld.ub   r8, r11++
-       st.b    r12++, r8
-       cp.w    r8, 0
-       breq    2f
-       sub     r9, 1
-       brne    1b
-
-2:     sub     r10, r9
-       retal   r10
-
-       .section .fixup, "ax"
-       .align  1
-3:     mov     r12, -EFAULT
-       retal   r12
-
-       .section __ex_table, "a"
-       .align  2
-       .long   1b, 3b
diff --git a/arch/avr32/lib/strnlen_user.S b/arch/avr32/lib/strnlen_user.S
deleted file mode 100644 (file)
index e46f472..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copy to/from userspace with optional address space checking.
- *
- * Copyright 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <asm/page.h>
-#include <asm/thread_info.h>
-#include <asm/processor.h>
-#include <asm/asm.h>
-
-       .text
-       .align  1
-       .global strnlen_user
-       .type   strnlen_user, "function"
-strnlen_user:
-       branch_if_kernel r8, __strnlen_user
-       sub     r8, r11, 1
-       add     r8, r12
-       retcs   0
-       brmi    adjust_length   /* do a closer inspection */
-
-       .global __strnlen_user
-       .type   __strnlen_user, "function"
-__strnlen_user:
-       mov     r10, r12
-
-10:    ld.ub   r8, r12++
-       cp.w    r8, 0
-       breq    2f
-       sub     r11, 1
-       brne    10b
-
-       sub     r12, -1
-2:     sub     r12, r10
-       retal   r12
-
-
-       .type   adjust_length, "function"
-adjust_length:
-       cp.w    r12, 0          /* addr must always be < TASK_SIZE */
-       retmi   0
-
-       pushm   lr
-       lddpc   lr, _task_size
-       sub     r11, lr, r12
-       mov     r9, r11
-       call    __strnlen_user
-       cp.w    r12, r9
-       brgt    1f
-       popm    pc
-1:     popm    pc, r12=0
-
-       .align  2
-_task_size:
-       .long   TASK_SIZE
-
-       .section .fixup, "ax"
-       .align  1
-19:    retal   0
-
-       .section __ex_table, "a"
-       .align  2
-       .long   10b, 19b
diff --git a/arch/avr32/mach-at32ap/Kconfig b/arch/avr32/mach-at32ap/Kconfig
deleted file mode 100644 (file)
index a7bbcc8..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-if PLATFORM_AT32AP
-
-menu "Atmel AVR32 AP options"
-
-choice
-       prompt "AT32AP700x static memory bus width"
-       depends on CPU_AT32AP700X
-       default AP700X_16_BIT_SMC
-       help
-         Define the width of the AP7000 external static memory interface.
-         This is used to determine how to mangle the address and/or data
-         when doing little-endian port access.
-
-         The current code can only support a single external memory bus
-         width for all chip selects, excluding the flash (which is using
-         raw access and is thus not affected by any of this.)
-
-config AP700X_32_BIT_SMC
-       bool "32 bit"
-
-config AP700X_16_BIT_SMC
-       bool "16 bit"
-
-config AP700X_8_BIT_SMC
-       bool "8 bit"
-
-endchoice
-
-endmenu
-
-endif # PLATFORM_AT32AP
diff --git a/arch/avr32/mach-at32ap/Makefile b/arch/avr32/mach-at32ap/Makefile
deleted file mode 100644 (file)
index fc09ec4..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-obj-y                          += pdc.o clock.o intc.o extint.o pio.o hsmc.o
-obj-y                          += hmatrix.o
-obj-$(CONFIG_CPU_AT32AP700X)   += at32ap700x.o pm-at32ap700x.o
-obj-$(CONFIG_PM)               += pm.o
-
-ifeq ($(CONFIG_PM_DEBUG),y)
-CFLAGS_pm.o    += -DDEBUG
-endif
diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c
deleted file mode 100644 (file)
index 00d6dcc..0000000
+++ /dev/null
@@ -1,2368 +0,0 @@
-/*
- * Copyright (C) 2005-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/clk.h>
-#include <linux/delay.h>
-#include <linux/platform_data/dma-dw.h>
-#include <linux/fb.h>
-#include <linux/init.h>
-#include <linux/platform_device.h>
-#include <linux/dma-mapping.h>
-#include <linux/slab.h>
-#include <linux/gpio.h>
-#include <linux/spi/spi.h>
-#include <linux/usb/atmel_usba_udc.h>
-
-#include <linux/atmel-mci.h>
-
-#include <asm/io.h>
-#include <asm/irq.h>
-
-#include <mach/at32ap700x.h>
-#include <mach/board.h>
-#include <mach/hmatrix.h>
-#include <mach/portmux.h>
-#include <mach/sram.h>
-
-#include <sound/atmel-abdac.h>
-#include <sound/atmel-ac97c.h>
-
-#include <video/atmel_lcdc.h>
-
-#include "clock.h"
-#include "pio.h"
-#include "pm.h"
-
-
-#define PBMEM(base)                                    \
-       {                                               \
-               .start          = base,                 \
-               .end            = base + 0x3ff,         \
-               .flags          = IORESOURCE_MEM,       \
-       }
-#define IRQ(num)                                       \
-       {                                               \
-               .start          = num,                  \
-               .end            = num,                  \
-               .flags          = IORESOURCE_IRQ,       \
-       }
-#define NAMED_IRQ(num, _name)                          \
-       {                                               \
-               .start          = num,                  \
-               .end            = num,                  \
-               .name           = _name,                \
-               .flags          = IORESOURCE_IRQ,       \
-       }
-
-/* REVISIT these assume *every* device supports DMA, but several
- * don't ... tc, smc, pio, rtc, watchdog, pwm, ps2, and more.
- */
-#define DEFINE_DEV(_name, _id)                                 \
-static u64 _name##_id##_dma_mask = DMA_BIT_MASK(32);           \
-static struct platform_device _name##_id##_device = {          \
-       .name           = #_name,                               \
-       .id             = _id,                                  \
-       .dev            = {                                     \
-               .dma_mask = &_name##_id##_dma_mask,             \
-               .coherent_dma_mask = DMA_BIT_MASK(32),          \
-       },                                                      \
-       .resource       = _name##_id##_resource,                \
-       .num_resources  = ARRAY_SIZE(_name##_id##_resource),    \
-}
-#define DEFINE_DEV_DATA(_name, _id)                            \
-static u64 _name##_id##_dma_mask = DMA_BIT_MASK(32);           \
-static struct platform_device _name##_id##_device = {          \
-       .name           = #_name,                               \
-       .id             = _id,                                  \
-       .dev            = {                                     \
-               .dma_mask = &_name##_id##_dma_mask,             \
-               .platform_data  = &_name##_id##_data,           \
-               .coherent_dma_mask = DMA_BIT_MASK(32),          \
-       },                                                      \
-       .resource       = _name##_id##_resource,                \
-       .num_resources  = ARRAY_SIZE(_name##_id##_resource),    \
-}
-
-#define select_peripheral(port, pin_mask, periph, flags)       \
-       at32_select_periph(GPIO_##port##_BASE, pin_mask,        \
-                          GPIO_##periph, flags)
-
-#define DEV_CLK(_name, devname, bus, _index)                   \
-static struct clk devname##_##_name = {                                \
-       .name           = #_name,                               \
-       .dev            = &devname##_device.dev,                \
-       .parent         = &bus##_clk,                           \
-       .mode           = bus##_clk_mode,                       \
-       .get_rate       = bus##_clk_get_rate,                   \
-       .index          = _index,                               \
-}
-
-static DEFINE_SPINLOCK(pm_lock);
-
-static struct clk osc0;
-static struct clk osc1;
-
-static unsigned long osc_get_rate(struct clk *clk)
-{
-       return at32_board_osc_rates[clk->index];
-}
-
-static unsigned long pll_get_rate(struct clk *clk, unsigned long control)
-{
-       unsigned long div, mul, rate;
-
-       div = PM_BFEXT(PLLDIV, control) + 1;
-       mul = PM_BFEXT(PLLMUL, control) + 1;
-
-       rate = clk->parent->get_rate(clk->parent);
-       rate = (rate + div / 2) / div;
-       rate *= mul;
-
-       return rate;
-}
-
-static long pll_set_rate(struct clk *clk, unsigned long rate,
-                        u32 *pll_ctrl)
-{
-       unsigned long mul;
-       unsigned long mul_best_fit = 0;
-       unsigned long div;
-       unsigned long div_min;
-       unsigned long div_max;
-       unsigned long div_best_fit = 0;
-       unsigned long base;
-       unsigned long pll_in;
-       unsigned long actual = 0;
-       unsigned long rate_error;
-       unsigned long rate_error_prev = ~0UL;
-       u32 ctrl;
-
-       /* Rate must be between 80 MHz and 200 Mhz. */
-       if (rate < 80000000UL || rate > 200000000UL)
-               return -EINVAL;
-
-       ctrl = PM_BF(PLLOPT, 4);
-       base = clk->parent->get_rate(clk->parent);
-
-       /* PLL input frequency must be between 6 MHz and 32 MHz. */
-       div_min = DIV_ROUND_UP(base, 32000000UL);
-       div_max = base / 6000000UL;
-
-       if (div_max < div_min)
-               return -EINVAL;
-
-       for (div = div_min; div <= div_max; div++) {
-               pll_in = (base + div / 2) / div;
-               mul = (rate + pll_in / 2) / pll_in;
-
-               if (mul == 0)
-                       continue;
-
-               actual = pll_in * mul;
-               rate_error = abs(actual - rate);
-
-               if (rate_error < rate_error_prev) {
-                       mul_best_fit = mul;
-                       div_best_fit = div;
-                       rate_error_prev = rate_error;
-               }
-
-               if (rate_error == 0)
-                       break;
-       }
-
-       if (div_best_fit == 0)
-               return -EINVAL;
-
-       ctrl |= PM_BF(PLLMUL, mul_best_fit - 1);
-       ctrl |= PM_BF(PLLDIV, div_best_fit - 1);
-       ctrl |= PM_BF(PLLCOUNT, 16);
-
-       if (clk->parent == &osc1)
-               ctrl |= PM_BIT(PLLOSC);
-
-       *pll_ctrl = ctrl;
-
-       return actual;
-}
-
-static unsigned long pll0_get_rate(struct clk *clk)
-{
-       u32 control;
-
-       control = pm_readl(PLL0);
-
-       return pll_get_rate(clk, control);
-}
-
-static void pll1_mode(struct clk *clk, int enabled)
-{
-       unsigned long timeout;
-       u32 status;
-       u32 ctrl;
-
-       ctrl = pm_readl(PLL1);
-
-       if (enabled) {
-               if (!PM_BFEXT(PLLMUL, ctrl) && !PM_BFEXT(PLLDIV, ctrl)) {
-                       pr_debug("clk %s: failed to enable, rate not set\n",
-                                       clk->name);
-                       return;
-               }
-
-               ctrl |= PM_BIT(PLLEN);
-               pm_writel(PLL1, ctrl);
-
-               /* Wait for PLL lock. */
-               for (timeout = 10000; timeout; timeout--) {
-                       status = pm_readl(ISR);
-                       if (status & PM_BIT(LOCK1))
-                               break;
-                       udelay(10);
-               }
-
-               if (!(status & PM_BIT(LOCK1)))
-                       printk(KERN_ERR "clk %s: timeout waiting for lock\n",
-                                       clk->name);
-       } else {
-               ctrl &= ~PM_BIT(PLLEN);
-               pm_writel(PLL1, ctrl);
-       }
-}
-
-static unsigned long pll1_get_rate(struct clk *clk)
-{
-       u32 control;
-
-       control = pm_readl(PLL1);
-
-       return pll_get_rate(clk, control);
-}
-
-static long pll1_set_rate(struct clk *clk, unsigned long rate, int apply)
-{
-       u32 ctrl = 0;
-       unsigned long actual_rate;
-
-       actual_rate = pll_set_rate(clk, rate, &ctrl);
-
-       if (apply) {
-               if (actual_rate != rate)
-                       return -EINVAL;
-               if (clk->users > 0)
-                       return -EBUSY;
-               pr_debug(KERN_INFO "clk %s: new rate %lu (actual rate %lu)\n",
-                               clk->name, rate, actual_rate);
-               pm_writel(PLL1, ctrl);
-       }
-
-       return actual_rate;
-}
-
-static int pll1_set_parent(struct clk *clk, struct clk *parent)
-{
-       u32 ctrl;
-
-       if (clk->users > 0)
-               return -EBUSY;
-
-       ctrl = pm_readl(PLL1);
-       WARN_ON(ctrl & PM_BIT(PLLEN));
-
-       if (parent == &osc0)
-               ctrl &= ~PM_BIT(PLLOSC);
-       else if (parent == &osc1)
-               ctrl |= PM_BIT(PLLOSC);
-       else
-               return -EINVAL;
-
-       pm_writel(PLL1, ctrl);
-       clk->parent = parent;
-
-       return 0;
-}
-
-/*
- * The AT32AP7000 has five primary clock sources: One 32kHz
- * oscillator, two crystal oscillators and two PLLs.
- */
-static struct clk osc32k = {
-       .name           = "osc32k",
-       .get_rate       = osc_get_rate,
-       .users          = 1,
-       .index          = 0,
-};
-static struct clk osc0 = {
-       .name           = "osc0",
-       .get_rate       = osc_get_rate,
-       .users          = 1,
-       .index          = 1,
-};
-static struct clk osc1 = {
-       .name           = "osc1",
-       .get_rate       = osc_get_rate,
-       .index          = 2,
-};
-static struct clk pll0 = {
-       .name           = "pll0",
-       .get_rate       = pll0_get_rate,
-       .parent         = &osc0,
-};
-static struct clk pll1 = {
-       .name           = "pll1",
-       .mode           = pll1_mode,
-       .get_rate       = pll1_get_rate,
-       .set_rate       = pll1_set_rate,
-       .set_parent     = pll1_set_parent,
-       .parent         = &osc0,
-};
-
-/*
- * The main clock can be either osc0 or pll0.  The boot loader may
- * have chosen one for us, so we don't really know which one until we
- * have a look at the SM.
- */
-static struct clk *main_clock;
-
-/*
- * Synchronous clocks are generated from the main clock. The clocks
- * must satisfy the constraint
- *   fCPU >= fHSB >= fPB
- * i.e. each clock must not be faster than its parent.
- */
-static unsigned long bus_clk_get_rate(struct clk *clk, unsigned int shift)
-{
-       return main_clock->get_rate(main_clock) >> shift;
-};
-
-static void cpu_clk_mode(struct clk *clk, int enabled)
-{
-       unsigned long flags;
-       u32 mask;
-
-       spin_lock_irqsave(&pm_lock, flags);
-       mask = pm_readl(CPU_MASK);
-       if (enabled)
-               mask |= 1 << clk->index;
-       else
-               mask &= ~(1 << clk->index);
-       pm_writel(CPU_MASK, mask);
-       spin_unlock_irqrestore(&pm_lock, flags);
-}
-
-static unsigned long cpu_clk_get_rate(struct clk *clk)
-{
-       unsigned long cksel, shift = 0;
-
-       cksel = pm_readl(CKSEL);
-       if (cksel & PM_BIT(CPUDIV))
-               shift = PM_BFEXT(CPUSEL, cksel) + 1;
-
-       return bus_clk_get_rate(clk, shift);
-}
-
-static long cpu_clk_set_rate(struct clk *clk, unsigned long rate, int apply)
-{
-       u32 control;
-       unsigned long parent_rate, child_div, actual_rate, div;
-
-       parent_rate = clk->parent->get_rate(clk->parent);
-       control = pm_readl(CKSEL);
-
-       if (control & PM_BIT(HSBDIV))
-               child_div = 1 << (PM_BFEXT(HSBSEL, control) + 1);
-       else
-               child_div = 1;
-
-       if (rate > 3 * (parent_rate / 4) || child_div == 1) {
-               actual_rate = parent_rate;
-               control &= ~PM_BIT(CPUDIV);
-       } else {
-               unsigned int cpusel;
-               div = (parent_rate + rate / 2) / rate;
-               if (div > child_div)
-                       div = child_div;
-               cpusel = (div > 1) ? (fls(div) - 2) : 0;
-               control = PM_BIT(CPUDIV) | PM_BFINS(CPUSEL, cpusel, control);
-               actual_rate = parent_rate / (1 << (cpusel + 1));
-       }
-
-       pr_debug("clk %s: new rate %lu (actual rate %lu)\n",
-                       clk->name, rate, actual_rate);
-
-       if (apply)
-               pm_writel(CKSEL, control);
-
-       return actual_rate;
-}
-
-static void hsb_clk_mode(struct clk *clk, int enabled)
-{
-       unsigned long flags;
-       u32 mask;
-
-       spin_lock_irqsave(&pm_lock, flags);
-       mask = pm_readl(HSB_MASK);
-       if (enabled)
-               mask |= 1 << clk->index;
-       else
-               mask &= ~(1 << clk->index);
-       pm_writel(HSB_MASK, mask);
-       spin_unlock_irqrestore(&pm_lock, flags);
-}
-
-static unsigned long hsb_clk_get_rate(struct clk *clk)
-{
-       unsigned long cksel, shift = 0;
-
-       cksel = pm_readl(CKSEL);
-       if (cksel & PM_BIT(HSBDIV))
-               shift = PM_BFEXT(HSBSEL, cksel) + 1;
-
-       return bus_clk_get_rate(clk, shift);
-}
-
-void pba_clk_mode(struct clk *clk, int enabled)
-{
-       unsigned long flags;
-       u32 mask;
-
-       spin_lock_irqsave(&pm_lock, flags);
-       mask = pm_readl(PBA_MASK);
-       if (enabled)
-               mask |= 1 << clk->index;
-       else
-               mask &= ~(1 << clk->index);
-       pm_writel(PBA_MASK, mask);
-       spin_unlock_irqrestore(&pm_lock, flags);
-}
-
-unsigned long pba_clk_get_rate(struct clk *clk)
-{
-       unsigned long cksel, shift = 0;
-
-       cksel = pm_readl(CKSEL);
-       if (cksel & PM_BIT(PBADIV))
-               shift = PM_BFEXT(PBASEL, cksel) + 1;
-
-       return bus_clk_get_rate(clk, shift);
-}
-
-static void pbb_clk_mode(struct clk *clk, int enabled)
-{
-       unsigned long flags;
-       u32 mask;
-
-       spin_lock_irqsave(&pm_lock, flags);
-       mask = pm_readl(PBB_MASK);
-       if (enabled)
-               mask |= 1 << clk->index;
-       else
-               mask &= ~(1 << clk->index);
-       pm_writel(PBB_MASK, mask);
-       spin_unlock_irqrestore(&pm_lock, flags);
-}
-
-static unsigned long pbb_clk_get_rate(struct clk *clk)
-{
-       unsigned long cksel, shift = 0;
-
-       cksel = pm_readl(CKSEL);
-       if (cksel & PM_BIT(PBBDIV))
-               shift = PM_BFEXT(PBBSEL, cksel) + 1;
-
-       return bus_clk_get_rate(clk, shift);
-}
-
-static struct clk cpu_clk = {
-       .name           = "cpu",
-       .get_rate       = cpu_clk_get_rate,
-       .set_rate       = cpu_clk_set_rate,
-       .users          = 1,
-};
-static struct clk hsb_clk = {
-       .name           = "hsb",
-       .parent         = &cpu_clk,
-       .get_rate       = hsb_clk_get_rate,
-};
-static struct clk pba_clk = {
-       .name           = "pba",
-       .parent         = &hsb_clk,
-       .mode           = hsb_clk_mode,
-       .get_rate       = pba_clk_get_rate,
-       .index          = 1,
-};
-static struct clk pbb_clk = {
-       .name           = "pbb",
-       .parent         = &hsb_clk,
-       .mode           = hsb_clk_mode,
-       .get_rate       = pbb_clk_get_rate,
-       .users          = 1,
-       .index          = 2,
-};
-
-/* --------------------------------------------------------------------
- *  Generic Clock operations
- * -------------------------------------------------------------------- */
-
-static void genclk_mode(struct clk *clk, int enabled)
-{
-       u32 control;
-
-       control = pm_readl(GCCTRL(clk->index));
-       if (enabled)
-               control |= PM_BIT(CEN);
-       else
-               control &= ~PM_BIT(CEN);
-       pm_writel(GCCTRL(clk->index), control);
-}
-
-static unsigned long genclk_get_rate(struct clk *clk)
-{
-       u32 control;
-       unsigned long div = 1;
-
-       control = pm_readl(GCCTRL(clk->index));
-       if (control & PM_BIT(DIVEN))
-               div = 2 * (PM_BFEXT(DIV, control) + 1);
-
-       return clk->parent->get_rate(clk->parent) / div;
-}
-
-static long genclk_set_rate(struct clk *clk, unsigned long rate, int apply)
-{
-       u32 control;
-       unsigned long parent_rate, actual_rate, div;
-
-       parent_rate = clk->parent->get_rate(clk->parent);
-       control = pm_readl(GCCTRL(clk->index));
-
-       if (rate > 3 * parent_rate / 4) {
-               actual_rate = parent_rate;
-               control &= ~PM_BIT(DIVEN);
-       } else {
-               div = (parent_rate + rate) / (2 * rate) - 1;
-               control = PM_BFINS(DIV, div, control) | PM_BIT(DIVEN);
-               actual_rate = parent_rate / (2 * (div + 1));
-       }
-
-       dev_dbg(clk->dev, "clk %s: new rate %lu (actual rate %lu)\n",
-               clk->name, rate, actual_rate);
-
-       if (apply)
-               pm_writel(GCCTRL(clk->index), control);
-
-       return actual_rate;
-}
-
-int genclk_set_parent(struct clk *clk, struct clk *parent)
-{
-       u32 control;
-
-       dev_dbg(clk->dev, "clk %s: new parent %s (was %s)\n",
-               clk->name, parent->name, clk->parent->name);
-
-       control = pm_readl(GCCTRL(clk->index));
-
-       if (parent == &osc1 || parent == &pll1)
-               control |= PM_BIT(OSCSEL);
-       else if (parent == &osc0 || parent == &pll0)
-               control &= ~PM_BIT(OSCSEL);
-       else
-               return -EINVAL;
-
-       if (parent == &pll0 || parent == &pll1)
-               control |= PM_BIT(PLLSEL);
-       else
-               control &= ~PM_BIT(PLLSEL);
-
-       pm_writel(GCCTRL(clk->index), control);
-       clk->parent = parent;
-
-       return 0;
-}
-
-static void __init genclk_init_parent(struct clk *clk)
-{
-       u32 control;
-       struct clk *parent;
-
-       BUG_ON(clk->index > 7);
-
-       control = pm_readl(GCCTRL(clk->index));
-       if (control & PM_BIT(OSCSEL))
-               parent = (control & PM_BIT(PLLSEL)) ? &pll1 : &osc1;
-       else
-               parent = (control & PM_BIT(PLLSEL)) ? &pll0 : &osc0;
-
-       clk->parent = parent;
-}
-
-static struct resource dw_dmac0_resource[] = {
-       PBMEM(0xff200000),
-       IRQ(2),
-};
-DEFINE_DEV(dw_dmac, 0);
-DEV_CLK(hclk, dw_dmac0, hsb, 10);
-
-/* --------------------------------------------------------------------
- *  System peripherals
- * -------------------------------------------------------------------- */
-static struct resource at32_pm0_resource[] = {
-       {
-               .start  = 0xfff00000,
-               .end    = 0xfff0007f,
-               .flags  = IORESOURCE_MEM,
-       },
-       IRQ(20),
-};
-
-static struct resource at32ap700x_rtc0_resource[] = {
-       {
-               .start  = 0xfff00080,
-               .end    = 0xfff000af,
-               .flags  = IORESOURCE_MEM,
-       },
-       IRQ(21),
-};
-
-static struct resource at32_wdt0_resource[] = {
-       {
-               .start  = 0xfff000b0,
-               .end    = 0xfff000cf,
-               .flags  = IORESOURCE_MEM,
-       },
-};
-
-static struct resource at32_eic0_resource[] = {
-       {
-               .start  = 0xfff00100,
-               .end    = 0xfff0013f,
-               .flags  = IORESOURCE_MEM,
-       },
-       IRQ(19),
-};
-
-DEFINE_DEV(at32_pm, 0);
-DEFINE_DEV(at32ap700x_rtc, 0);
-DEFINE_DEV(at32_wdt, 0);
-DEFINE_DEV(at32_eic, 0);
-
-/*
- * Peripheral clock for PM, RTC, WDT and EIC. PM will ensure that this
- * is always running.
- */
-static struct clk at32_pm_pclk = {
-       .name           = "pclk",
-       .dev            = &at32_pm0_device.dev,
-       .parent         = &pbb_clk,
-       .mode           = pbb_clk_mode,
-       .get_rate       = pbb_clk_get_rate,
-       .users          = 1,
-       .index          = 0,
-};
-
-static struct resource intc0_resource[] = {
-       PBMEM(0xfff00400),
-};
-struct platform_device at32_intc0_device = {
-       .name           = "intc",
-       .id             = 0,
-       .resource       = intc0_resource,
-       .num_resources  = ARRAY_SIZE(intc0_resource),
-};
-DEV_CLK(pclk, at32_intc0, pbb, 1);
-
-static struct clk ebi_clk = {
-       .name           = "ebi",
-       .parent         = &hsb_clk,
-       .mode           = hsb_clk_mode,
-       .get_rate       = hsb_clk_get_rate,
-       .users          = 1,
-};
-static struct clk hramc_clk = {
-       .name           = "hramc",
-       .parent         = &hsb_clk,
-       .mode           = hsb_clk_mode,
-       .get_rate       = hsb_clk_get_rate,
-       .users          = 1,
-       .index          = 3,
-};
-static struct clk sdramc_clk = {
-       .name           = "sdramc_clk",
-       .parent         = &pbb_clk,
-       .mode           = pbb_clk_mode,
-       .get_rate       = pbb_clk_get_rate,
-       .users          = 1,
-       .index          = 14,
-};
-
-static struct resource smc0_resource[] = {
-       PBMEM(0xfff03400),
-};
-DEFINE_DEV(smc, 0);
-DEV_CLK(pclk, smc0, pbb, 13);
-DEV_CLK(mck, smc0, hsb, 0);
-
-static struct platform_device pdc_device = {
-       .name           = "pdc",
-       .id             = 0,
-};
-DEV_CLK(hclk, pdc, hsb, 4);
-DEV_CLK(pclk, pdc, pba, 16);
-
-static struct clk pico_clk = {
-       .name           = "pico",
-       .parent         = &cpu_clk,
-       .mode           = cpu_clk_mode,
-       .get_rate       = cpu_clk_get_rate,
-       .users          = 1,
-};
-
-/* --------------------------------------------------------------------
- * HMATRIX
- * -------------------------------------------------------------------- */
-
-struct clk at32_hmatrix_clk = {
-       .name           = "hmatrix_clk",
-       .parent         = &pbb_clk,
-       .mode           = pbb_clk_mode,
-       .get_rate       = pbb_clk_get_rate,
-       .index          = 2,
-       .users          = 1,
-};
-
-/*
- * Set bits in the HMATRIX Special Function Register (SFR) used by the
- * External Bus Interface (EBI). This can be used to enable special
- * features like CompactFlash support, NAND Flash support, etc. on
- * certain chipselects.
- */
-static inline void set_ebi_sfr_bits(u32 mask)
-{
-       hmatrix_sfr_set_bits(HMATRIX_SLAVE_EBI, mask);
-}
-
-/* --------------------------------------------------------------------
- *  Timer/Counter (TC)
- * -------------------------------------------------------------------- */
-
-static struct resource at32_tcb0_resource[] = {
-       PBMEM(0xfff00c00),
-       IRQ(22),
-};
-static struct platform_device at32_tcb0_device = {
-       .name           = "atmel_tcb",
-       .id             = 0,
-       .resource       = at32_tcb0_resource,
-       .num_resources  = ARRAY_SIZE(at32_tcb0_resource),
-};
-DEV_CLK(t0_clk, at32_tcb0, pbb, 3);
-
-static struct resource at32_tcb1_resource[] = {
-       PBMEM(0xfff01000),
-       IRQ(23),
-};
-static struct platform_device at32_tcb1_device = {
-       .name           = "atmel_tcb",
-       .id             = 1,
-       .resource       = at32_tcb1_resource,
-       .num_resources  = ARRAY_SIZE(at32_tcb1_resource),
-};
-DEV_CLK(t0_clk, at32_tcb1, pbb, 4);
-
-/* --------------------------------------------------------------------
- *  PIO
- * -------------------------------------------------------------------- */
-
-static struct resource pio0_resource[] = {
-       PBMEM(0xffe02800),
-       IRQ(13),
-};
-DEFINE_DEV(pio, 0);
-DEV_CLK(mck, pio0, pba, 10);
-
-static struct resource pio1_resource[] = {
-       PBMEM(0xffe02c00),
-       IRQ(14),
-};
-DEFINE_DEV(pio, 1);
-DEV_CLK(mck, pio1, pba, 11);
-
-static struct resource pio2_resource[] = {
-       PBMEM(0xffe03000),
-       IRQ(15),
-};
-DEFINE_DEV(pio, 2);
-DEV_CLK(mck, pio2, pba, 12);
-
-static struct resource pio3_resource[] = {
-       PBMEM(0xffe03400),
-       IRQ(16),
-};
-DEFINE_DEV(pio, 3);
-DEV_CLK(mck, pio3, pba, 13);
-
-static struct resource pio4_resource[] = {
-       PBMEM(0xffe03800),
-       IRQ(17),
-};
-DEFINE_DEV(pio, 4);
-DEV_CLK(mck, pio4, pba, 14);
-
-static int __init system_device_init(void)
-{
-       platform_device_register(&at32_pm0_device);
-       platform_device_register(&at32_intc0_device);
-       platform_device_register(&at32ap700x_rtc0_device);
-       platform_device_register(&at32_wdt0_device);
-       platform_device_register(&at32_eic0_device);
-       platform_device_register(&smc0_device);
-       platform_device_register(&pdc_device);
-       platform_device_register(&dw_dmac0_device);
-
-       platform_device_register(&at32_tcb0_device);
-       platform_device_register(&at32_tcb1_device);
-
-       platform_device_register(&pio0_device);
-       platform_device_register(&pio1_device);
-       platform_device_register(&pio2_device);
-       platform_device_register(&pio3_device);
-       platform_device_register(&pio4_device);
-
-       return 0;
-}
-core_initcall(system_device_init);
-
-/* --------------------------------------------------------------------
- *  PSIF
- * -------------------------------------------------------------------- */
-static struct resource atmel_psif0_resource[] __initdata = {
-       {
-               .start  = 0xffe03c00,
-               .end    = 0xffe03cff,
-               .flags  = IORESOURCE_MEM,
-       },
-       IRQ(18),
-};
-static struct clk atmel_psif0_pclk = {
-       .name           = "pclk",
-       .parent         = &pba_clk,
-       .mode           = pba_clk_mode,
-       .get_rate       = pba_clk_get_rate,
-       .index          = 15,
-};
-
-static struct resource atmel_psif1_resource[] __initdata = {
-       {
-               .start  = 0xffe03d00,
-               .end    = 0xffe03dff,
-               .flags  = IORESOURCE_MEM,
-       },
-       IRQ(18),
-};
-static struct clk atmel_psif1_pclk = {
-       .name           = "pclk",
-       .parent         = &pba_clk,
-       .mode           = pba_clk_mode,
-       .get_rate       = pba_clk_get_rate,
-       .index          = 15,
-};
-
-struct platform_device *__init at32_add_device_psif(unsigned int id)
-{
-       struct platform_device *pdev;
-       u32 pin_mask;
-
-       if (!(id == 0 || id == 1))
-               return NULL;
-
-       pdev = platform_device_alloc("atmel_psif", id);
-       if (!pdev)
-               return NULL;
-
-       switch (id) {
-       case 0:
-               pin_mask  = (1 << 8) | (1 << 9); /* CLOCK & DATA */
-
-               if (platform_device_add_resources(pdev, atmel_psif0_resource,
-                                       ARRAY_SIZE(atmel_psif0_resource)))
-                       goto err_add_resources;
-               atmel_psif0_pclk.dev = &pdev->dev;
-               select_peripheral(PIOA, pin_mask, PERIPH_A, 0);
-               break;
-       case 1:
-               pin_mask  = (1 << 11) | (1 << 12); /* CLOCK & DATA */
-
-               if (platform_device_add_resources(pdev, atmel_psif1_resource,
-                                       ARRAY_SIZE(atmel_psif1_resource)))
-                       goto err_add_resources;
-               atmel_psif1_pclk.dev = &pdev->dev;
-               select_peripheral(PIOB, pin_mask, PERIPH_A, 0);
-               break;
-       default:
-               return NULL;
-       }
-
-       platform_device_add(pdev);
-       return pdev;
-
-err_add_resources:
-       platform_device_put(pdev);
-       return NULL;
-}
-
-/* --------------------------------------------------------------------
- *  USART
- * -------------------------------------------------------------------- */
-
-static struct atmel_uart_data atmel_usart0_data = {
-       .use_dma_tx     = 1,
-       .use_dma_rx     = 1,
-};
-static struct resource atmel_usart0_resource[] = {
-       PBMEM(0xffe00c00),
-       IRQ(6),
-};
-DEFINE_DEV_DATA(atmel_usart, 0);
-DEV_CLK(usart, atmel_usart0, pba, 3);
-
-static struct atmel_uart_data atmel_usart1_data = {
-       .use_dma_tx     = 1,
-       .use_dma_rx     = 1,
-};
-static struct resource atmel_usart1_resource[] = {
-       PBMEM(0xffe01000),
-       IRQ(7),
-};
-DEFINE_DEV_DATA(atmel_usart, 1);
-DEV_CLK(usart, atmel_usart1, pba, 4);
-
-static struct atmel_uart_data atmel_usart2_data = {
-       .use_dma_tx     = 1,
-       .use_dma_rx     = 1,
-};
-static struct resource atmel_usart2_resource[] = {
-       PBMEM(0xffe01400),
-       IRQ(8),
-};
-DEFINE_DEV_DATA(atmel_usart, 2);
-DEV_CLK(usart, atmel_usart2, pba, 5);
-
-static struct atmel_uart_data atmel_usart3_data = {
-       .use_dma_tx     = 1,
-       .use_dma_rx     = 1,
-};
-static struct resource atmel_usart3_resource[] = {
-       PBMEM(0xffe01800),
-       IRQ(9),
-};
-DEFINE_DEV_DATA(atmel_usart, 3);
-DEV_CLK(usart, atmel_usart3, pba, 6);
-
-static inline void configure_usart0_pins(int flags)
-{
-       u32 pin_mask = (1 << 8) | (1 << 9); /* RXD & TXD */
-       if (flags & ATMEL_USART_RTS)    pin_mask |= (1 << 6);
-       if (flags & ATMEL_USART_CTS)    pin_mask |= (1 << 7);
-       if (flags & ATMEL_USART_CLK)    pin_mask |= (1 << 10);
-
-       select_peripheral(PIOA, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP);
-}
-
-static inline void configure_usart1_pins(int flags)
-{
-       u32 pin_mask = (1 << 17) | (1 << 18); /* RXD & TXD */
-       if (flags & ATMEL_USART_RTS)    pin_mask |= (1 << 19);
-       if (flags & ATMEL_USART_CTS)    pin_mask |= (1 << 20);
-       if (flags & ATMEL_USART_CLK)    pin_mask |= (1 << 16);
-
-       select_peripheral(PIOA, pin_mask, PERIPH_A, AT32_GPIOF_PULLUP);
-}
-
-static inline void configure_usart2_pins(int flags)
-{
-       u32 pin_mask = (1 << 26) | (1 << 27); /* RXD & TXD */
-       if (flags & ATMEL_USART_RTS)    pin_mask |= (1 << 30);
-       if (flags & ATMEL_USART_CTS)    pin_mask |= (1 << 29);
-       if (flags & ATMEL_USART_CLK)    pin_mask |= (1 << 28);
-
-       select_peripheral(PIOB, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP);
-}
-
-static inline void configure_usart3_pins(int flags)
-{
-       u32 pin_mask = (1 << 18) | (1 << 17); /* RXD & TXD */
-       if (flags & ATMEL_USART_RTS)    pin_mask |= (1 << 16);
-       if (flags & ATMEL_USART_CTS)    pin_mask |= (1 << 15);
-       if (flags & ATMEL_USART_CLK)    pin_mask |= (1 << 19);
-
-       select_peripheral(PIOB, pin_mask, PERIPH_B, AT32_GPIOF_PULLUP);
-}
-
-static struct platform_device *__initdata at32_usarts[4];
-
-void __init at32_map_usart(unsigned int hw_id, unsigned int line, int flags)
-{
-       struct platform_device *pdev;
-       struct atmel_uart_data *pdata;
-
-       switch (hw_id) {
-       case 0:
-               pdev = &atmel_usart0_device;
-               configure_usart0_pins(flags);
-               break;
-       case 1:
-               pdev = &atmel_usart1_device;
-               configure_usart1_pins(flags);
-               break;
-       case 2:
-               pdev = &atmel_usart2_device;
-               configure_usart2_pins(flags);
-               break;
-       case 3:
-               pdev = &atmel_usart3_device;
-               configure_usart3_pins(flags);
-               break;
-       default:
-               return;
-       }
-
-       if (PXSEG(pdev->resource[0].start) == P4SEG) {
-               /* Addresses in the P4 segment are permanently mapped 1:1 */
-               struct atmel_uart_data *data = pdev->dev.platform_data;
-               data->regs = (void __iomem *)pdev->resource[0].start;
-       }
-
-       pdev->id = line;
-       pdata = pdev->dev.platform_data;
-       pdata->num = line;
-       at32_usarts[line] = pdev;
-}
-
-struct platform_device *__init at32_add_device_usart(unsigned int id)
-{
-       platform_device_register(at32_usarts[id]);
-       return at32_usarts[id];
-}
-
-void __init at32_setup_serial_console(unsigned int usart_id)
-{
-#ifdef CONFIG_SERIAL_ATMEL
-       atmel_default_console_device = at32_usarts[usart_id];
-#endif
-}
-
-/* --------------------------------------------------------------------
- *  Ethernet
- * -------------------------------------------------------------------- */
-
-#ifdef CONFIG_CPU_AT32AP7000
-static struct macb_platform_data macb0_data;
-static struct resource macb0_resource[] = {
-       PBMEM(0xfff01800),
-       IRQ(25),
-};
-DEFINE_DEV_DATA(macb, 0);
-DEV_CLK(hclk, macb0, hsb, 8);
-DEV_CLK(pclk, macb0, pbb, 6);
-
-static struct macb_platform_data macb1_data;
-static struct resource macb1_resource[] = {
-       PBMEM(0xfff01c00),
-       IRQ(26),
-};
-DEFINE_DEV_DATA(macb, 1);
-DEV_CLK(hclk, macb1, hsb, 9);
-DEV_CLK(pclk, macb1, pbb, 7);
-
-struct platform_device *__init
-at32_add_device_eth(unsigned int id, struct macb_platform_data *data)
-{
-       struct platform_device *pdev;
-       u32 pin_mask;
-
-       switch (id) {
-       case 0:
-               pdev = &macb0_device;
-
-               pin_mask  = (1 << 3);   /* TXD0 */
-               pin_mask |= (1 << 4);   /* TXD1 */
-               pin_mask |= (1 << 7);   /* TXEN */
-               pin_mask |= (1 << 8);   /* TXCK */
-               pin_mask |= (1 << 9);   /* RXD0 */
-               pin_mask |= (1 << 10);  /* RXD1 */
-               pin_mask |= (1 << 13);  /* RXER */
-               pin_mask |= (1 << 15);  /* RXDV */
-               pin_mask |= (1 << 16);  /* MDC  */
-               pin_mask |= (1 << 17);  /* MDIO */
-
-               if (!data->is_rmii) {
-                       pin_mask |= (1 << 0);   /* COL  */
-                       pin_mask |= (1 << 1);   /* CRS  */
-                       pin_mask |= (1 << 2);   /* TXER */
-                       pin_mask |= (1 << 5);   /* TXD2 */
-                       pin_mask |= (1 << 6);   /* TXD3 */
-                       pin_mask |= (1 << 11);  /* RXD2 */
-                       pin_mask |= (1 << 12);  /* RXD3 */
-                       pin_mask |= (1 << 14);  /* RXCK */
-#ifndef CONFIG_BOARD_MIMC200
-                       pin_mask |= (1 << 18);  /* SPD  */
-#endif
-               }
-
-               select_peripheral(PIOC, pin_mask, PERIPH_A, 0);
-
-               break;
-
-       case 1:
-               pdev = &macb1_device;
-
-               pin_mask  = (1 << 13);  /* TXD0 */
-               pin_mask |= (1 << 14);  /* TXD1 */
-               pin_mask |= (1 << 11);  /* TXEN */
-               pin_mask |= (1 << 12);  /* TXCK */
-               pin_mask |= (1 << 10);  /* RXD0 */
-               pin_mask |= (1 << 6);   /* RXD1 */
-               pin_mask |= (1 << 5);   /* RXER */
-               pin_mask |= (1 << 4);   /* RXDV */
-               pin_mask |= (1 << 3);   /* MDC  */
-               pin_mask |= (1 << 2);   /* MDIO */
-
-#ifndef CONFIG_BOARD_MIMC200
-               if (!data->is_rmii)
-                       pin_mask |= (1 << 15);  /* SPD  */
-#endif
-
-               select_peripheral(PIOD, pin_mask, PERIPH_B, 0);
-
-               if (!data->is_rmii) {
-                       pin_mask  = (1 << 19);  /* COL  */
-                       pin_mask |= (1 << 23);  /* CRS  */
-                       pin_mask |= (1 << 26);  /* TXER */
-                       pin_mask |= (1 << 27);  /* TXD2 */
-                       pin_mask |= (1 << 28);  /* TXD3 */
-                       pin_mask |= (1 << 29);  /* RXD2 */
-                       pin_mask |= (1 << 30);  /* RXD3 */
-                       pin_mask |= (1 << 24);  /* RXCK */
-
-                       select_peripheral(PIOC, pin_mask, PERIPH_B, 0);
-               }
-               break;
-
-       default:
-               return NULL;
-       }
-
-       memcpy(pdev->dev.platform_data, data, sizeof(struct macb_platform_data));
-       platform_device_register(pdev);
-
-       return pdev;
-}
-#endif
-
-/* --------------------------------------------------------------------
- *  SPI
- * -------------------------------------------------------------------- */
-static struct resource atmel_spi0_resource[] = {
-       PBMEM(0xffe00000),
-       IRQ(3),
-};
-DEFINE_DEV(atmel_spi, 0);
-DEV_CLK(spi_clk, atmel_spi0, pba, 0);
-
-static struct resource atmel_spi1_resource[] = {
-       PBMEM(0xffe00400),
-       IRQ(4),
-};
-DEFINE_DEV(atmel_spi, 1);
-DEV_CLK(spi_clk, atmel_spi1, pba, 1);
-
-void __init
-at32_spi_setup_slaves(unsigned int bus_num, struct spi_board_info *b, unsigned int n)
-{
-       /*
-        * Manage the chipselects as GPIOs, normally using the same pins
-        * the SPI controller expects; but boards can use other pins.
-        */
-       static u8 __initdata spi_pins[][4] = {
-               { GPIO_PIN_PA(3), GPIO_PIN_PA(4),
-                 GPIO_PIN_PA(5), GPIO_PIN_PA(20) },
-               { GPIO_PIN_PB(2), GPIO_PIN_PB(3),
-                 GPIO_PIN_PB(4), GPIO_PIN_PA(27) },
-       };
-       unsigned int pin, mode;
-
-       /* There are only 2 SPI controllers */
-       if (bus_num > 1)
-               return;
-
-       for (; n; n--, b++) {
-               b->bus_num = bus_num;
-               if (b->chip_select >= 4)
-                       continue;
-               pin = (unsigned)b->controller_data;
-               if (!pin) {
-                       pin = spi_pins[bus_num][b->chip_select];
-                       b->controller_data = (void *)pin;
-               }
-               mode = AT32_GPIOF_OUTPUT;
-               if (!(b->mode & SPI_CS_HIGH))
-                       mode |= AT32_GPIOF_HIGH;
-               at32_select_gpio(pin, mode);
-       }
-}
-
-struct platform_device *__init
-at32_add_device_spi(unsigned int id, struct spi_board_info *b, unsigned int n)
-{
-       struct platform_device *pdev;
-       u32 pin_mask;
-
-       switch (id) {
-       case 0:
-               pdev = &atmel_spi0_device;
-               pin_mask  = (1 << 1) | (1 << 2);        /* MOSI & SCK */
-
-               /* pullup MISO so a level is always defined */
-               select_peripheral(PIOA, (1 << 0), PERIPH_A, AT32_GPIOF_PULLUP);
-               select_peripheral(PIOA, pin_mask, PERIPH_A, 0);
-
-               at32_spi_setup_slaves(0, b, n);
-               break;
-
-       case 1:
-               pdev = &atmel_spi1_device;
-               pin_mask  = (1 << 1) | (1 << 5);        /* MOSI */
-
-               /* pullup MISO so a level is always defined */
-               select_peripheral(PIOB, (1 << 0), PERIPH_B, AT32_GPIOF_PULLUP);
-               select_peripheral(PIOB, pin_mask, PERIPH_B, 0);
-
-               at32_spi_setup_slaves(1, b, n);
-               break;
-
-       default:
-               return NULL;
-       }
-
-       spi_register_board_info(b, n);
-       platform_device_register(pdev);
-       return pdev;
-}
-
-/* --------------------------------------------------------------------
- *  TWI
- * -------------------------------------------------------------------- */
-static struct resource atmel_twi0_resource[] __initdata = {
-       PBMEM(0xffe00800),
-       IRQ(5),
-};
-static struct clk atmel_twi0_pclk = {
-       .name           = "twi_pclk",
-       .parent         = &pba_clk,
-       .mode           = pba_clk_mode,
-       .get_rate       = pba_clk_get_rate,
-       .index          = 2,
-};
-
-struct platform_device *__init at32_add_device_twi(unsigned int id,
-                                                   struct i2c_board_info *b,
-                                                   unsigned int n)
-{
-       struct platform_device *pdev;
-       u32 pin_mask;
-
-       if (id != 0)
-               return NULL;
-
-       pdev = platform_device_alloc("atmel_twi", id);
-       if (!pdev)
-               return NULL;
-
-       if (platform_device_add_resources(pdev, atmel_twi0_resource,
-                               ARRAY_SIZE(atmel_twi0_resource)))
-               goto err_add_resources;
-
-       pin_mask  = (1 << 6) | (1 << 7);        /* SDA & SDL */
-
-       select_peripheral(PIOA, pin_mask, PERIPH_A, 0);
-
-       atmel_twi0_pclk.dev = &pdev->dev;
-
-       if (b)
-               i2c_register_board_info(id, b, n);
-
-       platform_device_add(pdev);
-       return pdev;
-
-err_add_resources:
-       platform_device_put(pdev);
-       return NULL;
-}
-
-/* --------------------------------------------------------------------
- * MMC
- * -------------------------------------------------------------------- */
-static struct resource atmel_mci0_resource[] __initdata = {
-       PBMEM(0xfff02400),
-       IRQ(28),
-};
-static struct clk atmel_mci0_pclk = {
-       .name           = "mci_clk",
-       .parent         = &pbb_clk,
-       .mode           = pbb_clk_mode,
-       .get_rate       = pbb_clk_get_rate,
-       .index          = 9,
-};
-
-static bool at32_mci_dma_filter(struct dma_chan *chan, void *pdata)
-{
-       struct dw_dma_slave *sl = pdata;
-
-       if (!sl)
-               return false;
-
-       if (sl->dma_dev == chan->device->dev) {
-               chan->private = sl;
-               return true;
-       }
-
-       return false;
-}
-
-struct platform_device *__init
-at32_add_device_mci(unsigned int id, struct mci_platform_data *data)
-{
-       struct platform_device          *pdev;
-       struct dw_dma_slave             *slave;
-       u32                             pioa_mask;
-       u32                             piob_mask;
-
-       if (id != 0 || !data)
-               return NULL;
-
-       /* Must have at least one usable slot */
-       if (!data->slot[0].bus_width && !data->slot[1].bus_width)
-               return NULL;
-
-       pdev = platform_device_alloc("atmel_mci", id);
-       if (!pdev)
-               goto fail;
-
-       if (platform_device_add_resources(pdev, atmel_mci0_resource,
-                               ARRAY_SIZE(atmel_mci0_resource)))
-               goto fail;
-
-       slave = kzalloc(sizeof(*slave), GFP_KERNEL);
-       if (!slave)
-               goto fail;
-
-       slave->dma_dev = &dw_dmac0_device.dev;
-       slave->src_id = 0;
-       slave->dst_id = 1;
-       slave->m_master = 1;
-       slave->p_master = 0;
-
-       data->dma_slave = slave;
-       data->dma_filter = at32_mci_dma_filter;
-
-       if (platform_device_add_data(pdev, data,
-                               sizeof(struct mci_platform_data)))
-               goto fail_free;
-
-       /* CLK line is common to both slots */
-       pioa_mask = 1 << 10;
-
-       switch (data->slot[0].bus_width) {
-       case 4:
-               pioa_mask |= 1 << 13;           /* DATA1 */
-               pioa_mask |= 1 << 14;           /* DATA2 */
-               pioa_mask |= 1 << 15;           /* DATA3 */
-               /* fall through */
-       case 1:
-               pioa_mask |= 1 << 11;           /* CMD   */
-               pioa_mask |= 1 << 12;           /* DATA0 */
-
-               if (gpio_is_valid(data->slot[0].detect_pin))
-                       at32_select_gpio(data->slot[0].detect_pin, 0);
-               if (gpio_is_valid(data->slot[0].wp_pin))
-                       at32_select_gpio(data->slot[0].wp_pin, 0);
-               break;
-       case 0:
-               /* Slot is unused */
-               break;
-       default:
-               goto fail_free;
-       }
-
-       select_peripheral(PIOA, pioa_mask, PERIPH_A, 0);
-       piob_mask = 0;
-
-       switch (data->slot[1].bus_width) {
-       case 4:
-               piob_mask |= 1 <<  8;           /* DATA1 */
-               piob_mask |= 1 <<  9;           /* DATA2 */
-               piob_mask |= 1 << 10;           /* DATA3 */
-               /* fall through */
-       case 1:
-               piob_mask |= 1 <<  6;           /* CMD   */
-               piob_mask |= 1 <<  7;           /* DATA0 */
-               select_peripheral(PIOB, piob_mask, PERIPH_B, 0);
-
-               if (gpio_is_valid(data->slot[1].detect_pin))
-                       at32_select_gpio(data->slot[1].detect_pin, 0);
-               if (gpio_is_valid(data->slot[1].wp_pin))
-                       at32_select_gpio(data->slot[1].wp_pin, 0);
-               break;
-       case 0:
-               /* Slot is unused */
-               break;
-       default:
-               if (!data->slot[0].bus_width)
-                       goto fail_free;
-
-               data->slot[1].bus_width = 0;
-               break;
-       }
-
-       atmel_mci0_pclk.dev = &pdev->dev;
-
-       platform_device_add(pdev);
-       return pdev;
-
-fail_free:
-       kfree(slave);
-fail:
-       data->dma_slave = NULL;
-       platform_device_put(pdev);
-       return NULL;
-}
-
-/* --------------------------------------------------------------------
- *  LCDC
- * -------------------------------------------------------------------- */
-#if defined(CONFIG_CPU_AT32AP7000) || defined(CONFIG_CPU_AT32AP7002)
-static struct atmel_lcdfb_pdata atmel_lcdfb0_data;
-static struct resource atmel_lcdfb0_resource[] = {
-       {
-               .start          = 0xff000000,
-               .end            = 0xff000fff,
-               .flags          = IORESOURCE_MEM,
-       },
-       IRQ(1),
-       {
-               /* Placeholder for pre-allocated fb memory */
-               .start          = 0x00000000,
-               .end            = 0x00000000,
-               .flags          = 0,
-       },
-};
-DEFINE_DEV_DATA(atmel_lcdfb, 0);
-DEV_CLK(hclk, atmel_lcdfb0, hsb, 7);
-static struct clk atmel_lcdfb0_pixclk = {
-       .name           = "lcdc_clk",
-       .dev            = &atmel_lcdfb0_device.dev,
-       .mode           = genclk_mode,
-       .get_rate       = genclk_get_rate,
-       .set_rate       = genclk_set_rate,
-       .set_parent     = genclk_set_parent,
-       .index          = 7,
-};
-
-struct platform_device *__init
-at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_pdata *data,
-                    unsigned long fbmem_start, unsigned long fbmem_len,
-                    u64 pin_mask)
-{
-       struct platform_device *pdev;
-       struct atmel_lcdfb_pdata *info;
-       struct fb_monspecs *monspecs;
-       struct fb_videomode *modedb;
-       unsigned int modedb_size;
-       u32 portc_mask, portd_mask, porte_mask;
-
-       /*
-        * Do a deep copy of the fb data, monspecs and modedb. Make
-        * sure all allocations are done before setting up the
-        * portmux.
-        */
-       monspecs = kmemdup(data->default_monspecs,
-                          sizeof(struct fb_monspecs), GFP_KERNEL);
-       if (!monspecs)
-               return NULL;
-
-       modedb_size = sizeof(struct fb_videomode) * monspecs->modedb_len;
-       modedb = kmemdup(monspecs->modedb, modedb_size, GFP_KERNEL);
-       if (!modedb)
-               goto err_dup_modedb;
-       monspecs->modedb = modedb;
-
-       switch (id) {
-       case 0:
-               pdev = &atmel_lcdfb0_device;
-
-               if (pin_mask == 0ULL)
-                       /* Default to "full" lcdc control signals and 24bit */
-                       pin_mask = ATMEL_LCDC_PRI_24BIT | ATMEL_LCDC_PRI_CONTROL;
-
-               /* LCDC on port C */
-               portc_mask = pin_mask & 0xfff80000;
-               select_peripheral(PIOC, portc_mask, PERIPH_A, 0);
-
-               /* LCDC on port D */
-               portd_mask = pin_mask & 0x0003ffff;
-               select_peripheral(PIOD, portd_mask, PERIPH_A, 0);
-
-               /* LCDC on port E */
-               porte_mask = (pin_mask >> 32) & 0x0007ffff;
-               select_peripheral(PIOE, porte_mask, PERIPH_B, 0);
-
-               clk_set_parent(&atmel_lcdfb0_pixclk, &pll0);
-               clk_set_rate(&atmel_lcdfb0_pixclk, clk_get_rate(&pll0));
-               break;
-
-       default:
-               goto err_invalid_id;
-       }
-
-       if (fbmem_len) {
-               pdev->resource[2].start = fbmem_start;
-               pdev->resource[2].end = fbmem_start + fbmem_len - 1;
-               pdev->resource[2].flags = IORESOURCE_MEM;
-       }
-
-       info = pdev->dev.platform_data;
-       memcpy(info, data, sizeof(struct atmel_lcdfb_pdata));
-       info->default_monspecs = monspecs;
-
-       pdev->name = "at32ap-lcdfb";
-
-       platform_device_register(pdev);
-       return pdev;
-
-err_invalid_id:
-       kfree(modedb);
-err_dup_modedb:
-       kfree(monspecs);
-       return NULL;
-}
-#endif
-
-/* --------------------------------------------------------------------
- *  PWM
- * -------------------------------------------------------------------- */
-static struct resource atmel_pwm0_resource[] __initdata = {
-       PBMEM(0xfff01400),
-       IRQ(24),
-};
-static struct clk atmel_pwm0_mck = {
-       .name           = "at91sam9rl-pwm",
-       .parent         = &pbb_clk,
-       .mode           = pbb_clk_mode,
-       .get_rate       = pbb_clk_get_rate,
-       .index          = 5,
-};
-
-struct platform_device *__init at32_add_device_pwm(u32 mask)
-{
-       struct platform_device *pdev;
-       u32 pin_mask;
-
-       if (!mask)
-               return NULL;
-
-       pdev = platform_device_alloc("at91sam9rl-pwm", 0);
-       if (!pdev)
-               return NULL;
-
-       if (platform_device_add_resources(pdev, atmel_pwm0_resource,
-                               ARRAY_SIZE(atmel_pwm0_resource)))
-               goto out_free_pdev;
-
-       pin_mask = 0;
-       if (mask & (1 << 0))
-               pin_mask |= (1 << 28);
-       if (mask & (1 << 1))
-               pin_mask |= (1 << 29);
-       if (pin_mask > 0)
-               select_peripheral(PIOA, pin_mask, PERIPH_A, 0);
-
-       pin_mask = 0;
-       if (mask & (1 << 2))
-               pin_mask |= (1 << 21);
-       if (mask & (1 << 3))
-               pin_mask |= (1 << 22);
-       if (pin_mask > 0)
-               select_peripheral(PIOA, pin_mask, PERIPH_B, 0);
-
-       atmel_pwm0_mck.dev = &pdev->dev;
-
-       platform_device_add(pdev);
-
-       return pdev;
-
-out_free_pdev:
-       platform_device_put(pdev);
-       return NULL;
-}
-
-/* --------------------------------------------------------------------
- *  SSC
- * -------------------------------------------------------------------- */
-static struct resource ssc0_resource[] = {
-       PBMEM(0xffe01c00),
-       IRQ(10),
-};
-DEFINE_DEV(ssc, 0);
-DEV_CLK(pclk, ssc0, pba, 7);
-
-static struct resource ssc1_resource[] = {
-       PBMEM(0xffe02000),
-       IRQ(11),
-};
-DEFINE_DEV(ssc, 1);
-DEV_CLK(pclk, ssc1, pba, 8);
-
-static struct resource ssc2_resource[] = {
-       PBMEM(0xffe02400),
-       IRQ(12),
-};
-DEFINE_DEV(ssc, 2);
-DEV_CLK(pclk, ssc2, pba, 9);
-
-struct platform_device *__init
-at32_add_device_ssc(unsigned int id, unsigned int flags)
-{
-       struct platform_device *pdev;
-       u32 pin_mask = 0;
-
-       switch (id) {
-       case 0:
-               pdev = &ssc0_device;
-               if (flags & ATMEL_SSC_RF)
-                       pin_mask |= (1 << 21);  /* RF */
-               if (flags & ATMEL_SSC_RK)
-                       pin_mask |= (1 << 22);  /* RK */
-               if (flags & ATMEL_SSC_TK)
-                       pin_mask |= (1 << 23);  /* TK */
-               if (flags & ATMEL_SSC_TF)
-                       pin_mask |= (1 << 24);  /* TF */
-               if (flags & ATMEL_SSC_TD)
-                       pin_mask |= (1 << 25);  /* TD */
-               if (flags & ATMEL_SSC_RD)
-                       pin_mask |= (1 << 26);  /* RD */
-
-               if (pin_mask > 0)
-                       select_peripheral(PIOA, pin_mask, PERIPH_A, 0);
-
-               break;
-       case 1:
-               pdev = &ssc1_device;
-               if (flags & ATMEL_SSC_RF)
-                       pin_mask |= (1 << 0);   /* RF */
-               if (flags & ATMEL_SSC_RK)
-                       pin_mask |= (1 << 1);   /* RK */
-               if (flags & ATMEL_SSC_TK)
-                       pin_mask |= (1 << 2);   /* TK */
-               if (flags & ATMEL_SSC_TF)
-                       pin_mask |= (1 << 3);   /* TF */
-               if (flags & ATMEL_SSC_TD)
-                       pin_mask |= (1 << 4);   /* TD */
-               if (flags & ATMEL_SSC_RD)
-                       pin_mask |= (1 << 5);   /* RD */
-
-               if (pin_mask > 0)
-                       select_peripheral(PIOA, pin_mask, PERIPH_B, 0);
-
-               break;
-       case 2:
-               pdev = &ssc2_device;
-               if (flags & ATMEL_SSC_TD)
-                       pin_mask |= (1 << 13);  /* TD */
-               if (flags & ATMEL_SSC_RD)
-                       pin_mask |= (1 << 14);  /* RD */
-               if (flags & ATMEL_SSC_TK)
-                       pin_mask |= (1 << 15);  /* TK */
-               if (flags & ATMEL_SSC_TF)
-                       pin_mask |= (1 << 16);  /* TF */
-               if (flags & ATMEL_SSC_RF)
-                       pin_mask |= (1 << 17);  /* RF */
-               if (flags & ATMEL_SSC_RK)
-                       pin_mask |= (1 << 18);  /* RK */
-
-               if (pin_mask > 0)
-                       select_peripheral(PIOB, pin_mask, PERIPH_A, 0);
-
-               break;
-       default:
-               return NULL;
-       }
-
-       platform_device_register(pdev);
-       return pdev;
-}
-
-/* --------------------------------------------------------------------
- *  USB Device Controller
- * -------------------------------------------------------------------- */
-static struct resource usba0_resource[] __initdata = {
-       {
-               .start          = 0xff300000,
-               .end            = 0xff3fffff,
-               .flags          = IORESOURCE_MEM,
-       }, {
-               .start          = 0xfff03000,
-               .end            = 0xfff033ff,
-               .flags          = IORESOURCE_MEM,
-       },
-       IRQ(31),
-};
-static struct clk usba0_pclk = {
-       .name           = "pclk",
-       .parent         = &pbb_clk,
-       .mode           = pbb_clk_mode,
-       .get_rate       = pbb_clk_get_rate,
-       .index          = 12,
-};
-static struct clk usba0_hclk = {
-       .name           = "hclk",
-       .parent         = &hsb_clk,
-       .mode           = hsb_clk_mode,
-       .get_rate       = hsb_clk_get_rate,
-       .index          = 6,
-};
-
-#define EP(nam, idx, maxpkt, maxbk, dma, isoc)                 \
-       [idx] = {                                               \
-               .name           = nam,                          \
-               .index          = idx,                          \
-               .fifo_size      = maxpkt,                       \
-               .nr_banks       = maxbk,                        \
-               .can_dma        = dma,                          \
-               .can_isoc       = isoc,                         \
-       }
-
-static struct usba_ep_data at32_usba_ep[] __initdata = {
-       EP("ep0",     0,   64, 1, 0, 0),
-       EP("ep1",     1,  512, 2, 1, 1),
-       EP("ep2",     2,  512, 2, 1, 1),
-       EP("ep3-int", 3,   64, 3, 1, 0),
-       EP("ep4-int", 4,   64, 3, 1, 0),
-       EP("ep5",     5, 1024, 3, 1, 1),
-       EP("ep6",     6, 1024, 3, 1, 1),
-};
-
-#undef EP
-
-struct platform_device *__init
-at32_add_device_usba(unsigned int id, struct usba_platform_data *data)
-{
-       /*
-        * pdata doesn't have room for any endpoints, so we need to
-        * append room for the ones we need right after it.
-        */
-       struct {
-               struct usba_platform_data pdata;
-               struct usba_ep_data ep[7];
-       } usba_data;
-       struct platform_device *pdev;
-
-       if (id != 0)
-               return NULL;
-
-       pdev = platform_device_alloc("atmel_usba_udc", 0);
-       if (!pdev)
-               return NULL;
-
-       if (platform_device_add_resources(pdev, usba0_resource,
-                                         ARRAY_SIZE(usba0_resource)))
-               goto out_free_pdev;
-
-       if (data) {
-               usba_data.pdata.vbus_pin = data->vbus_pin;
-               usba_data.pdata.vbus_pin_inverted = data->vbus_pin_inverted;
-       } else {
-               usba_data.pdata.vbus_pin = -EINVAL;
-               usba_data.pdata.vbus_pin_inverted = -EINVAL;
-       }
-
-       data = &usba_data.pdata;
-       data->num_ep = ARRAY_SIZE(at32_usba_ep);
-       memcpy(data->ep, at32_usba_ep, sizeof(at32_usba_ep));
-
-       if (platform_device_add_data(pdev, data, sizeof(usba_data)))
-               goto out_free_pdev;
-
-       if (gpio_is_valid(data->vbus_pin))
-               at32_select_gpio(data->vbus_pin, 0);
-
-       usba0_pclk.dev = &pdev->dev;
-       usba0_hclk.dev = &pdev->dev;
-
-       platform_device_add(pdev);
-
-       return pdev;
-
-out_free_pdev:
-       platform_device_put(pdev);
-       return NULL;
-}
-
-/* --------------------------------------------------------------------
- * IDE / CompactFlash
- * -------------------------------------------------------------------- */
-#if defined(CONFIG_CPU_AT32AP7000) || defined(CONFIG_CPU_AT32AP7001)
-static struct resource at32_smc_cs4_resource[] __initdata = {
-       {
-               .start  = 0x04000000,
-               .end    = 0x07ffffff,
-               .flags  = IORESOURCE_MEM,
-       },
-       IRQ(~0UL), /* Magic IRQ will be overridden */
-};
-static struct resource at32_smc_cs5_resource[] __initdata = {
-       {
-               .start  = 0x20000000,
-               .end    = 0x23ffffff,
-               .flags  = IORESOURCE_MEM,
-       },
-       IRQ(~0UL), /* Magic IRQ will be overridden */
-};
-
-static int __init at32_init_ide_or_cf(struct platform_device *pdev,
-               unsigned int cs, unsigned int extint)
-{
-       static unsigned int extint_pin_map[4] __initdata = {
-               (1 << 25),
-               (1 << 26),
-               (1 << 27),
-               (1 << 28),
-       };
-       static bool common_pins_initialized __initdata = false;
-       unsigned int extint_pin;
-       int ret;
-       u32 pin_mask;
-
-       if (extint >= ARRAY_SIZE(extint_pin_map))
-               return -EINVAL;
-       extint_pin = extint_pin_map[extint];
-
-       switch (cs) {
-       case 4:
-               ret = platform_device_add_resources(pdev,
-                               at32_smc_cs4_resource,
-                               ARRAY_SIZE(at32_smc_cs4_resource));
-               if (ret)
-                       return ret;
-
-               /* NCS4   -> OE_N  */
-               select_peripheral(PIOE, (1 << 21), PERIPH_A, 0);
-               hmatrix_sfr_set_bits(HMATRIX_SLAVE_EBI, HMATRIX_EBI_CF0_ENABLE);
-               break;
-       case 5:
-               ret = platform_device_add_resources(pdev,
-                               at32_smc_cs5_resource,
-                               ARRAY_SIZE(at32_smc_cs5_resource));
-               if (ret)
-                       return ret;
-
-               /* NCS5   -> OE_N  */
-               select_peripheral(PIOE, (1 << 22), PERIPH_A, 0);
-               hmatrix_sfr_set_bits(HMATRIX_SLAVE_EBI, HMATRIX_EBI_CF1_ENABLE);
-               break;
-       default:
-               return -EINVAL;
-       }
-
-       if (!common_pins_initialized) {
-               pin_mask  = (1 << 19);  /* CFCE1  -> CS0_N */
-               pin_mask |= (1 << 20);  /* CFCE2  -> CS1_N */
-               pin_mask |= (1 << 23);  /* CFRNW  -> DIR   */
-               pin_mask |= (1 << 24);  /* NWAIT  <- IORDY */
-
-               select_peripheral(PIOE, pin_mask, PERIPH_A, 0);
-
-               common_pins_initialized = true;
-       }
-
-       select_peripheral(PIOB, extint_pin, PERIPH_A, AT32_GPIOF_DEGLITCH);
-
-       pdev->resource[1].start = EIM_IRQ_BASE + extint;
-       pdev->resource[1].end = pdev->resource[1].start;
-
-       return 0;
-}
-
-struct platform_device *__init
-at32_add_device_ide(unsigned int id, unsigned int extint,
-                   struct ide_platform_data *data)
-{
-       struct platform_device *pdev;
-
-       pdev = platform_device_alloc("at32_ide", id);
-       if (!pdev)
-               goto fail;
-
-       if (platform_device_add_data(pdev, data,
-                               sizeof(struct ide_platform_data)))
-               goto fail;
-
-       if (at32_init_ide_or_cf(pdev, data->cs, extint))
-               goto fail;
-
-       platform_device_add(pdev);
-       return pdev;
-
-fail:
-       platform_device_put(pdev);
-       return NULL;
-}
-
-struct platform_device *__init
-at32_add_device_cf(unsigned int id, unsigned int extint,
-                   struct cf_platform_data *data)
-{
-       struct platform_device *pdev;
-
-       pdev = platform_device_alloc("at32_cf", id);
-       if (!pdev)
-               goto fail;
-
-       if (platform_device_add_data(pdev, data,
-                               sizeof(struct cf_platform_data)))
-               goto fail;
-
-       if (at32_init_ide_or_cf(pdev, data->cs, extint))
-               goto fail;
-
-       if (gpio_is_valid(data->detect_pin))
-               at32_select_gpio(data->detect_pin, AT32_GPIOF_DEGLITCH);
-       if (gpio_is_valid(data->reset_pin))
-               at32_select_gpio(data->reset_pin, 0);
-       if (gpio_is_valid(data->vcc_pin))
-               at32_select_gpio(data->vcc_pin, 0);
-       /* READY is used as extint, so we can't select it as gpio */
-
-       platform_device_add(pdev);
-       return pdev;
-
-fail:
-       platform_device_put(pdev);
-       return NULL;
-}
-#endif
-
-/* --------------------------------------------------------------------
- * NAND Flash / SmartMedia
- * -------------------------------------------------------------------- */
-static struct resource smc_cs3_resource[] __initdata = {
-       {
-               .start  = 0x0c000000,
-               .end    = 0x0fffffff,
-               .flags  = IORESOURCE_MEM,
-       }, {
-               .start  = 0xfff03c00,
-               .end    = 0xfff03fff,
-               .flags  = IORESOURCE_MEM,
-       },
-};
-
-struct platform_device *__init
-at32_add_device_nand(unsigned int id, struct atmel_nand_data *data)
-{
-       struct platform_device *pdev;
-
-       if (id != 0 || !data)
-               return NULL;
-
-       pdev = platform_device_alloc("atmel_nand", id);
-       if (!pdev)
-               goto fail;
-
-       if (platform_device_add_resources(pdev, smc_cs3_resource,
-                               ARRAY_SIZE(smc_cs3_resource)))
-               goto fail;
-
-       /* For at32ap7000, we use the reset workaround for nand driver */
-       data->need_reset_workaround = true;
-
-       if (platform_device_add_data(pdev, data,
-                               sizeof(struct atmel_nand_data)))
-               goto fail;
-
-       hmatrix_sfr_set_bits(HMATRIX_SLAVE_EBI, HMATRIX_EBI_NAND_ENABLE);
-       if (data->enable_pin)
-               at32_select_gpio(data->enable_pin,
-                               AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH);
-       if (data->rdy_pin)
-               at32_select_gpio(data->rdy_pin, 0);
-       if (data->det_pin)
-               at32_select_gpio(data->det_pin, 0);
-
-       platform_device_add(pdev);
-       return pdev;
-
-fail:
-       platform_device_put(pdev);
-       return NULL;
-}
-
-/* --------------------------------------------------------------------
- * AC97C
- * -------------------------------------------------------------------- */
-static struct resource atmel_ac97c0_resource[] __initdata = {
-       PBMEM(0xfff02800),
-       IRQ(29),
-};
-static struct clk atmel_ac97c0_pclk = {
-       .name           = "pclk",
-       .parent         = &pbb_clk,
-       .mode           = pbb_clk_mode,
-       .get_rate       = pbb_clk_get_rate,
-       .index          = 10,
-};
-
-struct platform_device *__init
-at32_add_device_ac97c(unsigned int id, struct ac97c_platform_data *data,
-                     unsigned int flags)
-{
-       struct platform_device          *pdev;
-       struct dw_dma_slave             *rx_dws;
-       struct dw_dma_slave             *tx_dws;
-       struct ac97c_platform_data      _data;
-       u32                             pin_mask;
-
-       if (id != 0)
-               return NULL;
-
-       pdev = platform_device_alloc("atmel_ac97c", id);
-       if (!pdev)
-               return NULL;
-
-       if (platform_device_add_resources(pdev, atmel_ac97c0_resource,
-                               ARRAY_SIZE(atmel_ac97c0_resource)))
-               goto out_free_resources;
-
-       if (!data) {
-               data = &_data;
-               memset(data, 0, sizeof(struct ac97c_platform_data));
-               data->reset_pin = -ENODEV;
-       }
-
-       rx_dws = &data->rx_dws;
-       tx_dws = &data->tx_dws;
-
-       /* Check if DMA slave interface for capture should be configured. */
-       if (flags & AC97C_CAPTURE) {
-               rx_dws->dma_dev = &dw_dmac0_device.dev;
-               rx_dws->src_id = 3;
-               rx_dws->m_master = 0;
-               rx_dws->p_master = 1;
-       }
-
-       /* Check if DMA slave interface for playback should be configured. */
-       if (flags & AC97C_PLAYBACK) {
-               tx_dws->dma_dev = &dw_dmac0_device.dev;
-               tx_dws->dst_id = 4;
-               tx_dws->m_master = 0;
-               tx_dws->p_master = 1;
-       }
-
-       if (platform_device_add_data(pdev, data,
-                               sizeof(struct ac97c_platform_data)))
-               goto out_free_resources;
-
-       /* SDO | SYNC | SCLK | SDI */
-       pin_mask = (1 << 20) | (1 << 21) | (1 << 22) | (1 << 23);
-
-       select_peripheral(PIOB, pin_mask, PERIPH_B, 0);
-
-       if (gpio_is_valid(data->reset_pin))
-               at32_select_gpio(data->reset_pin, AT32_GPIOF_OUTPUT
-                               | AT32_GPIOF_HIGH);
-
-       atmel_ac97c0_pclk.dev = &pdev->dev;
-
-       platform_device_add(pdev);
-       return pdev;
-
-out_free_resources:
-       platform_device_put(pdev);
-       return NULL;
-}
-
-/* --------------------------------------------------------------------
- * ABDAC
- * -------------------------------------------------------------------- */
-static struct resource abdac0_resource[] __initdata = {
-       PBMEM(0xfff02000),
-       IRQ(27),
-};
-static struct clk abdac0_pclk = {
-       .name           = "pclk",
-       .parent         = &pbb_clk,
-       .mode           = pbb_clk_mode,
-       .get_rate       = pbb_clk_get_rate,
-       .index          = 8,
-};
-static struct clk abdac0_sample_clk = {
-       .name           = "sample_clk",
-       .mode           = genclk_mode,
-       .get_rate       = genclk_get_rate,
-       .set_rate       = genclk_set_rate,
-       .set_parent     = genclk_set_parent,
-       .index          = 6,
-};
-
-struct platform_device *__init
-at32_add_device_abdac(unsigned int id, struct atmel_abdac_pdata *data)
-{
-       struct platform_device  *pdev;
-       struct dw_dma_slave     *dws;
-       u32                     pin_mask;
-
-       if (id != 0 || !data)
-               return NULL;
-
-       pdev = platform_device_alloc("atmel_abdac", id);
-       if (!pdev)
-               return NULL;
-
-       if (platform_device_add_resources(pdev, abdac0_resource,
-                               ARRAY_SIZE(abdac0_resource)))
-               goto out_free_resources;
-
-       dws = &data->dws;
-
-       dws->dma_dev = &dw_dmac0_device.dev;
-       dws->dst_id = 2;
-       dws->m_master = 0;
-       dws->p_master = 1;
-
-       if (platform_device_add_data(pdev, data,
-                               sizeof(struct atmel_abdac_pdata)))
-               goto out_free_resources;
-
-       pin_mask  = (1 << 20) | (1 << 22);      /* DATA1 & DATAN1 */
-       pin_mask |= (1 << 21) | (1 << 23);      /* DATA0 & DATAN0 */
-
-       select_peripheral(PIOB, pin_mask, PERIPH_A, 0);
-
-       abdac0_pclk.dev = &pdev->dev;
-       abdac0_sample_clk.dev = &pdev->dev;
-
-       platform_device_add(pdev);
-       return pdev;
-
-out_free_resources:
-       platform_device_put(pdev);
-       return NULL;
-}
-
-/* --------------------------------------------------------------------
- *  GCLK
- * -------------------------------------------------------------------- */
-static struct clk gclk0 = {
-       .name           = "gclk0",
-       .mode           = genclk_mode,
-       .get_rate       = genclk_get_rate,
-       .set_rate       = genclk_set_rate,
-       .set_parent     = genclk_set_parent,
-       .index          = 0,
-};
-static struct clk gclk1 = {
-       .name           = "gclk1",
-       .mode           = genclk_mode,
-       .get_rate       = genclk_get_rate,
-       .set_rate       = genclk_set_rate,
-       .set_parent     = genclk_set_parent,
-       .index          = 1,
-};
-static struct clk gclk2 = {
-       .name           = "gclk2",
-       .mode           = genclk_mode,
-       .get_rate       = genclk_get_rate,
-       .set_rate       = genclk_set_rate,
-       .set_parent     = genclk_set_parent,
-       .index          = 2,
-};
-static struct clk gclk3 = {
-       .name           = "gclk3",
-       .mode           = genclk_mode,
-       .get_rate       = genclk_get_rate,
-       .set_rate       = genclk_set_rate,
-       .set_parent     = genclk_set_parent,
-       .index          = 3,
-};
-static struct clk gclk4 = {
-       .name           = "gclk4",
-       .mode           = genclk_mode,
-       .get_rate       = genclk_get_rate,
-       .set_rate       = genclk_set_rate,
-       .set_parent     = genclk_set_parent,
-       .index          = 4,
-};
-
-static __initdata struct clk *init_clocks[] = {
-       &osc32k,
-       &osc0,
-       &osc1,
-       &pll0,
-       &pll1,
-       &cpu_clk,
-       &hsb_clk,
-       &pba_clk,
-       &pbb_clk,
-       &at32_pm_pclk,
-       &at32_intc0_pclk,
-       &at32_hmatrix_clk,
-       &ebi_clk,
-       &hramc_clk,
-       &sdramc_clk,
-       &smc0_pclk,
-       &smc0_mck,
-       &pdc_hclk,
-       &pdc_pclk,
-       &dw_dmac0_hclk,
-       &pico_clk,
-       &pio0_mck,
-       &pio1_mck,
-       &pio2_mck,
-       &pio3_mck,
-       &pio4_mck,
-       &at32_tcb0_t0_clk,
-       &at32_tcb1_t0_clk,
-       &atmel_psif0_pclk,
-       &atmel_psif1_pclk,
-       &atmel_usart0_usart,
-       &atmel_usart1_usart,
-       &atmel_usart2_usart,
-       &atmel_usart3_usart,
-       &atmel_pwm0_mck,
-#if defined(CONFIG_CPU_AT32AP7000)
-       &macb0_hclk,
-       &macb0_pclk,
-       &macb1_hclk,
-       &macb1_pclk,
-#endif
-       &atmel_spi0_spi_clk,
-       &atmel_spi1_spi_clk,
-       &atmel_twi0_pclk,
-       &atmel_mci0_pclk,
-#if defined(CONFIG_CPU_AT32AP7000) || defined(CONFIG_CPU_AT32AP7002)
-       &atmel_lcdfb0_hclk,
-       &atmel_lcdfb0_pixclk,
-#endif
-       &ssc0_pclk,
-       &ssc1_pclk,
-       &ssc2_pclk,
-       &usba0_hclk,
-       &usba0_pclk,
-       &atmel_ac97c0_pclk,
-       &abdac0_pclk,
-       &abdac0_sample_clk,
-       &gclk0,
-       &gclk1,
-       &gclk2,
-       &gclk3,
-       &gclk4,
-};
-
-void __init setup_platform(void)
-{
-       u32 cpu_mask = 0, hsb_mask = 0, pba_mask = 0, pbb_mask = 0;
-       int i;
-
-       if (pm_readl(MCCTRL) & PM_BIT(PLLSEL)) {
-               main_clock = &pll0;
-               cpu_clk.parent = &pll0;
-       } else {
-               main_clock = &osc0;
-               cpu_clk.parent = &osc0;
-       }
-
-       if (pm_readl(PLL0) & PM_BIT(PLLOSC))
-               pll0.parent = &osc1;
-       if (pm_readl(PLL1) & PM_BIT(PLLOSC))
-               pll1.parent = &osc1;
-
-       genclk_init_parent(&gclk0);
-       genclk_init_parent(&gclk1);
-       genclk_init_parent(&gclk2);
-       genclk_init_parent(&gclk3);
-       genclk_init_parent(&gclk4);
-#if defined(CONFIG_CPU_AT32AP7000) || defined(CONFIG_CPU_AT32AP7002)
-       genclk_init_parent(&atmel_lcdfb0_pixclk);
-#endif
-       genclk_init_parent(&abdac0_sample_clk);
-
-       /*
-        * Build initial dynamic clock list by registering all clocks
-        * from the array.
-        * At the same time, turn on all clocks that have at least one
-        * user already, and turn off everything else. We only do this
-        * for module clocks, and even though it isn't particularly
-        * pretty to  check the address of the mode function, it should
-        * do the trick...
-        */
-       for (i = 0; i < ARRAY_SIZE(init_clocks); i++) {
-               struct clk *clk = init_clocks[i];
-
-               /* first, register clock */
-               at32_clk_register(clk);
-
-               if (clk->users == 0)
-                       continue;
-
-               if (clk->mode == &cpu_clk_mode)
-                       cpu_mask |= 1 << clk->index;
-               else if (clk->mode == &hsb_clk_mode)
-                       hsb_mask |= 1 << clk->index;
-               else if (clk->mode == &pba_clk_mode)
-                       pba_mask |= 1 << clk->index;
-               else if (clk->mode == &pbb_clk_mode)
-                       pbb_mask |= 1 << clk->index;
-       }
-
-       pm_writel(CPU_MASK, cpu_mask);
-       pm_writel(HSB_MASK, hsb_mask);
-       pm_writel(PBA_MASK, pba_mask);
-       pm_writel(PBB_MASK, pbb_mask);
-
-       /* Initialize the port muxes */
-       at32_init_pio(&pio0_device);
-       at32_init_pio(&pio1_device);
-       at32_init_pio(&pio2_device);
-       at32_init_pio(&pio3_device);
-       at32_init_pio(&pio4_device);
-}
-
-struct gen_pool *sram_pool;
-
-static int __init sram_init(void)
-{
-       struct gen_pool *pool;
-
-       /* 1KiB granularity */
-       pool = gen_pool_create(10, -1);
-       if (!pool)
-               goto fail;
-
-       if (gen_pool_add(pool, 0x24000000, 0x8000, -1))
-               goto err_pool_add;
-
-       sram_pool = pool;
-       return 0;
-
-err_pool_add:
-       gen_pool_destroy(pool);
-fail:
-       pr_err("Failed to create SRAM pool\n");
-       return -ENOMEM;
-}
-core_initcall(sram_init);
diff --git a/arch/avr32/mach-at32ap/clock.c b/arch/avr32/mach-at32ap/clock.c
deleted file mode 100644 (file)
index fdf1cae..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-/*
- * Clock management for AT32AP CPUs
- *
- * Copyright (C) 2006 Atmel Corporation
- *
- * Based on arch/arm/mach-at91/clock.c
- *   Copyright (C) 2005 David Brownell
- *   Copyright (C) 2005 Ivan Kokshaysky
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/clk.h>
-#include <linux/err.h>
-#include <linux/export.h>
-#include <linux/device.h>
-#include <linux/string.h>
-#include <linux/list.h>
-
-#include <mach/chip.h>
-
-#include "clock.h"
-
-/* at32 clock list */
-static LIST_HEAD(at32_clock_list);
-
-static DEFINE_SPINLOCK(clk_lock);
-static DEFINE_SPINLOCK(clk_list_lock);
-
-void at32_clk_register(struct clk *clk)
-{
-       spin_lock(&clk_list_lock);
-       /* add the new item to the end of the list */
-       list_add_tail(&clk->list, &at32_clock_list);
-       spin_unlock(&clk_list_lock);
-}
-
-static struct clk *__clk_get(struct device *dev, const char *id)
-{
-       struct clk *clk;
-
-       list_for_each_entry(clk, &at32_clock_list, list) {
-               if (clk->dev == dev && strcmp(id, clk->name) == 0) {
-                       return clk;
-               }
-       }
-
-       return ERR_PTR(-ENOENT);
-}
-
-struct clk *clk_get(struct device *dev, const char *id)
-{
-       struct clk *clk;
-
-       spin_lock(&clk_list_lock);
-       clk = __clk_get(dev, id);
-       spin_unlock(&clk_list_lock);
-
-       return clk;
-}
-
-EXPORT_SYMBOL(clk_get);
-
-void clk_put(struct clk *clk)
-{
-       /* clocks are static for now, we can't free them */
-}
-EXPORT_SYMBOL(clk_put);
-
-static void __clk_enable(struct clk *clk)
-{
-       if (clk->parent)
-               __clk_enable(clk->parent);
-       if (clk->users++ == 0 && clk->mode)
-               clk->mode(clk, 1);
-}
-
-int clk_enable(struct clk *clk)
-{
-       unsigned long flags;
-
-       if (!clk)
-               return 0;
-
-       spin_lock_irqsave(&clk_lock, flags);
-       __clk_enable(clk);
-       spin_unlock_irqrestore(&clk_lock, flags);
-
-       return 0;
-}
-EXPORT_SYMBOL(clk_enable);
-
-static void __clk_disable(struct clk *clk)
-{
-       if (clk->users == 0) {
-               printk(KERN_ERR "%s: mismatched disable\n", clk->name);
-               WARN_ON(1);
-               return;
-       }
-
-       if (--clk->users == 0 && clk->mode)
-               clk->mode(clk, 0);
-       if (clk->parent)
-               __clk_disable(clk->parent);
-}
-
-void clk_disable(struct clk *clk)
-{
-       unsigned long flags;
-
-       if (IS_ERR_OR_NULL(clk))
-               return;
-
-       spin_lock_irqsave(&clk_lock, flags);
-       __clk_disable(clk);
-       spin_unlock_irqrestore(&clk_lock, flags);
-}
-EXPORT_SYMBOL(clk_disable);
-
-unsigned long clk_get_rate(struct clk *clk)
-{
-       unsigned long flags;
-       unsigned long rate;
-
-       if (!clk)
-               return 0;
-
-       spin_lock_irqsave(&clk_lock, flags);
-       rate = clk->get_rate(clk);
-       spin_unlock_irqrestore(&clk_lock, flags);
-
-       return rate;
-}
-EXPORT_SYMBOL(clk_get_rate);
-
-long clk_round_rate(struct clk *clk, unsigned long rate)
-{
-       unsigned long flags, actual_rate;
-
-       if (!clk)
-               return 0;
-
-       if (!clk->set_rate)
-               return -ENOSYS;
-
-       spin_lock_irqsave(&clk_lock, flags);
-       actual_rate = clk->set_rate(clk, rate, 0);
-       spin_unlock_irqrestore(&clk_lock, flags);
-
-       return actual_rate;
-}
-EXPORT_SYMBOL(clk_round_rate);
-
-int clk_set_rate(struct clk *clk, unsigned long rate)
-{
-       unsigned long flags;
-       long ret;
-
-       if (!clk)
-               return 0;
-
-       if (!clk->set_rate)
-               return -ENOSYS;
-
-       spin_lock_irqsave(&clk_lock, flags);
-       ret = clk->set_rate(clk, rate, 1);
-       spin_unlock_irqrestore(&clk_lock, flags);
-
-       return (ret < 0) ? ret : 0;
-}
-EXPORT_SYMBOL(clk_set_rate);
-
-int clk_set_parent(struct clk *clk, struct clk *parent)
-{
-       unsigned long flags;
-       int ret;
-
-       if (!clk)
-               return 0;
-
-       if (!clk->set_parent)
-               return -ENOSYS;
-
-       spin_lock_irqsave(&clk_lock, flags);
-       ret = clk->set_parent(clk, parent);
-       spin_unlock_irqrestore(&clk_lock, flags);
-
-       return ret;
-}
-EXPORT_SYMBOL(clk_set_parent);
-
-struct clk *clk_get_parent(struct clk *clk)
-{
-       return !clk ? NULL : clk->parent;
-}
-EXPORT_SYMBOL(clk_get_parent);
-
-
-
-#ifdef CONFIG_DEBUG_FS
-
-/* /sys/kernel/debug/at32ap_clk */
-
-#include <linux/io.h>
-#include <linux/debugfs.h>
-#include <linux/seq_file.h>
-#include "pm.h"
-
-
-#define        NEST_DELTA      2
-#define        NEST_MAX        6
-
-struct clkinf {
-       struct seq_file *s;
-       unsigned        nest;
-};
-
-static void
-dump_clock(struct clk *parent, struct clkinf *r)
-{
-       unsigned        nest = r->nest;
-       char            buf[16 + NEST_MAX];
-       struct clk      *clk;
-       unsigned        i;
-
-       /* skip clocks coupled to devices that aren't registered */
-       if (parent->dev && !dev_name(parent->dev) && !parent->users)
-               return;
-
-       /* <nest spaces> name <pad to end> */
-       memset(buf, ' ', sizeof(buf) - 1);
-       buf[sizeof(buf) - 1] = 0;
-       i = strlen(parent->name);
-       memcpy(buf + nest, parent->name,
-                       min(i, (unsigned)(sizeof(buf) - 1 - nest)));
-
-       seq_printf(r->s, "%s%c users=%2d %-3s %9ld Hz",
-               buf, parent->set_parent ? '*' : ' ',
-               parent->users,
-               parent->users ? "on" : "off",   /* NOTE: not-paranoid!! */
-               clk_get_rate(parent));
-       if (parent->dev)
-               seq_printf(r->s, ", for %s", dev_name(parent->dev));
-       seq_putc(r->s, '\n');
-
-       /* cost of this scan is small, but not linear... */
-       r->nest = nest + NEST_DELTA;
-
-       list_for_each_entry(clk, &at32_clock_list, list) {
-               if (clk->parent == parent)
-                       dump_clock(clk, r);
-       }
-       r->nest = nest;
-}
-
-static int clk_show(struct seq_file *s, void *unused)
-{
-       struct clkinf   r;
-       int             i;
-       struct clk      *clk;
-
-       /* show all the power manager registers */
-       seq_printf(s,
-                  "MCCTRL  = %8x\n"
-                  "CKSEL   = %8x\n"
-                  "CPUMASK = %8x\n"
-                  "HSBMASK = %8x\n"
-                  "PBAMASK = %8x\n"
-                  "PBBMASK = %8x\n"
-                  "PLL0    = %8x\n"
-                  "PLL1    = %8x\n"
-                  "IMR     = %8x\n",
-                  pm_readl(MCCTRL),
-                  pm_readl(CKSEL),
-                  pm_readl(CPU_MASK),
-                  pm_readl(HSB_MASK),
-                  pm_readl(PBA_MASK),
-                  pm_readl(PBB_MASK),
-                  pm_readl(PLL0),
-                  pm_readl(PLL1),
-                  pm_readl(IMR));
-       for (i = 0; i < 8; i++) {
-               if (i == 5)
-                       continue;
-               seq_printf(s, "GCCTRL%d = %8x\n", i, pm_readl(GCCTRL(i)));
-       }
-
-       seq_putc(s, '\n');
-       r.s = s;
-       r.nest = 0;
-       /* protected from changes on the list while dumping */
-       spin_lock(&clk_list_lock);
-
-       /* show clock tree as derived from the three oscillators */
-       clk = __clk_get(NULL, "osc32k");
-       dump_clock(clk, &r);
-       clk_put(clk);
-
-       clk = __clk_get(NULL, "osc0");
-       dump_clock(clk, &r);
-       clk_put(clk);
-
-       clk = __clk_get(NULL, "osc1");
-       dump_clock(clk, &r);
-       clk_put(clk);
-
-       spin_unlock(&clk_list_lock);
-
-       return 0;
-}
-
-static int clk_open(struct inode *inode, struct file *file)
-{
-       return single_open(file, clk_show, NULL);
-}
-
-static const struct file_operations clk_operations = {
-       .open           = clk_open,
-       .read           = seq_read,
-       .llseek         = seq_lseek,
-       .release        = single_release,
-};
-
-static int __init clk_debugfs_init(void)
-{
-       (void) debugfs_create_file("at32ap_clk", S_IFREG | S_IRUGO,
-                       NULL, NULL, &clk_operations);
-
-       return 0;
-}
-postcore_initcall(clk_debugfs_init);
-
-#endif
diff --git a/arch/avr32/mach-at32ap/clock.h b/arch/avr32/mach-at32ap/clock.h
deleted file mode 100644 (file)
index 4c7ebbd..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Clock management for AT32AP CPUs
- *
- * Copyright (C) 2006 Atmel Corporation
- *
- * Based on arch/arm/mach-at91/clock.c
- *   Copyright (C) 2005 David Brownell
- *   Copyright (C) 2005 Ivan Kokshaysky
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/clk.h>
-#include <linux/list.h>
-
-
-void at32_clk_register(struct clk *clk);
-
-struct clk {
-       struct list_head list;          /* linking element */
-       const char      *name;          /* Clock name/function */
-       struct device   *dev;           /* Device the clock is used by */
-       struct clk      *parent;        /* Parent clock, if any */
-       void            (*mode)(struct clk *clk, int enabled);
-       unsigned long   (*get_rate)(struct clk *clk);
-       long            (*set_rate)(struct clk *clk, unsigned long rate,
-                                   int apply);
-       int             (*set_parent)(struct clk *clk, struct clk *parent);
-       u16             users;          /* Enabled if non-zero */
-       u16             index;          /* Sibling index */
-};
-
-unsigned long pba_clk_get_rate(struct clk *clk);
-void pba_clk_mode(struct clk *clk, int enabled);
diff --git a/arch/avr32/mach-at32ap/extint.c b/arch/avr32/mach-at32ap/extint.c
deleted file mode 100644 (file)
index 96cabad..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * External interrupt handling for AT32AP CPUs
- *
- * Copyright (C) 2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/errno.h>
-#include <linux/init.h>
-#include <linux/interrupt.h>
-#include <linux/irq.h>
-#include <linux/platform_device.h>
-#include <linux/random.h>
-#include <linux/slab.h>
-
-#include <asm/io.h>
-
-/* EIC register offsets */
-#define EIC_IER                                        0x0000
-#define EIC_IDR                                        0x0004
-#define EIC_IMR                                        0x0008
-#define EIC_ISR                                        0x000c
-#define EIC_ICR                                        0x0010
-#define EIC_MODE                               0x0014
-#define EIC_EDGE                               0x0018
-#define EIC_LEVEL                              0x001c
-#define EIC_NMIC                               0x0024
-
-/* Bitfields in NMIC */
-#define EIC_NMIC_ENABLE                                (1 << 0)
-
-/* Bit manipulation macros */
-#define EIC_BIT(name)                                  \
-       (1 << EIC_##name##_OFFSET)
-#define EIC_BF(name,value)                             \
-       (((value) & ((1 << EIC_##name##_SIZE) - 1))     \
-        << EIC_##name##_OFFSET)
-#define EIC_BFEXT(name,value)                          \
-       (((value) >> EIC_##name##_OFFSET)               \
-        & ((1 << EIC_##name##_SIZE) - 1))
-#define EIC_BFINS(name,value,old)                      \
-       (((old) & ~(((1 << EIC_##name##_SIZE) - 1)      \
-                   << EIC_##name##_OFFSET))            \
-        | EIC_BF(name,value))
-
-/* Register access macros */
-#define eic_readl(port,reg)                            \
-       __raw_readl((port)->regs + EIC_##reg)
-#define eic_writel(port,reg,value)                     \
-       __raw_writel((value), (port)->regs + EIC_##reg)
-
-struct eic {
-       void __iomem *regs;
-       struct irq_chip *chip;
-       unsigned int first_irq;
-};
-
-static struct eic *nmi_eic;
-static bool nmi_enabled;
-
-static void eic_ack_irq(struct irq_data *d)
-{
-       struct eic *eic = irq_data_get_irq_chip_data(d);
-       eic_writel(eic, ICR, 1 << (d->irq - eic->first_irq));
-}
-
-static void eic_mask_irq(struct irq_data *d)
-{
-       struct eic *eic = irq_data_get_irq_chip_data(d);
-       eic_writel(eic, IDR, 1 << (d->irq - eic->first_irq));
-}
-
-static void eic_mask_ack_irq(struct irq_data *d)
-{
-       struct eic *eic = irq_data_get_irq_chip_data(d);
-       eic_writel(eic, ICR, 1 << (d->irq - eic->first_irq));
-       eic_writel(eic, IDR, 1 << (d->irq - eic->first_irq));
-}
-
-static void eic_unmask_irq(struct irq_data *d)
-{
-       struct eic *eic = irq_data_get_irq_chip_data(d);
-       eic_writel(eic, IER, 1 << (d->irq - eic->first_irq));
-}
-
-static int eic_set_irq_type(struct irq_data *d, unsigned int flow_type)
-{
-       struct eic *eic = irq_data_get_irq_chip_data(d);
-       unsigned int irq = d->irq;
-       unsigned int i = irq - eic->first_irq;
-       u32 mode, edge, level;
-
-       flow_type &= IRQ_TYPE_SENSE_MASK;
-       if (flow_type == IRQ_TYPE_NONE)
-               flow_type = IRQ_TYPE_LEVEL_LOW;
-
-       mode = eic_readl(eic, MODE);
-       edge = eic_readl(eic, EDGE);
-       level = eic_readl(eic, LEVEL);
-
-       switch (flow_type) {
-       case IRQ_TYPE_LEVEL_LOW:
-               mode |= 1 << i;
-               level &= ~(1 << i);
-               break;
-       case IRQ_TYPE_LEVEL_HIGH:
-               mode |= 1 << i;
-               level |= 1 << i;
-               break;
-       case IRQ_TYPE_EDGE_RISING:
-               mode &= ~(1 << i);
-               edge |= 1 << i;
-               break;
-       case IRQ_TYPE_EDGE_FALLING:
-               mode &= ~(1 << i);
-               edge &= ~(1 << i);
-               break;
-       default:
-               return -EINVAL;
-       }
-
-       eic_writel(eic, MODE, mode);
-       eic_writel(eic, EDGE, edge);
-       eic_writel(eic, LEVEL, level);
-
-       irqd_set_trigger_type(d, flow_type);
-       if (flow_type & (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH))
-               irq_set_handler_locked(d, handle_level_irq);
-       else
-               irq_set_handler_locked(d, handle_edge_irq);
-
-       return IRQ_SET_MASK_OK_NOCOPY;
-}
-
-static struct irq_chip eic_chip = {
-       .name           = "eic",
-       .irq_ack        = eic_ack_irq,
-       .irq_mask       = eic_mask_irq,
-       .irq_mask_ack   = eic_mask_ack_irq,
-       .irq_unmask     = eic_unmask_irq,
-       .irq_set_type   = eic_set_irq_type,
-};
-
-static void demux_eic_irq(struct irq_desc *desc)
-{
-       struct eic *eic = irq_desc_get_handler_data(desc);
-       unsigned long status, pending;
-       unsigned int i;
-
-       status = eic_readl(eic, ISR);
-       pending = status & eic_readl(eic, IMR);
-
-       while (pending) {
-               i = fls(pending) - 1;
-               pending &= ~(1 << i);
-
-               generic_handle_irq(i + eic->first_irq);
-       }
-}
-
-int nmi_enable(void)
-{
-       nmi_enabled = true;
-
-       if (nmi_eic)
-               eic_writel(nmi_eic, NMIC, EIC_NMIC_ENABLE);
-
-       return 0;
-}
-
-void nmi_disable(void)
-{
-       if (nmi_eic)
-               eic_writel(nmi_eic, NMIC, 0);
-
-       nmi_enabled = false;
-}
-
-static int __init eic_probe(struct platform_device *pdev)
-{
-       struct eic *eic;
-       struct resource *regs;
-       unsigned int i;
-       unsigned int nr_of_irqs;
-       unsigned int int_irq;
-       int ret;
-       u32 pattern;
-
-       regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       int_irq = platform_get_irq(pdev, 0);
-       if (!regs || (int)int_irq <= 0) {
-               dev_dbg(&pdev->dev, "missing regs and/or irq resource\n");
-               return -ENXIO;
-       }
-
-       ret = -ENOMEM;
-       eic = kzalloc(sizeof(struct eic), GFP_KERNEL);
-       if (!eic) {
-               dev_dbg(&pdev->dev, "no memory for eic structure\n");
-               goto err_kzalloc;
-       }
-
-       eic->first_irq = EIM_IRQ_BASE + 32 * pdev->id;
-       eic->regs = ioremap(regs->start, resource_size(regs));
-       if (!eic->regs) {
-               dev_dbg(&pdev->dev, "failed to map regs\n");
-               goto err_ioremap;
-       }
-
-       /*
-        * Find out how many interrupt lines that are actually
-        * implemented in hardware.
-        */
-       eic_writel(eic, IDR, ~0UL);
-       eic_writel(eic, MODE, ~0UL);
-       pattern = eic_readl(eic, MODE);
-       nr_of_irqs = fls(pattern);
-
-       /* Trigger on low level unless overridden by driver */
-       eic_writel(eic, EDGE, 0UL);
-       eic_writel(eic, LEVEL, 0UL);
-
-       eic->chip = &eic_chip;
-
-       for (i = 0; i < nr_of_irqs; i++) {
-               irq_set_chip_and_handler(eic->first_irq + i, &eic_chip,
-                                        handle_level_irq);
-               irq_set_chip_data(eic->first_irq + i, eic);
-       }
-
-       irq_set_chained_handler_and_data(int_irq, demux_eic_irq, eic);
-
-       if (pdev->id == 0) {
-               nmi_eic = eic;
-               if (nmi_enabled)
-                       /*
-                        * Someone tried to enable NMI before we were
-                        * ready. Do it now.
-                        */
-                       nmi_enable();
-       }
-
-       dev_info(&pdev->dev,
-                "External Interrupt Controller at 0x%p, IRQ %u\n",
-                eic->regs, int_irq);
-       dev_info(&pdev->dev,
-                "Handling %u external IRQs, starting with IRQ %u\n",
-                nr_of_irqs, eic->first_irq);
-
-       return 0;
-
-err_ioremap:
-       kfree(eic);
-err_kzalloc:
-       return ret;
-}
-
-static struct platform_driver eic_driver = {
-       .driver = {
-               .name = "at32_eic",
-       },
-};
-
-static int __init eic_init(void)
-{
-       return platform_driver_probe(&eic_driver, eic_probe);
-}
-arch_initcall(eic_init);
diff --git a/arch/avr32/mach-at32ap/hmatrix.c b/arch/avr32/mach-at32ap/hmatrix.c
deleted file mode 100644 (file)
index 48f5ede..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * High-Speed Bus Matrix helper functions
- *
- * Copyright (C) 2008 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/clk.h>
-#include <linux/io.h>
-
-#include <mach/chip.h>
-#include <mach/hmatrix.h>
-
-static inline void __hmatrix_write_reg(unsigned long offset, u32 value)
-{
-       __raw_writel(value, (void __iomem __force *)(HMATRIX_BASE + offset));
-}
-
-static inline u32 __hmatrix_read_reg(unsigned long offset)
-{
-       return __raw_readl((void __iomem __force *)(HMATRIX_BASE + offset));
-}
-
-/**
- * hmatrix_write_reg - write HMATRIX configuration register
- * @offset: register offset
- * @value: value to be written to the register at @offset
- */
-void hmatrix_write_reg(unsigned long offset, u32 value)
-{
-       clk_enable(&at32_hmatrix_clk);
-       __hmatrix_write_reg(offset, value);
-       __hmatrix_read_reg(offset);
-       clk_disable(&at32_hmatrix_clk);
-}
-
-/**
- * hmatrix_read_reg - read HMATRIX configuration register
- * @offset: register offset
- *
- * Returns the value of the register at @offset.
- */
-u32 hmatrix_read_reg(unsigned long offset)
-{
-       u32 value;
-
-       clk_enable(&at32_hmatrix_clk);
-       value = __hmatrix_read_reg(offset);
-       clk_disable(&at32_hmatrix_clk);
-
-       return value;
-}
-
-/**
- * hmatrix_sfr_set_bits - set bits in a slave's Special Function Register
- * @slave_id: operate on the SFR belonging to this slave
- * @mask: mask of bits to be set in the SFR
- */
-void hmatrix_sfr_set_bits(unsigned int slave_id, u32 mask)
-{
-       u32 value;
-
-       clk_enable(&at32_hmatrix_clk);
-       value = __hmatrix_read_reg(HMATRIX_SFR(slave_id));
-       value |= mask;
-       __hmatrix_write_reg(HMATRIX_SFR(slave_id), value);
-       __hmatrix_read_reg(HMATRIX_SFR(slave_id));
-       clk_disable(&at32_hmatrix_clk);
-}
-
-/**
- * hmatrix_sfr_set_bits - clear bits in a slave's Special Function Register
- * @slave_id: operate on the SFR belonging to this slave
- * @mask: mask of bits to be cleared in the SFR
- */
-void hmatrix_sfr_clear_bits(unsigned int slave_id, u32 mask)
-{
-       u32 value;
-
-       clk_enable(&at32_hmatrix_clk);
-       value = __hmatrix_read_reg(HMATRIX_SFR(slave_id));
-       value &= ~mask;
-       __hmatrix_write_reg(HMATRIX_SFR(slave_id), value);
-       __hmatrix_read_reg(HMATRIX_SFR(slave_id));
-       clk_disable(&at32_hmatrix_clk);
-}
diff --git a/arch/avr32/mach-at32ap/hsmc.c b/arch/avr32/mach-at32ap/hsmc.c
deleted file mode 100644 (file)
index f66245e..0000000
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * Static Memory Controller for AT32 chips
- *
- * Copyright (C) 2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/clk.h>
-#include <linux/err.h>
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/platform_device.h>
-#include <linux/slab.h>
-
-#include <asm/io.h>
-#include <mach/smc.h>
-
-#include "hsmc.h"
-
-#define NR_CHIP_SELECTS 6
-
-struct hsmc {
-       void __iomem *regs;
-       struct clk *pclk;
-       struct clk *mck;
-};
-
-static struct hsmc *hsmc;
-
-void smc_set_timing(struct smc_config *config,
-                   const struct smc_timing *timing)
-{
-       int recover;
-       int cycle;
-
-       unsigned long mul;
-
-       /* Reset all SMC timings */
-       config->ncs_read_setup  = 0;
-       config->nrd_setup       = 0;
-       config->ncs_write_setup = 0;
-       config->nwe_setup       = 0;
-       config->ncs_read_pulse  = 0;
-       config->nrd_pulse       = 0;
-       config->ncs_write_pulse = 0;
-       config->nwe_pulse       = 0;
-       config->read_cycle      = 0;
-       config->write_cycle     = 0;
-
-       /*
-        * cycles = x / T = x * f
-        *   = ((x * 1000000000) * ((f * 65536) / 1000000000)) / 65536
-        *   = ((x * 1000000000) * (((f / 10000) * 65536) / 100000)) / 65536
-        */
-       mul = (clk_get_rate(hsmc->mck) / 10000) << 16;
-       mul /= 100000;
-
-#define ns2cyc(x) ((((x) * mul) + 65535) >> 16)
-
-       if (timing->ncs_read_setup > 0)
-               config->ncs_read_setup = ns2cyc(timing->ncs_read_setup);
-
-       if (timing->nrd_setup > 0)
-               config->nrd_setup = ns2cyc(timing->nrd_setup);
-
-       if (timing->ncs_write_setup > 0)
-               config->ncs_write_setup = ns2cyc(timing->ncs_write_setup);
-
-       if (timing->nwe_setup > 0)
-               config->nwe_setup = ns2cyc(timing->nwe_setup);
-
-       if (timing->ncs_read_pulse > 0)
-               config->ncs_read_pulse = ns2cyc(timing->ncs_read_pulse);
-
-       if (timing->nrd_pulse > 0)
-               config->nrd_pulse = ns2cyc(timing->nrd_pulse);
-
-       if (timing->ncs_write_pulse > 0)
-               config->ncs_write_pulse = ns2cyc(timing->ncs_write_pulse);
-
-       if (timing->nwe_pulse > 0)
-               config->nwe_pulse = ns2cyc(timing->nwe_pulse);
-
-       if (timing->read_cycle > 0)
-               config->read_cycle = ns2cyc(timing->read_cycle);
-
-       if (timing->write_cycle > 0)
-               config->write_cycle = ns2cyc(timing->write_cycle);
-
-       /* Extend read cycle in needed */
-       if (timing->ncs_read_recover > 0)
-               recover = ns2cyc(timing->ncs_read_recover);
-       else
-               recover = 1;
-
-       cycle = config->ncs_read_setup + config->ncs_read_pulse + recover;
-
-       if (config->read_cycle < cycle)
-               config->read_cycle = cycle;
-
-       /* Extend read cycle in needed */
-       if (timing->nrd_recover > 0)
-               recover = ns2cyc(timing->nrd_recover);
-       else
-               recover = 1;
-
-       cycle = config->nrd_setup + config->nrd_pulse + recover;
-
-       if (config->read_cycle < cycle)
-               config->read_cycle = cycle;
-
-       /* Extend write cycle in needed */
-       if (timing->ncs_write_recover > 0)
-               recover = ns2cyc(timing->ncs_write_recover);
-       else
-               recover = 1;
-
-       cycle = config->ncs_write_setup + config->ncs_write_pulse + recover;
-
-       if (config->write_cycle < cycle)
-               config->write_cycle = cycle;
-
-       /* Extend write cycle in needed */
-       if (timing->nwe_recover > 0)
-               recover = ns2cyc(timing->nwe_recover);
-       else
-               recover = 1;
-
-       cycle = config->nwe_setup + config->nwe_pulse + recover;
-
-       if (config->write_cycle < cycle)
-               config->write_cycle = cycle;
-}
-EXPORT_SYMBOL(smc_set_timing);
-
-int smc_set_configuration(int cs, const struct smc_config *config)
-{
-       unsigned long offset;
-       u32 setup, pulse, cycle, mode;
-
-       if (!hsmc)
-               return -ENODEV;
-       if (cs >= NR_CHIP_SELECTS)
-               return -EINVAL;
-
-       setup = (HSMC_BF(NWE_SETUP, config->nwe_setup)
-                | HSMC_BF(NCS_WR_SETUP, config->ncs_write_setup)
-                | HSMC_BF(NRD_SETUP, config->nrd_setup)
-                | HSMC_BF(NCS_RD_SETUP, config->ncs_read_setup));
-       pulse = (HSMC_BF(NWE_PULSE, config->nwe_pulse)
-                | HSMC_BF(NCS_WR_PULSE, config->ncs_write_pulse)
-                | HSMC_BF(NRD_PULSE, config->nrd_pulse)
-                | HSMC_BF(NCS_RD_PULSE, config->ncs_read_pulse));
-       cycle = (HSMC_BF(NWE_CYCLE, config->write_cycle)
-                | HSMC_BF(NRD_CYCLE, config->read_cycle));
-
-       switch (config->bus_width) {
-       case 1:
-               mode = HSMC_BF(DBW, HSMC_DBW_8_BITS);
-               break;
-       case 2:
-               mode = HSMC_BF(DBW, HSMC_DBW_16_BITS);
-               break;
-       case 4:
-               mode = HSMC_BF(DBW, HSMC_DBW_32_BITS);
-               break;
-       default:
-               return -EINVAL;
-       }
-
-       switch (config->nwait_mode) {
-       case 0:
-               mode |= HSMC_BF(EXNW_MODE, HSMC_EXNW_MODE_DISABLED);
-               break;
-       case 1:
-               mode |= HSMC_BF(EXNW_MODE, HSMC_EXNW_MODE_RESERVED);
-               break;
-       case 2:
-               mode |= HSMC_BF(EXNW_MODE, HSMC_EXNW_MODE_FROZEN);
-               break;
-       case 3:
-               mode |= HSMC_BF(EXNW_MODE, HSMC_EXNW_MODE_READY);
-               break;
-       default:
-               return -EINVAL;
-       }
-
-       if (config->tdf_cycles) {
-               mode |= HSMC_BF(TDF_CYCLES, config->tdf_cycles);
-       }
-
-       if (config->nrd_controlled)
-               mode |= HSMC_BIT(READ_MODE);
-       if (config->nwe_controlled)
-               mode |= HSMC_BIT(WRITE_MODE);
-       if (config->byte_write)
-               mode |= HSMC_BIT(BAT);
-       if (config->tdf_mode)
-               mode |= HSMC_BIT(TDF_MODE);
-
-       pr_debug("smc cs%d: setup/%08x pulse/%08x cycle/%08x mode/%08x\n",
-                cs, setup, pulse, cycle, mode);
-
-       offset = cs * 0x10;
-       hsmc_writel(hsmc, SETUP0 + offset, setup);
-       hsmc_writel(hsmc, PULSE0 + offset, pulse);
-       hsmc_writel(hsmc, CYCLE0 + offset, cycle);
-       hsmc_writel(hsmc, MODE0 + offset, mode);
-       hsmc_readl(hsmc, MODE0); /* I/O barrier */
-
-       return 0;
-}
-EXPORT_SYMBOL(smc_set_configuration);
-
-static int hsmc_probe(struct platform_device *pdev)
-{
-       struct resource *regs;
-       struct clk *pclk, *mck;
-       int ret;
-
-       if (hsmc)
-               return -EBUSY;
-
-       regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (!regs)
-               return -ENXIO;
-       pclk = clk_get(&pdev->dev, "pclk");
-       if (IS_ERR(pclk))
-               return PTR_ERR(pclk);
-       mck = clk_get(&pdev->dev, "mck");
-       if (IS_ERR(mck)) {
-               ret = PTR_ERR(mck);
-               goto out_put_pclk;
-       }
-
-       ret = -ENOMEM;
-       hsmc = kzalloc(sizeof(struct hsmc), GFP_KERNEL);
-       if (!hsmc)
-               goto out_put_clocks;
-
-       clk_enable(pclk);
-       clk_enable(mck);
-
-       hsmc->pclk = pclk;
-       hsmc->mck = mck;
-       hsmc->regs = ioremap(regs->start, resource_size(regs));
-       if (!hsmc->regs)
-               goto out_disable_clocks;
-
-       dev_info(&pdev->dev, "Atmel Static Memory Controller at 0x%08lx\n",
-                (unsigned long)regs->start);
-
-       platform_set_drvdata(pdev, hsmc);
-
-       return 0;
-
-out_disable_clocks:
-       clk_disable(mck);
-       clk_disable(pclk);
-       kfree(hsmc);
-out_put_clocks:
-       clk_put(mck);
-out_put_pclk:
-       clk_put(pclk);
-       hsmc = NULL;
-       return ret;
-}
-
-static struct platform_driver hsmc_driver = {
-       .probe          = hsmc_probe,
-       .driver         = {
-               .name   = "smc",
-       },
-};
-
-static int __init hsmc_init(void)
-{
-       return platform_driver_register(&hsmc_driver);
-}
-core_initcall(hsmc_init);
diff --git a/arch/avr32/mach-at32ap/hsmc.h b/arch/avr32/mach-at32ap/hsmc.h
deleted file mode 100644 (file)
index d1d48e2..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Register definitions for Atmel Static Memory Controller (SMC)
- *
- * Copyright (C) 2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_HSMC_H__
-#define __ASM_AVR32_HSMC_H__
-
-/* HSMC register offsets */
-#define HSMC_SETUP0                            0x0000
-#define HSMC_PULSE0                            0x0004
-#define HSMC_CYCLE0                            0x0008
-#define HSMC_MODE0                             0x000c
-#define HSMC_SETUP1                            0x0010
-#define HSMC_PULSE1                            0x0014
-#define HSMC_CYCLE1                            0x0018
-#define HSMC_MODE1                             0x001c
-#define HSMC_SETUP2                            0x0020
-#define HSMC_PULSE2                            0x0024
-#define HSMC_CYCLE2                            0x0028
-#define HSMC_MODE2                             0x002c
-#define HSMC_SETUP3                            0x0030
-#define HSMC_PULSE3                            0x0034
-#define HSMC_CYCLE3                            0x0038
-#define HSMC_MODE3                             0x003c
-#define HSMC_SETUP4                            0x0040
-#define HSMC_PULSE4                            0x0044
-#define HSMC_CYCLE4                            0x0048
-#define HSMC_MODE4                             0x004c
-#define HSMC_SETUP5                            0x0050
-#define HSMC_PULSE5                            0x0054
-#define HSMC_CYCLE5                            0x0058
-#define HSMC_MODE5                             0x005c
-
-/* Bitfields in SETUP0 */
-#define HSMC_NWE_SETUP_OFFSET                  0
-#define HSMC_NWE_SETUP_SIZE                    6
-#define HSMC_NCS_WR_SETUP_OFFSET               8
-#define HSMC_NCS_WR_SETUP_SIZE                 6
-#define HSMC_NRD_SETUP_OFFSET                  16
-#define HSMC_NRD_SETUP_SIZE                    6
-#define HSMC_NCS_RD_SETUP_OFFSET               24
-#define HSMC_NCS_RD_SETUP_SIZE                 6
-
-/* Bitfields in PULSE0 */
-#define HSMC_NWE_PULSE_OFFSET                  0
-#define HSMC_NWE_PULSE_SIZE                    7
-#define HSMC_NCS_WR_PULSE_OFFSET               8
-#define HSMC_NCS_WR_PULSE_SIZE                 7
-#define HSMC_NRD_PULSE_OFFSET                  16
-#define HSMC_NRD_PULSE_SIZE                    7
-#define HSMC_NCS_RD_PULSE_OFFSET               24
-#define HSMC_NCS_RD_PULSE_SIZE                 7
-
-/* Bitfields in CYCLE0 */
-#define HSMC_NWE_CYCLE_OFFSET                  0
-#define HSMC_NWE_CYCLE_SIZE                    9
-#define HSMC_NRD_CYCLE_OFFSET                  16
-#define HSMC_NRD_CYCLE_SIZE                    9
-
-/* Bitfields in MODE0 */
-#define HSMC_READ_MODE_OFFSET                  0
-#define HSMC_READ_MODE_SIZE                    1
-#define HSMC_WRITE_MODE_OFFSET                 1
-#define HSMC_WRITE_MODE_SIZE                   1
-#define HSMC_EXNW_MODE_OFFSET                  4
-#define HSMC_EXNW_MODE_SIZE                    2
-#define HSMC_BAT_OFFSET                                8
-#define HSMC_BAT_SIZE                          1
-#define HSMC_DBW_OFFSET                                12
-#define HSMC_DBW_SIZE                          2
-#define HSMC_TDF_CYCLES_OFFSET                 16
-#define HSMC_TDF_CYCLES_SIZE                   4
-#define HSMC_TDF_MODE_OFFSET                   20
-#define HSMC_TDF_MODE_SIZE                     1
-#define HSMC_PMEN_OFFSET                       24
-#define HSMC_PMEN_SIZE                         1
-#define HSMC_PS_OFFSET                         28
-#define HSMC_PS_SIZE                           2
-
-/* Constants for READ_MODE */
-#define HSMC_READ_MODE_NCS_CONTROLLED          0
-#define HSMC_READ_MODE_NRD_CONTROLLED          1
-
-/* Constants for WRITE_MODE */
-#define HSMC_WRITE_MODE_NCS_CONTROLLED         0
-#define HSMC_WRITE_MODE_NWE_CONTROLLED         1
-
-/* Constants for EXNW_MODE */
-#define HSMC_EXNW_MODE_DISABLED                        0
-#define HSMC_EXNW_MODE_RESERVED                        1
-#define HSMC_EXNW_MODE_FROZEN                  2
-#define HSMC_EXNW_MODE_READY                   3
-
-/* Constants for BAT */
-#define HSMC_BAT_BYTE_SELECT                   0
-#define HSMC_BAT_BYTE_WRITE                    1
-
-/* Constants for DBW */
-#define HSMC_DBW_8_BITS                                0
-#define HSMC_DBW_16_BITS                       1
-#define HSMC_DBW_32_BITS                       2
-
-/* Bit manipulation macros */
-#define HSMC_BIT(name)                                                 \
-       (1 << HSMC_##name##_OFFSET)
-#define HSMC_BF(name,value)                                            \
-       (((value) & ((1 << HSMC_##name##_SIZE) - 1))                    \
-        << HSMC_##name##_OFFSET)
-#define HSMC_BFEXT(name,value)                                         \
-       (((value) >> HSMC_##name##_OFFSET)                              \
-        & ((1 << HSMC_##name##_SIZE) - 1))
-#define HSMC_BFINS(name,value,old)                                     \
-       (((old) & ~(((1 << HSMC_##name##_SIZE) - 1)                     \
-                   << HSMC_##name##_OFFSET)) | HSMC_BF(name,value))
-
-/* Register access macros */
-#define hsmc_readl(port,reg)                                           \
-       __raw_readl((port)->regs + HSMC_##reg)
-#define hsmc_writel(port,reg,value)                                    \
-       __raw_writel((value), (port)->regs + HSMC_##reg)
-
-#endif /* __ASM_AVR32_HSMC_H__ */
diff --git a/arch/avr32/mach-at32ap/include/mach/at32ap700x.h b/arch/avr32/mach-at32ap/include/mach/at32ap700x.h
deleted file mode 100644 (file)
index b9222bf..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * Pin definitions for AT32AP7000.
- *
- * Copyright (C) 2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_ARCH_AT32AP700X_H__
-#define __ASM_ARCH_AT32AP700X_H__
-
-#define GPIO_PERIPH_A  0
-#define GPIO_PERIPH_B  1
-
-/*
- * Pin numbers identifying specific GPIO pins on the chip. They can
- * also be converted to IRQ numbers by passing them through
- * gpio_to_irq().
- */
-#define GPIO_PIOA_BASE (0)
-#define GPIO_PIOB_BASE (GPIO_PIOA_BASE + 32)
-#define GPIO_PIOC_BASE (GPIO_PIOB_BASE + 32)
-#define GPIO_PIOD_BASE (GPIO_PIOC_BASE + 32)
-#define GPIO_PIOE_BASE (GPIO_PIOD_BASE + 32)
-
-#define GPIO_PIN_PA(N) (GPIO_PIOA_BASE + (N))
-#define GPIO_PIN_PB(N) (GPIO_PIOB_BASE + (N))
-#define GPIO_PIN_PC(N) (GPIO_PIOC_BASE + (N))
-#define GPIO_PIN_PD(N) (GPIO_PIOD_BASE + (N))
-#define GPIO_PIN_PE(N) (GPIO_PIOE_BASE + (N))
-
-
-/*
- * DMAC peripheral hardware handshaking interfaces, used with dw_dmac
- */
-#define DMAC_MCI_RX            0
-#define DMAC_MCI_TX            1
-#define DMAC_DAC_TX            2
-#define DMAC_AC97_A_RX         3
-#define DMAC_AC97_A_TX         4
-#define DMAC_AC97_B_RX         5
-#define DMAC_AC97_B_TX         6
-#define DMAC_DMAREQ_0          7
-#define DMAC_DMAREQ_1          8
-#define DMAC_DMAREQ_2          9
-#define DMAC_DMAREQ_3          10
-
-/* HSB master IDs */
-#define HMATRIX_MASTER_CPU_DCACHE              0
-#define HMATRIX_MASTER_CPU_ICACHE              1
-#define HMATRIX_MASTER_PDC                     2
-#define HMATRIX_MASTER_ISI                     3
-#define HMATRIX_MASTER_USBA                    4
-#define HMATRIX_MASTER_LCDC                    5
-#define HMATRIX_MASTER_MACB0                   6
-#define HMATRIX_MASTER_MACB1                   7
-#define HMATRIX_MASTER_DMACA_M0                        8
-#define HMATRIX_MASTER_DMACA_M1                        9
-
-/* HSB slave IDs */
-#define HMATRIX_SLAVE_SRAM0                    0
-#define HMATRIX_SLAVE_SRAM1                    1
-#define HMATRIX_SLAVE_PBA                      2
-#define HMATRIX_SLAVE_PBB                      3
-#define HMATRIX_SLAVE_EBI                      4
-#define HMATRIX_SLAVE_USBA                     5
-#define HMATRIX_SLAVE_LCDC                     6
-#define HMATRIX_SLAVE_DMACA                    7
-
-/* Bits in HMATRIX SFR4 (EBI) */
-#define HMATRIX_EBI_SDRAM_ENABLE               (1 << 1)
-#define HMATRIX_EBI_NAND_ENABLE                        (1 << 3)
-#define HMATRIX_EBI_CF0_ENABLE                 (1 << 4)
-#define HMATRIX_EBI_CF1_ENABLE                 (1 << 5)
-#define HMATRIX_EBI_PULLUP_DISABLE             (1 << 8)
-
-/*
- * Base addresses of controllers that may be accessed early by
- * platform code.
- */
-#define PM_BASE                0xfff00000
-#define HMATRIX_BASE   0xfff00800
-#define SDRAMC_BASE    0xfff03800
-
-/* LCDC on port C */
-#define ATMEL_LCDC_PC_CC       (1ULL << 19)
-#define ATMEL_LCDC_PC_HSYNC    (1ULL << 20)
-#define ATMEL_LCDC_PC_PCLK     (1ULL << 21)
-#define ATMEL_LCDC_PC_VSYNC    (1ULL << 22)
-#define ATMEL_LCDC_PC_DVAL     (1ULL << 23)
-#define ATMEL_LCDC_PC_MODE     (1ULL << 24)
-#define ATMEL_LCDC_PC_PWR      (1ULL << 25)
-#define ATMEL_LCDC_PC_DATA0    (1ULL << 26)
-#define ATMEL_LCDC_PC_DATA1    (1ULL << 27)
-#define ATMEL_LCDC_PC_DATA2    (1ULL << 28)
-#define ATMEL_LCDC_PC_DATA3    (1ULL << 29)
-#define ATMEL_LCDC_PC_DATA4    (1ULL << 30)
-#define ATMEL_LCDC_PC_DATA5    (1ULL << 31)
-
-/* LCDC on port D */
-#define ATMEL_LCDC_PD_DATA6    (1ULL << 0)
-#define ATMEL_LCDC_PD_DATA7    (1ULL << 1)
-#define ATMEL_LCDC_PD_DATA8    (1ULL << 2)
-#define ATMEL_LCDC_PD_DATA9    (1ULL << 3)
-#define ATMEL_LCDC_PD_DATA10   (1ULL << 4)
-#define ATMEL_LCDC_PD_DATA11   (1ULL << 5)
-#define ATMEL_LCDC_PD_DATA12   (1ULL << 6)
-#define ATMEL_LCDC_PD_DATA13   (1ULL << 7)
-#define ATMEL_LCDC_PD_DATA14   (1ULL << 8)
-#define ATMEL_LCDC_PD_DATA15   (1ULL << 9)
-#define ATMEL_LCDC_PD_DATA16   (1ULL << 10)
-#define ATMEL_LCDC_PD_DATA17   (1ULL << 11)
-#define ATMEL_LCDC_PD_DATA18   (1ULL << 12)
-#define ATMEL_LCDC_PD_DATA19   (1ULL << 13)
-#define ATMEL_LCDC_PD_DATA20   (1ULL << 14)
-#define ATMEL_LCDC_PD_DATA21   (1ULL << 15)
-#define ATMEL_LCDC_PD_DATA22   (1ULL << 16)
-#define ATMEL_LCDC_PD_DATA23   (1ULL << 17)
-
-/* LCDC on port E */
-#define ATMEL_LCDC_PE_CC       (1ULL << (32 + 0))
-#define ATMEL_LCDC_PE_DVAL     (1ULL << (32 + 1))
-#define ATMEL_LCDC_PE_MODE     (1ULL << (32 + 2))
-#define ATMEL_LCDC_PE_DATA0    (1ULL << (32 + 3))
-#define ATMEL_LCDC_PE_DATA1    (1ULL << (32 + 4))
-#define ATMEL_LCDC_PE_DATA2    (1ULL << (32 + 5))
-#define ATMEL_LCDC_PE_DATA3    (1ULL << (32 + 6))
-#define ATMEL_LCDC_PE_DATA4    (1ULL << (32 + 7))
-#define ATMEL_LCDC_PE_DATA8    (1ULL << (32 + 8))
-#define ATMEL_LCDC_PE_DATA9    (1ULL << (32 + 9))
-#define ATMEL_LCDC_PE_DATA10   (1ULL << (32 + 10))
-#define ATMEL_LCDC_PE_DATA11   (1ULL << (32 + 11))
-#define ATMEL_LCDC_PE_DATA12   (1ULL << (32 + 12))
-#define ATMEL_LCDC_PE_DATA16   (1ULL << (32 + 13))
-#define ATMEL_LCDC_PE_DATA17   (1ULL << (32 + 14))
-#define ATMEL_LCDC_PE_DATA18   (1ULL << (32 + 15))
-#define ATMEL_LCDC_PE_DATA19   (1ULL << (32 + 16))
-#define ATMEL_LCDC_PE_DATA20   (1ULL << (32 + 17))
-#define ATMEL_LCDC_PE_DATA21   (1ULL << (32 + 18))
-
-
-#define ATMEL_LCDC(PORT, PIN)  (ATMEL_LCDC_##PORT##_##PIN)
-
-
-#define ATMEL_LCDC_PRI_24B_DATA        (                                       \
-               ATMEL_LCDC(PC, DATA0)  | ATMEL_LCDC(PC, DATA1)  |       \
-               ATMEL_LCDC(PC, DATA2)  | ATMEL_LCDC(PC, DATA3)  |       \
-               ATMEL_LCDC(PC, DATA4)  | ATMEL_LCDC(PC, DATA5)  |       \
-               ATMEL_LCDC(PD, DATA6)  | ATMEL_LCDC(PD, DATA7)  |       \
-               ATMEL_LCDC(PD, DATA8)  | ATMEL_LCDC(PD, DATA9)  |       \
-               ATMEL_LCDC(PD, DATA10) | ATMEL_LCDC(PD, DATA11) |       \
-               ATMEL_LCDC(PD, DATA12) | ATMEL_LCDC(PD, DATA13) |       \
-               ATMEL_LCDC(PD, DATA14) | ATMEL_LCDC(PD, DATA15) |       \
-               ATMEL_LCDC(PD, DATA16) | ATMEL_LCDC(PD, DATA17) |       \
-               ATMEL_LCDC(PD, DATA18) | ATMEL_LCDC(PD, DATA19) |       \
-               ATMEL_LCDC(PD, DATA20) | ATMEL_LCDC(PD, DATA21) |       \
-               ATMEL_LCDC(PD, DATA22) | ATMEL_LCDC(PD, DATA23))
-
-#define ATMEL_LCDC_ALT_24B_DATA (                                      \
-               ATMEL_LCDC(PE, DATA0)  | ATMEL_LCDC(PE, DATA1)  |       \
-               ATMEL_LCDC(PE, DATA2)  | ATMEL_LCDC(PE, DATA3)  |       \
-               ATMEL_LCDC(PE, DATA4)  | ATMEL_LCDC(PC, DATA5)  |       \
-               ATMEL_LCDC(PD, DATA6)  | ATMEL_LCDC(PD, DATA7)  |       \
-               ATMEL_LCDC(PE, DATA8)  | ATMEL_LCDC(PE, DATA9)  |       \
-               ATMEL_LCDC(PE, DATA10) | ATMEL_LCDC(PE, DATA11) |       \
-               ATMEL_LCDC(PE, DATA12) | ATMEL_LCDC(PD, DATA13) |       \
-               ATMEL_LCDC(PD, DATA14) | ATMEL_LCDC(PD, DATA15) |       \
-               ATMEL_LCDC(PE, DATA16) | ATMEL_LCDC(PE, DATA17) |       \
-               ATMEL_LCDC(PE, DATA18) | ATMEL_LCDC(PE, DATA19) |       \
-               ATMEL_LCDC(PE, DATA20) | ATMEL_LCDC(PE, DATA21) |       \
-               ATMEL_LCDC(PD, DATA22) | ATMEL_LCDC(PD, DATA23))
-
-#define ATMEL_LCDC_PRI_18B_DATA (                                      \
-               ATMEL_LCDC(PC, DATA2)  | ATMEL_LCDC(PC, DATA3)  |       \
-               ATMEL_LCDC(PC, DATA4)  | ATMEL_LCDC(PC, DATA5)  |       \
-               ATMEL_LCDC(PD, DATA6)  | ATMEL_LCDC(PD, DATA7)  |       \
-               ATMEL_LCDC(PD, DATA10) | ATMEL_LCDC(PD, DATA11) |       \
-               ATMEL_LCDC(PD, DATA12) | ATMEL_LCDC(PD, DATA13) |       \
-               ATMEL_LCDC(PD, DATA14) | ATMEL_LCDC(PD, DATA15) |       \
-               ATMEL_LCDC(PD, DATA18) | ATMEL_LCDC(PD, DATA19) |       \
-               ATMEL_LCDC(PD, DATA20) | ATMEL_LCDC(PD, DATA21) |       \
-               ATMEL_LCDC(PD, DATA22) | ATMEL_LCDC(PD, DATA23))
-
-#define ATMEL_LCDC_ALT_18B_DATA        (                                       \
-               ATMEL_LCDC(PE, DATA2)  | ATMEL_LCDC(PE, DATA3)  |       \
-               ATMEL_LCDC(PE, DATA4)  | ATMEL_LCDC(PC, DATA5)  |       \
-               ATMEL_LCDC(PD, DATA6)  | ATMEL_LCDC(PD, DATA7)  |       \
-               ATMEL_LCDC(PE, DATA10) | ATMEL_LCDC(PE, DATA11) |       \
-               ATMEL_LCDC(PE, DATA12) | ATMEL_LCDC(PD, DATA13) |       \
-               ATMEL_LCDC(PD, DATA14) | ATMEL_LCDC(PD, DATA15) |       \
-               ATMEL_LCDC(PE, DATA18) | ATMEL_LCDC(PE, DATA19) |       \
-               ATMEL_LCDC(PE, DATA20) | ATMEL_LCDC(PE, DATA21) |       \
-               ATMEL_LCDC(PD, DATA22) | ATMEL_LCDC(PD, DATA23))
-
-#define ATMEL_LCDC_PRI_15B_DATA (                                      \
-               ATMEL_LCDC(PC, DATA3)  | ATMEL_LCDC(PC, DATA4)  |       \
-               ATMEL_LCDC(PC, DATA5)  | ATMEL_LCDC(PD, DATA6)  |       \
-               ATMEL_LCDC(PD, DATA7)  |                                \
-               ATMEL_LCDC(PD, DATA11) | ATMEL_LCDC(PD, DATA12) |       \
-               ATMEL_LCDC(PD, DATA13) | ATMEL_LCDC(PD, DATA14) |       \
-               ATMEL_LCDC(PD, DATA15) |                                \
-               ATMEL_LCDC(PD, DATA19) | ATMEL_LCDC(PD, DATA20) |       \
-               ATMEL_LCDC(PD, DATA21) | ATMEL_LCDC(PD, DATA22) |       \
-               ATMEL_LCDC(PD, DATA23))
-
-#define ATMEL_LCDC_ALT_15B_DATA        (                                       \
-               ATMEL_LCDC(PE, DATA3)  | ATMEL_LCDC(PE, DATA4)  |       \
-               ATMEL_LCDC(PC, DATA5)  | ATMEL_LCDC(PD, DATA6)  |       \
-               ATMEL_LCDC(PD, DATA7)  |                                \
-               ATMEL_LCDC(PE, DATA11) | ATMEL_LCDC(PE, DATA12) |       \
-               ATMEL_LCDC(PD, DATA13) | ATMEL_LCDC(PD, DATA14) |       \
-               ATMEL_LCDC(PD, DATA15) |                                \
-               ATMEL_LCDC(PE, DATA19) | ATMEL_LCDC(PE, DATA20) |       \
-               ATMEL_LCDC(PE, DATA21) | ATMEL_LCDC(PD, DATA22) |       \
-               ATMEL_LCDC(PD, DATA23))
-
-#define ATMEL_LCDC_PRI_CONTROL (                                       \
-               ATMEL_LCDC(PC, CC)   | ATMEL_LCDC(PC, DVAL) |           \
-               ATMEL_LCDC(PC, MODE) | ATMEL_LCDC(PC, PWR))
-
-#define ATMEL_LCDC_ALT_CONTROL (                                       \
-               ATMEL_LCDC(PE, CC)   | ATMEL_LCDC(PE, DVAL) |           \
-               ATMEL_LCDC(PE, MODE) | ATMEL_LCDC(PC, PWR))
-
-#define ATMEL_LCDC_CONTROL (                                           \
-               ATMEL_LCDC(PC, HSYNC) | ATMEL_LCDC(PC, VSYNC) |         \
-               ATMEL_LCDC(PC, PCLK))
-
-#define ATMEL_LCDC_PRI_24BIT   (ATMEL_LCDC_CONTROL | ATMEL_LCDC_PRI_24B_DATA)
-
-#define ATMEL_LCDC_ALT_24BIT   (ATMEL_LCDC_CONTROL | ATMEL_LCDC_ALT_24B_DATA)
-
-#define ATMEL_LCDC_PRI_18BIT   (ATMEL_LCDC_CONTROL | ATMEL_LCDC_PRI_18B_DATA)
-
-#define ATMEL_LCDC_ALT_18BIT   (ATMEL_LCDC_CONTROL | ATMEL_LCDC_ALT_18B_DATA)
-
-#define ATMEL_LCDC_PRI_15BIT   (ATMEL_LCDC_CONTROL | ATMEL_LCDC_PRI_15B_DATA)
-
-#define ATMEL_LCDC_ALT_15BIT   (ATMEL_LCDC_CONTROL | ATMEL_LCDC_ALT_15B_DATA)
-
-/* Bitmask for all EBI data (D16..D31) pins on port E */
-#define ATMEL_EBI_PE_DATA_ALL  (0x0000FFFF)
-
-#endif /* __ASM_ARCH_AT32AP700X_H__ */
diff --git a/arch/avr32/mach-at32ap/include/mach/board.h b/arch/avr32/mach-at32ap/include/mach/board.h
deleted file mode 100644 (file)
index f1a316d..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Platform data definitions.
- */
-#ifndef __ASM_ARCH_BOARD_H
-#define __ASM_ARCH_BOARD_H
-
-#include <linux/types.h>
-#include <linux/serial.h>
-#include <linux/platform_data/macb.h>
-#include <linux/platform_data/atmel.h>
-
-#define GPIO_PIN_NONE  (-1)
-
-/*
- * Clock rates for various on-board oscillators. The number of entries
- * in this array is chip-dependent.
- */
-extern unsigned long at32_board_osc_rates[];
-
-/*
- * This used to add essential system devices, but this is now done
- * automatically. Please don't use it in new board code.
- */
-static inline void __deprecated at32_add_system_devices(void)
-{
-
-}
-
-extern struct platform_device *atmel_default_console_device;
-
-/* Flags for selecting USART extra pins */
-#define        ATMEL_USART_RTS         0x01
-#define        ATMEL_USART_CTS         0x02
-#define        ATMEL_USART_CLK         0x04
-
-void at32_map_usart(unsigned int hw_id, unsigned int line, int flags);
-struct platform_device *at32_add_device_usart(unsigned int id);
-
-struct platform_device *
-at32_add_device_eth(unsigned int id, struct macb_platform_data *data);
-
-struct spi_board_info;
-struct platform_device *
-at32_add_device_spi(unsigned int id, struct spi_board_info *b, unsigned int n);
-void at32_spi_setup_slaves(unsigned int bus_num, struct spi_board_info *b, unsigned int n);
-
-struct atmel_lcdfb_pdata;
-struct platform_device *
-at32_add_device_lcdc(unsigned int id, struct atmel_lcdfb_pdata *data,
-                    unsigned long fbmem_start, unsigned long fbmem_len,
-                    u64 pin_mask);
-
-struct usba_platform_data;
-struct platform_device *
-at32_add_device_usba(unsigned int id, struct usba_platform_data *data);
-
-struct ide_platform_data {
-       u8      cs;
-};
-struct platform_device *
-at32_add_device_ide(unsigned int id, unsigned int extint,
-                   struct ide_platform_data *data);
-
-/* mask says which PWM channels to mux */
-struct platform_device *at32_add_device_pwm(u32 mask);
-
-/* depending on what's hooked up, not all SSC pins will be used */
-#define        ATMEL_SSC_TK            0x01
-#define        ATMEL_SSC_TF            0x02
-#define        ATMEL_SSC_TD            0x04
-#define        ATMEL_SSC_TX            (ATMEL_SSC_TK | ATMEL_SSC_TF | ATMEL_SSC_TD)
-
-#define        ATMEL_SSC_RK            0x10
-#define        ATMEL_SSC_RF            0x20
-#define        ATMEL_SSC_RD            0x40
-#define        ATMEL_SSC_RX            (ATMEL_SSC_RK | ATMEL_SSC_RF | ATMEL_SSC_RD)
-
-struct platform_device *
-at32_add_device_ssc(unsigned int id, unsigned int flags);
-
-struct i2c_board_info;
-struct platform_device *at32_add_device_twi(unsigned int id,
-                                           struct i2c_board_info *b,
-                                           unsigned int n);
-
-struct mci_platform_data;
-struct platform_device *
-at32_add_device_mci(unsigned int id, struct mci_platform_data *data);
-
-struct ac97c_platform_data;
-struct platform_device *
-at32_add_device_ac97c(unsigned int id, struct ac97c_platform_data *data,
-                     unsigned int flags);
-
-struct atmel_abdac_pdata;
-struct platform_device *
-at32_add_device_abdac(unsigned int id, struct atmel_abdac_pdata *data);
-
-struct platform_device *at32_add_device_psif(unsigned int id);
-
-struct cf_platform_data {
-       int     detect_pin;
-       int     reset_pin;
-       int     vcc_pin;
-       int     ready_pin;
-       u8      cs;
-};
-struct platform_device *
-at32_add_device_cf(unsigned int id, unsigned int extint,
-               struct cf_platform_data *data);
-
-struct platform_device *
-at32_add_device_nand(unsigned int id, struct atmel_nand_data *data);
-
-#endif /* __ASM_ARCH_BOARD_H */
diff --git a/arch/avr32/mach-at32ap/include/mach/chip.h b/arch/avr32/mach-at32ap/include/mach/chip.h
deleted file mode 100644 (file)
index 5efca6d..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * AVR32 chip-specific definitions
- *
- * Copyright (C) 2008 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_ARCH_CHIP_H__
-#define __ASM_AVR32_ARCH_CHIP_H__
-
-#if defined(CONFIG_CPU_AT32AP700X)
-# include <mach/at32ap700x.h>
-#else
-# error Unknown chip type selected
-#endif
-
-#endif /* __ASM_AVR32_ARCH_CHIP_H__ */
diff --git a/arch/avr32/mach-at32ap/include/mach/cpu.h b/arch/avr32/mach-at32ap/include/mach/cpu.h
deleted file mode 100644 (file)
index 4181086..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * AVR32 CPU identification
- *
- * Copyright (C) 2007 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_ARCH_CPU_H
-#define __ASM_ARCH_CPU_H
-
-/*
- * Only AT32AP7000 is defined for now. We can identify the specific
- * chip at runtime, but I'm not sure if it's really worth it.
- */
-#ifdef CONFIG_CPU_AT32AP700X
-# define cpu_is_at32ap7000()   (1)
-#else
-# define cpu_is_at32ap7000()   (0)
-#endif
-
-#endif /* __ASM_ARCH_CPU_H */
diff --git a/arch/avr32/mach-at32ap/include/mach/gpio.h b/arch/avr32/mach-at32ap/include/mach/gpio.h
deleted file mode 100644 (file)
index 0180f58..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef __ASM_AVR32_ARCH_GPIO_H
-#define __ASM_AVR32_ARCH_GPIO_H
-
-#include <linux/compiler.h>
-#include <asm/irq.h>
-
-
-/* Some GPIO chips can manage IRQs; some can't.  The exact numbers can
- * be changed if needed, but for the moment they're not configurable.
- */
-#define ARCH_NR_GPIOS  (NR_GPIO_IRQS + 2 * 32)
-
-
-/* Arch-neutral GPIO API, supporting both "native" and external GPIOs. */
-#include <asm-generic/gpio.h>
-
-static inline int gpio_get_value(unsigned int gpio)
-{
-       return __gpio_get_value(gpio);
-}
-
-static inline void gpio_set_value(unsigned int gpio, int value)
-{
-       __gpio_set_value(gpio, value);
-}
-
-static inline int gpio_cansleep(unsigned int gpio)
-{
-       return __gpio_cansleep(gpio);
-}
-
-
-static inline int gpio_to_irq(unsigned int gpio)
-{
-       if (gpio < NR_GPIO_IRQS)
-               return gpio + GPIO_IRQ_BASE;
-       return -EINVAL;
-}
-
-static inline int irq_to_gpio(unsigned int irq)
-{
-       return irq - GPIO_IRQ_BASE;
-}
-
-#endif /* __ASM_AVR32_ARCH_GPIO_H */
diff --git a/arch/avr32/mach-at32ap/include/mach/hmatrix.h b/arch/avr32/mach-at32ap/include/mach/hmatrix.h
deleted file mode 100644 (file)
index 7a368f2..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * High-Speed Bus Matrix configuration registers
- *
- * Copyright (C) 2008 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __HMATRIX_H
-#define __HMATRIX_H
-
-extern struct clk at32_hmatrix_clk;
-
-void hmatrix_write_reg(unsigned long offset, u32 value);
-u32 hmatrix_read_reg(unsigned long offset);
-
-void hmatrix_sfr_set_bits(unsigned int slave_id, u32 mask);
-void hmatrix_sfr_clear_bits(unsigned int slave_id, u32 mask);
-
-/* Master Configuration register */
-#define HMATRIX_MCFG(m)                        (0x0000 + 4 * (m))
-/* Undefined length burst limit */
-# define HMATRIX_MCFG_ULBT_INFINITE    0       /* Infinite length */
-# define HMATRIX_MCFG_ULBT_SINGLE      1       /* Single Access */
-# define HMATRIX_MCFG_ULBT_FOUR_BEAT   2       /* Four beat */
-# define HMATRIX_MCFG_ULBT_EIGHT_BEAT  3       /* Eight beat */
-# define HMATRIX_MCFG_ULBT_SIXTEEN_BEAT        4       /* Sixteen beat */
-
-/* Slave Configuration register */
-#define HMATRIX_SCFG(s)                        (0x0040 + 4 * (s))
-# define HMATRIX_SCFG_SLOT_CYCLE(x)    ((x) <<  0)     /* Max burst cycles */
-# define HMATRIX_SCFG_DEFMSTR_NONE     (  0 << 16)     /* No default master */
-# define HMATRIX_SCFG_DEFMSTR_LAST     (  1 << 16)     /* Last def master */
-# define HMATRIX_SCFG_DEFMSTR_FIXED    (  2 << 16)     /* Fixed def master */
-# define HMATRIX_SCFG_FIXED_DEFMSTR(m) ((m) << 18)     /* Fixed master ID */
-# define HMATRIX_SCFG_ARBT_ROUND_ROBIN (  0 << 24)     /* RR arbitration */
-# define HMATRIX_SCFG_ARBT_FIXED_PRIO  (  1 << 24)     /* Fixed priority */
-
-/* Slave Priority register A (master 0..7) */
-#define HMATRIX_PRAS(s)                        (0x0080 + 8 * (s))
-# define HMATRIX_PRAS_PRIO(m, p)       ((p) << ((m) * 4))
-
-/* Slave Priority register A (master 8..15) */
-#define HMATRIX_PRBS(s)                        (0x0084 + 8 * (s))
-# define HMATRIX_PRBS_PRIO(m, p)       ((p) << (((m) - 8) * 4))
-
-/* Master Remap Control Register */
-#define HMATRIX_MRCR                           0x0100
-# define HMATRIX_MRCR_REMAP(m)         (  1 << (m))    /* Remap master m */
-
-/* Special Function Register. Bit definitions are chip-specific */
-#define HMATRIX_SFR(s)                 (0x0110 + 4 * (s))
-
-#endif /* __HMATRIX_H */
diff --git a/arch/avr32/mach-at32ap/include/mach/init.h b/arch/avr32/mach-at32ap/include/mach/init.h
deleted file mode 100644 (file)
index bc40e3d..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * AT32AP platform initialization calls.
- *
- * Copyright (C) 2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_AT32AP_INIT_H__
-#define __ASM_AVR32_AT32AP_INIT_H__
-
-void setup_platform(void);
-void setup_board(void);
-
-void at32_setup_serial_console(unsigned int usart_id);
-
-#endif /* __ASM_AVR32_AT32AP_INIT_H__ */
diff --git a/arch/avr32/mach-at32ap/include/mach/io.h b/arch/avr32/mach-at32ap/include/mach/io.h
deleted file mode 100644 (file)
index 22ea79b..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef __ASM_AVR32_ARCH_AT32AP_IO_H
-#define __ASM_AVR32_ARCH_AT32AP_IO_H
-
-#include <linux/swab.h>
-
-#if defined(CONFIG_AP700X_32_BIT_SMC)
-# define __swizzle_addr_b(addr)        (addr ^ 3UL)
-# define __swizzle_addr_w(addr)        (addr ^ 2UL)
-# define __swizzle_addr_l(addr)        (addr)
-# define ioswabb(a, x)         (x)
-# define ioswabw(a, x)         (x)
-# define ioswabl(a, x)         (x)
-# define __mem_ioswabb(a, x)   (x)
-# define __mem_ioswabw(a, x)   swab16(x)
-# define __mem_ioswabl(a, x)   swab32(x)
-#elif defined(CONFIG_AP700X_16_BIT_SMC)
-# define __swizzle_addr_b(addr)        (addr ^ 1UL)
-# define __swizzle_addr_w(addr)        (addr)
-# define __swizzle_addr_l(addr)        (addr)
-# define ioswabb(a, x)         (x)
-# define ioswabw(a, x)         (x)
-# define ioswabl(a, x)         swahw32(x)
-# define __mem_ioswabb(a, x)   (x)
-# define __mem_ioswabw(a, x)   swab16(x)
-# define __mem_ioswabl(a, x)   swahb32(x)
-#else
-# define __swizzle_addr_b(addr)        (addr)
-# define __swizzle_addr_w(addr)        (addr)
-# define __swizzle_addr_l(addr)        (addr)
-# define ioswabb(a, x)         (x)
-# define ioswabw(a, x)         swab16(x)
-# define ioswabl(a, x)         swab32(x)
-# define __mem_ioswabb(a, x)   (x)
-# define __mem_ioswabw(a, x)   (x)
-# define __mem_ioswabl(a, x)   (x)
-#endif
-
-#endif /* __ASM_AVR32_ARCH_AT32AP_IO_H */
diff --git a/arch/avr32/mach-at32ap/include/mach/irq.h b/arch/avr32/mach-at32ap/include/mach/irq.h
deleted file mode 100644 (file)
index 608e350..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __ASM_AVR32_ARCH_IRQ_H
-#define __ASM_AVR32_ARCH_IRQ_H
-
-#define EIM_IRQ_BASE   NR_INTERNAL_IRQS
-#define NR_EIM_IRQS    32
-#define AT32_EXTINT(n) (EIM_IRQ_BASE + (n))
-
-#define GPIO_IRQ_BASE  (EIM_IRQ_BASE + NR_EIM_IRQS)
-#define NR_GPIO_CTLR   (5 /*internal*/ + 1 /*external*/)
-#define NR_GPIO_IRQS   (NR_GPIO_CTLR * 32)
-
-#define NR_IRQS                (GPIO_IRQ_BASE + NR_GPIO_IRQS)
-
-#endif /* __ASM_AVR32_ARCH_IRQ_H */
diff --git a/arch/avr32/mach-at32ap/include/mach/pm.h b/arch/avr32/mach-at32ap/include/mach/pm.h
deleted file mode 100644 (file)
index f29ff2c..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * AVR32 AP Power Management.
- *
- * Copyright (C) 2008 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_ARCH_PM_H
-#define __ASM_AVR32_ARCH_PM_H
-
-/* Possible arguments to the "sleep" instruction */
-#define CPU_SLEEP_IDLE         0
-#define CPU_SLEEP_FROZEN       1
-#define CPU_SLEEP_STANDBY      2
-#define CPU_SLEEP_STOP         3
-#define CPU_SLEEP_STATIC       5
-
-#ifndef __ASSEMBLY__
-extern void cpu_enter_idle(void);
-extern void cpu_enter_standby(unsigned long sdramc_base);
-
-void intc_set_suspend_handler(unsigned long offset);
-#endif
-
-#endif /* __ASM_AVR32_ARCH_PM_H */
diff --git a/arch/avr32/mach-at32ap/include/mach/portmux.h b/arch/avr32/mach-at32ap/include/mach/portmux.h
deleted file mode 100644 (file)
index 4873024..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * AT32 portmux interface.
- *
- * Copyright (C) 2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_ARCH_PORTMUX_H__
-#define __ASM_ARCH_PORTMUX_H__
-
-/*
- * Set up pin multiplexing, called from board init only.
- *
- * The following flags determine the initial state of the pin.
- */
-#define AT32_GPIOF_PULLUP      0x00000001      /* (not-OUT) Enable pull-up */
-#define AT32_GPIOF_OUTPUT      0x00000002      /* (OUT) Enable output driver */
-#define AT32_GPIOF_HIGH                0x00000004      /* (OUT) Set output high */
-#define AT32_GPIOF_DEGLITCH    0x00000008      /* (IN) Filter glitches */
-#define AT32_GPIOF_MULTIDRV    0x00000010      /* Enable multidriver option */
-
-void at32_select_periph(unsigned int port, unsigned int pin,
-                       unsigned int periph, unsigned long flags);
-void at32_select_gpio(unsigned int pin, unsigned long flags);
-void at32_deselect_pin(unsigned int pin);
-void at32_reserve_pin(unsigned int port, u32 pin_mask);
-
-#endif /* __ASM_ARCH_PORTMUX_H__ */
diff --git a/arch/avr32/mach-at32ap/include/mach/smc.h b/arch/avr32/mach-at32ap/include/mach/smc.h
deleted file mode 100644 (file)
index c98eea4..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Static Memory Controller for AT32 chips
- *
- * Copyright (C) 2006 Atmel Corporation
- *
- * Inspired by the OMAP2 General-Purpose Memory Controller interface
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ARCH_AT32AP_SMC_H
-#define __ARCH_AT32AP_SMC_H
-
-/*
- * All timing parameters are in nanoseconds.
- */
-struct smc_timing {
-       /* Delay from address valid to assertion of given strobe */
-       int ncs_read_setup;
-       int nrd_setup;
-       int ncs_write_setup;
-       int nwe_setup;
-
-       /* Pulse length of given strobe */
-       int ncs_read_pulse;
-       int nrd_pulse;
-       int ncs_write_pulse;
-       int nwe_pulse;
-
-       /* Total cycle length of given operation */
-       int read_cycle;
-       int write_cycle;
-
-       /* Minimal recovery times, will extend cycle if needed */
-       int ncs_read_recover;
-       int nrd_recover;
-       int ncs_write_recover;
-       int nwe_recover;
-};
-
-/*
- * All timing parameters are in clock cycles.
- */
-struct smc_config {
-
-       /* Delay from address valid to assertion of given strobe */
-       u8              ncs_read_setup;
-       u8              nrd_setup;
-       u8              ncs_write_setup;
-       u8              nwe_setup;
-
-       /* Pulse length of given strobe */
-       u8              ncs_read_pulse;
-       u8              nrd_pulse;
-       u8              ncs_write_pulse;
-       u8              nwe_pulse;
-
-       /* Total cycle length of given operation */
-       u8              read_cycle;
-       u8              write_cycle;
-
-       /* Bus width in bytes */
-       u8              bus_width;
-
-       /*
-        * 0: Data is sampled on rising edge of NCS
-        * 1: Data is sampled on rising edge of NRD
-        */
-       unsigned int    nrd_controlled:1;
-
-       /*
-        * 0: Data is driven on falling edge of NCS
-        * 1: Data is driven on falling edge of NWR
-        */
-       unsigned int    nwe_controlled:1;
-
-       /*
-        * 0: NWAIT is disabled
-        * 1: Reserved
-        * 2: NWAIT is frozen mode
-        * 3: NWAIT in ready mode
-        */
-       unsigned int    nwait_mode:2;
-
-       /*
-        * 0: Byte select access type
-        * 1: Byte write access type
-        */
-       unsigned int    byte_write:1;
-
-       /*
-        * Number of clock cycles before data is released after
-        * the rising edge of the read controlling signal
-        *
-        * Total cycles from SMC is tdf_cycles + 1
-        */
-       unsigned int    tdf_cycles:4;
-
-       /*
-        * 0: TDF optimization disabled
-        * 1: TDF optimization enabled
-        */
-       unsigned int    tdf_mode:1;
-};
-
-extern void smc_set_timing(struct smc_config *config,
-                          const struct smc_timing *timing);
-
-extern int smc_set_configuration(int cs, const struct smc_config *config);
-extern struct smc_config *smc_get_configuration(int cs);
-
-#endif /* __ARCH_AT32AP_SMC_H */
diff --git a/arch/avr32/mach-at32ap/include/mach/sram.h b/arch/avr32/mach-at32ap/include/mach/sram.h
deleted file mode 100644 (file)
index 4838dae..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Simple SRAM allocator
- *
- * Copyright (C) 2008 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ASM_AVR32_ARCH_SRAM_H
-#define __ASM_AVR32_ARCH_SRAM_H
-
-#include <linux/genalloc.h>
-
-extern struct gen_pool *sram_pool;
-
-static inline unsigned long sram_alloc(size_t len)
-{
-       if (!sram_pool)
-               return 0UL;
-
-       return gen_pool_alloc(sram_pool, len);
-}
-
-static inline void sram_free(unsigned long addr, size_t len)
-{
-       return gen_pool_free(sram_pool, addr, len);
-}
-
-#endif /* __ASM_AVR32_ARCH_SRAM_H */
diff --git a/arch/avr32/mach-at32ap/intc.c b/arch/avr32/mach-at32ap/intc.c
deleted file mode 100644 (file)
index aaff83c..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright (C) 2006, 2008 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/clk.h>
-#include <linux/err.h>
-#include <linux/init.h>
-#include <linux/interrupt.h>
-#include <linux/irq.h>
-#include <linux/platform_device.h>
-#include <linux/syscore_ops.h>
-#include <linux/export.h>
-
-#include <asm/io.h>
-
-#include "intc.h"
-
-struct intc {
-       void __iomem            *regs;
-       struct irq_chip         chip;
-#ifdef CONFIG_PM
-       unsigned long           suspend_ipr;
-       unsigned long           saved_ipr[64];
-#endif
-};
-
-extern struct platform_device at32_intc0_device;
-
-/*
- * TODO: We may be able to implement mask/unmask by setting IxM flags
- * in the status register.
- */
-static void intc_mask_irq(struct irq_data *d)
-{
-
-}
-
-static void intc_unmask_irq(struct irq_data *d)
-{
-
-}
-
-static struct intc intc0 = {
-       .chip = {
-               .name           = "intc",
-               .irq_mask       = intc_mask_irq,
-               .irq_unmask     = intc_unmask_irq,
-       },
-};
-
-/*
- * All interrupts go via intc at some point.
- */
-asmlinkage void do_IRQ(int level, struct pt_regs *regs)
-{
-       struct pt_regs *old_regs;
-       unsigned int irq;
-       unsigned long status_reg;
-
-       local_irq_disable();
-
-       old_regs = set_irq_regs(regs);
-
-       irq_enter();
-
-       irq = intc_readl(&intc0, INTCAUSE0 - 4 * level);
-       generic_handle_irq(irq);
-
-       /*
-        * Clear all interrupt level masks so that we may handle
-        * interrupts during softirq processing.  If this is a nested
-        * interrupt, interrupts must stay globally disabled until we
-        * return.
-        */
-       status_reg = sysreg_read(SR);
-       status_reg &= ~(SYSREG_BIT(I0M) | SYSREG_BIT(I1M)
-                       | SYSREG_BIT(I2M) | SYSREG_BIT(I3M));
-       sysreg_write(SR, status_reg);
-
-       irq_exit();
-
-       set_irq_regs(old_regs);
-}
-
-void __init init_IRQ(void)
-{
-       extern void _evba(void);
-       extern void irq_level0(void);
-       struct resource *regs;
-       struct clk *pclk;
-       unsigned int i;
-       u32 offset, readback;
-
-       regs = platform_get_resource(&at32_intc0_device, IORESOURCE_MEM, 0);
-       if (!regs) {
-               printk(KERN_EMERG "intc: no mmio resource defined\n");
-               goto fail;
-       }
-       pclk = clk_get(&at32_intc0_device.dev, "pclk");
-       if (IS_ERR(pclk)) {
-               printk(KERN_EMERG "intc: no clock defined\n");
-               goto fail;
-       }
-
-       clk_enable(pclk);
-
-       intc0.regs = ioremap(regs->start, resource_size(regs));
-       if (!intc0.regs) {
-               printk(KERN_EMERG "intc: failed to map registers (0x%08lx)\n",
-                      (unsigned long)regs->start);
-               goto fail;
-       }
-
-       /*
-        * Initialize all interrupts to level 0 (lowest priority). The
-        * priority level may be changed by calling
-        * irq_set_priority().
-        *
-        */
-       offset = (unsigned long)&irq_level0 - (unsigned long)&_evba;
-       for (i = 0; i < NR_INTERNAL_IRQS; i++) {
-               intc_writel(&intc0, INTPR0 + 4 * i, offset);
-               readback = intc_readl(&intc0, INTPR0 + 4 * i);
-               if (readback == offset)
-                       irq_set_chip_and_handler(i, &intc0.chip,
-                                                handle_simple_irq);
-       }
-
-       /* Unmask all interrupt levels */
-       sysreg_write(SR, (sysreg_read(SR)
-                         & ~(SR_I3M | SR_I2M | SR_I1M | SR_I0M)));
-
-       return;
-
-fail:
-       panic("Interrupt controller initialization failed!\n");
-}
-
-#ifdef CONFIG_PM
-void intc_set_suspend_handler(unsigned long offset)
-{
-       intc0.suspend_ipr = offset;
-}
-
-static int intc_suspend(void)
-{
-       int i;
-
-       if (unlikely(!irqs_disabled())) {
-               pr_err("intc_suspend: called with interrupts enabled\n");
-               return -EINVAL;
-       }
-
-       if (unlikely(!intc0.suspend_ipr)) {
-               pr_err("intc_suspend: suspend_ipr not initialized\n");
-               return -EINVAL;
-       }
-
-       for (i = 0; i < 64; i++) {
-               intc0.saved_ipr[i] = intc_readl(&intc0, INTPR0 + 4 * i);
-               intc_writel(&intc0, INTPR0 + 4 * i, intc0.suspend_ipr);
-       }
-
-       return 0;
-}
-
-static void intc_resume(void)
-{
-       int i;
-
-       for (i = 0; i < 64; i++)
-               intc_writel(&intc0, INTPR0 + 4 * i, intc0.saved_ipr[i]);
-}
-#else
-#define intc_suspend   NULL
-#define intc_resume    NULL
-#endif
-
-static struct syscore_ops intc_syscore_ops = {
-       .suspend        = intc_suspend,
-       .resume         = intc_resume,
-};
-
-static int __init intc_init_syscore(void)
-{
-       register_syscore_ops(&intc_syscore_ops);
-
-       return 0;
-}
-device_initcall(intc_init_syscore);
-
-unsigned long intc_get_pending(unsigned int group)
-{
-       return intc_readl(&intc0, INTREQ0 + 4 * group);
-}
-EXPORT_SYMBOL_GPL(intc_get_pending);
diff --git a/arch/avr32/mach-at32ap/intc.h b/arch/avr32/mach-at32ap/intc.h
deleted file mode 100644 (file)
index 4d3664e..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
- * Automatically generated by gen-header.xsl
- */
-#ifndef __ASM_AVR32_PERIHP_INTC_H__
-#define __ASM_AVR32_PERIHP_INTC_H__
-
-#define INTC_NUM_INT_GRPS            33
-
-#define INTC_INTPR0                  0x0
-# define INTC_INTPR0_INTLEV_OFFSET   30
-# define INTC_INTPR0_INTLEV_SIZE     2
-# define INTC_INTPR0_OFFSET_OFFSET   0
-# define INTC_INTPR0_OFFSET_SIZE     24
-#define INTC_INTREQ0                 0x100
-# define INTC_INTREQ0_IREQUEST0_OFFSET 0
-# define INTC_INTREQ0_IREQUEST0_SIZE 1
-# define INTC_INTREQ0_IREQUEST1_OFFSET 1
-# define INTC_INTREQ0_IREQUEST1_SIZE 1
-#define INTC_INTPR1                  0x4
-# define INTC_INTPR1_INTLEV_OFFSET   30
-# define INTC_INTPR1_INTLEV_SIZE     2
-# define INTC_INTPR1_OFFSET_OFFSET   0
-# define INTC_INTPR1_OFFSET_SIZE     24
-#define INTC_INTREQ1                 0x104
-# define INTC_INTREQ1_IREQUEST32_OFFSET 0
-# define INTC_INTREQ1_IREQUEST32_SIZE 1
-# define INTC_INTREQ1_IREQUEST33_OFFSET 1
-# define INTC_INTREQ1_IREQUEST33_SIZE 1
-# define INTC_INTREQ1_IREQUEST34_OFFSET 2
-# define INTC_INTREQ1_IREQUEST34_SIZE 1
-# define INTC_INTREQ1_IREQUEST35_OFFSET 3
-# define INTC_INTREQ1_IREQUEST35_SIZE 1
-# define INTC_INTREQ1_IREQUEST36_OFFSET 4
-# define INTC_INTREQ1_IREQUEST36_SIZE 1
-# define INTC_INTREQ1_IREQUEST37_OFFSET 5
-# define INTC_INTREQ1_IREQUEST37_SIZE 1
-#define INTC_INTPR2                  0x8
-# define INTC_INTPR2_INTLEV_OFFSET   30
-# define INTC_INTPR2_INTLEV_SIZE     2
-# define INTC_INTPR2_OFFSET_OFFSET   0
-# define INTC_INTPR2_OFFSET_SIZE     24
-#define INTC_INTREQ2                 0x108
-# define INTC_INTREQ2_IREQUEST64_OFFSET 0
-# define INTC_INTREQ2_IREQUEST64_SIZE 1
-# define INTC_INTREQ2_IREQUEST65_OFFSET 1
-# define INTC_INTREQ2_IREQUEST65_SIZE 1
-# define INTC_INTREQ2_IREQUEST66_OFFSET 2
-# define INTC_INTREQ2_IREQUEST66_SIZE 1
-# define INTC_INTREQ2_IREQUEST67_OFFSET 3
-# define INTC_INTREQ2_IREQUEST67_SIZE 1
-# define INTC_INTREQ2_IREQUEST68_OFFSET 4
-# define INTC_INTREQ2_IREQUEST68_SIZE 1
-#define INTC_INTPR3                  0xc
-# define INTC_INTPR3_INTLEV_OFFSET   30
-# define INTC_INTPR3_INTLEV_SIZE     2
-# define INTC_INTPR3_OFFSET_OFFSET   0
-# define INTC_INTPR3_OFFSET_SIZE     24
-#define INTC_INTREQ3                 0x10c
-# define INTC_INTREQ3_IREQUEST96_OFFSET 0
-# define INTC_INTREQ3_IREQUEST96_SIZE 1
-#define INTC_INTPR4                  0x10
-# define INTC_INTPR4_INTLEV_OFFSET   30
-# define INTC_INTPR4_INTLEV_SIZE     2
-# define INTC_INTPR4_OFFSET_OFFSET   0
-# define INTC_INTPR4_OFFSET_SIZE     24
-#define INTC_INTREQ4                 0x110
-# define INTC_INTREQ4_IREQUEST128_OFFSET 0
-# define INTC_INTREQ4_IREQUEST128_SIZE 1
-#define INTC_INTPR5                  0x14
-# define INTC_INTPR5_INTLEV_OFFSET   30
-# define INTC_INTPR5_INTLEV_SIZE     2
-# define INTC_INTPR5_OFFSET_OFFSET   0
-# define INTC_INTPR5_OFFSET_SIZE     24
-#define INTC_INTREQ5                 0x114
-# define INTC_INTREQ5_IREQUEST160_OFFSET 0
-# define INTC_INTREQ5_IREQUEST160_SIZE 1
-#define INTC_INTPR6                  0x18
-# define INTC_INTPR6_INTLEV_OFFSET   30
-# define INTC_INTPR6_INTLEV_SIZE     2
-# define INTC_INTPR6_OFFSET_OFFSET   0
-# define INTC_INTPR6_OFFSET_SIZE     24
-#define INTC_INTREQ6                 0x118
-# define INTC_INTREQ6_IREQUEST192_OFFSET 0
-# define INTC_INTREQ6_IREQUEST192_SIZE 1
-#define INTC_INTPR7                  0x1c
-# define INTC_INTPR7_INTLEV_OFFSET   30
-# define INTC_INTPR7_INTLEV_SIZE     2
-# define INTC_INTPR7_OFFSET_OFFSET   0
-# define INTC_INTPR7_OFFSET_SIZE     24
-#define INTC_INTREQ7                 0x11c
-# define INTC_INTREQ7_IREQUEST224_OFFSET 0
-# define INTC_INTREQ7_IREQUEST224_SIZE 1
-#define INTC_INTPR8                  0x20
-# define INTC_INTPR8_INTLEV_OFFSET   30
-# define INTC_INTPR8_INTLEV_SIZE     2
-# define INTC_INTPR8_OFFSET_OFFSET   0
-# define INTC_INTPR8_OFFSET_SIZE     24
-#define INTC_INTREQ8                 0x120
-# define INTC_INTREQ8_IREQUEST256_OFFSET 0
-# define INTC_INTREQ8_IREQUEST256_SIZE 1
-#define INTC_INTPR9                  0x24
-# define INTC_INTPR9_INTLEV_OFFSET   30
-# define INTC_INTPR9_INTLEV_SIZE     2
-# define INTC_INTPR9_OFFSET_OFFSET   0
-# define INTC_INTPR9_OFFSET_SIZE     24
-#define INTC_INTREQ9                 0x124
-# define INTC_INTREQ9_IREQUEST288_OFFSET 0
-# define INTC_INTREQ9_IREQUEST288_SIZE 1
-#define INTC_INTPR10                 0x28
-# define INTC_INTPR10_INTLEV_OFFSET  30
-# define INTC_INTPR10_INTLEV_SIZE    2
-# define INTC_INTPR10_OFFSET_OFFSET  0
-# define INTC_INTPR10_OFFSET_SIZE    24
-#define INTC_INTREQ10                0x128
-# define INTC_INTREQ10_IREQUEST320_OFFSET 0
-# define INTC_INTREQ10_IREQUEST320_SIZE 1
-#define INTC_INTPR11                 0x2c
-# define INTC_INTPR11_INTLEV_OFFSET  30
-# define INTC_INTPR11_INTLEV_SIZE    2
-# define INTC_INTPR11_OFFSET_OFFSET  0
-# define INTC_INTPR11_OFFSET_SIZE    24
-#define INTC_INTREQ11                0x12c
-# define INTC_INTREQ11_IREQUEST352_OFFSET 0
-# define INTC_INTREQ11_IREQUEST352_SIZE 1
-#define INTC_INTPR12                 0x30
-# define INTC_INTPR12_INTLEV_OFFSET  30
-# define INTC_INTPR12_INTLEV_SIZE    2
-# define INTC_INTPR12_OFFSET_OFFSET  0
-# define INTC_INTPR12_OFFSET_SIZE    24
-#define INTC_INTREQ12                0x130
-# define INTC_INTREQ12_IREQUEST384_OFFSET 0
-# define INTC_INTREQ12_IREQUEST384_SIZE 1
-#define INTC_INTPR13                 0x34
-# define INTC_INTPR13_INTLEV_OFFSET  30
-# define INTC_INTPR13_INTLEV_SIZE    2
-# define INTC_INTPR13_OFFSET_OFFSET  0
-# define INTC_INTPR13_OFFSET_SIZE    24
-#define INTC_INTREQ13                0x134
-# define INTC_INTREQ13_IREQUEST416_OFFSET 0
-# define INTC_INTREQ13_IREQUEST416_SIZE 1
-#define INTC_INTPR14                 0x38
-# define INTC_INTPR14_INTLEV_OFFSET  30
-# define INTC_INTPR14_INTLEV_SIZE    2
-# define INTC_INTPR14_OFFSET_OFFSET  0
-# define INTC_INTPR14_OFFSET_SIZE    24
-#define INTC_INTREQ14                0x138
-# define INTC_INTREQ14_IREQUEST448_OFFSET 0
-# define INTC_INTREQ14_IREQUEST448_SIZE 1
-#define INTC_INTPR15                 0x3c
-# define INTC_INTPR15_INTLEV_OFFSET  30
-# define INTC_INTPR15_INTLEV_SIZE    2
-# define INTC_INTPR15_OFFSET_OFFSET  0
-# define INTC_INTPR15_OFFSET_SIZE    24
-#define INTC_INTREQ15                0x13c
-# define INTC_INTREQ15_IREQUEST480_OFFSET 0
-# define INTC_INTREQ15_IREQUEST480_SIZE 1
-#define INTC_INTPR16                 0x40
-# define INTC_INTPR16_INTLEV_OFFSET  30
-# define INTC_INTPR16_INTLEV_SIZE    2
-# define INTC_INTPR16_OFFSET_OFFSET  0
-# define INTC_INTPR16_OFFSET_SIZE    24
-#define INTC_INTREQ16                0x140
-# define INTC_INTREQ16_IREQUEST512_OFFSET 0
-# define INTC_INTREQ16_IREQUEST512_SIZE 1
-#define INTC_INTPR17                 0x44
-# define INTC_INTPR17_INTLEV_OFFSET  30
-# define INTC_INTPR17_INTLEV_SIZE    2
-# define INTC_INTPR17_OFFSET_OFFSET  0
-# define INTC_INTPR17_OFFSET_SIZE    24
-#define INTC_INTREQ17                0x144
-# define INTC_INTREQ17_IREQUEST544_OFFSET 0
-# define INTC_INTREQ17_IREQUEST544_SIZE 1
-#define INTC_INTPR18                 0x48
-# define INTC_INTPR18_INTLEV_OFFSET  30
-# define INTC_INTPR18_INTLEV_SIZE    2
-# define INTC_INTPR18_OFFSET_OFFSET  0
-# define INTC_INTPR18_OFFSET_SIZE    24
-#define INTC_INTREQ18                0x148
-# define INTC_INTREQ18_IREQUEST576_OFFSET 0
-# define INTC_INTREQ18_IREQUEST576_SIZE 1
-#define INTC_INTPR19                 0x4c
-# define INTC_INTPR19_INTLEV_OFFSET  30
-# define INTC_INTPR19_INTLEV_SIZE    2
-# define INTC_INTPR19_OFFSET_OFFSET  0
-# define INTC_INTPR19_OFFSET_SIZE    24
-#define INTC_INTREQ19                0x14c
-# define INTC_INTREQ19_IREQUEST608_OFFSET 0
-# define INTC_INTREQ19_IREQUEST608_SIZE 1
-# define INTC_INTREQ19_IREQUEST609_OFFSET 1
-# define INTC_INTREQ19_IREQUEST609_SIZE 1
-# define INTC_INTREQ19_IREQUEST610_OFFSET 2
-# define INTC_INTREQ19_IREQUEST610_SIZE 1
-# define INTC_INTREQ19_IREQUEST611_OFFSET 3
-# define INTC_INTREQ19_IREQUEST611_SIZE 1
-#define INTC_INTPR20                 0x50
-# define INTC_INTPR20_INTLEV_OFFSET  30
-# define INTC_INTPR20_INTLEV_SIZE    2
-# define INTC_INTPR20_OFFSET_OFFSET  0
-# define INTC_INTPR20_OFFSET_SIZE    24
-#define INTC_INTREQ20                0x150
-# define INTC_INTREQ20_IREQUEST640_OFFSET 0
-# define INTC_INTREQ20_IREQUEST640_SIZE 1
-#define INTC_INTPR21                 0x54
-# define INTC_INTPR21_INTLEV_OFFSET  30
-# define INTC_INTPR21_INTLEV_SIZE    2
-# define INTC_INTPR21_OFFSET_OFFSET  0
-# define INTC_INTPR21_OFFSET_SIZE    24
-#define INTC_INTREQ21                0x154
-# define INTC_INTREQ21_IREQUEST672_OFFSET 0
-# define INTC_INTREQ21_IREQUEST672_SIZE 1
-#define INTC_INTPR22                 0x58
-# define INTC_INTPR22_INTLEV_OFFSET  30
-# define INTC_INTPR22_INTLEV_SIZE    2
-# define INTC_INTPR22_OFFSET_OFFSET  0
-# define INTC_INTPR22_OFFSET_SIZE    24
-#define INTC_INTREQ22                0x158
-# define INTC_INTREQ22_IREQUEST704_OFFSET 0
-# define INTC_INTREQ22_IREQUEST704_SIZE 1
-# define INTC_INTREQ22_IREQUEST705_OFFSET 1
-# define INTC_INTREQ22_IREQUEST705_SIZE 1
-# define INTC_INTREQ22_IREQUEST706_OFFSET 2
-# define INTC_INTREQ22_IREQUEST706_SIZE 1
-#define INTC_INTPR23                 0x5c
-# define INTC_INTPR23_INTLEV_OFFSET  30
-# define INTC_INTPR23_INTLEV_SIZE    2
-# define INTC_INTPR23_OFFSET_OFFSET  0
-# define INTC_INTPR23_OFFSET_SIZE    24
-#define INTC_INTREQ23                0x15c
-# define INTC_INTREQ23_IREQUEST736_OFFSET 0
-# define INTC_INTREQ23_IREQUEST736_SIZE 1
-# define INTC_INTREQ23_IREQUEST737_OFFSET 1
-# define INTC_INTREQ23_IREQUEST737_SIZE 1
-# define INTC_INTREQ23_IREQUEST738_OFFSET 2
-# define INTC_INTREQ23_IREQUEST738_SIZE 1
-#define INTC_INTPR24                 0x60
-# define INTC_INTPR24_INTLEV_OFFSET  30
-# define INTC_INTPR24_INTLEV_SIZE    2
-# define INTC_INTPR24_OFFSET_OFFSET  0
-# define INTC_INTPR24_OFFSET_SIZE    24
-#define INTC_INTREQ24                0x160
-# define INTC_INTREQ24_IREQUEST768_OFFSET 0
-# define INTC_INTREQ24_IREQUEST768_SIZE 1
-#define INTC_INTPR25                 0x64
-# define INTC_INTPR25_INTLEV_OFFSET  30
-# define INTC_INTPR25_INTLEV_SIZE    2
-# define INTC_INTPR25_OFFSET_OFFSET  0
-# define INTC_INTPR25_OFFSET_SIZE    24
-#define INTC_INTREQ25                0x164
-# define INTC_INTREQ25_IREQUEST800_OFFSET 0
-# define INTC_INTREQ25_IREQUEST800_SIZE 1
-#define INTC_INTPR26                 0x68
-# define INTC_INTPR26_INTLEV_OFFSET  30
-# define INTC_INTPR26_INTLEV_SIZE    2
-# define INTC_INTPR26_OFFSET_OFFSET  0
-# define INTC_INTPR26_OFFSET_SIZE    24
-#define INTC_INTREQ26                0x168
-# define INTC_INTREQ26_IREQUEST832_OFFSET 0
-# define INTC_INTREQ26_IREQUEST832_SIZE 1
-#define INTC_INTPR27                 0x6c
-# define INTC_INTPR27_INTLEV_OFFSET  30
-# define INTC_INTPR27_INTLEV_SIZE    2
-# define INTC_INTPR27_OFFSET_OFFSET  0
-# define INTC_INTPR27_OFFSET_SIZE    24
-#define INTC_INTREQ27                0x16c
-# define INTC_INTREQ27_IREQUEST864_OFFSET 0
-# define INTC_INTREQ27_IREQUEST864_SIZE 1
-#define INTC_INTPR28                 0x70
-# define INTC_INTPR28_INTLEV_OFFSET  30
-# define INTC_INTPR28_INTLEV_SIZE    2
-# define INTC_INTPR28_OFFSET_OFFSET  0
-# define INTC_INTPR28_OFFSET_SIZE    24
-#define INTC_INTREQ28                0x170
-# define INTC_INTREQ28_IREQUEST896_OFFSET 0
-# define INTC_INTREQ28_IREQUEST896_SIZE 1
-#define INTC_INTPR29                 0x74
-# define INTC_INTPR29_INTLEV_OFFSET  30
-# define INTC_INTPR29_INTLEV_SIZE    2
-# define INTC_INTPR29_OFFSET_OFFSET  0
-# define INTC_INTPR29_OFFSET_SIZE    24
-#define INTC_INTREQ29                0x174
-# define INTC_INTREQ29_IREQUEST928_OFFSET 0
-# define INTC_INTREQ29_IREQUEST928_SIZE 1
-#define INTC_INTPR30                 0x78
-# define INTC_INTPR30_INTLEV_OFFSET  30
-# define INTC_INTPR30_INTLEV_SIZE    2
-# define INTC_INTPR30_OFFSET_OFFSET  0
-# define INTC_INTPR30_OFFSET_SIZE    24
-#define INTC_INTREQ30                0x178
-# define INTC_INTREQ30_IREQUEST960_OFFSET 0
-# define INTC_INTREQ30_IREQUEST960_SIZE 1
-#define INTC_INTPR31                 0x7c
-# define INTC_INTPR31_INTLEV_OFFSET  30
-# define INTC_INTPR31_INTLEV_SIZE    2
-# define INTC_INTPR31_OFFSET_OFFSET  0
-# define INTC_INTPR31_OFFSET_SIZE    24
-#define INTC_INTREQ31                0x17c
-# define INTC_INTREQ31_IREQUEST992_OFFSET 0
-# define INTC_INTREQ31_IREQUEST992_SIZE 1
-#define INTC_INTPR32                 0x80
-# define INTC_INTPR32_INTLEV_OFFSET  30
-# define INTC_INTPR32_INTLEV_SIZE    2
-# define INTC_INTPR32_OFFSET_OFFSET  0
-# define INTC_INTPR32_OFFSET_SIZE    24
-#define INTC_INTREQ32                0x180
-# define INTC_INTREQ32_IREQUEST1024_OFFSET 0
-# define INTC_INTREQ32_IREQUEST1024_SIZE 1
-#define INTC_INTCAUSE0               0x20c
-# define INTC_INTCAUSE0_CAUSEGRP_OFFSET 0
-# define INTC_INTCAUSE0_CAUSEGRP_SIZE 6
-#define INTC_INTCAUSE1               0x208
-# define INTC_INTCAUSE1_CAUSEGRP_OFFSET 0
-# define INTC_INTCAUSE1_CAUSEGRP_SIZE 6
-#define INTC_INTCAUSE2               0x204
-# define INTC_INTCAUSE2_CAUSEGRP_OFFSET 0
-# define INTC_INTCAUSE2_CAUSEGRP_SIZE 6
-#define INTC_INTCAUSE3               0x200
-# define INTC_INTCAUSE3_CAUSEGRP_OFFSET 0
-# define INTC_INTCAUSE3_CAUSEGRP_SIZE 6
-
-#define INTC_BIT(name)               (1 << INTC_##name##_OFFSET)
-#define INTC_MKBF(name, value)       (((value) & ((1 << INTC_##name##_SIZE) - 1)) << INTC_##name##_OFFSET)
-#define INTC_GETBF(name, value)      (((value) >> INTC_##name##_OFFSET) & ((1 << INTC_##name##_SIZE) - 1))
-
-#define intc_readl(port,reg)                                   \
-       __raw_readl((port)->regs + INTC_##reg)
-#define intc_writel(port,reg,value)                            \
-       __raw_writel((value), (port)->regs + INTC_##reg)
-
-#endif /* __ASM_AVR32_PERIHP_INTC_H__ */
diff --git a/arch/avr32/mach-at32ap/pdc.c b/arch/avr32/mach-at32ap/pdc.c
deleted file mode 100644 (file)
index 61ab15a..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/clk.h>
-#include <linux/err.h>
-#include <linux/init.h>
-#include <linux/platform_device.h>
-
-static int __init pdc_probe(struct platform_device *pdev)
-{
-       struct clk *pclk, *hclk;
-
-       pclk = clk_get(&pdev->dev, "pclk");
-       if (IS_ERR(pclk)) {
-               dev_err(&pdev->dev, "no pclk defined\n");
-               return PTR_ERR(pclk);
-       }
-       hclk = clk_get(&pdev->dev, "hclk");
-       if (IS_ERR(hclk)) {
-               dev_err(&pdev->dev, "no hclk defined\n");
-               clk_put(pclk);
-               return PTR_ERR(hclk);
-       }
-
-       clk_enable(pclk);
-       clk_enable(hclk);
-
-       dev_info(&pdev->dev, "Atmel Peripheral DMA Controller enabled\n");
-       return 0;
-}
-
-static struct platform_driver pdc_driver = {
-       .driver         = {
-               .name   = "pdc",
-       },
-};
-
-static int __init pdc_init(void)
-{
-       return platform_driver_probe(&pdc_driver, pdc_probe);
-}
-arch_initcall(pdc_init);
diff --git a/arch/avr32/mach-at32ap/pio.c b/arch/avr32/mach-at32ap/pio.c
deleted file mode 100644 (file)
index 7fae6ec..0000000
+++ /dev/null
@@ -1,470 +0,0 @@
-/*
- * Atmel PIO2 Port Multiplexer support
- *
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/clk.h>
-#include <linux/debugfs.h>
-#include <linux/export.h>
-#include <linux/fs.h>
-#include <linux/platform_device.h>
-#include <linux/irq.h>
-#include <linux/gpio.h>
-
-#include <asm/io.h>
-
-#include <mach/portmux.h>
-
-#include "pio.h"
-
-#define MAX_NR_PIO_DEVICES             8
-
-struct pio_device {
-       struct gpio_chip chip;
-       void __iomem *regs;
-       const struct platform_device *pdev;
-       struct clk *clk;
-       u32 pinmux_mask;
-       char name[8];
-};
-
-static struct pio_device pio_dev[MAX_NR_PIO_DEVICES];
-
-static struct pio_device *gpio_to_pio(unsigned int gpio)
-{
-       struct pio_device *pio;
-       unsigned int index;
-
-       index = gpio >> 5;
-       if (index >= MAX_NR_PIO_DEVICES)
-               return NULL;
-       pio = &pio_dev[index];
-       if (!pio->regs)
-               return NULL;
-
-       return pio;
-}
-
-/* Pin multiplexing API */
-static DEFINE_SPINLOCK(pio_lock);
-
-void __init at32_select_periph(unsigned int port, u32 pin_mask,
-                              unsigned int periph, unsigned long flags)
-{
-       struct pio_device *pio;
-
-       /* assign and verify pio */
-       pio = gpio_to_pio(port);
-       if (unlikely(!pio)) {
-               printk(KERN_WARNING "pio: invalid port %u\n", port);
-               goto fail;
-       }
-
-       /* Test if any of the requested pins is already muxed */
-       spin_lock(&pio_lock);
-       if (unlikely(pio->pinmux_mask & pin_mask)) {
-               printk(KERN_WARNING "%s: pin(s) busy (requested 0x%x, busy 0x%x)\n",
-                      pio->name, pin_mask, pio->pinmux_mask & pin_mask);
-               spin_unlock(&pio_lock);
-               goto fail;
-       }
-
-       pio->pinmux_mask |= pin_mask;
-
-       /* enable pull ups */
-       pio_writel(pio, PUER, pin_mask);
-
-       /* select either peripheral A or B */
-       if (periph)
-               pio_writel(pio, BSR, pin_mask);
-       else
-               pio_writel(pio, ASR, pin_mask);
-
-       /* enable peripheral control */
-       pio_writel(pio, PDR, pin_mask);
-
-       /* Disable pull ups if not requested. */
-       if (!(flags & AT32_GPIOF_PULLUP))
-               pio_writel(pio, PUDR, pin_mask);
-
-       spin_unlock(&pio_lock);
-
-       return;
-
-fail:
-       dump_stack();
-}
-
-void __init at32_select_gpio(unsigned int pin, unsigned long flags)
-{
-       struct pio_device *pio;
-       unsigned int pin_index = pin & 0x1f;
-       u32 mask = 1 << pin_index;
-
-       pio = gpio_to_pio(pin);
-       if (unlikely(!pio)) {
-               printk("pio: invalid pin %u\n", pin);
-               goto fail;
-       }
-
-       if (unlikely(test_and_set_bit(pin_index, &pio->pinmux_mask))) {
-               printk("%s: pin %u is busy\n", pio->name, pin_index);
-               goto fail;
-       }
-
-       if (flags & AT32_GPIOF_OUTPUT) {
-               if (flags & AT32_GPIOF_HIGH)
-                       pio_writel(pio, SODR, mask);
-               else
-                       pio_writel(pio, CODR, mask);
-               if (flags & AT32_GPIOF_MULTIDRV)
-                       pio_writel(pio, MDER, mask);
-               else
-                       pio_writel(pio, MDDR, mask);
-               pio_writel(pio, PUDR, mask);
-               pio_writel(pio, OER, mask);
-       } else {
-               if (flags & AT32_GPIOF_PULLUP)
-                       pio_writel(pio, PUER, mask);
-               else
-                       pio_writel(pio, PUDR, mask);
-               if (flags & AT32_GPIOF_DEGLITCH)
-                       pio_writel(pio, IFER, mask);
-               else
-                       pio_writel(pio, IFDR, mask);
-               pio_writel(pio, ODR, mask);
-       }
-
-       pio_writel(pio, PER, mask);
-
-       return;
-
-fail:
-       dump_stack();
-}
-
-/*
- * Undo a previous pin reservation. Will not affect the hardware
- * configuration.
- */
-void at32_deselect_pin(unsigned int pin)
-{
-       struct pio_device *pio;
-       unsigned int pin_index = pin & 0x1f;
-
-       pio = gpio_to_pio(pin);
-       if (unlikely(!pio)) {
-               printk("pio: invalid pin %u\n", pin);
-               dump_stack();
-               return;
-       }
-
-       clear_bit(pin_index, &pio->pinmux_mask);
-}
-
-/* Reserve a pin, preventing anyone else from changing its configuration. */
-void __init at32_reserve_pin(unsigned int port, u32 pin_mask)
-{
-       struct pio_device *pio;
-
-       /* assign and verify pio */
-       pio = gpio_to_pio(port);
-       if (unlikely(!pio)) {
-               printk(KERN_WARNING "pio: invalid port %u\n", port);
-               goto fail;
-       }
-
-       /* Test if any of the requested pins is already muxed */
-       spin_lock(&pio_lock);
-       if (unlikely(pio->pinmux_mask & pin_mask)) {
-               printk(KERN_WARNING "%s: pin(s) busy (req. 0x%x, busy 0x%x)\n",
-                      pio->name, pin_mask, pio->pinmux_mask & pin_mask);
-               spin_unlock(&pio_lock);
-               goto fail;
-       }
-
-       /* Reserve pins */
-       pio->pinmux_mask |= pin_mask;
-       spin_unlock(&pio_lock);
-       return;
-
-fail:
-       dump_stack();
-}
-
-/*--------------------------------------------------------------------------*/
-
-/* GPIO API */
-
-static int direction_input(struct gpio_chip *chip, unsigned offset)
-{
-       struct pio_device *pio = gpiochip_get_data(chip);
-       u32 mask = 1 << offset;
-
-       if (!(pio_readl(pio, PSR) & mask))
-               return -EINVAL;
-
-       pio_writel(pio, ODR, mask);
-       return 0;
-}
-
-static int gpio_get(struct gpio_chip *chip, unsigned offset)
-{
-       struct pio_device *pio = gpiochip_get_data(chip);
-
-       return (pio_readl(pio, PDSR) >> offset) & 1;
-}
-
-static void gpio_set(struct gpio_chip *chip, unsigned offset, int value);
-
-static int direction_output(struct gpio_chip *chip, unsigned offset, int value)
-{
-       struct pio_device *pio = gpiochip_get_data(chip);
-       u32 mask = 1 << offset;
-
-       if (!(pio_readl(pio, PSR) & mask))
-               return -EINVAL;
-
-       gpio_set(chip, offset, value);
-       pio_writel(pio, OER, mask);
-       return 0;
-}
-
-static void gpio_set(struct gpio_chip *chip, unsigned offset, int value)
-{
-       struct pio_device *pio = gpiochip_get_data(chip);
-       u32 mask = 1 << offset;
-
-       if (value)
-               pio_writel(pio, SODR, mask);
-       else
-               pio_writel(pio, CODR, mask);
-}
-
-/*--------------------------------------------------------------------------*/
-
-/* GPIO IRQ support */
-
-static void gpio_irq_mask(struct irq_data *d)
-{
-       unsigned                gpio = irq_to_gpio(d->irq);
-       struct pio_device       *pio = &pio_dev[gpio >> 5];
-
-       pio_writel(pio, IDR, 1 << (gpio & 0x1f));
-}
-
-static void gpio_irq_unmask(struct irq_data *d)
-{
-       unsigned                gpio = irq_to_gpio(d->irq);
-       struct pio_device       *pio = &pio_dev[gpio >> 5];
-
-       pio_writel(pio, IER, 1 << (gpio & 0x1f));
-}
-
-static int gpio_irq_type(struct irq_data *d, unsigned type)
-{
-       if (type != IRQ_TYPE_EDGE_BOTH && type != IRQ_TYPE_NONE)
-               return -EINVAL;
-
-       return 0;
-}
-
-static struct irq_chip gpio_irqchip = {
-       .name           = "gpio",
-       .irq_mask       = gpio_irq_mask,
-       .irq_unmask     = gpio_irq_unmask,
-       .irq_set_type   = gpio_irq_type,
-};
-
-static void gpio_irq_handler(struct irq_desc *desc)
-{
-       struct pio_device       *pio = irq_desc_get_chip_data(desc);
-       unsigned                gpio_irq;
-
-       gpio_irq = (unsigned) irq_desc_get_handler_data(desc);
-       for (;;) {
-               u32             isr;
-
-               /* ack pending GPIO interrupts */
-               isr = pio_readl(pio, ISR) & pio_readl(pio, IMR);
-               if (!isr)
-                       break;
-               do {
-                       int i;
-
-                       i = ffs(isr) - 1;
-                       isr &= ~(1 << i);
-
-                       i += gpio_irq;
-                       generic_handle_irq(i);
-               } while (isr);
-       }
-}
-
-static void __init
-gpio_irq_setup(struct pio_device *pio, int irq, int gpio_irq)
-{
-       unsigned        i;
-
-       irq_set_chip_data(irq, pio);
-
-       for (i = 0; i < 32; i++, gpio_irq++) {
-               irq_set_chip_data(gpio_irq, pio);
-               irq_set_chip_and_handler(gpio_irq, &gpio_irqchip,
-                                        handle_simple_irq);
-       }
-
-       irq_set_chained_handler_and_data(irq, gpio_irq_handler,
-                                        (void *)gpio_irq);
-}
-
-/*--------------------------------------------------------------------------*/
-
-#ifdef CONFIG_DEBUG_FS
-
-#include <linux/seq_file.h>
-
-/*
- * This shows more info than the generic gpio dump code:
- * pullups, deglitching, open drain drive.
- */
-static void pio_bank_show(struct seq_file *s, struct gpio_chip *chip)
-{
-       struct pio_device *pio = gpiochip_get_data(chip);
-       u32                     psr, osr, imr, pdsr, pusr, ifsr, mdsr;
-       unsigned                i;
-       u32                     mask;
-       char                    bank;
-
-       psr = pio_readl(pio, PSR);
-       osr = pio_readl(pio, OSR);
-       imr = pio_readl(pio, IMR);
-       pdsr = pio_readl(pio, PDSR);
-       pusr = pio_readl(pio, PUSR);
-       ifsr = pio_readl(pio, IFSR);
-       mdsr = pio_readl(pio, MDSR);
-
-       bank = 'A' + pio->pdev->id;
-
-       for (i = 0, mask = 1; i < 32; i++, mask <<= 1) {
-               const char *label;
-
-               label = gpiochip_is_requested(chip, i);
-               if (!label && (imr & mask))
-                       label = "[irq]";
-               if (!label)
-                       continue;
-
-               seq_printf(s, " gpio-%-3d P%c%-2d (%-12s) %s %s %s",
-                       chip->base + i, bank, i,
-                       label,
-                       (osr & mask) ? "out" : "in ",
-                       (mask & pdsr) ? "hi" : "lo",
-                       (mask & pusr) ? "  " : "up");
-               if (ifsr & mask)
-                       seq_puts(s, " deglitch");
-               if ((osr & mdsr) & mask)
-                       seq_puts(s, " open-drain");
-               if (imr & mask)
-                       seq_printf(s, " irq-%d edge-both",
-                               gpio_to_irq(chip->base + i));
-               seq_putc(s, '\n');
-       }
-}
-
-#else
-#define pio_bank_show  NULL
-#endif
-
-
-/*--------------------------------------------------------------------------*/
-
-static int __init pio_probe(struct platform_device *pdev)
-{
-       struct pio_device *pio = NULL;
-       int irq = platform_get_irq(pdev, 0);
-       int gpio_irq_base = GPIO_IRQ_BASE + pdev->id * 32;
-
-       BUG_ON(pdev->id >= MAX_NR_PIO_DEVICES);
-       pio = &pio_dev[pdev->id];
-       BUG_ON(!pio->regs);
-
-       pio->chip.label = pio->name;
-       pio->chip.base = pdev->id * 32;
-       pio->chip.ngpio = 32;
-       pio->chip.parent = &pdev->dev;
-       pio->chip.owner = THIS_MODULE;
-
-       pio->chip.direction_input = direction_input;
-       pio->chip.get = gpio_get;
-       pio->chip.direction_output = direction_output;
-       pio->chip.set = gpio_set;
-       pio->chip.dbg_show = pio_bank_show;
-
-       gpiochip_add_data(&pio->chip, pio);
-
-       gpio_irq_setup(pio, irq, gpio_irq_base);
-
-       platform_set_drvdata(pdev, pio);
-
-       printk(KERN_DEBUG "%s: base 0x%p, irq %d chains %d..%d\n",
-              pio->name, pio->regs, irq, gpio_irq_base, gpio_irq_base + 31);
-
-       return 0;
-}
-
-static struct platform_driver pio_driver = {
-       .driver         = {
-               .name           = "pio",
-       },
-};
-
-static int __init pio_init(void)
-{
-       return platform_driver_probe(&pio_driver, pio_probe);
-}
-postcore_initcall(pio_init);
-
-void __init at32_init_pio(struct platform_device *pdev)
-{
-       struct resource *regs;
-       struct pio_device *pio;
-
-       if (pdev->id >= MAX_NR_PIO_DEVICES) {
-               dev_err(&pdev->dev, "only %d PIO devices supported\n",
-                       MAX_NR_PIO_DEVICES);
-               return;
-       }
-
-       pio = &pio_dev[pdev->id];
-       snprintf(pio->name, sizeof(pio->name), "pio%d", pdev->id);
-
-       regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (!regs) {
-               dev_err(&pdev->dev, "no mmio resource defined\n");
-               return;
-       }
-
-       pio->clk = clk_get(&pdev->dev, "mck");
-       if (IS_ERR(pio->clk))
-               /*
-                * This is a fatal error, but if we continue we might
-                * be so lucky that we manage to initialize the
-                * console and display this message...
-                */
-               dev_err(&pdev->dev, "no mck clock defined\n");
-       else
-               clk_enable(pio->clk);
-
-       pio->pdev = pdev;
-       pio->regs = ioremap(regs->start, resource_size(regs));
-
-       /* start with irqs disabled and acked */
-       pio_writel(pio, IDR, ~0UL);
-       (void) pio_readl(pio, ISR);
-}
diff --git a/arch/avr32/mach-at32ap/pio.h b/arch/avr32/mach-at32ap/pio.h
deleted file mode 100644 (file)
index 9484dfc..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Atmel PIO2 Port Multiplexer support
- *
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __ARCH_AVR32_AT32AP_PIO_H__
-#define __ARCH_AVR32_AT32AP_PIO_H__
-
-/* PIO register offsets */
-#define PIO_PER                                0x0000
-#define PIO_PDR                                0x0004
-#define PIO_PSR                                0x0008
-#define PIO_OER                                0x0010
-#define PIO_ODR                                0x0014
-#define PIO_OSR                                0x0018
-#define PIO_IFER                               0x0020
-#define PIO_IFDR                               0x0024
-#define PIO_IFSR                               0x0028
-#define PIO_SODR                               0x0030
-#define PIO_CODR                               0x0034
-#define PIO_ODSR                               0x0038
-#define PIO_PDSR                               0x003c
-#define PIO_IER                                0x0040
-#define PIO_IDR                                0x0044
-#define PIO_IMR                                0x0048
-#define PIO_ISR                                0x004c
-#define PIO_MDER                               0x0050
-#define PIO_MDDR                               0x0054
-#define PIO_MDSR                               0x0058
-#define PIO_PUDR                               0x0060
-#define PIO_PUER                               0x0064
-#define PIO_PUSR                               0x0068
-#define PIO_ASR                                0x0070
-#define PIO_BSR                                0x0074
-#define PIO_ABSR                               0x0078
-#define PIO_OWER                               0x00a0
-#define PIO_OWDR                               0x00a4
-#define PIO_OWSR                               0x00a8
-
-/* Bitfields in PER */
-
-/* Bitfields in PDR */
-
-/* Bitfields in PSR */
-
-/* Bitfields in OER */
-
-/* Bitfields in ODR */
-
-/* Bitfields in OSR */
-
-/* Bitfields in IFER */
-
-/* Bitfields in IFDR */
-
-/* Bitfields in IFSR */
-
-/* Bitfields in SODR */
-
-/* Bitfields in CODR */
-
-/* Bitfields in ODSR */
-
-/* Bitfields in PDSR */
-
-/* Bitfields in IER */
-
-/* Bitfields in IDR */
-
-/* Bitfields in IMR */
-
-/* Bitfields in ISR */
-
-/* Bitfields in MDER */
-
-/* Bitfields in MDDR */
-
-/* Bitfields in MDSR */
-
-/* Bitfields in PUDR */
-
-/* Bitfields in PUER */
-
-/* Bitfields in PUSR */
-
-/* Bitfields in ASR */
-
-/* Bitfields in BSR */
-
-/* Bitfields in ABSR */
-#define PIO_P0_OFFSET                          0
-#define PIO_P0_SIZE                            1
-#define PIO_P1_OFFSET                          1
-#define PIO_P1_SIZE                            1
-#define PIO_P2_OFFSET                          2
-#define PIO_P2_SIZE                            1
-#define PIO_P3_OFFSET                          3
-#define PIO_P3_SIZE                            1
-#define PIO_P4_OFFSET                          4
-#define PIO_P4_SIZE                            1
-#define PIO_P5_OFFSET                          5
-#define PIO_P5_SIZE                            1
-#define PIO_P6_OFFSET                          6
-#define PIO_P6_SIZE                            1
-#define PIO_P7_OFFSET                          7
-#define PIO_P7_SIZE                            1
-#define PIO_P8_OFFSET                          8
-#define PIO_P8_SIZE                            1
-#define PIO_P9_OFFSET                          9
-#define PIO_P9_SIZE                            1
-#define PIO_P10_OFFSET                         10
-#define PIO_P10_SIZE                           1
-#define PIO_P11_OFFSET                         11
-#define PIO_P11_SIZE                           1
-#define PIO_P12_OFFSET                         12
-#define PIO_P12_SIZE                           1
-#define PIO_P13_OFFSET                         13
-#define PIO_P13_SIZE                           1
-#define PIO_P14_OFFSET                         14
-#define PIO_P14_SIZE                           1
-#define PIO_P15_OFFSET                         15
-#define PIO_P15_SIZE                           1
-#define PIO_P16_OFFSET                         16
-#define PIO_P16_SIZE                           1
-#define PIO_P17_OFFSET                         17
-#define PIO_P17_SIZE                           1
-#define PIO_P18_OFFSET                         18
-#define PIO_P18_SIZE                           1
-#define PIO_P19_OFFSET                         19
-#define PIO_P19_SIZE                           1
-#define PIO_P20_OFFSET                         20
-#define PIO_P20_SIZE                           1
-#define PIO_P21_OFFSET                         21
-#define PIO_P21_SIZE                           1
-#define PIO_P22_OFFSET                         22
-#define PIO_P22_SIZE                           1
-#define PIO_P23_OFFSET                         23
-#define PIO_P23_SIZE                           1
-#define PIO_P24_OFFSET                         24
-#define PIO_P24_SIZE                           1
-#define PIO_P25_OFFSET                         25
-#define PIO_P25_SIZE                           1
-#define PIO_P26_OFFSET                         26
-#define PIO_P26_SIZE                           1
-#define PIO_P27_OFFSET                         27
-#define PIO_P27_SIZE                           1
-#define PIO_P28_OFFSET                         28
-#define PIO_P28_SIZE                           1
-#define PIO_P29_OFFSET                         29
-#define PIO_P29_SIZE                           1
-#define PIO_P30_OFFSET                         30
-#define PIO_P30_SIZE                           1
-#define PIO_P31_OFFSET                         31
-#define PIO_P31_SIZE                           1
-
-/* Bitfields in OWER */
-
-/* Bitfields in OWDR */
-
-/* Bitfields in OWSR */
-
-/* Bit manipulation macros */
-#define PIO_BIT(name)                          (1 << PIO_##name##_OFFSET)
-#define PIO_BF(name,value)                     (((value) & ((1 << PIO_##name##_SIZE) - 1)) << PIO_##name##_OFFSET)
-#define PIO_BFEXT(name,value)                  (((value) >> PIO_##name##_OFFSET) & ((1 << PIO_##name##_SIZE) - 1))
-#define PIO_BFINS(name,value,old)              (((old) & ~(((1 << PIO_##name##_SIZE) - 1) << PIO_##name##_OFFSET)) | PIO_BF(name,value))
-
-/* Register access macros */
-#define pio_readl(port,reg)                                    \
-       __raw_readl((port)->regs + PIO_##reg)
-#define pio_writel(port,reg,value)                             \
-       __raw_writel((value), (port)->regs + PIO_##reg)
-
-void at32_init_pio(struct platform_device *pdev);
-
-#endif /* __ARCH_AVR32_AT32AP_PIO_H__ */
diff --git a/arch/avr32/mach-at32ap/pm-at32ap700x.S b/arch/avr32/mach-at32ap/pm-at32ap700x.S
deleted file mode 100644 (file)
index 1c8e4e6..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Low-level Power Management code.
- *
- * Copyright (C) 2008 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <asm/asm.h>
-#include <asm/asm-offsets.h>
-#include <asm/thread_info.h>
-#include <mach/pm.h>
-
-#include "pm.h"
-#include "sdramc.h"
-
-/* Same as 0xfff00000 but fits in a 21 bit signed immediate */
-#define PM_BASE        -0x100000
-
-       /* Keep this close to the irq handlers */
-       .section .irq.text, "ax", @progbits
-
-       /*
-        * void cpu_enter_idle(void)
-        *
-        * Put the CPU into "idle" mode, in which it will consume
-        * significantly less power.
-        *
-        * If an interrupt comes along in the window between
-        * unmask_interrupts and the sleep instruction below, the
-        * interrupt code will adjust the return address so that we
-        * never execute the sleep instruction. This is required
-        * because the AP7000 doesn't unmask interrupts when entering
-        * sleep modes; later CPUs may not need this workaround.
-        */
-       .global cpu_enter_idle
-       .type   cpu_enter_idle, @function
-cpu_enter_idle:
-       mask_interrupts
-       get_thread_info r8
-       ld.w    r9, r8[TI_flags]
-       bld     r9, TIF_NEED_RESCHED
-       brcs    .Lret_from_sleep
-       sbr     r9, TIF_CPU_GOING_TO_SLEEP
-       st.w    r8[TI_flags], r9
-       unmask_interrupts
-       sleep   CPU_SLEEP_IDLE
-       .size   cpu_enter_idle, . - cpu_enter_idle
-
-       /*
-        * Common return path for PM functions that don't run from
-        * SRAM.
-        */
-       .global cpu_idle_skip_sleep
-       .type   cpu_idle_skip_sleep, @function
-cpu_idle_skip_sleep:
-       mask_interrupts
-       ld.w    r9, r8[TI_flags]
-       cbr     r9, TIF_CPU_GOING_TO_SLEEP
-       st.w    r8[TI_flags], r9
-.Lret_from_sleep:
-       unmask_interrupts
-       retal   r12
-       .size   cpu_idle_skip_sleep, . - cpu_idle_skip_sleep
-
-#ifdef CONFIG_PM
-       .section .init.text, "ax", @progbits
-
-       .global pm_exception
-       .type   pm_exception, @function
-pm_exception:
-       /*
-        * Exceptions are masked when we switch to this handler, so
-        * we'll only get "unrecoverable" exceptions (offset 0.)
-        */
-       sub     r12, pc, . - .Lpanic_msg
-       lddpc   pc, .Lpanic_addr
-
-       .align  2
-.Lpanic_addr:
-       .long   panic
-.Lpanic_msg:
-       .asciz  "Unrecoverable exception during suspend\n"
-       .size   pm_exception, . - pm_exception
-
-       .global pm_irq0
-       .type   pm_irq0, @function
-pm_irq0:
-       /* Disable interrupts and return after the sleep instruction */
-       mfsr    r9, SYSREG_RSR_INT0
-       mtsr    SYSREG_RAR_INT0, r8
-       sbr     r9, SYSREG_GM_OFFSET
-       mtsr    SYSREG_RSR_INT0, r9
-       rete
-
-       /*
-        * void cpu_enter_standby(unsigned long sdramc_base)
-        *
-        * Enter PM_SUSPEND_STANDBY mode. At this point, all drivers
-        * are suspended and interrupts are disabled. Interrupts
-        * marked as 'wakeup' event sources may still come along and
-        * get us out of here.
-        *
-        * The SDRAM will be put into self-refresh mode (which does
-        * not require a clock from the CPU), and the CPU will be put
-        * into "frozen" mode (HSB bus stopped). The SDRAM controller
-        * will automatically bring the SDRAM into normal mode on the
-        * first access, and the power manager will automatically
-        * start the HSB and CPU clocks upon a wakeup event.
-        *
-        * This code uses the same "skip sleep" technique as above.
-        * It is very important that we jump directly to
-        * cpu_after_sleep after the sleep instruction since that's
-        * where we'll end up if the interrupt handler decides that we
-        * need to skip the sleep instruction.
-        */
-       .global pm_standby
-       .type   pm_standby, @function
-pm_standby:
-       /*
-        * interrupts are already masked at this point, and EVBA
-        * points to pm_exception above.
-        */
-       ld.w    r10, r12[SDRAMC_LPR]
-       sub     r8, pc, . - 1f          /* return address for irq handler */
-       mov     r11, SDRAMC_LPR_LPCB_SELF_RFR
-       bfins   r10, r11, 0, 2          /* LPCB <- self Refresh */
-       sync    0                       /* flush write buffer */
-       st.w    r12[SDRAMC_LPR], r10    /* put SDRAM in self-refresh mode */
-       ld.w    r11, r12[SDRAMC_LPR]
-       unmask_interrupts
-       sleep   CPU_SLEEP_FROZEN
-1:     mask_interrupts
-       retal   r12
-       .size   pm_standby, . - pm_standby
-
-       .global pm_suspend_to_ram
-       .type   pm_suspend_to_ram, @function
-pm_suspend_to_ram:
-       /*
-        * interrupts are already masked at this point, and EVBA
-        * points to pm_exception above.
-        */
-       mov     r11, 0
-       cache   r11[2], 8               /* clean all dcache lines */
-       sync    0                       /* flush write buffer */
-       ld.w    r10, r12[SDRAMC_LPR]
-       sub     r8, pc, . - 1f          /* return address for irq handler */
-       mov     r11, SDRAMC_LPR_LPCB_SELF_RFR
-       bfins   r10, r11, 0, 2          /* LPCB <- self refresh */
-       st.w    r12[SDRAMC_LPR], r10    /* put SDRAM in self-refresh mode */
-       ld.w    r11, r12[SDRAMC_LPR]
-
-       unmask_interrupts
-       sleep   CPU_SLEEP_STOP
-1:     mask_interrupts
-
-       retal   r12
-       .size   pm_suspend_to_ram, . - pm_suspend_to_ram
-
-       .global pm_sram_end
-       .type   pm_sram_end, @function
-pm_sram_end:
-       .size   pm_sram_end, 0
-
-#endif /* CONFIG_PM */
diff --git a/arch/avr32/mach-at32ap/pm.c b/arch/avr32/mach-at32ap/pm.c
deleted file mode 100644 (file)
index db19084..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * AVR32 AP Power Management
- *
- * Copyright (C) 2008 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2 as published by the Free Software Foundation.
- */
-#include <linux/io.h>
-#include <linux/suspend.h>
-#include <linux/vmalloc.h>
-
-#include <asm/cacheflush.h>
-#include <asm/sysreg.h>
-
-#include <mach/chip.h>
-#include <mach/pm.h>
-#include <mach/sram.h>
-
-#include "sdramc.h"
-
-#define SRAM_PAGE_FLAGS        (SYSREG_BIT(TLBELO_D) | SYSREG_BF(SZ, 1)        \
-                               | SYSREG_BF(AP, 3) | SYSREG_BIT(G))
-
-
-static unsigned long   pm_sram_start;
-static size_t          pm_sram_size;
-static struct vm_struct        *pm_sram_area;
-
-static void (*avr32_pm_enter_standby)(unsigned long sdramc_base);
-static void (*avr32_pm_enter_str)(unsigned long sdramc_base);
-
-/*
- * Must be called with interrupts disabled. Exceptions will be masked
- * on return (i.e. all exceptions will be "unrecoverable".)
- */
-static void *avr32_pm_map_sram(void)
-{
-       unsigned long   vaddr;
-       unsigned long   page_addr;
-       u32             tlbehi;
-       u32             mmucr;
-
-       vaddr = (unsigned long)pm_sram_area->addr;
-       page_addr = pm_sram_start & PAGE_MASK;
-
-       /*
-        * Mask exceptions and grab the first TLB entry. We won't be
-        * needing it while sleeping.
-        */
-       asm volatile("ssrf      %0" : : "i"(SYSREG_EM_OFFSET) : "memory");
-
-       mmucr = sysreg_read(MMUCR);
-       tlbehi = sysreg_read(TLBEHI);
-       sysreg_write(MMUCR, SYSREG_BFINS(DRP, 0, mmucr));
-
-       tlbehi = SYSREG_BF(ASID, SYSREG_BFEXT(ASID, tlbehi));
-       tlbehi |= vaddr & PAGE_MASK;
-       tlbehi |= SYSREG_BIT(TLBEHI_V);
-
-       sysreg_write(TLBELO, page_addr | SRAM_PAGE_FLAGS);
-       sysreg_write(TLBEHI, tlbehi);
-       __builtin_tlbw();
-
-       return (void *)(vaddr + pm_sram_start - page_addr);
-}
-
-/*
- * Must be called with interrupts disabled. Exceptions will be
- * unmasked on return.
- */
-static void avr32_pm_unmap_sram(void)
-{
-       u32     mmucr;
-       u32     tlbehi;
-       u32     tlbarlo;
-
-       /* Going to update TLB entry at index 0 */
-       mmucr = sysreg_read(MMUCR);
-       tlbehi = sysreg_read(TLBEHI);
-       sysreg_write(MMUCR, SYSREG_BFINS(DRP, 0, mmucr));
-
-       /* Clear the "valid" bit */
-       tlbehi = SYSREG_BF(ASID, SYSREG_BFEXT(ASID, tlbehi));
-       sysreg_write(TLBEHI, tlbehi);
-
-       /* Mark it as "not accessed" */
-       tlbarlo = sysreg_read(TLBARLO);
-       sysreg_write(TLBARLO, tlbarlo | 0x80000000U);
-
-       /* Update the TLB */
-       __builtin_tlbw();
-
-       /* Unmask exceptions */
-       asm volatile("csrf      %0" : : "i"(SYSREG_EM_OFFSET) : "memory");
-}
-
-static int avr32_pm_valid_state(suspend_state_t state)
-{
-       switch (state) {
-       case PM_SUSPEND_ON:
-       case PM_SUSPEND_STANDBY:
-       case PM_SUSPEND_MEM:
-               return 1;
-
-       default:
-               return 0;
-       }
-}
-
-static int avr32_pm_enter(suspend_state_t state)
-{
-       u32             lpr_saved;
-       u32             evba_saved;
-       void            *sram;
-
-       switch (state) {
-       case PM_SUSPEND_STANDBY:
-               sram = avr32_pm_map_sram();
-
-               /* Switch to in-sram exception handlers */
-               evba_saved = sysreg_read(EVBA);
-               sysreg_write(EVBA, (unsigned long)sram);
-
-               /*
-                * Save the LPR register so that we can re-enable
-                * SDRAM Low Power mode on resume.
-                */
-               lpr_saved = sdramc_readl(LPR);
-               pr_debug("%s: Entering standby...\n", __func__);
-               avr32_pm_enter_standby(SDRAMC_BASE);
-               sdramc_writel(LPR, lpr_saved);
-
-               /* Switch back to regular exception handlers */
-               sysreg_write(EVBA, evba_saved);
-
-               avr32_pm_unmap_sram();
-               break;
-
-       case PM_SUSPEND_MEM:
-               sram = avr32_pm_map_sram();
-
-               /* Switch to in-sram exception handlers */
-               evba_saved = sysreg_read(EVBA);
-               sysreg_write(EVBA, (unsigned long)sram);
-
-               /*
-                * Save the LPR register so that we can re-enable
-                * SDRAM Low Power mode on resume.
-                */
-               lpr_saved = sdramc_readl(LPR);
-               pr_debug("%s: Entering suspend-to-ram...\n", __func__);
-               avr32_pm_enter_str(SDRAMC_BASE);
-               sdramc_writel(LPR, lpr_saved);
-
-               /* Switch back to regular exception handlers */
-               sysreg_write(EVBA, evba_saved);
-
-               avr32_pm_unmap_sram();
-               break;
-
-       case PM_SUSPEND_ON:
-               pr_debug("%s: Entering idle...\n", __func__);
-               cpu_enter_idle();
-               break;
-
-       default:
-               pr_debug("%s: Invalid suspend state %d\n", __func__, state);
-               goto out;
-       }
-
-       pr_debug("%s: wakeup\n", __func__);
-
-out:
-       return 0;
-}
-
-static const struct platform_suspend_ops avr32_pm_ops = {
-       .valid  = avr32_pm_valid_state,
-       .enter  = avr32_pm_enter,
-};
-
-static unsigned long __init avr32_pm_offset(void *symbol)
-{
-       extern u8 pm_exception[];
-
-       return (unsigned long)symbol - (unsigned long)pm_exception;
-}
-
-static int __init avr32_pm_init(void)
-{
-       extern u8 pm_exception[];
-       extern u8 pm_irq0[];
-       extern u8 pm_standby[];
-       extern u8 pm_suspend_to_ram[];
-       extern u8 pm_sram_end[];
-       void *dst;
-
-       /*
-        * To keep things simple, we depend on not needing more than a
-        * single page.
-        */
-       pm_sram_size = avr32_pm_offset(pm_sram_end);
-       if (pm_sram_size > PAGE_SIZE)
-               goto err;
-
-       pm_sram_start = sram_alloc(pm_sram_size);
-       if (!pm_sram_start)
-               goto err_alloc_sram;
-
-       /* Grab a virtual area we can use later on. */
-       pm_sram_area = get_vm_area(pm_sram_size, VM_IOREMAP);
-       if (!pm_sram_area)
-               goto err_vm_area;
-       pm_sram_area->phys_addr = pm_sram_start;
-
-       local_irq_disable();
-       dst = avr32_pm_map_sram();
-       memcpy(dst, pm_exception, pm_sram_size);
-       flush_dcache_region(dst, pm_sram_size);
-       invalidate_icache_region(dst, pm_sram_size);
-       avr32_pm_unmap_sram();
-       local_irq_enable();
-
-       avr32_pm_enter_standby = dst + avr32_pm_offset(pm_standby);
-       avr32_pm_enter_str = dst + avr32_pm_offset(pm_suspend_to_ram);
-       intc_set_suspend_handler(avr32_pm_offset(pm_irq0));
-
-       suspend_set_ops(&avr32_pm_ops);
-
-       printk("AVR32 AP Power Management enabled\n");
-
-       return 0;
-
-err_vm_area:
-       sram_free(pm_sram_start, pm_sram_size);
-err_alloc_sram:
-err:
-       pr_err("AVR32 Power Management initialization failed\n");
-       return -ENOMEM;
-}
-arch_initcall(avr32_pm_init);
diff --git a/arch/avr32/mach-at32ap/pm.h b/arch/avr32/mach-at32ap/pm.h
deleted file mode 100644 (file)
index 532a373..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Register definitions for the Power Manager (PM)
- */
-#ifndef __ARCH_AVR32_MACH_AT32AP_PM_H__
-#define __ARCH_AVR32_MACH_AT32AP_PM_H__
-
-/* PM register offsets */
-#define PM_MCCTRL                              0x0000
-#define PM_CKSEL                               0x0004
-#define PM_CPU_MASK                            0x0008
-#define PM_HSB_MASK                            0x000c
-#define PM_PBA_MASK                            0x0010
-#define PM_PBB_MASK                            0x0014
-#define PM_PLL0                                        0x0020
-#define PM_PLL1                                        0x0024
-#define PM_IER                                 0x0040
-#define PM_IDR                                 0x0044
-#define PM_IMR                                 0x0048
-#define PM_ISR                                 0x004c
-#define PM_ICR                                 0x0050
-#define PM_GCCTRL(x)                           (0x0060 + 4 * (x))
-#define PM_RCAUSE                              0x00c0
-
-/* Bitfields in CKSEL */
-#define PM_CPUSEL_OFFSET                       0
-#define PM_CPUSEL_SIZE                         3
-#define PM_CPUDIV_OFFSET                       7
-#define PM_CPUDIV_SIZE                         1
-#define PM_HSBSEL_OFFSET                       8
-#define PM_HSBSEL_SIZE                         3
-#define PM_HSBDIV_OFFSET                       15
-#define PM_HSBDIV_SIZE                         1
-#define PM_PBASEL_OFFSET                       16
-#define PM_PBASEL_SIZE                         3
-#define PM_PBADIV_OFFSET                       23
-#define PM_PBADIV_SIZE                         1
-#define PM_PBBSEL_OFFSET                       24
-#define PM_PBBSEL_SIZE                         3
-#define PM_PBBDIV_OFFSET                       31
-#define PM_PBBDIV_SIZE                         1
-
-/* Bitfields in PLL0 */
-#define PM_PLLEN_OFFSET                                0
-#define PM_PLLEN_SIZE                          1
-#define PM_PLLOSC_OFFSET                       1
-#define PM_PLLOSC_SIZE                         1
-#define PM_PLLOPT_OFFSET                       2
-#define PM_PLLOPT_SIZE                         3
-#define PM_PLLDIV_OFFSET                       8
-#define PM_PLLDIV_SIZE                         8
-#define PM_PLLMUL_OFFSET                       16
-#define PM_PLLMUL_SIZE                         8
-#define PM_PLLCOUNT_OFFSET                     24
-#define PM_PLLCOUNT_SIZE                       6
-#define PM_PLLTEST_OFFSET                      31
-#define PM_PLLTEST_SIZE                                1
-
-/* Bitfields in ICR */
-#define PM_LOCK0_OFFSET                                0
-#define PM_LOCK0_SIZE                          1
-#define PM_LOCK1_OFFSET                                1
-#define PM_LOCK1_SIZE                          1
-#define PM_WAKE_OFFSET                         2
-#define PM_WAKE_SIZE                           1
-#define PM_CKRDY_OFFSET                                5
-#define PM_CKRDY_SIZE                          1
-#define PM_MSKRDY_OFFSET                       6
-#define PM_MSKRDY_SIZE                         1
-
-/* Bitfields in GCCTRL0 */
-#define PM_OSCSEL_OFFSET                       0
-#define PM_OSCSEL_SIZE                         1
-#define PM_PLLSEL_OFFSET                       1
-#define PM_PLLSEL_SIZE                         1
-#define PM_CEN_OFFSET                          2
-#define PM_CEN_SIZE                            1
-#define PM_DIVEN_OFFSET                                4
-#define PM_DIVEN_SIZE                          1
-#define PM_DIV_OFFSET                          8
-#define PM_DIV_SIZE                            8
-
-/* Bitfields in RCAUSE */
-#define PM_POR_OFFSET                          0
-#define PM_POR_SIZE                            1
-#define PM_EXT_OFFSET                          2
-#define PM_EXT_SIZE                            1
-#define PM_WDT_OFFSET                          3
-#define PM_WDT_SIZE                            1
-#define PM_NTAE_OFFSET                         4
-#define PM_NTAE_SIZE                           1
-
-/* Bit manipulation macros */
-#define PM_BIT(name)                                   \
-       (1 << PM_##name##_OFFSET)
-#define PM_BF(name,value)                              \
-       (((value) & ((1 << PM_##name##_SIZE) - 1))      \
-        << PM_##name##_OFFSET)
-#define PM_BFEXT(name,value)                           \
-       (((value) >> PM_##name##_OFFSET)                \
-        & ((1 << PM_##name##_SIZE) - 1))
-#define PM_BFINS(name,value,old)\
-       (((old) & ~(((1 << PM_##name##_SIZE) - 1)       \
-                   << PM_##name##_OFFSET))             \
-        | PM_BF(name,value))
-
-/* Register access macros */
-#define pm_readl(reg)                                                  \
-       __raw_readl((void __iomem __force *)PM_BASE + PM_##reg)
-#define pm_writel(reg,value)                                           \
-       __raw_writel((value), (void __iomem __force *)PM_BASE + PM_##reg)
-
-#endif /* __ARCH_AVR32_MACH_AT32AP_PM_H__ */
diff --git a/arch/avr32/mach-at32ap/sdramc.h b/arch/avr32/mach-at32ap/sdramc.h
deleted file mode 100644 (file)
index 66eeaed..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Register definitions for the AT32AP SDRAM Controller
- *
- * Copyright (C) 2008 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2 as published by the Free Software Foundation.
- */
-
-/* Register offsets */
-#define SDRAMC_MR                      0x0000
-#define SDRAMC_TR                      0x0004
-#define SDRAMC_CR                      0x0008
-#define SDRAMC_HSR                     0x000c
-#define SDRAMC_LPR                     0x0010
-#define SDRAMC_IER                     0x0014
-#define SDRAMC_IDR                     0x0018
-#define SDRAMC_IMR                     0x001c
-#define SDRAMC_ISR                     0x0020
-#define SDRAMC_MDR                     0x0024
-
-/* MR - Mode Register */
-#define SDRAMC_MR_MODE_NORMAL          (  0 <<  0)
-#define SDRAMC_MR_MODE_NOP             (  1 <<  0)
-#define SDRAMC_MR_MODE_BANKS_PRECHARGE (  2 <<  0)
-#define SDRAMC_MR_MODE_LOAD_MODE       (  3 <<  0)
-#define SDRAMC_MR_MODE_AUTO_REFRESH    (  4 <<  0)
-#define SDRAMC_MR_MODE_EXT_LOAD_MODE   (  5 <<  0)
-#define SDRAMC_MR_MODE_POWER_DOWN      (  6 <<  0)
-
-/* CR - Configuration Register */
-#define SDRAMC_CR_NC_8_BITS            (  0 <<  0)
-#define SDRAMC_CR_NC_9_BITS            (  1 <<  0)
-#define SDRAMC_CR_NC_10_BITS           (  2 <<  0)
-#define SDRAMC_CR_NC_11_BITS           (  3 <<  0)
-#define SDRAMC_CR_NR_11_BITS           (  0 <<  2)
-#define SDRAMC_CR_NR_12_BITS           (  1 <<  2)
-#define SDRAMC_CR_NR_13_BITS           (  2 <<  2)
-#define SDRAMC_CR_NB_2_BANKS           (  0 <<  4)
-#define SDRAMC_CR_NB_4_BANKS           (  1 <<  4)
-#define SDRAMC_CR_CAS(x)               ((x) <<  5)
-#define SDRAMC_CR_DBW_32_BITS          (  0 <<  7)
-#define SDRAMC_CR_DBW_16_BITS          (  1 <<  7)
-#define SDRAMC_CR_TWR(x)               ((x) <<  8)
-#define SDRAMC_CR_TRC(x)               ((x) << 12)
-#define SDRAMC_CR_TRP(x)               ((x) << 16)
-#define SDRAMC_CR_TRCD(x)              ((x) << 20)
-#define SDRAMC_CR_TRAS(x)              ((x) << 24)
-#define SDRAMC_CR_TXSR(x)              ((x) << 28)
-
-/* HSR - High Speed Register */
-#define SDRAMC_HSR_DA                  (  1 <<  0)
-
-/* LPR - Low Power Register */
-#define SDRAMC_LPR_LPCB_INHIBIT                (  0 <<  0)
-#define SDRAMC_LPR_LPCB_SELF_RFR       (  1 <<  0)
-#define SDRAMC_LPR_LPCB_PDOWN          (  2 <<  0)
-#define SDRAMC_LPR_LPCB_DEEP_PDOWN     (  3 <<  0)
-#define SDRAMC_LPR_PASR(x)             ((x) <<  4)
-#define SDRAMC_LPR_TCSR(x)             ((x) <<  8)
-#define SDRAMC_LPR_DS(x)               ((x) << 10)
-#define SDRAMC_LPR_TIMEOUT(x)          ((x) << 12)
-
-/* IER/IDR/IMR/ISR - Interrupt Enable/Disable/Mask/Status Register */
-#define SDRAMC_ISR_RES                 (  1 <<  0)
-
-/* MDR - Memory Device Register */
-#define SDRAMC_MDR_MD_SDRAM            (  0 <<  0)
-#define SDRAMC_MDR_MD_LOW_PWR_SDRAM    (  1 <<  0)
-
-/* Register access macros */
-#define sdramc_readl(reg) \
-       __raw_readl((void __iomem __force *)SDRAMC_BASE + SDRAMC_##reg)
-#define sdramc_writel(reg, value) \
-       __raw_writel(value, (void __iomem __force *)SDRAMC_BASE + SDRAMC_##reg)
diff --git a/arch/avr32/mm/Makefile b/arch/avr32/mm/Makefile
deleted file mode 100644 (file)
index 0066491..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#
-# Makefile for the Linux/AVR32 kernel.
-#
-
-obj-y                          += init.o clear_page.o copy_page.o dma-coherent.o
-obj-y                          += ioremap.o cache.o fault.o tlb.o
diff --git a/arch/avr32/mm/cache.c b/arch/avr32/mm/cache.c
deleted file mode 100644 (file)
index d947682..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/highmem.h>
-#include <linux/unistd.h>
-
-#include <asm/cacheflush.h>
-#include <asm/cachectl.h>
-#include <asm/processor.h>
-#include <linux/uaccess.h>
-#include <asm/syscalls.h>
-
-/*
- * If you attempt to flush anything more than this, you need superuser
- * privileges.  The value is completely arbitrary.
- */
-#define CACHEFLUSH_MAX_LEN     1024
-
-void invalidate_dcache_region(void *start, size_t size)
-{
-       unsigned long v, begin, end, linesz, mask;
-
-       linesz = boot_cpu_data.dcache.linesz;
-       mask = linesz - 1;
-
-       /* when first and/or last cachelines are shared, flush them
-        * instead of invalidating ... never discard valid data!
-        */
-       begin = (unsigned long)start;
-       end = begin + size;
-
-       if (begin & mask) {
-               flush_dcache_line(start);
-               begin += linesz;
-       }
-       if (end & mask) {
-               flush_dcache_line((void *)end);
-               end &= ~mask;
-       }
-
-       /* remaining cachelines only need invalidation */
-       for (v = begin; v < end; v += linesz)
-               invalidate_dcache_line((void *)v);
-       flush_write_buffer();
-}
-
-void clean_dcache_region(void *start, size_t size)
-{
-       unsigned long v, begin, end, linesz;
-
-       linesz = boot_cpu_data.dcache.linesz;
-       begin = (unsigned long)start & ~(linesz - 1);
-       end = ((unsigned long)start + size + linesz - 1) & ~(linesz - 1);
-
-       for (v = begin; v < end; v += linesz)
-               clean_dcache_line((void *)v);
-       flush_write_buffer();
-}
-
-void flush_dcache_region(void *start, size_t size)
-{
-       unsigned long v, begin, end, linesz;
-
-       linesz = boot_cpu_data.dcache.linesz;
-       begin = (unsigned long)start & ~(linesz - 1);
-       end = ((unsigned long)start + size + linesz - 1) & ~(linesz - 1);
-
-       for (v = begin; v < end; v += linesz)
-               flush_dcache_line((void *)v);
-       flush_write_buffer();
-}
-
-void invalidate_icache_region(void *start, size_t size)
-{
-       unsigned long v, begin, end, linesz;
-
-       linesz = boot_cpu_data.icache.linesz;
-       begin = (unsigned long)start & ~(linesz - 1);
-       end = ((unsigned long)start + size + linesz - 1) & ~(linesz - 1);
-
-       for (v = begin; v < end; v += linesz)
-               invalidate_icache_line((void *)v);
-}
-
-static inline void __flush_icache_range(unsigned long start, unsigned long end)
-{
-       unsigned long v, linesz;
-
-       linesz = boot_cpu_data.dcache.linesz;
-       for (v = start; v < end; v += linesz) {
-               clean_dcache_line((void *)v);
-               invalidate_icache_line((void *)v);
-       }
-
-       flush_write_buffer();
-}
-
-/*
- * This one is called after a module has been loaded.
- */
-void flush_icache_range(unsigned long start, unsigned long end)
-{
-       unsigned long linesz;
-
-       linesz = boot_cpu_data.dcache.linesz;
-       __flush_icache_range(start & ~(linesz - 1),
-                            (end + linesz - 1) & ~(linesz - 1));
-}
-EXPORT_SYMBOL(flush_icache_range);
-
-/*
- * This one is called from __do_fault() and do_swap_page().
- */
-void flush_icache_page(struct vm_area_struct *vma, struct page *page)
-{
-       if (vma->vm_flags & VM_EXEC) {
-               void *v = page_address(page);
-               __flush_icache_range((unsigned long)v, (unsigned long)v + PAGE_SIZE);
-       }
-}
-
-asmlinkage int sys_cacheflush(int operation, void __user *addr, size_t len)
-{
-       int ret;
-
-       if (len > CACHEFLUSH_MAX_LEN) {
-               ret = -EPERM;
-               if (!capable(CAP_SYS_ADMIN))
-                       goto out;
-       }
-
-       ret = -EFAULT;
-       if (!access_ok(VERIFY_WRITE, addr, len))
-               goto out;
-
-       switch (operation) {
-       case CACHE_IFLUSH:
-               flush_icache_range((unsigned long)addr,
-                                  (unsigned long)addr + len);
-               ret = 0;
-               break;
-       default:
-               ret = -EINVAL;
-       }
-
-out:
-       return ret;
-}
-
-void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
-               unsigned long vaddr, void *dst, const void *src,
-               unsigned long len)
-{
-       memcpy(dst, src, len);
-       if (vma->vm_flags & VM_EXEC)
-               flush_icache_range((unsigned long)dst,
-                               (unsigned long)dst + len);
-}
diff --git a/arch/avr32/mm/clear_page.S b/arch/avr32/mm/clear_page.S
deleted file mode 100644 (file)
index 5d70dca..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/linkage.h>
-#include <asm/page.h>
-
-/*
- * clear_page
- * r12: P1 address (to)
- */
-       .text
-       .global clear_page
-clear_page:
-       sub     r9, r12, -PAGE_SIZE
-       mov     r10, 0
-       mov     r11, 0
-0:      st.d    r12++, r10
-       cp      r12, r9
-       brne    0b
-       mov     pc, lr
diff --git a/arch/avr32/mm/copy_page.S b/arch/avr32/mm/copy_page.S
deleted file mode 100644 (file)
index c2b3752..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/linkage.h>
-#include <asm/page.h>
-
-/*
- * copy_page
- *
- * r12         to (P1 address)
- * r11         from (P1 address)
- * r8-r10      scratch
- */
-       .text
-       .global copy_page
-copy_page:
-       sub     r10, r11, -(1 << PAGE_SHIFT)
-       /* pref r11[0] */
-1:     /* pref r11[8] */
-       ld.d    r8, r11++
-       st.d    r12++, r8
-       cp      r11, r10
-       brlo    1b
-       mov     pc, lr
diff --git a/arch/avr32/mm/dma-coherent.c b/arch/avr32/mm/dma-coherent.c
deleted file mode 100644 (file)
index 555222d..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- *  Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/dma-mapping.h>
-#include <linux/gfp.h>
-#include <linux/export.h>
-#include <linux/mm.h>
-#include <linux/device.h>
-#include <linux/scatterlist.h>
-
-#include <asm/processor.h>
-#include <asm/cacheflush.h>
-#include <asm/io.h>
-#include <asm/addrspace.h>
-
-void dma_cache_sync(struct device *dev, void *vaddr, size_t size, int direction)
-{
-       /*
-        * No need to sync an uncached area
-        */
-       if (PXSEG(vaddr) == P2SEG)
-               return;
-
-       switch (direction) {
-       case DMA_FROM_DEVICE:           /* invalidate only */
-               invalidate_dcache_region(vaddr, size);
-               break;
-       case DMA_TO_DEVICE:             /* writeback only */
-               clean_dcache_region(vaddr, size);
-               break;
-       case DMA_BIDIRECTIONAL:         /* writeback and invalidate */
-               flush_dcache_region(vaddr, size);
-               break;
-       default:
-               BUG();
-       }
-}
-EXPORT_SYMBOL(dma_cache_sync);
-
-static struct page *__dma_alloc(struct device *dev, size_t size,
-                               dma_addr_t *handle, gfp_t gfp)
-{
-       struct page *page, *free, *end;
-       int order;
-
-       /* Following is a work-around (a.k.a. hack) to prevent pages
-        * with __GFP_COMP being passed to split_page() which cannot
-        * handle them.  The real problem is that this flag probably
-        * should be 0 on AVR32 as it is not supported on this
-        * platform--see CONFIG_HUGETLB_PAGE. */
-       gfp &= ~(__GFP_COMP);
-
-       size = PAGE_ALIGN(size);
-       order = get_order(size);
-
-       page = alloc_pages(gfp, order);
-       if (!page)
-               return NULL;
-       split_page(page, order);
-
-       /*
-        * When accessing physical memory with valid cache data, we
-        * get a cache hit even if the virtual memory region is marked
-        * as uncached.
-        *
-        * Since the memory is newly allocated, there is no point in
-        * doing a writeback. If the previous owner cares, he should
-        * have flushed the cache before releasing the memory.
-        */
-       invalidate_dcache_region(phys_to_virt(page_to_phys(page)), size);
-
-       *handle = page_to_bus(page);
-       free = page + (size >> PAGE_SHIFT);
-       end = page + (1 << order);
-
-       /*
-        * Free any unused pages
-        */
-       while (free < end) {
-               __free_page(free);
-               free++;
-       }
-
-       return page;
-}
-
-static void __dma_free(struct device *dev, size_t size,
-                      struct page *page, dma_addr_t handle)
-{
-       struct page *end = page + (PAGE_ALIGN(size) >> PAGE_SHIFT);
-
-       while (page < end)
-               __free_page(page++);
-}
-
-static void *avr32_dma_alloc(struct device *dev, size_t size,
-               dma_addr_t *handle, gfp_t gfp, unsigned long attrs)
-{
-       struct page *page;
-       dma_addr_t phys;
-
-       page = __dma_alloc(dev, size, handle, gfp);
-       if (!page)
-               return NULL;
-       phys = page_to_phys(page);
-
-       if (attrs & DMA_ATTR_WRITE_COMBINE) {
-               /* Now, map the page into P3 with write-combining turned on */
-               *handle = phys;
-               return __ioremap(phys, size, _PAGE_BUFFER);
-       } else {
-               return phys_to_uncached(phys);
-       }
-}
-
-static void avr32_dma_free(struct device *dev, size_t size,
-               void *cpu_addr, dma_addr_t handle, unsigned long attrs)
-{
-       struct page *page;
-
-       if (attrs & DMA_ATTR_WRITE_COMBINE) {
-               iounmap(cpu_addr);
-
-               page = phys_to_page(handle);
-       } else {
-               void *addr = phys_to_cached(uncached_to_phys(cpu_addr));
-
-               pr_debug("avr32_dma_free addr %p (phys %08lx) size %u\n",
-                        cpu_addr, (unsigned long)handle, (unsigned)size);
-
-               BUG_ON(!virt_addr_valid(addr));
-               page = virt_to_page(addr);
-       }
-
-       __dma_free(dev, size, page, handle);
-}
-
-static dma_addr_t avr32_dma_map_page(struct device *dev, struct page *page,
-               unsigned long offset, size_t size,
-               enum dma_data_direction direction, unsigned long attrs)
-{
-       void *cpu_addr = page_address(page) + offset;
-
-       if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC))
-               dma_cache_sync(dev, cpu_addr, size, direction);
-       return virt_to_bus(cpu_addr);
-}
-
-static int avr32_dma_map_sg(struct device *dev, struct scatterlist *sglist,
-               int nents, enum dma_data_direction direction,
-               unsigned long attrs)
-{
-       int i;
-       struct scatterlist *sg;
-
-       for_each_sg(sglist, sg, nents, i) {
-               char *virt;
-
-               sg->dma_address = page_to_bus(sg_page(sg)) + sg->offset;
-               virt = sg_virt(sg);
-
-               if (attrs & DMA_ATTR_SKIP_CPU_SYNC)
-                       continue;
-
-               dma_cache_sync(dev, virt, sg->length, direction);
-       }
-
-       return nents;
-}
-
-static void avr32_dma_sync_single_for_device(struct device *dev,
-               dma_addr_t dma_handle, size_t size,
-               enum dma_data_direction direction)
-{
-       dma_cache_sync(dev, bus_to_virt(dma_handle), size, direction);
-}
-
-static void avr32_dma_sync_sg_for_device(struct device *dev,
-               struct scatterlist *sglist, int nents,
-               enum dma_data_direction direction)
-{
-       int i;
-       struct scatterlist *sg;
-
-       for_each_sg(sglist, sg, nents, i)
-               dma_cache_sync(dev, sg_virt(sg), sg->length, direction);
-}
-
-const struct dma_map_ops avr32_dma_ops = {
-       .alloc                  = avr32_dma_alloc,
-       .free                   = avr32_dma_free,
-       .map_page               = avr32_dma_map_page,
-       .map_sg                 = avr32_dma_map_sg,
-       .sync_single_for_device = avr32_dma_sync_single_for_device,
-       .sync_sg_for_device     = avr32_dma_sync_sg_for_device,
-};
-EXPORT_SYMBOL(avr32_dma_ops);
diff --git a/arch/avr32/mm/fault.c b/arch/avr32/mm/fault.c
deleted file mode 100644 (file)
index b3977e9..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * Based on linux/arch/sh/mm/fault.c:
- *   Copyright (C) 1999  Niibe Yutaka
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/mm.h>
-#include <linux/extable.h>
-#include <linux/pagemap.h>
-#include <linux/kdebug.h>
-#include <linux/kprobes.h>
-#include <linux/uaccess.h>
-
-#include <asm/mmu_context.h>
-#include <asm/sysreg.h>
-#include <asm/tlb.h>
-
-#ifdef CONFIG_KPROBES
-static inline int notify_page_fault(struct pt_regs *regs, int trap)
-{
-       int ret = 0;
-
-       if (!user_mode(regs)) {
-               if (kprobe_running() && kprobe_fault_handler(regs, trap))
-                       ret = 1;
-       }
-
-       return ret;
-}
-#else
-static inline int notify_page_fault(struct pt_regs *regs, int trap)
-{
-       return 0;
-}
-#endif
-
-int exception_trace = 1;
-
-/*
- * This routine handles page faults. It determines the address and the
- * problem, and then passes it off to one of the appropriate routines.
- *
- * ecr is the Exception Cause Register. Possible values are:
- *   6:  Protection fault (instruction access)
- *   15: Protection fault (read access)
- *   16: Protection fault (write access)
- *   20: Page not found (instruction access)
- *   24: Page not found (read access)
- *   28: Page not found (write access)
- */
-asmlinkage void do_page_fault(unsigned long ecr, struct pt_regs *regs)
-{
-       struct task_struct *tsk;
-       struct mm_struct *mm;
-       struct vm_area_struct *vma;
-       const struct exception_table_entry *fixup;
-       unsigned long address;
-       unsigned long page;
-       long signr;
-       int code;
-       int fault;
-       unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE;
-
-       if (notify_page_fault(regs, ecr))
-               return;
-
-       address = sysreg_read(TLBEAR);
-
-       tsk = current;
-       mm = tsk->mm;
-
-       signr = SIGSEGV;
-       code = SEGV_MAPERR;
-
-       /*
-        * If we're in an interrupt or have no user context, we must
-        * not take the fault...
-        */
-       if (faulthandler_disabled() || !mm || regs->sr & SYSREG_BIT(GM))
-               goto no_context;
-
-       local_irq_enable();
-
-       if (user_mode(regs))
-               flags |= FAULT_FLAG_USER;
-retry:
-       down_read(&mm->mmap_sem);
-
-       vma = find_vma(mm, address);
-       if (!vma)
-               goto bad_area;
-       if (vma->vm_start <= address)
-               goto good_area;
-       if (!(vma->vm_flags & VM_GROWSDOWN))
-               goto bad_area;
-       if (expand_stack(vma, address))
-               goto bad_area;
-
-       /*
-        * Ok, we have a good vm_area for this memory access, so we
-        * can handle it...
-        */
-good_area:
-       code = SEGV_ACCERR;
-
-       switch (ecr) {
-       case ECR_PROTECTION_X:
-       case ECR_TLB_MISS_X:
-               if (!(vma->vm_flags & VM_EXEC))
-                       goto bad_area;
-               break;
-       case ECR_PROTECTION_R:
-       case ECR_TLB_MISS_R:
-               if (!(vma->vm_flags & (VM_READ | VM_WRITE | VM_EXEC)))
-                       goto bad_area;
-               break;
-       case ECR_PROTECTION_W:
-       case ECR_TLB_MISS_W:
-               if (!(vma->vm_flags & VM_WRITE))
-                       goto bad_area;
-               flags |= FAULT_FLAG_WRITE;
-               break;
-       default:
-               panic("Unhandled case %lu in do_page_fault!", ecr);
-       }
-
-       /*
-        * If for any reason at all we couldn't handle the fault, make
-        * sure we exit gracefully rather than endlessly redo the
-        * fault.
-        */
-       fault = handle_mm_fault(vma, address, flags);
-
-       if ((fault & VM_FAULT_RETRY) && fatal_signal_pending(current))
-               return;
-
-       if (unlikely(fault & VM_FAULT_ERROR)) {
-               if (fault & VM_FAULT_OOM)
-                       goto out_of_memory;
-               else if (fault & VM_FAULT_SIGSEGV)
-                       goto bad_area;
-               else if (fault & VM_FAULT_SIGBUS)
-                       goto do_sigbus;
-               BUG();
-       }
-
-       if (flags & FAULT_FLAG_ALLOW_RETRY) {
-               if (fault & VM_FAULT_MAJOR)
-                       tsk->maj_flt++;
-               else
-                       tsk->min_flt++;
-               if (fault & VM_FAULT_RETRY) {
-                       flags &= ~FAULT_FLAG_ALLOW_RETRY;
-                       flags |= FAULT_FLAG_TRIED;
-
-                       /*
-                        * No need to up_read(&mm->mmap_sem) as we would have
-                        * already released it in __lock_page_or_retry() in
-                        * mm/filemap.c.
-                        */
-                       goto retry;
-               }
-       }
-
-       up_read(&mm->mmap_sem);
-       return;
-
-       /*
-        * Something tried to access memory that isn't in our memory
-        * map. Fix it, but check if it's kernel or user first...
-        */
-bad_area:
-       up_read(&mm->mmap_sem);
-
-       if (user_mode(regs)) {
-               if (exception_trace && printk_ratelimit())
-                       printk("%s%s[%d]: segfault at %08lx pc %08lx "
-                              "sp %08lx ecr %lu\n",
-                              is_global_init(tsk) ? KERN_EMERG : KERN_INFO,
-                              tsk->comm, tsk->pid, address, regs->pc,
-                              regs->sp, ecr);
-               _exception(SIGSEGV, regs, code, address);
-               return;
-       }
-
-no_context:
-       /* Are we prepared to handle this kernel fault? */
-       fixup = search_exception_tables(regs->pc);
-       if (fixup) {
-               regs->pc = fixup->fixup;
-               return;
-       }
-
-       /*
-        * Oops. The kernel tried to access some bad page. We'll have
-        * to terminate things with extreme prejudice.
-        */
-       if (address < PAGE_SIZE)
-               printk(KERN_ALERT
-                      "Unable to handle kernel NULL pointer dereference");
-       else
-               printk(KERN_ALERT
-                      "Unable to handle kernel paging request");
-       printk(" at virtual address %08lx\n", address);
-
-       page = sysreg_read(PTBR);
-       printk(KERN_ALERT "ptbr = %08lx", page);
-       if (address >= TASK_SIZE)
-               page = (unsigned long)swapper_pg_dir;
-       if (page) {
-               page = ((unsigned long *)page)[address >> 22];
-               printk(" pgd = %08lx", page);
-               if (page & _PAGE_PRESENT) {
-                       page &= PAGE_MASK;
-                       address &= 0x003ff000;
-                       page = ((unsigned long *)__va(page))[address >> PAGE_SHIFT];
-                       printk(" pte = %08lx", page);
-               }
-       }
-       printk("\n");
-       die("Kernel access of bad area", regs, signr);
-       return;
-
-       /*
-        * We ran out of memory, or some other thing happened to us
-        * that made us unable to handle the page fault gracefully.
-        */
-out_of_memory:
-       up_read(&mm->mmap_sem);
-       if (!user_mode(regs))
-               goto no_context;
-       pagefault_out_of_memory();
-       return;
-
-do_sigbus:
-       up_read(&mm->mmap_sem);
-
-       /* Kernel mode? Handle exceptions or die */
-       signr = SIGBUS;
-       code = BUS_ADRERR;
-       if (!user_mode(regs))
-               goto no_context;
-
-       if (exception_trace)
-               printk("%s%s[%d]: bus error at %08lx pc %08lx "
-                      "sp %08lx ecr %lu\n",
-                      is_global_init(tsk) ? KERN_EMERG : KERN_INFO,
-                      tsk->comm, tsk->pid, address, regs->pc,
-                      regs->sp, ecr);
-
-       _exception(SIGBUS, regs, BUS_ADRERR, address);
-}
-
-asmlinkage void do_bus_error(unsigned long addr, int write_access,
-                            struct pt_regs *regs)
-{
-       printk(KERN_ALERT
-              "Bus error at physical address 0x%08lx (%s access)\n",
-              addr, write_access ? "write" : "read");
-       printk(KERN_INFO "DTLB dump:\n");
-       dump_dtlb();
-       die("Bus Error", regs, SIGKILL);
-}
diff --git a/arch/avr32/mm/init.c b/arch/avr32/mm/init.c
deleted file mode 100644 (file)
index def5391..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <linux/kernel.h>
-#include <linux/gfp.h>
-#include <linux/mm.h>
-#include <linux/swap.h>
-#include <linux/init.h>
-#include <linux/mmzone.h>
-#include <linux/module.h>
-#include <linux/bootmem.h>
-#include <linux/pagemap.h>
-#include <linux/nodemask.h>
-
-#include <asm/page.h>
-#include <asm/mmu_context.h>
-#include <asm/tlb.h>
-#include <asm/io.h>
-#include <asm/dma.h>
-#include <asm/setup.h>
-#include <asm/sections.h>
-
-pgd_t swapper_pg_dir[PTRS_PER_PGD] __page_aligned_data;
-
-struct page *empty_zero_page;
-EXPORT_SYMBOL(empty_zero_page);
-
-/*
- * Cache of MMU context last used.
- */
-unsigned long mmu_context_cache = NO_CONTEXT;
-
-/*
- * paging_init() sets up the page tables
- *
- * This routine also unmaps the page at virtual kernel address 0, so
- * that we can trap those pesky NULL-reference errors in the kernel.
- */
-void __init paging_init(void)
-{
-       extern unsigned long _evba;
-       void *zero_page;
-       int nid;
-
-       /*
-        * Make sure we can handle exceptions before enabling
-        * paging. Not that we should ever _get_ any exceptions this
-        * early, but you never know...
-        */
-       printk("Exception vectors start at %p\n", &_evba);
-       sysreg_write(EVBA, (unsigned long)&_evba);
-
-       /*
-        * Since we are ready to handle exceptions now, we should let
-        * the CPU generate them...
-        */
-       __asm__ __volatile__ ("csrf %0" : : "i"(SR_EM_BIT));
-
-       /*
-        * Allocate the zero page. The allocator will panic if it
-        * can't satisfy the request, so no need to check.
-        */
-       zero_page = alloc_bootmem_low_pages_node(NODE_DATA(0),
-                                                PAGE_SIZE);
-
-       sysreg_write(PTBR, (unsigned long)swapper_pg_dir);
-       enable_mmu();
-       printk ("CPU: Paging enabled\n");
-
-       for_each_online_node(nid) {
-               pg_data_t *pgdat = NODE_DATA(nid);
-               unsigned long zones_size[MAX_NR_ZONES];
-               unsigned long low, start_pfn;
-
-               start_pfn = pgdat->bdata->node_min_pfn;
-               low = pgdat->bdata->node_low_pfn;
-
-               memset(zones_size, 0, sizeof(zones_size));
-               zones_size[ZONE_NORMAL] = low - start_pfn;
-
-               printk("Node %u: start_pfn = 0x%lx, low = 0x%lx\n",
-                      nid, start_pfn, low);
-
-               free_area_init_node(nid, zones_size, start_pfn, NULL);
-
-               printk("Node %u: mem_map starts at %p\n",
-                      pgdat->node_id, pgdat->node_mem_map);
-       }
-
-       mem_map = NODE_DATA(0)->node_mem_map;
-
-       empty_zero_page = virt_to_page(zero_page);
-       flush_dcache_page(empty_zero_page);
-}
-
-void __init mem_init(void)
-{
-       pg_data_t *pgdat;
-
-       high_memory = NULL;
-       for_each_online_pgdat(pgdat)
-               high_memory = max_t(void *, high_memory,
-                                   __va(pgdat_end_pfn(pgdat) << PAGE_SHIFT));
-
-       set_max_mapnr(MAP_NR(high_memory));
-       free_all_bootmem();
-       mem_init_print_info(NULL);
-}
-
-void free_initmem(void)
-{
-       free_initmem_default(-1);
-}
-
-#ifdef CONFIG_BLK_DEV_INITRD
-void free_initrd_mem(unsigned long start, unsigned long end)
-{
-       free_reserved_area((void *)start, (void *)end, -1, "initrd");
-}
-#endif
diff --git a/arch/avr32/mm/ioremap.c b/arch/avr32/mm/ioremap.c
deleted file mode 100644 (file)
index 7def0d8..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/vmalloc.h>
-#include <linux/mm.h>
-#include <linux/module.h>
-#include <linux/io.h>
-#include <linux/slab.h>
-
-#include <asm/pgtable.h>
-#include <asm/addrspace.h>
-
-/*
- * Re-map an arbitrary physical address space into the kernel virtual
- * address space. Needed when the kernel wants to access physical
- * memory directly.
- */
-void __iomem *__ioremap(unsigned long phys_addr, size_t size,
-                       unsigned long flags)
-{
-       unsigned long addr;
-       struct vm_struct *area;
-       unsigned long offset, last_addr;
-       pgprot_t prot;
-
-       /*
-        * Check if we can simply use the P4 segment. This area is
-        * uncacheable, so if caching/buffering is requested, we can't
-        * use it.
-        */
-       if ((phys_addr >= P4SEG) && (flags == 0))
-               return (void __iomem *)phys_addr;
-
-       /* Don't allow wraparound or zero size */
-       last_addr = phys_addr + size - 1;
-       if (!size || last_addr < phys_addr)
-               return NULL;
-
-       /*
-        * XXX: When mapping regular RAM, we'd better make damn sure
-        * it's never used for anything else.  But this is really the
-        * caller's responsibility...
-        */
-       if (PHYSADDR(P2SEGADDR(phys_addr)) == phys_addr)
-               return (void __iomem *)P2SEGADDR(phys_addr);
-
-       /* Mappings have to be page-aligned */
-       offset = phys_addr & ~PAGE_MASK;
-       phys_addr &= PAGE_MASK;
-       size = PAGE_ALIGN(last_addr + 1) - phys_addr;
-
-       prot = __pgprot(_PAGE_PRESENT | _PAGE_GLOBAL | _PAGE_RW | _PAGE_DIRTY
-                       | _PAGE_ACCESSED | _PAGE_TYPE_SMALL | flags);
-
-       /*
-        * Ok, go for it..
-        */
-       area = get_vm_area(size, VM_IOREMAP);
-       if (!area)
-               return NULL;
-       area->phys_addr = phys_addr;
-       addr = (unsigned long )area->addr;
-       if (ioremap_page_range(addr, addr + size, phys_addr, prot)) {
-               vunmap((void *)addr);
-               return NULL;
-       }
-
-       return (void __iomem *)(offset + (char *)addr);
-}
-EXPORT_SYMBOL(__ioremap);
-
-void __iounmap(void __iomem *addr)
-{
-       struct vm_struct *p;
-
-       if ((unsigned long)addr >= P4SEG)
-               return;
-       if (PXSEG(addr) == P2SEG)
-               return;
-
-       p = remove_vm_area((void *)(PAGE_MASK & (unsigned long __force)addr));
-       if (unlikely(!p)) {
-               printk (KERN_ERR "iounmap: bad address %p\n", addr);
-               return;
-       }
-
-       kfree (p);
-}
-EXPORT_SYMBOL(__iounmap);
diff --git a/arch/avr32/mm/tlb.c b/arch/avr32/mm/tlb.c
deleted file mode 100644 (file)
index 0da2310..0000000
+++ /dev/null
@@ -1,375 +0,0 @@
-/*
- * AVR32 TLB operations
- *
- * Copyright (C) 2004-2006 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#include <linux/mm.h>
-
-#include <asm/mmu_context.h>
-
-/* TODO: Get the correct number from the CONFIG1 system register */
-#define NR_TLB_ENTRIES 32
-
-static void show_dtlb_entry(unsigned int index)
-{
-       u32 tlbehi, tlbehi_save, tlbelo, mmucr, mmucr_save;
-       unsigned long flags;
-
-       local_irq_save(flags);
-       mmucr_save = sysreg_read(MMUCR);
-       tlbehi_save = sysreg_read(TLBEHI);
-       mmucr = SYSREG_BFINS(DRP, index, mmucr_save);
-       sysreg_write(MMUCR, mmucr);
-
-       __builtin_tlbr();
-       cpu_sync_pipeline();
-
-       tlbehi = sysreg_read(TLBEHI);
-       tlbelo = sysreg_read(TLBELO);
-
-       printk("%2u: %c %c %02x   %05x %05x %o  %o  %c %c %c %c\n",
-              index,
-              SYSREG_BFEXT(TLBEHI_V, tlbehi) ? '1' : '0',
-              SYSREG_BFEXT(G, tlbelo) ? '1' : '0',
-              SYSREG_BFEXT(ASID, tlbehi),
-              SYSREG_BFEXT(VPN, tlbehi) >> 2,
-              SYSREG_BFEXT(PFN, tlbelo) >> 2,
-              SYSREG_BFEXT(AP, tlbelo),
-              SYSREG_BFEXT(SZ, tlbelo),
-              SYSREG_BFEXT(TLBELO_C, tlbelo) ? 'C' : ' ',
-              SYSREG_BFEXT(B, tlbelo) ? 'B' : ' ',
-              SYSREG_BFEXT(W, tlbelo) ? 'W' : ' ',
-              SYSREG_BFEXT(TLBELO_D, tlbelo) ? 'D' : ' ');
-
-       sysreg_write(MMUCR, mmucr_save);
-       sysreg_write(TLBEHI, tlbehi_save);
-       cpu_sync_pipeline();
-       local_irq_restore(flags);
-}
-
-void dump_dtlb(void)
-{
-       unsigned int i;
-
-       printk("ID  V G ASID VPN   PFN   AP SZ C B W D\n");
-       for (i = 0; i < NR_TLB_ENTRIES; i++)
-               show_dtlb_entry(i);
-}
-
-static void update_dtlb(unsigned long address, pte_t pte)
-{
-       u32 tlbehi;
-       u32 mmucr;
-
-       /*
-        * We're not changing the ASID here, so no need to flush the
-        * pipeline.
-        */
-       tlbehi = sysreg_read(TLBEHI);
-       tlbehi = SYSREG_BF(ASID, SYSREG_BFEXT(ASID, tlbehi));
-       tlbehi |= address & MMU_VPN_MASK;
-       tlbehi |= SYSREG_BIT(TLBEHI_V);
-       sysreg_write(TLBEHI, tlbehi);
-
-       /* Does this mapping already exist? */
-       __builtin_tlbs();
-       mmucr = sysreg_read(MMUCR);
-
-       if (mmucr & SYSREG_BIT(MMUCR_N)) {
-               /* Not found -- pick a not-recently-accessed entry */
-               unsigned int rp;
-               u32 tlbar = sysreg_read(TLBARLO);
-
-               rp = 32 - fls(tlbar);
-               if (rp == 32) {
-                       rp = 0;
-                       sysreg_write(TLBARLO, -1L);
-               }
-
-               mmucr = SYSREG_BFINS(DRP, rp, mmucr);
-               sysreg_write(MMUCR, mmucr);
-       }
-
-       sysreg_write(TLBELO, pte_val(pte) & _PAGE_FLAGS_HARDWARE_MASK);
-
-       /* Let's go */
-       __builtin_tlbw();
-}
-
-void update_mmu_cache(struct vm_area_struct *vma,
-                     unsigned long address, pte_t *ptep)
-{
-       unsigned long flags;
-
-       /* ptrace may call this routine */
-       if (vma && current->active_mm != vma->vm_mm)
-               return;
-
-       local_irq_save(flags);
-       update_dtlb(address, *ptep);
-       local_irq_restore(flags);
-}
-
-static void __flush_tlb_page(unsigned long asid, unsigned long page)
-{
-       u32 mmucr, tlbehi;
-
-       /*
-        * Caller is responsible for masking out non-PFN bits in page
-        * and changing the current ASID if necessary. This means that
-        * we don't need to flush the pipeline after writing TLBEHI.
-        */
-       tlbehi = page | asid;
-       sysreg_write(TLBEHI, tlbehi);
-
-       __builtin_tlbs();
-       mmucr = sysreg_read(MMUCR);
-
-       if (!(mmucr & SYSREG_BIT(MMUCR_N))) {
-               unsigned int entry;
-               u32 tlbarlo;
-
-               /* Clear the "valid" bit */
-               sysreg_write(TLBEHI, tlbehi);
-
-               /* mark the entry as "not accessed" */
-               entry = SYSREG_BFEXT(DRP, mmucr);
-               tlbarlo = sysreg_read(TLBARLO);
-               tlbarlo |= (0x80000000UL >> entry);
-               sysreg_write(TLBARLO, tlbarlo);
-
-               /* update the entry with valid bit clear */
-               __builtin_tlbw();
-       }
-}
-
-void flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
-{
-       if (vma->vm_mm && vma->vm_mm->context != NO_CONTEXT) {
-               unsigned long flags, asid;
-               unsigned long saved_asid = MMU_NO_ASID;
-
-               asid = vma->vm_mm->context & MMU_CONTEXT_ASID_MASK;
-               page &= PAGE_MASK;
-
-               local_irq_save(flags);
-               if (vma->vm_mm != current->mm) {
-                       saved_asid = get_asid();
-                       set_asid(asid);
-               }
-
-               __flush_tlb_page(asid, page);
-
-               if (saved_asid != MMU_NO_ASID)
-                       set_asid(saved_asid);
-               local_irq_restore(flags);
-       }
-}
-
-void flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
-                    unsigned long end)
-{
-       struct mm_struct *mm = vma->vm_mm;
-
-       if (mm->context != NO_CONTEXT) {
-               unsigned long flags;
-               int size;
-
-               local_irq_save(flags);
-               size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
-
-               if (size > (MMU_DTLB_ENTRIES / 4)) { /* Too many entries to flush */
-                       mm->context = NO_CONTEXT;
-                       if (mm == current->mm)
-                               activate_context(mm);
-               } else {
-                       unsigned long asid;
-                       unsigned long saved_asid;
-
-                       asid = mm->context & MMU_CONTEXT_ASID_MASK;
-                       saved_asid = MMU_NO_ASID;
-
-                       start &= PAGE_MASK;
-                       end += (PAGE_SIZE - 1);
-                       end &= PAGE_MASK;
-
-                       if (mm != current->mm) {
-                               saved_asid = get_asid();
-                               set_asid(asid);
-                       }
-
-                       while (start < end) {
-                               __flush_tlb_page(asid, start);
-                               start += PAGE_SIZE;
-                       }
-                       if (saved_asid != MMU_NO_ASID)
-                               set_asid(saved_asid);
-               }
-               local_irq_restore(flags);
-       }
-}
-
-/*
- * This function depends on the pages to be flushed having the G
- * (global) bit set in their pte. This is true for all
- * PAGE_KERNEL(_RO) pages.
- */
-void flush_tlb_kernel_range(unsigned long start, unsigned long end)
-{
-       unsigned long flags;
-       int size;
-
-       size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
-       if (size > (MMU_DTLB_ENTRIES / 4)) { /* Too many entries to flush */
-               flush_tlb_all();
-       } else {
-               unsigned long asid;
-
-               local_irq_save(flags);
-               asid = get_asid();
-
-               start &= PAGE_MASK;
-               end += (PAGE_SIZE - 1);
-               end &= PAGE_MASK;
-
-               while (start < end) {
-                       __flush_tlb_page(asid, start);
-                       start += PAGE_SIZE;
-               }
-               local_irq_restore(flags);
-       }
-}
-
-void flush_tlb_mm(struct mm_struct *mm)
-{
-       /* Invalidate all TLB entries of this process by getting a new ASID */
-       if (mm->context != NO_CONTEXT) {
-               unsigned long flags;
-
-               local_irq_save(flags);
-               mm->context = NO_CONTEXT;
-               if (mm == current->mm)
-                       activate_context(mm);
-               local_irq_restore(flags);
-       }
-}
-
-void flush_tlb_all(void)
-{
-       unsigned long flags;
-
-       local_irq_save(flags);
-       sysreg_write(MMUCR, sysreg_read(MMUCR) | SYSREG_BIT(MMUCR_I));
-       local_irq_restore(flags);
-}
-
-#ifdef CONFIG_PROC_FS
-
-#include <linux/seq_file.h>
-#include <linux/proc_fs.h>
-#include <linux/init.h>
-
-static void *tlb_start(struct seq_file *tlb, loff_t *pos)
-{
-       static unsigned long tlb_index;
-
-       if (*pos >= NR_TLB_ENTRIES)
-               return NULL;
-
-       tlb_index = 0;
-       return &tlb_index;
-}
-
-static void *tlb_next(struct seq_file *tlb, void *v, loff_t *pos)
-{
-       unsigned long *index = v;
-
-       if (*index >= NR_TLB_ENTRIES - 1)
-               return NULL;
-
-       ++*pos;
-       ++*index;
-       return index;
-}
-
-static void tlb_stop(struct seq_file *tlb, void *v)
-{
-
-}
-
-static int tlb_show(struct seq_file *tlb, void *v)
-{
-       unsigned int tlbehi, tlbehi_save, tlbelo, mmucr, mmucr_save;
-       unsigned long flags;
-       unsigned long *index = v;
-
-       if (*index == 0)
-               seq_puts(tlb, "ID  V G ASID VPN   PFN   AP SZ C B W D\n");
-
-       BUG_ON(*index >= NR_TLB_ENTRIES);
-
-       local_irq_save(flags);
-       mmucr_save = sysreg_read(MMUCR);
-       tlbehi_save = sysreg_read(TLBEHI);
-       mmucr = SYSREG_BFINS(DRP, *index, mmucr_save);
-       sysreg_write(MMUCR, mmucr);
-
-       /* TLBR might change the ASID */
-       __builtin_tlbr();
-       cpu_sync_pipeline();
-
-       tlbehi = sysreg_read(TLBEHI);
-       tlbelo = sysreg_read(TLBELO);
-
-       sysreg_write(MMUCR, mmucr_save);
-       sysreg_write(TLBEHI, tlbehi_save);
-       cpu_sync_pipeline();
-       local_irq_restore(flags);
-
-       seq_printf(tlb, "%2lu: %c %c %02x   %05x %05x %o  %o  %c %c %c %c\n",
-                  *index,
-                  SYSREG_BFEXT(TLBEHI_V, tlbehi) ? '1' : '0',
-                  SYSREG_BFEXT(G, tlbelo) ? '1' : '0',
-                  SYSREG_BFEXT(ASID, tlbehi),
-                  SYSREG_BFEXT(VPN, tlbehi) >> 2,
-                  SYSREG_BFEXT(PFN, tlbelo) >> 2,
-                  SYSREG_BFEXT(AP, tlbelo),
-                  SYSREG_BFEXT(SZ, tlbelo),
-                  SYSREG_BFEXT(TLBELO_C, tlbelo) ? '1' : '0',
-                  SYSREG_BFEXT(B, tlbelo) ? '1' : '0',
-                  SYSREG_BFEXT(W, tlbelo) ? '1' : '0',
-                  SYSREG_BFEXT(TLBELO_D, tlbelo) ? '1' : '0');
-
-       return 0;
-}
-
-static const struct seq_operations tlb_ops = {
-       .start          = tlb_start,
-       .next           = tlb_next,
-       .stop           = tlb_stop,
-       .show           = tlb_show,
-};
-
-static int tlb_open(struct inode *inode, struct file *file)
-{
-       return seq_open(file, &tlb_ops);
-}
-
-static const struct file_operations proc_tlb_operations = {
-       .open           = tlb_open,
-       .read           = seq_read,
-       .llseek         = seq_lseek,
-       .release        = seq_release,
-};
-
-static int __init proctlb_init(void)
-{
-       proc_create("tlb", 0, NULL, &proc_tlb_operations);
-       return 0;
-}
-late_initcall(proctlb_init);
-#endif /* CONFIG_PROC_FS */
diff --git a/arch/avr32/oprofile/Makefile b/arch/avr32/oprofile/Makefile
deleted file mode 100644 (file)
index e0eb520..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-obj-$(CONFIG_OPROFILE) += oprofile.o
-
-oprofile-y             := $(addprefix ../../../drivers/oprofile/,      \
-                               oprof.o cpu_buffer.o buffer_sync.o      \
-                               event_buffer.o oprofile_files.o         \
-                               oprofilefs.o oprofile_stats.o           \
-                               timer_int.o)
-oprofile-y             += op_model_avr32.o backtrace.o
diff --git a/arch/avr32/oprofile/backtrace.c b/arch/avr32/oprofile/backtrace.c
deleted file mode 100644 (file)
index 29cf2f1..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * AVR32 specific backtracing code for oprofile
- *
- * Copyright 2008 Weinmann GmbH
- *
- * Author: Nikolaus Voss <n.voss@weinmann.de>
- *
- * Based on i386 oprofile backtrace code by John Levon and David Smith
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- */
-
-#include <linux/oprofile.h>
-#include <linux/ptrace.h>
-#include <linux/uaccess.h>
-
-/* The first two words of each frame on the stack look like this if we have
- * frame pointers */
-struct frame_head {
-       unsigned long lr;
-       struct frame_head *fp;
-};
-
-/* copied from arch/avr32/kernel/process.c */
-static inline int valid_stack_ptr(struct thread_info *tinfo, unsigned long p)
-{
-       return (p > (unsigned long)tinfo)
-               && (p < (unsigned long)tinfo + THREAD_SIZE - 3);
-}
-
-/* copied from arch/x86/oprofile/backtrace.c */
-static struct frame_head *dump_user_backtrace(struct frame_head *head)
-{
-       struct frame_head bufhead[2];
-
-       /* Also check accessibility of one struct frame_head beyond */
-       if (!access_ok(VERIFY_READ, head, sizeof(bufhead)))
-               return NULL;
-       if (__copy_from_user_inatomic(bufhead, head, sizeof(bufhead)))
-               return NULL;
-
-       oprofile_add_trace(bufhead[0].lr);
-
-       /* frame pointers should strictly progress back up the stack
-        * (towards higher addresses) */
-       if (bufhead[0].fp <= head)
-               return NULL;
-
-       return bufhead[0].fp;
-}
-
-void avr32_backtrace(struct pt_regs * const regs, unsigned int depth)
-{
-       /* Get first frame pointer */
-       struct frame_head *head = (struct frame_head *)(regs->r7);
-
-       if (!user_mode(regs)) {
-#ifdef CONFIG_FRAME_POINTER
-               /*
-                * Traverse the kernel stack from frame to frame up to
-                * "depth" steps.
-                */
-               while (depth-- && valid_stack_ptr(task_thread_info(current),
-                                                 (unsigned long)head)) {
-                       oprofile_add_trace(head->lr);
-                       if (head->fp <= head)
-                               break;
-                       head = head->fp;
-               }
-#endif
-       } else {
-               /* Assume we have frame pointers in user mode process */
-               while (depth-- && head)
-                       head = dump_user_backtrace(head);
-       }
-}
-
-
diff --git a/arch/avr32/oprofile/op_model_avr32.c b/arch/avr32/oprofile/op_model_avr32.c
deleted file mode 100644 (file)
index 08308be..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * AVR32 Performance Counter Driver
- *
- * Copyright (C) 2005-2007 Atmel Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Author: Ronny Pedersen
- */
-#include <linux/errno.h>
-#include <linux/interrupt.h>
-#include <linux/irq.h>
-#include <linux/oprofile.h>
-#include <linux/sched.h>
-#include <linux/types.h>
-
-#include <asm/sysreg.h>
-
-#define AVR32_PERFCTR_IRQ_GROUP        0
-#define AVR32_PERFCTR_IRQ_LINE 1
-
-void avr32_backtrace(struct pt_regs * const regs, unsigned int depth);
-
-enum { PCCNT, PCNT0, PCNT1, NR_counter };
-
-struct avr32_perf_counter {
-       unsigned long   enabled;
-       unsigned long   event;
-       unsigned long   count;
-       unsigned long   unit_mask;
-       unsigned long   kernel;
-       unsigned long   user;
-
-       u32             ie_mask;
-       u32             flag_mask;
-};
-
-static struct avr32_perf_counter counter[NR_counter] = {
-       {
-               .ie_mask        = SYSREG_BIT(IEC),
-               .flag_mask      = SYSREG_BIT(FC),
-       }, {
-               .ie_mask        = SYSREG_BIT(IE0),
-               .flag_mask      = SYSREG_BIT(F0),
-       }, {
-               .ie_mask        = SYSREG_BIT(IE1),
-               .flag_mask      = SYSREG_BIT(F1),
-       },
-};
-
-static void avr32_perf_counter_reset(void)
-{
-       /* Reset all counter and disable/clear all interrupts */
-       sysreg_write(PCCR, (SYSREG_BIT(PCCR_R)
-                               | SYSREG_BIT(PCCR_C)
-                               | SYSREG_BIT(FC)
-                               | SYSREG_BIT(F0)
-                               | SYSREG_BIT(F1)));
-}
-
-static irqreturn_t avr32_perf_counter_interrupt(int irq, void *dev_id)
-{
-       struct avr32_perf_counter *ctr = dev_id;
-       struct pt_regs *regs;
-       u32 pccr;
-
-       if (likely(!(intc_get_pending(AVR32_PERFCTR_IRQ_GROUP)
-                                       & (1 << AVR32_PERFCTR_IRQ_LINE))))
-               return IRQ_NONE;
-
-       regs = get_irq_regs();
-       pccr = sysreg_read(PCCR);
-
-       /* Clear the interrupt flags we're about to handle */
-       sysreg_write(PCCR, pccr);
-
-       /* PCCNT */
-       if (ctr->enabled && (pccr & ctr->flag_mask)) {
-               sysreg_write(PCCNT, -ctr->count);
-               oprofile_add_sample(regs, PCCNT);
-       }
-       ctr++;
-       /* PCNT0 */
-       if (ctr->enabled && (pccr & ctr->flag_mask)) {
-               sysreg_write(PCNT0, -ctr->count);
-               oprofile_add_sample(regs, PCNT0);
-       }
-       ctr++;
-       /* PCNT1 */
-       if (ctr->enabled && (pccr & ctr->flag_mask)) {
-               sysreg_write(PCNT1, -ctr->count);
-               oprofile_add_sample(regs, PCNT1);
-       }
-
-       return IRQ_HANDLED;
-}
-
-static int avr32_perf_counter_create_files(struct dentry *root)
-{
-       struct dentry *dir;
-       unsigned int i;
-       char filename[4];
-
-       for (i = 0; i < NR_counter; i++) {
-               snprintf(filename, sizeof(filename), "%u", i);
-               dir = oprofilefs_mkdir(root, filename);
-
-               oprofilefs_create_ulong(dir, "enabled",
-                               &counter[i].enabled);
-               oprofilefs_create_ulong(dir, "event",
-                               &counter[i].event);
-               oprofilefs_create_ulong(dir, "count",
-                               &counter[i].count);
-
-               /* Dummy entries */
-               oprofilefs_create_ulong(dir, "kernel",
-                               &counter[i].kernel);
-               oprofilefs_create_ulong(dir, "user",
-                               &counter[i].user);
-               oprofilefs_create_ulong(dir, "unit_mask",
-                               &counter[i].unit_mask);
-       }
-
-       return 0;
-}
-
-static int avr32_perf_counter_setup(void)
-{
-       struct avr32_perf_counter *ctr;
-       u32 pccr;
-       int ret;
-       int i;
-
-       pr_debug("avr32_perf_counter_setup\n");
-
-       if (sysreg_read(PCCR) & SYSREG_BIT(PCCR_E)) {
-               printk(KERN_ERR
-                       "oprofile: setup: perf counter already enabled\n");
-               return -EBUSY;
-       }
-
-       ret = request_irq(AVR32_PERFCTR_IRQ_GROUP,
-                       avr32_perf_counter_interrupt, IRQF_SHARED,
-                       "oprofile", counter);
-       if (ret)
-               return ret;
-
-       avr32_perf_counter_reset();
-
-       pccr = 0;
-       for (i = PCCNT; i < NR_counter; i++) {
-               ctr = &counter[i];
-               if (!ctr->enabled)
-                       continue;
-
-               pr_debug("enabling counter %d...\n", i);
-
-               pccr |= ctr->ie_mask;
-
-               switch (i) {
-               case PCCNT:
-                       /* PCCNT always counts cycles, so no events */
-                       sysreg_write(PCCNT, -ctr->count);
-                       break;
-               case PCNT0:
-                       pccr |= SYSREG_BF(CONF0, ctr->event);
-                       sysreg_write(PCNT0, -ctr->count);
-                       break;
-               case PCNT1:
-                       pccr |= SYSREG_BF(CONF1, ctr->event);
-                       sysreg_write(PCNT1, -ctr->count);
-                       break;
-               }
-       }
-
-       pr_debug("oprofile: writing 0x%x to PCCR...\n", pccr);
-
-       sysreg_write(PCCR, pccr);
-
-       return 0;
-}
-
-static void avr32_perf_counter_shutdown(void)
-{
-       pr_debug("avr32_perf_counter_shutdown\n");
-
-       avr32_perf_counter_reset();
-       free_irq(AVR32_PERFCTR_IRQ_GROUP, counter);
-}
-
-static int avr32_perf_counter_start(void)
-{
-       pr_debug("avr32_perf_counter_start\n");
-
-       sysreg_write(PCCR, sysreg_read(PCCR) | SYSREG_BIT(PCCR_E));
-
-       return 0;
-}
-
-static void avr32_perf_counter_stop(void)
-{
-       pr_debug("avr32_perf_counter_stop\n");
-
-       sysreg_write(PCCR, sysreg_read(PCCR) & ~SYSREG_BIT(PCCR_E));
-}
-
-static struct oprofile_operations avr32_perf_counter_ops __initdata = {
-       .create_files   = avr32_perf_counter_create_files,
-       .setup          = avr32_perf_counter_setup,
-       .shutdown       = avr32_perf_counter_shutdown,
-       .start          = avr32_perf_counter_start,
-       .stop           = avr32_perf_counter_stop,
-       .cpu_type       = "avr32",
-};
-
-int __init oprofile_arch_init(struct oprofile_operations *ops)
-{
-       if (!(current_cpu_data.features & AVR32_FEATURE_PCTR))
-               return -ENODEV;
-
-       memcpy(ops, &avr32_perf_counter_ops,
-                       sizeof(struct oprofile_operations));
-
-       ops->backtrace = avr32_backtrace;
-
-       printk(KERN_INFO "oprofile: using AVR32 performance monitoring.\n");
-
-       return 0;
-}
-
-void oprofile_arch_exit(void)
-{
-
-}
index cb5d1a51920276d567f7c84b20001bda2f9c76ef..9cd1de954c0aca32718e3f3bd4c95f209cdeb0ae 100644 (file)
@@ -42,7 +42,6 @@
 #define EM_TILEGX      191     /* Tilera TILE-Gx */
 #define EM_BPF         247     /* Linux BPF - in-kernel virtual machine */
 #define EM_FRV         0x5441  /* Fujitsu FR-V */
-#define EM_AVR32       0x18ad  /* Atmel AVR32 */
 
 /*
  * This is an interim value that we will use until the committee comes