1 /****************************************************************************
2  * @file     nutool_pincfg.c
3  * @version  V1.21
4  * @Date     2021/03/03-17:36:00
5  * @brief    NuMicro generated code file
6  *
7  * SPDX-License-Identifier: Apache-2.0
8  *
9  * Copyright (C) 2013-2020 Nuvoton Technology Corp. All rights reserved.
10 *****************************************************************************/
11 
12 /********************
13 MCU:M032KIAAE(LQFP128)
14 Pin Configuration:
15 Pin1:ADC0_CH5
16 Pin2:ADC0_CH4
17 Pin3:UART1_TXD
18 Pin4:UART1_RXD
19 Pin9:ADC0_CH1
20 Pin10:ADC0_CH0
21 Pin31:X32_IN
22 Pin32:X32_OUT
23 Pin37:XT1_IN
24 Pin38:XT1_OUT
25 Pin50:PWM1_CH4
26 Pin51:PWM1_CH5
27 Pin55:QSPI0_MISO1
28 Pin56:QSPI0_MOSI1
29 Pin57:QSPI0_SS
30 Pin58:QSPI0_CLK
31 Pin59:QSPI0_MISO0
32 Pin60:QSPI0_MOSI0
33 Pin65:ICE_DAT
34 Pin66:ICE_CLK
35 Pin69:PWM1_CH0
36 Pin70:PWM1_CH1
37 Pin71:PWM1_CH2
38 Pin72:PWM1_CH3
39 Pin73:I2C0_SCL
40 Pin74:I2C0_SDA
41 Pin118:UART0_TXD
42 Pin119:UART0_RXD
43 Pin127:ADC0_CH7
44 Pin128:ADC0_CH6
45 ********************/
46 
47 #include "M031Series.h"
48 #include "rtconfig.h"
49 
nutool_pincfg_init_ice(void)50 void nutool_pincfg_init_ice(void)
51 {
52     SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF1MFP_Msk | SYS_GPF_MFPL_PF0MFP_Msk);
53     SYS->GPF_MFPL |= (SYS_GPF_MFPL_PF1MFP_ICE_CLK | SYS_GPF_MFPL_PF0MFP_ICE_DAT);
54 
55     return;
56 }
57 
nutool_pincfg_deinit_ice(void)58 void nutool_pincfg_deinit_ice(void)
59 {
60     SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF1MFP_Msk | SYS_GPF_MFPL_PF0MFP_Msk);
61 
62     return;
63 }
64 
nutool_pincfg_init_uart0(void)65 void nutool_pincfg_init_uart0(void)
66 {
67     SYS->GPB_MFPH &= ~(SYS_GPB_MFPH_PB13MFP_Msk | SYS_GPB_MFPH_PB12MFP_Msk);
68     SYS->GPB_MFPH |= (SYS_GPB_MFPH_PB13MFP_UART0_TXD | SYS_GPB_MFPH_PB12MFP_UART0_RXD);
69 
70     return;
71 }
72 
nutool_pincfg_deinit_uart0(void)73 void nutool_pincfg_deinit_uart0(void)
74 {
75     SYS->GPB_MFPH &= ~(SYS_GPB_MFPH_PB13MFP_Msk | SYS_GPB_MFPH_PB12MFP_Msk);
76 
77     return;
78 }
79 
nutool_pincfg_init_x32(void)80 void nutool_pincfg_init_x32(void)
81 {
82     SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF5MFP_Msk | SYS_GPF_MFPL_PF4MFP_Msk);
83     SYS->GPF_MFPL |= (SYS_GPF_MFPL_PF5MFP_X32_IN | SYS_GPF_MFPL_PF4MFP_X32_OUT);
84 
85     return;
86 }
87 
nutool_pincfg_deinit_x32(void)88 void nutool_pincfg_deinit_x32(void)
89 {
90     SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF5MFP_Msk | SYS_GPF_MFPL_PF4MFP_Msk);
91 
92     return;
93 }
94 
nutool_pincfg_init_xt1(void)95 void nutool_pincfg_init_xt1(void)
96 {
97     SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF3MFP_Msk | SYS_GPF_MFPL_PF2MFP_Msk);
98     SYS->GPF_MFPL |= (SYS_GPF_MFPL_PF3MFP_XT1_IN | SYS_GPF_MFPL_PF2MFP_XT1_OUT);
99 
100     return;
101 }
102 
nutool_pincfg_deinit_xt1(void)103 void nutool_pincfg_deinit_xt1(void)
104 {
105     SYS->GPF_MFPL &= ~(SYS_GPF_MFPL_PF3MFP_Msk | SYS_GPF_MFPL_PF2MFP_Msk);
106 
107     return;
108 }
109 
nutool_pincfg_init_qspi0(void)110 void nutool_pincfg_init_qspi0(void)
111 {
112     SYS->GPA_MFPL &= ~(SYS_GPA_MFPL_PA0MFP_Msk | SYS_GPA_MFPL_PA1MFP_Msk | SYS_GPA_MFPL_PA2MFP_Msk | SYS_GPA_MFPL_PA3MFP_Msk |
113                        SYS_GPA_MFPL_PA4MFP_Msk | SYS_GPA_MFPL_PA5MFP_Msk);
114 
115     SYS->GPA_MFPL |= (SYS_GPA_MFPL_PA0MFP_QSPI0_MOSI0 | SYS_GPA_MFPL_PA1MFP_QSPI0_MISO0 |
116                       SYS_GPA_MFPL_PA2MFP_QSPI0_CLK | SYS_GPA_MFPL_PA3MFP_QSPI0_SS |
117                       SYS_GPA_MFPL_PA4MFP_QSPI0_MOSI1 | SYS_GPA_MFPL_PA5MFP_QSPI0_MISO1);
118 
119     /* pull high qspi quad mode pins. */
120     GPIO_SetMode(PA, BIT4 | BIT5, GPIO_MODE_QUASI);
121 
122 }
123 
nutool_pincfg_init_usci0(void)124 void nutool_pincfg_init_usci0(void)
125 {
126     SYS->GPA_MFPH &= ~(SYS_GPA_MFPH_PA8MFP_Msk | SYS_GPA_MFPH_PA9MFP_Msk | SYS_GPA_MFPH_PA10MFP_Msk | SYS_GPA_MFPH_PA11MFP_Msk);
127 
128     SYS->GPA_MFPH |= (/*SYS_GPA_MFPH_PA8MFP_USCI0_CTL1 |*/ SYS_GPA_MFPH_PA9MFP_USCI0_DAT1 | SYS_GPA_MFPH_PA10MFP_USCI0_DAT0 | SYS_GPA_MFPH_PA11MFP_USCI0_CLK);
129 }
130 
nutool_pincfg_deinit_qspi0(void)131 void nutool_pincfg_deinit_qspi0(void)
132 {
133     SYS->GPA_MFPL &= ~(SYS_GPA_MFPL_PA0MFP_Msk | SYS_GPA_MFPL_PA1MFP_Msk | SYS_GPA_MFPL_PA2MFP_Msk | SYS_GPA_MFPL_PA3MFP_Msk |
134                        SYS_GPA_MFPL_PA4MFP_Msk | SYS_GPA_MFPL_PA5MFP_Msk);
135 }
136 
nutool_pincfg_init_i2c0(void)137 void nutool_pincfg_init_i2c0(void)
138 {
139     SYS->GPC_MFPL &= ~(SYS_GPC_MFPL_PC0MFP_Msk | SYS_GPC_MFPL_PC1MFP_Msk);
140     SYS->GPC_MFPL |= (SYS_GPC_MFPL_PC0MFP_I2C0_SDA | SYS_GPC_MFPL_PC1MFP_I2C0_SCL);
141 }
142 
nutool_pincfg_deinit_i2c0(void)143 void nutool_pincfg_deinit_i2c0(void)
144 {
145     SYS->GPC_MFPL &= ~(SYS_GPC_MFPL_PC0MFP_Msk | SYS_GPC_MFPL_PC1MFP_Msk);
146 }
147 
nutool_pincfg_init_adc0(void)148 void nutool_pincfg_init_adc0(void)
149 {
150     SYS->GPB_MFPL &= ~(SYS_GPB_MFPL_PB0MFP_Msk | SYS_GPB_MFPL_PB1MFP_Msk | SYS_GPB_MFPL_PB4MFP_Msk |
151                        SYS_GPB_MFPL_PB5MFP_Msk | SYS_GPB_MFPL_PB6MFP_Msk | SYS_GPB_MFPL_PB7MFP_Msk);
152 
153     SYS->GPB_MFPL |= (SYS_GPB_MFPL_PB0MFP_ADC_CH0 | SYS_GPB_MFPL_PB1MFP_ADC_CH1 | SYS_GPB_MFPL_PB4MFP_ADC_CH4 |
154                       SYS_GPB_MFPL_PB5MFP_ADC_CH5 | SYS_GPB_MFPL_PB6MFP_ADC_CH6 | SYS_GPB_MFPL_PB7MFP_ADC_CH7);
155 
156     /* Disable digital path on these ADC pins */
157     GPIO_DISABLE_DIGITAL_PATH(PB, BIT0 | BIT1 | BIT4 | BIT5 | BIT6 | BIT7);
158 }
159 
nutool_pincfg_deinit_adc0(void)160 void nutool_pincfg_deinit_adc0(void)
161 {
162     SYS->GPB_MFPL &= ~(SYS_GPB_MFPL_PB0MFP_Msk | SYS_GPB_MFPL_PB1MFP_Msk | SYS_GPB_MFPL_PB4MFP_Msk |
163                        SYS_GPB_MFPL_PB5MFP_Msk | SYS_GPB_MFPL_PB6MFP_Msk | SYS_GPB_MFPL_PB7MFP_Msk);
164 
165     /* Enable digital path on these ADC pins */
166     GPIO_ENABLE_DIGITAL_PATH(PB, BIT0 | BIT1 | BIT4 | BIT5 | BIT6 | BIT7);
167 }
168 
nutool_pincfg_init_pwm0(void)169 void nutool_pincfg_init_pwm0(void)
170 {
171     SYS->GPA_MFPL &= ~(SYS_GPA_MFPL_PA6MFP_Msk | SYS_GPA_MFPL_PA7MFP_Msk);
172     SYS->GPC_MFPL &= ~(SYS_GPC_MFPL_PC2MFP_Msk | SYS_GPC_MFPL_PC3MFP_Msk | SYS_GPC_MFPL_PC4MFP_Msk | SYS_GPC_MFPL_PC5MFP_Msk);
173 
174     SYS->GPA_MFPL |= (SYS_GPA_MFPL_PA6MFP_PWM1_CH5 | SYS_GPA_MFPL_PA7MFP_PWM1_CH4);
175     SYS->GPC_MFPL |= (SYS_GPC_MFPL_PC2MFP_PWM1_CH3 | SYS_GPC_MFPL_PC3MFP_PWM1_CH2 | SYS_GPC_MFPL_PC4MFP_PWM1_CH1 | SYS_GPC_MFPL_PC5MFP_PWM1_CH0);
176 }
177 
nutool_pincfg_deinit_pwm0(void)178 void nutool_pincfg_deinit_pwm0(void)
179 {
180     SYS->GPA_MFPL &= ~(SYS_GPA_MFPL_PA6MFP_Msk | SYS_GPA_MFPL_PA7MFP_Msk);
181     SYS->GPC_MFPL &= ~(SYS_GPC_MFPL_PC2MFP_Msk | SYS_GPC_MFPL_PC3MFP_Msk | SYS_GPC_MFPL_PC4MFP_Msk | SYS_GPC_MFPL_PC5MFP_Msk);
182 }
183 
nutool_pincfg_init_uart1(void)184 void nutool_pincfg_init_uart1(void)
185 {
186     SYS->GPB_MFPL &= ~(SYS_GPB_MFPL_PB2MFP_Msk | SYS_GPB_MFPL_PB3MFP_Msk);
187     SYS->GPB_MFPL |= (SYS_GPB_MFPL_PB2MFP_UART1_RXD | SYS_GPB_MFPL_PB3MFP_UART1_TXD);
188 }
189 
nutool_pincfg_deinit_uart1(void)190 void nutool_pincfg_deinit_uart1(void)
191 {
192     SYS->GPB_MFPL &= ~(SYS_GPB_MFPL_PB2MFP_Msk | SYS_GPB_MFPL_PB3MFP_Msk);
193 }
194 
nutool_pincfg_init(void)195 void nutool_pincfg_init(void)
196 {
197     //SYS->GPA_MFPH = 0x00000000UL;
198     //SYS->GPA_MFPL = 0xBB333333UL;
199     //SYS->GPB_MFPH = 0x00660000UL;
200     //SYS->GPB_MFPL = 0x11116611UL;
201     //SYS->GPC_MFPH = 0x00000000UL;
202     //SYS->GPC_MFPL = 0x00CCCC99UL;
203     //SYS->GPD_MFPH = 0x00000000UL;
204     //SYS->GPD_MFPL = 0x00000000UL;
205     //SYS->GPE_MFPH = 0x00000000UL;
206     //SYS->GPE_MFPL = 0x00000000UL;
207     //SYS->GPF_MFPH = 0x00000000UL;
208     //SYS->GPF_MFPL = 0x00AAAAEEUL;
209     //SYS->GPG_MFPH = 0x00000000UL;
210     //SYS->GPG_MFPL = 0x00000000UL;
211     //SYS->GPH_MFPH = 0x00000000UL;
212     //SYS->GPH_MFPL = 0x00000000UL;
213 
214     nutool_pincfg_init_ice();
215     nutool_pincfg_init_uart0();
216     nutool_pincfg_init_x32();
217     nutool_pincfg_init_xt1();
218     nutool_pincfg_init_qspi0();
219 #if defined(BOARD_USING_LCD_ILI9341)
220     nutool_pincfg_init_usci0();
221 #endif
222     nutool_pincfg_init_i2c0();
223     nutool_pincfg_init_adc0();
224 #if !defined(BOARD_USING_LCD_ILI9341)
225     nutool_pincfg_deinit_pwm0();
226     nutool_pincfg_deinit_uart1();
227 #endif
228 
229     return;
230 }
231 
nutool_pincfg_deinit(void)232 void nutool_pincfg_deinit(void)
233 {
234     nutool_pincfg_deinit_ice();
235     nutool_pincfg_deinit_uart0();
236     nutool_pincfg_deinit_x32();
237     nutool_pincfg_deinit_xt1();
238     nutool_pincfg_deinit_qspi0();
239     nutool_pincfg_init_usci0();
240     nutool_pincfg_deinit_i2c0();
241     nutool_pincfg_deinit_adc0();
242     nutool_pincfg_deinit_pwm0();
243     nutool_pincfg_deinit_uart1();
244 
245     return;
246 }
247 /*** (C) COPYRIGHT 2013-2020 Nuvoton Technology Corp. ***/
248