i2s-regs.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. /*
  2. * linux/sound/soc/samsung/i2s-regs.h
  3. *
  4. * Copyright (c) 2011 Samsung Electronics Co., Ltd.
  5. * http://www.samsung.com
  6. *
  7. * Samsung I2S driver's register header
  8. *
  9. * This program is free software; you can redistribute it and/or modify it
  10. * under the terms of the GNU General Public License as published by the
  11. * Free Software Foundation; either version 2 of the License, or (at your
  12. * option) any later version.
  13. */
  14. #ifndef __SND_SOC_SAMSUNG_I2S_REGS_H
  15. #define __SND_SOC_SAMSUNG_I2S_REGS_H
  16. #define I2SCON 0x0
  17. #define I2SMOD 0x4
  18. #define I2SFIC 0x8
  19. #define I2SPSR 0xc
  20. #define I2STXD 0x10
  21. #define I2SRXD 0x14
  22. #define I2SFICS 0x18
  23. #define I2STXDS 0x1c
  24. #define I2SAHB 0x20
  25. #define I2SSTR0 0x24
  26. #define I2SSIZE 0x28
  27. #define I2STRNCNT 0x2c
  28. #define I2SLVL0ADDR 0x30
  29. #define I2SLVL1ADDR 0x34
  30. #define I2SLVL2ADDR 0x38
  31. #define I2SLVL3ADDR 0x3c
  32. #define CON_RSTCLR (1 << 31)
  33. #define CON_FRXOFSTATUS (1 << 26)
  34. #define CON_FRXORINTEN (1 << 25)
  35. #define CON_FTXSURSTAT (1 << 24)
  36. #define CON_FTXSURINTEN (1 << 23)
  37. #define CON_TXSDMA_PAUSE (1 << 20)
  38. #define CON_TXSDMA_ACTIVE (1 << 18)
  39. #define CON_FTXURSTATUS (1 << 17)
  40. #define CON_FTXURINTEN (1 << 16)
  41. #define CON_TXFIFO2_EMPTY (1 << 15)
  42. #define CON_TXFIFO1_EMPTY (1 << 14)
  43. #define CON_TXFIFO2_FULL (1 << 13)
  44. #define CON_TXFIFO1_FULL (1 << 12)
  45. #define CON_LRINDEX (1 << 11)
  46. #define CON_TXFIFO_EMPTY (1 << 10)
  47. #define CON_RXFIFO_EMPTY (1 << 9)
  48. #define CON_TXFIFO_FULL (1 << 8)
  49. #define CON_RXFIFO_FULL (1 << 7)
  50. #define CON_TXDMA_PAUSE (1 << 6)
  51. #define CON_RXDMA_PAUSE (1 << 5)
  52. #define CON_TXCH_PAUSE (1 << 4)
  53. #define CON_RXCH_PAUSE (1 << 3)
  54. #define CON_TXDMA_ACTIVE (1 << 2)
  55. #define CON_RXDMA_ACTIVE (1 << 1)
  56. #define CON_ACTIVE (1 << 0)
  57. #define MOD_OPCLK_CDCLK_OUT (0 << 30)
  58. #define MOD_OPCLK_CDCLK_IN (1 << 30)
  59. #define MOD_OPCLK_BCLK_OUT (2 << 30)
  60. #define MOD_OPCLK_PCLK (3 << 30)
  61. #define MOD_OPCLK_MASK (3 << 30)
  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_IMS_SYSMUX (1 << 10)
  84. #define MOD_SLAVE (1 << 11)
  85. #define MOD_TXONLY (0 << 8)
  86. #define MOD_RXONLY (1 << 8)
  87. #define MOD_TXRX (2 << 8)
  88. #define MOD_MASK (3 << 8)
  89. #define MOD_LR_LLOW (0 << 7)
  90. #define MOD_LR_RLOW (1 << 7)
  91. #define MOD_SDF_IIS (0 << 5)
  92. #define MOD_SDF_MSB (1 << 5)
  93. #define MOD_SDF_LSB (2 << 5)
  94. #define MOD_SDF_MASK (3 << 5)
  95. #define MOD_RCLK_256FS (0 << 3)
  96. #define MOD_RCLK_512FS (1 << 3)
  97. #define MOD_RCLK_384FS (2 << 3)
  98. #define MOD_RCLK_768FS (3 << 3)
  99. #define MOD_RCLK_MASK (3 << 3)
  100. #define MOD_BCLK_32FS (0 << 1)
  101. #define MOD_BCLK_48FS (1 << 1)
  102. #define MOD_BCLK_16FS (2 << 1)
  103. #define MOD_BCLK_24FS (3 << 1)
  104. #define MOD_BCLK_MASK (3 << 1)
  105. #define MOD_8BIT (1 << 0)
  106. #define MOD_CDCLKCON (1 << 12)
  107. #define PSR_PSREN (1 << 15)
  108. #define FIC_TX2COUNT(x) (((x) >> 24) & 0xf)
  109. #define FIC_TX1COUNT(x) (((x) >> 16) & 0xf)
  110. #define FIC_TXFLUSH (1 << 15)
  111. #define FIC_RXFLUSH (1 << 7)
  112. #define FIC_TXCOUNT(x) (((x) >> 8) & 0xf)
  113. #define FIC_RXCOUNT(x) (((x) >> 0) & 0xf)
  114. #define FICS_TXCOUNT(x) (((x) >> 8) & 0x7f)
  115. #define AHB_INTENLVL0 (1 << 24)
  116. #define AHB_LVL0INT (1 << 20)
  117. #define AHB_CLRLVL0INT (1 << 16)
  118. #define AHB_DMARLD (1 << 5)
  119. #define AHB_INTMASK (1 << 3)
  120. #define AHB_DMAEN (1 << 0)
  121. #define AHB_LVLINTMASK (0xf << 20)
  122. #define I2SSIZE_TRNMSK (0xffff)
  123. #define I2SSIZE_SHIFT (16)
  124. #endif /* __SND_SOC_SAMSUNG_I2S_REGS_H */