spi_slave.h 812 B

12345678910111213141516171819202122232425262728
  1. #ifndef _H_MT_SPI_SLAVE_H_
  2. #define _H_MT_SPI_SLAVE_H_
  3. #include <platform/mt_typedefs.h>
  4. /*
  5. * Public function API for display
  6. */
  7. #define SPI_TX_LOW_SPEED_HZ (6500000)
  8. #define SPI_RX_LOW_SPEED_HZ (6500000)
  9. #define SPI_TX_MAX_SPEED_HZ (55000000)
  10. #define SPI_RX_MAX_SPEED_HZ (28000000)
  11. /*
  12. * Public function API for user
  13. */
  14. void spi_slave_probe(void);
  15. int spislv_init(void);
  16. int spislv_switch_speed_hz(u32 tx_speed_hz, u32 rx_speed_hz);
  17. int spislv_read(u32 addr, void *val, u32 len);
  18. int spislv_read_register(u32 addr, u32 *val);
  19. /*
  20. * NOTE: multi threads cann't write the same addr concurrently when using belowing APIs.
  21. */
  22. int spislv_write(u32 addr, void *val, u32 len);
  23. int spislv_write_register(u32 addr, u32 val);
  24. int spislv_write_register_mask(u32 addr, u32 val, u32 msk);
  25. #endif /*_H_MT_SPI_SLAVE_H_*/