RTEMS 6.1-rc1
Data Structures | Enumerator | Variables
Lcdifv2

Data Structures

struct  _lcdifv2_display_config
 LCDIF v2 display configure structure. More...
 
struct  _lcdifv2_buffer_config
 LCDIF v2 source buffer configuration. More...
 
struct  _lcdifv2_blend_config
 LCDIF v2 layer alpha blending configuration. More...
 

Variables

uint16_t _lcdifv2_display_config::panelWidth
 
uint16_t _lcdifv2_display_config::panelHeight
 
uint8_t _lcdifv2_display_config::hsw
 
uint8_t _lcdifv2_display_config::hfp
 
uint8_t _lcdifv2_display_config::hbp
 
uint8_t _lcdifv2_display_config::vsw
 
uint8_t _lcdifv2_display_config::vfp
 
uint8_t _lcdifv2_display_config::vbp
 
uint32_t _lcdifv2_display_config::polarityFlags
 
lcdifv2_line_order_t _lcdifv2_display_config::lineOrder
 
uint16_t _lcdifv2_buffer_config::strideBytes
 
lcdifv2_pixel_format_t _lcdifv2_buffer_config::pixelFormat
 
uint8_t _lcdifv2_blend_config::globalAlpha
 
lcdifv2_alpha_mode_t _lcdifv2_blend_config::alphaMode
 
lcdifv2_pd_alpha_mode_t _lcdifv2_blend_config::pdAlphaMode
 
lcdifv2_pd_color_mode_t _lcdifv2_blend_config::pdColorMode
 
lcdifv2_pd_global_alpha_mode_t _lcdifv2_blend_config::pdGlobalAlphaMode
 
lcdifv2_pd_factor_mode_t _lcdifv2_blend_config::pdFactorMode
 

Driver version

enum  _lcdifv2_polarity_flags {
  kLCDIFV2_VsyncActiveHigh = 0U , kLCDIFV2_HsyncActiveHigh = 0U , kLCDIFV2_DataEnableActiveHigh = 0U , kLCDIFV2_DriveDataOnRisingClkEdge = 0U ,
  kLCDIFV2_DataActiveHigh = 0U , kLCDIFV2_VsyncActiveLow = LCDIFV2_CTRL_INV_VS_MASK , kLCDIFV2_HsyncActiveLow = LCDIFV2_CTRL_INV_HS_MASK , kLCDIFV2_DataEnableActiveLow = LCDIFV2_CTRL_INV_DE_MASK ,
  kLCDIFV2_DriveDataOnFallingClkEdge = LCDIFV2_CTRL_INV_PXCK_MASK , kLCDIFV2_DataActiveLow = LCDIFV2_CTRL_NEG_MASK
}
 LCDIF v2 signal polarity flags. More...
 
