summaryrefslogtreecommitdiff
path: root/bsp/stm32/libraries/HAL_Drivers/drv_lcd_mipi.c
diff options
context:
space:
mode:
Diffstat (limited to 'bsp/stm32/libraries/HAL_Drivers/drv_lcd_mipi.c')
-rw-r--r--bsp/stm32/libraries/HAL_Drivers/drv_lcd_mipi.c106
1 files changed, 53 insertions, 53 deletions
diff --git a/bsp/stm32/libraries/HAL_Drivers/drv_lcd_mipi.c b/bsp/stm32/libraries/HAL_Drivers/drv_lcd_mipi.c
index 3928353153..275a18e925 100644
--- a/bsp/stm32/libraries/HAL_Drivers/drv_lcd_mipi.c
+++ b/bsp/stm32/libraries/HAL_Drivers/drv_lcd_mipi.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
+ * Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -7,7 +7,7 @@
* Date Author Notes
* 2019-05-23 WillianChan first version
*/
-
+
#include <board.h>
#ifdef BSP_USING_LCD_MIPI
@@ -23,7 +23,7 @@ struct stm32_lcd
struct rt_device parent;
struct rt_device_graphic_info info;
};
-static struct stm32_lcd lcd;
+static struct stm32_lcd lcd;
extern void stm32_mipi_lcd_init(void);
extern void stm32_mipi_lcd_config(rt_uint32_t pixel_format);
@@ -32,14 +32,14 @@ extern void stm32_mipi_display_off(void);
rt_err_t ltdc_init(void)
{
- uint32_t lcd_clock = 27429;
+ uint32_t lcd_clock = 27429;
uint32_t lanebyte_clock = 62500;
-
+
uint32_t HSA = LCD_HSYNC, HFP = LCD_HFP, HBP = LCD_HBP, HACT = LCD_WIDTH;
uint32_t VSA = LCD_VSYNC, VFP = LCD_VFP, VBP = LCD_VBP, VACT = LCD_HEIGHT;
stm32_mipi_lcd_init();
-
+
__HAL_RCC_LTDC_CLK_ENABLE();
__HAL_RCC_LTDC_FORCE_RESET();
__HAL_RCC_LTDC_RELEASE_RESET();
@@ -47,92 +47,92 @@ rt_err_t ltdc_init(void)
__HAL_RCC_DSI_CLK_ENABLE();
__HAL_RCC_DSI_FORCE_RESET();
__HAL_RCC_DSI_RELEASE_RESET();
-
+
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;
-
+
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC;
PeriphClkInitStruct.PLLSAI.PLLSAIN = 384;
PeriphClkInitStruct.PLLSAI.PLLSAIR = 7;
PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_2;
HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
-
+
HAL_NVIC_SetPriority(LTDC_IRQn, 3, 0);
HAL_NVIC_SetPriority(DSI_IRQn, 3, 0);
HAL_NVIC_EnableIRQ(LTDC_IRQn);
HAL_NVIC_EnableIRQ(DSI_IRQn);
-
+
DSI_PLLInitTypeDef dsi_pll;
-
- hdsi.Instance = DSI;
+
+ hdsi.Instance = DSI;
hdsi.Init.NumberOfLanes = DSI_TWO_DATA_LANES;
hdsi.Init.TXEscapeCkdiv = lanebyte_clock / 15620;
-
+
dsi_pll.PLLNDIV = 125;
dsi_pll.PLLIDF = DSI_PLL_IN_DIV2;
- dsi_pll.PLLODF = DSI_PLL_OUT_DIV1;
-
+ dsi_pll.PLLODF = DSI_PLL_OUT_DIV1;
+
HAL_DSI_DeInit(&hdsi);
- HAL_DSI_Init(&hdsi, &dsi_pll);
-
+ HAL_DSI_Init(&hdsi, &dsi_pll);
+
hdsi_video.VirtualChannelID = 0;
hdsi_video.ColorCoding = DSI_RGB888;
hdsi_video.VSPolarity = DSI_VSYNC_ACTIVE_HIGH;
hdsi_video.HSPolarity = DSI_HSYNC_ACTIVE_HIGH;
hdsi_video.DEPolarity = DSI_DATA_ENABLE_ACTIVE_HIGH;
- hdsi_video.Mode = DSI_VID_MODE_BURST;
+ hdsi_video.Mode = DSI_VID_MODE_BURST;
hdsi_video.NullPacketSize = 0xFFF;
hdsi_video.NumberOfChunks = 0;
- hdsi_video.PacketSize = HACT;
+ hdsi_video.PacketSize = HACT;
hdsi_video.HorizontalSyncActive = (HSA * lanebyte_clock) / lcd_clock;
hdsi_video.HorizontalBackPorch = (HBP * lanebyte_clock) / lcd_clock;
- hdsi_video.HorizontalLine = ((HACT + HSA + HBP + HFP) * lanebyte_clock) / lcd_clock;
+ hdsi_video.HorizontalLine = ((HACT + HSA + HBP + HFP) * lanebyte_clock) / lcd_clock;
hdsi_video.VerticalSyncActive = VSA;
hdsi_video.VerticalBackPorch = VBP;
hdsi_video.VerticalFrontPorch = VFP;
- hdsi_video.VerticalActive = VACT;
- hdsi_video.LPCommandEnable = DSI_LP_COMMAND_ENABLE;
+ hdsi_video.VerticalActive = VACT;
+ hdsi_video.LPCommandEnable = DSI_LP_COMMAND_ENABLE;
hdsi_video.LPLargestPacketSize = 16;
hdsi_video.LPVACTLargestPacketSize = 0;
- hdsi_video.LPHorizontalFrontPorchEnable = DSI_LP_HFP_ENABLE;
- hdsi_video.LPHorizontalBackPorchEnable = DSI_LP_HBP_ENABLE;
- hdsi_video.LPVerticalActiveEnable = DSI_LP_VACT_ENABLE;
- hdsi_video.LPVerticalFrontPorchEnable = DSI_LP_VFP_ENABLE;
- hdsi_video.LPVerticalBackPorchEnable = DSI_LP_VBP_ENABLE;
- hdsi_video.LPVerticalSyncActiveEnable = DSI_LP_VSYNC_ENABLE;
- HAL_DSI_ConfigVideoMode(&hdsi, &hdsi_video);
-
+ hdsi_video.LPHorizontalFrontPorchEnable = DSI_LP_HFP_ENABLE;
+ hdsi_video.LPHorizontalBackPorchEnable = DSI_LP_HBP_ENABLE;
+ hdsi_video.LPVerticalActiveEnable = DSI_LP_VACT_ENABLE;
+ hdsi_video.LPVerticalFrontPorchEnable = DSI_LP_VFP_ENABLE;
+ hdsi_video.LPVerticalBackPorchEnable = DSI_LP_VBP_ENABLE;
+ hdsi_video.LPVerticalSyncActiveEnable = DSI_LP_VSYNC_ENABLE;
+ HAL_DSI_ConfigVideoMode(&hdsi, &hdsi_video);
+
DSI_PHY_TimerTypeDef dsi_phy;
-
+
dsi_phy.ClockLaneHS2LPTime = 35;
dsi_phy.ClockLaneLP2HSTime = 35;
dsi_phy.DataLaneHS2LPTime = 35;
dsi_phy.DataLaneLP2HSTime = 35;
dsi_phy.DataLaneMaxReadTime = 0;
dsi_phy.StopWaitTime = 10;
- HAL_DSI_ConfigPhyTimer(&hdsi, &dsi_phy);
-
+ HAL_DSI_ConfigPhyTimer(&hdsi, &dsi_phy);
+
hltdc.Instance = LTDC;
-
+
hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
hltdc.Init.HorizontalSync = (HSA - 1);
hltdc.Init.AccumulatedHBP = (HSA + HBP - 1);
hltdc.Init.AccumulatedActiveW = (LCD_WIDTH + HSA + HBP - 1);
hltdc.Init.TotalWidth = (LCD_WIDTH + HSA + HBP + HFP - 1);
-
+
hltdc.LayerCfg->ImageWidth = LCD_WIDTH;
- hltdc.LayerCfg->ImageHeight = LCD_HEIGHT;
+ hltdc.LayerCfg->ImageHeight = LCD_HEIGHT;
hltdc.Init.Backcolor.Blue = 0x00;
hltdc.Init.Backcolor.Green = 0x00;
hltdc.Init.Backcolor.Red = 0x00;
- HAL_LTDCEx_StructInitFromVideoConfig(&hltdc, &(hdsi_video));
+ HAL_LTDCEx_StructInitFromVideoConfig(&hltdc, &(hdsi_video));
HAL_LTDC_Init(&(hltdc));
-
- HAL_DSI_Start(&(hdsi));
+
+ HAL_DSI_Start(&(hdsi));
stm32_mipi_lcd_config(RTGRAPHIC_PIXEL_FORMAT_ARGB888);
-
- return RT_EOK;
+
+ return RT_EOK;
}
void ltdc_layer_init(uint16_t index, uint32_t framebuffer)
@@ -140,7 +140,7 @@ void ltdc_layer_init(uint16_t index, uint32_t framebuffer)
LTDC_LayerCfgTypeDef layer_cfg;
layer_cfg.WindowX0 = 0;
- layer_cfg.WindowX1 = LCD_WIDTH;
+ layer_cfg.WindowX1 = LCD_WIDTH;
layer_cfg.WindowY0 = 0;
layer_cfg.WindowY1 = LCD_HEIGHT;
layer_cfg.PixelFormat = LTDC_PIXEL_FORMAT_ARGB8888;
@@ -161,7 +161,7 @@ void ltdc_layer_init(uint16_t index, uint32_t framebuffer)
void LTDC_IRQHandler(void)
{
rt_interrupt_enter();
- HAL_LTDC_IRQHandler(&hltdc);
+ HAL_LTDC_IRQHandler(&hltdc);
rt_interrupt_leave();
}
@@ -171,11 +171,11 @@ static rt_err_t stm32_lcd_init(rt_device_t device)
lcd.info.height = LCD_HEIGHT;
lcd.info.pixel_format = RTGRAPHIC_PIXEL_FORMAT_ARGB888;
lcd.info.bits_per_pixel = 32;
- lcd.info.framebuffer = (void *)rt_malloc_align(LCD_WIDTH * LCD_HEIGHT * (lcd.info.bits_per_pixel / 8), 32);
+ lcd.info.framebuffer = (void *)rt_malloc_align(LCD_WIDTH * LCD_HEIGHT * (lcd.info.bits_per_pixel / 8), 32);
memset(lcd.info.framebuffer, 0, LCD_WIDTH * LCD_HEIGHT * (lcd.info.bits_per_pixel / 8));
ltdc_init();
- ltdc_layer_init(0, (uint32_t)lcd.info.framebuffer);
-
+ ltdc_layer_init(0, (uint32_t)lcd.info.framebuffer);
+
return RT_EOK;
}
@@ -186,12 +186,12 @@ static rt_err_t stm32_lcd_control(rt_device_t device, int cmd, void *args)
case RTGRAPHIC_CTRL_RECT_UPDATE:
break;
- case RTGRAPHIC_CTRL_POWERON:
- stm32_mipi_display_on();
+ case RTGRAPHIC_CTRL_POWERON:
+ stm32_mipi_display_on();
break;
- case RTGRAPHIC_CTRL_POWEROFF:
- stm32_mipi_display_off();
+ case RTGRAPHIC_CTRL_POWEROFF:
+ stm32_mipi_display_off();
break;
case RTGRAPHIC_CTRL_GET_INFO:
@@ -210,9 +210,9 @@ static rt_err_t stm32_lcd_control(rt_device_t device, int cmd, void *args)
int rt_hw_lcd_init(void)
{
- rt_err_t ret;
-
- rt_memset(&lcd, 0x00, sizeof(lcd));
+ rt_err_t ret;
+
+ rt_memset(&lcd, 0x00, sizeof(lcd));
lcd.parent.type = RT_Device_Class_Graphic;
lcd.parent.init = stm32_lcd_init;