Lines Matching refs:nfc

129 	struct atmel_nfc	*nfc;  member
273 if (host->nfc && host->nfc->use_nfc_sram && host->nfc->data_in_sram) { in atmel_read_buf8()
274 memcpy(buf, host->nfc->data_in_sram, len); in atmel_read_buf8()
275 host->nfc->data_in_sram += len; in atmel_read_buf8()
286 if (host->nfc && host->nfc->use_nfc_sram && host->nfc->data_in_sram) { in atmel_read_buf16()
287 memcpy(buf, host->nfc->data_in_sram, len); in atmel_read_buf16()
288 host->nfc->data_in_sram += len; in atmel_read_buf16()
323 nfc_writel(host->nfc->hsmc_regs, BANK, ATMEL_HSMC_NFC_BANK1); in nfc_set_sram_bank()
325 nfc_writel(host->nfc->hsmc_regs, BANK, ATMEL_HSMC_NFC_BANK0); in nfc_set_sram_bank()
333 if (nfc_readl(host->nfc->hsmc_regs, BANK) & ATMEL_HSMC_NFC_BANK1) in nfc_get_sram_off()
341 if (nfc_readl(host->nfc->hsmc_regs, BANK) & ATMEL_HSMC_NFC_BANK1) in nfc_sram_phys()
342 return host->nfc->sram_bank0_phys + NFC_SRAM_BANK1_OFFSET; in nfc_sram_phys()
344 return host->nfc->sram_bank0_phys; in nfc_sram_phys()
360 struct atmel_nfc *nfc = host->nfc; in atmel_nand_dma_op() local
376 if (nfc && nfc->data_in_sram) in atmel_nand_dma_op()
377 dma_src_addr = nfc_sram_phys(host) + (nfc->data_in_sram in atmel_nand_dma_op()
378 - (nfc->sram_bank0 + nfc_get_sram_off(host))); in atmel_nand_dma_op()
386 if (nfc && nfc->write_by_sram) in atmel_nand_dma_op()
412 if (is_read && nfc && nfc->data_in_sram) in atmel_nand_dma_op()
414 nfc->data_in_sram += len; in atmel_nand_dma_op()
930 if (!host->nfc || !host->nfc->use_nfc_sram) in atmel_nand_pmecc_read_page()
964 if (!host->nfc || !host->nfc->write_by_sram) { in atmel_nand_pmecc_write_page()
1646 u32 nfc_status = nfc_readl(host->nfc->hsmc_regs, SR); in nfc_read_status()
1670 mask = nfc_readl(host->nfc->hsmc_regs, IMR); in hsmc_interrupt()
1674 complete(&host->nfc->comp_xfer_done); in hsmc_interrupt()
1675 nfc_writel(host->nfc->hsmc_regs, IDR, NFC_SR_XFR_DONE); in hsmc_interrupt()
1679 complete(&host->nfc->comp_ready); in hsmc_interrupt()
1680 nfc_writel(host->nfc->hsmc_regs, IDR, NFC_SR_RB_EDGE); in hsmc_interrupt()
1684 complete(&host->nfc->comp_cmd_done); in hsmc_interrupt()
1685 nfc_writel(host->nfc->hsmc_regs, IDR, NFC_SR_CMD_DONE); in hsmc_interrupt()
1696 init_completion(&host->nfc->comp_xfer_done); in nfc_prepare_interrupt()
1699 init_completion(&host->nfc->comp_ready); in nfc_prepare_interrupt()
1702 init_completion(&host->nfc->comp_cmd_done); in nfc_prepare_interrupt()
1705 nfc_writel(host->nfc->hsmc_regs, IER, flag); in nfc_prepare_interrupt()
1714 comp[index++] = &host->nfc->comp_xfer_done; in nfc_wait_interrupt()
1717 comp[index++] = &host->nfc->comp_ready; in nfc_wait_interrupt()
1720 comp[index++] = &host->nfc->comp_cmd_done; in nfc_wait_interrupt()
1740 nfc_writel(host->nfc->hsmc_regs, IDR, flag); in nfc_wait_interrupt()
1756 while (nfc_readl(host->nfc->hsmc_regs, SR) & NFC_SR_BUSY) { in nfc_send_command()
1765 nfc_writel(host->nfc->hsmc_regs, CYCLE0, cycle0); in nfc_send_command()
1766 nfc_cmd_addr1234_writel(cmd, addr, host->nfc->base_cmd_regs); in nfc_send_command()
1777 mask = nfc_readl(host->nfc->hsmc_regs, IMR); in nfc_device_ready()
1793 nfc_writel(host->nfc->hsmc_regs, CTRL, NFC_CTRL_DISABLE); in nfc_select_chip()
1795 nfc_writel(host->nfc->hsmc_regs, CTRL, NFC_CTRL_ENABLE); in nfc_select_chip()
1858 host->nfc->data_in_sram = NULL; in nfc_nand_command()
1900 if (host->nfc->use_nfc_sram) { in nfc_nand_command()
1919 if (host->nfc->will_write_sram && command == NAND_CMD_SEQIN) in nfc_nand_command()
1951 host->nfc->data_in_sram = host->nfc->sram_bank0 + in nfc_nand_command()
1969 void *sram = host->nfc->sram_bank0 + nfc_get_sram_off(host); in nfc_sram_write_page()
1985 cfg = nfc_readl(host->nfc->hsmc_regs, CFG); in nfc_sram_write_page()
1989 nfc_writel(host->nfc->hsmc_regs, CFG, cfg | NFC_CFG_WSPARE); in nfc_sram_write_page()
1991 nfc_writel(host->nfc->hsmc_regs, CFG, cfg & ~NFC_CFG_WSPARE); in nfc_sram_write_page()
2002 host->nfc->will_write_sram = true; in nfc_sram_write_page()
2004 host->nfc->will_write_sram = false; in nfc_sram_write_page()
2065 nfc_writel(host->nfc->hsmc_regs, CFG, cfg_nfc); in nfc_sram_init()
2067 host->nfc->will_write_sram = false; in nfc_sram_init()
2071 if (host->nfc->write_by_sram) { in nfc_sram_init()
2076 host->nfc->write_by_sram = false; in nfc_sram_init()
2080 host->nfc->write_by_sram ? "and write" : ""); in nfc_sram_init()
2137 host->nfc = &nand_nfc; in atmel_nand_probe()
2245 if (host->nfc && host->nfc->use_nfc_sram) { in atmel_nand_probe()
2248 host->nfc->use_nfc_sram = false; in atmel_nand_probe()
2323 struct atmel_nfc *nfc = &nand_nfc; in atmel_nand_nfc_probe() local
2328 nfc->base_cmd_regs = devm_ioremap_resource(&pdev->dev, nfc_cmd_regs); in atmel_nand_nfc_probe()
2329 if (IS_ERR(nfc->base_cmd_regs)) in atmel_nand_nfc_probe()
2330 return PTR_ERR(nfc->base_cmd_regs); in atmel_nand_nfc_probe()
2333 nfc->hsmc_regs = devm_ioremap_resource(&pdev->dev, nfc_hsmc_regs); in atmel_nand_nfc_probe()
2334 if (IS_ERR(nfc->hsmc_regs)) in atmel_nand_nfc_probe()
2335 return PTR_ERR(nfc->hsmc_regs); in atmel_nand_nfc_probe()
2339 nfc->sram_bank0 = (void * __force) in atmel_nand_nfc_probe()
2341 if (IS_ERR(nfc->sram_bank0)) { in atmel_nand_nfc_probe()
2343 PTR_ERR(nfc->sram_bank0)); in atmel_nand_nfc_probe()
2345 nfc->use_nfc_sram = true; in atmel_nand_nfc_probe()
2346 nfc->sram_bank0_phys = (dma_addr_t)nfc_sram->start; in atmel_nand_nfc_probe()
2349 nfc->write_by_sram = of_property_read_bool( in atmel_nand_nfc_probe()
2355 nfc_writel(nfc->hsmc_regs, IDR, 0xffffffff); in atmel_nand_nfc_probe()
2356 nfc_readl(nfc->hsmc_regs, SR); /* clear the NFC_SR */ in atmel_nand_nfc_probe()
2358 nfc->clk = devm_clk_get(&pdev->dev, NULL); in atmel_nand_nfc_probe()
2359 if (!IS_ERR(nfc->clk)) { in atmel_nand_nfc_probe()
2360 ret = clk_prepare_enable(nfc->clk); in atmel_nand_nfc_probe()
2367 nfc->is_initialized = true; in atmel_nand_nfc_probe()
2375 struct atmel_nfc *nfc = &nand_nfc; in atmel_nand_nfc_remove() local
2377 if (!IS_ERR(nfc->clk)) in atmel_nand_nfc_remove()
2378 clk_disable_unprepare(nfc->clk); in atmel_nand_nfc_remove()