B101UAN01.7 MIPI DSI panel support in iMX8M

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

B101UAN01.7 MIPI DSI panel support in iMX8M

2,463 Views
antonyabeepraka
Contributor II

We are trying to bring up B101UAN01 MIPI DSI panel(1920x1200) on our custom imx8mq board with linux BSP kernel- 41.14.78

We have created the device tee and added the panel timings in panel-simple.c driver for B101UAN01 DSI panel. We are using panel-simple.c, as B101UAN01 panel does not have any init sequence and manufacturer command sets in their datasheet.

We could able to get the back light. Frame buffer fb0 is created, driver is registered. We have changed the resolution to 1920x1080 from 1920x1200(actual panel resolution) as MIPI DSI will support upto 1080p resolution. Also reduced the clock frequency to 148000 khz from 154500 khz.

But there is no display on screen. Attached our dts and panel-simple.c files for your reference.

Please tell us whether we are going in correct path. Please provide inputs on this.

Also we would like to clarify another one query here.

What is the clock frequency range for lcdif source ?

Thanks,

Antony

 

0 Kudos
4 Replies

2,172 Views
igorpadykov
NXP Employee
NXP Employee

Hi Antony

one can try to reuse raydium-rm67191 driver (remove its initialization)

and adjust lcd timings in struct display_timing rad_default_timing

panel-raydium-rm67191.c\panel\drm\gpu\drivers - linux-imx - i.MX Linux kernel 

for adjustion clocks may be useful

https://community.nxp.com/thread/513899 

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

2,172 Views
antonyabeepraka
Contributor II

Hi igor,

Thanks for your input.

We have taken raydium-rm67191 driver and removed initialization. We have added our timings via display-timings

property in dts file which is used by panel driver.

Attached panel-b101uan01.c for your reference.

Our dts changes as below:

&mipi_dsi_bridge {
        status = "okay";

        panel@0 {
                compatible = "auo,b101uan01";
                status = "okay";
                reg = <0>;
                pinctrl-0 = <&pinctrl_mipi_dsi_en>;
                power-gpio = <&gpio5 3 GPIO_ACTIVE_HIGH>;
                bklite-gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
                bkliteen-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
                dsi-lanes = <4>;
                video-mode = <0>;
                panel-width-mm = <108>;
                panel-height-mm = <272>;

                display-timings {
                        timing {
                                clock-frequency = <148000>;
                                hactive = <1920>;
                                vactive = <1080>;
                                hfront-porch = <185>;
                                hsync-len = <0>;
                                hback-porch = <925>;
                                vfront-porch = <3>;
                                vsync-len = <5>;
                                vback-porch = <4>;
                                hsync-active = <0>;
                                vsync-active = <0>;
                                de-active = <0>;
                                pixelclk-active = <0>;
                        };
                };

                port {
                        panel1_in: endpoint {
                                remote-endpoint = <&mipi_dsi_bridge_out>;
                        };
                };
        };

        port@2 {
                mipi_dsi_bridge_out: endpoint {
                        remote-endpoint = <&panel1_in>;
                };
        };
};

Below is our boot logs:

[    1.059121] dcss-core 32e00000.dcss: Configured video pll 2 with ref_clk 1 freq 594000000 (actual 594000000)
[    1.081851] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    1.088491] [drm] No driver support for vblank timestamp query.
[    1.094638] imx-drm display-subsystem: bound imx-dcss-crtc.0 (ops dcss_crtc_ops)
[    1.102145] nwl_dsi-imx mipi_dsi@30A00000: Using DCSS as input source
[    1.108922] DEBUG: Entering rad_panel_probe
[    1.113214] DEBUG: display-timings property from dts
[    1.118304] DEBUG: display-timings is done
[    1.122531] DEBUG:power gpio enabled
[    1.126219] DEBUG:bklite gpio enabled
[    1.129990] DEBUG:bklite brightness enabled
[    1.134274] DEBUG:drm_panel_init done
[    1.138036] DEBUG:rad_panel_functions done
[    1.142235] DEBUG: drm panel added
[    1.145745] nwl-mipi-dsi 30a00000.mipi_dsi_bridge: [drm:nwl_dsi_host_attach] lanes=4, format=0x0 flags=0x3
[    1.155469] DEBUG: mipi dsi attached
[    1.159147] DEBUG: End of rad_panel_probe
[    1.163397] imx-drm display-subsystem: bound mipi_dsi@30A00000 (ops imx_nwl_dsi_component_ops)
[    1.172056] DEBUG: End of rad_panel_get_modes
[    1.182310] DEBUG: Video pll rate: 888000000 (actual: 887999998)
[    1.182313] DEBUG: adjusted->crtc_clock 148000
[    1.182360] DEBUG: Video pll rate: 888000000 (actual: 887999998)
[    1.182363] DEBUG: adjusted->crtc_clock 148000
[    1.748781] DEBUG:Entering rad_panel_prepare
[    1.748784] DEBUG:End of rad_panel_prepare
[    1.748789] DEBUG:Entering rad_panel_enable
[    1.748791] DEBUG: End of rad_panel_enable
[    1.755059] DEBUG: Video pll rate: 888000000 (actual: 887999998)
[    1.755062] DEBUG: adjusted->crtc_clock 148000
[    1.755103] DEBUG: Video pll rate: 888000000 (actual: 887999998)
[    1.755106] DEBUG: adjusted->crtc_clock 148000
[    1.814

&mipi_dsi_bridge {
status = "okay";

panel@0 {
compatible = "auo,b101uan01";
status = "okay";
reg = <0>;
pinctrl-0 = <&pinctrl_mipi_dsi_en>;
power-gpio = <&gpio5 3 GPIO_ACTIVE_HIGH>;
bklite-gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>;
bkliteen-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
dsi-lanes = <4>;
video-mode = <0>;
panel-width-mm = <108>;
panel-height-mm = <272>;

display-timings {
timing {
clock-frequency = <154000>;
hactive = <1920>;
vactive = <1080>;
hfront-porch = <185>;
hsync-len = <0>;
hback-porch = <925>;
vfront-porch = <3>;
vsync-len = <5>;
vback-porch = <4>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
};

port {
panel1_in: endpoint {
remote-endpoint = <&mipi_dsi_bridge_out>;
};
};
};

port@2 {
mipi_dsi_bridge_out: endpoint {
remote-endpoint = <&panel1_in>;
};
};
};

400] Console: switching to colour frame buffer device 240x67
[    1.814470] DEBUG: Video pll rate: 888000000 (actual: 887999998)
[    1.814473] DEBUG: adjusted->crtc_clock 148000
[    1.814514] DEBUG: Video pll rate: 888000000 (actual: 887999998)
[    1.814517] DEBUG: adjusted->crtc_clock 148000
[    1.943971] imx-drm display-subsystem: fb0:  frame buffer device
[    1.950564] [drm] Initialized imx-drm 1.0.0 20120507 for display-subsystem on minor 0

Still No display on panel. Please advice if anything is wrong here.

Thanks,

Antony

0 Kudos

2,172 Views
antonyabeepraka
Contributor II

Attached the panel driver above for your reference

0 Kudos

2,172 Views
bruno_chen
Contributor II

Hi, Antony,

Did you resolve this issue?

I have the same problem. Could you please share your solution for me? THX.

Bruno

0 Kudos