summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mx28/include/mach/regs-ssp.h
blob: 1d4793b25a3bce16921945342fbb2e2ea16122fe (plain)
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
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
/*
 * Freescale SSP Register Definitions
 *
 * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 *
 * This file is created by xml file. Don't Edit it.
 *
 * Xml Revision: 4.0
 * Template revision: 26195
 */

#ifndef __ARCH_ARM___SSP_H
#define __ARCH_ARM___SSP_H

#ifndef BF
#define BF(value, field) (((value) << BP_##field) & BM_##field)
#endif

#define HW_SSP_CTRL0	(0x00000000)
#define HW_SSP_CTRL0_SET	(0x00000004)
#define HW_SSP_CTRL0_CLR	(0x00000008)
#define HW_SSP_CTRL0_TOG	(0x0000000c)

#define BM_SSP_CTRL0_SFTRST	0x80000000
#define BM_SSP_CTRL0_CLKGATE	0x40000000
#define BM_SSP_CTRL0_RUN	0x20000000
#define BM_SSP_CTRL0_SDIO_IRQ_CHECK	0x10000000
#define BM_SSP_CTRL0_LOCK_CS	0x08000000
#define BM_SSP_CTRL0_IGNORE_CRC	0x04000000
#define BM_SSP_CTRL0_READ	0x02000000
#define BM_SSP_CTRL0_DATA_XFER	0x01000000
#define BP_SSP_CTRL0_BUS_WIDTH	22
#define BM_SSP_CTRL0_BUS_WIDTH	0x00C00000
#define BF_SSP_CTRL0_BUS_WIDTH(v)  \
		(((v) << 22) & BM_SSP_CTRL0_BUS_WIDTH)
#define BV_SSP_CTRL0_BUS_WIDTH__ONE_BIT   0x0
#define BV_SSP_CTRL0_BUS_WIDTH__FOUR_BIT  0x1
#define BV_SSP_CTRL0_BUS_WIDTH__EIGHT_BIT 0x2
#define BM_SSP_CTRL0_WAIT_FOR_IRQ	0x00200000
#define BM_SSP_CTRL0_WAIT_FOR_CMD	0x00100000
#define BM_SSP_CTRL0_LONG_RESP	0x00080000
#define BM_SSP_CTRL0_CHECK_RESP	0x00040000
#define BM_SSP_CTRL0_GET_RESP	0x00020000
#define BM_SSP_CTRL0_ENABLE	0x00010000
#define BP_SSP_CTRL0_RSVD0	0
#define BM_SSP_CTRL0_RSVD0	0x0000FFFF
#define BF_SSP_CTRL0_RSVD0(v)  \
		(((v) << 0) & BM_SSP_CTRL0_RSVD0)

#define HW_SSP_CMD0	(0x00000010)
#define HW_SSP_CMD0_SET	(0x00000014)
#define HW_SSP_CMD0_CLR	(0x00000018)
#define HW_SSP_CMD0_TOG	(0x0000001c)

#define BP_SSP_CMD0_RSVD0	27
#define BM_SSP_CMD0_RSVD0	0xF8000000
#define BF_SSP_CMD0_RSVD0(v) \
		(((v) << 27) & BM_SSP_CMD0_RSVD0)
#define BM_SSP_CMD0_SOFT_TERMINATE	0x04000000
#define BM_SSP_CMD0_DBL_DATA_RATE_EN	0x02000000
#define BM_SSP_CMD0_PRIM_BOOT_OP_EN	0x01000000
#define BM_SSP_CMD0_BOOT_ACK_EN	0x00800000
#define BM_SSP_CMD0_SLOW_CLKING_EN	0x00400000
#define BM_SSP_CMD0_CONT_CLKING_EN	0x00200000
#define BM_SSP_CMD0_APPEND_8CYC	0x00100000
#define BP_SSP_CMD0_RSVD1	8
#define BM_SSP_CMD0_RSVD1	0x000FFF00
#define BF_SSP_CMD0_RSVD1(v)  \
		(((v) << 8) & BM_SSP_CMD0_RSVD1)
