spinand_device
static int am_ecc_get_status(struct spinand_device *spinand, u8 status)
struct spinand_device *spinand = mtd_to_spinand(mtd);
spinand_fill_prog_exec_op(struct spinand_device *spinand, u64 addr)
struct spinand_device *spinand = nand_to_spinand(nand);
struct spinand_device *spinand = nand_to_spinand(nand);
struct spinand_device *spinand = nand_to_spinand(nand);
int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val)
struct spinand_device *spinand = nand_to_spinand(nand);
struct spinand_device *spinand = nand_to_spinand(nand);
struct spinand_device *spinand = mtd_to_spinand(mtd);
struct spinand_device *spinand = mtd_to_spinand(mtd);
struct spinand_device *spinand,
static int spinand_create_dirmap(struct spinand_device *spinand,
int spinand_write_reg_op(struct spinand_device *spinand, u8 reg, u8 val)
static int spinand_create_dirmaps(struct spinand_device *spinand)
static int spinand_manufacturer_match(struct spinand_device *spinand,
static int spinand_read_status(struct spinand_device *spinand, u8 *status)
static int spinand_id_detect(struct spinand_device *spinand)
static int spinand_manufacturer_init(struct spinand_device *spinand)
static void spinand_manufacturer_cleanup(struct spinand_device *spinand)
static int spinand_get_cfg(struct spinand_device *spinand, u8 *cfg)
static void spinand_init_ssdr_templates(struct spinand_device *spinand)
static int spinand_support_vendor_ops(struct spinand_device *spinand,
static int spinand_init_odtr_instruction_set(struct spinand_device *spinand)
spinand_select_op_variant(struct spinand_device *spinand, enum spinand_bus_interface iface,
static int spinand_set_cfg(struct spinand_device *spinand, u8 cfg)
int spinand_match_and_init(struct spinand_device *spinand,
static int spinand_detect(struct spinand_device *spinand)
static int spinand_configure_chip(struct spinand_device *spinand)
static int spinand_init_flash(struct spinand_device *spinand)
struct spinand_device *spinand = mtd_to_spinand(mtd);
struct spinand_device *spinand = mtd_to_spinand(mtd);
static int spinand_init(struct spinand_device *spinand)
int spinand_upd_cfg(struct spinand_device *spinand, u8 mask, u8 val)
static void spinand_cleanup(struct spinand_device *spinand)
struct spinand_device *spinand;
struct spinand_device *spinand;
int spinand_select_target(struct spinand_device *spinand, unsigned int target)
static int spinand_read_cfg(struct spinand_device *spinand)
spinand_fill_reset_op(struct spinand_device *spinand)
static int spinand_init_cfg_cache(struct spinand_device *spinand)
static int spinand_init_quad_enable(struct spinand_device *spinand,
static int spinand_ecc_enable(struct spinand_device *spinand,
static int spinand_cont_read_enable(struct spinand_device *spinand,
static int spinand_check_ecc_status(struct spinand_device *spinand, u8 status)
spinand_fill_readid_op(struct spinand_device *spinand,
struct spinand_device *spinand = nand_to_spinand(nand);
struct spinand_device *spinand = nand_to_spinand(nand);
struct spinand_device *spinand = nand_to_spinand(nand);
spinand_fill_wr_en_op(struct spinand_device *spinand)
int spinand_write_enable_op(struct spinand_device *spinand)
static int spinand_load_page_op(struct spinand_device *spinand,
static int spinand_read_from_cache_op(struct spinand_device *spinand,
spinand_fill_wr_dis_op(struct spinand_device *spinand)
static int spinand_write_to_cache_op(struct spinand_device *spinand,
spinand_fill_set_feature_op(struct spinand_device *spinand, u64 reg, const void *valptr)
static int spinand_program_op(struct spinand_device *spinand,
static int spinand_erase_op(struct spinand_device *spinand,
int spinand_wait(struct spinand_device *spinand, unsigned long initial_delay_us,
static int spinand_read_id_op(struct spinand_device *spinand, u8 naddr,
static int spinand_reset_op(struct spinand_device *spinand)
spinand_fill_get_feature_op(struct spinand_device *spinand, u64 reg, void *valptr)
static int spinand_lock_block(struct spinand_device *spinand, u8 lock)
int spinand_read_page(struct spinand_device *spinand,
int spinand_write_page(struct spinand_device *spinand,
struct spinand_device *spinand = mtd_to_spinand(mtd);
spinand_fill_blk_erase_op(struct spinand_device *spinand, u64 addr)
struct spinand_device *spinand = mtd_to_spinand(mtd);
static void spinand_cont_read_init(struct spinand_device *spinand)
spinand_fill_page_read_op(struct spinand_device *spinand, u64 addr)
struct spinand_device *spinand = nand_to_spinand(nand);
struct spinand_device *spinand = mtd_to_spinand(mtd);
static int f50l1g41lb_otp_info(struct spinand_device *spinand, size_t len,
static int f50l1g41lb_fact_otp_info(struct spinand_device *spinand, size_t len,
static int f50l1g41lb_user_otp_info(struct spinand_device *spinand, size_t len,
static int f50l1g41lb_otp_lock(struct spinand_device *spinand, loff_t from,
static int fm25s01bi3_ecc_get_status(struct spinand_device *spinand,
static int f35sqa002g_ecc_get_status(struct spinand_device *spinand, u8 status)
static int f35sqb002g_ecc_get_status(struct spinand_device *spinand, u8 status)
static int gd5fxgm9_ecc_get_status(struct spinand_device *spinand, u8 status)
static int gd5fxgm9_set_continuous_read(struct spinand_device *spinand, bool enable)
static int gd5fxgq4xa_ecc_get_status(struct spinand_device *spinand,
static int gd5fxgq4uexxg_ecc_get_status(struct spinand_device *spinand,
static int gd5fxgq5xexxg_ecc_get_status(struct spinand_device *spinand,
static int gd5fxgq4ufxxg_ecc_get_status(struct spinand_device *spinand,
static int gd5fxgm9_spinand_init(struct spinand_device *spinand)
static void gd5fxgm9_spinand_cleanup(struct spinand_device *spinand)
static int gd5fxgm9_get_eccsr(struct spinand_device *spinand, u8 *eccsr)
static int macronix_ecc_get_status(struct spinand_device *spinand,
static int macronix_set_cont_read(struct spinand_device *spinand, bool enable)
static int macronix_set_read_retry(struct spinand_device *spinand,
static int macronix_spinand_init(struct spinand_device *spinand)
static void macronix_spinand_cleanup(struct spinand_device *spinand)
spinand_fill_macronix_read_eccsr_op(struct spinand_device *spinand, void *valptr)
static int macronix_get_eccsr(struct spinand_device *spinand, u8 *eccsr)
struct spinand_device *spinand = mtd_to_spinand(mtd);
static int micron_select_target(struct spinand_device *spinand,
static int micron_8_ecc_get_status(struct spinand_device *spinand,
static int mt29f2g01abagd_otp_is_locked(struct spinand_device *spinand)
static int mt29f2g01abagd_otp_info(struct spinand_device *spinand, size_t len,
static int mt29f2g01abagd_fact_otp_info(struct spinand_device *spinand,
static int mt29f2g01abagd_user_otp_info(struct spinand_device *spinand,
static int mt29f2g01abagd_otp_lock(struct spinand_device *spinand, loff_t from,
static int micron_spinand_init(struct spinand_device *spinand)
struct spinand_device *spinand = mtd_to_spinand(mtd);
int spinand_fact_otp_read(struct spinand_device *spinand, loff_t ofs,
int spinand_user_otp_read(struct spinand_device *spinand, loff_t ofs,
size_t spinand_otp_page_size(struct spinand_device *spinand)
int spinand_user_otp_write(struct spinand_device *spinand, loff_t ofs,
struct spinand_device *spinand = mtd_to_spinand(mtd);
struct spinand_device *spinand = mtd_to_spinand(mtd);
static size_t spinand_otp_size(struct spinand_device *spinand,
struct spinand_device *spinand = mtd_to_spinand(mtd);
struct spinand_device *spinand = mtd_to_spinand(mtd);
struct spinand_device *spinand = mtd_to_spinand(mtd);
int spinand_set_mtd_otp_ops(struct spinand_device *spinand)
size_t spinand_fact_otp_size(struct spinand_device *spinand)
size_t spinand_user_otp_size(struct spinand_device *spinand)
static int spinand_otp_check_bounds(struct spinand_device *spinand, loff_t ofs,
static int spinand_user_otp_check_bounds(struct spinand_device *spinand,
static int spinand_otp_rw(struct spinand_device *spinand, loff_t ofs,
static int pn26g0xa_ecc_get_status(struct spinand_device *spinand,
static int skyhigh_spinand_init(struct spinand_device *spinand)
static int skyhigh_spinand_ecc_get_status(struct spinand_device *spinand,
static int tx58cxgxsxraix_ecc_get_status(struct spinand_device *spinand,
spinand_fill_winbond_write_vcr_op(struct spinand_device *spinand, u8 reg, void *valptr)
spinand_fill_winbond_select_target_op(struct spinand_device *spinand, void *valptr)
static int w25m02gv_select_target(struct spinand_device *spinand,
static int w25n02kv_ecc_get_status(struct spinand_device *spinand,
static int w25n0xjw_hs_cfg(struct spinand_device *spinand,
static int w35n0xjw_write_vcr(struct spinand_device *spinand, u8 reg, u8 val)
static int w35n0xjw_vcr_cfg(struct spinand_device *spinand,
static int winbond_spinand_init(struct spinand_device *spinand)
static int xt26xxxd_ecc_get_status(struct spinand_device *spinand,
static int xt26g0xa_ecc_get_status(struct spinand_device *spinand,
struct spinand_device *spinand = nand_to_spinand(nand);
struct spinand_device;
int (*init)(struct spinand_device *spinand);
void (*cleanup)(struct spinand_device *spinand);
int (*get_status)(struct spinand_device *spinand, u8 status);
int (*info)(struct spinand_device *spinand, size_t len,
int (*read)(struct spinand_device *spinand, loff_t from, size_t len,
int (*info)(struct spinand_device *spinand, size_t len,
int (*lock)(struct spinand_device *spinand, loff_t from, size_t len);
int (*erase)(struct spinand_device *spinand, loff_t from, size_t len);
int (*read)(struct spinand_device *spinand, loff_t from, size_t len,
int (*write)(struct spinand_device *spinand, loff_t from, size_t len,
int (*select_target)(struct spinand_device *spinand,
int (*configure_chip)(struct spinand_device *spinand,
int (*set_cont_read)(struct spinand_device *spinand,
int (*set_read_retry)(struct spinand_device *spinand,
int (*select_target)(struct spinand_device *spinand,
int (*configure_chip)(struct spinand_device *spinand,
int (*set_cont_read)(struct spinand_device *spinand,
int (*set_read_retry)(struct spinand_device *spinand,
struct spi_mem_op spinand_fill_wr_en_op(struct spinand_device *spinand);
struct spi_mem_op spinand_fill_set_feature_op(struct spinand_device *spinand, u64 reg, const void *valptr);
struct spi_mem_op spinand_fill_get_feature_op(struct spinand_device *spinand, u64 reg, void *valptr);
struct spi_mem_op spinand_fill_prog_exec_op(struct spinand_device *spinand, u64 addr);
static inline struct spinand_device *mtd_to_spinand(struct mtd_info *mtd)
return container_of(mtd_to_nanddev(mtd), struct spinand_device, base);
static inline struct mtd_info *spinand_to_mtd(struct spinand_device *spinand)
static inline struct spinand_device *nand_to_spinand(struct nand_device *nand)
return container_of(nand, struct spinand_device, base);
spinand_to_nand(struct spinand_device *spinand)
static inline void spinand_set_of_node(struct spinand_device *spinand,
int spinand_match_and_init(struct spinand_device *spinand,
int spinand_upd_cfg(struct spinand_device *spinand, u8 mask, u8 val);
int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val);
int spinand_write_reg_op(struct spinand_device *spinand, u8 reg, u8 val);
int spinand_write_enable_op(struct spinand_device *spinand);
int spinand_select_target(struct spinand_device *spinand, unsigned int target);
int spinand_wait(struct spinand_device *spinand, unsigned long initial_delay_us,
int spinand_read_page(struct spinand_device *spinand,
int spinand_write_page(struct spinand_device *spinand,
size_t spinand_otp_page_size(struct spinand_device *spinand);
size_t spinand_fact_otp_size(struct spinand_device *spinand);
size_t spinand_user_otp_size(struct spinand_device *spinand);
int spinand_fact_otp_read(struct spinand_device *spinand, loff_t ofs,
int spinand_user_otp_read(struct spinand_device *spinand, loff_t ofs,
int spinand_user_otp_write(struct spinand_device *spinand, loff_t ofs,
int spinand_set_mtd_otp_ops(struct spinand_device *spinand);