6781002bec
Add a structure 'sam9_smc_config' and function sam9_smc_configure() to allow the board-specific files to specify the configuration of the Static Memory Controller per chip-select. This allows the board file to specify timings for NAND flash, NOR flash or other external peripherals. This functionality can be used for all the SAM9 and CAP9 processors. (the AT91RM9200 has a different memory-controller) This patch is based on similar code in the AVR32 architecture. Signed-off-by: Andrew Victor <linux@maxim.org.za> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
34 lines
679 B
C
34 lines
679 B
C
/*
|
|
* linux/arch/arm/mach-at91/sam9_smc.
|
|
*
|
|
* Copyright (C) 2008 Andrew Victor
|
|
*
|
|
* 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.
|
|
*/
|
|
|
|
struct sam9_smc_config {
|
|
/* Setup register */
|
|
u8 ncs_read_setup;
|
|
u8 nrd_setup;
|
|
u8 ncs_write_setup;
|
|
u8 nwe_setup;
|
|
|
|
/* Pulse register */
|
|
u8 ncs_read_pulse;
|
|
u8 nrd_pulse;
|
|
u8 ncs_write_pulse;
|
|
u8 nwe_pulse;
|
|
|
|
/* Cycle register */
|
|
u16 read_cycle;
|
|
u16 write_cycle;
|
|
|
|
/* Mode register */
|
|
u32 mode;
|
|
u8 tdf_cycles:4;
|
|
};
|
|
|
|
extern void __init sam9_smc_configure(int cs, struct sam9_smc_config* config);
|