aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mfd/lochnagar2_regs.h
blob: 419b25a332fd9f6569d65ce7f7fbaebd2a56e488 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Lochnagar2 register definitions
 *
 * Copyright (c) 2017-2018 Cirrus Logic, Inc. and
 *                         Cirrus Logic International Semiconductor Ltd.
 *
 * Author: Charles Keepax <ckeepax@opensource.cirrus.com>
 */

#ifndef LOCHNAGAR2_REGISTERS_H
#define LOCHNAGAR2_REGISTERS_H

/* Register Addresses */
#define LOCHNAGAR2_CDC_AIF1_CTRL                      0x000D
#define LOCHNAGAR2_CDC_AIF2_CTRL                      0x000E
#define LOCHNAGAR2_CDC_AIF3_CTRL                      0x000F
#define LOCHNAGAR2_DSP_AIF1_CTRL                      0x0010
#define LOCHNAGAR2_DSP_AIF2_CTRL                      0x0011
#define LOCHNAGAR2_PSIA1_CTRL                         0x0012
#define LOCHNAGAR2_PSIA2_CTRL                         0x0013
#define LOCHNAGAR2_GF_AIF3_CTRL                       0x0014
#define LOCHNAGAR2_GF_AIF4_CTRL                       0x0015
#define LOCHNAGAR2_GF_AIF1_CTRL                       0x0016
#define LOCHNAGAR2_GF_AIF2_CTRL                       0x0017
#define LOCHNAGAR2_SPDIF_AIF_CTRL                     0x0018
#define LOCHNAGAR2_USB_AIF1_CTRL                      0x0019
#define LOCHNAGAR2_USB_AIF2_CTRL                      0x001A
#define LOCHNAGAR2_ADAT_AIF_CTRL                      0x001B
#define LOCHNAGAR2_CDC_MCLK1_CTRL                     0x001E
#define LOCHNAGAR2_CDC_MCLK2_CTRL                     0x001F
#define LOCHNAGAR2_DSP_CLKIN_CTRL                     0x0020
#define LOCHNAGAR2_PSIA1_MCLK_CTRL                    0x0021
#define LOCHNAGAR2_PSIA2_MCLK_CTRL                    0x0022
#define LOCHNAGAR2_SPDIF_MCLK_CTRL                    0x0023
#define LOCHNAGAR2_GF_CLKOUT1_CTRL                    0x0024
#define LOCHNAGAR2_GF_CLKOUT2_CTRL                    0x0025
#define LOCHNAGAR2_ADAT_MCLK_CTRL                     0x0026
#define LOCHNAGAR2_SOUNDCARD_MCLK_CTRL                0x0027
#define LOCHNAGAR2_GPIO_FPGA_GPIO1                    0x0031
#define LOCHNAGAR2_GPIO_FPGA_GPIO2                    0x0032
#define LOCHNAGAR2_GPIO_FPGA_GPIO3                    0x0033
#define LOCHNAGAR2_GPIO_FPGA_GPIO4                    0x0034
#define LOCHNAGAR2_GPIO_FPGA_GPIO5                    0x0035
#define LOCHNAGAR2_GPIO_FPGA_GPIO6                    0x0036
#define LOCHNAGAR2_GPIO_CDC_GPIO1                     0x0037
#define LOCHNAGAR2_GPIO_CDC_GPIO2                     0x0038
#define LOCHNAGAR2_GPIO_CDC_GPIO3                     0x0039
#define LOCHNAGAR2_GPIO_CDC_GPIO4                     0x003A
#define LOCHNAGAR2_GPIO_CDC_GPIO5                     0x003B
#define LOCHNAGAR2_GPIO_CDC_GPIO6                     0x003C
#define LOCHNAGAR2_GPIO_CDC_GPIO7                     0x003D
#define LOCHNAGAR2_GPIO_CDC_GPIO8                     0x003E
#define LOCHNAGAR2_GPIO_DSP_GPIO1                     0x003F
#define LOCHNAGAR2_GPIO_DSP_GPIO2                     0x0040
#define LOCHNAGAR2_GPIO_DSP_GPIO3                     0x0041
#define LOCHNAGAR2_GPIO_DSP_GPIO4                     0x0042
#define LOCHNAGAR2_GPIO_DSP_GPIO5                     0x0043
#define LOCHNAGAR2_GPIO_DSP_GPIO6                     0x0044
#define LOCHNAGAR2_GPIO_GF_GPIO2                      0x0045
#define LOCHNAGAR2_GPIO_GF_GPIO3                      0x0046
#define LOCHNAGAR2_GPIO_GF_GPIO7                      0x0047
#define LOCHNAGAR2_GPIO_CDC_AIF1_BCLK                 0x0048
#define LOCHNAGAR2_GPIO_CDC_AIF1_RXDAT                0x0049
#define LOCHNAGAR2_GPIO_CDC_AIF1_LRCLK                0x004A
#define LOCHNAGAR2_GPIO_CDC_AIF1_TXDAT                0x004B
#define LOCHNAGAR2_GPIO_CDC_AIF2_BCLK                 0x004C
#define LOCHNAGAR2_GPIO_CDC_AIF2_RXDAT                0x004D
#define LOCHNAGAR2_GPIO_CDC_AIF2_LRCLK                0x004E
#define LOCHNAGAR2_GPIO_CDC_AIF2_TXDAT                0x004F
#define LOCHNAGAR2_GPIO_CDC_AIF3_BCLK                 0x0050
#define LOCHNAGAR2_GPIO_CDC_AIF3_RXDAT                0x0051
#define LOCHNAGAR2_GPIO_CDC_AIF3_LRCLK                0x0052
#define LOCHNAGAR2_GPIO_CDC_AIF3_TXDAT                0x0053
#define LOCHNAGAR2_GPIO_DSP_AIF1_BCLK                 0x0054
#define LOCHNAGAR2_GPIO_DSP_AIF1_RXDAT                0x0055
#define LOCHNAGAR2_GPIO_DSP_AIF1_LRCLK                0x0056
#define LOCHNAGAR2_GPIO_DSP_AIF1_TXDAT                0x0057
#define LOCHNAGAR2_GPIO_DSP_AIF2_BCLK                 0x0058
#define LOCHNAGAR2_GPIO_DSP_AIF2_RXDAT                0x0059
#define LOCHNAGAR2_GPIO_DSP_AIF2_LRCLK                0x005A
#define LOCHNAGAR2_GPIO_DSP_AIF2_TXDAT                0x005B
#define LOCHNAGAR2_GPIO_PSIA1_BCLK                    0x005C
#define LOCHNAGAR2_GPIO_PSIA1_RXDAT                   0x005D
#define LOCHNAGAR2_GPIO_PSIA1_LRCLK                   0x005E
#define LOCHNAGAR2_GPIO_PSIA1_TXDAT                   0x005F
#define LOCHNAGAR2_GPIO_PSIA2_BCLK                    0x0060
#define LOCHNAGAR2_GPIO_PSIA2_RXDAT                   0x0061
#define LOCHNAGAR2_GPIO_PSIA2_LRCLK                   0x0062
#define LOCHNAGAR2_GPIO_PSIA2_TXDAT                   0x0063
#define LOCHNAGAR2_GPIO_GF_AIF3_BCLK                  0x0064
#define LOCHNAGAR2_GPIO_GF_AIF3_RXDAT                 0x0065
#define LOCHNAGAR2_GPIO_GF_AIF3_LRCLK                 0x0066
#define LOCHNAGAR2_GPIO_GF_AIF3_TXDAT                 0x0067
#define LOCHNAGAR2_GPIO_GF_AIF4_BCLK                  0x0068
#define LOCHNAGAR2_GPIO_GF_AIF4_RXDAT                 0x0069
#define LOCHNAGAR2_GPIO_GF_AIF4_LRCLK                 0x006A
#define LOCHNAGAR2_GPIO_GF_AIF4_TXDAT                 0x006B
#define LOCHNAGAR2_GPIO_GF_AIF1_BCLK                  0x006C
#define LOCHNAGAR2_GPIO_GF_AIF1_RXDAT                 0x006D
#define LOCHNAGAR2_GPIO_GF_AIF1_LRCLK                 0x006E
#define LOCHNAGAR2_GPIO_GF_AIF1_TXDAT                 0x006F
#define LOCHNAGAR2_GPIO_GF_AIF2_BCLK                  0x0070
#define LOCHNAGAR2_GPIO_GF_AIF2_RXDAT                 0x0071
#define LOCHNAGAR2_GPIO_GF_AIF2_LRCLK                 0x0072
#define LOCHNAGAR2_GPIO_GF_AIF2_TXDAT                 0x0073
#define LOCHNAGAR2_GPIO_DSP_UART1_RX                  0x0074
#define LOCHNAGAR2_GPIO_DSP_UART1_TX                  0x0075
#define LOCHNAGAR2_GPIO_DSP_UART2_RX                  0x0076
#define LOCHNAGAR2_GPIO_DSP_UART2_TX                  0x0077
#define LOCHNAGAR2_GPIO_GF_UART2_RX                   0x0078
#define LOCHNAGAR2_GPIO_GF_UART2_TX                   0x0079
#define LOCHNAGAR2_GPIO_USB_UART_RX                   0x007A
#define LOCHNAGAR2_GPIO_CDC_PDMCLK1                   0x007C
#define LOCHNAGAR2_GPIO_CDC_PDMDAT1                   0x007D
#define LOCHNAGAR2_GPIO_CDC_PDMCLK2                   0x007E
#define LOCHNAGAR2_GPIO_CDC_PDMDAT2                   0x007F
#define LOCHNAGAR2_GPIO_CDC_DMICCLK1                  0x0080
#define LOCHNAGAR2_GPIO_CDC_DMICDAT1                  0x0081
#define LOCHNAGAR2_GPIO_CDC_DMICCLK2                  0x0082
#define LOCHNAGAR2_GPIO_CDC_DMICDAT2                  0x0083
#define LOCHNAGAR2_GPIO_CDC_DMICCLK3                  0x0084
#define LOCHNAGAR2_GPIO_CDC_DMICDAT3                  0x0085
#define LOCHNAGAR2_GPIO_CDC_DMICCLK4                  0x0086
#define LOCHNAGAR2_GPIO_CDC_DMICDAT4                  0x0087
#define LOCHNAGAR2_GPIO_DSP_DMICCLK1                  0x0088
#define LOCHNAGAR2_GPIO_DSP_DMICDAT1                  0x0089
#define LOCHNAGAR2_GPIO_DSP_DMICCLK2                  0x008A
#define LOCHNAGAR2_GPIO_DSP_DMICDAT2                  0x008B
#define LOCHNAGAR2_GPIO_I2C2_SCL                      0x008C
#define LOCHNAGAR2_GPIO_I2C2_SDA                      0x008D
#define LOCHNAGAR2_GPIO_I2C3_SCL                      0x008E
#define LOCHNAGAR2_GPIO_I2C3_SDA                      0x008F
#define LOCHNAGAR2_GPIO_I2C4_SCL                      0x0090
#define LOCHNAGAR2_GPIO_I2C4_SDA                      0x0091
#define LOCHNAGAR2_GPIO_DSP_STANDBY                   0x0092
#define LOCHNAGAR2_GPIO_CDC_MCLK1                     0x0093
#define LOCHNAGAR2_GPIO_CDC_MCLK2                     0x0094
#define LOCHNAGAR2_GPIO_DSP_CLKIN                     0x0095
#define LOCHNAGAR2_GPIO_PSIA1_MCLK                    0x0096
#define LOCHNAGAR2_GPIO_PSIA2_MCLK                    0x0097
#define LOCHNAGAR2_GPIO_GF_GPIO1                      0x0098
#define LOCHNAGAR2_GPIO_GF_GPIO5                      0x0099
#define LOCHNAGAR2_GPIO_DSP_GPIO20                    0x009A
#define LOCHNAGAR2_GPIO_CHANNEL1                      0x00B9
#define LOCHNAGAR2_GPIO_CHANNEL2                      0x00BA
#define LOCHNAGAR2_GPIO_CHANNEL3                      0x00BB
#define LOCHNAGAR2_GPIO_CHANNEL4                      0x00BC
#define LOCHNAGAR2_GPIO_CHANNEL5                      0x00BD
#define LOCHNAGAR2_GPIO_CHANNEL6                      0x00BE
#define LOCHNAGAR2_GPIO_CHANNEL7                      0x00BF
#define LOCHNAGAR2_GPIO_CHANNEL8                      0x00C0
#define LOCHNAGAR2_GPIO_CHANNEL9                      0x00C1
#define LOCHNAGAR2_GPIO_CHANNEL10                     0x00C2
#define LOCHNAGAR2_GPIO_CHANNEL11                     0x00C3
#define LOCHNAGAR2_GPIO_CHANNEL12                     0x00C4
#define LOCHNAGAR2_GPIO_CHANNEL13                     0x00C5
#define LOCHNAGAR2_GPIO_CHANNEL14                     0x00C6
#define LOCHNAGAR2_GPIO_CHANNEL15                     0x00C7
#define LOCHNAGAR2_GPIO_CHANNEL16                     0x00C8
#define LOCHNAGAR2_MINICARD_RESETS                    0x00DF
#define LOCHNAGAR2_ANALOGUE_PATH_CTRL1                0x00E3
#define LOCHNAGAR2_ANALOGUE_PATH_CTRL2                0x00E4
#define LOCHNAGAR2_COMMS_CTRL4                        0x00F0
#define LOCHNAGAR2_SPDIF_CTRL                         0x00FE
#define LOCHNAGAR2_IMON_CTRL1                         0x0108
#define LOCHNAGAR2_IMON_CTRL2                         0x0109
#define LOCHNAGAR2_IMON_CTRL3                         0x010A
#define LOCHNAGAR2_IMON_CTRL4                         0x010B
#define LOCHNAGAR2_IMON_DATA1                         0x010C
#define LOCHNAGAR2_IMON_DATA2                         0x010D
#define LOCHNAGAR2_POWER_CTRL                         0x0116
#define LOCHNAGAR2_MICVDD_CTRL1                       0x0119
#define LOCHNAGAR2_MICVDD_CTRL2                       0x011B
#define LOCHNAGAR2_VDDCORE_CDC_CTRL1                  0x011E
#define LOCHNAGAR2_VDDCORE_CDC_CTRL2                  0x0120
#define LOCHNAGAR2_SOUNDCARD_AIF_CTRL                 0x0180

/* (0x000D-0x001B, 0x0180)  CDC_AIF1_CTRL - SOUNCARD_AIF_CTRL */
#define LOCHNAGAR2_AIF_ENA_MASK                       0x8000
#define LOCHNAGAR2_AIF_ENA_SHIFT                          15
#define LOCHNAGAR2_AIF_LRCLK_DIR_MASK                 0x4000
#define LOCHNAGAR2_AIF_LRCLK_DIR_SHIFT                    14
#define LOCHNAGAR2_AIF_BCLK_DIR_MASK                  0x2000
#define LOCHNAGAR2_AIF_BCLK_DIR_SHIFT                     13
#define LOCHNAGAR2_AIF_SRC_MASK                       0x00FF
#define LOCHNAGAR2_AIF_SRC_SHIFT                           0

/* (0x001E - 0x0027)  CDC_MCLK1_CTRL - SOUNDCARD_MCLK_CTRL */
#define LOCHNAGAR2_CLK_ENA_MASK                       0x8000
#define LOCHNAGAR2_CLK_ENA_SHIFT                          15
#define LOCHNAGAR2_CLK_SRC_MASK                       0x00FF
#define LOCHNAGAR2_CLK_SRC_SHIFT                           0

/* (0x0031 - 0x009A)  GPIO_FPGA_GPIO1 - GPIO_DSP_GPIO20 */
#define LOCHNAGAR2_GPIO_SRC_MASK                      0x00FF
#define LOCHNAGAR2_GPIO_SRC_SHIFT                          0

