blob: 220593685500406007098e66b40330e0f961ab8c [file] [log] [blame]
Etienne Carriere7ad2c012019-12-08 08:14:03 +01001/*
2 * Copyright (c) 2017-2020, STMicroelectronics - All Rights Reserved
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef STM32MP_SHARED_RESOURCES_H
8#define STM32MP_SHARED_RESOURCES_H
9
10#include <stdbool.h>
11
Etienne Carriere1bbb9242020-05-13 14:22:01 +020012#ifdef STM32MP_SHARED_RESOURCES
13enum stm32mp_shres;
14
Etienne Carriere7ad2c012019-12-08 08:14:03 +010015/* Return true if @clock_id is shared by secure and non-secure worlds */
16bool stm32mp_nsec_can_access_clock(unsigned long clock_id);
17
18/* Return true if and only if @reset_id relates to a non-secure peripheral */
19bool stm32mp_nsec_can_access_reset(unsigned int reset_id);
20
Etienne Carriere1bbb9242020-05-13 14:22:01 +020021/* Register a shared resource assigned to the secure world */
22void stm32mp_register_secure_periph(enum stm32mp_shres id);
23
24/* Register a shared resource assigned to the non-secure world */
25void stm32mp_register_non_secure_periph(enum stm32mp_shres id);
26
Etienne Carriere7a4a34f2020-05-13 10:07:45 +020027/* Consolidate peripheral states and lock against new peripheral registering */
28void stm32mp_lock_periph_registering(void);
Etienne Carriere1bbb9242020-05-13 14:22:01 +020029#endif /* STM32MP_SHARED_RESOURCES */
Etienne Carriere7ad2c012019-12-08 08:14:03 +010030#endif /* STM32MP_SHARED_RESOURCES_H */