Lines Matching refs:f_pdata
82 struct cqspi_flash_pdata f_pdata[CQSPI_MAX_CHIPSELECT]; member
280 static unsigned int cqspi_calc_rdreg(struct cqspi_flash_pdata *f_pdata) in cqspi_calc_rdreg() argument
284 rdreg |= f_pdata->inst_width << CQSPI_REG_RD_INSTR_TYPE_INSTR_LSB; in cqspi_calc_rdreg()
285 rdreg |= f_pdata->addr_width << CQSPI_REG_RD_INSTR_TYPE_ADDR_LSB; in cqspi_calc_rdreg()
286 rdreg |= f_pdata->data_width << CQSPI_REG_RD_INSTR_TYPE_DATA_LSB; in cqspi_calc_rdreg()
348 static int cqspi_command_read(struct cqspi_flash_pdata *f_pdata, in cqspi_command_read() argument
351 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_command_read()
370 rdreg = cqspi_calc_rdreg(f_pdata); in cqspi_command_read()
399 static int cqspi_command_write(struct cqspi_flash_pdata *f_pdata, in cqspi_command_write() argument
402 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_command_write()
450 static int cqspi_read_setup(struct cqspi_flash_pdata *f_pdata, in cqspi_read_setup() argument
453 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_read_setup()
459 reg |= cqspi_calc_rdreg(f_pdata); in cqspi_read_setup()
480 static int cqspi_indirect_read_execute(struct cqspi_flash_pdata *f_pdata, in cqspi_indirect_read_execute() argument
484 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_indirect_read_execute()
572 static int cqspi_write_setup(struct cqspi_flash_pdata *f_pdata, in cqspi_write_setup() argument
576 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_write_setup()
582 reg = cqspi_calc_rdreg(f_pdata); in cqspi_write_setup()
592 static int cqspi_indirect_write_execute(struct cqspi_flash_pdata *f_pdata, in cqspi_indirect_write_execute() argument
596 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_indirect_write_execute()
684 static void cqspi_chipselect(struct cqspi_flash_pdata *f_pdata) in cqspi_chipselect() argument
686 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_chipselect()
688 unsigned int chip_select = f_pdata->cs; in cqspi_chipselect()
724 static void cqspi_delay(struct cqspi_flash_pdata *f_pdata) in cqspi_delay() argument
726 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_delay()
736 tshsl = calculate_ticks_for_ns(ref_clk_hz, f_pdata->tshsl_ns); in cqspi_delay()
741 tchsh = calculate_ticks_for_ns(ref_clk_hz, f_pdata->tchsh_ns); in cqspi_delay()
742 tslch = calculate_ticks_for_ns(ref_clk_hz, f_pdata->tslch_ns); in cqspi_delay()
743 tsd2d = calculate_ticks_for_ns(ref_clk_hz, f_pdata->tsd2d_ns); in cqspi_delay()
809 static void cqspi_configure(struct cqspi_flash_pdata *f_pdata, in cqspi_configure() argument
812 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_configure()
813 int switch_cs = (cqspi->current_cs != f_pdata->cs); in cqspi_configure()
821 cqspi->current_cs = f_pdata->cs; in cqspi_configure()
822 cqspi_chipselect(f_pdata); in cqspi_configure()
829 cqspi_delay(f_pdata); in cqspi_configure()
831 f_pdata->read_delay); in cqspi_configure()
838 static int cqspi_set_protocol(struct cqspi_flash_pdata *f_pdata, in cqspi_set_protocol() argument
841 f_pdata->inst_width = CQSPI_INST_TYPE_SINGLE; in cqspi_set_protocol()
842 f_pdata->addr_width = CQSPI_INST_TYPE_SINGLE; in cqspi_set_protocol()
843 f_pdata->data_width = CQSPI_INST_TYPE_SINGLE; in cqspi_set_protocol()
848 f_pdata->data_width = CQSPI_INST_TYPE_SINGLE; in cqspi_set_protocol()
851 f_pdata->data_width = CQSPI_INST_TYPE_DUAL; in cqspi_set_protocol()
854 f_pdata->data_width = CQSPI_INST_TYPE_QUAD; in cqspi_set_protocol()
857 f_pdata->data_width = CQSPI_INST_TYPE_OCTAL; in cqspi_set_protocol()
867 static ssize_t cqspi_write(struct cqspi_flash_pdata *f_pdata, in cqspi_write() argument
870 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_write()
876 ret = cqspi_set_protocol(f_pdata, op); in cqspi_write()
880 ret = cqspi_write_setup(f_pdata, op); in cqspi_write()
889 return cqspi_indirect_write_execute(f_pdata, to, buf, len); in cqspi_write()
899 static int cqspi_direct_read_execute(struct cqspi_flash_pdata *f_pdata, in cqspi_direct_read_execute() argument
902 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_direct_read_execute()
958 static ssize_t cqspi_read(struct cqspi_flash_pdata *f_pdata, in cqspi_read() argument
961 struct cqspi_st *cqspi = f_pdata->cqspi; in cqspi_read()
967 ret = cqspi_set_protocol(f_pdata, op); in cqspi_read()
971 ret = cqspi_read_setup(f_pdata, op); in cqspi_read()
976 return cqspi_direct_read_execute(f_pdata, buf, from, len); in cqspi_read()
978 return cqspi_indirect_read_execute(f_pdata, buf, from, len); in cqspi_read()
984 struct cqspi_flash_pdata *f_pdata; in cqspi_mem_process() local
986 f_pdata = &cqspi->f_pdata[mem->spi->chip_select]; in cqspi_mem_process()
987 cqspi_configure(f_pdata, mem->spi->max_speed_hz); in cqspi_mem_process()
991 return cqspi_command_read(f_pdata, op); in cqspi_mem_process()
993 return cqspi_read(f_pdata, op); in cqspi_mem_process()
997 return cqspi_command_write(f_pdata, op); in cqspi_mem_process()
999 return cqspi_write(f_pdata, op); in cqspi_mem_process()
1014 struct cqspi_flash_pdata *f_pdata, in cqspi_of_get_flash_pdata() argument
1017 if (of_property_read_u32(np, "cdns,read-delay", &f_pdata->read_delay)) { in cqspi_of_get_flash_pdata()
1022 if (of_property_read_u32(np, "cdns,tshsl-ns", &f_pdata->tshsl_ns)) { in cqspi_of_get_flash_pdata()
1027 if (of_property_read_u32(np, "cdns,tsd2d-ns", &f_pdata->tsd2d_ns)) { in cqspi_of_get_flash_pdata()
1032 if (of_property_read_u32(np, "cdns,tchsh-ns", &f_pdata->tchsh_ns)) { in cqspi_of_get_flash_pdata()
1037 if (of_property_read_u32(np, "cdns,tslch-ns", &f_pdata->tslch_ns)) { in cqspi_of_get_flash_pdata()
1042 if (of_property_read_u32(np, "spi-max-frequency", &f_pdata->clk_rate)) { in cqspi_of_get_flash_pdata()
1148 struct cqspi_flash_pdata *f_pdata; in cqspi_setup_flash() local
1165 f_pdata = &cqspi->f_pdata[cs]; in cqspi_setup_flash()
1166 f_pdata->cqspi = cqspi; in cqspi_setup_flash()
1167 f_pdata->cs = cs; in cqspi_setup_flash()
1169 ret = cqspi_of_get_flash_pdata(pdev, f_pdata, np); in cqspi_setup_flash()