* [PATCH v3 3/3] drm/panel-simple: add Gopher 2b LCD panel
@ 2021-07-25 22:15 ` Artjom Vejsel
0 siblings, 0 replies; 23+ messages in thread
From: Artjom Vejsel @ 2021-07-25 22:15 UTC (permalink / raw)
Cc: devicetree, linux-kernel, dri-devel, paul, robh+dt,
thierry.reding, akawolf0, sam
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@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..6b69c0c70814 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -3563,6 +3563,46 @@ static const struct panel_desc qd43003c0_40 = {
.bus_format = MEDIA_BUS_FMT_RGB888_1X24,
};
+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 display_timing rocktech_rk070er9427_timing = {
.pixelclock = { 26400000, 33300000, 46800000 },
.hactive = { 800, 800, 800 },
@@ -4651,6 +4691,9 @@ static const struct of_device_id platform_of_match[] = {
}, {
.compatible = "qiaodian,qd43003c0-40",
.data = &qd43003c0_40,
+ }, {
+ .compatible = "qishenglong,gopher2b-lcd-panel",
+ .data = &qishenglong_gopher2b_lcd_panel,
}, {
.compatible = "rocktech,rk070er9427",
.data = &rocktech_rk070er9427,
--
2.32.0
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH v3 3/3] drm/panel-simple: add Gopher 2b LCD panel
2021-07-25 22:15 ` Artjom Vejsel
@ 2021-07-25 23:07 ` Paul Cercueil
-1 siblings, 0 replies; 23+ messages in thread
From: Paul Cercueil @ 2021-07-25 23:07 UTC (permalink / raw)
To: Artjom Vejsel
Cc: thierry.reding, sam, dri-devel, robh+dt, devicetree, linux-kernel
Le lun., juil. 26 2021 at 01:15:27 +0300, Artjom Vejsel
<akawolf0@gmail.com> a écrit :
> 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@gmail.com>
Reviewed-by: Paul Cercueil <paul@crapouillou.net>
Cheers,
-Paul
> ---
> 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..6b69c0c70814 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -3563,6 +3563,46 @@ static const struct panel_desc qd43003c0_40 = {
> .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
> };
>
> +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 display_timing rocktech_rk070er9427_timing = {
> .pixelclock = { 26400000, 33300000, 46800000 },
> .hactive = { 800, 800, 800 },
> @@ -4651,6 +4691,9 @@ static const struct of_device_id
> platform_of_match[] = {
> }, {
> .compatible = "qiaodian,qd43003c0-40",
> .data = &qd43003c0_40,
> + }, {
> + .compatible = "qishenglong,gopher2b-lcd-panel",
> + .data = &qishenglong_gopher2b_lcd_panel,
> }, {
> .compatible = "rocktech,rk070er9427",
> .data = &rocktech_rk070er9427,
> --
> 2.32.0
>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v3 3/3] drm/panel-simple: add Gopher 2b LCD panel
@ 2021-07-25 23:07 ` Paul Cercueil
0 siblings, 0 replies; 23+ messages in thread
From: Paul Cercueil @ 2021-07-25 23:07 UTC (permalink / raw)
To: Artjom Vejsel
Cc: devicetree, linux-kernel, dri-devel, robh+dt, thierry.reding, sam
Le lun., juil. 26 2021 at 01:15:27 +0300, Artjom Vejsel
<akawolf0@gmail.com> a écrit :
> 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@gmail.com>
Reviewed-by: Paul Cercueil <paul@crapouillou.net>
Cheers,
-Paul
> ---
> 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..6b69c0c70814 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -3563,6 +3563,46 @@ static const struct panel_desc qd43003c0_40 = {
> .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
> };
>
> +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 display_timing rocktech_rk070er9427_timing = {
> .pixelclock = { 26400000, 33300000, 46800000 },
> .hactive = { 800, 800, 800 },
> @@ -4651,6 +4691,9 @@ static const struct of_device_id
> platform_of_match[] = {
> }, {
> .compatible = "qiaodian,qd43003c0-40",
> .data = &qd43003c0_40,
> + }, {
> + .compatible = "qishenglong,gopher2b-lcd-panel",
> + .data = &qishenglong_gopher2b_lcd_panel,
> }, {
> .compatible = "rocktech,rk070er9427",
> .data = &rocktech_rk070er9427,
> --
> 2.32.0
>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v3 3/3] drm/panel-simple: add Gopher 2b LCD panel
2021-07-25 22:15 ` Artjom Vejsel
@ 2021-07-26 9:02 ` Paul Cercueil
-1 siblings, 0 replies; 23+ messages in thread
From: Paul Cercueil @ 2021-07-26 9:02 UTC (permalink / raw)
To: Artjom Vejsel
Cc: thierry.reding, sam, dri-devel, robh+dt, devicetree, linux-kernel
Hi Artjom,
Le lun., juil. 26 2021 at 01:15:27 +0300, Artjom Vejsel
<akawolf0@gmail.com> a écrit :
> 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
From what I gathered the Gopher2's LCD panel is the exact same that is
inside the RS-07 handheld. According to the teardown (in [1]), the
RS-07 panel is a Amelin AML043056B0-40 (see [2]).
Could you verify that? According to the photos, the product code is
written on the flexible connector.
If that's the case, instead of using the
"qishenglong,gopher2b-lcd-panel" compatible string, could you use
"amelin,aml043056b0-40"?
Cheers,
-Paul
[1]: https://steward-fu.github.io/website/handheld/rs07/teardown.htm
[2]: http://www.amelin.com.cn/en/h-pd-355.html
>
> Signed-off-by: Artjom Vejsel <akawolf0@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..6b69c0c70814 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -3563,6 +3563,46 @@ static const struct panel_desc qd43003c0_40 = {
> .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
> };
>
> +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 display_timing rocktech_rk070er9427_timing = {
> .pixelclock = { 26400000, 33300000, 46800000 },
> .hactive = { 800, 800, 800 },
> @@ -4651,6 +4691,9 @@ static const struct of_device_id
> platform_of_match[] = {
> }, {
> .compatible = "qiaodian,qd43003c0-40",
> .data = &qd43003c0_40,
> + }, {
> + .compatible = "qishenglong,gopher2b-lcd-panel",
> + .data = &qishenglong_gopher2b_lcd_panel,
> }, {
> .compatible = "rocktech,rk070er9427",
> .data = &rocktech_rk070er9427,
> --
> 2.32.0
>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v3 3/3] drm/panel-simple: add Gopher 2b LCD panel
@ 2021-07-26 9:02 ` Paul Cercueil
0 siblings, 0 replies; 23+ messages in thread
From: Paul Cercueil @ 2021-07-26 9:02 UTC (permalink / raw)
To: Artjom Vejsel
Cc: devicetree, linux-kernel, dri-devel, robh+dt, thierry.reding, sam
Hi Artjom,
Le lun., juil. 26 2021 at 01:15:27 +0300, Artjom Vejsel
<akawolf0@gmail.com> a écrit :
> 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
From what I gathered the Gopher2's LCD panel is the exact same that is
inside the RS-07 handheld. According to the teardown (in [1]), the
RS-07 panel is a Amelin AML043056B0-40 (see [2]).
Could you verify that? According to the photos, the product code is
written on the flexible connector.
If that's the case, instead of using the
"qishenglong,gopher2b-lcd-panel" compatible string, could you use
"amelin,aml043056b0-40"?
Cheers,
-Paul
[1]: https://steward-fu.github.io/website/handheld/rs07/teardown.htm
[2]: http://www.amelin.com.cn/en/h-pd-355.html
>
> Signed-off-by: Artjom Vejsel <akawolf0@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..6b69c0c70814 100644
> --- a/drivers/gpu/drm/panel/panel-simple.c
> +++ b/drivers/gpu/drm/panel/panel-simple.c
> @@ -3563,6 +3563,46 @@ static const struct panel_desc qd43003c0_40 = {
> .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
> };
>
> +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 display_timing rocktech_rk070er9427_timing = {
> .pixelclock = { 26400000, 33300000, 46800000 },
> .hactive = { 800, 800, 800 },
> @@ -4651,6 +4691,9 @@ static const struct of_device_id
> platform_of_match[] = {
> }, {
> .compatible = "qiaodian,qd43003c0-40",
> .data = &qd43003c0_40,
> + }, {
> + .compatible = "qishenglong,gopher2b-lcd-panel",
> + .data = &qishenglong_gopher2b_lcd_panel,
> }, {
> .compatible = "rocktech,rk070er9427",
> .data = &rocktech_rk070er9427,
> --
> 2.32.0
>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v3 3/3] drm/panel-simple: add Gopher 2b LCD panel
2021-07-26 9:02 ` Paul Cercueil
@ 2021-07-26 11:11 ` Artjom Vejsel
-1 siblings, 0 replies; 23+ messages in thread
From: Artjom Vejsel @ 2021-07-26 11:11 UTC (permalink / raw)
To: Paul Cercueil
Cc: thierry.reding, sam, dri-devel, robh+dt, devicetree, linux-kernel
Hello, Paul!
Thanks for your investigation.
But while this two panels are compatible with the timing set in the
driver, their timing ranges are different ([1], [2]) and therefore
should have different compatible strings.
[1]: https://wendangmao.net/doc/753b5635102de2bd960588e2-51.html
[2]: https://www.newhavendisplay.com/appnotes/datasheets/LCDs/ST7282.pdf
Artjom.
On 26/07/2021 12.02, Paul Cercueil wrote:
> Hi Artjom,
>
> Le lun., juil. 26 2021 at 01:15:27 +0300, Artjom Vejsel
> <akawolf0@gmail.com> a écrit :
>> 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
>
> From what I gathered the Gopher2's LCD panel is the exact same that is
> inside the RS-07 handheld. According to the teardown (in [1]), the
> RS-07 panel is a Amelin AML043056B0-40 (see [2]).
>
> Could you verify that? According to the photos, the product code is
> written on the flexible connector.
>
> If that's the case, instead of using the
> "qishenglong,gopher2b-lcd-panel" compatible string, could you use
> "amelin,aml043056b0-40"?
>
> Cheers,
> -Paul
>
> [1]: https://steward-fu.github.io/website/handheld/rs07/teardown.htm
> [2]: http://www.amelin.com.cn/en/h-pd-355.html
>
>>
>> Signed-off-by: Artjom Vejsel <akawolf0@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..6b69c0c70814 100644
>> --- a/drivers/gpu/drm/panel/panel-simple.c
>> +++ b/drivers/gpu/drm/panel/panel-simple.c
>> @@ -3563,6 +3563,46 @@ static const struct panel_desc qd43003c0_40 = {
>> .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
>> };
>>
>> +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 display_timing rocktech_rk070er9427_timing = {
>> .pixelclock = { 26400000, 33300000, 46800000 },
>> .hactive = { 800, 800, 800 },
>> @@ -4651,6 +4691,9 @@ static const struct of_device_id
>> platform_of_match[] = {
>> }, {
>> .compatible = "qiaodian,qd43003c0-40",
>> .data = &qd43003c0_40,
>> + }, {
>> + .compatible = "qishenglong,gopher2b-lcd-panel",
>> + .data = &qishenglong_gopher2b_lcd_panel,
>> }, {
>> .compatible = "rocktech,rk070er9427",
>> .data = &rocktech_rk070er9427,
>> --
>> 2.32.0
>>
>
>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v3 3/3] drm/panel-simple: add Gopher 2b LCD panel
@ 2021-07-26 11:11 ` Artjom Vejsel
0 siblings, 0 replies; 23+ messages in thread
From: Artjom Vejsel @ 2021-07-26 11:11 UTC (permalink / raw)
To: Paul Cercueil
Cc: devicetree, linux-kernel, dri-devel, robh+dt, thierry.reding, sam
Hello, Paul!
Thanks for your investigation.
But while this two panels are compatible with the timing set in the
driver, their timing ranges are different ([1], [2]) and therefore
should have different compatible strings.
[1]: https://wendangmao.net/doc/753b5635102de2bd960588e2-51.html
[2]: https://www.newhavendisplay.com/appnotes/datasheets/LCDs/ST7282.pdf
Artjom.
On 26/07/2021 12.02, Paul Cercueil wrote:
> Hi Artjom,
>
> Le lun., juil. 26 2021 at 01:15:27 +0300, Artjom Vejsel
> <akawolf0@gmail.com> a écrit :
>> 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
>
> From what I gathered the Gopher2's LCD panel is the exact same that is
> inside the RS-07 handheld. According to the teardown (in [1]), the
> RS-07 panel is a Amelin AML043056B0-40 (see [2]).
>
> Could you verify that? According to the photos, the product code is
> written on the flexible connector.
>
> If that's the case, instead of using the
> "qishenglong,gopher2b-lcd-panel" compatible string, could you use
> "amelin,aml043056b0-40"?
>
> Cheers,
> -Paul
>
> [1]: https://steward-fu.github.io/website/handheld/rs07/teardown.htm
> [2]: http://www.amelin.com.cn/en/h-pd-355.html
>
>>
>> Signed-off-by: Artjom Vejsel <akawolf0@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..6b69c0c70814 100644
>> --- a/drivers/gpu/drm/panel/panel-simple.c
>> +++ b/drivers/gpu/drm/panel/panel-simple.c
>> @@ -3563,6 +3563,46 @@ static const struct panel_desc qd43003c0_40 = {
>> .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
>> };
>>
>> +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 display_timing rocktech_rk070er9427_timing = {
>> .pixelclock = { 26400000, 33300000, 46800000 },
>> .hactive = { 800, 800, 800 },
>> @@ -4651,6 +4691,9 @@ static const struct of_device_id
>> platform_of_match[] = {
>> }, {
>> .compatible = "qiaodian,qd43003c0-40",
>> .data = &qd43003c0_40,
>> + }, {
>> + .compatible = "qishenglong,gopher2b-lcd-panel",
>> + .data = &qishenglong_gopher2b_lcd_panel,
>> }, {
>> .compatible = "rocktech,rk070er9427",
>> .data = &rocktech_rk070er9427,
>> --
>> 2.32.0
>>
>
>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH v3 3/3] drm/panel-simple: add Gopher 2b LCD panel
2021-07-26 9:02 ` Paul Cercueil
(?)
(?)
@ 2021-07-26 20:00 ` Sam Ravnborg
-1 siblings, 0 replies; 23+ messages in thread
From: Sam Ravnborg @ 2021-07-26 20:00 UTC (permalink / raw)
To: Paul Cercueil
Cc: devicetree, linux-kernel, dri-devel, robh+dt, thierry.reding,
Artjom Vejsel
Hi Paul,
On Mon, Jul 26, 2021 at 10:02:08AM +0100, Paul Cercueil wrote:
> Hi Artjom,
>
> Le lun., juil. 26 2021 at 01:15:27 +0300, Artjom Vejsel <akawolf0@gmail.com>
> a écrit :
> > 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
>
> From what I gathered the Gopher2's LCD panel is the exact same that is
> inside the RS-07 handheld. According to the teardown (in [1]), the RS-07
> panel is a Amelin AML043056B0-40 (see [2]).
>
> Could you verify that? According to the photos, the product code is written
> on the flexible connector.
>
> If that's the case, instead of using the "qishenglong,gopher2b-lcd-panel"
> compatible string, could you use "amelin,aml043056b0-40"?
>
> Cheers,
> -Paul
I assume you are going to apply this patch-set when you are happy with it.
OK?
Sam
^ permalink raw reply [flat|nested] 23+ messages in thread