Hi all,
I have a small 8-bit interface TFT display and a SOM with an IMX6UL processor running a Yocto distribution.
I want to drive this display but I cannot seem to find the solution. The display only has 8-bit data channel and some control lines (reset, chip select, ...). No address lines!
I have connected the display using GPIO and configured notro's fbtft driver (GitHub - notro/fbtft: Linux Framebuffer drivers for small TFT LCD display modules ). I succeeded in getting an image on the screen, however the refresh rate was too low. I then changed the driver a little just to make it toggle a GPIO and it seems that they're not able to toggle fast enough to get a decent refresh rate.
Now I'm thinking about driving this display using the SDMA and EMI/EIM modules of the iMX6UL chip. As far as I understand, DMA is used to transfer data from place A to place B without CPU intervention and that EMI/EIM bus is used to access external memory. The display controller has its own memory, so I would suggest that this is possible? But I have no idea how, can somebody push me a little in the right direction?
If SDMA and EMI are not the solution, can somebody please explain me what they're used for then?
If more information is needed to give a good answer please ask, I really want to understand these concepts.
Kind regards
Jasper
-------------------------------------------------------
TECHNICAL DATA
------------------------------------------------------
TFT DISPLAY + CONTROLLER: RK020JH100 - ILI9335 (very similar to ILI9325)
SOM with iMX6UL processor
Hi igor,
thanks for the information! So the iMX6UL supports an 8-bit interface, but looking around the forum people are talking about the following patch: Patch to support MPU 8080 LCD on iMX6UL and iMX7D
I assume this is necessary to make the yocto dist work with the iMX6UL in a correct way?
I have a few questions about SDMA, maybe you can answer those?
(1) What's the actual difference between SDMA and DMA?
(2) What's the actual difference/relation between EIM and EMI or WEIM?
(3) Can I use SDMA to write data to the tft? If so, how would I start? I know I should use the EMI block but I have no IDEA how, can you give me a push in the right direction? I have checked the reference manual but I don't seem to be able to filter out the info I need. How does SDMA relate to EMI, I know that the SDMA module can talk to the EMI-bus, but how?
Kind regards,
Jasper
Hello Jasper,
I am also trying to interface the TFT display using 8080 interface.
can you please share your device tree node for 8080 interface which you used with FBTFT drivers?
Best Regards,
Shrikant
If you mean the device tree when using Notro's driver, here you go:
[e.g. ili9325 controller lcd]
/ {
itdb28 {
compatible = "ilitek,ili9325";
status = "okay";
rotate = <0>;
bgr;
buswidth = <8>;
reset-gpios = <&gpio3 23 0>;
dc-gpios = <&gpio3 12 0>;
cs-gpios = <&gpio3 1 0>;
wr-gpios = <&gpio3 25 0>;
rd-gpios = <&gpio3 24 0>;
db-gpios = <&gpio3 7 0>,
<&gpio3 19 0>,
<&gpio3 9 0>,
<&gpio3 10 0>,
<&gpio3 11 0>,
<&gpio3 15 0>,
<&gpio3 16 0>,
<&gpio3 17 0>;
debug = <0>;
};
};
Don't forget to fill in the necessary details in the used driver itself and in the linux Kernel.
Good luck! I got the display working but unfortunately it was way to slow using this driver in combination with the GPIO interface.
If you have any clues on getting it to work with a decent refresh rate or using a dedicated interface, feel free to contact me.
Regards,
Jasper
Thanks Jasper for your quick reply.
I will try this out first.
If I will get any clue on refresh rate then I will contact you.
Regards,
Shree
Any success/progress with the project?
regards,
Jasper
I tried with Notro driver but its not showing any data on the LCD.
But when I checked with logic analyzer I am getting some sort of data on every line.
I am unable to figure out why its not showing data on display?
Regards,
Shree
Hi Jasper
some lcds from mentioned link have mpu interface and can
be processed by eLCDIF module of i.MX6UL, please check Chapter 32
Enhanced LCD Interface (eLCDIF), Table 32-3. Pin use in MPU Mode and VSYNC Mode
RM. SDMA usage is not simple as eLCDIF and example can be found in imx-test (mxc_sdma_mem_test.c)
www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-test-5.7.tar.gz
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------