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()
965 if (!host->nfc || !host->nfc->write_by_sram) { in atmel_nand_pmecc_write_page()
1647 u32 nfc_status = nfc_readl(host->nfc->hsmc_regs, SR); in nfc_read_status()
1671 mask = nfc_readl(host->nfc->hsmc_regs, IMR); in hsmc_interrupt()
1675 complete(&host->nfc->comp_xfer_done); in hsmc_interrupt()
1676 nfc_writel(host->nfc->hsmc_regs, IDR, NFC_SR_XFR_DONE); in hsmc_interrupt()
1680 complete(&host->nfc->comp_ready); in hsmc_interrupt()
1681 nfc_writel(host->nfc->hsmc_regs, IDR, NFC_SR_RB_EDGE); in hsmc_interrupt()
1685 complete(&host->nfc->comp_cmd_done); in hsmc_interrupt()
1686 nfc_writel(host->nfc->hsmc_regs, IDR, NFC_SR_CMD_DONE); in hsmc_interrupt()
1697 init_completion(&host->nfc->comp_xfer_done); in nfc_prepare_interrupt()
1700 init_completion(&host->nfc->comp_ready); in nfc_prepare_interrupt()
1703 init_completion(&host->nfc->comp_cmd_done); in nfc_prepare_interrupt()
1706 nfc_writel(host->nfc->hsmc_regs, IER, flag); in nfc_prepare_interrupt()
1715 comp[index++] = &host->nfc->comp_xfer_done; in nfc_wait_interrupt()
1718 comp[index++] = &host->nfc->comp_ready; in nfc_wait_interrupt()
1721 comp[index++] = &host->nfc->comp_cmd_done; in nfc_wait_interrupt()
1741 nfc_writel(host->nfc->hsmc_regs, IDR, flag); in nfc_wait_interrupt()
1757 while (nfc_readl(host->nfc->hsmc_regs, SR) & NFC_SR_BUSY) { in nfc_send_command()
1766 nfc_writel(host->nfc->hsmc_regs, CYCLE0, cycle0); in nfc_send_command()
1767 nfc_cmd_addr1234_writel(cmd, addr, host->nfc->base_cmd_regs); in nfc_send_command()
1778 mask = nfc_readl(host->nfc->hsmc_regs, IMR); in nfc_device_ready()
1794 nfc_writel(host->nfc->hsmc_regs, CTRL, NFC_CTRL_DISABLE); in nfc_select_chip()
1796 nfc_writel(host->nfc->hsmc_regs, CTRL, NFC_CTRL_ENABLE); in nfc_select_chip()
1859 host->nfc->data_in_sram = NULL; in nfc_nand_command()
1901 if (host->nfc->use_nfc_sram) { in nfc_nand_command()
1920 if (host->nfc->will_write_sram && command == NAND_CMD_SEQIN) in nfc_nand_command()
1952 host->nfc->data_in_sram = host->nfc->sram_bank0 + in nfc_nand_command()
1970 void *sram = host->nfc->sram_bank0 + nfc_get_sram_off(host); in nfc_sram_write_page()
1986 cfg = nfc_readl(host->nfc->hsmc_regs, CFG); in nfc_sram_write_page()
1990 nfc_writel(host->nfc->hsmc_regs, CFG, cfg | NFC_CFG_WSPARE); in nfc_sram_write_page()
1992 nfc_writel(host->nfc->hsmc_regs, CFG, cfg & ~NFC_CFG_WSPARE); in nfc_sram_write_page()
2003 host->nfc->will_write_sram = true; in nfc_sram_write_page()
2005 host->nfc->will_write_sram = false; in nfc_sram_write_page()
2067 nfc_writel(host->nfc->hsmc_regs, CFG, cfg_nfc); in nfc_sram_init()
2069 host->nfc->will_write_sram = false; in nfc_sram_init()
2073 if (host->nfc->write_by_sram) { in nfc_sram_init()
2078 host->nfc->write_by_sram = false; in nfc_sram_init()
2082 host->nfc->write_by_sram ? "and write" : ""); in nfc_sram_init()
2139 host->nfc = &nand_nfc; in atmel_nand_probe()
2247 if (host->nfc && host->nfc->use_nfc_sram) { in atmel_nand_probe()
2250 host->nfc->use_nfc_sram = false; in atmel_nand_probe()
2325 struct atmel_nfc *nfc = &nand_nfc; in atmel_nand_nfc_probe() local
2330 nfc->base_cmd_regs = devm_ioremap_resource(&pdev->dev, nfc_cmd_regs); in atmel_nand_nfc_probe()
2331 if (IS_ERR(nfc->base_cmd_regs)) in atmel_nand_nfc_probe()
2332 return PTR_ERR(nfc->base_cmd_regs); in atmel_nand_nfc_probe()
2335 nfc->hsmc_regs = devm_ioremap_resource(&pdev->dev, nfc_hsmc_regs); in atmel_nand_nfc_probe()
2336 if (IS_ERR(nfc->hsmc_regs)) in atmel_nand_nfc_probe()
2337 return PTR_ERR(nfc->hsmc_regs); in atmel_nand_nfc_probe()
2341 nfc->sram_bank0 = (void * __force) in atmel_nand_nfc_probe()
2343 if (IS_ERR(nfc->sram_bank0)) { in atmel_nand_nfc_probe()
2345 PTR_ERR(nfc->sram_bank0)); in atmel_nand_nfc_probe()
2347 nfc->use_nfc_sram = true; in atmel_nand_nfc_probe()
2348 nfc->sram_bank0_phys = (dma_addr_t)nfc_sram->start; in atmel_nand_nfc_probe()
2351 nfc->write_by_sram = of_property_read_bool( in atmel_nand_nfc_probe()
2357 nfc_writel(nfc->hsmc_regs, IDR, 0xffffffff); in atmel_nand_nfc_probe()
2358 nfc_readl(nfc->hsmc_regs, SR); /* clear the NFC_SR */ in atmel_nand_nfc_probe()
2360 nfc->clk = devm_clk_get(&pdev->dev, NULL); in atmel_nand_nfc_probe()
2361 if (!IS_ERR(nfc->clk)) { in atmel_nand_nfc_probe()
2362 ret = clk_prepare_enable(nfc->clk); in atmel_nand_nfc_probe()
2369 nfc->is_initialized = true; in atmel_nand_nfc_probe()
2377 struct atmel_nfc *nfc = &nand_nfc; in atmel_nand_nfc_remove() local
2379 if (!IS_ERR(nfc->clk)) in atmel_nand_nfc_remove()
2380 clk_disable_unprepare(nfc->clk); in atmel_nand_nfc_remove()