Lines Matching refs:risup
162 struct risup_cfg *risup; member
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()
408 struct risup_cfg *risup = pdata->risup + i; in stm32_rifsc_dt_conf_risup() local
410 risup->id = _RIF_FLD_GET(RIF_PER_ID, value); in stm32_rifsc_dt_conf_risup()
411 risup->sec = _RIF_FLD_GET(RIF_SEC, value) != 0; in stm32_rifsc_dt_conf_risup()
412 risup->priv = _RIF_FLD_GET(RIF_PRIV, value) != 0; in stm32_rifsc_dt_conf_risup()
413 risup->lock = _RIF_FLD_GET(RIF_LOCK, value) != 0; in stm32_rifsc_dt_conf_risup()
414 risup->cid_attr = _RIF_FLD_GET(RIF_PERx_CID, value); in stm32_rifsc_dt_conf_risup()
525 struct risup_cfg *risup) in stm32_risup_cfg() argument
527 uintptr_t offset = sizeof(uint32_t) * (risup->id / _PERIPH_IDS_PER_REG); in stm32_risup_cfg()
528 uintptr_t cidcfgr_offset = _OFFSET_PERX_CIDCFGR * risup->id; in stm32_risup_cfg()
530 uint32_t shift = risup->id % _PERIPH_IDS_PER_REG; in stm32_risup_cfg()
532 if (!risup || risup->id >= drv_data->nb_risup) in stm32_risup_cfg()
538 SHIFT_U32(risup->sec, shift)); in stm32_risup_cfg()
544 SHIFT_U32(risup->priv, shift)); in stm32_risup_cfg()
549 cidcfgr_offset, risup->cid_attr); in stm32_risup_cfg()
552 if (risup->lock) { in stm32_risup_cfg()
554 risup->id); in stm32_risup_cfg()
571 struct risup_cfg *risup = pdata->risup + i; in stm32_risup_setup() local
573 res = stm32_risup_cfg(pdata, risup); in stm32_risup_setup()
615 struct risup_cfg *risup = NULL; in stm32_rimu_errata_ahbrisab() local
629 if (rimu->risup_id == pdata->risup[j].id) { in stm32_rimu_errata_ahbrisab()
630 risup = &pdata->risup[j]; in stm32_rimu_errata_ahbrisab()
635 if (!risup) in stm32_rimu_errata_ahbrisab()
640 _OFFSET_PERX_CIDCFGR * risup->id); in stm32_rimu_errata_ahbrisab()
866 struct risup_cfg risup = { }; in stm32_rifsc_set_config() local
869 risup.id = id; in stm32_rifsc_set_config()
870 risup.sec = (BIT(RIF_SEC_SHIFT) & conf) != 0; in stm32_rifsc_set_config()
871 risup.priv = (BIT(RIF_PRIV_SHIFT) & conf) != 0; in stm32_rifsc_set_config()
872 risup.lock = (BIT(RIF_LOCK_SHIFT) & conf) != 0; in stm32_rifsc_set_config()
873 risup.cid_attr = _RIF_FLD_GET(RIF_PERx_CID, conf); in stm32_rifsc_set_config()
877 _OFFSET_PERX_CIDCFGR * risup.id + in stm32_rifsc_set_config()
880 if (cidcfgr != risup.cid_attr) in stm32_rifsc_set_config()
885 id, risup.sec ? "Secure" : "Non secure", in stm32_rifsc_set_config()
886 risup.priv ? "Privileged" : "Non privileged", in stm32_rifsc_set_config()
887 risup.cid_attr, risup.lock ? "Locked" : "Unlocked"); in stm32_rifsc_set_config()
889 return stm32_risup_cfg(&rifsc_pdata, &risup); in stm32_rifsc_set_config()
934 struct risup_cfg *risup = rifsc_pdata.risup + i; in stm32_rifsc_sem_pm_suspend() local
937 risup->pm_sem = semcfgr & _SEMCR_MUTEX && in stm32_rifsc_sem_pm_suspend()
942 risup->pm_sem ? "SAVED" : "NOT SAVED", risup->id); in stm32_rifsc_sem_pm_suspend()
954 struct risup_cfg *risup = rifsc_pdata.risup + i; in stm32_rifsc_sem_pm_resume() local
955 uintptr_t cidcfgr_offset = _OFFSET_PERX_CIDCFGR * risup->id; in stm32_rifsc_sem_pm_resume()
957 (risup->id / _PERIPH_IDS_PER_REG); in stm32_rifsc_sem_pm_resume()
958 uintptr_t perih_offset = risup->id % _PERIPH_IDS_PER_REG; in stm32_rifsc_sem_pm_resume()
967 risup->cid_attr = io_read32(rifsc_pdata.base + in stm32_rifsc_sem_pm_resume()
970 risup->sec = (seccgfr & BIT(perih_offset)) != 0; in stm32_rifsc_sem_pm_resume()
971 risup->priv = (privcgfr & BIT(perih_offset)) != 0; in stm32_rifsc_sem_pm_resume()
972 risup->lock = (lockcfgr & BIT(perih_offset)) != 0; in stm32_rifsc_sem_pm_resume()
975 if (!stm32_rif_semaphore_enabled_and_ok(risup->cid_attr, in stm32_rifsc_sem_pm_resume()
977 !risup->pm_sem) in stm32_rifsc_sem_pm_resume()
986 risup->id); in stm32_rifsc_sem_pm_resume()