-
Notifications
You must be signed in to change notification settings - Fork 6.5k
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
Add st_b_lcd40_dsi1_mb1166 display shield support for stm32f769i_disco board #74646
base: main
Are you sure you want to change the base?
Conversation
b343eaf
to
8ba69eb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If there are multiple ST boards that support the ST_B_LCD40_DSI1_MB1166 shield, then you might consider defining node labels for connectors (IE for the LTDC, MIPI DSI, and I2C connections). This has been done for some NXP supplied displays, see here:
. This avoids code duplication (for example, the display panel timings look the same as the ones here:Line 1 in 59632d5
/* |
It seems this is already being done for the GPIO nexus node, so expanding this to the peripherals might be useful
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Touch and display controller are part of shield overlay. If I'm not wrong not all the STM chipset has LTDC, so the panel display timings in ltdc node shall be in board overlay.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, not all the STM SOCs will have an LTDC- this is the case with NXP's SOCs as well. In the case of NXP's displays, we sell multiple display modules that connect via a 40 pin FPC present on several of our evaluation kits to the module itself. The benefit here is that if we designed a new SOC with a DSI interface and added the same 40 pin connector, we could enable support for these displays by simply adding node definitions at the board level.
Beyond this, if a customer wanted to use this shield with their custom board, they would not need to modify Zephyr itself to add a new overlay (or duplicate the overlay definition for their board out of tree).
This is a core idea of a shield- not every evaluation kit supported by Zephyr has a SPI interface broken out to arduino headers, but those that do can use a large subset of all Zephyr shields without board specific configuration. Of course the scope of this shield would be more narrow (perhaps 2-3 boards), but I think the benefits to this approach still apply.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ssekar15 see https://github.com/ajarmouni-st/zephyr_dev/tree/fix_mb1166_shield
@danieldegrasse is this more or less what you meant?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry for the delayed response- yeah, this looks right to me. Essentially just refactor the shields to avoid duplicating things in board-specific shield overlays
6ac49fc
to
36d4ccf
Compare
boards/shields/st_b_lcd40_dsi1_mb1166/boards/stm32f769i_disco.conf
Outdated
Show resolved
Hide resolved
boards/shields/st_b_lcd40_dsi1_mb1166/boards/stm32h747i_disco_stm32h747xx_m7.overlay
Show resolved
Hide resolved
36d4ccf
to
8a331da
Compare
8a331da
to
6b80813
Compare
As a side note, you can run the sample on your PC (tested on Ubuntu laptop) using:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adding the board to the different test cases of st_b_lcd40_dsi1_mb1166
would also be needed.
diff --git a/samples/drivers/display/sample.yaml b/samples/drivers/display/sample.yaml
index 33d72e11c74..8e708140e68 100644
--- a/samples/drivers/display/sample.yaml
+++ b/samples/drivers/display/sample.yaml
@@ -132,7 +132,9 @@ tests:
fixture: fixture_display
sample.display.st_b_lcd40_dsi1_mb1166:
filter: dt_compat_enabled("orisetech,otm8009a")
- platform_allow: stm32h747i_disco/stm32h747xx/m7
+ platform_allow:
+ - stm32h747i_disco/stm32h747xx/m7
+ - stm32f769i_disco
extra_args: SHIELD=st_b_lcd40_dsi1_mb1166
tags:
- display
diff --git a/samples/modules/lvgl/demos/sample.yaml b/samples/modules/lvgl/demos/sample.yaml
index 5a9d668d02d..eea1ed0b127 100644
--- a/samples/modules/lvgl/demos/sample.yaml
+++ b/samples/modules/lvgl/demos/sample.yaml
@@ -26,7 +26,9 @@ tests:
- CONFIG_LV_Z_DEMO_WIDGETS=y
sample.modules.lvgl.demos.st_b_lcd40_dsi1_mb1166:
filter: dt_compat_enabled("orisetech,otm8009a")
- platform_allow: stm32h747i_disco/stm32h747xx/m7
+ platform_allow:
+ - stm32h747i_disco/stm32h747xx/m7
+ - stm32f769i_disco
extra_args: SHIELD=st_b_lcd40_dsi1_mb1166
harness: console
harness_config:
diff --git a/samples/subsys/display/lvgl/sample.yaml b/samples/subsys/display/lvgl/sample.yaml
index 94b26bc1087..c2715fe6c55 100644
--- a/samples/subsys/display/lvgl/sample.yaml
+++ b/samples/subsys/display/lvgl/sample.yaml
@@ -42,7 +42,9 @@ tests:
- mimxrt1170_evk/mimxrt1176/cm7
sample.subsys.display.lvgl.st_b_lcd40_dsi1_mb1166:
filter: dt_compat_enabled("orisetech,otm8009a")
- platform_allow: stm32h747i_disco/stm32h747xx/m7
+ platform_allow:
+ - stm32h747i_disco/stm32h747xx/m7
+ - stm32f769i_disco
extra_args: SHIELD=st_b_lcd40_dsi1_mb1166
harness: console
harness_config:
if LVGL | ||
|
||
if BOARD_STM32H747I_DISCO_STM32H747XX_M7 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd rather add a orsource "boards/*.defconfig"
then do this in a boards/shields/st_b_lcd40_dsi1_mb1166/boards/stm32h747i_disco_stm32h747xx_m7.defconfig
Few comments from my part. Don't hesitate to dismiss my review once done, as will be OoO for few weeks. |
71c1232
to
b22b3d2
Compare
@ajarmouni-st |
b22b3d2
to
49e9b5e
Compare
Dismissing as I'm no longer active on this work account.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ssekar15 One more comment that was left pending, but I'll need to review this entirely. Would you mind rebasing to solve merge conflicts ?
if LVGL | ||
|
||
config STM32_LTDC_FB_NUM | ||
default 0 | ||
orsource "boards/*.defconfig" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: this line should be outside of if LVGL
Add support for STM32F7 MIPI DSI host driver. Signed-off-by: Saravanan Sekar <[email protected]>
Add bindings for pll-r used for DSI HOST peripheral byte clock. Signed-off-by: Saravanan Sekar <[email protected]>
Add pll-r clock used for DSI HOST peripheral byte clock. Signed-off-by: Saravanan Sekar <[email protected]>
Use common pin reference for STMicroelectronics B-LCD40-DSI1 shield from board header mapping. Signed-off-by: Saravanan Sekar <[email protected]>
Enhanced lvgl config to improve performance for board stm32h747i_disco impacts the compilation issue on low memory footprint stm32f769i_disco. region `IDT_LIST' overflowed by 121081 bytes bss ' will not fit in region `RAM' ld.bfd: region `RAM' overflowed by 1220664 bytes collect2: error: ld returned 1 exit status Signed-off-by: Saravanan Sekar <[email protected]>
Capacitive touch ft6202 is not part board, remove in board dts and move to panel st_b_lcd40_dsi1_mb1166 shield. Signed-off-by: Saravanan Sekar <[email protected]>
Add support for STMicroelectronics B-LCD40-DSI1 shield to stm32f769i_disco board. Default config for lvgl is adjusted to lower value to fix compilation issue on low memory footprint stm32f769i_disco. region `IDT_LIST' overflowed by 121081 bytes bss ' will not fit in region `RAM' ld.bfd: region `RAM' overflowed by 1220664 bytes collect2: error: ld returned 1 exit status Signed-off-by: Saravanan Sekar <[email protected]>
Add disp_f769_disco board to platform-allow list for display sample tests with st_b_lcd40_dsi1_mb1166 shield. Signed-off-by: Saravanan Sekar <[email protected]>
Add disp_f769_disco board to platform-allow list for display sample tests with st_b_lcd40_dsi1_mb1166 shield. Signed-off-by: Saravanan Sekar <[email protected]>
Add disp_f769_disco board to platform-allow list for display sample tests with st_b_lcd40_dsi1_mb1166 shield. Signed-off-by: Saravanan Sekar <[email protected]>
49e9b5e
to
471d921
Compare
@ssekar15 Hello again from my personal account :) |
Unfortunately no.. I have tried with offset and different setting but didn't work |
PR covers