Home
last modified time | relevance | path

Searched refs:spinand (Results 1 – 17 of 17) sorted by relevance

/linux/drivers/mtd/nand/spi/
H A Dcore.c24 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 Dotp.c17 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 Dmicron.c99 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 Dwinbond.c111 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 Desmt.c111 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 Dgigadevice.c79 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 Dmacronix.c54 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 DMakefile2 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 Dtoshiba.c71 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 Dforesee.c57 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 Dalliancememory.c95 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 Dskyhigh.c60 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 Dxtx.c70 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 Dparagon.c70 static int pn26g0xa_ecc_get_status(struct spinand_device *spinand, in pn26g0xa_ecc_get_status() argument
H A Dfmsh.c55 static int fm25s01bi3_ecc_get_status(struct spinand_device *spinand, in fm25s01bi3_ecc_get_status() argument
/linux/include/linux/mtd/
H A Dspinand.h404 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 Dspi-amlogic-spifc-a4.c1020 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()