diff options
Diffstat (limited to 'drivers/gpu/drm/panel/panel-simple.c')
| -rw-r--r-- | drivers/gpu/drm/panel/panel-simple.c | 37 | 
1 files changed, 36 insertions, 1 deletions
| diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index 2be358fb46f7..597f676a6591 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -39,6 +39,7 @@  #include <drm/drm_panel.h>  /** + * struct panel_desc   * @modes: Pointer to array of fixed modes appropriate for this panel.  If   *         only one mode then this can just be the address of this the mode.   *         NOTE: cannot be used with "timings" and also if this is specified @@ -53,6 +54,7 @@   * @delay: Structure containing various delay values for this panel.   * @bus_format: See MEDIA_BUS_FMT_... defines.   * @bus_flags: See DRM_BUS_FLAG_... defines. + * @connector_type: LVDS, eDP, DSI, DPI, etc.   */  struct panel_desc {  	const struct drm_display_mode *modes; @@ -1327,6 +1329,7 @@ static const struct drm_display_mode boe_nv133fhm_n61_modes = {  	.vsync_start = 1080 + 3,  	.vsync_end = 1080 + 3 + 6,  	.vtotal = 1080 + 3 + 6 + 31, +	.flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC,  };  /* Also used for boe_nv133fhm_n62 */ @@ -1812,6 +1815,7 @@ static const struct panel_desc edt_etm0700g0dh6 = {  	},  	.bus_format = MEDIA_BUS_FMT_RGB666_1X18,  	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE, +	.connector_type = DRM_MODE_CONNECTOR_DPI,  };  static const struct panel_desc edt_etm0700g0bdh6 = { @@ -3873,6 +3877,32 @@ static const struct panel_desc winstar_wf35ltiacd = {  	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,  }; +static const struct drm_display_mode yes_optoelectronics_ytc700tlag_05_201c_mode = { +	.clock = 51200, +	.hdisplay = 1024, +	.hsync_start = 1024 + 100, +	.hsync_end = 1024 + 100 + 100, +	.htotal = 1024 + 100 + 100 + 120, +	.vdisplay = 600, +	.vsync_start = 600 + 10, +	.vsync_end = 600 + 10 + 10, +	.vtotal = 600 + 10 + 10 + 15, +	.flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC, +}; + +static const struct panel_desc yes_optoelectronics_ytc700tlag_05_201c = { +	.modes = &yes_optoelectronics_ytc700tlag_05_201c_mode, +	.num_modes = 1, +	.bpc = 6, +	.size = { +		.width = 154, +		.height = 90, +	}, +	.bus_flags = DRM_BUS_FLAG_DE_HIGH, +	.bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, +	.connector_type = DRM_MODE_CONNECTOR_LVDS, +}; +  static const struct drm_display_mode arm_rtsm_mode[] = {  	{  		.clock = 65000, @@ -4300,6 +4330,9 @@ static const struct of_device_id platform_of_match[] = {  		.compatible = "winstar,wf35ltiacd",  		.data = &winstar_wf35ltiacd,  	}, { +		.compatible = "yes-optoelectronics,ytc700tlag-05-201c", +		.data = &yes_optoelectronics_ytc700tlag_05_201c, +	}, {  		/* Must be the last entry */  		.compatible = "panel-dpi",  		.data = &panel_dpi, @@ -4644,8 +4677,10 @@ static int __init panel_simple_init(void)  	if (IS_ENABLED(CONFIG_DRM_MIPI_DSI)) {  		err = mipi_dsi_driver_register(&panel_simple_dsi_driver); -		if (err < 0) +		if (err < 0) { +			platform_driver_unregister(&panel_simple_platform_driver);  			return err; +		}  	}  	return 0; | 
