integration of sitronix-st7701 MIPI-DSI in u-boot (i.MX8M Mini)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

integration of sitronix-st7701 MIPI-DSI in u-boot (i.MX8M Mini)

Jump to solution
4,218 Views
Hardevsinh_Palaniya
Contributor III

Hi,

U-boot : U-Boot 2020.04-5.4.47-2.2.0

Kernel : 5.4.47 (NXP i.MX Release Distro 5.4-zeus)

 

I am using i.MX8M Mini with the above kernel and u-boot versions with Yocto. My LCD(with ST7701S controller) is working as expectation in kernel. 

Now, I want to use it from u-boot. For this i had follow the steps as below :

  • Modify "raydium-rm67191.c" file in u-boot (Change command sequence, display timings according to my display)
  • Add splash logo add to Env file
  • Enable display in dts file

My driver probed successfully. but, I am not able to see anything on display from u-boot. The logs are as follows.

 

[*]-Video Link 0DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_probe, 534
DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_probe, success, 587
DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_get_display_timing, Entry, 511
DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_get_display_timing, Exit, 525
DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_get_display_timing, Entry, 511
DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_get_display_timing, Exit, 525
DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_enable_backlight, 499
DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_enable_backlight, 504
DEBUG : drivers/video/raydium-rm67191.c, rm67191_enable, 404
DEBUG : drivers/video/raydium-rm67191.c, rad_panel_push_cmd_list, 371
DEBUG : drivers/video/raydium-rm67191.c, rad_panel_push_cmd_list, 390
DEBUG : drivers/video/raydium-rm67191.c, rm67191_enable, 489
 (480 x 480)
        [0] lcdif@32e00000, video
        [1] mipi_dsi@32e10000, video_bridge
        [2] rm67191_panel, panel
DEBUG : common/splash.c, splash_display, 168
DEBUG : common/splash.c, splash_display, 173, Screen add : 0x50000000
DEBUG : common/splash.c, splash_screen_prepare, 88
DEBUG : common/splash.c, splash_screen_prepare, 93
DEBUG : common/splash.c, splash_video_logo_load, 64
DEBUG : common/splash.c, splash_video_logo_load, 69, Splashimage : 0x50000000
DEBUG : common/splash.c, splash_video_logo_load, 76
DEBUG : common/splash.c, splash_display, 181
DEBUG : cmd/bmp.c, bmp_display, 245
DEBUG : cmd/bmp.c, bmp_display, 285, Ret : 0
DEBUG : common/splash.c, splash_display, 189
DEBUG : common/splash.c, splash_display_banner, 135
DEBUG : common/splash.c, splash_display_banner, 148
DEBUG : lib/display_options.c, display_options_get_banner_priv, 19
DEBUG : lib/display_options.c, display_options_get_banner_priv, 25, len : 70
DEBUG : lib/display_options.c, display_options_get_banner_priv, 32
In:    serial

 

 

Any help will be appreciated. 

Thanks.

Senior Embedded Engineer | hardevsinh.palaniya@siliconsignals.io | www.siliconsignals.io
Labels (1)
0 Kudos
Reply
1 Solution
3,738 Views
Hardevsinh_Palaniya
Contributor III

I am able to bring up LCD in u-boot by developing my own custom support.

 

 

Senior Embedded Engineer | hardevsinh.palaniya@siliconsignals.io | www.siliconsignals.io

View solution in original post

0 Kudos
Reply
10 Replies
154 Views
DannyEngeringh
Contributor I

I'm Also trying to use the st7701 with imx8mm-mini, using the standard panel-sitronix-st7701.c from linux-imx with:

&mipi_dsi {
       status = "okay";
 
       panel@0 {
               compatible = "techstar,ts8550b", "sitronix,st7701";
               reg = <0>;
               pinctrl-0 = <&pinctrl_mipi_dsi_en>;
               reset-gpio = <&gpio1 8 GPIO_ACTIVE_LOW>;
               dsi-lanes = <2>;
               video-mode = <2>;    // 0: burst mode
                                    // 1: non-burst mode with sync event
                                    // 2: non-burst mode with sync pulse
                                    // 3: command mode
               panel-width-mm = <69>;
       panel-height-mm = <139>;
               status = "okay";
       };
};

but get error:

[ 9.141072] st7701 32e10000.mipi_dsi.0: supply VCC not found, using dummy regulator
[ 9.149611] st7701 32e10000.mipi_dsi.0: supply IOVCC not found, using dummy regulator
[ 9.157606] imx_sec_dsim_drv 32e10000.mipi_dsi: unsupported dsi mode
[ 9.164225] st7701: probe of 32e10000.mipi_dsi.0 failed with error -22
[ 9.170816] imx_sec_dsim_drv 32e10000.mipi_dsi: Failed to attach bridge: 32e10000.mipi_dsi
[ 9.179300] imx_sec_dsim_drv 32e10000.mipi_dsi: failed to bind sec dsim bridge: -517

