The patch titled AVR32 MTD: AT49BV6416 platform device for ATSTK1000 has been added to the -mm tree. Its filename is avr32-mtd-at49bv6416-platform-device-for-atstk1000.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: AVR32 MTD: AT49BV6416 platform device for ATSTK1000 From: Haavard Skinnemoen <hskinnemoen@xxxxxxxxx> FRegister a platform device for the AT49BV6416 NOR flash chip on the ATSTK1000 development board for use by the physmap MTD driver. The SMC timings are set up before the platform device is registered so that no board-specific mapping driver is necessary. Signed-off-by: Haavard Skinnemoen <hskinnemoen@xxxxxxxxx> Cc: David Woodhouse <dwmw2@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- arch/avr32/boards/atstk1000/Makefile | 2 arch/avr32/boards/atstk1000/flash.c | 95 +++++++++++++++++++++++++ 2 files changed, 96 insertions(+), 1 deletion(-) diff -puN arch/avr32/boards/atstk1000/Makefile~avr32-mtd-at49bv6416-platform-device-for-atstk1000 arch/avr32/boards/atstk1000/Makefile --- a/arch/avr32/boards/atstk1000/Makefile~avr32-mtd-at49bv6416-platform-device-for-atstk1000 +++ a/arch/avr32/boards/atstk1000/Makefile @@ -1,2 +1,2 @@ -obj-y += setup.o spi.o +obj-y += setup.o spi.o flash.o obj-$(CONFIG_BOARD_ATSTK1002) += atstk1002.o diff -puN /dev/null arch/avr32/boards/atstk1000/flash.c --- /dev/null +++ a/arch/avr32/boards/atstk1000/flash.c @@ -0,0 +1,95 @@ +/* + * 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 <asm/arch/smc.h> + +static struct smc_config flash_config __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, + + .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; + + 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); _ Patches currently in -mm which might be from hskinnemoen@xxxxxxxxx are git-mtd.patch avr32-arch.patch avr32-config_debug_bugverbose-and-config_frame_pointer.patch avr32-fix-invalid-constraints-for-stcond.patch avr32-add-support-for-irq-flags-state-tracing.patch avr32-turn-off-support-for-discontigmem-and-sparsemem.patch avr32-always-enable-config_embedded.patch avr32-export-the-find__bit-functions.patch avr32-add-defconfig-for-at32stk1002.patch avr32-use-autoconf-instead-of-marker.patch avr32-dont-assume-anything-about-max_nr_zones.patch avr32-add-i-o-port-access-primitives.patch avr32-use-linux-pfnh.patch avr32-kill-config_discontigmem-support-completely.patch avr32-fix-bug-in-__avr32_asr64.patch avr32-switch-to-generic-timekeeping-framework.patch avr32-set-kbuild_defconfig.patch avr32-kprobes-compile-fix.patch avr32-asm-ioh-should-include-asm-byteorderh.patch avr32-fix-output-constraints-in-asm-bitopsh.patch avr32-standardize-pxx_page-macros-fix.patch avr32-rename-at32stk100x-atstk100x.patch avr32-dont-leave-dbe-set-when-resetting-cpu.patch avr32-make-prot_write-prot_exec-imply-prot_read.patch avr32-remove-set_wmb.patch avr32-use-parse_early_param.patch avr32-mtd-static-memory-controller-driver-try-2.patch avr32-mtd-unlock-flash-if-necessary-try-2.patch avr32-mtd-at49bv6416-platform-device-for-atstk1000.patch generic-ioremap_page_range-implementation.patch generic-ioremap_page_range-implementation-fix.patch generic-ioremap_page_range-implementation-nommu-fix.patch generic-ioremap_page_range-flush_cache_vmap.patch generic-ioremap_page_range-alpha-conversion.patch generic-ioremap_page_range-avr32-conversion.patch generic-ioremap_page_range-cris-conversion.patch generic-ioremap_page_range-i386-conversion.patch generic-ioremap_page_range-i386-conversion-fix.patch generic-ioremap_page_range-m32r-conversion.patch generic-ioremap_page_range-mips-conversion.patch generic-ioremap_page_range-mips-conversion-fix.patch generic-ioremap_page_range-parisc-conversion.patch generic-ioremap_page_range-s390-conversion.patch generic-ioremap_page_range-sh-conversion.patch generic-ioremap_page_range-sh64-conversion.patch generic-ioremap_page_range-x86_64-conversion.patch generic-ioremap_page_range-x86_64-conversion-fix.patch avr32-implement-kernel_execve.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html