#define BP_SSP_CMD0_CMD	0
#define BM_SSP_CMD0_CMD	0x000000FF
#define BF_SSP_CMD0_CMD(v)  \
		(((v) << 0) & BM_SSP_CMD0_CMD)
#define BV_SSP_CMD0_CMD__MMC_GO_IDLE_STATE        0x00
#define BV_SSP_CMD0_CMD__MMC_SEND_OP_COND         0x01
#define BV_SSP_CMD0_CMD__MMC_ALL_SEND_CID         0x02
#define BV_SSP_CMD0_CMD__MMC_SET_RELATIVE_ADDR    0x03
#define BV_SSP_CMD0_CMD__MMC_SET_DSR              0x04
#define BV_SSP_CMD0_CMD__MMC_RESERVED_5           0x05
#define BV_SSP_CMD0_CMD__MMC_SWITCH               0x06
#define BV_SSP_CMD0_CMD__MMC_SELECT_DESELECT_CARD 0x07
#define BV_SSP_CMD0_CMD__MMC_SEND_EXT_CSD         0x08
#define BV_SSP_CMD0_CMD__MMC_SEND_CSD             0x09
#define BV_SSP_CMD0_CMD__MMC_SEND_CID             0x0A
#define BV_SSP_CMD0_CMD__MMC_READ_DAT_UNTIL_STOP  0x0B
#define BV_SSP_CMD0_CMD__MMC_STOP_TRANSMISSION    0x0C
#define BV_SSP_CMD0_CMD__MMC_SEND_STATUS          0x0D
#define BV_SSP_CMD0_CMD__MMC_BUSTEST_R            0x0E
#define BV_SSP_CMD0_CMD__MMC_GO_INACTIVE_STATE    0x0F
#define BV_SSP_CMD0_CMD__MMC_SET_BLOCKLEN         0x10
#define BV_SSP_CMD0_CMD__MMC_READ_SINGLE_BLOCK    0x11
#define BV_SSP_CMD0_CMD__MMC_READ_MULTIPLE_BLOCK  0x12
#define BV_SSP_CMD0_CMD__MMC_BUSTEST_W            0x13
#define BV_SSP_CMD0_CMD__MMC_WRITE_DAT_UNTIL_STOP 0x14
#define BV_SSP_CMD0_CMD__MMC_SET_BLOCK_COUNT      0x17
#define BV_SSP_CMD0_CMD__MMC_WRITE_BLOCK          0x18
#define BV_SSP_CMD0_CMD__MMC_WRITE_MULTIPLE_BLOCK 0x19
#define BV_SSP_CMD0_CMD__MMC_PROGRAM_CID          0x1A
#define BV_SSP_CMD0_CMD__MMC_PROGRAM_CSD          0x1B
#define BV_SSP_CMD0_CMD__MMC_SET_WRITE_PROT       0x1C
#define BV_SSP_CMD0_CMD__MMC_CLR_WRITE_PROT       0x1D
#define BV_SSP_CMD0_CMD__MMC_SEND_WRITE_PROT      0x1E
#define BV_SSP_CMD0_CMD__MMC_ERASE_GROUP_START    0x23
#define BV_SSP_CMD0_CMD__MMC_ERASE_GROUP_END      0x24
#define BV_SSP_CMD0_CMD__MMC_ERASE                0x26
#define BV_SSP_CMD0_CMD__MMC_FAST_IO              0x27
#define BV_SSP_CMD0_CMD__MMC_GO_IRQ_STATE         0x28
#define BV_SSP_CMD0_CMD__MMC_LOCK_UNLOCK          0x2A
#define BV_SSP_CMD0_CMD__MMC_APP_CMD              0x37
#define BV_SSP_CMD0_CMD__MMC_GEN_CMD              0x38
#define BV_SSP_CMD0_CMD__SD_GO_IDLE_STATE         0x00
#define BV_SSP_CMD0_CMD__SD_ALL_SEND_CID          0x02
#define BV_SSP_CMD0_CMD__SD_SEND_RELATIVE_ADDR    0x03
#define BV_SSP_CMD0_CMD__SD_SET_DSR               0x04
#define BV_SSP_CMD0_CMD__SD_IO_SEND_OP_COND       0x05
#define BV_SSP_CMD0_CMD__SD_SELECT_DESELECT_CARD  0x07
#define BV_SSP_CMD0_CMD__SD_SEND_CSD              0x09
#define BV_SSP_CMD0_CMD__SD_SEND_CID              0x0A
#define BV_SSP_CMD0_CMD__SD_STOP_TRANSMISSION     0x0C
#define BV_SSP_CMD0_CMD__SD_SEND_STATUS           0x0D
#define BV_SSP_CMD0_CMD__SD_GO_INACTIVE_STATE     0x0F
#define BV_SSP_CMD0_CMD__SD_SET_BLOCKLEN          0x10
#define BV_SSP_CMD0_CMD__SD_READ_SINGLE_BLOCK     0x11
#define BV_SSP_CMD0_CMD__SD_READ_MULTIPLE_BLOCK   0x12
#define BV_SSP_CMD0_CMD__SD_WRITE_BLOCK           0x18
#define BV_SSP_CMD0_CMD__SD_WRITE_MULTIPLE_BLOCK  0x19
#define BV_SSP_CMD0_CMD__SD_PROGRAM_CSD           0x1B
#define BV_SSP_CMD0_CMD__SD_SET_WRITE_PROT        0x1C
#define BV_SSP_CMD0_CMD__SD_CLR_WRITE_PROT        0x1D
#define BV_SSP_CMD0_CMD__SD_SEND_WRITE_PROT       0x1E
#define BV_SSP_CMD0_CMD__SD_ERASE_WR_BLK_START    0x20
#define BV_SSP_CMD0_CMD__SD_ERASE_WR_BLK_END      0x21
#define BV_SSP_CMD0_CMD__SD_ERASE_GROUP_START     0x23
#define BV_SSP_CMD0_CMD__SD_ERASE_GROUP_END       0x24
#define BV_SSP_CMD0_CMD__SD_ERASE                 0x26
#define BV_SSP_CMD0_CMD__SD_LOCK_UNLOCK           0x2A
#define BV_SSP_CMD0_CMD__SD_IO_RW_DIRECT          0x34
#define BV_SSP_CMD0_CMD__SD_IO_RW_EXTENDED        0x35
#define BV_SSP_CMD0_CMD__SD_APP_CMD               0x37
#define BV_SSP_CMD0_CMD__SD_GEN_CMD               0x38

