xref: /arm-trusted-firmware/include/drivers/st/etzpc.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2017-2020, STMicroelectronics - All Rights Reserved
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef DRIVERS_ST_ETZPC_H
8*91f16700Schasinglulu #define DRIVERS_ST_ETZPC_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu #include <stdbool.h>
11*91f16700Schasinglulu #include <stdint.h>
12*91f16700Schasinglulu 
13*91f16700Schasinglulu /* Define security level for each peripheral (DECPROT) */
14*91f16700Schasinglulu enum etzpc_decprot_attributes {
15*91f16700Schasinglulu 	ETZPC_DECPROT_S_RW = 0,
16*91f16700Schasinglulu 	ETZPC_DECPROT_NS_R_S_W = 1,
17*91f16700Schasinglulu 	ETZPC_DECPROT_MCU_ISOLATION = 2,
18*91f16700Schasinglulu 	ETZPC_DECPROT_NS_RW = 3,
19*91f16700Schasinglulu 	ETZPC_DECPROT_MAX = 4,
20*91f16700Schasinglulu };
21*91f16700Schasinglulu 
22*91f16700Schasinglulu void etzpc_configure_decprot(uint32_t decprot_id,
23*91f16700Schasinglulu 			     enum etzpc_decprot_attributes decprot_attr);
24*91f16700Schasinglulu enum etzpc_decprot_attributes etzpc_get_decprot(uint32_t decprot_id);
25*91f16700Schasinglulu void etzpc_lock_decprot(uint32_t decprot_id);
26*91f16700Schasinglulu 
27*91f16700Schasinglulu void etzpc_configure_tzma(uint32_t tzma_id, uint16_t tzma_value);
28*91f16700Schasinglulu uint16_t etzpc_get_tzma(uint32_t tzma_id);
29*91f16700Schasinglulu void etzpc_lock_tzma(uint32_t tzma_id);
30*91f16700Schasinglulu bool etzpc_get_lock_tzma(uint32_t tzma_id);
31*91f16700Schasinglulu 
32*91f16700Schasinglulu uint8_t etzpc_get_num_per_sec(void);
33*91f16700Schasinglulu uint8_t etzpc_get_revision(void);
34*91f16700Schasinglulu uintptr_t etzpc_get_base_address(void);
35*91f16700Schasinglulu 
36*91f16700Schasinglulu int etzpc_init(void);
37*91f16700Schasinglulu 
38*91f16700Schasinglulu #endif /* DRIVERS_ST_ETZPC_H */
39