Lines Matching full:nor
7 #include <linux/mtd/spi-nor.h>
28 w25q128_post_bfpt_fixups(struct spi_nor *nor, in w25q128_post_bfpt_fixups() argument
39 nor->params->size == SZ_2M && in w25q128_post_bfpt_fixups()
40 nor->params->erase_map.regions[0].size == SZ_2M) { in w25q128_post_bfpt_fixups()
41 nor->params->size = SZ_16M; in w25q128_post_bfpt_fixups()
42 nor->params->erase_map.regions[0].size = SZ_16M; in w25q128_post_bfpt_fixups()
53 w25q256_post_bfpt_fixups(struct spi_nor *nor, in w25q256_post_bfpt_fixups() argument
67 nor->flags |= SNOR_F_4B_OPCODES; in w25q256_post_bfpt_fixups()
78 * @nor: pointer to 'struct spi_nor'.
89 static int winbond_nor_select_die(struct spi_nor *nor, u8 die) in winbond_nor_select_die() argument
93 nor->bouncebuf[0] = die; in winbond_nor_select_die()
95 if (nor->spimem) { in winbond_nor_select_die()
96 struct spi_mem_op op = WINBOND_NOR_SELDIE_OP(nor->bouncebuf); in winbond_nor_select_die()
98 spi_nor_spimem_setup_op(nor, &op, nor->reg_proto); in winbond_nor_select_die()
100 ret = spi_mem_exec_op(nor->spimem, &op); in winbond_nor_select_die()
102 ret = spi_nor_controller_ops_write_reg(nor, in winbond_nor_select_die()
104 nor->bouncebuf, 1); in winbond_nor_select_die()
108 dev_dbg(nor->dev, "error %d selecting die %d\n", ret, die); in winbond_nor_select_die()
113 static int winbond_nor_multi_die_ready(struct spi_nor *nor) in winbond_nor_multi_die_ready() argument
117 for (i = 0; i < nor->params->n_dice; i++) { in winbond_nor_multi_die_ready()
118 ret = winbond_nor_select_die(nor, i); in winbond_nor_multi_die_ready()
122 ret = spi_nor_sr_ready(nor); in winbond_nor_multi_die_ready()
131 winbond_nor_multi_die_post_sfdp_fixups(struct spi_nor *nor) in winbond_nor_multi_die_post_sfdp_fixups() argument
139 nor->params->n_dice = nor->params->size / SZ_64M; in winbond_nor_multi_die_post_sfdp_fixups()
140 nor->params->ready = winbond_nor_multi_die_ready; in winbond_nor_multi_die_post_sfdp_fixups()
351 * @nor: pointer to 'struct spi_nor'.
356 static int winbond_nor_write_ear(struct spi_nor *nor, u8 ear) in winbond_nor_write_ear() argument
360 nor->bouncebuf[0] = ear; in winbond_nor_write_ear()
362 if (nor->spimem) { in winbond_nor_write_ear()
363 struct spi_mem_op op = WINBOND_NOR_WREAR_OP(nor->bouncebuf); in winbond_nor_write_ear()
365 spi_nor_spimem_setup_op(nor, &op, nor->reg_proto); in winbond_nor_write_ear()
367 ret = spi_mem_exec_op(nor->spimem, &op); in winbond_nor_write_ear()
369 ret = spi_nor_controller_ops_write_reg(nor, in winbond_nor_write_ear()
371 nor->bouncebuf, 1); in winbond_nor_write_ear()
375 dev_dbg(nor->dev, "error %d writing EAR\n", ret); in winbond_nor_write_ear()
383 * @nor: pointer to 'struct spi_nor'.
389 static int winbond_nor_set_4byte_addr_mode(struct spi_nor *nor, bool enable) in winbond_nor_set_4byte_addr_mode() argument
393 ret = spi_nor_set_4byte_addr_mode_en4b_ex4b(nor, enable); in winbond_nor_set_4byte_addr_mode()
402 ret = spi_nor_write_enable(nor); in winbond_nor_set_4byte_addr_mode()
406 ret = winbond_nor_write_ear(nor, 0); in winbond_nor_set_4byte_addr_mode()
410 return spi_nor_write_disable(nor); in winbond_nor_set_4byte_addr_mode()
421 static int winbond_nor_late_init(struct spi_nor *nor) in winbond_nor_late_init() argument
423 struct spi_nor_flash_parameter *params = nor->params; in winbond_nor_late_init()