Lines Matching +full:- +full:j

1 // SPDX-License-Identifier: BSD-2-Clause
3 * Copyright (c) 2022-2024, STMicroelectronics
26 #define HSEM_CnCIDCFGR(x) (U(0x220) + U(0x004) * ((x) - 1))
76 unsigned int j = 0; in apply_rif_config() local
79 * When TDCID, OP-TEE should be the one to set the CID filtering in apply_rif_config()
85 io_clrbits32(hsem_d->base + HSEM_CnCIDCFGR(i + 1), in apply_rif_config()
90 io_clrbits32(hsem_d->base + HSEM_GpCIDCFGR(i), in apply_rif_config()
95 io_clrsetbits32(hsem_d->base + HSEM_SECCFGR, in apply_rif_config()
96 HSEM_SECCFGR_MASK & hsem_d->conf_data.access_mask[0], in apply_rif_config()
97 hsem_d->conf_data.sec_conf[0]); in apply_rif_config()
98 io_clrsetbits32(hsem_d->base + HSEM_PRIVCFGR, in apply_rif_config()
99 HSEM_PRIVCFGR_MASK & hsem_d->conf_data.access_mask[0], in apply_rif_config()
100 hsem_d->conf_data.priv_conf[0]); in apply_rif_config()
111 if (!hsem_d->rif_proc_conf[i]) in apply_rif_config()
114 io_clrsetbits32(hsem_d->base + HSEM_CnCIDCFGR(i + 1), in apply_rif_config()
116 _CIDCFGR_CFEN | hsem_d->rif_proc_conf[i]); in apply_rif_config()
127 uint32_t group_cid_value = hsem_d->conf_data.cid_confs[grp_idx]; in apply_rif_config()
135 for (j = 0; j < HSEM_NB_SEM_PER_GROUP; j++) in apply_rif_config()
136 if (hsem_d->conf_data.cid_confs[j + grp_idx] != in apply_rif_config()
148 for (j = 0; j < HSEM_NB_PROC; j++) { in apply_rif_config()
149 uint32_t proc_cid = hsem_d->rif_proc_conf[j] >> in apply_rif_config()
156 BIT(j + HSEM_GpCIDCFGR_SEM_WLIST_SHIFT); in apply_rif_config()
163 io_clrsetbits32(hsem_d->base + HSEM_GpCIDCFGR(i), in apply_rif_config()
183 hsem_d->base = io_pa_or_va_secure(&addr, info.reg_size); in parse_dt()
186 res = clk_dt_get_by_index(fdt, node, 0, &hsem_d->hsem_clock); in parse_dt()
194 hsem_d->nb_channels = (unsigned int)(lenp / sizeof(uint32_t)); in parse_dt()
195 assert(hsem_d->nb_channels <= HSEM_RIF_RESOURCES); in parse_dt()
197 hsem_d->rif_proc_conf = calloc(HSEM_NB_PROC, sizeof(uint32_t)); in parse_dt()
198 assert(hsem_d->rif_proc_conf); in parse_dt()
199 hsem_d->conf_data.cid_confs = calloc(HSEM_RIF_RESOURCES, in parse_dt()
201 hsem_d->conf_data.sec_conf = calloc(1, sizeof(uint32_t)); in parse_dt()
202 hsem_d->conf_data.priv_conf = calloc(1, sizeof(uint32_t)); in parse_dt()
203 hsem_d->conf_data.access_mask = calloc(1, sizeof(uint32_t)); in parse_dt()
204 assert(hsem_d->conf_data.cid_confs && hsem_d->conf_data.sec_conf && in parse_dt()
205 hsem_d->conf_data.priv_conf && hsem_d->conf_data.access_mask); in parse_dt()
207 for (i = 0; i < hsem_d->nb_channels; i++) in parse_dt()
208 stm32_rif_parse_cfg(fdt32_to_cpu(cuint[i]), &hsem_d->conf_data, in parse_dt()
223 unsigned int pos = fdt32_to_cpu(cuint[i * 2]) - 1; in parse_dt()
226 hsem_d->rif_proc_conf[pos] = SHIFT_U32(cid_value, in parse_dt()
253 res = clk_enable(hsem_d->hsem_clock); in stm32_hsem_probe()
259 clk_disable(hsem_d->hsem_clock); in stm32_hsem_probe()
265 { .compatible = "st,stm32mp25-hsem" },
270 .name = "st,stm32-hsem",