New LVDS and Rotary Display Support

Hi,

I’m participating in a project where we have an application made in Qt running on Toradex’s embedded board Apalis IMX6 with Ixora V1.2 board, using toradex linux BSP 2.8. In this project, the device tree has already been implemented and all peripherals are
functional. We have started a process of updating the yocto recipes for this project to version 5.0 of Toradex’s BSP, but I am running into some problems.

I verified that in the BSP 5.0, the strategy recommended by Toradex would be to implement a device tree overlay to support my HW changes. I took the following articles as reference:

  1. Device Tree Overlays (Linux) | Toradex Developer Center
  2. Pin Multiplexing - Changing Pin Functionalities in the Linux Device Tree | Toradex Developer Center
  3. Verdin Development Board -- driver for rotary encoder

I’m trying to add support for Rotary Encoder (652-EPS1D-F19AD0024L) and LVDS display (innolux g150xne-l03) which are already supported in BSP 2.8 and validated on this version. Based on the old device tree(imx6q-apalis-ixora-BSP2.8.dts), I created 3 new device tree overlays(apalis-imx6q-lvds_display_G150XNE-L03_overlay.dts, apalis-imx6q_overlay.dts and apalis-imx6q_rotary_encoder_652-EPS1D-F19AD0024 _overlay. dts ).

I added them to the distribution, I saw that they are being loaded but apparently they are not functional. Could you help us by reviewing the overlays at first while I can provide more logs if you need them?

Best Regards,

André Dantas

apalis-imx6q-lvds_display_G150XNE-L03_overlay.dts (1.2 KB)
apalis-imx6q_overlay.dts (1.4 KB)
apalis-imx6q_rotary_encoder_652-EPS1D-F19AD0024_overlay.dts (1.7 KB)
imx6q-apalis-ixora-BSP2.8.dts (4.7 KB)

Hi André,

I’ll check your device tree overlays and run some tests on my side.

I’m not sure if downloading the files made some alterations on it, but I saw some indentations that may cause some problems.

Regards,
Larissa Souza

Hi Larissa.

If you need some logs from my side I could provide to you. About the indentations, the DTC didn’t warn about them. Here is a fragment of the boot startup log, where we can see the DTOs being loaded.

et:   eth0: ethernet@2188000                                                   
Hit any key to stop autoboot:  0                                                
MMC: no card present                                                            
MMC: no card present                                                            
switch to partitions #0, OK                                                     
mmc0(part 0) is current device                                                  
Scanning mmc 0:1...                                                             
Found U-Boot script /boot.scr                                                   
5962 bytes read in 14 ms (415 KiB/s)                                            
## Executing script at 17000000                                                 
Loading DeviceTree: imx6q-apalis-eval.dtb                                       
78726 bytes read in 15 ms (5 MiB/s)                                             
132 bytes read in 15 ms (7.8 KiB/s)                                             
Applying Overlay: apalis-imx6-oxigena_overlay.dtbo                              
1784 bytes read in 18 ms (96.7 KiB/s)                                           
Applying Overlay: apalis-imx6-oxigena-rotary-encoder_overlay.dtbo               
1911 bytes read in 21 ms (88.9 KiB/s)                                           
Applying Overlay: apalis-imx6-oxigena-hdmi_overlay.dtbo                         
1161 bytes read in 21 ms (53.7 KiB/s)                                           
7109568 bytes read in 261 ms (26 MiB/s)                                         
Bootargs: enable_wait_mode=off vmalloc=400M root=PARTUUID=f7ad6c12-02 ro rootwaM
## Flattened Device Tree blob at 12100000                                       
   Booting using the fdt blob at 0x12100000                                     
   Loading Device Tree to 2ffc9000, end 2fffffff ... OK                         
                                                                                
Starting kernel ...                                                             
                                                                                
[    0.000000] Booting Linux on physical CPU 0x0                                
[    0.000000] Linux version 5.4.193-5.7.3-devel+git.49e4130e2197 (oe-user@oe-h3
[    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c5387d 
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instructie
[    0.000000] OF: fdt: Machine model: Toradex Apalis iMX6Q/D Module on Apalis d
[    0.000000] Memory policy: Data cache writealloc                             
[    0.000000] Reserved memory: created CMA memory pool at 0x7c000000, size 320B
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id sharl
[    0.000000] percpu: Embedded 15 pages/cpu s32012 r8192 d21236 u61440         
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 521008    
[    0.000000] Kernel command line: enable_wait_mode=off vmalloc=400M root=PARTM

Best Regards,

André

Hi André,

Can you explain a little bit more, is there any of them that works? Or all of them are not working?

Also, can you provide to us the entire dmesg so we can take a better look?

Regards,
Larissa Souza

Hi Larissa,

I have some updates… After some research in toradex community, I was able to add the support for rotary encoder and LVDS display by applying the changes directly into the device tree files.

Best regards,

André

Hi @andrehpd-eld ,

That’s really good news, thanks for the update!

Regards,

Larissa