sh_spi.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. * SH SPI driver
  3. *
  4. * Copyright (C) 2011 Renesas Solutions Corp.
  5. *
  6. * SPDX-License-Identifier: GPL-2.0
  7. */
  8. #ifndef __SH_SPI_H__
  9. #define __SH_SPI_H__
  10. #include <spi.h>
  11. struct sh_spi_regs {
  12. unsigned long tbr_rbr;
  13. unsigned long resv1;
  14. unsigned long cr1;
  15. unsigned long resv2;
  16. unsigned long cr2;
  17. unsigned long resv3;
  18. unsigned long cr3;
  19. unsigned long resv4;
  20. unsigned long cr4;
  21. };
  22. /* CR1 */
  23. #define SH_SPI_TBE 0x80
  24. #define SH_SPI_TBF 0x40
  25. #define SH_SPI_RBE 0x20
  26. #define SH_SPI_RBF 0x10
  27. #define SH_SPI_PFONRD 0x08
  28. #define SH_SPI_SSDB 0x04
  29. #define SH_SPI_SSD 0x02
  30. #define SH_SPI_SSA 0x01
  31. /* CR2 */
  32. #define SH_SPI_RSTF 0x80
  33. #define SH_SPI_LOOPBK 0x40
  34. #define SH_SPI_CPOL 0x20
  35. #define SH_SPI_CPHA 0x10
  36. #define SH_SPI_L1M0 0x08
  37. /* CR3 */
  38. #define SH_SPI_MAX_BYTE 0xFF
  39. /* CR4 */
  40. #define SH_SPI_TBEI 0x80
  41. #define SH_SPI_TBFI 0x40
  42. #define SH_SPI_RBEI 0x20
  43. #define SH_SPI_RBFI 0x10
  44. #define SH_SPI_SSS1 0x08
  45. #define SH_SPI_WPABRT 0x04
  46. #define SH_SPI_SSS0 0x01
  47. #define SH_SPI_FIFO_SIZE 32
  48. #define SH_SPI_NUM_CS 4
  49. struct sh_spi {
  50. struct spi_slave slave;
  51. struct sh_spi_regs *regs;
  52. };
  53. static inline struct sh_spi *to_sh_spi(struct spi_slave *slave)
  54. {
  55. return container_of(slave, struct sh_spi, slave);
  56. }
  57. #endif