Lines Matching refs:cs553x

103 static int cs553x_write_ctrl_byte(struct cs553x_nand_controller *cs553x,  in cs553x_write_ctrl_byte()  argument
108 writeb(ctl, cs553x->mmio + MM_NAND_CTL); in cs553x_write_ctrl_byte()
109 writeb(data, cs553x->mmio + MM_NAND_IO); in cs553x_write_ctrl_byte()
110 return readb_poll_timeout_atomic(cs553x->mmio + MM_NAND_STS, status, in cs553x_write_ctrl_byte()
115 static void cs553x_data_in(struct cs553x_nand_controller *cs553x, void *buf, in cs553x_data_in() argument
118 writeb(0, cs553x->mmio + MM_NAND_CTL); in cs553x_data_in()
120 memcpy_fromio(buf, cs553x->mmio, 0x800); in cs553x_data_in()
124 memcpy_fromio(buf, cs553x->mmio, len); in cs553x_data_in()
127 static void cs553x_data_out(struct cs553x_nand_controller *cs553x, in cs553x_data_out() argument
130 writeb(0, cs553x->mmio + MM_NAND_CTL); in cs553x_data_out()
132 memcpy_toio(cs553x->mmio, buf, 0x800); in cs553x_data_out()
136 memcpy_toio(cs553x->mmio, buf, len); in cs553x_data_out()
139 static int cs553x_wait_ready(struct cs553x_nand_controller *cs553x, in cs553x_wait_ready() argument
145 return readb_poll_timeout(cs553x->mmio + MM_NAND_STS, status, in cs553x_wait_ready()
150 static int cs553x_exec_instr(struct cs553x_nand_controller *cs553x, in cs553x_exec_instr() argument
158 ret = cs553x_write_ctrl_byte(cs553x, CS_NAND_CTL_CLE, in cs553x_exec_instr()
164 ret = cs553x_write_ctrl_byte(cs553x, CS_NAND_CTL_ALE, in cs553x_exec_instr()
172 cs553x_data_in(cs553x, instr->ctx.data.buf.in, in cs553x_exec_instr()
177 cs553x_data_out(cs553x, instr->ctx.data.buf.out, in cs553x_exec_instr()
182 ret = cs553x_wait_ready(cs553x, instr->ctx.waitrdy.timeout_ms); in cs553x_exec_instr()
196 struct cs553x_nand_controller *cs553x = to_cs553x(this->controller); in cs553x_exec_op() local
204 writeb(0, cs553x->mmio + MM_NAND_CTL); in cs553x_exec_op()
206 ret = cs553x_exec_instr(cs553x, &op->instrs[i]); in cs553x_exec_op()
212 writeb(CS_NAND_CTL_CE, cs553x->mmio + MM_NAND_CTL); in cs553x_exec_op()
219 struct cs553x_nand_controller *cs553x = to_cs553x(this->controller); in cs_enable_hwecc() local
221 writeb(0x07, cs553x->mmio + MM_NAND_ECC_CTL); in cs_enable_hwecc()
227 struct cs553x_nand_controller *cs553x = to_cs553x(this->controller); in cs_calculate_ecc() local
230 ecc = readl(cs553x->mmio + MM_NAND_STS); in cs_calculate_ecc()