]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M7_STM32F7_STM32756G-EVAL/ST_Library/include/stm32f7xx_hal_dma2d.h
Update version number ready for V8.2.1 release.
[freertos] / FreeRTOS / Demo / CORTEX_M7_STM32F7_STM32756G-EVAL / ST_Library / include / stm32f7xx_hal_dma2d.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32f7xx_hal_dma2d.h\r
4   * @author  MCD Application Team\r
5   * @version V0.3.0\r
6   * @date    06-March-2015\r
7   * @brief   Header file of DMA2D HAL module.\r
8   ******************************************************************************\r
9   * @attention\r
10   *\r
11   * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>\r
12   *\r
13   * Redistribution and use in source and binary forms, with or without modification,\r
14   * are permitted provided that the following conditions are met:\r
15   *   1. Redistributions of source code must retain the above copyright notice,\r
16   *      this list of conditions and the following disclaimer.\r
17   *   2. Redistributions in binary form must reproduce the above copyright notice,\r
18   *      this list of conditions and the following disclaimer in the documentation\r
19   *      and/or other materials provided with the distribution.\r
20   *   3. Neither the name of STMicroelectronics nor the names of its contributors\r
21   *      may be used to endorse or promote products derived from this software\r
22   *      without specific prior written permission.\r
23   *\r
24   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
25   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
26   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
27   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\r
28   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
29   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\r
30   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\r
31   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\r
32   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
33   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
34   *\r
35   ******************************************************************************\r
36   */ \r
37 \r
38 /* Define to prevent recursive inclusion -------------------------------------*/\r
39 #ifndef __STM32F7xx_HAL_DMA2D_H\r
40 #define __STM32F7xx_HAL_DMA2D_H\r
41 \r
42 #ifdef __cplusplus\r
43  extern "C" {\r
44 #endif\r
45 \r
46 /* Includes ------------------------------------------------------------------*/\r
47 #include "stm32f7xx_hal_def.h"\r
48 \r
49 /** @addtogroup STM32F7xx_HAL_Driver\r
50   * @{\r
51   */\r
52 \r
53 /** @defgroup DMA2D DMA2D\r
54   * @brief DMA2D HAL module driver\r
55   * @{\r
56   */\r
57 \r
58 /* Exported types ------------------------------------------------------------*/\r
59 /** @defgroup DMA2D_Exported_Types DMA2D Exported Types\r
60   * @{\r
61   */\r
62 #define MAX_DMA2D_LAYER  2\r
63 \r
64 /** \r
65   * @brief DMA2D color Structure definition\r
66   */\r
67 typedef struct\r
68 {\r
69   uint32_t Blue;               /*!< Configures the blue value.\r
70                                     This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */\r
71 \r
72   uint32_t Green;              /*!< Configures the green value.\r
73                                     This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */\r
74 \r
75   uint32_t Red;                /*!< Configures the red value.\r
76                                     This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */\r
77 } DMA2D_ColorTypeDef;\r
78 \r
79 /** \r
80   * @brief DMA2D CLUT Structure definition\r
81   */\r
82 typedef struct\r
83 {\r
84   uint32_t *pCLUT;                  /*!< Configures the DMA2D CLUT memory address.*/\r
85 \r
86   uint32_t CLUTColorMode;           /*!< configures the DMA2D CLUT color mode.\r
87                                          This parameter can be one value of @ref DMA2D_CLUT_CM */\r
88 \r
89   uint32_t Size;                    /*!< configures the DMA2D CLUT size. \r
90                                          This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF.*/\r
91 } DMA2D_CLUTCfgTypeDef;\r
92 \r
93 /** \r
94   * @brief DMA2D Init structure definition\r
95   */\r
96 typedef struct\r
97 {\r
98   uint32_t             Mode;               /*!< configures the DMA2D transfer mode.\r
99                                                 This parameter can be one value of @ref DMA2D_Mode */\r
100 \r
101   uint32_t             ColorMode;          /*!< configures the color format of the output image.\r
102                                                 This parameter can be one value of @ref DMA2D_Color_Mode */\r
103 \r
104   uint32_t             OutputOffset;       /*!< Specifies the Offset value. \r
105                                                 This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0x3FFF. */ \r
106 } DMA2D_InitTypeDef;\r
107 \r
108 /** \r
109   * @brief DMA2D Layer structure definition\r
110   */\r
111 typedef struct\r
112 {\r
113   uint32_t             InputOffset;       /*!< configures the DMA2D foreground offset.\r
114                                                This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0x3FFF. */\r
115 \r
116   uint32_t             InputColorMode;    /*!< configures the DMA2D foreground color mode . \r
117                                                This parameter can be one value of @ref DMA2D_Input_Color_Mode */\r
118 \r
119   uint32_t             AlphaMode;         /*!< configures the DMA2D foreground alpha mode. \r
120                                                This parameter can be one value of @ref DMA2D_ALPHA_MODE */\r
121 \r
122   uint32_t             InputAlpha;        /*!< Specifies the DMA2D foreground alpha value and color value in case of A8 or A4 color mode. \r
123                                                This parameter must be a number between Min_Data = 0x00000000 and Max_Data = 0xFFFFFFFF \r
124                                                in case of A8 or A4 color mode (ARGB). \r
125                                                Otherwise, This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF.*/\r
126 \r
127 } DMA2D_LayerCfgTypeDef;\r
128 \r
129 /** \r
130   * @brief  HAL DMA2D State structures definition\r
131   */\r
132 typedef enum\r
133 {\r
134   HAL_DMA2D_STATE_RESET             = 0x00,    /*!< DMA2D not yet initialized or disabled       */\r
135   HAL_DMA2D_STATE_READY             = 0x01,    /*!< Peripheral Initialized and ready for use    */\r
136   HAL_DMA2D_STATE_BUSY              = 0x02,    /*!< an internal process is ongoing              */\r
137   HAL_DMA2D_STATE_TIMEOUT           = 0x03,    /*!< Timeout state                               */\r
138   HAL_DMA2D_STATE_ERROR             = 0x04,    /*!< DMA2D state error                           */\r
139   HAL_DMA2D_STATE_SUSPEND           = 0x05     /*!< DMA2D process is suspended                  */\r
140 }HAL_DMA2D_StateTypeDef;\r
141 \r
142 /** \r
143   * @brief  DMA2D handle Structure definition\r
144   */\r
145 typedef struct __DMA2D_HandleTypeDef\r
146 {\r
147   DMA2D_TypeDef               *Instance;                                                    /*!< DMA2D Register base address       */\r
148 \r
149   DMA2D_InitTypeDef           Init;                                                         /*!< DMA2D communication parameters    */ \r
150 \r
151   void                        (* XferCpltCallback)(struct __DMA2D_HandleTypeDef * hdma2d);  /*!< DMA2D transfer complete callback  */\r
152 \r
153   void                        (* XferErrorCallback)(struct __DMA2D_HandleTypeDef * hdma2d); /*!< DMA2D transfer error callback     */\r
154 \r
155   DMA2D_LayerCfgTypeDef       LayerCfg[MAX_DMA2D_LAYER];                                    /*!< DMA2D Layers parameters           */  \r
156 \r
157   HAL_LockTypeDef             Lock;                                                         /*!< DMA2D Lock                        */  \r
158 \r
159   __IO HAL_DMA2D_StateTypeDef State;                                                        /*!< DMA2D transfer state              */\r
160 \r
161   __IO uint32_t               ErrorCode;                                                    /*!< DMA2D Error code                  */  \r
162 } DMA2D_HandleTypeDef;\r
163 /**\r
164   * @}\r
165   */\r
166 \r
167 /* Exported constants --------------------------------------------------------*/\r
168 /** @defgroup DMA2D_Exported_Constants DMA2D Exported Constants\r
169   * @{\r
170   */\r
171 \r
172 /** @defgroup DMA2D_Error_Code DMA2D Error Code\r
173   * @{\r
174   */\r
175 #define HAL_DMA2D_ERROR_NONE      ((uint32_t)0x00000000)    /*!< No error             */\r
176 #define HAL_DMA2D_ERROR_TE        ((uint32_t)0x00000001)    /*!< Transfer error       */\r
177 #define HAL_DMA2D_ERROR_CE        ((uint32_t)0x00000002)    /*!< Configuration error  */\r
178 #define HAL_DMA2D_ERROR_TIMEOUT   ((uint32_t)0x00000020)    /*!< Timeout error        */\r
179 /**\r
180   * @}\r
181   */\r
182 \r
183 /** @defgroup DMA2D_Mode DMA2D Mode \r
184   * @{\r
185   */\r
186 #define DMA2D_M2M                            ((uint32_t)0x00000000)             /*!< DMA2D memory to memory transfer mode */\r
187 #define DMA2D_M2M_PFC                        ((uint32_t)0x00010000)             /*!< DMA2D memory to memory with pixel format conversion transfer mode */\r
188 #define DMA2D_M2M_BLEND                      ((uint32_t)0x00020000)             /*!< DMA2D memory to memory with blending transfer mode */\r
189 #define DMA2D_R2M                            ((uint32_t)0x00030000)             /*!< DMA2D register to memory transfer mode */\r
190 /**\r
191   * @}\r
192   */\r
193 \r
194 /** @defgroup DMA2D_Color_Mode DMA2D Color Mode \r
195   * @{\r
196   */\r
197 #define DMA2D_ARGB8888                       ((uint32_t)0x00000000)             /*!< ARGB8888 DMA2D color mode */\r
198 #define DMA2D_RGB888                         ((uint32_t)0x00000001)             /*!< RGB888 DMA2D color mode   */\r
199 #define DMA2D_RGB565                         ((uint32_t)0x00000002)             /*!< RGB565 DMA2D color mode   */\r
200 #define DMA2D_ARGB1555                       ((uint32_t)0x00000003)             /*!< ARGB1555 DMA2D color mode */\r
201 #define DMA2D_ARGB4444                       ((uint32_t)0x00000004)             /*!< ARGB4444 DMA2D color mode */\r
202 /**\r
203   * @}\r
204   */\r
205 \r
206 /** @defgroup DMA2D_COLOR_VALUE DMA2D COLOR VALUE\r
207   * @{\r
208   */\r
209 #define COLOR_VALUE             ((uint32_t)0x000000FF)                          /*!< color value mask */\r
210 /**\r
211   * @}\r
212   */    \r
213 \r
214 /** @defgroup DMA2D_SIZE DMA2D SIZE \r
215   * @{\r
216   */\r
217 #define DMA2D_PIXEL          (DMA2D_NLR_PL >> 16)                               /*!< DMA2D pixel per line */\r
218 #define DMA2D_LINE           DMA2D_NLR_NL                                       /*!< DMA2D number of line */\r
219 /**\r
220   * @}\r
221   */\r
222 \r
223 /** @defgroup DMA2D_Offset DMA2D Offset \r
224   * @{\r
225   */\r
226 #define DMA2D_OFFSET      DMA2D_FGOR_LO            /*!< Line Offset */\r
227 /**\r
228   * @}\r
229   */ \r
230 \r
231 /** @defgroup DMA2D_Input_Color_Mode DMA2D Input Color Mode\r
232   * @{\r
233   */\r
234 #define CM_ARGB8888        ((uint32_t)0x00000000)                               /*!< ARGB8888 color mode */\r
235 #define CM_RGB888          ((uint32_t)0x00000001)                               /*!< RGB888 color mode */\r
236 #define CM_RGB565          ((uint32_t)0x00000002)                               /*!< RGB565 color mode */\r
237 #define CM_ARGB1555        ((uint32_t)0x00000003)                               /*!< ARGB1555 color mode */\r
238 #define CM_ARGB4444        ((uint32_t)0x00000004)                               /*!< ARGB4444 color mode */\r
239 #define CM_L8              ((uint32_t)0x00000005)                               /*!< L8 color mode */\r
240 #define CM_AL44            ((uint32_t)0x00000006)                               /*!< AL44 color mode */\r
241 #define CM_AL88            ((uint32_t)0x00000007)                               /*!< AL88 color mode */\r
242 #define CM_L4              ((uint32_t)0x00000008)                               /*!< L4 color mode */\r
243 #define CM_A8              ((uint32_t)0x00000009)                               /*!< A8 color mode */\r
244 #define CM_A4              ((uint32_t)0x0000000A)                               /*!< A4 color mode */\r
245 /**\r
246   * @}\r
247   */\r
248 \r
249 /** @defgroup DMA2D_ALPHA_MODE DMA2D ALPHA MODE\r
250   * @{\r
251   */\r
252 #define DMA2D_NO_MODIF_ALPHA       ((uint32_t)0x00000000)  /*!< No modification of the alpha channel value */\r
253 #define DMA2D_REPLACE_ALPHA        ((uint32_t)0x00000001)  /*!< Replace original alpha channel value by programmed alpha value */\r
254 #define DMA2D_COMBINE_ALPHA        ((uint32_t)0x00000002)  /*!< Replace original alpha channel value by programmed alpha value\r
255                                                                 with original alpha channel value                              */\r
256 /**\r
257   * @}\r
258   */    \r
259 \r
260 /** @defgroup DMA2D_CLUT_CM DMA2D CLUT CM\r
261   * @{\r
262   */\r
263 #define DMA2D_CCM_ARGB8888    ((uint32_t)0x00000000)    /*!< ARGB8888 DMA2D C-LUT color mode */\r
264 #define DMA2D_CCM_RGB888      ((uint32_t)0x00000001)    /*!< RGB888 DMA2D C-LUT color mode   */\r
265 /**\r
266   * @}\r
267   */\r
268 \r
269 /** @defgroup DMA2D_Size_Clut DMA2D Size Clut\r
270   * @{\r
271   */\r
272 #define DMA2D_CLUT_SIZE    (DMA2D_FGPFCCR_CS >> 8)    /*!< DMA2D C-LUT size */\r
273 /**\r
274   * @}\r
275   */\r
276 \r
277 /** @defgroup DMA2D_DeadTime DMA2D DeadTime \r
278   * @{\r
279   */\r
280 #define LINE_WATERMARK            DMA2D_LWR_LW\r
281 /**\r
282   * @}\r
283   */\r
284 \r
285 /** @defgroup DMA2D_Interrupts DMA2D Interrupts \r
286   * @{\r
287   */\r
288 #define DMA2D_IT_CE             DMA2D_CR_CEIE    /*!< Configuration Error Interrupt */\r
289 #define DMA2D_IT_CTC            DMA2D_CR_CTCIE   /*!< C-LUT Transfer Complete Interrupt */\r
290 #define DMA2D_IT_CAE            DMA2D_CR_CAEIE   /*!< C-LUT Access Error Interrupt */\r
291 #define DMA2D_IT_TW             DMA2D_CR_TWIE    /*!< Transfer Watermark Interrupt */\r
292 #define DMA2D_IT_TC             DMA2D_CR_TCIE    /*!< Transfer Complete Interrupt */\r
293 #define DMA2D_IT_TE             DMA2D_CR_TEIE    /*!< Transfer Error Interrupt */\r
294 /**\r
295   * @}\r
296   */\r
297 \r
298 /** @defgroup DMA2D_Flag DMA2D Flag \r
299   * @{\r
300   */\r
301 #define DMA2D_FLAG_CE          DMA2D_ISR_CEIF     /*!< Configuration Error Interrupt Flag */\r
302 #define DMA2D_FLAG_CTC         DMA2D_ISR_CTCIF    /*!< C-LUT Transfer Complete Interrupt Flag */\r
303 #define DMA2D_FLAG_CAE         DMA2D_ISR_CAEIF    /*!< C-LUT Access Error Interrupt Flag */\r
304 #define DMA2D_FLAG_TW          DMA2D_ISR_TWIF     /*!< Transfer Watermark Interrupt Flag */\r
305 #define DMA2D_FLAG_TC          DMA2D_ISR_TCIF     /*!< Transfer Complete Interrupt Flag */\r
306 #define DMA2D_FLAG_TE          DMA2D_ISR_TEIF     /*!< Transfer Error Interrupt Flag */\r
307 /**\r
308   * @}\r
309   */\r
310   \r
311 /**\r
312   * @}\r
313   */\r
314 /* Exported macro ------------------------------------------------------------*/\r
315 /** @defgroup DMA2D_Exported_Macros DMA2D Exported Macros\r
316   * @{\r
317   */\r
318 \r
319 /** @brief Reset DMA2D handle state\r
320   * @param  __HANDLE__: specifies the DMA2D handle.\r
321   * @retval None\r
322   */\r
323 #define __HAL_DMA2D_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DMA2D_STATE_RESET)\r
324 \r
325 /**\r
326   * @brief  Enable the DMA2D.\r
327   * @param  __HANDLE__: DMA2D handle\r
328   * @retval None.\r
329   */\r
330 #define __HAL_DMA2D_ENABLE(__HANDLE__)        ((__HANDLE__)->Instance->CR |= DMA2D_CR_START)\r
331 \r
332 /**\r
333   * @brief  Disable the DMA2D.\r
334   * @param  __HANDLE__: DMA2D handle\r
335   * @retval None.\r
336   */\r
337 #define __HAL_DMA2D_DISABLE(__HANDLE__)        ((__HANDLE__)->Instance->CR &= ~DMA2D_CR_START)\r
338 \r
339 /* Interrupt & Flag management */\r
340 /**\r
341   * @brief  Get the DMA2D pending flags.\r
342   * @param  __HANDLE__: DMA2D handle\r
343   * @param  __FLAG__: Get the specified flag.\r
344   *          This parameter can be any combination of the following values:\r
345   *            @arg DMA2D_FLAG_CE:  Configuration error flag\r
346   *            @arg DMA2D_FLAG_CTC: C-LUT transfer complete flag\r
347   *            @arg DMA2D_FLAG_CAE: C-LUT access error flag\r
348   *            @arg DMA2D_FLAG_TW:  Transfer Watermark flag\r
349   *            @arg DMA2D_FLAG_TC:  Transfer complete flag\r
350   *            @arg DMA2D_FLAG_TE:  Transfer error flag   \r
351   * @retval The state of FLAG.\r
352   */\r
353 #define __HAL_DMA2D_GET_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR & (__FLAG__))\r
354 \r
355 /**\r
356   * @brief  Clears the DMA2D pending flags.\r
357   * @param  __HANDLE__: DMA2D handle\r
358   * @param  __FLAG__: specifies the flag to clear.\r
359   *          This parameter can be any combination of the following values:\r
360   *            @arg DMA2D_FLAG_CE:  Configuration error flag\r
361   *            @arg DMA2D_FLAG_CTC: C-LUT transfer complete flag\r
362   *            @arg DMA2D_FLAG_CAE: C-LUT access error flag\r
363   *            @arg DMA2D_FLAG_TW:  Transfer Watermark flag\r
364   *            @arg DMA2D_FLAG_TC:  Transfer complete flag\r
365   *            @arg DMA2D_FLAG_TE:  Transfer error flag    \r
366   * @retval None\r
367   */\r
368 #define __HAL_DMA2D_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->IFCR = (__FLAG__))\r
369 \r
370 /**\r
371   * @brief  Enables the specified DMA2D interrupts.\r
372   * @param  __HANDLE__: DMA2D handle\r
373   * @param __INTERRUPT__: specifies the DMA2D interrupt sources to be enabled. \r
374   *          This parameter can be any combination of the following values:\r
375   *            @arg DMA2D_IT_CE:  Configuration error interrupt mask\r
376   *            @arg DMA2D_IT_CTC: C-LUT transfer complete interrupt mask\r
377   *            @arg DMA2D_IT_CAE: C-LUT access error interrupt mask\r
378   *            @arg DMA2D_IT_TW:  Transfer Watermark interrupt mask\r
379   *            @arg DMA2D_IT_TC:  Transfer complete interrupt mask\r
380   *            @arg DMA2D_IT_TE:  Transfer error interrupt mask\r
381   * @retval None\r
382   */\r
383 #define __HAL_DMA2D_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))\r
384 \r
385 /**\r
386   * @brief  Disables the specified DMA2D interrupts.\r
387   * @param  __HANDLE__: DMA2D handle\r
388   * @param __INTERRUPT__: specifies the DMA2D interrupt sources to be disabled. \r
389   *          This parameter can be any combination of the following values:\r
390   *            @arg DMA2D_IT_CE:  Configuration error interrupt mask\r
391   *            @arg DMA2D_IT_CTC: C-LUT transfer complete interrupt mask\r
392   *            @arg DMA2D_IT_CAE: C-LUT access error interrupt mask\r
393   *            @arg DMA2D_IT_TW:  Transfer Watermark interrupt mask\r
394   *            @arg DMA2D_IT_TC:  Transfer complete interrupt mask\r
395   *            @arg DMA2D_IT_TE:  Transfer error interrupt mask\r
396   * @retval None\r
397   */\r
398 #define __HAL_DMA2D_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))\r
399 \r
400 /**\r
401   * @brief  Checks whether the specified DMA2D interrupt has occurred or not.\r
402   * @param  __HANDLE__: DMA2D handle\r
403   * @param  __INTERRUPT__: specifies the DMA2D interrupt source to check.\r
404   *          This parameter can be one of the following values:\r
405   *            @arg DMA2D_IT_CE:  Configuration error interrupt mask\r
406   *            @arg DMA2D_IT_CTC: C-LUT transfer complete interrupt mask\r
407   *            @arg DMA2D_IT_CAE: C-LUT access error interrupt mask\r
408   *            @arg DMA2D_IT_TW:  Transfer Watermark interrupt mask\r
409   *            @arg DMA2D_IT_TC:  Transfer complete interrupt mask\r
410   *            @arg DMA2D_IT_TE:  Transfer error interrupt mask\r
411   * @retval The state of INTERRUPT.\r
412   */\r
413 #define __HAL_DMA2D_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR & (__INTERRUPT__))\r
414 /**\r
415   * @}\r
416   */\r
417 \r
418 /* Exported functions --------------------------------------------------------*/  \r
419 /** @defgroup DMA2D_Exported_Functions DMA2D Exported Functions\r
420   * @{\r
421   */\r
422 /* Initialization and de-initialization functions *******************************/\r
423 HAL_StatusTypeDef HAL_DMA2D_Init(DMA2D_HandleTypeDef *hdma2d); \r
424 HAL_StatusTypeDef HAL_DMA2D_DeInit (DMA2D_HandleTypeDef *hdma2d);\r
425 void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef* hdma2d);\r
426 void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef* hdma2d);\r
427 \r
428 /* IO operation functions *******************************************************/\r
429 HAL_StatusTypeDef HAL_DMA2D_Start(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height);\r
430 HAL_StatusTypeDef HAL_DMA2D_BlendingStart(DMA2D_HandleTypeDef *hdma2d, uint32_t SrcAddress1, uint32_t SrcAddress2, uint32_t DstAddress, uint32_t Width,  uint32_t Height);\r
431 HAL_StatusTypeDef HAL_DMA2D_Start_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height);\r
432 HAL_StatusTypeDef HAL_DMA2D_BlendingStart_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t SrcAddress1, uint32_t SrcAddress2, uint32_t DstAddress, uint32_t Width, uint32_t Height);\r
433 HAL_StatusTypeDef HAL_DMA2D_Suspend(DMA2D_HandleTypeDef *hdma2d);\r
434 HAL_StatusTypeDef HAL_DMA2D_Resume(DMA2D_HandleTypeDef *hdma2d);\r
435 HAL_StatusTypeDef HAL_DMA2D_Abort(DMA2D_HandleTypeDef *hdma2d);\r
436 HAL_StatusTypeDef HAL_DMA2D_PollForTransfer(DMA2D_HandleTypeDef *hdma2d, uint32_t Timeout);\r
437 void              HAL_DMA2D_IRQHandler(DMA2D_HandleTypeDef *hdma2d);\r
438 \r
439 /* Peripheral Control functions *************************************************/\r
440 HAL_StatusTypeDef  HAL_DMA2D_ConfigLayer(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx);\r
441 HAL_StatusTypeDef  HAL_DMA2D_ConfigCLUT(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx);\r
442 HAL_StatusTypeDef  HAL_DMA2D_EnableCLUT(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx);\r
443 HAL_StatusTypeDef  HAL_DMA2D_DisableCLUT(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx);\r
444 HAL_StatusTypeDef  HAL_DMA2D_ProgramLineEvent(DMA2D_HandleTypeDef *hdma2d, uint32_t Line);\r
445 \r
446 /* Peripheral State functions ***************************************************/\r
447 HAL_DMA2D_StateTypeDef HAL_DMA2D_GetState(DMA2D_HandleTypeDef *hdma2d);\r
448 uint32_t               HAL_DMA2D_GetError(DMA2D_HandleTypeDef *hdma2d);\r
449 /**\r
450   * @}\r
451   */\r
452 \r
453 /* Private types -------------------------------------------------------------*/\r
454 /** @defgroup DMA2D_Private_Types DMA2D Private Types\r
455   * @{\r
456   */\r
457 \r
458 /**\r
459   * @}\r
460   */ \r
461 \r
462 /* Private defines -------------------------------------------------------------*/\r
463 /** @defgroup DMA2D_Private_Defines DMA2D Private Defines\r
464   * @{\r
465   */\r
466 \r
467 /**\r
468   * @}\r
469   */\r
470 \r
471 /* Private variables ---------------------------------------------------------*/\r
472 /** @defgroup DMA2D_Private_Variables DMA2D Private Variables\r
473   * @{\r
474   */\r
475 \r
476 /**\r
477   * @}\r
478   */ \r
479 \r
480 /* Private constants ---------------------------------------------------------*/\r
481 /** @defgroup DMA2D_Private_Constants DMA2D Private Constants\r
482   * @{\r
483   */\r
484 \r
485 /**\r
486   * @}\r
487   */ \r
488 \r
489 /* Private macros ------------------------------------------------------------*/\r
490 /** @defgroup DMA2D_Private_Macros DMA2D Private Macros\r
491   * @{\r
492   */\r
493 #define IS_DMA2D_LAYER(LAYER)                 ((LAYER) <= MAX_DMA2D_LAYER)\r
494 #define IS_DMA2D_MODE(MODE)                   (((MODE) == DMA2D_M2M)       || ((MODE) == DMA2D_M2M_PFC) || \\r
495                                                ((MODE) == DMA2D_M2M_BLEND) || ((MODE) == DMA2D_R2M))\r
496 #define IS_DMA2D_CMODE(MODE_ARGB)             (((MODE_ARGB) == DMA2D_ARGB8888) || ((MODE_ARGB) == DMA2D_RGB888)   || \\r
497                                                ((MODE_ARGB) == DMA2D_RGB565)   || ((MODE_ARGB) == DMA2D_ARGB1555) || \\r
498                                                ((MODE_ARGB) == DMA2D_ARGB4444))\r
499 #define IS_DMA2D_COLOR(COLOR)                 ((COLOR) <= COLOR_VALUE)\r
500 #define IS_DMA2D_LINE(LINE)                   ((LINE) <= DMA2D_LINE)\r
501 #define IS_DMA2D_PIXEL(PIXEL)                 ((PIXEL) <= DMA2D_PIXEL)\r
502 #define IS_DMA2D_OFFSET(OOFFSET)              ((OOFFSET) <= DMA2D_OFFSET)\r
503 #define IS_DMA2D_INPUT_COLOR_MODE(INPUT_CM)   (((INPUT_CM) == CM_ARGB8888) || ((INPUT_CM) == CM_RGB888)   || \\r
504                                                ((INPUT_CM) == CM_RGB565)   || ((INPUT_CM) == CM_ARGB1555) || \\r
505                                                ((INPUT_CM) == CM_ARGB4444) || ((INPUT_CM) == CM_L8)       || \\r
506                                                ((INPUT_CM) == CM_AL44)     || ((INPUT_CM) == CM_AL88)     || \\r
507                                                ((INPUT_CM) == CM_L4)       || ((INPUT_CM) == CM_A8)       || \\r
508                                                ((INPUT_CM) == CM_A4))\r
509 #define IS_DMA2D_ALPHA_MODE(AlphaMode)        (((AlphaMode) == DMA2D_NO_MODIF_ALPHA) || \\r
510                                                ((AlphaMode) == DMA2D_REPLACE_ALPHA)  || \\r
511                                                ((AlphaMode) == DMA2D_COMBINE_ALPHA))\r
512 #define IS_DMA2D_CLUT_CM(CLUT_CM)             (((CLUT_CM) == DMA2D_CCM_ARGB8888) || ((CLUT_CM) == DMA2D_CCM_RGB888))\r
513 #define IS_DMA2D_CLUT_SIZE(CLUT_SIZE)         ((CLUT_SIZE) <= DMA2D_CLUT_SIZE)\r
514 #define IS_DMA2D_LineWatermark(LineWatermark) ((LineWatermark) <= LINE_WATERMARK)\r
515 #define IS_DMA2D_IT(IT)                       (((IT) == DMA2D_IT_CTC) || ((IT) == DMA2D_IT_CAE) || \\r
516                                                ((IT) == DMA2D_IT_TW) || ((IT) == DMA2D_IT_TC) || \\r
517                                                ((IT) == DMA2D_IT_TE) || ((IT) == DMA2D_IT_CE))\r
518 #define IS_DMA2D_GET_FLAG(FLAG)               (((FLAG) == DMA2D_FLAG_CTC) || ((FLAG) == DMA2D_FLAG_CAE) || \\r
519                                                ((FLAG) == DMA2D_FLAG_TW)   || ((FLAG) == DMA2D_FLAG_TC)  || \\r
520                                                ((FLAG) == DMA2D_FLAG_TE)   || ((FLAG) == DMA2D_FLAG_CE))\r
521 /**\r
522   * @}\r
523   */\r
524 \r
525 /* Private functions prototypes ---------------------------------------------------------*/\r
526 /** @defgroup DMA2D_Private_Functions_Prototypes DMA2D Private Functions Prototypes\r
527   * @{\r
528   */\r
529 \r
530 /**\r
531   * @}\r
532   */\r
533 \r
534 /* Private functions ---------------------------------------------------------*/\r
535 /** @defgroup DMA2D_Private_Functions DMA2D Private Functions\r
536   * @{\r
537   */\r
538 \r
539 /**\r
540   * @}\r
541   */\r
542 \r
543 /**\r
544   * @}\r
545   */ \r
546 \r
547 /**\r
548   * @}\r
549   */\r
550 \r
551 \r
552 #ifdef __cplusplus\r
553 }\r
554 #endif\r
555 \r
556 #endif /* __STM32F7xx_HAL_DMA2D_H */\r
557  \r
558 \r
559 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/\r