diff --git a/arch/arm/src/stm32/stm32_dma2d.c b/arch/arm/src/stm32/stm32_dma2d.c index b0be5b9309f..c23cb843d95 100644 --- a/arch/arm/src/stm32/stm32_dma2d.c +++ b/arch/arm/src/stm32/stm32_dma2d.c @@ -243,7 +243,7 @@ static int stm32_dma2d_blend(FAR struct stm32_dma2d_overlay_s *doverlay, * Private Data ****************************************************************************/ -/* The initalized state of the driver */ +/* The initialized state of the driver */ static bool g_initialized; @@ -278,19 +278,19 @@ static struct stm32_interrupt_s g_interrupt = static struct stm32_dma2d_s g_dma2ddev = { - .dma2d = - { + .dma2d = + { #ifdef CONFIG_FB_CMAP - .setclut = stm32_dma2d_setclut, + .setclut = stm32_dma2d_setclut, #endif - .fillcolor = stm32_dma2d_fillcolor, - .blit = stm32_dma2d_blit, - .blend = stm32_dma2d_blend - }, + .fillcolor = stm32_dma2d_fillcolor, + .blit = stm32_dma2d_blit, + .blend = stm32_dma2d_blend + }, #ifdef CONFIG_FB_CMAP - .clut = g_clut, + .clut = g_clut, #endif - .lock = &g_lock + .lock = &g_lock }; /**************************************************************************** diff --git a/arch/arm/src/stm32/stm32_dma2d.h b/arch/arm/src/stm32/stm32_dma2d.h index e8fac4bdd28..f18bb8d98da 100644 --- a/arch/arm/src/stm32/stm32_dma2d.h +++ b/arch/arm/src/stm32/stm32_dma2d.h @@ -43,10 +43,7 @@ #include #include -# ifdef CONFIG_FB_OVERLAY -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ +#ifdef CONFIG_FB_OVERLAY /**************************************************************************** * Public Types @@ -81,9 +78,9 @@ struct dma2d_layer_s * On error - -EINVAL */ -# ifdef CONFIG_FB_CMAP +#ifdef CONFIG_FB_CMAP int (*setclut)(FAR const struct fb_cmap_s * cmap); -# endif +#endif /* Name: fillcolor * @@ -161,14 +158,6 @@ struct dma2d_layer_s FAR const struct fb_area_s *barea); }; -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/**************************************************************************** - * Inline Functions - ****************************************************************************/ - /**************************************************************************** * Public Functions ****************************************************************************/ @@ -212,5 +201,5 @@ int stm32_dma2dinitialize(void); void stm32_dma2duninitialize(void); -# endif /* CONFIG_FB_OVERLAY */ +#endif /* CONFIG_FB_OVERLAY */ #endif /* __ARCH_ARM_SRC_STM32_STM32_DMA2D_H */ diff --git a/arch/arm/src/stm32/stm32_ltdc.c b/arch/arm/src/stm32/stm32_ltdc.c index 01c6239f0cb..9faccde6e90 100644 --- a/arch/arm/src/stm32/stm32_ltdc.c +++ b/arch/arm/src/stm32/stm32_ltdc.c @@ -1330,8 +1330,12 @@ static void stm32_ltdc_periphconfig(void) /* Configure LTDC_GCR */ - regval = (STM32_LTDC_GCR_PCPOL | STM32_LTDC_GCR_DEPOL - | STM32_LTDC_GCR_VSPOL | STM32_LTDC_GCR_HSPOL); + regval = getreg32(STM32_LTDC_GCR); + regval &= ~(LTDC_GCR_PCPOL | LTDC_GCR_DEPOL | LTDC_GCR_VSPOL | + LTDC_GCR_HSPOL); + regval |= (STM32_LTDC_GCR_PCPOL | STM32_LTDC_GCR_DEPOL | + STM32_LTDC_GCR_VSPOL | STM32_LTDC_GCR_HSPOL); + reginfo("set LTDC_GCR=%08x\n", regval); putreg32(regval, STM32_LTDC_GCR); reginfo("configured LTDC_GCR=%08x\n", getreg32(STM32_LTDC_GCR)); @@ -1400,7 +1404,7 @@ static void stm32_ltdc_bgcolor(uint32_t rgb) static void stm32_ltdc_dither(bool enable, uint8_t red, uint8_t green, uint8_t blue) { - uint32_t regval; + uint32_t regval; regval = getreg32(STM32_LTDC_GCR); @@ -1413,8 +1417,7 @@ static void stm32_ltdc_dither(bool enable, uint8_t red, regval &= ~LTDC_GCR_DEN; } - regval &= ~(!LTDC_GCR_DEN | LTDC_GCR_DRW(0) | - LTDC_GCR_DGW(0) | LTDC_GCR_DBW(0)); + regval &= ~(LTDC_GCR_DBW_MASK | LTDC_GCR_DGW_MASK | LTDC_GCR_DRW_MASK); regval |= (LTDC_GCR_DRW(red) | LTDC_GCR_DGW(green) | LTDC_GCR_DBW(blue)); reginfo("set LTDC_GCR=%08x\n", regval); @@ -2946,6 +2949,21 @@ static int stm32_blend(FAR struct fb_vtable_s *vtable, # endif /* CONFIG_FB_OVERLAY_BLIT */ #endif /* CONFIG_FB_OVERLAY */ +/**************************************************************************** + * Name: stm32_ltdcreset + * + * Description: + * Reset LTDC via APB2RSTR + * + ****************************************************************************/ + +void stm32_ltdcreset(void) +{ + uint32_t regval = getreg32(STM32_RCC_APB2RSTR); + putreg32(regval | RCC_APB2RSTR_LTDCRST, STM32_RCC_APB2RSTR); + putreg32(regval & ~RCC_APB2RSTR_LTDCRST, STM32_RCC_APB2RSTR); +} + /**************************************************************************** * Name: stm32_ltdcinitialize * diff --git a/arch/arm/src/stm32/stm32_ltdc.h b/arch/arm/src/stm32/stm32_ltdc.h index d4b16e728fe..c35cc68957d 100644 --- a/arch/arm/src/stm32/stm32_ltdc.h +++ b/arch/arm/src/stm32/stm32_ltdc.h @@ -53,6 +53,16 @@ * Public Functions ****************************************************************************/ +/**************************************************************************** + * Name: stm32_ltdcreset + * + * Description: + * Reset LTDC via APB2RSTR + * + ****************************************************************************/ + +void stm32_ltdcreset(void); + /***************************************************************************** * Name: stm32_ltdcinitialize * diff --git a/arch/arm/src/stm32f7/stm32_dma2d.c b/arch/arm/src/stm32f7/stm32_dma2d.c index 54130c542ff..3546003f80a 100644 --- a/arch/arm/src/stm32f7/stm32_dma2d.c +++ b/arch/arm/src/stm32f7/stm32_dma2d.c @@ -74,11 +74,11 @@ /* DMA2D blender control */ -#define STM32F7_DMA2D_CR_MODE_BLIT DMA2D_CR_MODE(0) -#define STM32F7_DMA2D_CR_MODE_BLITPFC DMA2D_CR_MODE(1) -#define STM32F7_DMA2D_CR_MODE_BLEND DMA2D_CR_MODE(2) -#define STM32F7_DMA2D_CR_MODE_COLOR DMA2D_CR_MODE(3) -#define STM32F7_DMA2D_CR_MODE_CLEAR STM32_DMA2D_CR_MODE_BLITPFC | \ +#define STM32_DMA2D_CR_MODE_BLIT DMA2D_CR_MODE(0) +#define STM32_DMA2D_CR_MODE_BLITPFC DMA2D_CR_MODE(1) +#define STM32_DMA2D_CR_MODE_BLEND DMA2D_CR_MODE(2) +#define STM32_DMA2D_CR_MODE_COLOR DMA2D_CR_MODE(3) +#define STM32_DMA2D_CR_MODE_CLEAR STM32_DMA2D_CR_MODE_BLITPFC | \ STM32_DMA2D_CR_MODE_BLEND | \ STM32_DMA2D_CR_MODE_COLOR @@ -88,7 +88,7 @@ /* CC clut size */ -#define DMA2D_CLUT_SIZE STM32F7_DMA2D_NCLUT - 1 +#define DMA2D_CLUT_SIZE STM32_DMA2D_NCLUT - 1 /* Layer argb cmap conversion */ @@ -456,7 +456,6 @@ static int stm32_dma2d_waitforirq(void) return ret; } -#ifdef CONFIG_STM32F7_DMA2D_L8 /**************************************************************************** * Name: stm32_dma2d_loadclut * diff --git a/arch/arm/src/stm32f7/stm32_dma2d.h b/arch/arm/src/stm32f7/stm32_dma2d.h index 1c2db28c5d0..28ec17afd52 100644 --- a/arch/arm/src/stm32f7/stm32_dma2d.h +++ b/arch/arm/src/stm32f7/stm32_dma2d.h @@ -42,7 +42,6 @@ #include #include -#include "stm32_ltdc.h" #ifdef CONFIG_FB_OVERLAY diff --git a/arch/arm/src/stm32f7/stm32_ltdc.c b/arch/arm/src/stm32f7/stm32_ltdc.c index a8be601e0c3..8b81e3f172a 100644 --- a/arch/arm/src/stm32f7/stm32_ltdc.c +++ b/arch/arm/src/stm32f7/stm32_ltdc.c @@ -1330,11 +1330,11 @@ static void stm32_ltdc_periphconfig(void) /* Configure LTDC_GCR */ - regval = getreg32(STM32_LTDC_GCR); + regval = getreg32(STM32_LTDC_GCR); regval &= ~(LTDC_GCR_PCPOL | LTDC_GCR_DEPOL | LTDC_GCR_VSPOL | LTDC_GCR_HSPOL); - regval |= (STM32_LTDC_GCR_PCPOL | STM32_LTDC_GCR_DEPOL | - STM32_LTDC_GCR_VSPOL | STM32_LTDC_GCR_HSPOL); + regval |= (STM32_LTDC_GCR_PCPOL | STM32_LTDC_GCR_DEPOL | + STM32_LTDC_GCR_VSPOL | STM32_LTDC_GCR_HSPOL); reginfo("set LTDC_GCR=%08x\n", regval); putreg32(regval, STM32_LTDC_GCR); diff --git a/arch/arm/src/stm32f7/stm32_ltdc.h b/arch/arm/src/stm32f7/stm32_ltdc.h index 92733609e06..27dcd7957ac 100644 --- a/arch/arm/src/stm32f7/stm32_ltdc.h +++ b/arch/arm/src/stm32f7/stm32_ltdc.h @@ -53,13 +53,13 @@ * Public Functions ****************************************************************************/ -/************************************************************************************ +/**************************************************************************** * Name: stm32_ltdcreset * * Description: * Reset LTDC via APB2RSTR * - ************************************************************************************/ + ****************************************************************************/ void stm32_ltdcreset(void);