1
0

ab32vg1_hal_msp.c 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. /*
  2. * Copyright (c) 2020-2021, BLUETRUM Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #include <rtthread.h>
  7. #include "ab32vg1_hal.h"
  8. void hal_uart_mspinit(struct uart_handle *huart)
  9. {
  10. struct gpio_init gpio_init;
  11. if (huart->instance == UART0_BASE) {
  12. gpio_init.pin = GPIO_PIN_7;
  13. gpio_init.pull = GPIO_PULLUP;
  14. gpio_init.dir = GPIO_DIR_INPUT;
  15. gpio_init.de = GPIO_DIGITAL;
  16. gpio_init.alternate = GPIO_AF_MAP_Gx(UT0TXMAP_AF, GPIO_AF_G1) | UT0RXMAP_TX;
  17. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON0 | UT0TXMAP_AF;
  18. hal_gpio_init(GPIOA_BASE, &gpio_init);
  19. } else if (huart->instance == UART1_BASE) {
  20. gpio_init.pin = GPIO_PIN_4;
  21. gpio_init.dir = GPIO_DIR_OUTPUT;
  22. gpio_init.de = GPIO_DIGITAL;
  23. gpio_init.alternate = GPIO_AF_MAP_Gx(UT1TXMAP_AF, GPIO_AF_G2);
  24. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON0 | UT1TXMAP_AF;
  25. hal_gpio_init(GPIOA_BASE, &gpio_init);
  26. gpio_init.pin = GPIO_PIN_3;
  27. gpio_init.pull = GPIO_PULLUP;
  28. gpio_init.dir = GPIO_DIR_INPUT;
  29. gpio_init.de = GPIO_DIGITAL;
  30. gpio_init.alternate = GPIO_AF_MAP_Gx(UT1RXMAP_AF, GPIO_AF_G2);
  31. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON0 | UT1RXMAP_AF;
  32. hal_gpio_init(GPIOA_BASE, &gpio_init);
  33. /* Interrupt */
  34. } else if (huart->instance == UART2_BASE) {
  35. gpio_init.pin = GPIO_PIN_2;
  36. gpio_init.dir = GPIO_DIR_OUTPUT;
  37. gpio_init.de = GPIO_DIGITAL;
  38. gpio_init.alternate = GPIO_AF_MAP_Gx(UT2TXMAP_AF, GPIO_AF_G2);
  39. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON1 | UT2TXMAP_AF;
  40. hal_gpio_init(GPIOB_BASE, &gpio_init);
  41. gpio_init.pin = GPIO_PIN_1;
  42. gpio_init.pull = GPIO_PULLUP;
  43. gpio_init.dir = GPIO_DIR_INPUT;
  44. gpio_init.de = GPIO_DIGITAL;
  45. gpio_init.alternate = GPIO_AF_MAP_Gx(UT2RXMAP_AF, GPIO_AF_G2);
  46. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON1 | UT2RXMAP_AF;
  47. hal_gpio_init(GPIOB_BASE, &gpio_init);
  48. /* Interrupt */
  49. }
  50. }
  51. #ifdef HAL_DAC_MODULE_ENABLED
  52. void hal_dac_mspinit(struct dac_handle *hdac)
  53. {
  54. }
  55. #endif
  56. #ifdef HAL_SD_MODULE_ENABLED
  57. void hal_sd_mspinit(sd_handle_t hsd)
  58. {
  59. struct gpio_init gpio_init;
  60. gpio_init.pin = GPIO_PIN_0 | GPIO_PIN_2;
  61. gpio_init.pull = GPIO_PULLUP;
  62. gpio_init.dir = GPIO_DIR_INPUT;
  63. gpio_init.de = GPIO_DIGITAL;
  64. gpio_init.alternate = GPIO_AF_MAP_Gx(SD0MAP_AF, GPIO_AF_G2);
  65. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON0 | SD0MAP_AF;
  66. hal_gpio_init(GPIOB_BASE, &gpio_init);
  67. gpio_init.pin = GPIO_PIN_1;
  68. gpio_init.dir = GPIO_DIR_OUTPUT;
  69. gpio_init.alternate = GPIO_AF_MAP_Gx(SD0MAP_AF, GPIO_AF_G2);
  70. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON0 | SD0MAP_AF;
  71. hal_gpio_init(GPIOB_BASE, &gpio_init);
  72. }
  73. #endif
  74. void hal_pwm_mspinit(void)
  75. {
  76. struct gpio_init gpio_init = {0};
  77. gpio_init.dir = GPIO_DIR_OUTPUT;
  78. gpio_init.de = GPIO_DIGITAL;
  79. #ifdef BSP_USING_T3_PWM0
  80. gpio_init.pin = GPIO_PIN_0;
  81. gpio_init.alternate = GPIO_AF_MAP_Gx(TMR3MAP_AF, GPIO_AF_G1);
  82. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON2;
  83. hal_gpio_init(GPIOB_BASE, &gpio_init);
  84. #endif
  85. #ifdef BSP_USING_T4_PWM1
  86. gpio_init.pin = GPIO_PIN_6;
  87. gpio_init.alternate = GPIO_AF_MAP_Gx(TMR4MAP_AF, GPIO_AF_G1);
  88. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON2;
  89. hal_gpio_init(GPIOA_BASE, &gpio_init);
  90. #endif
  91. #ifdef BSP_USING_T5_PWM0
  92. gpio_init.pin = GPIO_PIN_1;
  93. gpio_init.alternate = GPIO_AF_MAP_Gx(TMR5MAP_AF, GPIO_AF_G1);
  94. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON2;
  95. hal_gpio_init(GPIOE_BASE, &gpio_init);
  96. #endif
  97. #ifdef BSP_USING_LPWM0_G1
  98. gpio_init.pin = GPIO_PIN_4;
  99. gpio_init.alternate = GPIO_AF_MAP_Gx(LPWM0MAP_AF, GPIO_AF_G1);
  100. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON1;
  101. hal_gpio_init(GPIOE_BASE, &gpio_init);
  102. #endif
  103. #ifdef BSP_USING_LPWM1_G3
  104. gpio_init.pin = GPIO_PIN_1;
  105. gpio_init.alternate = GPIO_AF_MAP_Gx(LPWM1MAP_AF, GPIO_AF_G3);
  106. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON1;
  107. hal_gpio_init(GPIOA_BASE, &gpio_init);
  108. #endif
  109. #ifdef BSP_USING_LPWM2_G2
  110. gpio_init.pin = GPIO_PIN_0;
  111. gpio_init.alternate = GPIO_AF_MAP_Gx(LPWM2MAP_AF, GPIO_AF_G2);
  112. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON1;
  113. hal_gpio_init(GPIOE_BASE, &gpio_init);
  114. #endif
  115. #ifdef BSP_USING_LPWM2_G3
  116. gpio_init.pin = GPIO_PIN_2;
  117. gpio_init.alternate = GPIO_AF_MAP_Gx(LPWM2MAP_AF, GPIO_AF_G3);
  118. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON1;
  119. hal_gpio_init(GPIOA_BASE, &gpio_init);
  120. #endif
  121. }