#define HW_SSP_CMD1	(0x00000020)

#define BP_SSP_CMD1_CMD_ARG	0
#define BM_SSP_CMD1_CMD_ARG	0xFFFFFFFF
#define BF_SSP_CMD1_CMD_ARG(v)	(v)

#define HW_SSP_XFER_SIZE	(0x00000030)

#define BP_SSP_XFER_SIZE_XFER_COUNT	0
#define BM_SSP_XFER_SIZE_XFER_COUNT	0xFFFFFFFF
#define BF_SSP_XFER_SIZE_XFER_COUNT(v)	(v)

#define HW_SSP_BLOCK_SIZE	(0x00000040)

#define BP_SSP_BLOCK_SIZE_RSVD0	28
#define BM_SSP_BLOCK_SIZE_RSVD0	0xF0000000
#define BF_SSP_BLOCK_SIZE_RSVD0(v) \
		(((v) << 28) & BM_SSP_BLOCK_SIZE_RSVD0)
#define BP_SSP_BLOCK_SIZE_BLOCK_COUNT	4
#define BM_SSP_BLOCK_SIZE_BLOCK_COUNT	0x0FFFFFF0
#define BF_SSP_BLOCK_SIZE_BLOCK_COUNT(v)  \
		(((v) << 4) & BM_SSP_BLOCK_SIZE_BLOCK_COUNT)
#define BP_SSP_BLOCK_SIZE_BLOCK_SIZE	0
#define BM_SSP_BLOCK_SIZE_BLOCK_SIZE	0x0000000F
#define BF_SSP_BLOCK_SIZE_BLOCK_SIZE(v)  \
		(((v) << 0) & BM_SSP_BLOCK_SIZE_BLOCK_SIZE)

#define HW_SSP_COMPREF	(0x00000050)

#define BP_SSP_COMPREF_REFERENCE	0
#define BM_SSP_COMPREF_REFERENCE	0xFFFFFFFF
#define BF_SSP_COMPREF_REFERENCE(v)	(v)

#define HW_SSP_COMPMASK	(0x00000060)

#define BP_SSP_COMPMASK_MASK	0
#define BM_SSP_COMPMASK_MASK	0xFFFFFFFF
#define BF_SSP_COMPMASK_MASK(v)	(v)

#define HW_SSP_TIMING	(0x00000070)

#define BP_SSP_TIMING_TIMEOUT	16
#define BM_SSP_TIMING_TIMEOUT	0xFFFF0000
#define BF_SSP_TIMING_TIMEOUT(v) \
		(((v) << 16) & BM_SSP_TIMING_TIMEOUT)
#define BP_SSP_TIMING_CLOCK_DIVIDE	8
#define BM_SSP_TIMING_CLOCK_DIVIDE	0x0000FF00
#define BF_SSP_TIMING_CLOCK_DIVIDE(v)  \
		(((v) << 8) & BM_SSP_TIMING_CLOCK_DIVIDE)
#define BP_SSP_TIMING_CLOCK_RATE	0
#define BM_SSP_TIMING_CLOCK_RATE	0x000000FF
#define BF_SSP_TIMING_CLOCK_RATE(v)  \
		(((v) << 0) & BM_SSP_TIMING_CLOCK_RATE)

#define HW_SSP_CTRL1	(0x00000080)
#define HW_SSP_CTRL1_SET	(0x00000084)
#define HW_SSP_CTRL1_CLR	(0x00000088)
#define HW_SSP_CTRL1_TOG	(0x0000008c)

#define BM_SSP_CTRL1_SDIO_IRQ	0x80000000
#define BM_SSP_CTRL1_SDIO_IRQ_EN	0x40000000
#define BM_SSP_CTRL1_RESP_ERR_IRQ	0x20000000
#define BM_SSP_CTRL1_RESP_ERR_IRQ_EN	0x10000000
#define BM_SSP_CTRL1_RESP_TIMEOUT_IRQ	0x08000000
#define BM_SSP_CTRL1_RESP_TIMEOUT_IRQ_EN	0x04000000
#define BM_SSP_CTRL1_DATA_TIMEOUT_IRQ	0x02000000
#define BM_SSP_CTRL1_DATA_TIMEOUT_IRQ_EN	0x01000000
#define BM_SSP_CTRL1_DATA_CRC_IRQ	0x00800000
#define BM_SSP_CTRL1_DATA_CRC_IRQ_EN	0x00400000
#define BM_SSP_CTRL1_FIFO_UNDERRUN_IRQ	0x00200000
#define BM_SSP_CTRL1_FIFO_UNDERRUN_EN	0x00100000
#define BM_SSP_CTRL1_CEATA_CCS_ERR_IRQ	0x00080000
#define BM_SSP_CTRL1_CEATA_CCS_ERR_IRQ_EN	0x00040000
#define BM_SSP_CTRL1_RECV_TIMEOUT_IRQ	0x00020000
#define BM_SSP_CTRL1_RECV_TIMEOUT_IRQ_EN	0x00010000
#define BM_SSP_CTRL1_FIFO_OVERRUN_IRQ	0x00008000
#define BM_SSP_CTRL1_FIFO_OVERRUN_IRQ_EN	0x00004000
#define BM_SSP_CTRL1_DMA_ENABLE	0x00002000
#define BM_SSP_CTRL1_CEATA_CCS_ERR_EN	0x00001000
#define BM_SSP_CTRL1_SLAVE_OUT_DISABLE	0x00000800
#define BM_SSP_CTRL1_PHASE	0x00000400
#define BM_SSP_CTRL1_POLARITY	0x00000200
#define BM_SSP_CTRL1_SLAVE_MODE	0x00000100
#define BP_SSP_CTRL1_WORD_LENGTH	4
#define BM_SSP_CTRL1_WORD_LENGTH	0x000000F0
#define BF_SSP_CTRL1_WORD_LENGTH(v)  \
		(((v) << 4) & BM_SSP_CTRL1_WORD_LENGTH)
#define BV_SSP_CTRL1_WORD_LENGTH__RESERVED0    0x0
#define BV_SSP_CTRL1_WORD_LENGTH__RESERVED1    0x1
#define BV_SSP_CTRL1_WORD_LENGTH__RESERVED2    0x2
#define BV_SSP_CTRL1_WORD_LENGTH__FOUR_BITS    0x3
#define BV_SSP_CTRL1_WORD_LENGTH__EIGHT_BITS   0x7
#define BV_SSP_CTRL1_WORD_LENGTH__SIXTEEN_BITS 0xF
#define BP_SSP_CTRL1_SSP_MODE	0
#define BM_SSP_CTRL1_SSP_MODE	0x0000000F
#define BF_SSP_CTRL1_SSP_MODE(v)  \
		(((v) << 0) & BM_SSP_CTRL1_SSP_MODE)
#define BV_SSP_CTRL1_SSP_MODE__SPI    0x0
#define BV_SSP_CTRL1_SSP_MODE__SSI    0x1
#define BV_SSP_CTRL1_SSP_MODE__SD_MMC 0x3
#define BV_SSP_CTRL1_SSP_MODE__MS     0x4

#define HW_SSP_DATA	(0x00000090)

#define BP_SSP_DATA_DATA	0
#define BM_SSP_DATA_DATA	0xFFFFFFFF
#define BF_SSP_DATA_DATA(v)	(v)

#define HW_SSP_SDRESP0	(0x000000a0)

#define BP_SSP_SDRESP0_RESP0	0
#define BM_SSP_SDRESP0_RESP0	0xFFFFFFFF
#define BF_SSP_SDRESP0_RESP0(v)	(v)

#define HW_SSP_SDRESP1	(0x000000b0)

#define BP_SSP_SDRESP1_RESP1	0
#define BM_SSP_SDRESP1_RESP1	0xFFFFFFFF
#define BF_SSP_SDRESP1_RESP1(v)	(v)

#define HW_SSP_SDRESP2	(0x000000c0)

#define BP_SSP_SDRESP2_RESP2	0
#define BM_SSP_SDRESP2_RESP2	0xFFFFFFFF
#define BF_SSP_SDRESP2_RESP2(v)	(v)

#define HW_SSP_SDRESP3	(0x000000d0)

#define BP_SSP_SDRESP3_RESP3	0
#define BM_SSP_SDRESP3_RESP3	0xFFFFFFFF
#define BF_SSP_SDRESP3_RESP3(v)	(v)

#define HW_SSP_DDR_CTRL	(0x000000e0)

#define BP_SSP_DDR_CTRL_DMA_BURST_TYPE	30
#define BM_SSP_DDR_CTRL_DMA_BURST_TYPE	0xC0000000
#define BF_SSP_DDR_CTRL_DMA_BURST_TYPE(v) \
		(((v) << 30) & BM_SSP_DDR_CTRL_DMA_BURST_TYPE)
#define BP_SSP_DDR_CTRL_RSVD0	2
#define BM_SSP_DDR_CTRL_RSVD0	0x3FFFFFFC
#define BF_SSP_DDR_CTRL_RSVD0(v)  \
		(((v) << 2) & BM_SSP_DDR_CTRL_RSVD0)
#define BM_SSP_DDR_CTRL_NIBBLE_POS	0x00000002
#define BM_SSP_DDR_CTRL_TXCLK_DELAY_TYPE	0x00000001

#define HW_SSP_DLL_CTRL	(0x000000f0)

#define BP_SSP_DLL_CTRL_REF_UPDATE_INT	28
#define BM_SSP_DLL_CTRL_REF_UPDATE_INT	0xF0000000
#define BF_SSP_DLL_CTRL_REF_UPDATE_INT(v) \
		(((v) << 28) & BM_SSP_DLL_CTRL_REF_UPDATE_INT)
#define BP_SSP_DLL_CTRL_SLV_UPDATE_INT	20
#define BM_SSP_DLL_CTRL_SLV_UPDATE_INT	0x0FF00000
#define BF_SSP_DLL_CTRL_SLV_UPDATE_INT(v)  \
		(((v) << 20) & BM_SSP_DLL_CTRL_SLV_UPDATE_INT)
#define BP_SSP_DLL_CTRL_RSVD1	16
#define BM_SSP_DLL_CTRL_RSVD1	0x000F0000
#define BF_SSP_DLL_CTRL_RSVD1(v)  \
		(((v) << 16) & BM_SSP_DLL_CTRL_RSVD1)
#define BP_SSP_DLL_CTRL_SLV_OVERRIDE_VAL	10
#define BM_SSP_DLL_CTRL_SLV_OVERRIDE_VAL	0x0000FC00
#define BF_SSP_DLL_CTRL_SLV_OVERRIDE_VAL(v)  \
		(((v) << 10) & BM_SSP_DLL_CTRL_SLV_OVERRIDE_VAL)
#define BM_SSP_DLL_CTRL_SLV_OVERRIDE	0x00000200
#define BM_SSP_DLL_CTRL_RSVD0	0x00000100
#define BM_SSP_DLL_CTRL_GATE_UPDATE	0x00000080
#define BP_SSP_DLL_CTRL_SLV_DLY_TARGET	3
#define BM_SSP_DLL_CTRL_SLV_DLY_TARGET	0x00000078
#define BF_SSP_DLL_CTRL_SLV_DLY_TARGET(v)  \
		(((v) << 3) & BM_SSP_DLL_CTRL_SLV_DLY_TARGET)
#define BM_SSP_DLL_CTRL_SLV_FORCE_UPD	0x00000004
#define BM_SSP_DLL_CTRL_RESET	0x00000002
#define BM_SSP_DLL_CTRL_ENABLE	0x00000001

#define HW_SSP_STATUS	(0x00000100)

#define BM_SSP_STATUS_PRESENT	0x80000000
#define BM_SSP_STATUS_MS_PRESENT	0x40000000
#define BM_SSP_STATUS_SD_PRESENT	0x20000000
#define BM_SSP_STATUS_CARD_DETECT	0x10000000
#define BP_SSP_STATUS_RSVD3	23
#define BM_SSP_STATUS_RSVD3	0x0F800000
#define BF_SSP_STATUS_RSVD3(v)  \
		(((v) << 23) & BM_SSP_STATUS_RSVD3)
#define BM_SSP_STATUS_DMABURST	0x00400000
#define BM_SSP_STATUS_DMASENSE	0x00200000
#define BM_SSP_STATUS_DMATERM	0x00100000
#define BM_SSP_STATUS_DMAREQ	0x00080000
#define BM_SSP_STATUS_DMAEND	0x00040000
#define BM_SSP_STATUS_SDIO_IRQ	0x00020000
#define BM_SSP_STATUS_RESP_CRC_ERR	0x00010000
#define BM_SSP_STATUS_RESP_ERR	0x00008000
#define BM_SSP_STATUS_RESP_TIMEOUT	0x00004000
#define BM_SSP_STATUS_DATA_CRC_ERR	0x00002000
#define BM_SSP_STATUS_TIMEOUT	0x00001000
#define BM_SSP_STATUS_RECV_TIMEOUT_STAT	0x00000800
#define BM_SSP_STATUS_CEATA_CCS_ERR	0x00000400
#define BM_SSP_STATUS_FIFO_OVRFLW	0x00000200
#define BM_SSP_STATUS_FIFO_FULL	0x00000100
#define BP_SSP_STATUS_RSVD1	6
#define BM_SSP_STATUS_RSVD1	0x000000C0
#define BF_SSP_STATUS_RSVD1(v)  \
		(((v) << 6) & BM_SSP_STATUS_RSVD1)
#define BM_SSP_STATUS_FIFO_EMPTY	0x00000020
#define BM_SSP_STATUS_FIFO_UNDRFLW	0x00000010
#define BM_SSP_STATUS_CMD_BUSY	0x00000008
#define BM_SSP_STATUS_DATA_BUSY	0x00000004
#define BM_SSP_STATUS_RSVD0	0x00000002
#define BM_SSP_STATUS_BUSY	0x00000001

#define HW_SSP_DLL_STS	(0x00000110)

#define BP_SSP_DLL_STS_RSVD0	14
#define BM_SSP_DLL_STS_RSVD0	0xFFFFC000
#define BF_SSP_DLL_STS_RSVD0(v) \
		(((v) << 14) & BM_SSP_DLL_STS_RSVD0)
#define BP_SSP_DLL_STS_REF_SEL	8
#define BM_SSP_DLL_STS_REF_SEL	0x00003F00
#define BF_SSP_DLL_STS_REF_SEL(v)  \
		(((v) << 8) & BM_SSP_DLL_STS_REF_SEL)
#define BP_SSP_DLL_STS_SLV_SEL	2
#define BM_SSP_DLL_STS_SLV_SEL	0x000000FC
#define BF_SSP_DLL_STS_SLV_SEL(v)  \
		(((v) << 2) & BM_SSP_DLL_STS_SLV_SEL)
#define BM_SSP_DLL_STS_REF_LOCK	0x00000002
#define BM_SSP_DLL_STS_SLV_LOCK	0x00000001

#define HW_SSP_DEBUG	(0x00000120)

#define BP_SSP_DEBUG_DATACRC_ERR	28
#define BM_SSP_DEBUG_DATACRC_ERR	0xF0000000
#define BF_SSP_DEBUG_DATACRC_ERR(v) \
		(((v) << 28) & BM_SSP_DEBUG_DATACRC_ERR)
#define BM_SSP_DEBUG_DATA_STALL	0x08000000
#define BP_SSP_DEBUG_DAT_SM	24
#define BM_SSP_DEBUG_DAT_SM	0x07000000
#define BF_SSP_DEBUG_DAT_SM(v)  \
		(((v) << 24) & BM_SSP_DEBUG_DAT_SM)
#define BV_SSP_DEBUG_DAT_SM__DSM_IDLE 0x0
#define BV_SSP_DEBUG_DAT_SM__DSM_WORD 0x2
#define BV_SSP_DEBUG_DAT_SM__DSM_CRC1 0x3
#define BV_SSP_DEBUG_DAT_SM__DSM_CRC2 0x4
#define BV_SSP_DEBUG_DAT_SM__DSM_END  0x5
#define BP_SSP_DEBUG_MSTK_SM	20
#define BM_SSP_DEBUG_MSTK_SM	0x00F00000
#define BF_SSP_DEBUG_MSTK_SM(v)  \
		(((v) << 20) & BM_SSP_DEBUG_MSTK_SM)
#define BV_SSP_DEBUG_MSTK_SM__MSTK_IDLE  0x0
#define BV_SSP_DEBUG_MSTK_SM__MSTK_CKON  0x1
#define BV_SSP_DEBUG_MSTK_SM__MSTK_BS1   0x2
#define BV_SSP_DEBUG_MSTK_SM__MSTK_TPC   0x3
#define BV_SSP_DEBUG_MSTK_SM__MSTK_BS2   0x4
#define BV_SSP_DEBUG_MSTK_SM__MSTK_HDSHK 0x5
#define BV_SSP_DEBUG_MSTK_SM__MSTK_BS3   0x6
#define BV_SSP_DEBUG_MSTK_SM__MSTK_RW    0x7
#define BV_SSP_DEBUG_MSTK_SM__MSTK_CRC1  0x8
#define BV_SSP_DEBUG_MSTK_SM__MSTK_CRC2  0x9
#define BV_SSP_DEBUG_MSTK_SM__MSTK_BS0   0xA
#define BV_SSP_DEBUG_MSTK_SM__MSTK_END1  0xB
#define BV_SSP_DEBUG_MSTK_SM__MSTK_END2W 0xC
#define BV_SSP_DEBUG_MSTK_SM__MSTK_END2R 0xD
#define BV_SSP_DEBUG_MSTK_SM__MSTK_DONE  0xE
#define BM_SSP_DEBUG_CMD_OE	0x00080000
#define BP_SSP_DEBUG_DMA_SM	16
#define BM_SSP_DEBUG_DMA_SM	0x00070000
#define BF_SSP_DEBUG_DMA_SM(v)  \
		(((v) << 16) & BM_SSP_DEBUG_DMA_SM)
