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