xref: /optee_os/core/include/dt-bindings/firewall/stm32mp25-risaf.h (revision 85df05e1fba86dbdd7f5e8af31c5ad1e496ab20f)
1*85df05e1SGatien Chevallier /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
2*85df05e1SGatien Chevallier /*
3*85df05e1SGatien Chevallier  * Copyright (C) 2020-2024, STMicroelectronics
4*85df05e1SGatien Chevallier  */
5*85df05e1SGatien Chevallier 
6*85df05e1SGatien Chevallier #ifndef _DT_BINDINGS_FIREWALL_STM32MP25_RISAF_H
7*85df05e1SGatien Chevallier #define _DT_BINDINGS_FIREWALL_STM32MP25_RISAF_H
8*85df05e1SGatien Chevallier 
9*85df05e1SGatien Chevallier /* RISAF region IDs */
10*85df05e1SGatien Chevallier #define RISAF_REG_ID(idx)	(idx)
11*85df05e1SGatien Chevallier 
12*85df05e1SGatien Chevallier /* RISAF base region enable modes */
13*85df05e1SGatien Chevallier #define RIF_BREN_DIS		0x0
14*85df05e1SGatien Chevallier #define RIF_BREN_EN		0x1
15*85df05e1SGatien Chevallier 
16*85df05e1SGatien Chevallier /* RISAF encryption modes */
17*85df05e1SGatien Chevallier #define RIF_ENC_DIS		0x0
18*85df05e1SGatien Chevallier #define RIF_ENC_EN		0x2
19*85df05e1SGatien Chevallier 
20*85df05e1SGatien Chevallier #define DT_RISAF_EN_SHIFT	4
21*85df05e1SGatien Chevallier #define DT_RISAF_SEC_SHIFT	5
22*85df05e1SGatien Chevallier #define DT_RISAF_ENC_SHIFT	6
23*85df05e1SGatien Chevallier #define DT_RISAF_PRIV_SHIFT	8
24*85df05e1SGatien Chevallier #define DT_RISAF_READ_SHIFT	16
25*85df05e1SGatien Chevallier #define DT_RISAF_WRITE_SHIFT	24
26*85df05e1SGatien Chevallier 
27*85df05e1SGatien Chevallier #define DT_RISAF_REG_ID_MASK		U(0xF)
28*85df05e1SGatien Chevallier #define DT_RISAF_EN_MASK		BIT(DT_RISAF_EN_SHIFT)
29*85df05e1SGatien Chevallier #define DT_RISAF_SEC_MASK		BIT(DT_RISAF_SEC_SHIFT)
30*85df05e1SGatien Chevallier #define DT_RISAF_ENC_MASK		GENMASK_32(7, 6)
31*85df05e1SGatien Chevallier #define DT_RISAF_PRIV_MASK		GENMASK_32(15, 8)
32*85df05e1SGatien Chevallier #define DT_RISAF_READ_MASK		GENMASK_32(23, 16)
33*85df05e1SGatien Chevallier #define DT_RISAF_WRITE_MASK		GENMASK_32(31, 24)
34*85df05e1SGatien Chevallier 
35*85df05e1SGatien Chevallier #define RISAFPROT(risaf_region, cid_read_list, cid_write_list, cid_priv_list, \
36*85df05e1SGatien Chevallier 		  sec, enc, enabled) \
37*85df05e1SGatien Chevallier 	(((cid_write_list) << DT_RISAF_WRITE_SHIFT) | \
38*85df05e1SGatien Chevallier 	 ((cid_read_list) << DT_RISAF_READ_SHIFT) | \
39*85df05e1SGatien Chevallier 	 ((cid_priv_list) << DT_RISAF_PRIV_SHIFT) | \
40*85df05e1SGatien Chevallier 	 ((enc) << DT_RISAF_ENC_SHIFT) | \
41*85df05e1SGatien Chevallier 	 ((sec) << DT_RISAF_SEC_SHIFT) | \
42*85df05e1SGatien Chevallier 	 ((enabled) << DT_RISAF_EN_SHIFT) | \
43*85df05e1SGatien Chevallier 	 (risaf_region))
44*85df05e1SGatien Chevallier 
45*85df05e1SGatien Chevallier #endif /* _DT_BINDINGS_FIREWALL_STM32MP25_RISAF_H */
46