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