mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 03:15:31 +09:00
UPSTREAM: mtd: rawnand: rockchip: NFC driver for RK3308, RK2928 and others
This driver supports Rockchip NFC (NAND Flash Controller) found on RK3308,
RK2928, RKPX30, RV1108 and other SOCs. The driver has been tested using
8-bit NAND interface on the ARM based RK3308 platform.
Support Rockchip SoCs and NFC versions:
- PX30 and RK3326(NFCv900).
ECC: 16/40/60/70 bits/1KB.
CLOCK: ahb and nfc.
- RK3308 and RV1108(NFCv800).
ECC: 16 bits/1KB.
CLOCK: ahb and nfc.
- RK3036 and RK3128(NFCv622).
ECC: 16/24/40/60 bits/1KB.
CLOCK: ahb and nfc.
- RK3066, RK3188 and RK2928(NFCv600).
ECC: 16/24/40/60 bits/1KB.
CLOCK: ahb.
Supported features:
- Read full page data by DMA.
- Support HW ECC(one step is 1KB).
- Support 2 - 32K page size.
- Support 8 CS(depend on SoCs)
Limitations:
- No support for the ecc step size is 512.
- Untested on some SoCs.
- No support for subpages.
- No support for the builtin randomizer.
- The original bad block mask is not supported. It is recommended to use
the BBT(bad block table).
Suggested-by: Johan Jonker <jbx6244@gmail.com>
Signed-off-by: Yifeng Zhao <yifeng.zhao@rock-chips.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20201210002134.5686-3-yifeng.zhao@rock-chips.com
(cherry picked from commit 058e0e847d)
Change-Id: I3454acff6b221e17d3417476b48ff770a0d9d158
This commit is contained in:
@@ -462,6 +462,18 @@ config MTD_NAND_ARASAN
|
|||||||
Enables the driver for the Arasan NAND flash controller on
|
Enables the driver for the Arasan NAND flash controller on
|
||||||
Zynq Ultrascale+ MPSoC.
|
Zynq Ultrascale+ MPSoC.
|
||||||
|
|
||||||
|
config MTD_NAND_ROCKCHIP
|
||||||
|
tristate "Rockchip NAND controller"
|
||||||
|
depends on ARCH_ROCKCHIP && HAS_IOMEM
|
||||||
|
help
|
||||||
|
Enables support for NAND controller on Rockchip SoCs.
|
||||||
|
There are four different versions of NAND FLASH Controllers,
|
||||||
|
including:
|
||||||
|
NFC v600: RK2928, RK3066, RK3188
|
||||||
|
NFC v622: RK3036, RK3128
|
||||||
|
NFC v800: RK3308, RV1108
|
||||||
|
NFC v900: PX30, RK3326
|
||||||
|
|
||||||
comment "Misc"
|
comment "Misc"
|
||||||
|
|
||||||
config MTD_SM_COMMON
|
config MTD_SM_COMMON
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ obj-$(CONFIG_MTD_NAND_STM32_FMC2) += stm32_fmc2_nand.o
|
|||||||
obj-$(CONFIG_MTD_NAND_MESON) += meson_nand.o
|
obj-$(CONFIG_MTD_NAND_MESON) += meson_nand.o
|
||||||
obj-$(CONFIG_MTD_NAND_CADENCE) += cadence-nand-controller.o
|
obj-$(CONFIG_MTD_NAND_CADENCE) += cadence-nand-controller.o
|
||||||
obj-$(CONFIG_MTD_NAND_ARASAN) += arasan-nand-controller.o
|
obj-$(CONFIG_MTD_NAND_ARASAN) += arasan-nand-controller.o
|
||||||
|
obj-$(CONFIG_MTD_NAND_ROCKCHIP) += rockchip-nand-controller.o
|
||||||
|
|
||||||
nand-objs := nand_base.o nand_legacy.o nand_bbt.o nand_timings.o nand_ids.o
|
nand-objs := nand_base.o nand_legacy.o nand_bbt.o nand_timings.o nand_ids.o
|
||||||
nand-objs += nand_onfi.o
|
nand-objs += nand_onfi.o
|
||||||
|
|||||||
1495
drivers/mtd/nand/raw/rockchip-nand-controller.c
Normal file
1495
drivers/mtd/nand/raw/rockchip-nand-controller.c
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user