custom IMX7 add lcd panel

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

custom IMX7 add lcd panel

1,918 Views
atakanakbulut
Contributor II

Hello i am asking question about imx7 and lcd display. we are designed custom board its so simple. I will add lcd panel. i created custom kernel perhaps its have generic lcd driver and backlight .

AT070tn83 LCD Panel, and i cant find " its support via generic driver or oem custom driver " i haven't lcd now and i need this info this LCD or Kernel support generic driver ?

Secondly i am using imx7dsabresd's devicetree and should i edit device tree for this LCD panel ? if it need custom device tree parameter how i can define this parameters   

last question am i edit u boot parameters for this panel ?

Labels (3)
0 Kudos
3 Replies

1,300 Views
igorpadykov
NXP Employee
NXP Employee

Hi Atakan

basically for new lcd timings should be adjusted in dts file:

linux/arch/arm/boot/dts/imx7d-sdb.dts

linux-imx.git - i.MX Linux Kernel 

     display0: display {           
bits-per-pixel = <16>;           
bus-width = <24>;            
display-timings {                
native-mode = <&timing0>;               
 timing0: timing0 {                
clock-frequency = <9200000>;                
hactive = <480>;                
vactive = <272>;                
hfront-porch = <8>;                
hback-porch = <4>;                
hsync-len = <41>;                
vback-porch = <2>;                
vfront-porch = <4>;                
vsync-len = <10>;                 
hsync-active = <0>;                
vsync-active = <0>;                
de-active = <1>;                
pixelclk-active = <0>;                };           
};

Generic driver is described in  Chapter 12 ELCDIF Frame Buffer 
Driver attached Linux Manual  and  boot parameters in Table 11. Common 
kernel boot parameters attached Release Notes.

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

1,300 Views
atakanakbulut
Contributor II

i compiled this way and actually when i am getting unsupported panel TFT43AB from u boot my panel not connected now i just prepared . 

second question  maybe wrong some parameters kernel orginal value .bus = ELCDIF1_IPS_BASE_ADDR in u boot looking &lcdif  or looking .addr = 0 refer link. 

third question how i can control my panel drivers and system without lcd panel

0 Kudos

1,300 Views
atakanakbulut
Contributor II

Hello i tried for lcd but perhaps i get some problems I refer https://www.embeddedartists.com/sites/default/files/docs/misc/iMX_Adding_Displays.pdf and this page.  

DEVICETREE

I edited for examples this link and others and i edit  kernel imx7d-sdb.dts i refer upper link

&lcdif {

pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lcdif_dat
&pinctrl_lcdif_ctrl>;
enable-gpio = <&gpio_spi 7 GPIO_ACTIVE_LOW>;
display = <&display0>;
status = "okay";

display0: display {
bits-per-pixel = <32>;
bus-width = <24>;

display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <33500000>;
hactive = <800>;
vactive = <480>;
hfront-porch = <164>;
hback-porch = <89>;
hsync-len = <10>;
vback-porch = <75>;
vfront-porch = <75>;
vsync-len = <10>;

hsync-active = <0>;
vsync-active = <0>;
de-active = <1>;
pixelclk-active = <1>;
};
};
};
};

KERNEL

i enabled to kernel to CONFIG_FB_MXS (actually i checked its already enable over /proc/config.gz)

U BOOT PROBLEM

i edit to /boards/freescale/imx7dsabresd/... 

İ changed parameters

static struct lcd_panel_info_t const displays[] = {

struct display_info_t const displays[] = {{
.bus = ELCDIF1_IPS_BASE_ADDR,
.addr = 0,
.pixfmt = 24,
.detect = NULL,
.enable = do_enable_parallel_lcd,
.mode = {
.name = "Innolux-AT070TN",
.xres = 800,
.yres = 480,
.pixclock = 29850,
.left_margin = 89,
.right_margin = 164,
.upper_margin = 75,
.lower_margin = 75,
.hsync_len = 10,
.vsync_len = 10,
.sync = 0,
.vmode = FB_VMODE_NONINTERLACED
} } };

0 Kudos