Lines Matching full:nfc
216 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_data_ptr() local
218 return nfc->buffer + i * mtk_data_len(chip); in mtk_data_ptr()
223 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_oob_ptr() local
225 return nfc->buffer + i * mtk_data_len(chip) + chip->ecc.size; in mtk_oob_ptr()
228 static inline void nfi_writel(struct mtk_nfc *nfc, u32 val, u32 reg) in nfi_writel() argument
230 writel(val, nfc->regs + reg); in nfi_writel()
233 static inline void nfi_writew(struct mtk_nfc *nfc, u16 val, u32 reg) in nfi_writew() argument
235 writew(val, nfc->regs + reg); in nfi_writew()
238 static inline void nfi_writeb(struct mtk_nfc *nfc, u8 val, u32 reg) in nfi_writeb() argument
240 writeb(val, nfc->regs + reg); in nfi_writeb()
243 static inline u32 nfi_readl(struct mtk_nfc *nfc, u32 reg) in nfi_readl() argument
245 return readl_relaxed(nfc->regs + reg); in nfi_readl()
248 static inline u16 nfi_readw(struct mtk_nfc *nfc, u32 reg) in nfi_readw() argument
250 return readw_relaxed(nfc->regs + reg); in nfi_readw()
253 static inline u8 nfi_readb(struct mtk_nfc *nfc, u32 reg) in nfi_readb() argument
255 return readb_relaxed(nfc->regs + reg); in nfi_readb()
258 static void mtk_nfc_hw_reset(struct mtk_nfc *nfc) in mtk_nfc_hw_reset() argument
260 struct device *dev = nfc->dev; in mtk_nfc_hw_reset()
265 nfi_writel(nfc, CON_FIFO_FLUSH | CON_NFI_RST, NFI_CON); in mtk_nfc_hw_reset()
268 ret = readl_poll_timeout(nfc->regs + NFI_MASTER_STA, val, in mtk_nfc_hw_reset()
276 nfi_writel(nfc, CON_FIFO_FLUSH | CON_NFI_RST, NFI_CON); in mtk_nfc_hw_reset()
277 nfi_writew(nfc, STAR_DE, NFI_STRDATA); in mtk_nfc_hw_reset()
280 static int mtk_nfc_send_command(struct mtk_nfc *nfc, u8 command) in mtk_nfc_send_command() argument
282 struct device *dev = nfc->dev; in mtk_nfc_send_command()
286 nfi_writel(nfc, command, NFI_CMD); in mtk_nfc_send_command()
288 ret = readl_poll_timeout_atomic(nfc->regs + NFI_STA, val, in mtk_nfc_send_command()
298 static int mtk_nfc_send_address(struct mtk_nfc *nfc, int addr) in mtk_nfc_send_address() argument
300 struct device *dev = nfc->dev; in mtk_nfc_send_address()
304 nfi_writel(nfc, addr, NFI_COLADDR); in mtk_nfc_send_address()
305 nfi_writel(nfc, 0, NFI_ROWADDR); in mtk_nfc_send_address()
306 nfi_writew(nfc, 1, NFI_ADDRNOB); in mtk_nfc_send_address()
308 ret = readl_poll_timeout_atomic(nfc->regs + NFI_STA, val, in mtk_nfc_send_address()
322 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_hw_runtime_config() local
356 dev_err(nfc->dev, "invalid page len: %d\n", mtd->writesize); in mtk_nfc_hw_runtime_config()
367 for (i = 0; i < nfc->caps->num_spare_size; i++) { in mtk_nfc_hw_runtime_config()
368 if (nfc->caps->spare_size[i] == spare) in mtk_nfc_hw_runtime_config()
372 if (i == nfc->caps->num_spare_size) { in mtk_nfc_hw_runtime_config()
373 dev_err(nfc->dev, "invalid spare size %d\n", spare); in mtk_nfc_hw_runtime_config()
377 fmt |= i << nfc->caps->pageformat_spare_shift; in mtk_nfc_hw_runtime_config()
381 nfi_writel(nfc, fmt, NFI_PAGEFMT); in mtk_nfc_hw_runtime_config()
383 nfc->ecc_cfg.strength = chip->ecc.strength; in mtk_nfc_hw_runtime_config()
384 nfc->ecc_cfg.len = chip->ecc.size + mtk_nand->fdm.ecc_size; in mtk_nfc_hw_runtime_config()
389 static inline void mtk_nfc_wait_ioready(struct mtk_nfc *nfc) in mtk_nfc_wait_ioready() argument
394 rc = readb_poll_timeout_atomic(nfc->regs + NFI_PIO_DIRDY, val, in mtk_nfc_wait_ioready()
397 dev_err(nfc->dev, "data not ready\n"); in mtk_nfc_wait_ioready()
402 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_read_byte() local
406 reg = nfi_readl(nfc, NFI_STA) & NFI_FSM_MASK; in mtk_nfc_read_byte()
408 reg = nfi_readw(nfc, NFI_CNFG); in mtk_nfc_read_byte()
410 nfi_writew(nfc, reg, NFI_CNFG); in mtk_nfc_read_byte()
416 reg = (nfc->caps->max_sector << CON_SEC_SHIFT) | CON_BRD; in mtk_nfc_read_byte()
417 nfi_writel(nfc, reg, NFI_CON); in mtk_nfc_read_byte()
420 nfi_writew(nfc, STAR_EN, NFI_STRDATA); in mtk_nfc_read_byte()
423 mtk_nfc_wait_ioready(nfc); in mtk_nfc_read_byte()
425 return nfi_readb(nfc, NFI_DATAR); in mtk_nfc_read_byte()
438 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_write_byte() local
441 reg = nfi_readl(nfc, NFI_STA) & NFI_FSM_MASK; in mtk_nfc_write_byte()
444 reg = nfi_readw(nfc, NFI_CNFG) | CNFG_BYTE_RW; in mtk_nfc_write_byte()
445 nfi_writew(nfc, reg, NFI_CNFG); in mtk_nfc_write_byte()
447 reg = nfc->caps->max_sector << CON_SEC_SHIFT | CON_BWR; in mtk_nfc_write_byte()
448 nfi_writel(nfc, reg, NFI_CON); in mtk_nfc_write_byte()
450 nfi_writew(nfc, STAR_EN, NFI_STRDATA); in mtk_nfc_write_byte()
453 mtk_nfc_wait_ioready(nfc); in mtk_nfc_write_byte()
454 nfi_writeb(nfc, byte, NFI_DATAW); in mtk_nfc_write_byte()
468 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_exec_instr() local
474 mtk_nfc_send_command(nfc, instr->ctx.cmd.opcode); in mtk_nfc_exec_instr()
478 mtk_nfc_send_address(nfc, instr->ctx.addr.addrs[i]); in mtk_nfc_exec_instr()
489 return readl_poll_timeout(nfc->regs + NFI_STA, status, in mtk_nfc_exec_instr()
501 struct mtk_nfc *nfc = nand_get_controller_data(nand); in mtk_nfc_select_target() local
506 nfi_writel(nfc, mtk_nand->sels[cs], NFI_CSEL); in mtk_nfc_select_target()
513 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_exec_op() local
520 mtk_nfc_hw_reset(nfc); in mtk_nfc_exec_op()
521 nfi_writew(nfc, CNFG_OP_CUST, NFI_CNFG); in mtk_nfc_exec_op()
536 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_setup_interface() local
548 rate = clk_get_rate(nfc->clk.nfi_clk); in mtk_nfc_setup_interface()
550 rate /= nfc->caps->nfi_clk_div; in mtk_nfc_setup_interface()
617 temp = nfi_readl(nfc, NFI_DEBUG_CON1); in mtk_nfc_setup_interface()
620 nfi_writel(nfc, temp, NFI_DEBUG_CON1); in mtk_nfc_setup_interface()
636 nfi_writel(nfc, trlt, NFI_ACCCON); in mtk_nfc_setup_interface()
643 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_sector_encode() local
647 nfc->ecc_cfg.mode = ECC_DMA_MODE; in mtk_nfc_sector_encode()
648 nfc->ecc_cfg.op = ECC_ENCODE; in mtk_nfc_sector_encode()
650 return mtk_ecc_encode(nfc->ecc, &nfc->ecc_cfg, data, size); in mtk_nfc_sector_encode()
677 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_format_subpage() local
685 memset(nfc->buffer, 0xff, mtd->writesize + mtd->oobsize); in mtk_nfc_format_subpage()
694 mtk_nand->bad_mark.bm_swap(mtd, nfc->buffer, 1); in mtk_nfc_format_subpage()
711 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_format_page() local
715 memset(nfc->buffer, 0xff, mtd->writesize + mtd->oobsize); in mtk_nfc_format_page()
722 mtk_nand->bad_mark.bm_swap(mtd, nfc->buffer, 1); in mtk_nfc_format_page()
731 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_read_fdm() local
740 vall = nfi_readl(nfc, NFI_FDML(i)); in mtk_nfc_read_fdm()
741 valm = nfi_readl(nfc, NFI_FDMM(i)); in mtk_nfc_read_fdm()
750 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_write_fdm() local
769 nfi_writel(nfc, vall, NFI_FDML(i)); in mtk_nfc_write_fdm()
770 nfi_writel(nfc, valm, NFI_FDMM(i)); in mtk_nfc_write_fdm()
777 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_do_write_page() local
778 struct device *dev = nfc->dev; in mtk_nfc_do_write_page()
784 ret = dma_mapping_error(nfc->dev, addr); in mtk_nfc_do_write_page()
786 dev_err(nfc->dev, "dma mapping error\n"); in mtk_nfc_do_write_page()
790 reg = nfi_readw(nfc, NFI_CNFG) | CNFG_AHB | CNFG_DMA_BURST_EN; in mtk_nfc_do_write_page()
791 nfi_writew(nfc, reg, NFI_CNFG); in mtk_nfc_do_write_page()
793 nfi_writel(nfc, chip->ecc.steps << CON_SEC_SHIFT, NFI_CON); in mtk_nfc_do_write_page()
794 nfi_writel(nfc, lower_32_bits(addr), NFI_STRADDR); in mtk_nfc_do_write_page()
795 nfi_writew(nfc, INTR_AHB_DONE_EN, NFI_INTR_EN); in mtk_nfc_do_write_page()
797 init_completion(&nfc->done); in mtk_nfc_do_write_page()
799 reg = nfi_readl(nfc, NFI_CON) | CON_BWR; in mtk_nfc_do_write_page()
800 nfi_writel(nfc, reg, NFI_CON); in mtk_nfc_do_write_page()
801 nfi_writew(nfc, STAR_EN, NFI_STRDATA); in mtk_nfc_do_write_page()
803 ret = wait_for_completion_timeout(&nfc->done, msecs_to_jiffies(500)); in mtk_nfc_do_write_page()
806 nfi_writew(nfc, 0, NFI_INTR_EN); in mtk_nfc_do_write_page()
811 ret = readl_poll_timeout_atomic(nfc->regs + NFI_ADDRCNTR, reg, in mtk_nfc_do_write_page()
819 dma_unmap_single(nfc->dev, addr, len, DMA_TO_DEVICE); in mtk_nfc_do_write_page()
820 nfi_writel(nfc, 0, NFI_CON); in mtk_nfc_do_write_page()
828 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_write_page() local
840 reg = nfi_readw(nfc, NFI_CNFG) | CNFG_AUTO_FMT_EN; in mtk_nfc_write_page()
841 nfi_writew(nfc, reg | CNFG_HW_ECC_EN, NFI_CNFG); in mtk_nfc_write_page()
843 nfc->ecc_cfg.op = ECC_ENCODE; in mtk_nfc_write_page()
844 nfc->ecc_cfg.mode = ECC_NFI_MODE; in mtk_nfc_write_page()
845 ret = mtk_ecc_enable(nfc->ecc, &nfc->ecc_cfg); in mtk_nfc_write_page()
848 reg = nfi_readw(nfc, NFI_CNFG); in mtk_nfc_write_page()
850 nfi_writew(nfc, reg, NFI_CNFG); in mtk_nfc_write_page()
855 memcpy(nfc->buffer, buf, mtd->writesize); in mtk_nfc_write_page()
856 mtk_nand->bad_mark.bm_swap(mtd, nfc->buffer, raw); in mtk_nfc_write_page()
857 bufpoi = nfc->buffer; in mtk_nfc_write_page()
869 mtk_ecc_disable(nfc->ecc); in mtk_nfc_write_page()
887 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_write_page_raw() local
890 return mtk_nfc_write_page(mtd, chip, nfc->buffer, pg, 1); in mtk_nfc_write_page_raw()
898 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_write_subpage_hwecc() local
906 return mtk_nfc_write_page(mtd, chip, nfc->buffer, page, 1); in mtk_nfc_write_subpage_hwecc()
918 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_update_ecc_stats() local
924 rc = nfi_readl(nfc, NFI_STA) & STA_EMP_PAGE; in mtk_nfc_update_ecc_stats()
932 mtk_ecc_get_stats(nfc->ecc, &stats, sectors); in mtk_nfc_update_ecc_stats()
943 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_read_subpage() local
965 addr = dma_map_single(nfc->dev, buf, len, DMA_FROM_DEVICE); in mtk_nfc_read_subpage()
966 rc = dma_mapping_error(nfc->dev, addr); in mtk_nfc_read_subpage()
968 dev_err(nfc->dev, "dma mapping error\n"); in mtk_nfc_read_subpage()
973 reg = nfi_readw(nfc, NFI_CNFG); in mtk_nfc_read_subpage()
977 nfi_writew(nfc, reg, NFI_CNFG); in mtk_nfc_read_subpage()
979 nfc->ecc_cfg.mode = ECC_NFI_MODE; in mtk_nfc_read_subpage()
980 nfc->ecc_cfg.sectors = sectors; in mtk_nfc_read_subpage()
981 nfc->ecc_cfg.op = ECC_DECODE; in mtk_nfc_read_subpage()
982 rc = mtk_ecc_enable(nfc->ecc, &nfc->ecc_cfg); in mtk_nfc_read_subpage()
984 dev_err(nfc->dev, "ecc enable\n"); in mtk_nfc_read_subpage()
988 nfi_writew(nfc, reg, NFI_CNFG); in mtk_nfc_read_subpage()
989 dma_unmap_single(nfc->dev, addr, len, DMA_FROM_DEVICE); in mtk_nfc_read_subpage()
994 nfi_writew(nfc, reg, NFI_CNFG); in mtk_nfc_read_subpage()
997 nfi_writel(nfc, sectors << CON_SEC_SHIFT, NFI_CON); in mtk_nfc_read_subpage()
998 nfi_writew(nfc, INTR_AHB_DONE_EN, NFI_INTR_EN); in mtk_nfc_read_subpage()
999 nfi_writel(nfc, lower_32_bits(addr), NFI_STRADDR); in mtk_nfc_read_subpage()
1001 init_completion(&nfc->done); in mtk_nfc_read_subpage()
1002 reg = nfi_readl(nfc, NFI_CON) | CON_BRD; in mtk_nfc_read_subpage()
1003 nfi_writel(nfc, reg, NFI_CON); in mtk_nfc_read_subpage()
1004 nfi_writew(nfc, STAR_EN, NFI_STRDATA); in mtk_nfc_read_subpage()
1006 rc = wait_for_completion_timeout(&nfc->done, msecs_to_jiffies(500)); in mtk_nfc_read_subpage()
1008 dev_warn(nfc->dev, "read ahb/dma done timeout\n"); in mtk_nfc_read_subpage()
1010 rc = readl_poll_timeout_atomic(nfc->regs + NFI_BYTELEN, reg, in mtk_nfc_read_subpage()
1014 dev_err(nfc->dev, "subpage done timeout\n"); in mtk_nfc_read_subpage()
1017 rc = mtk_ecc_wait_done(nfc->ecc, ECC_DECODE); in mtk_nfc_read_subpage()
1023 dma_unmap_single(nfc->dev, addr, len, DMA_FROM_DEVICE); in mtk_nfc_read_subpage()
1028 mtk_ecc_disable(nfc->ecc); in mtk_nfc_read_subpage()
1033 nfi_writel(nfc, 0, NFI_CON); in mtk_nfc_read_subpage()
1058 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_read_page_raw() local
1062 memset(nfc->buffer, 0xff, mtd->writesize + mtd->oobsize); in mtk_nfc_read_page_raw()
1063 ret = mtk_nfc_read_subpage(mtd, chip, 0, mtd->writesize, nfc->buffer, in mtk_nfc_read_page_raw()
1072 mtk_nand->bad_mark.bm_swap(mtd, nfc->buffer, 1); in mtk_nfc_read_page_raw()
1087 static inline void mtk_nfc_hw_init(struct mtk_nfc *nfc) in mtk_nfc_hw_init() argument
1095 nfi_writew(nfc, 0xf1, NFI_CNRNB); in mtk_nfc_hw_init()
1096 nfi_writel(nfc, PAGEFMT_8K_16K, NFI_PAGEFMT); in mtk_nfc_hw_init()
1098 mtk_nfc_hw_reset(nfc); in mtk_nfc_hw_init()
1100 nfi_readl(nfc, NFI_INTR_STA); in mtk_nfc_hw_init()
1101 nfi_writel(nfc, 0, NFI_INTR_EN); in mtk_nfc_hw_init()
1106 struct mtk_nfc *nfc = id; in mtk_nfc_irq() local
1109 sta = nfi_readw(nfc, NFI_INTR_STA); in mtk_nfc_irq()
1110 ien = nfi_readw(nfc, NFI_INTR_EN); in mtk_nfc_irq()
1115 nfi_writew(nfc, ~sta & ien, NFI_INTR_EN); in mtk_nfc_irq()
1116 complete(&nfc->done); in mtk_nfc_irq()
1166 struct mtk_nfc *nfc = nand_get_controller_data(nand); in mtk_nfc_set_fdm() local
1170 mtk_ecc_get_parity_bits(nfc->ecc), 8); in mtk_nfc_set_fdm()
1197 struct mtk_nfc *nfc = nand_get_controller_data(nand); in mtk_nfc_set_spare_per_sector() local
1198 const u8 *spare = nfc->caps->spare_size; in mtk_nfc_set_spare_per_sector()
1210 for (i = 0; i < nfc->caps->num_spare_size; i++) { in mtk_nfc_set_spare_per_sector()
1231 struct mtk_nfc *nfc = nand_get_controller_data(nand); in mtk_nfc_ecc_init() local
1253 nfc->caps->max_sector_size > 512) { in mtk_nfc_ecc_init()
1268 free = (nand->ecc.strength * mtk_ecc_get_parity_bits(nfc->ecc) in mtk_nfc_ecc_init()
1280 mtk_ecc_get_parity_bits(nfc->ecc); in mtk_nfc_ecc_init()
1284 mtk_ecc_get_parity_bits(nfc->ecc); in mtk_nfc_ecc_init()
1288 mtk_ecc_adjust_strength(nfc->ecc, &nand->ecc.strength); in mtk_nfc_ecc_init()
1300 struct mtk_nfc *nfc = nand_get_controller_data(chip); in mtk_nfc_attach_chip() local
1326 nfc->buffer = devm_kzalloc(dev, len, GFP_KERNEL); in mtk_nfc_attach_chip()
1327 if (!nfc->buffer) in mtk_nfc_attach_chip()
1339 static int mtk_nfc_nand_chip_init(struct device *dev, struct mtk_nfc *nfc, in mtk_nfc_nand_chip_init() argument
1377 if (test_and_set_bit(tmp, &nfc->assigned_cs)) { in mtk_nfc_nand_chip_init()
1386 nand->controller = &nfc->controller; in mtk_nfc_nand_chip_init()
1389 nand_set_controller_data(nand, nfc); in mtk_nfc_nand_chip_init()
1414 mtk_nfc_hw_init(nfc); in mtk_nfc_nand_chip_init()
1427 list_add_tail(&chip->node, &nfc->chips); in mtk_nfc_nand_chip_init()
1432 static void mtk_nfc_nand_chips_cleanup(struct mtk_nfc *nfc) in mtk_nfc_nand_chips_cleanup() argument
1438 while (!list_empty(&nfc->chips)) { in mtk_nfc_nand_chips_cleanup()
1439 mtk_chip = list_first_entry(&nfc->chips, in mtk_nfc_nand_chips_cleanup()
1449 static int mtk_nfc_nand_chips_init(struct device *dev, struct mtk_nfc *nfc) in mtk_nfc_nand_chips_init() argument
1455 ret = mtk_nfc_nand_chip_init(dev, nfc, nand_np); in mtk_nfc_nand_chips_init()
1457 mtk_nfc_nand_chips_cleanup(nfc); in mtk_nfc_nand_chips_init()
1494 .compatible = "mediatek,mt2701-nfc",
1497 .compatible = "mediatek,mt2712-nfc",
1500 .compatible = "mediatek,mt7622-nfc",
1511 struct mtk_nfc *nfc; in mtk_nfc_probe() local
1514 nfc = devm_kzalloc(dev, sizeof(*nfc), GFP_KERNEL); in mtk_nfc_probe()
1515 if (!nfc) in mtk_nfc_probe()
1518 nand_controller_init(&nfc->controller); in mtk_nfc_probe()
1519 INIT_LIST_HEAD(&nfc->chips); in mtk_nfc_probe()
1520 nfc->controller.ops = &mtk_nfc_controller_ops; in mtk_nfc_probe()
1523 nfc->ecc = of_mtk_ecc_get(np); in mtk_nfc_probe()
1524 if (IS_ERR(nfc->ecc)) in mtk_nfc_probe()
1525 return PTR_ERR(nfc->ecc); in mtk_nfc_probe()
1526 else if (!nfc->ecc) in mtk_nfc_probe()
1529 nfc->caps = of_device_get_match_data(dev); in mtk_nfc_probe()
1530 nfc->dev = dev; in mtk_nfc_probe()
1532 nfc->regs = devm_platform_ioremap_resource(pdev, 0); in mtk_nfc_probe()
1533 if (IS_ERR(nfc->regs)) { in mtk_nfc_probe()
1534 ret = PTR_ERR(nfc->regs); in mtk_nfc_probe()
1538 nfc->clk.nfi_clk = devm_clk_get_enabled(dev, "nfi_clk"); in mtk_nfc_probe()
1539 if (IS_ERR(nfc->clk.nfi_clk)) { in mtk_nfc_probe()
1541 ret = PTR_ERR(nfc->clk.nfi_clk); in mtk_nfc_probe()
1545 nfc->clk.pad_clk = devm_clk_get_enabled(dev, "pad_clk"); in mtk_nfc_probe()
1546 if (IS_ERR(nfc->clk.pad_clk)) { in mtk_nfc_probe()
1548 ret = PTR_ERR(nfc->clk.pad_clk); in mtk_nfc_probe()
1558 ret = devm_request_irq(dev, irq, mtk_nfc_irq, 0x0, "mtk-nand", nfc); in mtk_nfc_probe()
1570 platform_set_drvdata(pdev, nfc); in mtk_nfc_probe()
1572 ret = mtk_nfc_nand_chips_init(dev, nfc); in mtk_nfc_probe()
1581 mtk_ecc_release(nfc->ecc); in mtk_nfc_probe()
1588 struct mtk_nfc *nfc = platform_get_drvdata(pdev); in mtk_nfc_remove() local
1590 mtk_nfc_nand_chips_cleanup(nfc); in mtk_nfc_remove()
1591 mtk_ecc_release(nfc->ecc); in mtk_nfc_remove()
1597 struct mtk_nfc *nfc = dev_get_drvdata(dev); in mtk_nfc_suspend() local
1599 clk_disable_unprepare(nfc->clk.nfi_clk); in mtk_nfc_suspend()
1600 clk_disable_unprepare(nfc->clk.pad_clk); in mtk_nfc_suspend()
1607 struct mtk_nfc *nfc = dev_get_drvdata(dev); in mtk_nfc_resume() local
1615 ret = clk_prepare_enable(nfc->clk.nfi_clk); in mtk_nfc_resume()
1621 ret = clk_prepare_enable(nfc->clk.pad_clk); in mtk_nfc_resume()
1624 clk_disable_unprepare(nfc->clk.nfi_clk); in mtk_nfc_resume()
1629 list_for_each_entry(chip, &nfc->chips, node) { in mtk_nfc_resume()