1*19bcbfd1SThomas Bourgoin /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ 2*19bcbfd1SThomas Bourgoin /* 3*19bcbfd1SThomas Bourgoin * Copyright (c) 2025, STMicroelectronics 4*19bcbfd1SThomas Bourgoin */ 5*19bcbfd1SThomas Bourgoin #ifndef _DT_BINDINGS_FIREWALL_STM32MP21_RIFSC_H 6*19bcbfd1SThomas Bourgoin #define _DT_BINDINGS_FIREWALL_STM32MP21_RIFSC_H 7*19bcbfd1SThomas Bourgoin 8*19bcbfd1SThomas Bourgoin /* RIFSC ID */ 9*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM1_ID 0 10*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM2_ID 1 11*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM3_ID 2 12*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM4_ID 3 13*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM5_ID 4 14*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM6_ID 5 15*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM7_ID 6 16*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM8_ID 7 17*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM10_ID 8 18*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM11_ID 9 19*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM12_ID 10 20*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM13_ID 11 21*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM14_ID 12 22*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM15_ID 13 23*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM16_ID 14 24*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_TIM17_ID 15 25*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_LPTIM1_ID 17 26*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_LPTIM2_ID 18 27*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_LPTIM3_ID 19 28*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_LPTIM4_ID 20 29*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_LPTIM5_ID 21 30*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SPI1_ID 22 31*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SPI2_ID 23 32*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SPI3_ID 24 33*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SPI4_ID 25 34*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SPI5_ID 26 35*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SPI6_ID 27 36*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SPDIFRX_ID 30 37*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_USART1_ID 31 38*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_USART2_ID 32 39*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_USART3_ID 33 40*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_UART4_ID 34 41*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_UART5_ID 35 42*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_USART6_ID 36 43*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_UART7_ID 37 44*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_LPUART1_ID 40 45*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_I2C1_ID 41 46*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_I2C2_ID 42 47*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_I2C3_ID 43 48*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SAI1_ID 49 49*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SAI2_ID 50 50*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SAI3_ID 51 51*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SAI4_ID 52 52*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_MDF1_ID 54 53*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_FDCAN_ID 56 54*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_HDP_ID 57 55*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_ADC1_ID 58 56*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_ADC2_ID 59 57*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_ETH1_ID 60 58*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_ETH2_ID 61 59*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_USBH_ID 63 60*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_OTG_HS_ID 66 61*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_DDRPERFM_ID 67 62*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_STGEN_ID 73 63*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_OCTOSPI1_ID 74 64*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SDMMC1_ID 76 65*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SDMMC2_ID 77 66*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SDMMC3_ID 78 67*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_LTDC_CMN_ID 80 68*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_CSI_ID 86 69*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_DCMIPP_ID 87 70*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_DCMI_PSSI_ID 88 71*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_RNG1_ID 92 72*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_RNG2_ID 93 73*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_PKA_ID 94 74*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SAES_ID 95 75*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_HASH1_ID 96 76*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_HASH2_ID 97 77*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_CRYP1_ID 98 78*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_CRYP2_ID 99 79*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_IWDG1_ID 100 80*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_IWDG2_ID 101 81*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_IWDG3_ID 102 82*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_IWDG4_ID 103 83*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_WWDG1_ID 104 84*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_VREFBUF_ID 106 85*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_DTS_ID 107 86*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_RAMCFG_ID 108 87*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_CRC_ID 109 88*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_SERC_ID 110 89*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_I3C1_ID 114 90*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_I3C2_ID 115 91*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_I3C3_ID 116 92*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_ICACHE_DCACHE_ID 118 93*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_LTDC_L1L2_ID 119 94*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_LTDC_L3_ID 120 95*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_OTFDEC1_ID 125 96*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_IAC_ID 127 97*19bcbfd1SThomas Bourgoin 98*19bcbfd1SThomas Bourgoin /* RIF-aware IPs */ 99*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_PWR_ID 155 100*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_GPIOA_ID 160 101*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_GPIOB_ID 161 102*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_GPIOC_ID 162 103*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_GPIOD_ID 163 104*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_GPIOE_ID 164 105*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_GPIOF_ID 165 106*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_GPIOG_ID 166 107*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_GPIOH_ID 167 108*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_GPIOI_ID 168 109*19bcbfd1SThomas Bourgoin #define STM32MP21_RIFSC_GPIOZ_ID 171 110*19bcbfd1SThomas Bourgoin 111*19bcbfd1SThomas Bourgoin /* Global lock bindings */ 112*19bcbfd1SThomas Bourgoin #define RIFSC_RIMU_GLOCK 1 113*19bcbfd1SThomas Bourgoin #define RIFSC_RISUP_GLOCK 2 114*19bcbfd1SThomas Bourgoin 115*19bcbfd1SThomas Bourgoin /* masters ID */ 116*19bcbfd1SThomas Bourgoin #define RIMU_ID_OFFSET 200 117*19bcbfd1SThomas Bourgoin #define RIMU_ID(idx) ((idx) + RIMU_ID_OFFSET) 118*19bcbfd1SThomas Bourgoin 119*19bcbfd1SThomas Bourgoin /* 120*19bcbfd1SThomas Bourgoin * CID selection mode 121*19bcbfd1SThomas Bourgoin * RIF_CIDSEL_P configuration by hardware or inherited from RISUP 122*19bcbfd1SThomas Bourgoin * RIF_CIDSEL_M configuration from provided RIMU data 123*19bcbfd1SThomas Bourgoin */ 124*19bcbfd1SThomas Bourgoin #define RIF_CIDSEL_P 0 125*19bcbfd1SThomas Bourgoin #define RIF_CIDSEL_M 1 126*19bcbfd1SThomas Bourgoin 127*19bcbfd1SThomas Bourgoin #define RIMUPROT_RIMC_M_ID_SHIFT 0 128*19bcbfd1SThomas Bourgoin #define RIMUPROT_RIMC_MODE_SHIFT 10 129*19bcbfd1SThomas Bourgoin #define RIMUPROT_RIMC_MCID_SHIFT 12 130*19bcbfd1SThomas Bourgoin #define RIMUPROT_RIMC_MSEC_SHIFT 16 131*19bcbfd1SThomas Bourgoin #define RIMUPROT_RIMC_MPRIV_SHIFT 17 132*19bcbfd1SThomas Bourgoin #define RIMUPROT_RIMC_ATTRx_SHIFT 8 133*19bcbfd1SThomas Bourgoin #define RIMUPROT_RIMC_M_ID_MASK GENMASK_32(7, 0) 134*19bcbfd1SThomas Bourgoin #define RIMUPROT_RIMC_MCID_MASK GENMASK_32(15, 12) 135*19bcbfd1SThomas Bourgoin #define RIMUPROT_RIMC_ATTRx_MASK (BIT(RIMUPROT_RIMC_MODE_SHIFT) | \ 136*19bcbfd1SThomas Bourgoin RIMUPROT_RIMC_MCID_MASK | \ 137*19bcbfd1SThomas Bourgoin BIT(RIMUPROT_RIMC_MSEC_SHIFT) | \ 138*19bcbfd1SThomas Bourgoin BIT(RIMUPROT_RIMC_MPRIV_SHIFT)) 139*19bcbfd1SThomas Bourgoin 140*19bcbfd1SThomas Bourgoin #define RIMUPROT(rimuid, mcid, msec, mpriv, mode) \ 141*19bcbfd1SThomas Bourgoin (((rimuid) << RIMUPROT_RIMC_M_ID_SHIFT) | \ 142*19bcbfd1SThomas Bourgoin ((mpriv) << RIMUPROT_RIMC_MPRIV_SHIFT) | \ 143*19bcbfd1SThomas Bourgoin ((msec) << RIMUPROT_RIMC_MSEC_SHIFT) | \ 144*19bcbfd1SThomas Bourgoin ((mcid) << RIMUPROT_RIMC_MCID_SHIFT) | \ 145*19bcbfd1SThomas Bourgoin ((mode) << RIMUPROT_RIMC_MODE_SHIFT)) 146*19bcbfd1SThomas Bourgoin 147*19bcbfd1SThomas Bourgoin #endif /* _DT_BINDINGS_STM32_RIFSC_H */ 148