1*8934c7b0SMaxime Méré /* 2*8934c7b0SMaxime Méré * Copyright (c) 2023-2025, STMicroelectronics - All Rights Reserved 3*8934c7b0SMaxime Méré * 4*8934c7b0SMaxime Méré * SPDX-License-Identifier: BSD-3-Clause 5*8934c7b0SMaxime Méré */ 6*8934c7b0SMaxime Méré 7*8934c7b0SMaxime Méré #include <assert.h> 8*8934c7b0SMaxime Méré #include <stdint.h> 9*8934c7b0SMaxime Méré 10*8934c7b0SMaxime Méré #include <arch_helpers.h> 11*8934c7b0SMaxime Méré #include <drivers/st/stm32_rifsc.h> 12*8934c7b0SMaxime Méré #include <drivers/st/stm32mp_rifsc_regs.h> 13*8934c7b0SMaxime Méré #include <dt-bindings/soc/rif.h> 14*8934c7b0SMaxime Méré #include <lib/mmio.h> 15*8934c7b0SMaxime Méré 16*8934c7b0SMaxime Méré #include <platform_def.h> 17*8934c7b0SMaxime Méré stm32_rifsc_ip_configure(int rimu_id,int rifsc_id,uint32_t param)18*8934c7b0SMaxime Mérévoid stm32_rifsc_ip_configure(int rimu_id, int rifsc_id, uint32_t param) 19*8934c7b0SMaxime Méré { 20*8934c7b0SMaxime Méré uint32_t bit; 21*8934c7b0SMaxime Méré 22*8934c7b0SMaxime Méré assert(rifsc_id < STM32MP25_RIFSC_MAX_ID); 23*8934c7b0SMaxime Méré 24*8934c7b0SMaxime Méré bit = BIT(rifsc_id % U(32)); 25*8934c7b0SMaxime Méré 26*8934c7b0SMaxime Méré /* Set peripheral accesses to Secure/Privilege only */ 27*8934c7b0SMaxime Méré mmio_setbits_32(RIFSC_BASE + _RIFSC_RISC_SECCFGR(rifsc_id), bit); 28*8934c7b0SMaxime Méré mmio_setbits_32(RIFSC_BASE + _RIFSC_RISC_PRIVCFGR(rifsc_id), bit); 29*8934c7b0SMaxime Méré 30*8934c7b0SMaxime Méré /* Apply specific configuration to RIF master */ 31*8934c7b0SMaxime Méré mmio_write_32(RIFSC_BASE + _RIFSC_RIMC_ATTR(rimu_id), param); 32*8934c7b0SMaxime Méré } 33