enum  _lcdifv2_interrupt {
  kLCDIFV2_Layer0FifoEmptyInterrupt = LCDIFV2_MAKE_FIFO_EMPTY_INTERRUPT(0) , kLCDIFV2_Layer1FifoEmptyInterrupt = LCDIFV2_MAKE_FIFO_EMPTY_INTERRUPT(1) , kLCDIFV2_Layer2FifoEmptyInterrupt = LCDIFV2_MAKE_FIFO_EMPTY_INTERRUPT(2) , kLCDIFV2_Layer3FifoEmptyInterrupt = LCDIFV2_MAKE_FIFO_EMPTY_INTERRUPT(3) ,
  kLCDIFV2_Layer4FifoEmptyInterrupt = LCDIFV2_MAKE_FIFO_EMPTY_INTERRUPT(4) , kLCDIFV2_Layer5FifoEmptyInterrupt = LCDIFV2_MAKE_FIFO_EMPTY_INTERRUPT(5) , kLCDIFV2_Layer6FifoEmptyInterrupt = LCDIFV2_MAKE_FIFO_EMPTY_INTERRUPT(6) , kLCDIFV2_Layer7FifoEmptyInterrupt = LCDIFV2_MAKE_FIFO_EMPTY_INTERRUPT(7) ,
  kLCDIFV2_Layer0DmaDoneInterrupt = LCDIFV2_MAKE_DMA_DONE_INTERRUPT(0) , kLCDIFV2_Layer1DmaDoneInterrupt = LCDIFV2_MAKE_DMA_DONE_INTERRUPT(1) , kLCDIFV2_Layer2DmaDoneInterrupt = LCDIFV2_MAKE_DMA_DONE_INTERRUPT(2) , kLCDIFV2_Layer3DmaDoneInterrupt = LCDIFV2_MAKE_DMA_DONE_INTERRUPT(3) ,
  kLCDIFV2_Layer4DmaDoneInterrupt = LCDIFV2_MAKE_DMA_DONE_INTERRUPT(4) , kLCDIFV2_Layer5DmaDoneInterrupt = LCDIFV2_MAKE_DMA_DONE_INTERRUPT(5) , kLCDIFV2_Layer6DmaDoneInterrupt = LCDIFV2_MAKE_DMA_DONE_INTERRUPT(6) , kLCDIFV2_Layer7DmaDoneInterrupt = LCDIFV2_MAKE_DMA_DONE_INTERRUPT(7) ,
  kLCDIFV2_Layer0DmaErrorInterrupt = LCDIFV2_MAKE_DMA_ERROR_INTERRUPT(0) , kLCDIFV2_Layer1DmaErrorInterrupt = LCDIFV2_MAKE_DMA_ERROR_INTERRUPT(1) , kLCDIFV2_Layer2DmaErrorInterrupt = LCDIFV2_MAKE_DMA_ERROR_INTERRUPT(2) , kLCDIFV2_Layer3DmaErrorInterrupt = LCDIFV2_MAKE_DMA_ERROR_INTERRUPT(3) ,
  kLCDIFV2_Layer4DmaErrorInterrupt = LCDIFV2_MAKE_DMA_ERROR_INTERRUPT(4) , kLCDIFV2_Layer5DmaErrorInterrupt = LCDIFV2_MAKE_DMA_ERROR_INTERRUPT(5) , kLCDIFV2_Layer6DmaErrorInterrupt = LCDIFV2_MAKE_DMA_ERROR_INTERRUPT(6) , kLCDIFV2_Layer7DmaErrorInterrupt = LCDIFV2_MAKE_DMA_ERROR_INTERRUPT(7) ,
  kLCDIFV2_VerticalBlankingInterrupt = (1U << 2U) , kLCDIFV2_OutputUnderrunInterrupt = (1U << 1U) , kLCDIFV2_VsyncEdgeInterrupt = (1U << 0U)
}
 The LCDIF v2 interrupts. More...
 
enum  _lcdifv2_line_order {
  kLCDIFV2_LineOrderRGB = 0 , kLCDIFV2_LineOrderRBG , kLCDIFV2_LineOrderGBR , kLCDIFV2_LineOrderGRB ,
  kLCDIFV2_LineOrderBRG , kLCDIFV2_LineOrderBGR
}
 The LCDIF v2 output line order. More...
 
enum  _lcdifv2_csc_mode { kLCDIFV2_CscDisable = 0U , kLCDIFV2_CscYUV2RGB , kLCDIFV2_CscYCbCr2RGB }
 LCDIF v2 color space conversion mode. More...
 
enum  _lcdifv2_pixel_format {
  kLCDIFV2_PixelFormatIndex1BPP = LCDIFV2_CTRLDESCL5_BPP(0U) , kLCDIFV2_PixelFormatIndex2BPP = LCDIFV2_CTRLDESCL5_BPP(1U) , kLCDIFV2_PixelFormatIndex4BPP = LCDIFV2_CTRLDESCL5_BPP(2U) , kLCDIFV2_PixelFormatIndex8BPP = LCDIFV2_CTRLDESCL5_BPP(3U) ,
  kLCDIFV2_PixelFormatRGB565 = LCDIFV2_CTRLDESCL5_BPP(4U) , kLCDIFV2_PixelFormatARGB1555 = LCDIFV2_CTRLDESCL5_BPP(5U) , kLCDIFV2_PixelFormatARGB4444 = LCDIFV2_CTRLDESCL5_BPP(6U) , kLCDIFV2_PixelFormatUYVY ,
  kLCDIFV2_PixelFormatVYUY , kLCDIFV2_PixelFormatYUYV , kLCDIFV2_PixelFormatYVYU , kLCDIFV2_PixelFormatRGB888 = LCDIFV2_CTRLDESCL5_BPP(8U) ,
  kLCDIFV2_PixelFormatARGB8888 = LCDIFV2_CTRLDESCL5_BPP(9U) , kLCDIFV2_PixelFormatABGR8888 = LCDIFV2_CTRLDESCL5_BPP(10U)
}
 LCDIF v2 pixel format. More...
 
enum  _lcdifv2_alpha_mode { kLCDIFV2_AlphaDisable , kLCDIFV2_AlphaOverride , kLCDIFV2_AlphaEmbedded , kLCDIFV2_AlphaPoterDuff }
 LCDIF v2 layer alpha blending mode. More...
 
