summaryrefslogtreecommitdiff
path: root/arch/arm/cpu
diff options
context:
space:
mode:
authorVladimir Zapolskiy <vz@mleia.com>2015-07-18 03:07:52 +0300
committerTom Rini <trini@konsulko.com>2015-08-12 20:47:33 -0400
commitdcfd37e5ef17a3beec212fc4088f14f3fdcba5d1 (patch)
treea3364f0f66a09564f1aeaafea0a5262fca7675ff /arch/arm/cpu
parent8d1809a966996fdbcddb441c0ff8080d78a89c59 (diff)
downloadu-boot-imx-dcfd37e5ef17a3beec212fc4088f14f3fdcba5d1.zip
u-boot-imx-dcfd37e5ef17a3beec212fc4088f14f3fdcba5d1.tar.gz
u-boot-imx-dcfd37e5ef17a3beec212fc4088f14f3fdcba5d1.tar.bz2
nand: lpc32xx: add SLC NAND controller support
The change adds support of LPC32xx SLC NAND controller. LPC32xx SoC has two different mutually exclusive NAND controllers to communicate with single and multiple layer chips. This simple driver allows to specify NAND chip timings and defines custom read_buf()/write_buf() operations, because access to 8-bit data register must be 32-bit aligned. Support of hardware ECC calculation is not implemented (data correction is always done by software), since it requires a working DMA engine. The driver can be included to an SPL image. Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> Acked-by: Scott Wood <scottwood@freescale.com> Tested-by: Sylvain Lemieux <slemieux@tycoint.com>
Diffstat (limited to 'arch/arm/cpu')
-rw-r--r--arch/arm/cpu/arm926ejs/lpc32xx/devices.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/cpu/arm926ejs/lpc32xx/devices.c b/arch/arm/cpu/arm926ejs/lpc32xx/devices.c
index 5a453e3..b0287be 100644
--- a/arch/arm/cpu/arm926ejs/lpc32xx/devices.c
+++ b/arch/arm/cpu/arm926ejs/lpc32xx/devices.c
@@ -54,6 +54,12 @@ void lpc32xx_mlc_nand_init(void)
writel(CLK_NAND_MLC | CLK_NAND_MLC_INT, &clk->flashclk_ctrl);
}
+void lpc32xx_slc_nand_init(void)
+{
+ /* Enable SLC NAND interface */
+ writel(CLK_NAND_SLC | CLK_NAND_SLC_SELECT, &clk->flashclk_ctrl);
+}
+
void lpc32xx_i2c_init(unsigned int devnum)
{
/* Enable I2C interface */