Lines Matching refs:nor

38 static int m25p80_read_reg(struct spi_nor *nor, u8 code, u8 *val, int len)  in m25p80_read_reg()  argument
40 struct m25p *flash = nor->priv; in m25p80_read_reg()
51 static void m25p_addr2cmd(struct spi_nor *nor, unsigned int addr, u8 *cmd) in m25p_addr2cmd() argument
54 cmd[1] = addr >> (nor->addr_width * 8 - 8); in m25p_addr2cmd()
55 cmd[2] = addr >> (nor->addr_width * 8 - 16); in m25p_addr2cmd()
56 cmd[3] = addr >> (nor->addr_width * 8 - 24); in m25p_addr2cmd()
57 cmd[4] = addr >> (nor->addr_width * 8 - 32); in m25p_addr2cmd()
60 static int m25p_cmdsz(struct spi_nor *nor) in m25p_cmdsz() argument
62 return 1 + nor->addr_width; in m25p_cmdsz()
65 static int m25p80_write_reg(struct spi_nor *nor, u8 opcode, u8 *buf, int len, in m25p80_write_reg() argument
68 struct m25p *flash = nor->priv; in m25p80_write_reg()
78 static void m25p80_write(struct spi_nor *nor, loff_t to, size_t len, in m25p80_write() argument
81 struct m25p *flash = nor->priv; in m25p80_write()
85 int cmd_sz = m25p_cmdsz(nor); in m25p80_write()
89 if (nor->program_opcode == SPINOR_OP_AAI_WP && nor->sst_write_second) in m25p80_write()
92 flash->command[0] = nor->program_opcode; in m25p80_write()
93 m25p_addr2cmd(nor, to, flash->command); in m25p80_write()
108 static inline unsigned int m25p80_rx_nbits(struct spi_nor *nor) in m25p80_rx_nbits() argument
110 switch (nor->flash_read) { in m25p80_rx_nbits()
124 static int m25p80_read(struct spi_nor *nor, loff_t from, size_t len, in m25p80_read() argument
127 struct m25p *flash = nor->priv; in m25p80_read()
131 unsigned int dummy = nor->read_dummy; in m25p80_read()
139 flash->command[0] = nor->read_opcode; in m25p80_read()
140 m25p_addr2cmd(nor, from, flash->command); in m25p80_read()
143 t[0].len = m25p_cmdsz(nor) + dummy; in m25p80_read()
147 t[1].rx_nbits = m25p80_rx_nbits(nor); in m25p80_read()
153 *retlen = m.actual_length - m25p_cmdsz(nor) - dummy; in m25p80_read()
157 static int m25p80_erase(struct spi_nor *nor, loff_t offset) in m25p80_erase() argument
159 struct m25p *flash = nor->priv; in m25p80_erase()
161 dev_dbg(nor->dev, "%dKiB at 0x%08x\n", in m25p80_erase()
165 flash->command[0] = nor->erase_opcode; in m25p80_erase()
166 m25p_addr2cmd(nor, offset, flash->command); in m25p80_erase()
168 spi_write(flash->spi, flash->command, m25p_cmdsz(nor)); in m25p80_erase()
183 struct spi_nor *nor; in m25p_probe() local
194 nor = &flash->spi_nor; in m25p_probe()
197 nor->read = m25p80_read; in m25p_probe()
198 nor->write = m25p80_write; in m25p_probe()
199 nor->erase = m25p80_erase; in m25p_probe()
200 nor->write_reg = m25p80_write_reg; in m25p_probe()
201 nor->read_reg = m25p80_read_reg; in m25p_probe()
203 nor->dev = &spi->dev; in m25p_probe()
204 nor->mtd = &flash->mtd; in m25p_probe()
205 nor->priv = flash; in m25p_probe()
208 flash->mtd.priv = nor; in m25p_probe()
231 ret = spi_nor_scan(nor, flash_name, mode); in m25p_probe()