Lines Matching refs:nor
7 #include <linux/mtd/spi-nor.h>
57 static u32 s3an_nor_convert_addr(struct spi_nor *nor, u32 addr)
59 u32 page_size = nor->params->page_size;
71 * @nor: pointer to 'struct spi_nor'.
77 static int xilinx_nor_read_sr(struct spi_nor *nor, u8 *sr)
81 if (nor->spimem) {
84 spi_nor_spimem_setup_op(nor, &op, nor->reg_proto);
86 ret = spi_mem_exec_op(nor->spimem, &op);
88 ret = spi_nor_controller_ops_read_reg(nor, XILINX_OP_RDSR, sr,
93 dev_dbg(nor->dev, "error %d reading SR\n", ret);
101 * @nor: pointer to 'struct spi_nor'.
105 static int xilinx_nor_sr_ready(struct spi_nor *nor)
109 ret = xilinx_nor_read_sr(nor, nor->bouncebuf);
113 return !!(nor->bouncebuf[0] & XSR_RDY);
116 static int xilinx_nor_setup(struct spi_nor *nor,
122 ret = xilinx_nor_read_sr(nor, nor->bouncebuf);
126 nor->erase_opcode = XILINX_OP_SE;
127 nor->program_opcode = XILINX_OP_PP;
128 nor->read_opcode = SPINOR_OP_READ;
129 nor->flags |= SNOR_F_NO_OP_CHIP_ERASE;
142 if (nor->bouncebuf[0] & XSR_PAGESIZE) {
144 page_size = (nor->params->page_size == 264) ? 256 : 512;
145 nor->params->page_size = page_size;
146 nor->mtd.writebufsize = page_size;
147 nor->params->size = 8 * page_size * nor->info->n_sectors;
148 nor->mtd.erasesize = 8 * page_size;
151 nor->params->convert_addr = s3an_nor_convert_addr;
152 nor->mtd.erasesize = nor->info->sector_size;
158 static int xilinx_nor_late_init(struct spi_nor *nor)
160 nor->params->setup = xilinx_nor_setup;
161 nor->params->ready = xilinx_nor_sr_ready;