/kernel/linux/linux-6.6/drivers/mtd/nand/spi/ |
H A D | core.c | 16 #include <linux/mtd/spinand.h> 23 static int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val) in spinand_read_reg_op() argument 26 spinand->scratchbuf); in spinand_read_reg_op() 29 ret = spi_mem_exec_op(spinand->spimem, &op); in spinand_read_reg_op() 33 *val = *spinand->scratchbuf; in spinand_read_reg_op() 37 static int spinand_write_reg_op(struct spinand_device *spinand, u8 reg, u8 val) in spinand_write_reg_op() argument 40 spinand->scratchbuf); in spinand_write_reg_op() 42 *spinand->scratchbuf = val; in spinand_write_reg_op() 43 return spi_mem_exec_op(spinand->spimem, &op); in spinand_write_reg_op() 46 static int spinand_read_status(struct spinand_device *spinand, u argument 51 spinand_get_cfg(struct spinand_device *spinand, u8 *cfg) spinand_get_cfg() argument 63 spinand_set_cfg(struct spinand_device *spinand, u8 cfg) spinand_set_cfg() argument 93 spinand_upd_cfg(struct spinand_device *spinand, u8 mask, u8 val) spinand_upd_cfg() argument 117 spinand_select_target(struct spinand_device *spinand, unsigned int target) spinand_select_target() argument 141 spinand_read_cfg(struct spinand_device *spinand) spinand_read_cfg() argument 165 spinand_init_cfg_cache(struct spinand_device *spinand) spinand_init_cfg_cache() argument 180 spinand_init_quad_enable(struct spinand_device *spinand) spinand_init_quad_enable() argument 196 spinand_ecc_enable(struct spinand_device *spinand, bool enable) spinand_ecc_enable() argument 203 spinand_check_ecc_status(struct spinand_device *spinand, u8 status) spinand_check_ecc_status() argument 258 struct spinand_device *spinand = nand_to_spinand(nand); spinand_ondie_ecc_init_ctx() local 288 struct spinand_device *spinand = nand_to_spinand(nand); spinand_ondie_ecc_prepare_io_req() local 301 struct spinand_device *spinand = nand_to_spinand(nand); spinand_ondie_ecc_finish_io_req() local 342 spinand_write_enable_op(struct spinand_device *spinand) spinand_write_enable_op() argument 349 spinand_load_page_op(struct spinand_device *spinand, const struct nand_page_io_req *req) spinand_load_page_op() argument 359 spinand_read_from_cache_op(struct spinand_device *spinand, const struct nand_page_io_req *req) spinand_read_from_cache_op() argument 420 spinand_write_to_cache_op(struct spinand_device *spinand, const struct nand_page_io_req *req) spinand_write_to_cache_op() argument 479 spinand_program_op(struct spinand_device *spinand, const struct nand_page_io_req *req) spinand_program_op() argument 489 spinand_erase_op(struct spinand_device *spinand, const struct nand_pos *pos) spinand_erase_op() argument 499 spinand_wait(struct spinand_device *spinand, unsigned long initial_delay_us, unsigned long poll_delay_us, u8 *s) spinand_wait() argument 535 spinand_read_id_op(struct spinand_device *spinand, u8 naddr, u8 ndummy, u8 *buf) spinand_read_id_op() argument 549 spinand_reset_op(struct spinand_device *spinand) spinand_reset_op() argument 564 spinand_lock_block(struct spinand_device *spinand, u8 lock) spinand_lock_block() argument 569 spinand_read_page(struct spinand_device *spinand, const struct nand_page_io_req *req) spinand_read_page() argument 600 spinand_write_page(struct spinand_device *spinand, const struct nand_page_io_req *req) spinand_write_page() argument 636 struct spinand_device *spinand = mtd_to_spinand(mtd); spinand_mtd_read() local 692 struct spinand_device *spinand = mtd_to_spinand(mtd); spinand_mtd_write() local 726 struct spinand_device *spinand = nand_to_spinand(nand); spinand_isbad() local 747 struct spinand_device *spinand = nand_to_spinand(nand); spinand_mtd_block_isbad() local 761 struct spinand_device *spinand = nand_to_spinand(nand); spinand_markbad() local 786 struct spinand_device *spinand = nand_to_spinand(nand); spinand_mtd_block_markbad() local 800 struct spinand_device *spinand = nand_to_spinand(nand); spinand_erase() local 830 struct spinand_device *spinand = mtd_to_spinand(mtd); spinand_mtd_erase() local 842 struct spinand_device *spinand = mtd_to_spinand(mtd); spinand_mtd_block_isreserved() local 855 spinand_create_dirmap(struct spinand_device *spinand, unsigned int plane) spinand_create_dirmap() argument 912 spinand_create_dirmaps(struct spinand_device *spinand) spinand_create_dirmaps() argument 952 spinand_manufacturer_match(struct spinand_device *spinand, enum spinand_readid_method rdid_method) spinand_manufacturer_match() argument 979 spinand_id_detect(struct spinand_device *spinand) spinand_id_detect() argument 1008 spinand_manufacturer_init(struct spinand_device *spinand) spinand_manufacturer_init() argument 1016 spinand_manufacturer_cleanup(struct spinand_device *spinand) spinand_manufacturer_cleanup() argument 1024 spinand_select_op_variant(struct spinand_device *spinand, const struct spinand_op_variants *variants) spinand_select_op_variant() argument 1072 spinand_match_and_init(struct spinand_device *spinand, const struct spinand_info *table, unsigned int table_size, enum spinand_readid_method rdid_method) spinand_match_and_init() argument 1122 spinand_detect(struct spinand_device *spinand) spinand_detect() argument 1155 spinand_init_flash(struct spinand_device *spinand) spinand_init_flash() argument 1200 struct spinand_device *spinand = mtd_to_spinand(mtd); spinand_mtd_resume() local 1214 spinand_init(struct spinand_device *spinand) spinand_init() argument 1315 spinand_cleanup(struct spinand_device *spinand) spinand_cleanup() argument 1327 struct spinand_device *spinand; spinand_probe() local 1361 struct spinand_device *spinand; spinand_remove() local [all...] |
H A D | winbond.c | 12 #include <linux/mtd/spinand.h> 63 static int w25m02gv_select_target(struct spinand_device *spinand, in w25m02gv_select_target() argument 70 spinand->scratchbuf, in w25m02gv_select_target() 73 *spinand->scratchbuf = target; in w25m02gv_select_target() 74 return spi_mem_exec_op(spinand->spimem, &op); in w25m02gv_select_target() 106 static int w25n02kv_ecc_get_status(struct spinand_device *spinand, in w25n02kv_ecc_get_status() argument 109 struct nand_device *nand = spinand_to_nand(spinand); in w25n02kv_ecc_get_status() 111 struct spi_mem_op op = SPINAND_GET_FEATURE_OP(0x30, spinand->scratchbuf); in w25n02kv_ecc_get_status() 126 if (spi_mem_exec_op(spinand->spimem, &op)) in w25n02kv_ecc_get_status() 129 mbf = *(spinand in w25n02kv_ecc_get_status() 174 winbond_spinand_init(struct spinand_device *spinand) winbond_spinand_init() argument [all...] |
H A D | micron.c | 11 #include <linux/mtd/spinand.h> 93 struct spinand_device *spinand = mtd_to_spinand(mtd); in micron_4_ooblayout_ecc() local 95 if (section >= spinand->base.memorg.pagesize / in micron_4_ooblayout_ecc() 108 struct spinand_device *spinand = mtd_to_spinand(mtd); in micron_4_ooblayout_free() local 110 if (section >= spinand->base.memorg.pagesize / in micron_4_ooblayout_free() 131 static int micron_select_target(struct spinand_device *spinand, in micron_select_target() argument 135 spinand->scratchbuf); in micron_select_target() 140 *spinand->scratchbuf = MICRON_SELECT_DIE(target); in micron_select_target() 142 return spi_mem_exec_op(spinand->spimem, &op); in micron_select_target() 145 static int micron_8_ecc_get_status(struct spinand_device *spinand, in micron_8_ecc_get_status() argument 286 micron_spinand_init(struct spinand_device *spinand) micron_spinand_init() argument [all...] |
H A D | gigadevice.c | 9 #include <linux/mtd/spinand.h> 100 static int gd5fxgq4xa_ecc_get_status(struct spinand_device *spinand, in gd5fxgq4xa_ecc_get_status() argument 184 static int gd5fxgq4uexxg_ecc_get_status(struct spinand_device *spinand, in gd5fxgq4uexxg_ecc_get_status() argument 189 spinand->scratchbuf); in gd5fxgq4uexxg_ecc_get_status() 201 ret = spi_mem_exec_op(spinand->spimem, &op); in gd5fxgq4uexxg_ecc_get_status() 210 status2 = *(spinand->scratchbuf); in gd5fxgq4uexxg_ecc_get_status() 227 static int gd5fxgq5xexxg_ecc_get_status(struct spinand_device *spinand, in gd5fxgq5xexxg_ecc_get_status() argument 232 spinand->scratchbuf); in gd5fxgq5xexxg_ecc_get_status() 244 ret = spi_mem_exec_op(spinand->spimem, &op); in gd5fxgq5xexxg_ecc_get_status() 252 status2 = *(spinand in gd5fxgq5xexxg_ecc_get_status() 265 gd5fxgq4ufxxg_ecc_get_status(struct spinand_device *spinand, u8 status) gd5fxgq4ufxxg_ecc_get_status() argument [all...] |
H A D | macronix.c | 10 #include <linux/mtd/spinand.h> 52 static int mx35lf1ge4ab_get_eccsr(struct spinand_device *spinand, u8 *eccsr) in mx35lf1ge4ab_get_eccsr() argument 59 int ret = spi_mem_exec_op(spinand->spimem, &op); in mx35lf1ge4ab_get_eccsr() 67 static int mx35lf1ge4ab_ecc_get_status(struct spinand_device *spinand, in mx35lf1ge4ab_ecc_get_status() argument 70 struct nand_device *nand = spinand_to_nand(spinand); in mx35lf1ge4ab_ecc_get_status() 86 if (mx35lf1ge4ab_get_eccsr(spinand, spinand->scratchbuf)) in mx35lf1ge4ab_ecc_get_status() 89 eccsr = *spinand->scratchbuf; in mx35lf1ge4ab_ecc_get_status()
|
H A D | Makefile | 2 spinand-objs := core.o alliancememory.o ato.o esmt.o gigadevice.o macronix.o 3 spinand-objs += micron.o paragon.o toshiba.o winbond.o xtx.o 4 obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
|
H A D | alliancememory.c | 8 #include <linux/mtd/spinand.h> 95 static int am_ecc_get_status(struct spinand_device *spinand, u8 status) in am_ecc_get_status() argument 106 if (spinand->base.mtd.oobsize == 64) in am_ecc_get_status() 119 if (spinand->base.mtd.oobsize == 64) in am_ecc_get_status()
|
H A D | toshiba.c | 11 #include <linux/mtd/spinand.h> 71 static int tx58cxgxsxraix_ecc_get_status(struct spinand_device *spinand, in tx58cxgxsxraix_ecc_get_status() argument 74 struct nand_device *nand = spinand_to_nand(spinand); in tx58cxgxsxraix_ecc_get_status() 76 struct spi_mem_op op = SPINAND_GET_FEATURE_OP(0x30, spinand->scratchbuf); in tx58cxgxsxraix_ecc_get_status() 92 if (spi_mem_exec_op(spinand->spimem, &op)) in tx58cxgxsxraix_ecc_get_status() 95 mbf = *(spinand->scratchbuf) >> 4; in tx58cxgxsxraix_ecc_get_status()
|
H A D | paragon.c | 10 #include <linux/mtd/spinand.h> 70 static int pn26g0xa_ecc_get_status(struct spinand_device *spinand, in pn26g0xa_ecc_get_status() argument
|
H A D | xtx.c | 9 #include <linux/mtd/spinand.h> 63 static int xt26g0xa_ecc_get_status(struct spinand_device *spinand, in xt26g0xa_ecc_get_status() argument
|
H A D | ato.c | 10 #include <linux/mtd/spinand.h>
|
H A D | esmt.c | 10 #include <linux/mtd/spinand.h>
|
/kernel/linux/linux-5.10/drivers/mtd/nand/spi/ |
H A D | core.c | 16 #include <linux/mtd/spinand.h> 23 static int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val) in spinand_read_reg_op() argument 26 spinand->scratchbuf); in spinand_read_reg_op() 29 ret = spi_mem_exec_op(spinand->spimem, &op); in spinand_read_reg_op() 33 *val = *spinand->scratchbuf; in spinand_read_reg_op() 37 static int spinand_write_reg_op(struct spinand_device *spinand, u8 reg, u8 val) in spinand_write_reg_op() argument 40 spinand->scratchbuf); in spinand_write_reg_op() 42 *spinand->scratchbuf = val; in spinand_write_reg_op() 43 return spi_mem_exec_op(spinand->spimem, &op); in spinand_write_reg_op() 46 static int spinand_read_status(struct spinand_device *spinand, u argument 51 spinand_get_cfg(struct spinand_device *spinand, u8 *cfg) spinand_get_cfg() argument 63 spinand_set_cfg(struct spinand_device *spinand, u8 cfg) spinand_set_cfg() argument 93 spinand_upd_cfg(struct spinand_device *spinand, u8 mask, u8 val) spinand_upd_cfg() argument 117 spinand_select_target(struct spinand_device *spinand, unsigned int target) spinand_select_target() argument 141 spinand_init_cfg_cache(struct spinand_device *spinand) spinand_init_cfg_cache() argument 173 spinand_init_quad_enable(struct spinand_device *spinand) spinand_init_quad_enable() argument 189 spinand_ecc_enable(struct spinand_device *spinand, bool enable) spinand_ecc_enable() argument 196 spinand_write_enable_op(struct spinand_device *spinand) spinand_write_enable_op() argument 203 spinand_load_page_op(struct spinand_device *spinand, const struct nand_page_io_req *req) spinand_load_page_op() argument 213 spinand_read_from_cache_op(struct spinand_device *spinand, const struct nand_page_io_req *req) spinand_read_from_cache_op() argument 271 spinand_write_to_cache_op(struct spinand_device *spinand, const struct nand_page_io_req *req) spinand_write_to_cache_op() argument 324 spinand_program_op(struct spinand_device *spinand, const struct nand_page_io_req *req) spinand_program_op() argument 334 spinand_erase_op(struct spinand_device *spinand, const struct nand_pos *pos) spinand_erase_op() argument 344 spinand_wait(struct spinand_device *spinand, u8 *s) spinand_wait() argument 374 spinand_read_id_op(struct spinand_device *spinand, u8 naddr, u8 ndummy, u8 *buf) spinand_read_id_op() argument 388 spinand_reset_op(struct spinand_device *spinand) spinand_reset_op() argument 400 spinand_lock_block(struct spinand_device *spinand, u8 lock) spinand_lock_block() argument 405 spinand_check_ecc_status(struct spinand_device *spinand, u8 status) spinand_check_ecc_status() argument 434 spinand_read_page(struct spinand_device *spinand, const struct nand_page_io_req *req, bool ecc_enabled) spinand_read_page() argument 459 spinand_write_page(struct spinand_device *spinand, const struct nand_page_io_req *req) spinand_write_page() argument 487 struct spinand_device *spinand = mtd_to_spinand(mtd); spinand_mtd_read() local 537 struct spinand_device *spinand = mtd_to_spinand(mtd); spinand_mtd_write() local 572 struct spinand_device *spinand = nand_to_spinand(nand); spinand_isbad() local 593 struct spinand_device *spinand = nand_to_spinand(nand); spinand_mtd_block_isbad() local 607 struct spinand_device *spinand = nand_to_spinand(nand); spinand_markbad() local 632 struct spinand_device *spinand = nand_to_spinand(nand); spinand_mtd_block_markbad() local 646 struct spinand_device *spinand = nand_to_spinand(nand); spinand_erase() local 672 struct spinand_device *spinand = mtd_to_spinand(mtd); spinand_mtd_erase() local 684 struct spinand_device *spinand = mtd_to_spinand(mtd); spinand_mtd_block_isreserved() local 697 spinand_create_dirmap(struct spinand_device *spinand, unsigned int plane) spinand_create_dirmap() argument 729 spinand_create_dirmaps(struct spinand_device *spinand) spinand_create_dirmaps() argument 765 spinand_manufacturer_match(struct spinand_device *spinand, enum spinand_readid_method rdid_method) spinand_manufacturer_match() argument 792 spinand_id_detect(struct spinand_device *spinand) spinand_id_detect() argument 821 spinand_manufacturer_init(struct spinand_device *spinand) spinand_manufacturer_init() argument 829 spinand_manufacturer_cleanup(struct spinand_device *spinand) spinand_manufacturer_cleanup() argument 837 spinand_select_op_variant(struct spinand_device *spinand, const struct spinand_op_variants *variants) spinand_select_op_variant() argument 885 spinand_match_and_init(struct spinand_device *spinand, const struct spinand_info *table, unsigned int table_size, enum spinand_readid_method rdid_method) spinand_match_and_init() argument 935 spinand_detect(struct spinand_device *spinand) spinand_detect() argument 992 spinand_init(struct spinand_device *spinand) spinand_init() argument 1110 spinand_cleanup(struct spinand_device *spinand) spinand_cleanup() argument 1122 struct spinand_device *spinand; spinand_probe() local 1156 struct spinand_device *spinand; spinand_remove() local [all...] |
H A D | winbond.c | 12 #include <linux/mtd/spinand.h> 63 static int w25m02gv_select_target(struct spinand_device *spinand, in w25m02gv_select_target() argument 70 spinand->scratchbuf, in w25m02gv_select_target() 73 *spinand->scratchbuf = target; in w25m02gv_select_target() 74 return spi_mem_exec_op(spinand->spimem, &op); in w25m02gv_select_target() 99 static int winbond_spinand_init(struct spinand_device *spinand) in winbond_spinand_init() argument 101 struct nand_device *nand = spinand_to_nand(spinand); in winbond_spinand_init() 109 spinand_select_target(spinand, i); in winbond_spinand_init() 110 spinand_upd_cfg(spinand, WINBOND_CFG_BUF_READ, in winbond_spinand_init()
|
H A D | micron.c | 11 #include <linux/mtd/spinand.h> 77 static int micron_select_target(struct spinand_device *spinand, in micron_select_target() argument 81 spinand->scratchbuf); in micron_select_target() 86 *spinand->scratchbuf = MICRON_SELECT_DIE(target); in micron_select_target() 88 return spi_mem_exec_op(spinand->spimem, &op); in micron_select_target() 91 static int micron_8_ecc_get_status(struct spinand_device *spinand, in micron_8_ecc_get_status() argument 222 static int micron_spinand_init(struct spinand_device *spinand) in micron_spinand_init() argument 229 if (spinand->flags & SPINAND_HAS_CR_FEAT_BIT) in micron_spinand_init() 230 return spinand_upd_cfg(spinand, MICRON_CFG_CR, 0); in micron_spinand_init()
|
H A D | macronix.c | 10 #include <linux/mtd/spinand.h> 52 static int mx35lf1ge4ab_get_eccsr(struct spinand_device *spinand, u8 *eccsr) in mx35lf1ge4ab_get_eccsr() argument 59 int ret = spi_mem_exec_op(spinand->spimem, &op); in mx35lf1ge4ab_get_eccsr() 67 static int mx35lf1ge4ab_ecc_get_status(struct spinand_device *spinand, in mx35lf1ge4ab_ecc_get_status() argument 70 struct nand_device *nand = spinand_to_nand(spinand); in mx35lf1ge4ab_ecc_get_status() 86 if (mx35lf1ge4ab_get_eccsr(spinand, &eccsr)) in mx35lf1ge4ab_ecc_get_status()
|
H A D | toshiba.c | 11 #include <linux/mtd/spinand.h> 71 static int tx58cxgxsxraix_ecc_get_status(struct spinand_device *spinand, in tx58cxgxsxraix_ecc_get_status() argument 74 struct nand_device *nand = spinand_to_nand(spinand); in tx58cxgxsxraix_ecc_get_status() 76 struct spi_mem_op op = SPINAND_GET_FEATURE_OP(0x30, spinand->scratchbuf); in tx58cxgxsxraix_ecc_get_status() 92 if (spi_mem_exec_op(spinand->spimem, &op)) in tx58cxgxsxraix_ecc_get_status() 95 mbf = *(spinand->scratchbuf) >> 4; in tx58cxgxsxraix_ecc_get_status()
|
H A D | gigadevice.c | 9 #include <linux/mtd/spinand.h> 81 static int gd5fxgq4xa_ecc_get_status(struct spinand_device *spinand, in gd5fxgq4xa_ecc_get_status() argument 164 static int gd5fxgq4uexxg_ecc_get_status(struct spinand_device *spinand, in gd5fxgq4uexxg_ecc_get_status() argument 181 ret = spi_mem_exec_op(spinand->spimem, &op); in gd5fxgq4uexxg_ecc_get_status() 206 static int gd5fxgq4ufxxg_ecc_get_status(struct spinand_device *spinand, in gd5fxgq4ufxxg_ecc_get_status() argument
|
H A D | Makefile | 2 spinand-objs := core.o gigadevice.o macronix.o micron.o paragon.o toshiba.o winbond.o 3 obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
|
H A D | paragon.c | 10 #include <linux/mtd/spinand.h> 70 static int pn26g0xa_ecc_get_status(struct spinand_device *spinand, in pn26g0xa_ecc_get_status() argument
|
/kernel/linux/linux-5.10/include/linux/mtd/ |
H A D | spinand.h | 219 int (*init)(struct spinand_device *spinand); 220 void (*cleanup)(struct spinand_device *spinand); 282 int (*get_status)(struct spinand_device *spinand, u8 status); 319 int (*select_target)(struct spinand_device *spinand, 404 int (*select_target)(struct spinand_device *spinand, 431 * @spinand: SPI NAND device 433 * Return: the MTD device embedded in @spinand. 435 static inline struct mtd_info *spinand_to_mtd(struct spinand_device *spinand) in spinand_to_mtd() argument 437 return nanddev_to_mtd(&spinand->base); in spinand_to_mtd() 453 * @spinand 458 spinand_to_nand(struct spinand_device *spinand) spinand_to_nand() argument 470 spinand_set_of_node(struct spinand_device *spinand, struct device_node *np) spinand_set_of_node() argument [all...] |
/kernel/linux/linux-6.6/include/linux/mtd/ |
H A D | spinand.h | 241 int (*init)(struct spinand_device *spinand); 242 void (*cleanup)(struct spinand_device *spinand); 308 int (*get_status)(struct spinand_device *spinand, u8 status); 318 * ->get_status() is not populated by the spinand device. 354 int (*select_target)(struct spinand_device *spinand, 441 int (*select_target)(struct spinand_device *spinand, 468 * @spinand: SPI NAND device 470 * Return: the MTD device embedded in @spinand. 472 static inline struct mtd_info *spinand_to_mtd(struct spinand_device *spinand) in spinand_to_mtd() argument 474 return nanddev_to_mtd(&spinand in spinand_to_mtd() 495 spinand_to_nand(struct spinand_device *spinand) spinand_to_nand() argument 507 spinand_set_of_node(struct spinand_device *spinand, struct device_node *np) spinand_set_of_node() argument [all...] |