#define BV_SSP_DEBUG_DMA_SM__DMA_IDLE   0x0
#define BV_SSP_DEBUG_DMA_SM__DMA_DMAREQ 0x1
#define BV_SSP_DEBUG_DMA_SM__DMA_DMAACK 0x2
#define BV_SSP_DEBUG_DMA_SM__DMA_STALL  0x3
#define BV_SSP_DEBUG_DMA_SM__DMA_BUSY   0x4
#define BV_SSP_DEBUG_DMA_SM__DMA_DONE   0x5
#define BV_SSP_DEBUG_DMA_SM__DMA_COUNT  0x6
#define BP_SSP_DEBUG_MMC_SM	12
#define BM_SSP_DEBUG_MMC_SM	0x0000F000
#define BF_SSP_DEBUG_MMC_SM(v)  \
		(((v) << 12) & BM_SSP_DEBUG_MMC_SM)
#define BV_SSP_DEBUG_MMC_SM__MMC_IDLE 0x0
#define BV_SSP_DEBUG_MMC_SM__MMC_CMD  0x1
#define BV_SSP_DEBUG_MMC_SM__MMC_TRC  0x2
#define BV_SSP_DEBUG_MMC_SM__MMC_RESP 0x3
#define BV_SSP_DEBUG_MMC_SM__MMC_RPRX 0x4
#define BV_SSP_DEBUG_MMC_SM__MMC_TX   0x5
#define BV_SSP_DEBUG_MMC_SM__MMC_CTOK 0x6
#define BV_SSP_DEBUG_MMC_SM__MMC_RX   0x7
#define BV_SSP_DEBUG_MMC_SM__MMC_CCS  0x8
#define BV_SSP_DEBUG_MMC_SM__MMC_PUP  0x9
#define BV_SSP_DEBUG_MMC_SM__MMC_WAIT 0xA
#define BP_SSP_DEBUG_CMD_SM	10
#define BM_SSP_DEBUG_CMD_SM	0x00000C00
#define BF_SSP_DEBUG_CMD_SM(v)  \
		(((v) << 10) & BM_SSP_DEBUG_CMD_SM)
#define BV_SSP_DEBUG_CMD_SM__CSM_IDLE  0x0
#define BV_SSP_DEBUG_CMD_SM__CSM_INDEX 0x1
#define BV_SSP_DEBUG_CMD_SM__CSM_ARG   0x2
#define BV_SSP_DEBUG_CMD_SM__CSM_CRC   0x3
#define BM_SSP_DEBUG_SSP_CMD	0x00000200
#define BM_SSP_DEBUG_SSP_RESP	0x00000100
#define BP_SSP_DEBUG_SSP_RXD	0
#define BM_SSP_DEBUG_SSP_RXD	0x000000FF
#define BF_SSP_DEBUG_SSP_RXD(v)  \
		(((v) << 0) & BM_SSP_DEBUG_SSP_RXD)

#define HW_SSP_VERSION	(0x00000130)

#define BP_SSP_VERSION_MAJOR	24
#define BM_SSP_VERSION_MAJOR	0xFF000000
#define BF_SSP_VERSION_MAJOR(v) \
		(((v) << 24) & BM_SSP_VERSION_MAJOR)
#define BP_SSP_VERSION_MINOR	16
#define BM_SSP_VERSION_MINOR	0x00FF0000
#define BF_SSP_VERSION_MINOR(v)  \
		(((v) << 16) & BM_SSP_VERSION_MINOR)
#define BP_SSP_VERSION_STEP	0
#define BM_SSP_VERSION_STEP	0x0000FFFF
#define BF_SSP_VERSION_STEP(v)  \
		(((v) << 0) & BM_SSP_VERSION_STEP)
#endif /* __ARCH_ARM___SSP_H */