enum  _lcdifv2_pd_alpha_mode { kLCDIFV2_PD_AlphaStraight = 0 , kLCDIFV2_PD_AlphaInversed = 1 }
 LCDIF v2 PoterDuff alpha mode. More...
 
enum  _lcdifv2_pd_color_mode { kLCDIFV2_PD_ColorNoAlpha = 0 , kLCDIFV2_PD_ColorWithAlpha = 1 }
 LCDIF v2 PoterDuff color mode. More...
 
enum  _lcdifv2_pd_global_alpha_mode { kLCDIFV2_PD_GlobalAlpha = 0 , kLCDIFV2_PD_LocalAlpha = 1 , kLCDIFV2_PD_ScaledAlpha = 2 }
 LCDIF v2 PoterDuff global alpha mode. More...
 
enum  _lcdifv2_pd_factor_mode { kLCDIFV2_PD_FactorOne = 0 , kLCDIFV2_PD_FactorZero = 1 , kLCDIFV2_PD_FactorStraightAlpha = 2 , kLCDIFV2_PD_FactorInversedAlpha = 3 }
 LCDIF v2 PoterDuff factor mode. More...
 
enum  _lcdifv2_pd_blend_mode {
  kLCDIFV2_PD_Src = 0 , kLCDIFV2_PD_Atop , kLCDIFV2_PD_Over , kLCDIFV2_PD_In ,
  kLCDIFV2_PD_Out , kLCDIFV2_PD_Dst , kLCDIFV2_PD_DstAtop , kLCDIFV2_PD_DstOver ,
  kLCDIFV2_PD_DstIn , kLCDIFV2_PD_DstOut , kLCDIFV2_PD_Xor , kLCDIFV2_PD_Clear ,
  kLCDIFV2_PD_Max
}
 LCDIFv2 Porter Duff blend mode. Note: Don't change the enum item value. More...
 
enum  _lcdifv2_pd_layer { kLCDIFV2_PD_SrcLayer = 0 , kLCDIFV2_PD_DestLayer = 1 , kLCDIFV2_PD_LayerMax = 2 }
 LCDIFv2 Porter Duff layer. Note: Don't change the enum item value. More...
 
typedef enum _lcdifv2_line_order lcdifv2_line_order_t
 The LCDIF v2 output line order.
 
typedef struct _lcdifv2_display_config lcdifv2_display_config_t
 LCDIF v2 display configure structure.
 
typedef enum _lcdifv2_csc_mode lcdifv2_csc_mode_t
 LCDIF v2 color space conversion mode.
 
typedef enum _lcdifv2_pixel_format lcdifv2_pixel_format_t
 LCDIF v2 pixel format.
 
typedef struct _lcdifv2_buffer_config lcdifv2_buffer_config_t
 LCDIF v2 source buffer configuration.
 
typedef enum _lcdifv2_alpha_mode lcdifv2_alpha_mode_t
 LCDIF v2 layer alpha blending mode.
 
typedef enum _lcdifv2_pd_alpha_mode lcdifv2_pd_alpha_mode_t
 LCDIF v2 PoterDuff alpha mode.
 
typedef enum _lcdifv2_pd_color_mode lcdifv2_pd_color_mode_t
 LCDIF v2 PoterDuff color mode.
 
typedef enum _lcdifv2_pd_global_alpha_mode lcdifv2_pd_global_alpha_mode_t
 LCDIF v2 PoterDuff global alpha mode.
 
typedef enum _lcdifv2_pd_factor_mode lcdifv2_pd_factor_mode_t
 LCDIF v2 PoterDuff factor mode.
 
typedef struct _lcdifv2_blend_config lcdifv2_blend_config_t
 LCDIF v2 layer alpha blending configuration.
 
typedef enum _lcdifv2_pd_blend_mode lcdifv2_pd_blend_mode_t
 LCDIFv2 Porter Duff blend mode. Note: Don't change the enum item value.
 
typedef enum _lcdifv2_pd_layer lcdifv2_pd_layer_t
 LCDIFv2 Porter Duff layer. Note: Don't change the enum item value.
 
#define FSL_LCDIFV2_DRIVER_VERSION   (MAKE_VERSION(2, 3, 2))
 LCDIF v2 driver version.
 
#define LCDIFV2_ADDR_CPU_2_IP(addr)   (addr)
 
#define LCDIFV2_MAKE_FIFO_EMPTY_INTERRUPT(layer)   (1UL << ((uint32_t)(layer) + 24U))
 LCDIF v2 FIFO empty interrupt.
 
#define LCDIFV2_MAKE_DMA_DONE_INTERRUPT(layer)   (1UL << ((uint32_t)(layer) + 16U))
 LCDIF v2 DMA done interrupt.
 
