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
In v2 removed .num_modes as noticed by Paul.
Artjom Vejsel (3): dt-bindings: Add QiShenglong vendor prefix dt-bindings: Add DT bindings for QiShenglong Gopher 2b panel drm/panel-simple: add Gopher 2b LCD panel
.../bindings/display/panel/panel-simple.yaml | 2 + .../devicetree/bindings/vendor-prefixes.yaml | 2 + drivers/gpu/drm/panel/panel-simple.c | 43 +++++++++++++++++++ 3 files changed, 47 insertions(+)
-- 2.32.0
Add vendor prefix for Shenzhen QiShenglong Industrialist Co., Ltd. QiShenglong is a Chinese manufacturer of handheld gaming consoles, most of which run (very old) versions of Linux. QiShenglong is known as Hamy.
Signed-off-by: Artjom Vejsel akawolf0@gmail.com --- Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml index b868cefc7c55..52996cbf2cc4 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml @@ -924,6 +924,8 @@ patternProperties: description: Qi Hardware "^qihua,.*": description: Chengdu Kaixuan Information Technology Co., Ltd. + "^qishenglong,.*": + description: Shenzhen QiShenglong Industrialist Co., Ltd. "^qiaodian,.*": description: QiaoDian XianShi Corporation "^qnap,.*":
Hi Artjom, On Sat, Jul 24, 2021 at 01:33:56PM +0300, Artjom Vejsel wrote:
Add vendor prefix for Shenzhen QiShenglong Industrialist Co., Ltd. QiShenglong is a Chinese manufacturer of handheld gaming consoles, most of which run (very old) versions of Linux. QiShenglong is known as Hamy.
Signed-off-by: Artjom Vejsel akawolf0@gmail.com
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml index b868cefc7c55..52996cbf2cc4 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml @@ -924,6 +924,8 @@ patternProperties: description: Qi Hardware "^qihua,.*": description: Chengdu Kaixuan Information Technology Co., Ltd.
- "^qishenglong,.*":
- description: Shenzhen QiShenglong Industrialist Co., Ltd. "^qiaodian,.*": description: QiaoDian XianShi Corporation
The list shall be sorted, and qiaodian comes before qishenglong
"^qnap,.*":
2.32.0
Add DT bindings for QiShenglong Gopher 2b 4.3" 480(RGB)x272 TFT LCD panel.
Signed-off-by: Artjom Vejsel akawolf0@gmail.com --- .../devicetree/bindings/display/panel/panel-simple.yaml | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml index 3624363938dd..e7f3db118c5d 100644 --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml @@ -244,6 +244,8 @@ properties: - powertip,ph800480t013-idf02 # QiaoDian XianShi Corporation 4"3 TFT LCD panel - qiaodian,qd43003c0-40 + # Shenzhen QiShenglong Industrialist Co., Ltd. Gopher 2b 4.3" 480(RGB)x272 TFT LCD panel + - qishenglong,gopher2b-lcd-panel # Rocktech Displays Ltd. RK101II01D-CT 10.1" TFT 1280x800 - rocktech,rk101ii01d-ct # Rocktech Display Ltd. RK070ER9427 800(RGB)x480 TFT LCD panel
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..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, }, { /* Must be the last entry */ .compatible = "panel-dpi",
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@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
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@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
dri-devel@lists.freedesktop.org