aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-at91/board-qil-a9260.c
diff options
context:
space:
mode:
authorAndrew Victor <linux@maxim.org.za>2008-10-06 15:05:35 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2008-12-01 12:18:13 -0500
commit8cdae51aa951e22bc9134cc94c30d1206c84ea8e (patch)
treede798de64c11336cef860a2c95c2ab998cec5ec4 /arch/arm/mach-at91/board-qil-a9260.c
parent461d3b4dcf2b3b92f819b668d16b36a87046fd98 (diff)
[ARM] 5289/1: [AT91] Convert boards to use sam9_smc_configure()
Convert the SAM9 and CAP9 board-specific files to make use of the sam9_smc_configure() method to configure the memory-controller for external peripherals. The following boards have been modified: cam60 : NAND cap9adk : NAND, NOR qil-a9260 : NAND sam9-l9260 : NAND sam9260ek : NAND sam9261ek : DM9000 Ethernet, NAND sam9263 : NAND sam9g20ek : NAND sam9rlek : NAND usb-a9260 : NAND usb-a9263 .: NAND Signed-off-by: Andrew Victor <linux@maxim.org.za> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-at91/board-qil-a9260.c')
-rw-r--r--arch/arm/mach-at91/board-qil-a9260.c35
1 files changed, 29 insertions, 6 deletions
diff --git a/arch/arm/mach-at91/board-qil-a9260.c b/arch/arm/mach-at91/board-qil-a9260.c
index cfb4571a2e27..4cff9a7e61d2 100644
--- a/arch/arm/mach-at91/board-qil-a9260.c
+++ b/arch/arm/mach-at91/board-qil-a9260.c
@@ -41,8 +41,10 @@
41#include <mach/hardware.h> 41#include <mach/hardware.h>
42#include <mach/board.h> 42#include <mach/board.h>
43#include <mach/gpio.h> 43#include <mach/gpio.h>
44#include <mach/at91sam9_smc.h>
44#include <mach/at91_shdwc.h> 45#include <mach/at91_shdwc.h>
45 46
47#include "sam9_smc.h"
46#include "generic.h" 48#include "generic.h"
47 49
48 50
@@ -147,13 +149,34 @@ static struct atmel_nand_data __initdata ek_nand_data = {
147 .rdy_pin = AT91_PIN_PC13, 149 .rdy_pin = AT91_PIN_PC13,
148 .enable_pin = AT91_PIN_PC14, 150 .enable_pin = AT91_PIN_PC14,
149 .partition_info = nand_partitions, 151 .partition_info = nand_partitions,
150#if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16)
151 .bus_width_16 = 1,
152#else
153 .bus_width_16 = 0,
154#endif
155}; 152};
156 153
154static struct sam9_smc_config __initdata ek_nand_smc_config = {
155 .ncs_read_setup = 0,
156 .nrd_setup = 1,
157 .ncs_write_setup = 0,
158 .nwe_setup = 1,
159
160 .ncs_read_pulse = 3,
161 .nrd_pulse = 3,
162 .ncs_write_pulse = 3,
163 .nwe_pulse = 3,
164
165 .read_cycle = 5,
166 .write_cycle = 5,
167
168 .mode = AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE | AT91_SMC_DBW_8,
169 .tdf_cycles = 2,
170};
171
172static void __init ek_add_device_nand(void)
173{
174 /* configure chip-select 3 (NAND) */
175 sam9_smc_configure(3, &ek_nand_smc_config);
176
177 at91_add_device_nand(&ek_nand_data);
178}
179
157/* 180/*
158 * MCI (SD/MMC) 181 * MCI (SD/MMC)
159 */ 182 */
@@ -227,7 +250,7 @@ static void __init ek_board_init(void)
227 /* SPI */ 250 /* SPI */
228 at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices)); 251 at91_add_device_spi(ek_spi_devices, ARRAY_SIZE(ek_spi_devices));
229 /* NAND */ 252 /* NAND */
230 at91_add_device_nand(&ek_nand_data); 253 ek_add_device_nand();
231 /* I2C */ 254 /* I2C */
232 at91_add_device_i2c(NULL, 0); 255 at91_add_device_i2c(NULL, 0);
233 /* Ethernet */ 256 /* Ethernet */