Lines Matching refs:f_pdata

84 	struct cqspi_flash_pdata f_pdata[CQSPI_MAX_CHIPSELECT];  member
297 static unsigned int cqspi_calc_rdreg(struct cqspi_flash_pdata *f_pdata) in cqspi_calc_rdreg() argument
301 rdreg |= f_pdata->inst_width << CQSPI_REG_RD_INSTR_TYPE_INSTR_LSB; in cqspi_calc_rdreg()
302 rdreg |= f_pdata->addr_width << CQSPI_REG_RD_INSTR_TYPE_ADDR_LSB; in cqspi_calc_rdreg()
303 rdreg |= f_pdata->data_width << CQSPI_REG_RD_INSTR_TYPE_DATA_LSB; in cqspi_calc_rdreg()
322 static int cqspi_set_protocol(struct cqspi_flash_pdata *f_pdata, in cqspi_set_protocol() argument
325 f_pdata->inst_width = CQSPI_INST_TYPE_SINGLE; in cqspi_set_protocol()
326 f_pdata->addr_width = CQSPI_INST_TYPE_SINGLE; in cqspi_set_protocol()
327 f_pdata->data_width = CQSPI_INST_TYPE_SINGLE; in cqspi_set_protocol()
334 f_pdata->dtr = op->cmd.dtr && in cqspi_set_protocol()
342 f_pdata->data_width = CQSPI_INST_TYPE_SINGLE; in cqspi_set_protocol()
345 f_pdata->data_width = CQSPI_INST_TYPE_DUAL; in cqspi_set_protocol()
348 f_pdata->data_width = CQSPI_INST_TYPE_QUAD; in cqspi_set_protocol()
351 f_pdata->data_width = CQSPI_INST_TYPE_OCTAL; in cqspi_set_protocol()
358 if (f_pdata->dtr) { in cqspi_set_protocol()
363 f_pdata->inst_width = CQSPI_INST_TYPE_OCTAL; in cqspi_set_protocol()
373 f_pdata->addr_width = CQSPI_INST_TYPE_OCTAL; in cqspi_set_protocol()
383 f_pdata->data_width = CQSPI_INST_TYPE_OCTAL; in cqspi_set_protocol()
450 static int cqspi_setup_opcode_ext(struct cqspi_flash_pdata *f_pdata, in cqspi_setup_opcode_ext() argument
454 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_setup_opcode_ext()
473 static int cqspi_enable_dtr(struct cqspi_flash_pdata *f_pdata, in cqspi_enable_dtr() argument
477 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_enable_dtr()
493 ret = cqspi_setup_opcode_ext(f_pdata, op, shift); in cqspi_enable_dtr()
506 static int cqspi_command_read(struct cqspi_flash_pdata *f_pdata, in cqspi_command_read() argument
509 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_command_read()
520 status = cqspi_set_protocol(f_pdata, op); in cqspi_command_read()
524 status = cqspi_enable_dtr(f_pdata, op, CQSPI_REG_OP_EXT_STIG_LSB, in cqspi_command_read()
525 f_pdata->dtr); in cqspi_command_read()
536 if (f_pdata->dtr) in cqspi_command_read()
543 rdreg = cqspi_calc_rdreg(f_pdata); in cqspi_command_read()
546 dummy_clk = cqspi_calc_dummy(op, f_pdata->dtr); in cqspi_command_read()
580 static int cqspi_command_write(struct cqspi_flash_pdata *f_pdata, in cqspi_command_write() argument
583 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_command_write()
593 ret = cqspi_set_protocol(f_pdata, op); in cqspi_command_write()
597 ret = cqspi_enable_dtr(f_pdata, op, CQSPI_REG_OP_EXT_STIG_LSB, in cqspi_command_write()
598 f_pdata->dtr); in cqspi_command_write()
609 reg = cqspi_calc_rdreg(f_pdata); in cqspi_command_write()
612 if (f_pdata->dtr) in cqspi_command_write()
649 static int cqspi_read_setup(struct cqspi_flash_pdata *f_pdata, in cqspi_read_setup() argument
652 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_read_setup()
659 ret = cqspi_enable_dtr(f_pdata, op, CQSPI_REG_OP_EXT_READ_LSB, in cqspi_read_setup()
660 f_pdata->dtr); in cqspi_read_setup()
664 if (f_pdata->dtr) in cqspi_read_setup()
670 reg |= cqspi_calc_rdreg(f_pdata); in cqspi_read_setup()
673 dummy_clk = cqspi_calc_dummy(op, f_pdata->dtr); in cqspi_read_setup()
692 static int cqspi_indirect_read_execute(struct cqspi_flash_pdata *f_pdata, in cqspi_indirect_read_execute() argument
696 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_indirect_read_execute()
784 static int cqspi_write_setup(struct cqspi_flash_pdata *f_pdata, in cqspi_write_setup() argument
789 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_write_setup()
793 ret = cqspi_enable_dtr(f_pdata, op, CQSPI_REG_OP_EXT_WRITE_LSB, in cqspi_write_setup()
794 f_pdata->dtr); in cqspi_write_setup()
798 if (f_pdata->dtr) in cqspi_write_setup()
805 reg |= f_pdata->data_width << CQSPI_REG_WR_INSTR_TYPE_DATA_LSB; in cqspi_write_setup()
806 reg |= f_pdata->addr_width << CQSPI_REG_WR_INSTR_TYPE_ADDR_LSB; in cqspi_write_setup()
808 reg = cqspi_calc_rdreg(f_pdata); in cqspi_write_setup()
833 static int cqspi_indirect_write_execute(struct cqspi_flash_pdata *f_pdata, in cqspi_indirect_write_execute() argument
837 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_indirect_write_execute()
925 static void cqspi_chipselect(struct cqspi_flash_pdata *f_pdata) in cqspi_chipselect() argument
927 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_chipselect()
929 unsigned int chip_select = f_pdata->cs; in cqspi_chipselect()
965 static void cqspi_delay(struct cqspi_flash_pdata *f_pdata) in cqspi_delay() argument
967 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_delay()
977 tshsl = calculate_ticks_for_ns(ref_clk_hz, f_pdata->tshsl_ns); in cqspi_delay()
982 tchsh = calculate_ticks_for_ns(ref_clk_hz, f_pdata->tchsh_ns); in cqspi_delay()
983 tslch = calculate_ticks_for_ns(ref_clk_hz, f_pdata->tslch_ns); in cqspi_delay()
984 tsd2d = calculate_ticks_for_ns(ref_clk_hz, f_pdata->tsd2d_ns); in cqspi_delay()
1050 static void cqspi_configure(struct cqspi_flash_pdata *f_pdata, in cqspi_configure() argument
1053 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_configure()
1054 int switch_cs = (cqspi->current_cs != f_pdata->cs); in cqspi_configure()
1062 cqspi->current_cs = f_pdata->cs; in cqspi_configure()
1063 cqspi_chipselect(f_pdata); in cqspi_configure()
1070 cqspi_delay(f_pdata); in cqspi_configure()
1072 f_pdata->read_delay); in cqspi_configure()
1079 static ssize_t cqspi_write(struct cqspi_flash_pdata *f_pdata, in cqspi_write() argument
1082 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_write()
1088 ret = cqspi_set_protocol(f_pdata, op); in cqspi_write()
1092 ret = cqspi_write_setup(f_pdata, op); in cqspi_write()
1104 if (!f_pdata->dtr && cqspi->use_direct_mode && in cqspi_write()
1110 return cqspi_indirect_write_execute(f_pdata, to, buf, len); in cqspi_write()
1120 static int cqspi_direct_read_execute(struct cqspi_flash_pdata *f_pdata, in cqspi_direct_read_execute() argument
1123 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_direct_read_execute()
1179 static ssize_t cqspi_read(struct cqspi_flash_pdata *f_pdata, in cqspi_read() argument
1182 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_read()
1188 ret = cqspi_set_protocol(f_pdata, op); in cqspi_read()
1192 ret = cqspi_read_setup(f_pdata, op); in cqspi_read()
1197 return cqspi_direct_read_execute(f_pdata, buf, from, len); in cqspi_read()
1199 return cqspi_indirect_read_execute(f_pdata, buf, from, len); in cqspi_read()
1205 struct cqspi_flash_pdata *f_pdata; in cqspi_mem_process() local
1207 f_pdata = &cqspi->f_pdata[mem->spi->chip_select]; in cqspi_mem_process()
1208 cqspi_configure(f_pdata, mem->spi->max_speed_hz); in cqspi_mem_process()
1212 return cqspi_command_read(f_pdata, op); in cqspi_mem_process()
1214 return cqspi_read(f_pdata, op); in cqspi_mem_process()
1218 return cqspi_command_write(f_pdata, op); in cqspi_mem_process()
1220 return cqspi_write(f_pdata, op); in cqspi_mem_process()
1262 struct cqspi_flash_pdata *f_pdata, in cqspi_of_get_flash_pdata() argument
1265 if (of_property_read_u32(np, "cdns,read-delay", &f_pdata->read_delay)) { in cqspi_of_get_flash_pdata()
1270 if (of_property_read_u32(np, "cdns,tshsl-ns", &f_pdata->tshsl_ns)) { in cqspi_of_get_flash_pdata()
1275 if (of_property_read_u32(np, "cdns,tsd2d-ns", &f_pdata->tsd2d_ns)) { in cqspi_of_get_flash_pdata()
1280 if (of_property_read_u32(np, "cdns,tchsh-ns", &f_pdata->tchsh_ns)) { in cqspi_of_get_flash_pdata()
1285 if (of_property_read_u32(np, "cdns,tslch-ns", &f_pdata->tslch_ns)) { in cqspi_of_get_flash_pdata()
1290 if (of_property_read_u32(np, "spi-max-frequency", &f_pdata->clk_rate)) { in cqspi_of_get_flash_pdata()
1402 struct cqspi_flash_pdata *f_pdata; in cqspi_setup_flash() local
1421 f_pdata = &cqspi->f_pdata[cs]; in cqspi_setup_flash()
1422 f_pdata->cqspi = cqspi; in cqspi_setup_flash()
1423 f_pdata->cs = cs; in cqspi_setup_flash()
1425 ret = cqspi_of_get_flash_pdata(pdev, f_pdata, np); in cqspi_setup_flash()