Lines Matching refs:pdata

306 static void stm32_rifsc_get_driverdata(struct rifsc_platdata *pdata)  in stm32_rifsc_get_driverdata()  argument
310 regval = io_read32(pdata->base + _RIFSC_HWCFGR1); in stm32_rifsc_get_driverdata()
315 regval = io_read32(pdata->base + _RIFSC_HWCFGR2); in stm32_rifsc_get_driverdata()
322 pdata->drv_data = &rifsc_drvdata; in stm32_rifsc_get_driverdata()
324 rifsc_drvdata.version = io_read8(pdata->base + _RIFSC_VERR); in stm32_rifsc_get_driverdata()
349 struct rifsc_platdata *pdata) in stm32_rifsc_glock_config() argument
367 io_setbits32(pdata->base + _RIFSC_RIMC_CR, in stm32_rifsc_glock_config()
370 if (!(io_read32(pdata->base + _RIFSC_RIMC_CR) & in stm32_rifsc_glock_config()
378 io_setbits32(pdata->base, _RIFSC_RISC_CR_GLOCK); in stm32_rifsc_glock_config()
380 if (!(io_read32(pdata->base) & _RIFSC_RISC_CR_GLOCK)) in stm32_rifsc_glock_config()
388 struct rifsc_platdata *pdata) in stm32_rifsc_dt_conf_risup() argument
401 pdata->nrisup = len / sizeof(uint32_t); in stm32_rifsc_dt_conf_risup()
402 pdata->risup = calloc(pdata->nrisup, sizeof(*pdata->risup)); in stm32_rifsc_dt_conf_risup()
403 if (!pdata->risup) in stm32_rifsc_dt_conf_risup()
406 for (i = 0; i < pdata->nrisup; i++) { in stm32_rifsc_dt_conf_risup()
408 struct risup_cfg *risup = pdata->risup + i; in stm32_rifsc_dt_conf_risup()
421 struct rifsc_platdata *pdata) in stm32_rifsc_dt_conf_rimu() argument
434 pdata->nrimu = len / sizeof(uint32_t); in stm32_rifsc_dt_conf_rimu()
435 pdata->rimu = calloc(pdata->nrimu, sizeof(*pdata->rimu)); in stm32_rifsc_dt_conf_rimu()
436 if (!pdata->rimu) in stm32_rifsc_dt_conf_rimu()
439 for (i = 0; i < pdata->nrimu; i++) { in stm32_rifsc_dt_conf_rimu()
441 struct rimu_cfg *rimu = pdata->rimu + i; in stm32_rifsc_dt_conf_rimu()
453 struct rifsc_platdata *pdata) in stm32_rifsc_dt_conf_risal() argument
462 pdata->nrisal = 0; in stm32_rifsc_dt_conf_risal()
468 pdata->nrisal = len; in stm32_rifsc_dt_conf_risal()
469 pdata->risal = calloc(len, sizeof(*pdata->risal)); in stm32_rifsc_dt_conf_risal()
470 if (!pdata->risal) in stm32_rifsc_dt_conf_risal()
475 struct risal_cfg *risal = pdata->risal + i; in stm32_rifsc_dt_conf_risal()
487 struct rifsc_platdata *pdata) in stm32_rifsc_parse_fdt() argument
496 pdata->base = io_pa_or_va_secure(&base, reg_size); in stm32_rifsc_parse_fdt()
502 res = stm32_rifsc_dt_conf_risup(fdt, node, pdata); in stm32_rifsc_parse_fdt()
507 res = stm32_rifsc_dt_conf_rimu(fdt, node, pdata); in stm32_rifsc_parse_fdt()
512 res = stm32_rifsc_dt_conf_risal(fdt, node, pdata); in stm32_rifsc_parse_fdt()
524 static TEE_Result stm32_risup_cfg(struct rifsc_platdata *pdata, in stm32_risup_cfg() argument
529 struct rifsc_driver_data *drv_data = pdata->drv_data; in stm32_risup_cfg()
536 io_clrsetbits32_stm32shregs(pdata->base + _RIFSC_RISC_SECCFGR0 + in stm32_risup_cfg()
541 io_clrsetbits32_stm32shregs(pdata->base + in stm32_risup_cfg()
548 io_write32(pdata->base + _RIFSC_RISC_PER0_CIDCFGR + in stm32_risup_cfg()
555 io_setbits32_stm32shregs(pdata->base + in stm32_risup_cfg()
564 static TEE_Result stm32_risup_setup(struct rifsc_platdata *pdata) in stm32_risup_setup() argument
566 struct rifsc_driver_data *drv_data = pdata->drv_data; in stm32_risup_setup()
570 for (i = 0; i < pdata->nrisup && i < drv_data->nb_risup; i++) { in stm32_risup_setup()
571 struct risup_cfg *risup = pdata->risup + i; in stm32_risup_setup()
573 res = stm32_risup_cfg(pdata, risup); in stm32_risup_setup()
575 EMSG("risup cfg(%d/%d) error", i + 1, pdata->nrisup); in stm32_risup_setup()
588 static void stm32_rimu_errata_ahbrisab(struct rifsc_platdata *pdata, in stm32_rimu_errata_ahbrisab() argument
593 if (!pdata->errata_ahbrisab) in stm32_rimu_errata_ahbrisab()
628 for (j = 0; j < pdata->nrisup; j++) { in stm32_rimu_errata_ahbrisab()
629 if (rimu->risup_id == pdata->risup[j].id) { in stm32_rimu_errata_ahbrisab()
630 risup = &pdata->risup[j]; in stm32_rimu_errata_ahbrisab()
638 risup_cidcfgr = io_read32(pdata->base + in stm32_rimu_errata_ahbrisab()
657 static TEE_Result stm32_rimu_cfg(struct rifsc_platdata *pdata, in stm32_rimu_cfg() argument
661 struct rifsc_driver_data *drv_data = pdata->drv_data; in stm32_rimu_cfg()
666 stm32_rimu_errata_ahbrisab(pdata, rimu); in stm32_rimu_cfg()
669 io_write32(pdata->base + offset, rimu->attr); in stm32_rimu_cfg()
674 static TEE_Result stm32_rimu_setup(struct rifsc_platdata *pdata) in stm32_rimu_setup() argument
676 struct rifsc_driver_data *drv_data = pdata->drv_data; in stm32_rimu_setup()
680 for (i = 0; i < pdata->nrimu && i < drv_data->nb_rimu; i++) { in stm32_rimu_setup()
681 struct rimu_cfg *rimu = pdata->rimu + i; in stm32_rimu_setup()
683 res = stm32_rimu_cfg(pdata, rimu); in stm32_rimu_setup()
685 EMSG("rimu cfg(%d/%d) error", i + 1, pdata->nrimu); in stm32_rimu_setup()
694 static TEE_Result stm32_risal_cfg(struct rifsc_platdata *pdata, in stm32_risal_cfg() argument
697 struct rifsc_driver_data *drv_data = pdata->drv_data; in stm32_risal_cfg()
707 io_write32(pdata->base + offset_a, risal->attr); in stm32_risal_cfg()
709 io_write32(pdata->base + offset_b, risal->attr); in stm32_risal_cfg()
715 static TEE_Result stm32_risal_setup(struct rifsc_platdata *pdata) in stm32_risal_setup() argument
720 for (i = 0; i < pdata->nrisal; i++) { in stm32_risal_setup()
721 struct risal_cfg *risal = pdata->risal + i; in stm32_risal_setup()
723 res = stm32_risal_cfg(pdata, risal); in stm32_risal_setup()
725 EMSG("risal cfg(%u/%u) error", i + 1, pdata->nrisal); in stm32_risal_setup()