| /linux-6.15/drivers/mtd/nand/spi/ |
| H A D | core.c | 59 *cfg = spinand->cfg_cache[spinand->cur_target]; in spinand_get_cfg() 72 if (spinand->cfg_cache[spinand->cur_target] == cfg) in spinand_set_cfg() 79 spinand->cfg_cache[spinand->cur_target] = cfg; in spinand_set_cfg() 133 ret = spinand->select_target(spinand, target); in spinand_select_target() 206 return spinand->set_cont_read(spinand, enable); in spinand_cont_read_enable() 214 return spinand->eccinfo.get_status(spinand, status); in spinand_check_ecc_status() 730 ret = spinand->set_read_retry(spinand, retry_mode); in spinand_mtd_regular_page_read() 732 spinand->set_read_retry(spinand, 0); in spinand_mtd_regular_page_read() 756 ret = spinand->set_read_retry(spinand, retry_mode); in spinand_mtd_regular_page_read() 1254 return spinand->manufacturer->ops->init(spinand); in spinand_manufacturer_init() [all …]
|
| H A D | otp.c | 38 return spinand_otp_size(spinand, &spinand->fact_otp->layout); in spinand_fact_otp_size() 49 return spinand_otp_size(spinand, &spinand->user_otp->layout); in spinand_user_otp_size() 187 mutex_lock(&spinand->lock); in spinand_mtd_otp_info() 190 ret = spinand->fact_otp->ops->info(spinand, len, buf, retlen); in spinand_mtd_otp_info() 192 ret = spinand->user_otp->ops->info(spinand, len, buf, retlen); in spinand_mtd_otp_info() 228 mutex_lock(&spinand->lock); in spinand_mtd_otp_read() 231 ret = spinand->fact_otp->ops->read(spinand, ofs, len, retlen, in spinand_mtd_otp_read() 234 ret = spinand->user_otp->ops->read(spinand, ofs, len, retlen, in spinand_mtd_otp_read() 270 mutex_lock(&spinand->lock); in spinand_mtd_user_otp_write() 291 mutex_lock(&spinand->lock); in spinand_mtd_user_otp_erase() [all …]
|
| H A D | micron.c | 101 if (section >= spinand->base.memorg.pagesize / in micron_4_ooblayout_ecc() 116 if (section >= spinand->base.memorg.pagesize / in micron_4_ooblayout_free() 141 spinand->scratchbuf); in micron_select_target() 148 return spi_mem_exec_op(spinand->spimem, &op); in micron_select_target() 188 ret = spinand_upd_cfg(spinand, in mt29f2g01abagd_otp_is_locked() 198 dev_warn(&spinand_to_mtd(spinand)->dev, in mt29f2g01abagd_otp_is_locked() 231 spinand_fact_otp_size(spinand); in mt29f2g01abagd_otp_info() 259 ret = spinand_upd_cfg(spinand, in mt29f2g01abagd_otp_lock() 273 ret = spinand_wait(spinand, in mt29f2g01abagd_otp_lock() 282 dev_warn(&spinand_to_mtd(spinand)->dev, in mt29f2g01abagd_otp_lock() [all …]
|
| H A D | esmt.c | 110 static int f50l1g41lb_otp_info(struct spinand_device *spinand, size_t len, in f50l1g41lb_otp_info() argument 118 buf->length = user ? spinand_user_otp_size(spinand) : in f50l1g41lb_otp_info() 119 spinand_fact_otp_size(spinand); in f50l1g41lb_otp_info() 128 return f50l1g41lb_otp_info(spinand, len, buf, retlen, false); in f50l1g41lb_fact_otp_info() 134 return f50l1g41lb_otp_info(spinand, len, buf, retlen, true); in f50l1g41lb_user_otp_info() 145 ret = spinand_upd_cfg(spinand, ESMT_F50L1G41LB_CFG_OTP_LOCK, in f50l1g41lb_otp_lock() 150 ret = spi_mem_exec_op(spinand->spimem, &write_op); in f50l1g41lb_otp_lock() 154 ret = spi_mem_exec_op(spinand->spimem, &exec_op); in f50l1g41lb_otp_lock() 158 ret = spinand_wait(spinand, in f50l1g41lb_otp_lock() 166 if (spinand_upd_cfg(spinand, ESMT_F50L1G41LB_CFG_OTP_LOCK, 0)) { in f50l1g41lb_otp_lock() [all …]
|
| H A D | macronix.c | 69 struct macronix_priv *priv = spinand->priv; in macronix_get_eccsr() 75 int ret = spi_mem_exec_op(spinand->spimem, &op); in macronix_get_eccsr() 95 struct nand_device *nand = spinand_to_nand(spinand); in macronix_ecc_get_status() 111 if (macronix_get_eccsr(spinand, spinand->scratchbuf)) in macronix_ecc_get_status() 114 eccsr = *spinand->scratchbuf; in macronix_ecc_get_status() 128 struct macronix_priv *priv = spinand->priv; in macronix_set_cont_read() 152 spinand->scratchbuf); in macronix_set_read_retry() 154 *spinand->scratchbuf = retry_mode; in macronix_set_read_retry() 155 return spi_mem_exec_op(spinand->spimem, &op); in macronix_set_read_retry() 471 spinand->priv = priv; in macronix_spinand_init() [all …]
|
| H A D | winbond.c | 84 static int w25m02gv_select_target(struct spinand_device *spinand, in w25m02gv_select_target() argument 91 spinand->scratchbuf, in w25m02gv_select_target() 94 *spinand->scratchbuf = target; in w25m02gv_select_target() 95 return spi_mem_exec_op(spinand->spimem, &op); in w25m02gv_select_target() 147 struct nand_device *nand = spinand_to_nand(spinand); in w25n02kv_ecc_get_status() 165 if (spi_mem_exec_op(spinand->spimem, &op)) in w25n02kv_ecc_get_status() 168 mbf = *(spinand->scratchbuf) >> 4; in w25n02kv_ecc_get_status() 289 static int winbond_spinand_init(struct spinand_device *spinand) in winbond_spinand_init() argument 291 struct nand_device *nand = spinand_to_nand(spinand); in winbond_spinand_init() 299 spinand_select_target(spinand, i); in winbond_spinand_init() [all …]
|
| H A D | Makefile | 2 spinand-objs := core.o otp.o 3 spinand-objs += alliancememory.o ato.o esmt.o foresee.o gigadevice.o macronix.o 4 spinand-objs += micron.o paragon.o skyhigh.o toshiba.o winbond.o xtx.o 5 obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
|
| H A D | gigadevice.c | 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->scratchbuf); in gd5fxgq5xexxg_ecc_get_status() 265 static int gd5fxgq4ufxxg_ecc_get_status(struct spinand_device *spinand, in gd5fxgq4ufxxg_ecc_get_status() argument
|
| H A D | toshiba.c | 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 | alliancememory.c | 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 | skyhigh.c | 60 static int skyhigh_spinand_ecc_get_status(struct spinand_device *spinand, in skyhigh_spinand_ecc_get_status() argument 126 static int skyhigh_spinand_init(struct spinand_device *spinand) in skyhigh_spinand_init() argument 133 return spinand_write_reg_op(spinand, REG_BLOCK_LOCK, in skyhigh_spinand_init()
|
| H A D | foresee.c | 52 static int f35sqa002g_ecc_get_status(struct spinand_device *spinand, u8 status) in f35sqa002g_ecc_get_status() argument 54 struct nand_device *nand = spinand_to_nand(spinand); in f35sqa002g_ecc_get_status()
|
| H A D | xtx.c | 70 static int xt26g0xa_ecc_get_status(struct spinand_device *spinand, in xt26g0xa_ecc_get_status() argument 123 static int xt26xxxd_ecc_get_status(struct spinand_device *spinand, in xt26xxxd_ecc_get_status() argument
|
| H A D | paragon.c | 70 static int pn26g0xa_ecc_get_status(struct spinand_device *spinand, in pn26g0xa_ecc_get_status() argument
|
| /linux-6.15/include/linux/mtd/ |
| H A D | spinand.h | 289 int (*init)(struct spinand_device *spinand); 290 void (*cleanup)(struct spinand_device *spinand); 473 int (*select_target)(struct spinand_device *spinand, 475 int (*set_cont_read)(struct spinand_device *spinand, 602 int (*select_target)(struct spinand_device *spinand, 616 int (*set_cont_read)(struct spinand_device *spinand, 646 return nanddev_to_mtd(&spinand->base); in spinand_to_mtd() 667 spinand_to_nand(struct spinand_device *spinand) in spinand_to_nand() argument 669 return &spinand->base; in spinand_to_nand() 682 nanddev_set_of_node(&spinand->base, np); in spinand_set_of_node() [all …]
|