zephyrproject-rtos / zephyr

Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
https://docs.zephyrproject.org
Apache License 2.0
10.56k stars 6.46k forks source link

Display: stm32_ltdc: in function stm32_ltdc_display_blanking_off is not working, There is no panel controller to forward blanking_off #79022

Open summer4821smartbox opened 3 hours ago

summer4821smartbox commented 3 hours ago

Describe the bug

I try to run zephyr/samples/drivers/display sample application function on STM32H747I-DISCO with NT35510 panel shell use st_b_lcd40_dsi1_mb1166_a09 and the display_blanking_off() function is not working because no panel controller forward to. And I found related issue #68527, and followed the steps and get the same result, it’s still not working

1.add display-controller in app.overly and make sure display-controller = < &nt35510 > appear in ltdc DTS in zephyr.dts

&ltdc {
    display-controller = <&nt35510>;
};

2.Change initialization priority implement as #68527 and check initialization priority

  __init___device_dts_ord_137: mipi_dsi_stm32_init(__device_dts_ord_137)
  __init___device_dts_ord_140: nt35510_init(__device_dts_ord_140)
  __init___device_dts_ord_141: stm32_ltdc_init(__device_dts_ord_141)
  1. I get Display device nt35510@0 not ready
    [00:00:01.222,000] <err> dsi_stm32: Transfer failed! (3)
    [00:00:01.222,000] <err> nt35510: Failed reading ID (-5)
    [00:00:01.222,000] <err> nt35510: Panel ID check failed! (-5)
    *** Booting Zephyr OS build v3.7.0-2665-gcc544803811b ***
    [00:00:01.222,000] <inf> sample: Display sample for display-controller@50001000
    [00:00:01.234,000] <inf> display_stm32_ltdc: config name display-controller@50001000
    [00:00:01.234,000] <err> display_stm32_ltdc: Display device nt35510@0 not ready

To Reproduce Run zephyr/samples/drivers/display sample application function on STM32H747I-DISCO with NT35510 panel shell use st_b_lcd40_dsi1_mb1166_a09

build command west build -t initlevels --pristine -b stm32h747i_disco/stm32h747xx/m7 zephyr/samples/drivers/display -DSHIELD=st_b_lcd40_dsi1_mb1166_a0

Expected behavior display_blanking_off() function work without error

Impact When developing project,it's not able to use this API to control the backlight. System power saving and suspend modes will not be implemented.

Logs and console output

<err> display_stm32_ltdc: There is no panel controller to forward blanking_off call to name 

Environment (please complete the following information):

Microcontroller: STM32H747I Zephyr Version: Zephyr main branch Commit cc544803 OS: Ubuntu 23.10

github-actions[bot] commented 3 hours ago

Hi @summer4821smartbox! We appreciate you submitting your first issue for our open-source project. 🌟

Even though I'm a bot, I can assure you that the whole community is genuinely grateful for your time and effort. 🤖💙