Lines Matching full:nor
7 #include <linux/mtd/spi-nor.h>
32 /* Xilinx S3AN share MFR with Atmel SPI NOR */
51 static u32 s3an_nor_convert_addr(struct spi_nor *nor, u32 addr) in s3an_nor_convert_addr() argument
53 u32 page_size = nor->params->page_size; in s3an_nor_convert_addr()
65 * @nor: pointer to 'struct spi_nor'.
71 static int xilinx_nor_read_sr(struct spi_nor *nor, u8 *sr) in xilinx_nor_read_sr() argument
75 if (nor->spimem) { in xilinx_nor_read_sr()
78 spi_nor_spimem_setup_op(nor, &op, nor->reg_proto); in xilinx_nor_read_sr()
80 ret = spi_mem_exec_op(nor->spimem, &op); in xilinx_nor_read_sr()
82 ret = spi_nor_controller_ops_read_reg(nor, XILINX_OP_RDSR, sr, in xilinx_nor_read_sr()
87 dev_dbg(nor->dev, "error %d reading SR\n", ret); in xilinx_nor_read_sr()
95 * @nor: pointer to 'struct spi_nor'.
99 static int xilinx_nor_sr_ready(struct spi_nor *nor) in xilinx_nor_sr_ready() argument
103 ret = xilinx_nor_read_sr(nor, nor->bouncebuf); in xilinx_nor_sr_ready()
107 return !!(nor->bouncebuf[0] & XSR_RDY); in xilinx_nor_sr_ready()
110 static int xilinx_nor_setup(struct spi_nor *nor, in xilinx_nor_setup() argument
116 ret = xilinx_nor_read_sr(nor, nor->bouncebuf); in xilinx_nor_setup()
120 nor->erase_opcode = XILINX_OP_SE; in xilinx_nor_setup()
121 nor->program_opcode = XILINX_OP_PP; in xilinx_nor_setup()
122 nor->read_opcode = SPINOR_OP_READ; in xilinx_nor_setup()
123 nor->flags |= SNOR_F_NO_OP_CHIP_ERASE; in xilinx_nor_setup()
136 if (nor->bouncebuf[0] & XSR_PAGESIZE) { in xilinx_nor_setup()
138 page_size = (nor->params->page_size == 264) ? 256 : 512; in xilinx_nor_setup()
139 nor->params->page_size = page_size; in xilinx_nor_setup()
140 nor->mtd.writebufsize = page_size; in xilinx_nor_setup()
141 nor->params->size = nor->info->size; in xilinx_nor_setup()
142 nor->mtd.erasesize = 8 * page_size; in xilinx_nor_setup()
145 nor->params->convert_addr = s3an_nor_convert_addr; in xilinx_nor_setup()
146 nor->mtd.erasesize = nor->info->sector_size; in xilinx_nor_setup()
152 static int xilinx_nor_late_init(struct spi_nor *nor) in xilinx_nor_late_init() argument
154 nor->params->setup = xilinx_nor_setup; in xilinx_nor_late_init()
155 nor->params->ready = xilinx_nor_sr_ready; in xilinx_nor_late_init()