1066c3a39SGatien Chevallier /* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */ 2066c3a39SGatien Chevallier /* 3066c3a39SGatien Chevallier * Copyright (c) 2020-2024, STMicroelectronics 4066c3a39SGatien Chevallier */ 5066c3a39SGatien Chevallier #ifndef _DT_BINDINGS_FIREWALL_STM32MP25_RIFSC_H 6066c3a39SGatien Chevallier #define _DT_BINDINGS_FIREWALL_STM32MP25_RIFSC_H 7066c3a39SGatien Chevallier 8066c3a39SGatien Chevallier /* RIFSC ID */ 9066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM1_ID 0 10066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM2_ID 1 11066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM3_ID 2 12066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM4_ID 3 13066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM5_ID 4 14066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM6_ID 5 15066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM7_ID 6 16066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM8_ID 7 17066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM10_ID 8 18066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM11_ID 9 19066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM12_ID 10 20066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM13_ID 11 21066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM14_ID 12 22066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM15_ID 13 23066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM16_ID 14 24066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM17_ID 15 25066c3a39SGatien Chevallier #define STM32MP25_RIFSC_TIM20_ID 16 26066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LPTIM1_ID 17 27066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LPTIM2_ID 18 28066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LPTIM3_ID 19 29066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LPTIM4_ID 20 30066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LPTIM5_ID 21 31066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI1_ID 22 32066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI2_ID 23 33066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI3_ID 24 34066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI4_ID 25 35066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI5_ID 26 36066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI6_ID 27 37066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI7_ID 28 38066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPI8_ID 29 39066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SPDIFRX_ID 30 40066c3a39SGatien Chevallier #define STM32MP25_RIFSC_USART1_ID 31 41066c3a39SGatien Chevallier #define STM32MP25_RIFSC_USART2_ID 32 42066c3a39SGatien Chevallier #define STM32MP25_RIFSC_USART3_ID 33 43066c3a39SGatien Chevallier #define STM32MP25_RIFSC_UART4_ID 34 44066c3a39SGatien Chevallier #define STM32MP25_RIFSC_UART5_ID 35 45066c3a39SGatien Chevallier #define STM32MP25_RIFSC_USART6_ID 36 46066c3a39SGatien Chevallier #define STM32MP25_RIFSC_UART7_ID 37 47066c3a39SGatien Chevallier #define STM32MP25_RIFSC_UART8_ID 38 48066c3a39SGatien Chevallier #define STM32MP25_RIFSC_UART9_ID 39 49066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LPUART1_ID 40 50066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C1_ID 41 51066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C2_ID 42 52066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C3_ID 43 53066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C4_ID 44 54066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C5_ID 45 55066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C6_ID 46 56066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C7_ID 47 57066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I2C8_ID 48 58066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SAI1_ID 49 59066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SAI2_ID 50 60066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SAI3_ID 51 61066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SAI4_ID 52 62066c3a39SGatien Chevallier #define STM32MP25_RIFSC_MDF1_ID 54 63066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ADF1_ID 55 64066c3a39SGatien Chevallier #define STM32MP25_RIFSC_FDCAN_ID 56 65066c3a39SGatien Chevallier #define STM32MP25_RIFSC_HDP_ID 57 66066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ADC12_ID 58 67066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ADC3_ID 59 68066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ETH1_ID 60 69066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ETH2_ID 61 70066c3a39SGatien Chevallier #define STM32MP25_RIFSC_USBH_ID 63 71066c3a39SGatien Chevallier #define STM32MP25_RIFSC_USB3DR_ID 66 72066c3a39SGatien Chevallier #define STM32MP25_RIFSC_COMBOPHY_ID 67 73066c3a39SGatien Chevallier #define STM32MP25_RIFSC_PCIE_ID 68 74066c3a39SGatien Chevallier #define STM32MP25_RIFSC_UCPD1_ID 69 75066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ETHSW_DEIP_ID 70 76066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ETHSW_ACM_CFG_ID 71 77066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ETHSW_ACM_MSGBUF_ID 72 78066c3a39SGatien Chevallier #define STM32MP25_RIFSC_STGEN_ID 73 79066c3a39SGatien Chevallier #define STM32MP25_RIFSC_OCTOSPI1_ID 74 80066c3a39SGatien Chevallier #define STM32MP25_RIFSC_OCTOSPI2_ID 75 81066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SDMMC1_ID 76 82066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SDMMC2_ID 77 83066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SDMMC3_ID 78 84066c3a39SGatien Chevallier #define STM32MP25_RIFSC_GPU_ID 79 85066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LTDC_CMN_ID 80 86066c3a39SGatien Chevallier #define STM32MP25_RIFSC_DSI_CMN_ID 81 87066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LVDS_ID 84 88066c3a39SGatien Chevallier #define STM32MP25_RIFSC_CSI_ID 86 89066c3a39SGatien Chevallier #define STM32MP25_RIFSC_DCMIPP_ID 87 90066c3a39SGatien Chevallier #define STM32MP25_RIFSC_DCMI_PSSI_ID 88 91066c3a39SGatien Chevallier #define STM32MP25_RIFSC_VDEC_ID 89 92066c3a39SGatien Chevallier #define STM32MP25_RIFSC_VENC_ID 90 93066c3a39SGatien Chevallier #define STM32MP25_RIFSC_RNG_ID 92 94066c3a39SGatien Chevallier #define STM32MP25_RIFSC_PKA_ID 93 95066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SAES_ID 94 96066c3a39SGatien Chevallier #define STM32MP25_RIFSC_HASH_ID 95 97066c3a39SGatien Chevallier #define STM32MP25_RIFSC_CRYP1_ID 96 98066c3a39SGatien Chevallier #define STM32MP25_RIFSC_CRYP2_ID 97 99066c3a39SGatien Chevallier #define STM32MP25_RIFSC_IWDG1_ID 98 100066c3a39SGatien Chevallier #define STM32MP25_RIFSC_IWDG2_ID 99 101066c3a39SGatien Chevallier #define STM32MP25_RIFSC_IWDG3_ID 100 102066c3a39SGatien Chevallier #define STM32MP25_RIFSC_IWDG4_ID 101 103066c3a39SGatien Chevallier #define STM32MP25_RIFSC_IWDG5_ID 102 104066c3a39SGatien Chevallier #define STM32MP25_RIFSC_WWDG1_ID 103 105066c3a39SGatien Chevallier #define STM32MP25_RIFSC_WWDG2_ID 104 106066c3a39SGatien Chevallier #define STM32MP25_RIFSC_VREFBUF_ID 106 107066c3a39SGatien Chevallier #define STM32MP25_RIFSC_DTS_ID 107 108066c3a39SGatien Chevallier #define STM32MP25_RIFSC_RAMCFG_ID 108 109066c3a39SGatien Chevallier #define STM32MP25_RIFSC_CRC_ID 109 110066c3a39SGatien Chevallier #define STM32MP25_RIFSC_SERC_ID 110 111066c3a39SGatien Chevallier #define STM32MP25_RIFSC_OCTOSPIM_ID 111 112066c3a39SGatien Chevallier #define STM32MP25_RIFSC_GICV2M_ID 112 113066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I3C1_ID 114 114066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I3C2_ID 115 115066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I3C3_ID 116 116066c3a39SGatien Chevallier #define STM32MP25_RIFSC_I3C4_ID 117 117066c3a39SGatien Chevallier #define STM32MP25_RIFSC_ICACHE_DCACHE_ID 118 118b63e12e4SGatien Chevallier #define STM32MP25_RIFSC_LTDC_L1L2_ID 119 119b63e12e4SGatien Chevallier #define STM32MP25_RIFSC_LTDC_L3_ID 120 120066c3a39SGatien Chevallier #define STM32MP25_RIFSC_LTDC_ROT_ID 121 121066c3a39SGatien Chevallier #define STM32MP25_RIFSC_DSI_TRIG_ID 122 122066c3a39SGatien Chevallier #define STM32MP25_RIFSC_DSI_RDFIFO_ID 123 123066c3a39SGatien Chevallier #define STM32MP25_RIFSC_OTFDEC1_ID 125 124066c3a39SGatien Chevallier #define STM32MP25_RIFSC_OTFDEC2_ID 126 125066c3a39SGatien Chevallier #define STM32MP25_RIFSC_IAC_ID 127 126066c3a39SGatien Chevallier 127471cec14SGatien Chevallier /* RIF-aware IPs */ 128471cec14SGatien Chevallier #define STM32MP25_RIFSC_PWR_ID 155 129471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOA_ID 160 130471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOB_ID 161 131471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOC_ID 162 132471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOD_ID 163 133471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOE_ID 164 134471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOF_ID 165 135471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOG_ID 166 136471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOH_ID 167 137471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOI_ID 168 138471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOJ_ID 169 139471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOK_ID 170 140471cec14SGatien Chevallier #define STM32MP25_RIFSC_GPIOZ_ID 171 141471cec14SGatien Chevallier 142066c3a39SGatien Chevallier /* Global lock bindings */ 143066c3a39SGatien Chevallier #define RIFSC_RIMU_GLOCK 1 144066c3a39SGatien Chevallier #define RIFSC_RISUP_GLOCK 2 145066c3a39SGatien Chevallier 146066c3a39SGatien Chevallier /* masters ID */ 147471cec14SGatien Chevallier #define RIMU_ID_OFFSET 200 148471cec14SGatien Chevallier #define RIMU_ID(idx) ((idx) + RIMU_ID_OFFSET) 149066c3a39SGatien Chevallier 150*bb49c536SThomas Bourgoin /* 151*bb49c536SThomas Bourgoin * CID selection mode 152*bb49c536SThomas Bourgoin * RIF_CIDSEL_P configuration by hardware or inherited from RISUP 153*bb49c536SThomas Bourgoin * RIF_CIDSEL_M configuration from provided RIMU data 154*bb49c536SThomas Bourgoin */ 155*bb49c536SThomas Bourgoin #define RIF_CIDSEL_P 0 156*bb49c536SThomas Bourgoin #define RIF_CIDSEL_M 1 157066c3a39SGatien Chevallier 158471cec14SGatien Chevallier #define RIMUPROT_RIMC_M_ID_SHIFT 0 159471cec14SGatien Chevallier #define RIMUPROT_RIMC_MODE_SHIFT 10 160471cec14SGatien Chevallier #define RIMUPROT_RIMC_MCID_SHIFT 12 161471cec14SGatien Chevallier #define RIMUPROT_RIMC_MSEC_SHIFT 16 162471cec14SGatien Chevallier #define RIMUPROT_RIMC_MPRIV_SHIFT 17 163471cec14SGatien Chevallier #define RIMUPROT_RIMC_ATTRx_SHIFT 8 164471cec14SGatien Chevallier #define RIMUPROT_RIMC_M_ID_MASK GENMASK_32(7, 0) 165471cec14SGatien Chevallier #define RIMUPROT_RIMC_MCID_MASK GENMASK_32(15, 12) 166471cec14SGatien Chevallier #define RIMUPROT_RIMC_ATTRx_MASK (BIT(RIMUPROT_RIMC_MODE_SHIFT) | \ 167471cec14SGatien Chevallier RIMUPROT_RIMC_MCID_MASK | \ 168471cec14SGatien Chevallier BIT(RIMUPROT_RIMC_MSEC_SHIFT) | \ 169471cec14SGatien Chevallier BIT(RIMUPROT_RIMC_MPRIV_SHIFT)) 170066c3a39SGatien Chevallier 171066c3a39SGatien Chevallier #define RIMUPROT(rimuid, mcid, msec, mpriv, mode) \ 172471cec14SGatien Chevallier (((rimuid) << RIMUPROT_RIMC_M_ID_SHIFT) | \ 173471cec14SGatien Chevallier ((mpriv) << RIMUPROT_RIMC_MPRIV_SHIFT) | \ 174471cec14SGatien Chevallier ((msec) << RIMUPROT_RIMC_MSEC_SHIFT) | \ 175471cec14SGatien Chevallier ((mcid) << RIMUPROT_RIMC_MCID_SHIFT) | \ 176471cec14SGatien Chevallier ((mode) << RIMUPROT_RIMC_MODE_SHIFT)) 177066c3a39SGatien Chevallier 178bb032271SGatien Chevallier /* RISAL ID */ 179bb032271SGatien Chevallier #define RISAL_ID(idx) (idx) 180bb032271SGatien Chevallier 181bb032271SGatien Chevallier /* RISAL CID subregion modes */ 182bb032271SGatien Chevallier #define RIFSC_RISAL_SRDIS 0x0 183bb032271SGatien Chevallier #define RIFSC_RISAL_SREN 0x1 184bb032271SGatien Chevallier 185bb032271SGatien Chevallier /* RISAL Block id */ 186bb032271SGatien Chevallier #define RIFSC_RISAL_BLOCK_A 0x0 187bb032271SGatien Chevallier #define RIFSC_RISAL_BLOCK_B 0x1 188bb032271SGatien Chevallier 189bb032271SGatien Chevallier #define RIFSC_RISAL_REG_ID_SHIFT 0 190bb032271SGatien Chevallier #define RIFSC_RISAL_BLOCK_ID_SHIFT 8 191bb032271SGatien Chevallier #define RIFSC_RISAL_REGx_CFGR_SHIFT 16 192bb032271SGatien Chevallier #define RIFSC_RISAL_SREN_SHIFT 16 193bb032271SGatien Chevallier #define RIFSC_RISAL_LOCK_SHIFT 17 194bb032271SGatien Chevallier #define RIFSC_RISAL_SRCID_SHIFT 20 195bb032271SGatien Chevallier #define RIFSC_RISAL_SEC_SHIFT 24 196bb032271SGatien Chevallier #define RIFSC_RISAL_PRIV_SHIFT 25 197bb032271SGatien Chevallier #define RIFSC_RISAL_REG_ID_MASK GENMASK_32(7, 0) 198bb032271SGatien Chevallier #define RIFSC_RISAL_BLOCK_ID_MASK GENMASK_32(15, 8) 199bb032271SGatien Chevallier #define RIFSC_RISAL_SRCID_MASK GENMASK_32(22, 20) 200bb032271SGatien Chevallier #define RIFSC_RISAL_REGx_CFGR_MASK (BIT(RIFSC_RISAL_SREN_SHIFT) | \ 201bb032271SGatien Chevallier BIT(RIFSC_RISAL_LOCK_SHIFT) | \ 202bb032271SGatien Chevallier RIFSC_RISAL_SRCID_MASK | \ 203bb032271SGatien Chevallier BIT(RIFSC_RISAL_SEC_SHIFT) | \ 204bb032271SGatien Chevallier BIT(RIFSC_RISAL_PRIV_SHIFT)) 205bb032271SGatien Chevallier 206bb032271SGatien Chevallier #define RISALPROT(risalid, blockid, srcid, lock, sec, priv, sren) \ 207bb032271SGatien Chevallier (((risalid) << RIFSC_RISAL_REG_ID_SHIFT) | \ 208bb032271SGatien Chevallier ((blockid) << RIFSC_RISAL_BLOCK_ID_SHIFT) | \ 209bb032271SGatien Chevallier ((priv) << RIFSC_RISAL_PRIV_SHIFT) | \ 210bb032271SGatien Chevallier ((sec) << RIFSC_RISAL_SEC_SHIFT) | \ 211bb032271SGatien Chevallier ((srcid) << RIFSC_RISAL_SRCID_SHIFT) | \ 212bb032271SGatien Chevallier ((lock) << RIFSC_RISAL_LOCK_SHIFT) | \ 213bb032271SGatien Chevallier ((sren) << RIFSC_RISAL_SREN_SHIFT)) 214bb032271SGatien Chevallier 215066c3a39SGatien Chevallier #endif /* _DT_BINDINGS_FIREWALL_STM32MP25_RIFSC_H */ 216066c3a39SGatien Chevallier 217