parallel lcd data offset

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

parallel lcd data offset

Jump to solution
894 Views
reuelhaavrahami
Contributor III

Hi

We have a parallel display (IPU0_D1) connected as follows:

D0 - to pin J25 (EIM_DA1__IPU1_DISP1_DATA08)........

D15 - to pin E25 (EIM_D27__IPU1_DISP1_DATA23).

Our kernel :Freescale i.MX Release Distro 3.14.52-1.1.1

The framebuffer is setup as RGB565. We can see the clock and sync signals. We can also see the high byte of the RGB signal on EIM_DA1__IPU1_DISP1_DATA08 through to DATA15. The upper byte is all zeros.

Clearly the system is outputting the RGB data on DATA0 to DATA15, but we need it on DATA8 to DATA23.

How do we have the IMX6 (Dual core) shift the RGB on the LCD interface by 8 bits?

It would seem possible to declare a framebuffer format similar to RGB565 with the a different .ofset for red, green and blue. However I am afraid that it might confuse overlay and other work done by the system on the framebuffer.

Labels (2)
0 Kudos
1 Solution
652 Views
reuelhaavrahami
Contributor III

Hi

Perhaps this is a bad hack but I got what I needed by changing the _ipu_init_dc_mappings function in ipu_disp.c (lines867+) in the following manner. (the old values are in comments).

_ipu_dc_map_config(ipu, 3, 0, 12, 0xF8);//_ipu_dc_map_config(ipu, 3, 0, 4, 0xF8);
_ipu_dc_map_config(ipu, 3, 1, 18, 0xFC);//_ipu_dc_map_config(ipu, 3, 1, 10, 0xFC);
_ipu_dc_map_config(ipu, 3, 2, 23, 0xF8);//_ipu_dc_map_config(ipu, 3, 2, 15, 0xF8);

View solution in original post

0 Kudos
3 Replies
652 Views
igorpadykov
NXP Employee
NXP Employee

Hi Reuel

for data shifting one can look at sect.37.4.7.5.1 Bus Mapping Unit i.MX6DQ Reference Manual
http://cache.freescale.com/files/32bit/doc/ref_manual/IMX6DQRM.pdf

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

0 Kudos
652 Views
reuelhaavrahami
Contributor III

Hi

Thanks for the speedy reply. I just love this CPU. However, how do I get this done in the kernel or in the userspace in linux?

0 Kudos
653 Views
reuelhaavrahami
Contributor III

Hi

Perhaps this is a bad hack but I got what I needed by changing the _ipu_init_dc_mappings function in ipu_disp.c (lines867+) in the following manner. (the old values are in comments).

_ipu_dc_map_config(ipu, 3, 0, 12, 0xF8);//_ipu_dc_map_config(ipu, 3, 0, 4, 0xF8);
_ipu_dc_map_config(ipu, 3, 1, 18, 0xFC);//_ipu_dc_map_config(ipu, 3, 1, 10, 0xFC);
_ipu_dc_map_config(ipu, 3, 2, 23, 0xF8);//_ipu_dc_map_config(ipu, 3, 2, 15, 0xF8);

0 Kudos