128 lines
2.9 KiB
C
128 lines
2.9 KiB
C
/**************************************************************************//**
|
|
*
|
|
* @copyright (C) 2019 Nuvoton Technology Corp. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Change Logs:
|
|
* Date Author Notes
|
|
* 2020-12-12 Wayne First version
|
|
*
|
|
******************************************************************************/
|
|
|
|
#include "board.h"
|
|
|
|
static void nu_pin_uart_init(void)
|
|
{
|
|
/* UART0: GPF11, GPF12 */
|
|
outpw(REG_SYS_GPF_MFPH, (inpw(REG_SYS_GPF_MFPH) & 0xfff00fff) | 0x11000);
|
|
|
|
#if !defined(BOARD_USING_LCD_ILI9341)
|
|
/* UART1: GPF9, GPF10 */
|
|
outpw(REG_SYS_GPF_MFPH, (inpw(REG_SYS_GPF_MFPH) & 0xfffff00f) | 0x00220);
|
|
#endif
|
|
}
|
|
|
|
static void nu_pin_emac_init(void)
|
|
{
|
|
/* EMAC0 */
|
|
outpw(REG_SYS_GPE_MFPL, 0x11111111);
|
|
outpw(REG_SYS_GPE_MFPH, (inpw(REG_SYS_GPE_MFPH) & ~0xFF) | 0x11);
|
|
|
|
/* EMAC1 */
|
|
// outpw(REG_SYS_GPF_MFPL, 0x11111111);
|
|
// outpw(REG_SYS_GPF_MFPH, (inpw(REG_SYS_GPF_MFPH) & ~0xFF) | 0x11);
|
|
}
|
|
|
|
static void nu_pin_sdh_init(void)
|
|
{
|
|
/* SDH1: PF[0, 6] */
|
|
outpw(REG_SYS_GPF_MFPL, (inpw(REG_SYS_GPF_MFPL) & ~0x0FFFFFFF) | 0x02222222);
|
|
}
|
|
|
|
static void nu_pin_qspi_init(void)
|
|
{
|
|
/* QSPI0: PD[2, 7] */
|
|
outpw(REG_SYS_GPD_MFPL, (inpw(REG_SYS_GPD_MFPL) & ~0xFFFFFF00) | 0x11111100);
|
|
}
|
|
|
|
static void nu_pin_spi_init(void)
|
|
{
|
|
/* SPI0: PD[8, 11] */
|
|
outpw(REG_SYS_GPD_MFPH, (inpw(REG_SYS_GPD_MFPH) & ~0x0000FFFF) | 0x00001111);
|
|
}
|
|
|
|
static void nu_pin_i2c_init(void)
|
|
{
|
|
/* I2C0: PA[0, 1] */
|
|
outpw(REG_SYS_GPA_MFPL, (inpw(REG_SYS_GPA_MFPL) & ~0x000000FF) | 0x00000033);
|
|
|
|
#if !defined(BSP_USING_ADC_TOUCH)
|
|
/* I2C2: PB5, PB7 */
|
|
outpw(REG_SYS_GPB_MFPL, (inpw(REG_SYS_GPB_MFPL) & ~0xF0F00000) | 0x20200000);
|
|
#endif
|
|
}
|
|
|
|
|
|
static void nu_pin_pwm_init(void)
|
|
{
|
|
/* PWM02, PWM03: PF[7, 8] */
|
|
outpw(REG_SYS_GPF_MFPL, (inpw(REG_SYS_GPF_MFPL) & ~0xF0000000) | 0x40000000);
|
|
outpw(REG_SYS_GPF_MFPH, (inpw(REG_SYS_GPF_MFPH) & ~0x0000000F) | 0x00000004);
|
|
}
|
|
|
|
static void nu_pin_i2s_init(void)
|
|
{
|
|
/* I2S A[2, 6] */
|
|
outpw(REG_SYS_GPA_MFPL, (inpw(REG_SYS_GPA_MFPL) & ~0x0FFFFF00) | 0x02222200);
|
|
}
|
|
|
|
static void nu_pin_can_init(void)
|
|
{
|
|
|
|
}
|
|
|
|
static void nu_pin_adc_init(void)
|
|
{
|
|
#if defined(BSP_USING_ADC_TOUCH)
|
|
GPIO_SetMode(PB, BIT4 | BIT5 | BIT6 | BIT7, GPIO_MODE_INPUT);
|
|
GPIO_DISABLE_DIGITAL_PATH(PB, BIT4 | BIT5 | BIT6 | BIT7);
|
|
#endif
|
|
}
|
|
|
|
#if defined(BSP_USING_USBD)
|
|
static void nu_pin_usbd_init(void)
|
|
{
|
|
/* USB0_VBUSVLD, PE.11 */
|
|
outpw(REG_SYS_GPE_MFPH, (inpw(REG_SYS_GPE_MFPH) & ~0x0000F000) | 0x00001000);
|
|
}
|
|
#endif
|
|
|
|
static void nu_pin_usbh_init(void)
|
|
{
|
|
}
|
|
|
|
void nu_pin_init(void)
|
|
{
|
|
nu_pin_uart_init();
|
|
nu_pin_emac_init();
|
|
nu_pin_sdh_init();
|
|
nu_pin_qspi_init();
|
|
nu_pin_spi_init();
|
|
nu_pin_i2c_init();
|
|
nu_pin_pwm_init();
|
|
nu_pin_i2s_init();
|
|
nu_pin_can_init();
|
|
nu_pin_adc_init();
|
|
#if defined(BSP_USING_USBD)
|
|
nu_pin_usbd_init();
|
|
#endif
|
|
|
|
nu_pin_usbh_init();
|
|
}
|
|
|
|
void nu_pin_deinit(void)
|
|
{
|
|
|
|
}
|