drv_ssi.h 791 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef SSI_H_
  2. #define SSI_H_
  3. #include "gtypes.h"
  4. #include <rtdevice.h>
  5. #define MAX_SLAVE_DEVICE (2)
  6. struct gk_spi_slave_info
  7. {
  8. rt_uint32_t id;
  9. rt_uint32_t cs_pin;
  10. GD_HANDLE spihandle;
  11. struct rt_spi_device spi_device;
  12. struct gk_spi_controller *control;
  13. struct gk_spi_slave_info *next;
  14. };
  15. struct gk_spi_controller;
  16. struct gk_spi_controller_data
  17. {
  18. rt_uint32_t id;
  19. rt_uint32_t total_slave;
  20. rt_uint32_t slave_cs_pin[MAX_SLAVE_DEVICE];
  21. struct gk_spi_controller *control;
  22. };
  23. struct gk_spi_controller
  24. {
  25. rt_uint32_t id;
  26. struct rt_spi_bus spi_bus;
  27. struct rt_spi_message *current_message;
  28. struct rt_completion transfer_completion;
  29. struct rt_semaphore xfer_lock;
  30. struct gk_spi_slave_info *spi_slave;
  31. };
  32. void rt_hw_spi_init(void);
  33. #endif