/* (0x00B9 - 0x00C8)  GPIO_CHANNEL1 - GPIO_CHANNEL16 */
#define LOCHNAGAR2_GPIO_CHANNEL_STS_MASK              0x8000
#define LOCHNAGAR2_GPIO_CHANNEL_STS_SHIFT                 15
#define LOCHNAGAR2_GPIO_CHANNEL_SRC_MASK              0x00FF
#define LOCHNAGAR2_GPIO_CHANNEL_SRC_SHIFT                  0

/* (0x00DF)  MINICARD_RESETS */
#define LOCHNAGAR2_DSP_RESET_MASK                     0x0002
#define LOCHNAGAR2_DSP_RESET_SHIFT                         1
#define LOCHNAGAR2_CDC_RESET_MASK                     0x0001
#define LOCHNAGAR2_CDC_RESET_SHIFT                         0

/* (0x00E3)  ANALOGUE_PATH_CTRL1 */
#define LOCHNAGAR2_ANALOGUE_PATH_UPDATE_MASK          0x8000
#define LOCHNAGAR2_ANALOGUE_PATH_UPDATE_SHIFT             15
#define LOCHNAGAR2_ANALOGUE_PATH_UPDATE_STS_MASK      0x4000
#define LOCHNAGAR2_ANALOGUE_PATH_UPDATE_STS_SHIFT         14

