nu_pin_init.c 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /**************************************************************************//**
  2. *
  3. * @copyright (C) 2019 Nuvoton Technology Corp. All rights reserved.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0
  6. *
  7. * Change Logs:
  8. * Date Author Notes
  9. * 2020-12-12 Wayne First version
  10. *
  11. ******************************************************************************/
  12. #include "board.h"
  13. static void nu_pin_uart_init(void)
  14. {
  15. /* UART0: GPF11, GPF12 */
  16. outpw(REG_SYS_GPF_MFPH, (inpw(REG_SYS_GPF_MFPH) & 0xFFF00FFF) | 0x00011000);
  17. /* UART4: GPC9, GPC10 */
  18. outpw(REG_SYS_GPC_MFPH, (inpw(REG_SYS_GPC_MFPH) & 0xFFFFF00F) | 0x00000770);
  19. /* UART8: GPC12, GPC13, GPC14 */
  20. outpw(REG_SYS_GPC_MFPH, (inpw(REG_SYS_GPC_MFPH) & 0xF000FFFF) | 0x07770000);
  21. }
  22. static void nu_pin_emac_init(void)
  23. {
  24. /* EMAC1 */
  25. outpw(REG_SYS_GPF_MFPL, 0x11111111);
  26. outpw(REG_SYS_GPF_MFPH, (inpw(REG_SYS_GPF_MFPH) & 0xFFFFFF00) | 0x00000011);
  27. }
  28. static void nu_pin_qspi_init(void)
  29. {
  30. /* QSPI0: PD[2, 5] */
  31. outpw(REG_SYS_GPD_MFPL, (inpw(REG_SYS_GPD_MFPL) & 0xFF0000FF) | 0x00111100);
  32. }
  33. static void nu_pin_spi_init(void)
  34. {
  35. /* SPI0: PC[4, 8] */
  36. outpw(REG_SYS_GPC_MFPL, (inpw(REG_SYS_GPC_MFPL) & 0xF000FFFF) | 0x05560000);
  37. outpw(REG_SYS_GPC_MFPH, (inpw(REG_SYS_GPC_MFPH) & 0xFFFFFFF0) | 0x00000005);
  38. }
  39. static void nu_pin_i2c_init(void)
  40. {
  41. /* I2C1: PB4, PB6 */
  42. outpw(REG_SYS_GPB_MFPL, (inpw(REG_SYS_GPB_MFPL) & 0xF0F0FFFF) | 0x02020000);
  43. }
  44. static void nu_pin_can_init(void)
  45. {
  46. /* CAN3: PA0, PA1 */
  47. outpw(REG_SYS_GPA_MFPL, (inpw(REG_SYS_GPA_MFPL) & 0xFFFFFF00) | 0x00000077);
  48. }
  49. static void nu_pin_usbd_init(void)
  50. {
  51. /* USB0_VBUSVLD, PE.11 */
  52. outpw(REG_SYS_GPE_MFPH, (inpw(REG_SYS_GPE_MFPH) & 0xFFFF0FFF) | 0x00001000);
  53. }
  54. static void nu_pin_usbh_init(void)
  55. {
  56. }
  57. void nu_pin_init(void)
  58. {
  59. nu_pin_uart_init();
  60. nu_pin_emac_init();
  61. nu_pin_qspi_init();
  62. nu_pin_spi_init();
  63. nu_pin_i2c_init();
  64. nu_pin_can_init();
  65. nu_pin_usbd_init();
  66. nu_pin_usbh_init();
  67. }
  68. void nu_pin_deinit(void)
  69. {
  70. }