[ARM] 4755/1: [AT91] NAND update
Map the complete memory region (SZ_256M) as is done on the other AT91 processors. The SMC_SMARTMEDIA bit should be set in the EBI controller to enable the hardware NAND logic. (Patch from Sascha Erlacher) Signed-off-by: Andrew Victor <linux@maxim.org.za> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
committed by
Russell King
parent
bfbc32663d
commit
228235584f
@@ -376,7 +376,7 @@ static struct at91_nand_data nand_data;
|
|||||||
static struct resource nand_resources[] = {
|
static struct resource nand_resources[] = {
|
||||||
{
|
{
|
||||||
.start = NAND_BASE,
|
.start = NAND_BASE,
|
||||||
.end = NAND_BASE + SZ_8M - 1,
|
.end = NAND_BASE + SZ_256M - 1,
|
||||||
.flags = IORESOURCE_MEM,
|
.flags = IORESOURCE_MEM,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@@ -290,7 +290,7 @@ static struct at91_nand_data nand_data;
|
|||||||
static struct resource nand_resources[] = {
|
static struct resource nand_resources[] = {
|
||||||
{
|
{
|
||||||
.start = NAND_BASE,
|
.start = NAND_BASE,
|
||||||
.end = NAND_BASE + SZ_8M - 1,
|
.end = NAND_BASE + SZ_256M - 1,
|
||||||
.flags = IORESOURCE_MEM,
|
.flags = IORESOURCE_MEM,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -313,7 +313,7 @@ void __init at91_add_device_nand(struct at91_nand_data *data)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
csa = at91_sys_read(AT91_MATRIX_EBICSA);
|
csa = at91_sys_read(AT91_MATRIX_EBICSA);
|
||||||
at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_CS3A_SMC);
|
at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_CS3A_SMC_SMARTMEDIA);
|
||||||
|
|
||||||
/* set the bus interface characteristics */
|
/* set the bus interface characteristics */
|
||||||
at91_sys_write(AT91_SMC_SETUP(3), AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0)
|
at91_sys_write(AT91_SMC_SETUP(3), AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0)
|
||||||
|
@@ -233,7 +233,7 @@ void __init at91_add_device_nand(struct at91_nand_data *data)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
csa = at91_sys_read(AT91_MATRIX_EBICSA);
|
csa = at91_sys_read(AT91_MATRIX_EBICSA);
|
||||||
at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_CS3A_SMC);
|
at91_sys_write(AT91_MATRIX_EBICSA, csa | AT91_MATRIX_CS3A_SMC_SMARTMEDIA);
|
||||||
|
|
||||||
/* set the bus interface characteristics */
|
/* set the bus interface characteristics */
|
||||||
at91_sys_write(AT91_SMC_SETUP(3), AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0)
|
at91_sys_write(AT91_SMC_SETUP(3), AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0)
|
||||||
|
@@ -383,7 +383,7 @@ void __init at91_add_device_nand(struct at91_nand_data *data)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
csa = at91_sys_read(AT91_MATRIX_EBI0CSA);
|
csa = at91_sys_read(AT91_MATRIX_EBI0CSA);
|
||||||
at91_sys_write(AT91_MATRIX_EBI0CSA, csa | AT91_MATRIX_EBI0_CS3A_SMC);
|
at91_sys_write(AT91_MATRIX_EBI0CSA, csa | AT91_MATRIX_EBI0_CS3A_SMC_SMARTMEDIA);
|
||||||
|
|
||||||
/* set the bus interface characteristics */
|
/* set the bus interface characteristics */
|
||||||
at91_sys_write(AT91_SMC_SETUP(3), AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0)
|
at91_sys_write(AT91_SMC_SETUP(3), AT91_SMC_NWESETUP_(0) | AT91_SMC_NCS_WRSETUP_(0)
|
||||||
|
Reference in New Issue
Block a user