summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2011-09-19 14:15:43 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2011-09-20 21:12:46 +0200
commitafdfa915ce152341474f21d1260d0a7c96bc9b2f (patch)
tree31478aa8f44b2cc1983821c7715be7225d499588 /arch
parent808ec3192b9f7b421807426cf2c28313d01cbd27 (diff)
downloadbarebox-afdfa915ce152341474f21d1260d0a7c96bc9b2f.tar.gz
barebox-afdfa915ce152341474f21d1260d0a7c96bc9b2f.tar.xz
at91: nand switch ecc base to resource
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boards/at91sam9260ek/init.c2
-rw-r--r--arch/arm/boards/at91sam9261ek/init.c1
-rw-r--r--arch/arm/boards/at91sam9263ek/init.c2
-rw-r--r--arch/arm/boards/pm9263/init.c2
-rw-r--r--arch/arm/mach-at91/at91sam9260_devices.c17
-rw-r--r--arch/arm/mach-at91/at91sam9263_devices.c17
-rw-r--r--arch/arm/mach-at91/at91sam9g45_devices.c20
-rw-r--r--arch/arm/mach-at91/include/mach/board.h1
8 files changed, 45 insertions, 17 deletions
diff --git a/arch/arm/boards/at91sam9260ek/init.c b/arch/arm/boards/at91sam9260ek/init.c
index e4b98bf576..8fab557d79 100644
--- a/arch/arm/boards/at91sam9260ek/init.c
+++ b/arch/arm/boards/at91sam9260ek/init.c
@@ -63,8 +63,6 @@ static struct atmel_nand_data nand_pdata = {
.ale = 21,
.cle = 22,
/* .det_pin = ... not connected */
- .ecc_base = (void __iomem *)(AT91_BASE_SYS + AT91_ECC),
- .ecc_mode = NAND_ECC_SOFT,
.rdy_pin = AT91_PIN_PC13,
.enable_pin = AT91_PIN_PC14,
#if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16)
diff --git a/arch/arm/boards/at91sam9261ek/init.c b/arch/arm/boards/at91sam9261ek/init.c
index 73b411add0..69111a0099 100644
--- a/arch/arm/boards/at91sam9261ek/init.c
+++ b/arch/arm/boards/at91sam9261ek/init.c
@@ -43,7 +43,6 @@ static struct atmel_nand_data nand_pdata = {
.ale = 22,
.cle = 21,
/* .det_pin = ... not connected */
- .ecc_mode = NAND_ECC_SOFT,
.rdy_pin = AT91_PIN_PC15,
.enable_pin = AT91_PIN_PC14,
#if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16)
diff --git a/arch/arm/boards/at91sam9263ek/init.c b/arch/arm/boards/at91sam9263ek/init.c
index 9e0981fe95..278e312c6d 100644
--- a/arch/arm/boards/at91sam9263ek/init.c
+++ b/arch/arm/boards/at91sam9263ek/init.c
@@ -44,8 +44,6 @@ static struct atmel_nand_data nand_pdata = {
.ale = 21,
.cle = 22,
/* .det_pin = ... not connected */
- .ecc_base = (void __iomem *)(AT91_BASE_SYS + AT91_ECC0),
- .ecc_mode = NAND_ECC_SOFT,
.rdy_pin = AT91_PIN_PA22,
.enable_pin = AT91_PIN_PD15,
#if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16)
diff --git a/arch/arm/boards/pm9263/init.c b/arch/arm/boards/pm9263/init.c
index a1fe0cd46f..8f451e8edf 100644
--- a/arch/arm/boards/pm9263/init.c
+++ b/arch/arm/boards/pm9263/init.c
@@ -43,8 +43,6 @@ static struct atmel_nand_data nand_pdata = {
.ale = 21,
.cle = 22,
/* .det_pin = ... not connected */
- .ecc_base = (void __iomem *)(AT91_BASE_SYS + AT91_ECC0),
- .ecc_mode = NAND_ECC_SOFT,
.rdy_pin = AT91_PIN_PB30,
.enable_pin = AT91_PIN_PD15,
#if defined(CONFIG_MTD_NAND_ATMEL_BUSWIDTH_16)
diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c
index 4540f4bf5d..460764677d 100644
--- a/arch/arm/mach-at91/at91sam9260_devices.c
+++ b/arch/arm/mach-at91/at91sam9260_devices.c
@@ -63,6 +63,19 @@ void at91_add_device_eth(struct at91_ether_platform_data *data) {}
#endif
#if defined(CONFIG_NAND_ATMEL)
+static struct resource nand_resources[] = {
+ [0] = {
+ .start = AT91_CHIPSELECT_3,
+ .size = SZ_256M,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = AT91_BASE_SYS + AT91_ECC,
+ .size = 512,
+ .flags = IORESOURCE_MEM,
+ }
+};
+
void at91_add_device_nand(struct atmel_nand_data *data)
{
unsigned long csa;
@@ -85,8 +98,8 @@ void at91_add_device_nand(struct atmel_nand_data *data)
if (data->det_pin)
at91_set_gpio_input(data->det_pin, 1);
- add_generic_device("atmel_nand", 0, NULL, AT91_CHIPSELECT_3, 0x10,
- IORESOURCE_MEM, data);
+ add_generic_device_res("atmel_nand", 0, nand_resources,
+ ARRAY_SIZE(nand_resources), data);
}
#else
void at91_add_device_nand(struct atmel_nand_data *data) {}
diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c
index c7ae45ad30..f5058dc654 100644
--- a/arch/arm/mach-at91/at91sam9263_devices.c
+++ b/arch/arm/mach-at91/at91sam9263_devices.c
@@ -62,6 +62,19 @@ void at91_add_device_eth(struct at91_ether_platform_data *data) {}
#endif
#if defined(CONFIG_NAND_ATMEL)
+static struct resource nand_resources[] = {
+ [0] = {
+ .start = AT91_CHIPSELECT_3,
+ .size = SZ_256M,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = AT91_BASE_SYS + AT91_ECC0,
+ .size = 512,
+ .flags = IORESOURCE_MEM,
+ }
+};
+
void at91_add_device_nand(struct atmel_nand_data *data)
{
unsigned long csa;
@@ -84,8 +97,8 @@ void at91_add_device_nand(struct atmel_nand_data *data)
if (data->det_pin)
at91_set_gpio_input(data->det_pin, 1);
- add_generic_device("atmel_nand", -1, NULL, AT91_CHIPSELECT_3, 0x10,
- IORESOURCE_MEM, data);
+ add_generic_device_res("atmel_nand", -1, nand_resources,
+ ARRAY_SIZE(nand_resources), data);
}
#else
void at91_add_device_nand(struct atmel_nand_data *data) {}
diff --git a/arch/arm/mach-at91/at91sam9g45_devices.c b/arch/arm/mach-at91/at91sam9g45_devices.c
index e18682b953..8bc11049c8 100644
--- a/arch/arm/mach-at91/at91sam9g45_devices.c
+++ b/arch/arm/mach-at91/at91sam9g45_devices.c
@@ -63,6 +63,19 @@ void at91_add_device_eth(struct at91_ether_platform_data *data) {}
#endif
#if defined(CONFIG_NAND_ATMEL)
+static struct resource nand_resources[] = {
+ [0] = {
+ .start = AT91_CHIPSELECT_3,
+ .size = SZ_256M,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = AT91_BASE_SYS + AT91_ECC,
+ .size = 512,
+ .flags = IORESOURCE_MEM,
+ }
+};
+
void at91_add_device_nand(struct atmel_nand_data *data)
{
unsigned long csa;
@@ -70,9 +83,6 @@ void at91_add_device_nand(struct atmel_nand_data *data)
if (!data)
return;
- data->ecc_base = (void __iomem *)(AT91_BASE_SYS + AT91_ECC);
- data->ecc_mode = NAND_ECC_SOFT;
-
csa = at91_sys_read(AT91_MATRIX_EBICSA);
at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_EBI_CS3A_SMC_SMARTMEDIA);
@@ -88,8 +98,8 @@ void at91_add_device_nand(struct atmel_nand_data *data)
if (data->det_pin)
at91_set_gpio_input(data->det_pin, 1);
- add_generic_device("atmel_nand", -1, NULL, AT91_CHIPSELECT_3, 0x10,
- IORESOURCE_MEM, data);
+ add_generic_device_res("atmel_nand", -1, nand_resources,
+ ARRAY_SIZE(nand_resources), data);
}
#else
void at91_add_device_nand(struct atmel_nand_data *data) {}
diff --git a/arch/arm/mach-at91/include/mach/board.h b/arch/arm/mach-at91/include/mach/board.h
index 2adc035f7d..f970ad87e0 100644
--- a/arch/arm/mach-at91/include/mach/board.h
+++ b/arch/arm/mach-at91/include/mach/board.h
@@ -29,7 +29,6 @@ void atmel_nand_load_image(void *dest, int size, int pagesize, int blocksize);
/* NAND / SmartMedia */
struct atmel_nand_data {
- void __iomem *ecc_base;
u8 enable_pin; /* chip enable */
u8 det_pin; /* card detect */
u8 rdy_pin; /* ready/busy */