Dear @gclaudino.tx,
As you asked, here you have the full device tree ( imx7-colibri-viola.dtsi)
* Copyright 2017 Toradex AG
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#include <dt-bindings/input/input.h>
#include <dt-bindings/pwm/pwm.h>
/ {
chosen {
bootargs = "console=ttymxc0,115200";
};
extcon_usbc_det: usbc_det {
compatible = "linux,extcon-usb-gpio";
debounce = <25>;
id-gpio = <&gpio7 14 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usbc_det>;
};
reg_3v3: regulator-3v3 {
compatible = "regulator-fixed";
regulator-name = "3.3V";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
reg_5v0: regulator-5v0 {
compatible = "regulator-fixed";
regulator-name = "5V";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
reg_usbh_vbus: regulator-usbh-vbus {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usbh_reg>;
regulator-name = "VCC_USB[1-4]";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
gpio = <&gpio4 7 GPIO_ACTIVE_LOW>;
vin-supply = <®_5v0>;
};
};
&bl {
brightness-levels = <155 255>;
num-interpolated-steps = <100>;
default-brightness-level = <50>;
pwms = <&pwm1 0 6666667 PWM_POLARITY_INVERTED>;
post-pwm-on-delay-ms = <5>;
status = "okay";
};
&adc1 {
status = "okay";
};
&adc2 {
status = "okay";
};
&epxp {
status = "okay";
};
&ecspi3 {
fsl,spi-num-chipselects = <1>;
cs-gpios = <
&gpio4 11 GPIO_ACTIVE_HIGH
>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ecspi3 &pinctrl_ecspi3_cs>;
status = "okay";
mmcslot0: mmc-slot@0 {
compatible = "mmc-spi-slot";
reg = <0>;
voltage-ranges = <3100 3400>;
spi-max-frequency = <25000000>;
};
};
&fec1 {
status = "okay";
};
&i2c4 {
status = "okay";
/* FocalTech FT5426 controller */
focaltech_touch: focaltech@38{
compatible = "focaltech,fts";
reg = <0x38>;
interrupt-parent = <&gpio1>;
interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
focaltech,reset-gpio = <&gpio2 26 GPIO_ACTIVE_LOW>;
focaltech,irq-gpio = <&gpio1 2 IRQ_TYPE_EDGE_FALLING>;
focaltech,max-touch-number = <5>;
focaltech,display-coords = <0 0 800 480>;
focaltech,panel-type = <0x54260002>;
};
/* M41T0M6 real time clock on carrier board */
rtc: m41t0m6@68 {
compatible = "st,m41t0";
reg = <0x68>;
};
};
&lcdif {
display = <&display0>;
status = "okay";
display0: lcd-display {
bits-per-pixel = <16>;
bus-width = <18>;
display-timings {
native-mode = <&timing_wvga5>;
/* Standard VGA timing */
timing_vga: 640x480 {
clock-frequency = <25175000>;
hactive = <640>;
vactive = <480>;
hback-porch = <40>;
hfront-porch = <24>;
vback-porch = <32>;
vfront-porch = <11>;
hsync-len = <96>;
vsync-len = <2>;
de-active = <1>;
hsync-active = <0>;
vsync-active = <0>;
pixelclk-active = <0>;
};
/* WVGA Timing, PH800480T024-IBC01 */
timing_wvga5: 800x480-5 {
clock-frequency = <33300000>;
hactive = <800>;
hback-porch = <46>;
hfront-porch = <210>;
vactive = <480>;
vback-porch = <23>;
vfront-porch = <22>;
hsync-len = <20>;
vsync-len = <20>;
de-active = <1>;
hsync-active = <0>;
vsync-active = <0>;
pixelclk-active = <0>;
};
/* WVGA Timing, NHD-7.0-800480EF-ASXN#-CTP */
timing_wvga7: 800x480-7 {
clock-frequency = <33260000>;
hactive = <800>;
vactive = <480>;
hback-porch = <88>;
hfront-porch = <40>;
vback-porch = <32>;
vfront-porch = <13>;
hsync-len = <48>;
vsync-len = <3>;
de-active = <1>;
hsync-active = <0>;
vsync-active = <0>;
pixelclk-active = <1>;
};
/* Standard SVGA timing */
timing_svga: 800x600 {
clock-frequency = <40000000>;
hactive = <800>;
vactive = <600>;
hback-porch = <88>;
hfront-porch = <40>;
vback-porch = <23>;
vfront-porch = <1>;
hsync-len = <128>;
vsync-len = <4>;
de-active = <1>;
hsync-active = <1>;
vsync-active = <1>;
pixelclk-active = <0>;
};
/* Standard XGA timing */
timing_xga: 1024x768 {
clock-frequency = <65000000>;
hactive = <1024>;
vactive = <768>;
hback-porch = <160>;
hfront-porch = <24>;
vback-porch = <29>;
vfront-porch = <3>;
hsync-len = <136>;
vsync-len = <6>;
de-active = <1>;
hsync-active = <0>;
vsync-active = <0>;
pixelclk-active = <0>;
};
};
};
};
&pwm1 {
status = "okay";
};
&pwm2 {
status = "okay";
};
&pwm3 {
status = "okay";
};
&pwm4 {
status = "okay";
};
&uart1 {
status = "okay";
};
&uart2 {
status = "okay";
};
&uart3 {
status = "okay";
};
&usbotg1 {
extcon = <&extcon_usbc_det>, <&extcon_usbc_det>;
vbus-supply = <®_usbh_vbus>;
status = "okay";
};
/* The define SD_1_8 allows to use the SD interface at a higher speed mode
* if the card supports it. For this the signaling voltage is switched from
* 3.3V to 1.8V under the usdhc1's drivers control.
* All pins supplied with NVCC_SD1 must be able to cope with this
* and must (MUST!!!) not be driven with a voltage higher than 1.8V or
* the interface will not work.
*/
/* #define SD_1_8 */
&usdhc1 {
#ifdef SD_1_8
pinctrl-names = "default", "state_100mhz", "state_200mhz";
pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_cd_usdhc1>;
pinctrl-1 = <&pinctrl_usdhc1_100mhz &pinctrl_cd_usdhc1>;
pinctrl-2 = <&pinctrl_usdhc1_200mhz &pinctrl_cd_usdhc1>;
vmmc-supply = <®_3p3v>;
vqmmc-supply = <®_LDO2>;
#else
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_cd_usdhc1>;
no-1-8-v;
#endif
cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
disable-wp;
enable-sdio-wakeup;
keep-power-in-suspend;
status = "okay";
};
&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio1 &pinctrl_gpio2 &pinctrl_gpio3 &pinctrl_gpio4>;
};
Currently, I don’t have access with the carrier board serial port to check u-boot, but I can guarantee that changing some parameters of this device tree, like the backlight, changes the behavior of it, so u-boot must be loading the correct dtb.
There is another thing I wanted to add. Using a shorter cable between the carrier board and the display decreases the flickering. Also, If I increase the clock of the display via ‘fbset’ command the flickering also decreases substantially (like double the typ. frequency suggested in the datasheet).
Currently, the problem I am most afraid of is the behavior of the colors in the display, like you can see in the following video:
https://we.tl/t-nSgna1FU0K
You will se a screen were yo can mix some colors. There is a gradient between the full color and black. Blue and green look more or less fine, but the red gradient looks weird (instead of going every time darker, there are frames where it comes darker and then clearer). This behavior causes some color combinations to look awful.
Thank you for your attention,
Javier.