Lines Matching refs:rop

325 static void rnandc_trigger_op(struct rnandc *rnandc, struct rnandc_op *rop)
327 writel_relaxed(rop->addr0_col, rnandc->regs + ADDR0_COL_REG);
328 writel_relaxed(rop->addr0_row, rnandc->regs + ADDR0_ROW_REG);
329 writel_relaxed(rop->addr1_col, rnandc->regs + ADDR1_COL_REG);
330 writel_relaxed(rop->addr1_row, rnandc->regs + ADDR1_ROW_REG);
331 writel_relaxed(rop->ecc_offset, rnandc->regs + ECC_OFFSET_REG);
332 writel_relaxed(rop->gen_seq_ctrl, rnandc->regs + GEN_SEQ_CTRL_REG);
333 writel_relaxed(DATA_SIZE(rop->len), rnandc->regs + DATA_SIZE_REG);
334 writel_relaxed(rop->command, rnandc->regs + COMMAND_REG);
406 struct rnandc_op rop = {
433 rnandc_trigger_op(rnandc, &rop);
500 struct rnandc_op rop = {
517 rnandc_trigger_op(rnandc, &rop);
586 struct rnandc_op rop = {
613 rnandc_trigger_op(rnandc, &rop);
642 struct rnandc_op rop = {
657 rnandc_trigger_op(rnandc, &rop);
687 struct rnandc_op rop = {
710 rop.command |= COMMAND_0(instr->ctx.cmd.opcode);
711 rop.gen_seq_ctrl |= GEN_SEQ_CMD0_EN;
714 rop.gen_seq_ctrl |= GEN_SEQ_COMMAND_3(instr->ctx.cmd.opcode);
715 rop.gen_seq_ctrl |= GEN_SEQ_CMD3_EN;
720 rop.command |= COMMAND_2(instr->ctx.cmd.opcode);
721 rop.gen_seq_ctrl |= GEN_SEQ_CMD2_EN;
726 rop.command |= COMMAND_1(instr->ctx.cmd.opcode);
727 rop.gen_seq_ctrl |= GEN_SEQ_CMD1_EN;
752 rop.addr0_col |= addrs[i] << (i * 8);
753 rop.gen_seq_ctrl |= GEN_SEQ_COL_A0(col_addrs);
756 rop.addr0_row |= addrs[2 + i] << (i * 8);
757 rop.gen_seq_ctrl |= GEN_SEQ_ROW_A0(row_addrs);
764 rop.addr1_col |= addrs[i] << (i * 8);
765 rop.gen_seq_ctrl |= GEN_SEQ_COL_A1(col_addrs);
768 rop.addr1_row |= addrs[2 + i] << (i * 8);
769 rop.gen_seq_ctrl |= GEN_SEQ_ROW_A1(row_addrs);
780 rop.read = true;
783 rop.gen_seq_ctrl |= GEN_SEQ_DATA_EN;
784 rop.buf = instr->ctx.data.buf.in;
785 rop.len = instr->ctx.data.len;
786 rop.command |= COMMAND_FIFO_SEL;
805 rop.gen_seq_ctrl |= GEN_SEQ_DELAY0_EN;
811 rop.gen_seq_ctrl |= GEN_SEQ_DELAY1_EN;
829 if (rop.buf && !rop.read)
830 rop.command |= COMMAND_SEQ_GEN_OUT;
832 rop.command |= COMMAND_SEQ_GEN_IN;
842 rnandc_trigger_op(rnandc, &rop);
844 words = rop.len / sizeof(u32);
845 remainder = rop.len % sizeof(u32);
846 if (rop.buf && rop.read) {
853 ioread32_rep(rnandc->regs + FIFO_DATA_REG, rop.buf, words);
856 memcpy(rop.buf + (words * sizeof(u32)), &last_bytes,
865 } else if (rop.len && !rop.read) {
869 iowrite32_rep(rnandc->regs + FIFO_DATA_REG, rop.buf,
870 DIV_ROUND_UP(rop.len, 4));
874 memcpy(&last_bytes, rop.buf + (words * sizeof(u32)), remainder);