From c659b13a2fc07188f716327364f6080e9486f3de Mon Sep 17 00:00:00 2001 From: Ulf Samuelsson Date: Sat, 29 Mar 2008 23:09:46 +0000 Subject: Remove duplicate AVR32 patches, and add support for ARCH and conditional AVR32 patches --- target/device/Atmel/atngw100/atngw100_defconfig | 76 +- .../linux-2.6.23-100-avr32-atmel.2.patch | 19857 ------------------- ...3-200-fix-include-typo-for-atngw100-board.patch | 11 - .../linux-2.6.24-100-avr32-git.1.patch | 16922 ---------------- .../linux-2.6.24-600-avr32-mmc.patch | 255 - 5 files changed, 47 insertions(+), 37074 deletions(-) delete mode 100644 target/device/Atmel/atngw100/kernel-patches/linux-2.6.23-100-avr32-atmel.2.patch delete mode 100644 target/device/Atmel/atngw100/kernel-patches/linux-2.6.23-200-fix-include-typo-for-atngw100-board.patch delete mode 100644 target/device/Atmel/atngw100/kernel-patches/linux-2.6.24-100-avr32-git.1.patch delete mode 100644 target/device/Atmel/atngw100/kernel-patches/linux-2.6.24-600-avr32-mmc.patch (limited to 'target/device/Atmel/atngw100') diff --git a/target/device/Atmel/atngw100/atngw100_defconfig b/target/device/Atmel/atngw100/atngw100_defconfig index dc00f5b42..d44855d84 100644 --- a/target/device/Atmel/atngw100/atngw100_defconfig +++ b/target/device/Atmel/atngw100/atngw100_defconfig @@ -1,6 +1,6 @@ # # Automatically generated make config: don't edit -# Sat Mar 29 09:30:00 2008 +# Sat Mar 29 23:18:45 2008 # BR2_HAVE_DOT_CONFIG=y BR2_VERSION="0.10.0-svn" @@ -116,7 +116,7 @@ BR2_ROOTFS_PREFIX="rootfs" BR2_ROOTFS_SUFFIX="$(DATE)" BR2_GNU_BUILD_SUFFIX="pc-linux-gnu" BR2_GNU_TARGET_SUFFIX="linux-uclibc" -BR2_JLEVEL=1 +BR2_JLEVEL=2 # BR2_PREFER_IMA is not set # BR2_DEPRECATED is not set BR2_RECENT=y @@ -138,15 +138,26 @@ BR2_UPDATE_CONFIG=y # # Toolchain # -BR2_TOOLCHAIN_BUILDROOT=y +# BR2_TOOLCHAIN_BUILDROOT is not set # BR2_TOOLCHAIN_EXTERNAL is not set -# BR2_TOOLCHAIN_EXTERNAL_SOURCE is not set +BR2_TOOLCHAIN_EXTERNAL_SOURCE=y BR2_TOOLCHAIN_SOURCE=y -BR2_EXT_GCC_VERSION_4_1_2=y +# BR2_TOOLCHAIN_ATMEL_AVR32_4_1_2 is not set +BR2_TOOLCHAIN_ATMEL_AVR32_4_2_1=y +# BR2_TOOLCHAIN_UNKNOWNVENDOR is not set +BR2_TOOLCHAIN_ATMEL_AVR32=y +BR2_VENDOR_SITE="$(BR2_ATMEL_MIRROR)" +BR2_VENDOR_SUFFIX="-avr32" +BR2_VENDOR_BINUTILS_RELEASE="-2.1.3" +BR2_VENDOR_GCC_RELEASE="-2.1.3" +BR2_VENDOR_UCLIBC_RELEASE="-2.1.3" +BR2_VENDOR_GDB_RELEASE="-2.1.3" +BR2_VENDOR_PATCH_DIR="target/device/Atmel/toolchain/avr32" +# BR2_EXT_GCC_VERSION_4_1_2 is not set BR2_EXT_GCC_VERSION_4_2_1=y BR2_EXT_BINUTILS_VERSION_2_17=y BR2_EXT_UCLIBC_VERSION_0_9_29=y -BR2_EXT_UCLIBC_VERSION_0_9_28_3=y +# BR2_EXT_UCLIBC_VERSION_0_9_28_3 is not set # # Kernel Header Options @@ -177,7 +188,7 @@ BR2_DEFAULT_KERNEL_HEADERS="2.6.24" BR2_UCLIBC_VERSION_0_9_29=y # BR2_UCLIBC_VERSION_SNAPSHOT is not set BR2_UCLIBC_CONFIG="target/device/Atmel/uClibc.config.avr32" -# BR2_ENABLE_LOCALE is not set +BR2_ENABLE_LOCALE=y # BR2_PTHREADS_NONE is not set # BR2_PTHREADS is not set BR2_PTHREADS_OLD=y @@ -206,7 +217,7 @@ BR2_GCC_VERSION_4_2_1=y BR2_GCC_SUPPORTS_SYSROOT=y # BR2_GCC_SUPPORTS_FINEGRAINEDMTUNE is not set BR2_GCC_VERSION="4.2.1" -# BR2_TOOLCHAIN_SYSROOT is not set +BR2_TOOLCHAIN_SYSROOT=y # BR2_GCC_USE_SJLJ_EXCEPTIONS is not set BR2_EXTRA_GCC_CONFIG_OPTIONS="" BR2_GCC_CROSS_CXX=y @@ -265,7 +276,7 @@ BR2_BUSYBOX_VERSION_1_10_X=y # BR2_PACKAGE_BUSYBOX_SNAPSHOT is not set BR2_BUSYBOX_VERSION="1.10.0" BR2_PACKAGE_BUSYBOX_FULLINSTALL=y -BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_BOARD_PATH)/busybox-$(BR2_BUSYBOX_VERSION).config" +BR2_PACKAGE_BUSYBOX_CONFIG="package/busybox/busybox-1.6.0.config" BR2_PACKAGE_BUSYBOX_HIDE_OTHERS=y BR2_PACKAGE_BUSYBOX_SKELETON=y @@ -379,7 +390,7 @@ BR2_PACKAGE_IPTABLES=y # BR2_PACKAGE_LINKS is not set BR2_PACKAGE_LRZSZ=y # BR2_PACKAGE_MDNSRESPONDER is not set -# BR2_PACKAGE_MICROCOM is not set +BR2_PACKAGE_MICROCOM=y # BR2_PACKAGE_MROUTED is not set # BR2_PACKAGE_MUTT is not set BR2_PACKAGE_NBD=y @@ -576,7 +587,7 @@ BR2_TARGET_ROOTFS_JFFS2_BE=y # BR2_TARGET_ROOTFS_JFFS2_SQUASH is not set # BR2_TARGET_ROOTFS_JFFS2_SUMMARY is not set BR2_TARGET_ROOTFS_JFFS2_OUTPUT="$(IMAGE).jffs2" -BR2_TARGET_ROOTFS_JFFS2_COPYTO="" +BR2_TARGET_ROOTFS_JFFS2_COPYTO="/tftpboot" # BR2_TARGET_ROOTFS_SQUASHFS is not set BR2_TARGET_ROOTFS_TAR=y BR2_TARGET_ROOTFS_TAR_NONE=y @@ -610,14 +621,16 @@ BR2_KERNEL_LINUX_ADVANCED=y # BR2_KERNEL_LINUX is not set # BR2_KERNEL_HURD is not set BR2_PACKAGE_LINUX=y -BR2_PACKAGE_LINUX_KCONFIG="$(BR2_BOARD_PATH)/$(BR2_BOARD_NAME)-linux-2.6.22.5.config" +BR2_PACKAGE_LINUX_KCONFIG="$(BR2_BOARD_PATH)/$(BR2_BOARD_NAME)-linux-2.6.24.config" BR2_PACKAGE_LINUX_FORMAT="uImage" -BR2_KERNEL_CURRENT_VERSION="2.6.24.3" +BR2_KERNEL_CURRENT_VERSION="2.6.24.4" +BR2_KERNEL_NEXT_VERSION="2.6.25" +BR2_KERNEL_THIS_VERSION="2.6.24" BR2_KERNEL_SITE="http://ftp.kernel.org/pub/linux/kernel/v2.6/" BR2_MM_PATCH_SITE="http://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6" BR2_RC_MM_PATCH_DIR="$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)/2.6.$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)-mm$(BR2_KERNEL_MM_LEVEL)" -BR2_LINUX_2_6_STABLE=y -# BR2_LINUX_2_6_24 is not set +# BR2_LINUX_2_6_STABLE is not set +BR2_LINUX_2_6_24=y # BR2_LINUX_2_6_23 is not set # BR2_LINUX_2_6_22_10 is not set # BR2_LINUX_2_6_22_1 is not set @@ -632,22 +645,27 @@ BR2_LINUX_2_6_STABLE=y # # Patches # -BR2_KERNEL_ADD_NO_PATCH=y -# BR2_KERNEL_ADD_LATEST_MINORPATCH is not set -# BR2_KERNEL_ADD_MINORPATCH is not set -# BR2_KERNEL_ADD_LATEST_RC_PATCH is not set -# BR2_KERNEL_ADD_RC_PATCH is not set -# BR2_KERNEL_ADD_LATEST_SNAPSHOT is not set -# BR2_KERNEL_ADD_SNAPSHOT is not set -# BR2_KERNEL_ADD_LATEST_MM_PATCH is not set -# BR2_KERNEL_ADD_MM_PATCH is not set +# BR2_KERNEL_ADD_KERNEL_ORG_PATCH is not set # BR2_KERNEL_ADD_PATCH is not set +BR2_KERNEL_ARCH_PATCH_ENABLED=y +BR2_KERNEL_ARCH_PATCH_VERSION="2.6.24" +BR2_KERNEL_ARCH_PATCH_DIR="target/device/Atmel/arch-avr32/kernel-patches-$(BR2_KERNEL_ARCH_PATCH_VERSION)" +BR2_ARCH_AVR32_2_6_24=y +# BR2_ARCH_AVR32_2_6_23 is not set +# BR2_ARCH_AVR32_2_6_22_10 is not set +# BR2_ARCH_AVR32_2_6_22_1 is not set +# BR2_ARCH_AVR32_2_6_21_5 is not set +# BR2_ARCH_AVR32_2_6_20_4 is not set +# BR2_LINUX_AVR32_ISI_PATCH is not set +# BR2_LINUX_AVR32_AC97_PATCH is not set +# BR2_LINUX_AVR32_PSIF_PATCH is not set +BR2_LINUX_BOARD_PATCH=y BR2_LINUX_BSP_PATCH="" # BR2_KERNEL_PREPATCHED is not set -# BR2_KERNEL_BASE is not set +BR2_KERNEL_BASE=y # BR2_KERNEL_LATEST is not set -BR2_DOWNLOAD_LINUX26_VERSION="$(BR2_KERNEL_CURRENT_VERSION)" -BR2_LINUX26_VERSION="$(BR2_KERNEL_CURRENT_VERSION)" +BR2_DOWNLOAD_LINUX26_VERSION="$(BR2_KERNEL_THIS_VERSION)" +BR2_LINUX26_VERSION="$(BR2_KERNEL_THIS_VERSION)" # # Linux Kernel Configuration @@ -665,6 +683,6 @@ BR2_LINUX_BIN_UIMAGE=y # Destinations for linux kernel binaries # BR2_LINUX_COPYTO_ROOTFS=y -# BR2_LINUX_COPYTO_TFTPBOOT is not set -BR2_LINUX_COPYTO="n" +BR2_LINUX_COPYTO_TFTPBOOT=y +BR2_LINUX_COPYTO="" # BR2_LINUX_COPY_CONFIGURATION is not set diff --git a/target/device/Atmel/atngw100/kernel-patches/linux-2.6.23-100-avr32-atmel.2.patch b/target/device/Atmel/atngw100/kernel-patches/linux-2.6.23-100-avr32-atmel.2.patch deleted file mode 100644 index 1f0a5f542..000000000 --- a/target/device/Atmel/atngw100/kernel-patches/linux-2.6.23-100-avr32-atmel.2.patch +++ /dev/null @@ -1,19857 +0,0 @@ - MAINTAINERS | 7 + - Makefile | 2 +- - arch/avr32/Kconfig | 34 +- - arch/avr32/Makefile | 3 +- - arch/avr32/boards/atngw100/Kconfig | 12 + - arch/avr32/boards/atngw100/flash.c | 5 +- - arch/avr32/boards/atngw100/setup.c | 26 +- - arch/avr32/boards/atstk1000/Kconfig | 82 +- - arch/avr32/boards/atstk1000/Makefile | 2 + - arch/avr32/boards/atstk1000/atstk1000.h | 2 + - arch/avr32/boards/atstk1000/atstk1002.c | 148 ++- - arch/avr32/boards/atstk1000/atstk1003.c | 181 +++ - arch/avr32/boards/atstk1000/atstk1004.c | 152 +++ - arch/avr32/boards/atstk1000/flash.c | 5 +- - arch/avr32/boards/atstk1000/setup.c | 64 + - arch/avr32/configs/atngw100_defconfig | 210 +++- - arch/avr32/configs/atstk1002_defconfig | 482 +++++-- - arch/avr32/configs/atstk1003_defconfig | 1045 ++++++++++++++ - arch/avr32/configs/atstk1004_defconfig | 722 ++++++++++ - arch/avr32/drivers/Makefile | 1 + - arch/avr32/drivers/dw-dmac.c | 761 +++++++++++ - arch/avr32/drivers/dw-dmac.h | 42 + - arch/avr32/kernel/Makefile | 6 +- - arch/avr32/kernel/dma-controller.c | 34 + - arch/avr32/kernel/entry-avr32b.S | 26 +- - arch/avr32/kernel/setup.c | 2 +- - arch/avr32/kernel/vmlinux.lds.S | 143 ++ - arch/avr32/kernel/vmlinux.lds.c | 142 -- - arch/avr32/mach-at32ap/Kconfig | 19 +- - arch/avr32/mach-at32ap/Makefile | 5 +- - arch/avr32/mach-at32ap/at32ap7000.c | 1324 ------------------ - arch/avr32/mach-at32ap/at32ap700x.c | 1754 ++++++++++++++++++++++++ - arch/avr32/mach-at32ap/clock.c | 116 ++ - arch/avr32/mach-at32ap/gpio-dev.c | 573 ++++++++ - arch/avr32/mach-at32ap/hsmc.c | 129 ++- - arch/avr32/mach-at32ap/pio.c | 80 ++ - arch/avr32/mach-at32ap/pm.h | 8 + - arch/avr32/mm/dma-coherent.c | 7 + - arch/avr32/mm/init.c | 12 +- - drivers/char/watchdog/Kconfig | 2 +- - drivers/char/watchdog/at32ap700x_wdt.c | 69 +- - drivers/i2c/busses/Kconfig | 8 + - drivers/i2c/busses/Makefile | 1 + - drivers/i2c/busses/i2c-atmeltwi.c | 436 ++++++ - drivers/i2c/busses/i2c-atmeltwi.h | 117 ++ - drivers/misc/Kconfig | 9 + - drivers/misc/Makefile | 1 + - drivers/misc/atmel-ssc.c | 174 +++ - drivers/mmc/host/Kconfig | 10 + - drivers/mmc/host/Makefile | 1 + - drivers/mmc/host/atmel-mci.c | 1176 ++++++++++++++++ - drivers/mmc/host/atmel-mci.h | 192 +++ - drivers/mtd/chips/cfi_cmdset_0001.c | 43 + - drivers/mtd/chips/cfi_cmdset_0002.c | 6 +- - drivers/pcmcia/Kconfig | 7 + - drivers/pcmcia/Makefile | 1 + - drivers/pcmcia/at32_cf.c | 531 ++++++++ - drivers/pcmcia/cistpl.c | 48 +- - drivers/spi/atmel_spi.c | 4 +- - drivers/usb/gadget/Kconfig | 26 +- - drivers/usb/gadget/Makefile | 1 + - drivers/usb/gadget/atmel_usba_udc.c | 2038 ++++++++++++++++++++++++++++ - drivers/usb/gadget/atmel_usba_udc.h | 350 +++++ - drivers/video/atmel_lcdfb.c | 6 +- - drivers/video/backlight/Kconfig | 12 + - drivers/video/backlight/Makefile | 2 + - drivers/video/backlight/ltv350qv.c | 339 +++++ - drivers/video/backlight/ltv350qv.h | 95 ++ - include/asm-avr32/arch-at32ap/at32ap7000.h | 35 - - include/asm-avr32/arch-at32ap/at32ap700x.h | 35 + - include/asm-avr32/arch-at32ap/board.h | 39 + - include/asm-avr32/arch-at32ap/cpu.h | 2 +- - include/asm-avr32/arch-at32ap/io.h | 4 +- - include/asm-avr32/arch-at32ap/portmux.h | 13 + - include/asm-avr32/arch-at32ap/smc.h | 51 +- - include/asm-avr32/dma-controller.h | 166 +++ - include/asm-avr32/dma-mapping.h | 17 +- - include/asm-avr32/system.h | 13 +- - include/asm-avr32/unistd.h | 13 + - include/linux/atmel-ssc.h | 312 +++++ - include/linux/spi/at73c213.h | 25 + - include/pcmcia/cs_types.h | 2 +- - init/do_mounts.c | 8 +- - scripts/checkstack.pl | 5 + - sound/Kconfig | 6 + - sound/Makefile | 3 +- - sound/avr32/Kconfig | 11 + - sound/avr32/Makefile | 3 + - sound/avr32/ac97c.c | 914 +++++++++++++ - sound/avr32/ac97c.h | 71 + - sound/oss/Kconfig | 4 + - sound/oss/Makefile | 1 + - sound/oss/at32_abdac.c | 722 ++++++++++ - sound/oss/at32_abdac.h | 59 + - sound/spi/Kconfig | 31 + - sound/spi/Makefile | 5 + - sound/spi/at73c213.c | 1121 +++++++++++++++ - sound/spi/at73c213.h | 119 ++ - 98 files changed, 16057 insertions(+), 1826 deletions(-) - create mode 100644 arch/avr32/boards/atngw100/Kconfig - create mode 100644 arch/avr32/boards/atstk1000/atstk1003.c - create mode 100644 arch/avr32/boards/atstk1000/atstk1004.c - create mode 100644 arch/avr32/configs/atstk1003_defconfig - create mode 100644 arch/avr32/configs/atstk1004_defconfig - create mode 100644 arch/avr32/drivers/Makefile - create mode 100644 arch/avr32/drivers/dw-dmac.c - create mode 100644 arch/avr32/drivers/dw-dmac.h - create mode 100644 arch/avr32/kernel/dma-controller.c - create mode 100644 arch/avr32/kernel/vmlinux.lds.S - delete mode 100644 arch/avr32/kernel/vmlinux.lds.c - delete mode 100644 arch/avr32/mach-at32ap/at32ap7000.c - create mode 100644 arch/avr32/mach-at32ap/at32ap700x.c - create mode 100644 arch/avr32/mach-at32ap/gpio-dev.c - create mode 100644 drivers/i2c/busses/i2c-atmeltwi.c - create mode 100644 drivers/i2c/busses/i2c-atmeltwi.h - create mode 100644 drivers/misc/atmel-ssc.c - create mode 100644 drivers/mmc/host/atmel-mci.c - create mode 100644 drivers/mmc/host/atmel-mci.h - create mode 100644 drivers/pcmcia/at32_cf.c - create mode 100644 drivers/usb/gadget/atmel_usba_udc.c - create mode 100644 drivers/usb/gadget/atmel_usba_udc.h - create mode 100644 drivers/video/backlight/ltv350qv.c - create mode 100644 drivers/video/backlight/ltv350qv.h - delete mode 100644 include/asm-avr32/arch-at32ap/at32ap7000.h - create mode 100644 include/asm-avr32/arch-at32ap/at32ap700x.h - create mode 100644 include/asm-avr32/dma-controller.h - create mode 100644 include/linux/atmel-ssc.h - create mode 100644 include/linux/spi/at73c213.h - create mode 100644 sound/avr32/Kconfig - create mode 100644 sound/avr32/Makefile - create mode 100644 sound/avr32/ac97c.c - create mode 100644 sound/avr32/ac97c.h - create mode 100644 sound/oss/at32_abdac.c - create mode 100644 sound/oss/at32_abdac.h - create mode 100644 sound/spi/Kconfig - create mode 100644 sound/spi/Makefile - create mode 100644 sound/spi/at73c213.c - create mode 100644 sound/spi/at73c213.h - -diff --git a/MAINTAINERS b/MAINTAINERS -index 9a91d9e..587afe3 100644 ---- a/MAINTAINERS -+++ b/MAINTAINERS -@@ -669,6 +669,13 @@ P: Haavard Skinnemoen - M: hskinnemoen@atmel.com - S: Supported - -+ATMEL USBA UDC DRIVER -+P: Haavard Skinnemoen -+M: hskinnemoen@atmel.com -+L: kernel@avr32linux.org -+W: http://avr32linux.org/twiki/bin/view/Main/AtmelUsbDeviceDriver -+S: Supported -+ - ATMEL WIRELESS DRIVER - P: Simon Kelley - M: simon@thekelleys.org.uk -diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig -index d12346a..62913a4 100644 ---- a/arch/avr32/Kconfig -+++ b/arch/avr32/Kconfig -@@ -87,19 +87,36 @@ config PLATFORM_AT32AP - select MMU - select PERFORMANCE_COUNTERS - -+config CPU_AT32AP700X -+ bool -+ select PLATFORM_AT32AP -+ - choice - prompt "AVR32 CPU type" - default CPU_AT32AP7000 - - config CPU_AT32AP7000 - bool "AT32AP7000" -- select PLATFORM_AT32AP -+ select CPU_AT32AP700X -+ -+config CPU_AT32AP7001 -+ bool "AT32AP7001" -+ select CPU_AT32AP700X -+ -+config CPU_AT32AP7002 -+ bool "AT32AP7002" -+ select CPU_AT32AP700X -+ - endchoice - - # - # CPU Daughterboards for ATSTK1000 - config BOARD_ATSTK1002 - bool -+config BOARD_ATSTK1003 -+ bool -+config BOARD_ATSTK1004 -+ bool - - choice - prompt "AVR32 board type" -@@ -108,6 +125,8 @@ choice - config BOARD_ATSTK1000 - bool "ATSTK1000 evaluation board" - select BOARD_ATSTK1002 if CPU_AT32AP7000 -+ select BOARD_ATSTK1003 if CPU_AT32AP7001 -+ select BOARD_ATSTK1004 if CPU_AT32AP7002 - - config BOARD_ATNGW100 - bool "ATNGW100 Network Gateway" -@@ -116,6 +135,9 @@ endchoice - if BOARD_ATSTK1000 - source "arch/avr32/boards/atstk1000/Kconfig" - endif -+if BOARD_ATNGW100 -+source "arch/avr32/boards/atngw100/Kconfig" -+endif - - choice - prompt "Boot loader type" -@@ -129,15 +151,15 @@ source "arch/avr32/mach-at32ap/Kconfig" - - config LOAD_ADDRESS - hex -- default 0x10000000 if LOADER_U_BOOT=y && CPU_AT32AP7000=y -+ default 0x10000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y - - config ENTRY_ADDRESS - hex -- default 0x90000000 if LOADER_U_BOOT=y && CPU_AT32AP7000=y -+ default 0x90000000 if LOADER_U_BOOT=y && CPU_AT32AP700X=y - - config PHYS_OFFSET - hex -- default 0x10000000 if CPU_AT32AP7000=y -+ default 0x10000000 if CPU_AT32AP700X=y - - source "kernel/Kconfig.preempt" - -@@ -175,6 +197,10 @@ config OWNERSHIP_TRACE - enabling Nexus-compliant debuggers to keep track of the PID of the - currently executing task. - -+config DW_DMAC -+ tristate "Synopsys DesignWare DMA Controller support" -+ default y if CPU_AT32AP7000 -+ - # FPU emulation goes here - - source "kernel/Kconfig.hz" -diff --git a/arch/avr32/Makefile b/arch/avr32/Makefile -index dc6bc01..96f0030 100644 ---- a/arch/avr32/Makefile -+++ b/arch/avr32/Makefile -@@ -16,7 +16,7 @@ AFLAGS += -mrelax -mno-pic - CFLAGS_MODULE += -mno-relax - LDFLAGS_vmlinux += --relax - --cpuflags-$(CONFIG_CPU_AT32AP7000) += -mcpu=ap7000 -+cpuflags-$(CONFIG_PLATFORM_AT32AP) += -march=ap - - CFLAGS += $(cpuflags-y) - AFLAGS += $(cpuflags-y) -@@ -31,6 +31,7 @@ core-$(CONFIG_BOARD_ATNGW100) += arch/avr32/boards/atngw100/ - core-$(CONFIG_LOADER_U_BOOT) += arch/avr32/boot/u-boot/ - core-y += arch/avr32/kernel/ - core-y += arch/avr32/mm/ -+drivers-y += arch/avr32/drivers/ - libs-y += arch/avr32/lib/ - - archincdir-$(CONFIG_PLATFORM_AT32AP) := arch-at32ap -diff --git a/arch/avr32/boards/atngw100/Kconfig b/arch/avr32/boards/atngw100/Kconfig -new file mode 100644 -index 0000000..5d922df ---- /dev/null -+++ b/arch/avr32/boards/atngw100/Kconfig -@@ -0,0 +1,12 @@ -+# NGW100 customization -+ -+config BOARD_ATNGW100_I2C_GPIO -+ bool "Use GPIO for i2c instead of built-in TWI module" -+ help -+ The driver for the built-in TWI module has been plagued by -+ various problems, while the i2c-gpio driver is based on the -+ trusty old i2c-algo-bit bitbanging engine, making it work -+ on pretty much any setup. -+ -+ Choose 'Y' here if you're having i2c-related problems and -+ want to rule out the i2c bus driver. -diff --git a/arch/avr32/boards/atngw100/flash.c b/arch/avr32/boards/atngw100/flash.c -index f9b32a8..b07ae63 100644 ---- a/arch/avr32/boards/atngw100/flash.c -+++ b/arch/avr32/boards/atngw100/flash.c -@@ -15,7 +15,7 @@ - - #include - --static struct smc_config flash_config __initdata = { -+static struct smc_timing flash_timing __initdata = { - .ncs_read_setup = 0, - .nrd_setup = 40, - .ncs_write_setup = 0, -@@ -28,7 +28,9 @@ static struct smc_config flash_config __initdata = { - - .read_cycle = 120, - .write_cycle = 120, -+}; - -+static struct smc_config flash_config __initdata = { - .bus_width = 2, - .nrd_controlled = 1, - .nwe_controlled = 1, -@@ -82,6 +84,7 @@ 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"); -diff --git a/arch/avr32/boards/atngw100/setup.c b/arch/avr32/boards/atngw100/setup.c -index ef80156..2a5f587 100644 ---- a/arch/avr32/boards/atngw100/setup.c -+++ b/arch/avr32/boards/atngw100/setup.c -@@ -42,6 +42,11 @@ static struct spi_board_info spi0_board_info[] __initdata = { - }, - }; - -+static struct mci_platform_data __initdata mci0_data = { -+ .detect_pin = GPIO_PIN_PC(25), -+ .wp_pin = GPIO_PIN_PE(0), -+}; -+ - /* - * The next two functions should go away as the boot loader is - * supposed to initialize the macb address registers with a valid -@@ -124,9 +129,13 @@ static struct platform_device ngw_gpio_leds = { - } - }; - -+#ifdef CONFIG_BOARD_ATNGW100_I2C_GPIO - static struct i2c_gpio_platform_data i2c_gpio_data = { -- .sda_pin = GPIO_PIN_PA(6), -- .scl_pin = GPIO_PIN_PA(7), -+ .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 = { -@@ -136,6 +145,7 @@ static struct platform_device i2c_gpio_device = { - .platform_data = &i2c_gpio_data, - }, - }; -+#endif - - static int __init atngw100_init(void) - { -@@ -154,6 +164,8 @@ static int __init atngw100_init(void) - set_hw_addr(at32_add_device_eth(1, ð_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); - - for (i = 0; i < ARRAY_SIZE(ngw_leds); i++) { - at32_select_gpio(ngw_leds[i].gpio, -@@ -161,9 +173,15 @@ static int __init atngw100_init(void) - } - platform_device_register(&ngw_gpio_leds); - -- at32_select_gpio(i2c_gpio_data.sda_pin, 0); -- at32_select_gpio(i2c_gpio_data.scl_pin, 0); -+#ifdef CONFIG_BOARD_ATNGW100_I2C_GPIO -+ 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); -+#else -+ at32_add_device_twi(0); -+#endif - - return 0; - } -diff --git a/arch/avr32/boards/atstk1000/Kconfig b/arch/avr32/boards/atstk1000/Kconfig -index 718578f..aac73a6 100644 ---- a/arch/avr32/boards/atstk1000/Kconfig -+++ b/arch/avr32/boards/atstk1000/Kconfig -@@ -1,34 +1,34 @@ - # STK1000 customization - --if BOARD_ATSTK1002 -+if BOARD_ATSTK1000 - --config BOARD_ATSTK1002_CUSTOM -- bool "Non-default STK-1002 jumper settings" -+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_ATSTK1002_CUSTOM -+if BOARD_ATSTK100X_CUSTOM - --config BOARD_ATSTK1002_SW1_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_ATSTK1002_SW2_CUSTOM -+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_ATSTK1002_SW3_CUSTOM -+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_ATSTK1002_SW4_CUSTOM -+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 -@@ -36,27 +36,29 @@ config BOARD_ATSTK1002_SW4_CUSTOM - - 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_ATSTK1002_SPI1 -+config BOARD_ATSTK100X_SPI1 - bool "Configure SPI1 controller" -- depends on !BOARD_ATSTK1002_SW4_CUSTOM -+ 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_ATSTK1002_J2_LED -+config BOARD_ATSTK1000_J2_LED - bool -- default BOARD_ATSTK1002_J2_LED8 || BOARD_ATSTK1002_J2_RGB -+ default BOARD_ATSTK1000_J2_LED8 || BOARD_ATSTK1000_J2_RGB - - choice - prompt "LEDs connected to J2:" -- depends on LEDS_GPIO && !BOARD_ATSTK1002_SW4_CUSTOM -+ depends on LEDS_GPIO && !BOARD_ATSTK100X_SW4_CUSTOM - optional - help - Select this if you have jumpered the J2 jumper block to the -@@ -64,16 +66,64 @@ choice - IDC cable. A default "heartbeat" trigger is provided, but - you can of course override this. - --config BOARD_ATSTK1002_J2_LED8 -+config BOARD_ATSTK1000_J2_LED8 - bool "LED0..LED7" - help - Select this if J2 is jumpered to LED0..LED7 amber leds. - --config BOARD_ATSTK1002_J2_RGB -+config BOARD_ATSTK1000_J2_RGB - bool "RGB leds" - help - Select this if J2 is jumpered to the RGB leds. - - endchoice - --endif # stk 1002 -+config BOARD_ATSTK1000_EXTDAC -+ bool -+ depends on !BOARD_ATSTK100X_SW1_CUSTOM && !BOARD_ATSTK100X_SW3_CUSTOM -+ default y -+ -+config BOARD_ATSTK100X_ENABLE_AC97 -+ bool "Use AC97C instead of ABDAC" -+ help -+ Select this if you want to use the built-in AC97 controller -+ instead of the built-in Audio Bitstream DAC. These share -+ the same I/O pins on the AP7000, so both can't be enabled -+ at the same time. -+ -+ Note that the STK1000 kit doesn't ship with an AC97 codec on -+ board, so say N unless you've got an expansion board with an -+ AC97 codec on it that you want to use. -+ -+config BOARD_ATSTK1000_CF_HACKS -+ bool "ATSTK1000 CompactFlash hacks" -+ depends on !BOARD_ATSTK100X_SW4_CUSTOM -+ help -+ Select this if you have re-routed the CompactFlash RESET and -+ CD signals to GPIOs on your STK1000. This is necessary for -+ reset and card detection to work properly, although some CF -+ cards may be able to cope without reset. -+ -+config BOARD_ATSTK1000_CF_RESET_PIN -+ hex "CompactFlash RESET pin" -+ default 0x30 -+ depends on BOARD_ATSTK1000_CF_HACKS -+ help -+ Select which GPIO pin to use for the CompactFlash RESET -+ signal. This is specified as a hexadecimal number and should -+ be defined as 0x20 * gpio_port + pin. -+ -+ The default is 0x30, which is pin 16 on PIOB, aka GPIO14. -+ -+config BOARD_ATSTK1000_CF_DETECT_PIN -+ hex "CompactFlash DETECT pin" -+ default 0x3e -+ depends on BOARD_ATSTK1000_CF_HACKS -+ help -+ Select which GPIO pin to use for the CompactFlash CD -+ signal. This is specified as a hexadecimal number and should -+ be defined as 0x20 * gpio_port + pin. -+ -+ The default is 0x3e, which is pin 30 on PIOB, aka GPIO15. -+ -+endif # stk 1000 -diff --git a/arch/avr32/boards/atstk1000/Makefile b/arch/avr32/boards/atstk1000/Makefile -index 8e09922..beead86 100644 ---- a/arch/avr32/boards/atstk1000/Makefile -+++ b/arch/avr32/boards/atstk1000/Makefile -@@ -1,2 +1,4 @@ - obj-y += setup.o flash.o - obj-$(CONFIG_BOARD_ATSTK1002) += atstk1002.o -+obj-$(CONFIG_BOARD_ATSTK1003) += atstk1003.o -+obj-$(CONFIG_BOARD_ATSTK1004) += atstk1004.o -diff --git a/arch/avr32/boards/atstk1000/atstk1000.h b/arch/avr32/boards/atstk1000/atstk1000.h -index 9a49ed0..9392d32 100644 ---- a/arch/avr32/boards/atstk1000/atstk1000.h -+++ b/arch/avr32/boards/atstk1000/atstk1000.h -@@ -12,4 +12,6 @@ - - extern struct atmel_lcdfb_info 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 -index c9981b7..d30de89 100644 ---- a/arch/avr32/boards/atstk1000/atstk1002.c -+++ b/arch/avr32/boards/atstk1000/atstk1002.c -@@ -11,17 +11,17 @@ - #include - #include - #include --#include - #include - #include - #include - #include -+#include - - #include