Local 7" capacitive display does not get image

Hi,

We are testing a new 7" capacitive display with Apalis iMX6 and Ixora.

After connected all the cables, we turned on the backlight and display became white, we turned on the Ixora but the display does not get image from iMX6 and display kept white.

We changed vidargs according to Display Output, Resolution and Timings (Linux) article setting it to ‘video=mxcfb0:dev=ldb’.

The display pin assignment can be seen on this datasheet.

Follow below connections:

The pins 27, 33, 34, 36, 37 aren’t connected.

Every display GND is connected to Ixora GND.

The pin 5 (reset), pin 28 (SELB) and pin 35 (VGL) are connected to GND.

The pin 1 (VCOM), pin 2 (VDD), pin 3 (VDD), pin 6 (STBYB) and pin 38 (VGH) are connected to 3,3V .

The pin 29 (AVDD) is connected to 11.3V.

The others pins are connect to X19 (LVDS Connector) on Ixora correspondence number (0, 1, 2, 3) and signal (Positive/Negative), for example, pin 8 (RXIN0-) from display is connected to pin X19.21 (LVDS1_A_TX0_N) from Ixora.

Follow below possible useful information:

  root@apalis-imx6:~# dmesg | grep fb
[    0.000000] Kernel command line: enable_wait_mode=off vmalloc=400M ip=off root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait fec_mac=00:14:2d:4e:8b:5e consoleblank=0 no_console_suspend=1 console=tty1 console=ttymxc0,115200n8 video=mxcfb0:dev=ldb
[    0.000000]       .text : 0x80008000 - 0x808fb08c   (9165 kB)
[    0.219060] mxc_sdc_fb fb@0: registered mxc display driver ldb
[    0.226459] mxc_sdc_fb fb@0: 1024x768 h_sync,r,l: 136,24,160  v_sync,l,u: 6,3,29 pixclock=65002000 Hz
[    0.276767] mxc_sdc_fb fb@0: 1024x768 h_sync,r,l: 136,24,160  v_sync,l,u: 6,3,29 pixclock=65002000 Hz
[    0.337583] fbcvt: 1920x1080@60: CVT Name - 2.073M9
[    0.337773] mxc_sdc_fb fb@1: registered mxc display driver hdmi
[    0.352641] mxc_sdc_fb fb@1: 1920x1080 h_sync,r,l: 44,88,148  v_sync,l,u: 5,4,36 pixclock=148500000 Hz
[    0.376319] mxc_sdc_fb fb@2: registered mxc display driver lcd
[    0.380471] mxc_sdc_fb fb@2: 800x480 h_sync,r,l: 20,60,40  v_sync,l,u: 10,10,10 pixclock=27000000 Hz
[    0.393428] mxc_sdc_fb fb@3: registered mxc display driver vdac
[    0.397602] mxc_sdc_fb fb@3: 640x350 h_sync,r,l: 64,32,96  v_sync,l,u: 3,32,60 pixclock=31500000 Hz
[    8.962363] mxc_sdc_fb fb@0: 1024x768 h_sync,r,l: 136,24,160  v_sync,l,u: 6,3,29 pixclock=65002000 Hz
[    9.023947] mxc_sdc_fb fb@0: 1024x768 h_sync,r,l: 136,24,160  v_sync,l,u: 6,3,29 pixclock=65002000 Hz
[    9.102851] mxc_sdc_fb fb@0: 1024x768 h_sync,r,l: 136,24,160  v_sync,l,u: 6,3,29 pixclock=65002000 Hz
[    9.183189] mxc_sdc_fb fb@0: 1024x768 h_sync,r,l: 136,24,160  v_sync,l,u: 6,3,29 pixclock=65002000 Hz
[    9.624320] mxc_sdc_fb fb@0: 1024x768 h_sync,r,l: 136,24,160  v_sync,l,u: 6,3,29 pixclock=65002000 Hz
root@apalis-imx6:~# fbset

