Lines Matching refs:nor
13 #include <linux/mtd/spi-nor.h>
99 struct spi_nor *nor[HIFMC_MAX_CHIP_NUM];
147 static int hisi_spi_nor_prep(struct spi_nor *nor)
149 struct hifmc_priv *priv = nor->priv;
170 static void hisi_spi_nor_unprep(struct spi_nor *nor)
172 struct hifmc_priv *priv = nor->priv;
179 static int hisi_spi_nor_op_reg(struct spi_nor *nor,
182 struct hifmc_priv *priv = nor->priv;
202 static int hisi_spi_nor_read_reg(struct spi_nor *nor, u8 opcode, u8 *buf,
205 struct hifmc_priv *priv = nor->priv;
209 ret = hisi_spi_nor_op_reg(nor, opcode, len, FMC_OP_READ_DATA_EN);
217 static int hisi_spi_nor_write_reg(struct spi_nor *nor, u8 opcode,
220 struct hifmc_priv *priv = nor->priv;
226 return hisi_spi_nor_op_reg(nor, opcode, len, FMC_OP_WRITE_DATA_EN);
229 static int hisi_spi_nor_dma_transfer(struct spi_nor *nor, loff_t start_off,
232 struct hifmc_priv *priv = nor->priv;
240 reg |= (nor->addr_width == 4) ? SPI_NOR_ADDR_MODE_4BYTES
250 if_type = hisi_spi_nor_get_if_type(nor->read_proto);
252 if_type = hisi_spi_nor_get_if_type(nor->write_proto);
255 reg |= OP_CFG_DUMMY_NUM(nor->read_dummy >> 3);
261 ? OP_CTRL_RD_OPCODE(nor->read_opcode)
262 : OP_CTRL_WR_OPCODE(nor->program_opcode);
268 static ssize_t hisi_spi_nor_read(struct spi_nor *nor, loff_t from, size_t len,
271 struct hifmc_priv *priv = nor->priv;
279 ret = hisi_spi_nor_dma_transfer(nor,
282 dev_warn(nor->dev, "DMA read timeout\n");
291 static ssize_t hisi_spi_nor_write(struct spi_nor *nor, loff_t to,
294 struct hifmc_priv *priv = nor->priv;
303 ret = hisi_spi_nor_dma_transfer(nor,
306 dev_warn(nor->dev, "DMA write timeout\n");
337 struct spi_nor *nor;
342 nor = devm_kzalloc(dev, sizeof(*nor), GFP_KERNEL);
343 if (!nor)
346 nor->dev = dev;
347 spi_nor_set_flash_node(nor, np);
368 nor->priv = priv;
369 nor->controller_ops = &hisi_controller_ops;
371 ret = spi_nor_scan(nor, NULL, &hwcaps);
375 mtd = &nor->mtd;
381 host->nor[host->num_chip] = nor;
391 mtd_device_unregister(&host->nor[i]->mtd);
484 { .compatible = "hisilicon,fmc-spi-nor"},