Help getting LCD working on AT91SAM5d36

This forum is for users of Microchip MPUs and who are interested in using Linux OS.

Moderator: nferre

RamiGspo
Posts: 1
Joined: Thu Mar 28, 2019 11:42 am

Help getting LCD working on AT91SAM5d36

Thu Mar 28, 2019 1:18 pm

Hello all,

We have a custom board equiped with a SAMA5d36 and a LCD touchscreen.
We have read this page to setup the atmel-hlcd driver.
linux4sam/bin/view/Linux4SAM/UsingAtmelDRMDriver

Our kernel is Linux 4.1.0-linux4sam_5.1.
Buildroot-2016.02

With a Display 640x480 everything is working fine. (ETMV570G2DHU)

Now we have another Display (same family) with a resolution 800x480. (ETM0500G0DH6)
We have tried to configure the atmel-hlcd driver, but it still does not work.
When I first boot up Linux, the screen flashes white and some vertical lines are displayed... nothing else after that.

When I run "modetest -M atmel-hlcdc -c", I see that I don't have "modes" for this Display. <- Something wrong with the driver???

Code: Select all

buildroot:~# modetest -M atmel-hlcdc -c                                         
trying to open device 'i915'...failed                                           
trying to open device 'radeon'...failed                                         
trying to open device 'nouveau'...failed                                        
trying to open device 'vmwgfx'...failed                                         
trying to open device 'omapdrm'...failed                                        
trying to open device 'exynos'...failed                                         
trying to open device 'tilcdc'...failed                                         
trying to open device 'msm'...failed                                            
trying to open device 'sti'...failed                                            
trying to open device 'tegra'...failed                                          
trying to open device 'imx-drm'...failed                                        
trying to open device 'rockchip'...failed                                       
trying to open device 'atmel-hlcdc'...done                                      
Connectors:                                                                     
id      encoder status          name            size (mm)       modes   encoders
18      0       connected       LVDS-1          108x64          0       17      
  props:                                                                        
        1 EDID:                                                                 
                flags: immutable blob                                           
                blobs:                                                          
                                                                                
                value:                                                          
        2 DPMS:                                                                 
                flags: enum                                                     
                enums: On=0 Standby=1 Suspend=2 Off=3                           
                value: 3 
With the other Display I see the modes:

Code: Select all

buildroot:~# modetest -M atmel-hlcdc -c                                         
trying to open device 'i915'...failed                                           
trying to open device 'radeon'...failed                                         
trying to open device 'nouveau'...failed                                        
trying to open device 'vmwgfx'...failed                                         
trying to open device 'omapdrm'...failed                                        
trying to open device 'exynos'...failed                                         
trying to open device 'tilcdc'...failed                                         
trying to open device 'msm'...failed                                            
trying to open device 'sti'...failed                                            
trying to open device 'tegra'...failed                                          
trying to open device 'imx-drm'...failed                                        
trying to open device 'rockchip'...failed                                       
trying to open device 'atmel-hlcdc'...done                                      
Connectors:                                                                     
id      encoder status          name            size (mm)       modes   encoders
18      17      connected       LVDS-1          108x64          1       17      
  [b]modes:                                                                        
        name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)                
  640x480 60 640 656 720 800 480 481 484 497 flags: nhsync, pvsync; type: userdf[/b]
  props:                                                                        
        1 EDID:                                                                 
                flags: immutable blob                                           
                blobs:                                                          
                                                                                
                value:                                                          
        2 DPMS:                                                                 
                flags: enum                                                     
                enums: On=0 Standby=1 Suspend=2 Off=3                           
                value: 0


Here is part of our device tree

Code: Select all

hlcdc: hlcdc@f0030000 {
				status = "okay";

				hlcdc-display-controller {
					pinctrl-names = "default";
					pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb666>;

					port@0 {
						hlcdc_panel_output: endpoint@0 {
							reg = <0>;
							remote-endpoint = <&panel_input>;
						};
					};
				};
			};
			
			
panel: panel {
		// compatible = "edt,et057090dhu", "simple-panel";//<- This is working fine: Display 640x480 ETMV570G2DHU
		compatible = "edt,etm0500g0dh6", "simple-panel";//<- This is not working: Display 800x480 ETM0500G0DH6
		backlight = <&backlight>;
		power-supply = <&panel_reg>;
		#address-cells = <1>;
		#size-cells = <0>;
		status = "okay";

		port@0 {
			reg = <0>;
			#address-cells = <1>;
			#size-cells = <0>;

			panel_input: endpoint@0 {
				reg = <0>;
				remote-endpoint = <&hlcdc_panel_output>;
			};
		};
	};
Here is a part of our panel-simple.c:

Code: Select all

static const struct drm_display_mode edt_etm0500g0dh6_mode = {
	.clock = 33260,
	.hdisplay = 800,
	.hsync_start = 800 + 40,
	.hsync_end = 800 + 40 + 128,
	.htotal = 800 + 40 + 128 + 88,
	.vdisplay = 480,
	.vsync_start = 480 + 10,
	.vsync_end = 480 + 10 + 2,
	.vtotal = 480 + 10 + 2 + 35,
	.vrefresh = 60,
	.flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
};

static const struct panel_desc edt_etm0500g0dh6 = {
	.modes = &edt_etm0500g0dh6_mode,
	.num_modes = 1,
	.bpc = 6,
	.size = {
		.width = 108,
		.height = 64,
	},
};

Am I missing something that it should be configurated? Or at the uboot level maybe ?

Thanks for any suggestion,
Ramiro.
nferre
Site Admin
Posts: 205
Joined: Wed Feb 14, 2007 11:17 am

Re: Help getting LCD working on AT91SAM5d36

Tue Apr 02, 2019 5:39 pm

Hi,

I don't see the place where the compatibility string "edt,etm0500g0dh6" is defined in panel-simple.c file.

Return to “LINUX”

Who is online

Users browsing this forum: No registered users and 2 guests