mode "1024x768-60"
	 # D: 65.003 MHz, H: 48.365 kHz, V: 60.006 Hz
	 geometry 1024 768 1024 768 16
	 timings 15384 160 24 29 3 136 6
	 rgba 5/11,6/5,5/0,0/0
endmode

root@apalis-imx6:~# xrandr
Screen 0: minimum 240 x 240, current 1024 x 768, maximum 8192 x 8192
DISP4 BG - DI1 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
	U:1024x768p-60  60.01*+
	U:1920x1080p-59  59.94  
	U:1280x800p-58  58.34  
	U:800x600p-86  86.08  
root@apalis-imx6:~# 

Is there some modification that need be done on Device Tree?

Best regards,
Daniel Morais

According to the datasheet you’ve linked:

  1. Reset pin needs to be driver high for operation (see page 8, power on procedure),
  2. VGL needs -6.8V supply ( see page 6, Typical Operation Conditions),
  3. VGH needs 20V supply ( see page 6, Typical Operation Conditions),

Hi Dominik,

Thanks for your help, with some adjusts on Device Tree the display is working well now.

Now I’m trying to make touchscreen work, apparently it uses the goodix driver, so I made the following changes on Device Tree according to the patch below:

diff --git a/arch/arm/boot/dts/imx6qdl-apalis-eval.dtsi b/arch/arm/boot/dts/imx6qdl-apalis-eval.dtsi
index 7b79d4a..a9f26ac 100644
--- a/arch/arm/boot/dts/imx6qdl-apalis-eval.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-apalis-eval.dtsi
@@ -164,6 +164,15 @@
 &i2c1 {
	     status = "okay";
 
+       gt911@5d {
+               compatible = "goodix,gt911";
+               reg = <0x5d>;
+                interrupt-parent = <&gpio6>;
+                interrupts = <10 IRQ_TYPE_EDGE_FALLING>;
+                status = "okay";
+
+       };
+
	     /* Atmel maxtouch controller */
	     atmel_mxt_ts: atmel_mxt_ts@4a {
	             compatible = "atmel,maxtouch";

But I’m getting the follow error while running “modprobe goodix”

[   20.700975] Goodix-TS 1-005d: i2c test failed attempt 1: -5
[   20.733037] Goodix-TS 1-005d: i2c test failed attempt 2: -5
[   20.762803] Goodix-TS 1-005d: I2C communication failure: -5
[   20.768402] Goodix-TS: probe of 1-005d failed with error -5

We checked that SDA/SCL aren’t triggering. When I run modeprobe the SCL trigger some times. The RESET Pin is triggering all the time.

Do you have any idea about this issue?

Best regards,
Daniel Morais

hi daniel

it seems that the reset pin is triggered by something. You can either mux this pin to gpio and set it to high by software or bind this pin to high by hardware connection.

Hi Jaski,

I have set reset to high by software and tried to run “modprobe goodix” again, but I got same error as before.

Follow below a print with the signals, how you can see, after running the command the SCL signal trigger.

I can’t see the driver on the i2cdetect output, follow below:

    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- 

Follow below changes on device tree:

+       pinctrl-names = "default";
+       clock-frequency = <100000>;
+       pinctrl-0 = <&pinctrl_i2c1>;
+
+
+     gt911@5d {
+             compatible = "goodix,gt911";
+             reg = <0x5d>;
+
+             irq-gpios = <&gpio6 10 IRQ_TYPE_EDGE_FALLING>;
+             reset-gpios = <&gpio6 9 IRQ_TYPE_EDGE_FALLING>;
+         };

Do you have any idea?

Best Regards,
Daniel Morais

Please double check if your connections are right reset line should see almost no activity and scl should be the most active with sda right behind. Check if the i2c bus you’re using has pull-up resistors (on carrier board or elsewhere). What are idle voltage levels on pins you’re measuring?

Hi Dominik,

Thank for you help.

In fact the connections were wrong, the customer sent me a chinese datasheet, in the end the datasheet was for another model, after checking pin to pin on GT911 we found out the correct pinout and everything worked fine.

Best Regards,
Daniel Morais

hi daniel, you are welcome.