lochnagar2_regs.h 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Lochnagar2 register definitions
  4. *
  5. * Copyright (c) 2017-2018 Cirrus Logic, Inc. and
  6. * Cirrus Logic International Semiconductor Ltd.
  7. *
  8. * Author: Charles Keepax <[email protected]>
  9. */
  10. #ifndef LOCHNAGAR2_REGISTERS_H
  11. #define LOCHNAGAR2_REGISTERS_H
  12. /* Register Addresses */
  13. #define LOCHNAGAR2_CDC_AIF1_CTRL 0x000D
  14. #define LOCHNAGAR2_CDC_AIF2_CTRL 0x000E
  15. #define LOCHNAGAR2_CDC_AIF3_CTRL 0x000F
  16. #define LOCHNAGAR2_DSP_AIF1_CTRL 0x0010
  17. #define LOCHNAGAR2_DSP_AIF2_CTRL 0x0011
  18. #define LOCHNAGAR2_PSIA1_CTRL 0x0012
  19. #define LOCHNAGAR2_PSIA2_CTRL 0x0013
  20. #define LOCHNAGAR2_GF_AIF3_CTRL 0x0014
  21. #define LOCHNAGAR2_GF_AIF4_CTRL 0x0015
  22. #define LOCHNAGAR2_GF_AIF1_CTRL 0x0016
  23. #define LOCHNAGAR2_GF_AIF2_CTRL 0x0017
  24. #define LOCHNAGAR2_SPDIF_AIF_CTRL 0x0018
  25. #define LOCHNAGAR2_USB_AIF1_CTRL 0x0019
  26. #define LOCHNAGAR2_USB_AIF2_CTRL 0x001A
  27. #define LOCHNAGAR2_ADAT_AIF_CTRL 0x001B
  28. #define LOCHNAGAR2_CDC_MCLK1_CTRL 0x001E
  29. #define LOCHNAGAR2_CDC_MCLK2_CTRL 0x001F
  30. #define LOCHNAGAR2_DSP_CLKIN_CTRL 0x0020
  31. #define LOCHNAGAR2_PSIA1_MCLK_CTRL 0x0021
  32. #define LOCHNAGAR2_PSIA2_MCLK_CTRL 0x0022
  33. #define LOCHNAGAR2_SPDIF_MCLK_CTRL 0x0023
  34. #define LOCHNAGAR2_GF_CLKOUT1_CTRL 0x0024
  35. #define LOCHNAGAR2_GF_CLKOUT2_CTRL 0x0025
  36. #define LOCHNAGAR2_ADAT_MCLK_CTRL 0x0026
  37. #define LOCHNAGAR2_SOUNDCARD_MCLK_CTRL 0x0027
  38. #define LOCHNAGAR2_GPIO_FPGA_GPIO1 0x0031
  39. #define LOCHNAGAR2_GPIO_FPGA_GPIO2 0x0032
  40. #define LOCHNAGAR2_GPIO_FPGA_GPIO3 0x0033
  41. #define LOCHNAGAR2_GPIO_FPGA_GPIO4 0x0034
  42. #define LOCHNAGAR2_GPIO_FPGA_GPIO5 0x0035
  43. #define LOCHNAGAR2_GPIO_FPGA_GPIO6 0x0036
  44. #define LOCHNAGAR2_GPIO_CDC_GPIO1 0x0037
  45. #define LOCHNAGAR2_GPIO_CDC_GPIO2 0x0038
  46. #define LOCHNAGAR2_GPIO_CDC_GPIO3 0x0039
  47. #define LOCHNAGAR2_GPIO_CDC_GPIO4 0x003A
  48. #define LOCHNAGAR2_GPIO_CDC_GPIO5 0x003B
  49. #define LOCHNAGAR2_GPIO_CDC_GPIO6 0x003C
  50. #define LOCHNAGAR2_GPIO_CDC_GPIO7 0x003D
  51. #define LOCHNAGAR2_GPIO_CDC_GPIO8 0x003E
  52. #define LOCHNAGAR2_GPIO_DSP_GPIO1 0x003F
  53. #define LOCHNAGAR2_GPIO_DSP_GPIO2 0x0040
  54. #define LOCHNAGAR2_GPIO_DSP_GPIO3 0x0041
  55. #define LOCHNAGAR2_GPIO_DSP_GPIO4 0x0042
  56. #define LOCHNAGAR2_GPIO_DSP_GPIO5 0x0043
  57. #define LOCHNAGAR2_GPIO_DSP_GPIO6 0x0044
  58. #define LOCHNAGAR2_GPIO_GF_GPIO2 0x0045
  59. #define LOCHNAGAR2_GPIO_GF_GPIO3 0x0046
  60. #define LOCHNAGAR2_GPIO_GF_GPIO7 0x0047
  61. #define LOCHNAGAR2_GPIO_CDC_AIF1_BCLK 0x0048
  62. #define LOCHNAGAR2_GPIO_CDC_AIF1_RXDAT 0x0049
  63. #define LOCHNAGAR2_GPIO_CDC_AIF1_LRCLK 0x004A
  64. #define LOCHNAGAR2_GPIO_CDC_AIF1_TXDAT 0x004B
  65. #define LOCHNAGAR2_GPIO_CDC_AIF2_BCLK 0x004C
  66. #define LOCHNAGAR2_GPIO_CDC_AIF2_RXDAT 0x004D
  67. #define LOCHNAGAR2_GPIO_CDC_AIF2_LRCLK 0x004E
  68. #define LOCHNAGAR2_GPIO_CDC_AIF2_TXDAT 0x004F
  69. #define LOCHNAGAR2_GPIO_CDC_AIF3_BCLK 0x0050
  70. #define LOCHNAGAR2_GPIO_CDC_AIF3_RXDAT 0x0051
  71. #define LOCHNAGAR2_GPIO_CDC_AIF3_LRCLK 0x0052
  72. #define LOCHNAGAR2_GPIO_CDC_AIF3_TXDAT 0x0053
  73. #define LOCHNAGAR2_GPIO_DSP_AIF1_BCLK 0x0054
  74. #define LOCHNAGAR2_GPIO_DSP_AIF1_RXDAT 0x0055
  75. #define LOCHNAGAR2_GPIO_DSP_AIF1_LRCLK 0x0056
  76. #define LOCHNAGAR2_GPIO_DSP_AIF1_TXDAT 0x0057
  77. #define LOCHNAGAR2_GPIO_DSP_AIF2_BCLK 0x0058
  78. #define LOCHNAGAR2_GPIO_DSP_AIF2_RXDAT 0x0059
  79. #define LOCHNAGAR2_GPIO_DSP_AIF2_LRCLK 0x005A
  80. #define LOCHNAGAR2_GPIO_DSP_AIF2_TXDAT 0x005B
  81. #define LOCHNAGAR2_GPIO_PSIA1_BCLK 0x005C
  82. #define LOCHNAGAR2_GPIO_PSIA1_RXDAT 0x005D
  83. #define LOCHNAGAR2_GPIO_PSIA1_LRCLK 0x005E
  84. #define LOCHNAGAR2_GPIO_PSIA1_TXDAT 0x005F
  85. #define LOCHNAGAR2_GPIO_PSIA2_BCLK 0x0060
  86. #define LOCHNAGAR2_GPIO_PSIA2_RXDAT 0x0061
  87. #define LOCHNAGAR2_GPIO_PSIA2_LRCLK 0x0062
  88. #define LOCHNAGAR2_GPIO_PSIA2_TXDAT 0x0063
  89. #define LOCHNAGAR2_GPIO_GF_AIF3_BCLK 0x0064
  90. #define LOCHNAGAR2_GPIO_GF_AIF3_RXDAT 0x0065
  91. #define LOCHNAGAR2_GPIO_GF_AIF3_LRCLK 0x0066
  92. #define LOCHNAGAR2_GPIO_GF_AIF3_TXDAT 0x0067
  93. #define LOCHNAGAR2_GPIO_GF_AIF4_BCLK 0x0068
  94. #define LOCHNAGAR2_GPIO_GF_AIF4_RXDAT 0x0069
  95. #define LOCHNAGAR2_GPIO_GF_AIF4_LRCLK 0x006A
  96. #define LOCHNAGAR2_GPIO_GF_AIF4_TXDAT 0x006B
  97. #define LOCHNAGAR2_GPIO_GF_AIF1_BCLK 0x006C
  98. #define LOCHNAGAR2_GPIO_GF_AIF1_RXDAT 0x006D
  99. #define LOCHNAGAR2_GPIO_GF_AIF1_LRCLK 0x006E
  100. #define LOCHNAGAR2_GPIO_GF_AIF1_TXDAT 0x006F
  101. #define LOCHNAGAR2_GPIO_GF_AIF2_BCLK 0x0070
  102. #define LOCHNAGAR2_GPIO_GF_AIF2_RXDAT 0x0071
  103. #define LOCHNAGAR2_GPIO_GF_AIF2_LRCLK 0x0072
  104. #define LOCHNAGAR2_GPIO_GF_AIF2_TXDAT 0x0073
  105. #define LOCHNAGAR2_GPIO_DSP_UART1_RX 0x0074
  106. #define LOCHNAGAR2_GPIO_DSP_UART1_TX 0x0075
  107. #define LOCHNAGAR2_GPIO_DSP_UART2_RX 0x0076
  108. #define LOCHNAGAR2_GPIO_DSP_UART2_TX 0x0077
  109. #define LOCHNAGAR2_GPIO_GF_UART2_RX 0x0078
  110. #define LOCHNAGAR2_GPIO_GF_UART2_TX 0x0079
  111. #define LOCHNAGAR2_GPIO_USB_UART_RX 0x007A
  112. #define LOCHNAGAR2_GPIO_CDC_PDMCLK1 0x007C
  113. #define LOCHNAGAR2_GPIO_CDC_PDMDAT1 0x007D
  114. #define LOCHNAGAR2_GPIO_CDC_PDMCLK2 0x007E
  115. #define LOCHNAGAR2_GPIO_CDC_PDMDAT2 0x007F
  116. #define LOCHNAGAR2_GPIO_CDC_DMICCLK1 0x0080
  117. #define LOCHNAGAR2_GPIO_CDC_DMICDAT1 0x0081
  118. #define LOCHNAGAR2_GPIO_CDC_DMICCLK2 0x0082
  119. #define LOCHNAGAR2_GPIO_CDC_DMICDAT2 0x0083
  120. #define LOCHNAGAR2_GPIO_CDC_DMICCLK3 0x0084
  121. #define LOCHNAGAR2_GPIO_CDC_DMICDAT3 0x0085
  122. #define LOCHNAGAR2_GPIO_CDC_DMICCLK4 0x0086
  123. #define LOCHNAGAR2_GPIO_CDC_DMICDAT4 0x0087
  124. #define LOCHNAGAR2_GPIO_DSP_DMICCLK1 0x0088
  125. #define LOCHNAGAR2_GPIO_DSP_DMICDAT1 0x0089
  126. #define LOCHNAGAR2_GPIO_DSP_DMICCLK2 0x008A
  127. #define LOCHNAGAR2_GPIO_DSP_DMICDAT2 0x008B
  128. #define LOCHNAGAR2_GPIO_I2C2_SCL 0x008C
  129. #define LOCHNAGAR2_GPIO_I2C2_SDA 0x008D
  130. #define LOCHNAGAR2_GPIO_I2C3_SCL 0x008E
  131. #define LOCHNAGAR2_GPIO_I2C3_SDA 0x008F
  132. #define LOCHNAGAR2_GPIO_I2C4_SCL 0x0090
  133. #define LOCHNAGAR2_GPIO_I2C4_SDA 0x0091
  134. #define LOCHNAGAR2_GPIO_DSP_STANDBY 0x0092
  135. #define LOCHNAGAR2_GPIO_CDC_MCLK1 0x0093
  136. #define LOCHNAGAR2_GPIO_CDC_MCLK2 0x0094
  137. #define LOCHNAGAR2_GPIO_DSP_CLKIN 0x0095
  138. #define LOCHNAGAR2_GPIO_PSIA1_MCLK 0x0096
  139. #define LOCHNAGAR2_GPIO_PSIA2_MCLK 0x0097
  140. #define LOCHNAGAR2_GPIO_GF_GPIO1 0x0098
  141. #define LOCHNAGAR2_GPIO_GF_GPIO5 0x0099
  142. #define LOCHNAGAR2_GPIO_DSP_GPIO20 0x009A
  143. #define LOCHNAGAR2_GPIO_CHANNEL1 0x00B9
  144. #define LOCHNAGAR2_GPIO_CHANNEL2 0x00BA
  145. #define LOCHNAGAR2_GPIO_CHANNEL3 0x00BB
  146. #define LOCHNAGAR2_GPIO_CHANNEL4 0x00BC
  147. #define LOCHNAGAR2_GPIO_CHANNEL5 0x00BD
  148. #define LOCHNAGAR2_GPIO_CHANNEL6 0x00BE
  149. #define LOCHNAGAR2_GPIO_CHANNEL7 0x00BF
  150. #define LOCHNAGAR2_GPIO_CHANNEL8 0x00C0
  151. #define LOCHNAGAR2_GPIO_CHANNEL9 0x00C1
  152. #define LOCHNAGAR2_GPIO_CHANNEL10 0x00C2
  153. #define LOCHNAGAR2_GPIO_CHANNEL11 0x00C3
  154. #define LOCHNAGAR2_GPIO_CHANNEL12 0x00C4
  155. #define LOCHNAGAR2_GPIO_CHANNEL13 0x00C5
  156. #define LOCHNAGAR2_GPIO_CHANNEL14 0x00C6
  157. #define LOCHNAGAR2_GPIO_CHANNEL15 0x00C7
  158. #define LOCHNAGAR2_GPIO_CHANNEL16 0x00C8
  159. #define LOCHNAGAR2_MINICARD_RESETS 0x00DF
  160. #define LOCHNAGAR2_ANALOGUE_PATH_CTRL1 0x00E3
  161. #define LOCHNAGAR2_ANALOGUE_PATH_CTRL2 0x00E4
  162. #define LOCHNAGAR2_COMMS_CTRL4 0x00F0
  163. #define LOCHNAGAR2_SPDIF_CTRL 0x00FE
  164. #define LOCHNAGAR2_IMON_CTRL1 0x0108
  165. #define LOCHNAGAR2_IMON_CTRL2 0x0109
  166. #define LOCHNAGAR2_IMON_CTRL3 0x010A
  167. #define LOCHNAGAR2_IMON_CTRL4 0x010B
  168. #define LOCHNAGAR2_IMON_DATA1 0x010C
  169. #define LOCHNAGAR2_IMON_DATA2 0x010D
  170. #define LOCHNAGAR2_POWER_CTRL 0x0116
  171. #define LOCHNAGAR2_MICVDD_CTRL1 0x0119
  172. #define LOCHNAGAR2_MICVDD_CTRL2 0x011B
  173. #define LOCHNAGAR2_VDDCORE_CDC_CTRL1 0x011E
  174. #define LOCHNAGAR2_VDDCORE_CDC_CTRL2 0x0120
  175. #define LOCHNAGAR2_SOUNDCARD_AIF_CTRL 0x0180
  176. /* (0x000D-0x001B, 0x0180) CDC_AIF1_CTRL - SOUNCARD_AIF_CTRL */
  177. #define LOCHNAGAR2_AIF_ENA_MASK 0x8000
  178. #define LOCHNAGAR2_AIF_ENA_SHIFT 15
  179. #define LOCHNAGAR2_AIF_LRCLK_DIR_MASK 0x4000
  180. #define LOCHNAGAR2_AIF_LRCLK_DIR_SHIFT 14
  181. #define LOCHNAGAR2_AIF_BCLK_DIR_MASK 0x2000
  182. #define LOCHNAGAR2_AIF_BCLK_DIR_SHIFT 13
  183. #define LOCHNAGAR2_AIF_SRC_MASK 0x00FF
  184. #define LOCHNAGAR2_AIF_SRC_SHIFT 0
  185. /* (0x001E - 0x0027) CDC_MCLK1_CTRL - SOUNDCARD_MCLK_CTRL */
  186. #define LOCHNAGAR2_CLK_ENA_MASK 0x8000
  187. #define LOCHNAGAR2_CLK_ENA_SHIFT 15
  188. #define LOCHNAGAR2_CLK_SRC_MASK 0x00FF
  189. #define LOCHNAGAR2_CLK_SRC_SHIFT 0
  190. /* (0x0031 - 0x009A) GPIO_FPGA_GPIO1 - GPIO_DSP_GPIO20 */
  191. #define LOCHNAGAR2_GPIO_SRC_MASK 0x00FF
  192. #define LOCHNAGAR2_GPIO_SRC_SHIFT 0
  193. /* (0x00B9 - 0x00C8) GPIO_CHANNEL1 - GPIO_CHANNEL16 */
  194. #define LOCHNAGAR2_GPIO_CHANNEL_STS_MASK 0x8000
  195. #define LOCHNAGAR2_GPIO_CHANNEL_STS_SHIFT 15
  196. #define LOCHNAGAR2_GPIO_CHANNEL_SRC_MASK 0x00FF
  197. #define LOCHNAGAR2_GPIO_CHANNEL_SRC_SHIFT 0
  198. /* (0x00DF) MINICARD_RESETS */
  199. #define LOCHNAGAR2_DSP_RESET_MASK 0x0002
  200. #define LOCHNAGAR2_DSP_RESET_SHIFT 1
  201. #define LOCHNAGAR2_CDC_RESET_MASK 0x0001
  202. #define LOCHNAGAR2_CDC_RESET_SHIFT 0
  203. /* (0x00E3) ANALOGUE_PATH_CTRL1 */
  204. #define LOCHNAGAR2_ANALOGUE_PATH_UPDATE_MASK 0x8000
  205. #define LOCHNAGAR2_ANALOGUE_PATH_UPDATE_SHIFT 15
  206. #define LOCHNAGAR2_ANALOGUE_PATH_UPDATE_STS_MASK 0x4000
  207. #define LOCHNAGAR2_ANALOGUE_PATH_UPDATE_STS_SHIFT 14
  208. /* (0x00E4) ANALOGUE_PATH_CTRL2 */
  209. #define LOCHNAGAR2_P2_INPUT_BIAS_ENA_MASK 0x0080
  210. #define LOCHNAGAR2_P2_INPUT_BIAS_ENA_SHIFT 7
  211. #define LOCHNAGAR2_P1_INPUT_BIAS_ENA_MASK 0x0040
  212. #define LOCHNAGAR2_P1_INPUT_BIAS_ENA_SHIFT 6
  213. #define LOCHNAGAR2_P2_MICBIAS_SRC_MASK 0x0038
  214. #define LOCHNAGAR2_P2_MICBIAS_SRC_SHIFT 3
  215. #define LOCHNAGAR2_P1_MICBIAS_SRC_MASK 0x0007
  216. #define LOCHNAGAR2_P1_MICBIAS_SRC_SHIFT 0
  217. /* (0x00F0) COMMS_CTRL4 */
  218. #define LOCHNAGAR2_CDC_CIF1MODE_MASK 0x0001
  219. #define LOCHNAGAR2_CDC_CIF1MODE_SHIFT 0
  220. /* (0x00FE) SPDIF_CTRL */
  221. #define LOCHNAGAR2_SPDIF_HWMODE_MASK 0x0008
  222. #define LOCHNAGAR2_SPDIF_HWMODE_SHIFT 3
  223. #define LOCHNAGAR2_SPDIF_RESET_MASK 0x0001
  224. #define LOCHNAGAR2_SPDIF_RESET_SHIFT 0
  225. /* (0x0108) IMON_CTRL1 */
  226. #define LOCHNAGAR2_IMON_ENA_MASK 0x8000
  227. #define LOCHNAGAR2_IMON_ENA_SHIFT 15
  228. #define LOCHNAGAR2_IMON_MEASURED_CHANNELS_MASK 0x03FC
  229. #define LOCHNAGAR2_IMON_MEASURED_CHANNELS_SHIFT 2
  230. #define LOCHNAGAR2_IMON_MODE_SEL_MASK 0x0003
  231. #define LOCHNAGAR2_IMON_MODE_SEL_SHIFT 0
  232. /* (0x0109) IMON_CTRL2 */
  233. #define LOCHNAGAR2_IMON_FSR_MASK 0x03FF
  234. #define LOCHNAGAR2_IMON_FSR_SHIFT 0
  235. /* (0x010A) IMON_CTRL3 */
  236. #define LOCHNAGAR2_IMON_DONE_MASK 0x0004
  237. #define LOCHNAGAR2_IMON_DONE_SHIFT 2
  238. #define LOCHNAGAR2_IMON_CONFIGURE_MASK 0x0002
  239. #define LOCHNAGAR2_IMON_CONFIGURE_SHIFT 1
  240. #define LOCHNAGAR2_IMON_MEASURE_MASK 0x0001
  241. #define LOCHNAGAR2_IMON_MEASURE_SHIFT 0
  242. /* (0x010B) IMON_CTRL4 */
  243. #define LOCHNAGAR2_IMON_DATA_REQ_MASK 0x0080
  244. #define LOCHNAGAR2_IMON_DATA_REQ_SHIFT 7
  245. #define LOCHNAGAR2_IMON_CH_SEL_MASK 0x0070
  246. #define LOCHNAGAR2_IMON_CH_SEL_SHIFT 4
  247. #define LOCHNAGAR2_IMON_DATA_RDY_MASK 0x0008
  248. #define LOCHNAGAR2_IMON_DATA_RDY_SHIFT 3
  249. #define LOCHNAGAR2_IMON_CH_SRC_MASK 0x0007
  250. #define LOCHNAGAR2_IMON_CH_SRC_SHIFT 0
  251. /* (0x010C, 0x010D) IMON_DATA1, IMON_DATA2 */
  252. #define LOCHNAGAR2_IMON_DATA_MASK 0xFFFF
  253. #define LOCHNAGAR2_IMON_DATA_SHIFT 0
  254. /* (0x0116) POWER_CTRL */
  255. #define LOCHNAGAR2_PWR_ENA_MASK 0x0001
  256. #define LOCHNAGAR2_PWR_ENA_SHIFT 0
  257. /* (0x0119) MICVDD_CTRL1 */
  258. #define LOCHNAGAR2_MICVDD_REG_ENA_MASK 0x8000
  259. #define LOCHNAGAR2_MICVDD_REG_ENA_SHIFT 15
  260. /* (0x011B) MICVDD_CTRL2 */
  261. #define LOCHNAGAR2_MICVDD_VSEL_MASK 0x001F
  262. #define LOCHNAGAR2_MICVDD_VSEL_SHIFT 0
  263. /* (0x011E) VDDCORE_CDC_CTRL1 */
  264. #define LOCHNAGAR2_VDDCORE_CDC_REG_ENA_MASK 0x8000
  265. #define LOCHNAGAR2_VDDCORE_CDC_REG_ENA_SHIFT 15
  266. /* (0x0120) VDDCORE_CDC_CTRL2 */
  267. #define LOCHNAGAR2_VDDCORE_CDC_VSEL_MASK 0x007F
  268. #define LOCHNAGAR2_VDDCORE_CDC_VSEL_SHIFT 0
  269. #endif