xref: /optee_os/core/include/dt-bindings/firewall/stm32mp25-rifsc.h (revision c95d740ab3604844575dc99dad8bd512781c5d07)
1 /* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
2 /*
3  * Copyright (c) 2020-2024, STMicroelectronics
4  */
5 #ifndef _DT_BINDINGS_FIREWALL_STM32MP25_RIFSC_H
6 #define _DT_BINDINGS_FIREWALL_STM32MP25_RIFSC_H
7 
8 /* RIFSC ID */
9 #define STM32MP25_RIFSC_TIM1_ID			0
10 #define STM32MP25_RIFSC_TIM2_ID			1
11 #define STM32MP25_RIFSC_TIM3_ID			2
12 #define STM32MP25_RIFSC_TIM4_ID			3
13 #define STM32MP25_RIFSC_TIM5_ID			4
14 #define STM32MP25_RIFSC_TIM6_ID			5
15 #define STM32MP25_RIFSC_TIM7_ID			6
16 #define STM32MP25_RIFSC_TIM8_ID			7
17 #define STM32MP25_RIFSC_TIM10_ID		8
18 #define STM32MP25_RIFSC_TIM11_ID		9
19 #define STM32MP25_RIFSC_TIM12_ID		10
20 #define STM32MP25_RIFSC_TIM13_ID		11
21 #define STM32MP25_RIFSC_TIM14_ID		12
22 #define STM32MP25_RIFSC_TIM15_ID		13
23 #define STM32MP25_RIFSC_TIM16_ID		14
24 #define STM32MP25_RIFSC_TIM17_ID		15
25 #define STM32MP25_RIFSC_TIM20_ID		16
26 #define STM32MP25_RIFSC_LPTIM1_ID		17
27 #define STM32MP25_RIFSC_LPTIM2_ID		18
28 #define STM32MP25_RIFSC_LPTIM3_ID		19
29 #define STM32MP25_RIFSC_LPTIM4_ID		20
30 #define STM32MP25_RIFSC_LPTIM5_ID		21
31 #define STM32MP25_RIFSC_SPI1_ID			22
32 #define STM32MP25_RIFSC_SPI2_ID			23
33 #define STM32MP25_RIFSC_SPI3_ID			24
34 #define STM32MP25_RIFSC_SPI4_ID			25
35 #define STM32MP25_RIFSC_SPI5_ID			26
36 #define STM32MP25_RIFSC_SPI6_ID			27
37 #define STM32MP25_RIFSC_SPI7_ID			28
38 #define STM32MP25_RIFSC_SPI8_ID			29
39 #define STM32MP25_RIFSC_SPDIFRX_ID		30
40 #define STM32MP25_RIFSC_USART1_ID		31
41 #define STM32MP25_RIFSC_USART2_ID		32
42 #define STM32MP25_RIFSC_USART3_ID		33
43 #define STM32MP25_RIFSC_UART4_ID		34
44 #define STM32MP25_RIFSC_UART5_ID		35
45 #define STM32MP25_RIFSC_USART6_ID		36
46 #define STM32MP25_RIFSC_UART7_ID		37
47 #define STM32MP25_RIFSC_UART8_ID		38
48 #define STM32MP25_RIFSC_UART9_ID		39
49 #define STM32MP25_RIFSC_LPUART1_ID		40
50 #define STM32MP25_RIFSC_I2C1_ID			41
51 #define STM32MP25_RIFSC_I2C2_ID			42
52 #define STM32MP25_RIFSC_I2C3_ID			43
53 #define STM32MP25_RIFSC_I2C4_ID			44
54 #define STM32MP25_RIFSC_I2C5_ID			45
55 #define STM32MP25_RIFSC_I2C6_ID			46
56 #define STM32MP25_RIFSC_I2C7_ID			47
57 #define STM32MP25_RIFSC_I2C8_ID			48
58 #define STM32MP25_RIFSC_SAI1_ID			49
59 #define STM32MP25_RIFSC_SAI2_ID			50
60 #define STM32MP25_RIFSC_SAI3_ID			51
61 #define STM32MP25_RIFSC_SAI4_ID			52
62 #define STM32MP25_RIFSC_MDF1_ID			54
63 #define STM32MP25_RIFSC_ADF1_ID			55
64 #define STM32MP25_RIFSC_FDCAN_ID		56
65 #define STM32MP25_RIFSC_HDP_ID			57
66 #define STM32MP25_RIFSC_ADC12_ID		58
67 #define STM32MP25_RIFSC_ADC3_ID			59
68 #define STM32MP25_RIFSC_ETH1_ID			60
69 #define STM32MP25_RIFSC_ETH2_ID			61
70 #define STM32MP25_RIFSC_USBH_ID			63
71 #define STM32MP25_RIFSC_USB3DR_ID		66
72 #define STM32MP25_RIFSC_COMBOPHY_ID		67
73 #define STM32MP25_RIFSC_PCIE_ID			68
74 #define STM32MP25_RIFSC_UCPD1_ID		69
75 #define STM32MP25_RIFSC_ETHSW_DEIP_ID		70
76 #define STM32MP25_RIFSC_ETHSW_ACM_CFG_ID	71
77 #define STM32MP25_RIFSC_ETHSW_ACM_MSGBUF_ID	72
78 #define STM32MP25_RIFSC_STGEN_ID		73
79 #define STM32MP25_RIFSC_OCTOSPI1_ID		74
80 #define STM32MP25_RIFSC_OCTOSPI2_ID		75
81 #define STM32MP25_RIFSC_SDMMC1_ID		76
82 #define STM32MP25_RIFSC_SDMMC2_ID		77
83 #define STM32MP25_RIFSC_SDMMC3_ID		78
84 #define STM32MP25_RIFSC_GPU_ID			79
85 #define STM32MP25_RIFSC_LTDC_CMN_ID		80
86 #define STM32MP25_RIFSC_DSI_CMN_ID		81
87 #define STM32MP25_RIFSC_LVDS_ID			84
88 #define STM32MP25_RIFSC_CSI_ID			86
89 #define STM32MP25_RIFSC_DCMIPP_ID		87
90 #define STM32MP25_RIFSC_DCMI_PSSI_ID		88
91 #define STM32MP25_RIFSC_VDEC_ID			89
92 #define STM32MP25_RIFSC_VENC_ID			90
93 #define STM32MP25_RIFSC_RNG_ID			92
94 #define STM32MP25_RIFSC_PKA_ID			93
95 #define STM32MP25_RIFSC_SAES_ID			94
96 #define STM32MP25_RIFSC_HASH_ID			95
97 #define STM32MP25_RIFSC_CRYP1_ID		96
98 #define STM32MP25_RIFSC_CRYP2_ID		97
99 #define STM32MP25_RIFSC_IWDG1_ID		98
100 #define STM32MP25_RIFSC_IWDG2_ID		99
101 #define STM32MP25_RIFSC_IWDG3_ID		100
102 #define STM32MP25_RIFSC_IWDG4_ID		101
103 #define STM32MP25_RIFSC_IWDG5_ID		102
104 #define STM32MP25_RIFSC_WWDG1_ID		103
105 #define STM32MP25_RIFSC_WWDG2_ID		104
106 #define STM32MP25_RIFSC_VREFBUF_ID		106
107 #define STM32MP25_RIFSC_DTS_ID			107
108 #define STM32MP25_RIFSC_RAMCFG_ID		108
109 #define STM32MP25_RIFSC_CRC_ID			109
110 #define STM32MP25_RIFSC_SERC_ID			110
111 #define STM32MP25_RIFSC_OCTOSPIM_ID		111
112 #define STM32MP25_RIFSC_GICV2M_ID		112
113 #define STM32MP25_RIFSC_I3C1_ID			114
114 #define STM32MP25_RIFSC_I3C2_ID			115
115 #define STM32MP25_RIFSC_I3C3_ID			116
116 #define STM32MP25_RIFSC_I3C4_ID			117
117 #define STM32MP25_RIFSC_ICACHE_DCACHE_ID	118
118 #define STM32MP25_RIFSC_LTDC_L0L1_ID		119
119 #define STM32MP25_RIFSC_LTDC_L2_ID		120
120 #define STM32MP25_RIFSC_LTDC_ROT_ID		121
121 #define STM32MP25_RIFSC_DSI_TRIG_ID		122
122 #define STM32MP25_RIFSC_DSI_RDFIFO_ID		123
123 #define STM32MP25_RIFSC_OTFDEC1_ID		125
124 #define STM32MP25_RIFSC_OTFDEC2_ID		126
125 #define STM32MP25_RIFSC_IAC_ID			127
126 
127 /* RIF-aware IPs */
128 #define STM32MP25_RIFSC_PWR_ID			155
129 #define STM32MP25_RIFSC_GPIOA_ID		160
130 #define STM32MP25_RIFSC_GPIOB_ID		161
131 #define STM32MP25_RIFSC_GPIOC_ID		162
132 #define STM32MP25_RIFSC_GPIOD_ID		163
133 #define STM32MP25_RIFSC_GPIOE_ID		164
134 #define STM32MP25_RIFSC_GPIOF_ID		165
135 #define STM32MP25_RIFSC_GPIOG_ID		166
136 #define STM32MP25_RIFSC_GPIOH_ID		167
137 #define STM32MP25_RIFSC_GPIOI_ID		168
138 #define STM32MP25_RIFSC_GPIOJ_ID		169
139 #define STM32MP25_RIFSC_GPIOK_ID		170
140 #define STM32MP25_RIFSC_GPIOZ_ID		171
141 
142 /* Global lock bindings */
143 #define RIFSC_RIMU_GLOCK			1
144 #define RIFSC_RISUP_GLOCK			2
145 
146 /* masters ID */
147 #define RIMU_ID_OFFSET		200
148 #define RIMU_ID(idx)		((idx) + RIMU_ID_OFFSET)
149 
150 /* master configuration modes */
151 #define RIF_CIDSEL_P	0x0 /* config from RISUP */
152 #define RIF_CIDSEL_M	0x1 /* config from RIMU */
153 
154 #define RIMUPROT_RIMC_M_ID_SHIFT	0
155 #define RIMUPROT_RIMC_MODE_SHIFT	10
156 #define RIMUPROT_RIMC_MCID_SHIFT	12
157 #define RIMUPROT_RIMC_MSEC_SHIFT	16
158 #define RIMUPROT_RIMC_MPRIV_SHIFT	17
159 #define RIMUPROT_RIMC_ATTRx_SHIFT	8
160 #define RIMUPROT_RIMC_M_ID_MASK		GENMASK_32(7, 0)
161 #define RIMUPROT_RIMC_MCID_MASK		GENMASK_32(15, 12)
162 #define RIMUPROT_RIMC_ATTRx_MASK	(BIT(RIMUPROT_RIMC_MODE_SHIFT) | \
163 					 RIMUPROT_RIMC_MCID_MASK | \
164 					 BIT(RIMUPROT_RIMC_MSEC_SHIFT) | \
165 					 BIT(RIMUPROT_RIMC_MPRIV_SHIFT))
166 
167 #define RIMUPROT(rimuid, mcid, msec, mpriv, mode) \
168 	(((rimuid) << RIMUPROT_RIMC_M_ID_SHIFT) | \
169 	 ((mpriv) << RIMUPROT_RIMC_MPRIV_SHIFT) | \
170 	 ((msec) << RIMUPROT_RIMC_MSEC_SHIFT) | \
171 	 ((mcid) << RIMUPROT_RIMC_MCID_SHIFT) | \
172 	 ((mode) << RIMUPROT_RIMC_MODE_SHIFT))
173 
174 /* RISAL ID */
175 #define RISAL_ID(idx)			(idx)
176 
177 /* RISAL CID subregion modes */
178 #define RIFSC_RISAL_SRDIS		0x0
179 #define RIFSC_RISAL_SREN		0x1
180 
181 /* RISAL Block id */
182 #define RIFSC_RISAL_BLOCK_A		0x0
183 #define RIFSC_RISAL_BLOCK_B		0x1
184 
185 #define RIFSC_RISAL_REG_ID_SHIFT	0
186 #define RIFSC_RISAL_BLOCK_ID_SHIFT	8
187 #define RIFSC_RISAL_REGx_CFGR_SHIFT	16
188 #define RIFSC_RISAL_SREN_SHIFT		16
189 #define RIFSC_RISAL_LOCK_SHIFT		17
190 #define RIFSC_RISAL_SRCID_SHIFT		20
191 #define RIFSC_RISAL_SEC_SHIFT		24
192 #define RIFSC_RISAL_PRIV_SHIFT		25
193 #define RIFSC_RISAL_REG_ID_MASK		GENMASK_32(7, 0)
194 #define RIFSC_RISAL_BLOCK_ID_MASK	GENMASK_32(15, 8)
195 #define RIFSC_RISAL_SRCID_MASK		GENMASK_32(22, 20)
196 #define RIFSC_RISAL_REGx_CFGR_MASK	(BIT(RIFSC_RISAL_SREN_SHIFT) | \
197 					 BIT(RIFSC_RISAL_LOCK_SHIFT) | \
198 					 RIFSC_RISAL_SRCID_MASK | \
199 					 BIT(RIFSC_RISAL_SEC_SHIFT) | \
200 					 BIT(RIFSC_RISAL_PRIV_SHIFT))
201 
202 #define RISALPROT(risalid, blockid, srcid, lock, sec, priv, sren) \
203 	 (((risalid) << RIFSC_RISAL_REG_ID_SHIFT) | \
204 	  ((blockid) << RIFSC_RISAL_BLOCK_ID_SHIFT) | \
205 	  ((priv) << RIFSC_RISAL_PRIV_SHIFT) | \
206 	  ((sec) << RIFSC_RISAL_SEC_SHIFT) | \
207 	  ((srcid) << RIFSC_RISAL_SRCID_SHIFT) | \
208 	  ((lock) << RIFSC_RISAL_LOCK_SHIFT) | \
209 	  ((sren) << RIFSC_RISAL_SREN_SHIFT))
210 
211 #endif /* _DT_BINDINGS_FIREWALL_STM32MP25_RIFSC_H */
212 
213