drv_soft_spi.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. * Copyright (c) 2006-2022, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2022-6-14 solar first version
  9. */
  10. #ifndef __DRV_SOFT_SPI__
  11. #define __DRV_SOFT_SPI__
  12. #include <rthw.h>
  13. #include <rtdevice.h>
  14. #include <spi-bit-ops.h>
  15. /* stm32 soft spi config */
  16. struct stm32_soft_spi_config
  17. {
  18. rt_uint8_t sck;
  19. rt_uint8_t mosi;
  20. rt_uint8_t miso;
  21. const char *bus_name;
  22. };
  23. /* stm32 soft spi dirver */
  24. struct stm32_soft_spi
  25. {
  26. struct rt_spi_bit_obj spi;
  27. struct stm32_soft_spi_config *cfg;
  28. };
  29. #ifdef BSP_USING_SOFT_SPI1
  30. #define SOFT_SPI1_BUS_CONFIG \
  31. { \
  32. .sck = BSP_S_SPI1_SCK_PIN, \
  33. .mosi = BSP_S_SPI1_MOSI_PIN, \
  34. .miso = BSP_S_SPI1_MISO_PIN, \
  35. .bus_name = "sspi1", \
  36. }
  37. #endif /* BSP_USING_SOFT_SPI1 */
  38. #ifdef BSP_USING_SOFT_SPI2
  39. #define SOFT_SPI2_BUS_CONFIG \
  40. { \
  41. .sck = BSP_S_SPI2_SCK_PIN, \
  42. .mosi = BSP_S_SPI2_MOSI_PIN, \
  43. .miso = BSP_S_SPI2_MISO_PIN, \
  44. .bus_name = "sspi2", \
  45. }
  46. #endif /* BSP_USING_SOFT_SPI2 */
  47. rt_err_t rt_hw_soft_spi_device_attach(const char *bus_name, const char *device_name, const char *pin_name);
  48. int rt_soft_spi_init(void);
  49. #endif /* __DRV_SOFT_SPI__ */