]> git.sur5r.net Git - freertos/blob - Demo/ARM7_STR75x_IAR/STLibrary/inc/75x_ssp.h
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / ARM7_STR75x_IAR / STLibrary / inc / 75x_ssp.h
1 /******************** (C) COPYRIGHT 2006 STMicroelectronics ********************\r
2 * File Name          : 75x_SSP.h\r
3 * Author             : MCD Application Team\r
4 * Date First Issued  : 03/10/2006\r
5 * Description        : This file contains all the functions prototypes for the\r
6 *                      SSP software library.\r
7 ********************************************************************************\r
8 * History:\r
9 * 07/17/2006 : V1.0\r
10 * 03/10/2006 : V0.1 \r
11 ********************************************************************************\r
12 * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
13 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.\r
14 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, \r
15 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE\r
16 * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING \r
17 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
18 *******************************************************************************/\r
19 \r
20 /* Define to prevent recursive inclusion -------------------------------------*/\r
21 #ifndef __75x_SSP_H\r
22 #define __75x_SSP_H\r
23 \r
24 /* Includes ------------------------------------------------------------------*/\r
25 #include "75x_map.h"\r
26 \r
27 /* Exported types ------------------------------------------------------------*/\r
28 /* SSP Init structure definition */\r
29 typedef struct\r
30 {\r
31   u16 SSP_FrameFormat;\r
32   u16 SSP_Mode;\r
33   u16 SSP_CPOL;\r
34   u16 SSP_CPHA;\r
35   u16 SSP_DataSize;\r
36   u16 SSP_NSS;\r
37   u16 SSP_SlaveOutput;\r
38   u8 SSP_ClockRate;\r
39   u8 SSP_ClockPrescaler;\r
40 }SSP_InitTypeDef;\r
41 \r
42 /* Exported constants --------------------------------------------------------*/\r
43 /* SSP Frame Format Select */\r
44 #define SSP_FrameFormat_TI          0x0010\r
45 #define SSP_FrameFormat_Motorola    0xFFCF\r
46 \r
47 /* SSP Master/Slave Select */\r
48 #define SSP_Mode_Master    0xFFFB\r
49 #define SSP_Mode_Slave     0x0004\r
50 \r
51 /* SSP Clock Polarity */\r
52 #define SSP_CPOL_Low     0xFFBF\r
53 #define SSP_CPOL_High    0x0040\r
54 \r
55 /* SSP Clock Phase */\r
56 #define SSP_CPHA_1Edge    0xFF7F\r
57 #define SSP_CPHA_2Edge    0x0080\r
58 \r
59 /* SSP Data Size */\r
60 #define SSP_DataSize_16b    0x000F\r
61 #define SSP_DataSize_15b    0x000E\r
62 #define SSP_DataSize_14b    0x000D\r
63 #define SSP_DataSize_13b    0x000C\r
64 #define SSP_DataSize_12b    0x000B\r
65 #define SSP_DataSize_11b    0x000A\r
66 #define SSP_DataSize_10b    0x0009\r
67 #define SSP_DataSize_9b     0x0008\r
68 #define SSP_DataSize_8b     0x0007\r
69 #define SSP_DataSize_7b     0x0006\r
70 #define SSP_DataSize_6b     0x0005\r
71 #define SSP_DataSize_5b     0x0004\r
72 #define SSP_DataSize_4b     0x0003\r
73 \r
74 /* SSP Slave Select management config */\r
75 #define SSP_NSS_Hard    0xFFEF\r
76 #define SSP_NSS_Soft    0x0010\r
77 \r
78 /* SSP NSS internal config */\r
79 #define SSP_NSSInternal_Set      0x0020\r
80 #define SSP_NSSInternal_Reset    0xFFDF\r
81 \r
82 /* SSP Slave output config */\r
83 #define SSP_SlaveOutput_Enable     0xFFF7\r
84 #define SSP_SlaveOutput_Disable    0x0008\r
85 \r
86 /* SSP Interrupts */\r
87 #define SSP_IT_TxFifo       0x0008\r
88 #define SSP_IT_RxFifo       0x0004\r
89 #define SSP_IT_RxTimeOut    0x0002\r
90 #define SSP_IT_RxOverrun    0x0001\r
91 \r
92 /* SSP Flags */\r
93 #define SSP_FLAG_Busy              0x0024\r
94 #define SSP_FLAG_RxFifoFull        0x0023\r
95 #define SSP_FLAG_RxFifoNotEmpty    0x0022\r
96 #define SSP_FLAG_TxFifoNotFull     0x0021\r
97 #define SSP_FLAG_TxFifoEmpty       0x0020\r
98 #define SSP_FLAG_TxFifo            0x0043\r
99 #define SSP_FLAG_RxFifo            0x0042\r
100 #define SSP_FLAG_RxTimeOut         0x0041\r
101 #define SSP_FLAG_RxOverrun         0x0040\r
102 \r
103 /* SSP DMA Requests */\r
104 #define SSP0_DMA_Transmit    0x0002\r
105 #define SSP0_DMA_Receive     0x0001\r
106 \r
107 #define SSP0_DMATxReq_Single     0xFFF7\r
108 #define SSP0_DMATxReq_Burst      0x0008\r
109 \r
110 #define SSP0_DMARxReq_Single     0xFFFB\r
111 #define SSP0_DMARxReq_Burst      0x0004\r
112 \r
113 /* Exported macro ------------------------------------------------------------*/\r
114 /* Exported functions ------------------------------------------------------- */\r
115 \r
116 void SSP_DeInit(SSP_TypeDef* SSPx);\r
117 void SSP_Init(SSP_TypeDef* SSPx, SSP_InitTypeDef* SSP_InitStruct);\r
118 void SSP_StructInit(SSP_InitTypeDef* SSP_InitStruct);\r
119 void SSP_Cmd(SSP_TypeDef* SSPx, FunctionalState NewState);\r
120 void SSP_ITConfig(SSP_TypeDef* SSPx, u16 SSP_IT, FunctionalState NewState);\r
121 void SSP_DMACmd(u16 SSP0_DMAtransfer, FunctionalState NewState);\r
122 void SSP_DMATxConfig(u16 SSP0_DMATxReq);\r
123 void SSP_DMARxConfig(u16 SSP0_DMARxReq);\r
124 void SSP_SendData(SSP_TypeDef* SSPx, u16 Data);\r
125 u16 SSP_ReceiveData(SSP_TypeDef* SSPx);\r
126 void SSP_LoopBackConfig(SSP_TypeDef* SSPx, FunctionalState NewState);\r
127 void SSP_NSSInternalConfig(SSP_TypeDef* SSPx, u16 SSP_NSSState);\r
128 FlagStatus SSP_GetFlagStatus(SSP_TypeDef* SSPx, u16 SSP_FLAG);\r
129 void SSP_ClearFlag(SSP_TypeDef* SSPx, u16 SSP_FLAG);\r
130 ITStatus SSP_GetITStatus(SSP_TypeDef* SSPx, u16 SSP_IT);\r
131 void SSP_ClearITPendingBit(SSP_TypeDef* SSPx, u16 SSP_IT);\r
132 \r
133 #endif /* __75x_SSP_H */\r
134 \r
135 /******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/\r