1 /*
2 * Copyright 2023-2024 NXP
3 * All rights reserved.
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 */
7
8 #ifndef FSL_CLOCK_H_
9 #define FSL_CLOCK_H_
10
11 #include "fsl_common.h"
12 #include "fsl_device_registers.h"
13 #include "fsl_reset.h"
14 #include <assert.h>
15 #include <stdbool.h>
16 #include <stdint.h>
17
18 /*! @addtogroup clock */
19 /*! @{ */
20
21 /*! @file */
22
23 /*******************************************************************************
24 * Definitions
25 *****************************************************************************/
26
27 /*! @name Driver version */
28 /*@{*/
29 /*! @brief CLOCK driver version 2.3.1 */
30 #define FSL_CLOCK_DRIVER_VERSION (MAKE_VERSION(2, 3, 1))
31 /*@}*/
32
33 #if defined(MIMXRT798S_hifi1_SERIES) || defined(MIMXRT798S_cm33_core1_SERIES) || \
34 defined(MIMXRT758S_cm33_core1_SERIES) || defined(MIMXRT735S_cm33_core1_SERIES)
35 #define FSL_CLOCK_DRIVER_SENSE
36 #elif defined(MIMXRT798S_hifi4_SERIES) || defined(MIMXRT798S_cm33_core0_SERIES) || \
37 defined(MIMXRT758S_cm33_core0_SERIES) || defined(MIMXRT735S_cm33_core0_SERIES)
38 #define FSL_CLOCK_DRIVER_COMPUTE
39 #elif defined(MIMXRT798S_ezhv_SERIES) || defined(MIMXRT758S_ezhv_SERIES) || defined(MIMXRT735S_ezhv_SERIES)
40 #define FSL_CLOCK_DRIVER_MEDIA
41 #else
42 #error "Unsupported core!"
43 #endif
44
45 /* Definition for delay API in clock driver, users can redefine it to the real
46 * application. */
47 #ifndef SDK_DEVICE_MAXIMUM_CPU_CLOCK_FREQUENCY
48 #if defined(FSL_CLOCK_DRIVER_SENSE)
49 #define SDK_DEVICE_MAXIMUM_CPU_CLOCK_FREQUENCY (100000000UL)
50 #elif defined(FSL_CLOCK_DRIVER_COMPUTE)
51 #define SDK_DEVICE_MAXIMUM_CPU_CLOCK_FREQUENCY (300000000UL)
52 #elif defined(FSL_CLOCK_DRIVER_MEDIA)
53 /* EZHV process clock is m_clk. */
54 #define SDK_DEVICE_MAXIMUM_CPU_CLOCK_FREQUENCY (300UL * 1000UL * 1000UL)
55 #endif /* FSL_CLOCK_DRIVER_SENSE */
56 #endif /* SDK_DEVICE_MAXIMUM_CPU_CLOCK_FREQUENCY */
57
58 /* Definition for compatiblity. */
59 #define CLOCK_DeinitSysPfd CLOCK_DeinitMainPfd
60 #define CLOCK_InitSysPfd CLOCK_InitMainPfd
61
62 /*! @brief External XTAL (SYSOSC) clock frequency.
63 *
64 * The XTAL (SYSOSC) clock frequency in Hz, when the clock is setup, use the
65 * function CLOCK_SetXtalFreq to set the value in to clock driver. For example,
66 * if XTAL is 16MHz,
67 * @code
68 * CLOCK_SetXtalFreq(160000000);
69 * @endcode
70 */
71 extern volatile uint32_t g_xtalFreq;
72
73 /*! @brief External CLK_IN pin clock frequency (clkin).
74 *
75 * The CLK_IN pin (clkin) clock frequency in Hz, when the clock is setup, use
76 * the function CLOCK_SetClkinFreq to set the value in to clock driver. For
77 * example, if CLK_IN is 16MHz,
78 * @code
79 * CLOCK_SetClkinFreq(160000000);
80 * @endcode
81 */
82 extern volatile uint32_t g_clkinFreq;
83
84 /*! @brief External 32KHz input clock frequency.
85 *
86 * The External 32KHz input clock frequency in Hz, used when OSC32KNP in bypass mode, use
87 * the function CLOCK_Set32kClkinFreq to set the value in to clock driver. For
88 * example, if EXTALIN32K input is 32768,
89 * @code
90 * CLOCK_Set32kClkinFreq(32768);
91 * @endcode
92 */
93 extern volatile uint32_t g_32kClkinFreq;
94
95 /*! @brief External MCLK IN clock frequency.
96 *
97 * The MCLK IN clock frequency in Hz, when the clock is setup, use the
98 * function CLOCK_SetMclkFreq to set the value in to clock driver. For example,
99 * if MCLK IN is 16MHz,
100 * @code
101 * CLOCK_SetMclkFreq(160000000);
102 * @endcode
103 */
104 extern volatile uint32_t g_mclkFreq;
105
106 #if defined(FSL_CLOCK_DRIVER_COMPUTE)
107 /*! @brief VDD1(Sense) audio_clk clock frequency.
108 *
109 *NOTE, The compute domain can't read the Sense VDD1 audio_clk selection. The compute domain need call
110 *CLOCK_SetSenseAudioClkFreq() to tell the clock driver the frequncy of current VDD1 audio_clk, and then
111 *CLOCK_GetSenseAudioClkFreq() can return the correct value.
112 * @code
113 * CLOCK_SetSenseAudioClkFreq(24000000);
114 * @endcode
115 */
116 extern volatile uint32_t g_senseAudioClkFreq;
117 #endif
118
119 /*! @brief Clock ip name array for CDOG. */
120 #define CDOG_CLOCKS \
121 { \
122 kCLOCK_Cdog0, kCLOCK_Cdog1, kCLOCK_Cdog2, kCLOCK_Cdog3, kCLOCK_Cdog4 \
123 }
124
125 /*! @brief Clock ip name array for FREQME. */
126 #define FREQME_CLOCKS \
127 { \
128 kCLOCK_Freqme0 \
129 }
130
131 /*! @brief Clock ip name array for GPU. */
132 #define GPU_CLOCKS \
133 { \
134 kCLOCK_Gpu \
135 }
136
137 /*! @brief Clock ip name array for MIPI DSI. */
138 #define MIPI_DSI_HOST_CLOCKS \
139 { \
140 kCLOCK_MipiDsiCtrl \
141 }
142
143 /*! @brief Clock ip name array for LCDIF. */
144 #define LCDIF_CLOCKS \
145 { \
146 kCLOCK_Lcdif \
147 }
148
149 /*! @brief Clock ip name array for SCT. */
150 #define SCT_CLOCKS \
151 { \
152 kCLOCK_Sct0 \
153 }
154
155 /*! @brief Clock ip name array for USB. */
156 #define USB_CLOCKS \
157 { \
158 kCLOCK_Usb0, kCLOCK_Usb1 \
159 }
160
161 /*! @brief Clock ip name array for USBPHY. */
162 #define USBPHY_CLOCKS \
163 { \
164 kCLOCK_Usbphy0, kCLOCK_Usbphy1 \
165 }
166
167 /*! @brief Clock ip name array for FlexSPI */
168 #define XSPI_CLOCKS \
169 { \
170 kCLOCK_Xspi0, kCLOCK_Xspi1, kCLOCK_Xspi2 \
171 }
172
173 /*! @brief Clock ip name array for MMU */
174 #define MMU_CLOCKS \
175 { \
176 kCLOCK_Mmu0, kCLOCK_Mmu1, kCLOCK_Mmu2 \
177 }
178
179 /*! @brief Clock ip name array for CACHE64 */
180 #define CACHE64_CLOCKS \
181 { \
182 kCLOCK_Cache64ctrl0, kCLOCK_Cache64ctrl1 \
183 }
184
185 /*! @brief Clock ip name array for CACHE64_POLSEL */
186 #define CACHE64POLSEL_CLOCKS \
187 { \
188 kCLOCK_Cache64Polsel0, kCLOCK_Cache64Polsel1 \
189 }
190
191 /*! @brief Clock ip name array for ADC. */
192 #define LPADC_CLOCKS \
193 { \
194 kCLOCK_Adc0 \
195 }
196
197 /*! @brief Clock ip name array for SDADC. */
198 #define SDADC_CLOCKS \
199 { \
200 kCLOCK_Sdadc0 \
201 }
202
203 /*! @brief Clock ip name array for ACMP. */
204 #define CMP_CLOCKS \
205 { \
206 kCLOCK_Acmp0 \
207 }
208
209 /*! @brief Clock ip name array for uSDHC */
210 #define USDHC_CLOCKS \
211 { \
212 kCLOCK_Usdhc0, kCLOCK_Usdhc1 \
213 }
214
215 /*! @brief Clock ip name array for WWDT. */
216 #define WWDT_CLOCKS \
217 { \
218 kCLOCK_Wwdt0, kCLOCK_Wwdt1, kCLOCK_Wwdt2, kCLOCK_Wwdt3 \
219 }
220
221 /*! @brief Clock ip name array for UTICK. */
222 #define UTICK_CLOCKS \
223 { \
224 kCLOCK_Utick0, kCLOCK_Utick1 \
225 }
226
227 /*! @brief Clock ip name array for FlexIO. */
228 #define FLEXIO_CLOCKS \
229 { \
230 kCLOCK_Flexio \
231 }
232
233 /*! @brief Clock ip name array for LP_FLEXCOMM. */
234 #define LP_FLEXCOMM_CLOCKS \
235 { \
236 kCLOCK_LPFlexComm0, kCLOCK_LPFlexComm1, kCLOCK_LPFlexComm2, kCLOCK_LPFlexComm3, kCLOCK_LPFlexComm4, \
237 kCLOCK_LPFlexComm5, kCLOCK_LPFlexComm6, kCLOCK_LPFlexComm7, kCLOCK_LPFlexComm8, kCLOCK_LPFlexComm9, \
238 kCLOCK_LPFlexComm10, kCLOCK_LPFlexComm11, kCLOCK_LPFlexComm12, kCLOCK_LPFlexComm13, kCLOCK_IpInvalid, \
239 kCLOCK_IpInvalid, kCLOCK_IpInvalid, kCLOCK_LPFlexComm17, kCLOCK_LPFlexComm18, kCLOCK_LPFlexComm19, \
240 kCLOCK_LPFlexComm20 \
241 }
242 /*! @brief Clock ip name array for LPUART. */
243 #define LPUART_CLOCKS \
244 { \
245 kCLOCK_LPUart0, kCLOCK_LPUart1, kCLOCK_LPUart2, kCLOCK_LPUart3, kCLOCK_LPUart4, kCLOCK_LPUart5, \
246 kCLOCK_LPUart6, kCLOCK_LPUart7, kCLOCK_LPUart8, kCLOCK_LPUart9, kCLOCK_LPUart10, kCLOCK_LPUart11, \
247 kCLOCK_LPUart12, kCLOCK_LPUart13, kCLOCK_IpInvalid, kCLOCK_IpInvalid, kCLOCK_IpInvalid, kCLOCK_LPUart17, \
248 kCLOCK_LPUart18, kCLOCK_LPUart19, kCLOCK_LPUart20 \
249 }
250 /*! @brief Clock ip name array for LPI2C. */
251 #define LPI2C_CLOCKS \
252 { \
253 kCLOCK_LPI2c0, kCLOCK_LPI2c1, kCLOCK_LPI2c2, kCLOCK_LPI2c3, kCLOCK_LPI2c4, kCLOCK_LPI2c5, kCLOCK_LPI2c6, \
254 kCLOCK_LPI2c7, kCLOCK_LPI2c8, kCLOCK_LPI2c9, kCLOCK_LPI2c10, kCLOCK_LPI2c11, kCLOCK_LPI2c12, \
255 kCLOCK_LPI2c13, kCLOCK_IpInvalid, kCLOCK_LPI2c15, kCLOCK_IpInvalid, kCLOCK_LPI2c17, kCLOCK_LPI2c18, \
256 kCLOCK_LPI2c19, kCLOCK_LPI2c20 \
257 }
258 /*! @brief Clock ip name array for LSPI. */
259 #define LPSPI_CLOCKS \
260 { \
261 kCLOCK_LPSpi0, kCLOCK_LPSpi1, kCLOCK_LPSpi2, kCLOCK_LPSpi3, kCLOCK_LPSpi4, kCLOCK_LPSpi5, kCLOCK_LPSpi6, \
262 kCLOCK_LPSpi7, kCLOCK_LPSpi8, kCLOCK_LPSpi9, kCLOCK_LPSpi10, kCLOCK_LPSpi11, kCLOCK_LPSpi12, \
263 kCLOCK_LPSpi13, kCLOCK_LPSpi14, kCLOCK_IpInvalid, kCLOCK_LPSpi16, kCLOCK_LPSpi17, kCLOCK_LPSpi18, \
264 kCLOCK_LPSpi19, kCLOCK_LPSpi20 \
265 }
266 /*! @brief Clock ip name array for SAI. */
267 #define SAI_CLOCKS \
268 { \
269 kCLOCK_Sai0, kCLOCK_Sai1, kCLOCK_Sai2, kCLOCK_Sai3 \
270 }
271
272 /*! @brief Clock ip name array for SEMA */
273 #define SEMA42_CLOCKS \
274 { \
275 kCLOCK_Sema420, kCLOCK_IpInvalid, kCLOCK_IpInvalid, kCLOCK_Sema423, kCLOCK_Sema424 \
276 }
277
278 /*! @brief Clock ip name array for MU */
279 #if defined(FSL_CLOCK_DRIVER_COMPUTE)
280 #ifndef __XTENSA__
281 #define MU_CLOCKS \
282 { \
283 kCLOCK_Mu0, kCLOCK_Mu1, kCLOCK_Mu4 \
284 }
285 #else
286 #define MU_CLOCKS \
287 { \
288 kCLOCK_Mu2, kCLOCK_Mu4 \
289 }
290 #endif /* __XTENSA__ */
291
292 /*! @brief Clock ip name array for DMA. */
293 #define EDMA_CLOCKS \
294 { \
295 kCLOCK_Dma0, kCLOCK_Dma1 \
296 }
297
298 /*! @brief Clock ip name array for SYSPM. */
299 #define SYSPM_CLOCKS \
300 { \
301 kCLOCK_Syspm0, kCLOCK_Syspm1, kCLOCK_IpInvalid, kCLOCK_IpInvalid \
302 }
303
304 /*! @brief Clock ip name array for TRNG. */
305 #define TRNG_CLOCKS \
306 { \
307 kCLOCK_TrngRef \
308 }
309
310 #endif /* FSL_CLOCK_DRIVER_COMPUTE */
311
312 #if defined(FSL_CLOCK_DRIVER_SENSE)
313 #ifndef __XTENSA__
314 #define MU_CLOCKS \
315 { \
316 kCLOCK_Mu1, kCLOCK_Mu2, kCLOCK_Mu3 \
317 }
318 #else
319 #define MU_CLOCKS \
320 { \
321 kCLOCK_Mu0, kCLOCK_Mu3 \
322 }
323 #endif /* __XTENSA__ */
324
325 /*! @brief Clock ip name array for DMA. */
326 #define EDMA_CLOCKS \
327 { \
328 kCLOCK_Dma2, kCLOCK_Dma3 \
329 }
330 #endif /* FSL_CLOCK_DRIVER_SENSE */
331
332 /*! @brief Clock ip name array for CRC. */
333 #define CRC_CLOCKS \
334 { \
335 kCLOCK_Crc0 \
336 }
337
338 #if defined(FSL_CLOCK_DRIVER_COMPUTE)
339 /*! @brief Clock ip name array for GDET. */
340 #define GDET_CLOCKS \
341 { \
342 kCLOCK_Gdet0, kCLOCK_Gdet1, kCLOCK_Gdet2, kCLOCK_Gdet3 \
343 }
344
345 /*! @brief Clock ip name array for GDET_REF. */
346 #define GDET_REF_CLOCKS \
347 { \
348 kCLOCK_Gdet0Ref, kCLOCK_Gdet1Ref, kCLOCK_Gdet2Ref, kCLOCK_Gdet3Ref \
349 }
350 #endif
351 #if defined(FSL_CLOCK_DRIVER_SENSE)
352 /*! @brief Clock ip name array for GDET. */
353 #define GDET_CLOCKS \
354 { \
355 kCLOCK_IpInvalid, kCLOCK_IpInvalid, kCLOCK_Gdet2, kCLOCK_Gdet3 \
356 }
357
358 /*! @brief Clock ip name array for GDET_REF. */
359 #define GDET_REF_CLOCKS \
360 { \
361 kCLOCK_IpInvalid, kCLOCK_IpInvalid, kCLOCK_Gdet2Ref, kCLOCK_Gdet3Ref \
362 }
363 #endif
364
365 /*! @brief Clock ip name array for GPIO. */
366 #define GPIO_CLOCKS \
367 { \
368 kCLOCK_Gpio0, kCLOCK_Gpio1, kCLOCK_Gpio2, kCLOCK_Gpio3, kCLOCK_Gpio4, kCLOCK_Gpio5, kCLOCK_Gpio6, \
369 kCLOCK_Gpio7, kCLOCK_Gpio8, kCLOCK_Gpio9, kCLOCK_Gpio10, kCLOCK_Gpio0, kCLOCK_Gpio1, kCLOCK_Gpio2, \
370 kCLOCK_Gpio3, kCLOCK_Gpio4, kCLOCK_Gpio5, kCLOCK_Gpio6, kCLOCK_Gpio7, kCLOCK_Gpio8, kCLOCK_Gpio9, \
371 kCLOCK_Gpio10 \
372 }
373
374 /*! @brief Clock ip name array for PDM. */
375 #define PDM_CLOCKS \
376 { \
377 kCLOCK_Pdm \
378 }
379
380 /*! @brief Clock ip name array for PINT. */
381 #define PINT_CLOCKS \
382 { \
383 kCLOCK_Pint \
384 }
385
386 /*! @brief Clock ip name array for PNGDEC. */
387 #define PNGDEC_CLOCKS \
388 { \
389 kCLOCK_PngDecoder \
390 }
391
392 /*! @brief Clock ip name array for JPEGDEC. */
393 #define JPEGDEC_CLOCKS \
394 { \
395 kCLOCK_JpgDecoder \
396 }
397
398 /*! @brief Clock ip name array for I3C. */
399 #define I3C_CLOCKS \
400 { \
401 kCLOCK_I3c0, kCLOCK_I3c1, kCLOCK_I3c2, kCLOCK_I3c3 \
402 }
403
404 /*! @brief Clock ip name array for MRT. */
405 #define MRT_CLOCKS \
406 { \
407 kCLOCK_Mrt0, kCLOCK_Mrt1 \
408 }
409
410 /*! @brief Clock ip name array for CT32B. */
411 #define CTIMER_CLOCKS \
412 { \
413 kCLOCK_Ct32b0, kCLOCK_Ct32b1, kCLOCK_Ct32b2, kCLOCK_Ct32b3, kCLOCK_Ct32b4, kCLOCK_Ct32b5, kCLOCK_Ct32b6, \
414 kCLOCK_Ct32b7 \
415 }
416
417 /*! @brief Clock ip name array for OSTIMER. */
418 #define OSTIMER_CLOCKS \
419 { \
420 kCLOCK_OsTimer \
421 }
422
423 /*! @brief Clock ip name array for RTC. */
424 #define RTC_CLOCKS \
425 { \
426 kCLOCK_Rtc \
427 }
428
429 /*! @brief Clock gate name used for CLOCK_EnableClock/CLOCK_DisableClock. */
430 /*------------------------------------------------------------------------------
431 clock_ip_name_t definition:
432 ------------------------------------------------------------------------------*/
433 #define CLK_GATE_REG_OFFSET_SHIFT 8U
434 #define CLK_GATE_REG_OFFSET_MASK 0xFF00U
435 #define CLK_GATE_BIT_SHIFT_SHIFT 0U
436 #define CLK_GATE_BIT_SHIFT_MASK 0x00FFU
437
438 #define CLK_GATE_DEFINE(reg_offset, bit_shift) \
439 ((((reg_offset) << CLK_GATE_REG_OFFSET_SHIFT) & CLK_GATE_REG_OFFSET_MASK) | \
440 (((bit_shift) << CLK_GATE_BIT_SHIFT_SHIFT) & CLK_GATE_BIT_SHIFT_MASK))
441
442 #define CLK_GATE_ABSTRACT_REG_OFFSET(x) (((uint32_t)(x) & CLK_GATE_REG_OFFSET_MASK) >> CLK_GATE_REG_OFFSET_SHIFT)
443 #define CLK_GATE_ABSTRACT_BITS_SHIFT(x) (((uint32_t)(x) & CLK_GATE_BIT_SHIFT_MASK) >> CLK_GATE_BIT_SHIFT_SHIFT)
444
445 #define CLK_CTL0_PSCCTL0 0 /* CLKCTL_COM_VDD2 PSCCTL0 */
446 #define CLK_CTL0_PSCCTL1 1
447 #define CLK_CTL0_PSCCTL2 2
448 #define CLK_CTL0_PSCCTL3 3
449 #define CLK_CTL0_PSCCTL4 4
450 #define CLK_CTL0_PSCCTL5 5
451 #define CLK_CTL1_PSCCTL0 6 /* CLKCTL_VDD1_SENSE PSCCTL0 */
452 #define CLK_CTL1_PSCCTL1 7
453 #define CLK_CTL2_PSCCTL0 8 /* CLKCTL_VDD1_COM PSCCTL0 */
454 #define CLK_CTL3_PSCCTL0 9 /* CLKCTL2 PSCCTL0 */
455 #define CLK_CTL4_PSCCTL0 10 /* CLKCTL_MED_VDD2 PSCCTL0 */
456 #define CLK_CTL4_PSCCTL1 11 /* CLKCTL_MED_VDD2 PSCCTL1 */
457 #if defined(FSL_CLOCK_DRIVER_COMPUTE) || defined(FSL_CLOCK_DRIVER_MEDIA)
458 #define SYSCON0_SEC_CLK_CTRL 12
459 #endif
460 #define SYSCON3_SEC_CLK_CTRL 13
461 #define CLKCTL0_ONE_SRC_CLKSLICE_ENABLE 14
462 #define CLKCTL3_ONE_SRC_CLKSLICE_ENABLE 15
463 #define CLKCTL4_ONE_SRC_CLKSLICE_ENABLE 16
464
465 /*! @brief USB clock source definition. */
466 typedef enum _clock_usb_src
467 {
468 kCLOCK_Usb480M = 0, /*!< Use 480M. */
469 kCLOCK_UsbSrcUnused = (int)0xFFFFFFFFU, /*!< Used when the function does not
470 care the clock source. */
471 } clock_usb_src_t;
472
473 /*! @brief Source of the USB HS PHY. */
474 typedef enum _clock_usb_phy_src
475 {
476 kCLOCK_Usbphy480M = 0, /*!< Use 480M. */
477 } clock_usb_phy_src_t;
478
479 /*! @brief Clock gate name used for CLOCK_EnableClock/CLOCK_DisableClock. */
480 typedef enum _clock_ip_name
481 {
482 kCLOCK_IpInvalid = 0U, /*!< Invalid Ip Name. */
483
484 kCLOCK_Xcache1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL0, 1), /*!< Clock gate name: Code cache*/
485 kCLOCK_Xcache0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL0, 2), /*!< Clock gate name: System cache*/
486 kCLOCK_Ocotp0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL0, 5), /*!< Clock gate name: VDD2 OTP0*/
487 kCLOCK_Sleepcon0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL0, 12), /*!< Clock gate name: SLEEPCON_CMPT*/
488 kCLOCK_Syscon0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL0, 13), /*!< Clock gate name: SYSCON_CMPT*/
489 kCLOCK_Glikey0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL0, 14), /*!< Clock gate name: GLIKEY0*/
490 kCLOCK_Glikey3 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL0, 15), /*!< Clock gate name: GLIKEY3*/
491
492 kCLOCK_TpiuTraceClkin = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 2), /*!< Clock gate name: TPIU_TRACECLKIN*/
493 kCLOCK_SWOTraceClkin = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 3), /*!< Clock gate name: SWO_TRACECLKIN*/
494 kCLOCK_Tsclk = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 4), /*!< Clock gate name: TRACE*/
495 kCLOCK_Dma0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 5), /*!< Clock gate name: DMA0*/
496 kCLOCK_Dma1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 6), /*!< Clock gate name: DMA1*/
497 kCLOCK_PkcRam = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 7), /*!< Clock gate name: PKC RAM */
498 kCLOCK_Pkc = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 8), /*!< Clock gate name: PKC*/
499 kCLOCK_Romcp = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 9), /*!< Clock gate name: ROMCP*/
500 kCLOCK_Xspi0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 10), /*!< Clock gate name: XSPI0*/
501 kCLOCK_Xspi1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 11), /*!< Clock gate name: XSPI1*/
502 kCLOCK_Cache64ctrl0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 12), /*!< Clock gate name: CACHE64_0*/
503 kCLOCK_Cache64ctrl1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 13), /*!< Clock gate name: CACHE64_1*/
504 kCLOCK_Puf = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 14), /*!< Clock gate name: QK_SUBSYS*/
505 kCLOCK_Mmu0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 16), /*!< Clock gate name: MMU0*/
506 kCLOCK_Mmu1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 17), /*!< Clock gate name: MMU1*/
507 kCLOCK_Gpio0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 18), /*!< Clock gate name: GPIO0*/
508 kCLOCK_Gpio1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 19), /*!< Clock gate name: GPIO1*/
509 kCLOCK_Gpio2 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 20), /*!< Clock gate name: GPIO2*/
510 kCLOCK_Gpio3 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 21), /*!< Clock gate name: GPIO3*/
511 kCLOCK_Gpio4 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 22), /*!< Clock gate name: GPIO4*/
512 kCLOCK_Gpio5 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 23), /*!< Clock gate name: GPIO5*/
513 kCLOCK_Gpio6 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 24), /*!< Clock gate name: GPIO6*/
514 kCLOCK_Gpio7 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 25), /*!< Clock gate name: GPIO7*/
515 kCLOCK_Sct0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 26), /*!< Clock gate name: SCT0*/
516 kCLOCK_Cdog0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 27), /*!< Clock gate name: CDOG0*/
517 kCLOCK_Cdog1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 28), /*!< Clock gate name: CDOG1*/
518 kCLOCK_Cdog2 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 29), /*!< Clock gate name: CDOG2*/
519 kCLOCK_LPFlexComm0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 30), /*!< Clock gate name: LP_Flexcomm0*/
520 kCLOCK_LPFlexComm1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 31), /*!< Clock gate name: LP_Flexcomm1*/
521 kCLOCK_LPUart0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 30), /*!< Clock gate name: LPUART0*/
522 kCLOCK_LPUart1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 31), /*!< Clock gate name: LPUART1*/
523 kCLOCK_LPI2c0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 30), /*!< Clock gate name: LPI2C0*/
524 kCLOCK_LPI2c1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 31), /*!< Clock gate name: LPI2C1*/
525 kCLOCK_LPSpi0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 30), /*!< Clock gate name: LPSPI0*/
526 kCLOCK_LPSpi1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL1, 31), /*!< Clock gate name: LPSPI1*/
527 kCLOCK_LPFlexComm2 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 0), /*!< Clock gate name: LP_Flexcomm2*/
528 kCLOCK_LPFlexComm3 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 1), /*!< Clock gate name: LP_Flexcomm3*/
529 kCLOCK_LPFlexComm4 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 2), /*!< Clock gate name: LP_Flexcomm4*/
530 kCLOCK_LPFlexComm5 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 3), /*!< Clock gate name: LP_Flexcomm5*/
531 kCLOCK_LPFlexComm6 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 4), /*!< Clock gate name: LP_Flexcomm6*/
532 kCLOCK_LPFlexComm7 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 5), /*!< Clock gate name: LP_Flexcomm7*/
533 kCLOCK_LPFlexComm8 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 6), /*!< Clock gate name: LP_Flexcomm8*/
534 kCLOCK_LPFlexComm9 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 7), /*!< Clock gate name: LP_Flexcomm9*/
535 kCLOCK_LPFlexComm10 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 8), /*!< Clock gate name: LP_Flexcomm10*/
536 kCLOCK_LPFlexComm11 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 9), /*!< Clock gate name: LP_Flexcomm11*/
537 kCLOCK_LPFlexComm12 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 10), /*!< Clock gate name: LP_Flexcomm12*/
538 kCLOCK_LPFlexComm13 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 11), /*!< Clock gate name: LP_Flexcomm13*/
539 kCLOCK_LPUart2 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 0), /*!< Clock gate name: LPUART2*/
540 kCLOCK_LPUart3 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 1), /*!< Clock gate name: LPUART3*/
541 kCLOCK_LPUart4 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 2), /*!< Clock gate name: LPUART4*/
542 kCLOCK_LPUart5 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 3), /*!< Clock gate name: LPUART5*/
543 kCLOCK_LPUart6 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 4), /*!< Clock gate name: LPUART6*/
544 kCLOCK_LPUart7 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 5), /*!< Clock gate name: LPUART7*/
545 kCLOCK_LPUart8 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 6), /*!< Clock gate name: LPUART8*/
546 kCLOCK_LPUart9 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 7), /*!< Clock gate name: LPUART9*/
547 kCLOCK_LPUart10 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 8), /*!< Clock gate name: LPUART10*/
548 kCLOCK_LPUart11 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 9), /*!< Clock gate name: LPUART11*/
549 kCLOCK_LPUart12 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 10), /*!< Clock gate name: LPUART12*/
550 kCLOCK_LPUart13 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 11), /*!< Clock gate name: LPUART13*/
551 kCLOCK_LPI2c2 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 0), /*!< Clock gate name: LPI2C2*/
552 kCLOCK_LPI2c3 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 1), /*!< Clock gate name: LPI2C3*/
553 kCLOCK_LPI2c4 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 2), /*!< Clock gate name: LPI2C4*/
554 kCLOCK_LPI2c5 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 3), /*!< Clock gate name: LPI2C5*/
555 kCLOCK_LPI2c6 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 4), /*!< Clock gate name: LPI2C6*/
556 kCLOCK_LPI2c7 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 5), /*!< Clock gate name: LPI2C7*/
557 kCLOCK_LPI2c8 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 6), /*!< Clock gate name: LPI2C8*/
558 kCLOCK_LPI2c9 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 7), /*!< Clock gate name: LPI2C9*/
559 kCLOCK_LPI2c10 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 8), /*!< Clock gate name: LPI2C10*/
560 kCLOCK_LPI2c11 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 9), /*!< Clock gate name: LPI2C11*/
561 kCLOCK_LPI2c12 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 10), /*!< Clock gate name: LPI2C12*/
562 kCLOCK_LPI2c13 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 11), /*!< Clock gate name: LPI2C13*/
563 kCLOCK_LPSpi2 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 0), /*!< Clock gate name: LPSPI2*/
564 kCLOCK_LPSpi3 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 1), /*!< Clock gate name: LPSPI3*/
565 kCLOCK_LPSpi4 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 2), /*!< Clock gate name: LPSPI4*/
566 kCLOCK_LPSpi5 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 3), /*!< Clock gate name: LPSPI5*/
567 kCLOCK_LPSpi6 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 4), /*!< Clock gate name: LPSPI6*/
568 kCLOCK_LPSpi7 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 5), /*!< Clock gate name: LPSPI7*/
569 kCLOCK_LPSpi8 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 6), /*!< Clock gate name: LPSPI8*/
570 kCLOCK_LPSpi9 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 7), /*!< Clock gate name: LPSPI9*/
571 kCLOCK_LPSpi10 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 8), /*!< Clock gate name: LPSPI10*/
572 kCLOCK_LPSpi11 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 9), /*!< Clock gate name: LPSPI11*/
573 kCLOCK_LPSpi12 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 10), /*!< Clock gate name: LPSPI12*/
574 kCLOCK_LPSpi13 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 11), /*!< Clock gate name: LPSPI13*/
575 kCLOCK_Sai0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 13), /*!< Clock gate name: SAI0*/
576 kCLOCK_Sai1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 14), /*!< Clock gate name: SAI1*/
577 kCLOCK_Sai2 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 15), /*!< Clock gate name: SAI2*/
578 kCLOCK_I3c0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 16), /*!< Clock gate name: I3C0*/
579 kCLOCK_I3c1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 17), /*!< Clock gate name: I3C1*/
580 kCLOCK_Crc0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 18), /*!< Clock gate name: CRC0*/
581 kCLOCK_Wwdt0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 19), /*!< Clock gate name: WWDT0*/
582 kCLOCK_Wwdt1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 20), /*!< Clock gate name: WWDT1*/
583 kCLOCK_Ct32b0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 21), /*!< Clock gate name: CTIMER0*/
584 kCLOCK_Ct32b1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 22), /*!< Clock gate name: CTIMER1*/
585 kCLOCK_Ct32b2 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 23), /*!< Clock gate name: CTIMER2*/
586 kCLOCK_Ct32b3 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 24), /*!< Clock gate name: CTIMER3*/
587 kCLOCK_Ct32b4 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 25), /*!< Clock gate name: CTIMER4*/
588 kCLOCK_Mrt0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 26), /*!< Clock gate name: Mrt0*/
589 kCLOCK_Utick0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 27), /*!< Clock gate name: Utick0*/
590 kCLOCK_Sema424 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 30), /*!< Clock gate name: SEMA42_4*/
591 kCLOCK_Mu4 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL2, 31), /*!< Clock gate name: MU4*/
592 #if defined(FSL_CLOCK_DRIVER_COMPUTE)
593 kCLOCK_Pint = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL3, 5), /*!< Clock gate name: PINT0*/
594 kCLOCK_InputMux = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL3, 10), /*!< Clock gate name: PMUX_CMPT_SPLITTER*/
595 #endif
596 kCLOCK_Freqme0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL3, 8), /*!< Clock gate name: FREQME0*/
597 kCLOCK_SafoSgi = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL3, 12), /*!< Clock gate name: SAFO_SGI*/
598 kCLOCK_Trace = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL3, 13), /*!< Clock gate name: TRACE*/
599 kCLOCK_Prince0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL3, 15), /*!< Clock gate name: PRINCE0*/
600 kCLOCK_Prince1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL3, 16), /*!< Clock gate name: PRINCE1*/
601 kCLOCK_PrinceExe = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL3, 17), /*!< Clock gate name: PRINCE_EXE*/
602 kCLOCK_Syspm0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL3, 18), /*!< Clock gate name: CMX_PERFMON0*/
603 kCLOCK_Syspm1 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL3, 19), /*!< Clock gate name: CMX_PERFMON1*/
604 kCLOCK_Hifi4 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL4, 0), /*!< Clock gate name: HIFI4*/
605 kCLOCK_Npu0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL5, 0), /*!< Clock gate name: NPU0*/
606 kCLOCK_CompAccessRamArbiter1 =
607 CLK_GATE_DEFINE(CLK_CTL0_PSCCTL5, 2), /*!< Clock gate name: COMP_ACCESS_RAM_ARBITER1*/
608 kCLOCK_Iopctl0 = CLK_GATE_DEFINE(CLK_CTL0_PSCCTL5, 3), /*!< Clock gate name: IOMUXC_VDD2*/
609 kCLOCK_Hifi4AccessRamArbiter1 =
610 CLK_GATE_DEFINE(CLK_CTL0_PSCCTL5, 4), /*!< Clock gate name: HIFI4_ACCESS_RAM_ARBITER1*/
611 kCLOCK_MediaAccessRamArbiter0 =
612 CLK_GATE_DEFINE(CLK_CTL0_PSCCTL5, 5), /*!< Clock gate name: MEDIA_ACCESS_RAM_ARBITER0*/
613
614 kCLOCK_Sleepcon1 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL0, 6), /*!< Clock gate name: SLEEPCONCPU1*/
615 kCLOCK_Syscon1 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL0, 7), /*!< Clock gate name: SYSCONSENSE1*/
616 kCLOCK_SenseAccessRamArbiter0 =
617 CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 0), /*!< Clock gate name: SENSE_ACCESS_RAM_ARBITER0*/
618 kCLOCK_Hifi1 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 1), /*!< Clock gate name: HIFI1*/
619 kCLOCK_Dma2 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 4), /*!< Clock gate name: DMA2*/
620 kCLOCK_Dma3 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 5), /*!< Clock gate name: DMA3*/
621 kCLOCK_LPFlexComm17 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 6), /*!< Clock gate name: LP_Flexcomm17*/
622 kCLOCK_LPFlexComm18 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 7), /*!< Clock gate name: LP_Flexcomm18*/
623 kCLOCK_LPFlexComm19 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 8), /*!< Clock gate name: LP_Flexcomm19*/
624 kCLOCK_LPFlexComm20 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 9), /*!< Clock gate name: LP_Flexcomm20*/
625 kCLOCK_LPI2c17 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 6), /*!< Clock gate name: LPI2C17*/
626 kCLOCK_LPI2c18 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 7), /*!< Clock gate name: LPI2C18*/
627 kCLOCK_LPI2c19 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 8), /*!< Clock gate name: LPI2C19*/
628 kCLOCK_LPI2c20 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 9), /*!< Clock gate name: LPI2C20*/
629 kCLOCK_LPSpi17 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 6), /*!< Clock gate name: LPSPI17*/
630 kCLOCK_LPSpi18 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 7), /*!< Clock gate name: LPSPI18*/
631 kCLOCK_LPSpi19 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 8), /*!< Clock gate name: LPSPI19*/
632 kCLOCK_LPSpi20 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 9), /*!< Clock gate name: LPSPI20*/
633 kCLOCK_LPUart17 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 6), /*!< Clock gate name: LPUART17*/
634 kCLOCK_LPUart18 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 7), /*!< Clock gate name: LPUART18*/
635 kCLOCK_LPUart19 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 8), /*!< Clock gate name: LPUART19*/
636 kCLOCK_LPUart20 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 9), /*!< Clock gate name: LPUART20*/
637 kCLOCK_Sai3 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 10), /*!< Clock gate name: SAI3*/
638 kCLOCK_I3c2 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 11), /*!< Clock gate name: I3C2*/
639 kCLOCK_I3c3 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 12), /*!< Clock gate name: I3C3*/
640 kCLOCK_Gpio8 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 13), /*!< Clock gate name: GPIO8*/
641 kCLOCK_Gpio9 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 14), /*!< Clock gate name: GPIO9*/
642 kCLOCK_Gpio10 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 15), /*!< Clock gate name: GPIO10*/
643 #if defined(FSL_CLOCK_DRIVER_SENSE)
644 kCLOCK_Pint = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 16), /*!< Clock gate name: PINT1*/
645 kCLOCK_InputMux = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 30), /*!< Clock gate name: PMUX_SNS_SPLITTER*/
646 #endif
647 kCLOCK_Ct32b5 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 17), /*!< Clock gate name: CTIMER5*/
648 kCLOCK_Ct32b6 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 18), /*!< Clock gate name: CTIMER6*/
649 kCLOCK_Ct32b7 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 19), /*!< Clock gate name: CTIMER7*/
650 kCLOCK_Mrt1 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 20), /*!< Clock gate name: Mrt1*/
651 kCLOCK_Utick1 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 21), /*!< Clock gate name: Utick1*/
652 kCLOCK_Cdog3 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 22), /*!< Clock gate name: CDOG3*/
653 kCLOCK_Cdog4 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 23), /*!< Clock gate name: CDOG4*/
654 kCLOCK_Mu3 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 24), /*!< Clock gate name: MU3*/
655 kCLOCK_Sema423 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 25), /*!< Clock gate name: SEMA42_3*/
656 kCLOCK_Wwdt2 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 26), /*!< Clock gate name: WWDT2*/
657 kCLOCK_Wwdt3 = CLK_GATE_DEFINE(CLK_CTL1_PSCCTL1, 27), /*!< Clock gate name: WWDT3*/
658
659 kCLOCK_Syscon2 = CLK_GATE_DEFINE(CLK_CTL2_PSCCTL0, 3), /*!< Clock gate name: SYSCON_COMM */
660 kCLOCK_Iopctl2 = CLK_GATE_DEFINE(CLK_CTL2_PSCCTL0, 4), /*!< Clock gate name: IOMUXC_VDDN */
661
662 kCLOCK_Cpu1 = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 0), /*!< Clock gate name: CPU1*/
663 kCLOCK_Mu0 = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 4), /*!< Clock gate name: MU0*/
664 kCLOCK_Mu1 = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 5), /*!< Clock gate name: MU1*/
665 kCLOCK_Mu2 = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 6), /*!< Clock gate name: MU2*/
666 kCLOCK_OsTimer = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 7), /*!< Clock gate name: OsTimer*/
667 kCLOCK_Sema420 = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 8), /*!< Clock gate name: SEMA42_0*/
668 kCLOCK_Sdadc0 = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 9), /*!< Clock gate name: SDADC0*/
669 kCLOCK_Adc0 = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 10), /*!< Clock gate name: SARADC0*/
670 kCLOCK_Acmp0 = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 11), /*!< Clock gate name: Acmp0*/
671 kCLOCK_Pdm = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 12), /*!< Clock gate name: MICFIL(PDM)*/
672 kCLOCK_Glikey4 = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 13), /*!< Clock gate name: GLIKEY_SYSCON1*/
673 kCLOCK_Dbg = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 20), /*!< Clock gate name: DBG*/
674 kCLOCK_Syscon3 = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 21), /*!< Clock gate name: SYSCON_SENSE0*/
675 kCLOCK_Iopctl1 = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 22), /*!< Clock gate name: IOMUXC_VDD1*/
676 kCLOCK_Glikey1 = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 23), /*!< Clock gate name: GLIKEY1*/
677 kCLOCK_LPI2c15 = CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 24), /*!< Clock gate name: LPI2C*/
678 kCLOCK_MediaAccessRamArbiter1 =
679 CLK_GATE_DEFINE(CLK_CTL3_PSCCTL0, 25), /*!< Clock gate name: MEDIA_ACCESS_RAM_ARBITER1*/
680 kCLOCK_Axi0 = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 0), /*!< Clock gate name: AXI0*/
681 kCLOCK_Gpu = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 2), /*!< Clock gate name: VGPU*/
682 kCLOCK_MipiDsiCtrl = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 4), /*!< Clock gate name: MIPIDSI*/
683 kCLOCK_LPSpi16 = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 5), /*!< Clock gate name: LPSPI16*/
684 kCLOCK_LPSpi14 = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 6), /*!< Clock gate name: LPSPI14*/
685 kCLOCK_Xspi2 = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 8), /*!< Clock gate name: XSPI2*/
686 kCLOCK_Mmu2 = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 11), /*!< Clock gate name: MMU2*/
687 kCLOCK_Glikey5 = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 13), /*!< Clock gate name: GLIKEY_SYSCON2*/
688 kCLOCK_Flexio = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 15), /*!< Clock gate name: FLEXIO0*/
689 kCLOCK_Lcdif = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 22), /*!< Clock gate name: LCDIF(DCN)*/
690 kCLOCK_Syscon4 = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 23), /*!< Clock gate name: SYSCONMEDIA*/
691 kCLOCK_JpgDecoder = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 24), /*!< Clock gate name: JPG_DECODER*/
692 kCLOCK_PngDecoder = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 25), /*!< Clock gate name: PNG_DECODER*/
693 kCLOCK_Ezhv = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 26), /*!< Clock gate name: EZHV*/
694 kCLOCK_AxbsEzh = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 28), /*!< Clock gate name: AXBS_EZH*/
695 kCLOCK_Glikey2 = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL0, 29), /*!< Clock gate name: GLIKEY2*/
696 kCLOCK_Usb0 = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL1, 0), /*!< Clock gate name: USB0*/
697 kCLOCK_Usb1 = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL1, 2), /*!< Clock gate name: USB1*/
698 kCLOCK_Usdhc0 = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL1, 4), /*!< Clock gate name: USHDC0*/
699 kCLOCK_Usdhc1 = CLK_GATE_DEFINE(CLK_CTL4_PSCCTL1, 5), /*!< Clock gate name: USDHC1*/
700
701 /* Control bits in SYSCON. */
702 #if defined(FSL_CLOCK_DRIVER_COMPUTE)
703 kCLOCK_Gdet0Ref = CLK_GATE_DEFINE(SYSCON0_SEC_CLK_CTRL, 0), /*!< Clock gate name: GDET0 Reference clock*/
704 kCLOCK_Gdet1Ref = CLK_GATE_DEFINE(SYSCON0_SEC_CLK_CTRL, 1), /*!< Clock gate name: GDET1 Reference clock*/
705 kCLOCK_TrngRef = CLK_GATE_DEFINE(SYSCON0_SEC_CLK_CTRL, 2), /*!< Clock gate name: TRNG Reference clock*/
706 kCLOCK_Els = CLK_GATE_DEFINE(SYSCON0_SEC_CLK_CTRL, 3), /*!< Clock gate name: ELS clock*/
707 kCLOCK_ItrcRef = CLK_GATE_DEFINE(SYSCON0_SEC_CLK_CTRL, 4), /*!< Clock gate name: ITRC Reference clock*/
708
709 kCLOCK_Gdet0 = CLK_GATE_DEFINE(CLKCTL0_ONE_SRC_CLKSLICE_ENABLE, 0U), /*!< Clock gate name: GDET0. */
710 kCLOCK_Gdet1 = CLK_GATE_DEFINE(CLKCTL0_ONE_SRC_CLKSLICE_ENABLE, 1U), /*!< Clock gate name: GDET1. */
711 #endif
712 kCLOCK_Gdet2Ref = CLK_GATE_DEFINE(SYSCON3_SEC_CLK_CTRL, 0), /*!< Clock gate name: GDET2 Reference clock*/
713 kCLOCK_Gdet3Ref = CLK_GATE_DEFINE(SYSCON3_SEC_CLK_CTRL, 1), /*!< Clock gate name: GDET3 Reference clock*/
714
715 kCLOCK_Rtc = CLK_GATE_DEFINE(CLKCTL3_ONE_SRC_CLKSLICE_ENABLE, 0U), /*!< RTC functional clock gating. */
716 kCLOCK_Gdet2 = CLK_GATE_DEFINE(CLKCTL3_ONE_SRC_CLKSLICE_ENABLE, 1U), /*!< GDET2 functional clock gating. */
717 kCLOCK_Gdet3 = CLK_GATE_DEFINE(CLKCTL3_ONE_SRC_CLKSLICE_ENABLE, 2U), /*!< GDET3 functional clock gating. */
718 kCLOCK_UsbphyRef = CLK_GATE_DEFINE(CLKCTL4_ONE_SRC_CLKSLICE_ENABLE, 0U), /*!< USBPHY referrence clock gating. */
719 } clock_ip_name_t;
720
721 /*! @brief Clock name used to get clock frequency. */
722 typedef enum _clock_name
723 {
724 kCLOCK_CoreSysClk, /*!< Core clock (aka system clock) */
725 kCLOCK_BusClk, /*!< Bus clock (AHB/APB clock, aka HCLK) */
726 kCLOCK_MclkClk, /*!< MCLK, to MCLK pin */
727 #if defined(FSL_CLOCK_DRIVER_COMPUTE)
728 kCLOCK_Vdd2ClockOutClk, /*!< VDD2 CLOCKOUT */
729 kCLOCK_Xspi0Clk, /*!< XSPI0 */
730 kCLOCK_Xspi1Clk, /*!< XSPI1 */
731 kCLOCK_Wdt0Clk, /*!< Watchdog0 */
732 kCLOCK_Wdt1Clk, /*!< Watchdog1 */
733 kCLOCK_Hifi4CpuClk, /*!< Hifi4 DSP clock */
734 kCLOCK_LPFlexComm0Clk, /*!< Flexcomm0Clock */
735 kCLOCK_LPFlexComm1Clk, /*!< Flexcomm1Clock */
736 kCLOCK_LPFlexComm2Clk, /*!< Flexcomm2Clock */
737 kCLOCK_LPFlexComm3Clk, /*!< Flexcomm3Clock */
738 kCLOCK_LPFlexComm4Clk, /*!< Flexcomm4Clock */
739 kCLOCK_LPFlexComm5Clk, /*!< Flexcomm5Clock */
740 kCLOCK_LPFlexComm6Clk, /*!< Flexcomm6Clock */
741 kCLOCK_LPFlexComm7Clk, /*!< Flexcomm7Clock */
742 kCLOCK_LPFlexComm8Clk, /*!< Flexcomm8Clock */
743 kCLOCK_LPFlexComm9Clk, /*!< Flexcomm9Clock */
744 kCLOCK_LPFlexComm10Clk, /*!< Flexcomm10Clock */
745 kCLOCK_LPFlexComm11Clk, /*!< Flexcomm11Clock */
746 kCLOCK_LPFlexComm12Clk, /*!< Flexcomm12Clock */
747 kCLOCK_LPFlexComm13Clk, /*!< Flexcomm13Clock */
748 #else
749 kCLOCK_Wdt2Clk, /*!< Watchdog1 */
750 kCLOCK_Wdt3Clk, /*!< Watchdog1 */
751 kCLOCK_Hifi1CpuClk, /*!< Hifi1 DSP clock */
752 kCLOCK_LPFlexComm17Clk, /*!< Flexcomm17Clock */
753 kCLOCK_LPFlexComm18Clk, /*!< Flexcomm18Clock */
754 kCLOCK_LPFlexComm19Clk, /*!< Flexcomm19Clock */
755 kCLOCK_LPFlexComm20Clk, /*!< Flexcomm20Clock */
756 #endif
757 kCLOCK_Vdd1ClockOutClk, /*!< VDD1 CLOCKOUT */
758 kCLOCK_AdcClk, /*!< ADC */
759 kCLOCK_Xspi2Clk, /*!< XSPI1 */
760 kCLOCK_SctClk, /*!< SCT */
761 kCLOCK_SystickClk, /*!< Systick */
762 kCLOCK_Sdio0Clk, /*!< SDIO0 */
763 kCLOCK_Sdio1Clk, /*!< SDIO1 */
764 kCLOCK_I3cClk, /*!< I3C */
765 kCLOCK_Usb0Clk, /*!< USB0 */
766 kCLOCK_Usb1Clk, /*!< USB1 */
767 kCLOCK_PdmClk, /*!< Digital Mic clock */
768 kCLOCK_AcmpClk, /*!< Acmp clock */
769 kCLOCK_FlexioClk, /*!< FlexIO */
770 kCLOCK_LPSpi14Clk, /*!< LPSPI14 */
771 kCLOCK_LPI2c15Clk, /*!< LPI2C15 */
772 kCLOCK_LPSpi16Clk, /*!< LPSPI16 */
773 kCLOCK_VgpuClk, /*!< VGPU Core */
774 kCLOCK_LcdifClk, /*!< LCDIF Clock */
775 kCLOCK_MipiDphyClk, /*!< MIPI D-PHY Bit Clock */
776 kCLOCK_MipiDphyEscRxClk, /*!< MIPI D-PHY RX Clock */
777 kCLOCK_MipiDphyEscTxClk, /*!< MIPI D-PHY TX Clock */
778 } clock_name_t;
779
780 /*! @brief Clock Mux Switches
781 * The encoding is as follows each connection identified is 32bits wide
782 * starting from LSB upwards
783 *
784 * [ 31-29 14 12:11 10:0 ]
785 [CLKCTL index]: [Disable MUX output]: [MUXA choice]:[MUXA offset]. MUX offset 0 means end of
786 descriptor.
787 */
788 #define CLK_MUX_INST_INDEX_SHIFT 29U
789 #define CLK_MUX_CHOICE_OFFSET_SHIFT 11U
790 #define CLK_MUX_DISABLE_OUTPUT_MASK (1UL << 14U)
791
792 /* CLKCTL0 CLKCTL_COM_VDD2*/
793 #if defined(FSL_CLOCK_DRIVER_COMPUTE)
794 #define CMPTMAINCLKDIV_OFFSET 0x400
795 #define CMPTBASECLKSEL_OFFSET 0x420
796 #define DSPBASECLKSEL_OFFSET 0x424
797 #define VDD2COMBASECLKSEL_OFFSET 0x428
798 #define MAINCLKSEL_OFFSET 0x434
799 #define DSPCPUCLKDIV_OFFSET 0x440
800 #define DSPCPUCLKSEL_OFFSET 0x444
801 #define RAMCLKSEL_OFFSET 0x450
802 #define RAMCLKDIV_OFFSET 0x45C
803 #define TPIUFCLKSEL_OFFSET 0x560
804 #define TPIUCLKDIV_OFFSET 0x564
805 #define XSPI0FCLKSEL_OFFSET 0x600
806 #define XSPI0FCLKDIV_OFFSET 0x604
807 #define XSPI1FCLKSEL_OFFSET 0x620
808 #define XSPI1FCLKDIV_OFFSET 0x624
809 #define SCTFCLKSEL_OFFSET 0x640
810 #define SCTFCLKDIV_OFFSET 0x644
811 #define UTICK0FCLKSEL_OFFSET 0x700
812 #define UTICK0CLKDIV_OFFSET 0x704
813 #define WWDT0FCLKSEL_OFFSET 0x720
814 #define WWDT1FCLKSEL_OFFSET 0x740
815 #define SYSTICKFCLKSEL_OFFSET 0x760
816 #define SYSTICKFCLKDIV_OFFSET 0x764
817 #define FCCLK0SEL_OFFSET 0x800
818 #define FC0FCLKSEL_OFFSET 0x808
819 #define FCCLK1SEL_OFFSET 0x820
820 #define FC1FCLKSEL_OFFSET 0x828
821 #define FCCLK2SEL_OFFSET 0x840
822 #define FC2FCLKSEL_OFFSET 0x848
823 #define FCCLK3SEL_OFFSET 0x860
824 #define FC3FCLKSEL_OFFSET 0x868
825 #define FC4FCLKSEL_OFFSET 0x888
826 #define FC5FCLKSEL_OFFSET 0x8A8
827 #define FC6FCLKSEL_OFFSET 0x8C8
828 #define FC7FCLKSEL_OFFSET 0x8E8
829 #define FC8FCLKSEL_OFFSET 0x908
830 #define FC9FCLKSEL_OFFSET 0x928
831 #define FC10FCLKSEL_OFFSET 0x948
832 #define FC11FCLKSEL_OFFSET 0x968
833 #define FC12FCLKSEL_OFFSET 0x988
834 #define FC13FCLKSEL_OFFSET 0x9A8
835 #define FCCLK0DIV_OFFSET 0x804
836 #define FCCLK1DIV_OFFSET 0x824
837 #define FCCLK2DIV_OFFSET 0x844
838 #define FCCLK3DIV_OFFSET 0x864
839 #define SAI012FCLKSEL_OFFSET 0x9C8
840 #define SAI012CLKDIV_OFFSET 0x9CC
841 #define CTIMER0CLKDIV_OFFSET 0xA00
842 #define CTIMER1CLKDIV_OFFSET 0xA04
843 #define CTIMER2CLKDIV_OFFSET 0xA08
844 #define CTIMER3CLKDIV_OFFSET 0xA0C
845 #define CTIMER4CLKDIV_OFFSET 0xA10
846 #define CTIMER0FCLKSEL_OFFSET 0xAA0
847 #define CTIMER1FCLKSEL_OFFSET 0xAA4
848 #define CTIMER2FCLKSEL_OFFSET 0xAA8
849 #define CTIMER3FCLKSEL_OFFSET 0xAAC
850 #define CTIMER4FCLKSEL_OFFSET 0xAB0
851 #define TRNGFCLKSEL_OFFSET 0xAC0
852 #define TRNGFCLKDIV_OFFSET 0xAC4
853 #define I3C01FCLKSEL_OFFSET 0xB00
854 #define I3C01PCLKSEL_OFFSET 0xB04
855 #define I3C01PCLKDIV_OFFSET 0xB08
856 #define I3C01FCLKDIV_OFFSET 0xB10
857 #define CLKOUTCLKSEL_OFFSET 0xB20
858 #define CLKOUTCLKDIV_OFFSET 0xB24
859 #define AUDIOVDD2CLKSEL_OFFSET 0xB30
860
861 #else
862
863 #define SENSEBASECLKSEL_OFFSET 0x438
864 #define SENSEDSPCPUCLKDIV_OFFSET 0x440
865 #define SENSEDSPCPUCLKSEL_OFFSET 0x444
866 #define SAI3FCLKSEL_OFFSET 0x500
867 #define SAI3CLKDIV_OFFSET 0x504
868 #define UTICK1FCLKSEL_OFFSET 0x700
869 #define UTICK1CLKDIV_OFFSET 0x704
870 #define WWDT2FCLKSEL_OFFSET 0x720
871 #define WWDT3FCLKSEL_OFFSET 0x740
872 #define SYSTICKFCLKSEL_OFFSET 0x760
873 #define SYSTICKFCLKDIV_OFFSET 0x764
874 #define CTIMER5FCLKSEL_OFFSET 0x7A0
875 #define CTIMER6FCLKSEL_OFFSET 0x7A4
876 #define CTIMER7FCLKSEL_OFFSET 0x7A8
877 #define CTIMER5CLKDIV_OFFSET 0x7B0
878 #define CTIMER6CLKDIV_OFFSET 0x7B4
879 #define CTIMER7CLKDIV_OFFSET 0x7B8
880 #define I3C23FCLKSEL_OFFSET 0x800
881 #define I3C23FCLKDIV_OFFSET 0x810
882 #define FC17FCLKSEL_OFFSET 0xA00
883 #define FC18FCLKSEL_OFFSET 0xA20
884 #define FC19FCLKSEL_OFFSET 0xA40
885 #define FC20FCLKSEL_OFFSET 0xA60
886 #define FC17FCLKDIV_OFFSET 0xA04
887 #define FC18FCLKDIV_OFFSET 0xA24
888 #define FC19FCLKDIV_OFFSET 0xA44
889 #define FC20FCLKDIV_OFFSET 0xA64
890 #define AUDIOVDD1CLKSEL_OFFSET 0xAA0
891 #endif
892
893 /* CLKCTL2 */
894 #define USBCLKSRC24MCLKSEL_OFFSET 0x10C
895 #define COMMONVDDNCLKSEL_OFFSET 0xA4
896 #define COMMONVDDNCLKDIV_OFFSET 0xAC
897 #define USBCLKSRC24MCLKSEL_OFFSET 0x10C
898 #define COMNBASECLKSEL_OFFSET 0x110
899 #define EUSBCLKSRC24MCLKSEL_OFFSET 0x11C
900 #define MAINPLL0CLKSEL_OFFSET 0x200
901 #define MAINPLL0LOCKTIMEDIV2_OFFSET 0x20C
902 #define AUDIOPLL0CLKSEL_OFFSET 0x400
903 #define AUDIOPLL0LOCKTIMEDIV2_OFFSET 0x40C
904
905 /* CLKCTL3 CLKCTL_VDD1_COM */
906 #define SENSEMAINCLKDIV_OFFSET 0x400
907 #define SENSE_MAINCLKSEL_OFFSET 0x434
908 #define SENSERAMCLKSEL_OFFSET 0x450
909 #define SENSERAMCLKDIV_OFFSET 0x45C
910 #define OSEVENTTFCLKSEL_OFFSET 0x480
911 #define OSEVENTFCLKDIV_OFFSET 0x484
912 #define SDADCFCLKSEL_OFFSET 0x600
913 #define SDADCFCLKDIV_OFFSET 0x604
914 #define SARADCFCLKSEL_OFFSET 0x620
915 #define SARADCFCLKDIV_OFFSET 0x624
916 #define WAKE32KCLKSEL_OFFSET 0x750
917 #define A32KHZWAKECLKDIV_OFFSET 0x754
918 #define MICFIL0FCLKSEL_OFFSET 0x780
919 #define MICFIL0FCLKDIV_OFFSET 0x784
920 #define LPI2CFCLKSEL_OFFSET 0x788
921 #define LPI2CFCLKDIV_OFFSET 0x78C
922 #define SENSE_CLKOUTCLKSEL_OFFSET 0x800
923 #define SENSE_CLKOUTCLKDIV_OFFSET 0x804
924
925 /* CLKCTL4 CLKCTL_MED_VDD2 */
926 #define MEDIAVDDNCLKSEL_OFFSET 0xA4
927 #define MEDIAVDDNCLKDIV_OFFSET 0xAC
928 #define MEDIAMAINCLKSEL_OFFSET 0x104
929 #define MEDIAMAINCLKDIV_OFFSET 0x10C
930 #define MDNBASECLKSEL_OFFSET 0x110
931 #define MD2BASECLKSEL_OFFSET 0x114
932 #define XSPI2FCLKSEL_OFFSET 0x200
933 #define XSPI2FCLKDIV_OFFSET 0x204
934 #define USBFCLKSEL_OFFSET 0x220
935 #define EUSBFCLKSEL_OFFSET 0x240
936 #define SDIO0FCLKSEL_OFFSET 0x260
937 #define SDIO0FCLKDIV_OFFSET 0x264
938 #define SDIO1FCLKSEL_OFFSET 0x280
939 #define SDIO1FCLKDIV_OFFSET 0x284
940 #define DPHYCLKSEL_OFFSET 0x300
941 #define DPHYCLKDIV_OFFSET 0x304
942 #define DPHYESCCLKSEL_OFFSET 0x308
943 #define DPHYESCRXCLKDIV_OFFSET 0x30C
944 #define DPHYESCTXCLKDIV_OFFSET 0x310
945 #define VGPUCLKSEL_OFFSET 0x320
946 #define VGPUCLKDIV_OFFSET 0x324
947 #define LPSPI14CLKSEL_OFFSET 0x328
948 #define LPSPI14CLKDIV_OFFSET 0x32C
949 #define LPSPI16CLKSEL_OFFSET 0x330
950 #define LPSPI16CLKDIV_OFFSET 0x334
951 #define FLEXIOCLKSEL_OFFSET 0x338
952 #define FLEXIOCLKDIV_OFFSET 0x33C
953 #define LCDIFPIXELCLKSEL_OFFSET 0x340
954 #define LCDIFPIXELCLKDIV_OFFSET 0x344
955 #define LOWFREQCLKDIV_OFFSET 0x700
956
957 #define CLKCTL0_INDEX (0UL << CLK_MUX_INST_INDEX_SHIFT)
958 #define CLKCTL1_INDEX (1UL << CLK_MUX_INST_INDEX_SHIFT)
959 #define CLKCTL2_INDEX (2UL << CLK_MUX_INST_INDEX_SHIFT)
960 #define CLKCTL3_INDEX (3UL << CLK_MUX_INST_INDEX_SHIFT)
961 #define CLKCTL4_INDEX (4UL << CLK_MUX_INST_INDEX_SHIFT)
962
963 #define CLKCTL0_TUPLE_MUXA(reg, choice) ((((reg) >> 2U) & 0x7FFU) | (((choice) & 0x3U) << CLK_MUX_CHOICE_OFFSET_SHIFT))
964 #define CLKCTL1_TUPLE_MUXA(reg, choice) \
965 (CLKCTL1_INDEX | (((reg) >> 2U) & 0x7FFU) | (((choice) & 0x3U) << CLK_MUX_CHOICE_OFFSET_SHIFT))
966 #define CLKCTL2_TUPLE_MUXA(reg, choice) \
967 (CLKCTL2_INDEX | (((reg) >> 2U) & 0x7FFU) | (((choice) & 0x3U) << CLK_MUX_CHOICE_OFFSET_SHIFT))
968 #define CLKCTL3_TUPLE_MUXA(reg, choice) \
969 (CLKCTL3_INDEX | (((reg) >> 2U) & 0x7FFU) | (((choice) & 0x3U) << CLK_MUX_CHOICE_OFFSET_SHIFT))
970 #define CLKCTL4_TUPLE_MUXA(reg, choice) \
971 (CLKCTL4_INDEX | (((reg) >> 2U) & 0x7FFU) | (((choice) & 0x3U) << CLK_MUX_CHOICE_OFFSET_SHIFT))
972 /*! Macro for gated clock mux */
973 #define CLKCTL0_TUPLE_MUXA_NONE(reg, choice) (CLKCTL0_TUPLE_MUXA(reg, choice) | CLK_MUX_DISABLE_OUTPUT_MASK)
974 #define CLKCTL1_TUPLE_MUXA_NONE(reg, choice) (CLKCTL1_TUPLE_MUXA(reg, choice) | CLK_MUX_DISABLE_OUTPUT_MASK)
975 #define CLKCTL2_TUPLE_MUXA_NONE(reg, choice) (CLKCTL2_TUPLE_MUXA(reg, choice) | CLK_MUX_DISABLE_OUTPUT_MASK)
976 #define CLKCTL3_TUPLE_MUXA_NONE(reg, choice) (CLKCTL3_TUPLE_MUXA(reg, choice) | CLK_MUX_DISABLE_OUTPUT_MASK)
977 #define CLKCTL4_TUPLE_MUXA_NONE(reg, choice) (CLKCTL4_TUPLE_MUXA(reg, choice) | CLK_MUX_DISABLE_OUTPUT_MASK)
978
979 #define CLKCTL_TUPLE_REG(base, tuple) ((volatile uint32_t *)(((uint32_t)(base)) + (((uint32_t)(tuple) & 0x7FFU) << 2U)))
980 #define CLKCTL_TUPLE_SEL(tuple) (((uint32_t)(tuple) >> CLK_MUX_CHOICE_OFFSET_SHIFT) & 0x3U)
981
982 /*!
983 * @brief The enumerator of clock attach Id for multi sources clock slices. Not all Muxer has MUX output enable control,
984 * if no mux output enable control, the mux output will be always enabled.
985 */
986 typedef enum _clock_attach_id
987 {
988 #if defined(FSL_CLOCK_DRIVER_COMPUTE)
989 kFRO1_DIV3_to_COMPUTE_BASE =
990 CLKCTL0_TUPLE_MUXA(CMPTBASECLKSEL_OFFSET, 0), /*!< Attach Fro1 Divided-by-3 to Compute Base Clock. */
991 kFRO1_DIV1_to_COMPUTE_BASE =
992 CLKCTL0_TUPLE_MUXA(CMPTBASECLKSEL_OFFSET, 1), /*!< Attach Fro1 Divided-by-1 to Compute Base Clock. */
993 kFRO0_DIV3_to_COMPUTE_BASE =
994 CLKCTL0_TUPLE_MUXA(CMPTBASECLKSEL_OFFSET, 2), /*!< Attach Fro0 Divided-by-3 to Compute Base Clock. */
995 kLPOSC_to_COMPUTE_BASE = CLKCTL0_TUPLE_MUXA(CMPTBASECLKSEL_OFFSET, 3), /*!< Attach LPOSC to Compute Base Clock. */
996
997 kFRO1_DIV3_to_DSP_BASE =
998 CLKCTL0_TUPLE_MUXA(DSPBASECLKSEL_OFFSET, 0), /*!< Attach Fro1 Divided-by-3 to DSP Base Clock. */
999 kFRO1_DIV1_to_DSP_BASE =
1000 CLKCTL0_TUPLE_MUXA(DSPBASECLKSEL_OFFSET, 1), /*!< Attach Fro1 Divided-by-1 to DSP Base Clock. */
1001 kFRO0_DIV3_to_DSP_BASE =
1002 CLKCTL0_TUPLE_MUXA(DSPBASECLKSEL_OFFSET, 2), /*!< Attach Fro0 Divided-by-3 to DSP Base Clock. */
1003 kLPOSC_to_DSP_BASE = CLKCTL0_TUPLE_MUXA(DSPBASECLKSEL_OFFSET, 3), /*!< Attach LPOSC to DSP Base Clock. */
1004
1005 kFRO1_DIV3_to_COMMON_VDD2_BASE =
1006 CLKCTL0_TUPLE_MUXA(VDD2COMBASECLKSEL_OFFSET, 0), /*!< Attach Fro1 Divided-by-3 to VDD2_COM Base Clock. */
1007 kFRO1_DIV1_to_COMMON_VDD2_BASE =
1008 CLKCTL0_TUPLE_MUXA(VDD2COMBASECLKSEL_OFFSET, 1), /*!< Attach Fro1 Divided-by-1 to VDD2_COM Base Clock. */
1009 kFRO0_DIV3_to_COMMON_VDD2_BASE =
1010 CLKCTL0_TUPLE_MUXA(VDD2COMBASECLKSEL_OFFSET, 2), /*!< Attach Fro0 Divided-by-3 to VDD2_COM Base Clock. */
1011 kLPOSC_to_COMMON_VDD2_BASE =
1012 CLKCTL0_TUPLE_MUXA(VDD2COMBASECLKSEL_OFFSET, 3), /*!< Attach LPOSC to VDD2_COM Base Clock. */
1013
1014 kCOMPUTE_BASE_to_COMPUTE_MAIN =
1015 CLKCTL0_TUPLE_MUXA(MAINCLKSEL_OFFSET, 0), /*!< Attach Compute base clock to Compute Main Clock. */
1016 kMAIN_PLL_PFD0_to_COMPUTE_MAIN =
1017 CLKCTL0_TUPLE_MUXA(MAINCLKSEL_OFFSET, 1), /*!< Attach MAIN PLL PFD0 to Compute Main Clock. */
1018 kFRO0_DIV1_to_COMPUTE_MAIN =
1019 CLKCTL0_TUPLE_MUXA(MAINCLKSEL_OFFSET, 2), /*!< Attach FRO0 Max clock to Compute Main Clock. */
1020 kAUDIO_PLL_PFD1_to_COMPUTE_MAIN =
1021 CLKCTL0_TUPLE_MUXA(MAINCLKSEL_OFFSET, 3), /*!< Attach AUDIO_PLL_PFD1 to Compute Main Clock. */
1022
1023 kDSP_BASE_to_DSP = CLKCTL0_TUPLE_MUXA(DSPCPUCLKSEL_OFFSET, 0), /*!< Attach DSP base clock to DSP Clock. */
1024 kMAIN_PLL_PFD0_to_DSP = CLKCTL0_TUPLE_MUXA(DSPCPUCLKSEL_OFFSET, 1), /*!< Attach MAIN PLL PFD0 to DSP Clock. */
1025 kFRO0_DIV1_to_DSP = CLKCTL0_TUPLE_MUXA(DSPCPUCLKSEL_OFFSET, 2), /*!< Attach FRO0 Max clock to DSP Clock. */
1026 kMAIN_PLL_PFD1_to_DSP = CLKCTL0_TUPLE_MUXA(DSPCPUCLKSEL_OFFSET, 3), /*!< Attach MAIN PLL PFD1 to DSP Clock. */
1027 kNONE_to_DSP = CLKCTL0_TUPLE_MUXA_NONE(DSPCPUCLKSEL_OFFSET, 0), /*!< Attach NONE to DSP Clock. */
1028
1029 kCOMMON_VDD2_BASE_to_RAM = CLKCTL0_TUPLE_MUXA(RAMCLKSEL_OFFSET, 0), /*!< Attach baseclk_com2 clock to RAM Clock. */
1030 kMAIN_PLL_PFD0_to_RAM = CLKCTL0_TUPLE_MUXA(RAMCLKSEL_OFFSET, 1), /*!< Attach Main PLL PFD0 to RAM Clock. */
1031 kFRO0_DIV1_to_RAM = CLKCTL0_TUPLE_MUXA(RAMCLKSEL_OFFSET, 2), /*!< Attach FRO0 Max to RAM Clock. */
1032 kFRO1_DIV1_to_RAM = CLKCTL0_TUPLE_MUXA(RAMCLKSEL_OFFSET, 3), /*!< Attach FRO1 Max to RAM Clock. */
1033
1034 kCOMPUTE_BASE_to_TPIU = CLKCTL0_TUPLE_MUXA(
1035 TPIUFCLKSEL_OFFSET, 0), /*!< Attach Compute base clock to TPIU (TRACE_RT700) Functional Clock. */
1036 kMAIN_PLL_PFD0_to_TPIU =
1037 CLKCTL0_TUPLE_MUXA(TPIUFCLKSEL_OFFSET, 1), /*!< Attach main_pll_pfd0 to TPIU (TRACE_RT700) Functional Clock. */
1038 kFRO0_DIV1_to_TPIU =
1039 CLKCTL0_TUPLE_MUXA(TPIUFCLKSEL_OFFSET, 2), /*!< Attach FRO0 Max to TPIU (TRACE_RT700) Functional Clock. */
1040 kFRO0_DIV6_to_TPIU =
1041 CLKCTL0_TUPLE_MUXA(TPIUFCLKSEL_OFFSET, 3), /*!< Attach OSC_CLK clock to TPIU (TRACE_RT700) Functional Clock. */
1042 kNONE_to_TPIU =
1043 CLKCTL0_TUPLE_MUXA_NONE(TPIUFCLKSEL_OFFSET, 0), /*!< Attach NONE to TPIU (TRACE_RT700) Functional Clock. */
1044
1045 kCOMMON_BASE_to_XSPI0 =
1046 CLKCTL0_TUPLE_MUXA(XSPI0FCLKSEL_OFFSET, 0), /*!< Attach Common base clock to XSPI0 Functional Clock. */
1047 kAUDIO_PLL_PFD0_to_XSPI0 =
1048 CLKCTL0_TUPLE_MUXA(XSPI0FCLKSEL_OFFSET, 1), /*!< Attach Audio PLL PFD0 clock to XSPI0 Functional Clock. */
1049 kFRO0_DIV1_to_XSPI0 =
1050 CLKCTL0_TUPLE_MUXA(XSPI0FCLKSEL_OFFSET, 2), /*!< Attach FRO0 Max clock to XSPI0 Functional Clock. */
1051 kMAIN_PLL_PFD1_to_XSPI0 =
1052 CLKCTL0_TUPLE_MUXA(XSPI0FCLKSEL_OFFSET, 3), /*!< Attach MAIN PLL PFD1 clock to XSPI0 Functional Clock. */
1053 kNONE_to_XSPI0 = CLKCTL0_TUPLE_MUXA_NONE(XSPI0FCLKSEL_OFFSET, 0), /*!< Attach NONE to XSPI0 Functional Clock. */
1054
1055 kCOMMON_BASE_to_XSPI1 =
1056 CLKCTL0_TUPLE_MUXA(XSPI1FCLKSEL_OFFSET, 0), /*!< Attach Common base clock to XSPI1 Functional Clock. */
1057 kAUDIO_PLL_PFD1_to_XSPI1 =
1058 CLKCTL0_TUPLE_MUXA(XSPI1FCLKSEL_OFFSET, 1), /*!< Attach Audio PLL PFD1 clock to XSPI1 Functional Clock. */
1059 kFRO0_DIV1_to_XSPI1 =
1060 CLKCTL0_TUPLE_MUXA(XSPI1FCLKSEL_OFFSET, 2), /*!< Attach FRO0 Max clock to XSPI1 Functional Clock. */
1061 kMAIN_PLL_PFD2_to_XSPI1 =
1062 CLKCTL0_TUPLE_MUXA(XSPI1FCLKSEL_OFFSET, 3), /*!< Attach MAIN PLL PFD2 clock to XSPI1 Functional Clock. */
1063 kNONE_to_XSPI1 = CLKCTL0_TUPLE_MUXA_NONE(XSPI1FCLKSEL_OFFSET, 2), /*!< Attach NONE to XSPI1 Functional Clock. */
1064
1065 kCOMPUTE_BASE_to_SCT =
1066 CLKCTL0_TUPLE_MUXA(SCTFCLKSEL_OFFSET, 0), /*!< Attach Compute base clock to SCT Functional Clock. */
1067 kMAIN_PLL_PFD0_SCT = CLKCTL0_TUPLE_MUXA(SCTFCLKSEL_OFFSET, 1), /*!< Attach main_pll_pfd0 to SCT Functional Clock. */
1068 kFRO0_DIV1_to_SCT = CLKCTL0_TUPLE_MUXA(SCTFCLKSEL_OFFSET, 2), /*!< Attach FRO0 Max clock to SCT Functional Clock. */
1069 kFRO0_DIV6_to_SCT =
1070 CLKCTL0_TUPLE_MUXA(SCTFCLKSEL_OFFSET, 3), /*!< Attach FRO0_DIV6 clock to SCT Functional Clock. */
1071 kNONE_to_SCT = CLKCTL0_TUPLE_MUXA_NONE(SCTFCLKSEL_OFFSET, 0), /*!< Attach NONE to SCT Functional Clock. */
1072
1073 kCOMPUTE_BASE_to_UTICK0_CLK =
1074 CLKCTL0_TUPLE_MUXA(UTICK0FCLKSEL_OFFSET, 0), /*!< Attach compute base clock to UTICK0. */
1075 kLPOSC_to_UTICK0_CLK = CLKCTL0_TUPLE_MUXA(UTICK0FCLKSEL_OFFSET, 1), /*!< Attach main_pll_pfd0 to UTICK0. */
1076 kFRO0_DIV1_to_UTICK0_CLK = CLKCTL0_TUPLE_MUXA(UTICK0FCLKSEL_OFFSET, 2), /*!< Attach FRO0 Max to UTICK0. */
1077 kFRO1_DIV2_to_UTICK0_CLK = CLKCTL0_TUPLE_MUXA(UTICK0FCLKSEL_OFFSET, 3), /*!< Attach FRO1_DIV2 to UTICK0. */
1078 kNONE_to_UTICK0_CLK = CLKCTL0_TUPLE_MUXA_NONE(UTICK0FCLKSEL_OFFSET, 0), /*!< Attach NONE to UTICK0. */
1079
1080 kLPOSC_to_WWDT0 = CLKCTL0_TUPLE_MUXA(WWDT0FCLKSEL_OFFSET, 0), /*!< Attach LPOSC to WWDT0 Functional Clock. */
1081 kNONE_to_WWDT0 = CLKCTL0_TUPLE_MUXA_NONE(WWDT0FCLKSEL_OFFSET, 0), /*!< Attach NONE to WWDT0 Functional Clock. */
1082
1083 kLPOSC_to_WWDT1 = CLKCTL0_TUPLE_MUXA(WWDT1FCLKSEL_OFFSET, 0), /*!< Attach LPOSC to WWDT1 Functional Clock. */
1084 kNONE_to_WWDT1 = CLKCTL0_TUPLE_MUXA_NONE(WWDT1FCLKSEL_OFFSET, 0), /*!< Attach NONE to WWDT1 Functional Clock. */
1085
1086 kCOMPUTE_BASE_to_SYSTICK =
1087 CLKCTL0_TUPLE_MUXA(SYSTICKFCLKSEL_OFFSET, 0), /*!< Attach Compute base clock to SYSTICK Functional Clock. */
1088 kLPOSC_to_SYSTICK = CLKCTL0_TUPLE_MUXA(SYSTICKFCLKSEL_OFFSET, 1), /*!< Attach LPOSC to SYSTICK Functional Clock. */
1089 k32KHZ_WAKE_to_SYSTICK =
1090 CLKCTL0_TUPLE_MUXA(SYSTICKFCLKSEL_OFFSET, 2), /*!< Attach 32 KHz wake clock(switch to other clock source before
1091 compute vdd2 enter SRPG mode.) to SYSTICK Functional Clock. */
1092 kOSC_CLK_to_SYSTICK =
1093 CLKCTL0_TUPLE_MUXA(SYSTICKFCLKSEL_OFFSET, 3), /*!< Attach OSC_CLK clock to SYSTICK Functional Clock. */
1094 kNONE_to_SYSTICK =
1095 CLKCTL0_TUPLE_MUXA_NONE(SYSTICKFCLKSEL_OFFSET, 0), /*!< Attach NONE to SYSTICK Functional Clock. */
1096
1097 kCOMPUTE_BASE_to_SAI012 =
1098 CLKCTL0_TUPLE_MUXA(SAI012FCLKSEL_OFFSET, 0), /*!< Attach Compute base clock to SAI012 Clock. */
1099 kFRO2_DIV8_to_SAI012 = CLKCTL0_TUPLE_MUXA(SAI012FCLKSEL_OFFSET, 1), /*!< Attach FRO2_DIV8 to SAI012 Clock. */
1100 kFRO0_DIV1_to_SAI012 = CLKCTL0_TUPLE_MUXA(SAI012FCLKSEL_OFFSET, 2), /*!< Attach FRO0 max clock to SAI012 Clock. */
1101 kAUDIO_VDD2_to_SAI012 =
1102 CLKCTL0_TUPLE_MUXA(SAI012FCLKSEL_OFFSET, 3), /*!< Attach audio_clk_cmpt clock to SAI012 Clock. */
1103 kNONE_to_SAI012 = CLKCTL0_TUPLE_MUXA_NONE(SAI012FCLKSEL_OFFSET, 0), /*!< Attach NONE to SAI012 Clock. */
1104
1105 kCOMPUTE_BASE_to_FCCLK0 = CLKCTL0_TUPLE_MUXA(FCCLK0SEL_OFFSET, 0), /*!< Attach compute base clock to FCCLK0. */
1106 kFRO0_DIV1_to_FCCLK0 = CLKCTL0_TUPLE_MUXA(FCCLK0SEL_OFFSET, 1), /*!< Attach FRO0 max clock to FCCLK0. */
1107 kMAIN_PLL_PFD3_to_FCCLK0 = CLKCTL0_TUPLE_MUXA(FCCLK0SEL_OFFSET, 2), /*!< Attach MAIN PLL PFD3 clock to FCCLK0. */
1108 kOSC_CLK_to_FCCLK0 = CLKCTL0_TUPLE_MUXA(FCCLK0SEL_OFFSET, 3), /*!< Attach OSC clock to FCCLK0. */
1109 kNONE_to_FCCLK0 = CLKCTL0_TUPLE_MUXA_NONE(FCCLK0SEL_OFFSET, 0), /*!< Attach NONE to FCCLK0. */
1110
1111 kCOMPUTE_BASE_to_FCCLK1 = CLKCTL0_TUPLE_MUXA(FCCLK1SEL_OFFSET, 0), /*!< Attach compute base clock to FCCLK1. */
1112 kFRO0_DIV1_to_FCCLK1 = CLKCTL0_TUPLE_MUXA(FCCLK1SEL_OFFSET, 1), /*!< Attach FRO0 max clock to FCCLK1. */
1113 kMAIN_PLL_PFD3_to_FCCLK1 = CLKCTL0_TUPLE_MUXA(FCCLK1SEL_OFFSET, 2), /*!< Attach MAIN PLL PFD3 clock to FCCLK1. */
1114 kOSC_CLK_to_FCCLK1 = CLKCTL0_TUPLE_MUXA(FCCLK1SEL_OFFSET, 3), /*!< Attach OSC clock to FCCLK1. */
1115 kNONE_to_FCCLK1 = CLKCTL0_TUPLE_MUXA_NONE(FCCLK1SEL_OFFSET, 0), /*!< Attach NONE to FCCLK1. */
1116
1117 kCOMPUTE_BASE_to_FCCLK2 = CLKCTL0_TUPLE_MUXA(FCCLK2SEL_OFFSET, 0), /*!< Attach compute base clock to FCCLK2. */
1118 kFRO0_DIV1_to_FCCLK2 = CLKCTL0_TUPLE_MUXA(FCCLK2SEL_OFFSET, 1), /*!< Attach FRO0 max clock to FCCLK2. */
1119 kMAIN_PLL_PFD3_to_FCCLK2 = CLKCTL0_TUPLE_MUXA(FCCLK2SEL_OFFSET, 2), /*!< Attach MAIN PLL PFD3 clock to FCCLK2. */
1120 kOSC_CLK_to_FCCLK2 = CLKCTL0_TUPLE_MUXA(FCCLK2SEL_OFFSET, 3), /*!< Attach OSC clock to FCCLK2. */
1121 kNONE_to_FCCLK2 = CLKCTL0_TUPLE_MUXA_NONE(FCCLK2SEL_OFFSET, 0), /*!< Attach NONE to FCCLK2. */
1122
1123 kCOMPUTE_BASE_to_FCCLK3 = CLKCTL0_TUPLE_MUXA(FCCLK3SEL_OFFSET, 0), /*!< Attach compute base clock to FCCLK3. */
1124 kFRO0_DIV1_to_FCCLK3 = CLKCTL0_TUPLE_MUXA(FCCLK3SEL_OFFSET, 1), /*!< Attach FRO0 max clock to FCCLK3. */
1125 kMAIN_PLL_PFD3_to_FCCLK3 = CLKCTL0_TUPLE_MUXA(FCCLK3SEL_OFFSET, 2), /*!< Attach MAIN PLL PFD3 clock to FCCLK3. */
1126 kOSC_CLK_to_FCCLK3 = CLKCTL0_TUPLE_MUXA(FCCLK3SEL_OFFSET, 3), /*!< Attach OSC clock to FCCLK3. */
1127 kNONE_to_FCCLK3 = CLKCTL0_TUPLE_MUXA_NONE(FCCLK3SEL_OFFSET, 0), /*!< Attach NONE to FCCLK3. */
1128
1129 kFCCLK0_to_FLEXCOMM0 = CLKCTL0_TUPLE_MUXA(FC0FCLKSEL_OFFSET, 0), /*!< Attach FCCLK0 to FLEXCOMM0. */
1130 kFCCLK1_to_FLEXCOMM0 = CLKCTL0_TUPLE_MUXA(FC0FCLKSEL_OFFSET, 1), /*!< Attach FCCLK1 to FLEXCOMM0. */
1131 kFCCLK2_to_FLEXCOMM0 = CLKCTL0_TUPLE_MUXA(FC0FCLKSEL_OFFSET, 2), /*!< Attach FCCLK2 to FLEXCOMM0. */
1132 kFCCLK3_to_FLEXCOMM0 = CLKCTL0_TUPLE_MUXA(FC0FCLKSEL_OFFSET, 3), /*!< Attach FCCLK3 to FLEXCOMM0. */
1133 kNONE_to_FLEXCOMM0 = CLKCTL0_TUPLE_MUXA_NONE(FC0FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM0. */
1134
1135 kFCCLK0_to_FLEXCOMM1 = CLKCTL0_TUPLE_MUXA(FC1FCLKSEL_OFFSET, 0), /*!< Attach FCCLK0 to FLEXCOMM1. */
1136 kFCCLK1_to_FLEXCOMM1 = CLKCTL0_TUPLE_MUXA(FC1FCLKSEL_OFFSET, 1), /*!< Attach FCCLK1 to FLEXCOMM1. */
1137 kFCCLK2_to_FLEXCOMM1 = CLKCTL0_TUPLE_MUXA(FC1FCLKSEL_OFFSET, 2), /*!< Attach FCCLK2 to FLEXCOMM1. */
1138 kFCCLK3_to_FLEXCOMM1 = CLKCTL0_TUPLE_MUXA(FC1FCLKSEL_OFFSET, 3), /*!< Attach FCCLK3 to FLEXCOMM1. */
1139 kNONE_to_FLEXCOMM1 = CLKCTL0_TUPLE_MUXA_NONE(FC1FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM1. */
1140
1141 kFCCLK0_to_FLEXCOMM2 = CLKCTL0_TUPLE_MUXA(FC2FCLKSEL_OFFSET, 0), /*!< Attach FCCLK0 to FLEXCOMM2. */
1142 kFCCLK1_to_FLEXCOMM2 = CLKCTL0_TUPLE_MUXA(FC2FCLKSEL_OFFSET, 1), /*!< Attach FCCLK1 to FLEXCOMM2. */
1143 kFCCLK2_to_FLEXCOMM2 = CLKCTL0_TUPLE_MUXA(FC2FCLKSEL_OFFSET, 2), /*!< Attach FCCLK2 to FLEXCOMM2. */
1144 kFCCLK3_to_FLEXCOMM2 = CLKCTL0_TUPLE_MUXA(FC2FCLKSEL_OFFSET, 3), /*!< Attach FCCLK3 to FLEXCOMM2. */
1145 kNONE_to_FLEXCOMM2 = CLKCTL0_TUPLE_MUXA_NONE(FC2FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM2. */
1146
1147 kFCCLK0_to_FLEXCOMM3 = CLKCTL0_TUPLE_MUXA(FC3FCLKSEL_OFFSET, 0), /*!< Attach FCCLK0 to FLEXCOMM3. */
1148 kFCCLK1_to_FLEXCOMM3 = CLKCTL0_TUPLE_MUXA(FC3FCLKSEL_OFFSET, 1), /*!< Attach FCCLK1 to FLEXCOMM3. */
1149 kFCCLK2_to_FLEXCOMM3 = CLKCTL0_TUPLE_MUXA(FC3FCLKSEL_OFFSET, 2), /*!< Attach FCCLK2 to FLEXCOMM3. */
1150 kFCCLK3_to_FLEXCOMM3 = CLKCTL0_TUPLE_MUXA(FC3FCLKSEL_OFFSET, 3), /*!< Attach FCCLK3 to FLEXCOMM3. */
1151 kNONE_to_FLEXCOMM3 = CLKCTL0_TUPLE_MUXA_NONE(FC3FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM3. */
1152
1153 kFCCLK0_to_FLEXCOMM4 = CLKCTL0_TUPLE_MUXA(FC4FCLKSEL_OFFSET, 0), /*!< Attach FCCLK0 to FLEXCOMM4. */
1154 kFCCLK1_to_FLEXCOMM4 = CLKCTL0_TUPLE_MUXA(FC4FCLKSEL_OFFSET, 1), /*!< Attach FCCLK1 to FLEXCOMM4. */
1155 kFCCLK2_to_FLEXCOMM4 = CLKCTL0_TUPLE_MUXA(FC4FCLKSEL_OFFSET, 2), /*!< Attach FCCLK2 to FLEXCOMM4. */
1156 kFCCLK3_to_FLEXCOMM4 = CLKCTL0_TUPLE_MUXA(FC4FCLKSEL_OFFSET, 3), /*!< Attach FCCLK3 to FLEXCOMM4. */
1157 kNONE_to_FLEXCOMM4 = CLKCTL0_TUPLE_MUXA_NONE(FC4FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM4. */
1158
1159 kFCCLK0_to_FLEXCOMM5 = CLKCTL0_TUPLE_MUXA(FC5FCLKSEL_OFFSET, 0), /*!< Attach FCCLK0 to FLEXCOMM5. */
1160 kFCCLK1_to_FLEXCOMM5 = CLKCTL0_TUPLE_MUXA(FC5FCLKSEL_OFFSET, 1), /*!< Attach FCCLK1 to FLEXCOMM5. */
1161 kFCCLK2_to_FLEXCOMM5 = CLKCTL0_TUPLE_MUXA(FC5FCLKSEL_OFFSET, 2), /*!< Attach FCCLK2 to FLEXCOMM5. */
1162 kFCCLK3_to_FLEXCOMM5 = CLKCTL0_TUPLE_MUXA(FC5FCLKSEL_OFFSET, 3), /*!< Attach FCCLK3 to FLEXCOMM5. */
1163 kNONE_to_FLEXCOMM5 = CLKCTL0_TUPLE_MUXA_NONE(FC5FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM5. */
1164
1165 kFCCLK0_to_FLEXCOMM6 = CLKCTL0_TUPLE_MUXA(FC6FCLKSEL_OFFSET, 0), /*!< Attach FCCLK0 to FLEXCOMM6. */
1166 kFCCLK1_to_FLEXCOMM6 = CLKCTL0_TUPLE_MUXA(FC6FCLKSEL_OFFSET, 1), /*!< Attach FCCLK1 to FLEXCOMM6. */
1167 kFCCLK2_to_FLEXCOMM6 = CLKCTL0_TUPLE_MUXA(FC6FCLKSEL_OFFSET, 2), /*!< Attach FCCLK2 to FLEXCOMM6. */
1168 kFCCLK3_to_FLEXCOMM6 = CLKCTL0_TUPLE_MUXA(FC6FCLKSEL_OFFSET, 3), /*!< Attach FCCLK3 to FLEXCOMM6. */
1169 kNONE_to_FLEXCOMM6 = CLKCTL0_TUPLE_MUXA_NONE(FC6FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM6. */
1170
1171 kFCCLK0_to_FLEXCOMM7 = CLKCTL0_TUPLE_MUXA(FC7FCLKSEL_OFFSET, 0), /*!< Attach FCCLK0 to FLEXCOMM7. */
1172 kFCCLK1_to_FLEXCOMM7 = CLKCTL0_TUPLE_MUXA(FC7FCLKSEL_OFFSET, 1), /*!< Attach FCCLK1 to FLEXCOMM7. */
1173 kFCCLK2_to_FLEXCOMM7 = CLKCTL0_TUPLE_MUXA(FC7FCLKSEL_OFFSET, 2), /*!< Attach FCCLK2 to FLEXCOMM7. */
1174 kFCCLK3_to_FLEXCOMM7 = CLKCTL0_TUPLE_MUXA(FC7FCLKSEL_OFFSET, 3), /*!< Attach FCCLK3 to FLEXCOMM7. */
1175 kNONE_to_FLEXCOMM7 = CLKCTL0_TUPLE_MUXA_NONE(FC7FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM7. */
1176
1177 kFCCLK0_to_FLEXCOMM8 = CLKCTL0_TUPLE_MUXA(FC8FCLKSEL_OFFSET, 0), /*!< Attach FCCLK0 to FLEXCOMM8. */
1178 kFCCLK1_to_FLEXCOMM8 = CLKCTL0_TUPLE_MUXA(FC8FCLKSEL_OFFSET, 1), /*!< Attach FCCLK1 to FLEXCOMM8. */
1179 kFCCLK2_to_FLEXCOMM8 = CLKCTL0_TUPLE_MUXA(FC8FCLKSEL_OFFSET, 2), /*!< Attach FCCLK2 to FLEXCOMM8. */
1180 kFCCLK3_to_FLEXCOMM8 = CLKCTL0_TUPLE_MUXA(FC8FCLKSEL_OFFSET, 3), /*!< Attach FCCLK3 to FLEXCOMM8. */
1181 kNONE_to_FLEXCOMM8 = CLKCTL0_TUPLE_MUXA_NONE(FC8FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM8. */
1182
1183 kFCCLK0_to_FLEXCOMM9 = CLKCTL0_TUPLE_MUXA(FC9FCLKSEL_OFFSET, 0), /*!< Attach FCCLK0 to FLEXCOMM9. */
1184 kFCCLK1_to_FLEXCOMM9 = CLKCTL0_TUPLE_MUXA(FC9FCLKSEL_OFFSET, 1), /*!< Attach FCCLK1 to FLEXCOMM9. */
1185 kFCCLK2_to_FLEXCOMM9 = CLKCTL0_TUPLE_MUXA(FC9FCLKSEL_OFFSET, 2), /*!< Attach FCCLK2 to FLEXCOMM9. */
1186 kFCCLK3_to_FLEXCOMM9 = CLKCTL0_TUPLE_MUXA(FC9FCLKSEL_OFFSET, 3), /*!< Attach FCCLK3 to FLEXCOMM9. */
1187 kNONE_to_FLEXCOMM9 = CLKCTL0_TUPLE_MUXA_NONE(FC9FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM9. */
1188
1189 kFCCLK0_to_FLEXCOMM10 = CLKCTL0_TUPLE_MUXA(FC10FCLKSEL_OFFSET, 0), /*!< Attach FCCLK0 to FLEXCOMM10. */
1190 kFCCLK1_to_FLEXCOMM10 = CLKCTL0_TUPLE_MUXA(FC10FCLKSEL_OFFSET, 1), /*!< Attach FCCLK1 to FLEXCOMM10. */
1191 kFCCLK2_to_FLEXCOMM10 = CLKCTL0_TUPLE_MUXA(FC10FCLKSEL_OFFSET, 2), /*!< Attach FCCLK2 to FLEXCOMM10. */
1192 kFCCLK3_to_FLEXCOMM10 = CLKCTL0_TUPLE_MUXA(FC10FCLKSEL_OFFSET, 3), /*!< Attach FCCLK3 to FLEXCOMM10. */
1193 kNONE_to_FLEXCOMM10 = CLKCTL0_TUPLE_MUXA_NONE(FC10FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM10. */
1194
1195 kFCCLK0_to_FLEXCOMM11 = CLKCTL0_TUPLE_MUXA(FC11FCLKSEL_OFFSET, 0), /*!< Attach FCCLK0 to FLEXCOMM11. */
1196 kFCCLK1_to_FLEXCOMM11 = CLKCTL0_TUPLE_MUXA(FC11FCLKSEL_OFFSET, 1), /*!< Attach FCCLK1 to FLEXCOMM11. */
1197 kFCCLK2_to_FLEXCOMM11 = CLKCTL0_TUPLE_MUXA(FC11FCLKSEL_OFFSET, 2), /*!< Attach FCCLK2 to FLEXCOMM11. */
1198 kFCCLK3_to_FLEXCOMM11 = CLKCTL0_TUPLE_MUXA(FC11FCLKSEL_OFFSET, 3), /*!< Attach FCCLK3 to FLEXCOMM11. */
1199 kNONE_to_FLEXCOMM11 = CLKCTL0_TUPLE_MUXA_NONE(FC11FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM11. */
1200
1201 kFCCLK0_to_FLEXCOMM12 = CLKCTL0_TUPLE_MUXA(FC12FCLKSEL_OFFSET, 0), /*!< Attach FCCLK0 to FLEXCOMM12. */
1202 kFCCLK1_to_FLEXCOMM12 = CLKCTL0_TUPLE_MUXA(FC12FCLKSEL_OFFSET, 1), /*!< Attach FCCLK1 to FLEXCOMM12. */
1203 kFCCLK2_to_FLEXCOMM12 = CLKCTL0_TUPLE_MUXA(FC12FCLKSEL_OFFSET, 2), /*!< Attach FCCLK2 to FLEXCOMM12. */
1204 kFCCLK3_to_FLEXCOMM12 = CLKCTL0_TUPLE_MUXA(FC12FCLKSEL_OFFSET, 3), /*!< Attach FCCLK3 to FLEXCOMM12. */
1205 kNONE_to_FLEXCOMM12 = CLKCTL0_TUPLE_MUXA_NONE(FC12FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM12. */
1206
1207 kFCCLK0_to_FLEXCOMM13 = CLKCTL0_TUPLE_MUXA(FC13FCLKSEL_OFFSET, 0), /*!< Attach FCCLK0 to FLEXCOMM13. */
1208 kFCCLK1_to_FLEXCOMM13 = CLKCTL0_TUPLE_MUXA(FC13FCLKSEL_OFFSET, 1), /*!< Attach FCCLK1 to FLEXCOMM13. */
1209 kFCCLK2_to_FLEXCOMM13 = CLKCTL0_TUPLE_MUXA(FC13FCLKSEL_OFFSET, 2), /*!< Attach FCCLK2 to FLEXCOMM13. */
1210 kFCCLK3_to_FLEXCOMM13 = CLKCTL0_TUPLE_MUXA(FC13FCLKSEL_OFFSET, 3), /*!< Attach FCCLK3 to FLEXCOMM13. */
1211 kNONE_to_FLEXCOMM13 = CLKCTL0_TUPLE_MUXA_NONE(FC13FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM13. */
1212
1213 kCOMPUTE_BASE_to_CTIMER0 =
1214 CLKCTL0_TUPLE_MUXA(CTIMER0FCLKSEL_OFFSET, 0), /*!< Attach Compute base clock to CTIMER0 Clock. */
1215 kAUDIO_VDD2_to_CTIMER0 =
1216 CLKCTL0_TUPLE_MUXA(CTIMER0FCLKSEL_OFFSET, 1), /*!< Attach audio_clk_cmpt clock to CTIMER0 Clock. */
1217 kFRO0_DIV1_to_CTIMER0 =
1218 CLKCTL0_TUPLE_MUXA(CTIMER0FCLKSEL_OFFSET, 2), /*!< Attach FRO0 max clock to CTIMER0 Clock. */
1219 k32KHZ_WAKE_to_CTIMER0 =
1220 CLKCTL0_TUPLE_MUXA(CTIMER0FCLKSEL_OFFSET, 3), /*!< Attach 32KHz wake clock to CTIMER0 Clock. */
1221 kNONE_to_CTIMER0 = CLKCTL0_TUPLE_MUXA_NONE(CTIMER0FCLKSEL_OFFSET, 0), /*!< Attach NONE to CTIMER0 Clock. */
1222
1223 kCOMPUTE_BASE_to_CTIMER1 =
1224 CLKCTL0_TUPLE_MUXA(CTIMER1FCLKSEL_OFFSET, 0), /*!< Attach Compute base clock to CTIMER1 Clock. */
1225 kAUDIO_VDD2_to_CTIMER1 =
1226 CLKCTL0_TUPLE_MUXA(CTIMER1FCLKSEL_OFFSET, 1), /*!< Attach audio_clk_cmpt clock to CTIMER1 Clock. */
1227 kFRO0_DIV1_to_CTIMER1 =
1228 CLKCTL0_TUPLE_MUXA(CTIMER1FCLKSEL_OFFSET, 2), /*!< Attach FRO0 max clock to CTIMER1 Clock. */
1229 k32KHZ_WAKE_to_CTIMER1 =
1230 CLKCTL0_TUPLE_MUXA(CTIMER1FCLKSEL_OFFSET, 3), /*!< Attach 32KHz wake clock to CTIMER1 Clock. */
1231 kNONE_to_CTIMER1 = CLKCTL0_TUPLE_MUXA_NONE(CTIMER1FCLKSEL_OFFSET, 0), /*!< Attach NONE to CTIMER1 Clock. */
1232
1233 kCOMPUTE_BASE_to_CTIMER2 =
1234 CLKCTL0_TUPLE_MUXA(CTIMER2FCLKSEL_OFFSET, 0), /*!< Attach Compute base clock to CTIMER2 Clock. */
1235 kAUDIO_VDD2_to_CTIMER2 =
1236 CLKCTL0_TUPLE_MUXA(CTIMER2FCLKSEL_OFFSET, 1), /*!< Attach audio_clk_cmpt clock to CTIMER2 Clock. */
1237 kFRO0_DIV1_to_CTIMER2 =
1238 CLKCTL0_TUPLE_MUXA(CTIMER2FCLKSEL_OFFSET, 2), /*!< Attach FRO0 max clock to CTIMER2 Clock. */
1239 k32KHZ_WAKE_to_CTIMER2 =
1240 CLKCTL0_TUPLE_MUXA(CTIMER2FCLKSEL_OFFSET, 3), /*!< Attach 32KHz wake clock to CTIMER2 Clock. */
1241 kNONE_to_CTIMER2 = CLKCTL0_TUPLE_MUXA_NONE(CTIMER2FCLKSEL_OFFSET, 0), /*!< Attach NONE to CTIMER2 Clock. */
1242
1243 kCOMPUTE_BASE_to_CTIMER3 =
1244 CLKCTL0_TUPLE_MUXA(CTIMER3FCLKSEL_OFFSET, 0), /*!< Attach Compute base clock to CTIMER3 Clock. */
1245 kAUDIO_VDD2_to_CTIMER3 =
1246 CLKCTL0_TUPLE_MUXA(CTIMER3FCLKSEL_OFFSET, 1), /*!< Attach audio_clk_cmpt clock to CTIMER3 Clock. */
1247 kFRO0_DIV1_to_CTIMER3 =
1248 CLKCTL0_TUPLE_MUXA(CTIMER3FCLKSEL_OFFSET, 2), /*!< Attach FRO0 max clock to CTIMER3 Clock. */
1249 k32KHZ_WAKE_to_CTIMER3 =
1250 CLKCTL0_TUPLE_MUXA(CTIMER3FCLKSEL_OFFSET, 3), /*!< Attach 32KHz wake clock to CTIMER3 Clock. */
1251 kNONE_to_CTIMER3 = CLKCTL0_TUPLE_MUXA_NONE(CTIMER3FCLKSEL_OFFSET, 0), /*!< Attach NONE to CTIMER3 Clock. */
1252
1253 kCOMPUTE_BASE_to_CTIMER4 =
1254 CLKCTL0_TUPLE_MUXA(CTIMER4FCLKSEL_OFFSET, 0), /*!< Attach Compute base clock to CTIMER4 Clock. */
1255 kAUDIO_VDD2_to_CTIMER4 =
1256 CLKCTL0_TUPLE_MUXA(CTIMER4FCLKSEL_OFFSET, 1), /*!< Attach audio_clk_cmpt clock to CTIMER4 Clock. */
1257 kFRO0_DIV1_to_CTIMER4 =
1258 CLKCTL0_TUPLE_MUXA(CTIMER4FCLKSEL_OFFSET, 2), /*!< Attach FRO0 max clock to CTIMER4 Clock. */
1259 k32KHZ_WAKE_to_CTIMER4 =
1260 CLKCTL0_TUPLE_MUXA(CTIMER4FCLKSEL_OFFSET, 3), /*!< Attach 32KHz wake clock to CTIMER4 Clock. */
1261 kNONE_to_CTIMER4 = CLKCTL0_TUPLE_MUXA_NONE(CTIMER4FCLKSEL_OFFSET, 0), /*!< Attach NONE to CTIMER4 Clock. */
1262
1263 kCOMPUTE_BASE_to_TRNG =
1264 CLKCTL0_TUPLE_MUXA(TRNGFCLKSEL_OFFSET, 0), /*!< Attach Compute base clock to TRNG Functional Clock. */
1265 kFRO1_DIV2_to_TRNG =
1266 CLKCTL0_TUPLE_MUXA(TRNGFCLKSEL_OFFSET, 1), /*!< Attach FRO1_DIV2 clock to TRNG Functional Clock. */
1267 kFRO1_DIV8_to_TRNG =
1268 CLKCTL0_TUPLE_MUXA(TRNGFCLKSEL_OFFSET, 2), /*!< Attach FRO1_DIV8 clock to TRNG Functional Clock. */
1269 kFRO1_DIV3_to_TRNG =
1270 CLKCTL0_TUPLE_MUXA(TRNGFCLKSEL_OFFSET, 3), /*!< Attach FRO1_DIV3 clock to TRNG Functional Clock. */
1271 kNONE_to_TRNG = CLKCTL0_TUPLE_MUXA_NONE(TRNGFCLKSEL_OFFSET, 0), /*!< Attach NONE to TRNG Functional Clock. */
1272
1273 kCOMPUTE_BASE_to_I3C01 =
1274 CLKCTL0_TUPLE_MUXA(I3C01FCLKSEL_OFFSET, 0), /*!< Attach Compute base clock to I3C0 and I3C1 Functional Clock. */
1275 kFRO0_DIV1_to_I3C01 =
1276 CLKCTL0_TUPLE_MUXA(I3C01FCLKSEL_OFFSET, 1), /*!< Attach FRO0 MAX to I3C0 and I3C1 Functional Clock. */
1277 kFRO1_DIV8_to_I3C01 =
1278 CLKCTL0_TUPLE_MUXA(I3C01FCLKSEL_OFFSET, 2), /*!< Attach FRO1_DIV8 clock to I3C0 and I3C1 Functional Clock. */
1279 kOSC_CLK_to_I3C01 =
1280 CLKCTL0_TUPLE_MUXA(I3C01FCLKSEL_OFFSET, 3), /*!< Attach OSC_CLK clock to I3C0 and I3C1 Functional Clock. */
1281 kNONE_to_I3C01 =
1282 CLKCTL0_TUPLE_MUXA_NONE(I3C01FCLKSEL_OFFSET, 0), /*!< Attach NONE to I3C0 and I3C1 Functional Clock. */
1283
1284 kCOMPUTE_BASE_to_I3C01_PCLK =
1285 CLKCTL0_TUPLE_MUXA(I3C01PCLKSEL_OFFSET, 0), /*!< Attach Compute base clock to I3C0 and I3C1 P-CLK. */
1286 kMAIN_PLL_PFD0_to_I3C01_PCLK =
1287 CLKCTL0_TUPLE_MUXA(I3C01PCLKSEL_OFFSET, 1), /*!< Attach MAIN PLL PFD0 to I3C0 and I3C1 P-CLK. */
1288 kFRO0_DIV1_to_I3C01_PCLK =
1289 CLKCTL0_TUPLE_MUXA(I3C01PCLKSEL_OFFSET, 2), /*!< Attach FRO0 MAX to I3C0 and I3C1 P-CLK. */
1290 kFRO1_DIV1_to_I3C01_PCLK =
1291 CLKCTL0_TUPLE_MUXA(I3C01PCLKSEL_OFFSET, 3), /*!< Attach FRO1 MAX to I3C0 and I3C1 P-CLK. */
1292 kNONE_to_I3C01_PCLK = CLKCTL0_TUPLE_MUXA_NONE(I3C01PCLKSEL_OFFSET, 0), /*!< Attach NONE to I3C0 and I3C1 P-CLK. */
1293
1294 kCOMMON_VDD2_BASE_to_VDD2_CLKOUT =
1295 CLKCTL0_TUPLE_MUXA(CLKOUTCLKSEL_OFFSET, 0), /*!< Attach Common VDD2 Base Clock to VDD2 CLKOUT Clock. */
1296 kMAIN_PLL_PFD0_to_VDD2_CLKOUT =
1297 CLKCTL0_TUPLE_MUXA(CLKOUTCLKSEL_OFFSET, 1), /*!< Attach MAIN PLL PFD0 Clock to VDD2 CLKOUT Clock. */
1298 kFRO0_DIV1_to_VDD2_CLKOUT =
1299 CLKCTL0_TUPLE_MUXA(CLKOUTCLKSEL_OFFSET, 2), /*!< Attach FRO0 Max Clock to VDD2 CLKOUT Clock. */
1300 kFRO1_DIV1_to_VDD2_CLKOUT =
1301 CLKCTL0_TUPLE_MUXA(CLKOUTCLKSEL_OFFSET, 3), /*!< Attach FRO1 Max Clock to VDD2 CLKOUT Clock. */
1302 kNONE_to_VDD2_CLKOUT = CLKCTL0_TUPLE_MUXA_NONE(CLKOUTCLKSEL_OFFSET, 0), /*!< Attach NONE to VDD2 CLKOUT Clock. */
1303
1304 kMCLK_to_AUDIO_VDD2 =
1305 CLKCTL0_TUPLE_MUXA(AUDIOVDD2CLKSEL_OFFSET, 0), /*!< Attach MCLK IN from Pad to Audio VDD2 Clock. */
1306 kOSC_CLK_to_AUDIO_VDD2 =
1307 CLKCTL0_TUPLE_MUXA(AUDIOVDD2CLKSEL_OFFSET, 1), /*!< Attach OSC clock to Audio VDD2 Clock. */
1308 kFRO2_DIV8_to_AUDIO_VDD2 =
1309 CLKCTL0_TUPLE_MUXA(AUDIOVDD2CLKSEL_OFFSET, 2), /*!< Attach FRO2_DIV8 clock to Audio VDD2 Clock. */
1310 kAUDIO_PLL_PFD3_to_AUDIO_VDD2 =
1311 CLKCTL0_TUPLE_MUXA(AUDIOVDD2CLKSEL_OFFSET, 3), /*!< Attach AUDIO PLL PFD3 clock to Audio VDD2 Clock. */
1312
1313 #else /* Dedicated defination for sense domain */
1314 kFRO1_DIV3_to_SENSE_BASE =
1315 CLKCTL1_TUPLE_MUXA(SENSEBASECLKSEL_OFFSET, 0), /*!< Attach FRO1 divided-by-3 clock to Sense Base Clock. */
1316 kFRO1_DIV1_to_SENSE_BASE =
1317 CLKCTL1_TUPLE_MUXA(SENSEBASECLKSEL_OFFSET, 1), /*!< Attach FRO1 max clock to Sense Base Clock. */
1318 kFRO2_DIV3_to_SENSE_BASE =
1319 CLKCTL1_TUPLE_MUXA(SENSEBASECLKSEL_OFFSET, 2), /*!< Attach FRO2 divided-by-3 clock to Sense Base Clock. */
1320 kLPOSC_to_SENSE_BASE = CLKCTL1_TUPLE_MUXA(SENSEBASECLKSEL_OFFSET, 3), /*!< Attach LPOSC to Sense Base Clock. */
1321
1322 kSENSE_BASE_to_SENSE_DSP =
1323 CLKCTL1_TUPLE_MUXA(SENSEDSPCPUCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to Sense DSP Clock. */
1324 kFRO2_DIV1_to_SENSE_DSP =
1325 CLKCTL1_TUPLE_MUXA(SENSEDSPCPUCLKSEL_OFFSET, 1), /*!< Attach FRO2 max clock to Sense DSP Clock. */
1326 kAUDIO_PLL_PFD1_to_SENSE_DSP =
1327 CLKCTL1_TUPLE_MUXA(SENSEDSPCPUCLKSEL_OFFSET, 2), /*!< Attach Audio PLL PFD1 clock to Sense DSP Clock. */
1328 kFRO1_DIV1_to_SENSE_DSP =
1329 CLKCTL1_TUPLE_MUXA(SENSEDSPCPUCLKSEL_OFFSET, 3), /*!< Attach FRO1 max clock to Sense DSP Clock. */
1330 kNONE_to_SENSE_DSP = CLKCTL1_TUPLE_MUXA_NONE(SENSEDSPCPUCLKSEL_OFFSET, 0), /*!< Attach NONE to Sense DSP Clock. */
1331
1332 kSENSE_BASE_to_SAI3 = CLKCTL1_TUPLE_MUXA(SAI3FCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to SAI3 Clock. */
1333 kFRO2_DIV8_to_SAI3 = CLKCTL1_TUPLE_MUXA(SAI3FCLKSEL_OFFSET, 1), /*!< Attach FRO2_DIV8 clock to SAI3 Clock. */
1334 kFRO2_DIV1_to_SAI3 = CLKCTL1_TUPLE_MUXA(SAI3FCLKSEL_OFFSET, 2), /*!< Attach FRO2 clock to SAI3 Clock. */
1335 kAUDIO_VDD1_to_SAI3 = CLKCTL1_TUPLE_MUXA(SAI3FCLKSEL_OFFSET, 3), /*!< Attach audio_clk to SAI3 Clock. */
1336 kNONE_to_SAI3 = CLKCTL1_TUPLE_MUXA_NONE(SAI3FCLKSEL_OFFSET, 0), /*!< Attach NONE to SAI3 Clock. */
1337
1338 kSENSE_BASE_to_UTICK =
1339 CLKCTL1_TUPLE_MUXA(UTICK1FCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to UTICK Functional Clock. */
1340 kLPOSC_to_UTICK = CLKCTL1_TUPLE_MUXA(UTICK1FCLKSEL_OFFSET, 1), /*!< Attach LPOSC clock to UTICK Functional Clock. */
1341 kFRO2_DIV1_to_UTICK =
1342 CLKCTL1_TUPLE_MUXA(UTICK1FCLKSEL_OFFSET, 2), /*!< Attach FRO2 max clock to UTICK Functional Clock. */
1343 kFRO1_DIV2_to_UTICK =
1344 CLKCTL1_TUPLE_MUXA(UTICK1FCLKSEL_OFFSET, 3), /*!< Attach FRO1_DIV2 clock to UTICK Functional Clock. */
1345 kNONE_to_UTICK = CLKCTL1_TUPLE_MUXA_NONE(UTICK1FCLKSEL_OFFSET, 0), /*!< Attach NONE to UTICK Functional Clock. */
1346
1347 kLPOSC_to_WWDT2 = CLKCTL1_TUPLE_MUXA(WWDT2FCLKSEL_OFFSET, 0), /*!< Attach LPOSC clock to WWDT2 Functional Clock. */
1348 kNONE_to_WWDT2 = CLKCTL1_TUPLE_MUXA_NONE(WWDT2FCLKSEL_OFFSET, 0), /*!< Attach NONE to WWDT2 Functional Clock. */
1349
1350 kLPOSC_to_WWDT3 = CLKCTL1_TUPLE_MUXA(WWDT3FCLKSEL_OFFSET, 0), /*!< Attach LPOSC clock to WWDT3 Functional Clock. */
1351 kNONE_to_WWDT3 = CLKCTL1_TUPLE_MUXA_NONE(WWDT3FCLKSEL_OFFSET, 0), /*!< Attach NONE to WWDT3 Functional Clock. */
1352
1353 kSENSE_BASE_to_SYSTICK =
1354 CLKCTL1_TUPLE_MUXA(SYSTICKFCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to SYSTICK Functional Clock. */
1355 kLPOSC_to_SYSTICK =
1356 CLKCTL1_TUPLE_MUXA(SYSTICKFCLKSEL_OFFSET, 1), /*!< Attach LPOSC clock to SYSTICK Functional Clock. */
1357 k32KHZ_WAKE_to_SYSTICK =
1358 CLKCTL1_TUPLE_MUXA(SYSTICKFCLKSEL_OFFSET, 2), /*!< Attach 32 kHz wake clock(switch to other clock source
1359 before sense vdd1 enter SRPG mode.) to SYSTICK Functional Clock. */
1360 kOSC_CLK_to_SYSTICK =
1361 CLKCTL1_TUPLE_MUXA(SYSTICKFCLKSEL_OFFSET, 3), /*!< Attach OSC clock to SYSTICK Functional Clock. */
1362 kNONE_to_SYSTICK =
1363 CLKCTL1_TUPLE_MUXA_NONE(SYSTICKFCLKSEL_OFFSET, 0), /*!< Attach NONE to SYSTICK Functional Clock. */
1364
1365 kSENSE_BASE_to_CTIMER5 =
1366 CLKCTL1_TUPLE_MUXA(CTIMER5FCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to CTIMER5 Clock. */
1367 kAUDIO_VDD1_to_CTIMER5 = CLKCTL1_TUPLE_MUXA(CTIMER5FCLKSEL_OFFSET, 1), /*!< Attach audio_clk to CTIMER5 Clock. */
1368 kFRO2_DIV1_to_CTIMER5 =
1369 CLKCTL1_TUPLE_MUXA(CTIMER5FCLKSEL_OFFSET, 2), /*!< Attach FRO2 Max clock to CTIMER5 Clock. */
1370 k32KHZ_WAKE_to_CTIMER5 =
1371 CLKCTL1_TUPLE_MUXA(CTIMER5FCLKSEL_OFFSET, 3), /*!< Attach 32KHz wake clock to CTIMER5 Clock. */
1372 kNONE_to_CTIMER5 = CLKCTL1_TUPLE_MUXA_NONE(CTIMER5FCLKSEL_OFFSET, 0), /*!< Attach NONE to CTIMER5 Clock. */
1373
1374 kSENSE_BASE_to_CTIMER6 =
1375 CLKCTL1_TUPLE_MUXA(CTIMER6FCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to CTIMER6 Clock. */
1376 kAUDIO_VDD1_to_CTIMER6 = CLKCTL1_TUPLE_MUXA(CTIMER6FCLKSEL_OFFSET, 1), /*!< Attach audio_clk to CTIMER6 Clock. */
1377 kFRO2_DIV1_to_CTIMER6 =
1378 CLKCTL1_TUPLE_MUXA(CTIMER6FCLKSEL_OFFSET, 2), /*!< Attach FRO2 Max clock to CTIMER6 Clock. */
1379 k32KHZ_WAKE_to_CTIMER6 =
1380 CLKCTL1_TUPLE_MUXA(CTIMER6FCLKSEL_OFFSET, 3), /*!< Attach 32KHz wake clock to CTIMER6 Clock. */
1381 kNONE_to_CTIMER6 = CLKCTL1_TUPLE_MUXA_NONE(CTIMER6FCLKSEL_OFFSET, 0), /*!< Attach NONE to CTIMER6 Clock. */
1382
1383 kSENSE_BASE_to_CTIMER7 =
1384 CLKCTL1_TUPLE_MUXA(CTIMER7FCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to CTIMER7 Clock. */
1385 kAUDIO_VDD1_to_CTIMER7 = CLKCTL1_TUPLE_MUXA(CTIMER7FCLKSEL_OFFSET, 1), /*!< Attach audio_clk to CTIMER7 Clock. */
1386 kFRO2_DIV1_to_CTIMER7 =
1387 CLKCTL1_TUPLE_MUXA(CTIMER7FCLKSEL_OFFSET, 2), /*!< Attach FRO2 Max clock to CTIMER7 Clock. */
1388 k32KHZ_WAKE_to_CTIMER7 =
1389 CLKCTL1_TUPLE_MUXA(CTIMER7FCLKSEL_OFFSET, 3), /*!< Attach 32KHz wake clock to CTIMER7 Clock. */
1390 kNONE_to_CTIMER7 = CLKCTL1_TUPLE_MUXA_NONE(CTIMER7FCLKSEL_OFFSET, 0), /*!< Attach NONE to CTIMER7 Clock. */
1391
1392 kSENSE_BASE_to_I3C23 =
1393 CLKCTL1_TUPLE_MUXA(I3C23FCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to I3C2 and I3C3 Functional Clock. */
1394 kFRO2_DIV1_to_I3C23 =
1395 CLKCTL1_TUPLE_MUXA(I3C23FCLKSEL_OFFSET, 1), /*!< Attach FRO2 max clock to I3C2 and I3C3 Functional Clock. */
1396 kFRO1_DIV8_to_I3C23 =
1397 CLKCTL1_TUPLE_MUXA(I3C23FCLKSEL_OFFSET, 2), /*!< Attach FRO2_DIV8 clock to I3C2 and I3C3 Functional Clock. */
1398 kOSC_CLK_to_I3C23 =
1399 CLKCTL1_TUPLE_MUXA(I3C23FCLKSEL_OFFSET, 3), /*!< Attach OSC clock to I3C2 and I3C3 Functional Clock. */
1400 kNONE_to_I3C23 =
1401 CLKCTL1_TUPLE_MUXA_NONE(I3C23FCLKSEL_OFFSET, 0), /*!< Attach NONE to I3C2 and I3C3 Functional Clock. */
1402
1403 kMCLK_to_AUDIO_VDD1 =
1404 CLKCTL1_TUPLE_MUXA(AUDIOVDD1CLKSEL_OFFSET, 0), /*!< Attach MCLK IN from Pad to Audio VDD1 Clock. */
1405 kOSC_to_AUDIO_VDD1 = CLKCTL1_TUPLE_MUXA(AUDIOVDD1CLKSEL_OFFSET, 1), /*!< Attach OSC clock to Audio VDD1 Clock. */
1406 kFRO2_DIV8_to_AUDIO_VDD1 =
1407 CLKCTL1_TUPLE_MUXA(AUDIOVDD1CLKSEL_OFFSET, 2), /*!< Attach FRO2_DIV8 clock to Audio VDD1 Clock. */
1408 kAUDIO_PLL_PFD3_to_AUDIO_VDD1 =
1409 CLKCTL1_TUPLE_MUXA(AUDIOVDD1CLKSEL_OFFSET, 3), /*!< Attach AUDIO PLL PFD3 clock to Audio VDD1 Clock. */
1410
1411 kSENSE_BASE_to_FLEXCOMM17 =
1412 CLKCTL1_TUPLE_MUXA(FC17FCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to FLEXCOMM17. */
1413 kFRO2_DIV1_to_FLEXCOMM17 = CLKCTL1_TUPLE_MUXA(FC17FCLKSEL_OFFSET, 1), /*!< Attach FRO2 max clock to FLEXCOMM17. */
1414 kFRO1_DIV1_to_FLEXCOMM17 = CLKCTL1_TUPLE_MUXA(FC17FCLKSEL_OFFSET, 2), /*!< Attach FRO1 max clock to FLEXCOMM17. */
1415 k32KHZ_WAKE_to_FLEXCOMM17 = CLKCTL1_TUPLE_MUXA(FC17FCLKSEL_OFFSET, 3), /*!< Attach 32k_wake_clk to FLEXCOMM17. */
1416 kNONE_to_FLEXCOMM17 = CLKCTL1_TUPLE_MUXA_NONE(FC17FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM17. */
1417
1418 kSENSE_BASE_to_FLEXCOMM18 =
1419 CLKCTL1_TUPLE_MUXA(FC18FCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to FLEXCOMM18. */
1420 kFRO2_DIV1_to_FLEXCOMM18 = CLKCTL1_TUPLE_MUXA(FC18FCLKSEL_OFFSET, 1), /*!< Attach FRO2 max clock to FLEXCOMM18. */
1421 kFRO1_DIV1_to_FLEXCOMM18 = CLKCTL1_TUPLE_MUXA(FC18FCLKSEL_OFFSET, 2), /*!< Attach FRO1 max clock to FLEXCOMM18. */
1422 k32KHZ_WAKE_to_FLEXCOMM18 = CLKCTL1_TUPLE_MUXA(FC18FCLKSEL_OFFSET, 3), /*!< Attach 32k_wake_clk to FLEXCOMM18. */
1423 kNONE_to_FLEXCOMM18 = CLKCTL1_TUPLE_MUXA_NONE(FC18FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM18. */
1424
1425 kSENSE_BASE_to_FLEXCOMM19 =
1426 CLKCTL1_TUPLE_MUXA(FC19FCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to FLEXCOMM19. */
1427 kFRO2_DIV1_to_FLEXCOMM19 = CLKCTL1_TUPLE_MUXA(FC19FCLKSEL_OFFSET, 1), /*!< Attach FRO2 max clock to FLEXCOMM19. */
1428 kFRO1_DIV1_to_FLEXCOMM19 = CLKCTL1_TUPLE_MUXA(FC19FCLKSEL_OFFSET, 2), /*!< Attach FRO1 max clock to FLEXCOMM19. */
1429 k32KHZ_WAKE_to_FLEXCOMM19 = CLKCTL1_TUPLE_MUXA(FC19FCLKSEL_OFFSET, 3), /*!< Attach 32k_wake_clk to FLEXCOMM19. */
1430 kNONE_to_FLEXCOMM19 = CLKCTL1_TUPLE_MUXA_NONE(FC19FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM19. */
1431
1432 kSENSE_BASE_to_FLEXCOMM20 =
1433 CLKCTL1_TUPLE_MUXA(FC20FCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to FLEXCOMM20. */
1434 kFRO2_DIV1_to_FLEXCOMM20 = CLKCTL1_TUPLE_MUXA(FC20FCLKSEL_OFFSET, 1), /*!< Attach FRO2 max clock to FLEXCOMM20. */
1435 kFRO1_DIV1_to_FLEXCOMM20 = CLKCTL1_TUPLE_MUXA(FC20FCLKSEL_OFFSET, 2), /*!< Attach FRO1 max clock to FLEXCOMM20. */
1436 k32KHZ_WAKE_to_FLEXCOMM20 = CLKCTL1_TUPLE_MUXA(FC20FCLKSEL_OFFSET, 3), /*!< Attach 32k_wake_clk to FLEXCOMM20. */
1437 kNONE_to_FLEXCOMM20 = CLKCTL1_TUPLE_MUXA_NONE(FC20FCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXCOMM20. */
1438
1439 #endif /* FSL_CLOCK_DRIVER_COMPUTE */
1440
1441 kCOMMON_BASE_to_COMMON_VDDN =
1442 CLKCTL2_TUPLE_MUXA(COMMONVDDNCLKSEL_OFFSET, 0), /*!< Attach Common base clock to Common VDDN Clock. */
1443 kMAIN_PLL_PFD3_to_COMMON_VDDN =
1444 CLKCTL2_TUPLE_MUXA(COMMONVDDNCLKSEL_OFFSET, 1), /*!< Attach Main PLL PFD3 clock to Common VDDN Clock. */
1445 kFRO1_DIV1_to_COMMON_VDDN =
1446 CLKCTL2_TUPLE_MUXA(COMMONVDDNCLKSEL_OFFSET, 2), /*!< Attach FRO1 max clock to Common VDDN Clock. */
1447 kOSC_CLK_to_COMMON_VDDN =
1448 CLKCTL2_TUPLE_MUXA(COMMONVDDNCLKSEL_OFFSET, 3), /*!< Attach OSC clock to Common VDDN Clock. */
1449
1450 kOSC_CLK_to_USB_24MHZ =
1451 CLKCTL2_TUPLE_MUXA(USBCLKSRC24MCLKSEL_OFFSET, 0), /*!< Attach OSC_CLK clock to 24MHz USB OSC Clock. */
1452 kFRO1_DIV8_to_USB_24MHZ =
1453 CLKCTL2_TUPLE_MUXA(USBCLKSRC24MCLKSEL_OFFSET, 1), /*!< Attach FRO1_DIV8 clock to 24MHz USB OSC Clock. */
1454
1455 kFRO1_DIV3_to_COMMON_BASE =
1456 CLKCTL2_TUPLE_MUXA(COMNBASECLKSEL_OFFSET, 0), /*!< Attach Fro1 divided-by-3 to Common Base Clock. */
1457 kFRO1_DIV1_to_COMMON_BASE =
1458 CLKCTL2_TUPLE_MUXA(COMNBASECLKSEL_OFFSET, 1), /*!< Attach Fro1 divided-by-1 to Common Base Clock. */
1459 kFRO0_DIV3_to_COMMON_BASE =
1460 CLKCTL2_TUPLE_MUXA(COMNBASECLKSEL_OFFSET, 2), /*!< Attach Fro0 divided-by-3 to Common Base Clock. */
1461 kLPOSC_to_COMMON_BASE = CLKCTL2_TUPLE_MUXA(COMNBASECLKSEL_OFFSET, 3), /*!< Attach LPOSC to Common Base Clock. */
1462
1463 kOSC_CLK_to_EUSB_24MHZ =
1464 CLKCTL2_TUPLE_MUXA(EUSBCLKSRC24MCLKSEL_OFFSET, 0), /*!< Attach OSC_CLK clock to 24MHz eUSB OSC Clock. */
1465 kFRO1_DIV8_to_EUSB_24MHZ =
1466 CLKCTL2_TUPLE_MUXA(EUSBCLKSRC24MCLKSEL_OFFSET, 1), /*!< Attach FRO1_DIV8 clock to 24MHz eUSB OSC Clock. */
1467
1468 kFRO1_DIV8_to_MAIN_PLL0 =
1469 CLKCTL2_TUPLE_MUXA(MAINPLL0CLKSEL_OFFSET, 0), /*!< Attach FRO1_DIV8 clock to Main PLL0 Clock. */
1470 kOSC_CLK_to_MAIN_PLL0 =
1471 CLKCTL2_TUPLE_MUXA(MAINPLL0CLKSEL_OFFSET, 1), /*!< Attach OSC_CLK clock to Main PLL0 Clock. */
1472
1473 kFRO1_DIV8_to_AUDIO_PLL0 =
1474 CLKCTL2_TUPLE_MUXA(AUDIOPLL0CLKSEL_OFFSET, 0), /*!< Attach FRO1_DIV8 to Audio PLL0 Clock. */
1475 kOSC_CLK_to_AUDIO_PLL0 = CLKCTL2_TUPLE_MUXA(AUDIOPLL0CLKSEL_OFFSET,
1476 1), /*!< Attach OSC_CLK clock (User-Selectable) to Audio PLL0 Clock. */
1477 kSENSE_BASE_to_SENSE_MAIN =
1478 CLKCTL3_TUPLE_MUXA(SENSE_MAINCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to Sense main clock. */
1479 kFRO2_DIV1_to_SENSE_MAIN =
1480 CLKCTL3_TUPLE_MUXA(SENSE_MAINCLKSEL_OFFSET, 1), /*!< Attach FRO2 max clock to Sense main clock. */
1481 kAUDIO_PLL_PFD3_to_SENSE_MAIN =
1482 CLKCTL3_TUPLE_MUXA(SENSE_MAINCLKSEL_OFFSET, 2), /*!< Attach Audio PLL PFD3 clock to Sense main clock. */
1483 kFRO1_DIV1_to_SENSE_MAIN =
1484 CLKCTL3_TUPLE_MUXA(SENSE_MAINCLKSEL_OFFSET, 3), /*!< Attach FRO1 max clock to Sense main clock. */
1485
1486 kSENSE_BASE_to_SENSE_RAM =
1487 CLKCTL3_TUPLE_MUXA(SENSERAMCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to Sense RAM clock. */
1488 kFRO2_DIV1_to_SENSE_RAM =
1489 CLKCTL3_TUPLE_MUXA(SENSERAMCLKSEL_OFFSET, 1), /*!< Attach FRO2 max clock to Sense RAM clock. */
1490 kAUDIO_PLL_PFD2_to_SENSE_RAM =
1491 CLKCTL3_TUPLE_MUXA(SENSERAMCLKSEL_OFFSET, 2), /*!< Attach Audio PLL PFD2 clock to Sense RAM clock. */
1492 kFRO1_DIV1_to_SENSE_RAM =
1493 CLKCTL3_TUPLE_MUXA(SENSERAMCLKSEL_OFFSET, 3), /*!< Attach FRO1 max clock to Sense RAM clock. */
1494
1495 kSENSE_BASE_to_OSTIMER = CLKCTL3_TUPLE_MUXA(OSEVENTTFCLKSEL_OFFSET, 0), /*!< Attach Sense Base to OSTIMER. */
1496 k32KHZ_WAKE_to_OSTIMER = CLKCTL3_TUPLE_MUXA(OSEVENTTFCLKSEL_OFFSET, 1), /*!< Attach 32k_wake_clk to OSTIMER. */
1497 kLPOSC_to_OSTIMER = CLKCTL3_TUPLE_MUXA(OSEVENTTFCLKSEL_OFFSET, 2), /*!< Attach LPOSC to OSTIMER. */
1498 kOSC_CLK_to_OSTIMER = CLKCTL3_TUPLE_MUXA(OSEVENTTFCLKSEL_OFFSET, 3), /*!< Attach OSC clock to OSTIMER. */
1499 kNONE_to_OSTIMER = CLKCTL3_TUPLE_MUXA_NONE(OSEVENTTFCLKSEL_OFFSET, 0), /*!< Attach NONE to OSTIMER. */
1500
1501 kSENSE_BASE_to_SDADC =
1502 CLKCTL3_TUPLE_MUXA(SDADCFCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to SDADC Functional Clock. */
1503 kFRO2_DIV8_to_SDADC =
1504 CLKCTL3_TUPLE_MUXA(SDADCFCLKSEL_OFFSET, 1), /*!< Attach FRO2_DIV8 clock to SDADC Functional Clock. */
1505 kAUDIO_PLL_to_SDADC =
1506 CLKCTL3_TUPLE_MUXA(SDADCFCLKSEL_OFFSET, 2), /*!< Attach Audio PLL VCO clock to SDADC Functional Clock. */
1507 kAUDIO_VDD1_to_SDADC =
1508 CLKCTL3_TUPLE_MUXA(SDADCFCLKSEL_OFFSET, 3), /*!< Attach audio_clk to SDADC Functional Clock. */
1509 kNONE_to_SDADC = CLKCTL3_TUPLE_MUXA_NONE(SDADCFCLKSEL_OFFSET, 0), /*!< Attach NONE to SDADC Functional Clock. */
1510
1511 kSENSE_BASE_to_ADC =
1512 CLKCTL3_TUPLE_MUXA(SARADCFCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to SARADC Functional Clock. */
1513 kMAIN_PLL_PFD1_to_ADC =
1514 CLKCTL3_TUPLE_MUXA(SARADCFCLKSEL_OFFSET, 1), /*!< Attach main_pll_pfd1 to SARADC Functional Clock. */
1515 kFRO2_DIV1_to_ADC =
1516 CLKCTL3_TUPLE_MUXA(SARADCFCLKSEL_OFFSET, 2), /*!< Attach FRO0 max clock to SARADC Functional Clock. */
1517 kOSC_CLK_to_ADC = CLKCTL3_TUPLE_MUXA(SARADCFCLKSEL_OFFSET, 3), /*!< Attach osc_clk to SARADC Functional Clock. */
1518 kNONE_to_ADC = CLKCTL3_TUPLE_MUXA_NONE(SARADCFCLKSEL_OFFSET, 0), /*!< Attach NONE to SARADC Functional Clock. */
1519
1520 kOSC32K_to_32K_WAKE = CLKCTL3_TUPLE_MUXA(WAKE32KCLKSEL_OFFSET, 0), /*!< Attach OSC 32K to Wake 32k Clock. */
1521 kLPOSC_DIV32_to_32K_WAKE = CLKCTL3_TUPLE_MUXA(
1522 WAKE32KCLKSEL_OFFSET, 1), /*!< Attach LPOSC clock divided by 32 by default to Wake 32k Clock. */
1523 kNONE_to_32K_WAKE = CLKCTL3_TUPLE_MUXA(WAKE32KCLKSEL_OFFSET, 3), /*!< Attach NONE to Wake 32k Clock. */
1524
1525 kSENSE_BASE_to_MICFIL0 =
1526 CLKCTL3_TUPLE_MUXA(MICFIL0FCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to MICFIL0 Functional Clock. */
1527 kAUDIO_PLL_PFD3_to_MICFIL0 =
1528 CLKCTL3_TUPLE_MUXA(MICFIL0FCLKSEL_OFFSET, 1), /*!< Attach Audio PLL PFD3 clock to MICFIL0 Functional Clock. */
1529 kFRO2_DIV1_to_MICFIL0 =
1530 CLKCTL3_TUPLE_MUXA(MICFIL0FCLKSEL_OFFSET, 2), /*!< Attach FRO2 MAX clock to MICFIL0 Functional Clock. */
1531 kAUDIO_VDD1_to_MICFIL0 =
1532 CLKCTL3_TUPLE_MUXA(MICFIL0FCLKSEL_OFFSET, 3), /*!< Attach Audio clock to MICFIL0 Functional Clock. */
1533 kNONE_to_MICFIL0 =
1534 CLKCTL3_TUPLE_MUXA_NONE(MICFIL0FCLKSEL_OFFSET, 0), /*!< Attach NONE to MICFIL0 Functional Clock. */
1535
1536 kSENSE_BASE_to_LPI2C15 =
1537 CLKCTL3_TUPLE_MUXA(LPI2CFCLKSEL_OFFSET, 0), /*!< Attach Sense base clock to LPI2C15 Functional Clock. */
1538 kFRO1_DIV1_to_LPI2C15 =
1539 CLKCTL3_TUPLE_MUXA(LPI2CFCLKSEL_OFFSET, 1), /*!< Attach FRO1 max clock to LPI2C15 Functional Clock. */
1540 kFRO1_DIV2_to_LPI2C15 =
1541 CLKCTL3_TUPLE_MUXA(LPI2CFCLKSEL_OFFSET, 2), /*!< Attach FRO1 divided-by-2 to LPI2C15 Functional Clock. */
1542 kFRO2_DIV1_to_LPI2C15 =
1543 CLKCTL3_TUPLE_MUXA(LPI2CFCLKSEL_OFFSET, 3), /*!< Attach FRO2 max clock to LPI2C15 Functional Clock. */
1544 kNONE_to_LPI2C15 = CLKCTL3_TUPLE_MUXA_NONE(LPI2CFCLKSEL_OFFSET, 0), /*!< Attach NONE to LPI2C15 Functional Clock. */
1545
1546 kSENSE_BASE_to_VDD1_CLKOUT =
1547 CLKCTL3_TUPLE_MUXA(SENSE_CLKOUTCLKSEL_OFFSET, 0), /*!< Attach Sense VDD1 Base Clock to VDD1 CLKOUT Clock. */
1548 kAUDIO_PLL_PFD3_to_VDD1_CLKOUT =
1549 CLKCTL3_TUPLE_MUXA(SENSE_CLKOUTCLKSEL_OFFSET, 1), /*!< Attach AUDIO PLL PFD3 Clock to VDD1 CLKOUT Clock. */
1550 kFRO2_DIV1_to_VDD1_CLKOUT =
1551 CLKCTL3_TUPLE_MUXA(SENSE_CLKOUTCLKSEL_OFFSET, 2), /*!< Attach FRO2 Max Clock to VDD1 CLKOUT Clock. */
1552 kFRO1_DIV1_to_VDD1_CLKOUT =
1553 CLKCTL3_TUPLE_MUXA(SENSE_CLKOUTCLKSEL_OFFSET, 3), /*!< Attach FRO1 Max Clock to VDD1 CLKOUT Clock. */
1554 kNONE_to_VDD1_CLKOUT =
1555 CLKCTL3_TUPLE_MUXA_NONE(SENSE_CLKOUTCLKSEL_OFFSET, 0), /*!< Attach NONE to VDD1 CLKOUT Clock. */
1556
1557 kMEDIA_VDDN_BASE_to_MEDIA_VDDN =
1558 CLKCTL4_TUPLE_MUXA(MEDIAVDDNCLKSEL_OFFSET, 0), /*!< Attach MEDIA VDDN base clock to MEDIA VDDN clock. */
1559 kMAIN_PLL_PFD0_to_MEDIA_VDDN =
1560 CLKCTL4_TUPLE_MUXA(MEDIAVDDNCLKSEL_OFFSET, 1), /*!< Attach MAIN PLL PFD0 to MEDIA VDDN clock. */
1561 kFRO0_DIV1_to_MEDIA_VDDN =
1562 CLKCTL4_TUPLE_MUXA(MEDIAVDDNCLKSEL_OFFSET, 2), /*!< Attach FRO0 max to MEDIA VDDN clock. */
1563 kMAIN_PLL_PFD2_to_MEDIA_VDDN =
1564 CLKCTL4_TUPLE_MUXA(MEDIAVDDNCLKSEL_OFFSET, 3), /*!< Attach MAIN PLL PFD2 to MEDIA VDDN clock. */
1565
1566 kMEDIA_VDD2_BASE_to_MEDIA_MAIN =
1567 CLKCTL4_TUPLE_MUXA(MEDIAMAINCLKSEL_OFFSET, 0), /*!< Attach MEDIA VDD2 base clock to MEDIA MAIN clock. */
1568 kMAIN_PLL_PFD0_to_MEDIA_MAIN =
1569 CLKCTL4_TUPLE_MUXA(MEDIAMAINCLKSEL_OFFSET, 1), /*!< Attach Main PLL PFD0 clock to MEDIA MAIN clock. */
1570 kFRO0_DIV1_to_MEDIA_MAIN = CLKCTL4_TUPLE_MUXA(MEDIAMAINCLKSEL_OFFSET, 2), /*!< Attach FRO0 to MEDIA MAIN clock. */
1571 kMAIN_PLL_PFD2_to_MEDIA_MAIN =
1572 CLKCTL4_TUPLE_MUXA(MEDIAMAINCLKSEL_OFFSET, 3), /*!< Attach Main PLL PFD2 clock to MEDIA MAIN clock. */
1573
1574 kFRO1_DIV3_to_MEDIA_VDDN_BASE =
1575 CLKCTL4_TUPLE_MUXA(MDNBASECLKSEL_OFFSET, 0), /*!< Attach Fro1 divided-by-3 to Media VDDN Base Clock. */
1576 kFRO1_DIV1_to_MEDIA_VDDN_BASE =
1577 CLKCTL4_TUPLE_MUXA(MDNBASECLKSEL_OFFSET, 1), /*!< Attach Fro1 divided-by-1 to Media VDDN Base Clock. */
1578 kFRO0_DIV3_to_MEDIA_VDDN_BASE =
1579 CLKCTL4_TUPLE_MUXA(MDNBASECLKSEL_OFFSET, 2), /*!< Attach Fro0 divided-by-3 to Media VDDN Base Clock. */
1580 kLPOSC_to_MEDIA_VDDN_BASE =
1581 CLKCTL4_TUPLE_MUXA(MDNBASECLKSEL_OFFSET, 3), /*!< Attach LPOSC clock to Media VDDN Base Clock. */
1582
1583 kFRO1_DIV3_to_MEDIA_VDD2_BASE =
1584 CLKCTL4_TUPLE_MUXA(MD2BASECLKSEL_OFFSET, 0), /*!< Attach Fro1 divided-by-3 to Media VDD2 Base Clock. */
1585 kFRO1_DIV1_to_MEDIA_VDD2_BASE =
1586 CLKCTL4_TUPLE_MUXA(MD2BASECLKSEL_OFFSET, 1), /*!< Attach Fro1 divided-by-1 to Media VDD2 Base Clock. */
1587 kFRO0_DIV3_to_MEDIA_VDD2_BASE =
1588 CLKCTL4_TUPLE_MUXA(MD2BASECLKSEL_OFFSET, 2), /*!< Attach Fro0 divided-by-3 to Media VDD2 Base Clock. */
1589 kLPOSC_to_MEDIA_VDD2_BASE =
1590 CLKCTL4_TUPLE_MUXA(MD2BASECLKSEL_OFFSET, 3), /*!< Attach LPOSC clock to Media VDD2 Base Clock. */
1591
1592 kCOMMON_BASE_to_XSPI2 =
1593 CLKCTL4_TUPLE_MUXA(XSPI2FCLKSEL_OFFSET, 0), /*!< Attach Common VDDN base clock to XSPI2 Functional Clock. */
1594 kAUDIO_PLL_PFD1_to_XSPI2 =
1595 CLKCTL4_TUPLE_MUXA(XSPI2FCLKSEL_OFFSET, 1), /*!< Attach Audio PLL PFD1 clock to XSPI2 Functional Clock. */
1596 kFRO0_DIV1_to_XSPI2 =
1597 CLKCTL4_TUPLE_MUXA(XSPI2FCLKSEL_OFFSET, 2), /*!< Attach FRO0 max clock to XSPI2 Functional Clock. */
1598 kMAIN_PLL_PFD3_to_XSPI2 =
1599 CLKCTL4_TUPLE_MUXA(XSPI2FCLKSEL_OFFSET, 3), /*!< Attach Main PLL PFD3 clock to XSPI2 Functional Clock. */
1600 kNONE_to_XSPI2 = CLKCTL4_TUPLE_MUXA_NONE(XSPI2FCLKSEL_OFFSET, 0), /*!< Attach NONE to XSPI2 Functional Clock. */
1601
1602 k32KHZ_WAKE_to_USB = CLKCTL4_TUPLE_MUXA(USBFCLKSEL_OFFSET, 0), /*!< Attach Wakeup 32K to USB Functional Clock. */
1603 kLPOSC_to_USB = CLKCTL4_TUPLE_MUXA(USBFCLKSEL_OFFSET, 1), /*!< Attach LPOSC_1M to USB Functional Clock. */
1604 kUSB_24MHZ_to_USB =
1605 CLKCTL4_TUPLE_MUXA(USBFCLKSEL_OFFSET, 2), /*!< Attach 24MHz USB OSC clock to USB Functional Clock. */
1606 kNONE_to_USB = CLKCTL4_TUPLE_MUXA_NONE(USBFCLKSEL_OFFSET, 0), /*!< Attach NONE to USB Functional Clock. */
1607
1608 k32KHZ_WAKE_to_EUSB = CLKCTL4_TUPLE_MUXA(EUSBFCLKSEL_OFFSET, 0), /*!< Attach Wakeup 32K to eUSB Functional Clock. */
1609 kLPOSC_to_EUSB = CLKCTL4_TUPLE_MUXA(EUSBFCLKSEL_OFFSET, 1), /*!< Attach LPOSC_1M to eUSB Functional Clock. */
1610 kEUSB_24MHZ_to_EUSB =
1611 CLKCTL4_TUPLE_MUXA(EUSBFCLKSEL_OFFSET, 2), /*!< Attach 24MHz eUSB OSC clock to eUSB Functional Clock. */
1612 kNONE_to_EUSB = CLKCTL4_TUPLE_MUXA_NONE(EUSBFCLKSEL_OFFSET, 0), /*!< Attach NONE to eUSB Functional Clock. */
1613
1614 kMEDIA_VDDN_BASE_to_SDIO0 =
1615 CLKCTL4_TUPLE_MUXA(SDIO0FCLKSEL_OFFSET, 0), /*!< Attach Media VDDN base clock to SDIO0 Functional Clock. */
1616 kAUDIO_PLL_PFD0_to_SDIO0 =
1617 CLKCTL4_TUPLE_MUXA(SDIO0FCLKSEL_OFFSET, 1), /*!< Attach Audio PLL PFD0 clock to SDIO0 Functional Clock. */
1618 kFRO0_DIV1_to_SDIO0 =
1619 CLKCTL4_TUPLE_MUXA(SDIO0FCLKSEL_OFFSET, 2), /*!< Attach FRO0 max clock to SDIO0 Functional Clock. */
1620 kMAIN_PLL_PFD2_to_SDIO0 =
1621 CLKCTL4_TUPLE_MUXA(SDIO0FCLKSEL_OFFSET, 3), /*!< Attach Main PLL PFD2 clock to SDIO0 Functional Clock. */
1622 kNONE_to_SDIO0 = CLKCTL4_TUPLE_MUXA_NONE(SDIO0FCLKSEL_OFFSET, 0), /*!< Attach NONE to SDIO0 Functional Clock. */
1623
1624 kMEDIA_VDDN_BASE_to_SDIO1 =
1625 CLKCTL4_TUPLE_MUXA(SDIO1FCLKSEL_OFFSET, 0), /*!< Attach Media VDDN base clock to SDIO1 Functional Clock. */
1626 kAUDIO_PLL_PFD0_to_SDIO1 =
1627 CLKCTL4_TUPLE_MUXA(SDIO1FCLKSEL_OFFSET, 1), /*!< Attach Audio PLL PFD0 clock to SDIO1 Functional Clock. */
1628 kFRO0_DIV1_to_SDIO1 =
1629 CLKCTL4_TUPLE_MUXA(SDIO1FCLKSEL_OFFSET, 2), /*!< Attach FRO0 max clock to SDIO1 Functional Clock. */
1630 kMAIN_PLL_PFD1_to_SDIO1 =
1631 CLKCTL4_TUPLE_MUXA(SDIO1FCLKSEL_OFFSET, 3), /*!< Attach Main PLL PFD1 clock to SDIO1 Functional Clock. */
1632 kNONE_to_SDIO1 = CLKCTL4_TUPLE_MUXA_NONE(SDIO1FCLKSEL_OFFSET, 0), /*!< Attach NONE to SDIO1 Functional Clock. */
1633
1634 kMEDIA_VDD2_BASE_to_MIPI_DSI_HOST_PHY =
1635 CLKCTL4_TUPLE_MUXA(DPHYCLKSEL_OFFSET, 0), /*!< Attach Media VDD2 base clock to MIPI_DSI_Host PHY Clock. */
1636 kFRO0_DIV1_to_MIPI_DSI_HOST_PHY =
1637 CLKCTL4_TUPLE_MUXA(DPHYCLKSEL_OFFSET, 2), /*!< Attach FRO0 max clock to MIPI_DSI_Host PHY Clock. */
1638 kAUDIO_PLL_PFD2_to_MIPI_DSI_HOST_PHY =
1639 CLKCTL4_TUPLE_MUXA(DPHYCLKSEL_OFFSET, 3), /*!< Attach Audio PLL PFD2 clock to MIPI_DSI_Host PHY Clock. */
1640 kNONE_to_MIPI_DSI_HOST_PHY =
1641 CLKCTL4_TUPLE_MUXA_NONE(DPHYCLKSEL_OFFSET, 0), /*!< Attach NONE to MIPI_DSI_Host PHY Clock. */
1642
1643 kMEDIA_VDD2_BASE_to_MIPI_DPHYESC_CLK = CLKCTL4_TUPLE_MUXA(
1644 DPHYESCCLKSEL_OFFSET, 0), /*!< Attach Media VDD2 base clock to MIPI_DSI_Host DPHY Escape Mode Clock. */
1645 kMAIN_PLL_PFD1_to_MIPI_DPHYESC_CLK = CLKCTL4_TUPLE_MUXA(
1646 DPHYESCCLKSEL_OFFSET, 1), /*!< Attach Main PLL PFD1 clock to MIPI_DSI_Host DPHY Escape Mode Clock. */
1647 kFRO0_DIV1_to_MIPI_DPHYESC_CLK = CLKCTL4_TUPLE_MUXA(
1648 DPHYESCCLKSEL_OFFSET, 2), /*!< Attach FRO0 max clock to MIPI_DSI_Host DPHY Escape Mode Clock. */
1649 kAUDIO_PLL_PFD2_to_MIPI_DPHYESC_CLK = CLKCTL4_TUPLE_MUXA(
1650 DPHYESCCLKSEL_OFFSET, 3), /*!< Attach Audio PLL PFD2 clock to MIPI_DSI_Host DPHY Escape Mode Clock. */
1651 kNONE_to_MIPI_DPHYESC_CLK =
1652 CLKCTL4_TUPLE_MUXA_NONE(DPHYESCCLKSEL_OFFSET, 0), /*!< Attach NONE to MIPI_DSI_Host DPHY Escape Mode Clock. */
1653
1654 kMEDIA_VDD2_BASE_to_VGPU =
1655 CLKCTL4_TUPLE_MUXA(VGPUCLKSEL_OFFSET, 0), /*!< Attach Media VDD2 base clock to VGPU Clock. */
1656 kMAIN_PLL_PFD0_to_VGPU = CLKCTL4_TUPLE_MUXA(VGPUCLKSEL_OFFSET, 1), /*!< Attach Main PLL PFD0 clock to VGPU Clock. */
1657 kFRO0_DIV1_to_VGPU = CLKCTL4_TUPLE_MUXA(VGPUCLKSEL_OFFSET, 2), /*!< Attach FRO0 max clock to VGPU Clock. */
1658 kMAIN_PLL_PFD2_to_VGPU = CLKCTL4_TUPLE_MUXA(VGPUCLKSEL_OFFSET, 3), /*!< Attach Main PLL PFD2 clock to VGPU Clock. */
1659 kNONE_to_VGPU = CLKCTL4_TUPLE_MUXA_NONE(VGPUCLKSEL_OFFSET, 0), /*!< Attach NONE to VGPU Clock. */
1660
1661 kMEDIA_VDD2_BASE_to_LPSPI14 =
1662 CLKCTL4_TUPLE_MUXA(LPSPI14CLKSEL_OFFSET, 0), /*!< Attach Media VDD2 base clock to LPSPI14 Clock. */
1663 kFRO0_DIV1_to_LPSPI14 = CLKCTL4_TUPLE_MUXA(LPSPI14CLKSEL_OFFSET, 1), /*!< Attach FRO0 max clock to LPSPI14 Clock. */
1664 kMAIN_PLL_PFD0_to_LPSPI14 =
1665 CLKCTL4_TUPLE_MUXA(LPSPI14CLKSEL_OFFSET, 2), /*!< Attach Main PLL PFD0 clock to LPSPI14 Clock. */
1666 kFRO1_DIV1_to_LPSPI14 = CLKCTL4_TUPLE_MUXA(LPSPI14CLKSEL_OFFSET, 3), /*!< Attach FRO1 max clock to LPSPI14 Clock. */
1667 kNONE_to_LPSPI14 = CLKCTL4_TUPLE_MUXA_NONE(LPSPI14CLKSEL_OFFSET, 0), /*!< Attach NONE to LPSPI14 Clock. */
1668
1669 kMEDIA_VDD2_BASE_to_LPSPI16 =
1670 CLKCTL4_TUPLE_MUXA(LPSPI16CLKSEL_OFFSET, 0), /*!< Attach Media VDD2 base clock to LPSPI16 Clock. */
1671 kFRO0_DIV1_to_LPSPI16 = CLKCTL4_TUPLE_MUXA(LPSPI16CLKSEL_OFFSET, 1), /*!< Attach FRO0 max clock to LPSPI16 Clock. */
1672 kMAIN_PLL_PFD0_to_LPSPI16 =
1673 CLKCTL4_TUPLE_MUXA(LPSPI16CLKSEL_OFFSET, 2), /*!< Attach Main PLL PFD0 clock to LPSPI16 Clock. */
1674 kFRO1_DIV1_to_LPSPI16 = CLKCTL4_TUPLE_MUXA(LPSPI16CLKSEL_OFFSET, 3), /*!< Attach FRO1 max clock to LPSPI16 Clock. */
1675 kNONE_to_LPSPI16 = CLKCTL4_TUPLE_MUXA_NONE(LPSPI16CLKSEL_OFFSET, 0), /*!< Attach NONE to LPSPI16 Clock. */
1676
1677 kMEDIA_VDD2_BASE_to_FLEXIO =
1678 CLKCTL4_TUPLE_MUXA(FLEXIOCLKSEL_OFFSET, 0), /*!< Attach MEDIA VDD2 base clock to FLEXIO. */
1679 kFRO0_DIV1_to_FLEXIO = CLKCTL4_TUPLE_MUXA(FLEXIOCLKSEL_OFFSET, 1), /*!< Attach FRO0 max clock to FLEXIO. */
1680 kFRO1_DIV1_to_FLEXIO = CLKCTL4_TUPLE_MUXA(FLEXIOCLKSEL_OFFSET, 2), /*!< Attach FRO1 max clock to FLEXIO. */
1681 kMAIN_PLL_PFD3_to_FLEXIO = CLKCTL4_TUPLE_MUXA(FLEXIOCLKSEL_OFFSET, 3), /*!< Attach Main PLL PFD3 clock to FLEXIO. */
1682 kNONE_to_FLEXIO = CLKCTL4_TUPLE_MUXA_NONE(FLEXIOCLKSEL_OFFSET, 0), /*!< Attach NONE to FLEXIO. */
1683
1684 kMEDIA_VDD2_BASE_to_LCDIF =
1685 CLKCTL4_TUPLE_MUXA(LCDIFPIXELCLKSEL_OFFSET, 0), /*!< Attach MEDIA VDD2 base clock to LCDIF. */
1686 kMAIN_PLL_PFD2_to_LCDIF =
1687 CLKCTL4_TUPLE_MUXA(LCDIFPIXELCLKSEL_OFFSET, 1), /*!< Attach Main PLL PFD0 clock to LCDIF. */
1688 kFRO0_DIV1_to_LCDIF = CLKCTL4_TUPLE_MUXA(LCDIFPIXELCLKSEL_OFFSET, 2), /*!< Attach FRO0 max clock to LCDIF. */
1689 kAUDIO_PLL_PFD1_to_LCDIF = CLKCTL4_TUPLE_MUXA(LCDIFPIXELCLKSEL_OFFSET, 3), /*!< Attach Audio PLL PFD1 to LCDIF. */
1690 kNONE_to_LCDIF = CLKCTL4_TUPLE_MUXA_NONE(LCDIFPIXELCLKSEL_OFFSET, 0), /*!< Attach NONE to LCDIF. */
1691 } clock_attach_id_t;
1692
1693 /*! @brief Clock dividers */
1694 typedef enum _clock_div_name
1695 {
1696 #if defined(FSL_CLOCK_DRIVER_COMPUTE)
1697 kCLOCK_DivCmptMainClk = CLKCTL0_TUPLE_MUXA(CMPTMAINCLKDIV_OFFSET, 0), /*!< VDD2_COMP Main clock Divider. */
1698 kCLOCK_DivDspClk = CLKCTL0_TUPLE_MUXA(DSPCPUCLKDIV_OFFSET, 0), /*!< DSP CPU Clk Divider. */
1699 kCLOCK_DivComputeRamClk = CLKCTL0_TUPLE_MUXA(RAMCLKDIV_OFFSET, 0), /*!< RAM Clk Divider. */
1700 kCLOCK_DivTpiuClk = CLKCTL0_TUPLE_MUXA(TPIUCLKDIV_OFFSET, 0), /*!< TIPU Clk Divider. */
1701 kCLOCK_DivXspi0Clk = CLKCTL0_TUPLE_MUXA(XSPI0FCLKDIV_OFFSET, 0), /*!< XSPI0 Clk Divider. */
1702 kCLOCK_DivXspi1Clk = CLKCTL0_TUPLE_MUXA(XSPI1FCLKDIV_OFFSET, 0), /*!< XSPI1 Clk Divider. */
1703 kCLOCK_DivSctClk = CLKCTL0_TUPLE_MUXA(SCTFCLKDIV_OFFSET, 0), /*!< SCT functional Clk Divider. */
1704 kCLOCK_DivUtick0Clk = CLKCTL0_TUPLE_MUXA(UTICK0CLKDIV_OFFSET, 0), /*!< UTICK0 Clk Divider. */
1705 kCLOCK_DivSystickClk = CLKCTL0_TUPLE_MUXA(SYSTICKFCLKDIV_OFFSET, 0), /*!< SYSTICK Clk Divider. */
1706 kCLOCK_DivSai012Clk = CLKCTL0_TUPLE_MUXA(SAI012CLKDIV_OFFSET, 0), /*!< SAI0, SAI1 and SAI2 Clk Divider. */
1707 kCLOCK_DivTrngClk = CLKCTL0_TUPLE_MUXA(TRNGFCLKDIV_OFFSET, 0), /*!< TRNG Clk Divider. */
1708 kCLOCK_DivI3c01PClk = CLKCTL0_TUPLE_MUXA(I3C01PCLKDIV_OFFSET, 0), /*!< I3C01 P-Clk Divider. */
1709 kCLOCK_DivI3c01Clk = CLKCTL0_TUPLE_MUXA(I3C01FCLKDIV_OFFSET, 0), /*!< I3C01 functional Clk Divider. */
1710 kCLOCK_DivClockOut = CLKCTL0_TUPLE_MUXA(CLKOUTCLKDIV_OFFSET, 0), /*!< CLKOUT Divider. */
1711 kCLOCK_DivFcclk0Clk = CLKCTL0_TUPLE_MUXA(FCCLK0DIV_OFFSET, 0), /*!< FCCLK0 Clk Divider. */
1712 kCLOCK_DivFcclk1Clk = CLKCTL0_TUPLE_MUXA(FCCLK1DIV_OFFSET, 0), /*!< FCCLK1 Clk Divider. */
1713 kCLOCK_DivFcclk2Clk = CLKCTL0_TUPLE_MUXA(FCCLK2DIV_OFFSET, 0), /*!< FCCLK2 Clk Divider. */
1714 kCLOCK_DivFcclk3Clk = CLKCTL0_TUPLE_MUXA(FCCLK3DIV_OFFSET, 0), /*!< FCCLK3 Clk Divider. */
1715 kCLOCK_DivCtimer0Clk = CLKCTL0_TUPLE_MUXA(CTIMER0CLKDIV_OFFSET, 0), /*!< CTimer0 Clk Divider. */
1716 kCLOCK_DivCtimer1Clk = CLKCTL0_TUPLE_MUXA(CTIMER1CLKDIV_OFFSET, 0), /*!< CTimer1 Clk Divider. */
1717 kCLOCK_DivCtimer2Clk = CLKCTL0_TUPLE_MUXA(CTIMER2CLKDIV_OFFSET, 0), /*!< CTimer2 Clk Divider. */
1718 kCLOCK_DivCtimer3Clk = CLKCTL0_TUPLE_MUXA(CTIMER3CLKDIV_OFFSET, 0), /*!< CTimer3 Clk Divider. */
1719 kCLOCK_DivCtimer4Clk = CLKCTL0_TUPLE_MUXA(CTIMER4CLKDIV_OFFSET, 0), /*!< CTimer4 Clk Divider. */
1720 #else
1721 kCLOCK_DivLPFlexComm17Clk = CLKCTL1_TUPLE_MUXA(FC17FCLKDIV_OFFSET, 0), /*!< LP_FLEXCOMM17 Clk Divider. */
1722 kCLOCK_DivLPFlexComm18Clk = CLKCTL1_TUPLE_MUXA(FC18FCLKDIV_OFFSET, 0), /*!< LP_FLEXCOMM18 Clk Divider. */
1723 kCLOCK_DivLPFlexComm19Clk = CLKCTL1_TUPLE_MUXA(FC19FCLKDIV_OFFSET, 0), /*!< LP_FLEXCOMM19 Clk Divider. */
1724 kCLOCK_DivLPFlexComm20Clk = CLKCTL1_TUPLE_MUXA(FC20FCLKDIV_OFFSET, 0), /*!< LP_FLEXCOMM20 Clk Divider. */
1725 kCLOCK_DivSenseDspClk = CLKCTL1_TUPLE_MUXA(SENSEDSPCPUCLKDIV_OFFSET, 0), /*!< Sense DSP Clk Divider. */
1726 kCLOCK_DivSai3Clk = CLKCTL1_TUPLE_MUXA(SAI3CLKDIV_OFFSET, 0), /*!< SAI3 FCLK Clk Divider. */
1727 kCLOCK_DivUtick1Clk = CLKCTL1_TUPLE_MUXA(UTICK1CLKDIV_OFFSET, 0), /*!< UTICK1 Functional Clk Divider. */
1728 kCLOCK_DivSystickClk = CLKCTL1_TUPLE_MUXA(SYSTICKFCLKDIV_OFFSET, 0), /*!< SYSTICK Functional Clk Divider. */
1729 kCLOCK_DivCtimer5Clk = CLKCTL1_TUPLE_MUXA(CTIMER5CLKDIV_OFFSET, 0), /*!< CTIMER5 FCLK Clk Divider. */
1730 kCLOCK_DivCtimer6Clk = CLKCTL1_TUPLE_MUXA(CTIMER6CLKDIV_OFFSET, 0), /*!< CTIMER6 FCLK Clk Divider. */
1731 kCLOCK_DivCtimer7Clk = CLKCTL1_TUPLE_MUXA(CTIMER7CLKDIV_OFFSET, 0), /*!< CTIMER7 FCLK Clk Divider. */
1732 kCLOCK_DivI3c23Clk = CLKCTL1_TUPLE_MUXA(I3C23FCLKDIV_OFFSET, 0), /*!< I3C2 and I3C3 Functional Clk Divider. */
1733 #endif
1734 kCLOCK_DivCommonVddnClk = CLKCTL2_TUPLE_MUXA(COMMONVDDNCLKDIV_OFFSET, 0), /*!< Common VDDN Clk Divider. */
1735 kCLOCK_DivSenseMainClk = CLKCTL3_TUPLE_MUXA(SENSEMAINCLKDIV_OFFSET, 0), /*!< VDD1_SENSE Main Clock Divider. */
1736 kCLOCK_DivSenseRamClk = CLKCTL3_TUPLE_MUXA(SENSERAMCLKDIV_OFFSET, 0), /*!< Senese RAM Clk Divider. */
1737 kCLOCK_DivOstimerClk = CLKCTL3_TUPLE_MUXA(OSEVENTFCLKDIV_OFFSET, 0), /*!< OSTIMER Clk Divider. */
1738 kCLOCK_DivSdadcClk = CLKCTL3_TUPLE_MUXA(SDADCFCLKDIV_OFFSET, 0), /*!< SDADC Clk Divider. */
1739 kCLOCK_DivAdcClk = CLKCTL3_TUPLE_MUXA(SARADCFCLKDIV_OFFSET, 0), /*!< SARADC Clk Divider. */
1740 kCLOCK_Div32KhzWakeClk = CLKCTL3_TUPLE_MUXA(A32KHZWAKECLKDIV_OFFSET, 0), /*!< 32KHZ Wakeup Clk Divider. */
1741 kCLOCK_DivMicfil0Clk = CLKCTL3_TUPLE_MUXA(MICFIL0FCLKDIV_OFFSET, 0), /*!< DMIC0 Clk Divider. */
1742 kCLOCK_DivLpi2c15Clk = CLKCTL3_TUPLE_MUXA(LPI2CFCLKDIV_OFFSET, 0), /*!< PMIC LPI2C Clk Divider. */
1743 kCLOCK_DivVdd1ClockOut = CLKCTL3_TUPLE_MUXA(SENSE_CLKOUTCLKDIV_OFFSET, 0), /*!< CLKOUT_VDD1 Clk Divider. */
1744
1745 kCLOCK_DivMediaVddnClk = CLKCTL4_TUPLE_MUXA(MEDIAVDDNCLKDIV_OFFSET, 0), /*!< Media VDDN Clk Divider. */
1746 kCLOCK_DivMediaMainClk = CLKCTL4_TUPLE_MUXA(MEDIAMAINCLKDIV_OFFSET, 0), /*!< Media Main Clk Divider. */
1747 kCLOCK_DivXspi2Clk = CLKCTL4_TUPLE_MUXA(XSPI2FCLKDIV_OFFSET, 0), /*!< XSPI2 Clk Divider. */
1748 kCLOCK_DivSdio0Clk = CLKCTL4_TUPLE_MUXA(SDIO0FCLKDIV_OFFSET, 0), /*!< SDIO0 Clk Divider. */
1749 kCLOCK_DivSdio1Clk = CLKCTL4_TUPLE_MUXA(SDIO1FCLKDIV_OFFSET, 0), /*!< SDIO1 Clk Divider. */
1750 kCLOCK_DivDphyClk = CLKCTL4_TUPLE_MUXA(DPHYCLKDIV_OFFSET, 0), /*!< DPHY Clk Divider. */
1751 kCLOCK_DivDphyEscRxClk = CLKCTL4_TUPLE_MUXA(DPHYESCRXCLKDIV_OFFSET, 0), /*!< DphyEscRx Clk Divider. */
1752 kCLOCK_DivDphyEscTxClk = CLKCTL4_TUPLE_MUXA(DPHYESCTXCLKDIV_OFFSET, 0), /*!< DphyEscTx Clk Divider. */
1753 kCLOCK_DivVgpuClk = CLKCTL4_TUPLE_MUXA(VGPUCLKDIV_OFFSET, 0), /*!< VGPU Clk Divider. */
1754 kCLOCK_DivLpspi14Clk = CLKCTL4_TUPLE_MUXA(LPSPI14CLKDIV_OFFSET, 0), /*!< LPSPI14 Clk Divider. */
1755 kCLOCK_DivLpspi16Clk = CLKCTL4_TUPLE_MUXA(LPSPI16CLKDIV_OFFSET, 0), /*!< LPSPI16 Clk Divider. */
1756 kCLOCK_DivFlexioClk = CLKCTL4_TUPLE_MUXA(FLEXIOCLKDIV_OFFSET, 0), /*!< FLEXIO Clk Divider. */
1757 kCLOCK_DivLcdifClk = CLKCTL4_TUPLE_MUXA(LCDIFPIXELCLKDIV_OFFSET, 0), /*!< LCDIF Pixel Clk Divider. */
1758 kCLOCK_DivLowFreqClk = CLKCTL4_TUPLE_MUXA(LOWFREQCLKDIV_OFFSET, 0), /*!< Low frequency Clk Divider. */
1759 } clock_div_name_t;
1760
1761 /*! @brief FRO output enable. */
1762 typedef enum _clock_fro_output_en
1763 {
1764 kCLOCK_FroDiv1OutEn = FRO_CSR_CLKGATE(0x1U), /*!< Enable Fro Div1 output. */
1765 kCLOCK_FroDiv2OutEn = FRO_CSR_CLKGATE(0x2U), /*!< Enable Fro Div2 output. */
1766 kCLOCK_FroDiv3OutEn = FRO_CSR_CLKGATE(0x4U), /*!< Enable Fro Div3 output. */
1767 kCLOCK_FroDiv6OutEn = FRO_CSR_CLKGATE(0x8U), /*!< Enable Fro Div6 output. */
1768 kCLOCK_FroDiv8OutEn = FRO_CSR_CLKGATE(0x10U), /*!< Enable Fro Div8 output. */
1769 kCLOCK_FroAllOutEn = FRO_CSR_CLKGATE_MASK, /*!< Enable all Fro output. */
1770 } clock_fro_output_en_t;
1771
1772 /*! @brief FRO Interrupt control. */
1773 enum _clock_fro_interrupt
1774 {
1775 kCLOCK_FroTrimUpdateReqInt = FRO_CNFG1_TRUPREQ_IE_MASK, /*!< Trim Update Request Interrupt Enable. */
1776 kCLOCK_FroTuneErrInt = FRO_CNFG1_TUNE_ERR_IE_MASK, /*!< Tune Error Interrupt Enable. */
1777 kCLOCK_FroLossOfLockInt = FRO_CNFG1_LOL_ERR_IE_MASK, /*!< Loss-of-Lock Error Interrupt Enable. */
1778 kCLOCK_FroAllIntterrupt =
1779 kCLOCK_FroTrimUpdateReqInt | kCLOCK_FroTuneErrInt | kCLOCK_FroLossOfLockInt, /*!< All Interrupt Enable. */
1780 };
1781
1782 /*! @brief FRO flags. */
1783 enum _clock_fro_flag
1784 {
1785 kCLOCK_FroTuneOnceDone = FRO_CSR_TUNEONCE_DONE_MASK, /*!< FRO Tune Once Done Flag. */
1786 kCLOCK_FroTrimLock = FRO_CSR_TRIM_LOCK_MASK, /*!< FRO Trim Lock Flag. */
1787 kCLOCK_FroTrimUpdateReq = FRO_CSR_TRUPREQ_MASK, /*!< FRO Trim Update Request Flag. */
1788 kCLOCK_FroTuneErr = FRO_CSR_TUNE_ERR_MASK, /*!< FRO Tune Error Flag. */
1789 kCLOCK_FroLossOfLockErr = FRO_CSR_LOL_ERR_MASK, /*!< FRO Loss-of-lock Error Flag. */
1790 };
1791
1792 /*! @brief FRO configuration. */
1793 typedef struct _clock_fro_config
1794 {
1795 uint32_t targetFreq; /*!< Target frequency. */
1796 uint16_t refDiv; /*!< OSC Reference clock divider. 1 for divide ratio 1.*/
1797 uint16_t trim1DelayUs; /*!< Trim 1 delay in us, minimum is 15us. Used when running in Closed Loop mode and trim
1798 values are updated by 1 decimal unit.*/
1799 uint16_t trim2DelayUs; /*!< Trim 2 delay in us. Used at start of closed loop mode when auto tuner is updating trim
1800 values by 16 decimal unit steps */
1801 uint8_t range; /*!< Trim Expected Count Range. Specifies the + or - counts that the FRO frequency can be off from
1802 TEXPCNT to be considerred locked. The value/100 is the % deviation. */
1803 uint32_t enableInt; /*!< Enable interrupts. Bit mask of #_clock_fro_interrupt. */
1804 bool coarseTrimEn; /*!< Coarse Trim Enable. Set to true to allow autotrimming of the FRO high-byte trim bits. */
1805 } clock_fro_config_t;
1806
1807 /*! @brief Clock Control for each power domain. */
1808 typedef enum _clock_domain_enable
1809 {
1810 kCLOCK_Vdd2CompDomainEnable = 0x1U, /*!< Clock Control of VDD2_COMP Domain. */
1811 kCLOCK_Vdd1SenseDomainEnable = 0x2U, /*!< Clock Control of VDD1_SENSE Domain. */
1812 kCLOCK_Vdd2DspDomainEnable = 0x4U, /*!< Clock Control of VDD2_DSP Domain. */
1813 kCLOCK_Vdd2MediaDomainEnable = 0x8U, /*!< Clock Control of VDD2_MEDIA Domain. */
1814 kCLOCK_VddnMediaDomainEnable = 0x10U, /*!< Clock Control of VDDN_MEDIA Domain. */
1815 kCLOCK_Vdd2ComDomainEnable = 0x20U, /*!< Clock Control of VDD2_COM Domain. */
1816 kCLOCK_VddnComDomainEnable = 0x40U, /*!< Clock Control of VDDN_COM Domain. */
1817 kCLOCK_AllDomainEnable = 0x7FU /*!< Clock Control of all Domain. */
1818 } clock_domain_enable_t;
1819
1820 /*!
1821 * @brief PLL PFD clock name
1822 */
1823 typedef enum _clock_pfd
1824 {
1825 kCLOCK_Pfd0 = 0U, /*!< PLL PFD0 */
1826 kCLOCK_Pfd1 = 1U, /*!< PLL PFD1 */
1827 kCLOCK_Pfd2 = 2U, /*!< PLL PFD2 */
1828 kCLOCK_Pfd3 = 3U, /*!< PLL PFD3 */
1829 } clock_pfd_t;
1830
1831 /*! @brief MainPLL Reference Input Clock Source */
1832 typedef enum _main_pll_src
1833 {
1834 kCLOCK_MainPllFro1Div8 = 0, /*!< FRO1_DIV8 clock */
1835 kCLOCK_MainPllOscClk = 1, /*!< OSC clock */
1836 } main_pll_src_t;
1837
1838 /*! @brief MainPLL Multiplication Factor */
1839 typedef enum _main_pll_mult
1840 {
1841 kCLOCK_MainPllMult16 = 16U, /*!< Divide by 16 */
1842 kCLOCK_MainPllMult17 = 17U, /*!< Divide by 17 */
1843 kCLOCK_MainPllMult18 = 18U, /*!< Divide by 18 */
1844 kCLOCK_MainPllMult19 = 19U, /*!< Divide by 19 */
1845 kCLOCK_MainPllMult20 = 20U, /*!< Divide by 20 */
1846 kCLOCK_MainPllMult21 = 21U, /*!< Divide by 21 */
1847 kCLOCK_MainPllMult22 = 22U, /*!< Divide by 22 */
1848 } main_pll_mult_t;
1849
1850 /*! @brief PLL configuration for MAINPLL */
1851 typedef struct _clock_main_pll_config
1852 {
1853 main_pll_src_t main_pll_src; /*!< Reference Input Clock Source. */
1854 uint32_t numerator; /*!< 30 bit numerator of fractional loop divider. */
1855 uint32_t denominator; /*!< 30 bit numerator of fractional loop divider. */
1856 main_pll_mult_t main_pll_mult; /*!< Multiplication Factor. */
1857 } clock_main_pll_config_t;
1858
1859 /*! @brief AudioPll Reference Input Clock Source */
1860 typedef enum _audio_pll_src
1861 {
1862 kCLOCK_AudioPllFro1Div8 = 0, /*!< FRO1_DIV8 clock */
1863 kCLOCK_AudioPllOscClk = 1, /*!< OSC clock */
1864 } audio_pll_src_t;
1865
1866 /*! @brief AudioPll Multiplication Factor */
1867 typedef enum _audio_pll_mult
1868 {
1869 kCLOCK_AudioPllMult16 = 16U, /*!< Divide by 16 */
1870 kCLOCK_AudioPllMult17 = 17U, /*!< Divide by 17 */
1871 kCLOCK_AudioPllMult18 = 18U, /*!< Divide by 18 */
1872 kCLOCK_AudioPllMult19 = 19U, /*!< Divide by 19 */
1873 kCLOCK_AudioPllMult20 = 20U, /*!< Divide by 20 */
1874 kCLOCK_AudioPllMult21 = 21U, /*!< Divide by 21 */
1875 kCLOCK_AudioPllMult22 = 22U, /*!< Divide by 22 */
1876 } audio_pll_mult_t;
1877
1878 /*! @brief PLL configuration for Audio PLL */
1879 typedef struct _clock_audio_pll_config
1880 {
1881 audio_pll_src_t audio_pll_src; /*!< Reference Input Clock Source. */
1882 uint32_t numerator; /*!< 30 bit numerator of fractional loop divider. */
1883 uint32_t denominator; /*!< 30 bit numerator of fractional loop divider. */
1884 audio_pll_mult_t audio_pll_mult; /*!< Multiplication Factor. */
1885 bool enableVcoOut; /*!< Enable VCO output */
1886 } clock_audio_pll_config_t;
1887
1888 /*! @brief Capacitor Trim Value for OSC32KNP */
1889 typedef enum _osc32k_cap_trim
1890 {
1891 kCLOCK_Osc32kCapPf0 = 0U, /*!< Capacitor Trim Value 0pF. */
1892 kCLOCK_Osc32kCapPf2, /*!< Capacitor Trim Value 2pF. */
1893 kCLOCK_Osc32kCapPf4, /*!< Capacitor Trim Value 4pF. */
1894 kCLOCK_Osc32kCapPf6, /*!< Capacitor Trim Value 6pF. */
1895 kCLOCK_Osc32kCapPf8, /*!< Capacitor Trim Value 8pF. */
1896 kCLOCK_Osc32kCapPf10, /*!< Capacitor Trim Value 10pF. */
1897 kCLOCK_Osc32kCapPf12, /*!< Capacitor Trim Value 12pF. */
1898 kCLOCK_Osc32kCapPf14, /*!< Capacitor Trim Value 14pF. */
1899 kCLOCK_Osc32kCapPf16, /*!< Capacitor Trim Value 16pF. */
1900 kCLOCK_Osc32kCapPf18, /*!< Capacitor Trim Value 18pF. */
1901 kCLOCK_Osc32kCapPf20, /*!< Capacitor Trim Value 20pF. */
1902 kCLOCK_Osc32kCapPf22, /*!< Capacitor Trim Value 22pF. */
1903 kCLOCK_Osc32kCapPf24, /*!< Capacitor Trim Value 24pF. */
1904 kCLOCK_Osc32kCapPf26, /*!< Capacitor Trim Value 26pF. */
1905 kCLOCK_Osc32kCapPf28, /*!< Capacitor Trim Value 28pF. */
1906 kCLOCK_Osc32kCapPf30, /*!< Capacitor Trim Value 30pF. */
1907 } osc32k_cap_trim_t;
1908
1909 /*! @brief configuration for 32K OSC */
1910 typedef struct _clock_osc32k_config_t
1911 {
1912 bool bypass; /*!< Bypass enable. */
1913 bool monitorEnable; /*!< Clock Monitor Enable. */
1914 bool lowPowerMode; /*!< Low-Power (Nano-Power) mode enable. NOTE, can only change from High-Power mode to Nano-Power
1915 mode, and not vice versa. */
1916 osc32k_cap_trim_t cap; /*!< Capacitor Trim Value. */
1917 } clock_osc32k_config_t;
1918
1919 /*******************************************************************************
1920 * API
1921 ******************************************************************************/
1922
1923 #if defined(__cplusplus)
1924 extern "C" {
1925 #endif /* __cplusplus */
1926
1927 /**
1928 * @brief Enable the clock for specific IP.
1929 * @param clk : Clock to be enabled.
1930 * @return Nothing
1931 */
1932 void CLOCK_EnableClock(clock_ip_name_t clk);
1933
1934 /**
1935 * @brief Disable the clock for specific IP.
1936 * @param clk : Clock to be disabled.
1937 * @return Nothing
1938 */
1939 void CLOCK_DisableClock(clock_ip_name_t clk);
1940
1941 /**
1942 * brief Configure the clock selection muxes.
1943 *
1944 * For some of the muxes, there's SEL_EN bit to gate the mux ouput to reduce power, using kNONT_to_XXX to gate the mux
1945 * oupput. used by any peripheral.
1946 * @param connection : Clock to be configured.
1947 * @return Nothing
1948 */
1949 void CLOCK_AttachClk(clock_attach_id_t connection);
1950
1951 /**
1952 * @brief Setup peripheral clock dividers.
1953 * @param div_name : Clock divider name
1954 * @param divider : Value to be divided. Divided clock frequency =
1955 * Undivided clock frequency / divider.
1956 * @return Nothing
1957 */
1958 void CLOCK_SetClkDiv(clock_div_name_t div_name, uint32_t divider);
1959
1960 /*! @brief Return Frequency of selected clock
1961 * @return Frequency of selected clock
1962 */
1963 uint32_t CLOCK_GetFreq(clock_name_t clockName);
1964
1965 #if defined(FSL_CLOCK_DRIVER_COMPUTE) /* Compute domain specific APIs */
1966
1967 /*! @brief Return clock frequency of LP_FLEXCOMM 0 to 13 Clock Source FCCLK
1968 * @param id : index of FCCLK
1969 * @return Frequency of FCCLK
1970 */
1971 uint32_t CLOCK_GetFCClkFreq(uint32_t id);
1972
1973 /*! @brief Return Frequency of compute main clk
1974 * @return Frequency of main clk
1975 */
1976 uint32_t CLOCK_GetComputeMainClkFreq(void);
1977
1978 /*! @brief Return Frequency of compute audio clk
1979 * @return Frequency of audio_clk_cmpt
1980 */
1981 uint32_t CLOCK_GetComputeAudioClkFreq(void);
1982
1983 /*! @brief Return Frequency of Compute DSP clk
1984 * @return Frequency of DSP clk
1985 */
1986 uint32_t CLOCK_GetHifi4ClkFreq(void);
1987
1988 /*! @brief Return Frequency of Compute Base clock
1989 * @return Frequency of compute base clk
1990 */
1991 uint32_t CLOCK_GetComputeBaseClkFreq(void);
1992
1993 /*! @brief Return Frequency of Compute DSP Base clock
1994 * @return Frequency of compute dsp base clk
1995 */
1996 uint32_t CLOCK_GetComputeDspBaseClkFreq(void);
1997
1998 /*! @brief Return Frequency of VDD2_COM Base Clock
1999 * @return Frequency of baseclk_com2
2000 */
2001 uint32_t CLOCK_GetVdd2ComBaseClkFreq(void);
2002
2003 /*! @brief Enable/Disable FRO0 clock for various domains.
2004 * @param domainEnable : Or'ed value of #clock_domain_enable_t to enable
2005 * DRFO0 max clock for certain domain.
2006 */
2007 void CLOCK_EnableFro0ClkForDomain(uint32_t domainEnable);
2008
2009 /*! @brief Return Frequency of sct
2010 * @return Frequency of sct clk
2011 */
2012 uint32_t CLOCK_GetSctClkFreq(void);
2013
2014 /*! @brief Set the Sense AUDIO clock frequency based on the setting from Sense Domain.
2015 *
2016 * This API is used to tell the driver of compute domain about the clcok frequency of sense base clock.
2017 * @param freq : The sense base clock frequency in Hz.
2018 */
CLOCK_SetSenseAudioClkFreq(uint32_t freq)2019 static inline void CLOCK_SetSenseAudioClkFreq(uint32_t freq)
2020 {
2021 g_senseAudioClkFreq = freq;
2022 }
2023
2024 /*! @brief Return Frequency of VDD1 audio clk.
2025 * NOTE, when called from Compute Domain, need to use CLOCK_SetSenseAudioClkFreq to tell the clock driver the audio_clk
2026 * frequency before the API is called.
2027 * @return Frequency of audio_clk
2028 */
2029 uint32_t CLOCK_GetSenseAudioClkFreq(void);
2030
2031 /*! @brief Return Frequency of TPIU clk
2032 * @return Frequency of SAI clk
2033 */
2034 uint32_t CLOCK_GetTpiuClkFreq(void);
2035
2036 /*! @brief Return Frequency of TRNG clk
2037 * @return Frequency of SAI clk
2038 */
2039 uint32_t CLOCK_GetTrngClkFreq(void);
2040
2041 #else /* Sense domain specific APIs */
2042
2043 /*! @brief Return Frequency of VDD1 audio clk
2044 * @return Frequency of audio_clk
2045 */
2046 uint32_t CLOCK_GetSenseAudioClkFreq(void);
2047
2048 /*! @brief Return Frequency of Sense DSP clk
2049 * @return Frequency of Sense DSP clk
2050 */
2051 uint32_t CLOCK_GetHifi1ClkFreq(void);
2052
2053 #endif /* FSL_CLOCK_DRIVER_COMPUTE */
2054
2055 /*! @brief Enable/Disable FRO clock output.
2056 * @param base : base address of FRO.
2057 * @param divOutEnable : Or'ed value of #clock_fro_output_en_t to enable certain clock freq output.
2058 */
2059 void CLOCK_EnableFroClkOutput(FRO_Type *base, uint32_t divOutEnable);
2060
2061 /*! @brief Configure FRO trim values when FRO is configured in Open loop mode.
2062 * @param base : base address of FRO.
2063 * @param trimVal : 12bits trim value.
2064 */
2065 void CLOCK_ConfigFroTrim(FRO_Type *base, uint16_t trimVal);
2066
2067 /*! @brief Disable the FRO clock. This API will disable the FRO clock output and power off FRO.
2068 * @param base : base address of FRO.
2069 */
2070 void CLOCK_DisableFro(FRO_Type *base);
2071
2072 /*! @brief Enable/Disable FRO for close loop mode(autotuner).
2073 * @param base : base address of FRO.
2074 * @param config : The configuration for FRO.
2075 * @param enable: Enable auto tuning mode or not.
2076 * @retval kStatus_Success successfully tuned to the target configuration.
2077 * @retval kStatus_InvalidArgument Invalid arguement.
2078 * @retval kStatus_Fail failed to lock to the target frequency.
2079 */
2080 status_t CLOCK_EnableFroAutoTuning(FRO_Type *base, const clock_fro_config_t *config, bool enable);
2081
2082 /*! @brief Enable FRO clock output with specified frequency.
2083 * @param base : base address of FRO.
2084 * @param targetFreq target fro frequency.
2085 * @param divOutEnable Or'ed value of #clock_fro_output_en_t to enable certain clock freq output.
2086 */
2087 void CLOCK_EnableFroClkFreq(FRO_Type *base, uint32_t targetFreq, uint32_t divOutEnable);
2088
2089 /*! @brief Enable FRO clock output with target frequency using FRO close loop mode.
2090 * For example, to enable FRO2 to ouput 200MHZ:
2091 * @code
2092 * const clock_fro_config_t config = {
2093 * .targetFreq = 200000000U,
2094 * .range = 50U,
2095 * .trim1DelayUs = 15U,
2096 * .trim2DelayUs = 150U,
2097 * .refDiv = 0U,
2098 * .enableInt = 0U,
2099 * .coarseTrimEn = true,
2100 * };
2101 * CLOCK_EnableFroClkFreqCloseLoop(FRO2, &config, kCLOCK_FroAllOutEn);
2102 * @endcode
2103 * @param base : base address of FRO.
2104 * @param config : The configuration for FRO.
2105 * @param divOutEnable : Or'ed value of clock_fro_output_en_t to enable certain clock freq output.
2106 * @retval kStatus_Success successfully tuned to the target configuration.
2107 * @retval kStatus_InvalidArgument Invalid arguement.
2108 * @retval kStatus_Fail failed to lock to the target frequency.
2109 */
2110 status_t CLOCK_EnableFroClkFreqCloseLoop(FRO_Type *base, const clock_fro_config_t *config, uint32_t divOutEnable);
2111
2112 /*! @brief Get FRO flags.
2113 * @param base : base address of FRO.
2114 * @param flags Or'ed value of #_clock_fro_flag.
2115 */
2116 uint32_t CLOCK_GetFroFlags(FRO_Type *base);
2117
2118 /*! @brief Clear FRO flags.
2119 * @param base : base address of FRO.
2120 * @param flags Or'ed value of #_clock_fro_flag to clear.
2121 */
CLOCK_ClearFroFlags(FRO_Type * base,uint32_t flags)2122 inline static void CLOCK_ClearFroFlags(FRO_Type *base, uint32_t flags)
2123 {
2124 base->CSR.CLR = flags;
2125 }
2126
2127 /*! @brief Return Frequency of FRO clk
2128 * @param id FRO index
2129 * @return Frequency of FRO clk
2130 */
2131 uint32_t CLOCK_GetFroClkFreq(uint32_t id);
2132
2133 /*! @brief Return Frequency of sense main clk
2134 * @return Frequency of main clk
2135 */
2136 uint32_t CLOCK_GetSenseMainClkFreq(void);
2137
2138 /*! @brief Return Frequency of MAINPLL
2139 * @return Frequency of MAINPLL
2140 */
2141 uint32_t CLOCK_GetMainPllFreq(void);
2142
2143 /*! @brief Get current output frequency of specific Main PLL PFD.
2144 * @param pfd : pfd name to get frequency.
2145 * @return Frequency of MainPLL PFD.
2146 */
2147 uint32_t CLOCK_GetMainPfdFreq(clock_pfd_t pfd);
2148
2149 /*! @brief Return Frequency of AUDIO PLL
2150 * @return Frequency of AUDIO PLL
2151 */
2152 uint32_t CLOCK_GetAudioPllFreq(void);
2153
2154 /*! @brief Get current output frequency of specific Audio PLL PFD.
2155 * @param pfd : pfd name to get frequency.
2156 * @return Frequency of AUDIO PLL PFD.
2157 */
2158
2159 uint32_t CLOCK_GetAudioPfdFreq(clock_pfd_t pfd);
2160 /*! @brief Return Frequency of High-Freq output of FRO
2161 * @return Frequency of High-Freq output of FRO
2162 */
2163
2164 /*! @brief Return Frequency of sys osc Clock
2165 * @return Frequency of sys osc Clock. Or CLK_IN pin frequency.
2166 */
CLOCK_GetXtalInClkFreq(void)2167 static inline uint32_t CLOCK_GetXtalInClkFreq(void)
2168 {
2169 return ((g_xtalFreq != 0U) ? g_xtalFreq : g_clkinFreq);
2170 }
2171
2172 /*! @brief Return Frequency of Sense Base clock
2173 * @return Frequency of sense base clk
2174 */
2175 uint32_t CLOCK_GetSenseBaseClkFreq(void);
2176
2177 /*! @brief Enable/Disable sys osc clock from external crystal clock.
2178 * @param enable : true to enable system osc clock, false to bypass system
2179 * osc.
2180 * @param enableLowPower : true to enable low power mode, false to enable high
2181 * gain mode.
2182 * @param delay_us : Delay time after OSC power up.
2183 */
2184 void CLOCK_EnableSysOscClk(bool enable, bool enableLowPower, uint32_t delay_us);
2185
2186 /*! @brief Return Frequency of VDDN_COM Base Clock
2187 * @return Frequency of baseclk_comn
2188 */
2189 uint32_t CLOCK_GetVddnComBaseClkFreq(void);
2190
2191 /*! @brief Return Frequency of VDDN_MEDIA Base Clock
2192 * @return Frequency of baseclk_mdn
2193 */
2194 uint32_t CLOCK_GetVddnMediaBaseClkFreq(void);
2195
2196 /*! @brief Return Frequency of VDD2_MEDIA Base Clock
2197 * @return Frequency of baseclk_md2
2198 */
2199 uint32_t CLOCK_GetVdd2MediaBaseClkFreq(void);
2200
2201 /*! @brief Return Frequency of MEDIA_MAIN Clock
2202 * @return Frequency of media_main_clk
2203 */
2204 uint32_t CLOCK_GetMediaMainClkFreq(void);
2205
2206 /*! @brief Return Frequency of MEDIA_VDDN Clock
2207 * @return Frequency of media_vddn_clk
2208 */
2209 uint32_t CLOCK_GetMediaVddnClkFreq(void);
2210
2211 /*! @brief Enable/Disable FRO2 clock for various domains.
2212 * @param domainEnable : Or'ed value of #clock_domain_enable_t to enable
2213 * DRFO2 max clock for certain domain.
2214 */
2215 void CLOCK_EnableFro2ClkForDomain(uint32_t domainEnable);
2216
2217 /*! @brief Enable/Disable MainPLL PFD clock for various domains.
2218 *
2219 * Enables PFD clock of MainPLL for various domains. Each PFD clock of MainPLL can be sent to various domain. To reduce
2220 * power consumption, turn off the PFD in the domain when this PFD is not configured.
2221 * @param pfd : Which PFD clock to control.
2222 * @param domainEnable : Or'ed value of #clock_domain_enable_t to enable
2223 * clock for certain domain.
2224 */
2225 void CLOCK_EnableMainPllPfdClkForDomain(clock_pfd_t pfd, uint32_t domainEnable);
2226
2227 /*! @brief Enable/Disable AUDIO PFD clock for various domains.
2228 *
2229 * Enables PFD clock of AUDIO for various domains. Each PFD clock of AUDIO can be sent to various domain. To reduce
2230 * power consumption, turn off the PFD in the domain when this PFD is not configured.
2231 * @param pfd : Which PFD clock to control.
2232 * @param domainEnable : Or'ed value of #clock_domain_enable_t to enable
2233 * clock for certain domain.
2234 */
2235 void CLOCK_EnableAudioPllPfdClkForDomain(clock_pfd_t pfd, uint32_t domainEnable);
2236
2237 /*! @brief Enable/Disable AUDIO VCO clock for various domains.
2238 *
2239 * VCO clock of Audio PLL can be sent to various domains to reduce power consumption when VCO is not set to use in such
2240 * domain. This VCO can be disabled for such domain.
2241 * @param domainEnable : Or'ed value of #clock_domain_enable_t to enable
2242 * clock for certain domain.
2243 */
2244 void CLOCK_EnableAudioPllVcoClkForDomain(uint32_t domainEnable);
2245
2246 /*! @brief Initialize the Main PLL.
2247 * @param config : Configuration to set to PLL.
2248 */
2249 void CLOCK_InitMainPll(const clock_main_pll_config_t *config);
2250
2251 /*! brief Deinit the Main PLL.
2252 * param none.
2253 */
CLOCK_DeinitMainPll(void)2254 static inline void CLOCK_DeinitMainPll(void)
2255 {
2256 /* Set Main PLL Reset & HOLDRING_OFF_ENA */
2257 CLKCTL2->MAINPLL0CTL0 |= CLKCTL2_MAINPLL0CTL0_HOLD_RING_OFF_ENA_MASK | CLKCTL2_MAINPLL0CTL0_RESET_MASK;
2258 /* Power down Main PLL*/
2259 #if defined(FSL_CLOCK_DRIVER_COMPUTE)
2260 SLEEPCON0->RUNCFG_SET = SLEEPCON0_RUNCFG_PLLLDO_PD_MASK | SLEEPCON0_RUNCFG_PLLANA_PD_MASK;
2261 #else
2262 SLEEPCON1->RUNCFG_SET = SLEEPCON1_RUNCFG_PLLLDO_PD_MASK | SLEEPCON1_RUNCFG_PLLANA_PD_MASK;
2263 #endif
2264 }
2265 /*! @brief Initialize the Main PLL PFD.
2266 * @param pfd : Which PFD clock to enable.
2267 * @param divider : The PFD divider value.
2268 * @note It is recommended that PFD settings are kept between 12-35.
2269 */
2270 void CLOCK_InitMainPfd(clock_pfd_t pfd, uint8_t divider);
2271
2272 /*! brief Disable the Main PLL PFD.
2273 * param pfd : Which PFD clock to disable.
2274 */
CLOCK_DeinitMainPfd(clock_pfd_t pfd)2275 static inline void CLOCK_DeinitMainPfd(clock_pfd_t pfd)
2276 {
2277 CLKCTL2->MAINPLL0PFD |= ((uint32_t)CLKCTL2_AUDIOPLL0PFD_PFD0_CLKGATE_MASK << (8UL * (uint32_t)pfd));
2278 }
2279
2280 /*! @brief Initialize the audio PLL.
2281 * @param config : Configuration to set to PLL.
2282 */
2283 void CLOCK_InitAudioPll(const clock_audio_pll_config_t *config);
2284
2285 /*! brief Deinit the Audio PLL.
2286 * param none.
2287 */
CLOCK_DeinitAudioPll(void)2288 static inline void CLOCK_DeinitAudioPll(void)
2289 {
2290 /* Set Audio PLL Reset & HOLDRINGOFF_ENA */
2291 CLKCTL2->AUDIOPLL0CTL0 |= CLKCTL2_AUDIOPLL0CTL0_HOLD_RING_OFF_ENA_MASK | CLKCTL2_AUDIOPLL0CTL0_RESET_MASK;
2292 /* Power down Audio PLL */
2293 #if defined(FSL_CLOCK_DRIVER_COMPUTE)
2294 /* Power down Audio PLL before change fractional settings */
2295 SLEEPCON0->RUNCFG_SET = SLEEPCON0_RUNCFG_AUDPLLLDO_PD_MASK | SLEEPCON0_RUNCFG_AUDPLLANA_PD_MASK;
2296 #else
2297 SLEEPCON1->RUNCFG_SET = SLEEPCON1_RUNCFG_AUDPLLLDO_PD_MASK | SLEEPCON1_RUNCFG_AUDPLLANA_PD_MASK;
2298 #endif
2299 }
2300
2301 /*! @brief Initialize the audio PLL PFD.
2302 * @param pfd : Which PFD clock to enable.
2303 * @param divider : The PFD divider value.
2304 * @note It is recommended that PFD settings are kept between 12-35.
2305 */
2306 void CLOCK_InitAudioPfd(clock_pfd_t pfd, uint8_t divider);
2307 /*! brief Disable the audio PLL PFD.
2308 * param pfd : Which PFD clock to disable.
2309 */
CLOCK_DeinitAudioPfd(uint32_t pfd)2310 static inline void CLOCK_DeinitAudioPfd(uint32_t pfd)
2311 {
2312 CLKCTL2->AUDIOPLL0PFD |= ((uint32_t)CLKCTL2_AUDIOPLL0PFD_PFD0_CLKGATE_MASK << (8UL * (uint32_t)pfd));
2313 }
2314
2315 /*! @brief Return Frequency of Lower power osc
2316 * @return Frequency of LPOSC
2317 */
CLOCK_GetLpOscFreq(void)2318 static inline uint32_t CLOCK_GetLpOscFreq(void)
2319 {
2320 return CLK_LPOSC_1MHZ;
2321 }
2322
2323 /*! @brief Return Frequency of sys osc Clock
2324 * @return Frequency of sys osc Clock. Or CLK_IN pin frequency.
2325 */
CLOCK_GetSysOscFreq(void)2326 static inline uint32_t CLOCK_GetSysOscFreq(void)
2327 {
2328 return (CLKCTL2->SYSOSCBYPASS == 0U) ? g_xtalFreq : ((CLKCTL2->SYSOSCBYPASS == 1U) ? g_clkinFreq : 0U);
2329 }
2330
2331 /*! @brief Return Frequency of MCLK Input Clock
2332 * @return Frequency of MCLK input Clock.
2333 */
CLOCK_GetMclkInClkFreq(void)2334 static inline uint32_t CLOCK_GetMclkInClkFreq(void)
2335 {
2336 return g_mclkFreq;
2337 }
2338
2339 /*! @brief Return Frequency of 32kHz osc
2340 * @return Frequency of 32kHz osc
2341 */
2342 uint32_t CLOCK_GetOsc32KFreq(void);
2343
2344 /*! @brief Enables OSC32KNP
2345 * @param config : configuration set to OSC32KNP
2346 */
2347 void CLOCK_EnableOsc32K(clock_osc32k_config_t *config);
2348
2349 /*! @brief Disable OSC32KNP
2350 */
CLOCK_DisableOsc32K(void)2351 static inline void CLOCK_DisableOsc32K(void)
2352 {
2353 OSC32KNP->CTRL |= OSC32KNP_CTRL_OSC_DIS_MASK;
2354 }
2355
2356 /*! @brief Return Frequency of 32khz wake clk
2357 * @return Frequency of 32kHz wake clk
2358 */
2359 uint32_t CLOCK_GetWakeClk32KFreq(void);
2360
2361 /*!
2362 * @brief Set the XTALIN (system OSC) frequency based on board setting.
2363 * NOTE, when SOSC is used, either CLOCK_SetXtalFreq or CLOCK_SetClkinFreq(But NOT both.) should be called to tell
2364 * driver the clock frequency connected to SOSC module.
2365 *
2366 * @param freq : The XTAL input clock frequency in Hz.
2367 */
CLOCK_SetXtalFreq(uint32_t freq)2368 static inline void CLOCK_SetXtalFreq(uint32_t freq)
2369 {
2370 g_xtalFreq = freq;
2371 g_clkinFreq = 0U;
2372 }
2373
2374 /*!
2375 * @brief Set the CLKIN (CLKIN pin) frequency based on board setting.
2376 *
2377 * @param freq : The CLK_IN pin input clock frequency in Hz.
2378 */
CLOCK_SetClkinFreq(uint32_t freq)2379 static inline void CLOCK_SetClkinFreq(uint32_t freq)
2380 {
2381 g_clkinFreq = freq;
2382 g_xtalFreq = 0U;
2383 }
2384
2385 /*!
2386 * @brief Set the 32KHz external input frequency based on board setting.
2387 *
2388 * @param freq : The 32KHz external pin input clock frequency in Hz.
2389 */
CLOCK_Set32kClkinFreq(uint32_t freq)2390 static inline void CLOCK_Set32kClkinFreq(uint32_t freq)
2391 {
2392 g_32kClkinFreq = freq;
2393 }
2394
2395 /*!
2396 * @brief Set the MCLK IN frequency based on board setting.
2397 *
2398 * @param freq : The MCLK input clock frequency in Hz.
2399 */
CLOCK_SetMclkFreq(uint32_t freq)2400 static inline void CLOCK_SetMclkFreq(uint32_t freq)
2401 {
2402 g_mclkFreq = freq;
2403 }
2404
2405 /*! @brief Return Frequency of Core/system clock
2406 * @return Frequency of core or system Clock
2407 */
CLOCK_GetCoreSysClkFreq(void)2408 static inline uint32_t CLOCK_GetCoreSysClkFreq(void)
2409 {
2410 return CLOCK_GetFreq(kCLOCK_CoreSysClk);
2411 }
2412
2413 /*! @brief Return Frequency of XSPI function clock
2414 * @param id : XSPI index to get frequency.
2415 * @return Frequency of XSPI functional Clock
2416 */
2417 uint32_t CLOCK_GetXspiClkFreq(uint32_t id);
2418
2419 /*! @brief Return Frequency of UTICK function clock
2420 * @return Frequency of UTICK functional Clock
2421 */
2422 uint32_t CLOCK_GetUtickClkFreq(void);
2423
2424 /*! @brief Return Frequency of systick clk
2425 * @return Frequency of systick clk
2426 */
2427 uint32_t CLOCK_GetSystickClkFreq(void);
2428
2429 /*! @brief Return Frequency of WDT clk
2430 * @param id : WDT index to get frequency.
2431 * @return Frequency of WDT clk
2432 */
2433 uint32_t CLOCK_GetWdtClkFreq(uint32_t id);
2434
2435 /*! @brief Return Frequency of ACMP clk
2436 * @return Frequency of ACMP clk
2437 */
2438 uint32_t CLOCK_GetAcmpClkFreq(void);
2439
2440 /*! @brief Return Frequency of SAI clk
2441 * @return Frequency of SAI clk
2442 */
2443 uint32_t CLOCK_GetSaiClkFreq(void);
2444
2445 /*! @brief Return Frequency of USB clk
2446 * @return Frequency of USB clk
2447 */
2448 uint32_t CLOCK_GetUsbClkFreq(void);
2449
2450 /*! @brief Return Frequency of I3C clk
2451 * @return Frequency of I3C clk
2452 */
2453 uint32_t CLOCK_GetI3cClkFreq(void);
2454
2455 /*! @brief Return Frequency of Flexcomm functional Clock
2456 * @param id : flexcomm index to get frequency.
2457 * @return Frequency of Flexcomm functional Clock
2458 */
2459 uint32_t CLOCK_GetLPFlexCommClkFreq(uint32_t id);
2460
2461 /*! @brief Return Frequency of LPI2C functional Clock
2462 * @param id : LPI2C index to get frequency.
2463 * @return Frequency of LPI2C functional Clock
2464 */
2465 uint32_t CLOCK_GetLPI2cClkFreq(uint32_t id);
2466
2467 /*! @brief Return Frequency of LPSPI functional Clock
2468 * @param id : LPSPI index to get frequency.
2469 * @return Frequency of LPSPI functional Clock
2470 */
2471 uint32_t CLOCK_GetLPSpiClkFreq(uint32_t id);
2472
2473 /*! @brief Return Frequency of Flexio functional Clock
2474 * @return Frequency of Flexcomm functional Clock
2475 */
2476 uint32_t CLOCK_GetFlexioClkFreq(void);
2477
2478 /*! @brief Return Frequency of OSTIMER functional Clock
2479 * @return Frequency of OSTIMER functional Clock
2480 */
2481 uint32_t CLOCK_GetOSTimerClkFreq(void);
2482
2483 /*! @brief Return Frequency of MICFIL functional Clock
2484 * @return Frequency of MICFIL functional Clock
2485 */
2486 uint32_t CLOCK_GetMicfilClkFreq(void);
2487
2488 /*! @brief Return Frequency of Ctimer Clock
2489 * @param id : ctimer index to get frequency.
2490 * @return Frequency of Ctimer Clock
2491 */
2492 uint32_t CLOCK_GetCTimerClkFreq(uint32_t id);
2493
2494 /*! @brief Return Frequency of VDD2 ClockOut
2495 * @return Frequency of ClockOut
2496 */
2497 uint32_t CLOCK_GetClockOutClkFreq(void);
2498
2499 /*! @brief Return Frequency of VDD1 Clock Out
2500 * @return Frequency of ClockOut of sense domain
2501 */
2502 uint32_t CLOCK_GetVdd1ClockOutClkFreq(void);
2503
2504 /*! @brief Return Frequency of Adc Clock
2505 * @return Frequency of Adc Clock.
2506 */
2507 uint32_t CLOCK_GetAdcClkFreq(void);
2508
2509 /*! @brief Return Frequency of SDADC Clock
2510 * @return Frequency of SDADC Clock.
2511 */
2512 uint32_t CLOCK_GetSdAdcClkFreq(void);
2513
2514 /*! @brief Return Frequency of VGPU functional Clock
2515 * @return Frequency of VGPU functional Clock
2516 */
2517 uint32_t CLOCK_GetVgpuClkFreq(void);
2518
2519 /*! @brief Return Frequency of LCDIF pixel Clock
2520 * @return Frequency of LCDIF pixel Clock
2521 */
2522 uint32_t CLOCK_GetLcdifClkFreq(void);
2523
2524 /*! @brief Return Frequency of MIPI DPHY functional Clock
2525 * @return Frequency of MIPI DPHY functional Clock
2526 */
2527 uint32_t CLOCK_GetMipiDphyClkFreq(void);
2528
2529 /*! @brief Return Frequency of MIPI DPHY Esc RX functional Clock
2530 * @return Frequency of MIPI DPHY Esc RX functional Clock
2531 */
2532 uint32_t CLOCK_GetMipiDphyEscRxClkFreq(void);
2533
2534 /*! @brief Return Frequency of MIPI DPHY Esc Tx functional Clock
2535 * @return Frequency of MIPI DPHY Esc Tx functional Clock
2536 */
2537 uint32_t CLOCK_GetMipiDphyEscTxClkFreq(void);
2538
2539 /*! @brief Return Frequency of USDHC Clock
2540 * @param id : uSDHC index to get frequency.
2541 * @return Frequency of USDHC Clock
2542 */
2543 uint32_t CLOCK_GetUsdhcClkFreq(uint32_t id);
2544
2545 /*! brief Enable USB HS PHY PLL clock.
2546 *
2547 * This function enables the internal 480MHz USB PHY PLL clock.
2548 *
2549 * param src USB HS PHY PLL clock source.
2550 * param freq The frequency specified by src.
2551 * retval true The clock is set successfully.
2552 * retval false The clock source is invalid to get proper USB HS clock.
2553 */
2554 bool CLOCK_EnableUsbhs0PhyPllClock(clock_usb_phy_src_t src, uint32_t freq);
2555
2556 /*! brief Enable USB HS clock.
2557 *
2558 * This function only enables the access to USB HS prepheral, upper layer
2559 * should first call the ref CLOCK_EnableUsbhs0PhyPllClock to enable the PHY
2560 * clock to use USB HS.
2561 *
2562 * param src USB HS does not care about the clock source, here must be ref kCLOCK_UsbSrcUnused.
2563 * param freq USB HS does not care about the clock source, so this parameter is ignored.
2564 * retval true The clock is set successfully.
2565 * retval false The clock source is invalid to get proper USB HS clock.
2566 */
2567 bool CLOCK_EnableUsbhs0Clock(clock_usb_src_t src, uint32_t freq);
2568
2569 /*! brief Disable USB HS PHY PLL clock.
2570 *
2571 * This function disables USB HS PHY PLL clock.
2572 */
2573 void CLOCK_DisableUsbhs0PhyPllClock(void);
2574
2575 #if defined(__cplusplus)
2576 }
2577 #endif /* __cplusplus */
2578
2579 /*! @} */
2580
2581 #endif /* FSL_CLOCK_H_ */
2582