#define LCDIFV2_MAKE_DMA_ERROR_INTERRUPT(layer)   (1UL << ((uint32_t)(layer) + 8U))
 LCDIF v2 DMA error interrupt.
 
#define LCDIFV2_LUT_ENTRY_NUM   256U
 

LCDIF v2 initialization and de-initialization

void LCDIFV2_Init (LCDIFV2_Type *base)
 Initializes the LCDIF v2. More...
 
void LCDIFV2_Deinit (LCDIFV2_Type *base)
 Deinitializes the LCDIF peripheral. More...
 
void LCDIFV2_Reset (LCDIFV2_Type *base)
 Reset the LCDIF v2. More...
 

Display

void LCDIFV2_DisplayGetDefaultConfig (lcdifv2_display_config_t *config)
 Gets the LCDIF display default configuration structure. More...
 
void LCDIFV2_SetDisplayConfig (LCDIFV2_Type *base, const lcdifv2_display_config_t *config)
 Set the LCDIF v2 display configurations. More...
 

LUT

status_t LCDIFV2_SetLut (LCDIFV2_Type *base, uint8_t layerIndex, const uint32_t *lutData, uint16_t count, bool useShadowLoad)
 Set the LUT data. More...
 

Layer operation

void LCDIFV2_SetLayerBufferConfig (LCDIFV2_Type *base, uint8_t layerIndex, const lcdifv2_buffer_config_t *config)
 Set the layer source buffer configuration. More...
 
void LCDIFV2_SetLayerBlendConfig (LCDIFV2_Type *base, uint8_t layerIndex, const lcdifv2_blend_config_t *config)
 Set the layer alpha blend mode. More...
 
void LCDIFV2_SetCscMode (LCDIFV2_Type *base, uint8_t layerIndex, lcdifv2_csc_mode_t mode)
 Set the color space conversion mode. More...
 

Porter Duff

status_t LCDIFV2_GetPorterDuffConfig (lcdifv2_pd_blend_mode_t mode, lcdifv2_pd_layer_t layer, lcdifv2_blend_config_t *config)
 Get the blend configuration for Porter Duff blend. More...
 

Misc

status_t LCDIFV2_GetMultiLayerGlobalAlpha (const uint8_t blendedAlpha[], uint8_t globalAlpha[], uint8_t layerCount)
 Get the global alpha values for multiple layer blend. More...
 

Detailed Description

Enumeration Type Documentation

◆ _lcdifv2_alpha_mode

LCDIF v2 layer alpha blending mode.

Enumerator
kLCDIFV2_AlphaDisable 

Disable alpha blend.

kLCDIFV2_AlphaOverride 

Use the gobal alpha value, pixel defined alpha value is overridden.

kLCDIFV2_AlphaEmbedded 

Use the pixel defined alpha value.

kLCDIFV2_AlphaPoterDuff 

Use the PoterDuff alpha blending.

◆ _lcdifv2_csc_mode

LCDIF v2 color space conversion mode.

Enumerator
kLCDIFV2_CscDisable 

Disable the CSC.

kLCDIFV2_CscYUV2RGB 

YUV to RGB.

kLCDIFV2_CscYCbCr2RGB 

YCbCr to RGB.

◆ _lcdifv2_interrupt

The LCDIF v2 interrupts.

Enumerator
kLCDIFV2_Layer0FifoEmptyInterrupt 

Layer 0 FIFO empty.

kLCDIFV2_Layer1FifoEmptyInterrupt 

Layer 1 FIFO empty.

kLCDIFV2_Layer2FifoEmptyInterrupt 

Layer 2 FIFO empty.

kLCDIFV2_Layer3FifoEmptyInterrupt 

Layer 3 FIFO empty.

kLCDIFV2_Layer4FifoEmptyInterrupt 

Layer 4 FIFO empty.

kLCDIFV2_Layer5FifoEmptyInterrupt 

Layer 5 FIFO empty.

kLCDIFV2_Layer6FifoEmptyInterrupt 

Layer 6 FIFO empty.

kLCDIFV2_Layer7FifoEmptyInterrupt 

Layer 7 FIFO empty.

kLCDIFV2_Layer0DmaDoneInterrupt 

Layer 0 DMA done.

kLCDIFV2_Layer1DmaDoneInterrupt 

Layer 1 DMA done.

kLCDIFV2_Layer2DmaDoneInterrupt 

Layer 2 DMA done.

kLCDIFV2_Layer3DmaDoneInterrupt 

Layer 3 DMA done.

kLCDIFV2_Layer4DmaDoneInterrupt 

