[PATCH v2 3/3] drm/panel-simple: add Gopher 2b LCD panel

Artjom Vejsel akawolf0 at gmail.com
Sun Jul 25 22:18:11 UTC 2021


Hi, Sam! Thanks for commentaries, I've sent v3.

On 25/07/2021 23.23, Sam Ravnborg wrote:
> On Sat, Jul 24, 2021 at 01:33:58PM +0300, Artjom Vejsel wrote:
>> The Gopher 2b LCD panel is used in Gopher 2b handhelds.
>> It's simple panel with NewVision NV3047 driver, but SPI lines are not connected.
>> It has no specific name, since it's unique to that handhelds.
>> lot name at AliExpress: 4.3 inch 40PIN TFT LCD Screen COG NV3047 Drive IC 480(RGB)*272 No Touch 24Bit RGB Interface
>>
>> Signed-off-by: Artjom Vejsel <akawolf0 at gmail.com>
>> ---
>>   drivers/gpu/drm/panel/panel-simple.c | 43 ++++++++++++++++++++++++++++
>>   1 file changed, 43 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
>> index 9b286bd4444f..9676e25accb3 100644
>> --- a/drivers/gpu/drm/panel/panel-simple.c
>> +++ b/drivers/gpu/drm/panel/panel-simple.c
>> @@ -4306,6 +4306,46 @@ static const struct panel_desc yes_optoelectronics_ytc700tlag_05_201c = {
>>   	.connector_type = DRM_MODE_CONNECTOR_LVDS,
>>   };
>>   
>> +static const struct drm_display_mode qishenglong_gopher2b_lcd_panel_modes[] = {
>> +	{ /* 60 Hz */
>> +		.clock = 10800,
>> +		.hdisplay = 480,
>> +		.hsync_start = 480 + 77,
>> +		.hsync_end = 480 + 77 + 41,
>> +		.htotal = 480 + 77 + 41 + 2,
>> +		.vdisplay = 272,
>> +		.vsync_start = 272 + 16,
>> +		.vsync_end = 272 + 16 + 10,
>> +		.vtotal = 272 + 16 + 10 + 2,
>> +		.flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>> +	},
>> +	{ /* 50 Hz */
>> +		.clock = 10800,
>> +		.hdisplay = 480,
>> +		.hsync_start = 480 + 17,
>> +		.hsync_end = 480 + 17 + 41,
>> +		.htotal = 480 + 17 + 41 + 2,
>> +		.vdisplay = 272,
>> +		.vsync_start = 272 + 116,
>> +		.vsync_end = 272 + 116 + 10,
>> +		.vtotal = 272 + 116 + 10 + 2,
>> +		.flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>> +	},
>> +};
>> +
>> +static const struct panel_desc qishenglong_gopher2b_lcd_panel = {
>> +	.modes = qishenglong_gopher2b_lcd_panel_modes,
>> +	.num_modes = ARRAY_SIZE(qishenglong_gopher2b_lcd_panel_modes),
>> +	.bpc = 8,
>> +	.size = {
>> +		.width = 95,
>> +		.height = 54,
>> +	},
>> +	.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
>> +	.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE,
>> +	.connector_type = DRM_MODE_CONNECTOR_DPI,
>> +};
>> +
>>   static const struct drm_display_mode arm_rtsm_mode[] = {
>>   	{
>>   		.clock = 65000,
>> @@ -4753,6 +4793,9 @@ static const struct of_device_id platform_of_match[] = {
>>   	}, {
>>   		.compatible = "yes-optoelectronics,ytc700tlag-05-201c",
>>   		.data = &yes_optoelectronics_ytc700tlag_05_201c,
>> +	}, {
>> +		.compatible = "qishenglong,gopher2b-lcd-panel",
>> +		.data = &qishenglong_gopher2b_lcd_panel,
>>   	}, {
> This list shall also be sorted alphabetically, after the compatible.
> Same goes for the definition of the variable &qishenglong_gopher2b_lcd_panel
> that shall be listed in the same order as here.
>
> Sorry for the nit-picking - but if we do not ask to have it fixed then
> we quickly have a mess.
>
> 	Sam


More information about the dri-devel mailing list