anyone has any ideas?

0 Kudos
Reply
2,504 Views
ppavacic
Contributor II

Hello, I had same problem when I worked at my last job. I ended up creating new driver for st7701s. Unfortunately it didn't get accepted into Linux kernel, but we ended up using it anyways. Look here for more: 

https://lore.kernel.org/lkml/CA+VMnFyaCWFPWszxen92qKBMX6N9g34+aMA4UCnai9KQzzuf9Q@mail.gmail.com/T/

0 Kudos
Reply
3,544 Views
doki995
Contributor I

@Hardevsinh_Palaniya

Can you share dts file? What did you enable in kernel config?

0 Kudos
Reply
3,739 Views
Hardevsinh_Palaniya
Contributor III

I am able to bring up LCD in u-boot by developing my own custom support.

 

 

Senior Embedded Engineer | hardevsinh.palaniya@siliconsignals.io | www.siliconsignals.io
0 Kudos
Reply
2,522 Views
wangrucheng
Contributor I

Can you give me some help?

I also use this controller st7701s, but it just doesn't work properly during the uboot phase.

my lcd

480*800  pixel clock:27MHZ

Thanks 

 

0 Kudos
Reply
3,385 Views
Farpoint
Contributor I

Can you share what you did to get this to work?  Just saying you solved it without any details doesn't help anybody else.

0 Kudos
Reply
4,140 Views
Hardevsinh_Palaniya
Contributor III

Hi @Igor @jamesbone ,

I added new logs for debugging and logs for display are as under :