Layer 4 DMA done.

kLCDIFV2_Layer5DmaDoneInterrupt 

Layer 5 DMA done.

kLCDIFV2_Layer6DmaDoneInterrupt 

Layer 6 DMA done.

kLCDIFV2_Layer7DmaDoneInterrupt 

Layer 7 DMA done.

kLCDIFV2_Layer0DmaErrorInterrupt 

Layer 0 DMA error.

kLCDIFV2_Layer1DmaErrorInterrupt 

Layer 1 DMA error.

kLCDIFV2_Layer2DmaErrorInterrupt 

Layer 2 DMA error.

kLCDIFV2_Layer3DmaErrorInterrupt 

Layer 3 DMA error.

kLCDIFV2_Layer4DmaErrorInterrupt 

Layer 4 DMA error.

kLCDIFV2_Layer5DmaErrorInterrupt 

Layer 5 DMA error.

kLCDIFV2_Layer6DmaErrorInterrupt 

Layer 6 DMA error.

kLCDIFV2_Layer7DmaErrorInterrupt 

Layer 7 DMA error.

kLCDIFV2_VerticalBlankingInterrupt 

Start of vertical blanking period.

kLCDIFV2_OutputUnderrunInterrupt 

Output buffer underrun.

kLCDIFV2_VsyncEdgeInterrupt 

Interrupt at VSYNC edge.

◆ _lcdifv2_line_order

The LCDIF v2 output line order.

Enumerator
kLCDIFV2_LineOrderRGB 

RGB

kLCDIFV2_LineOrderRBG 

RBG

kLCDIFV2_LineOrderGBR 

GBR

kLCDIFV2_LineOrderGRB 

GRB

kLCDIFV2_LineOrderBRG 

BRG

kLCDIFV2_LineOrderBGR 

BGR

◆ _lcdifv2_pd_alpha_mode

LCDIF v2 PoterDuff alpha mode.

Enumerator
kLCDIFV2_PD_AlphaStraight 

Straight mode.

kLCDIFV2_PD_AlphaInversed 

Inversed mode.

◆ _lcdifv2_pd_blend_mode

LCDIFv2 Porter Duff blend mode. Note: Don't change the enum item value.

Enumerator
kLCDIFV2_PD_Src 

Source Only

kLCDIFV2_PD_Atop 

Source Atop

kLCDIFV2_PD_Over 

Source Over

kLCDIFV2_PD_In 

Source In.

kLCDIFV2_PD_Out 

Source Out.

kLCDIFV2_PD_Dst 

Destination Only.

kLCDIFV2_PD_DstAtop 

Destination Atop.

kLCDIFV2_PD_DstOver 

Destination Over.

kLCDIFV2_PD_DstIn 

Destination In.

kLCDIFV2_PD_DstOut 

Destination Out.

kLCDIFV2_PD_Xor 

XOR.

kLCDIFV2_PD_Clear 

Clear.

kLCDIFV2_PD_Max 

Used for boarder detection.

◆ _lcdifv2_pd_color_mode

LCDIF v2 PoterDuff color mode.

Enumerator
kLCDIFV2_PD_ColorNoAlpha 

Output color directly.

kLCDIFV2_PD_ColorWithAlpha 

Output color multiples alpha.

◆ _lcdifv2_pd_factor_mode

LCDIF v2 PoterDuff factor mode.

Enumerator
kLCDIFV2_PD_FactorOne 

Use 1.

kLCDIFV2_PD_FactorZero 

Use 0.

kLCDIFV2_PD_FactorStraightAlpha 

Use straight alpha.

kLCDIFV2_PD_FactorInversedAlpha 

Use inversed alpha.

◆ _lcdifv2_pd_global_alpha_mode

LCDIF v2 PoterDuff global alpha mode.

Enumerator
kLCDIFV2_PD_GlobalAlpha 

Use global alpha.

kLCDIFV2_PD_LocalAlpha 

Use local alpha.

kLCDIFV2_PD_ScaledAlpha 

Use scaled alpha.

◆ _lcdifv2_pd_layer

LCDIFv2 Porter Duff layer. Note: Don't change the enum item value.

Enumerator
kLCDIFV2_PD_SrcLayer 

Source layer.

kLCDIFV2_PD_DestLayer 

Destination layer.

kLCDIFV2_PD_LayerMax 

Used for boarder detection.

◆ _lcdifv2_pixel_format

LCDIF v2 pixel format.

Enumerator
kLCDIFV2_PixelFormatIndex1BPP 

LUT index 1 bit.

kLCDIFV2_PixelFormatIndex2BPP 

LUT index 2 bit.