/* (0x00E4)  ANALOGUE_PATH_CTRL2 */
#define LOCHNAGAR2_P2_INPUT_BIAS_ENA_MASK             0x0080
#define LOCHNAGAR2_P2_INPUT_BIAS_ENA_SHIFT                 7
#define LOCHNAGAR2_P1_INPUT_BIAS_ENA_MASK             0x0040
#define LOCHNAGAR2_P1_INPUT_BIAS_ENA_SHIFT                 6
#define LOCHNAGAR2_P2_MICBIAS_SRC_MASK                0x0038
#define LOCHNAGAR2_P2_MICBIAS_SRC_SHIFT                    3
#define LOCHNAGAR2_P1_MICBIAS_SRC_MASK                0x0007
#define LOCHNAGAR2_P1_MICBIAS_SRC_SHIFT                    0

/* (0x00F0)  COMMS_CTRL4 */
#define LOCHNAGAR2_CDC_CIF1MODE_MASK                  0x0001
#define LOCHNAGAR2_CDC_CIF1MODE_SHIFT                      0

/* (0x00FE)  SPDIF_CTRL */
#define LOCHNAGAR2_SPDIF_HWMODE_MASK                  0x0008
#define LOCHNAGAR2_SPDIF_HWMODE_SHIFT                      3
#define LOCHNAGAR2_SPDIF_RESET_MASK                   0x0001
#define LOCHNAGAR2_SPDIF_RESET_SHIFT                       0

/* (0x0108)  IMON_CTRL1 */
#define LOCHNAGAR2_IMON_ENA_MASK                      0x8000
#define LOCHNAGAR2_IMON_ENA_SHIFT                         15
#define LOCHNAGAR2_IMON_MEASURED_CHANNELS_MASK        0x03FC
#define LOCHNAGAR2_IMON_MEASURED_CHANNELS_SHIFT            2
#define LOCHNAGAR2_IMON_MODE_SEL_MASK                 0x0003
#define LOCHNAGAR2_IMON_MODE_SEL_SHIFT                     0

/* (0x0109)  IMON_CTRL2 */
#define LOCHNAGAR2_IMON_FSR_MASK                      0x03FF
#define LOCHNAGAR2_IMON_FSR_SHIFT                          0

/* (0x010A)  IMON_CTRL3 */
#define LOCHNAGAR2_IMON_DONE_MASK                     0x0004
#define LOCHNAGAR2_IMON_DONE_SHIFT                         2
#define LOCHNAGAR2_IMON_CONFIGURE_MASK                0x0002
#define LOCHNAGAR2_IMON_CONFIGURE_SHIFT                    1
#define LOCHNAGAR2_IMON_MEASURE_MASK                  0x0001
#define LOCHNAGAR2_IMON_MEASURE_SHIFT                      0

/* (0x010B)  IMON_CTRL4 */
#define LOCHNAGAR2_IMON_DATA_REQ_MASK                 0x0080
#define LOCHNAGAR2_IMON_DATA_REQ_SHIFT                     7
#define LOCHNAGAR2_IMON_CH_SEL_MASK                   0x0070
#define LOCHNAGAR2_IMON_CH_SEL_SHIFT                       4
#define LOCHNAGAR2_IMON_DATA_RDY_MASK                 0x0008
#define LOCHNAGAR2_IMON_DATA_RDY_SHIFT                     3
#define LOCHNAGAR2_IMON_CH_SRC_MASK                   0x0007
#define LOCHNAGAR2_IMON_CH_SRC_SHIFT                       0

/* (0x010C, 0x010D)  IMON_DATA1, IMON_DATA2 */
#define LOCHNAGAR2_IMON_DATA_MASK                     0xFFFF
#define LOCHNAGAR2_IMON_DATA_SHIFT                         0

/* (0x0116)  POWER_CTRL */
#define LOCHNAGAR2_PWR_ENA_MASK                       0x0001
#define LOCHNAGAR2_PWR_ENA_SHIFT                           0

/* (0x0119)  MICVDD_CTRL1 */
#define LOCHNAGAR2_MICVDD_REG_ENA_MASK                0x8000
#define LOCHNAGAR2_MICVDD_REG_ENA_SHIFT                   15

/* (0x011B)  MICVDD_CTRL2 */
#define LOCHNAGAR2_MICVDD_VSEL_MASK                   0x001F
#define LOCHNAGAR2_MICVDD_VSEL_SHIFT                       0

/* (0x011E)  VDDCORE_CDC_CTRL1 */
#define LOCHNAGAR2_VDDCORE_CDC_REG_ENA_MASK           0x8000
#define LOCHNAGAR2_VDDCORE_CDC_REG_ENA_SHIFT              15

/* (0x0120)  VDDCORE_CDC_CTRL2 */
#define LOCHNAGAR2_VDDCORE_CDC_VSEL_MASK              0x007F
#define LOCHNAGAR2_VDDCORE_CDC_VSEL_SHIFT                  0

#endif