1 /* 2 * Copyright (c) 2020 - 2024 Renesas Electronics Corporation and/or its affiliates 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef BSP_CLOCKS_H 8 #define BSP_CLOCKS_H 9 10 /*********************************************************************************************************************** 11 * Includes 12 **********************************************************************************************************************/ 13 #include "bsp_clock_cfg.h" 14 #include "bsp_api.h" 15 16 /** Common macro for FSP header files. There is also a corresponding FSP_FOOTER macro at the end of this file. */ 17 FSP_HEADER 18 19 /*********************************************************************************************************************** 20 * Macro definitions 21 **********************************************************************************************************************/ 22 23 /*********************************************************************************************************************** 24 * Start clock supply 25 * 26 * @param ip fsp_ip_t enum value for the unit to which the clock is supplied. 27 * @param channel The channel. Use ch 0 for units without channels. Only single bit can be set. 28 **********************************************************************************************************************/ 29 #define R_BSP_MODULE_CLKON(ip, channel) {FSP_CRITICAL_SECTION_DEFINE; \ 30 FSP_CRITICAL_SECTION_ENTER; \ 31 BSP_CLKON_REG_ ## ip(channel) = 0x00000000U \ 32 | (BSP_CLKON_BIT_ ## ip(channel) << \ 33 16U) \ 34 | (BSP_CLKON_BIT_ ## ip(channel)); \ 35 while ((BSP_CLKMON_REG_ ## ip(channel) & \ 36 BSP_CLKMON_BIT_ ## ip(channel)) == 0U) \ 37 { /* wait */}; \ 38 FSP_CRITICAL_SECTION_EXIT;} 39 40 /*********************************************************************************************************************** 41 * Stop clock supply 42 * 43 * @param ip fsp_ip_t enum value for the unit to stop clock. 44 * @param channel The channel. Use ch 0 for units without channels. Only single bit can be set. 45 **********************************************************************************************************************/ 46 #define R_BSP_MODULE_CLKOFF(ip, channel) {FSP_CRITICAL_SECTION_DEFINE; \ 47 FSP_CRITICAL_SECTION_ENTER; \ 48 BSP_CLKON_REG_ ## ip(channel) = 0x00000000U \ 49 | (BSP_CLKON_BIT_ ## ip(channel) << \ 50 16U); \ 51 while ((BSP_CLKMON_REG_ ## ip(channel) & \ 52 BSP_CLKMON_BIT_ ## ip(channel)) != 0U) \ 53 { /* wait */}; \ 54 FSP_CRITICAL_SECTION_EXIT;} 55 56 /*********************************************************************************************************************** 57 * Reset assertion 58 * 59 * @param ip fsp_ip_t enum value for the unit to be reset. 60 * @param channel The channel. Use ch 0 for units without channels. Only single bit can be set. 61 **********************************************************************************************************************/ 62 #define R_BSP_MODULE_RSTON(ip, channel) {FSP_CRITICAL_SECTION_DEFINE; \ 63 FSP_CRITICAL_SECTION_ENTER; \ 64 BSP_RST_REG_ ## ip(channel) = 0x00000000U \ 65 | (BSP_RST_BIT_ ## ip(channel) << 16U); \ 66 FSP_CRITICAL_SECTION_EXIT;} 67 68 /*********************************************************************************************************************** 69 * Reset deassertion 70 * 71 * @param ip fsp_ip_t enum value for the unit to release from reset state. 72 * @param channel The channel. Use ch 0 for units without channels. Only single bit can be set. 73 **********************************************************************************************************************/ 74 #define R_BSP_MODULE_RSTOFF(ip, channel) {FSP_CRITICAL_SECTION_DEFINE; \ 75 FSP_CRITICAL_SECTION_ENTER; \ 76 BSP_RST_REG_ ## ip(channel) = 0x00000000U \ 77 | (BSP_RST_BIT_ ## ip(channel) << 16U) \ 78 | (BSP_RST_BIT_ ## ip(channel)); \ 79 while ((BSP_RSTMON_REG_ ## ip(channel) & \ 80 BSP_RSTMON_BIT_ ## ip(channel)) != 0U) \ 81 { /* wait */}; \ 82 FSP_CRITICAL_SECTION_EXIT;} 83 84 /*********************************************************************************************************************** 85 * Definition of macros to control GTM clock ON/OFF and reset ON/OFF 86 **********************************************************************************************************************/ 87 #ifndef BSP_CLKON_REG_FSP_IP_GTM 88 #define BSP_CLKON_REG_FSP_IP_GTM(channel) (R_CPG->CPG_CLKON_GTM) 89 #endif 90 #ifndef BSP_CLKON_BIT_FSP_IP_GTM 91 #define BSP_CLKON_BIT_FSP_IP_GTM(channel) (1U << (R_CPG_CPG_CLKON_GTM_CLK0_ON_Pos + (channel))) 92 #endif 93 94 #ifndef BSP_CLKMON_REG_FSP_IP_GTM 95 #define BSP_CLKMON_REG_FSP_IP_GTM(channel) (R_CPG->CPG_CLKMON_GTM) 96 #endif 97 #ifndef BSP_CLKMON_BIT_FSP_IP_GTM 98 #define BSP_CLKMON_BIT_FSP_IP_GTM(channel) (1U << (R_CPG_CPG_CLKMON_GTM_CLK0_MON_Pos + (channel))) 99 #endif 100 101 #ifndef BSP_RST_REG_FSP_IP_GTM 102 #define BSP_RST_REG_FSP_IP_GTM(channel) (R_CPG->CPG_RST_GTM) 103 #endif 104 #ifndef BSP_RST_BIT_FSP_IP_GTM 105 #define BSP_RST_BIT_FSP_IP_GTM(channel) (1U << (R_CPG_CPG_RST_GTM_UNIT0_RSTB_Pos + (channel))) 106 #endif 107 108 #ifndef BSP_RSTMON_REG_FSP_IP_GTM 109 #define BSP_RSTMON_REG_FSP_IP_GTM(channel) (R_CPG->CPG_RSTMON_GTM) 110 #endif 111 #ifndef BSP_RSTMON_BIT_FSP_IP_GTM 112 #define BSP_RSTMON_BIT_FSP_IP_GTM(channel) (1U << (R_CPG_CPG_RSTMON_GTM_RST0_MON_Pos + (channel))) 113 #endif 114 115 /*********************************************************************************************************************** 116 * Definition of macros to control GPT clock ON/OFF and reset ON/OFF 117 **********************************************************************************************************************/ 118 #define BSP_CLKON_REG_FSP_IP_GPT(channel) (R_CPG->CPG_CLKON_GPT) 119 #define BSP_CLKON_BIT_FSP_IP_GPT(channel) (1U << (R_CPG_CPG_CLKON_GPT_CLK0_ON_Pos)) 120 121 #define BSP_CLKMON_REG_FSP_IP_GPT(channel) (R_CPG->CPG_CLKMON_GPT) 122 #define BSP_CLKMON_BIT_FSP_IP_GPT(channel) (1U << (R_CPG_CPG_CLKMON_GPT_CLK0_MON_Pos)) 123 124 #define BSP_RST_REG_FSP_IP_GPT(channel) (R_CPG->CPG_RST_GPT) 125 #define BSP_RST_BIT_FSP_IP_GPT(channel) (1U << (R_CPG_CPG_RST_GPT_UNIT0_RSTB_Pos)) 126 127 #define BSP_RSTMON_REG_FSP_IP_GPT(channel) (R_CPG->CPG_RSTMON_GPT) 128 #define BSP_RSTMON_BIT_FSP_IP_GPT(channel) (1U << (R_CPG_CPG_RSTMON_GPT_RST0_MON_Pos)) 129 130 /*********************************************************************************************************************** 131 * Definition of macros to control POEG clock ON/OFF and reset ON/OFF 132 **********************************************************************************************************************/ 133 #define BSP_CLKON_REG_FSP_IP_POEG(channel) (R_CPG->CPG_CLKON_POEG) 134 #define BSP_CLKON_BIT_FSP_IP_POEG(channel) (1U << (R_CPG_CPG_CLKON_POEG_CLK0_ON_Pos + (channel))) 135 136 #define BSP_CLKMON_REG_FSP_IP_POEG(channel) (R_CPG->CPG_CLKMON_POEG) 137 #define BSP_CLKMON_BIT_FSP_IP_POEG(channel) (1U << (R_CPG_CPG_CLKMON_POEG_CLK0_MON_Pos + (channel))) 138 139 #define BSP_RST_REG_FSP_IP_POEG(channel) (R_CPG->CPG_RST_POEG) 140 #define BSP_RST_BIT_FSP_IP_POEG(channel) (1U << (R_CPG_CPG_RST_POEG_UNIT0_RSTB_Pos + (channel))) 141 142 #define BSP_RSTMON_REG_FSP_IP_POEG(channel) (R_CPG->CPG_RSTMON_POEG) 143 #define BSP_RSTMON_BIT_FSP_IP_POEG(channel) (1U << (R_CPG_CPG_RSTMON_POEG_RST0_MON_Pos + (channel))) 144 145 /*********************************************************************************************************************** 146 * Definition of macros to control IM33 clock ON/OFF and reset ON/OFF 147 **********************************************************************************************************************/ 148 #define BSP_CLKON_REG_FSP_IP_IM33(channel) (R_CPG->CPG_CLKON_IM33) 149 #define BSP_CLKON_BIT_FSP_IP_IM33(channel) (1U << (R_CPG_CPG_CLKON_IM33_CLK0_ON_Pos + (channel))) 150 151 #define BSP_CLKMON_REG_FSP_IP_IM33(channel) (R_CPG->CPG_CLKMON_IM33) 152 #define BSP_CLKMON_BIT_FSP_IP_IM33(channel) (1U << (R_CPG_CPG_CLKMON_IM33_CLK0_MON_Pos + (channel))) 153 154 #define BSP_RST_REG_FSP_IP_IM33(channel) (R_CPG->CPG_RST_IM33) 155 #define BSP_RST_BIT_FSP_IP_IM33(channel) (1U << (R_CPG_CPG_RST_IM33_UNIT0_RSTB_Pos + (channel))) 156 157 #define BSP_RSTMON_REG_FSP_IP_IM33(channel) (R_CPG->CPG_RSTMON_IM33) 158 #define BSP_RSTMON_BIT_FSP_IP_IM33(channel) (1U << (R_CPG_CPG_RSTMON_IM33_RST0_MON_Pos + (channel))) 159 160 /*********************************************************************************************************************** 161 * Definition of macros to control SCIF clock ON/OFF and reset ON/OFF 162 **********************************************************************************************************************/ 163 #define BSP_CLKON_REG_FSP_IP_SCIF(channel) (R_CPG->CPG_CLKON_SCIF) 164 #define BSP_CLKON_BIT_FSP_IP_SCIF(channel) (1U << (R_CPG_CPG_CLKON_SCIF_CLK0_ON_Pos + (channel))) 165 166 #define BSP_CLKMON_REG_FSP_IP_SCIF(channel) (R_CPG->CPG_CLKMON_SCIF) 167 #define BSP_CLKMON_BIT_FSP_IP_SCIF(channel) (1U << (R_CPG_CPG_CLKMON_SCIF_CLK0_MON_Pos + (channel))) 168 169 #define BSP_RST_REG_FSP_IP_SCIF(channel) (R_CPG->CPG_RST_SCIF) 170 #define BSP_RST_BIT_FSP_IP_SCIF(channel) (1U << (R_CPG_CPG_RST_SCIF_UNIT0_RSTB_Pos + (channel))) 171 172 #define BSP_RSTMON_REG_FSP_IP_SCIF(channel) (R_CPG->CPG_RSTMON_SCIF) 173 #define BSP_RSTMON_BIT_FSP_IP_SCIF(channel) (1U << (R_CPG_CPG_RSTMON_SCIF_RST0_MON_Pos + (channel))) 174 175 /*********************************************************************************************************************** 176 * Definition of macros to control RIIC clock ON/OFF and reset ON/OFF 177 **********************************************************************************************************************/ 178 #define BSP_CLKON_REG_FSP_IP_RIIC(channel) (R_CPG->CPG_CLKON_I2C) 179 #define BSP_CLKON_BIT_FSP_IP_RIIC(channel) (1U << (R_CPG_CPG_CLKON_I2C_CLK0_ON_Pos + (channel))) 180 181 #define BSP_CLKMON_REG_FSP_IP_RIIC(channel) (R_CPG->CPG_CLKMON_I2C) 182 #define BSP_CLKMON_BIT_FSP_IP_RIIC(channel) (1U << (R_CPG_CPG_CLKMON_I2C_CLK0_MON_Pos + (channel))) 183 184 #define BSP_RST_REG_FSP_IP_RIIC(channel) (R_CPG->CPG_RST_I2C) 185 #define BSP_RST_BIT_FSP_IP_RIIC(channel) (1U << (R_CPG_CPG_RST_I2C_UNIT0_RSTB_Pos + (channel))) 186 187 #define BSP_RSTMON_REG_FSP_IP_RIIC(channel) (R_CPG->CPG_RSTMON_I2C) 188 #define BSP_RSTMON_BIT_FSP_IP_RIIC(channel) (1U << (R_CPG_CPG_RSTMON_I2C_RST0_MON_Pos + (channel))) 189 190 /*********************************************************************************************************************** 191 * Definition of macros to control RSPI clock ON/OFF and reset ON/OFF 192 **********************************************************************************************************************/ 193 #define BSP_CLKON_REG_FSP_IP_RSPI(channel) (R_CPG->CPG_CLKON_RSPI) 194 #define BSP_CLKON_BIT_FSP_IP_RSPI(channel) (1U << (R_CPG_CPG_CLKON_RSPI_CLK0_ON_Pos + (channel))) 195 196 #define BSP_CLKMON_REG_FSP_IP_RSPI(channel) (R_CPG->CPG_CLKMON_RSPI) 197 #define BSP_CLKMON_BIT_FSP_IP_RSPI(channel) (1U << (R_CPG_CPG_CLKMON_RSPI_CLK0_MON_Pos + (channel))) 198 199 #define BSP_RST_REG_FSP_IP_RSPI(channel) (R_CPG->CPG_RST_RSPI) 200 #define BSP_RST_BIT_FSP_IP_RSPI(channel) (1U << (R_CPG_CPG_RST_RSPI_UNIT0_RSTB_Pos + (channel))) 201 202 #define BSP_RSTMON_REG_FSP_IP_RSPI(channel) (R_CPG->CPG_RSTMON_RSPI) 203 #define BSP_RSTMON_BIT_FSP_IP_RSPI(channel) (1U << (R_CPG_CPG_RSTMON_RSPI_RST0_MON_Pos + (channel))) 204 205 /*********************************************************************************************************************** 206 * Definition of macros to control MHU clock ON/OFF and reset ON/OFF 207 **********************************************************************************************************************/ 208 #define BSP_CLKON_REG_FSP_IP_MHU(channel) (R_CPG->CPG_CLKON_MHU) 209 #define BSP_CLKON_BIT_FSP_IP_MHU(channel) (1U << (R_CPG_CPG_CLKON_MHU_CLK0_ON_Pos)) 210 211 #define BSP_CLKMON_REG_FSP_IP_MHU(channel) (R_CPG->CPG_CLKMON_MHU) 212 #define BSP_CLKMON_BIT_FSP_IP_MHU(channel) (1U << (R_CPG_CPG_CLKMON_MHU_CLK0_MON_Pos)) 213 214 #define BSP_RST_REG_FSP_IP_MHU(channel) (R_CPG->CPG_RST_MHU) 215 #define BSP_RST_BIT_FSP_IP_MHU(channel) (1U << (R_CPG_CPG_RST_MHU_UNIT0_RSTB_Pos)) 216 217 #define BSP_RSTMON_REG_FSP_IP_MHU(channel) (R_CPG->CPG_RSTMON_MHU) 218 #define BSP_RSTMON_BIT_FSP_IP_MHU(channel) (1U << (R_CPG_CPG_RSTMON_MHU_RST0_MON_Pos)) 219 220 /*********************************************************************************************************************** 221 * Definition of macros to control DMAC clock ON/OFF and reset ON/OFF 222 **********************************************************************************************************************/ 223 #define BSP_CLKON_REG_FSP_IP_DMAC(channel) (R_CPG->CPG_CLKON_DMAC_REG) 224 #define BSP_CLKON_BIT_FSP_IP_DMAC(channel) (3U << (R_CPG_CPG_CLKON_DMAC_REG_CLK0_ON_Pos)) 225 226 #define BSP_CLKMON_REG_FSP_IP_DMAC(channel) (R_CPG->CPG_CLKMON_DMAC_REG) 227 #define BSP_CLKMON_BIT_FSP_IP_DMAC(channel) (3U << (R_CPG_CPG_CLKMON_DMAC_REG_CLK0_MON_Pos)) 228 229 #define BSP_RST_REG_FSP_IP_DMAC(channel) (R_CPG->CPG_RST_DMAC) 230 #define BSP_RST_BIT_FSP_IP_DMAC(channel) (3U << (R_CPG_CPG_RST_DMAC_UNIT0_RSTB_Pos)) 231 232 #define BSP_RSTMON_REG_FSP_IP_DMAC(channel) (R_CPG->CPG_RSTMON_DMAC) 233 #define BSP_RSTMON_BIT_FSP_IP_DMAC(channel) (3U << (R_CPG_CPG_RSTMON_DMAC_RST0_MON_Pos)) 234 235 #define BSP_CLKON_REG_FSP_IP_DMAC_s(channel) BSP_CLKON_REG_FSP_IP_DMAC(channel) 236 #define BSP_CLKON_BIT_FSP_IP_DMAC_s(channel) BSP_CLKON_BIT_FSP_IP_DMAC(channel) 237 238 #define BSP_CLKMON_REG_FSP_IP_DMAC_s(channel) BSP_CLKMON_REG_FSP_IP_DMAC(channel) 239 #define BSP_CLKMON_BIT_FSP_IP_DMAC_s(channel) BSP_CLKMON_BIT_FSP_IP_DMAC(channel) 240 241 #define BSP_RST_REG_FSP_IP_DMAC_s(channel) BSP_RST_REG_FSP_IP_DMAC(channel) 242 #define BSP_RST_BIT_FSP_IP_DMAC_s(channel) BSP_RST_BIT_FSP_IP_DMAC(channel) 243 244 #define BSP_RSTMON_REG_FSP_IP_DMAC_s(channel) BSP_RSTMON_REG_FSP_IP_DMAC(channel) 245 #define BSP_RSTMON_BIT_FSP_IP_DMAC_s(channel) BSP_RSTMON_BIT_FSP_IP_DMAC(channel) 246 247 /*********************************************************************************************************************** 248 * Definition of macros to control SSI clock ON/OFF and reset ON/OFF 249 **********************************************************************************************************************/ 250 #define BSP_CLKON_REG_FSP_IP_SSI(channel) (R_CPG->CPG_CLKON_SSI) 251 #define BSP_CLKON_BIT_FSP_IP_SSI(channel) (1U << (R_CPG_CPG_CLKON_SSI_CLK0_ON_Pos + (channel))) 252 253 #define BSP_CLKMON_REG_FSP_IP_SSI(channel) (R_CPG->CPG_CLKMON_SSI) 254 #define BSP_CLKMON_BIT_FSP_IP_SSI(channel) (1U << (R_CPG_CPG_CLKMON_SSI_CLK0_MON_Pos + (channel))) 255 256 #define BSP_RST_REG_FSP_IP_SSI(channel) (R_CPG->CPG_RST_SSIF) 257 #define BSP_RST_BIT_FSP_IP_SSI(channel) (1U << (R_CPG_CPG_RST_SSIF_UNIT0_RSTB_Pos + (channel))) 258 259 #define BSP_RSTMON_REG_FSP_IP_SSI(channel) (R_CPG->CPG_RSTMON_SSIF) 260 #define BSP_RSTMON_BIT_FSP_IP_SSI(channel) (1U << (R_CPG_CPG_RSTMON_SSIF_RST0_MON_Pos + (channel))) 261 262 /*********************************************************************************************************************** 263 * Definition of macros to control CANFD clock ON/OFF and reset ON/OFF 264 **********************************************************************************************************************/ 265 #define BSP_CLKON_REG_FSP_IP_CANFD(channel) (R_CPG->CPG_CLKON_CANFD) 266 #define BSP_CLKON_BIT_FSP_IP_CANFD(channel) (1U << (R_CPG_CPG_CLKON_CANFD_CLK0_ON_Pos + (channel))) 267 268 #define BSP_CLKMON_REG_FSP_IP_CANFD(channel) (R_CPG->CPG_CLKMON_CANFD) 269 #define BSP_CLKMON_BIT_FSP_IP_CANFD(channel) (1U << (R_CPG_CPG_CLKMON_CANFD_CLK0_MON_Pos + (channel))) 270 271 #define BSP_RST_REG_FSP_IP_CANFD(channel) (R_CPG->CPG_RST_CANFD) 272 #define BSP_RST_BIT_FSP_IP_CANFD(channel) (1U << (R_CPG_CPG_RST_CANFD_UNIT0_RSTB_Pos + (channel))) 273 274 #define BSP_RSTMON_REG_FSP_IP_CANFD(channel) (R_CPG->CPG_RSTMON_CANFD) 275 #define BSP_RSTMON_BIT_FSP_IP_CANFD(channel) (1U << (R_CPG_CPG_RSTMON_CANFD_RST0_MON_Pos + (channel))) 276 277 /*********************************************************************************************************************** 278 * Definition of macros to control ADC clock ON/OFF and reset ON/OFF 279 **********************************************************************************************************************/ 280 #define BSP_CLKON_REG_FSP_IP_ADC(channel) (R_CPG->CPG_CLKON_ADC) 281 #define BSP_CLKON_BIT_FSP_IP_ADC(channel) (3U << R_CPG_CPG_CLKON_ADC_CLK0_ON_Pos) 282 283 #define BSP_CLKMON_REG_FSP_IP_ADC(channel) (R_CPG->CPG_CLKMON_ADC) 284 #define BSP_CLKMON_BIT_FSP_IP_ADC(channel) (3U << R_CPG_CPG_CLKMON_ADC_CLK0_MON_Pos) 285 286 #define BSP_RST_REG_FSP_IP_ADC(channel) (R_CPG->CPG_RST_ADC) 287 #define BSP_RST_BIT_FSP_IP_ADC(channel) (3U << R_CPG_CPG_RST_ADC_UNIT0_RSTB_Pos) 288 289 #define BSP_RSTMON_REG_FSP_IP_ADC(channel) (R_CPG->CPG_RSTMON_ADC) 290 #define BSP_RSTMON_BIT_FSP_IP_ADC(channel) (3U << R_CPG_CPG_RSTMON_ADC_RST0_MON_Pos) 291 292 /*********************************************************************************************************************** 293 * Definition of macros to control TSU clock ON/OFF and reset ON/OFF 294 **********************************************************************************************************************/ 295 #define BSP_CLKON_REG_FSP_IP_TSU(channel) (R_CPG->CPG_CLKON_TSU) 296 #define BSP_CLKON_BIT_FSP_IP_TSU(channel) (1U << (R_CPG_CPG_CLKON_TSU_CLK0_ON_Pos + (channel))) 297 298 #define BSP_CLKMON_REG_FSP_IP_TSU(channel) (R_CPG->CPG_CLKMON_TSU) 299 #define BSP_CLKMON_BIT_FSP_IP_TSU(channel) (1U << (R_CPG_CPG_CLKMON_TSU_CLK0_MON_Pos + (channel))) 300 301 #define BSP_RST_REG_FSP_IP_TSU(channel) (R_CPG->CPG_RST_TSU) 302 #define BSP_RST_BIT_FSP_IP_TSU(channel) (1U << (R_CPG_CPG_RST_TSU_UNIT0_RSTB_Pos + (channel))) 303 304 #define BSP_RSTMON_REG_FSP_IP_TSU(channel) (R_CPG->CPG_RSTMON_TSU) 305 #define BSP_RSTMON_BIT_FSP_IP_TSU(channel) (1U << (R_CPG_CPG_RSTMON_TSU_RST0_MON_Pos + (channel))) 306 307 /*********************************************************************************************************************** 308 * Definition of macros to control WDT clock ON/OFF and reset ON/OFF 309 **********************************************************************************************************************/ 310 #define BSP_CLKON_REG_FSP_IP_WDT(channel) (R_CPG->CPG_CLKON_WDT) 311 #define BSP_CLKON_BIT_FSP_IP_WDT(channel) (3U << (R_CPG_CPG_CLKON_WDT_CLK0_ON_Pos + 2U * (channel))) 312 313 #define BSP_CLKMON_REG_FSP_IP_WDT(channel) (R_CPG->CPG_CLKMON_WDT) 314 #define BSP_CLKMON_BIT_FSP_IP_WDT(channel) (3U << (R_CPG_CPG_CLKMON_WDT_CLK0_MON_Pos + 2U * (channel))) 315 316 #define BSP_RST_REG_FSP_IP_WDT(channel) (R_CPG->CPG_RST_WDT) 317 #define BSP_RST_BIT_FSP_IP_WDT(channel) (1U << (R_CPG_CPG_RST_WDT_UNIT0_RSTB_Pos + (channel))) 318 319 #define BSP_RSTMON_REG_FSP_IP_WDT(channel) (R_CPG->CPG_RSTMON_WDT) 320 #define BSP_RSTMON_BIT_FSP_IP_WDT(channel) (1U << (R_CPG_CPG_RSTMON_WDT_RST0_MON_Pos + (channel))) 321 322 /*********************************************************************************************************************** 323 * Definition of macros to control SCI clock ON/OFF and reset ON/OFF 324 **********************************************************************************************************************/ 325 #define BSP_CLKON_REG_FSP_IP_SCI(channel) (R_CPG->CPG_CLKON_SCI) 326 #define BSP_CLKON_BIT_FSP_IP_SCI(channel) (1U << (R_CPG_CPG_CLKON_SCI_CLK0_ON_Pos + (channel))) 327 328 #define BSP_CLKMON_REG_FSP_IP_SCI(channel) (R_CPG->CPG_CLKMON_SCI) 329 #define BSP_CLKMON_BIT_FSP_IP_SCI(channel) (1U << (R_CPG_CPG_CLKMON_SCI_CLK0_MON_Pos + (channel))) 330 331 #define BSP_RST_REG_FSP_IP_SCI(channel) (R_CPG->CPG_RST_SCI) 332 #define BSP_RST_BIT_FSP_IP_SCI(channel) (1U << (R_CPG_CPG_RST_SCI_UNIT0_RSTB_Pos + (channel))) 333 334 #define BSP_RSTMON_REG_FSP_IP_SCI(channel) (R_CPG->CPG_RSTMON_SCI) 335 #define BSP_RSTMON_BIT_FSP_IP_SCI(channel) (1U << (R_CPG_CPG_RSTMON_SCI_RST0_MON_Pos + (channel))) 336 337 /*********************************************************************************************************************** 338 * Definition of macros to control TSU clock ON/OFF and reset ON/OFF 339 **********************************************************************************************************************/ 340 #define BSP_CLKON_REG_FSP_IP_MTU3(channel) (R_CPG->CPG_CLKON_MTU) 341 #define BSP_CLKON_BIT_FSP_IP_MTU3(channel) (1U << (R_CPG_CPG_CLKON_MTU_CLK0_ON_Pos)) 342 343 #define BSP_CLKMON_REG_FSP_IP_MTU3(channel) (R_CPG->CPG_CLKMON_MTU) 344 #define BSP_CLKMON_BIT_FSP_IP_MTU3(channel) (1U << (R_CPG_CPG_CLKMON_MTU_CLK0_MON_Pos)) 345 346 #define BSP_RST_REG_FSP_IP_MTU3(channel) (R_CPG->CPG_RST_MTU) 347 #define BSP_RST_BIT_FSP_IP_MTU3(channel) (1U << (R_CPG_CPG_RST_MTU_UNIT0_RSTB_Pos)) 348 349 #define BSP_RSTMON_REG_FSP_IP_MTU3(channel) (R_CPG->CPG_RSTMON_MTU) 350 #define BSP_RSTMON_BIT_FSP_IP_MTU3(channel) (1U << (R_CPG_CPG_RSTMON_MTU_RST0_MON_Pos)) 351 352 /* CPG_PL1_DDIV.DIVPL1_SET options. */ 353 #define BSP_CLOCKS_PL1_DIV_1 (0) // Divide ICLK source clock by 1 354 #define BSP_CLOCKS_PL1_DIV_2 (1) // Divide ICLK source clock by 2 355 #define BSP_CLOCKS_PL1_DIV_4 (2) // Divide ICLK source clock by 4 356 #define BSP_CLOCKS_PL1_DIV_8 (3) // Divide ICLK source clock by 8 357 358 /* CPG_PL2_DDIV.DIVPL2B_SET options. */ 359 #define BSP_CLOCKS_PL2B_DIV_1 (0) // Divide P0CLK source clock by 1 360 #define BSP_CLOCKS_PL2B_DIV_2 (1) // Divide P0CLK source clock by 2 361 #define BSP_CLOCKS_PL2B_DIV_4 (2) // Divide P0CLK source clock by 4 362 #define BSP_CLOCKS_PL2B_DIV_8 (3) // Divide P0CLK source clock by 8 363 #define BSP_CLOCKS_PL2B_DIV_32 (4) // Divide P0CLK source clock by 32 364 365 /* CPG_PL3_DDIV.DIVPL3C_SET options. */ 366 #define BSP_CLOCKS_PL3C_DIV_1 (0) // Divide SPI0CLK source clock by 1 367 #define BSP_CLOCKS_PL3C_DIV_2 (1) // Divide SPI0CLK source clock by 2 368 #define BSP_CLOCKS_PL3C_DIV_4 (2) // Divide SPI0CLK source clock by 4 369 #define BSP_CLOCKS_PL3C_DIV_8 (3) // Divide SPI0CLK source clock by 8 370 #define BSP_CLOCKS_PL3C_DIV_32 (4) // Divide SPI0CLK source clock by 32 371 372 /* CPG_PL3_DDIV.DIVPL3B_SET options. */ 373 #define BSP_CLOCKS_PL3B_DIV_1 (0) // Divide P1CLK source clock by 1 374 #define BSP_CLOCKS_PL3B_DIV_2 (1) // Divide P1CLK source clock by 2 375 #define BSP_CLOCKS_PL3B_DIV_4 (2) // Divide P1CLK source clock by 4 376 #define BSP_CLOCKS_PL3B_DIV_8 (3) // Divide P1CLK source clock by 8 377 #define BSP_CLOCKS_PL3B_DIV_32 (4) // Divide P1CLK source clock by 32 378 379 /* CPG_PL3_DDIV.DIVPL3A_SET options. */ 380 #define BSP_CLOCKS_PL3A_DIV_1 (0) // Divide P2CLK source clock by 1 381 #define BSP_CLOCKS_PL3A_DIV_2 (1) // Divide P2CLK source clock by 2 382 #define BSP_CLOCKS_PL3A_DIV_4 (2) // Divide P2CLK source clock by 4 383 #define BSP_CLOCKS_PL3A_DIV_8 (3) // Divide P2CLK source clock by 8 384 #define BSP_CLOCKS_PL3A_DIV_32 (4) // Divide P2CLK source clock by 32 385 386 /* CPG_PL6_DDIV.DIVPL6B_SET options. */ 387 #define BSP_CLOCKS_PL6B_DIV_1 (0) // Divide I3CLK source clock by 1 388 #define BSP_CLOCKS_PL6B_DIV_2 (1) // Divide I3CLK source clock by 2 389 #define BSP_CLOCKS_PL6B_DIV_4 (2) // Divide I3CLK source clock by 4 390 #define BSP_CLOCKS_PL6B_DIV_8 (3) // Divide I3CLK source clock by 8 391 #define BSP_CLOCKS_PL6B_DIV_32 (4) // Divide I3CLK source clock by 32 392 393 /* CPG_PL6_DDIV.DIVPL6A_SET options. */ 394 #define BSP_CLOCKS_PL6A_DIV_1 (0) // Divide I2CLK source clock by 1 395 #define BSP_CLOCKS_PL6A_DIV_2 (1) // Divide I2CLK source clock by 2 396 #define BSP_CLOCKS_PL6A_DIV_4 (2) // Divide I2CLK source clock by 4 397 #define BSP_CLOCKS_PL6A_DIV_8 (3) // Divide I2CLK source clock by 8 398 #define BSP_CLOCKS_PL6A_DIV_32 (4) // Divide I2CLK source clock by 32 399 400 /* CPG_SDHI_DDIV.DIVSDHI2_SET options. */ 401 #define BSP_CLOCKS_SDHI2_DIV_1 (0) // Divide SD2CLK source clock by 1 402 #define BSP_CLOCKS_SDHI2_DIV_2 (1) // Divide SD2CLK source clock by 2 403 404 /* CPG_SDHI_DDIV.DIVSDHI1_SET options. */ 405 #define BSP_CLOCKS_SDHI1_DIV_1 (0) // Divide SD1CLK source clock by 1 406 #define BSP_CLOCKS_SDHI1_DIV_2 (1) // Divide SD1CLK source clock by 2 407 408 /* CPG_SDHI_DDIV.DIVSDHI0_SET options. */ 409 #define BSP_CLOCKS_SDHI0_DIV_1 (0) // Divide SD0CLK source clock by 1 410 #define BSP_CLOCKS_SDHI0_DIV_2 (1) // Divide SD0CLK source clock by 2 411 412 /* CPG_OCTA_DDIV.DIVOCTA_SET options. */ 413 #define BSP_CLOCKS_OCTA_DIV_1 (0) // Divide OCCLK source clock by 1 414 #define BSP_CLOCKS_OCTA_DIV_2 (1) // Divide OCCLK source clock by 2 415 #define BSP_CLOCKS_OCTA_DIV_4 (2) // Divide OCCLK source clock by 4 416 #define BSP_CLOCKS_OCTA_DIV_8 (3) // Divide OCCLK source clock by 8 417 #define BSP_CLOCKS_OCTA_DIV_32 (4) // Divide OCCLK source clock by 32 418 419 /* CPG_SPI_DDIV.DIVSPI_SET options. */ 420 #define BSP_CLOCKS_SPI_DIV_1 (0) // Divide SPICLK source clock by 1 421 #define BSP_CLOCKS_SPI_DIV_2 (1) // Divide SPICLK source clock by 2 422 #define BSP_CLOCKS_SPI_DIV_4 (2) // Divide SPICLK source clock by 4 423 #define BSP_CLOCKS_SPI_DIV_8 (3) // Divide SPICLK source clock by 8 424 #define BSP_CLOCKS_SPI_DIV_32 (4) // Divide SPICLK source clock by 32 425 426 /* CPG_PLL_DSEL options. */ 427 #define BSP_CLOCKS_SOURCE_CLOCK_OSC_0024 (0) // Select OSC/1000 clock 428 #define BSP_CLOCKS_SOURCE_CLOCK_PLL4 (1) // Select PLL4 clock 429 430 /* CPG_SDHI_DSEL options. */ 431 #define BSP_CLOCKS_SOURCE_CLOCK_PLL2_800 (0) // Select 800MHz 432 #define BSP_CLOCKS_SOURCE_CLOCK_PLL6_500 (2) // Select 500MHz 433 #define BSP_CLOCKS_SOURCE_CLOCK_PLL2_266 (3) // Select 266MHz 434 435 /* CPG_OCTA_SSEL and CPG_SPI_SSEL options. */ 436 #define BSP_CLOCKS_SOURCE_CLOCK_PLL3_400 (0) // Select 400MHz 437 #define BSP_CLOCKS_SOURCE_CLOCK_PLL3_266 (2) // Select 266MHz 438 #define BSP_CLOCKS_SOURCE_CLOCK_PLL6_250 (3) // Select 250MHz 439 440 /*********************************************************************************************************************** 441 * Typedef definitions 442 **********************************************************************************************************************/ 443 444 /*********************************************************************************************************************** 445 * Exported global variables 446 **********************************************************************************************************************/ 447 448 /*********************************************************************************************************************** 449 * Exported global functions (to be accessed by other files) 450 **********************************************************************************************************************/ 451 452 /* Public functions defined in bsp_clocks.c */ 453 void bsp_clock_init(void); // Used internally by BSP 454 void bsp_clock_freq_init_cfg(void); // Used internally by BSP 455 456 #if BSP_TZ_CFG_INIT_SECURE_ONLY 457 void bsp_clock_freq_var_init(void); // Used internally by BSP 458 459 #endif 460 461 /** Common macro for FSP header files. There is also a corresponding FSP_HEADER macro at the top of this file. */ 462 FSP_FOOTER 463 464 #endif 465