sh_spi.h 1.2 KB

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