kLCDIFV2_PixelFormatIndex4BPP 

LUT index 4 bit.

kLCDIFV2_PixelFormatIndex8BPP 

LUT index 8 bit.

kLCDIFV2_PixelFormatRGB565 

RGB565, two pixels use 32 bits.

kLCDIFV2_PixelFormatARGB1555 

ARGB1555, two pixels use 32 bits.

kLCDIFV2_PixelFormatARGB4444 

ARGB4444, two pixels use 32 bits.

kLCDIFV2_PixelFormatUYVY 

UYVY, only layer 0 and layer 1 support this.

kLCDIFV2_PixelFormatVYUY 

VYUY, only layer 0 and layer 1 support this.

kLCDIFV2_PixelFormatYUYV 

YUYV, only layer 0 and layer 1 support this.

kLCDIFV2_PixelFormatYVYU 

YVYU, only layer 0 and layer 1 support this.

kLCDIFV2_PixelFormatRGB888 

RGB888 packed, one pixel uses 24 bits.

kLCDIFV2_PixelFormatARGB8888 

ARGB8888 unpacked, one pixel uses 32 bits.

kLCDIFV2_PixelFormatABGR8888 

ABGR8888 unpacked, one pixel uses 32 bits.

◆ _lcdifv2_polarity_flags

LCDIF v2 signal polarity flags.

Enumerator
kLCDIFV2_VsyncActiveHigh 

VSYNC active high.

kLCDIFV2_HsyncActiveHigh 

HSYNC active high.

kLCDIFV2_DataEnableActiveHigh 

Data enable line active high.

kLCDIFV2_DriveDataOnRisingClkEdge 

Output data on rising clock edge, capture data on falling clock edge.

kLCDIFV2_DataActiveHigh 

Data active high.

kLCDIFV2_VsyncActiveLow 

VSYNC active low.

kLCDIFV2_HsyncActiveLow 

HSYNC active low.

kLCDIFV2_DataEnableActiveLow 

Data enable line active low.

kLCDIFV2_DriveDataOnFallingClkEdge 

Output data on falling clock edge, capture data on rising clock edge.

kLCDIFV2_DataActiveLow 

Data active high.

Function Documentation

◆ LCDIFV2_Deinit()

void LCDIFV2_Deinit ( LCDIFV2_Type base)

Deinitializes the LCDIF peripheral.

Parameters
baseLCDIF peripheral base address.

brief Deinitializes the LCDIF peripheral.

param base LCDIF peripheral base address.

◆ LCDIFV2_DisplayGetDefaultConfig()

void LCDIFV2_DisplayGetDefaultConfig ( lcdifv2_display_config_t config)

Gets the LCDIF display default configuration structure.

This function sets the configuration structure to default values. The default configuration is set to the following values.

config->panelWidth = 0U;
config->panelHeight = 0U;
config->hsw = 3U;
config->hfp = 3U;
config->hbp = 3U;
config->vsw = 3U;
config->vfp = 3U;
config->vbp = 3U;
@ kLCDIFV2_LineOrderRGB
Definition: fsl_lcdifv2.h:114
@ kLCDIFV2_DataActiveHigh
Definition: fsl_lcdifv2.h:67
@ kLCDIFV2_HsyncActiveHigh
Definition: fsl_lcdifv2.h:63
@ kLCDIFV2_DriveDataOnRisingClkEdge
Definition: fsl_lcdifv2.h:65
@ kLCDIFV2_DataEnableActiveHigh
Definition: fsl_lcdifv2.h:64
@ kLCDIFV2_VsyncActiveHigh
Definition: fsl_lcdifv2.h:62
Definition: deflate.c:114
Parameters
configPointer to the LCDIF configuration structure.

brief Gets the LCDIF display default configuration structure.

param config Pointer to the LCDIF configuration structure.

◆ LCDIFV2_GetMultiLayerGlobalAlpha()

status_t LCDIFV2_GetMultiLayerGlobalAlpha ( const uint8_t  blendedAlpha[],
uint8_t  globalAlpha[],
uint8_t  layerCount 
)

Get the global alpha values for multiple layer blend.

This function calculates the global alpha value for each layer based on the desired blended alpha.

When all layers use the global alpha, the relationship of blended alpha and global alpha of each layer is:

Layer 7: ba7 = ga7 Layer 6: ba6 = ga6 * (1-ga7) Layer 5: ba5 = ga5 * (1-ga6) * (1-ga7) Layer 4: ba4 = ga4 * (1-ga5) * (1-ga6) * (1-ga7) Layer 3: ba3 = ga3 * (1-ga4) * (1-ga5) * (1-ga6) * (1-ga7) Layer 2: ba2 = ga2 * (1-ga3) * (1-ga4) * (1-ga5) * (1-ga6) * (1-ga7) Layer 1: ba1 = ga1 * (1-ga2) * (1-ga3) * (1-ga4) * (1-ga5) * (1-ga6) * (1-ga7) Layer 0: ba0 = 1 * (1-ga1) * (1-ga2) * (1-ga3) * (1-ga4) * (1-ga5) * (1-ga6) * (1-ga7)

Here baN is the blended alpha of layer N, gaN is the global alpha configured to layer N.

This function calculates the global alpha based on the blended alpha. The blendedAlpha and globalAlpha are all arrays of size layerCount. The first layer is a background layer, so blendedAlpha[0] is useless, globalAlpha[0] is always 255.

Parameters
[in]blendedAlphaThe desired blended alpha value, alpha range 0~255.
[out]globalAlphaCalculated global alpha set to each layer register.
[in]layerCountTotal layer count.
Return values
kStatus_SuccessGet successfully.
kStatus_InvalidArgumentThe argument is invalid.

◆ LCDIFV2_GetPorterDuffConfig()

status_t LCDIFV2_GetPorterDuffConfig ( lcdifv2_pd_blend_mode_t  mode,
lcdifv2_pd_layer_t  layer,
lcdifv2_blend_config_t config 
)

Get the blend configuration for Porter Duff blend.

This function gets the blend configuration for Porter Duff blend, config->pdFactorMode is set according to layer and mode, other blend configurations are set to:

config->pdColorMode = kLCDIFV2_PD_ColorStraight;
config->pdGlobalAlphaMode = kLCDIFV2_PD_LocalAlpha;
@ kLCDIFV2_AlphaPoterDuff
Definition: fsl_lcdifv2.h:185
@ kLCDIFV2_PD_AlphaStraight
Definition: fsl_lcdifv2.h:193
@ kLCDIFV2_PD_LocalAlpha
Definition: fsl_lcdifv2.h:212

This is the basic Porter Duff blend configuration, user still could modify the configurations after this function.

Parameters
modePorter Duff blend mode.
layerThe configuration for source layer or destination layer.
configPointer to the configuration.
Return values
kStatus_SuccessGet the configuration successfully.
kStatus_InvalidArgumentThe argument is invalid.

◆ LCDIFV2_Init()

void LCDIFV2_Init ( LCDIFV2_Type base)

Initializes the LCDIF v2.

This function ungates the LCDIF v2 clock and release the peripheral reset.

Parameters
baseLCDIF v2 peripheral base address.

brief Initializes the LCDIF v2.

This function ungates the LCDIF v2 clock and release the peripheral reset.

param base LCDIF v2 peripheral base address.

◆ LCDIFV2_Reset()

void LCDIFV2_Reset ( LCDIFV2_Type base)

Reset the LCDIF v2.

Parameters
baseLCDIF peripheral base address.

brief Reset the LCDIF v2.

param base LCDIF peripheral base address.

◆ LCDIFV2_SetCscMode()

void LCDIFV2_SetCscMode ( LCDIFV2_Type base,
uint8_t  layerIndex,
lcdifv2_csc_mode_t  mode 
)

Set the color space conversion mode.

Supports YUV2RGB and YCbCr2RGB.

Parameters
baseLCDIFv2 peripheral base address.
layerIndexIndex of the layer.
modeThe conversion mode.

brief Set the color space conversion mode.

Supports YUV2RGB and YCbCr2RGB.

param base LCDIFv2 peripheral base address. param layerIndex Index of the layer. param mode The conversion mode.

◆ LCDIFV2_SetDisplayConfig()

void LCDIFV2_SetDisplayConfig ( LCDIFV2_Type base,
const lcdifv2_display_config_t config 
)

Set the LCDIF v2 display configurations.

Parameters
baseLCDIF peripheral base address.
configPointer to the LCDIF configuration structure.

brief Set the LCDIF v2 display configurations.

param base LCDIF peripheral base address. param config Pointer to the LCDIF configuration structure.

◆ LCDIFV2_SetLayerBlendConfig()

void LCDIFV2_SetLayerBlendConfig ( LCDIFV2_Type base,
uint8_t  layerIndex,
const lcdifv2_blend_config_t config 
)

Set the layer alpha blend mode.

Parameters
baseLCDIFv2 peripheral base address.
layerIndexIndex of the CSC unit.
configPointer to the blend configuration.

brief Set the layer alpha blend mode.

param base LCDIFv2 peripheral base address. param layerIndex Index of the CSC unit. param config Pointer to the blend configuration.

