Skip to content

Enable STM32L4R9i-disco DSI display via shield ST_B_DSI_MB1314 #86812

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

avolmat-st
Copy link
Collaborator

This pull request includes updates, new driver and a new shield in order to enable the DSI display that can be mounted on the STM32L4R9I-DISCO board.
It enables both LTDC and DSI interfaces of the STM32L4R9 and for that purpose require the usage of the PLLSAI.

PLLSAI support isn't yet merged. There is another ongoing pull request for that purpose which can be found here:
#85135
The PLLSAI pull-request is still evolving hence this new pull-request will be rebased afterward once the PLLSAI will be merged.

Since it rely on another pull-request, it won't build (missing pllsai nodes or macros) but I am already pushing this one in order to start the review process.

Alain Volmat added 8 commits March 8, 2025 22:15
Add support for the GVO G1120TB101 DSI Panel.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Rely on the pixel format defined within the display node
in order to configure the DSI interface pixel format.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Use the macro DISPLAY_BITS_PER_PIXEL in order to compute each format
BPP and thus avoid requiring each format BPP written within the
driver.
Thanks to that, simply the function stm32_ltdc_set_pixel_format to
avoid code duplication.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Addition of the STM32_SRC_HSE define in stm32l4_clock.h in
order to be able to address the HSE clock source from the
device-tree.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
stm32l4r9 series embeds a MIPI DSI controller which uses the
LTDC controller as input.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
ltdc controller is also available in stm32l4r5 and stm32l4q5
so add it within stm32l4p5.  It is not available in stm32l4r5
hence delete the node for this platform.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Add a zephyr_mipi_dsi alias for the mipi_dsi so that shields
can refer to it to add panels on this interface.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Addition of a new shield which embeds a round DSI display
gvo,g1120tb101 of 390x390 pixels, with a touchpanel.
This shield enables it via usage of the LTDC and DSI
of the STM32.

Touchpanel isn't yet supported in this commit and will
be added later on in an additional commit.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Board specific options should be moved to a board specific conf file, similar to https://github.com/zephyrproject-rtos/zephyr/tree/main/boards/shields/st_b_lcd40_dsi1_mb1166/boards

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Board specific nodes/props should be moved to a board specific overlay, similar to https://github.com/zephyrproject-rtos/zephyr/tree/main/boards/shields/st_b_lcd40_dsi1_mb1166/boards

@@ -0,0 +1,20 @@
# Copyright (c) 2025 ST Microelectronics
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: STMicroelectronics (same for other files)

depends on DT_HAS_GVO_G1120TB101_ENABLED
select MIPI_DSI
help
Enable driver for GVO G1120TB101 display driver.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Enable driver for GVO G1120TB101 display driver.
Enable driver for GVO G1120TB101 display controller.

# SPDX-License-Identifier: Apache-2.0

config G1120TB101
bool "G1120TB101 display driver"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
bool "G1120TB101 display driver"
bool "G1120TB101 display controller"

} else if (format == PIXEL_FORMAT_ARGB_8888) {
ltdc_pix_fmt = LTDC_PIXEL_FORMAT_ARGB8888;
} else {
return -ENOTSUP;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ERR_LOG!?

@decsny decsny removed their request for review March 11, 2025 17:35
@kartben kartben assigned erwango and unassigned kartben Mar 12, 2025
@@ -0,0 +1,273 @@
/*
* Copyright (c) 2025 ST Microelectronics
* Inpired from display_otm8009a.c
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo:

Suggested change
* Inpired from display_otm8009a.c
* Inspired from display_otm8009a.c

Comment on lines +59 to +60
#define STM32_LTDC_INIT_PIXEL_SIZE DISPLAY_BITS_PER_PIXEL(DISPLAY_INIT_PIXEL_FORMAT) /\
BITS_PER_BYTE
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this might be more readable if the / is on the second line?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants