i2s-regs.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (c) 2011 Samsung Electronics Co., Ltd.
  4. * http://www.samsung.com
  5. *
  6. * Samsung I2S driver's register header
  7. */
  8. #ifndef __SND_SOC_SAMSUNG_I2S_REGS_H
  9. #define __SND_SOC_SAMSUNG_I2S_REGS_H
  10. #define I2SCON 0x0
  11. #define I2SMOD 0x4
  12. #define I2SFIC 0x8
  13. #define I2SPSR 0xc
  14. #define I2STXD 0x10
  15. #define I2SRXD 0x14
  16. #define I2SFICS 0x18
  17. #define I2STXDS 0x1c
  18. #define I2SAHB 0x20
  19. #define I2SSTR0 0x24
  20. #define I2SSIZE 0x28
  21. #define I2STRNCNT 0x2c
  22. #define I2SLVL0ADDR 0x30
  23. #define I2SLVL1ADDR 0x34
  24. #define I2SLVL2ADDR 0x38
  25. #define I2SLVL3ADDR 0x3c
  26. #define I2SSTR1 0x40
  27. #define I2SVER 0x44
  28. #define I2SFIC1 0x48
  29. #define I2STDM 0x4c
  30. #define I2SFSTA 0x50
  31. #define CON_RSTCLR (1 << 31)
  32. #define CON_FRXOFSTATUS (1 << 26)
  33. #define CON_FRXORINTEN (1 << 25)
  34. #define CON_FTXSURSTAT (1 << 24)
  35. #define CON_FTXSURINTEN (1 << 23)
  36. #define CON_TXSDMA_PAUSE (1 << 20)
  37. #define CON_TXSDMA_ACTIVE (1 << 18)
  38. #define CON_FTXURSTATUS (1 << 17)
  39. #define CON_FTXURINTEN (1 << 16)
  40. #define CON_TXFIFO2_EMPTY (1 << 15)
  41. #define CON_TXFIFO1_EMPTY (1 << 14)
  42. #define CON_TXFIFO2_FULL (1 << 13)
  43. #define CON_TXFIFO1_FULL (1 << 12)
  44. #define CON_LRINDEX (1 << 11)
  45. #define CON_TXFIFO_EMPTY (1 << 10)
  46. #define CON_RXFIFO_EMPTY (1 << 9)
  47. #define CON_TXFIFO_FULL (1 << 8)
  48. #define CON_RXFIFO_FULL (1 << 7)
  49. #define CON_TXDMA_PAUSE (1 << 6)
  50. #define CON_RXDMA_PAUSE (1 << 5)
  51. #define CON_TXCH_PAUSE (1 << 4)
  52. #define CON_RXCH_PAUSE (1 << 3)
  53. #define CON_TXDMA_ACTIVE (1 << 2)
  54. #define CON_RXDMA_ACTIVE (1 << 1)
  55. #define CON_ACTIVE (1 << 0)
  56. #define MOD_OPCLK_SHIFT 30
  57. #define MOD_OPCLK_CDCLK_OUT (0 << MOD_OPCLK_SHIFT)
  58. #define MOD_OPCLK_CDCLK_IN (1 << MOD_OPCLK_SHIFT)
  59. #define MOD_OPCLK_BCLK_OUT (2 << MOD_OPCLK_SHIFT)
  60. #define MOD_OPCLK_PCLK (3 << MOD_OPCLK_SHIFT)
  61. #define MOD_OPCLK_MASK (3 << MOD_OPCLK_SHIFT)
  62. #define MOD_TXS_IDMA (1 << 28) /* Sec_TXFIFO use I-DMA */
  63. #define MOD_BLCS_SHIFT 26
  64. #define MOD_BLCS_16BIT (0 << MOD_BLCS_SHIFT)
  65. #define MOD_BLCS_8BIT (1 << MOD_BLCS_SHIFT)
  66. #define MOD_BLCS_24BIT (2 << MOD_BLCS_SHIFT)
  67. #define MOD_BLCS_MASK (3 << MOD_BLCS_SHIFT)
  68. #define MOD_BLCP_SHIFT 24
  69. #define MOD_BLCP_16BIT (0 << MOD_BLCP_SHIFT)
  70. #define MOD_BLCP_8BIT (1 << MOD_BLCP_SHIFT)
  71. #define MOD_BLCP_24BIT (2 << MOD_BLCP_SHIFT)
  72. #define MOD_BLCP_MASK (3 << MOD_BLCP_SHIFT)
  73. #define MOD_C2DD_HHALF (1 << 21) /* Discard Higher-half */
  74. #define MOD_C2DD_LHALF (1 << 20) /* Discard Lower-half */
  75. #define MOD_C1DD_HHALF (1 << 19)
  76. #define MOD_C1DD_LHALF (1 << 18)
  77. #define MOD_DC2_EN (1 << 17)
  78. #define MOD_DC1_EN (1 << 16)
  79. #define MOD_BLC_16BIT (0 << 13)
  80. #define MOD_BLC_8BIT (1 << 13)
  81. #define MOD_BLC_24BIT (2 << 13)
  82. #define MOD_BLC_MASK (3 << 13)
  83. #define MOD_TXONLY (0 << 8)
  84. #define MOD_RXONLY (1 << 8)
  85. #define MOD_TXRX (2 << 8)
  86. #define MOD_MASK (3 << 8)
  87. #define MOD_LRP_SHIFT 7
  88. #define MOD_LR_LLOW 0
  89. #define MOD_LR_RLOW 1
  90. #define MOD_SDF_SHIFT 5
  91. #define MOD_SDF_IIS 0
  92. #define MOD_SDF_MSB 1
  93. #define MOD_SDF_LSB 2
  94. #define MOD_SDF_MASK 3
  95. #define MOD_RCLK_SHIFT 3
  96. #define MOD_RCLK_256FS 0
  97. #define MOD_RCLK_512FS 1
  98. #define MOD_RCLK_384FS 2
  99. #define MOD_RCLK_768FS 3
  100. #define MOD_RCLK_MASK 3
  101. #define MOD_BCLK_SHIFT 1
  102. #define MOD_BCLK_32FS 0
  103. #define MOD_BCLK_48FS 1
  104. #define MOD_BCLK_16FS 2
  105. #define MOD_BCLK_24FS 3
  106. #define MOD_BCLK_MASK 3
  107. #define MOD_8BIT (1 << 0)
  108. #define EXYNOS5420_MOD_LRP_SHIFT 15
  109. #define EXYNOS5420_MOD_SDF_SHIFT 6
  110. #define EXYNOS5420_MOD_RCLK_SHIFT 4
  111. #define EXYNOS5420_MOD_BCLK_SHIFT 0
  112. #define EXYNOS5420_MOD_BCLK_64FS 4
  113. #define EXYNOS5420_MOD_BCLK_96FS 5
  114. #define EXYNOS5420_MOD_BCLK_128FS 6
  115. #define EXYNOS5420_MOD_BCLK_192FS 7
  116. #define EXYNOS5420_MOD_BCLK_256FS 8
  117. #define EXYNOS5420_MOD_BCLK_MASK 0xf
  118. #define EXYNOS7_MOD_RCLK_64FS 4
  119. #define EXYNOS7_MOD_RCLK_128FS 5
  120. #define EXYNOS7_MOD_RCLK_96FS 6
  121. #define EXYNOS7_MOD_RCLK_192FS 7
  122. #define PSR_PSREN (1 << 15)
  123. #define FIC_TX2COUNT(x) (((x) >> 24) & 0xf)
  124. #define FIC_TX1COUNT(x) (((x) >> 16) & 0xf)
  125. #define FIC_TXFLUSH (1 << 15)
  126. #define FIC_RXFLUSH (1 << 7)
  127. #define FIC_TXCOUNT(x) (((x) >> 8) & 0xf)
  128. #define FIC_RXCOUNT(x) (((x) >> 0) & 0xf)
  129. #define FICS_TXCOUNT(x) (((x) >> 8) & 0x7f)
  130. #define AHB_INTENLVL0 (1 << 24)
  131. #define AHB_LVL0INT (1 << 20)
  132. #define AHB_CLRLVL0INT (1 << 16)
  133. #define AHB_DMARLD (1 << 5)
  134. #define AHB_INTMASK (1 << 3)
  135. #define AHB_DMAEN (1 << 0)
  136. #define AHB_LVLINTMASK (0xf << 20)
  137. #define I2SSIZE_TRNMSK (0xffff)
  138. #define I2SSIZE_SHIFT (16)
  139. #endif /* __SND_SOC_SAMSUNG_I2S_REGS_H */