Lines Matching refs:nfc_op
640 struct marvell_nfc_op *nfc_op) in marvell_nfc_send_cmd() argument
647 (u32)readl_relaxed(nfc->regs + NDCR), nfc_op->ndcb[0], in marvell_nfc_send_cmd()
648 nfc_op->ndcb[1], nfc_op->ndcb[2], nfc_op->ndcb[3]); in marvell_nfc_send_cmd()
650 writel_relaxed(to_nand_sel(marvell_nand)->ndcb0_csel | nfc_op->ndcb[0], in marvell_nfc_send_cmd()
652 writel_relaxed(nfc_op->ndcb[1], nfc->regs + NDCB0); in marvell_nfc_send_cmd()
653 writel(nfc_op->ndcb[2], nfc->regs + NDCB0); in marvell_nfc_send_cmd()
659 if (nfc_op->ndcb[0] & NDCB0_LEN_OVRD || in marvell_nfc_send_cmd()
660 NDCB0_ADDR_GET_NUM_CYC(nfc_op->ndcb[0]) >= 6) { in marvell_nfc_send_cmd()
662 writel(nfc_op->ndcb[3], nfc->regs + NDCB0); in marvell_nfc_send_cmd()
1041 struct marvell_nfc_op nfc_op = { in marvell_nfc_hw_ecc_hmg_do_read_page() local
1055 nfc_op.ndcb[0] |= NDCB0_CMD_XTYPE(XTYPE_MONOLITHIC_RW); in marvell_nfc_hw_ecc_hmg_do_read_page()
1061 marvell_nfc_send_cmd(chip, &nfc_op); in marvell_nfc_hw_ecc_hmg_do_read_page()
1155 struct marvell_nfc_op nfc_op = { in marvell_nfc_hw_ecc_hmg_do_write_page() local
1170 nfc_op.ndcb[0] |= NDCB0_CMD_XTYPE(XTYPE_MONOLITHIC_RW); in marvell_nfc_hw_ecc_hmg_do_write_page()
1176 marvell_nfc_send_cmd(chip, &nfc_op); in marvell_nfc_hw_ecc_hmg_do_write_page()
1312 struct marvell_nfc_op nfc_op = { in marvell_nfc_hw_ecc_bch_read_chunk() local
1326 nfc_op.ndcb[0] |= NDCB0_DBC | in marvell_nfc_hw_ecc_bch_read_chunk()
1335 nfc_op.ndcb[0] |= NDCB0_CMD_XTYPE(XTYPE_MONOLITHIC_RW); in marvell_nfc_hw_ecc_bch_read_chunk()
1337 nfc_op.ndcb[0] |= NDCB0_CMD_XTYPE(XTYPE_NAKED_RW); in marvell_nfc_hw_ecc_bch_read_chunk()
1339 nfc_op.ndcb[0] |= NDCB0_CMD_XTYPE(XTYPE_LAST_NAKED_RW); in marvell_nfc_hw_ecc_bch_read_chunk()
1341 marvell_nfc_send_cmd(chip, &nfc_op); in marvell_nfc_hw_ecc_bch_read_chunk()
1575 struct marvell_nfc_op nfc_op = { in marvell_nfc_hw_ecc_bch_write_chunk() local
1594 nfc_op.ndcb[0] |= NDCB0_CMD_XTYPE(xtype) | in marvell_nfc_hw_ecc_bch_write_chunk()
1597 nfc_op.ndcb[1] |= NDCB1_ADDRS_PAGE(page); in marvell_nfc_hw_ecc_bch_write_chunk()
1598 nfc_op.ndcb[2] |= NDCB2_ADDR5_PAGE(page); in marvell_nfc_hw_ecc_bch_write_chunk()
1600 nfc_op.ndcb[0] |= NDCB0_CMD_XTYPE(XTYPE_NAKED_RW); in marvell_nfc_hw_ecc_bch_write_chunk()
1602 nfc_op.ndcb[0] |= NDCB0_CMD_XTYPE(XTYPE_LAST_NAKED_RW); in marvell_nfc_hw_ecc_bch_write_chunk()
1607 nfc_op.ndcb[0] |= NDCB0_CMD2(NAND_CMD_PAGEPROG) | NDCB0_DBC; in marvell_nfc_hw_ecc_bch_write_chunk()
1613 marvell_nfc_send_cmd(chip, &nfc_op); in marvell_nfc_hw_ecc_bch_write_chunk()
1711 struct marvell_nfc_op *nfc_op) in marvell_nfc_parse_instructions() argument
1720 memset(nfc_op, 0, sizeof(struct marvell_nfc_op)); in marvell_nfc_parse_instructions()
1732 nfc_op->ndcb[0] |= in marvell_nfc_parse_instructions()
1735 nfc_op->ndcb[0] |= in marvell_nfc_parse_instructions()
1739 nfc_op->cle_ale_delay_ns = instr->delay_ns; in marvell_nfc_parse_instructions()
1748 nfc_op->ndcb[0] |= NDCB0_ADDR_CYC(naddrs); in marvell_nfc_parse_instructions()
1751 nfc_op->ndcb[1] |= addrs[i] << (8 * i); in marvell_nfc_parse_instructions()
1754 nfc_op->ndcb[2] |= NDCB2_ADDR5_CYC(addrs[4]); in marvell_nfc_parse_instructions()
1756 nfc_op->ndcb[3] |= NDCB3_ADDR6_CYC(addrs[5]); in marvell_nfc_parse_instructions()
1758 nfc_op->ndcb[3] |= NDCB3_ADDR7_CYC(addrs[6]); in marvell_nfc_parse_instructions()
1760 nfc_op->cle_ale_delay_ns = instr->delay_ns; in marvell_nfc_parse_instructions()
1764 nfc_op->data_instr = instr; in marvell_nfc_parse_instructions()
1765 nfc_op->data_instr_idx = op_id; in marvell_nfc_parse_instructions()
1766 nfc_op->ndcb[0] |= NDCB0_CMD_TYPE(TYPE_READ); in marvell_nfc_parse_instructions()
1768 nfc_op->ndcb[0] |= in marvell_nfc_parse_instructions()
1772 nfc_op->ndcb[3] |= round_up(len, FIFO_DEPTH); in marvell_nfc_parse_instructions()
1774 nfc_op->data_delay_ns = instr->delay_ns; in marvell_nfc_parse_instructions()
1778 nfc_op->data_instr = instr; in marvell_nfc_parse_instructions()
1779 nfc_op->data_instr_idx = op_id; in marvell_nfc_parse_instructions()
1780 nfc_op->ndcb[0] |= NDCB0_CMD_TYPE(TYPE_WRITE); in marvell_nfc_parse_instructions()
1782 nfc_op->ndcb[0] |= in marvell_nfc_parse_instructions()
1786 nfc_op->ndcb[3] |= round_up(len, FIFO_DEPTH); in marvell_nfc_parse_instructions()
1788 nfc_op->data_delay_ns = instr->delay_ns; in marvell_nfc_parse_instructions()
1792 nfc_op->rdy_timeout_ms = instr->ctx.waitrdy.timeout_ms; in marvell_nfc_parse_instructions()
1793 nfc_op->rdy_delay_ns = instr->delay_ns; in marvell_nfc_parse_instructions()
1801 struct marvell_nfc_op *nfc_op) in marvell_nfc_xfer_data_pio() argument
1804 const struct nand_op_instr *instr = nfc_op->data_instr; in marvell_nfc_xfer_data_pio()
1805 unsigned int op_id = nfc_op->data_instr_idx; in marvell_nfc_xfer_data_pio()
1833 struct marvell_nfc_op nfc_op; in marvell_nfc_monolithic_access_exec() local
1837 marvell_nfc_parse_instructions(chip, subop, &nfc_op); in marvell_nfc_monolithic_access_exec()
1838 reading = (nfc_op.data_instr->type == NAND_OP_DATA_IN_INSTR); in marvell_nfc_monolithic_access_exec()
1844 marvell_nfc_send_cmd(chip, &nfc_op); in marvell_nfc_monolithic_access_exec()
1850 cond_delay(nfc_op.cle_ale_delay_ns); in marvell_nfc_monolithic_access_exec()
1853 if (nfc_op.rdy_timeout_ms) { in marvell_nfc_monolithic_access_exec()
1854 ret = marvell_nfc_wait_op(chip, nfc_op.rdy_timeout_ms); in marvell_nfc_monolithic_access_exec()
1859 cond_delay(nfc_op.rdy_delay_ns); in marvell_nfc_monolithic_access_exec()
1862 marvell_nfc_xfer_data_pio(chip, subop, &nfc_op); in marvell_nfc_monolithic_access_exec()
1867 cond_delay(nfc_op.data_delay_ns); in marvell_nfc_monolithic_access_exec()
1870 if (nfc_op.rdy_timeout_ms) { in marvell_nfc_monolithic_access_exec()
1871 ret = marvell_nfc_wait_op(chip, nfc_op.rdy_timeout_ms); in marvell_nfc_monolithic_access_exec()
1876 cond_delay(nfc_op.rdy_delay_ns); in marvell_nfc_monolithic_access_exec()
1897 struct marvell_nfc_op nfc_op; in marvell_nfc_naked_access_exec() local
1900 marvell_nfc_parse_instructions(chip, subop, &nfc_op); in marvell_nfc_naked_access_exec()
1907 nfc_op.ndcb[0] &= ~(NDCB0_CMD_TYPE(TYPE_MASK) | in marvell_nfc_naked_access_exec()
1911 nfc_op.ndcb[0] |= NDCB0_CMD_TYPE(TYPE_NAKED_CMD); in marvell_nfc_naked_access_exec()
1914 nfc_op.ndcb[0] |= NDCB0_CMD_TYPE(TYPE_NAKED_ADDR); in marvell_nfc_naked_access_exec()
1917 nfc_op.ndcb[0] |= NDCB0_CMD_TYPE(TYPE_READ) | in marvell_nfc_naked_access_exec()
1921 nfc_op.ndcb[0] |= NDCB0_CMD_TYPE(TYPE_WRITE) | in marvell_nfc_naked_access_exec()
1933 marvell_nfc_send_cmd(chip, &nfc_op); in marvell_nfc_naked_access_exec()
1935 if (!nfc_op.data_instr) { in marvell_nfc_naked_access_exec()
1937 cond_delay(nfc_op.cle_ale_delay_ns); in marvell_nfc_naked_access_exec()
1946 marvell_nfc_xfer_data_pio(chip, subop, &nfc_op); in marvell_nfc_naked_access_exec()
1969 struct marvell_nfc_op nfc_op; in marvell_nfc_naked_waitrdy_exec() local
1972 marvell_nfc_parse_instructions(chip, subop, &nfc_op); in marvell_nfc_naked_waitrdy_exec()
1974 ret = marvell_nfc_wait_op(chip, nfc_op.rdy_timeout_ms); in marvell_nfc_naked_waitrdy_exec()
1975 cond_delay(nfc_op.rdy_delay_ns); in marvell_nfc_naked_waitrdy_exec()
1983 struct marvell_nfc_op nfc_op; in marvell_nfc_read_id_type_exec() local
1986 marvell_nfc_parse_instructions(chip, subop, &nfc_op); in marvell_nfc_read_id_type_exec()
1987 nfc_op.ndcb[0] &= ~NDCB0_CMD_TYPE(TYPE_READ); in marvell_nfc_read_id_type_exec()
1988 nfc_op.ndcb[0] |= NDCB0_CMD_TYPE(TYPE_READ_ID); in marvell_nfc_read_id_type_exec()
1994 marvell_nfc_send_cmd(chip, &nfc_op); in marvell_nfc_read_id_type_exec()
2000 cond_delay(nfc_op.cle_ale_delay_ns); in marvell_nfc_read_id_type_exec()
2002 if (nfc_op.rdy_timeout_ms) { in marvell_nfc_read_id_type_exec()
2003 ret = marvell_nfc_wait_op(chip, nfc_op.rdy_timeout_ms); in marvell_nfc_read_id_type_exec()
2008 cond_delay(nfc_op.rdy_delay_ns); in marvell_nfc_read_id_type_exec()
2010 marvell_nfc_xfer_data_pio(chip, subop, &nfc_op); in marvell_nfc_read_id_type_exec()
2015 cond_delay(nfc_op.data_delay_ns); in marvell_nfc_read_id_type_exec()
2023 struct marvell_nfc_op nfc_op; in marvell_nfc_read_status_exec() local
2026 marvell_nfc_parse_instructions(chip, subop, &nfc_op); in marvell_nfc_read_status_exec()
2027 nfc_op.ndcb[0] &= ~NDCB0_CMD_TYPE(TYPE_READ); in marvell_nfc_read_status_exec()
2028 nfc_op.ndcb[0] |= NDCB0_CMD_TYPE(TYPE_STATUS); in marvell_nfc_read_status_exec()
2034 marvell_nfc_send_cmd(chip, &nfc_op); in marvell_nfc_read_status_exec()
2040 cond_delay(nfc_op.cle_ale_delay_ns); in marvell_nfc_read_status_exec()
2042 if (nfc_op.rdy_timeout_ms) { in marvell_nfc_read_status_exec()
2043 ret = marvell_nfc_wait_op(chip, nfc_op.rdy_timeout_ms); in marvell_nfc_read_status_exec()
2048 cond_delay(nfc_op.rdy_delay_ns); in marvell_nfc_read_status_exec()
2050 marvell_nfc_xfer_data_pio(chip, subop, &nfc_op); in marvell_nfc_read_status_exec()
2055 cond_delay(nfc_op.data_delay_ns); in marvell_nfc_read_status_exec()
2063 struct marvell_nfc_op nfc_op; in marvell_nfc_reset_cmd_type_exec() local
2066 marvell_nfc_parse_instructions(chip, subop, &nfc_op); in marvell_nfc_reset_cmd_type_exec()
2067 nfc_op.ndcb[0] |= NDCB0_CMD_TYPE(TYPE_RESET); in marvell_nfc_reset_cmd_type_exec()
2073 marvell_nfc_send_cmd(chip, &nfc_op); in marvell_nfc_reset_cmd_type_exec()
2078 cond_delay(nfc_op.cle_ale_delay_ns); in marvell_nfc_reset_cmd_type_exec()
2080 ret = marvell_nfc_wait_op(chip, nfc_op.rdy_timeout_ms); in marvell_nfc_reset_cmd_type_exec()
2084 cond_delay(nfc_op.rdy_delay_ns); in marvell_nfc_reset_cmd_type_exec()
2092 struct marvell_nfc_op nfc_op; in marvell_nfc_erase_cmd_type_exec() local
2095 marvell_nfc_parse_instructions(chip, subop, &nfc_op); in marvell_nfc_erase_cmd_type_exec()
2096 nfc_op.ndcb[0] |= NDCB0_CMD_TYPE(TYPE_ERASE); in marvell_nfc_erase_cmd_type_exec()
2102 marvell_nfc_send_cmd(chip, &nfc_op); in marvell_nfc_erase_cmd_type_exec()
2107 cond_delay(nfc_op.cle_ale_delay_ns); in marvell_nfc_erase_cmd_type_exec()
2109 ret = marvell_nfc_wait_op(chip, nfc_op.rdy_timeout_ms); in marvell_nfc_erase_cmd_type_exec()
2113 cond_delay(nfc_op.rdy_delay_ns); in marvell_nfc_erase_cmd_type_exec()