1
0

drv_soft_spi.h 1.6 KB

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