ab32vg1_hal_msp.c 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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. }
  35. }
  36. #ifdef HAL_DAC_MODULE_ENABLED
  37. void hal_dac_mspinit(struct dac_handle *hdac)
  38. {
  39. }
  40. #endif
  41. #ifdef HAL_SD_MODULE_ENABLED
  42. void hal_sd_mspinit(sd_handle_t hsd)
  43. {
  44. struct gpio_init gpio_init;
  45. gpio_init.pin = GPIO_PIN_0 | GPIO_PIN_2;
  46. gpio_init.pull = GPIO_PULLUP;
  47. gpio_init.dir = GPIO_DIR_INPUT;
  48. gpio_init.de = GPIO_DIGITAL;
  49. gpio_init.alternate = GPIO_AF_MAP_Gx(SD0MAP_AF, GPIO_AF_G2);
  50. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON0 | SD0MAP_AF;
  51. hal_gpio_init(GPIOB_BASE, &gpio_init);
  52. gpio_init.pin = GPIO_PIN_1;
  53. gpio_init.dir = GPIO_DIR_OUTPUT;
  54. gpio_init.alternate = GPIO_AF_MAP_Gx(SD0MAP_AF, GPIO_AF_G2);
  55. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON0 | SD0MAP_AF;
  56. hal_gpio_init(GPIOB_BASE, &gpio_init);
  57. }
  58. #endif
  59. void hal_pwm_mspinit(void)
  60. {
  61. struct gpio_init gpio_init = {0};
  62. gpio_init.dir = GPIO_DIR_OUTPUT;
  63. gpio_init.de = GPIO_DIGITAL;
  64. #ifdef BSP_USING_T3_PWM0
  65. gpio_init.pin = GPIO_PIN_0;
  66. gpio_init.alternate = GPIO_AF_MAP_Gx(TMR3MAP_AF, GPIO_AF_G1);
  67. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON2;
  68. hal_gpio_init(GPIOB_BASE, &gpio_init);
  69. #endif
  70. #ifdef BSP_USING_T4_PWM1
  71. gpio_init.pin = GPIO_PIN_6;
  72. gpio_init.alternate = GPIO_AF_MAP_Gx(TMR4MAP_AF, GPIO_AF_G1);
  73. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON2;
  74. hal_gpio_init(GPIOA_BASE, &gpio_init);
  75. #endif
  76. #ifdef BSP_USING_T5_PWM0
  77. gpio_init.pin = GPIO_PIN_1;
  78. gpio_init.alternate = GPIO_AF_MAP_Gx(TMR5MAP_AF, GPIO_AF_G1);
  79. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON2;
  80. hal_gpio_init(GPIOE_BASE, &gpio_init);
  81. #endif
  82. #ifdef BSP_USING_LPWM0_G1
  83. gpio_init.pin = GPIO_PIN_4;
  84. gpio_init.alternate = GPIO_AF_MAP_Gx(LPWM0MAP_AF, GPIO_AF_G1);
  85. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON1;
  86. hal_gpio_init(GPIOE_BASE, &gpio_init);
  87. #endif
  88. #ifdef BSP_USING_LPWM1_G3
  89. gpio_init.pin = GPIO_PIN_1;
  90. gpio_init.alternate = GPIO_AF_MAP_Gx(LPWM1MAP_AF, GPIO_AF_G3);
  91. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON1;
  92. hal_gpio_init(GPIOA_BASE, &gpio_init);
  93. #endif
  94. #ifdef BSP_USING_LPWM2_G2
  95. gpio_init.pin = GPIO_PIN_0;
  96. gpio_init.alternate = GPIO_AF_MAP_Gx(LPWM2MAP_AF, GPIO_AF_G2);
  97. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON1;
  98. hal_gpio_init(GPIOE_BASE, &gpio_init);
  99. #endif
  100. #ifdef BSP_USING_LPWM2_G3
  101. gpio_init.pin = GPIO_PIN_2;
  102. gpio_init.alternate = GPIO_AF_MAP_Gx(LPWM2MAP_AF, GPIO_AF_G3);
  103. gpio_init.af_con = GPIO_AFEN | GPIO_AFCON1;
  104. hal_gpio_init(GPIOA_BASE, &gpio_init);
  105. #endif
  106. }