stm32_gpio.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. * Copyright (c) 2015-2022, STMicroelectronics - All Rights Reserved
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. */
  6. #ifndef STM32_GPIO_H
  7. #define STM32_GPIO_H
  8. #include <lib/utils_def.h>
  9. #define GPIO_MODE_OFFSET U(0x00)
  10. #define GPIO_TYPE_OFFSET U(0x04)
  11. #define GPIO_SPEED_OFFSET U(0x08)
  12. #define GPIO_PUPD_OFFSET U(0x0C)
  13. #define GPIO_OD_OFFSET U(0x14)
  14. #define GPIO_BSRR_OFFSET U(0x18)
  15. #define GPIO_AFRL_OFFSET U(0x20)
  16. #define GPIO_AFRH_OFFSET U(0x24)
  17. #define GPIO_SECR_OFFSET U(0x30)
  18. #define GPIO_ALT_LOWER_LIMIT U(0x08)
  19. #define GPIO_PIN_(_x) U(_x)
  20. #define GPIO_PIN_MAX GPIO_PIN_(15)
  21. #define GPIO_ALTERNATE_(_x) U(_x)
  22. #define GPIO_ALTERNATE_MASK U(0x0F)
  23. #define GPIO_MODE_INPUT U(0x00)
  24. #define GPIO_MODE_OUTPUT U(0x01)
  25. #define GPIO_MODE_ALTERNATE U(0x02)
  26. #define GPIO_MODE_ANALOG U(0x03)
  27. #define GPIO_MODE_MASK U(0x03)
  28. #define GPIO_TYPE_PUSH_PULL U(0x00)
  29. #define GPIO_TYPE_OPEN_DRAIN U(0x01)
  30. #define GPIO_TYPE_MASK U(0x01)
  31. #define GPIO_SPEED_LOW U(0x00)
  32. #define GPIO_SPEED_MEDIUM U(0x01)
  33. #define GPIO_SPEED_HIGH U(0x02)
  34. #define GPIO_SPEED_VERY_HIGH U(0x03)
  35. #define GPIO_SPEED_MASK U(0x03)
  36. #define GPIO_NO_PULL U(0x00)
  37. #define GPIO_PULL_UP U(0x01)
  38. #define GPIO_PULL_DOWN U(0x02)
  39. #define GPIO_PULL_MASK U(0x03)
  40. #define GPIO_OD_OUTPUT_LOW U(0x00)
  41. #define GPIO_OD_OUTPUT_HIGH U(0x01)
  42. #define GPIO_OD_MASK U(0x01)
  43. #ifndef __ASSEMBLER__
  44. #include <stdint.h>
  45. int dt_set_pinctrl_config(int node);
  46. void set_gpio_secure_cfg(uint32_t bank, uint32_t pin, bool secure);
  47. void set_gpio_reset_cfg(uint32_t bank, uint32_t pin);
  48. #endif /*__ASSEMBLER__*/
  49. #endif /* STM32_GPIO_H */