Lines Matching refs:aq

223 static u32 atmel_qspi_read(struct atmel_qspi *aq, u32 offset)  in atmel_qspi_read()  argument
225 u32 value = readl(aq->regs + offset); in atmel_qspi_read()
230 dev_vdbg(aq->dev, "read 0x%08x from %s\n", value, in atmel_qspi_read()
237 static void atmel_qspi_write(u32 value, struct atmel_qspi *aq, u32 offset) in atmel_qspi_write() argument
242 dev_vdbg(aq->dev, "write 0x%08x into %s\n", value, in atmel_qspi_write()
246 writel(value, aq->regs + offset); in atmel_qspi_write()
289 static int atmel_qspi_set_cfg(struct atmel_qspi *aq, in atmel_qspi_set_cfg() argument
368 if (aq->mr != QSPI_MR_SMM) { in atmel_qspi_set_cfg()
369 atmel_qspi_write(QSPI_MR_SMM, aq, QSPI_MR); in atmel_qspi_set_cfg()
370 aq->mr = QSPI_MR_SMM; in atmel_qspi_set_cfg()
374 (void)atmel_qspi_read(aq, QSPI_SR); in atmel_qspi_set_cfg()
376 if (aq->caps->has_ricr) { in atmel_qspi_set_cfg()
381 atmel_qspi_write(iar, aq, QSPI_IAR); in atmel_qspi_set_cfg()
383 atmel_qspi_write(icr, aq, QSPI_RICR); in atmel_qspi_set_cfg()
385 atmel_qspi_write(icr, aq, QSPI_WICR); in atmel_qspi_set_cfg()
386 atmel_qspi_write(ifr, aq, QSPI_IFR); in atmel_qspi_set_cfg()
392 atmel_qspi_write(iar, aq, QSPI_IAR); in atmel_qspi_set_cfg()
393 atmel_qspi_write(icr, aq, QSPI_ICR); in atmel_qspi_set_cfg()
394 atmel_qspi_write(ifr, aq, QSPI_IFR); in atmel_qspi_set_cfg()
403 struct atmel_qspi *aq = dev_get_priv(slave->dev->parent); in atmel_qspi_exec_op() local
412 if (op->addr.val + op->data.nbytes > aq->mmap_size) in atmel_qspi_exec_op()
415 err = atmel_qspi_set_cfg(aq, op, &offset); in atmel_qspi_exec_op()
422 (void)atmel_qspi_read(aq, QSPI_IFR); in atmel_qspi_exec_op()
426 memcpy_fromio(op->data.buf.in, aq->mem + offset, in atmel_qspi_exec_op()
429 memcpy_toio(aq->mem + offset, op->data.buf.out, in atmel_qspi_exec_op()
433 atmel_qspi_write(QSPI_CR_LASTXFER, aq, QSPI_CR); in atmel_qspi_exec_op()
438 return readl_poll_timeout(aq->regs + QSPI_SR, sr, (sr & imr) == imr, in atmel_qspi_exec_op()
444 struct atmel_qspi *aq = dev_get_priv(bus); in atmel_qspi_set_speed() local
448 scbr = DIV_ROUND_UP(aq->bus_clk_rate, hz); in atmel_qspi_set_speed()
455 scr = atmel_qspi_read(aq, QSPI_SCR); in atmel_qspi_set_speed()
460 atmel_qspi_write(scr, aq, QSPI_SCR); in atmel_qspi_set_speed()
467 struct atmel_qspi *aq = dev_get_priv(bus); in atmel_qspi_set_mode() local
477 scr = atmel_qspi_read(aq, QSPI_SCR); in atmel_qspi_set_mode()
482 atmel_qspi_write(scr, aq, QSPI_SCR); in atmel_qspi_set_mode()
489 struct atmel_qspi *aq = dev_get_priv(dev); in atmel_qspi_enable_clk() local
508 if (aq->caps->has_qspick) { in atmel_qspi_enable_clk()
522 aq->bus_clk_rate = clk_get_rate(&pclk); in atmel_qspi_enable_clk()
523 if (!aq->bus_clk_rate) in atmel_qspi_enable_clk()
532 static void atmel_qspi_init(struct atmel_qspi *aq) in atmel_qspi_init() argument
535 atmel_qspi_write(QSPI_CR_SWRST, aq, QSPI_CR); in atmel_qspi_init()
538 atmel_qspi_write(QSPI_MR_SMM, aq, QSPI_MR); in atmel_qspi_init()
539 aq->mr = QSPI_MR_SMM; in atmel_qspi_init()
542 atmel_qspi_write(QSPI_CR_QSPIEN, aq, QSPI_CR); in atmel_qspi_init()
547 struct atmel_qspi *aq = dev_get_priv(dev); in atmel_qspi_probe() local
551 aq->caps = (struct atmel_qspi_caps *)dev_get_driver_data(dev); in atmel_qspi_probe()
552 if (!aq->caps) { in atmel_qspi_probe()
564 aq->regs = devm_ioremap(dev, res.start, resource_size(&res)); in atmel_qspi_probe()
565 if (IS_ERR(aq->regs)) in atmel_qspi_probe()
566 return PTR_ERR(aq->regs); in atmel_qspi_probe()
575 aq->mem = devm_ioremap(dev, res.start, resource_size(&res)); in atmel_qspi_probe()
576 if (IS_ERR(aq->mem)) in atmel_qspi_probe()
577 return PTR_ERR(aq->mem); in atmel_qspi_probe()
579 aq->mmap_size = resource_size(&res); in atmel_qspi_probe()
585 aq->dev = dev; in atmel_qspi_probe()
587 atmel_qspi_init(aq); in atmel_qspi_probe()