mtd: add LPC32xx SLC NAND driver
This patch adds support for the SLC NAND controller inside the LPC32xx SoC. [dwmw2: 21st century pedantry] Signed-off-by: Roland Stigge <stigge@antcom.de> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
This commit is contained in:
parent
fdbad98dff
commit
2944a44da0
|
@ -0,0 +1,52 @@
|
||||||
|
NXP LPC32xx SoC NAND SLC controller
|
||||||
|
|
||||||
|
Required properties:
|
||||||
|
- compatible: "nxp,lpc3220-slc"
|
||||||
|
- reg: Address and size of the controller
|
||||||
|
- nand-on-flash-bbt: Use bad block table on flash
|
||||||
|
- gpios: GPIO specification for NAND write protect
|
||||||
|
|
||||||
|
The following required properties are very controller specific. See the LPC32xx
|
||||||
|
User Manual:
|
||||||
|
- nxp,wdr-clks: Delay before Ready signal is tested on write (W_RDY)
|
||||||
|
- nxp,rdr-clks: Delay before Ready signal is tested on read (R_RDY)
|
||||||
|
(The following values are specified in Hz, to make them independent of actual
|
||||||
|
clock speed:)
|
||||||
|
- nxp,wwidth: Write pulse width (W_WIDTH)
|
||||||
|
- nxp,whold: Write hold time (W_HOLD)
|
||||||
|
- nxp,wsetup: Write setup time (W_SETUP)
|
||||||
|
- nxp,rwidth: Read pulse width (R_WIDTH)
|
||||||
|
- nxp,rhold: Read hold time (R_HOLD)
|
||||||
|
- nxp,rsetup: Read setup time (R_SETUP)
|
||||||
|
|
||||||
|
Optional subnodes:
|
||||||
|
- Partitions, see Documentation/devicetree/bindings/mtd/partition.txt
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
slc: flash@20020000 {
|
||||||
|
compatible = "nxp,lpc3220-slc";
|
||||||
|
reg = <0x20020000 0x1000>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
nxp,wdr-clks = <14>;
|
||||||
|
nxp,wwidth = <40000000>;
|
||||||
|
nxp,whold = <100000000>;
|
||||||
|
nxp,wsetup = <100000000>;
|
||||||
|
nxp,rdr-clks = <14>;
|
||||||
|
nxp,rwidth = <40000000>;
|
||||||
|
nxp,rhold = <66666666>;
|
||||||
|
nxp,rsetup = <100000000>;
|
||||||
|
nand-on-flash-bbt;
|
||||||
|
gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */
|
||||||
|
|
||||||
|
mtd0@00000000 {
|
||||||
|
label = "phy3250-boot";
|
||||||
|
reg = <0x00000000 0x00064000>;
|
||||||
|
read-only;
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
};
|
|
@ -454,6 +454,17 @@ config MTD_NAND_PXA3xx
|
||||||
This enables the driver for the NAND flash device found on
|
This enables the driver for the NAND flash device found on
|
||||||
PXA3xx processors
|
PXA3xx processors
|
||||||
|
|
||||||
|
config MTD_NAND_SLC_LPC32XX
|
||||||
|
tristate "NXP LPC32xx SLC Controller"
|
||||||
|
depends on ARCH_LPC32XX
|
||||||
|
help
|
||||||
|
Enables support for NXP's LPC32XX SLC (i.e. for Single Level Cell
|
||||||
|
chips) NAND controller. This is the default for the PHYTEC 3250
|
||||||
|
reference board which contains a NAND256R3A2CZA6 chip.
|
||||||
|
|
||||||
|
Please check the actual NAND chip connected and its support
|
||||||
|
by the SLC NAND controller.
|
||||||
|
|
||||||
config MTD_NAND_CM_X270
|
config MTD_NAND_CM_X270
|
||||||
tristate "Support for NAND Flash on CM-X270 modules"
|
tristate "Support for NAND Flash on CM-X270 modules"
|
||||||
depends on MACH_ARMCORE
|
depends on MACH_ARMCORE
|
||||||
|
|
|
@ -40,6 +40,7 @@ obj-$(CONFIG_MTD_NAND_ORION) += orion_nand.o
|
||||||
obj-$(CONFIG_MTD_NAND_FSL_ELBC) += fsl_elbc_nand.o
|
obj-$(CONFIG_MTD_NAND_FSL_ELBC) += fsl_elbc_nand.o
|
||||||
obj-$(CONFIG_MTD_NAND_FSL_IFC) += fsl_ifc_nand.o
|
obj-$(CONFIG_MTD_NAND_FSL_IFC) += fsl_ifc_nand.o
|
||||||
obj-$(CONFIG_MTD_NAND_FSL_UPM) += fsl_upm.o
|
obj-$(CONFIG_MTD_NAND_FSL_UPM) += fsl_upm.o
|
||||||
|
obj-$(CONFIG_MTD_NAND_SLC_LPC32XX) += lpc32xx_slc.o
|
||||||
obj-$(CONFIG_MTD_NAND_SH_FLCTL) += sh_flctl.o
|
obj-$(CONFIG_MTD_NAND_SH_FLCTL) += sh_flctl.o
|
||||||
obj-$(CONFIG_MTD_NAND_MXC) += mxc_nand.o
|
obj-$(CONFIG_MTD_NAND_MXC) += mxc_nand.o
|
||||||
obj-$(CONFIG_MTD_NAND_SOCRATES) += socrates_nand.o
|
obj-$(CONFIG_MTD_NAND_SOCRATES) += socrates_nand.o
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue