OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [freertos-6.1.1/] [Demo/] [CORTEX_STM32F103_GCC_Rowley/] [ST Library/] [inc/] [stm32f10x_sdio.h] - Blame information for rev 582

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 582 jeremybenn
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
2
* File Name          : stm32f10x_sdio.h
3
* Author             : MCD Application Team
4
* Version            : V2.0.1
5
* Date               : 06/13/2008
6
* Description        : This file contains all the functions prototypes for the
7
*                      SDIO firmware library.
8
********************************************************************************
9
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
10
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
11
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
12
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
13
* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
14
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
15
*******************************************************************************/
16
 
17
/* Define to prevent recursive inclusion -------------------------------------*/
18
#ifndef __STM32F10x_SDIO_H
19
#define __STM32F10x_SDIO_H
20
 
21
/* Includes ------------------------------------------------------------------*/
22
#include "stm32f10x_map.h"
23
 
24
/* Exported types ------------------------------------------------------------*/
25
typedef struct
26
{
27
  u8 SDIO_ClockDiv;
28
  u32 SDIO_ClockEdge;
29
  u32 SDIO_ClockBypass;
30
  u32 SDIO_ClockPowerSave;
31
  u32 SDIO_BusWide;
32
  u32 SDIO_HardwareFlowControl;
33
} SDIO_InitTypeDef;
34
 
35
typedef struct
36
{
37
  u32 SDIO_Argument;
38
  u32 SDIO_CmdIndex;
39
  u32 SDIO_Response;
40
  u32 SDIO_Wait;
41
  u32 SDIO_CPSM;
42
} SDIO_CmdInitTypeDef;
43
 
44
typedef struct
45
{
46
  u32 SDIO_DataTimeOut;
47
  u32 SDIO_DataLength;
48
  u32 SDIO_DataBlockSize;
49
  u32 SDIO_TransferDir;
50
  u32 SDIO_TransferMode;
51
  u32 SDIO_DPSM;
52
} SDIO_DataInitTypeDef;
53
 
54
/* Exported constants --------------------------------------------------------*/
55
/* SDIO Clock Edge -----------------------------------------------------------*/
56
#define SDIO_ClockEdge_Rising               ((u32)0x00000000)
57
#define SDIO_ClockEdge_Falling              ((u32)0x00002000)
58
 
59
#define IS_SDIO_CLOCK_EDGE(EDGE) (((EDGE) == SDIO_ClockEdge_Rising) || \
60
                                  ((EDGE) == SDIO_ClockEdge_Falling))
61
/* SDIO Clock Bypass ----------------------------------------------------------*/
62
#define SDIO_ClockBypass_Disable             ((u32)0x00000000)
63
#define SDIO_ClockBypass_Enable              ((u32)0x00000400)    
64
 
65
#define IS_SDIO_CLOCK_BYPASS(BYPASS) (((BYPASS) == SDIO_ClockBypass_Disable) || \
66
                                     ((BYPASS) == SDIO_ClockBypass_Enable))
67
 
68
/* SDIO Clock Power Save  ----------------------------------------------------*/
69
#define SDIO_ClockPowerSave_Disable         ((u32)0x00000000)
70
#define SDIO_ClockPowerSave_Enable          ((u32)0x00000200) 
71
 
72
#define IS_SDIO_CLOCK_POWER_SAVE(SAVE) (((SAVE) == SDIO_ClockPowerSave_Disable) || \
73
                                        ((SAVE) == SDIO_ClockPowerSave_Enable))
74
 
75
/* SDIO Bus Wide -------------------------------------------------------------*/
76
#define SDIO_BusWide_1b                     ((u32)0x00000000)
77
#define SDIO_BusWide_4b                     ((u32)0x00000800)
78
#define SDIO_BusWide_8b                     ((u32)0x00001000)
79
 
80
#define IS_SDIO_BUS_WIDE(WIDE) (((WIDE) == SDIO_BusWide_1b) || ((WIDE) == SDIO_BusWide_4b) || \
81
                                ((WIDE) == SDIO_BusWide_8b))
82
 
83
/* SDIO Hardware Flow Control  -----------------------------------------------*/
84
#define SDIO_HardwareFlowControl_Disable    ((u32)0x00000000)
85
#define SDIO_HardwareFlowControl_Enable     ((u32)0x00004000)
86
 
87
#define IS_SDIO_HARDWARE_FLOW_CONTROL(CONTROL) (((CONTROL) == SDIO_HardwareFlowControl_Disable) || \
88
                                                ((CONTROL) == SDIO_HardwareFlowControl_Enable))
89
 
90
/* SDIO Power State ----------------------------------------------------------*/
91
#define SDIO_PowerState_OFF                 ((u32)0x00000000)
92
#define SDIO_PowerState_ON                  ((u32)0x00000003)
93
 
94
#define IS_SDIO_POWER_STATE(STATE) (((STATE) == SDIO_PowerState_OFF) || ((STATE) == SDIO_PowerState_ON)) 
95
 
96
/* SDIO Interrupt soucres ----------------------------------------------------*/
97
#define SDIO_IT_CCRCFAIL                    ((u32)0x00000001)
98
#define SDIO_IT_DCRCFAIL                    ((u32)0x00000002)
99
#define SDIO_IT_CTIMEOUT                    ((u32)0x00000004)
100
#define SDIO_IT_DTIMEOUT                    ((u32)0x00000008)
101
#define SDIO_IT_TXUNDERR                    ((u32)0x00000010)
102
#define SDIO_IT_RXOVERR                     ((u32)0x00000020)
103
#define SDIO_IT_CMDREND                     ((u32)0x00000040)
104
#define SDIO_IT_CMDSENT                     ((u32)0x00000080)
105
#define SDIO_IT_DATAEND                     ((u32)0x00000100)
106
#define SDIO_IT_STBITERR                    ((u32)0x00000200)
107
#define SDIO_IT_DBCKEND                     ((u32)0x00000400)
108
#define SDIO_IT_CMDACT                      ((u32)0x00000800)
109
#define SDIO_IT_TXACT                       ((u32)0x00001000)
110
#define SDIO_IT_RXACT                       ((u32)0x00002000)
111
#define SDIO_IT_TXFIFOHE                    ((u32)0x00004000)
112
#define SDIO_IT_RXFIFOHF                    ((u32)0x00008000)
113
#define SDIO_IT_TXFIFOF                     ((u32)0x00010000)
114
#define SDIO_IT_RXFIFOF                     ((u32)0x00020000)
115
#define SDIO_IT_TXFIFOE                     ((u32)0x00040000)
116
#define SDIO_IT_RXFIFOE                     ((u32)0x00080000)
117
#define SDIO_IT_TXDAVL                      ((u32)0x00100000)
118
#define SDIO_IT_RXDAVL                      ((u32)0x00200000)
119
#define SDIO_IT_SDIOIT                      ((u32)0x00400000)
120
#define SDIO_IT_CEATAEND                    ((u32)0x00800000)
121
 
122
#define IS_SDIO_IT(IT) ((((IT) & (u32)0xFF000000) == 0x00) && ((IT) != (u32)0x00))
123
 
124
/* SDIO Command Index  -------------------------------------------------------*/
125
#define IS_SDIO_CMD_INDEX(INDEX)            ((INDEX) < 0x40)
126
 
127
/* SDIO Response Type --------------------------------------------------------*/
128
#define SDIO_Response_No                    ((u32)0x00000000)
129
#define SDIO_Response_Short                 ((u32)0x00000040)
130
#define SDIO_Response_Long                  ((u32)0x000000C0)
131
 
132
#define IS_SDIO_RESPONSE(RESPONSE) (((RESPONSE) == SDIO_Response_No) || \
133
                                    ((RESPONSE) == SDIO_Response_Short) || \
134
                                    ((RESPONSE) == SDIO_Response_Long))
135
 
136
/* SDIO Wait Interrupt State -------------------------------------------------*/
137
#define SDIO_Wait_No                        ((u32)0x00000000) /* SDIO No Wait, TimeOut is enabled */
138
#define SDIO_Wait_IT                        ((u32)0x00000100) /* SDIO Wait Interrupt Request */
139
#define SDIO_Wait_Pend                      ((u32)0x00000200) /* SDIO Wait End of transfer */
140
 
141
#define IS_SDIO_WAIT(WAIT) (((WAIT) == SDIO_Wait_No) || ((WAIT) == SDIO_Wait_IT) || \
142
                            ((WAIT) == SDIO_Wait_Pend))
143
 
144
/* SDIO CPSM State -----------------------------------------------------------*/
145
#define SDIO_CPSM_Disable                    ((u32)0x00000000)
146
#define SDIO_CPSM_Enable                     ((u32)0x00000400)
147
 
148
#define IS_SDIO_CPSM(CPSM) (((CPSM) == SDIO_CPSM_Enable) || ((CPSM) == SDIO_CPSM_Disable))
149
 
150
/* SDIO Response Registers ---------------------------------------------------*/
151
#define SDIO_RESP1                          ((u32)0x00000000)
152
#define SDIO_RESP2                          ((u32)0x00000004)
153
#define SDIO_RESP3                          ((u32)0x00000008)
154
#define SDIO_RESP4                          ((u32)0x0000000C)
155
 
156
#define IS_SDIO_RESP(RESP) (((RESP) == SDIO_RESP1) || ((RESP) == SDIO_RESP2) || \
157
                            ((RESP) == SDIO_RESP3) || ((RESP) == SDIO_RESP4))
158
 
159
/* SDIO Data Length ----------------------------------------------------------*/
160
#define IS_SDIO_DATA_LENGTH(LENGTH) ((LENGTH) <= 0x01FFFFFF)
161
 
162
/* SDIO Data Block Size ------------------------------------------------------*/
163
#define SDIO_DataBlockSize_1b               ((u32)0x00000000)
164
#define SDIO_DataBlockSize_2b               ((u32)0x00000010)
165
#define SDIO_DataBlockSize_4b               ((u32)0x00000020)
166
#define SDIO_DataBlockSize_8b               ((u32)0x00000030)
167
#define SDIO_DataBlockSize_16b              ((u32)0x00000040)
168
#define SDIO_DataBlockSize_32b              ((u32)0x00000050)
169
#define SDIO_DataBlockSize_64b              ((u32)0x00000060)
170
#define SDIO_DataBlockSize_128b             ((u32)0x00000070)
171
#define SDIO_DataBlockSize_256b             ((u32)0x00000080)
172
#define SDIO_DataBlockSize_512b             ((u32)0x00000090)
173
#define SDIO_DataBlockSize_1024b            ((u32)0x000000A0)
174
#define SDIO_DataBlockSize_2048b            ((u32)0x000000B0)
175
#define SDIO_DataBlockSize_4096b            ((u32)0x000000C0)
176
#define SDIO_DataBlockSize_8192b            ((u32)0x000000D0)
177
#define SDIO_DataBlockSize_16384b           ((u32)0x000000E0)
178
 
179
#define IS_SDIO_BLOCK_SIZE(SIZE) (((SIZE) == SDIO_DataBlockSize_1b) || \
180
                                  ((SIZE) == SDIO_DataBlockSize_2b) || \
181
                                  ((SIZE) == SDIO_DataBlockSize_4b) || \
182
                                  ((SIZE) == SDIO_DataBlockSize_8b) || \
183
                                  ((SIZE) == SDIO_DataBlockSize_16b) || \
184
                                  ((SIZE) == SDIO_DataBlockSize_32b) || \
185
                                  ((SIZE) == SDIO_DataBlockSize_64b) || \
186
                                  ((SIZE) == SDIO_DataBlockSize_128b) || \
187
                                  ((SIZE) == SDIO_DataBlockSize_256b) || \
188
                                  ((SIZE) == SDIO_DataBlockSize_512b) || \
189
                                  ((SIZE) == SDIO_DataBlockSize_1024b) || \
190
                                  ((SIZE) == SDIO_DataBlockSize_2048b) || \
191
                                  ((SIZE) == SDIO_DataBlockSize_4096b) || \
192
                                  ((SIZE) == SDIO_DataBlockSize_8192b) || \
193
                                  ((SIZE) == SDIO_DataBlockSize_16384b))
194
 
195
/* SDIO Transfer Direction ---------------------------------------------------*/
196
#define SDIO_TransferDir_ToCard             ((u32)0x00000000)
197
#define SDIO_TransferDir_ToSDIO             ((u32)0x00000002)
198
 
199
#define IS_SDIO_TRANSFER_DIR(DIR) (((DIR) == SDIO_TransferDir_ToCard) || \
200
                                   ((DIR) == SDIO_TransferDir_ToSDIO))
201
 
202
/* SDIO Transfer Type --------------------------------------------------------*/
203
#define SDIO_TransferMode_Block             ((u32)0x00000000)
204
#define SDIO_TransferMode_Stream            ((u32)0x00000004)
205
 
206
#define IS_SDIO_TRANSFER_MODE(MODE) (((MODE) == SDIO_TransferMode_Stream) || \
207
                                     ((MODE) == SDIO_TransferMode_Block))
208
 
209
/* SDIO DPSM State -----------------------------------------------------------*/
210
#define SDIO_DPSM_Disable                    ((u32)0x00000000)
211
#define SDIO_DPSM_Enable                     ((u32)0x00000001)
212
 
213
#define IS_SDIO_DPSM(DPSM) (((DPSM) == SDIO_DPSM_Enable) || ((DPSM) == SDIO_DPSM_Disable))
214
 
215
/* SDIO Flags ----------------------------------------------------------------*/
216
#define SDIO_FLAG_CCRCFAIL                  ((u32)0x00000001)
217
#define SDIO_FLAG_DCRCFAIL                  ((u32)0x00000002)
218
#define SDIO_FLAG_CTIMEOUT                  ((u32)0x00000004)
219
#define SDIO_FLAG_DTIMEOUT                  ((u32)0x00000008)
220
#define SDIO_FLAG_TXUNDERR                  ((u32)0x00000010)
221
#define SDIO_FLAG_RXOVERR                   ((u32)0x00000020)
222
#define SDIO_FLAG_CMDREND                   ((u32)0x00000040)
223
#define SDIO_FLAG_CMDSENT                   ((u32)0x00000080)
224
#define SDIO_FLAG_DATAEND                   ((u32)0x00000100)
225
#define SDIO_FLAG_STBITERR                  ((u32)0x00000200)
226
#define SDIO_FLAG_DBCKEND                   ((u32)0x00000400)
227
#define SDIO_FLAG_CMDACT                    ((u32)0x00000800)
228
#define SDIO_FLAG_TXACT                     ((u32)0x00001000)
229
#define SDIO_FLAG_RXACT                     ((u32)0x00002000)
230
#define SDIO_FLAG_TXFIFOHE                  ((u32)0x00004000)
231
#define SDIO_FLAG_RXFIFOHF                  ((u32)0x00008000)
232
#define SDIO_FLAG_TXFIFOF                   ((u32)0x00010000)
233
#define SDIO_FLAG_RXFIFOF                   ((u32)0x00020000)
234
#define SDIO_FLAG_TXFIFOE                   ((u32)0x00040000)
235
#define SDIO_FLAG_RXFIFOE                   ((u32)0x00080000)
236
#define SDIO_FLAG_TXDAVL                    ((u32)0x00100000)
237
#define SDIO_FLAG_RXDAVL                    ((u32)0x00200000)
238
#define SDIO_FLAG_SDIOIT                    ((u32)0x00400000)
239
#define SDIO_FLAG_CEATAEND                  ((u32)0x00800000)
240
 
241
#define IS_SDIO_FLAG(FLAG) (((FLAG)  == SDIO_FLAG_CCRCFAIL) || \
242
                            ((FLAG)  == SDIO_FLAG_DCRCFAIL) || \
243
                            ((FLAG)  == SDIO_FLAG_CTIMEOUT) || \
244
                            ((FLAG)  == SDIO_FLAG_DTIMEOUT) || \
245
                            ((FLAG)  == SDIO_FLAG_TXUNDERR) || \
246
                            ((FLAG)  == SDIO_FLAG_RXOVERR) || \
247
                            ((FLAG)  == SDIO_FLAG_CMDREND) || \
248
                            ((FLAG)  == SDIO_FLAG_CMDSENT) || \
249
                            ((FLAG)  == SDIO_FLAG_DATAEND) || \
250
                            ((FLAG)  == SDIO_FLAG_STBITERR) || \
251
                            ((FLAG)  == SDIO_FLAG_DBCKEND) || \
252
                            ((FLAG)  == SDIO_FLAG_CMDACT) || \
253
                            ((FLAG)  == SDIO_FLAG_TXACT) || \
254
                            ((FLAG)  == SDIO_FLAG_RXACT) || \
255
                            ((FLAG)  == SDIO_FLAG_TXFIFOHE) || \
256
                            ((FLAG)  == SDIO_FLAG_RXFIFOHF) || \
257
                            ((FLAG)  == SDIO_FLAG_TXFIFOF) || \
258
                            ((FLAG)  == SDIO_FLAG_RXFIFOF) || \
259
                            ((FLAG)  == SDIO_FLAG_TXFIFOE) || \
260
                            ((FLAG)  == SDIO_FLAG_RXFIFOE) || \
261
                            ((FLAG)  == SDIO_FLAG_TXDAVL) || \
262
                            ((FLAG)  == SDIO_FLAG_RXDAVL) || \
263
                            ((FLAG)  == SDIO_FLAG_SDIOIT) || \
264
                            ((FLAG)  == SDIO_FLAG_CEATAEND))
265
 
266
#define IS_SDIO_CLEAR_FLAG(FLAG) ((((FLAG) & (u32)0xFF3FF800) == 0x00) && ((FLAG) != (u32)0x00))
267
 
268
#define IS_SDIO_GET_IT(IT) (((IT)  == SDIO_IT_CCRCFAIL) || \
269
                            ((IT)  == SDIO_IT_DCRCFAIL) || \
270
                            ((IT)  == SDIO_IT_CTIMEOUT) || \
271
                            ((IT)  == SDIO_IT_DTIMEOUT) || \