◆ LCDIFV2_SetLayerBufferConfig()

void LCDIFV2_SetLayerBufferConfig ( LCDIFV2_Type base,
uint8_t  layerIndex,
const lcdifv2_buffer_config_t config 
)

Set the layer source buffer configuration.

Parameters
baseLCDIFv2 peripheral base address.
layerIndexLayer layerIndex.
configPointer to the configuration.

brief Set the layer source buffer configuration.

param base LCDIFv2 peripheral base address. param layerIndex Layer layerIndex. param config Pointer to the configuration.

◆ LCDIFV2_SetLut()

status_t LCDIFV2_SetLut ( LCDIFV2_Type base,
uint8_t  layerIndex,
const uint32_t *  lutData,
uint16_t  count,
bool  useShadowLoad 
)

Set the LUT data.

This function sets the specific layer LUT data, if useShadowLoad is true, call LCDIFV2_TriggerLayerShadowLoad after this function, the LUT will be loaded to the hardware during next vertical blanking period. If useShadowLoad is false, the LUT data is loaded to hardware directly.

Parameters
baseLCDIF v2 peripheral base address.
layerIndexWhich layer to set.
lutDataThe LUT data to load.
countCount of lutData.
useShadowLoadUse shadow load.
Return values
kStatus_SuccessSet success.
kStatus_FailPrevious LUT data is not loaded to hardware yet.

brief Set the LUT data.

This function sets the specific layer LUT data, if useShadowLoad is true, call LCDIFV2_TriggerLayerShadowLoad after this function, the LUT will be loaded to the hardware during next vertical blanking period. If useShadowLoad is false, the LUT data is loaded to hardware directly.

param base LCDIF v2 peripheral base address. param layerIndex Which layer to set. param lutData The LUT data to load. param count Count of lutData. retval kStatus_Success Set success. retval kStatus_Fail Previous LUT data is not loaded to hardware yet.

Variable Documentation

◆ alphaMode

lcdifv2_alpha_mode_t _lcdifv2_blend_config::alphaMode

Alpha mode.

◆ globalAlpha

uint8_t _lcdifv2_blend_config::globalAlpha

Global alpha value, only used when alphaMode is kLCDIFV2_AlphaOverride or kLCDIFV2_AlphaPoterDuff

◆ hbp

uint8_t _lcdifv2_display_config::hbp

Horizontal back porch.

◆ hfp

uint8_t _lcdifv2_display_config::hfp

Horizontal front porch.

◆ hsw

uint8_t _lcdifv2_display_config::hsw

HSYNC pulse width.

◆ lineOrder

lcdifv2_line_order_t _lcdifv2_display_config::lineOrder

Line order.

◆ panelHeight

uint16_t _lcdifv2_display_config::panelHeight

Display panel height, how many lines per panel.

◆ panelWidth

uint16_t _lcdifv2_display_config::panelWidth

Display panel width, pixels per line.

◆ pdAlphaMode

lcdifv2_pd_alpha_mode_t _lcdifv2_blend_config::pdAlphaMode

PoterDuff alpha mode, only used when alphaMode is kLCDIFV2_AlphaPoterDuff

◆ pdColorMode

lcdifv2_pd_color_mode_t _lcdifv2_blend_config::pdColorMode

PoterDuff color mode, only used when alphaMode is kLCDIFV2_AlphaPoterDuff

◆ pdFactorMode

lcdifv2_pd_factor_mode_t _lcdifv2_blend_config::pdFactorMode

PoterDuff factor mode, only used when alphaMode is kLCDIFV2_AlphaPoterDuff

◆ pdGlobalAlphaMode

lcdifv2_pd_global_alpha_mode_t _lcdifv2_blend_config::pdGlobalAlphaMode

PoterDuff global alpha mode, only used when alphaMode is kLCDIFV2_AlphaPoterDuff

◆ pixelFormat

lcdifv2_pixel_format_t _lcdifv2_buffer_config::pixelFormat

Source buffer pixel format.

◆ polarityFlags

uint32_t _lcdifv2_display_config::polarityFlags

OR'ed value of _lcdifv2_polarity_flags, used to contol the signal polarity.

◆ strideBytes

uint16_t _lcdifv2_buffer_config::strideBytes

Number of bytes between two vertically adjacent pixels, suggest 64-bit aligned.

◆ vbp

uint8_t _lcdifv2_display_config::vbp

Vertical back porch.

◆ vfp

uint8_t _lcdifv2_display_config::vfp

Vrtical front porch.

◆ vsw

uint8_t _lcdifv2_display_config::vsw

VSYNC pulse width.