blob: e991216d0bd4bda0bbed9bbb8421027af67a122c (
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
|
/*
* Freescale i.MX28 SSP Register Definitions
*
* Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
*
* Based on code from LTIB:
* Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved.
*
* SPDX-License-Identifier: GPL-2.0+
*/
#ifndef __MX28_REGS_SSP_H__
#define __MX28_REGS_SSP_H__
#include <asm/imx-common/regs-common.h>
#ifndef __ASSEMBLY__
#if defined(CONFIG_MX23)
struct mxs_ssp_regs {
mxs_reg_32(hw_ssp_ctrl0)
mxs_reg_32(hw_ssp_cmd0)
mxs_reg_32(hw_ssp_cmd1)
mxs_reg_32(hw_ssp_compref)
mxs_reg_32(hw_ssp_compmask)
mxs_reg_32(hw_ssp_timing)
mxs_reg_32(hw_ssp_ctrl1)
mxs_reg_32(hw_ssp_data)
mxs_reg_32(hw_ssp_sdresp0)
mxs_reg_32(hw_ssp_sdresp1)
mxs_reg_32(hw_ssp_sdresp2)
mxs_reg_32(hw_ssp_sdresp3)
mxs_reg_32(hw_ssp_status)
uint32_t reserved1[12];
mxs_reg_32(hw_ssp_debug)
mxs_reg_32(hw_ssp_version)
};
#elif defined(CONFIG_MX28)
struct mxs_ssp_regs {
mxs_reg_32(hw_ssp_ctrl0)
mxs_reg_32(hw_ssp_cmd0)
mxs_reg_32(hw_ssp_cmd1)
mxs_reg_32(hw_ssp_xfer_size)
mxs_reg_32(hw_ssp_block_size)
mxs_reg_32(hw_ssp_compref)
mxs_reg_32(hw_ssp_compmask)
mxs_reg_32(hw_ssp_timing)
mxs_reg_32(hw_ssp_ctrl1)
mxs_reg_32(hw_ssp_data)
mxs_reg_32(hw_ssp_sdresp0)
mxs_reg_32(hw_ssp_sdresp1)
mxs_reg_32(hw_ssp_sdresp2)
mxs_reg_32(hw_ssp_sdresp3)
mxs_reg_32(hw_ssp_ddr_ctrl)
mxs_reg_32(hw_ssp_dll_ctrl)
mxs_reg_32(hw_ssp_status)
mxs_reg_32(hw_ssp_dll_sts)
mxs_reg_32(hw_ssp_debug)
mxs_reg_32(hw_ssp_version)
};
#endif
static inline int mxs_ssp_bus_id_valid(int bus)
{
#if defined(CONFIG_MX23)
const unsigned int mxs_ssp_chan_count = 2;
#elif defined(CONFIG_MX28)
const unsigned int mxs_ssp_chan_count = 4;
#endif
if (bus >= mxs_ssp_chan_count)
return 0;
if (bus < 0)
return 0;
return 1;
}
static inline int mxs_ssp_clock_by_bus(unsigned int clock)
{
#if defined(CONFIG_MX23)
return 0;
#elif defined(CONFIG_MX28)
return clock;
#endif
}
static inline struct mxs_ssp_regs *mxs_ssp_regs_by_bus(unsigned int port)
{
switch (port) {
case 0:
return (struct mxs_ssp_regs *)MXS_SSP0_BASE;
case 1:
return (struct mxs_ssp_regs *)MXS_SSP1_BASE;
#ifdef CONFIG_MX28
case 2:
return (struct mxs_ssp_regs *)MXS_SSP2_BASE;
case 3:
return (struct mxs_ssp_regs *)MXS_SSP3_BASE;
#endif
default:
return NULL;
}
}
#endif
#define SSP_CTRL0_SFTRST (1 << 31)
#define SSP_CTRL0_CLKGATE (1 << 30)
#define SSP_CTRL0_RUN (1 << 29)
#define SSP_CTRL0_SDIO_IRQ_CHECK (1 << 28)
#define SSP_CTRL0_LOCK_CS (1 << 27)
#define SSP_CTRL0_IGNORE_CRC (1 << 26)
#define SSP_CTRL0_READ (1 << 25)
#define SSP_CTRL0_DATA_XFER (1 << 24)
#define SSP_CTRL0_BUS_WIDTH_MASK (0x3 << 22)
#define SSP_CTRL0_BUS_WIDTH_OFFSET 22
#define SSP_CTRL0_BUS_WIDTH_ONE_BIT (0x0 << 22)
#define SSP_CTRL0_BUS_WIDTH_FOUR_BIT (0x1 << 22)
#define SSP_CTRL0_BUS_WIDTH_EIGHT_BIT (0x2 << 22)
#define SSP_CTRL0_WAIT_FOR_IRQ (1 << 21)
#define SSP_CTRL0_WAIT_FOR_CMD (1 << 20)
#define SSP_CTRL0_LONG_RESP (1 << 19)
#define SSP_CTRL0_CHECK_RESP (1 << 18)
#define SSP_CTRL0_GET_RESP (1 << 17)
#define SSP_CTRL0_ENABLE (1 << 16)
#ifdef CONFIG_MX23
#define SSP_CTRL0_XFER_COUNT_OFFSET 0
#define SSP_CTRL0_XFER_COUNT_MASK 0xffff
#endif
#define SSP_CMD0_SOFT_TERMINATE (1 << 26)
#define SSP_CMD0_DBL_DATA_RATE_EN (1 << 25)
#define SSP_CMD0_PRIM_BOOT_OP_EN (1 << 24)
#define SSP_CMD0_BOOT_ACK_EN (1 << 23)
#define SSP_CMD0_SLOW_CLKING_EN (1 << 22)
#define SSP_CMD0_CONT_CLKING_EN (1 << 21)
#define SSP_CMD0_APPEND_8CYC (1 << 20)
#if defined(CONFIG_MX23)
#define SSP_CMD0_BLOCK_SIZE_MASK (0xf << 16)
#define SSP_CMD0_BLOCK_SIZE_OFFSET 16
#define SSP_CMD0_BLOCK_COUNT_MASK (0xff << 8)
#define SSP_CMD0_BLOCK_COUNT_OFFSET 8
#endif
#define SSP_CMD0_CMD_MASK 0xff
#define SSP_CMD0_CMD_OFFSET 0
#define SSP_CMD0_CMD_MMC_GO_IDLE_STATE 0x00
#define SSP_CMD0_CMD_MMC_SEND_OP_COND 0x01
#define SSP_CMD0_CMD_MMC_ALL_SEND_CID 0x02
#define SSP_CMD0_CMD_MMC_SET_RELATIVE_ADDR 0x03
#define SSP_CMD0_CMD_MMC_SET_DSR 0x04
#define SSP_CMD0_CMD_MMC_RESERVED_5 0x05
#define SSP_CMD0_CMD_MMC_SWITCH 0x06
#define SSP_CMD0_CMD_MMC_SELECT_DESELECT_CARD 0x07
#define SSP_CMD0_CMD_MMC_SEND_EXT_CSD 0x08
#define SSP_CMD0_CMD_MMC_SEND_CSD 0x09
#define SSP_CMD0_CMD_MMC_SEND_CID 0x0a
#define SSP_CMD0_CMD_MMC_READ_DAT_UNTIL_STOP 0x0b
#define SSP_CMD0_CMD_MMC_STOP_TRANSMISSION 0x0c
#define SSP_CMD0_CMD_MMC_SEND_STATUS 0x0d
#define SSP_CMD0_CMD_MMC_BUSTEST_R 0x0e
#define SSP_CMD0_CMD_MMC_GO_INACTIVE_STATE 0x0f
#define SSP_CMD0_CMD_MMC_SET_BLOCKLEN 0x10
#define SSP_CMD0_CMD_MMC_READ_SINGLE_BLOCK 0x11
#define SSP_CMD0_CMD_MMC_READ_MULTIPLE_BLOCK 0x12
#define SSP_CMD0_CMD_MMC_BUSTEST_W 0x13
#define SSP_CMD0_CMD_MMC_WRITE_DAT_UNTIL_STOP 0x14
#define SSP_CMD0_CMD_MMC_SET_BLOCK_COUNT 0x17
#define SSP_CMD0_CMD_MMC_WRITE_BLOCK 0x18
#define SSP_CMD0_CMD_MMC_WRITE_MULTIPLE_BLOCK 0x19
#define SSP_CMD0_CMD_MMC_PROGRAM_CID 0x1a
#define SSP_CMD0_CMD_MMC_PROGRAM_CSD 0x1b
#define SSP_CMD0_CMD_MMC_SET_WRITE_PROT 0x1c
#define SSP_CMD0_CMD_MMC_CLR_WRITE_PROT 0x1d
#define SSP_CMD0_CMD_MMC_SEND_WRITE_PROT 0x1e
#define SSP_CMD0_CMD_MMC_ERASE_GROUP_START 0x23
#define SSP_CMD0_CMD_MMC_ERASE_GROUP_END 0x24
#define SSP_CMD0_CMD_MMC_ERASE 0x26
#define SSP_CMD0_CMD_MMC_FAST_IO 0x27
#define SSP_CMD0_CMD_MMC_GO_IRQ_STATE 0x28
#define SSP_CMD0_CMD_MMC_LOCK_UNLOCK 0x2a
#define SSP_CMD0_CMD_MMC_APP_CMD 0x37
#define SSP_CMD0_CMD_MMC_GEN_CMD 0x38
#define SSP_CMD0_CMD_SD_GO_IDLE_STATE 0x00
#define SSP_CMD0_CMD_SD_ALL_SEND_CID 0x02
#define SSP_CMD0_CMD_SD_SEND_RELATIVE_ADDR 0x03
#define SSP_CMD0_CMD_SD_SET_DSR 0x04
#define SSP_CMD0_CMD_SD_IO_SEND_OP_COND 0x05
#define SSP_CMD0_CMD_SD_SELECT_DESELECT_CARD 0x07
#define SSP_CMD0_CMD_SD_SEND_CSD 0x09
#define SSP_CMD0_CMD_SD_SEND_CID 0x0a
#define SSP_CMD0_CMD_SD_STOP_TRANSMISSION 0x0c
#define SSP_CMD0_CMD_SD_SEND_STATUS 0x0d
#define SSP_CMD0_CMD_SD_GO_INACTIVE_STATE 0x0f
#define SSP_CMD0_CMD_SD_SET_BLOCKLEN 0x10
#define SSP_CMD0_CMD_SD_READ_SINGLE_BLOCK 0x11
#define SSP_CMD0_CMD_SD_READ_MULTIPLE_BLOCK 0x12
#define SSP_CMD0_CMD_SD_WRITE_BLOCK 0x18
#define SSP_CMD0_CMD_SD_WRITE_MULTIPLE_BLOCK 0x19
#define SSP_CMD0_CMD_SD_PROGRAM_CSD 0x1b
#define SSP_CMD0_CMD_SD_SET_WRITE_PROT 0x1c
#define SSP_CMD0_CMD_SD_CLR_WRITE_PROT 0x1d
#define SSP_CMD0_CMD_SD_SEND_WRITE_PROT 0x1e
#define SSP_CMD0_CMD_SD_ERASE_WR_BLK_START 0x20
#define SSP_CMD0_CMD_SD_ERASE_WR_BLK_END 0x21
#define SSP_CMD0_CMD_SD_ERASE_GROUP_START 0x23
#define SSP_CMD0_CMD_SD_ERASE_GROUP_END 0x24
#define SSP_CMD0_CMD_SD_ERASE 0x26
#define SSP_CMD0_CMD_SD_LOCK_UNLOCK 0x2a
#define SSP_CMD0_CMD_SD_IO_RW_DIRECT 0x34
#define SSP_CMD0_CMD_SD_IO_RW_EXTENDED 0x35
#define SSP_CMD0_CMD_SD_APP_CMD 0x37
#define SSP_CMD0_CMD_SD_GEN_CMD 0x38
#define SSP_CMD1_CMD_ARG_MASK 0xffffffff
#define SSP_CMD1_CMD_ARG_OFFSET 0
#if defined(CONFIG_MX28)
#define SSP_XFER_SIZE_XFER_COUNT_MASK 0xffffffff
#define SSP_XFER_SIZE_XFER_COUNT_OFFSET 0
#define SSP_BLOCK_SIZE_BLOCK_COUNT_MASK (0xffffff << 4)
#define SSP_BLOCK_SIZE_BLOCK_COUNT_OFFSET 4
#define SSP_BLOCK_SIZE_BLOCK_SIZE_MASK 0xf
#define SSP_BLOCK_SIZE_BLOCK_SIZE_OFFSET 0
#endif
#define SSP_COMPREF_REFERENCE_MASK 0xffffffff
#define SSP_COMPREF_REFERENCE_OFFSET 0
#define SSP_COMPMASK_MASK_MASK 0xffffffff
#define SSP_COMPMASK_MASK_OFFSET 0
#define SSP_TIMING_TIMEOUT_MASK (0xffff << 16)
#define SSP_TIMING_TIMEOUT_OFFSET 16
#define SSP_TIMING_CLOCK_DIVIDE_MASK (0xff << 8)
#define SSP_TIMING_CLOCK_DIVIDE_OFFSET 8
#define SSP_TIMING_CLOCK_RATE_MASK 0xff
#define SSP_TIMING_CLOCK_RATE_OFFSET 0
#define SSP_CTRL1_SDIO_IRQ (1 << 31)
#define SSP_CTRL1_SDIO_IRQ_EN (1 << 30)
#define SSP_CTRL1_RESP_ERR_IRQ (1 << 29)
#define SSP_CTRL1_RESP_ERR_IRQ_EN (1 << 28)
#define SSP_CTRL1_RESP_TIMEOUT_IRQ (1 << 27)
#define SSP_CTRL1_RESP_TIMEOUT_IRQ_EN (1 << 26)
#define SSP_CTRL1_DATA_TIMEOUT_IRQ (1 << 25)
#define SSP_CTRL1_DATA_TIMEOUT_IRQ_EN (1 << 24)
#define SSP_CTRL1_DATA_CRC_IRQ (1 << 23)
#define SSP_CTRL1_DATA_CRC_IRQ_EN (1 << 22)
#define SSP_CTRL1_FIFO_UNDERRUN_IRQ (1 << 21)
#define SSP_CTRL1_FIFO_UNDERRUN_EN (1 << 20)
#define SSP_CTRL1_CEATA_CCS_ERR_IRQ (1 << 19)
#define SSP_CTRL1_CEATA_CCS_ERR_IRQ_EN (1 << 18)
#define SSP_CTRL1_RECV_TIMEOUT_IRQ (1 << 17)
#define SSP_CTRL1_RECV_TIMEOUT_IRQ_EN (1 << 16)
#define SSP_CTRL1_FIFO_OVERRUN_IRQ (1 << 15)
#define SSP_CTRL1_FIFO_OVERRUN_IRQ_EN (1 << 14)
#define SSP_CTRL1_DMA_ENABLE (1 << 13)
#define SSP_CTRL1_CEATA_CCS_ERR_EN (1 << 12)
#define SSP_CTRL1_SLAVE_OUT_DISABLE (1 << 11)
#define SSP_CTRL1_PHASE (1 << 10)
#define SSP_CTRL1_POLARITY (1 << 9)
#define SSP_CTRL1_SLAVE_MODE (1 << 8)
#define SSP_CTRL1_WORD_LENGTH_MASK (0xf << 4)
#define SSP_CTRL1_WORD_LENGTH_OFFSET 4
#define SSP_CTRL1_WORD_LENGTH_RESERVED0 (0x0 << 4)
#define SSP_CTRL1_WORD_LENGTH_RESERVED1 (0x1 << 4)
#define SSP_CTRL1_WORD_LENGTH_RESERVED2 (0x2 << 4)
#define SSP_CTRL1_WORD_LENGTH_FOUR_BITS (0x3 << 4)
#define SSP_CTRL1_WORD_LENGTH_EIGHT_BITS (0x7 << 4)
#define SSP_CTRL1_WORD_LENGTH_SIXTEEN_BITS (0xf << 4)
#define SSP_CTRL1_SSP_MODE_MASK 0xf
#define SSP_CTRL1_SSP_MODE_OFFSET 0
#define SSP_CTRL1_SSP_MODE_SPI 0x0
#define SSP_CTRL1_SSP_MODE_SSI 0x1
#define SSP_CTRL1_SSP_MODE_SD_MMC 0x3
#define SSP_CTRL1_SSP_MODE_MS 0x4
#define SSP_DATA_DATA_MASK 0xffffffff
#define SSP_DATA_DATA_OFFSET 0
#define SSP_SDRESP0_RESP0_MASK 0xffffffff
#define SSP_SDRESP0_RESP0_OFFSET 0
#define SSP_SDRESP1_RESP1_MASK 0xffffffff
#define SSP_SDRESP1_RESP1_OFFSET 0
#define SSP_SDRESP2_RESP2_MASK 0xffffffff
#define SSP_SDRESP2_RESP2_OFFSET 0
#define SSP_SDRESP3_RESP3_MASK 0xffffffff
#define SSP_SDRESP3_RESP3_OFFSET 0
#define SSP_DDR_CTRL_DMA_BURST_TYPE_MASK (0x3 << 30)
#define SSP_DDR_CTRL_DMA_BURST_TYPE_OFFSET 30
#define SSP_DDR_CTRL_NIBBLE_POS (1 << 1)
#define SSP_DDR_CTRL_TXCLK_DELAY_TYPE (1 << 0)
#define SSP_DLL_CTRL_REF_UPDATE_INT_MASK (0xf << 28)
#define SSP_DLL_CTRL_REF_UPDATE_INT_OFFSET 28
#define SSP_DLL_CTRL_SLV_UPDATE_INT_MASK (0xff << 20)
#define SSP_DLL_CTRL_SLV_UPDATE_INT_OFFSET 20
#define SSP_DLL_CTRL_SLV_OVERRIDE_VAL_MASK (0x3f << 10)
#define SSP_DLL_CTRL_SLV_OVERRIDE_VAL_OFFSET 10
#define SSP_DLL_CTRL_SLV_OVERRIDE (1 << 9)
#define SSP_DLL_CTRL_GATE_UPDATE (1 << 7)
#define SSP_DLL_CTRL_SLV_DLY_TARGET_MASK (0xf << 3)
#define SSP_DLL_CTRL_SLV_DLY_TARGET_OFFSET 3
#define SSP_DLL_CTRL_SLV_FORCE_UPD (1 << 2)
#define SSP_DLL_CTRL_RESET (1 << 1)
#define SSP_DLL_CTRL_ENABLE (1 << 0)
#define SSP_STATUS_PRESENT (1 << 31)
#define SSP_STATUS_MS_PRESENT (1 << 30)
#define SSP_STATUS_SD_PRESENT (1 << 29)
#define SSP_STATUS_CARD_DETECT (1 << 28)
#define SSP_STATUS_DMABURST (1 << 22)
#define SSP_STATUS_DMASENSE (1 << 21)
#define SSP_STATUS_DMATERM (1 << 20)
#define SSP_STATUS_DMAREQ (1 << 19)
#define SSP_STATUS_DMAEND (1 << 18)
#define SSP_STATUS_SDIO_IRQ (1 << 17)
#define SSP_STATUS_RESP_CRC_ERR (1 << 16)
#define SSP_STATUS_RESP_ERR (1 << 15)
#define SSP_STATUS_RESP_TIMEOUT (1 << 14)
#define SSP_STATUS_DATA_CRC_ERR (1 << 13)
#define SSP_STATUS_TIMEOUT (1 << 12)
#define SSP_STATUS_RECV_TIMEOUT_STAT (1 << 11)
#define SSP_STATUS_CEATA_CCS_ERR (1 << 10)
#define SSP_STATUS_FIFO_OVRFLW (1 << 9)
#define SSP_STATUS_FIFO_FULL (1 << 8)
#define SSP_STATUS_FIFO_EMPTY (1 << 5)
#define SSP_STATUS_FIFO_UNDRFLW (1 << 4)
#define SSP_STATUS_CMD_BUSY (1 << 3)
#define SSP_STATUS_DATA_BUSY (1 << 2)
#define SSP_STATUS_BUSY (1 << 0)
#define SSP_DLL_STS_REF_SEL_MASK (0x3f << 8)
#define SSP_DLL_STS_REF_SEL_OFFSET 8
#define SSP_DLL_STS_SLV_SEL_MASK (0x3f << 2)
#define SSP_DLL_STS_SLV_SEL_OFFSET 2
#define SSP_DLL_STS_REF_LOCK (1 << 1)
#define SSP_DLL_STS_SLV_LOCK (1 << 0)
#define SSP_DEBUG_DATACRC_ERR_MASK (0xf << 28)
#define SSP_DEBUG_DATACRC_ERR_OFFSET 28
#define SSP_DEBUG_DATA_STALL (1 << 27)
#define SSP_DEBUG_DAT_SM_MASK (0x7 << 24)
#define SSP_DEBUG_DAT_SM_OFFSET 24
#define SSP_DEBUG_DAT_SM_DSM_IDLE (0x0 << 24)
#define SSP_DEBUG_DAT_SM_DSM_WORD (0x2 << 24)
#define SSP_DEBUG_DAT_SM_DSM_CRC1 (0x3 << 24)
#define SSP_DEBUG_DAT_SM_DSM_CRC2 (0x4 << 24)
#define SSP_DEBUG_DAT_SM_DSM_END (0x5 << 24)
#define SSP_DEBUG_MSTK_SM_MASK (0xf << 20)
#define SSP_DEBUG_MSTK_SM_OFFSET 20
#define SSP_DEBUG_MSTK_SM_MSTK_IDLE (0x0 << 20)
#define SSP_DEBUG_MSTK_SM_MSTK_CKON (0x1 << 20)
#define SSP_DEBUG_MSTK_SM_MSTK_BS1 (0x2 << 20)
#define SSP_DEBUG_MSTK_SM_MSTK_TPC (0x3 << 20)
#define SSP_DEBUG_MSTK_SM_MSTK_BS2 (0x4 << 20)
#define SSP_DEBUG_MSTK_SM_MSTK_HDSHK (0x5 << 20)
#define SSP_DEBUG_MSTK_SM_MSTK_BS3 (0x6 << 20)
#define SSP_DEBUG_MSTK_SM_MSTK_RW (0x7 << 20)
#define SSP_DEBUG_MSTK_SM_MSTK_CRC1 (0x8 << 20)
#define SSP_DEBUG_MSTK_SM_MSTK_CRC2 (0x9 << 20)
#define SSP_DEBUG_MSTK_SM_MSTK_BS0 (0xa << 20)
#define SSP_DEBUG_MSTK_SM_MSTK_END1 (0xb << 20)
#define SSP_DEBUG_MSTK_SM_MSTK_END2W (0xc << 20)
#define SSP_DEBUG_MSTK_SM_MSTK_END2R (0xd << 20)
#define SSP_DEBUG_MSTK_SM_MSTK_DONE (0xe << 20)
#define SSP_DEBUG_CMD_OE (1 << 19)
#define SSP_DEBUG_DMA_SM_MASK (0x7 << 16)
#define SSP_DEBUG_DMA_SM_OFFSET 16
#define SSP_DEBUG_DMA_SM_DMA_IDLE (0x0 << 16)
#define SSP_DEBUG_DMA_SM_DMA_DMAREQ (0x1 << 16)
#define SSP_DEBUG_DMA_SM_DMA_DMAACK (0x2 << 16)
#define SSP_DEBUG_DMA_SM_DMA_STALL (0x3 << 16)
#define SSP_DEBUG_DMA_SM_DMA_BUSY (0x4 << 16)
#define SSP_DEBUG_DMA_SM_DMA_DONE (0x5 << 16)
#define SSP_DEBUG_DMA_SM_DMA_COUNT (0x6 << 16)
#define SSP_DEBUG_MMC_SM_MASK (0xf << 12)
#define SSP_DEBUG_MMC_SM_OFFSET 12
#define SSP_DEBUG_MMC_SM_MMC_IDLE (0x0 << 12)
#define SSP_DEBUG_MMC_SM_MMC_CMD (0x1 << 12)
#define SSP_DEBUG_MMC_SM_MMC_TRC (0x2 << 12)
#define SSP_DEBUG_MMC_SM_MMC_RESP (0x3 << 12)
#define SSP_DEBUG_MMC_SM_MMC_RPRX (0x4 << 12)
#define SSP_DEBUG_MMC_SM_MMC_TX (0x5 << 12)
#define SSP_DEBUG_MMC_SM_MMC_CTOK (0x6 << 12)
#define SSP_DEBUG_MMC_SM_MMC_RX (0x7 << 12)
#define SSP_DEBUG_MMC_SM_MMC_CCS (0x8 << 12)
#define SSP_DEBUG_MMC_SM_MMC_PUP (0x9 << 12)
#define SSP_DEBUG_MMC_SM_MMC_WAIT (0xa << 12)
#define SSP_DEBUG_CMD_SM_MASK (0x3 << 10)
#define SSP_DEBUG_CMD_SM_OFFSET 10
#define SSP_DEBUG_CMD_SM_CSM_IDLE (0x0 << 10)
#define SSP_DEBUG_CMD_SM_CSM_INDEX (0x1 << 10)
#define SSP_DEBUG_CMD_SM_CSM_ARG (0x2 << 10)
#define SSP_DEBUG_CMD_SM_CSM_CRC (0x3 << 10)
#define SSP_DEBUG_SSP_CMD (1 << 9)
#define SSP_DEBUG_SSP_RESP (1 << 8)
#define SSP_DEBUG_SSP_RXD_MASK 0xff
#define SSP_DEBUG_SSP_RXD_OFFSET 0
#define SSP_VERSION_MAJOR_MASK (0xff << 24)
#define SSP_VERSION_MAJOR_OFFSET 24
#define SSP_VERSION_MINOR_MASK (0xff << 16)
#define SSP_VERSION_MINOR_OFFSET 16
#define SSP_VERSION_STEP_MASK 0xffff
#define SSP_VERSION_STEP_OFFSET 0
#endif /* __MX28_REGS_SSP_H__ */
|