1 /****************************************************************************
2  * @file     nutool_modclkcfg.c
3  * @version  V1.05
4  * @Date     2020/04/15-11:28:38
5  * @brief    NuMicro generated code file
6  *
7  * SPDX-License-Identifier: Apache-2.0
8  * Copyright (C) 2013-2020 Nuvoton Technology Corp. All rights reserved.
9 *****************************************************************************/
10 
11 /********************
12 MCU:M487JIDAE(LQFP144)
13 Base Clocks:
14 HIRC:12MHz
15 LXT:32.7680kHz
16 HXT:12MHz
17 PLL:192MHz
18 HSUSB_OTG_PHY:30MHz
19 HCLK:192MHz
20 PCLK0:96MHz
21 PCLK1:96MHz
22 Enabled-Module Frequencies:
23 ACMP01=Bus Clock(PCLK1):96MHz
24 BPWM0=Bus Clock(PCLK0):96MHz/Engine Clock:96MHz
25 BPWM1=Bus Clock(PCLK1):96MHz/Engine Clock:96MHz
26 CAN0=Bus Clock(PCLK0):96MHz
27 CAN1=Bus Clock(PCLK1):96MHz
28 CRC=Bus Clock(HCLK):192MHz
29 CRPT=Bus Clock(HCLK):192MHz
30 DAC=Bus Clock(PCLK1):96MHz
31 EADC=Bus Clock(PCLK1):96MHz/Engine Clock:12MHz
32 EBI=Bus Clock(HCLK):192MHz
33 ECAP0=Bus Clock(PCLK0):96MHz
34 ECAP1=Bus Clock(PCLK1):96MHz
35 EMAC=Bus Clock(HCLK):192MHz/Engine Clock:1.5118MHz
36 EPWM0=Bus Clock(PCLK0):96MHz/Engine Clock:96MHz
37 EPWM1=Bus Clock(PCLK1):96MHz/Engine Clock:96MHz
38 FMCIDLE=Bus Clock(HCLK):192MHz/Engine Clock:12MHz
39 HSOTG=Bus Clock(PCLK1):96MHz/Engine Clock:30MHz
40 HSUSBD=Bus Clock(HCLK):192MHz/Engine Clock:30MHz
41 HSUSBH=Bus Clock(HCLK):192MHz/Engine Clock:30MHz
42 I2C0=Bus Clock(PCLK0):96MHz
43 I2C1=Bus Clock(PCLK1):96MHz
44 I2C2=Bus Clock(PCLK0):96MHz
45 I2S0=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
46 ISP=Bus Clock(HCLK):192MHz/Engine Clock:12MHz
47 OPA=Bus Clock(PCLK0):96MHz
48 OTG=Bus Clock(PCLK1):96MHz/Engine Clock:192MHz
49 PDMA=Bus Clock(HCLK):192MHz
50 QEI0=Bus Clock(PCLK0):96MHz
51 QEI1=Bus Clock(PCLK1):96MHz
52 QSPI0=Bus Clock(PCLK0):96MHz/Engine Clock:96MHz
53 RTC=Bus Clock(PCLK1):96MHz/Engine Clock:32.7680kHz
54 SC0=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
55 SC1=Bus Clock(PCLK1):96MHz/Engine Clock:12MHz
56 SC2=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
57 SDH0=Bus Clock(HCLK):192MHz/Engine Clock:192MHz
58 SDH1=Bus Clock(HCLK):192MHz/Engine Clock:192MHz
59 SPI0=Bus Clock(PCLK1):96MHz/Engine Clock:96MHz
60 SPI1=Bus Clock(PCLK0):96MHz/Engine Clock:96MHz
61 SPI2=Bus Clock(PCLK1):96MHz/Engine Clock:96MHz
62 SPI3=Bus Clock(PCLK0):96MHz/Engine Clock:96MHz
63 SPIM=Bus Clock(HCLK):192MHz
64 SYSTICK=Bus Clock(HCLK):192MHz/Engine Clock:192MHz
65 TMR0=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
66 TMR1=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
67 TMR2=Bus Clock(PCLK1):96MHz/Engine Clock:12MHz
68 TMR3=Bus Clock(PCLK1):96MHz/Engine Clock:12MHz
69 UART0=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
70 UART1=Bus Clock(PCLK1):96MHz/Engine Clock:12MHz
71 UART2=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
72 UART3=Bus Clock(PCLK1):96MHz/Engine Clock:12MHz
73 UART4=Bus Clock(PCLK0):96MHz/Engine Clock:12MHz
74 UART5=Bus Clock(PCLK1):96MHz/Engine Clock:12MHz
75 USBD=Bus Clock(PCLK0):96MHz/Engine Clock:48MHz
76 USBH=Bus Clock(HCLK):192MHz/Engine Clock:48MHz
77 USCI0=Bus Clock(PCLK0):96MHz
78 USCI1=Bus Clock(PCLK1):96MHz
79 WDT=Bus Clock(PCLK0):96MHz/Engine Clock:32.7680kHz
80 WWDT=Bus Clock(PCLK0):96MHz/Engine Clock:93.7500kHz
81 ********************/
82 
83 #include "M480.h"
84 #include "rtconfig.h"
85 
nutool_modclkcfg_init_acmp01(void)86 void nutool_modclkcfg_init_acmp01(void)
87 {
88     CLK_EnableModuleClock(ACMP01_MODULE);
89 
90     return;
91 }
92 
nutool_modclkcfg_deinit_acmp01(void)93 void nutool_modclkcfg_deinit_acmp01(void)
94 {
95     CLK_DisableModuleClock(ACMP01_MODULE);
96 
97     return;
98 }
99 
nutool_modclkcfg_init_bpwm0(void)100 void nutool_modclkcfg_init_bpwm0(void)
101 {
102     CLK_EnableModuleClock(BPWM0_MODULE);
103     CLK_SetModuleClock(BPWM0_MODULE, CLK_CLKSEL2_BPWM0SEL_PCLK0, MODULE_NoMsk);
104 
105     return;
106 }
107 
nutool_modclkcfg_deinit_bpwm0(void)108 void nutool_modclkcfg_deinit_bpwm0(void)
109 {
110     CLK_DisableModuleClock(BPWM0_MODULE);
111 
112     return;
113 }
114 
nutool_modclkcfg_init_bpwm1(void)115 void nutool_modclkcfg_init_bpwm1(void)
116 {
117     CLK_EnableModuleClock(BPWM1_MODULE);
118     CLK_SetModuleClock(BPWM1_MODULE, CLK_CLKSEL2_BPWM1SEL_PCLK1, MODULE_NoMsk);
119 
120     return;
121 }
122 
nutool_modclkcfg_deinit_bpwm1(void)123 void nutool_modclkcfg_deinit_bpwm1(void)
124 {
125     CLK_DisableModuleClock(BPWM1_MODULE);
126 
127     return;
128 }
129 
nutool_modclkcfg_init_can0(void)130 void nutool_modclkcfg_init_can0(void)
131 {
132     CLK_EnableModuleClock(CAN0_MODULE);
133 
134     return;
135 }
136 
nutool_modclkcfg_deinit_can0(void)137 void nutool_modclkcfg_deinit_can0(void)
138 {
139     CLK_DisableModuleClock(CAN0_MODULE);
140 
141     return;
142 }
143 
nutool_modclkcfg_init_can1(void)144 void nutool_modclkcfg_init_can1(void)
145 {
146     CLK_EnableModuleClock(CAN1_MODULE);
147 
148     return;
149 }
150 
nutool_modclkcfg_deinit_can1(void)151 void nutool_modclkcfg_deinit_can1(void)
152 {
153     CLK_DisableModuleClock(CAN1_MODULE);
154 
155     return;
156 }
157 
nutool_modclkcfg_init_crc(void)158 void nutool_modclkcfg_init_crc(void)
159 {
160     CLK_EnableModuleClock(CRC_MODULE);
161 
162     return;
163 }
164 
nutool_modclkcfg_deinit_crc(void)165 void nutool_modclkcfg_deinit_crc(void)
166 {
167     CLK_DisableModuleClock(CRC_MODULE);
168 
169     return;
170 }
171 
nutool_modclkcfg_init_crpt(void)172 void nutool_modclkcfg_init_crpt(void)
173 {
174     CLK_EnableModuleClock(CRPT_MODULE);
175 
176     return;
177 }
178 
nutool_modclkcfg_deinit_crpt(void)179 void nutool_modclkcfg_deinit_crpt(void)
180 {
181     CLK_DisableModuleClock(CRPT_MODULE);
182 
183     return;
184 }
185 
nutool_modclkcfg_init_dac(void)186 void nutool_modclkcfg_init_dac(void)
187 {
188     CLK_EnableModuleClock(DAC_MODULE);
189 
190     return;
191 }
192 
nutool_modclkcfg_deinit_dac(void)193 void nutool_modclkcfg_deinit_dac(void)
194 {
195     CLK_DisableModuleClock(DAC_MODULE);
196 
197     return;
198 }
199 
nutool_modclkcfg_init_eadc(void)200 void nutool_modclkcfg_init_eadc(void)
201 {
202     CLK_EnableModuleClock(EADC_MODULE);
203     CLK_SetModuleClock(EADC_MODULE, MODULE_NoMsk, CLK_CLKDIV0_EADC(8));
204 
205     return;
206 }
207 
nutool_modclkcfg_deinit_eadc(void)208 void nutool_modclkcfg_deinit_eadc(void)
209 {
210     CLK_DisableModuleClock(EADC_MODULE);
211 
212     return;
213 }
214 
nutool_modclkcfg_init_ebi(void)215 void nutool_modclkcfg_init_ebi(void)
216 {
217     CLK_EnableModuleClock(EBI_MODULE);
218 
219     return;
220 }
221 
nutool_modclkcfg_deinit_ebi(void)222 void nutool_modclkcfg_deinit_ebi(void)
223 {
224     CLK_DisableModuleClock(EBI_MODULE);
225 
226     return;
227 }
228 
nutool_modclkcfg_init_ecap0(void)229 void nutool_modclkcfg_init_ecap0(void)
230 {
231     CLK_EnableModuleClock(ECAP0_MODULE);
232 
233     return;
234 }
235 
nutool_modclkcfg_deinit_ecap0(void)236 void nutool_modclkcfg_deinit_ecap0(void)
237 {
238     CLK_DisableModuleClock(ECAP0_MODULE);
239 
240     return;
241 }
242 
nutool_modclkcfg_init_ecap1(void)243 void nutool_modclkcfg_init_ecap1(void)
244 {
245     CLK_EnableModuleClock(ECAP1_MODULE);
246 
247     return;
248 }
249 
nutool_modclkcfg_deinit_ecap1(void)250 void nutool_modclkcfg_deinit_ecap1(void)
251 {
252     CLK_DisableModuleClock(ECAP1_MODULE);
253 
254     return;
255 }
256 
nutool_modclkcfg_init_emac(void)257 void nutool_modclkcfg_init_emac(void)
258 {
259     CLK_EnableModuleClock(EMAC_MODULE);
260     CLK_SetModuleClock(EMAC_MODULE, MODULE_NoMsk, CLK_CLKDIV3_EMAC(127));
261 
262     return;
263 }
264 
nutool_modclkcfg_deinit_emac(void)265 void nutool_modclkcfg_deinit_emac(void)
266 {
267     CLK_DisableModuleClock(EMAC_MODULE);
268 
269     return;
270 }
271 
nutool_modclkcfg_init_epwm0(void)272 void nutool_modclkcfg_init_epwm0(void)
273 {
274     CLK_EnableModuleClock(EPWM0_MODULE);
275     CLK_SetModuleClock(EPWM0_MODULE, CLK_CLKSEL2_EPWM0SEL_PCLK0, MODULE_NoMsk);
276 
277     return;
278 }
279 
nutool_modclkcfg_deinit_epwm0(void)280 void nutool_modclkcfg_deinit_epwm0(void)
281 {
282     CLK_DisableModuleClock(EPWM0_MODULE);
283 
284     return;
285 }
286 
nutool_modclkcfg_init_epwm1(void)287 void nutool_modclkcfg_init_epwm1(void)
288 {
289     CLK_EnableModuleClock(EPWM1_MODULE);
290     CLK_SetModuleClock(EPWM1_MODULE, CLK_CLKSEL2_EPWM1SEL_PCLK1, MODULE_NoMsk);
291 
292     return;
293 }
294 
nutool_modclkcfg_deinit_epwm1(void)295 void nutool_modclkcfg_deinit_epwm1(void)
296 {
297     CLK_DisableModuleClock(EPWM1_MODULE);
298 
299     return;
300 }
301 
nutool_modclkcfg_init_fmcidle(void)302 void nutool_modclkcfg_init_fmcidle(void)
303 {
304     CLK_EnableModuleClock(FMCIDLE_MODULE);
305 
306     return;
307 }
308 
nutool_modclkcfg_deinit_fmcidle(void)309 void nutool_modclkcfg_deinit_fmcidle(void)
310 {
311     CLK_DisableModuleClock(FMCIDLE_MODULE);
312 
313     return;
314 }
315 
nutool_modclkcfg_init_hsotg(void)316 void nutool_modclkcfg_init_hsotg(void)
317 {
318     CLK_EnableModuleClock(HSOTG_MODULE);
319 
320     return;
321 }
322 
nutool_modclkcfg_deinit_hsotg(void)323 void nutool_modclkcfg_deinit_hsotg(void)
324 {
325     CLK_DisableModuleClock(HSOTG_MODULE);
326 
327     return;
328 }
329 
nutool_modclkcfg_init_hsusbd(void)330 void nutool_modclkcfg_init_hsusbd(void)
331 {
332     CLK_EnableModuleClock(HSUSBD_MODULE);
333 
334     return;
335 }
336 
nutool_modclkcfg_deinit_hsusbd(void)337 void nutool_modclkcfg_deinit_hsusbd(void)
338 {
339     CLK_DisableModuleClock(HSUSBD_MODULE);
340 
341     return;
342 }
343 
nutool_modclkcfg_init_i2c0(void)344 void nutool_modclkcfg_init_i2c0(void)
345 {
346     CLK_EnableModuleClock(I2C0_MODULE);
347 
348     return;
349 }
350 
nutool_modclkcfg_deinit_i2c0(void)351 void nutool_modclkcfg_deinit_i2c0(void)
352 {
353     CLK_DisableModuleClock(I2C0_MODULE);
354 
355     return;
356 }
357 
nutool_modclkcfg_init_i2c1(void)358 void nutool_modclkcfg_init_i2c1(void)
359 {
360     CLK_EnableModuleClock(I2C1_MODULE);
361 
362     return;
363 }
364 
nutool_modclkcfg_deinit_i2c1(void)365 void nutool_modclkcfg_deinit_i2c1(void)
366 {
367     CLK_DisableModuleClock(I2C1_MODULE);
368 
369     return;
370 }
371 
nutool_modclkcfg_init_i2c2(void)372 void nutool_modclkcfg_init_i2c2(void)
373 {
374     CLK_EnableModuleClock(I2C2_MODULE);
375 
376     return;
377 }
378 
nutool_modclkcfg_deinit_i2c2(void)379 void nutool_modclkcfg_deinit_i2c2(void)
380 {
381     CLK_DisableModuleClock(I2C2_MODULE);
382 
383     return;
384 }
385 
nutool_modclkcfg_init_i2s0(void)386 void nutool_modclkcfg_init_i2s0(void)
387 {
388     CLK_EnableModuleClock(I2S0_MODULE);
389     CLK_SetModuleClock(I2S0_MODULE, CLK_CLKSEL3_I2S0SEL_HXT, MODULE_NoMsk);
390 
391     return;
392 }
393 
nutool_modclkcfg_deinit_i2s0(void)394 void nutool_modclkcfg_deinit_i2s0(void)
395 {
396     CLK_DisableModuleClock(I2S0_MODULE);
397 
398     return;
399 }
400 
nutool_modclkcfg_init_isp(void)401 void nutool_modclkcfg_init_isp(void)
402 {
403     CLK_EnableModuleClock(ISP_MODULE);
404 
405     return;
406 }
407 
nutool_modclkcfg_deinit_isp(void)408 void nutool_modclkcfg_deinit_isp(void)
409 {
410     CLK_DisableModuleClock(ISP_MODULE);
411 
412     return;
413 }
414 
nutool_modclkcfg_init_opa(void)415 void nutool_modclkcfg_init_opa(void)
416 {
417     CLK_EnableModuleClock(OPA_MODULE);
418 
419     return;
420 }
421 
nutool_modclkcfg_deinit_opa(void)422 void nutool_modclkcfg_deinit_opa(void)
423 {
424     CLK_DisableModuleClock(OPA_MODULE);
425 
426     return;
427 }
428 
nutool_modclkcfg_init_otg(void)429 void nutool_modclkcfg_init_otg(void)
430 {
431     CLK_EnableModuleClock(OTG_MODULE);
432     CLK_SetModuleClock(OTG_MODULE, MODULE_NoMsk, CLK_CLKDIV0_USB(1));
433 
434     return;
435 }
436 
nutool_modclkcfg_deinit_otg(void)437 void nutool_modclkcfg_deinit_otg(void)
438 {
439     CLK_DisableModuleClock(OTG_MODULE);
440 
441     return;
442 }
443 
nutool_modclkcfg_init_pdma(void)444 void nutool_modclkcfg_init_pdma(void)
445 {
446     CLK_EnableModuleClock(PDMA_MODULE);
447 
448     return;
449 }
450 
nutool_modclkcfg_deinit_pdma(void)451 void nutool_modclkcfg_deinit_pdma(void)
452 {
453     CLK_DisableModuleClock(PDMA_MODULE);
454 
455     return;
456 }
457 
nutool_modclkcfg_init_qei0(void)458 void nutool_modclkcfg_init_qei0(void)
459 {
460     CLK_EnableModuleClock(QEI0_MODULE);
461 
462     return;
463 }
464 
nutool_modclkcfg_deinit_qei0(void)465 void nutool_modclkcfg_deinit_qei0(void)
466 {
467     CLK_DisableModuleClock(QEI0_MODULE);
468 
469     return;
470 }
471 
nutool_modclkcfg_init_qei1(void)472 void nutool_modclkcfg_init_qei1(void)
473 {
474     CLK_EnableModuleClock(QEI1_MODULE);
475 
476     return;
477 }
478 
nutool_modclkcfg_deinit_qei1(void)479 void nutool_modclkcfg_deinit_qei1(void)
480 {
481     CLK_DisableModuleClock(QEI1_MODULE);
482 
483     return;
484 }
485 
nutool_modclkcfg_init_qspi0(void)486 void nutool_modclkcfg_init_qspi0(void)
487 {
488     CLK_EnableModuleClock(QSPI0_MODULE);
489     CLK_SetModuleClock(QSPI0_MODULE, CLK_CLKSEL2_QSPI0SEL_PCLK0, MODULE_NoMsk);
490 
491     return;
492 }
493 
nutool_modclkcfg_deinit_qspi0(void)494 void nutool_modclkcfg_deinit_qspi0(void)
495 {
496     CLK_DisableModuleClock(QSPI0_MODULE);
497 
498     return;
499 }
500 
nutool_modclkcfg_init_rtc(void)501 void nutool_modclkcfg_init_rtc(void)
502 {
503     CLK_EnableModuleClock(RTC_MODULE);
504     CLK_SetModuleClock(RTC_MODULE, CLK_CLKSEL3_RTCSEL_LXT, MODULE_NoMsk);
505 
506     return;
507 }
508 
nutool_modclkcfg_deinit_rtc(void)509 void nutool_modclkcfg_deinit_rtc(void)
510 {
511     CLK_DisableModuleClock(RTC_MODULE);
512 
513     return;
514 }
515 
nutool_modclkcfg_init_sc0(void)516 void nutool_modclkcfg_init_sc0(void)
517 {
518     CLK_EnableModuleClock(SC0_MODULE);
519     CLK_SetModuleClock(SC0_MODULE, CLK_CLKSEL3_SC0SEL_HXT, CLK_CLKDIV1_SC0(1));
520 
521     return;
522 }
523 
nutool_modclkcfg_deinit_sc0(void)524 void nutool_modclkcfg_deinit_sc0(void)
525 {
526     CLK_DisableModuleClock(SC0_MODULE);
527 
528     return;
529 }
530 
nutool_modclkcfg_init_sc1(void)531 void nutool_modclkcfg_init_sc1(void)
532 {
533     CLK_EnableModuleClock(SC1_MODULE);
534     CLK_SetModuleClock(SC1_MODULE, CLK_CLKSEL3_SC1SEL_HXT, CLK_CLKDIV1_SC1(1));
535 
536     return;
537 }
538 
nutool_modclkcfg_deinit_sc1(void)539 void nutool_modclkcfg_deinit_sc1(void)
540 {
541     CLK_DisableModuleClock(SC1_MODULE);
542 
543     return;
544 }
545 
nutool_modclkcfg_init_sc2(void)546 void nutool_modclkcfg_init_sc2(void)
547 {
548     CLK_EnableModuleClock(SC2_MODULE);
549     CLK_SetModuleClock(SC2_MODULE, CLK_CLKSEL3_SC2SEL_HXT, CLK_CLKDIV1_SC2(1));
550 
551     return;
552 }
553 
nutool_modclkcfg_deinit_sc2(void)554 void nutool_modclkcfg_deinit_sc2(void)
555 {
556     CLK_DisableModuleClock(SC2_MODULE);
557 
558     return;
559 }
560 
nutool_modclkcfg_init_sdh0(void)561 void nutool_modclkcfg_init_sdh0(void)
562 {
563     CLK_EnableModuleClock(SDH0_MODULE);
564     CLK_SetModuleClock(SDH0_MODULE, CLK_CLKSEL0_SDH0SEL_HCLK, CLK_CLKDIV0_SDH0(4));
565 
566     return;
567 }
568 
nutool_modclkcfg_deinit_sdh0(void)569 void nutool_modclkcfg_deinit_sdh0(void)
570 {
571     CLK_DisableModuleClock(SDH0_MODULE);
572 
573     return;
574 }
575 
nutool_modclkcfg_init_sdh1(void)576 void nutool_modclkcfg_init_sdh1(void)
577 {
578     CLK_EnableModuleClock(SDH1_MODULE);
579     CLK_SetModuleClock(SDH1_MODULE, CLK_CLKSEL0_SDH1SEL_HCLK, CLK_CLKDIV3_SDH1(1));
580 
581     return;
582 }
583 
nutool_modclkcfg_deinit_sdh1(void)584 void nutool_modclkcfg_deinit_sdh1(void)
585 {
586     CLK_DisableModuleClock(SDH1_MODULE);
587 
588     return;
589 }
590 
nutool_modclkcfg_init_spi0(void)591 void nutool_modclkcfg_init_spi0(void)
592 {
593     CLK_EnableModuleClock(SPI0_MODULE);
594     CLK_SetModuleClock(SPI0_MODULE, CLK_CLKSEL2_SPI0SEL_PCLK1, MODULE_NoMsk);
595 
596     return;
597 }
598 
nutool_modclkcfg_deinit_spi0(void)599 void nutool_modclkcfg_deinit_spi0(void)
600 {
601     CLK_DisableModuleClock(SPI0_MODULE);
602 
603     return;
604 }
605 
nutool_modclkcfg_init_spi1(void)606 void nutool_modclkcfg_init_spi1(void)
607 {
608     CLK_EnableModuleClock(SPI1_MODULE);
609     CLK_SetModuleClock(SPI1_MODULE, CLK_CLKSEL2_SPI1SEL_PCLK0, MODULE_NoMsk);
610 
611     return;
612 }
613 
nutool_modclkcfg_deinit_spi1(void)614 void nutool_modclkcfg_deinit_spi1(void)
615 {
616     CLK_DisableModuleClock(SPI1_MODULE);
617 
618     return;
619 }
620 
nutool_modclkcfg_init_spi2(void)621 void nutool_modclkcfg_init_spi2(void)
622 {
623     CLK_EnableModuleClock(SPI2_MODULE);
624     CLK_SetModuleClock(SPI2_MODULE, CLK_CLKSEL2_SPI2SEL_PCLK1, MODULE_NoMsk);
625 
626     return;
627 }
628 
nutool_modclkcfg_deinit_spi2(void)629 void nutool_modclkcfg_deinit_spi2(void)
630 {
631     CLK_DisableModuleClock(SPI2_MODULE);
632 
633     return;
634 }
635 
nutool_modclkcfg_init_spi3(void)636 void nutool_modclkcfg_init_spi3(void)
637 {
638     CLK_EnableModuleClock(SPI3_MODULE);
639     CLK_SetModuleClock(SPI3_MODULE, CLK_CLKSEL2_SPI3SEL_PCLK0, MODULE_NoMsk);
640 
641     return;
642 }
643 
nutool_modclkcfg_deinit_spi3(void)644 void nutool_modclkcfg_deinit_spi3(void)
645 {
646     CLK_DisableModuleClock(SPI3_MODULE);
647 
648     return;
649 }
650 
nutool_modclkcfg_init_spim(void)651 void nutool_modclkcfg_init_spim(void)
652 {
653     CLK_EnableModuleClock(SPIM_MODULE);
654 
655     return;
656 }
657 
nutool_modclkcfg_deinit_spim(void)658 void nutool_modclkcfg_deinit_spim(void)
659 {
660     CLK_DisableModuleClock(SPIM_MODULE);
661 
662     return;
663 }
664 
nutool_modclkcfg_init_systick(void)665 void nutool_modclkcfg_init_systick(void)
666 {
667     CLK_EnableSysTick(CLK_CLKSEL0_STCLKSEL_HCLK, 0);
668 
669     return;
670 }
671 
nutool_modclkcfg_deinit_systick(void)672 void nutool_modclkcfg_deinit_systick(void)
673 {
674     CLK_DisableSysTick();
675 
676     return;
677 }
678 
nutool_modclkcfg_init_tmr0(void)679 void nutool_modclkcfg_init_tmr0(void)
680 {
681     CLK_EnableModuleClock(TMR0_MODULE);
682     CLK_SetModuleClock(TMR0_MODULE, CLK_CLKSEL1_TMR0SEL_HXT, MODULE_NoMsk);
683 
684     return;
685 }
686 
nutool_modclkcfg_deinit_tmr0(void)687 void nutool_modclkcfg_deinit_tmr0(void)
688 {
689     CLK_DisableModuleClock(TMR0_MODULE);
690 
691     return;
692 }
693 
nutool_modclkcfg_init_tmr1(void)694 void nutool_modclkcfg_init_tmr1(void)
695 {
696     CLK_EnableModuleClock(TMR1_MODULE);
697     CLK_SetModuleClock(TMR1_MODULE, CLK_CLKSEL1_TMR1SEL_HXT, MODULE_NoMsk);
698 
699     return;
700 }
701 
nutool_modclkcfg_deinit_tmr1(void)702 void nutool_modclkcfg_deinit_tmr1(void)
703 {
704     CLK_DisableModuleClock(TMR1_MODULE);
705 
706     return;
707 }
708 
nutool_modclkcfg_init_tmr2(void)709 void nutool_modclkcfg_init_tmr2(void)
710 {
711     CLK_EnableModuleClock(TMR2_MODULE);
712     CLK_SetModuleClock(TMR2_MODULE, CLK_CLKSEL1_TMR2SEL_HXT, MODULE_NoMsk);
713 
714     return;
715 }
716 
nutool_modclkcfg_deinit_tmr2(void)717 void nutool_modclkcfg_deinit_tmr2(void)
718 {
719     CLK_DisableModuleClock(TMR2_MODULE);
720 
721     return;
722 }
723 
nutool_modclkcfg_init_tmr3(void)724 void nutool_modclkcfg_init_tmr3(void)
725 {
726     CLK_EnableModuleClock(TMR3_MODULE);
727     CLK_SetModuleClock(TMR3_MODULE, CLK_CLKSEL1_TMR3SEL_HXT, MODULE_NoMsk);
728 
729     return;
730 }
731 
nutool_modclkcfg_deinit_tmr3(void)732 void nutool_modclkcfg_deinit_tmr3(void)
733 {
734     CLK_DisableModuleClock(TMR3_MODULE);
735 
736     return;
737 }
738 
nutool_modclkcfg_init_uart0(void)739 void nutool_modclkcfg_init_uart0(void)
740 {
741     CLK_EnableModuleClock(UART0_MODULE);
742     CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UART0SEL_HXT, CLK_CLKDIV0_UART0(1));
743 
744     return;
745 }
746 
nutool_modclkcfg_deinit_uart0(void)747 void nutool_modclkcfg_deinit_uart0(void)
748 {
749     CLK_DisableModuleClock(UART0_MODULE);
750 
751     return;
752 }
753 
nutool_modclkcfg_init_uart1(void)754 void nutool_modclkcfg_init_uart1(void)
755 {
756     CLK_EnableModuleClock(UART1_MODULE);
757     CLK_SetModuleClock(UART1_MODULE, CLK_CLKSEL1_UART1SEL_HXT, CLK_CLKDIV0_UART1(1));
758 
759     return;
760 }
761 
nutool_modclkcfg_deinit_uart1(void)762 void nutool_modclkcfg_deinit_uart1(void)
763 {
764     CLK_DisableModuleClock(UART1_MODULE);
765 
766     return;
767 }
768 
nutool_modclkcfg_init_uart2(void)769 void nutool_modclkcfg_init_uart2(void)
770 {
771     CLK_EnableModuleClock(UART2_MODULE);
772     CLK_SetModuleClock(UART2_MODULE, CLK_CLKSEL3_UART2SEL_HXT, CLK_CLKDIV4_UART2(1));
773 
774     return;
775 }
776 
nutool_modclkcfg_deinit_uart2(void)777 void nutool_modclkcfg_deinit_uart2(void)
778 {
779     CLK_DisableModuleClock(UART2_MODULE);
780 
781     return;
782 }
783 
nutool_modclkcfg_init_uart3(void)784 void nutool_modclkcfg_init_uart3(void)
785 {
786     CLK_EnableModuleClock(UART3_MODULE);
787     CLK_SetModuleClock(UART3_MODULE, CLK_CLKSEL3_UART3SEL_HXT, CLK_CLKDIV4_UART3(1));
788 
789     return;
790 }
791 
nutool_modclkcfg_deinit_uart3(void)792 void nutool_modclkcfg_deinit_uart3(void)
793 {
794     CLK_DisableModuleClock(UART3_MODULE);
795 
796     return;
797 }
798 
nutool_modclkcfg_init_uart4(void)799 void nutool_modclkcfg_init_uart4(void)
800 {
801     CLK_EnableModuleClock(UART4_MODULE);
802     CLK_SetModuleClock(UART4_MODULE, CLK_CLKSEL3_UART4SEL_HXT, CLK_CLKDIV4_UART4(1));
803 
804     return;
805 }
806 
nutool_modclkcfg_deinit_uart4(void)807 void nutool_modclkcfg_deinit_uart4(void)
808 {
809     CLK_DisableModuleClock(UART4_MODULE);
810 
811     return;
812 }
813 
nutool_modclkcfg_init_uart5(void)814 void nutool_modclkcfg_init_uart5(void)
815 {
816     CLK_EnableModuleClock(UART5_MODULE);
817     CLK_SetModuleClock(UART5_MODULE, CLK_CLKSEL3_UART5SEL_HXT, CLK_CLKDIV4_UART5(1));
818 
819     return;
820 }
821 
nutool_modclkcfg_deinit_uart5(void)822 void nutool_modclkcfg_deinit_uart5(void)
823 {
824     CLK_DisableModuleClock(UART5_MODULE);
825 
826     return;
827 }
828 
nutool_modclkcfg_init_usbd(void)829 void nutool_modclkcfg_init_usbd(void)
830 {
831     CLK_EnableModuleClock(USBD_MODULE);
832     CLK_SetModuleClock(USBD_MODULE, CLK_CLKSEL0_USBSEL_PLL, CLK_CLKDIV0_USB(4));
833 
834     return;
835 }
836 
nutool_modclkcfg_deinit_usbd(void)837 void nutool_modclkcfg_deinit_usbd(void)
838 {
839     CLK_DisableModuleClock(USBD_MODULE);
840 
841     return;
842 }
843 
nutool_modclkcfg_init_usbh(void)844 void nutool_modclkcfg_init_usbh(void)
845 {
846     CLK_EnableModuleClock(USBH_MODULE);
847     CLK_SetModuleClock(USBH_MODULE, CLK_CLKSEL0_USBSEL_PLL, CLK_CLKDIV0_USB(4));
848 
849     return;
850 }
851 
nutool_modclkcfg_deinit_usbh(void)852 void nutool_modclkcfg_deinit_usbh(void)
853 {
854     CLK_DisableModuleClock(USBH_MODULE);
855 
856     return;
857 }
858 
nutool_modclkcfg_init_usci0(void)859 void nutool_modclkcfg_init_usci0(void)
860 {
861     CLK_EnableModuleClock(USCI0_MODULE);
862 
863     return;
864 }
865 
nutool_modclkcfg_deinit_usci0(void)866 void nutool_modclkcfg_deinit_usci0(void)
867 {
868     CLK_DisableModuleClock(USCI0_MODULE);
869 
870     return;
871 }
872 
nutool_modclkcfg_init_usci1(void)873 void nutool_modclkcfg_init_usci1(void)
874 {
875     CLK_EnableModuleClock(USCI1_MODULE);
876 
877     return;
878 }
879 
nutool_modclkcfg_deinit_usci1(void)880 void nutool_modclkcfg_deinit_usci1(void)
881 {
882     CLK_DisableModuleClock(USCI1_MODULE);
883 
884     return;
885 }
886 
nutool_modclkcfg_init_wdt(void)887 void nutool_modclkcfg_init_wdt(void)
888 {
889     CLK_EnableModuleClock(WDT_MODULE);
890     CLK_SetModuleClock(WDT_MODULE, CLK_CLKSEL1_WDTSEL_LXT, MODULE_NoMsk);
891 
892     return;
893 }
894 
nutool_modclkcfg_deinit_wdt(void)895 void nutool_modclkcfg_deinit_wdt(void)
896 {
897     CLK_DisableModuleClock(WDT_MODULE);
898 
899     return;
900 }
901 
nutool_modclkcfg_init_wwdt(void)902 void nutool_modclkcfg_init_wwdt(void)
903 {
904     CLK_EnableModuleClock(WWDT_MODULE);
905     CLK_SetModuleClock(WWDT_MODULE, CLK_CLKSEL1_WWDTSEL_HCLK_DIV2048, MODULE_NoMsk);
906 
907     return;
908 }
909 
nutool_modclkcfg_deinit_wwdt(void)910 void nutool_modclkcfg_deinit_wwdt(void)
911 {
912     CLK_DisableModuleClock(WWDT_MODULE);
913 
914     return;
915 }
916 
nutool_modclkcfg_init_base(void)917 void nutool_modclkcfg_init_base(void)
918 {
919     /* Set XT1_OUT(PF.2) and XT1_IN(PF.3) to input mode */
920     PF->MODE &= ~(GPIO_MODE_MODE2_Msk | GPIO_MODE_MODE3_Msk);
921 
922     /* Enable clock source */
923     CLK_EnableXtalRC(CLK_PWRCTL_HIRCEN_Msk | CLK_PWRCTL_LXTEN_Msk | CLK_PWRCTL_HXTEN_Msk);
924 
925     /* Waiting for clock source ready */
926     CLK_WaitClockReady(CLK_STATUS_HIRCSTB_Msk | CLK_STATUS_LXTSTB_Msk | CLK_STATUS_HXTSTB_Msk);
927 
928     /* Disable PLL first to avoid unstable when setting PLL */
929     CLK_DisablePLL();
930 
931     /* Set PLL frequency */
932     CLK->PLLCTL = (CLK->PLLCTL & ~(0x000FFFFFul)) | 0x0000421Eul;
933 
934     /* Waiting for PLL ready */
935     CLK_WaitClockReady(CLK_STATUS_PLLSTB_Msk);
936 
937     /* If the defines do not exist in your project, please refer to the related clk.h in the Header folder appended to the tool package. */
938     /* Set HCLK clock */
939     CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_PLL, CLK_CLKDIV0_HCLK(1));
940 
941     /* Set PCLK-related clock */
942     CLK->PCLKDIV = (CLK_PCLKDIV_PCLK0DIV2 | CLK_PCLKDIV_PCLK1DIV2);
943 
944     return;
945 }
946 
nutool_modclkcfg_init(void)947 void nutool_modclkcfg_init(void)
948 {
949     /*---------------------------------------------------------------------------------------------------------*/
950     /* Init System Clock                                                                                       */
951     /*---------------------------------------------------------------------------------------------------------*/
952     //CLK->PWRCTL = (CLK->PWRCTL & ~(0x0000000Ful)) | 0x00000017ul;
953     //CLK->PLLCTL = (CLK->PLLCTL & ~(0x000FFFFFul)) | 0x0000421Eul;
954     //CLK->CLKDIV0 = (CLK->CLKDIV0 & ~(0xFFFFFFFFul)) | 0x00070000ul;
955     //CLK->CLKDIV1 = (CLK->CLKDIV1 & ~(0x00FFFFFFul)) | 0x00000000ul;
956     //CLK->CLKDIV3 = (CLK->CLKDIV3 & ~(0xFFFF0000ul)) | 0x007E0000ul;
957     //CLK->CLKDIV4 = (CLK->CLKDIV4 & ~(0x0000FFFFul)) | 0x00000000ul;
958     //CLK->PCLKDIV = (CLK->PCLKDIV & ~(0x00000077ul)) | 0x00000011ul;
959     //CLK->CLKSEL0 = (CLK->CLKSEL0 & ~(0x00F0003Ful)) | 0x00A30102ul;
960     //CLK->CLKSEL1 = (CLK->CLKSEL1 & ~(0xFF777703ul)) | 0xB0000001ul;
961     //CLK->CLKSEL2 = (CLK->CLKSEL2 & ~(0x00003FFFul)) | 0x00002BABul;
962     //CLK->CLKSEL3 = (CLK->CLKSEL3 & ~(0xFF03023Ful)) | 0x00000000ul;
963     //CLK->AHBCLK = (CLK->AHBCLK & ~(0x0003D4EEul)) | 0x0003D4EEul;
964     //CLK->APBCLK0 = (CLK->APBCLK0 & ~(0x7F3FF7FFul)) | 0x7F3FF7BFul;
965     //CLK->APBCLK1 = (CLK->APBCLK1 & ~(0x4CCF1347ul)) | 0x4CCF1347ul;
966     //CLK->CLKOCTL = (CLK->CLKOCTL & ~(0x0000007Ful)) | 0x00000000ul;
967     //SysTick->CTRL = (SysTick->CTRL & ~(0x00000005ul)) | 0x00000005ul;
968 
969     /* Unlock protected registers */
970     SYS_UnlockReg();
971 
972     /* Enable base clock */
973     nutool_modclkcfg_init_base();
974 
975     /* Enable module clock and set clock source */
976 #if defined(BSP_USING_ACMP01)
977     nutool_modclkcfg_init_acmp01();
978 #endif
979 #if defined(BSP_USING_BPWM0)
980     nutool_modclkcfg_init_bpwm0();
981 #endif
982 #if defined(BSP_USING_BPWM1)
983     nutool_modclkcfg_init_bpwm1();
984 #endif
985 #if defined(BSP_USING_CAN0)
986     nutool_modclkcfg_init_can0();
987 #endif
988 #if defined(BSP_USING_CAN1)
989     nutool_modclkcfg_init_can1();
990 #endif
991 #if defined(BSP_USING_CRC)
992     nutool_modclkcfg_init_crc();
993 #endif
994 #if defined(BSP_USING_CRYPTO)
995     nutool_modclkcfg_init_crpt();
996 #endif
997 #if defined(BSP_USING_DAC)
998     nutool_modclkcfg_init_dac();
999 #endif
1000 #if defined(BSP_USING_EADC)
1001     nutool_modclkcfg_init_eadc();
1002 #endif
1003 #if defined(BSP_USING_EBI)
1004     nutool_modclkcfg_init_ebi();
1005 #endif
1006 #if defined(BSP_USING_ECAP0)
1007     nutool_modclkcfg_init_ecap0();
1008 #endif
1009 #if defined(BSP_USING_ECAP1)
1010     nutool_modclkcfg_init_ecap1();
1011 #endif
1012 #if defined(BSP_USING_EMAC)
1013     nutool_modclkcfg_init_emac();
1014 #endif
1015 #if defined(BSP_USING_EPWM0)
1016     nutool_modclkcfg_init_epwm0();
1017 #endif
1018 #if defined(BSP_USING_EPWM1)
1019     nutool_modclkcfg_init_epwm1();
1020 #endif
1021 #if defined(BSP_USING_FMC)
1022     nutool_modclkcfg_init_fmcidle();
1023 #endif
1024 #if defined(BSP_USING_HSOTG)
1025     nutool_modclkcfg_init_hsotg();
1026 #endif
1027 #if defined(BSP_USING_HSUSBD)
1028     nutool_modclkcfg_init_hsusbd();
1029 #endif
1030 #if defined(BSP_USING_I2C0)
1031     nutool_modclkcfg_init_i2c0();
1032 #endif
1033 #if defined(BSP_USING_I2C1)
1034     nutool_modclkcfg_init_i2c1();
1035 #endif
1036 #if defined(BSP_USING_I2C2)
1037     nutool_modclkcfg_init_i2c2();
1038 #endif
1039 #if defined(BSP_USING_I2S)
1040     nutool_modclkcfg_init_i2s0();
1041 #endif
1042 #if defined(BSP_USING_FMC)
1043     nutool_modclkcfg_init_isp();
1044 #endif
1045 #if defined(BSP_USING_OPA)
1046     nutool_modclkcfg_init_opa();
1047 #endif
1048 #if defined(BSP_USING_OTG) || defined(BSP_USING_USBH)
1049     nutool_modclkcfg_init_otg();
1050 #endif
1051 #if defined(BSP_USING_PDMA)
1052     nutool_modclkcfg_init_pdma();
1053 #endif
1054 #if defined(BSP_USING_QEI0)
1055     nutool_modclkcfg_init_qei0();
1056 #endif
1057 #if defined(BSP_USING_QEI1)
1058     nutool_modclkcfg_init_qei1();
1059 #endif
1060 #if defined(BSP_USING_QSPI0)
1061     nutool_modclkcfg_init_qspi0();
1062 #endif
1063 #if defined(BSP_USING_RTC)
1064     nutool_modclkcfg_init_rtc();
1065 #endif
1066 #if defined(BSP_USING_SCUART0)
1067     nutool_modclkcfg_init_sc0();
1068 #endif
1069 #if defined(BSP_USING_SCUART1)
1070     nutool_modclkcfg_init_sc1();
1071 #endif
1072 #if defined(BSP_USING_SCUART2)
1073     nutool_modclkcfg_init_sc2();
1074 #endif
1075 #if defined(BSP_USING_SDH0)
1076     nutool_modclkcfg_init_sdh0();
1077 #endif
1078 #if defined(BSP_USING_SDH1)
1079     nutool_modclkcfg_init_sdh1();
1080 #endif
1081 #if defined(BSP_USING_SPI0) || defined(BSP_USING_SPII2S0)
1082     nutool_modclkcfg_init_spi0();
1083 #endif
1084 #if defined(BSP_USING_SPI1) || defined(BSP_USING_SPII2S1)
1085     nutool_modclkcfg_init_spi1();
1086 #endif
1087 #if defined(BSP_USING_SPI2) || defined(BSP_USING_SPII2S2)
1088     nutool_modclkcfg_init_spi2();
1089 #endif
1090 #if defined(BSP_USING_SPI3) || defined(BSP_USING_SPII2S3)
1091     nutool_modclkcfg_init_spi3();
1092 #endif
1093     nutool_modclkcfg_init_systick();
1094 #if defined(BSP_USING_TMR0)
1095     nutool_modclkcfg_init_tmr0();
1096 #endif
1097 #if defined(BSP_USING_TMR1)
1098     nutool_modclkcfg_init_tmr1();
1099 #endif
1100 #if defined(BSP_USING_TMR2)
1101     nutool_modclkcfg_init_tmr2();
1102 #endif
1103 #if defined(BSP_USING_TMR3)
1104     nutool_modclkcfg_init_tmr3();
1105 #endif
1106 #if defined(BSP_USING_UART0)
1107     nutool_modclkcfg_init_uart0();
1108 #endif
1109 #if defined(BSP_USING_UART1)
1110     nutool_modclkcfg_init_uart1();
1111 #endif
1112 #if defined(BSP_USING_UART2)
1113     nutool_modclkcfg_init_uart2();
1114 #endif
1115 #if defined(BSP_USING_UART3)
1116     nutool_modclkcfg_init_uart3();
1117 #endif
1118 #if defined(BSP_USING_UART4)
1119     nutool_modclkcfg_init_uart4();
1120 #endif
1121 #if defined(BSP_USING_UART5)
1122     nutool_modclkcfg_init_uart5();
1123 #endif
1124 #if defined(BSP_USING_USBD) || defined(BSP_USING_USBH)
1125     nutool_modclkcfg_init_usbd();
1126 #endif
1127 #if defined(BSP_USING_USBH) || defined(BSP_USING_HSUSBH)
1128     nutool_modclkcfg_init_usbh();
1129 #endif
1130 #if defined(BSP_USING_USCI0)
1131     nutool_modclkcfg_init_usci0();
1132 #endif
1133 #if defined(BSP_USING_USCI1)
1134     nutool_modclkcfg_init_usci1();
1135 #endif
1136 #if defined(BSP_USING_WDT)
1137     nutool_modclkcfg_init_wdt();
1138 #endif
1139 #if defined(BSP_USING_WWDT)
1140     nutool_modclkcfg_init_wwdt();
1141 #endif
1142 
1143     /* Update System Core Clock */
1144     /* User can use SystemCoreClockUpdate() to calculate SystemCoreClock. */
1145     SystemCoreClockUpdate();
1146 
1147     /* Lock protected registers */
1148     SYS_LockReg();
1149 
1150     return;
1151 }
1152 
1153 /*** (C) COPYRIGHT 2013-2020 Nuvoton Technology Corp. ***/
1154