| /linux/drivers/mtd/nand/spi/ |
| H A D | core.c | 24 spinand_fill_reset_op(struct spinand_device *spinand) in spinand_fill_reset_op() argument 26 return spinand->op_templates->reset; in spinand_fill_reset_op() 30 spinand_fill_readid_op(struct spinand_device *spinand, in spinand_fill_readid_op() argument 33 struct spi_mem_op op = spinand->op_templates->readid; in spinand_fill_readid_op() 44 spinand_fill_wr_en_op(struct spinand_device *spinand) in spinand_fill_wr_en_op() argument 46 return spinand->op_templates->wr_en; in spinand_fill_wr_en_op() 50 spinand_fill_wr_dis_op(struct spinand_device *spinand) in spinand_fill_wr_dis_op() argument 52 return spinand->op_templates->wr_dis; in spinand_fill_wr_dis_op() 56 spinand_fill_set_feature_op(struct spinand_device *spinand, u64 reg, const void *valptr) in spinand_fill_set_feature_op() argument 58 struct spi_mem_op op = spinand->op_templates->set_feature; in spinand_fill_set_feature_op() [all …]
|
| H A D | otp.c | 17 size_t spinand_otp_page_size(struct spinand_device *spinand) in spinand_otp_page_size() argument 19 struct nand_device *nand = spinand_to_nand(spinand); in spinand_otp_page_size() 24 static size_t spinand_otp_size(struct spinand_device *spinand, in spinand_otp_size() argument 27 return layout->npages * spinand_otp_page_size(spinand); in spinand_otp_size() 36 size_t spinand_fact_otp_size(struct spinand_device *spinand) in spinand_fact_otp_size() argument 38 return spinand_otp_size(spinand, &spinand->fact_otp->layout); in spinand_fact_otp_size() 47 size_t spinand_user_otp_size(struct spinand_device *spinand) in spinand_user_otp_size() argument 49 return spinand_otp_size(spinand, &spinand->user_otp->layout); in spinand_user_otp_size() 52 static int spinand_otp_check_bounds(struct spinand_device *spinand, loff_t ofs, in spinand_otp_check_bounds() argument 56 if (ofs < 0 || ofs + len > spinand_otp_size(spinand, layout)) in spinand_otp_check_bounds() [all …]
|
| H A D | micron.c | 99 struct spinand_device *spinand = mtd_to_spinand(mtd); in micron_4_ooblayout_ecc() local 101 if (section >= spinand->base.memorg.pagesize / in micron_4_ooblayout_ecc() 114 struct spinand_device *spinand = mtd_to_spinand(mtd); in micron_4_ooblayout_free() local 116 if (section >= spinand->base.memorg.pagesize / in micron_4_ooblayout_free() 137 static int micron_select_target(struct spinand_device *spinand, in micron_select_target() argument 140 struct spi_mem_op op = SPINAND_OP(spinand, set_feature, in micron_select_target() 141 MICRON_DIE_SELECT_REG, spinand->scratchbuf); in micron_select_target() 146 *spinand->scratchbuf = MICRON_SELECT_DIE(target); in micron_select_target() 148 return spi_mem_exec_op(spinand->spimem, &op); in micron_select_target() 151 static int micron_8_ecc_get_status(struct spinand_device *spinand, in micron_8_ecc_get_status() argument [all …]
|
| H A D | winbond.c | 111 spinand_fill_winbond_write_vcr_op(struct spinand_device *spinand, u8 reg, void *valptr) in spinand_fill_winbond_write_vcr_op() argument 113 return (spinand->bus_iface == SSDR) ? in spinand_fill_winbond_write_vcr_op() 128 spinand_fill_winbond_select_target_op(struct spinand_device *spinand, void *valptr) in spinand_fill_winbond_select_target_op() argument 130 WARN_ON_ONCE(spinand->bus_iface != SSDR); in spinand_fill_winbond_select_target_op() 164 static int w25m02gv_select_target(struct spinand_device *spinand, in w25m02gv_select_target() argument 167 struct spi_mem_op op = SPINAND_OP(spinand, winbond_select_target, in w25m02gv_select_target() 168 spinand->scratchbuf); in w25m02gv_select_target() 170 *spinand->scratchbuf = target; in w25m02gv_select_target() 171 return spi_mem_exec_op(spinand->spimem, &op); in w25m02gv_select_target() 290 static int w25n02kv_ecc_get_status(struct spinand_device *spinand, in w25n02kv_ecc_get_status() argument [all …]
|
| H A D | esmt.c | 111 static int f50l1g41lb_otp_info(struct spinand_device *spinand, size_t len, in f50l1g41lb_otp_info() argument 119 buf->length = user ? spinand_user_otp_size(spinand) : in f50l1g41lb_otp_info() 120 spinand_fact_otp_size(spinand); in f50l1g41lb_otp_info() 126 static int f50l1g41lb_fact_otp_info(struct spinand_device *spinand, size_t len, in f50l1g41lb_fact_otp_info() argument 129 return f50l1g41lb_otp_info(spinand, len, buf, retlen, false); in f50l1g41lb_fact_otp_info() 132 static int f50l1g41lb_user_otp_info(struct spinand_device *spinand, size_t len, in f50l1g41lb_user_otp_info() argument 135 return f50l1g41lb_otp_info(spinand, len, buf, retlen, true); in f50l1g41lb_user_otp_info() 138 static int f50l1g41lb_otp_lock(struct spinand_device *spinand, loff_t from, in f50l1g41lb_otp_lock() argument 141 struct spi_mem_op write_op = SPINAND_OP(spinand, wr_en); in f50l1g41lb_otp_lock() 142 struct spi_mem_op exec_op = SPINAND_OP(spinand, prog_exec, 0); in f50l1g41lb_otp_lock() [all …]
|
| H A D | gigadevice.c | 79 static int gd5fxgm9_get_eccsr(struct spinand_device *spinand, u8 *eccsr) in gd5fxgm9_get_eccsr() argument 81 struct gigadevice_priv *priv = spinand->priv; in gd5fxgm9_get_eccsr() 88 ret = spi_mem_exec_op(spinand->spimem, &op); in gd5fxgm9_get_eccsr() 100 static int gd5fxgm9_ecc_get_status(struct spinand_device *spinand, u8 status) in gd5fxgm9_ecc_get_status() argument 102 struct nand_device *nand = spinand_to_nand(spinand); in gd5fxgm9_ecc_get_status() 111 ret = gd5fxgm9_get_eccsr(spinand, spinand->scratchbuf); in gd5fxgm9_ecc_get_status() 115 eccsr = *spinand->scratchbuf; in gd5fxgm9_ecc_get_status() 132 static int gd5fxgm9_set_continuous_read(struct spinand_device *spinand, bool enable) in gd5fxgm9_set_continuous_read() argument 134 struct gigadevice_priv *priv = spinand->priv; in gd5fxgm9_set_continuous_read() 137 ret = spinand_upd_cfg(spinand, GD_FEATURE_NR, in gd5fxgm9_set_continuous_read() [all …]
|
| H A D | macronix.c | 54 spinand_fill_macronix_read_eccsr_op(struct spinand_device *spinand, void *valptr) in spinand_fill_macronix_read_eccsr_op() argument 56 WARN_ON_ONCE(spinand->bus_iface != SSDR); in spinand_fill_macronix_read_eccsr_op() 84 static int macronix_get_eccsr(struct spinand_device *spinand, u8 *eccsr) in macronix_get_eccsr() argument 86 struct macronix_priv *priv = spinand->priv; in macronix_get_eccsr() 87 struct spi_mem_op op = SPINAND_OP(spinand, macronix_read_eccsr, eccsr); in macronix_get_eccsr() 90 ret = spi_mem_exec_op(spinand->spimem, &op); in macronix_get_eccsr() 107 static int macronix_ecc_get_status(struct spinand_device *spinand, in macronix_ecc_get_status() argument 110 struct nand_device *nand = spinand_to_nand(spinand); in macronix_ecc_get_status() 126 if (macronix_get_eccsr(spinand, spinand->scratchbuf)) in macronix_ecc_get_status() 129 eccsr = *spinand->scratchbuf; in macronix_ecc_get_status() [all …]
|
| H A D | Makefile | 2 spinand-objs := core.o otp.o 3 spinand-objs += alliancememory.o ato.o dosilicon.o esmt.o fmsh.o foresee.o gigadevice.o 4 spinand-objs += macronix.o micron.o paragon.o skyhigh.o toshiba.o winbond.o xtx.o 5 obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
|
| 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_OP(spinand, get_feature, in tx58cxgxsxraix_ecc_get_status() 77 0x30, spinand->scratchbuf); in tx58cxgxsxraix_ecc_get_status() 93 if (spi_mem_exec_op(spinand->spimem, &op)) in tx58cxgxsxraix_ecc_get_status() 96 mbf = *(spinand->scratchbuf) >> 4; in tx58cxgxsxraix_ecc_get_status()
|
| H A D | foresee.c | 57 static int f35sqa002g_ecc_get_status(struct spinand_device *spinand, u8 status) in f35sqa002g_ecc_get_status() argument 59 struct nand_device *nand = spinand_to_nand(spinand); in f35sqa002g_ecc_get_status() 78 static int f35sqb002g_ecc_get_status(struct spinand_device *spinand, u8 status) in f35sqb002g_ecc_get_status() argument
|
| 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 | 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
|
| H A D | fmsh.c | 55 static int fm25s01bi3_ecc_get_status(struct spinand_device *spinand, in fm25s01bi3_ecc_get_status() argument
|
| /linux/include/linux/mtd/ |
| H A D | spinand.h | 404 int (*init)(struct spinand_device *spinand); 405 void (*cleanup)(struct spinand_device *spinand); 476 int (*get_status)(struct spinand_device *spinand, u8 status); 511 int (*info)(struct spinand_device *spinand, size_t len, 513 int (*read)(struct spinand_device *spinand, loff_t from, size_t len, 526 int (*info)(struct spinand_device *spinand, size_t len, 528 int (*lock)(struct spinand_device *spinand, loff_t from, size_t len); 529 int (*erase)(struct spinand_device *spinand, loff_t from, size_t len); 530 int (*read)(struct spinand_device *spinand, loff_t from, size_t len, 532 int (*write)(struct spinand_device *spinand, loff_t from, size_t len, [all …]
|
| /linux/drivers/spi/ |
| H A D | spi-amlogic-spifc-a4.c | 1020 struct spinand_device *spinand = nand_to_spinand(nand); in aml_sfc_ecc_prepare_io_req() local 1036 memset(spinand->oobbuf, 0xff, nanddev_per_page_oobsize(nand)); in aml_sfc_ecc_prepare_io_req()
|