summaryrefslogtreecommitdiff
path: root/nuttx/arch/arm/src/stm32
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-12-19 13:37:08 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-12-19 13:37:08 -0600
commit4644126b0ef2ab09b23f94fe9fc2eee867909dba (patch)
tree9a7c9e72cff217dbbd279b44a1b85908302324e7 /nuttx/arch/arm/src/stm32
parent12b574eb537f7dbd19b165b78898b1eabef065ca (diff)
downloadnuttx-4644126b0ef2ab09b23f94fe9fc2eee867909dba.tar.gz
nuttx-4644126b0ef2ab09b23f94fe9fc2eee867909dba.tar.bz2
nuttx-4644126b0ef2ab09b23f94fe9fc2eee867909dba.zip
stm32: Add common stm32 layer description. This defines a common layer description for the ltdc and dma2d controller.
Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
Diffstat (limited to 'nuttx/arch/arm/src/stm32')
-rw-r--r--nuttx/arch/arm/src/stm32/stm32_ltdc.h83
1 files changed, 69 insertions, 14 deletions
diff --git a/nuttx/arch/arm/src/stm32/stm32_ltdc.h b/nuttx/arch/arm/src/stm32/stm32_ltdc.h
index 007f03b52..4b2fb628e 100644
--- a/nuttx/arch/arm/src/stm32/stm32_ltdc.h
+++ b/nuttx/arch/arm/src/stm32/stm32_ltdc.h
@@ -1,8 +1,9 @@
/************************************************************************************
* arch/arm/src/stm32/stm32_ltdc.h
*
- * Copyright (C) 2013 Ken Pettit. All rights reserved.
- * Author: Ken Pettit <pettitkd@gmail.com>
+ * Copyright (C) 2013-2014 Ken Pettit. All rights reserved.
+ * Authors: Ken Pettit <pettitd@gmail.com>
+ * Marco Krahl <ocram.lhark@gmail.com>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -41,15 +42,13 @@
************************************************************************************/
#include <nuttx/config.h>
-
#include <stdbool.h>
-
+#include <semaphore.h>
+#include <nuttx/video/fb.h>
+#include <nuttx/video/ltdc.h>
#include <nuttx/nx/nxglib.h>
-#include "chip/stm32_ltdc.h"
-
#ifdef CONFIG_STM32_LTDC
-
/************************************************************************************
* Pre-processor Definitions
************************************************************************************/
@@ -58,6 +57,40 @@
* Public Types
************************************************************************************/
+/* Common layer state structure for the LTDC and DMA2D controller */
+
+struct stm32_ltdc_s
+{
+ /* Fixed settings */
+
+ int lid; /* Layer identifier */
+ struct fb_videoinfo_s vinfo; /* Layer videoinfo */
+ struct fb_planeinfo_s pinfo; /* Layer planeinfo */
+
+ /* Positioning */
+
+ struct ltdc_area_s area; /* Active layer area */
+ fb_coord_t xpos; /* Reference x position */
+ fb_coord_t ypos; /* Reference y position */
+
+ /* Coloring */
+
+ uint32_t color; /* Layer color definition */
+#ifdef CONFIG_FB_CMAP
+ struct fb_cmap_s *cmap; /* Reference to the valid color lookup table */
+#endif
+
+ /* Blending */
+
+ uint8_t alpha; /* Layer constant alpha value */
+ uint32_t colorkey; /* Layer colorkey */
+ uint32_t blendmode; /* Layer blend factor */
+
+ /* Operation */
+
+ sem_t *lock; /* Ensure mutually exclusive access */
+};
+
/************************************************************************************
* Public Data
************************************************************************************/
@@ -65,18 +98,40 @@
/************************************************************************************
* Public Functions
************************************************************************************/
-/* The STM32 LTDC driver uses the common framebuffer interfaces declared in
+/*
+ * The STM32 LTDC driver uses the common framebuffer interfaces declared in
* include/nuttx/video/fb.h.
*/
+int stm32_ltdcinitialize(void);
+FAR struct fb_vtable_s *stm32_ltdcgetvplane(int vplane);
+void stm32_ltdcuninitialize(void);
+
+/************************************************************************************
+ * Name: stm32_ltdcgetlayer
+ *
+ * Description:
+ * Get the ltdc layer structure to perform hardware layer operation
+ *
+ * Parameter:
+ * lid - Layer identifier
+ *
+ * Return:
+ * Reference to the layer control structure on success or Null if parameter
+ * invalid.
+ *
+ ************************************************************************************/
+
+FAR struct ltdc_layer_s *stm32_ltdcgetlayer(int lid);
+
/************************************************************************************
* Name: stm32_lcdclear
*
* Description:
- * This is a non-standard LCD interface just for the STM32. Clearing the display
- * in the normal way by writing a sequences of runs that covers the entire display
- * can be slow. Here the display is cleared by simply setting all buffer memory to
- * the specified color.
+ * This is a non-standard LCD interface just for the STM32 LTDC. Clearing the
+ * display in the normal way by writing a sequences of runs that covers the
+ * entire display can be slow. Here the display is cleared by simply setting
+ * all video memory to the specified color.
*
************************************************************************************/
@@ -91,8 +146,8 @@ void stm32_lcdclear(nxgl_mxpixel_t color);
*
************************************************************************************/
-#ifdef CONFIG_STM_LCD_BACKLIGHT
-void sam_lcd_backlight(bool blon);
+#ifdef CONFIG_STM32_LCD_BACKLIGHT
+void stm32_backlight(bool blon);
#endif
#endif /* CONFIG_STM32_LTDC */