diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2014-12-19 13:37:08 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2014-12-19 13:37:08 -0600 |
commit | 4644126b0ef2ab09b23f94fe9fc2eee867909dba (patch) | |
tree | 9a7c9e72cff217dbbd279b44a1b85908302324e7 /nuttx/arch/arm/src/stm32 | |
parent | 12b574eb537f7dbd19b165b78898b1eabef065ca (diff) | |
download | nuttx-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.h | 83 |
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 */ |