
#if(NUCODEGEN_GPIO)
/*--------------------------------------------------------------------------------------------*/
/* GPIO                                                                                       */
/*--------------------------------------------------------------------------------------------*/
void GPIO_Init()
{
    const uint32_t u32RegDefault = 0;
#if(NUCODEGEN_GPIO_DB)
    GPIO_SET_DEBOUNCE_TIME(NUCODEGEN_GPIO_DBCLKSRC, NUCODEGEN_GPIO_DBCLKSEL);
#endif

#if(NUCODEGEN_GPIO_CLR_DB_ICLKON)
    GPIO_CLR_DEBOUNCE_ICLKON(PA);	/* NUC1262 parameter is useless */
#endif

#if(NUCODEGEN_GPIO_PA)
    //GPIO_PA mode
    PA->MODE =
#if NUCODEGEN_GPIO_PA_PIN0_EN
        (NUCODEGEN_GPIO_PA_PIN0_MODE << GPIO_MODE_MODE0_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN1_EN
        (NUCODEGEN_GPIO_PA_PIN1_MODE << GPIO_MODE_MODE1_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN2_EN
        (NUCODEGEN_GPIO_PA_PIN2_MODE << GPIO_MODE_MODE2_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN3_EN
        (NUCODEGEN_GPIO_PA_PIN3_MODE << GPIO_MODE_MODE3_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN4_EN
        (NUCODEGEN_GPIO_PA_PIN4_MODE << GPIO_MODE_MODE4_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN5_EN
        (NUCODEGEN_GPIO_PA_PIN5_MODE << GPIO_MODE_MODE5_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN6_EN
        (NUCODEGEN_GPIO_PA_PIN6_MODE << GPIO_MODE_MODE6_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN7_EN
        (NUCODEGEN_GPIO_PA_PIN7_MODE << GPIO_MODE_MODE7_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN8_EN
        (NUCODEGEN_GPIO_PA_PIN8_MODE << GPIO_MODE_MODE8_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN9_EN
        (NUCODEGEN_GPIO_PA_PIN9_MODE << GPIO_MODE_MODE9_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN10_EN
        (NUCODEGEN_GPIO_PA_PIN10_MODE << GPIO_MODE_MODE10_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN11_EN
        (NUCODEGEN_GPIO_PA_PIN11_MODE << GPIO_MODE_MODE11_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN12_EN
        (NUCODEGEN_GPIO_PA_PIN12_MODE << GPIO_MODE_MODE12_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN13_EN
        (NUCODEGEN_GPIO_PA_PIN13_MODE << GPIO_MODE_MODE13_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN14_EN
        (NUCODEGEN_GPIO_PA_PIN14_MODE << GPIO_MODE_MODE14_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN15_EN
        (NUCODEGEN_GPIO_PA_PIN15_MODE << GPIO_MODE_MODE15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PA disable digital input path
    PA->DINOFF =
#if NUCODEGEN_GPIO_PA_PIN0_EN
        (NUCODEGEN_GPIO_PA_PIN0_DINOFF << GPIO_DINOFF_DINOFF0_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN1_EN
        (NUCODEGEN_GPIO_PA_PIN1_DINOFF << GPIO_DINOFF_DINOFF1_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN2_EN
        (NUCODEGEN_GPIO_PA_PIN2_DINOFF << GPIO_DINOFF_DINOFF2_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN3_EN
        (NUCODEGEN_GPIO_PA_PIN3_DINOFF << GPIO_DINOFF_DINOFF3_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN4_EN
        (NUCODEGEN_GPIO_PA_PIN4_DINOFF << GPIO_DINOFF_DINOFF4_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN5_EN
        (NUCODEGEN_GPIO_PA_PIN5_DINOFF << GPIO_DINOFF_DINOFF5_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN6_EN
        (NUCODEGEN_GPIO_PA_PIN6_DINOFF << GPIO_DINOFF_DINOFF6_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN7_EN
        (NUCODEGEN_GPIO_PA_PIN7_DINOFF << GPIO_DINOFF_DINOFF7_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN8_EN
        (NUCODEGEN_GPIO_PA_PIN8_DINOFF << GPIO_DINOFF_DINOFF8_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN9_EN
        (NUCODEGEN_GPIO_PA_PIN9_DINOFF << GPIO_DINOFF_DINOFF9_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN10_EN
        (NUCODEGEN_GPIO_PA_PIN10_DINOFF << GPIO_DINOFF_DINOFF10_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN11_EN
        (NUCODEGEN_GPIO_PA_PIN11_DINOFF << GPIO_DINOFF_DINOFF11_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN12_EN
        (NUCODEGEN_GPIO_PA_PIN12_DINOFF << GPIO_DINOFF_DINOFF12_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN13_EN
        (NUCODEGEN_GPIO_PA_PIN13_DINOFF << GPIO_DINOFF_DINOFF13_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN14_EN
        (NUCODEGEN_GPIO_PA_PIN14_DINOFF << GPIO_DINOFF_DINOFF14_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN15_EN
        (NUCODEGEN_GPIO_PA_PIN15_DINOFF << GPIO_DINOFF_DINOFF15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PA out data
    PA->DOUT =
#if NUCODEGEN_GPIO_PA_PIN0_EN
        (NUCODEGEN_GPIO_PA_PIN0_DOUT << GPIO_DOUT_DOUT0_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN1_EN
        (NUCODEGEN_GPIO_PA_PIN1_DOUT << GPIO_DOUT_DOUT1_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN2_EN
        (NUCODEGEN_GPIO_PA_PIN2_DOUT << GPIO_DOUT_DOUT2_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN3_EN
        (NUCODEGEN_GPIO_PA_PIN3_DOUT << GPIO_DOUT_DOUT3_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN4_EN
        (NUCODEGEN_GPIO_PA_PIN4_DOUT << GPIO_DOUT_DOUT4_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN5_EN
        (NUCODEGEN_GPIO_PA_PIN5_DOUT << GPIO_DOUT_DOUT5_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN6_EN
        (NUCODEGEN_GPIO_PA_PIN6_DOUT << GPIO_DOUT_DOUT6_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN7_EN
        (NUCODEGEN_GPIO_PA_PIN7_DOUT << GPIO_DOUT_DOUT7_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN8_EN
        (NUCODEGEN_GPIO_PA_PIN8_DOUT << GPIO_DOUT_DOUT8_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN9_EN
        (NUCODEGEN_GPIO_PA_PIN9_DOUT << GPIO_DOUT_DOUT9_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN10_EN
        (NUCODEGEN_GPIO_PA_PIN10_DOUT << GPIO_DOUT_DOUT10_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN11_EN
        (NUCODEGEN_GPIO_PA_PIN11_DOUT << GPIO_DOUT_DOUT11_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN12_EN
        (NUCODEGEN_GPIO_PA_PIN12_DOUT << GPIO_DOUT_DOUT12_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN13_EN
        (NUCODEGEN_GPIO_PA_PIN13_DOUT << GPIO_DOUT_DOUT13_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN14_EN
        (NUCODEGEN_GPIO_PA_PIN14_DOUT << GPIO_DOUT_DOUT14_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN15_EN
        (NUCODEGEN_GPIO_PA_PIN15_DOUT << GPIO_DOUT_DOUT15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PA DOUT mask
    PA->DATMSK =
#if NUCODEGEN_GPIO_PA_PIN0_EN
        (NUCODEGEN_GPIO_PA_PIN0_DATMSK << GPIO_DATMSK_DATMSK0_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN1_EN
        (NUCODEGEN_GPIO_PA_PIN1_DATMSK << GPIO_DATMSK_DATMSK1_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN2_EN
        (NUCODEGEN_GPIO_PA_PIN2_DATMSK << GPIO_DATMSK_DATMSK2_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN3_EN
        (NUCODEGEN_GPIO_PA_PIN3_DATMSK << GPIO_DATMSK_DATMSK3_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN4_EN
        (NUCODEGEN_GPIO_PA_PIN4_DATMSK << GPIO_DATMSK_DATMSK4_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN5_EN
        (NUCODEGEN_GPIO_PA_PIN5_DATMSK << GPIO_DATMSK_DATMSK5_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN6_EN
        (NUCODEGEN_GPIO_PA_PIN6_DATMSK << GPIO_DATMSK_DATMSK6_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN7_EN
        (NUCODEGEN_GPIO_PA_PIN7_DATMSK << GPIO_DATMSK_DATMSK7_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN8_EN
        (NUCODEGEN_GPIO_PA_PIN8_DATMSK << GPIO_DATMSK_DATMSK8_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN9_EN
        (NUCODEGEN_GPIO_PA_PIN9_DATMSK << GPIO_DATMSK_DATMSK9_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN10_EN
        (NUCODEGEN_GPIO_PA_PIN10_DATMSK << GPIO_DATMSK_DATMSK10_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN11_EN
        (NUCODEGEN_GPIO_PA_PIN11_DATMSK << GPIO_DATMSK_DATMSK11_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN12_EN
        (NUCODEGEN_GPIO_PA_PIN12_DATMSK << GPIO_DATMSK_DATMSK12_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN13_EN
        (NUCODEGEN_GPIO_PA_PIN13_DATMSK << GPIO_DATMSK_DATMSK13_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN14_EN
        (NUCODEGEN_GPIO_PA_PIN14_DATMSK << GPIO_DATMSK_DATMSK14_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN15_EN
        (NUCODEGEN_GPIO_PA_PIN15_DATMSK << GPIO_DATMSK_DATMSK15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PA enable de-bounce
    PA->DBEN =
#if NUCODEGEN_GPIO_PA_PIN0_EN
        (NUCODEGEN_GPIO_PA_PIN0_DBEN << GPIO_DBEN_DBEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN1_EN
        (NUCODEGEN_GPIO_PA_PIN1_DBEN << GPIO_DBEN_DBEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN2_EN
        (NUCODEGEN_GPIO_PA_PIN2_DBEN << GPIO_DBEN_DBEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN3_EN
        (NUCODEGEN_GPIO_PA_PIN3_DBEN << GPIO_DBEN_DBEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN4_EN
        (NUCODEGEN_GPIO_PA_PIN4_DBEN << GPIO_DBEN_DBEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN5_EN
        (NUCODEGEN_GPIO_PA_PIN5_DBEN << GPIO_DBEN_DBEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN6_EN
        (NUCODEGEN_GPIO_PA_PIN6_DBEN << GPIO_DBEN_DBEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN7_EN
        (NUCODEGEN_GPIO_PA_PIN7_DBEN << GPIO_DBEN_DBEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN8_EN
        (NUCODEGEN_GPIO_PA_PIN8_DBEN << GPIO_DBEN_DBEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN9_EN
        (NUCODEGEN_GPIO_PA_PIN9_DBEN << GPIO_DBEN_DBEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN10_EN
        (NUCODEGEN_GPIO_PA_PIN10_DBEN << GPIO_DBEN_DBEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN11_EN
        (NUCODEGEN_GPIO_PA_PIN11_DBEN << GPIO_DBEN_DBEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN12_EN
        (NUCODEGEN_GPIO_PA_PIN12_DBEN << GPIO_DBEN_DBEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN13_EN
        (NUCODEGEN_GPIO_PA_PIN13_DBEN << GPIO_DBEN_DBEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN14_EN
        (NUCODEGEN_GPIO_PA_PIN14_DBEN << GPIO_DBEN_DBEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN15_EN
        (NUCODEGEN_GPIO_PA_PIN15_DBEN << GPIO_DBEN_DBEN15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PA edge or level interrupt
    PA->INTTYPE =
#if NUCODEGEN_GPIO_PA_PIN0_EN
        (NUCODEGEN_GPIO_PA_PIN0_INTTYPE << GPIO_INTTYPE_TYPE0_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN1_EN
        (NUCODEGEN_GPIO_PA_PIN1_INTTYPE << GPIO_INTTYPE_TYPE1_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN2_EN
        (NUCODEGEN_GPIO_PA_PIN2_INTTYPE << GPIO_INTTYPE_TYPE2_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN3_EN
        (NUCODEGEN_GPIO_PA_PIN3_INTTYPE << GPIO_INTTYPE_TYPE3_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN4_EN
        (NUCODEGEN_GPIO_PA_PIN4_INTTYPE << GPIO_INTTYPE_TYPE4_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN5_EN
        (NUCODEGEN_GPIO_PA_PIN5_INTTYPE << GPIO_INTTYPE_TYPE5_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN6_EN
        (NUCODEGEN_GPIO_PA_PIN6_INTTYPE << GPIO_INTTYPE_TYPE6_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN7_EN
        (NUCODEGEN_GPIO_PA_PIN7_INTTYPE << GPIO_INTTYPE_TYPE7_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN8_EN
        (NUCODEGEN_GPIO_PA_PIN8_INTTYPE << GPIO_INTTYPE_TYPE8_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN9_EN
        (NUCODEGEN_GPIO_PA_PIN9_INTTYPE << GPIO_INTTYPE_TYPE9_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN10_EN
        (NUCODEGEN_GPIO_PA_PIN10_INTTYPE << GPIO_INTTYPE_TYPE10_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN11_EN
        (NUCODEGEN_GPIO_PA_PIN11_INTTYPE << GPIO_INTTYPE_TYPE11_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN12_EN
        (NUCODEGEN_GPIO_PA_PIN12_INTTYPE << GPIO_INTTYPE_TYPE12_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN13_EN
        (NUCODEGEN_GPIO_PA_PIN13_INTTYPE << GPIO_INTTYPE_TYPE13_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN14_EN
        (NUCODEGEN_GPIO_PA_PIN14_INTTYPE << GPIO_INTTYPE_TYPE14_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN15_EN
        (NUCODEGEN_GPIO_PA_PIN15_INTTYPE << GPIO_INTTYPE_TYPE15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PA enable falling(edge) or low(level) interrupt
    PA->INTEN =
#if NUCODEGEN_GPIO_PA_PIN0_EN
        (NUCODEGEN_GPIO_PA_PIN0_FLIEN << GPIO_INTEN_FLIEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN1_EN
        (NUCODEGEN_GPIO_PA_PIN1_FLIEN << GPIO_INTEN_FLIEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN2_EN
        (NUCODEGEN_GPIO_PA_PIN2_FLIEN << GPIO_INTEN_FLIEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN3_EN
        (NUCODEGEN_GPIO_PA_PIN3_FLIEN << GPIO_INTEN_FLIEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN4_EN
        (NUCODEGEN_GPIO_PA_PIN4_FLIEN << GPIO_INTEN_FLIEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN5_EN
        (NUCODEGEN_GPIO_PA_PIN5_FLIEN << GPIO_INTEN_FLIEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN6_EN
        (NUCODEGEN_GPIO_PA_PIN6_FLIEN << GPIO_INTEN_FLIEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN7_EN
        (NUCODEGEN_GPIO_PA_PIN7_FLIEN << GPIO_INTEN_FLIEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN8_EN
        (NUCODEGEN_GPIO_PA_PIN8_FLIEN << GPIO_INTEN_FLIEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN9_EN
        (NUCODEGEN_GPIO_PA_PIN9_FLIEN << GPIO_INTEN_FLIEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN10_EN
        (NUCODEGEN_GPIO_PA_PIN10_FLIEN << GPIO_INTEN_FLIEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN11_EN
        (NUCODEGEN_GPIO_PA_PIN11_FLIEN << GPIO_INTEN_FLIEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN12_EN
        (NUCODEGEN_GPIO_PA_PIN12_FLIEN << GPIO_INTEN_FLIEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN13_EN
        (NUCODEGEN_GPIO_PA_PIN13_FLIEN << GPIO_INTEN_FLIEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN14_EN
        (NUCODEGEN_GPIO_PA_PIN14_FLIEN << GPIO_INTEN_FLIEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN15_EN
        (NUCODEGEN_GPIO_PA_PIN15_FLIEN << GPIO_INTEN_FLIEN15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PA enable rising(edge) or high(level) interrupt
    PA->INTEN |=
#if NUCODEGEN_GPIO_PA_PIN0_EN
        (NUCODEGEN_GPIO_PA_PIN0_RHIEN << GPIO_INTEN_RHIEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN1_EN
        (NUCODEGEN_GPIO_PA_PIN1_RHIEN << GPIO_INTEN_RHIEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN2_EN
        (NUCODEGEN_GPIO_PA_PIN2_RHIEN << GPIO_INTEN_RHIEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN3_EN
        (NUCODEGEN_GPIO_PA_PIN3_RHIEN << GPIO_INTEN_RHIEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN4_EN
        (NUCODEGEN_GPIO_PA_PIN4_RHIEN << GPIO_INTEN_RHIEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN5_EN
        (NUCODEGEN_GPIO_PA_PIN5_RHIEN << GPIO_INTEN_RHIEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN6_EN
        (NUCODEGEN_GPIO_PA_PIN6_RHIEN << GPIO_INTEN_RHIEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN7_EN
        (NUCODEGEN_GPIO_PA_PIN7_RHIEN << GPIO_INTEN_RHIEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN8_EN
        (NUCODEGEN_GPIO_PA_PIN8_RHIEN << GPIO_INTEN_RHIEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN9_EN
        (NUCODEGEN_GPIO_PA_PIN9_RHIEN << GPIO_INTEN_RHIEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN10_EN
        (NUCODEGEN_GPIO_PA_PIN10_RHIEN << GPIO_INTEN_RHIEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN11_EN
        (NUCODEGEN_GPIO_PA_PIN11_RHIEN << GPIO_INTEN_RHIEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN12_EN
        (NUCODEGEN_GPIO_PA_PIN12_RHIEN << GPIO_INTEN_RHIEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN13_EN
        (NUCODEGEN_GPIO_PA_PIN13_RHIEN << GPIO_INTEN_RHIEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN14_EN
        (NUCODEGEN_GPIO_PA_PIN14_RHIEN << GPIO_INTEN_RHIEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN15_EN
        (NUCODEGEN_GPIO_PA_PIN15_RHIEN << GPIO_INTEN_RHIEN15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PA slew rate
    PA->SLEWCTL =
#if NUCODEGEN_GPIO_PA_PIN0_EN
                  (NUCODEGEN_GPIO_PA_PIN0_SLEW << GPIO_SLEWCTL_HSREN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN1_EN
                  (NUCODEGEN_GPIO_PA_PIN1_SLEW << GPIO_SLEWCTL_HSREN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN2_EN
                  (NUCODEGEN_GPIO_PA_PIN2_SLEW << GPIO_SLEWCTL_HSREN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN3_EN
                  (NUCODEGEN_GPIO_PA_PIN3_SLEW << GPIO_SLEWCTL_HSREN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN4_EN
                  (NUCODEGEN_GPIO_PA_PIN4_SLEW << GPIO_SLEWCTL_HSREN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN5_EN
                  (NUCODEGEN_GPIO_PA_PIN5_SLEW << GPIO_SLEWCTL_HSREN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN6_EN
                  (NUCODEGEN_GPIO_PA_PIN6_SLEW << GPIO_SLEWCTL_HSREN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN7_EN
                  (NUCODEGEN_GPIO_PA_PIN7_SLEW << GPIO_SLEWCTL_HSREN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN8_EN
                  (NUCODEGEN_GPIO_PA_PIN8_SLEW << GPIO_SLEWCTL_HSREN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN9_EN
                  (NUCODEGEN_GPIO_PA_PIN9_SLEW << GPIO_SLEWCTL_HSREN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN10_EN
                  (NUCODEGEN_GPIO_PA_PIN10_SLEW << GPIO_SLEWCTL_HSREN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN11_EN
                  (NUCODEGEN_GPIO_PA_PIN11_SLEW << GPIO_SLEWCTL_HSREN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN12_EN
                  (NUCODEGEN_GPIO_PA_PIN12_SLEW << GPIO_SLEWCTL_HSREN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN13_EN
                  (NUCODEGEN_GPIO_PA_PIN13_SLEW << GPIO_SLEWCTL_HSREN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN14_EN
                  (NUCODEGEN_GPIO_PA_PIN14_SLEW << GPIO_SLEWCTL_HSREN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN15_EN
                  (NUCODEGEN_GPIO_PA_PIN15_SLEW << GPIO_SLEWCTL_HSREN15_Pos) |
#endif
                  u32RegDefault;

    //GPIO_PA pull-up or pull-down
    PA->PUSEL =
#if NUCODEGEN_GPIO_PA_PIN0_EN
                (NUCODEGEN_GPIO_PA_PIN0_PUSEL << GPIO_PUSEL_PUSEL0_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN1_EN
                (NUCODEGEN_GPIO_PA_PIN1_PUSEL << GPIO_PUSEL_PUSEL1_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN2_EN
                (NUCODEGEN_GPIO_PA_PIN2_PUSEL << GPIO_PUSEL_PUSEL2_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN3_EN
                (NUCODEGEN_GPIO_PA_PIN3_PUSEL << GPIO_PUSEL_PUSEL3_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN4_EN
                (NUCODEGEN_GPIO_PA_PIN4_PUSEL << GPIO_PUSEL_PUSEL4_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN5_EN
                (NUCODEGEN_GPIO_PA_PIN5_PUSEL << GPIO_PUSEL_PUSEL5_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN6_EN
                (NUCODEGEN_GPIO_PA_PIN6_PUSEL << GPIO_PUSEL_PUSEL6_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN7_EN
                (NUCODEGEN_GPIO_PA_PIN7_PUSEL << GPIO_PUSEL_PUSEL7_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN8_EN
                (NUCODEGEN_GPIO_PA_PIN8_PUSEL << GPIO_PUSEL_PUSEL8_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN9_EN
                (NUCODEGEN_GPIO_PA_PIN9_PUSEL << GPIO_PUSEL_PUSEL9_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN10_EN
                (NUCODEGEN_GPIO_PA_PIN10_PUSEL << GPIO_PUSEL_PUSEL10_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN11_EN
                (NUCODEGEN_GPIO_PA_PIN11_PUSEL << GPIO_PUSEL_PUSEL11_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN12_EN
                (NUCODEGEN_GPIO_PA_PIN12_PUSEL << GPIO_PUSEL_PUSEL12_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN13_EN
                (NUCODEGEN_GPIO_PA_PIN13_PUSEL << GPIO_PUSEL_PUSEL13_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN14_EN
                (NUCODEGEN_GPIO_PA_PIN14_PUSEL << GPIO_PUSEL_PUSEL14_Pos) |
#endif
#if NUCODEGEN_GPIO_PA_PIN15_EN
                (NUCODEGEN_GPIO_PA_PIN15_PUSEL << GPIO_PUSEL_PUSEL15_Pos) |
#endif
                u32RegDefault;

#if(NUCODEGEN_GPIO_PA_CLR_DB_ICLKON)
    GPIO_CLR_DEBOUNCE_ICLKON(PA);
#endif
#endif //NUCODEGEN_GPIO_PA

#if(NUCODEGEN_GPIO_PB)
    //GPIO_PB mode
    PB->MODE =
#if NUCODEGEN_GPIO_PB_PIN0_EN
        (NUCODEGEN_GPIO_PB_PIN0_MODE << GPIO_MODE_MODE0_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN1_EN
        (NUCODEGEN_GPIO_PB_PIN1_MODE << GPIO_MODE_MODE1_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN2_EN
        (NUCODEGEN_GPIO_PB_PIN2_MODE << GPIO_MODE_MODE2_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN3_EN
        (NUCODEGEN_GPIO_PB_PIN3_MODE << GPIO_MODE_MODE3_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN4_EN
        (NUCODEGEN_GPIO_PB_PIN4_MODE << GPIO_MODE_MODE4_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN5_EN
        (NUCODEGEN_GPIO_PB_PIN5_MODE << GPIO_MODE_MODE5_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN6_EN
        (NUCODEGEN_GPIO_PB_PIN6_MODE << GPIO_MODE_MODE6_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN7_EN
        (NUCODEGEN_GPIO_PB_PIN7_MODE << GPIO_MODE_MODE7_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN8_EN
        (NUCODEGEN_GPIO_PB_PIN8_MODE << GPIO_MODE_MODE8_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN9_EN
        (NUCODEGEN_GPIO_PB_PIN9_MODE << GPIO_MODE_MODE9_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN10_EN
        (NUCODEGEN_GPIO_PB_PIN10_MODE << GPIO_MODE_MODE10_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN11_EN
        (NUCODEGEN_GPIO_PB_PIN11_MODE << GPIO_MODE_MODE11_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN12_EN
        (NUCODEGEN_GPIO_PB_PIN12_MODE << GPIO_MODE_MODE12_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN13_EN
        (NUCODEGEN_GPIO_PB_PIN13_MODE << GPIO_MODE_MODE13_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN14_EN
        (NUCODEGEN_GPIO_PB_PIN14_MODE << GPIO_MODE_MODE14_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN15_EN
        (NUCODEGEN_GPIO_PB_PIN15_MODE << GPIO_MODE_MODE15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PB disable digital input path
    PB->DINOFF =
#if NUCODEGEN_GPIO_PB_PIN0_EN
        (NUCODEGEN_GPIO_PB_PIN0_DINOFF << GPIO_DINOFF_DINOFF0_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN1_EN
        (NUCODEGEN_GPIO_PB_PIN1_DINOFF << GPIO_DINOFF_DINOFF1_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN2_EN
        (NUCODEGEN_GPIO_PB_PIN2_DINOFF << GPIO_DINOFF_DINOFF2_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN3_EN
        (NUCODEGEN_GPIO_PB_PIN3_DINOFF << GPIO_DINOFF_DINOFF3_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN4_EN
        (NUCODEGEN_GPIO_PB_PIN4_DINOFF << GPIO_DINOFF_DINOFF4_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN5_EN
        (NUCODEGEN_GPIO_PB_PIN5_DINOFF << GPIO_DINOFF_DINOFF5_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN6_EN
        (NUCODEGEN_GPIO_PB_PIN6_DINOFF << GPIO_DINOFF_DINOFF6_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN7_EN
        (NUCODEGEN_GPIO_PB_PIN7_DINOFF << GPIO_DINOFF_DINOFF7_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN8_EN
        (NUCODEGEN_GPIO_PB_PIN8_DINOFF << GPIO_DINOFF_DINOFF8_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN9_EN
        (NUCODEGEN_GPIO_PB_PIN9_DINOFF << GPIO_DINOFF_DINOFF9_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN10_EN
        (NUCODEGEN_GPIO_PB_PIN10_DINOFF << GPIO_DINOFF_DINOFF10_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN11_EN
        (NUCODEGEN_GPIO_PB_PIN11_DINOFF << GPIO_DINOFF_DINOFF11_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN12_EN
        (NUCODEGEN_GPIO_PB_PIN12_DINOFF << GPIO_DINOFF_DINOFF12_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN13_EN
        (NUCODEGEN_GPIO_PB_PIN13_DINOFF << GPIO_DINOFF_DINOFF13_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN14_EN
        (NUCODEGEN_GPIO_PB_PIN14_DINOFF << GPIO_DINOFF_DINOFF14_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN15_EN
        (NUCODEGEN_GPIO_PB_PIN15_DINOFF << GPIO_DINOFF_DINOFF15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PB out data
    PB->DOUT =
#if NUCODEGEN_GPIO_PB_PIN0_EN
        (NUCODEGEN_GPIO_PB_PIN0_DOUT << GPIO_DOUT_DOUT0_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN1_EN
        (NUCODEGEN_GPIO_PB_PIN1_DOUT << GPIO_DOUT_DOUT1_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN2_EN
        (NUCODEGEN_GPIO_PB_PIN2_DOUT << GPIO_DOUT_DOUT2_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN3_EN
        (NUCODEGEN_GPIO_PB_PIN3_DOUT << GPIO_DOUT_DOUT3_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN4_EN
        (NUCODEGEN_GPIO_PB_PIN4_DOUT << GPIO_DOUT_DOUT4_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN5_EN
        (NUCODEGEN_GPIO_PB_PIN5_DOUT << GPIO_DOUT_DOUT5_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN6_EN
        (NUCODEGEN_GPIO_PB_PIN6_DOUT << GPIO_DOUT_DOUT6_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN7_EN
        (NUCODEGEN_GPIO_PB_PIN7_DOUT << GPIO_DOUT_DOUT7_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN8_EN
        (NUCODEGEN_GPIO_PB_PIN8_DOUT << GPIO_DOUT_DOUT8_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN9_EN
        (NUCODEGEN_GPIO_PB_PIN9_DOUT << GPIO_DOUT_DOUT9_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN10_EN
        (NUCODEGEN_GPIO_PB_PIN10_DOUT << GPIO_DOUT_DOUT10_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN11_EN
        (NUCODEGEN_GPIO_PB_PIN11_DOUT << GPIO_DOUT_DOUT11_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN12_EN
        (NUCODEGEN_GPIO_PB_PIN12_DOUT << GPIO_DOUT_DOUT12_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN13_EN
        (NUCODEGEN_GPIO_PB_PIN13_DOUT << GPIO_DOUT_DOUT13_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN14_EN
        (NUCODEGEN_GPIO_PB_PIN14_DOUT << GPIO_DOUT_DOUT14_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN15_EN
        (NUCODEGEN_GPIO_PB_PIN15_DOUT << GPIO_DOUT_DOUT15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PB DOUT mask
    PB->DATMSK =
#if NUCODEGEN_GPIO_PB_PIN0_EN
        (NUCODEGEN_GPIO_PB_PIN0_DATMSK << GPIO_DATMSK_DATMSK0_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN1_EN
        (NUCODEGEN_GPIO_PB_PIN1_DATMSK << GPIO_DATMSK_DATMSK1_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN2_EN
        (NUCODEGEN_GPIO_PB_PIN2_DATMSK << GPIO_DATMSK_DATMSK2_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN3_EN
        (NUCODEGEN_GPIO_PB_PIN3_DATMSK << GPIO_DATMSK_DATMSK3_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN4_EN
        (NUCODEGEN_GPIO_PB_PIN4_DATMSK << GPIO_DATMSK_DATMSK4_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN5_EN
        (NUCODEGEN_GPIO_PB_PIN5_DATMSK << GPIO_DATMSK_DATMSK5_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN6_EN
        (NUCODEGEN_GPIO_PB_PIN6_DATMSK << GPIO_DATMSK_DATMSK6_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN7_EN
        (NUCODEGEN_GPIO_PB_PIN7_DATMSK << GPIO_DATMSK_DATMSK7_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN8_EN
        (NUCODEGEN_GPIO_PB_PIN8_DATMSK << GPIO_DATMSK_DATMSK8_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN9_EN
        (NUCODEGEN_GPIO_PB_PIN9_DATMSK << GPIO_DATMSK_DATMSK9_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN10_EN
        (NUCODEGEN_GPIO_PB_PIN10_DATMSK << GPIO_DATMSK_DATMSK10_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN11_EN
        (NUCODEGEN_GPIO_PB_PIN11_DATMSK << GPIO_DATMSK_DATMSK11_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN12_EN
        (NUCODEGEN_GPIO_PB_PIN12_DATMSK << GPIO_DATMSK_DATMSK12_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN13_EN
        (NUCODEGEN_GPIO_PB_PIN13_DATMSK << GPIO_DATMSK_DATMSK13_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN14_EN
        (NUCODEGEN_GPIO_PB_PIN14_DATMSK << GPIO_DATMSK_DATMSK14_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN15_EN
        (NUCODEGEN_GPIO_PB_PIN15_DATMSK << GPIO_DATMSK_DATMSK15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PB enable de-bounce
    PB->DBEN =
#if NUCODEGEN_GPIO_PB_PIN0_EN
        (NUCODEGEN_GPIO_PB_PIN0_DBEN << GPIO_DBEN_DBEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN1_EN
        (NUCODEGEN_GPIO_PB_PIN1_DBEN << GPIO_DBEN_DBEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN2_EN
        (NUCODEGEN_GPIO_PB_PIN2_DBEN << GPIO_DBEN_DBEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN3_EN
        (NUCODEGEN_GPIO_PB_PIN3_DBEN << GPIO_DBEN_DBEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN4_EN
        (NUCODEGEN_GPIO_PB_PIN4_DBEN << GPIO_DBEN_DBEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN5_EN
        (NUCODEGEN_GPIO_PB_PIN5_DBEN << GPIO_DBEN_DBEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN6_EN
        (NUCODEGEN_GPIO_PB_PIN6_DBEN << GPIO_DBEN_DBEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN7_EN
        (NUCODEGEN_GPIO_PB_PIN7_DBEN << GPIO_DBEN_DBEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN8_EN
        (NUCODEGEN_GPIO_PB_PIN8_DBEN << GPIO_DBEN_DBEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN9_EN
        (NUCODEGEN_GPIO_PB_PIN9_DBEN << GPIO_DBEN_DBEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN10_EN
        (NUCODEGEN_GPIO_PB_PIN10_DBEN << GPIO_DBEN_DBEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN11_EN
        (NUCODEGEN_GPIO_PB_PIN11_DBEN << GPIO_DBEN_DBEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN12_EN
        (NUCODEGEN_GPIO_PB_PIN12_DBEN << GPIO_DBEN_DBEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN13_EN
        (NUCODEGEN_GPIO_PB_PIN13_DBEN << GPIO_DBEN_DBEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN14_EN
        (NUCODEGEN_GPIO_PB_PIN14_DBEN << GPIO_DBEN_DBEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN15_EN
        (NUCODEGEN_GPIO_PB_PIN15_DBEN << GPIO_DBEN_DBEN15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PB edge or level interrupt
    PB->INTTYPE =
#if NUCODEGEN_GPIO_PB_PIN0_EN
        (NUCODEGEN_GPIO_PB_PIN0_INTTYPE << GPIO_INTTYPE_TYPE0_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN1_EN
        (NUCODEGEN_GPIO_PB_PIN1_INTTYPE << GPIO_INTTYPE_TYPE1_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN2_EN
        (NUCODEGEN_GPIO_PB_PIN2_INTTYPE << GPIO_INTTYPE_TYPE2_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN3_EN
        (NUCODEGEN_GPIO_PB_PIN3_INTTYPE << GPIO_INTTYPE_TYPE3_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN4_EN
        (NUCODEGEN_GPIO_PB_PIN4_INTTYPE << GPIO_INTTYPE_TYPE4_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN5_EN
        (NUCODEGEN_GPIO_PB_PIN5_INTTYPE << GPIO_INTTYPE_TYPE5_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN6_EN
        (NUCODEGEN_GPIO_PB_PIN6_INTTYPE << GPIO_INTTYPE_TYPE6_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN7_EN
        (NUCODEGEN_GPIO_PB_PIN7_INTTYPE << GPIO_INTTYPE_TYPE7_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN8_EN
        (NUCODEGEN_GPIO_PB_PIN8_INTTYPE << GPIO_INTTYPE_TYPE8_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN9_EN
        (NUCODEGEN_GPIO_PB_PIN9_INTTYPE << GPIO_INTTYPE_TYPE9_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN10_EN
        (NUCODEGEN_GPIO_PB_PIN10_INTTYPE << GPIO_INTTYPE_TYPE10_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN11_EN
        (NUCODEGEN_GPIO_PB_PIN11_INTTYPE << GPIO_INTTYPE_TYPE11_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN12_EN
        (NUCODEGEN_GPIO_PB_PIN12_INTTYPE << GPIO_INTTYPE_TYPE12_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN13_EN
        (NUCODEGEN_GPIO_PB_PIN13_INTTYPE << GPIO_INTTYPE_TYPE13_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN14_EN
        (NUCODEGEN_GPIO_PB_PIN14_INTTYPE << GPIO_INTTYPE_TYPE14_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN15_EN
        (NUCODEGEN_GPIO_PB_PIN15_INTTYPE << GPIO_INTTYPE_TYPE15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PB enable falling(edge) or low(level) interrupt
    PB->INTEN =
#if NUCODEGEN_GPIO_PB_PIN0_EN
        (NUCODEGEN_GPIO_PB_PIN0_FLIEN << GPIO_INTEN_FLIEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN1_EN
        (NUCODEGEN_GPIO_PB_PIN1_FLIEN << GPIO_INTEN_FLIEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN2_EN
        (NUCODEGEN_GPIO_PB_PIN2_FLIEN << GPIO_INTEN_FLIEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN3_EN
        (NUCODEGEN_GPIO_PB_PIN3_FLIEN << GPIO_INTEN_FLIEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN4_EN
        (NUCODEGEN_GPIO_PB_PIN4_FLIEN << GPIO_INTEN_FLIEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN5_EN
        (NUCODEGEN_GPIO_PB_PIN5_FLIEN << GPIO_INTEN_FLIEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN6_EN
        (NUCODEGEN_GPIO_PB_PIN6_FLIEN << GPIO_INTEN_FLIEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN7_EN
        (NUCODEGEN_GPIO_PB_PIN7_FLIEN << GPIO_INTEN_FLIEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN8_EN
        (NUCODEGEN_GPIO_PB_PIN8_FLIEN << GPIO_INTEN_FLIEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN9_EN
        (NUCODEGEN_GPIO_PB_PIN9_FLIEN << GPIO_INTEN_FLIEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN10_EN
        (NUCODEGEN_GPIO_PB_PIN10_FLIEN << GPIO_INTEN_FLIEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN11_EN
        (NUCODEGEN_GPIO_PB_PIN11_FLIEN << GPIO_INTEN_FLIEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN12_EN
        (NUCODEGEN_GPIO_PB_PIN12_FLIEN << GPIO_INTEN_FLIEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN13_EN
        (NUCODEGEN_GPIO_PB_PIN13_FLIEN << GPIO_INTEN_FLIEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN14_EN
        (NUCODEGEN_GPIO_PB_PIN14_FLIEN << GPIO_INTEN_FLIEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN15_EN
        (NUCODEGEN_GPIO_PB_PIN15_FLIEN << GPIO_INTEN_FLIEN15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PB enable rising(edge) or high(level) interrupt
    PB->INTEN |=
#if NUCODEGEN_GPIO_PB_PIN0_EN
        (NUCODEGEN_GPIO_PB_PIN0_RHIEN << GPIO_INTEN_RHIEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN1_EN
        (NUCODEGEN_GPIO_PB_PIN1_RHIEN << GPIO_INTEN_RHIEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN2_EN
        (NUCODEGEN_GPIO_PB_PIN2_RHIEN << GPIO_INTEN_RHIEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN3_EN
        (NUCODEGEN_GPIO_PB_PIN3_RHIEN << GPIO_INTEN_RHIEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN4_EN
        (NUCODEGEN_GPIO_PB_PIN4_RHIEN << GPIO_INTEN_RHIEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN5_EN
        (NUCODEGEN_GPIO_PB_PIN5_RHIEN << GPIO_INTEN_RHIEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN6_EN
        (NUCODEGEN_GPIO_PB_PIN6_RHIEN << GPIO_INTEN_RHIEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN7_EN
        (NUCODEGEN_GPIO_PB_PIN7_RHIEN << GPIO_INTEN_RHIEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN8_EN
        (NUCODEGEN_GPIO_PB_PIN8_RHIEN << GPIO_INTEN_RHIEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN9_EN
        (NUCODEGEN_GPIO_PB_PIN9_RHIEN << GPIO_INTEN_RHIEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN10_EN
        (NUCODEGEN_GPIO_PB_PIN10_RHIEN << GPIO_INTEN_RHIEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN11_EN
        (NUCODEGEN_GPIO_PB_PIN11_RHIEN << GPIO_INTEN_RHIEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN12_EN
        (NUCODEGEN_GPIO_PB_PIN12_RHIEN << GPIO_INTEN_RHIEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN13_EN
        (NUCODEGEN_GPIO_PB_PIN13_RHIEN << GPIO_INTEN_RHIEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN14_EN
        (NUCODEGEN_GPIO_PB_PIN14_RHIEN << GPIO_INTEN_RHIEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN15_EN
        (NUCODEGEN_GPIO_PB_PIN15_RHIEN << GPIO_INTEN_RHIEN15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PB slew rate
    PB->SLEWCTL =
#if NUCODEGEN_GPIO_PB_PIN0_EN
                  (NUCODEGEN_GPIO_PB_PIN0_SLEW << GPIO_SLEWCTL_HSREN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN1_EN
                  (NUCODEGEN_GPIO_PB_PIN1_SLEW << GPIO_SLEWCTL_HSREN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN2_EN
                  (NUCODEGEN_GPIO_PB_PIN2_SLEW << GPIO_SLEWCTL_HSREN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN3_EN
                  (NUCODEGEN_GPIO_PB_PIN3_SLEW << GPIO_SLEWCTL_HSREN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN4_EN
                  (NUCODEGEN_GPIO_PB_PIN4_SLEW << GPIO_SLEWCTL_HSREN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN5_EN
                  (NUCODEGEN_GPIO_PB_PIN5_SLEW << GPIO_SLEWCTL_HSREN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN6_EN
                  (NUCODEGEN_GPIO_PB_PIN6_SLEW << GPIO_SLEWCTL_HSREN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN7_EN
                  (NUCODEGEN_GPIO_PB_PIN7_SLEW << GPIO_SLEWCTL_HSREN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN8_EN
                  (NUCODEGEN_GPIO_PB_PIN8_SLEW << GPIO_SLEWCTL_HSREN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN9_EN
                  (NUCODEGEN_GPIO_PB_PIN9_SLEW << GPIO_SLEWCTL_HSREN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN10_EN
                  (NUCODEGEN_GPIO_PB_PIN10_SLEW << GPIO_SLEWCTL_HSREN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN11_EN
                  (NUCODEGEN_GPIO_PB_PIN11_SLEW << GPIO_SLEWCTL_HSREN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN12_EN
                  (NUCODEGEN_GPIO_PB_PIN12_SLEW << GPIO_SLEWCTL_HSREN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN13_EN
                  (NUCODEGEN_GPIO_PB_PIN13_SLEW << GPIO_SLEWCTL_HSREN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN14_EN
                  (NUCODEGEN_GPIO_PB_PIN14_SLEW << GPIO_SLEWCTL_HSREN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN15_EN
                  (NUCODEGEN_GPIO_PB_PIN15_SLEW << GPIO_SLEWCTL_HSREN15_Pos) |
#endif
                  u32RegDefault;

    //GPIO_PB pull-up or pull-down
    PB->PUSEL =
#if NUCODEGEN_GPIO_PB_PIN0_EN
                (NUCODEGEN_GPIO_PB_PIN0_PUSEL << GPIO_PUSEL_PUSEL0_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN1_EN
                (NUCODEGEN_GPIO_PB_PIN1_PUSEL << GPIO_PUSEL_PUSEL1_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN2_EN
                (NUCODEGEN_GPIO_PB_PIN2_PUSEL << GPIO_PUSEL_PUSEL2_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN3_EN
                (NUCODEGEN_GPIO_PB_PIN3_PUSEL << GPIO_PUSEL_PUSEL3_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN4_EN
                (NUCODEGEN_GPIO_PB_PIN4_PUSEL << GPIO_PUSEL_PUSEL4_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN5_EN
                (NUCODEGEN_GPIO_PB_PIN5_PUSEL << GPIO_PUSEL_PUSEL5_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN6_EN
                (NUCODEGEN_GPIO_PB_PIN6_PUSEL << GPIO_PUSEL_PUSEL6_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN7_EN
                (NUCODEGEN_GPIO_PB_PIN7_PUSEL << GPIO_PUSEL_PUSEL7_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN8_EN
                (NUCODEGEN_GPIO_PB_PIN8_PUSEL << GPIO_PUSEL_PUSEL8_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN9_EN
                (NUCODEGEN_GPIO_PB_PIN9_PUSEL << GPIO_PUSEL_PUSEL9_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN10_EN
                (NUCODEGEN_GPIO_PB_PIN10_PUSEL << GPIO_PUSEL_PUSEL10_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN11_EN
                (NUCODEGEN_GPIO_PB_PIN11_PUSEL << GPIO_PUSEL_PUSEL11_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN12_EN
                (NUCODEGEN_GPIO_PB_PIN12_PUSEL << GPIO_PUSEL_PUSEL12_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN13_EN
                (NUCODEGEN_GPIO_PB_PIN13_PUSEL << GPIO_PUSEL_PUSEL13_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN14_EN
                (NUCODEGEN_GPIO_PB_PIN14_PUSEL << GPIO_PUSEL_PUSEL14_Pos) |
#endif
#if NUCODEGEN_GPIO_PB_PIN15_EN
                (NUCODEGEN_GPIO_PB_PIN15_PUSEL << GPIO_PUSEL_PUSEL15_Pos) |
#endif
                u32RegDefault;

#if(NUCODEGEN_GPIO_PB_CLR_DB_ICLKON)
    GPIO_CLR_DEBOUNCE_ICLKON(PB);
#endif
#endif //NUCODEGEN_GPIO_PB

#if(NUCODEGEN_GPIO_PC)
    //GPIO_PC mode
    PC->MODE =
#if NUCODEGEN_GPIO_PC_PIN0_EN
        (NUCODEGEN_GPIO_PC_PIN0_MODE << GPIO_MODE_MODE0_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN1_EN
        (NUCODEGEN_GPIO_PC_PIN1_MODE << GPIO_MODE_MODE1_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN2_EN
        (NUCODEGEN_GPIO_PC_PIN2_MODE << GPIO_MODE_MODE2_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN3_EN
        (NUCODEGEN_GPIO_PC_PIN3_MODE << GPIO_MODE_MODE3_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN4_EN
        (NUCODEGEN_GPIO_PC_PIN4_MODE << GPIO_MODE_MODE4_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN5_EN
        (NUCODEGEN_GPIO_PC_PIN5_MODE << GPIO_MODE_MODE5_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN6_EN
        (NUCODEGEN_GPIO_PC_PIN6_MODE << GPIO_MODE_MODE6_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN7_EN
        (NUCODEGEN_GPIO_PC_PIN7_MODE << GPIO_MODE_MODE7_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN8_EN
        (NUCODEGEN_GPIO_PC_PIN8_MODE << GPIO_MODE_MODE8_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN9_EN
        (NUCODEGEN_GPIO_PC_PIN9_MODE << GPIO_MODE_MODE9_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN10_EN
        (NUCODEGEN_GPIO_PC_PIN10_MODE << GPIO_MODE_MODE10_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN11_EN
        (NUCODEGEN_GPIO_PC_PIN11_MODE << GPIO_MODE_MODE11_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN12_EN
        (NUCODEGEN_GPIO_PC_PIN12_MODE << GPIO_MODE_MODE12_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN13_EN
        (NUCODEGEN_GPIO_PC_PIN13_MODE << GPIO_MODE_MODE13_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN14_EN
        (NUCODEGEN_GPIO_PC_PIN14_MODE << GPIO_MODE_MODE14_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN15_EN
        (NUCODEGEN_GPIO_PC_PIN15_MODE << GPIO_MODE_MODE15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PC disable digital input path
    PC->DINOFF =
#if NUCODEGEN_GPIO_PC_PIN0_EN
        (NUCODEGEN_GPIO_PC_PIN0_DINOFF << GPIO_DINOFF_DINOFF0_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN1_EN
        (NUCODEGEN_GPIO_PC_PIN1_DINOFF << GPIO_DINOFF_DINOFF1_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN2_EN
        (NUCODEGEN_GPIO_PC_PIN2_DINOFF << GPIO_DINOFF_DINOFF2_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN3_EN
        (NUCODEGEN_GPIO_PC_PIN3_DINOFF << GPIO_DINOFF_DINOFF3_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN4_EN
        (NUCODEGEN_GPIO_PC_PIN4_DINOFF << GPIO_DINOFF_DINOFF4_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN5_EN
        (NUCODEGEN_GPIO_PC_PIN5_DINOFF << GPIO_DINOFF_DINOFF5_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN6_EN
        (NUCODEGEN_GPIO_PC_PIN6_DINOFF << GPIO_DINOFF_DINOFF6_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN7_EN
        (NUCODEGEN_GPIO_PC_PIN7_DINOFF << GPIO_DINOFF_DINOFF7_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN8_EN
        (NUCODEGEN_GPIO_PC_PIN8_DINOFF << GPIO_DINOFF_DINOFF8_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN9_EN
        (NUCODEGEN_GPIO_PC_PIN9_DINOFF << GPIO_DINOFF_DINOFF9_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN10_EN
        (NUCODEGEN_GPIO_PC_PIN10_DINOFF << GPIO_DINOFF_DINOFF10_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN11_EN
        (NUCODEGEN_GPIO_PC_PIN11_DINOFF << GPIO_DINOFF_DINOFF11_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN12_EN
        (NUCODEGEN_GPIO_PC_PIN12_DINOFF << GPIO_DINOFF_DINOFF12_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN13_EN
        (NUCODEGEN_GPIO_PC_PIN13_DINOFF << GPIO_DINOFF_DINOFF13_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN14_EN
        (NUCODEGEN_GPIO_PC_PIN14_DINOFF << GPIO_DINOFF_DINOFF14_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN15_EN
        (NUCODEGEN_GPIO_PC_PIN15_DINOFF << GPIO_DINOFF_DINOFF15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PC out data
    PC->DOUT =
#if NUCODEGEN_GPIO_PC_PIN0_EN
        (NUCODEGEN_GPIO_PC_PIN0_DOUT << GPIO_DOUT_DOUT0_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN1_EN
        (NUCODEGEN_GPIO_PC_PIN1_DOUT << GPIO_DOUT_DOUT1_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN2_EN
        (NUCODEGEN_GPIO_PC_PIN2_DOUT << GPIO_DOUT_DOUT2_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN3_EN
        (NUCODEGEN_GPIO_PC_PIN3_DOUT << GPIO_DOUT_DOUT3_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN4_EN
        (NUCODEGEN_GPIO_PC_PIN4_DOUT << GPIO_DOUT_DOUT4_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN5_EN
        (NUCODEGEN_GPIO_PC_PIN5_DOUT << GPIO_DOUT_DOUT5_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN6_EN
        (NUCODEGEN_GPIO_PC_PIN6_DOUT << GPIO_DOUT_DOUT6_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN7_EN
        (NUCODEGEN_GPIO_PC_PIN7_DOUT << GPIO_DOUT_DOUT7_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN8_EN
        (NUCODEGEN_GPIO_PC_PIN8_DOUT << GPIO_DOUT_DOUT8_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN9_EN
        (NUCODEGEN_GPIO_PC_PIN9_DOUT << GPIO_DOUT_DOUT9_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN10_EN
        (NUCODEGEN_GPIO_PC_PIN10_DOUT << GPIO_DOUT_DOUT10_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN11_EN
        (NUCODEGEN_GPIO_PC_PIN11_DOUT << GPIO_DOUT_DOUT11_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN12_EN
        (NUCODEGEN_GPIO_PC_PIN12_DOUT << GPIO_DOUT_DOUT12_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN13_EN
        (NUCODEGEN_GPIO_PC_PIN13_DOUT << GPIO_DOUT_DOUT13_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN14_EN
        (NUCODEGEN_GPIO_PC_PIN14_DOUT << GPIO_DOUT_DOUT14_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN15_EN
        (NUCODEGEN_GPIO_PC_PIN15_DOUT << GPIO_DOUT_DOUT15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PC DOUT mask
    PC->DATMSK =
#if NUCODEGEN_GPIO_PC_PIN0_EN
        (NUCODEGEN_GPIO_PC_PIN0_DATMSK << GPIO_DATMSK_DATMSK0_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN1_EN
        (NUCODEGEN_GPIO_PC_PIN1_DATMSK << GPIO_DATMSK_DATMSK1_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN2_EN
        (NUCODEGEN_GPIO_PC_PIN2_DATMSK << GPIO_DATMSK_DATMSK2_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN3_EN
        (NUCODEGEN_GPIO_PC_PIN3_DATMSK << GPIO_DATMSK_DATMSK3_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN4_EN
        (NUCODEGEN_GPIO_PC_PIN4_DATMSK << GPIO_DATMSK_DATMSK4_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN5_EN
        (NUCODEGEN_GPIO_PC_PIN5_DATMSK << GPIO_DATMSK_DATMSK5_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN6_EN
        (NUCODEGEN_GPIO_PC_PIN6_DATMSK << GPIO_DATMSK_DATMSK6_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN7_EN
        (NUCODEGEN_GPIO_PC_PIN7_DATMSK << GPIO_DATMSK_DATMSK7_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN8_EN
        (NUCODEGEN_GPIO_PC_PIN8_DATMSK << GPIO_DATMSK_DATMSK8_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN9_EN
        (NUCODEGEN_GPIO_PC_PIN9_DATMSK << GPIO_DATMSK_DATMSK9_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN10_EN
        (NUCODEGEN_GPIO_PC_PIN10_DATMSK << GPIO_DATMSK_DATMSK10_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN11_EN
        (NUCODEGEN_GPIO_PC_PIN11_DATMSK << GPIO_DATMSK_DATMSK11_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN12_EN
        (NUCODEGEN_GPIO_PC_PIN12_DATMSK << GPIO_DATMSK_DATMSK12_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN13_EN
        (NUCODEGEN_GPIO_PC_PIN13_DATMSK << GPIO_DATMSK_DATMSK13_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN14_EN
        (NUCODEGEN_GPIO_PC_PIN14_DATMSK << GPIO_DATMSK_DATMSK14_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN15_EN
        (NUCODEGEN_GPIO_PC_PIN15_DATMSK << GPIO_DATMSK_DATMSK15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PC enable de-bounce
    PC->DBEN =
#if NUCODEGEN_GPIO_PC_PIN0_EN
        (NUCODEGEN_GPIO_PC_PIN0_DBEN << GPIO_DBEN_DBEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN1_EN
        (NUCODEGEN_GPIO_PC_PIN1_DBEN << GPIO_DBEN_DBEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN2_EN
        (NUCODEGEN_GPIO_PC_PIN2_DBEN << GPIO_DBEN_DBEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN3_EN
        (NUCODEGEN_GPIO_PC_PIN3_DBEN << GPIO_DBEN_DBEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN4_EN
        (NUCODEGEN_GPIO_PC_PIN4_DBEN << GPIO_DBEN_DBEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN5_EN
        (NUCODEGEN_GPIO_PC_PIN5_DBEN << GPIO_DBEN_DBEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN6_EN
        (NUCODEGEN_GPIO_PC_PIN6_DBEN << GPIO_DBEN_DBEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN7_EN
        (NUCODEGEN_GPIO_PC_PIN7_DBEN << GPIO_DBEN_DBEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN8_EN
        (NUCODEGEN_GPIO_PC_PIN8_DBEN << GPIO_DBEN_DBEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN9_EN
        (NUCODEGEN_GPIO_PC_PIN9_DBEN << GPIO_DBEN_DBEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN10_EN
        (NUCODEGEN_GPIO_PC_PIN10_DBEN << GPIO_DBEN_DBEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN11_EN
        (NUCODEGEN_GPIO_PC_PIN11_DBEN << GPIO_DBEN_DBEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN12_EN
        (NUCODEGEN_GPIO_PC_PIN12_DBEN << GPIO_DBEN_DBEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN13_EN
        (NUCODEGEN_GPIO_PC_PIN13_DBEN << GPIO_DBEN_DBEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN14_EN
        (NUCODEGEN_GPIO_PC_PIN14_DBEN << GPIO_DBEN_DBEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN15_EN
        (NUCODEGEN_GPIO_PC_PIN15_DBEN << GPIO_DBEN_DBEN15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PC edge or level interrupt
    PC->INTTYPE =
#if NUCODEGEN_GPIO_PC_PIN0_EN
        (NUCODEGEN_GPIO_PC_PIN0_INTTYPE << GPIO_INTTYPE_TYPE0_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN1_EN
        (NUCODEGEN_GPIO_PC_PIN1_INTTYPE << GPIO_INTTYPE_TYPE1_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN2_EN
        (NUCODEGEN_GPIO_PC_PIN2_INTTYPE << GPIO_INTTYPE_TYPE2_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN3_EN
        (NUCODEGEN_GPIO_PC_PIN3_INTTYPE << GPIO_INTTYPE_TYPE3_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN4_EN
        (NUCODEGEN_GPIO_PC_PIN4_INTTYPE << GPIO_INTTYPE_TYPE4_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN5_EN
        (NUCODEGEN_GPIO_PC_PIN5_INTTYPE << GPIO_INTTYPE_TYPE5_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN6_EN
        (NUCODEGEN_GPIO_PC_PIN6_INTTYPE << GPIO_INTTYPE_TYPE6_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN7_EN
        (NUCODEGEN_GPIO_PC_PIN7_INTTYPE << GPIO_INTTYPE_TYPE7_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN8_EN
        (NUCODEGEN_GPIO_PC_PIN8_INTTYPE << GPIO_INTTYPE_TYPE8_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN9_EN
        (NUCODEGEN_GPIO_PC_PIN9_INTTYPE << GPIO_INTTYPE_TYPE9_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN10_EN
        (NUCODEGEN_GPIO_PC_PIN10_INTTYPE << GPIO_INTTYPE_TYPE10_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN11_EN
        (NUCODEGEN_GPIO_PC_PIN11_INTTYPE << GPIO_INTTYPE_TYPE11_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN12_EN
        (NUCODEGEN_GPIO_PC_PIN12_INTTYPE << GPIO_INTTYPE_TYPE12_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN13_EN
        (NUCODEGEN_GPIO_PC_PIN13_INTTYPE << GPIO_INTTYPE_TYPE13_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN14_EN
        (NUCODEGEN_GPIO_PC_PIN14_INTTYPE << GPIO_INTTYPE_TYPE14_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN15_EN
        (NUCODEGEN_GPIO_PC_PIN15_INTTYPE << GPIO_INTTYPE_TYPE15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PC enable falling(edge) or low(level) interrupt
    PC->INTEN =
#if NUCODEGEN_GPIO_PC_PIN0_EN
        (NUCODEGEN_GPIO_PC_PIN0_FLIEN << GPIO_INTEN_FLIEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN1_EN
        (NUCODEGEN_GPIO_PC_PIN1_FLIEN << GPIO_INTEN_FLIEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN2_EN
        (NUCODEGEN_GPIO_PC_PIN2_FLIEN << GPIO_INTEN_FLIEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN3_EN
        (NUCODEGEN_GPIO_PC_PIN3_FLIEN << GPIO_INTEN_FLIEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN4_EN
        (NUCODEGEN_GPIO_PC_PIN4_FLIEN << GPIO_INTEN_FLIEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN5_EN
        (NUCODEGEN_GPIO_PC_PIN5_FLIEN << GPIO_INTEN_FLIEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN6_EN
        (NUCODEGEN_GPIO_PC_PIN6_FLIEN << GPIO_INTEN_FLIEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN7_EN
        (NUCODEGEN_GPIO_PC_PIN7_FLIEN << GPIO_INTEN_FLIEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN8_EN
        (NUCODEGEN_GPIO_PC_PIN8_FLIEN << GPIO_INTEN_FLIEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN9_EN
        (NUCODEGEN_GPIO_PC_PIN9_FLIEN << GPIO_INTEN_FLIEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN10_EN
        (NUCODEGEN_GPIO_PC_PIN10_FLIEN << GPIO_INTEN_FLIEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN11_EN
        (NUCODEGEN_GPIO_PC_PIN11_FLIEN << GPIO_INTEN_FLIEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN12_EN
        (NUCODEGEN_GPIO_PC_PIN12_FLIEN << GPIO_INTEN_FLIEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN13_EN
        (NUCODEGEN_GPIO_PC_PIN13_FLIEN << GPIO_INTEN_FLIEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN14_EN
        (NUCODEGEN_GPIO_PC_PIN14_FLIEN << GPIO_INTEN_FLIEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN15_EN
        (NUCODEGEN_GPIO_PC_PIN15_FLIEN << GPIO_INTEN_FLIEN15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PC enable rising(edge) or high(level) interrupt
    PC->INTEN |=
#if NUCODEGEN_GPIO_PC_PIN0_EN
        (NUCODEGEN_GPIO_PC_PIN0_RHIEN << GPIO_INTEN_RHIEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN1_EN
        (NUCODEGEN_GPIO_PC_PIN1_RHIEN << GPIO_INTEN_RHIEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN2_EN
        (NUCODEGEN_GPIO_PC_PIN2_RHIEN << GPIO_INTEN_RHIEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN3_EN
        (NUCODEGEN_GPIO_PC_PIN3_RHIEN << GPIO_INTEN_RHIEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN4_EN
        (NUCODEGEN_GPIO_PC_PIN4_RHIEN << GPIO_INTEN_RHIEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN5_EN
        (NUCODEGEN_GPIO_PC_PIN5_RHIEN << GPIO_INTEN_RHIEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN6_EN
        (NUCODEGEN_GPIO_PC_PIN6_RHIEN << GPIO_INTEN_RHIEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN7_EN
        (NUCODEGEN_GPIO_PC_PIN7_RHIEN << GPIO_INTEN_RHIEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN8_EN
        (NUCODEGEN_GPIO_PC_PIN8_RHIEN << GPIO_INTEN_RHIEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN9_EN
        (NUCODEGEN_GPIO_PC_PIN9_RHIEN << GPIO_INTEN_RHIEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN10_EN
        (NUCODEGEN_GPIO_PC_PIN10_RHIEN << GPIO_INTEN_RHIEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN11_EN
        (NUCODEGEN_GPIO_PC_PIN11_RHIEN << GPIO_INTEN_RHIEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN12_EN
        (NUCODEGEN_GPIO_PC_PIN12_RHIEN << GPIO_INTEN_RHIEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN13_EN
        (NUCODEGEN_GPIO_PC_PIN13_RHIEN << GPIO_INTEN_RHIEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN14_EN
        (NUCODEGEN_GPIO_PC_PIN14_RHIEN << GPIO_INTEN_RHIEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN15_EN
        (NUCODEGEN_GPIO_PC_PIN15_RHIEN << GPIO_INTEN_RHIEN15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PC slew rate
    PC->SLEWCTL =
#if NUCODEGEN_GPIO_PC_PIN0_EN
                  (NUCODEGEN_GPIO_PC_PIN0_SLEW << GPIO_SLEWCTL_HSREN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN1_EN
                  (NUCODEGEN_GPIO_PC_PIN1_SLEW << GPIO_SLEWCTL_HSREN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN2_EN
                  (NUCODEGEN_GPIO_PC_PIN2_SLEW << GPIO_SLEWCTL_HSREN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN3_EN
                  (NUCODEGEN_GPIO_PC_PIN3_SLEW << GPIO_SLEWCTL_HSREN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN4_EN
                  (NUCODEGEN_GPIO_PC_PIN4_SLEW << GPIO_SLEWCTL_HSREN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN5_EN
                  (NUCODEGEN_GPIO_PC_PIN5_SLEW << GPIO_SLEWCTL_HSREN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN6_EN
                  (NUCODEGEN_GPIO_PC_PIN6_SLEW << GPIO_SLEWCTL_HSREN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN7_EN
                  (NUCODEGEN_GPIO_PC_PIN7_SLEW << GPIO_SLEWCTL_HSREN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN8_EN
                  (NUCODEGEN_GPIO_PC_PIN8_SLEW << GPIO_SLEWCTL_HSREN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN9_EN
                  (NUCODEGEN_GPIO_PC_PIN9_SLEW << GPIO_SLEWCTL_HSREN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN10_EN
                  (NUCODEGEN_GPIO_PC_PIN10_SLEW << GPIO_SLEWCTL_HSREN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN11_EN
                  (NUCODEGEN_GPIO_PC_PIN11_SLEW << GPIO_SLEWCTL_HSREN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN12_EN
                  (NUCODEGEN_GPIO_PC_PIN12_SLEW << GPIO_SLEWCTL_HSREN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN13_EN
                  (NUCODEGEN_GPIO_PC_PIN13_SLEW << GPIO_SLEWCTL_HSREN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN14_EN
                  (NUCODEGEN_GPIO_PC_PIN14_SLEW << GPIO_SLEWCTL_HSREN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN15_EN
                  (NUCODEGEN_GPIO_PC_PIN15_SLEW << GPIO_SLEWCTL_HSREN15_Pos) |
#endif
                  u32RegDefault;

    //GPIO_PC pull-up or pull-down
    PC->PUSEL =
#if NUCODEGEN_GPIO_PC_PIN0_EN
                (NUCODEGEN_GPIO_PC_PIN0_PUSEL << GPIO_PUSEL_PUSEL0_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN1_EN
                (NUCODEGEN_GPIO_PC_PIN1_PUSEL << GPIO_PUSEL_PUSEL1_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN2_EN
                (NUCODEGEN_GPIO_PC_PIN2_PUSEL << GPIO_PUSEL_PUSEL2_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN3_EN
                (NUCODEGEN_GPIO_PC_PIN3_PUSEL << GPIO_PUSEL_PUSEL3_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN4_EN
                (NUCODEGEN_GPIO_PC_PIN4_PUSEL << GPIO_PUSEL_PUSEL4_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN5_EN
                (NUCODEGEN_GPIO_PC_PIN5_PUSEL << GPIO_PUSEL_PUSEL5_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN6_EN
                (NUCODEGEN_GPIO_PC_PIN6_PUSEL << GPIO_PUSEL_PUSEL6_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN7_EN
                (NUCODEGEN_GPIO_PC_PIN7_PUSEL << GPIO_PUSEL_PUSEL7_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN8_EN
                (NUCODEGEN_GPIO_PC_PIN8_PUSEL << GPIO_PUSEL_PUSEL8_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN9_EN
                (NUCODEGEN_GPIO_PC_PIN9_PUSEL << GPIO_PUSEL_PUSEL9_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN10_EN
                (NUCODEGEN_GPIO_PC_PIN10_PUSEL << GPIO_PUSEL_PUSEL10_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN11_EN
                (NUCODEGEN_GPIO_PC_PIN11_PUSEL << GPIO_PUSEL_PUSEL11_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN12_EN
                (NUCODEGEN_GPIO_PC_PIN12_PUSEL << GPIO_PUSEL_PUSEL12_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN13_EN
                (NUCODEGEN_GPIO_PC_PIN13_PUSEL << GPIO_PUSEL_PUSEL13_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN14_EN
                (NUCODEGEN_GPIO_PC_PIN14_PUSEL << GPIO_PUSEL_PUSEL14_Pos) |
#endif
#if NUCODEGEN_GPIO_PC_PIN15_EN
                (NUCODEGEN_GPIO_PC_PIN15_PUSEL << GPIO_PUSEL_PUSEL15_Pos) |
#endif
                u32RegDefault;

#if(NUCODEGEN_GPIO_PC_CLR_DB_ICLKON)
    GPIO_CLR_DEBOUNCE_ICLKON(PC);
#endif
#endif //NUCODEGEN_GPIO_PC

#if(NUCODEGEN_GPIO_PD)
    //GPIO_PD mode
    PD->MODE =
#if NUCODEGEN_GPIO_PD_PIN0_EN
        (NUCODEGEN_GPIO_PD_PIN0_MODE << GPIO_MODE_MODE0_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN1_EN
        (NUCODEGEN_GPIO_PD_PIN1_MODE << GPIO_MODE_MODE1_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN2_EN
        (NUCODEGEN_GPIO_PD_PIN2_MODE << GPIO_MODE_MODE2_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN3_EN
        (NUCODEGEN_GPIO_PD_PIN3_MODE << GPIO_MODE_MODE3_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN4_EN
        (NUCODEGEN_GPIO_PD_PIN4_MODE << GPIO_MODE_MODE4_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN5_EN
        (NUCODEGEN_GPIO_PD_PIN5_MODE << GPIO_MODE_MODE5_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN6_EN
        (NUCODEGEN_GPIO_PD_PIN6_MODE << GPIO_MODE_MODE6_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN7_EN
        (NUCODEGEN_GPIO_PD_PIN7_MODE << GPIO_MODE_MODE7_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN8_EN
        (NUCODEGEN_GPIO_PD_PIN8_MODE << GPIO_MODE_MODE8_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN9_EN
        (NUCODEGEN_GPIO_PD_PIN9_MODE << GPIO_MODE_MODE9_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN10_EN
        (NUCODEGEN_GPIO_PD_PIN10_MODE << GPIO_MODE_MODE10_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN11_EN
        (NUCODEGEN_GPIO_PD_PIN11_MODE << GPIO_MODE_MODE11_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN12_EN
        (NUCODEGEN_GPIO_PD_PIN12_MODE << GPIO_MODE_MODE12_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN13_EN
        (NUCODEGEN_GPIO_PD_PIN13_MODE << GPIO_MODE_MODE13_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN14_EN
        (NUCODEGEN_GPIO_PD_PIN14_MODE << GPIO_MODE_MODE14_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN15_EN
        (NUCODEGEN_GPIO_PD_PIN15_MODE << GPIO_MODE_MODE15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PD disable digital input path
    PD->DINOFF =
#if NUCODEGEN_GPIO_PD_PIN0_EN
        (NUCODEGEN_GPIO_PD_PIN0_DINOFF << GPIO_DINOFF_DINOFF0_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN1_EN
        (NUCODEGEN_GPIO_PD_PIN1_DINOFF << GPIO_DINOFF_DINOFF1_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN2_EN
        (NUCODEGEN_GPIO_PD_PIN2_DINOFF << GPIO_DINOFF_DINOFF2_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN3_EN
        (NUCODEGEN_GPIO_PD_PIN3_DINOFF << GPIO_DINOFF_DINOFF3_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN4_EN
        (NUCODEGEN_GPIO_PD_PIN4_DINOFF << GPIO_DINOFF_DINOFF4_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN5_EN
        (NUCODEGEN_GPIO_PD_PIN5_DINOFF << GPIO_DINOFF_DINOFF5_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN6_EN
        (NUCODEGEN_GPIO_PD_PIN6_DINOFF << GPIO_DINOFF_DINOFF6_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN7_EN
        (NUCODEGEN_GPIO_PD_PIN7_DINOFF << GPIO_DINOFF_DINOFF7_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN8_EN
        (NUCODEGEN_GPIO_PD_PIN8_DINOFF << GPIO_DINOFF_DINOFF8_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN9_EN
        (NUCODEGEN_GPIO_PD_PIN9_DINOFF << GPIO_DINOFF_DINOFF9_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN10_EN
        (NUCODEGEN_GPIO_PD_PIN10_DINOFF << GPIO_DINOFF_DINOFF10_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN11_EN
        (NUCODEGEN_GPIO_PD_PIN11_DINOFF << GPIO_DINOFF_DINOFF11_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN12_EN
        (NUCODEGEN_GPIO_PD_PIN12_DINOFF << GPIO_DINOFF_DINOFF12_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN13_EN
        (NUCODEGEN_GPIO_PD_PIN13_DINOFF << GPIO_DINOFF_DINOFF13_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN14_EN
        (NUCODEGEN_GPIO_PD_PIN14_DINOFF << GPIO_DINOFF_DINOFF14_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN15_EN
        (NUCODEGEN_GPIO_PD_PIN15_DINOFF << GPIO_DINOFF_DINOFF15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PD out data
    PD->DOUT =
#if NUCODEGEN_GPIO_PD_PIN0_EN
        (NUCODEGEN_GPIO_PD_PIN0_DOUT << GPIO_DOUT_DOUT0_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN1_EN
        (NUCODEGEN_GPIO_PD_PIN1_DOUT << GPIO_DOUT_DOUT1_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN2_EN
        (NUCODEGEN_GPIO_PD_PIN2_DOUT << GPIO_DOUT_DOUT2_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN3_EN
        (NUCODEGEN_GPIO_PD_PIN3_DOUT << GPIO_DOUT_DOUT3_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN4_EN
        (NUCODEGEN_GPIO_PD_PIN4_DOUT << GPIO_DOUT_DOUT4_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN5_EN
        (NUCODEGEN_GPIO_PD_PIN5_DOUT << GPIO_DOUT_DOUT5_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN6_EN
        (NUCODEGEN_GPIO_PD_PIN6_DOUT << GPIO_DOUT_DOUT6_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN7_EN
        (NUCODEGEN_GPIO_PD_PIN7_DOUT << GPIO_DOUT_DOUT7_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN8_EN
        (NUCODEGEN_GPIO_PD_PIN8_DOUT << GPIO_DOUT_DOUT8_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN9_EN
        (NUCODEGEN_GPIO_PD_PIN9_DOUT << GPIO_DOUT_DOUT9_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN10_EN
        (NUCODEGEN_GPIO_PD_PIN10_DOUT << GPIO_DOUT_DOUT10_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN11_EN
        (NUCODEGEN_GPIO_PD_PIN11_DOUT << GPIO_DOUT_DOUT11_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN12_EN
        (NUCODEGEN_GPIO_PD_PIN12_DOUT << GPIO_DOUT_DOUT12_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN13_EN
        (NUCODEGEN_GPIO_PD_PIN13_DOUT << GPIO_DOUT_DOUT13_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN14_EN
        (NUCODEGEN_GPIO_PD_PIN14_DOUT << GPIO_DOUT_DOUT14_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN15_EN
        (NUCODEGEN_GPIO_PD_PIN15_DOUT << GPIO_DOUT_DOUT15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PD DOUT mask
    PD->DATMSK =
#if NUCODEGEN_GPIO_PD_PIN0_EN
        (NUCODEGEN_GPIO_PD_PIN0_DATMSK << GPIO_DATMSK_DATMSK0_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN1_EN
        (NUCODEGEN_GPIO_PD_PIN1_DATMSK << GPIO_DATMSK_DATMSK1_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN2_EN
        (NUCODEGEN_GPIO_PD_PIN2_DATMSK << GPIO_DATMSK_DATMSK2_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN3_EN
        (NUCODEGEN_GPIO_PD_PIN3_DATMSK << GPIO_DATMSK_DATMSK3_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN4_EN
        (NUCODEGEN_GPIO_PD_PIN4_DATMSK << GPIO_DATMSK_DATMSK4_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN5_EN
        (NUCODEGEN_GPIO_PD_PIN5_DATMSK << GPIO_DATMSK_DATMSK5_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN6_EN
        (NUCODEGEN_GPIO_PD_PIN6_DATMSK << GPIO_DATMSK_DATMSK6_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN7_EN
        (NUCODEGEN_GPIO_PD_PIN7_DATMSK << GPIO_DATMSK_DATMSK7_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN8_EN
        (NUCODEGEN_GPIO_PD_PIN8_DATMSK << GPIO_DATMSK_DATMSK8_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN9_EN
        (NUCODEGEN_GPIO_PD_PIN9_DATMSK << GPIO_DATMSK_DATMSK9_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN10_EN
        (NUCODEGEN_GPIO_PD_PIN10_DATMSK << GPIO_DATMSK_DATMSK10_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN11_EN
        (NUCODEGEN_GPIO_PD_PIN11_DATMSK << GPIO_DATMSK_DATMSK11_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN12_EN
        (NUCODEGEN_GPIO_PD_PIN12_DATMSK << GPIO_DATMSK_DATMSK12_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN13_EN
        (NUCODEGEN_GPIO_PD_PIN13_DATMSK << GPIO_DATMSK_DATMSK13_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN14_EN
        (NUCODEGEN_GPIO_PD_PIN14_DATMSK << GPIO_DATMSK_DATMSK14_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN15_EN
        (NUCODEGEN_GPIO_PD_PIN15_DATMSK << GPIO_DATMSK_DATMSK15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PD enable de-bounce
    PD->DBEN =
#if NUCODEGEN_GPIO_PD_PIN0_EN
        (NUCODEGEN_GPIO_PD_PIN0_DBEN << GPIO_DBEN_DBEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN1_EN
        (NUCODEGEN_GPIO_PD_PIN1_DBEN << GPIO_DBEN_DBEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN2_EN
        (NUCODEGEN_GPIO_PD_PIN2_DBEN << GPIO_DBEN_DBEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN3_EN
        (NUCODEGEN_GPIO_PD_PIN3_DBEN << GPIO_DBEN_DBEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN4_EN
        (NUCODEGEN_GPIO_PD_PIN4_DBEN << GPIO_DBEN_DBEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN5_EN
        (NUCODEGEN_GPIO_PD_PIN5_DBEN << GPIO_DBEN_DBEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN6_EN
        (NUCODEGEN_GPIO_PD_PIN6_DBEN << GPIO_DBEN_DBEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN7_EN
        (NUCODEGEN_GPIO_PD_PIN7_DBEN << GPIO_DBEN_DBEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN8_EN
        (NUCODEGEN_GPIO_PD_PIN8_DBEN << GPIO_DBEN_DBEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN9_EN
        (NUCODEGEN_GPIO_PD_PIN9_DBEN << GPIO_DBEN_DBEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN10_EN
        (NUCODEGEN_GPIO_PD_PIN10_DBEN << GPIO_DBEN_DBEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN11_EN
        (NUCODEGEN_GPIO_PD_PIN11_DBEN << GPIO_DBEN_DBEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN12_EN
        (NUCODEGEN_GPIO_PD_PIN12_DBEN << GPIO_DBEN_DBEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN13_EN
        (NUCODEGEN_GPIO_PD_PIN13_DBEN << GPIO_DBEN_DBEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN14_EN
        (NUCODEGEN_GPIO_PD_PIN14_DBEN << GPIO_DBEN_DBEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN15_EN
        (NUCODEGEN_GPIO_PD_PIN15_DBEN << GPIO_DBEN_DBEN15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PD edge or level interrupt
    PD->INTTYPE =
#if NUCODEGEN_GPIO_PD_PIN0_EN
        (NUCODEGEN_GPIO_PD_PIN0_INTTYPE << GPIO_INTTYPE_TYPE0_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN1_EN
        (NUCODEGEN_GPIO_PD_PIN1_INTTYPE << GPIO_INTTYPE_TYPE1_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN2_EN
        (NUCODEGEN_GPIO_PD_PIN2_INTTYPE << GPIO_INTTYPE_TYPE2_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN3_EN
        (NUCODEGEN_GPIO_PD_PIN3_INTTYPE << GPIO_INTTYPE_TYPE3_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN4_EN
        (NUCODEGEN_GPIO_PD_PIN4_INTTYPE << GPIO_INTTYPE_TYPE4_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN5_EN
        (NUCODEGEN_GPIO_PD_PIN5_INTTYPE << GPIO_INTTYPE_TYPE5_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN6_EN
        (NUCODEGEN_GPIO_PD_PIN6_INTTYPE << GPIO_INTTYPE_TYPE6_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN7_EN
        (NUCODEGEN_GPIO_PD_PIN7_INTTYPE << GPIO_INTTYPE_TYPE7_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN8_EN
        (NUCODEGEN_GPIO_PD_PIN8_INTTYPE << GPIO_INTTYPE_TYPE8_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN9_EN
        (NUCODEGEN_GPIO_PD_PIN9_INTTYPE << GPIO_INTTYPE_TYPE9_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN10_EN
        (NUCODEGEN_GPIO_PD_PIN10_INTTYPE << GPIO_INTTYPE_TYPE10_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN11_EN
        (NUCODEGEN_GPIO_PD_PIN11_INTTYPE << GPIO_INTTYPE_TYPE11_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN12_EN
        (NUCODEGEN_GPIO_PD_PIN12_INTTYPE << GPIO_INTTYPE_TYPE12_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN13_EN
        (NUCODEGEN_GPIO_PD_PIN13_INTTYPE << GPIO_INTTYPE_TYPE13_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN14_EN
        (NUCODEGEN_GPIO_PD_PIN14_INTTYPE << GPIO_INTTYPE_TYPE14_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN15_EN
        (NUCODEGEN_GPIO_PD_PIN15_INTTYPE << GPIO_INTTYPE_TYPE15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PD enable falling(edge) or low(level) interrupt
    PD->INTEN =
#if NUCODEGEN_GPIO_PD_PIN0_EN
        (NUCODEGEN_GPIO_PD_PIN0_FLIEN << GPIO_INTEN_FLIEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN1_EN
        (NUCODEGEN_GPIO_PD_PIN1_FLIEN << GPIO_INTEN_FLIEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN2_EN
        (NUCODEGEN_GPIO_PD_PIN2_FLIEN << GPIO_INTEN_FLIEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN3_EN
        (NUCODEGEN_GPIO_PD_PIN3_FLIEN << GPIO_INTEN_FLIEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN4_EN
        (NUCODEGEN_GPIO_PD_PIN4_FLIEN << GPIO_INTEN_FLIEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN5_EN
        (NUCODEGEN_GPIO_PD_PIN5_FLIEN << GPIO_INTEN_FLIEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN6_EN
        (NUCODEGEN_GPIO_PD_PIN6_FLIEN << GPIO_INTEN_FLIEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN7_EN
        (NUCODEGEN_GPIO_PD_PIN7_FLIEN << GPIO_INTEN_FLIEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN8_EN
        (NUCODEGEN_GPIO_PD_PIN8_FLIEN << GPIO_INTEN_FLIEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN9_EN
        (NUCODEGEN_GPIO_PD_PIN9_FLIEN << GPIO_INTEN_FLIEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN10_EN
        (NUCODEGEN_GPIO_PD_PIN10_FLIEN << GPIO_INTEN_FLIEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN11_EN
        (NUCODEGEN_GPIO_PD_PIN11_FLIEN << GPIO_INTEN_FLIEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN12_EN
        (NUCODEGEN_GPIO_PD_PIN12_FLIEN << GPIO_INTEN_FLIEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN13_EN
        (NUCODEGEN_GPIO_PD_PIN13_FLIEN << GPIO_INTEN_FLIEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN14_EN
        (NUCODEGEN_GPIO_PD_PIN14_FLIEN << GPIO_INTEN_FLIEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN15_EN
        (NUCODEGEN_GPIO_PD_PIN15_FLIEN << GPIO_INTEN_FLIEN15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PD enable rising(edge) or high(level) interrupt
    PD->INTEN |=
#if NUCODEGEN_GPIO_PD_PIN0_EN
        (NUCODEGEN_GPIO_PD_PIN0_RHIEN << GPIO_INTEN_RHIEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN1_EN
        (NUCODEGEN_GPIO_PD_PIN1_RHIEN << GPIO_INTEN_RHIEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN2_EN
        (NUCODEGEN_GPIO_PD_PIN2_RHIEN << GPIO_INTEN_RHIEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN3_EN
        (NUCODEGEN_GPIO_PD_PIN3_RHIEN << GPIO_INTEN_RHIEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN4_EN
        (NUCODEGEN_GPIO_PD_PIN4_RHIEN << GPIO_INTEN_RHIEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN5_EN
        (NUCODEGEN_GPIO_PD_PIN5_RHIEN << GPIO_INTEN_RHIEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN6_EN
        (NUCODEGEN_GPIO_PD_PIN6_RHIEN << GPIO_INTEN_RHIEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN7_EN
        (NUCODEGEN_GPIO_PD_PIN7_RHIEN << GPIO_INTEN_RHIEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN8_EN
        (NUCODEGEN_GPIO_PD_PIN8_RHIEN << GPIO_INTEN_RHIEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN9_EN
        (NUCODEGEN_GPIO_PD_PIN9_RHIEN << GPIO_INTEN_RHIEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN10_EN
        (NUCODEGEN_GPIO_PD_PIN10_RHIEN << GPIO_INTEN_RHIEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN11_EN
        (NUCODEGEN_GPIO_PD_PIN11_RHIEN << GPIO_INTEN_RHIEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN12_EN
        (NUCODEGEN_GPIO_PD_PIN12_RHIEN << GPIO_INTEN_RHIEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN13_EN
        (NUCODEGEN_GPIO_PD_PIN13_RHIEN << GPIO_INTEN_RHIEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN14_EN
        (NUCODEGEN_GPIO_PD_PIN14_RHIEN << GPIO_INTEN_RHIEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN15_EN
        (NUCODEGEN_GPIO_PD_PIN15_RHIEN << GPIO_INTEN_RHIEN15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PD slew rate
    PD->SLEWCTL =
#if NUCODEGEN_GPIO_PD_PIN0_EN
                  (NUCODEGEN_GPIO_PD_PIN0_SLEW << GPIO_SLEWCTL_HSREN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN1_EN
                  (NUCODEGEN_GPIO_PD_PIN1_SLEW << GPIO_SLEWCTL_HSREN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN2_EN
                  (NUCODEGEN_GPIO_PD_PIN2_SLEW << GPIO_SLEWCTL_HSREN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN3_EN
                  (NUCODEGEN_GPIO_PD_PIN3_SLEW << GPIO_SLEWCTL_HSREN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN4_EN
                  (NUCODEGEN_GPIO_PD_PIN4_SLEW << GPIO_SLEWCTL_HSREN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN5_EN
                  (NUCODEGEN_GPIO_PD_PIN5_SLEW << GPIO_SLEWCTL_HSREN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN6_EN
                  (NUCODEGEN_GPIO_PD_PIN6_SLEW << GPIO_SLEWCTL_HSREN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN7_EN
                  (NUCODEGEN_GPIO_PD_PIN7_SLEW << GPIO_SLEWCTL_HSREN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN8_EN
                  (NUCODEGEN_GPIO_PD_PIN8_SLEW << GPIO_SLEWCTL_HSREN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN9_EN
                  (NUCODEGEN_GPIO_PD_PIN9_SLEW << GPIO_SLEWCTL_HSREN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN10_EN
                  (NUCODEGEN_GPIO_PD_PIN10_SLEW << GPIO_SLEWCTL_HSREN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN11_EN
                  (NUCODEGEN_GPIO_PD_PIN11_SLEW << GPIO_SLEWCTL_HSREN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN12_EN
                  (NUCODEGEN_GPIO_PD_PIN12_SLEW << GPIO_SLEWCTL_HSREN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN13_EN
                  (NUCODEGEN_GPIO_PD_PIN13_SLEW << GPIO_SLEWCTL_HSREN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN14_EN
                  (NUCODEGEN_GPIO_PD_PIN14_SLEW << GPIO_SLEWCTL_HSREN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN15_EN
                  (NUCODEGEN_GPIO_PD_PIN15_SLEW << GPIO_SLEWCTL_HSREN15_Pos) |
#endif
                  u32RegDefault;

    //GPIO_PD pull-up or pull-down
    PD->PUSEL =
#if NUCODEGEN_GPIO_PD_PIN0_EN
                (NUCODEGEN_GPIO_PD_PIN0_PUSEL << GPIO_PUSEL_PUSEL0_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN1_EN
                (NUCODEGEN_GPIO_PD_PIN1_PUSEL << GPIO_PUSEL_PUSEL1_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN2_EN
                (NUCODEGEN_GPIO_PD_PIN2_PUSEL << GPIO_PUSEL_PUSEL2_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN3_EN
                (NUCODEGEN_GPIO_PD_PIN3_PUSEL << GPIO_PUSEL_PUSEL3_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN4_EN
                (NUCODEGEN_GPIO_PD_PIN4_PUSEL << GPIO_PUSEL_PUSEL4_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN5_EN
                (NUCODEGEN_GPIO_PD_PIN5_PUSEL << GPIO_PUSEL_PUSEL5_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN6_EN
                (NUCODEGEN_GPIO_PD_PIN6_PUSEL << GPIO_PUSEL_PUSEL6_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN7_EN
                (NUCODEGEN_GPIO_PD_PIN7_PUSEL << GPIO_PUSEL_PUSEL7_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN8_EN
                (NUCODEGEN_GPIO_PD_PIN8_PUSEL << GPIO_PUSEL_PUSEL8_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN9_EN
                (NUCODEGEN_GPIO_PD_PIN9_PUSEL << GPIO_PUSEL_PUSEL9_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN10_EN
                (NUCODEGEN_GPIO_PD_PIN10_PUSEL << GPIO_PUSEL_PUSEL10_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN11_EN
                (NUCODEGEN_GPIO_PD_PIN11_PUSEL << GPIO_PUSEL_PUSEL11_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN12_EN
                (NUCODEGEN_GPIO_PD_PIN12_PUSEL << GPIO_PUSEL_PUSEL12_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN13_EN
                (NUCODEGEN_GPIO_PD_PIN13_PUSEL << GPIO_PUSEL_PUSEL13_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN14_EN
                (NUCODEGEN_GPIO_PD_PIN14_PUSEL << GPIO_PUSEL_PUSEL14_Pos) |
#endif
#if NUCODEGEN_GPIO_PD_PIN15_EN
                (NUCODEGEN_GPIO_PD_PIN15_PUSEL << GPIO_PUSEL_PUSEL15_Pos) |
#endif
                u32RegDefault;

#if(NUCODEGEN_GPIO_PD_CLR_DB_ICLKON)
    GPIO_CLR_DEBOUNCE_ICLKON(PD);
#endif

#endif //NUCODEGEN_GPIO_PD

#if(NUCODEGEN_GPIO_PE)
    //GPIO_PE mode
    PE->MODE =
#if NUCODEGEN_GPIO_PE_PIN0_EN
                (NUCODEGEN_GPIO_PE_PIN0_MODE << GPIO_MODE_MODE0_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN1_EN
                (NUCODEGEN_GPIO_PE_PIN1_MODE << GPIO_MODE_MODE1_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN2_EN
                (NUCODEGEN_GPIO_PE_PIN2_MODE << GPIO_MODE_MODE2_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN3_EN
                (NUCODEGEN_GPIO_PE_PIN3_MODE << GPIO_MODE_MODE3_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN4_EN
                (NUCODEGEN_GPIO_PE_PIN4_MODE << GPIO_MODE_MODE4_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN5_EN
                (NUCODEGEN_GPIO_PE_PIN5_MODE << GPIO_MODE_MODE5_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN6_EN
                (NUCODEGEN_GPIO_PE_PIN6_MODE << GPIO_MODE_MODE6_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN7_EN
                (NUCODEGEN_GPIO_PE_PIN7_MODE << GPIO_MODE_MODE7_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN8_EN
                (NUCODEGEN_GPIO_PE_PIN8_MODE << GPIO_MODE_MODE8_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN9_EN
                (NUCODEGEN_GPIO_PE_PIN9_MODE << GPIO_MODE_MODE9_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN10_EN
                (NUCODEGEN_GPIO_PE_PIN10_MODE << GPIO_MODE_MODE10_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN11_EN
                (NUCODEGEN_GPIO_PE_PIN11_MODE << GPIO_MODE_MODE11_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN12_EN
                (NUCODEGEN_GPIO_PE_PIN12_MODE << GPIO_MODE_MODE12_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN13_EN
                (NUCODEGEN_GPIO_PE_PIN13_MODE << GPIO_MODE_MODE13_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN14_EN
                (NUCODEGEN_GPIO_PE_PIN14_MODE << GPIO_MODE_MODE14_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN15_EN
                (NUCODEGEN_GPIO_PE_PIN15_MODE << GPIO_MODE_MODE15_Pos) |
#endif
                u32RegDefault;

    //GPIO_PE disable digital input path
    PE->DINOFF =
#if NUCODEGEN_GPIO_PE_PIN0_EN
                 (NUCODEGEN_GPIO_PE_PIN0_DINOFF << GPIO_DINOFF_DINOFF0_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN1_EN
                 (NUCODEGEN_GPIO_PE_PIN1_DINOFF << GPIO_DINOFF_DINOFF1_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN2_EN
                 (NUCODEGEN_GPIO_PE_PIN2_DINOFF << GPIO_DINOFF_DINOFF2_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN3_EN
                 (NUCODEGEN_GPIO_PE_PIN3_DINOFF << GPIO_DINOFF_DINOFF3_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN4_EN
                 (NUCODEGEN_GPIO_PE_PIN4_DINOFF << GPIO_DINOFF_DINOFF4_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN5_EN
                 (NUCODEGEN_GPIO_PE_PIN5_DINOFF << GPIO_DINOFF_DINOFF5_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN6_EN
                 (NUCODEGEN_GPIO_PE_PIN6_DINOFF << GPIO_DINOFF_DINOFF6_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN7_EN
                 (NUCODEGEN_GPIO_PE_PIN7_DINOFF << GPIO_DINOFF_DINOFF7_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN8_EN
                 (NUCODEGEN_GPIO_PE_PIN8_DINOFF << GPIO_DINOFF_DINOFF8_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN9_EN
                 (NUCODEGEN_GPIO_PE_PIN9_DINOFF << GPIO_DINOFF_DINOFF9_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN10_EN
                 (NUCODEGEN_GPIO_PE_PIN10_DINOFF << GPIO_DINOFF_DINOFF10_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN11_EN
                 (NUCODEGEN_GPIO_PE_PIN11_DINOFF << GPIO_DINOFF_DINOFF11_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN12_EN
                 (NUCODEGEN_GPIO_PE_PIN12_DINOFF << GPIO_DINOFF_DINOFF12_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN13_EN
                 (NUCODEGEN_GPIO_PE_PIN13_DINOFF << GPIO_DINOFF_DINOFF13_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN14_EN
                 (NUCODEGEN_GPIO_PE_PIN14_DINOFF << GPIO_DINOFF_DINOFF14_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN15_EN
                 (NUCODEGEN_GPIO_PE_PIN15_DINOFF << GPIO_DINOFF_DINOFF15_Pos) |
#endif
                 u32RegDefault;

    //GPIO_PE out data
    PE->DOUT =
#if NUCODEGEN_GPIO_PE_PIN0_EN
                (NUCODEGEN_GPIO_PE_PIN0_DOUT << GPIO_DOUT_DOUT0_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN1_EN
                (NUCODEGEN_GPIO_PE_PIN1_DOUT << GPIO_DOUT_DOUT1_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN2_EN
                (NUCODEGEN_GPIO_PE_PIN2_DOUT << GPIO_DOUT_DOUT2_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN3_EN
                (NUCODEGEN_GPIO_PE_PIN3_DOUT << GPIO_DOUT_DOUT3_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN4_EN
                (NUCODEGEN_GPIO_PE_PIN4_DOUT << GPIO_DOUT_DOUT4_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN5_EN
                (NUCODEGEN_GPIO_PE_PIN5_DOUT << GPIO_DOUT_DOUT5_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN6_EN
                (NUCODEGEN_GPIO_PE_PIN6_DOUT << GPIO_DOUT_DOUT6_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN7_EN
                (NUCODEGEN_GPIO_PE_PIN7_DOUT << GPIO_DOUT_DOUT7_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN8_EN
                (NUCODEGEN_GPIO_PE_PIN8_DOUT << GPIO_DOUT_DOUT8_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN9_EN
                (NUCODEGEN_GPIO_PE_PIN9_DOUT << GPIO_DOUT_DOUT9_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN10_EN
                (NUCODEGEN_GPIO_PE_PIN10_DOUT << GPIO_DOUT_DOUT10_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN11_EN
                (NUCODEGEN_GPIO_PE_PIN11_DOUT << GPIO_DOUT_DOUT11_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN12_EN
                (NUCODEGEN_GPIO_PE_PIN12_DOUT << GPIO_DOUT_DOUT12_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN13_EN
                (NUCODEGEN_GPIO_PE_PIN13_DOUT << GPIO_DOUT_DOUT13_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN14_EN
                (NUCODEGEN_GPIO_PE_PIN14_DOUT << GPIO_DOUT_DOUT14_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN15_EN
                (NUCODEGEN_GPIO_PE_PIN15_DOUT << GPIO_DOUT_DOUT15_Pos) |
#endif
                u32RegDefault;

    //GPIO_PE DOUT mask
    PE->DATMSK =
#if NUCODEGEN_GPIO_PE_PIN0_EN
                 (NUCODEGEN_GPIO_PE_PIN0_DATMSK << GPIO_DATMSK_DATMSK0_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN1_EN
                 (NUCODEGEN_GPIO_PE_PIN1_DATMSK << GPIO_DATMSK_DATMSK1_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN2_EN
                 (NUCODEGEN_GPIO_PE_PIN2_DATMSK << GPIO_DATMSK_DATMSK2_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN3_EN
                 (NUCODEGEN_GPIO_PE_PIN3_DATMSK << GPIO_DATMSK_DATMSK3_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN4_EN
                 (NUCODEGEN_GPIO_PE_PIN4_DATMSK << GPIO_DATMSK_DATMSK4_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN5_EN
                 (NUCODEGEN_GPIO_PE_PIN5_DATMSK << GPIO_DATMSK_DATMSK5_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN6_EN
                 (NUCODEGEN_GPIO_PE_PIN6_DATMSK << GPIO_DATMSK_DATMSK6_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN7_EN
                 (NUCODEGEN_GPIO_PE_PIN7_DATMSK << GPIO_DATMSK_DATMSK7_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN8_EN
                 (NUCODEGEN_GPIO_PE_PIN8_DATMSK << GPIO_DATMSK_DATMSK8_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN9_EN
                 (NUCODEGEN_GPIO_PE_PIN9_DATMSK << GPIO_DATMSK_DATMSK9_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN10_EN
                 (NUCODEGEN_GPIO_PE_PIN10_DATMSK << GPIO_DATMSK_DATMSK10_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN11_EN
                 (NUCODEGEN_GPIO_PE_PIN11_DATMSK << GPIO_DATMSK_DATMSK11_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN12_EN
                 (NUCODEGEN_GPIO_PE_PIN12_DATMSK << GPIO_DATMSK_DATMSK12_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN13_EN
                 (NUCODEGEN_GPIO_PE_PIN13_DATMSK << GPIO_DATMSK_DATMSK13_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN14_EN
                 (NUCODEGEN_GPIO_PE_PIN14_DATMSK << GPIO_DATMSK_DATMSK14_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN15_EN
                 (NUCODEGEN_GPIO_PE_PIN15_DATMSK << GPIO_DATMSK_DATMSK15_Pos) |
#endif
                 u32RegDefault;

    //GPIO_PE enable de-bounce
    PE->DBEN =
#if NUCODEGEN_GPIO_PE_PIN0_EN
                (NUCODEGEN_GPIO_PE_PIN0_DBEN << GPIO_DBEN_DBEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN1_EN
                (NUCODEGEN_GPIO_PE_PIN1_DBEN << GPIO_DBEN_DBEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN2_EN
                (NUCODEGEN_GPIO_PE_PIN2_DBEN << GPIO_DBEN_DBEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN3_EN
                (NUCODEGEN_GPIO_PE_PIN3_DBEN << GPIO_DBEN_DBEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN4_EN
                (NUCODEGEN_GPIO_PE_PIN4_DBEN << GPIO_DBEN_DBEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN5_EN
                (NUCODEGEN_GPIO_PE_PIN5_DBEN << GPIO_DBEN_DBEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN6_EN
                (NUCODEGEN_GPIO_PE_PIN6_DBEN << GPIO_DBEN_DBEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN7_EN
                (NUCODEGEN_GPIO_PE_PIN7_DBEN << GPIO_DBEN_DBEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN8_EN
                (NUCODEGEN_GPIO_PE_PIN8_DBEN << GPIO_DBEN_DBEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN9_EN
                (NUCODEGEN_GPIO_PE_PIN9_DBEN << GPIO_DBEN_DBEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN10_EN
                (NUCODEGEN_GPIO_PE_PIN10_DBEN << GPIO_DBEN_DBEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN11_EN
                (NUCODEGEN_GPIO_PE_PIN11_DBEN << GPIO_DBEN_DBEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN12_EN
                (NUCODEGEN_GPIO_PE_PIN12_DBEN << GPIO_DBEN_DBEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN13_EN
                (NUCODEGEN_GPIO_PE_PIN13_DBEN << GPIO_DBEN_DBEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN14_EN
                (NUCODEGEN_GPIO_PE_PIN14_DBEN << GPIO_DBEN_DBEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN15_EN
                (NUCODEGEN_GPIO_PE_PIN15_DBEN << GPIO_DBEN_DBEN15_Pos) |
#endif
                u32RegDefault;

    //GPIO_PE edge or level interrupt
    PE->INTTYPE =
#if NUCODEGEN_GPIO_PE_PIN0_EN
                  (NUCODEGEN_GPIO_PE_PIN0_INTTYPE << GPIO_INTTYPE_TYPE0_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN1_EN
                  (NUCODEGEN_GPIO_PE_PIN1_INTTYPE << GPIO_INTTYPE_TYPE1_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN2_EN
                  (NUCODEGEN_GPIO_PE_PIN2_INTTYPE << GPIO_INTTYPE_TYPE2_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN3_EN
                  (NUCODEGEN_GPIO_PE_PIN3_INTTYPE << GPIO_INTTYPE_TYPE3_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN4_EN
                  (NUCODEGEN_GPIO_PE_PIN4_INTTYPE << GPIO_INTTYPE_TYPE4_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN5_EN
                  (NUCODEGEN_GPIO_PE_PIN5_INTTYPE << GPIO_INTTYPE_TYPE5_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN6_EN
                  (NUCODEGEN_GPIO_PE_PIN6_INTTYPE << GPIO_INTTYPE_TYPE6_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN7_EN
                  (NUCODEGEN_GPIO_PE_PIN7_INTTYPE << GPIO_INTTYPE_TYPE7_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN8_EN
                  (NUCODEGEN_GPIO_PE_PIN8_INTTYPE << GPIO_INTTYPE_TYPE8_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN9_EN
                  (NUCODEGEN_GPIO_PE_PIN9_INTTYPE << GPIO_INTTYPE_TYPE9_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN10_EN
                  (NUCODEGEN_GPIO_PE_PIN10_INTTYPE << GPIO_INTTYPE_TYPE10_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN11_EN
                  (NUCODEGEN_GPIO_PE_PIN11_INTTYPE << GPIO_INTTYPE_TYPE11_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN12_EN
                  (NUCODEGEN_GPIO_PE_PIN12_INTTYPE << GPIO_INTTYPE_TYPE12_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN13_EN
                  (NUCODEGEN_GPIO_PE_PIN13_INTTYPE << GPIO_INTTYPE_TYPE13_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN14_EN
                  (NUCODEGEN_GPIO_PE_PIN14_INTTYPE << GPIO_INTTYPE_TYPE14_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN15_EN
                  (NUCODEGEN_GPIO_PE_PIN15_INTTYPE << GPIO_INTTYPE_TYPE15_Pos) |
#endif
                  u32RegDefault;

    //GPIO_PE enable falling(edge) or low(level) interrupt
    PE->INTEN =
#if NUCODEGEN_GPIO_PE_PIN0_EN
                (NUCODEGEN_GPIO_PE_PIN0_FLIEN << GPIO_INTEN_FLIEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN1_EN
                (NUCODEGEN_GPIO_PE_PIN1_FLIEN << GPIO_INTEN_FLIEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN2_EN
                (NUCODEGEN_GPIO_PE_PIN2_FLIEN << GPIO_INTEN_FLIEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN3_EN
                (NUCODEGEN_GPIO_PE_PIN3_FLIEN << GPIO_INTEN_FLIEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN4_EN
                (NUCODEGEN_GPIO_PE_PIN4_FLIEN << GPIO_INTEN_FLIEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN5_EN
                (NUCODEGEN_GPIO_PE_PIN5_FLIEN << GPIO_INTEN_FLIEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN6_EN
                (NUCODEGEN_GPIO_PE_PIN6_FLIEN << GPIO_INTEN_FLIEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN7_EN
                (NUCODEGEN_GPIO_PE_PIN7_FLIEN << GPIO_INTEN_FLIEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN8_EN
                (NUCODEGEN_GPIO_PE_PIN8_FLIEN << GPIO_INTEN_FLIEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN9_EN
                (NUCODEGEN_GPIO_PE_PIN9_FLIEN << GPIO_INTEN_FLIEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN10_EN
                (NUCODEGEN_GPIO_PE_PIN10_FLIEN << GPIO_INTEN_FLIEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN11_EN
                (NUCODEGEN_GPIO_PE_PIN11_FLIEN << GPIO_INTEN_FLIEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN12_EN
                (NUCODEGEN_GPIO_PE_PIN12_FLIEN << GPIO_INTEN_FLIEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN13_EN
                (NUCODEGEN_GPIO_PE_PIN13_FLIEN << GPIO_INTEN_FLIEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN14_EN
                (NUCODEGEN_GPIO_PE_PIN14_FLIEN << GPIO_INTEN_FLIEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN15_EN
                (NUCODEGEN_GPIO_PE_PIN15_FLIEN << GPIO_INTEN_FLIEN15_Pos) |
#endif
                u32RegDefault;

    //GPIO_PE enable rising(edge) or high(level) interrupt
    PE->INTEN |=
#if NUCODEGEN_GPIO_PE_PIN0_EN
                 (NUCODEGEN_GPIO_PE_PIN0_RHIEN << GPIO_INTEN_RHIEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN1_EN
                 (NUCODEGEN_GPIO_PE_PIN1_RHIEN << GPIO_INTEN_RHIEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN2_EN
                 (NUCODEGEN_GPIO_PE_PIN2_RHIEN << GPIO_INTEN_RHIEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN3_EN
                 (NUCODEGEN_GPIO_PE_PIN3_RHIEN << GPIO_INTEN_RHIEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN4_EN
                 (NUCODEGEN_GPIO_PE_PIN4_RHIEN << GPIO_INTEN_RHIEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN5_EN
                 (NUCODEGEN_GPIO_PE_PIN5_RHIEN << GPIO_INTEN_RHIEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN6_EN
                 (NUCODEGEN_GPIO_PE_PIN6_RHIEN << GPIO_INTEN_RHIEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN7_EN
                 (NUCODEGEN_GPIO_PE_PIN7_RHIEN << GPIO_INTEN_RHIEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN8_EN
                 (NUCODEGEN_GPIO_PE_PIN8_RHIEN << GPIO_INTEN_RHIEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN9_EN
                 (NUCODEGEN_GPIO_PE_PIN9_RHIEN << GPIO_INTEN_RHIEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN10_EN
                 (NUCODEGEN_GPIO_PE_PIN10_RHIEN << GPIO_INTEN_RHIEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN11_EN
                 (NUCODEGEN_GPIO_PE_PIN11_RHIEN << GPIO_INTEN_RHIEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN12_EN
                 (NUCODEGEN_GPIO_PE_PIN12_RHIEN << GPIO_INTEN_RHIEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN13_EN
                 (NUCODEGEN_GPIO_PE_PIN13_RHIEN << GPIO_INTEN_RHIEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN14_EN
                 (NUCODEGEN_GPIO_PE_PIN14_RHIEN << GPIO_INTEN_RHIEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN15_EN
                 (NUCODEGEN_GPIO_PE_PIN15_RHIEN << GPIO_INTEN_RHIEN15_Pos) |
#endif
                 u32RegDefault;

    //GPIO_PE slew rate
    PE->SLEWCTL =
#if NUCODEGEN_GPIO_PE_PIN0_EN
                  (NUCODEGEN_GPIO_PE_PIN0_SLEW << GPIO_SLEWCTL_HSREN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN1_EN
                  (NUCODEGEN_GPIO_PE_PIN1_SLEW << GPIO_SLEWCTL_HSREN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN2_EN
                  (NUCODEGEN_GPIO_PE_PIN2_SLEW << GPIO_SLEWCTL_HSREN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN3_EN
                  (NUCODEGEN_GPIO_PE_PIN3_SLEW << GPIO_SLEWCTL_HSREN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN4_EN
                  (NUCODEGEN_GPIO_PE_PIN4_SLEW << GPIO_SLEWCTL_HSREN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN5_EN
                  (NUCODEGEN_GPIO_PE_PIN5_SLEW << GPIO_SLEWCTL_HSREN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN6_EN
                  (NUCODEGEN_GPIO_PE_PIN6_SLEW << GPIO_SLEWCTL_HSREN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN7_EN
                  (NUCODEGEN_GPIO_PE_PIN7_SLEW << GPIO_SLEWCTL_HSREN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN8_EN
                  (NUCODEGEN_GPIO_PE_PIN8_SLEW << GPIO_SLEWCTL_HSREN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN9_EN
                  (NUCODEGEN_GPIO_PE_PIN9_SLEW << GPIO_SLEWCTL_HSREN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN10_EN
                  (NUCODEGEN_GPIO_PE_PIN10_SLEW << GPIO_SLEWCTL_HSREN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN11_EN
                  (NUCODEGEN_GPIO_PE_PIN11_SLEW << GPIO_SLEWCTL_HSREN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN12_EN
                  (NUCODEGEN_GPIO_PE_PIN12_SLEW << GPIO_SLEWCTL_HSREN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN13_EN
                  (NUCODEGEN_GPIO_PE_PIN13_SLEW << GPIO_SLEWCTL_HSREN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN14_EN
                  (NUCODEGEN_GPIO_PE_PIN14_SLEW << GPIO_SLEWCTL_HSREN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN15_EN
                  (NUCODEGEN_GPIO_PE_PIN15_SLEW << GPIO_SLEWCTL_HSREN15_Pos) |
#endif
                  u32RegDefault;

    //GPIO_PE pull-up or pull-down
    PE->PUSEL =
#if NUCODEGEN_GPIO_PE_PIN0_EN
                (NUCODEGEN_GPIO_PE_PIN0_PUSEL << GPIO_PUSEL_PUSEL0_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN1_EN
                (NUCODEGEN_GPIO_PE_PIN1_PUSEL << GPIO_PUSEL_PUSEL1_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN2_EN
                (NUCODEGEN_GPIO_PE_PIN2_PUSEL << GPIO_PUSEL_PUSEL2_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN3_EN
                (NUCODEGEN_GPIO_PE_PIN3_PUSEL << GPIO_PUSEL_PUSEL3_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN4_EN
                (NUCODEGEN_GPIO_PE_PIN4_PUSEL << GPIO_PUSEL_PUSEL4_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN5_EN
                (NUCODEGEN_GPIO_PE_PIN5_PUSEL << GPIO_PUSEL_PUSEL5_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN6_EN
                (NUCODEGEN_GPIO_PE_PIN6_PUSEL << GPIO_PUSEL_PUSEL6_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN7_EN
                (NUCODEGEN_GPIO_PE_PIN7_PUSEL << GPIO_PUSEL_PUSEL7_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN8_EN
                (NUCODEGEN_GPIO_PE_PIN8_PUSEL << GPIO_PUSEL_PUSEL8_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN9_EN
                (NUCODEGEN_GPIO_PE_PIN9_PUSEL << GPIO_PUSEL_PUSEL9_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN10_EN
                (NUCODEGEN_GPIO_PE_PIN10_PUSEL << GPIO_PUSEL_PUSEL10_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN11_EN
                (NUCODEGEN_GPIO_PE_PIN11_PUSEL << GPIO_PUSEL_PUSEL11_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN12_EN
                (NUCODEGEN_GPIO_PE_PIN12_PUSEL << GPIO_PUSEL_PUSEL12_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN13_EN
                (NUCODEGEN_GPIO_PE_PIN13_PUSEL << GPIO_PUSEL_PUSEL13_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN14_EN
                (NUCODEGEN_GPIO_PE_PIN14_PUSEL << GPIO_PUSEL_PUSEL14_Pos) |
#endif
#if NUCODEGEN_GPIO_PE_PIN15_EN
                (NUCODEGEN_GPIO_PE_PIN15_PUSEL << GPIO_PUSEL_PUSEL15_Pos) |
#endif
                u32RegDefault;

#if(NUCODEGEN_GPIO_PE_CLR_DB_ICLKON)
    GPIO_CLR_DEBOUNCE_ICLKON(PE);
#endif

#if(NUCODEGEN_GPIO_PE_INT)
    NVIC_EnableIRQ(GPE_IRQn);
#endif
#endif //NUCODEGEN_GPIO_PE

#if(NUCODEGEN_GPIO_PF)
    //GPIO_PF mode
    PF->MODE =
#if NUCODEGEN_GPIO_PF_PIN0_EN
        (NUCODEGEN_GPIO_PF_PIN0_MODE << GPIO_MODE_MODE0_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN1_EN
        (NUCODEGEN_GPIO_PF_PIN1_MODE << GPIO_MODE_MODE1_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN2_EN
        (NUCODEGEN_GPIO_PF_PIN2_MODE << GPIO_MODE_MODE2_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN3_EN
        (NUCODEGEN_GPIO_PF_PIN3_MODE << GPIO_MODE_MODE3_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN4_EN
        (NUCODEGEN_GPIO_PF_PIN4_MODE << GPIO_MODE_MODE4_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN5_EN
        (NUCODEGEN_GPIO_PF_PIN5_MODE << GPIO_MODE_MODE5_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN6_EN
        (NUCODEGEN_GPIO_PF_PIN6_MODE << GPIO_MODE_MODE6_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN7_EN
        (NUCODEGEN_GPIO_PF_PIN7_MODE << GPIO_MODE_MODE7_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN8_EN
        (NUCODEGEN_GPIO_PF_PIN8_MODE << GPIO_MODE_MODE8_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN9_EN
        (NUCODEGEN_GPIO_PF_PIN9_MODE << GPIO_MODE_MODE9_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN10_EN
        (NUCODEGEN_GPIO_PF_PIN10_MODE << GPIO_MODE_MODE10_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN11_EN
        (NUCODEGEN_GPIO_PF_PIN11_MODE << GPIO_MODE_MODE11_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN12_EN
        (NUCODEGEN_GPIO_PF_PIN12_MODE << GPIO_MODE_MODE12_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN13_EN
        (NUCODEGEN_GPIO_PF_PIN13_MODE << GPIO_MODE_MODE13_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN14_EN
        (NUCODEGEN_GPIO_PF_PIN14_MODE << GPIO_MODE_MODE14_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN15_EN
        (NUCODEGEN_GPIO_PF_PIN15_MODE << GPIO_MODE_MODE15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PF disable digital input path
    PF->DINOFF =
#if NUCODEGEN_GPIO_PF_PIN0_EN
        (NUCODEGEN_GPIO_PF_PIN0_DINOFF << GPIO_DINOFF_DINOFF0_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN1_EN
        (NUCODEGEN_GPIO_PF_PIN1_DINOFF << GPIO_DINOFF_DINOFF1_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN2_EN
        (NUCODEGEN_GPIO_PF_PIN2_DINOFF << GPIO_DINOFF_DINOFF2_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN3_EN
        (NUCODEGEN_GPIO_PF_PIN3_DINOFF << GPIO_DINOFF_DINOFF3_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN4_EN
        (NUCODEGEN_GPIO_PF_PIN4_DINOFF << GPIO_DINOFF_DINOFF4_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN5_EN
        (NUCODEGEN_GPIO_PF_PIN5_DINOFF << GPIO_DINOFF_DINOFF5_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN6_EN
        (NUCODEGEN_GPIO_PF_PIN6_DINOFF << GPIO_DINOFF_DINOFF6_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN7_EN
        (NUCODEGEN_GPIO_PF_PIN7_DINOFF << GPIO_DINOFF_DINOFF7_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN8_EN
        (NUCODEGEN_GPIO_PF_PIN8_DINOFF << GPIO_DINOFF_DINOFF8_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN9_EN
        (NUCODEGEN_GPIO_PF_PIN9_DINOFF << GPIO_DINOFF_DINOFF9_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN10_EN
        (NUCODEGEN_GPIO_PF_PIN10_DINOFF << GPIO_DINOFF_DINOFF10_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN11_EN
        (NUCODEGEN_GPIO_PF_PIN11_DINOFF << GPIO_DINOFF_DINOFF11_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN12_EN
        (NUCODEGEN_GPIO_PF_PIN12_DINOFF << GPIO_DINOFF_DINOFF12_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN13_EN
        (NUCODEGEN_GPIO_PF_PIN13_DINOFF << GPIO_DINOFF_DINOFF13_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN14_EN
        (NUCODEGEN_GPIO_PF_PIN14_DINOFF << GPIO_DINOFF_DINOFF14_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN15_EN
        (NUCODEGEN_GPIO_PF_PIN15_DINOFF << GPIO_DINOFF_DINOFF15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PF out data
    PF->DOUT =
#if NUCODEGEN_GPIO_PF_PIN0_EN
        (NUCODEGEN_GPIO_PF_PIN0_DOUT << GPIO_DOUT_DOUT0_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN1_EN
        (NUCODEGEN_GPIO_PF_PIN1_DOUT << GPIO_DOUT_DOUT1_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN2_EN
        (NUCODEGEN_GPIO_PF_PIN2_DOUT << GPIO_DOUT_DOUT2_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN3_EN
        (NUCODEGEN_GPIO_PF_PIN3_DOUT << GPIO_DOUT_DOUT3_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN4_EN
        (NUCODEGEN_GPIO_PF_PIN4_DOUT << GPIO_DOUT_DOUT4_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN5_EN
        (NUCODEGEN_GPIO_PF_PIN5_DOUT << GPIO_DOUT_DOUT5_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN6_EN
        (NUCODEGEN_GPIO_PF_PIN6_DOUT << GPIO_DOUT_DOUT6_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN7_EN
        (NUCODEGEN_GPIO_PF_PIN7_DOUT << GPIO_DOUT_DOUT7_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN8_EN
        (NUCODEGEN_GPIO_PF_PIN8_DOUT << GPIO_DOUT_DOUT8_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN9_EN
        (NUCODEGEN_GPIO_PF_PIN9_DOUT << GPIO_DOUT_DOUT9_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN10_EN
        (NUCODEGEN_GPIO_PF_PIN10_DOUT << GPIO_DOUT_DOUT10_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN11_EN
        (NUCODEGEN_GPIO_PF_PIN11_DOUT << GPIO_DOUT_DOUT11_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN12_EN
        (NUCODEGEN_GPIO_PF_PIN12_DOUT << GPIO_DOUT_DOUT12_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN13_EN
        (NUCODEGEN_GPIO_PF_PIN13_DOUT << GPIO_DOUT_DOUT13_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN14_EN
        (NUCODEGEN_GPIO_PF_PIN14_DOUT << GPIO_DOUT_DOUT14_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN15_EN
        (NUCODEGEN_GPIO_PF_PIN15_DOUT << GPIO_DOUT_DOUT15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PF DOUT mask
    PF->DATMSK =
#if NUCODEGEN_GPIO_PF_PIN0_EN
        (NUCODEGEN_GPIO_PF_PIN0_DATMSK << GPIO_DATMSK_DATMSK0_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN1_EN
        (NUCODEGEN_GPIO_PF_PIN1_DATMSK << GPIO_DATMSK_DATMSK1_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN2_EN
        (NUCODEGEN_GPIO_PF_PIN2_DATMSK << GPIO_DATMSK_DATMSK2_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN3_EN
        (NUCODEGEN_GPIO_PF_PIN3_DATMSK << GPIO_DATMSK_DATMSK3_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN4_EN
        (NUCODEGEN_GPIO_PF_PIN4_DATMSK << GPIO_DATMSK_DATMSK4_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN5_EN
        (NUCODEGEN_GPIO_PF_PIN5_DATMSK << GPIO_DATMSK_DATMSK5_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN6_EN
        (NUCODEGEN_GPIO_PF_PIN6_DATMSK << GPIO_DATMSK_DATMSK6_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN7_EN
        (NUCODEGEN_GPIO_PF_PIN7_DATMSK << GPIO_DATMSK_DATMSK7_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN8_EN
        (NUCODEGEN_GPIO_PF_PIN8_DATMSK << GPIO_DATMSK_DATMSK8_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN9_EN
        (NUCODEGEN_GPIO_PF_PIN9_DATMSK << GPIO_DATMSK_DATMSK9_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN10_EN
        (NUCODEGEN_GPIO_PF_PIN10_DATMSK << GPIO_DATMSK_DATMSK10_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN11_EN
        (NUCODEGEN_GPIO_PF_PIN11_DATMSK << GPIO_DATMSK_DATMSK11_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN12_EN
        (NUCODEGEN_GPIO_PF_PIN12_DATMSK << GPIO_DATMSK_DATMSK12_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN13_EN
        (NUCODEGEN_GPIO_PF_PIN13_DATMSK << GPIO_DATMSK_DATMSK13_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN14_EN
        (NUCODEGEN_GPIO_PF_PIN14_DATMSK << GPIO_DATMSK_DATMSK14_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN15_EN
        (NUCODEGEN_GPIO_PF_PIN15_DATMSK << GPIO_DATMSK_DATMSK15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PF enable de-bounce
    PF->DBEN =
#if NUCODEGEN_GPIO_PF_PIN0_EN
        (NUCODEGEN_GPIO_PF_PIN0_DBEN << GPIO_DBEN_DBEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN1_EN
        (NUCODEGEN_GPIO_PF_PIN1_DBEN << GPIO_DBEN_DBEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN2_EN
        (NUCODEGEN_GPIO_PF_PIN2_DBEN << GPIO_DBEN_DBEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN3_EN
        (NUCODEGEN_GPIO_PF_PIN3_DBEN << GPIO_DBEN_DBEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN4_EN
        (NUCODEGEN_GPIO_PF_PIN4_DBEN << GPIO_DBEN_DBEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN5_EN
        (NUCODEGEN_GPIO_PF_PIN5_DBEN << GPIO_DBEN_DBEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN6_EN
        (NUCODEGEN_GPIO_PF_PIN6_DBEN << GPIO_DBEN_DBEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN7_EN
        (NUCODEGEN_GPIO_PF_PIN7_DBEN << GPIO_DBEN_DBEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN8_EN
        (NUCODEGEN_GPIO_PF_PIN8_DBEN << GPIO_DBEN_DBEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN9_EN
        (NUCODEGEN_GPIO_PF_PIN9_DBEN << GPIO_DBEN_DBEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN10_EN
        (NUCODEGEN_GPIO_PF_PIN10_DBEN << GPIO_DBEN_DBEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN11_EN
        (NUCODEGEN_GPIO_PF_PIN11_DBEN << GPIO_DBEN_DBEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN12_EN
        (NUCODEGEN_GPIO_PF_PIN12_DBEN << GPIO_DBEN_DBEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN13_EN
        (NUCODEGEN_GPIO_PF_PIN13_DBEN << GPIO_DBEN_DBEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN14_EN
        (NUCODEGEN_GPIO_PF_PIN14_DBEN << GPIO_DBEN_DBEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN15_EN
        (NUCODEGEN_GPIO_PF_PIN15_DBEN << GPIO_DBEN_DBEN15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PF edge or level interrupt
    PF->INTTYPE =
#if NUCODEGEN_GPIO_PF_PIN0_EN
        (NUCODEGEN_GPIO_PF_PIN0_INTTYPE << GPIO_INTTYPE_TYPE0_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN1_EN
        (NUCODEGEN_GPIO_PF_PIN1_INTTYPE << GPIO_INTTYPE_TYPE1_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN2_EN
        (NUCODEGEN_GPIO_PF_PIN2_INTTYPE << GPIO_INTTYPE_TYPE2_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN3_EN
        (NUCODEGEN_GPIO_PF_PIN3_INTTYPE << GPIO_INTTYPE_TYPE3_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN4_EN
        (NUCODEGEN_GPIO_PF_PIN4_INTTYPE << GPIO_INTTYPE_TYPE4_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN5_EN
        (NUCODEGEN_GPIO_PF_PIN5_INTTYPE << GPIO_INTTYPE_TYPE5_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN6_EN
        (NUCODEGEN_GPIO_PF_PIN6_INTTYPE << GPIO_INTTYPE_TYPE6_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN7_EN
        (NUCODEGEN_GPIO_PF_PIN7_INTTYPE << GPIO_INTTYPE_TYPE7_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN8_EN
        (NUCODEGEN_GPIO_PF_PIN8_INTTYPE << GPIO_INTTYPE_TYPE8_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN9_EN
        (NUCODEGEN_GPIO_PF_PIN9_INTTYPE << GPIO_INTTYPE_TYPE9_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN10_EN
        (NUCODEGEN_GPIO_PF_PIN10_INTTYPE << GPIO_INTTYPE_TYPE10_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN11_EN
        (NUCODEGEN_GPIO_PF_PIN11_INTTYPE << GPIO_INTTYPE_TYPE11_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN12_EN
        (NUCODEGEN_GPIO_PF_PIN12_INTTYPE << GPIO_INTTYPE_TYPE12_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN13_EN
        (NUCODEGEN_GPIO_PF_PIN13_INTTYPE << GPIO_INTTYPE_TYPE13_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN14_EN
        (NUCODEGEN_GPIO_PF_PIN14_INTTYPE << GPIO_INTTYPE_TYPE14_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN15_EN
        (NUCODEGEN_GPIO_PF_PIN15_INTTYPE << GPIO_INTTYPE_TYPE15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PF enable falling(edge) or low(level) interrupt
    PF->INTEN =
#if NUCODEGEN_GPIO_PF_PIN0_EN
        (NUCODEGEN_GPIO_PF_PIN0_FLIEN << GPIO_INTEN_FLIEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN1_EN
        (NUCODEGEN_GPIO_PF_PIN1_FLIEN << GPIO_INTEN_FLIEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN2_EN
        (NUCODEGEN_GPIO_PF_PIN2_FLIEN << GPIO_INTEN_FLIEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN3_EN
        (NUCODEGEN_GPIO_PF_PIN3_FLIEN << GPIO_INTEN_FLIEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN4_EN
        (NUCODEGEN_GPIO_PF_PIN4_FLIEN << GPIO_INTEN_FLIEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN5_EN
        (NUCODEGEN_GPIO_PF_PIN5_FLIEN << GPIO_INTEN_FLIEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN6_EN
        (NUCODEGEN_GPIO_PF_PIN6_FLIEN << GPIO_INTEN_FLIEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN7_EN
        (NUCODEGEN_GPIO_PF_PIN7_FLIEN << GPIO_INTEN_FLIEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN8_EN
        (NUCODEGEN_GPIO_PF_PIN8_FLIEN << GPIO_INTEN_FLIEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN9_EN
        (NUCODEGEN_GPIO_PF_PIN9_FLIEN << GPIO_INTEN_FLIEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN10_EN
        (NUCODEGEN_GPIO_PF_PIN10_FLIEN << GPIO_INTEN_FLIEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN11_EN
        (NUCODEGEN_GPIO_PF_PIN11_FLIEN << GPIO_INTEN_FLIEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN12_EN
        (NUCODEGEN_GPIO_PF_PIN12_FLIEN << GPIO_INTEN_FLIEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN13_EN
        (NUCODEGEN_GPIO_PF_PIN13_FLIEN << GPIO_INTEN_FLIEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN14_EN
        (NUCODEGEN_GPIO_PF_PIN14_FLIEN << GPIO_INTEN_FLIEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN15_EN
        (NUCODEGEN_GPIO_PF_PIN15_FLIEN << GPIO_INTEN_FLIEN15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PF enable rising(edge) or high(level) interrupt
    PF->INTEN |=
#if NUCODEGEN_GPIO_PF_PIN0_EN
        (NUCODEGEN_GPIO_PF_PIN0_RHIEN << GPIO_INTEN_RHIEN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN1_EN
        (NUCODEGEN_GPIO_PF_PIN1_RHIEN << GPIO_INTEN_RHIEN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN2_EN
        (NUCODEGEN_GPIO_PF_PIN2_RHIEN << GPIO_INTEN_RHIEN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN3_EN
        (NUCODEGEN_GPIO_PF_PIN3_RHIEN << GPIO_INTEN_RHIEN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN4_EN
        (NUCODEGEN_GPIO_PF_PIN4_RHIEN << GPIO_INTEN_RHIEN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN5_EN
        (NUCODEGEN_GPIO_PF_PIN5_RHIEN << GPIO_INTEN_RHIEN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN6_EN
        (NUCODEGEN_GPIO_PF_PIN6_RHIEN << GPIO_INTEN_RHIEN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN7_EN
        (NUCODEGEN_GPIO_PF_PIN7_RHIEN << GPIO_INTEN_RHIEN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN8_EN
        (NUCODEGEN_GPIO_PF_PIN8_RHIEN << GPIO_INTEN_RHIEN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN9_EN
        (NUCODEGEN_GPIO_PF_PIN9_RHIEN << GPIO_INTEN_RHIEN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN10_EN
        (NUCODEGEN_GPIO_PF_PIN10_RHIEN << GPIO_INTEN_RHIEN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN11_EN
        (NUCODEGEN_GPIO_PF_PIN11_RHIEN << GPIO_INTEN_RHIEN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN12_EN
        (NUCODEGEN_GPIO_PF_PIN12_RHIEN << GPIO_INTEN_RHIEN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN13_EN
        (NUCODEGEN_GPIO_PF_PIN13_RHIEN << GPIO_INTEN_RHIEN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN14_EN
        (NUCODEGEN_GPIO_PF_PIN14_RHIEN << GPIO_INTEN_RHIEN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN15_EN
        (NUCODEGEN_GPIO_PF_PIN15_RHIEN << GPIO_INTEN_RHIEN15_Pos) |
#endif
        u32RegDefault;

    //GPIO_PF slew rate
    PF->SLEWCTL =
#if NUCODEGEN_GPIO_PF_PIN0_EN
                  (NUCODEGEN_GPIO_PF_PIN0_SLEW << GPIO_SLEWCTL_HSREN0_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN1_EN
                  (NUCODEGEN_GPIO_PF_PIN1_SLEW << GPIO_SLEWCTL_HSREN1_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN2_EN
                  (NUCODEGEN_GPIO_PF_PIN2_SLEW << GPIO_SLEWCTL_HSREN2_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN3_EN
                  (NUCODEGEN_GPIO_PF_PIN3_SLEW << GPIO_SLEWCTL_HSREN3_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN4_EN
                  (NUCODEGEN_GPIO_PF_PIN4_SLEW << GPIO_SLEWCTL_HSREN4_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN5_EN
                  (NUCODEGEN_GPIO_PF_PIN5_SLEW << GPIO_SLEWCTL_HSREN5_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN6_EN
                  (NUCODEGEN_GPIO_PF_PIN6_SLEW << GPIO_SLEWCTL_HSREN6_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN7_EN
                  (NUCODEGEN_GPIO_PF_PIN7_SLEW << GPIO_SLEWCTL_HSREN7_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN8_EN
                  (NUCODEGEN_GPIO_PF_PIN8_SLEW << GPIO_SLEWCTL_HSREN8_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN9_EN
                  (NUCODEGEN_GPIO_PF_PIN9_SLEW << GPIO_SLEWCTL_HSREN9_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN10_EN
                  (NUCODEGEN_GPIO_PF_PIN10_SLEW << GPIO_SLEWCTL_HSREN10_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN11_EN
                  (NUCODEGEN_GPIO_PF_PIN11_SLEW << GPIO_SLEWCTL_HSREN11_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN12_EN
                  (NUCODEGEN_GPIO_PF_PIN12_SLEW << GPIO_SLEWCTL_HSREN12_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN13_EN
                  (NUCODEGEN_GPIO_PF_PIN13_SLEW << GPIO_SLEWCTL_HSREN13_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN14_EN
                  (NUCODEGEN_GPIO_PF_PIN14_SLEW << GPIO_SLEWCTL_HSREN14_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN15_EN
                  (NUCODEGEN_GPIO_PF_PIN15_SLEW << GPIO_SLEWCTL_HSREN15_Pos) |
#endif
                  u32RegDefault;

    //GPIO_PF pull-up or pull-down
    PF->PUSEL =
#if NUCODEGEN_GPIO_PF_PIN0_EN
                (NUCODEGEN_GPIO_PF_PIN0_PUSEL << GPIO_PUSEL_PUSEL0_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN1_EN
                (NUCODEGEN_GPIO_PF_PIN1_PUSEL << GPIO_PUSEL_PUSEL1_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN2_EN
                (NUCODEGEN_GPIO_PF_PIN2_PUSEL << GPIO_PUSEL_PUSEL2_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN3_EN
                (NUCODEGEN_GPIO_PF_PIN3_PUSEL << GPIO_PUSEL_PUSEL3_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN4_EN
                (NUCODEGEN_GPIO_PF_PIN4_PUSEL << GPIO_PUSEL_PUSEL4_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN5_EN
                (NUCODEGEN_GPIO_PF_PIN5_PUSEL << GPIO_PUSEL_PUSEL5_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN6_EN
                (NUCODEGEN_GPIO_PF_PIN6_PUSEL << GPIO_PUSEL_PUSEL6_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN7_EN
                (NUCODEGEN_GPIO_PF_PIN7_PUSEL << GPIO_PUSEL_PUSEL7_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN8_EN
                (NUCODEGEN_GPIO_PF_PIN8_PUSEL << GPIO_PUSEL_PUSEL8_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN9_EN
                (NUCODEGEN_GPIO_PF_PIN9_PUSEL << GPIO_PUSEL_PUSEL9_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN10_EN
                (NUCODEGEN_GPIO_PF_PIN10_PUSEL << GPIO_PUSEL_PUSEL10_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN11_EN
                (NUCODEGEN_GPIO_PF_PIN11_PUSEL << GPIO_PUSEL_PUSEL11_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN12_EN
                (NUCODEGEN_GPIO_PF_PIN12_PUSEL << GPIO_PUSEL_PUSEL12_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN13_EN
                (NUCODEGEN_GPIO_PF_PIN13_PUSEL << GPIO_PUSEL_PUSEL13_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN14_EN
                (NUCODEGEN_GPIO_PF_PIN14_PUSEL << GPIO_PUSEL_PUSEL14_Pos) |
#endif
#if NUCODEGEN_GPIO_PF_PIN15_EN
                (NUCODEGEN_GPIO_PF_PIN15_PUSEL << GPIO_PUSEL_PUSEL15_Pos) |
#endif
                u32RegDefault;

#if(NUCODEGEN_GPIO_PF_CLR_DB_ICLKON)
    GPIO_CLR_DEBOUNCE_ICLKON(PF);
#endif
#endif //NUCODEGEN_GPIO_PF

#if (NUCODEGEN_GPIO_PA || NUCODEGEN_GPIO_PB)
#if (NUCODEGEN_GPIO_PA_INT||NUCODEGEN_GPIO_PB_INT)
	/* NVIC enable PA and PB interrupt */
    NVIC_EnableIRQ(GPAB_IRQn);
#endif
#endif

#if (NUCODEGEN_GPIO_PC || NUCODEGEN_GPIO_PD || NUCODEGEN_GPIO_PF)
#if (NUCODEGEN_GPIO_PC_INT||NUCODEGEN_GPIO_PD_INT||NUCODEGEN_GPIO_PF_INT)
	/* NVIC enable PC, PD and PF interrupt */
    NVIC_EnableIRQ(GPCDF_IRQn);
#endif
#endif

#if (NUCODEGEN_GPIO_PA || NUCODEGEN_GPIO_PB || NUCODEGEN_GPIO_PC || NUCODEGEN_GPIO_PF)
#if (NUCODEGEN_GPIO_PA_EINT0 || NUCODEGEN_GPIO_PB_EINT0)||(NUCODEGEN_GPIO_PC_EINT2 || NUCODEGEN_GPIO_PB_EINT2)||(NUCODEGEN_GPIO_PA_EINT4 || NUCODEGEN_GPIO_PB_EINT4 || NUCODEGEN_GPIO_PF_EINT4)
	/* NVIC enable EINT0, EINT2 and EINT4 interrupt */
    NVIC_EnableIRQ(EINT024_IRQn);
#endif
#endif

#if (NUCODEGEN_GPIO_PA || NUCODEGEN_GPIO_PB || NUCODEGEN_GPIO_PC || NUCODEGEN_GPIO_PD ||NUCODEGEN_GPIO_PF)
#if (NUCODEGEN_GPIO_PA_EINT1 || NUCODEGEN_GPIO_PB_EINT1 || NUCODEGEN_GPIO_PD_EINT1)||(NUCODEGEN_GPIO_PC_EINT3 || NUCODEGEN_GPIO_PB_EINT3)||(NUCODEGEN_GPIO_PD_EINT5 || NUCODEGEN_GPIO_PB_EINT5 || NUCODEGEN_GPIO_PF_EINT5)
	/* NVIC enable EINT1, EINT3 and EINT5 interrupt */
    NVIC_EnableIRQ(EINT135_IRQn);
#endif
#endif
}
#endif //NUCODEGEN_GPIO