272
                            ((IT)  == SDIO_IT_TXUNDERR) || \
273
                            ((IT)  == SDIO_IT_RXOVERR) || \
274
                            ((IT)  == SDIO_IT_CMDREND) || \
275
                            ((IT)  == SDIO_IT_CMDSENT) || \
276
                            ((IT)  == SDIO_IT_DATAEND) || \
277
                            ((IT)  == SDIO_IT_STBITERR) || \
278
                            ((IT)  == SDIO_IT_DBCKEND) || \
279
                            ((IT)  == SDIO_IT_CMDACT) || \
280
                            ((IT)  == SDIO_IT_TXACT) || \
281
                            ((IT)  == SDIO_IT_RXACT) || \
282
                            ((IT)  == SDIO_IT_TXFIFOHE) || \
283
                            ((IT)  == SDIO_IT_RXFIFOHF) || \
284
                            ((IT)  == SDIO_IT_TXFIFOF) || \
285
                            ((IT)  == SDIO_IT_RXFIFOF) || \
286
                            ((IT)  == SDIO_IT_TXFIFOE) || \
287
                            ((IT)  == SDIO_IT_RXFIFOE) || \
288
                            ((IT)  == SDIO_IT_TXDAVL) || \
289
                            ((IT)  == SDIO_IT_RXDAVL) || \
290
                            ((IT)  == SDIO_IT_SDIOIT) || \
291
                            ((IT)  == SDIO_IT_CEATAEND))
292
 
293
#define IS_SDIO_CLEAR_IT(IT) ((((IT) & (u32)0xFF3FF800) == 0x00) && ((IT) != (u32)0x00))
294
 
295
/* SDIO Read Wait Mode -------------------------------------------------------*/
296
#define SDIO_ReadWaitMode_CLK               ((u32)0x00000000)
297
#define SDIO_ReadWaitMode_DATA2             ((u32)0x00000001)
298
 
299
#define IS_SDIO_READWAIT_MODE(MODE) (((MODE) == SDIO_ReadWaitMode_CLK) || \
300
                                     ((MODE) == SDIO_ReadWaitMode_DATA2))
301
 
302
/* Exported macro ------------------------------------------------------------*/
303
/* Exported functions ------------------------------------------------------- */
304
void SDIO_DeInit(void);
305
void SDIO_Init(SDIO_InitTypeDef* SDIO_InitStruct);
306
void SDIO_StructInit(SDIO_InitTypeDef* SDIO_InitStruct);
307
void SDIO_ClockCmd(FunctionalState NewState);
308
void SDIO_SetPowerState(u32 SDIO_PowerState);
309
u32 SDIO_GetPowerState(void);
310
void SDIO_ITConfig(u32 SDIO_IT, FunctionalState NewState);
311
void SDIO_DMACmd(FunctionalState NewState);
312
void SDIO_SendCommand(SDIO_CmdInitTypeDef *SDIO_CmdInitStruct);
313
void SDIO_CmdStructInit(SDIO_CmdInitTypeDef* SDIO_CmdInitStruct);
314
u8 SDIO_GetCommandResponse(void);
315
u32 SDIO_GetResponse(u32 SDIO_RESP);
316
void SDIO_DataConfig(SDIO_DataInitTypeDef* SDIO_DataInitStruct);
317
void SDIO_DataStructInit(SDIO_DataInitTypeDef* SDIO_DataInitStruct);
318
u32 SDIO_GetDataCounter(void);
319
u32 SDIO_ReadData(void);
320
void SDIO_WriteData(u32 Data);
321
u32 SDIO_GetFIFOCount(void);
322
void SDIO_StartSDIOReadWait(FunctionalState NewState);
323
void SDIO_StopSDIOReadWait(FunctionalState NewState);
324
void SDIO_SetSDIOReadWaitMode(u32 SDIO_ReadWaitMode);
325
void SDIO_SetSDIOOperation(FunctionalState NewState);
326
void SDIO_SendSDIOSuspendCmd(FunctionalState NewState);
327
void SDIO_CommandCompletionCmd(FunctionalState NewState);
328
void SDIO_CEATAITCmd(FunctionalState NewState);
329
void SDIO_SendCEATACmd(FunctionalState NewState);
330
FlagStatus SDIO_GetFlagStatus(u32 SDIO_FLAG);
331
void SDIO_ClearFlag(u32 SDIO_FLAG);
332
ITStatus SDIO_GetITStatus(u32 SDIO_IT);
333
void SDIO_ClearITPendingBit(u32 SDIO_IT);
334
 
335
#endif /* __STM32F10x_SDIO_H */
336
 
337
/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.