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>
This commit is contained in:
parent
df31cf1db8
commit
060a61dfac
@ -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 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user