drv_spi.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. * Copyright (c) 2006-2019, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2019-07-29 zdzn first version
  9. */
  10. #ifndef __DRV_SPI_H__
  11. #define __DRV_SPI_H__
  12. #include <rtthread.h>
  13. #include <rthw.h>
  14. #include "bcm283x.h"
  15. #include <rtdevice.h>
  16. #include <drivers/spi.h>
  17. #include "raspi.h"
  18. #define SPI0_BASE_ADDR (PER_BASE + BCM283X_SPI0_BASE)
  19. #define SPI_CORE_CLK 250000000U
  20. #define SPI_CS 0x00
  21. #define SPI_CS_LEN_LONG (1 << 25)
  22. #define SPI_CS_DMA_LEN (1 << 24)
  23. #define SPI_CS_CSPOL2 (1 << 23)
  24. #define SPI_CS_CSPOL1 (1 << 22)
  25. #define SPI_CS_CSPOL0 (1 << 21)
  26. #define SPI_CS_RXF (1 << 20)
  27. #define SPI_CS_RXR (1 << 19)
  28. #define SPI_CS_TXD (1 << 18)
  29. #define SPI_CS_RXD (1 << 17)
  30. #define SPI_CS_DONE (1 << 16)
  31. #define SPI_CS_LEN (1 << 13)
  32. #define SPI_CS_REN (1 << 12)
  33. #define SPI_CS_ADCS (1 << 11)
  34. #define SPI_CS_INTR (1 << 10)
  35. #define SPI_CS_INTD (1 << 9)
  36. #define SPI_CS_DMAEN (1 << 8)
  37. #define SPI_CS_TA (1 << 7)
  38. #define SPI_CS_CSPOL (1 << 6)
  39. #define SPI_CS_CLEAR_RXFIFO (1 << 5)
  40. #define SPI_CS_CLEAR_TXFIFO (1 << 4)
  41. #define SPI_CS_CPOL (1 << 3)
  42. #define SPI_CS_CPHA (1 << 2)
  43. #define SPI_CS_MASK 0x3
  44. #define SPI_FIFO 0x04
  45. #define SPI_CLK 0x08
  46. #define SPI_CLK_MASK 0xffff
  47. #define SPI_DLEN 0x0c
  48. #define SPI_DLEN_MASK 0xffff
  49. #define SPI_LTOH 0x10
  50. #define SPI_LTOH_MASK 0xf
  51. #define SPI_DC 0x14
  52. #define SPI_DC_RPANIC_SHIFT 24
  53. #define SPI_DC_RPANIC_MASK (0xff << SPI_DC_RPANIC_SHIFT)
  54. #define SPI_DC_RDREQ_SHIFT 16
  55. #define SPI_DC_RDREQ_MASK (0xff << SPI_DC_RDREQ_SHIFT)
  56. #define SPI_DC_TPANIC_SHIFT 8
  57. #define SPI_DC_TPANIC_MASK (0xff << SPI_DC_TPANIC_SHIFT)
  58. #define SPI_DC_TDREQ_SHIFT 0
  59. #define SPI_DC_TDREQ_MASK 0xff
  60. int rt_hw_spi_bus_init(void);
  61. #endif