diff options
author | Daniel Golle <daniel@makrotopia.org> | 2023-09-02 00:54:40 +0100 |
---|---|---|
committer | Daniel Golle <daniel@makrotopia.org> | 2023-09-11 00:03:56 +0100 |
commit | 0cb2ff5d08702c81f91cfe20dba8f0bdb005cb95 (patch) | |
tree | 013137b1438f0d7d52cbe45447a5b9f6034e0296 | |
parent | cdc8470aecd03e6994714af092f030f209951de4 (diff) | |
download | upstream-0cb2ff5d08702c81f91cfe20dba8f0bdb005cb95.tar.gz upstream-0cb2ff5d08702c81f91cfe20dba8f0bdb005cb95.tar.bz2 upstream-0cb2ff5d08702c81f91cfe20dba8f0bdb005cb95.zip |
uboot-mediatek: sync mtk-snand driver with SDK
Sync SPI-NAND/ECC controller driver for MT7622, MT7981, MT7986 and MT7988:
* Platform data for MT7981 was actually missing and is now added.
* Add support for Winbond W25N01KV 1Gbit chip.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 9725524235b30b436f6430d70cd809abf1b48a91)
-rw-r--r-- | package/boot/uboot-mediatek/patches/100-02-drivers-mtd-add-support-for-MediaTek-SPI-NAND-flash-.patch | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/package/boot/uboot-mediatek/patches/100-02-drivers-mtd-add-support-for-MediaTek-SPI-NAND-flash-.patch b/package/boot/uboot-mediatek/patches/100-02-drivers-mtd-add-support-for-MediaTek-SPI-NAND-flash-.patch index 311c051344..05138d984e 100644 --- a/package/boot/uboot-mediatek/patches/100-02-drivers-mtd-add-support-for-MediaTek-SPI-NAND-flash-.patch +++ b/package/boot/uboot-mediatek/patches/100-02-drivers-mtd-add-support-for-MediaTek-SPI-NAND-flash-.patch @@ -17,14 +17,14 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com> drivers/mtd/mtk-snand/Kconfig | 21 + drivers/mtd/mtk-snand/Makefile | 11 + drivers/mtd/mtk-snand/mtk-snand-def.h | 271 ++++ - drivers/mtd/mtk-snand/mtk-snand-ecc.c | 395 +++++ - drivers/mtd/mtk-snand/mtk-snand-ids.c | 511 +++++++ + drivers/mtd/mtk-snand/mtk-snand-ecc.c | 411 ++++++ + drivers/mtd/mtk-snand/mtk-snand-ids.c | 515 +++++++ drivers/mtd/mtk-snand/mtk-snand-mtd.c | 535 +++++++ drivers/mtd/mtk-snand/mtk-snand-os.c | 39 + drivers/mtd/mtk-snand/mtk-snand-os.h | 120 ++ drivers/mtd/mtk-snand/mtk-snand.c | 1933 +++++++++++++++++++++++++ drivers/mtd/mtk-snand/mtk-snand.h | 77 + - 12 files changed, 3917 insertions(+) + 12 files changed, 3937 insertions(+) create mode 100644 drivers/mtd/mtk-snand/Kconfig create mode 100644 drivers/mtd/mtk-snand/Makefile create mode 100644 drivers/mtd/mtk-snand/mtk-snand-def.h @@ -369,7 +369,7 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com> +#endif /* _MTK_SNAND_DEF_H_ */ --- /dev/null +++ b/drivers/mtd/mtk-snand/mtk-snand-ecc.c -@@ -0,0 +1,395 @@ +@@ -0,0 +1,411 @@ +// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause +/* + * Copyright (C) 2020 MediaTek Inc. All Rights Reserved. @@ -418,6 +418,10 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com> + +static const uint8_t mt7622_ecc_caps[] = { 4, 6, 8, 10, 12 }; + ++static const uint8_t mt7981_ecc_caps[] = { ++ 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 ++}; ++ +static const uint8_t mt7986_ecc_caps[] = { + 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24 +}; @@ -426,6 +430,10 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com> + [ECC_DECDONE] = 0x11c, +}; + ++static const uint32_t mt7981_ecc_regs[] = { ++ [ECC_DECDONE] = 0x124, ++}; ++ +static const uint32_t mt7986_ecc_regs[] = { + [ECC_DECDONE] = 0x124, +}; @@ -447,6 +455,14 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com> + .errnum_bits = 5, + .errnum_shift = 5, + }, ++ [SNAND_SOC_MT7981] = { ++ .ecc_caps = mt7981_ecc_caps, ++ .num_ecc_cap = ARRAY_SIZE(mt7981_ecc_caps), ++ .regs = mt7981_ecc_regs, ++ .mode_shift = 5, ++ .errnum_bits = 5, ++ .errnum_shift = 8, ++ }, + [SNAND_SOC_MT7986] = { + .ecc_caps = mt7986_ecc_caps, + .num_ecc_cap = ARRAY_SIZE(mt7986_ecc_caps), @@ -767,7 +783,7 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com> +} --- /dev/null +++ b/drivers/mtd/mtk-snand/mtk-snand-ids.c -@@ -0,0 +1,511 @@ +@@ -0,0 +1,515 @@ +// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause +/* + * Copyright (C) 2020 MediaTek Inc. All Rights Reserved. @@ -860,6 +876,10 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com> + &snand_cap_read_from_cache_quad, + &snand_cap_program_load_x4, + mtk_snand_winbond_select_die), ++ SNAND_INFO("W25N01KV", SNAND_ID(SNAND_ID_DYMMY, 0xef, 0xae, 0x21), ++ SNAND_MEMORG_1G_2K_64, ++ &snand_cap_read_from_cache_quad, ++ &snand_cap_program_load_x4), + SNAND_INFO("W25N02KV", SNAND_ID(SNAND_ID_DYMMY, 0xef, 0xaa, 0x22), + SNAND_MEMORG_2G_2K_128, + &snand_cap_read_from_cache_quad, @@ -903,7 +923,7 @@ Signed-off-by: Weijie Gao <weijie.gao@mediatek.com> + &snand_cap_program_load_x4), + SNAND_INFO("GD5F2GQ5UExxG", SNAND_ID(SNAND_ID_DYMMY, 0xc8, 0x52), + SNAND_MEMORG_2G_2K_128, -+ &snand_cap_read_from_cache_quad_q2d, ++ &snand_cap_read_from_cache_quad_a8d, + &snand_cap_program_load_x4), + SNAND_INFO("GD5F4GQ4UCxIG", SNAND_ID(SNAND_ID_DYMMY, 0xc8, 0xb4), + SNAND_MEMORG_4G_4K_256, |