OF: parent translation for: 00000000 00000000
OF: one level translation: 00000000 0880e232
DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_probe, 536
DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_probe, 589
DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_get_display_timing, 513
DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_get_display_timing, 527
DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_get_display_timing, 513
DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_get_display_timing, 527
OF: translating address: 0000e132
OF: parent translation for: 0000c032
OF: one level translation: 0000e132
OF: parent translation for: 00000000 00000000
OF: one level translation: 00000000 0000e132
DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_enable_backlight, 501
lanes 2, channel 0, format 0x0, mode_flags 0x415
sec_mipi_dsim_bridge_clk_set: bitclk 199066 pixclk 16589
hfp_wc 1 hbp_wc 69 hsa_wc 1
DSIM config 0x4a807027
DSIM clkctrl 0x91380002
DEBUG : drivers/video/raydium-rm67191.c, rm67191_panel_enable_backlight, 506
DEBUG : drivers/video/raydium-rm67191.c, rm67191_enable, 404
sec_mipi_dsi_host_transfer
0x11
DEBUG : drivers/video/raydium-rm67191.c, rad_panel_push_cmd_list, 371
sec_mipi_dsi_host_transfer
0xff 0x77 0x01 0x00 0x00 0x13
sec_mipi_dsi_host_transfer
0xef 0x08
sec_mipi_dsi_host_transfer
0xff 0x77 0x01 0x00 0x00 0x10
sec_mipi_dsi_host_transfer
0xc0 0xe9 0x03
sec_mipi_dsi_host_transfer
0xc1 0x10 0x0c
sec_mipi_dsi_host_transfer
0xc2 0x01 0x0a
sec_mipi_dsi_host_transfer
0xc3 0x02
sec_mipi_dsi_host_transfer
0xcc 0x10
sec_mipi_dsi_host_transfer
0xcd 0x08
sec_mipi_dsi_host_transfer
0xb0 0x0d 0x14 0x9c 0x0b 0x10 0x06 0x08 0x09 0x08 0x22 0x02 0x4f 0x0e 0x66 0x2d 0x1f
sec_mipi_dsi_host_transfer
0xb1 0x00 0x17 0x9e 0x0f 0x11 0x06 0x0c 0x08 0x08 0x26 0x04 0x51 0x10 0x6a 0x33 0x1b
sec_mipi_dsi_host_transfer
0xff 0x77 0x01 0x00 0x00 0x11
sec_mipi_dsi_host_transfer
0xb0 0x30
sec_mipi_dsi_host_transfer
0xb1 0x67
sec_mipi_dsi_host_transfer
0xb2 0x84
sec_mipi_dsi_host_transfer
0xb3 0x80
sec_mipi_dsi_host_transfer
0xb5 0x4e
sec_mipi_dsi_host_transfer
0xb7 0x85
sec_mipi_dsi_host_transfer
0xb8 0x20
sec_mipi_dsi_host_transfer
0xc1 0x78
sec_mipi_dsi_host_transfer
0xc2 0x78
sec_mipi_dsi_host_transfer
0xd0 0x88
sec_mipi_dsi_host_transfer
0xe0 0x00 0x00 0x02
sec_mipi_dsi_host_transfer
0xe1 0x06 0xa0 0x08 0xa0 0x05 0xa0 0x07 0xa0 0x00 0x44 0x44
sec_mipi_dsi_host_transfer
0xe2 0x30 0x30 0x44 0x44 0x6e 0xa0 0x00 0x00 0x6e 0xa0 0x00 0x00
sec_mipi_dsi_host_transfer
0xe3 0x00 0x00 0x33 0x33
sec_mipi_dsi_host_transfer
0xe4 0x44 0x44
sec_mipi_dsi_host_transfer
0xe5 0x0d 0x69 0x0a 0xa0 0x0f 0x6b 0x0a 0xa0 0x09 0x65 0x0a 0xa0 0x0b 0x67 0x0a 0xa0
sec_mipi_dsi_host_transfer
0xe6 0x00 0x00 0x33 0x33
sec_mipi_dsi_host_transfer
0xe7 0x44 0x44
sec_mipi_dsi_host_transfer
0xe8 0x0c 0x68 0x0a 0xa0 0x0e 0x6a 0x0a 0xa0 0x08 0x64 0x0a 0xa0 0x0a 0x66 0x0a 0xa0
sec_mipi_dsi_host_transfer
0xe9 0x36 0x00
sec_mipi_dsi_host_transfer
0xeb 0x00 0x01 0xe4 0xe4 0x44 0x88 0x40
sec_mipi_dsi_host_transfer
0xed 0xff 0x45 0x67 0xfa 0x01 0x2b 0xcf 0xff 0xff 0xfc 0xb2 0x10 0xaf 0x76 0x54 0xff
sec_mipi_dsi_host_transfer
0xef 0x10 0x0d 0x04 0x08 0x3f 0x1f
sec_mipi_dsi_host_transfer
0x3a 0x66
sec_mipi_dsi_host_transfer
0x11 0x00
sec_mipi_dsi_host_transfer
0x29 0x00
sec_mipi_dsi_host_transfer
0x35 0x00
DEBUG : drivers/video/raydium-rm67191.c, rad_panel_push_cmd_list, 390
DEBUG : drivers/video/raydium-rm67191.c, rm67191_enable, 491
(480 x 480)
[0] lcdif@32e00000, video
[1] mipi_dsi@32e10000, video_bridge
[2] rm67191_panel, panel
DEBUG : common/splash.c, splash_display, 168
DEBUG : common/splash.c, splash_display, 173, Screen add : 0x50000000
DEBUG : common/splash.c, splash_screen_prepare, 88
DEBUG : common/splash.c, splash_screen_prepare, 93
DEBUG : common/splash.c, splash_video_logo_load, 64
DEBUG : common/splash.c, splash_video_logo_load, 69, Splashimage : 0x50000000
DEBUG : common/splash.c, splash_video_logo_load, 76
DEBUG : common/splash.c, splash_display, 181
DEBUG : cmd/bmp.c, bmp_display, 245
DEBUG : cmd/bmp.c, bmp_display, 258, Ret : 0
DEBUG : cmd/bmp.c, bmp_display, 276, Ret : 0
hdr_size=40, bmp_bpix=8
hdr_size=40, bmp_bpix=8
Display-bmp: 364 x 128 with 256 colours, display 1
video_set_cmap: colours=256
compressed 0 1
DEBUG : cmd/bmp.c, bmp_display, 288, Ret : 0
DEBUG : common/splash.c, splash_display, 189
DEBUG : common/splash.c, splash_display_banner, 135
DEBUG : common/splash.c, splash_display_banner, 148
DEBUG : lib/display_options.c, display_options_get_banner_priv, 19
DEBUG : lib/display_options.c, display_options_get_banner_priv, 25, len : 70
DEBUG : lib/display_options.c, display_options_get_banner_priv, 32
In: serial
Out: serial
Err: serial

BuildInfo:
- ATF c949a88
- U-Boot 2020.04-5.4.47-2.2.0+g66480d52ac

The same commands sequence worked in kernel. But, I am not able to see anything on display from u-boot. 

I am stuck here and can not find any solution from community.
Can you please help me to debug the issue or give me any solution to try?

Senior Embedded Engineer | hardevsinh.palaniya@siliconsignals.io | www.siliconsignals.io
0 Kudos
Reply
4,169 Views
Hardevsinh_Palaniya
Contributor III

Hi @Igor 
Can you please have look on my query?
Any help will be appreciated.

Senior Embedded Engineer | hardevsinh.palaniya@siliconsignals.io | www.siliconsignals.io
0 Kudos
Reply
4,180 Views
Hardevsinh_Palaniya
Contributor III

Hi,

Can somebody help me please? Any help would be appreciated.

Senior Embedded Engineer | hardevsinh.palaniya@siliconsignals.io | www.siliconsignals.io
0 Kudos
Reply
4,198 Views
Hardevsinh_Palaniya
Contributor III

Hi,

please guide what is getting wrong.

Need  urgent help on this. 

Thanks in advance.

Senior Embedded Engineer | hardevsinh.palaniya@siliconsignals.io | www.siliconsignals.io
0 Kudos
Reply