drv_spi.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /*
  2. * Copyright (c) 2006-2025, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2021-08-23 Mr.Tiger first version
  9. */
  10. #ifndef __DRV_SPI_H__
  11. #define __DRV_SPI_H__
  12. #include <rtthread.h>
  13. #include <rtdevice.h>
  14. #include "hal_data.h"
  15. #include "board.h"
  16. #include <rthw.h>
  17. #include <drv_common.h>
  18. #include <drv_config.h>
  19. #ifdef __cplusplus
  20. extern "C" {
  21. #endif
  22. #if defined(R_SPI_H) || defined(R_SPI_API_H)
  23. struct ra_spi_handle
  24. {
  25. const char bus_name[RT_NAME_MAX];
  26. const spi_cfg_t *spi_cfg_t;
  27. #if defined(R_SPI_API_H)
  28. const spi_ctrl_t *spi_ctrl_t;
  29. #else
  30. const spi_instance_ctrl_t *spi_ctrl_t;
  31. #endif
  32. };
  33. struct ra_spi
  34. {
  35. rt_uint32_t cs_pin;
  36. struct ra_spi_handle *ra_spi_handle_t;
  37. struct rt_spi_configuration *rt_spi_cfg_t;
  38. struct rt_spi_bus bus;
  39. };
  40. #endif
  41. rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, rt_base_t cs_pin);
  42. #ifdef __cplusplus
  43. }
  44. #endif
  45. /* stm32 spi dirver class */
  46. #endif /*__DRV_SPI_H__ */