Lines Matching full:nor

7 #include <linux/mtd/spi-nor.h>
29 mx25l25635_post_bfpt_fixups(struct spi_nor *nor, in mx25l25635_post_bfpt_fixups() argument
43 nor->flags |= SNOR_F_4B_OPCODES; in mx25l25635_post_bfpt_fixups()
49 macronix_qpp4b_post_sfdp_fixups(struct spi_nor *nor) in macronix_qpp4b_post_sfdp_fixups() argument
52 struct spi_nor_flash_parameter *params = nor->params; in macronix_qpp4b_post_sfdp_fixups()
237 static int macronix_nor_octal_dtr_en(struct spi_nor *nor) in macronix_nor_octal_dtr_en() argument
240 u8 *buf = nor->bouncebuf, i; in macronix_nor_octal_dtr_en()
244 buf[0] = MXIC_NOR_REG_DC(nor->params->reads[SNOR_CMD_READ_8_8_8_DTR].num_wait_states); in macronix_nor_octal_dtr_en()
246 ret = spi_nor_write_any_volatile_reg(nor, &op, nor->reg_proto); in macronix_nor_octal_dtr_en()
253 ret = spi_nor_write_any_volatile_reg(nor, &op, nor->reg_proto); in macronix_nor_octal_dtr_en()
258 ret = spi_nor_read_id(nor, nor->addr_nbytes, 4, buf, in macronix_nor_octal_dtr_en()
261 dev_dbg(nor->dev, "error %d reading JEDEC ID after enabling 8D-8D-8D mode\n", ret); in macronix_nor_octal_dtr_en()
265 /* Macronix SPI-NOR flash 8D-8D-8D read ID would get 6 bytes data A-A-B-B-C-C */ in macronix_nor_octal_dtr_en()
266 for (i = 0; i < nor->info->id->len; i++) in macronix_nor_octal_dtr_en()
267 if (buf[i * 2] != buf[(i * 2) + 1] || buf[i * 2] != nor->info->id->bytes[i]) in macronix_nor_octal_dtr_en()
273 static int macronix_nor_octal_dtr_dis(struct spi_nor *nor) in macronix_nor_octal_dtr_dis() argument
276 u8 *buf = nor->bouncebuf; in macronix_nor_octal_dtr_dis()
288 ret = spi_nor_write_any_volatile_reg(nor, &op, SNOR_PROTO_8_8_8_DTR); in macronix_nor_octal_dtr_dis()
293 ret = spi_nor_read_id(nor, 0, 0, buf, SNOR_PROTO_1_1_1); in macronix_nor_octal_dtr_dis()
295 dev_dbg(nor->dev, "error %d reading JEDEC ID after disabling 8D-8D-8D mode\n", ret); in macronix_nor_octal_dtr_dis()
299 if (memcmp(buf, nor->info->id->bytes, nor->info->id->len)) in macronix_nor_octal_dtr_dis()
305 static int macronix_nor_set_octal_dtr(struct spi_nor *nor, bool enable) in macronix_nor_set_octal_dtr() argument
307 return enable ? macronix_nor_octal_dtr_en(nor) : macronix_nor_octal_dtr_dis(nor); in macronix_nor_set_octal_dtr()
310 static void macronix_nor_default_init(struct spi_nor *nor) in macronix_nor_default_init() argument
312 nor->params->quad_enable = spi_nor_sr1_bit6_quad_enable; in macronix_nor_default_init()
315 static int macronix_nor_late_init(struct spi_nor *nor) in macronix_nor_late_init() argument
317 if (!nor->params->set_4byte_addr_mode) in macronix_nor_late_init()
318 nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode_en4b_ex4b; in macronix_nor_late_init()
319 nor->params->set_octal_dtr = macronix_nor_set_octal_dtr; in macronix_nor_late_init()