diff options
author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2011-09-19 14:15:43 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2011-09-20 21:12:46 +0200 |
commit | afdfa915ce152341474f21d1260d0a7c96bc9b2f (patch) | |
tree | 31478aa8f44b2cc1983821c7715be7225d499588 /arch | |
parent | 808ec3192b9f7b421807426cf2c28313d01cbd27 (diff) | |
download | barebox-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.c | 2 | ||||
-rw-r--r-- | arch/arm/boards/at91sam9261ek/init.c | 1 | ||||
-rw-r--r-- | arch/arm/boards/at91sam9263ek/init.c | 2 | ||||
-rw-r--r-- | arch/arm/boards/pm9263/init.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9260_devices.c | 17 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9263_devices.c | 17 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9g45_devices.c | 20 | ||||
-rw-r--r-- | arch/arm/mach-at91/include/mach/board.h | 1 |
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 */ |